diff --git a/platformio.ini b/platformio.ini index 73f56a9e..78b5d8e5 100644 --- a/platformio.ini +++ b/platformio.ini @@ -162,7 +162,7 @@ lib_compat_mode = strict lib_deps = fastled/FastLED @ 3.5.0 IRremoteESP8266 @ 2.8.2 - https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.4 + https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.5 #For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line #TFT_eSPI #For use SSD1306 OLED display uncomment following diff --git a/usermods/Cronixie/usermod_cronixie.h b/usermods/Cronixie/usermod_cronixie.h index 5e4255f4..5702d8fa 100644 --- a/usermods/Cronixie/usermod_cronixie.h +++ b/usermods/Cronixie/usermod_cronixie.h @@ -249,7 +249,7 @@ class UsermodCronixie : public Usermod { if (backlight && _digitOut[i] <11) { - uint32_t col = strip.gamma32(strip.getSegment(0).colors[1]); + uint32_t col = gamma32(strip.getSegment(0).colors[1]); for (uint16_t j=o; j< o+10; j++) { if (j != excl) strip.setPixelColor(j, col); } diff --git a/usermods/RTC/usermod_rtc.h b/usermods/RTC/usermod_rtc.h index 8c174e6f..826f8105 100644 --- a/usermods/RTC/usermod_rtc.h +++ b/usermods/RTC/usermod_rtc.h @@ -22,6 +22,7 @@ class RTCUsermod : public Usermod { void setup() { PinManagerPinType pins[2] = { { HW_PIN_SCL, true }, { HW_PIN_SDA, true } }; if (!pinManager.allocateMultiplePins(pins, 2, PinOwner::HW_I2C)) { disabled = true; return; } + RTC.begin(); time_t rtcTime = RTC.get(); if (rtcTime) { toki.setTime(rtcTime,TOKI_NO_MS_ACCURACY,TOKI_TS_RTC); diff --git a/usermods/audioreactive/audio_reactive.h b/usermods/audioreactive/audio_reactive.h index 21153abd..41947ca8 100644 --- a/usermods/audioreactive/audio_reactive.h +++ b/usermods/audioreactive/audio_reactive.h @@ -368,7 +368,7 @@ class AudioReactive : public Usermod { WiFiUDP fftUdp; // set your config variables to their boot default value (this can also be done in readFromConfig() or a constructor if you prefer) - bool enabled = true; + bool enabled = false; bool initDone = false; const uint16_t delayMs = 10; // I don't want to sample too often and overload WLED diff --git a/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h b/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h index 4b179ee8..2876a240 100644 --- a/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h +++ b/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h @@ -25,54 +25,32 @@ // //The SCL and SDA pins are defined here. +#ifndef FLD_PIN_SCL + #define FLD_PIN_SCL HW_PIN_SCL +#endif +#ifndef FLD_PIN_SDA + #define FLD_PIN_SDA HW_PIN_SDA +#endif +#ifndef FLD_PIN_CLOCKSPI + #define FLD_PIN_CLOCKSPI HW_PIN_CLOCKSPI +#endif + #ifndef FLD_PIN_DATASPI + #define FLD_PIN_DATASPI HW_PIN_DATASPI +#endif +#ifndef FLD_PIN_CS + #define FLD_PIN_CS HW_PIN_CSSPI +#endif + #ifdef ARDUINO_ARCH_ESP32 - #define HW_PIN_SCL 22 - #define HW_PIN_SDA 21 - #define HW_PIN_CLOCKSPI 18 - #define HW_PIN_DATASPI 23 - #ifndef FLD_PIN_SCL - #define FLD_PIN_SCL 22 - #endif - #ifndef FLD_PIN_SDA - #define FLD_PIN_SDA 21 - #endif - #ifndef FLD_PIN_CLOCKSPI - #define FLD_PIN_CLOCKSPI 18 - #endif - #ifndef FLD_PIN_DATASPI - #define FLD_PIN_DATASPI 23 - #endif #ifndef FLD_PIN_DC #define FLD_PIN_DC 19 #endif - #ifndef FLD_PIN_CS - #define FLD_PIN_CS 5 - #endif #ifndef FLD_PIN_RESET #define FLD_PIN_RESET 26 #endif #else - #define HW_PIN_SCL 5 - #define HW_PIN_SDA 4 - #define HW_PIN_CLOCKSPI 14 - #define HW_PIN_DATASPI 13 - #ifndef FLD_PIN_SCL - #define FLD_PIN_SCL 5 - #endif - #ifndef FLD_PIN_SDA - #define FLD_PIN_SDA 4 - #endif - #ifndef FLD_PIN_CLOCKSPI - #define FLD_PIN_CLOCKSPI 14 - #endif - #ifndef FLD_PIN_DATASPI - #define FLD_PIN_DATASPI 13 - #endif #ifndef FLD_PIN_DC #define FLD_PIN_DC 12 - #endif - #ifndef FLD_PIN_CS - #define FLD_PIN_CS 15 #endif #ifndef FLD_PIN_RESET #define FLD_PIN_RESET 16 @@ -92,13 +70,20 @@ #define SCREEN_TIMEOUT_MS 60*1000 // 1 min // Minimum time between redrawing screen in ms -#define USER_LOOP_REFRESH_RATE_MS 1000 +#define REFRESH_RATE_MS 1000 // Extra char (+1) for null #define LINE_BUFFER_SIZE 16+1 #define MAX_JSON_CHARS 19+1 #define MAX_MODE_LINE_SPACE 13+1 + +#ifdef ARDUINO_ARCH_ESP32 +static TaskHandle_t Display_Task = nullptr; +void DisplayTaskCode(void * parameter); +#endif + + typedef enum { NONE = 0, SSD1306, // U8X8_SSD1306_128X32_UNIVISION_HW_I2C @@ -112,10 +97,15 @@ typedef enum { class FourLineDisplayUsermod : public Usermod { + public: + FourLineDisplayUsermod() { if (!instance) instance = this; } + static FourLineDisplayUsermod* getInstance(void) { return instance; } private: + static FourLineDisplayUsermod *instance; bool initDone = false; + volatile bool drawing = false; // HW interface & configuration U8X8 *u8x8 = nullptr; // pointer to U8X8 display object @@ -132,8 +122,8 @@ class FourLineDisplayUsermod : public Usermod { bool flip = false; // flip display 180° uint8_t contrast = 10; // screen contrast uint8_t lineHeight = 1; // 1 row or 2 rows - uint16_t refreshRate = USER_LOOP_REFRESH_RATE_MS; // in ms - uint32_t screenTimeout = SCREEN_TIMEOUT_MS; // in ms + uint16_t refreshRate = REFRESH_RATE_MS; // in ms + uint32_t screenTimeout = SCREEN_TIMEOUT_MS; // in ms bool sleepMode = true; // allow screen sleep? bool clockMode = false; // display clock bool showSeconds = true; // display clock with seconds @@ -207,6 +197,7 @@ class FourLineDisplayUsermod : public Usermod { if (isSPI) { isHW = (ioPin[0]==HW_PIN_CLOCKSPI && ioPin[1]==HW_PIN_DATASPI); PinManagerPinType pins[5] = { { ioPin[0], true }, { ioPin[1], true }, { ioPin[2], true }, { ioPin[3], true }, { ioPin[4], true }}; + if (ioPin[0]==HW_PIN_CLOCKSPI && ioPin[1]==HW_PIN_DATASPI && ioPin[2]==HW_PIN_CSSPI) po = PinOwner::HW_SPI; // allow multiple allocations of HW SPI bus pins if (!pinManager.allocateMultiplePins(pins, 5, po)) { type=NONE; return; } } else { isHW = (ioPin[0]==HW_PIN_SCL && ioPin[1]==HW_PIN_SDA); @@ -304,6 +295,7 @@ class FourLineDisplayUsermod : public Usermod { setPowerSave(0); //drawString(0, 0, "Loading..."); overlayLogo(3500); + onUpdateBegin(false); // create Display task initDone = true; } @@ -319,11 +311,13 @@ class FourLineDisplayUsermod : public Usermod { * Da loop. */ void loop() { + #ifndef ARDUINO_ARCH_ESP32 if (!enabled || strip.isUpdating()) return; unsigned long now = millis(); if (now < nextUpdate) return; nextUpdate = now + ((displayTurnedOff && clockMode && showSeconds) ? 1000 : refreshRate); redraw(false); + #endif } /** @@ -404,6 +398,8 @@ class FourLineDisplayUsermod : public Usermod { } } + while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing + if (apActive && WLED_WIFI_CONFIGURED && now<15000) { knownSsid = apSSID; networkOverlay(PSTR("NETWORK INFO"),30000); @@ -639,10 +635,14 @@ class FourLineDisplayUsermod : public Usermod { bool wakeDisplay() { if (type == NONE || !enabled) return false; if (displayTurnedOff) { + unsigned long now = millis(); + while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing + drawing = true; clear(); // Turn the display back on sleepOrClock(false); //lastRedraw = millis(); + drawing = false; return true; } return false; @@ -654,6 +654,9 @@ class FourLineDisplayUsermod : public Usermod { * Used in Rotary Encoder usermod. */ void overlay(const char* line1, long showHowLong, byte glyphType) { + unsigned long now = millis(); + while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing + drawing = true; // Turn the display back on if (!wakeDisplay()) clear(); // Print the overlay @@ -667,6 +670,7 @@ class FourLineDisplayUsermod : public Usermod { drawString(0, (glyphType<255?3:0)*lineHeight, buf.c_str()); } overlayUntil = millis() + showHowLong; + drawing = false; } /** @@ -674,6 +678,9 @@ class FourLineDisplayUsermod : public Usermod { * Clears the screen and prints. */ void overlayLogo(long showHowLong) { + unsigned long now = millis(); + while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing + drawing = true; // Turn the display back on if (!wakeDisplay()) clear(); // Print the overlay @@ -723,6 +730,7 @@ class FourLineDisplayUsermod : public Usermod { } } overlayUntil = millis() + showHowLong; + drawing = false; } /** @@ -731,6 +739,9 @@ class FourLineDisplayUsermod : public Usermod { * Used in Auto Save usermod */ void overlay(const char* line1, const char* line2, long showHowLong) { + unsigned long now = millis(); + while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing + drawing = true; // Turn the display back on if (!wakeDisplay()) clear(); // Print the overlay @@ -745,9 +756,14 @@ class FourLineDisplayUsermod : public Usermod { drawString(0, 2*lineHeight, buf.c_str()); } overlayUntil = millis() + showHowLong; + drawing = false; } void networkOverlay(const char* line1, long showHowLong) { + unsigned long now = millis(); + while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing + drawing = true; + String line; // Turn the display back on if (!wakeDisplay()) clear(); @@ -778,6 +794,7 @@ class FourLineDisplayUsermod : public Usermod { center(line, getCols()); drawString(0, lineHeight*3, line.c_str()); overlayUntil = millis() + showHowLong; + drawing = false; } @@ -806,6 +823,10 @@ class FourLineDisplayUsermod : public Usermod { void showTime() { if (type == NONE || !enabled || !displayTurnedOff) return; + unsigned long now = millis(); + while (drawing && millis()-now < 250) delay(1); // wait if someone else is drawing + drawing = true; + char lineBuffer[LINE_BUFFER_SIZE]; static byte lastSecond; byte secondCurrent = second(localTime); @@ -833,15 +854,14 @@ class FourLineDisplayUsermod : public Usermod { knownMinute = minuteCurrent; knownHour = hourCurrent; - } else { - if (secondCurrent == lastSecond) return; } - if (showSeconds) { + if (showSeconds && secondCurrent != lastSecond) { lastSecond = secondCurrent; draw2x2String(6, lineHeight*2, secondCurrent%2 ? " " : ":"); sprintf_P(lineBuffer, PSTR("%02d"), secondCurrent); drawString(12, lineHeight*2+1, lineBuffer, true); // even with double sized rows print seconds in 1 line } + drawing = false; } /** @@ -917,7 +937,44 @@ class FourLineDisplayUsermod : public Usermod { } return handled; } - + + #if CONFIG_FREERTOS_UNICORE + #define ARDUINO_RUNNING_CORE 0 + #else + #define ARDUINO_RUNNING_CORE 1 + #endif + void onUpdateBegin(bool init) { + #ifdef ARDUINO_ARCH_ESP32 + if (init && Display_Task) { + vTaskSuspend(Display_Task); // update is about to begin, disable task to prevent crash + } else { + // update has failed or create task requested + if (Display_Task) + vTaskResume(Display_Task); + else + xTaskCreatePinnedToCore( + [](void * par) { // Function to implement the task + // see https://www.freertos.org/vtaskdelayuntil.html + const TickType_t xFrequency = REFRESH_RATE_MS * portTICK_PERIOD_MS / 2; + TickType_t xLastWakeTime = xTaskGetTickCount(); + for(;;) { + delay(1); // DO NOT DELETE THIS LINE! It is needed to give the IDLE(0) task enough time and to keep the watchdog happy. + // taskYIELD(), yield(), vTaskDelay() and esp_task_wdt_feed() didn't seem to work. + vTaskDelayUntil(&xLastWakeTime, xFrequency); // release CPU, by doing nothing for REFRESH_RATE_MS millis + FourLineDisplayUsermod::getInstance()->redraw(false); + } + }, + "4LD", // Name of the task + 3072, // Stack size in words + NULL, // Task input parameter + 1, // Priority of the task (not idle) + &Display_Task, // Task handle + ARDUINO_RUNNING_CORE + ); + } + #endif + } + /* * addToJsonInfo() can be used to add custom entries to the /json/info part of the JSON API. * Creating an "u" object allows you to add custom key/value pairs to the Info section of the WLED web UI. @@ -985,7 +1042,9 @@ class FourLineDisplayUsermod : public Usermod { top[FPSTR(_flip)] = (bool) flip; top[FPSTR(_contrast)] = contrast; top[FPSTR(_contrastFix)] = (bool) contrastFix; + #ifndef ARDUINO_ARCH_ESP32 top[FPSTR(_refreshRate)] = refreshRate; + #endif top[FPSTR(_screenTimeOut)] = screenTimeout/1000; top[FPSTR(_sleepMode)] = (bool) sleepMode; top[FPSTR(_clockMode)] = (bool) clockMode; @@ -1019,8 +1078,10 @@ class FourLineDisplayUsermod : public Usermod { for (byte i=0; i<5; i++) newPin[i] = top["pin"][i] | ioPin[i]; flip = top[FPSTR(_flip)] | flip; contrast = top[FPSTR(_contrast)] | contrast; + #ifndef ARDUINO_ARCH_ESP32 refreshRate = top[FPSTR(_refreshRate)] | refreshRate; refreshRate = min(5000, max(250, (int)refreshRate)); + #endif screenTimeout = (top[FPSTR(_screenTimeOut)] | screenTimeout/1000) * 1000; sleepMode = top[FPSTR(_sleepMode)] | sleepMode; clockMode = top[FPSTR(_clockMode)] | clockMode; @@ -1045,8 +1106,10 @@ class FourLineDisplayUsermod : public Usermod { if (pinsChanged || type!=newType) { if (type != NONE) delete u8x8; PinOwner po = PinOwner::UM_FourLineDisplay; - if (ioPin[0]==HW_PIN_SCL && ioPin[1]==HW_PIN_SDA) po = PinOwner::HW_I2C; // allow multiple allocations of HW I2C bus pins - pinManager.deallocateMultiplePins((const uint8_t *)ioPin, (type == SSD1306_SPI || type == SSD1306_SPI64) ? 5 : 2, po); + bool isSPI = (type == SSD1306_SPI || type == SSD1306_SPI64); + if (!isSPI && ioPin[0]==HW_PIN_SCL && ioPin[1]==HW_PIN_SDA) po = PinOwner::HW_I2C; // allow multiple allocations of HW I2C bus pins + if (isSPI && ioPin[0]==HW_PIN_CLOCKSPI && ioPin[1]==HW_PIN_DATASPI && ioPin[2]==HW_PIN_CSSPI) po = PinOwner::HW_SPI; // allow multiple allocations of HW SPI bus pins + pinManager.deallocateMultiplePins((const uint8_t *)ioPin, isSPI ? 5 : 2, po); for (byte i=0; i<5; i++) ioPin[i] = newPin[i]; if (ioPin[0]<0 || ioPin[1]<0) { // data & clock must be > -1 type = NONE; @@ -1089,3 +1152,5 @@ const char FourLineDisplayUsermod::_clockMode[] PROGMEM = "clockMode"; const char FourLineDisplayUsermod::_showSeconds[] PROGMEM = "showSeconds"; const char FourLineDisplayUsermod::_busClkFrequency[] PROGMEM = "i2c-freq-kHz"; const char FourLineDisplayUsermod::_contrastFix[] PROGMEM = "contrastFix"; + +FourLineDisplayUsermod *FourLineDisplayUsermod::instance = nullptr; diff --git a/wled00/FX.cpp b/wled00/FX.cpp index 45718600..c58dcdec 100644 --- a/wled00/FX.cpp +++ b/wled00/FX.cpp @@ -75,9 +75,9 @@ int8_t tristate_square8(uint8_t x, uint8_t pulsewidth, uint8_t attdec) { */ uint16_t mode_static(void) { SEGMENT.fill(SEGCOLOR(0)); - return (SEGMENT.getOption(SEG_OPTION_TRANSITIONAL)) ? FRAMETIME : 350; //update faster if in transition + return /*(SEGMENT.getOption(SEG_OPTION_TRANSITIONAL)) ? FRAMETIME :*/ 350; //update faster if in transition } -static const char *_data_FX_MODE_STATIC PROGMEM = "Solid"; +static const char _data_FX_MODE_STATIC[] PROGMEM = "Solid"; /* @@ -104,7 +104,7 @@ uint16_t blink(uint32_t color1, uint32_t color2, bool strobe, bool do_palette) { uint32_t color = on ? color1 : color2; if (color == color1 && do_palette) { - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); } } else SEGMENT.fill(color); @@ -114,12 +114,12 @@ uint16_t blink(uint32_t color1, uint32_t color2, bool strobe, bool do_palette) { /* - * Normal blinking. 50% on/off time. + * Normal blinking. Intensity sets duty cycle. */ uint16_t mode_blink(void) { return blink(SEGCOLOR(0), SEGCOLOR(1), false, true); } -static const char *_data_FX_MODE_BLINK PROGMEM = "Blink@!,;!,!,;!"; +static const char _data_FX_MODE_BLINK[] PROGMEM = "Blink@!,Duty cycle;!,!,;!;1d"; /* @@ -128,7 +128,7 @@ static const char *_data_FX_MODE_BLINK PROGMEM = "Blink@!,;!,!,;!"; uint16_t mode_blink_rainbow(void) { return blink(SEGMENT.color_wheel(SEGENV.call & 0xFF), SEGCOLOR(1), false, false); } -static const char *_data_FX_MODE_BLINK_RAINBOW PROGMEM = "Blink Rainbow@Frequency,Blink duration;!,!,;!"; +static const char _data_FX_MODE_BLINK_RAINBOW[] PROGMEM = "Blink Rainbow@Frequency,Blink duration;!,!,;!;1d"; /* @@ -137,7 +137,7 @@ static const char *_data_FX_MODE_BLINK_RAINBOW PROGMEM = "Blink Rainbow@Frequenc uint16_t mode_strobe(void) { return blink(SEGCOLOR(0), SEGCOLOR(1), true, true); } -static const char *_data_FX_MODE_STROBE PROGMEM = "Strobe@!,;!,!,;!"; +static const char _data_FX_MODE_STROBE[] PROGMEM = "Strobe@!,;!,!,;!;1d"; /* @@ -146,7 +146,7 @@ static const char *_data_FX_MODE_STROBE PROGMEM = "Strobe@!,;!,!,;!"; uint16_t mode_strobe_rainbow(void) { return blink(SEGMENT.color_wheel(SEGENV.call & 0xFF), SEGCOLOR(1), true, false); } -static const char *_data_FX_MODE_STROBE_RAINBOW PROGMEM = "Strobe Rainbow@!,;,!,;!"; +static const char _data_FX_MODE_STROBE_RAINBOW[] PROGMEM = "Strobe Rainbow@!,;,!,;!;1d"; /* @@ -188,7 +188,7 @@ uint16_t color_wipe(bool rev, bool useRandomColors) { if (rem > 255) rem = 255; uint32_t col1 = useRandomColors? SEGMENT.color_wheel(SEGENV.aux1) : SEGCOLOR(1); - for (uint16_t i = 0; i < SEGLEN; i++) + for (int i = 0; i < SEGLEN; i++) { uint16_t index = (rev && back)? SEGLEN -1 -i : i; uint32_t col0 = useRandomColors? SEGMENT.color_wheel(SEGENV.aux0) : SEGMENT.color_from_palette(index, true, PALETTE_SOLID_WRAP, 0); @@ -212,7 +212,7 @@ uint16_t color_wipe(bool rev, bool useRandomColors) { uint16_t mode_color_wipe(void) { return color_wipe(false, false); } -static const char *_data_FX_MODE_COLOR_WIPE PROGMEM = "Wipe@!,!;!,!,;!"; +static const char _data_FX_MODE_COLOR_WIPE[] PROGMEM = "Wipe@!,!;!,!,;!;1d"; /* @@ -221,7 +221,7 @@ static const char *_data_FX_MODE_COLOR_WIPE PROGMEM = "Wipe@!,!;!,!,;!"; uint16_t mode_color_sweep(void) { return color_wipe(true, false); } -static const char *_data_FX_MODE_COLOR_SWEEP PROGMEM = "Sweep@!,!;!,!,;!"; +static const char _data_FX_MODE_COLOR_SWEEP[] PROGMEM = "Sweep@!,!;!,!,;!;1d"; /* @@ -231,7 +231,7 @@ static const char *_data_FX_MODE_COLOR_SWEEP PROGMEM = "Sweep@!,!;!,!,;!"; uint16_t mode_color_wipe_random(void) { return color_wipe(false, true); } -static const char *_data_FX_MODE_COLOR_WIPE_RANDOM PROGMEM = "Wipe Random@!,;1,2,3;!"; +static const char _data_FX_MODE_COLOR_WIPE_RANDOM[] PROGMEM = "Wipe Random@!,;1,2,3;!;1d"; /* @@ -240,7 +240,7 @@ static const char *_data_FX_MODE_COLOR_WIPE_RANDOM PROGMEM = "Wipe Random@!,;1,2 uint16_t mode_color_sweep_random(void) { return color_wipe(true, true); } -static const char *_data_FX_MODE_COLOR_SWEEP_RANDOM PROGMEM = "Sweep Random"; +static const char _data_FX_MODE_COLOR_SWEEP_RANDOM[] PROGMEM = "Sweep Random"; /* @@ -273,7 +273,7 @@ uint16_t mode_random_color(void) { SEGMENT.fill(color_blend(SEGMENT.color_wheel(SEGENV.aux1), SEGMENT.color_wheel(SEGENV.aux0), fade)); return FRAMETIME; } -static const char *_data_FX_MODE_RANDOM_COLOR PROGMEM = "Random Colors@!,Fade time;1,2,3;!"; +static const char _data_FX_MODE_RANDOM_COLOR[] PROGMEM = "Random Colors@!,Fade time;1,2,3;!;1d"; /* @@ -284,25 +284,25 @@ uint16_t dynamic(boolean smooth=false) { if (!SEGENV.allocateData(SEGLEN)) return mode_static(); //allocation failed if(SEGENV.call == 0) { - for (uint16_t i = 0; i < SEGLEN; i++) SEGENV.data[i] = random8(); + for (int i = 0; i < SEGLEN; i++) SEGENV.data[i] = random8(); } uint32_t cycleTime = 50 + (255 - SEGMENT.speed)*15; uint32_t it = strip.now / cycleTime; if (it != SEGENV.step && SEGMENT.speed != 0) //new color { - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { if (random8() <= SEGMENT.intensity) SEGENV.data[i] = random8(); } SEGENV.step = it; } if (smooth) { - for (uint16_t i = 0; i < SEGLEN; i++) { - SEGMENT.blendPixelColor(i, SEGMENT.color_wheel(SEGENV.data[i]),16); + for (int i = 0; i < SEGLEN; i++) { + SEGMENT.blendPixelColor(i, SEGMENT.color_wheel(SEGENV.data[i]),16); // TODO } } else { - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_wheel(SEGENV.data[i])); } } @@ -316,7 +316,7 @@ uint16_t dynamic(boolean smooth=false) { uint16_t mode_dynamic(void) { return dynamic(false); } -static const char *_data_FX_MODE_DYNAMIC PROGMEM = "Dynamic@!,!;1,2,3;!"; +static const char _data_FX_MODE_DYNAMIC[] PROGMEM = "Dynamic@!,!;1,2,3;!;1d"; /* @@ -325,7 +325,7 @@ static const char *_data_FX_MODE_DYNAMIC PROGMEM = "Dynamic@!,!;1,2,3;!"; uint16_t mode_dynamic_smooth(void) { return dynamic(true); } -static const char *_data_FX_MODE_DYNAMIC_SMOOTH PROGMEM = "Dynamic Smooth"; +static const char _data_FX_MODE_DYNAMIC_SMOOTH[] PROGMEM = "Dynamic Smooth"; /* @@ -341,13 +341,13 @@ uint16_t mode_breath(void) { } uint8_t lum = 30 + var; - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0), lum)); } return FRAMETIME; } -static const char *_data_FX_MODE_BREATH PROGMEM = "Breathe@!,;!,!;!"; +static const char _data_FX_MODE_BREATH[] PROGMEM = "Breathe@!,;!,!;!;1d"; /* @@ -357,13 +357,13 @@ uint16_t mode_fade(void) { uint16_t counter = (strip.now * ((SEGMENT.speed >> 3) +10)); uint8_t lum = triwave16(counter) >> 8; - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0), lum)); } return FRAMETIME; } -static const char *_data_FX_MODE_FADE PROGMEM = "Fade@!,;!,!,;!"; +static const char _data_FX_MODE_FADE[] PROGMEM = "Fade@!,;!,!,;!;1d"; /* @@ -383,13 +383,13 @@ uint16_t scan(bool dual) led_offset = abs(led_offset); if (dual) { - for (uint16_t j = led_offset; j < led_offset + size; j++) { + for (int j = led_offset; j < led_offset + size; j++) { uint16_t i2 = SEGLEN -1 -j; SEGMENT.setPixelColor(i2, SEGMENT.color_from_palette(i2, true, PALETTE_SOLID_WRAP, (SEGCOLOR(2))? 2:0)); } } - for (uint16_t j = led_offset; j < led_offset + size; j++) { + for (int j = led_offset; j < led_offset + size; j++) { SEGMENT.setPixelColor(j, SEGMENT.color_from_palette(j, true, PALETTE_SOLID_WRAP, 0)); } @@ -403,7 +403,7 @@ uint16_t scan(bool dual) uint16_t mode_scan(void) { return scan(false); } -static const char *_data_FX_MODE_SCAN PROGMEM = "Scan@!,# of dots;!,!,;!"; +static const char _data_FX_MODE_SCAN[] PROGMEM = "Scan@!,# of dots;!,!,!;!;1d"; /* @@ -412,7 +412,7 @@ static const char *_data_FX_MODE_SCAN PROGMEM = "Scan@!,# of dots;!,!,;!"; uint16_t mode_dual_scan(void) { return scan(true); } -static const char *_data_FX_MODE_DUAL_SCAN PROGMEM = "Scan Dual@!,# of dots;!,!,;!"; +static const char _data_FX_MODE_DUAL_SCAN[] PROGMEM = "Scan Dual@!,# of dots;!,!,!;!;1d"; /* @@ -430,7 +430,7 @@ uint16_t mode_rainbow(void) { return FRAMETIME; } -static const char *_data_FX_MODE_RAINBOW PROGMEM = "Colorloop@!,Saturation;1,2,3;!"; +static const char _data_FX_MODE_RAINBOW[] PROGMEM = "Colorloop@!,Saturation;1,2,3;!;1d"; /* @@ -440,7 +440,7 @@ uint16_t mode_rainbow_cycle(void) { uint16_t counter = (strip.now * ((SEGMENT.speed >> 2) +2)) & 0xFFFF; counter = counter >> 8; - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { //intensity/29 = 0 (1/16) 1 (1/8) 2 (1/4) 3 (1/2) 4 (1) 5 (2) 6 (4) 7 (8) 8 (16) uint8_t index = (i * (16 << (SEGMENT.intensity /29)) / SEGLEN) + counter; SEGMENT.setPixelColor(i, SEGMENT.color_wheel(index)); @@ -448,7 +448,7 @@ uint16_t mode_rainbow_cycle(void) { return FRAMETIME; } -static const char *_data_FX_MODE_RAINBOW_CYCLE PROGMEM = "Rainbow@!,Size;1,2,3;!"; +static const char _data_FX_MODE_RAINBOW_CYCLE[] PROGMEM = "Rainbow@!,Size;1,2,3;!;1d"; /* @@ -460,7 +460,7 @@ uint16_t running(uint32_t color1, uint32_t color2, bool theatre = false) { uint32_t it = strip.now / cycleTime; bool usePalette = color1 == SEGCOLOR(0); - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { uint32_t col = color2; if (usePalette) color1 = SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0); if (theatre) { @@ -487,7 +487,7 @@ uint16_t running(uint32_t color1, uint32_t color2, bool theatre = false) { uint16_t mode_theater_chase(void) { return running(SEGCOLOR(0), SEGCOLOR(1), true); } -static const char *_data_FX_MODE_THEATER_CHASE PROGMEM = "Theater@!,Gap size;!,!,;!"; +static const char _data_FX_MODE_THEATER_CHASE[] PROGMEM = "Theater@!,Gap size;!,!,;!;1d"; /* @@ -497,7 +497,7 @@ static const char *_data_FX_MODE_THEATER_CHASE PROGMEM = "Theater@!,Gap size;!,! uint16_t mode_theater_chase_rainbow(void) { return running(SEGMENT.color_wheel(SEGENV.step), SEGCOLOR(1), true); } -static const char *_data_FX_MODE_THEATER_CHASE_RAINBOW PROGMEM = "Theater Rainbow@!,Gap size;1,2,3;!"; +static const char _data_FX_MODE_THEATER_CHASE_RAINBOW[] PROGMEM = "Theater Rainbow@!,Gap size;1,2,3;!;1d"; /* @@ -507,7 +507,7 @@ uint16_t running_base(bool saw, bool dual=false) { uint8_t x_scale = SEGMENT.intensity >> 2; uint32_t counter = (strip.now * SEGMENT.speed) >> 9; - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { uint16_t a = i*x_scale - counter; if (saw) { a &= 0xFF; @@ -540,7 +540,7 @@ uint16_t running_base(bool saw, bool dual=false) { uint16_t mode_running_dual(void) { return running_base(false, true); } -static const char *_data_FX_MODE_RUNNING_DUAL PROGMEM = "Running Dual"; +static const char _data_FX_MODE_RUNNING_DUAL[] PROGMEM = "Running Dual"; /* @@ -549,7 +549,7 @@ static const char *_data_FX_MODE_RUNNING_DUAL PROGMEM = "Running Dual"; uint16_t mode_running_lights(void) { return running_base(false); } -static const char *_data_FX_MODE_RUNNING_LIGHTS PROGMEM = "Running@!,Wave width;!,!,;!"; +static const char _data_FX_MODE_RUNNING_LIGHTS[] PROGMEM = "Running@!,Wave width;!,!,;!;1d"; /* @@ -558,7 +558,7 @@ static const char *_data_FX_MODE_RUNNING_LIGHTS PROGMEM = "Running@!,Wave width; uint16_t mode_saw(void) { return running_base(true); } -static const char *_data_FX_MODE_SAW PROGMEM = "Saw@!,Width;!,!,;!"; +static const char _data_FX_MODE_SAW[] PROGMEM = "Saw@!,Width;!,!,;!;1d"; /* @@ -587,7 +587,7 @@ uint16_t mode_twinkle(void) { uint16_t PRNG16 = SEGENV.aux1; - for (uint16_t i = 0; i < SEGENV.aux0; i++) + for (int i = 0; i < SEGENV.aux0; i++) { PRNG16 = (uint16_t)(PRNG16 * 2053) + 13849; // next 'random' number uint32_t p = ((uint32_t)cols*rows * (uint32_t)PRNG16) >> 16; @@ -600,7 +600,7 @@ uint16_t mode_twinkle(void) { return FRAMETIME; } -static const char *_data_FX_MODE_TWINKLE PROGMEM = "Twinkle@!,;!,!,;!;mp12=0"; //pixels +static const char _data_FX_MODE_TWINKLE[] PROGMEM = "Twinkle@!,;!,!,;!;1d,2d"; //pixels /* @@ -609,14 +609,14 @@ static const char *_data_FX_MODE_TWINKLE PROGMEM = "Twinkle@!,;!,!,;!;mp12=0"; / uint16_t dissolve(uint32_t color) { bool wa = (SEGCOLOR(1) != 0 && strip.getBrightness() < 255); //workaround, can't compare getPixel to color if not full brightness - for (uint16_t j = 0; j <= SEGLEN / 15; j++) + for (int j = 0; j <= SEGLEN / 15; j++) { if (random8() <= SEGMENT.intensity) { for (size_t times = 0; times < 10; times++) //attempt to spawn a new pixel 5 times { uint16_t i = random16(SEGLEN); if (SEGENV.aux0) { //dissolve to primary/palette - if (SEGMENT.getPixelColor(i) == SEGCOLOR(1) || wa) { + if (SEGMENT.getPixelColor(i) == SEGCOLOR(1) || wa) { // TODO if (color == SEGCOLOR(0)) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); @@ -624,7 +624,7 @@ uint16_t dissolve(uint32_t color) { break; //only spawn 1 new pixel per frame per 50 LEDs } } else { //dissolve to secondary - if (SEGMENT.getPixelColor(i) != SEGCOLOR(1)) { SEGMENT.setPixelColor(i, SEGCOLOR(1)); break; } + if (SEGMENT.getPixelColor(i) != SEGCOLOR(1)) { SEGMENT.setPixelColor(i, SEGCOLOR(1)); break; } // TODO } } } @@ -646,7 +646,7 @@ uint16_t dissolve(uint32_t color) { uint16_t mode_dissolve(void) { return dissolve(SEGCOLOR(0)); } -static const char *_data_FX_MODE_DISSOLVE PROGMEM = "Dissolve@Repeat speed,Dissolve speed;!,!,;!"; +static const char _data_FX_MODE_DISSOLVE[] PROGMEM = "Dissolve@Repeat speed,Dissolve speed;!,!,;!;1d"; /* @@ -655,7 +655,7 @@ static const char *_data_FX_MODE_DISSOLVE PROGMEM = "Dissolve@Repeat speed,Disso uint16_t mode_dissolve_random(void) { return dissolve(SEGMENT.color_wheel(random8())); } -static const char *_data_FX_MODE_DISSOLVE_RANDOM PROGMEM = "Dissolve Rnd@Repeat speed,Dissolve speed;,!,;!"; +static const char _data_FX_MODE_DISSOLVE_RANDOM[] PROGMEM = "Dissolve Rnd@Repeat speed,Dissolve speed;,!,;!;1d"; /* @@ -663,7 +663,7 @@ static const char *_data_FX_MODE_DISSOLVE_RANDOM PROGMEM = "Dissolve Rnd@Repeat * Inspired by www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/ */ uint16_t mode_sparkle(void) { - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 1)); } uint32_t cycleTime = 10 + (255 - SEGMENT.speed)*2; @@ -676,10 +676,10 @@ uint16_t mode_sparkle(void) { } if (strip.isMatrix) SEGMENT.setPixelColorXY(SEGENV.aux0, SEGENV.aux1, SEGCOLOR(0)); - else SEGMENT.setPixelColor(SEGENV.aux0, SEGCOLOR(0)); + else SEGMENT.setPixelColor(SEGENV.aux0, SEGCOLOR(0)); return FRAMETIME; } -static const char *_data_FX_MODE_SPARKLE PROGMEM = "Sparkle@!,;!,!,;!"; +static const char _data_FX_MODE_SPARKLE[] PROGMEM = "Sparkle@!,;!,!,;!;1d,2d"; /* @@ -687,21 +687,21 @@ static const char *_data_FX_MODE_SPARKLE PROGMEM = "Sparkle@!,;!,!,;!"; * Inspired by www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/ */ uint16_t mode_flash_sparkle(void) { - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); } if (strip.now - SEGENV.aux0 > SEGENV.step) { if(random8((255-SEGMENT.intensity) >> 4) == 0) { if (strip.isMatrix) SEGMENT.setPixelColorXY(random16(SEGLEN), random16(0,SEGMENT.virtualHeight()-1), SEGCOLOR(1)); - else SEGMENT.setPixelColor(random16(SEGLEN), SEGCOLOR(1)); //flash + else SEGMENT.setPixelColor(random16(SEGLEN), SEGCOLOR(1)); //flash } SEGENV.step = strip.now; SEGENV.aux0 = 255-SEGMENT.speed; } return FRAMETIME; } -static const char *_data_FX_MODE_FLASH_SPARKLE PROGMEM = "Sparkle Dark@!,!;Bg,Fx,;!"; +static const char _data_FX_MODE_FLASH_SPARKLE[] PROGMEM = "Sparkle Dark@!,!;Bg,Fx,;!;1d,2d"; /* @@ -709,15 +709,15 @@ static const char *_data_FX_MODE_FLASH_SPARKLE PROGMEM = "Sparkle Dark@!,!;Bg,Fx * Inspired by www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/ */ uint16_t mode_hyper_sparkle(void) { - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); } if (strip.now - SEGENV.aux0 > SEGENV.step) { if(random8((255-SEGMENT.intensity) >> 4) == 0) { - for(uint16_t i = 0; i < MAX(1, SEGLEN/3); i++) { + for (int i = 0; i < MAX(1, SEGLEN/3); i++) { if (strip.isMatrix) SEGMENT.setPixelColorXY(random16(SEGLEN), random16(0,SEGMENT.virtualHeight()), SEGCOLOR(1)); - else SEGMENT.setPixelColor(random16(SEGLEN), SEGCOLOR(1)); + else SEGMENT.setPixelColor(random16(SEGLEN), SEGCOLOR(1)); } } SEGENV.step = strip.now; @@ -725,14 +725,14 @@ uint16_t mode_hyper_sparkle(void) { } return FRAMETIME; } -static const char *_data_FX_MODE_HYPER_SPARKLE PROGMEM = "Sparkle+@!,!;Bg,Fx,;!"; +static const char _data_FX_MODE_HYPER_SPARKLE[] PROGMEM = "Sparkle+@!,!;Bg,Fx,;!;1d,2d"; /* * Strobe effect with different strobe count and pause, controlled by speed. */ uint16_t mode_multi_strobe(void) { - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 1)); } @@ -755,7 +755,7 @@ uint16_t mode_multi_strobe(void) { return FRAMETIME; } -static const char *_data_FX_MODE_MULTI_STROBE PROGMEM = "Strobe Mega@!,!;!,!,;!"; +static const char _data_FX_MODE_MULTI_STROBE[] PROGMEM = "Strobe Mega@!,!;!,!,;!;1d"; /* @@ -763,7 +763,7 @@ static const char *_data_FX_MODE_MULTI_STROBE PROGMEM = "Strobe Mega@!,!;!,!,;!" */ uint16_t mode_android(void) { - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 1)); } @@ -791,15 +791,15 @@ uint16_t mode_android(void) { if (a + SEGENV.aux1 < SEGLEN) { - for(uint16_t i = a; i < a+SEGENV.aux1; i++) { + for (int i = a; i < a+SEGENV.aux1; i++) { SEGMENT.setPixelColor(i, SEGCOLOR(0)); } } else { - for(uint16_t i = a; i < SEGLEN; i++) { + for (int i = a; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGCOLOR(0)); } - for(uint16_t i = 0; i < SEGENV.aux1 - (SEGLEN -a); i++) { + for (int i = 0; i < SEGENV.aux1 - (SEGLEN -a); i++) { SEGMENT.setPixelColor(i, SEGCOLOR(0)); } } @@ -807,7 +807,7 @@ uint16_t mode_android(void) { return 3 + ((8 * (uint32_t)(255 - SEGMENT.speed)) / SEGLEN); } -static const char *_data_FX_MODE_ANDROID PROGMEM = "Android@!,Width;!,!,;!;mp12=1"; //vertical +static const char _data_FX_MODE_ANDROID[] PROGMEM = "Android@!,Width;!,!,;!;mp12=1,1d"; //vertical /* @@ -841,7 +841,7 @@ uint16_t chase(uint32_t color1, uint32_t color2, uint32_t color3, bool do_palett //background if (do_palette) { - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 1)); } } else SEGMENT.fill(color1); @@ -850,31 +850,31 @@ uint16_t chase(uint32_t color1, uint32_t color2, uint32_t color3, bool do_palett if (chase_random) { color1 = SEGMENT.color_wheel(SEGENV.aux1); - for (uint16_t i = a; i < SEGLEN; i++) + for (int i = a; i < SEGLEN; i++) SEGMENT.setPixelColor(i, color1); } //fill between points a and b with color2 if (a < b) { - for (uint16_t i = a; i < b; i++) + for (int i = a; i < b; i++) SEGMENT.setPixelColor(i, color2); } else { - for (uint16_t i = a; i < SEGLEN; i++) //fill until end + for (int i = a; i < SEGLEN; i++) //fill until end SEGMENT.setPixelColor(i, color2); - for (uint16_t i = 0; i < b; i++) //fill from start until b + for (int i = 0; i < b; i++) //fill from start until b SEGMENT.setPixelColor(i, color2); } //fill between points b and c with color2 if (b < c) { - for (uint16_t i = b; i < c; i++) + for (int i = b; i < c; i++) SEGMENT.setPixelColor(i, color3); } else { - for (uint16_t i = b; i < SEGLEN; i++) //fill until end + for (int i = b; i < SEGLEN; i++) //fill until end SEGMENT.setPixelColor(i, color3); - for (uint16_t i = 0; i < c; i++) //fill from start until c + for (int i = 0; i < c; i++) //fill from start until c SEGMENT.setPixelColor(i, color3); } @@ -888,7 +888,7 @@ uint16_t chase(uint32_t color1, uint32_t color2, uint32_t color3, bool do_palett uint16_t mode_chase_color(void) { return chase(SEGCOLOR(1), (SEGCOLOR(2)) ? SEGCOLOR(2) : SEGCOLOR(0), SEGCOLOR(0), true); } -static const char *_data_FX_MODE_CHASE_COLOR PROGMEM = "Chase@!,Width;!,!,!;!"; +static const char _data_FX_MODE_CHASE_COLOR[] PROGMEM = "Chase@!,Width;!,!,!;!;1d"; /* @@ -897,7 +897,7 @@ static const char *_data_FX_MODE_CHASE_COLOR PROGMEM = "Chase@!,Width;!,!,!;!"; uint16_t mode_chase_random(void) { return chase(SEGCOLOR(1), (SEGCOLOR(2)) ? SEGCOLOR(2) : SEGCOLOR(0), SEGCOLOR(0), false); } -static const char *_data_FX_MODE_CHASE_RANDOM PROGMEM = "Chase Random@!,Width;!,,!;!"; +static const char _data_FX_MODE_CHASE_RANDOM[] PROGMEM = "Chase Random@!,Width;!,,!;!;1d"; /* @@ -911,7 +911,7 @@ uint16_t mode_chase_rainbow(void) { return chase(color, SEGCOLOR(0), SEGCOLOR(1), false); } -static const char *_data_FX_MODE_CHASE_RAINBOW PROGMEM = "Chase Rainbow@!,Width;!,!,;"; +static const char _data_FX_MODE_CHASE_RAINBOW[] PROGMEM = "Chase Rainbow@!,Width;!,!,;;1d"; /* @@ -925,7 +925,7 @@ uint16_t mode_chase_rainbow_white(void) { return chase(SEGCOLOR(0), color2, color3, false); } -static const char *_data_FX_MODE_CHASE_RAINBOW_WHITE PROGMEM = "Rainbow Runner@!,Size;Bg,,;"; +static const char _data_FX_MODE_CHASE_RAINBOW_WHITE[] PROGMEM = "Rainbow Runner@!,Size;Bg,,;;1d"; /* @@ -963,21 +963,21 @@ uint16_t mode_colorful(void) { SEGENV.step = it; } - for (uint16_t i = 0; i < SEGLEN; i+= numColors) + for (int i = 0; i < SEGLEN; i+= numColors) { - for (uint16_t j = 0; j < numColors; j++) SEGMENT.setPixelColor(i + j, cols[SEGENV.aux0 + j]); + for (int j = 0; j < numColors; j++) SEGMENT.setPixelColor(i + j, cols[SEGENV.aux0 + j]); } return FRAMETIME; } -static const char *_data_FX_MODE_COLORFUL PROGMEM = "Colorful@!,Saturation;1,2,3;!"; +static const char _data_FX_MODE_COLORFUL[] PROGMEM = "Colorful@!,Saturation;1,2,3;!;1d"; /* * Emulates a traffic light. */ uint16_t mode_traffic_light(void) { - for(uint16_t i=0; i < SEGLEN; i++) + for (int i=0; i < SEGLEN; i++) SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 1)); uint32_t mdelay = 500; for (int i = 0; i < SEGLEN-2 ; i+=3) @@ -1001,7 +1001,7 @@ uint16_t mode_traffic_light(void) { return FRAMETIME; } -static const char *_data_FX_MODE_TRAFFIC_LIGHT PROGMEM = "Traffic Light@!,;,!,;!"; +static const char _data_FX_MODE_TRAFFIC_LIGHT[] PROGMEM = "Traffic Light@!,;,!,;!;1d"; /* @@ -1011,7 +1011,7 @@ static const char *_data_FX_MODE_TRAFFIC_LIGHT PROGMEM = "Traffic Light@!,;,!,;! uint16_t mode_chase_flash(void) { uint8_t flash_step = SEGENV.call % ((FLASH_COUNT * 2) + 1); - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); } @@ -1031,7 +1031,7 @@ uint16_t mode_chase_flash(void) { } return delay; } -static const char *_data_FX_MODE_CHASE_FLASH PROGMEM = "Chase Flash@!,;Bg,Fx,!;!"; +static const char _data_FX_MODE_CHASE_FLASH[] PROGMEM = "Chase Flash@!,;Bg,Fx,!;!;1d"; /* @@ -1040,14 +1040,14 @@ static const char *_data_FX_MODE_CHASE_FLASH PROGMEM = "Chase Flash@!,;Bg,Fx,!;! uint16_t mode_chase_flash_random(void) { uint8_t flash_step = SEGENV.call % ((FLASH_COUNT * 2) + 1); - for(uint16_t i = 0; i < SEGENV.step; i++) { + for (int i = 0; i < SEGENV.aux1; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_wheel(SEGENV.aux0)); } uint16_t delay = 1 + ((10 * (uint16_t)(255 - SEGMENT.speed)) / SEGLEN); if(flash_step < (FLASH_COUNT * 2)) { - uint16_t n = SEGENV.step; - uint16_t m = (SEGENV.step + 1) % SEGLEN; + uint16_t n = SEGENV.aux1; + uint16_t m = (SEGENV.aux1 + 1) % SEGLEN; if(flash_step % 2 == 0) { SEGMENT.setPixelColor( n, SEGCOLOR(0)); SEGMENT.setPixelColor( m, SEGCOLOR(0)); @@ -1058,15 +1058,15 @@ uint16_t mode_chase_flash_random(void) { delay = 30; } } else { - SEGENV.step = (SEGENV.step + 1) % SEGLEN; + SEGENV.aux1 = (SEGENV.aux1 + 1) % SEGLEN; - if (SEGENV.step == 0) { + if (SEGENV.aux1 == 0) { SEGENV.aux0 = SEGMENT.get_random_wheel_index(SEGENV.aux0); } } return delay; } -static const char *_data_FX_MODE_CHASE_FLASH_RANDOM PROGMEM = "Chase Flash Rnd@!,;,Fx,;0"; +static const char _data_FX_MODE_CHASE_FLASH_RANDOM[] PROGMEM = "Chase Flash Rnd@!,;,Fx,;0;1d"; /* @@ -1075,7 +1075,7 @@ static const char *_data_FX_MODE_CHASE_FLASH_RANDOM PROGMEM = "Chase Flash Rnd@! uint16_t mode_running_color(void) { return running(SEGCOLOR(0), SEGCOLOR(1)); } -static const char *_data_FX_MODE_RUNNING_COLOR PROGMEM = "Chase 2@!,Width;!,!,;!"; +static const char _data_FX_MODE_RUNNING_COLOR[] PROGMEM = "Chase 2@!,Width;!,!,;!;1d"; /* @@ -1091,7 +1091,7 @@ uint16_t mode_running_random(void) { uint8_t z = it % zoneSize; bool nzone = (!z && it != SEGENV.aux1); - for (uint16_t i=SEGLEN-1; i > 0; i--) { + for (int i=SEGLEN-1; i > 0; i--) { if (nzone || z >= zoneSize) { uint8_t lastrand = PRNG16 >> 8; int16_t diff = 0; @@ -1112,7 +1112,7 @@ uint16_t mode_running_random(void) { SEGENV.aux1 = it; return FRAMETIME; } -static const char *_data_FX_MODE_RUNNING_RANDOM PROGMEM = "Stream"; +static const char _data_FX_MODE_RUNNING_RANDOM[] PROGMEM = "Stream"; uint16_t larson_scanner(bool dual) { @@ -1125,7 +1125,7 @@ uint16_t larson_scanner(bool dual) { SEGENV.aux0 = !SEGENV.aux0; } - for (uint16_t i = SEGENV.step; i < index; i++) { + for (int i = SEGENV.step; i < index; i++) { uint16_t j = (SEGENV.aux0)?i:SEGLEN-1-i; SEGMENT.setPixelColor( j, SEGMENT.color_from_palette(j, true, PALETTE_SOLID_WRAP, 0)); } @@ -1137,7 +1137,7 @@ uint16_t larson_scanner(bool dual) { c = SEGMENT.color_from_palette(index, true, PALETTE_SOLID_WRAP, 0); } - for (uint16_t i = SEGENV.step; i < index; i++) { + for (int i = SEGENV.step; i < index; i++) { uint16_t j = (SEGENV.aux0)?SEGLEN-1-i:i; SEGMENT.setPixelColor(j, c); } @@ -1154,7 +1154,7 @@ uint16_t larson_scanner(bool dual) { uint16_t mode_larson_scanner(void){ return larson_scanner(false); } -static const char *_data_FX_MODE_LARSON_SCANNER PROGMEM = "Scanner@!,Fade rate;!,!,;!;mp12=0"; +static const char _data_FX_MODE_LARSON_SCANNER[] PROGMEM = "Scanner@!,Fade rate;!,!,;!;mp12=0,1d"; /* @@ -1164,7 +1164,7 @@ static const char *_data_FX_MODE_LARSON_SCANNER PROGMEM = "Scanner@!,Fade rate;! uint16_t mode_dual_larson_scanner(void){ return larson_scanner(true); } -static const char *_data_FX_MODE_DUAL_LARSON_SCANNER PROGMEM = "Scanner Dual@!,Fade rate;!,!,;!;mp12=0"; +static const char _data_FX_MODE_DUAL_LARSON_SCANNER[] PROGMEM = "Scanner Dual@!,Fade rate;!,!,;!;mp12=0,1d"; /* @@ -1179,11 +1179,11 @@ uint16_t mode_comet(void) { SEGMENT.setPixelColor( index, SEGMENT.color_from_palette(index, true, PALETTE_SOLID_WRAP, 0)); if (index > SEGENV.aux0) { - for (uint16_t i = SEGENV.aux0; i < index ; i++) { + for (int i = SEGENV.aux0; i < index ; i++) { SEGMENT.setPixelColor( i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); } } else if (index < SEGENV.aux0 && index < 10) { - for (uint16_t i = 0; i < index ; i++) { + for (int i = 0; i < index ; i++) { SEGMENT.setPixelColor( i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); } } @@ -1191,7 +1191,7 @@ uint16_t mode_comet(void) { return FRAMETIME; } -static const char *_data_FX_MODE_COMET PROGMEM = "Lighthouse@!,Fade rate;!,!,!;!"; +static const char _data_FX_MODE_COMET[] PROGMEM = "Lighthouse@!,Fade rate;!,!,!;!;1d"; /* @@ -1210,26 +1210,26 @@ uint16_t mode_fireworks() { bool valid1 = (SEGENV.aux0 < width*height); bool valid2 = (SEGENV.aux1 < width*height); uint32_t sv1 = 0, sv2 = 0; - if (valid1) sv1 = strip.isMatrix ? SEGMENT.getPixelColorXY(SEGENV.aux0%width, SEGENV.aux0/width) : SEGMENT.getPixelColor(SEGENV.aux0); // get spark color - if (valid2) sv2 = strip.isMatrix ? SEGMENT.getPixelColorXY(SEGENV.aux1%width, SEGENV.aux1/width) : SEGMENT.getPixelColor(SEGENV.aux1); + if (valid1) sv1 = strip.isMatrix ? SEGMENT.getPixelColorXY(SEGENV.aux0%width, SEGENV.aux0/width) : SEGMENT.getPixelColor(SEGENV.aux0); // TODO get spark color + if (valid2) sv2 = strip.isMatrix ? SEGMENT.getPixelColorXY(SEGENV.aux1%width, SEGENV.aux1/width) : SEGMENT.getPixelColor(SEGENV.aux1); // TODO if (!SEGENV.step) SEGMENT.blur(16); if (valid1) { if (strip.isMatrix) SEGMENT.setPixelColorXY(SEGENV.aux0%width, SEGENV.aux0/width, sv1); else SEGMENT.setPixelColor(SEGENV.aux0, sv1); } // restore spark color after blur if (valid2) { if (strip.isMatrix) SEGMENT.setPixelColorXY(SEGENV.aux1%width, SEGENV.aux1/width, sv2); else SEGMENT.setPixelColor(SEGENV.aux1, sv2); } // restore old spark color after blur - for (uint16_t i=0; i> 1)) == 0) { uint16_t index = random16(width*height); uint16_t j = index % width, k = index / width; uint32_t col = SEGMENT.color_from_palette(random8(), false, false, 0); if (strip.isMatrix) SEGMENT.setPixelColorXY(j, k, col); - else SEGMENT.setPixelColor(index, col); + else SEGMENT.setPixelColor(index, col); SEGENV.aux1 = SEGENV.aux0; // old spark SEGENV.aux0 = index; // remember where spark occured } } return FRAMETIME; } -static const char *_data_FX_MODE_FIREWORKS PROGMEM = "Fireworks@,Frequency=192;!,!,;!=11"; +static const char _data_FX_MODE_FIREWORKS[] PROGMEM = "Fireworks@,Frequency;!,!,;!;ix=192,pal=11,1d,2d"; //Twinkling LEDs running. Inspired by https://github.com/kitesurfer1404/WS2812FX/blob/master/src/custom/Rain.h @@ -1246,9 +1246,9 @@ uint16_t mode_rain() SEGENV.aux1 = (SEGENV.aux1 % width) + (SEGENV.aux1 / width + 1) * width; } else { //shift all leds left - uint32_t ctemp = SEGMENT.getPixelColor(0); - for(uint16_t i = 0; i < SEGLEN - 1; i++) { - SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i+1)); + uint32_t ctemp = SEGMENT.getPixelColor(0); // TODO + for (int i = 0; i < SEGLEN - 1; i++) { + SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i+1)); // TODO } SEGMENT.setPixelColor(SEGLEN -1, ctemp); // wrap around SEGENV.aux0++; // increase spark index @@ -1261,7 +1261,7 @@ uint16_t mode_rain() } return mode_fireworks(); } -static const char *_data_FX_MODE_RAIN PROGMEM = "Rain@!,Spawning rate=128;!,!,;"; +static const char _data_FX_MODE_RAIN[] PROGMEM = "Rain@!,Spawning rate;!,!,;;ix=128,pal=0,1d,2d"; /* @@ -1278,7 +1278,7 @@ uint16_t mode_fire_flicker(void) { byte b = (SEGCOLOR(0) ); byte lum = (SEGMENT.palette == 0) ? MAX(w, MAX(r, MAX(g, b))) : 255; lum /= (((256-SEGMENT.intensity)/16)+1); - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { byte flicker = random8(lum); if (SEGMENT.palette == 0) { SEGMENT.setPixelColor(i, MAX(r - flicker, 0), MAX(g - flicker, 0), MAX(b - flicker, 0), MAX(w - flicker, 0)); @@ -1290,7 +1290,7 @@ uint16_t mode_fire_flicker(void) { SEGENV.step = it; return FRAMETIME; } -static const char *_data_FX_MODE_FIRE_FLICKER PROGMEM = "Fire Flicker@!,!;!,,;!"; +static const char _data_FX_MODE_FIRE_FLICKER[] PROGMEM = "Fire Flicker@!,!;!,,;!;1d"; /* @@ -1306,7 +1306,7 @@ uint16_t gradient_base(bool loading) { int p1 = pp-SEGLEN; int p2 = pp+SEGLEN; - for(uint16_t i = 0; i < SEGLEN; i++) + for (int i = 0; i < SEGLEN; i++) { if (loading) { @@ -1328,7 +1328,7 @@ uint16_t gradient_base(bool loading) { uint16_t mode_gradient(void) { return gradient_base(false); } -static const char *_data_FX_MODE_GRADIENT PROGMEM = "Gradient@!,Spread=16;!,!,;!"; +static const char _data_FX_MODE_GRADIENT[] PROGMEM = "Gradient@!,Spread;!,!,;!;ix=16,1d"; /* @@ -1337,7 +1337,7 @@ static const char *_data_FX_MODE_GRADIENT PROGMEM = "Gradient@!,Spread=16;!,!,;! uint16_t mode_loading(void) { return gradient_base(true); } -static const char *_data_FX_MODE_LOADING PROGMEM = "Loading@!,Fade=16;!,!,;!"; +static const char _data_FX_MODE_LOADING[] PROGMEM = "Loading@!,Fade;!,!,;!;ix=16,1d"; //American Police Light with all LEDs Red and Blue @@ -1349,7 +1349,7 @@ uint16_t police_base(uint32_t color1, uint32_t color2) uint16_t width = ((SEGLEN*(SEGMENT.intensity+1))>>9); //max width is half the strip if (!width) width = 1; - for (uint16_t i = 0; i < width; i++) { + for (int i = 0; i < width; i++) { uint16_t indexR = (offset + i) % SEGLEN; uint16_t indexB = (offset + i + (SEGLEN>>1)) % SEGLEN; SEGMENT.setPixelColor(indexR, color1); @@ -1365,7 +1365,7 @@ uint16_t police_base(uint32_t color1, uint32_t color2) // SEGMENT.fill(SEGCOLOR(1)); // return police_base(RED, BLUE); //} -//static const char *_data_FX_MODE_POLICE PROGMEM = "Police@!,Width;,Bg,;0"; +//static const char _data_FX_MODE_POLICE[] PROGMEM = "Police@!,Width;,Bg,;0"; //Police Lights with custom colors @@ -1376,7 +1376,7 @@ uint16_t mode_two_dots() return police_base(SEGCOLOR(0), color2); } -static const char *_data_FX_MODE_TWO_DOTS PROGMEM = "Two Dots@!,Dot size;1,2,Bg;!"; +static const char _data_FX_MODE_TWO_DOTS[] PROGMEM = "Two Dots@!,Dot size;1,2,Bg;!;1d"; /* @@ -1395,7 +1395,7 @@ typedef struct Flasher { uint16_t mode_fairy() { //set every pixel to a 'random' color from palette (using seed so it doesn't change between frames) uint16_t PRNG16 = 5100 + strip.getCurrSegmentId(); - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { PRNG16 = (uint16_t)(PRNG16 * 2053) + 1384; //next 'random' number SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(PRNG16 >> 8, false, false, 0)); } @@ -1416,12 +1416,12 @@ uint16_t mode_fairy() { uint8_t flashersInZone = numFlashers/zones; uint8_t flasherBri[FLASHERS_PER_ZONE*2 -1]; - for (uint16_t z = 0; z < zones; z++) { + for (int z = 0; z < zones; z++) { uint16_t flasherBriSum = 0; uint16_t firstFlasher = z*flashersInZone; if (z == zones-1) flashersInZone = numFlashers-(flashersInZone*(zones-1)); - for (uint16_t f = firstFlasher; f < firstFlasher + flashersInZone; f++) { + for (int f = firstFlasher; f < firstFlasher + flashersInZone; f++) { uint16_t stateTime = now16 - flashers[f].stateStart; //random on/off time reached, switch state if (stateTime > flashers[f].stateDur * 10) { @@ -1450,12 +1450,12 @@ uint16_t mode_fairy() { uint8_t avgFlasherBri = flasherBriSum / flashersInZone; uint8_t globalPeakBri = 255 - ((avgFlasherBri * MAX_SHIMMER) >> 8); //183-255, suitable for 1/5th of LEDs flashers - for (uint16_t f = firstFlasher; f < firstFlasher + flashersInZone; f++) { + for (int f = firstFlasher; f < firstFlasher + flashersInZone; f++) { uint8_t bri = (flasherBri[f - firstFlasher] * globalPeakBri) / 255; PRNG16 = (uint16_t)(PRNG16 * 2053) + 1384; //next 'random' number uint16_t flasherPos = f*flasherDistance; SEGMENT.setPixelColor(flasherPos, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(PRNG16 >> 8, false, false, 0), bri)); - for (uint16_t i = flasherPos+1; i < flasherPos+flasherDistance && i < SEGLEN; i++) { + for (int i = flasherPos+1; i < flasherPos+flasherDistance && i < SEGLEN; i++) { PRNG16 = (uint16_t)(PRNG16 * 2053) + 1384; //next 'random' number SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(PRNG16 >> 8, false, false, 0, globalPeakBri)); } @@ -1463,7 +1463,7 @@ uint16_t mode_fairy() { } return FRAMETIME; } -static const char *_data_FX_MODE_FAIRY PROGMEM = "Fairy"; +static const char _data_FX_MODE_FAIRY[] PROGMEM = "Fairy"; /* @@ -1480,7 +1480,7 @@ uint16_t mode_fairytwinkle() { uint16_t riseFallTime = 400 + (255-SEGMENT.speed)*3; uint16_t maxDur = riseFallTime/100 + ((255 - SEGMENT.intensity) >> 2) + 13 + ((255 - SEGMENT.intensity) >> 1); - for (uint16_t f = 0; f < SEGLEN; f++) { + for (int f = 0; f < SEGLEN; f++) { uint16_t stateTime = now16 - flashers[f].stateStart; //random on/off time reached, switch state if (stateTime > flashers[f].stateDur * 100) { @@ -1502,7 +1502,7 @@ uint16_t mode_fairytwinkle() { if (flashers[f].stateOn && flashers[f].stateDur > maxDur) flashers[f].stateDur = maxDur; //react more quickly on intensity change if (stateTime > riseFallTime) stateTime = riseFallTime; //for flasher brightness calculation, fades in first 255 ms of state uint8_t fadeprog = 255 - ((stateTime * 255) / riseFallTime); - uint8_t flasherBri = (flashers[f].stateOn) ? 255-strip.gamma8(fadeprog) : strip.gamma8(fadeprog); + uint8_t flasherBri = (flashers[f].stateOn) ? 255-gamma8(fadeprog) : gamma8(fadeprog); uint16_t lastR = PRNG16; uint16_t diff = 0; while (diff < 0x4000) { //make sure colors of two adjacent LEDs differ enough @@ -1513,7 +1513,7 @@ uint16_t mode_fairytwinkle() { } return FRAMETIME; } -static const char *_data_FX_MODE_FAIRYTWINKLE PROGMEM = "Fairy Twinkle@;;;mp12=0"; //pixels +static const char _data_FX_MODE_FAIRYTWINKLE[] PROGMEM = "Fairy Twinkle@;;;mp12=0,1d"; //pixels /* @@ -1525,7 +1525,7 @@ uint16_t tricolor_chase(uint32_t color1, uint32_t color2) { uint8_t width = (1 + (SEGMENT.intensity>>4)); // value of 1-16 for each colour uint8_t index = it % (width*3); - for (uint16_t i = 0; i < SEGLEN; i++, index++) { + for (int i = 0; i < SEGLEN; i++, index++) { if (index > (width*3)-1) index = 0; uint32_t color = color1; @@ -1544,7 +1544,7 @@ uint16_t tricolor_chase(uint32_t color1, uint32_t color2) { uint16_t mode_tricolor_chase(void) { return tricolor_chase(SEGCOLOR(2), SEGCOLOR(0)); } -static const char *_data_FX_MODE_TRICOLOR_CHASE PROGMEM = "Chase 3@!,Size;1,2,3;0"; +static const char _data_FX_MODE_TRICOLOR_CHASE[] PROGMEM = "Chase 3@!,Size;1,2,3;0;1d"; /* @@ -1585,7 +1585,7 @@ uint16_t mode_icu(void) { return SPEED_FORMULA_L; } -static const char *_data_FX_MODE_ICU PROGMEM = "ICU"; +static const char _data_FX_MODE_ICU[] PROGMEM = "ICU"; /* @@ -1599,26 +1599,26 @@ uint16_t mode_tricolor_wipe(void) uint16_t ledIndex = (prog * SEGLEN * 3) >> 16; uint16_t ledOffset = ledIndex; - for (uint16_t i = 0; i < SEGLEN; i++) + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 2)); } if(ledIndex < SEGLEN) { //wipe from 0 to 1 - for (uint16_t i = 0; i < SEGLEN; i++) + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, (i > ledOffset)? SEGCOLOR(0) : SEGCOLOR(1)); } } else if (ledIndex < SEGLEN*2) { //wipe from 1 to 2 ledOffset = ledIndex - SEGLEN; - for (uint16_t i = ledOffset +1; i < SEGLEN; i++) + for (int i = ledOffset +1; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, SEGCOLOR(1)); } } else //wipe from 2 to 0 { ledOffset = ledIndex - SEGLEN*2; - for (uint16_t i = 0; i <= ledOffset; i++) + for (int i = 0; i <= ledOffset; i++) { SEGMENT.setPixelColor(i, SEGCOLOR(0)); } @@ -1626,7 +1626,7 @@ uint16_t mode_tricolor_wipe(void) return FRAMETIME; } -static const char *_data_FX_MODE_TRICOLOR_WIPE PROGMEM = "Tri Wipe@!,;1,2,3;0"; +static const char _data_FX_MODE_TRICOLOR_WIPE[] PROGMEM = "Tri Wipe@!,;1,2,3;0;1d"; /* @@ -1657,7 +1657,7 @@ uint16_t mode_tricolor_fade(void) } byte stp = prog; // % 256 - for(uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { uint32_t color; if (stage == 2) { color = color_blend(SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 2), color2, stp); @@ -1671,7 +1671,7 @@ uint16_t mode_tricolor_fade(void) return FRAMETIME; } -static const char *_data_FX_MODE_TRICOLOR_FADE PROGMEM = "Tri Fade"; +static const char _data_FX_MODE_TRICOLOR_FADE[] PROGMEM = "Tri Fade"; /* @@ -1689,7 +1689,7 @@ uint16_t mode_multi_comet(void) uint16_t* comets = reinterpret_cast(SEGENV.data); - for(uint8_t i=0; i < 8; i++) { + for (int i=0; i < 8; i++) { if(comets[i] < SEGLEN) { uint16_t index = comets[i]; if (SEGCOLOR(2) != 0) @@ -1710,7 +1710,7 @@ uint16_t mode_multi_comet(void) SEGENV.step = it; return FRAMETIME; } -static const char *_data_FX_MODE_MULTI_COMET PROGMEM = "Multi Comet"; +static const char _data_FX_MODE_MULTI_COMET[] PROGMEM = "Multi Comet"; /* @@ -1729,7 +1729,7 @@ uint16_t mode_random_chase(void) uint32_t color = SEGENV.step; random16_set_seed(SEGENV.aux0); - for(uint16_t i = SEGLEN -1; i > 0; i--) { + for (int i = SEGLEN -1; i > 0; i--) { uint8_t r = random8(6) != 0 ? (color >> 16 & 0xFF) : random8(); uint8_t g = random8(6) != 0 ? (color >> 8 & 0xFF) : random8(); uint8_t b = random8(6) != 0 ? (color & 0xFF) : random8(); @@ -1746,7 +1746,7 @@ uint16_t mode_random_chase(void) random16_set_seed(prevSeed); // restore original seed so other effects can use "random" PRNG return FRAMETIME; } -static const char *_data_FX_MODE_RANDOM_CHASE PROGMEM = "Stream 2"; +static const char _data_FX_MODE_RANDOM_CHASE[] PROGMEM = "Stream 2"; //7 bytes @@ -1779,7 +1779,7 @@ uint16_t mode_oscillate(void) uint32_t cycleTime = 20 + (2 * (uint32_t)(255 - SEGMENT.speed)); uint32_t it = strip.now / cycleTime; - for(uint8_t i = 0; i < numOscillators; i++) { + for (int i = 0; i < numOscillators; i++) { // if the counter has increased, move the oscillator by the random step if (it != SEGENV.step) oscillators[i].pos += oscillators[i].dir * oscillators[i].speed; oscillators[i].size = SEGLEN/(3+SEGMENT.intensity/8); @@ -1796,9 +1796,9 @@ uint16_t mode_oscillate(void) } } - for(uint16_t i=0; i < SEGLEN; i++) { + for (int i=0; i < SEGLEN; i++) { uint32_t color = BLACK; - for(uint8_t j=0; j < numOscillators; j++) { + for (int j=0; j < numOscillators; j++) { if(i >= oscillators[j].pos - oscillators[j].size && i <= oscillators[j].pos + oscillators[j].size) { color = (color == BLACK) ? SEGCOLOR(j) : color_blend(color, SEGCOLOR(j), 128); } @@ -1809,7 +1809,7 @@ uint16_t mode_oscillate(void) SEGENV.step = it; return FRAMETIME; } -static const char *_data_FX_MODE_OSCILLATE PROGMEM = "Oscillate"; +static const char _data_FX_MODE_OSCILLATE[] PROGMEM = "Oscillate"; //TODO @@ -1853,7 +1853,7 @@ uint16_t mode_lightning(void) } return FRAMETIME; } -static const char *_data_FX_MODE_LIGHTNING PROGMEM = "Lightning"; +static const char _data_FX_MODE_LIGHTNING[] PROGMEM = "Lightning"; // Pride2015 @@ -1878,7 +1878,7 @@ uint16_t mode_pride_2015(void) uint16_t brightnesstheta16 = sPseudotime; CRGB fastled_col; - for (uint16_t i = 0 ; i < SEGLEN; i++) { + for (int i = 0 ; i < SEGLEN; i++) { hue16 += hueinc16; uint8_t hue8 = hue16 >> 8; @@ -1890,7 +1890,7 @@ uint16_t mode_pride_2015(void) bri8 += (255 - brightdepth); CRGB newcolor = CHSV( hue8, sat8, bri8); - fastled_col = CRGB(SEGMENT.getPixelColor(i)); + fastled_col = CRGB(SEGMENT.getPixelColor(i)); // TODO nblend(fastled_col, newcolor, 64); SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); @@ -1899,7 +1899,7 @@ uint16_t mode_pride_2015(void) SEGENV.aux0 = sHue16; return FRAMETIME; } -static const char *_data_FX_MODE_PRIDE_2015 PROGMEM = "Pride 2015@!,;;"; +static const char _data_FX_MODE_PRIDE_2015[] PROGMEM = "Pride 2015@!,;;;1d"; //eight colored dots, weaving in and out of sync with each other @@ -1907,16 +1907,16 @@ uint16_t mode_juggle(void){ SEGMENT.fade_out(SEGMENT.intensity); CRGB fastled_col; byte dothue = 0; - for ( byte i = 0; i < 8; i++) { + for (int i = 0; i < 8; i++) { uint16_t index = 0 + beatsin88((128 + SEGMENT.speed)*(i + 7), 0, SEGLEN -1); - fastled_col = CRGB(SEGMENT.getPixelColor(index)); + fastled_col = CRGB(SEGMENT.getPixelColor(index)); // TODO fastled_col |= (SEGMENT.palette==0)?CHSV(dothue, 220, 255):ColorFromPalette(SEGPALETTE, dothue, 255); SEGMENT.setPixelColor(index, fastled_col.red, fastled_col.green, fastled_col.blue); dothue += 32; } return FRAMETIME; } -static const char *_data_FX_MODE_JUGGLE PROGMEM = "Juggle@!=16,Trail=240;!,!,;!"; +static const char _data_FX_MODE_JUGGLE[] PROGMEM = "Juggle@!,Trail;!,!,;!;sx=16,ix=240,1d"; uint16_t mode_palette() @@ -1929,7 +1929,7 @@ uint16_t mode_palette() } bool noWrap = (strip.paletteBlend == 2 || (strip.paletteBlend == 0 && SEGMENT.speed == 0)); - for (uint16_t i = 0; i < SEGLEN; i++) + for (int i = 0; i < SEGLEN; i++) { uint8_t colorIndex = (i * 255 / SEGLEN) - counter; @@ -1939,7 +1939,7 @@ uint16_t mode_palette() } return FRAMETIME; } -static const char *_data_FX_MODE_PALETTE PROGMEM = "Palette@!,;1,2,3;!"; +static const char _data_FX_MODE_PALETTE[] PROGMEM = "Palette@Cycle speed,;1,2,3;!;1d"; // WLED limitation: Analog Clock overlay will NOT work when Fire2012 is active @@ -1958,7 +1958,7 @@ static const char *_data_FX_MODE_PALETTE PROGMEM = "Palette@!,;1,2,3;!"; // // Temperature is in arbitrary units from 0 (cold black) to 255 (white hot). // -// This simulation scales it self a bit depending on NUM_LEDS; it should look +// This simulation scales it self a bit depending on SEGLEN; it should look // "OK" on anywhere from 20 to 100 LEDs without too much tweaking. // // I recommend running this simulation at anywhere from 30-100 frames per second, @@ -1976,7 +1976,7 @@ uint16_t mode_fire_2012() const uint16_t rows = strip.isMatrix ? SEGMENT.virtualHeight() : SEGMENT.virtualLength(); uint32_t it = strip.now >> 5; //div 32 - uint16_t q = cols>>2; // a quarter of flames + //uint16_t q = cols>>2; // a quarter of flames if (!SEGENV.allocateData(cols*rows)) return mode_static(); //allocation failed @@ -1986,21 +1986,23 @@ uint16_t mode_fire_2012() SEGENV.step = it; uint8_t ignition = max(3,rows/10); // ignition area: 10% of segment length or minimum 3 pixels - for (uint16_t f = 0; f < cols; f++) { + for (int f = 0; f < cols; f++) { // Step 1. Cool down every cell a little - for (uint16_t i = 0; i < rows; i++) { + for (int i = 0; i < rows; i++) { uint8_t cool = (((20 + SEGMENT.speed/3) * 16) / rows); + /* // 2D enhancement: cool sides of the flame a bit more if (cols>5) { if (f < q) cool = qadd8(cool, 2*(uint16_t)((cool * (q-f))/cols)); // cool segment sides a bit more if (f > 3*q) cool = qadd8(cool, 2*(uint16_t)((cool * (cols-f))/cols)); // cool segment sides a bit more } + */ uint8_t temp = qsub8(heat[i+rows*f], random8(0, cool + 2)); - heat[i+rows*f] = (temp==0 && i 1; k--) { + for (int k = rows -1; k > 1; k--) { heat[k+rows*f] = (heat[k+rows*f - 1] + (heat[k+rows*f - 2]<<1) ) / 3; // heat[k-2] multiplied by 2 } @@ -2012,17 +2014,17 @@ uint16_t mode_fire_2012() } } - for (uint16_t f = 0; f < cols; f++) { + for (int f = 0; f < cols; f++) { // Step 4. Map from heat cells to LED colors - for (uint16_t j = 0; j < rows; j++) { + for (int j = 0; j < rows; j++) { CRGB color = ColorFromPalette(SEGPALETTE, /*MIN(*/heat[j+rows*f]/*,240)*/, 255, LINEARBLEND); if (strip.isMatrix) SEGMENT.setPixelColorXY(f, rows -j -1, color); - else SEGMENT.setPixelColor(j, color); + else SEGMENT.setPixelColor(j, color); } } return FRAMETIME; } -static const char *_data_FX_MODE_FIRE_2012 PROGMEM = "Fire 2012 1D/2D@Cooling=120,Spark rate=64;1,2,3;!"; +static const char _data_FX_MODE_FIRE_2012[] PROGMEM = "Fire 2012@Cooling,Spark rate;1,2,3;!;sx=120,ix=64,1d,2d"; // ColorWavesWithPalettes by Mark Kriegsman: https://gist.github.com/kriegsman/8281905786e8b2632aeb @@ -2045,9 +2047,11 @@ uint16_t mode_colorwaves() sPseudotime += duration * msmultiplier; sHue16 += duration * beatsin88(400, 5, 9); uint16_t brightnesstheta16 = sPseudotime; - CRGB fastled_col; + //CRGB fastled_col; - for ( uint16_t i = 0 ; i < SEGLEN; i++) { + if (SEGENV.call == 0) SEGMENT.fill(BLACK); + + for (int i = 0 ; i < SEGLEN; i++) { hue16 += hueinc16; uint8_t hue8 = hue16 >> 8; uint16_t h16_128 = hue16 >> 7; @@ -2064,145 +2068,139 @@ uint16_t mode_colorwaves() uint8_t bri8 = (uint32_t)(((uint32_t)bri16) * brightdepth) / 65536; bri8 += (255 - brightdepth); - CRGB newcolor = ColorFromPalette(SEGPALETTE, hue8, bri8); - fastled_col = CRGB(SEGMENT.getPixelColor(i)); + //CRGB newcolor = ColorFromPalette(SEGPALETTE, hue8, bri8); + //fastled_col = SEGMENT.getPixelColor(i); // TODO - nblend(fastled_col, newcolor, 128); - SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + //nblend(fastled_col, newcolor, 128); + //SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + SEGMENT.blendPixelColor(i, SEGMENT.color_from_palette(hue8, false, PALETTE_SOLID_WRAP, 0, bri8), 128); // 50/50 mix } SEGENV.step = sPseudotime; SEGENV.aux0 = sHue16; return FRAMETIME; } -static const char *_data_FX_MODE_COLORWAVES PROGMEM = "Colorwaves@!,!;!,!,!;!"; +static const char _data_FX_MODE_COLORWAVES[] PROGMEM = "Colorwaves@!,!;!,!,!;!;1d"; // colored stripes pulsing at a defined Beats-Per-Minute (BPM) uint16_t mode_bpm() { - CRGB fastled_col; + //CRGB fastled_col; uint32_t stp = (strip.now / 20) & 0xFF; uint8_t beat = beatsin8(SEGMENT.speed, 64, 255); - for (uint16_t i = 0; i < SEGLEN; i++) { - fastled_col = ColorFromPalette(SEGPALETTE, stp + (i * 2), beat - stp + (i * 10)); - SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + for (int i = 0; i < SEGLEN; i++) { + //fastled_col = ColorFromPalette(SEGPALETTE, stp + (i * 2), beat - stp + (i * 10)); + //SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(stp + (i * 2), false, PALETTE_SOLID_WRAP, 0, beat - stp + (i * 10))); } return FRAMETIME; } -static const char *_data_FX_MODE_BPM PROGMEM = "Bpm@!=64,;1,2,3;!"; +static const char _data_FX_MODE_BPM[] PROGMEM = "Bpm@!,;1,2,3;!;sx=64,1d"; uint16_t mode_fillnoise8() { if (SEGENV.call == 0) SEGENV.step = random16(12345); - CRGB fastled_col; - for (uint16_t i = 0; i < SEGLEN; i++) { + //CRGB fastled_col; + for (int i = 0; i < SEGLEN; i++) { uint8_t index = inoise8(i * SEGLEN, SEGENV.step + i * SEGLEN); - fastled_col = ColorFromPalette(SEGPALETTE, index, 255, LINEARBLEND); - SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + //fastled_col = ColorFromPalette(SEGPALETTE, index, 255, LINEARBLEND); + //SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(index, false, PALETTE_SOLID_WRAP, 0)); } SEGENV.step += beatsin8(SEGMENT.speed, 1, 6); //10,1,4 return FRAMETIME; } -static const char *_data_FX_MODE_FILLNOISE8 PROGMEM = "Fill Noise@!,!;!,!,!;!"; +static const char _data_FX_MODE_FILLNOISE8[] PROGMEM = "Fill Noise@!,!;!,!,!;!;1d"; uint16_t mode_noise16_1() { - uint16_t scale = 320; // the "zoom factor" for the noise - CRGB fastled_col; + uint16_t scale = 320; // the "zoom factor" for the noise + //CRGB fastled_col; SEGENV.step += (1 + SEGMENT.speed/16); - for (uint16_t i = 0; i < SEGLEN; i++) { - - uint16_t shift_x = beatsin8(11); // the x position of the noise field swings @ 17 bpm - uint16_t shift_y = SEGENV.step/42; // the y position becomes slowly incremented - - + for (int i = 0; i < SEGLEN; i++) { + uint16_t shift_x = beatsin8(11); // the x position of the noise field swings @ 17 bpm + uint16_t shift_y = SEGENV.step/42; // the y position becomes slowly incremented uint16_t real_x = (i + shift_x) * scale; // the x position of the noise field swings @ 17 bpm uint16_t real_y = (i + shift_y) * scale; // the y position becomes slowly incremented - uint32_t real_z = SEGENV.step; // the z position becomes quickly incremented + uint32_t real_z = SEGENV.step; // the z position becomes quickly incremented + uint8_t noise = inoise16(real_x, real_y, real_z) >> 8; // get the noise data and scale it down + uint8_t index = sin8(noise * 3); // map LED color based on noise data - uint8_t noise = inoise16(real_x, real_y, real_z) >> 8; // get the noise data and scale it down - - uint8_t index = sin8(noise * 3); // map LED color based on noise data - - fastled_col = ColorFromPalette(SEGPALETTE, index, 255, LINEARBLEND); // With that value, look up the 8 bit colour palette value and assign it to the current LED. - SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + //fastled_col = ColorFromPalette(SEGPALETTE, index, 255, LINEARBLEND); // With that value, look up the 8 bit colour palette value and assign it to the current LED. + //SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(index, false, PALETTE_SOLID_WRAP, 0)); } return FRAMETIME; } -static const char *_data_FX_MODE_NOISE16_1 PROGMEM = "Noise 1@!,!;!,!,!;!"; +static const char _data_FX_MODE_NOISE16_1[] PROGMEM = "Noise 1@!,!;!,!,!;!;1d"; uint16_t mode_noise16_2() { - uint16_t scale = 1000; // the "zoom factor" for the noise - CRGB fastled_col; + uint16_t scale = 1000; // the "zoom factor" for the noise + //CRGB fastled_col; SEGENV.step += (1 + (SEGMENT.speed >> 1)); - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { + uint16_t shift_x = SEGENV.step >> 6; // x as a function of time + uint32_t real_x = (i + shift_x) * scale; // calculate the coordinates within the noise field + uint8_t noise = inoise16(real_x, 0, 4223) >> 8; // get the noise data and scale it down + uint8_t index = sin8(noise * 3); // map led color based on noise data - uint16_t shift_x = SEGENV.step >> 6; // x as a function of time - - uint32_t real_x = (i + shift_x) * scale; // calculate the coordinates within the noise field - - uint8_t noise = inoise16(real_x, 0, 4223) >> 8; // get the noise data and scale it down - - uint8_t index = sin8(noise * 3); // map led color based on noise data - - fastled_col = ColorFromPalette(SEGPALETTE, index, noise, LINEARBLEND); // With that value, look up the 8 bit colour palette value and assign it to the current LED. - SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + //fastled_col = ColorFromPalette(SEGPALETTE, index, noise, LINEARBLEND); // With that value, look up the 8 bit colour palette value and assign it to the current LED. + //SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(index, false, PALETTE_SOLID_WRAP, 0)); } return FRAMETIME; } -static const char *_data_FX_MODE_NOISE16_2 PROGMEM = "Noise 2@!,!;!,!,!;!"; +static const char _data_FX_MODE_NOISE16_2[] PROGMEM = "Noise 2@!,!;!,!,!;!;1d"; uint16_t mode_noise16_3() { uint16_t scale = 800; // the "zoom factor" for the noise - CRGB fastled_col; + //CRGB fastled_col; SEGENV.step += (1 + SEGMENT.speed); - for (uint16_t i = 0; i < SEGLEN; i++) { - + for (int i = 0; i < SEGLEN; i++) { uint16_t shift_x = 4223; // no movement along x and y uint16_t shift_y = 1234; - uint32_t real_x = (i + shift_x) * scale; // calculate the coordinates within the noise field uint32_t real_y = (i + shift_y) * scale; // based on the precalculated positions uint32_t real_z = SEGENV.step*8; - uint8_t noise = inoise16(real_x, real_y, real_z) >> 8; // get the noise data and scale it down - uint8_t index = sin8(noise * 3); // map led color based on noise data - fastled_col = ColorFromPalette(SEGPALETTE, index, noise, LINEARBLEND); // With that value, look up the 8 bit colour palette value and assign it to the current LED. - SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + //fastled_col = ColorFromPalette(SEGPALETTE, index, noise, LINEARBLEND); // With that value, look up the 8 bit colour palette value and assign it to the current LED. + //SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(index, false, PALETTE_SOLID_WRAP, 0)); } return FRAMETIME; } -static const char *_data_FX_MODE_NOISE16_3 PROGMEM = "Noise 3@!,!;!,!,!;!"; +static const char _data_FX_MODE_NOISE16_3[] PROGMEM = "Noise 3@!,!;!,!,!;!;1d"; //https://github.com/aykevl/ledstrip-spark/blob/master/ledstrip.ino uint16_t mode_noise16_4() { - CRGB fastled_col; + //CRGB fastled_col; uint32_t stp = (strip.now * SEGMENT.speed) >> 7; - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { int16_t index = inoise16(uint32_t(i) << 12, stp); - fastled_col = ColorFromPalette(SEGPALETTE, index); - SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + //fastled_col = ColorFromPalette(SEGPALETTE, index); + //SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(index, false, PALETTE_SOLID_WRAP, 0)); } return FRAMETIME; } -static const char *_data_FX_MODE_NOISE16_4 PROGMEM = "Noise 4@!,!;!,!,!;!"; +static const char _data_FX_MODE_NOISE16_4[] PROGMEM = "Noise 4@!,!;!,!,!;!;1d"; //based on https://gist.github.com/kriegsman/5408ecd397744ba0393e @@ -2218,9 +2216,9 @@ uint16_t mode_colortwinkle() fract8 fadeUpAmount = strip.getBrightness()>28 ? 8 + (SEGMENT.speed>>2) : 68-strip.getBrightness(); fract8 fadeDownAmount = strip.getBrightness()>28 ? 8 + (SEGMENT.speed>>3) : 68-strip.getBrightness(); - for (uint16_t i = 0; i < rows*cols; i++) { + for (int i = 0; i < rows*cols; i++) { uint16_t j = i % cols, k = i / cols; - fastled_col = CRGB(strip.isMatrix ? SEGMENT.getPixelColorXY(j, k) : SEGMENT.getPixelColor(i)); + fastled_col = CRGB(strip.isMatrix ? SEGMENT.getPixelColorXY(j, k) : SEGMENT.getPixelColor(i)); // TODO prev = fastled_col; uint16_t index = i >> 3; uint8_t bitNum = i & 0x07; @@ -2236,34 +2234,34 @@ uint16_t mode_colortwinkle() } if (strip.isMatrix) SEGMENT.setPixelColorXY(j, k, fastled_col); - else SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + else SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); - uint32_t col = strip.isMatrix ? SEGMENT.getPixelColorXY(j, k) : SEGMENT.getPixelColor(i); + uint32_t col = strip.isMatrix ? SEGMENT.getPixelColorXY(j, k) : SEGMENT.getPixelColor(i); // TODO if (CRGB(col) == prev) { //fix "stuck" pixels fastled_col += fastled_col; if (strip.isMatrix) SEGMENT.setPixelColorXY(j, k, fastled_col); - else SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + else SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); } } else { fastled_col.nscale8(255 - fadeDownAmount); if (strip.isMatrix) SEGMENT.setPixelColorXY(j, k, fastled_col); - else SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + else SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); } } - for (uint16_t j = 0; j <= rows*cols / 50; j++) { + for (int j = 0; j <= rows*cols / 50; j++) { if (random8() <= SEGMENT.intensity) { for (size_t times = 0; times < 5; times++) { //attempt to spawn a new pixel 5 times uint16_t i = random16(rows*cols); uint16_t j = i % cols, k = i / cols; - uint32_t col = strip.isMatrix ? SEGMENT.getPixelColorXY(j, k) : SEGMENT.getPixelColor(i); + uint32_t col = strip.isMatrix ? SEGMENT.getPixelColorXY(j, k) : SEGMENT.getPixelColor(i); // TODO if (col == 0) { fastled_col = ColorFromPalette(SEGPALETTE, random8(), 64, NOBLEND); uint16_t index = i >> 3; uint8_t bitNum = i & 0x07; bitWrite(SEGENV.data[index], bitNum, true); if (strip.isMatrix) SEGMENT.setPixelColorXY(j, k, fastled_col); - else SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + else SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); break; //only spawn 1 new pixel per frame per 50 LEDs } } @@ -2271,7 +2269,7 @@ uint16_t mode_colortwinkle() } return FRAMETIME_FIXED; } -static const char *_data_FX_MODE_COLORTWINKLE PROGMEM = "Colortwinkles@Fade speed,Spawn speed;1,2,3;!;mp12=0"; //pixels +static const char _data_FX_MODE_COLORTWINKLE[] PROGMEM = "Colortwinkles@Fade speed,Spawn speed;1,2,3;!;1d,2d"; //pixels //Calm effect, like a lake at night @@ -2280,18 +2278,19 @@ uint16_t mode_lake() { int wave1 = beatsin8(sp +2, -64,64); int wave2 = beatsin8(sp +1, -64,64); uint8_t wave3 = beatsin8(sp +2, 0,80); - CRGB fastled_col; + //CRGB fastled_col; - for (uint16_t i = 0; i < SEGLEN; i++) + for (int i = 0; i < SEGLEN; i++) { int index = cos8((i*15)+ wave1)/2 + cubicwave8((i*23)+ wave2)/2; uint8_t lum = (index > wave3) ? index - wave3 : 0; - fastled_col = ColorFromPalette(SEGPALETTE, map(index,0,255,0,240), lum, LINEARBLEND); - SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + //fastled_col = ColorFromPalette(SEGPALETTE, map(index,0,255,0,240), lum, LINEARBLEND); + //SEGMENT.setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(index, false, false, 0, lum)); } return FRAMETIME; } -static const char *_data_FX_MODE_LAKE PROGMEM = "Lake@!,;1,2,3;!"; +static const char _data_FX_MODE_LAKE[] PROGMEM = "Lake@!,;1,2,3;!;1d"; // meteor effect @@ -2307,7 +2306,7 @@ uint16_t mode_meteor() { uint16_t in = counter * SEGLEN >> 16; // fade all leds to colors[1] in LEDs one step - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { if (random8() <= 255 - SEGMENT.intensity) { byte meteorTrailDecay = 128 + random8(127); @@ -2317,7 +2316,7 @@ uint16_t mode_meteor() { } // draw meteor - for(int j = 0; j < meteorSize; j++) { + for (int j = 0; j < meteorSize; j++) { uint16_t index = in + j; if(index >= SEGLEN) { index = (in + j - SEGLEN); @@ -2329,7 +2328,7 @@ uint16_t mode_meteor() { return FRAMETIME; } -static const char *_data_FX_MODE_METEOR PROGMEM = "Meteor@!,Trail length;!,!,;!"; +static const char _data_FX_MODE_METEOR[] PROGMEM = "Meteor@!,Trail length;!,!,;!;1d"; // smooth meteor effect @@ -2344,7 +2343,7 @@ uint16_t mode_meteor_smooth() { uint16_t in = map((SEGENV.step >> 6 & 0xFF), 0, 255, 0, SEGLEN -1); // fade all leds to colors[1] in LEDs one step - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { if (trail[i] != 0 && random8() <= 255 - SEGMENT.intensity) { int change = 3 - random8(12); //change each time between -8 and +3 @@ -2356,7 +2355,7 @@ uint16_t mode_meteor_smooth() { } // draw meteor - for(int j = 0; j < meteorSize; j++) { + for (int j = 0; j < meteorSize; j++) { uint16_t index = in + j; if(in + j >= SEGLEN) { index = (in + j - SEGLEN); @@ -2368,7 +2367,7 @@ uint16_t mode_meteor_smooth() { SEGENV.step += SEGMENT.speed +1; return FRAMETIME; } -static const char *_data_FX_MODE_METEOR_SMOOTH PROGMEM = "Meteor Smooth@!,Trail length;!,!,;!"; +static const char _data_FX_MODE_METEOR_SMOOTH[] PROGMEM = "Meteor Smooth@!,Trail length;!,!,;!;1d"; //Railway Crossing / Christmas Fairy lights @@ -2389,7 +2388,7 @@ uint16_t mode_railway() if (p0 < 255) pos = p0; } if (SEGENV.aux0) pos = 255 - pos; - for (uint16_t i = 0; i < SEGLEN; i += 2) + for (int i = 0; i < SEGLEN; i += 2) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(255 - pos, false, false, 255)); if (i < SEGLEN -1) @@ -2400,7 +2399,7 @@ uint16_t mode_railway() SEGENV.step += FRAMETIME; return FRAMETIME; } -static const char *_data_FX_MODE_RAILWAY PROGMEM = "Railway"; +static const char _data_FX_MODE_RAILWAY[] PROGMEM = "Railway"; //Water ripple @@ -2448,7 +2447,7 @@ uint16_t ripple_base(bool rainbow) } //draw wave - for (uint16_t i = 0; i < maxRipples; i++) + for (int i = 0; i < maxRipples; i++) { uint16_t ripplestate = ripples[i].state; if (ripplestate) @@ -2467,12 +2466,12 @@ uint16_t ripple_base(bool rainbow) uint8_t mag = scale8(cubicwave8((propF>>2)+(v-left)*64), amp); if (v < SEGLEN && v >= 0) { - SEGMENT.setPixelColor(v, color_blend(SEGMENT.getPixelColor(v), col, mag)); + SEGMENT.setPixelColor(v, color_blend(SEGMENT.getPixelColor(v), col, mag)); // TODO } int16_t w = left + propI*2 + 3 -(v-left); if (w < SEGLEN && w >= 0) { - SEGMENT.setPixelColor(w, color_blend(SEGMENT.getPixelColor(w), col, mag)); + SEGMENT.setPixelColor(w, color_blend(SEGMENT.getPixelColor(w), col, mag)); // TODO } } ripplestate += rippledecay; @@ -2495,13 +2494,13 @@ uint16_t ripple_base(bool rainbow) uint16_t mode_ripple(void) { return ripple_base(false); } -static const char *_data_FX_MODE_RIPPLE PROGMEM = "Ripple"; +static const char _data_FX_MODE_RIPPLE[] PROGMEM = "Ripple"; uint16_t mode_ripple_rainbow(void) { return ripple_base(true); } -static const char *_data_FX_MODE_RIPPLE_RAINBOW PROGMEM = "Ripple Rainbow"; +static const char _data_FX_MODE_RIPPLE_RAINBOW[] PROGMEM = "Ripple Rainbow"; // TwinkleFOX by Mark Kriegsman: https://gist.github.com/kriegsman/756ea6dcae8e30845b5a @@ -2599,7 +2598,7 @@ uint16_t twinklefox_base(bool cat) uint8_t backgroundBrightness = bg.getAverageLight(); - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { PRNG16 = (uint16_t)(PRNG16 * 2053) + 1384; // next 'random' number uint16_t myclockoffset16= PRNG16; // use that number as clock offset @@ -2638,14 +2637,14 @@ uint16_t mode_twinklefox() { return twinklefox_base(false); } -static const char *_data_FX_MODE_TWINKLEFOX PROGMEM = "Twinklefox"; +static const char _data_FX_MODE_TWINKLEFOX[] PROGMEM = "Twinklefox"; uint16_t mode_twinklecat() { return twinklefox_base(true); } -static const char *_data_FX_MODE_TWINKLECAT PROGMEM = "Twinklecat"; +static const char _data_FX_MODE_TWINKLECAT[] PROGMEM = "Twinklecat"; //inspired by https://www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/#LEDStripEffectBlinkingHalloweenEyes @@ -2678,7 +2677,7 @@ uint16_t mode_halloween_eyes() if (fadestage > 255) fadestage = 255; uint32_t c = color_blend(SEGMENT.color_from_palette(SEGENV.aux1 & 0xFF, false, false, 0), SEGCOLOR(1), fadestage); - for (uint16_t i = 0; i < HALLOWEEN_EYE_WIDTH; i++) { + for (int i = 0; i < HALLOWEEN_EYE_WIDTH; i++) { if (strip.isMatrix) { SEGMENT.setPixelColorXY(startPos + i, SEGMENT.offset, c); SEGMENT.setPixelColorXY(start2ndEye + i, SEGMENT.offset, c); @@ -2707,7 +2706,7 @@ uint16_t mode_halloween_eyes() return FRAMETIME; } -static const char *_data_FX_MODE_HALLOWEEN_EYES PROGMEM = "Halloween Eyes@Duration,Eye fade time;!,!,;!"; +static const char _data_FX_MODE_HALLOWEEN_EYES[] PROGMEM = "Halloween Eyes@Duration,Eye fade time;!,!,;!;1d,2d"; //Speed slider sets amount of LEDs lit, intensity sets unlit @@ -2718,7 +2717,7 @@ uint16_t mode_static_pattern() bool drawingLit = true; uint16_t cnt = 0; - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, (drawingLit) ? SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0) : SEGCOLOR(1)); cnt++; if (cnt >= ((drawingLit) ? lit : unlit)) { @@ -2729,7 +2728,7 @@ uint16_t mode_static_pattern() return FRAMETIME; } -static const char *_data_FX_MODE_STATIC_PATTERN PROGMEM = "Solid Pattern@Fg size,Bg size;Fg,Bg,;!=0"; +static const char _data_FX_MODE_STATIC_PATTERN[] PROGMEM = "Solid Pattern@Fg size,Bg size;Fg,Bg,;!;pal=0,1d"; uint16_t mode_tri_static_pattern() @@ -2738,7 +2737,7 @@ uint16_t mode_tri_static_pattern() uint8_t currSeg = 0; uint16_t currSegCount = 0; - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { if ( currSeg % 3 == 0 ) { SEGMENT.setPixelColor(i, SEGCOLOR(0)); } else if( currSeg % 3 == 1) { @@ -2755,7 +2754,7 @@ uint16_t mode_tri_static_pattern() return FRAMETIME; } -static const char *_data_FX_MODE_TRI_STATIC_PATTERN PROGMEM = "Solid Pattern Tri@,Size;1,2,3;!=0"; +static const char _data_FX_MODE_TRI_STATIC_PATTERN[] PROGMEM = "Solid Pattern Tri@,Size;1,2,3;!;1d,pal=0"; uint16_t spots_base(uint16_t threshold) @@ -2767,10 +2766,10 @@ uint16_t spots_base(uint16_t threshold) uint16_t zoneLen = SEGLEN / zones; uint16_t offset = (SEGLEN - zones * zoneLen) >> 1; - for (uint16_t z = 0; z < zones; z++) + for (int z = 0; z < zones; z++) { uint16_t pos = offset + z * zoneLen; - for (uint16_t i = 0; i < zoneLen; i++) + for (int i = 0; i < zoneLen; i++) { uint16_t wave = triwave16((i * 0xFFFF) / zoneLen); if (wave > threshold) { @@ -2790,7 +2789,7 @@ uint16_t mode_spots() { return spots_base((255 - SEGMENT.speed) << 8); } -static const char *_data_FX_MODE_SPOTS PROGMEM = "Spots@Spread,Width;!,!,;!"; +static const char _data_FX_MODE_SPOTS[] PROGMEM = "Spots@Spread,Width;!,!,;!;1d"; //Intensity slider sets number of "lights", LEDs per light fade in and out @@ -2801,7 +2800,7 @@ uint16_t mode_spots_fade() uint16_t tr = (t >> 1) + (t >> 2); return spots_base(tr); } -static const char *_data_FX_MODE_SPOTS_FADE PROGMEM = "Spots Fade@Spread,Width;!,!,;!"; +static const char _data_FX_MODE_SPOTS_FADE[] PROGMEM = "Spots Fade@Spread,Width;!,!,;!;1d"; //each needs 12 bytes @@ -2867,7 +2866,7 @@ uint16_t mode_bouncing_balls(void) { return FRAMETIME; } -static const char *_data_FX_MODE_BOUNCINGBALLS PROGMEM = "Bouncing Balls@Gravity,# of balls;!,!,;!;mp12=2"; //circle +static const char _data_FX_MODE_BOUNCINGBALLS[] PROGMEM = "Bouncing Balls@Gravity,# of balls;!,!,;!;mp12=2,1d"; //circle /* @@ -2890,12 +2889,12 @@ uint16_t sinelon_base(bool dual, bool rainbow=false) { } if (SEGENV.aux0 != pos) { if (SEGENV.aux0 < pos) { - for (uint16_t i = SEGENV.aux0; i < pos ; i++) { + for (int i = SEGENV.aux0; i < pos ; i++) { SEGMENT.setPixelColor(i, color1); if (dual) SEGMENT.setPixelColor(SEGLEN-1-i, color2); } } else { - for (uint16_t i = SEGENV.aux0; i > pos ; i--) { + for (int i = SEGENV.aux0; i > pos ; i--) { SEGMENT.setPixelColor(i, color1); if (dual) SEGMENT.setPixelColor(SEGLEN-1-i, color2); } @@ -2910,19 +2909,19 @@ uint16_t sinelon_base(bool dual, bool rainbow=false) { uint16_t mode_sinelon(void) { return sinelon_base(false); } -static const char *_data_FX_MODE_SINELON PROGMEM = "Sinelon"; +static const char _data_FX_MODE_SINELON[] PROGMEM = "Sinelon"; uint16_t mode_sinelon_dual(void) { return sinelon_base(true); } -static const char *_data_FX_MODE_SINELON_DUAL PROGMEM = "Sinelon Dual"; +static const char _data_FX_MODE_SINELON_DUAL[] PROGMEM = "Sinelon Dual"; uint16_t mode_sinelon_rainbow(void) { return sinelon_base(false, true); } -static const char *_data_FX_MODE_SINELON_RAINBOW PROGMEM = "Sinelon Rainbow"; +static const char _data_FX_MODE_SINELON_RAINBOW[] PROGMEM = "Sinelon Rainbow"; //Rainbow with glitter, inspired by https://gist.github.com/kriegsman/062e10f7f07ba8518af6 @@ -2933,7 +2932,7 @@ uint16_t mode_glitter() if (strip.isMatrix) { uint16_t height = SEGMENT.virtualHeight(); uint16_t width = SEGMENT.virtualWidth(); - for (uint16_t i = 0; i random8()) SEGMENT.setPixelColorXY(random16(width-1), i, ULTRAWHITE); } } else @@ -2941,7 +2940,7 @@ uint16_t mode_glitter() return FRAMETIME; } -static const char *_data_FX_MODE_GLITTER PROGMEM = "Glitter@,!;!,!,!;!;mp12=0"; //pixels +static const char _data_FX_MODE_GLITTER[] PROGMEM = "Glitter@,!;!,!,!;!;1d,2d"; //pixels //each needs 19 bytes @@ -2977,7 +2976,7 @@ uint16_t mode_popcorn(void) { uint8_t numPopcorn = SEGMENT.intensity*maxNumPopcorn/255; if (numPopcorn == 0) numPopcorn = 1; - for(uint8_t i = 0; i < numPopcorn; i++) { + for (int i = 0; i < numPopcorn; i++) { if (popcorn[i].pos >= 0.0f) { // if kernel is active, update its position popcorn[i].pos += popcorn[i].vel; popcorn[i].vel += gravity; @@ -3007,14 +3006,14 @@ uint16_t mode_popcorn(void) { uint16_t ledIndex = popcorn[i].pos; if (ledIndex < rows) { if (strip.isMatrix) SEGMENT.setPixelColorXY(uint16_t(popcorn[i].posX), rows - 1 - ledIndex, col); - else SEGMENT.setPixelColor(ledIndex, col); + else SEGMENT.setPixelColor(ledIndex, col); } } } return FRAMETIME; } -static const char *_data_FX_MODE_POPCORN PROGMEM = "Popcorn"; +static const char _data_FX_MODE_POPCORN[] PROGMEM = "Popcorn@!,!;!,!,!;!;1d,2d"; //values close to 100 produce 5Hz flicker, which looks very candle-y @@ -3046,7 +3045,7 @@ uint16_t candle(bool multi) uint16_t numCandles = (multi) ? SEGLEN : 1; - for (uint16_t i = 0; i < numCandles; i++) + for (int i = 0; i < numCandles; i++) { uint16_t d = 0; //data location @@ -3085,7 +3084,7 @@ uint16_t candle(bool multi) SEGENV.data[d] = s; SEGENV.data[d+1] = s_target; SEGENV.data[d+2] = fadeStep; } else { - for (uint16_t j = 0; j < SEGLEN; j++) { + for (int j = 0; j < SEGLEN; j++) { SEGMENT.setPixelColor(j, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(j, true, PALETTE_SOLID_WRAP, 0), s)); } @@ -3101,14 +3100,14 @@ uint16_t mode_candle() { return candle(false); } -static const char *_data_FX_MODE_CANDLE PROGMEM = "Candle@Flicker rate=96,Flicker intensity=224;!,!,;0"; +static const char _data_FX_MODE_CANDLE[] PROGMEM = "Candle@Flicker rate,Flicker intensity;!,!,;;sx=96,ix=224,pal=0,1d"; uint16_t mode_candle_multi() { return candle(true); } -static const char *_data_FX_MODE_CANDLE_MULTI PROGMEM = "Candle Multi@Flicker rate=96,Flicker intensity=224;!,!,;0"; +static const char _data_FX_MODE_CANDLE_MULTI[] PROGMEM = "Candle Multi@Flicker rate,Flicker intensity;!,!,;;sx=96,ix=224,pal=0,1d"; /* @@ -3241,13 +3240,13 @@ uint16_t mode_starburst(void) { return FRAMETIME; } #undef STARBURST_MAX_FRAG -static const char *_data_FX_MODE_STARBURST PROGMEM = "Fireworks Starburst@Chance,Fragments;,!,;!=11;mp12=0"; +static const char _data_FX_MODE_STARBURST[] PROGMEM = "Fireworks Starburst@Chance,Fragments;,!,;!;pal=11,mp12=0,1d"; /* * Exploding fireworks effect * adapted from: http://www.anirama.com/1000leds/1d-fireworks/ - * adapted for 2D WLED by blazoncek (Blaz Kristan) + * adapted for 2D WLED by blazoncek (Blaz Kristan (AKA blazoncek)) */ uint16_t mode_exploding_fireworks(void) { @@ -3297,7 +3296,7 @@ uint16_t mode_exploding_fireworks(void) if (flare->vel > 12 * gravity) { // flare if (strip.isMatrix) SEGMENT.setPixelColorXY(int(flare->posX), rows - uint16_t(flare->pos) - 1, flare->col, flare->col, flare->col); - else SEGMENT.setPixelColor(int(flare->posX) ? rows - int(flare->pos) - 1 : int(flare->pos), flare->col, flare->col, flare->col); + else SEGMENT.setPixelColor(int(flare->posX) ? rows - int(flare->pos) - 1 : int(flare->pos), flare->col, flare->col, flare->col); flare->pos += flare->vel; flare->posX += flare->velX; flare->pos = constrain(flare->pos, 0, rows-1); @@ -3359,7 +3358,7 @@ uint16_t mode_exploding_fireworks(void) c.b = qsub8(c.b, cooling * 2); } if (strip.isMatrix) SEGMENT.setPixelColorXY(int(sparks[i].posX), rows - int(sparks[i].pos) - 1, c.red, c.green, c.blue); - else SEGMENT.setPixelColor(int(sparks[i].posX) ? rows - int(sparks[i].pos) - 1 : int(sparks[i].pos), c.red, c.green, c.blue); + else SEGMENT.setPixelColor(int(sparks[i].posX) ? rows - int(sparks[i].pos) - 1 : int(sparks[i].pos), c.red, c.green, c.blue); } } SEGMENT.blur(16); @@ -3377,7 +3376,7 @@ uint16_t mode_exploding_fireworks(void) return FRAMETIME; } #undef MAX_SPARKS -static const char *_data_FX_MODE_EXPLODING_FIREWORKS PROGMEM = "Fireworks 1D/2D@Gravity,Firing side=128;!,!,;!=11"; +static const char _data_FX_MODE_EXPLODING_FIREWORKS[] PROGMEM = "Fireworks 1D@Gravity,Firing side;!,!,;!=11;ix=128,1d,2d"; /* @@ -3404,7 +3403,7 @@ uint16_t mode_drip(void) gravity *= rows-1; int sourcedrop = 12; - for (uint16_t k=0; k < cols; k++) { + for (int k=0; k < cols; k++) { for (size_t j=0; j < numDrops; j++) { uint16_t idx = k*numDrops + j; @@ -3417,13 +3416,13 @@ uint16_t mode_drip(void) uint32_t col = color_blend(BLACK, SEGCOLOR(0), sourcedrop); if (strip.isMatrix) SEGMENT.setPixelColorXY(k, 0, col); - else SEGMENT.setPixelColor(rows-1, col);// water source + else SEGMENT.setPixelColor(rows-1, col);// water source if (drops[idx].colIndex == 1) { if (drops[idx].col > 255) drops[idx].col = 255; col = color_blend(BLACK,SEGCOLOR(0),drops[idx].col); if (strip.isMatrix) SEGMENT.setPixelColorXY(k, rows - 1 - uint16_t(drops[idx].pos), col); - else SEGMENT.setPixelColor(uint16_t(drops[idx].pos), col); + else SEGMENT.setPixelColor(uint16_t(drops[idx].pos), col); drops[idx].col += map(SEGMENT.speed, 0, 255, 1, 6); // swelling @@ -3438,17 +3437,17 @@ uint16_t mode_drip(void) if (drops[idx].pos < 0) drops[idx].pos = 0; drops[idx].vel += gravity; // gravity is negative - for (uint16_t i = 1; i < 7 - drops[idx].colIndex; i++) { // some minor math so we don't expand bouncing droplets + for (int i = 1; i < 7 - drops[idx].colIndex; i++) { // some minor math so we don't expand bouncing droplets uint16_t pos = constrain(uint16_t(drops[idx].pos) +i, 0, rows-1); //this is BAD, returns a pos >= SEGLEN occasionally col = color_blend(BLACK, SEGCOLOR(0), drops[idx].col/i); if (strip.isMatrix) SEGMENT.setPixelColorXY(k, rows - 1 - pos, col); - else SEGMENT.setPixelColor(pos, col); //spread pixel with fade while falling + else SEGMENT.setPixelColor(pos, col); //spread pixel with fade while falling } if (drops[idx].colIndex > 2) { // during bounce, some water is on the floor col = color_blend(SEGCOLOR(0), BLACK, drops[idx].col); if (strip.isMatrix) SEGMENT.setPixelColorXY(k, rows - 1, col); - else SEGMENT.setPixelColor(0, col); + else SEGMENT.setPixelColor(0, col); } } else { // we hit bottom if (drops[idx].colIndex > 2) { // already hit once, so back to forming @@ -3470,12 +3469,12 @@ uint16_t mode_drip(void) } return FRAMETIME; } -static const char *_data_FX_MODE_DRIP PROGMEM = "Drip@Gravity,# of drips;!,!;!"; +static const char _data_FX_MODE_DRIP[] PROGMEM = "Drip@Gravity,# of drips;!,!;!;1d,2d"; /* * Tetris or Stacking (falling bricks) Effect - * by Blaz Kristan (https://github.com/blazoncek, https://blaz.at/home) + * by Blaz Kristan (AKA blazoncek) (https://github.com/blazoncek, https://blaz.at/home) */ //12 bytes typedef struct Tetris { @@ -3491,14 +3490,14 @@ uint16_t mode_tetrix(void) { Tetris* drop = reinterpret_cast(SEGENV.data); // initialize dropping on first call or segment full - if (SEGENV.call == 0 || SEGENV.aux1 >= SEGLEN) { - SEGENV.aux1 = 0; // reset brick stack size + if (SEGENV.call == 0 /*|| SEGENV.aux1 >= SEGLEN*/) { + SEGENV.aux1 = 0; // reset brick stack size SEGENV.step = 0; SEGMENT.fill(SEGCOLOR(1)); - return 250; // short wait + //return 250; // short wait } - if (SEGENV.step == 0) { //init + if (SEGENV.step == 0) { // init brick drop->speed = 0.0238 * (SEGMENT.speed ? (SEGMENT.speed>>2)+1 : random8(6,64)); // set speed drop->pos = SEGLEN; // start at end of segment (no need to subtract 1) drop->col = SEGMENT.color_from_palette(random8(0,15)<<4,false,false,0); // limit color choices so there is enough HUE gap @@ -3512,20 +3511,31 @@ uint16_t mode_tetrix(void) { } } - if (SEGENV.step > 1) { // falling + if (SEGENV.step == 2) { // falling if (drop->pos > SEGENV.aux1) { // fall until top of stack drop->pos -= drop->speed; // may add gravity as: speed += gravity - if (int(drop->pos) < SEGENV.aux1) drop->pos = SEGENV.aux1; - for (uint16_t i=int(drop->pos); ipos)+SEGENV.aux0 ? drop->col : SEGCOLOR(1)); + if (uint16_t(drop->pos) < SEGENV.aux1) drop->pos = SEGENV.aux1; + for (int i=int(drop->pos); ipos)+SEGENV.aux0 ? drop->col : SEGCOLOR(1)); } else { // we hit bottom - SEGENV.step = 0; // go back to init + SEGENV.step = 0; // proceed with next brick, go back to init SEGENV.aux1 += SEGENV.aux0; // increase the stack size - if (SEGENV.aux1 >= SEGLEN) return 1000; // wait for a second + if (SEGENV.aux1 >= SEGLEN) SEGENV.step = millis() + 2500; // fade out stack } } + + if (SEGENV.step > 2) { + SEGENV.aux0 = 0; // reset brick size (no more growing) + if (SEGENV.step > millis()) { + SEGMENT.fade_out(24); // fade out stack + } else { + SEGENV.aux1 = 0; // reset brick stack size + SEGENV.step = 0; // proceed with next brick + } + } + return FRAMETIME; } -static const char *_data_FX_MODE_TETRIX PROGMEM = "Tetrix@!=224,Width=0;!,!,;!=11;mp12=1"; //vertical +static const char _data_FX_MODE_TETRIX[] PROGMEM = "Tetrix@!,Width;!,!,;!;sx=224,ix=0,pal=11,mp12=1,1d"; //vertical /* @@ -3544,13 +3554,14 @@ uint16_t mode_plasma(void) { uint8_t colorIndex = cubicwave8((i*(2+ 3*(SEGMENT.speed >> 5))+thisPhase) & 0xFF)/2 // factor=23 // Create a wave and add a phase change and add another wave with its own phase change. + cos8((i*(1+ 2*(SEGMENT.speed >> 5))+thatPhase) & 0xFF)/2; // factor=15 // Hey, you can even change the frequencies if you wish. uint8_t thisBright = qsub8(colorIndex, beatsin8(7,0, (128 - (SEGMENT.intensity>>1)))); - CRGB color = ColorFromPalette(SEGPALETTE, colorIndex, thisBright, LINEARBLEND); - SEGMENT.setPixelColor(i, color.red, color.green, color.blue); + //CRGB color = ColorFromPalette(SEGPALETTE, colorIndex, thisBright, LINEARBLEND); + //SEGMENT.setPixelColor(i, color.red, color.green, color.blue); + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(colorIndex, false, PALETTE_SOLID_WRAP, 0, thisBright)); } return FRAMETIME; } -static const char *_data_FX_MODE_PLASMA PROGMEM = "Plasma@Phase,;1,2,3;!"; +static const char _data_FX_MODE_PLASMA[] PROGMEM = "Plasma@Phase,;1,2,3;!;1d"; /* @@ -3567,8 +3578,8 @@ uint16_t mode_percent(void) { if (SEGMENT.speed == 255) size = 255; if (percent < 100) { - for (uint16_t i = 0; i < SEGLEN; i++) { - if (i < SEGENV.step) { + for (int i = 0; i < SEGLEN; i++) { + if (i < SEGENV.aux1) { SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); } else { @@ -3576,8 +3587,8 @@ uint16_t mode_percent(void) { } } } else { - for (uint16_t i = 0; i < SEGLEN; i++) { - if (i < (SEGLEN - SEGENV.step)) { + for (int i = 0; i < SEGLEN; i++) { + if (i < (SEGLEN - SEGENV.aux1)) { SEGMENT.setPixelColor(i, SEGCOLOR(1)); } else { @@ -3586,17 +3597,17 @@ uint16_t mode_percent(void) { } } - if(active_leds > SEGENV.step) { // smooth transition to the target value - SEGENV.step += size; - if (SEGENV.step > active_leds) SEGENV.step = active_leds; - } else if (active_leds < SEGENV.step) { - if (SEGENV.step > size) SEGENV.step -= size; else SEGENV.step = 0; - if (SEGENV.step < active_leds) SEGENV.step = active_leds; + if(active_leds > SEGENV.aux1) { // smooth transition to the target value + SEGENV.aux1 += size; + if (SEGENV.aux1 > active_leds) SEGENV.aux1 = active_leds; + } else if (active_leds < SEGENV.aux1) { + if (SEGENV.aux1 > size) SEGENV.aux1 -= size; else SEGENV.aux1 = 0; + if (SEGENV.aux1 < active_leds) SEGENV.aux1 = active_leds; } return FRAMETIME; } -static const char *_data_FX_MODE_PERCENT PROGMEM = "Percent@,% of fill;!,!,;!"; +static const char _data_FX_MODE_PERCENT[] PROGMEM = "Percent@,% of fill;!,!,;!;1d"; /* @@ -3614,7 +3625,7 @@ uint16_t mode_heartbeat(void) { SEGENV.aux1 = bri_lower; if ((beatTimer > secondBeat) && !SEGENV.aux0) { // time for the second beat? - SEGENV.aux1 = strip.isMatrix ? UINT16_MAX*3L/4 : UINT16_MAX; //3/4 bri + SEGENV.aux1 = UINT16_MAX; //3/4 bri SEGENV.aux0 = 1; } if (beatTimer > msPerBeat) { // time to reset the beat timer? @@ -3623,13 +3634,13 @@ uint16_t mode_heartbeat(void) { SEGENV.step = strip.now; } - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { SEGMENT.setPixelColor(i, color_blend(SEGMENT.color_from_palette(i, true, PALETTE_SOLID_WRAP, 0), SEGCOLOR(1), 255 - (SEGENV.aux1 >> 8))); } return FRAMETIME; } -static const char *_data_FX_MODE_HEARTBEAT PROGMEM = "Heartbeat@!,!;!,!,;!"; +static const char _data_FX_MODE_HEARTBEAT[] PROGMEM = "Heartbeat@!,!;!,!,;!;mp12=1,1d"; // "Pacifica" @@ -3717,7 +3728,7 @@ uint16_t mode_pacifica() uint8_t basethreshold = beatsin8( 9, 55, 65); uint8_t wave = beat8( 7 ); - for( uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { CRGB c = CRGB(2, 6, 10); // Render each of four layers, with different scales and speeds, that vary over time c += pacifica_one_layer(i, pacifica_palette_1, sCIStart1, beatsin16(3, 11 * 256, 14 * 256), beatsin8(10, 70, 130), 0-beat16(301)); @@ -3746,7 +3757,7 @@ uint16_t mode_pacifica() strip.now = nowOld; return FRAMETIME; } -static const char *_data_FX_MODE_PACIFICA PROGMEM = "Pacifica"; +static const char _data_FX_MODE_PACIFICA[] PROGMEM = "Pacifica"; //Solid colour background with glitter @@ -3757,7 +3768,7 @@ uint16_t mode_solid_glitter() if (strip.isMatrix) { uint16_t height = SEGMENT.virtualHeight(); uint16_t width = SEGMENT.virtualWidth(); - for (uint16_t i = 0; i random8()) SEGMENT.setPixelColorXY(random16(width-1), i, ULTRAWHITE); } } else @@ -3765,7 +3776,7 @@ uint16_t mode_solid_glitter() return FRAMETIME; } -static const char *_data_FX_MODE_SOLID_GLITTER PROGMEM = "Solid Glitter@,!;!,,;0"; +static const char _data_FX_MODE_SOLID_GLITTER[] PROGMEM = "Solid Glitter@,!;!,,;0;1d,2d"; /* @@ -3798,7 +3809,7 @@ uint16_t mode_sunrise() { if (SEGMENT.speed > 60) stage = 0xFFFF - stage; //sunset } - for (uint16_t i = 0; i <= SEGLEN/2; i++) + for (int i = 0; i <= SEGLEN/2; i++) { //default palette is Fire uint32_t c = SEGMENT.color_from_palette(0, false, true, 255); //background @@ -3818,7 +3829,7 @@ uint16_t mode_sunrise() { return FRAMETIME; } -static const char *_data_FX_MODE_SUNRISE PROGMEM = "Sunrise@Time [min]=60,;;!"; +static const char _data_FX_MODE_SUNRISE[] PROGMEM = "Sunrise@Time [min],;;!;sx=60,1d"; /* @@ -3836,7 +3847,7 @@ uint16_t phased_base(uint8_t moder) { // We're making sine wave for (int i = 0; i < SEGLEN; i++) { if (moder == 1) modVal = (inoise8(i*10 + i*10) /16); // Let's randomize our mod length with some Perlin noise. - uint16_t val = (i+1) * allfreq; // This sets the frequency of the waves. The +1 makes sure that leds[0] is used. + uint16_t val = (i+1) * allfreq; // This sets the frequency of the waves. The +1 makes sure that led 0 is used. if (modVal == 0) modVal = 1; val += *phase * (i % modVal +1) /2; // This sets the varying phase change of the waves. By Andrew Tuline. uint8_t b = cubicwave8(val); // Now we make an 8 bit sinewave. @@ -3853,13 +3864,13 @@ uint16_t phased_base(uint8_t moder) { // We're making sine wave uint16_t mode_phased(void) { return phased_base(0); } -static const char *_data_FX_MODE_PHASED PROGMEM = "Phased"; +static const char _data_FX_MODE_PHASED[] PROGMEM = "Phased"; uint16_t mode_phased_noise(void) { return phased_base(1); } -static const char *_data_FX_MODE_PHASEDNOISE PROGMEM = "Phased Noise"; +static const char _data_FX_MODE_PHASEDNOISE[] PROGMEM = "Phased Noise"; uint16_t mode_twinkleup(void) { // A very short twinkle routine with fade-in and dual controls. By Andrew Tuline. @@ -3875,12 +3886,12 @@ uint16_t mode_twinkleup(void) { // A very short twinkle routine if (random8() > SEGMENT.intensity) pixBri = 0; uint32_t col = color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(random8() + strip.now/100, false, PALETTE_SOLID_WRAP, 0), pixBri); if (strip.isMatrix) SEGMENT.setPixelColorXY(j, k, col); - else SEGMENT.setPixelColor(i, col); + else SEGMENT.setPixelColor(i, col); } return FRAMETIME; } -static const char *_data_FX_MODE_TWINKLEUP PROGMEM = "Twinkleup@!,Intensity;!,!,;!"; +static const char _data_FX_MODE_TWINKLEUP[] PROGMEM = "Twinkleup@!,Intensity;!,!,;!;1d,2d"; // Peaceful noise that's slow and with gradually changing palettes. Does not support WLED palettes or default colours or controls. @@ -3909,7 +3920,7 @@ uint16_t mode_noisepal(void) { // Slow noise if (SEGMENT.palette > 0) palettes[0] = SEGPALETTE; - for(int i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { uint8_t index = inoise8(i*scale, SEGENV.aux0+i*scale); // Get a value from the noise function. I'm using both x and y axis. color = ColorFromPalette(palettes[0], index, 255, LINEARBLEND); // Use the my own palette. SEGMENT.setPixelColor(i, color.red, color.green, color.blue); @@ -3919,7 +3930,7 @@ uint16_t mode_noisepal(void) { // Slow noise return FRAMETIME; } -static const char *_data_FX_MODE_NOISEPAL PROGMEM = "Noise Pal"; +static const char _data_FX_MODE_NOISEPAL[] PROGMEM = "Noise Pal"; // Sine waves that have controllable phase change speed, frequency and cutoff. By Andrew Tuline. @@ -3941,7 +3952,7 @@ uint16_t mode_sinewave(void) { // Adjustable sinewave. By Andrew Tul return FRAMETIME; } -static const char *_data_FX_MODE_SINEWAVE PROGMEM = "Sine"; +static const char _data_FX_MODE_SINEWAVE[] PROGMEM = "Sine"; /* @@ -3965,10 +3976,10 @@ uint16_t mode_flow(void) SEGMENT.fill(SEGMENT.color_from_palette(-counter, false, true, 255)); - for (uint16_t z = 0; z < zones; z++) + for (int z = 0; z < zones; z++) { uint16_t pos = offset + z * zoneLen; - for (uint16_t i = 0; i < zoneLen; i++) + for (int i = 0; i < zoneLen; i++) { uint8_t colorIndex = (i * 255 / zoneLen) - counter; uint16_t led = (z & 0x01) ? i : (zoneLen -1) -i; @@ -3979,7 +3990,7 @@ uint16_t mode_flow(void) return FRAMETIME; } -static const char *_data_FX_MODE_FLOW PROGMEM = "Flow@!,!;!,!,!;!;mp12=1"; //vertical +static const char _data_FX_MODE_FLOW[] PROGMEM = "Flow@!,!;!,!,!;!;mp12=1,1d"; //vertical /* @@ -3993,7 +4004,7 @@ uint16_t mode_chunchun(void) uint16_t numBirds = 2 + (SEGLEN >> 3); // 2 + 1/8 of a segment uint16_t span = (SEGMENT.intensity << 8) / numBirds; - for (uint16_t i = 0; i < numBirds; i++) + for (int i = 0; i < numBirds; i++) { counter -= span; uint16_t megumin = sin16(counter) + 0x8000; @@ -4003,7 +4014,7 @@ uint16_t mode_chunchun(void) } return FRAMETIME; } -static const char *_data_FX_MODE_CHUNCHUN PROGMEM = "Chunchun@!,Gap size;!,!,;!"; +static const char _data_FX_MODE_CHUNCHUN[] PROGMEM = "Chunchun@!,Gap size;!,!,;!;1d"; //13 bytes @@ -4093,14 +4104,14 @@ uint16_t mode_dancing_shadows(void) if (spotlights[i].width <= 1) { if (start >= 0 && start < SEGLEN) { - SEGMENT.blendPixelColor(start, color, 128); + SEGMENT.blendPixelColor(start, color, 128); // TODO } } else { switch (spotlights[i].type) { case SPOT_TYPE_SOLID: for (size_t j = 0; j < spotlights[i].width; j++) { if ((start + j) >= 0 && (start + j) < SEGLEN) { - SEGMENT.blendPixelColor(start + j, color, 128); + SEGMENT.blendPixelColor(start + j, color, 128); // TODO } } break; @@ -4108,7 +4119,7 @@ uint16_t mode_dancing_shadows(void) case SPOT_TYPE_GRADIENT: for (size_t j = 0; j < spotlights[i].width; j++) { if ((start + j) >= 0 && (start + j) < SEGLEN) { - SEGMENT.blendPixelColor(start + j, color, cubicwave8(map(j, 0, spotlights[i].width - 1, 0, 255))); + SEGMENT.blendPixelColor(start + j, color, cubicwave8(map(j, 0, spotlights[i].width - 1, 0, 255))); // TODO } } break; @@ -4116,7 +4127,7 @@ uint16_t mode_dancing_shadows(void) case SPOT_TYPE_2X_GRADIENT: for (size_t j = 0; j < spotlights[i].width; j++) { if ((start + j) >= 0 && (start + j) < SEGLEN) { - SEGMENT.blendPixelColor(start + j, color, cubicwave8(2 * map(j, 0, spotlights[i].width - 1, 0, 255))); + SEGMENT.blendPixelColor(start + j, color, cubicwave8(2 * map(j, 0, spotlights[i].width - 1, 0, 255))); // TODO } } break; @@ -4124,7 +4135,7 @@ uint16_t mode_dancing_shadows(void) case SPOT_TYPE_2X_DOT: for (size_t j = 0; j < spotlights[i].width; j += 2) { if ((start + j) >= 0 && (start + j) < SEGLEN) { - SEGMENT.blendPixelColor(start + j, color, 128); + SEGMENT.blendPixelColor(start + j, color, 128); // TODO } } break; @@ -4132,7 +4143,7 @@ uint16_t mode_dancing_shadows(void) case SPOT_TYPE_3X_DOT: for (size_t j = 0; j < spotlights[i].width; j += 3) { if ((start + j) >= 0 && (start + j) < SEGLEN) { - SEGMENT.blendPixelColor(start + j, color, 128); + SEGMENT.blendPixelColor(start + j, color, 128); // TODO } } break; @@ -4140,7 +4151,7 @@ uint16_t mode_dancing_shadows(void) case SPOT_TYPE_4X_DOT: for (size_t j = 0; j < spotlights[i].width; j += 4) { if ((start + j) >= 0 && (start + j) < SEGLEN) { - SEGMENT.blendPixelColor(start + j, color, 128); + SEGMENT.blendPixelColor(start + j, color, 128); // TODO } } break; @@ -4150,7 +4161,7 @@ uint16_t mode_dancing_shadows(void) return FRAMETIME; } -static const char *_data_FX_MODE_DANCING_SHADOWS PROGMEM = "Dancing Shadows@!,# of shadows;!,,;!"; +static const char _data_FX_MODE_DANCING_SHADOWS[] PROGMEM = "Dancing Shadows@!,# of shadows;!,,;!;1d"; /* @@ -4171,7 +4182,7 @@ uint16_t mode_washing_machine(void) { return FRAMETIME; } -static const char *_data_FX_MODE_WASHING_MACHINE PROGMEM = "Washing Machine"; +static const char _data_FX_MODE_WASHING_MACHINE[] PROGMEM = "Washing Machine"; /* @@ -4199,7 +4210,7 @@ uint16_t mode_blends(void) { return FRAMETIME; } -static const char *_data_FX_MODE_BLENDS PROGMEM = "Blends@Shift speed,Blend speed;1,2,3;!"; +static const char _data_FX_MODE_BLENDS[] PROGMEM = "Blends@Shift speed,Blend speed;1,2,3;!;1d"; /* @@ -4284,9 +4295,9 @@ uint16_t mode_tv_simulator(void) { } } // Apply gamma correction, further expand to 16/16/16 - nr = (uint8_t)strip.gamma8(tvSimulator->actualColorR) * 257; // New R/G/B - ng = (uint8_t)strip.gamma8(tvSimulator->actualColorG) * 257; - nb = (uint8_t)strip.gamma8(tvSimulator->actualColorB) * 257; + nr = (uint8_t)gamma8(tvSimulator->actualColorR) * 257; // New R/G/B + ng = (uint8_t)gamma8(tvSimulator->actualColorG) * 257; + nb = (uint8_t)gamma8(tvSimulator->actualColorB) * 257; if (SEGENV.aux0 == 0) { // initialize next iteration SEGENV.aux0 = 1; @@ -4328,7 +4339,7 @@ uint16_t mode_tv_simulator(void) { return FRAMETIME; } -static const char *_data_FX_MODE_TV_SIMULATOR PROGMEM = "TV Simulator"; +static const char _data_FX_MODE_TV_SIMULATOR[] PROGMEM = "TV Simulator"; /* @@ -4451,14 +4462,14 @@ uint16_t mode_aurora(void) { waves = reinterpret_cast(SEGENV.data); - for(int i = 0; i < SEGENV.aux1; i++) { + for (int i = 0; i < SEGENV.aux1; i++) { waves[i].init(SEGLEN, CRGB(SEGMENT.color_from_palette(random8(), false, false, random(0, 3)))); } } else { waves = reinterpret_cast(SEGENV.data); } - for(int i = 0; i < SEGENV.aux1; i++) { + for (int i = 0; i < SEGENV.aux1; i++) { //Update values of wave waves[i].update(SEGLEN, SEGMENT.speed); @@ -4473,12 +4484,12 @@ uint16_t mode_aurora(void) { if (SEGCOLOR(1)) backlight++; if (SEGCOLOR(2)) backlight++; //Loop through LEDs to determine color - for(int i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { CRGB mixedRgb = CRGB(backlight, backlight, backlight); //For each LED we must check each wave if it is "active" at this position. //If there are multiple waves active on a LED we multiply their values. - for(int j = 0; j < SEGENV.aux1; j++) { + for (int j = 0; j < SEGENV.aux1; j++) { CRGB rgb = waves[j].getColorForLED(i); if(rgb != CRGB(0)) { @@ -4491,7 +4502,7 @@ uint16_t mode_aurora(void) { return FRAMETIME; } -static const char *_data_FX_MODE_AURORA PROGMEM = "Aurora@!=24,!;1,2,3;!=50"; +static const char _data_FX_MODE_AURORA[] PROGMEM = "Aurora@!,!;1,2,3;!;sx=24,pal=50,1d"; // WLED-SR effects @@ -4503,7 +4514,7 @@ static const char *_data_FX_MODE_AURORA PROGMEM = "Aurora@!=24,!;1,2,3;!=50"; uint16_t mode_perlinmove(void) { SEGMENT.fade_out(255-SEGMENT.custom1); - for (uint16_t i = 0; i < SEGMENT.intensity/16 + 1; i++) { + for (int i = 0; i < SEGMENT.intensity/16 + 1; i++) { uint16_t locn = inoise16(millis()*128/(260-SEGMENT.speed)+i*15000, millis()*128/(260-SEGMENT.speed)); // Get a new pixel location from moving noise. uint16_t pixloc = map(locn, 50*256, 192*256, 0, SEGLEN-1); // Map that to the length of the strand, and ensure we don't go over. SEGMENT.setPixelColor(pixloc, SEGMENT.color_from_palette(pixloc%255, false, PALETTE_SOLID_WRAP, 0)); @@ -4511,7 +4522,7 @@ uint16_t mode_perlinmove(void) { return FRAMETIME; } // mode_perlinmove() -static const char *_data_FX_MODE_PERLINMOVE PROGMEM = "Perlin Move@!,# of pixels,fade rate;,!;!"; +static const char _data_FX_MODE_PERLINMOVE[] PROGMEM = "Perlin Move@!,# of pixels,fade rate;,!;!;1d"; ///////////////////////// @@ -4520,14 +4531,16 @@ static const char *_data_FX_MODE_PERLINMOVE PROGMEM = "Perlin Move@!,# of pixels // Uses beatsin8() + phase shifting. By: Andrew Tuline uint16_t mode_wavesins(void) { - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { uint8_t bri = sin8(millis()/4 + i * SEGMENT.intensity); - SEGMENT.setPixelColor(i, ColorFromPalette(SEGPALETTE, beatsin8(SEGMENT.speed, SEGMENT.custom1, SEGMENT.custom1+SEGMENT.custom2, 0, i * SEGMENT.custom3), bri, LINEARBLEND)); + uint8_t index = beatsin8(SEGMENT.speed, SEGMENT.custom1, SEGMENT.custom1+SEGMENT.custom2, 0, i * SEGMENT.custom3); + //SEGMENT.setPixelColor(i, ColorFromPalette(SEGPALETTE, index, bri, LINEARBLEND)); + SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(index, false, PALETTE_SOLID_WRAP, 0, bri)); } return FRAMETIME; } // mode_waveins() -static const char *_data_FX_MODE_WAVESINS PROGMEM = "Wavesins@Speed,Brightness variation,Starting Color,Range of Colors,Color variation;;!"; +static const char _data_FX_MODE_WAVESINS[] PROGMEM = "Wavesins@Speed,Brightness variation,Starting Color,Range of Colors,Color variation;!;!;1d"; ////////////////////////////// @@ -4540,7 +4553,7 @@ uint16_t mode_FlowStripe(void) { uint8_t hue = millis() / (SEGMENT.speed+1); uint32_t t = millis() / (SEGMENT.intensity/8+1); - for (uint16_t i = 0; i < SEGLEN; i++) { + for (int i = 0; i < SEGLEN; i++) { int c = (abs(i - hl) / hl) * 127; c = sin8(c); c = sin8(c / 2 + t); @@ -4550,7 +4563,7 @@ uint16_t mode_FlowStripe(void) { return FRAMETIME; } // mode_FlowStripe() -static const char *_data_FX_MODE_FLOWSTRIPE PROGMEM = "Flow Stripe@Hue speed,Effect speed;;"; +static const char _data_FX_MODE_FLOWSTRIPE[] PROGMEM = "Flow Stripe@Hue speed,Effect speed;;;1d"; #ifndef WLED_DISABLE_2D @@ -4565,41 +4578,36 @@ uint16_t mode_2DBlackHole(void) { // By: Stepko https://editor.soulma const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - uint16_t x, y; // initialize on first call if (SEGENV.call == 0) { - SEGMENT.fill_solid(leds, CRGB::Black); + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); } - SEGMENT.fadeToBlackBy(leds, 16 + (SEGMENT.speed>>3)); // create fading trails + SEGMENT.fadeToBlackBy(16 + (SEGMENT.speed>>3)); // create fading trails float t = (float)(millis())/128; // timebase // outer stars for (size_t i = 0; i < 8; i++) { x = beatsin8(SEGMENT.custom1>>3, 0, cols - 1, 0, ((i % 2) ? 128 : 0) + t * i); y = beatsin8(SEGMENT.intensity>>3, 0, rows - 1, 0, ((i % 2) ? 192 : 64) + t * i); - leds[XY(x,y)] += CHSV(i*32, 255, 255); + SEGMENT.addPixelColorXY(x, y, CHSV(i*32, 255, 255)); } // inner stars for (size_t i = 0; i < 4; i++) { x = beatsin8(SEGMENT.custom2>>3, cols/4, cols - 1 - cols/4, 0, ((i % 2) ? 128 : 0) + t * i); y = beatsin8(SEGMENT.custom3>>3, rows/4, rows - 1 - rows/4, 0, ((i % 2) ? 192 : 64) + t * i); - leds[XY(x,y)] += CHSV(i*32, 255, 255); + SEGMENT.addPixelColorXY(x, y, CHSV(i*32, 255, 255)); } // central white dot - leds[XY(cols/2,rows/2)] = CHSV(0,0,255); + SEGMENT.setPixelColorXY(cols/2, rows/2, CHSV(0, 0, 255)); // blur everything a bit - SEGMENT.blur2d(leds, 16); + SEGMENT.blur(16); - SEGMENT.setPixels(leds); return FRAMETIME; } // mode_2DBlackHole() -static const char *_data_FX_MODE_2DBLACKHOLE PROGMEM = "2D Black Hole@Fade rate,Outer Y freq.,Outer X freq.,Inner X freq.,Inner Y freq.;;"; +static const char _data_FX_MODE_2DBLACKHOLE[] PROGMEM = "Black Hole@Fade rate,Outer Y freq.,Outer X freq.,Inner X freq.,Inner Y freq.;;;2d"; //////////////////////////// @@ -4610,14 +4618,10 @@ uint16_t mode_2DColoredBursts() { // By: ldirko https://editor.so const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); if (SEGENV.call == 0) { - SEGMENT.fill_solid(leds, CRGB::Black); - //for (uint16_t i = 0; i < w*h; i++) leds[i] = CRGB::Black; + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); SEGENV.aux0 = 0; // start with red hue } @@ -4627,8 +4631,7 @@ uint16_t mode_2DColoredBursts() { // By: ldirko https://editor.so byte numLines = SEGMENT.intensity/16 + 1; SEGENV.aux0++; // hue - SEGMENT.fadeToBlackBy(leds, 40); - + SEGMENT.fadeToBlackBy(40); for (size_t i = 0; i < numLines; i++) { byte x1 = beatsin8(2 + SEGMENT.speed/16, 0, (cols - 1)); byte x2 = beatsin8(1 + SEGMENT.speed/16, 0, (cols - 1)); @@ -4643,22 +4646,20 @@ uint16_t mode_2DColoredBursts() { // By: ldirko https://editor.so for (size_t i = 1; i <= steps; i++) { byte dx = lerp8by8(x1, y1, i * 255 / steps); byte dy = lerp8by8(x2, y2, i * 255 / steps); - int index = XY(dx, dy); - leds[index] += color; // change to += for brightness look - if (grad) leds[index] %= (i * 255 / steps); //Draw gradient line + SEGMENT.addPixelColorXY(dx, dy, color); // use setPixelColorXY for different look + if (grad) SEGMENT.fadePixelColorXY(dx, dy, (i * 255 / steps)); //Draw gradient line } if (dot) { //add white point at the ends of line - leds[XY(x1, x2)] += CRGB::White; - leds[XY(y1, y2)] += CRGB::White; + SEGMENT.addPixelColorXY(x1, x2, WHITE); + SEGMENT.addPixelColorXY(y1, y2, WHITE); } } - SEGMENT.blur2d(leds, 4); + SEGMENT.blur(4); - SEGMENT.setPixels(leds); // Use this ONLY if we're going to display via leds[x] method. return FRAMETIME; } // mode_2DColoredBursts() -static const char *_data_FX_MODE_2DCOLOREDBURSTS PROGMEM = "2D Colored Bursts@Speed,# of lines;;!"; +static const char _data_FX_MODE_2DCOLOREDBURSTS[] PROGMEM = "Colored Bursts@Speed,# of lines;;!;2d"; ///////////////////// @@ -4669,25 +4670,23 @@ uint16_t mode_2Ddna(void) { // dna originally by by ldirko at https://pa const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); - - SEGMENT.fadeToBlackBy(leds, 64); - - for(int i = 0; i < cols; i++) { - leds[XY(i, beatsin8(SEGMENT.speed/8, 0, rows-1, 0, i*4))] = ColorFromPalette(SEGPALETTE, i*5+millis()/17, beatsin8(5, 55, 255, 0, i*10), LINEARBLEND); - leds[XY(i, beatsin8(SEGMENT.speed/8, 0, rows-1, 0, i*4+128))] = ColorFromPalette(SEGPALETTE,i*5+128+millis()/17, beatsin8(5, 55, 255, 0, i*10+128), LINEARBLEND); // 180 degrees (128) out of phase + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); } - SEGMENT.blur2d(leds, SEGMENT.intensity/8); - SEGMENT.setPixels(leds); + SEGMENT.fadeToBlackBy(64); + + for (int i = 0; i < cols; i++) { + SEGMENT.setPixelColorXY(i, beatsin8(SEGMENT.speed/8, 0, rows-1, 0, i*4 ), ColorFromPalette(SEGPALETTE, i*5+millis()/17, beatsin8(5, 55, 255, 0, i*10), LINEARBLEND)); + SEGMENT.setPixelColorXY(i, beatsin8(SEGMENT.speed/8, 0, rows-1, 0, i*4+128), ColorFromPalette(SEGPALETTE, i*5+128+millis()/17, beatsin8(5, 55, 255, 0, i*10+128), LINEARBLEND)); + } + SEGMENT.blur(SEGMENT.intensity>>3); + return FRAMETIME; } // mode_2Ddna() -static const char *_data_FX_MODE_2DDNA PROGMEM = "2D DNA@Scroll speed,Blur;1,2,3;!"; +static const char _data_FX_MODE_2DDNA[] PROGMEM = "DNA@Scroll speed,Blur;1,2,3;!;2d"; ///////////////////////// @@ -4698,13 +4697,10 @@ uint16_t mode_2DDNASpiral() { // By: ldirko https://editor.soulma const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); if (SEGENV.call == 0) { - SEGMENT.fill_solid(leds, CRGB::Black); + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); SEGENV.aux0 = 0; // hue } @@ -4712,9 +4708,9 @@ uint16_t mode_2DDNASpiral() { // By: ldirko https://editor.soulma uint8_t freq = SEGMENT.intensity/8; uint32_t ms = millis() / 20; - SEGMENT.nscale8(leds, 120); + SEGMENT.fadeToBlackBy(135); - for (uint16_t i = 0; i < rows; i++) { + for (int i = 0; i < rows; i++) { uint16_t x = beatsin8(speeds, 0, cols - 1, 0, i * freq) + beatsin8(speeds - 7, 0, cols - 1, 0, i * freq + 128); uint16_t x1 = beatsin8(speeds, 0, cols - 1, 0, 128 + i * freq) + beatsin8(speeds - 7, 0, cols - 1, 0, 128 + 64 + i * freq); SEGENV.aux0 = i * 128 / cols + ms; //ewowi20210629: not width - 1 to avoid crash if width = 1 @@ -4723,19 +4719,17 @@ uint16_t mode_2DDNASpiral() { // By: ldirko https://editor.soulma byte steps = abs8(x - x1) + 1; for (size_t k = 1; k <= steps; k++) { byte dx = lerp8by8(x, x1, k * 255 / steps); - uint16_t index = XY(dx, i); - leds[index] += ColorFromPalette(SEGPALETTE, SEGENV.aux0, 255, LINEARBLEND); - leds[index] %= (k * 255 / steps); //for draw gradient line + SEGMENT.addPixelColorXY(dx, i, ColorFromPalette(SEGPALETTE, SEGENV.aux0, 255, LINEARBLEND)); + SEGMENT.fadePixelColorXY(dx, i, (k * 255 / steps)); } - leds[XY(x, i)] += CRGB::DarkSlateGray; - leds[XY(x1, i)] += CRGB::White; + SEGMENT.addPixelColorXY(x, i, DARKSLATEGRAY); + SEGMENT.addPixelColorXY(x1, i, WHITE); } } - SEGMENT.setPixels(leds); // Use this ONLY if we're going to display via leds[x] method. return FRAMETIME; } // mode_2DDNASpiral() -static const char *_data_FX_MODE_2DDNASPIRAL PROGMEM = "2D DNA Spiral@Scroll speed,Blur;;!"; +static const char _data_FX_MODE_2DDNASPIRAL[] PROGMEM = "DNA Spiral@Scroll speed,Y frequency;;!;2d"; ///////////////////////// @@ -4746,16 +4740,13 @@ uint16_t mode_2DDrift() { // By: Stepko https://editor.soulmateli const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - //if (cols<8 || rows<8) return mode_static(); // makes no sense to run on smaller than 8x8 + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); - - SEGMENT.fadeToBlackBy(leds, 128); + SEGMENT.fadeToBlackBy(128); const uint16_t maxDim = MAX(cols, rows)/2; unsigned long t = millis() / (32 - (SEGMENT.speed>>3)); @@ -4763,14 +4754,13 @@ uint16_t mode_2DDrift() { // By: Stepko https://editor.soulmateli float angle = radians(t * (maxDim - i)); uint16_t myX = (cols>>1) + (uint16_t)(sin_t(angle) * i) + (cols%2); uint16_t myY = (rows>>1) + (uint16_t)(cos_t(angle) * i) + (rows%2); - leds[XY(myX,myY)] = ColorFromPalette(SEGPALETTE, (i * 20) + (t / 20), 255, LINEARBLEND); + SEGMENT.setPixelColorXY(myX, myY, ColorFromPalette(SEGPALETTE, (i * 20) + (t / 20), 255, LINEARBLEND)); } - SEGMENT.blur2d(leds, SEGMENT.intensity>>3); + SEGMENT.blur(SEGMENT.intensity>>3); - SEGMENT.setPixels(leds); return FRAMETIME; } // mode_2DDrift() -static const char *_data_FX_MODE_2DDRIFT PROGMEM = "2D Drift@Rotation speed,Blur amount;;!"; +static const char _data_FX_MODE_2DDRIFT[] PROGMEM = "Drift@Rotation speed,Blur amount;;!;2d"; ////////////////////////// @@ -4781,33 +4771,31 @@ uint16_t mode_2Dfirenoise(void) { // firenoise2d. By Andrew Tuline const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } uint16_t xscale = SEGMENT.intensity*4; uint32_t yscale = SEGMENT.speed*8; uint8_t indexx = 0; SEGPALETTE = CRGBPalette16( CRGB(0,0,0), CRGB(0,0,0), CRGB(0,0,0), CRGB(0,0,0), - CRGB::Red, CRGB::Red, CRGB::Red, CRGB::DarkOrange, - CRGB::DarkOrange,CRGB::DarkOrange, CRGB::Orange, CRGB::Orange, - CRGB::Yellow, CRGB::Orange, CRGB::Yellow, CRGB::Yellow); + CRGB::Red, CRGB::Red, CRGB::Red, CRGB::DarkOrange, + CRGB::DarkOrange,CRGB::DarkOrange, CRGB::Orange, CRGB::Orange, + CRGB::Yellow, CRGB::Orange, CRGB::Yellow, CRGB::Yellow); - for (uint16_t j=0; j < cols; j++) { - for (uint16_t i=0; i < rows; i++) { + for (int j=0; j < cols; j++) { + for (int i=0; i < rows; i++) { indexx = inoise8(j*yscale*rows/255, i*xscale+millis()/4); // We're moving along our Perlin map. - leds[XY(j,i)] = ColorFromPalette(SEGPALETTE, min(i*(indexx)>>4, 255), i*255/cols, LINEARBLEND); // With that value, look up the 8 bit colour palette value and assign it to the current LED. + SEGMENT.setPixelColorXY(j, i, ColorFromPalette(SEGPALETTE, min(i*(indexx)>>4, 255), i*255/cols, LINEARBLEND)); // With that value, look up the 8 bit colour palette value and assign it to the current LED. } // for i } // for j - SEGMENT.setPixels(leds); return FRAMETIME; } // mode_2Dfirenoise() -static const char *_data_FX_MODE_2DFIRENOISE PROGMEM = "2D Firenoise@X scale,Y scale;;"; +static const char _data_FX_MODE_2DFIRENOISE[] PROGMEM = "Firenoise@X scale,Y scale;;;2d"; ////////////////////////////// @@ -4818,23 +4806,23 @@ uint16_t mode_2DFrizzles(void) { // By: Stepko https://editor.so const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); - - SEGMENT.fadeToBlackBy(leds, 16); - for (size_t i = 8; i > 0; i--) { - leds[XY(beatsin8(SEGMENT.speed/8 + i, 0, cols - 1), beatsin8(SEGMENT.intensity/8 - i, 0, rows - 1))] += ColorFromPalette(SEGPALETTE, beatsin8(12, 0, 255), 255, LINEARBLEND); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); } - SEGMENT.blur2d(leds, 16); - SEGMENT.setPixels(leds); + SEGMENT.fadeToBlackBy(16); + for (size_t i = 8; i > 0; i--) { + SEGMENT.addPixelColorXY(beatsin8(SEGMENT.speed/8 + i, 0, cols - 1), + beatsin8(SEGMENT.intensity/8 - i, 0, rows - 1), + ColorFromPalette(SEGPALETTE, beatsin8(12, 0, 255), 255, LINEARBLEND)); + } + SEGMENT.blur(SEGMENT.custom1>>3); + return FRAMETIME; } // mode_2DFrizzles() -static const char *_data_FX_MODE_2DFRIZZLES PROGMEM = "2D Frizzles@X frequency,Y frequency;;!"; +static const char _data_FX_MODE_2DFRIZZLES[] PROGMEM = "Frizzles@X frequency,Y frequency,Blur;;!;2d"; /////////////////////////////////////////// @@ -4850,12 +4838,11 @@ uint16_t mode_2Dgameoflife(void) { // Written by Ewoud Wijma, inspired by https: const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled + const uint16_t dataSize = sizeof(CRGB) * SEGMENT.length(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize*2 + sizeof(unsigned long))) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - CRGB *prevLeds = reinterpret_cast(SEGENV.data + dataSize); - unsigned long *resetMillis = reinterpret_cast(SEGENV.data + 2*dataSize); // triggers reset + if (!SEGENV.allocateData(dataSize + sizeof(unsigned long))) return mode_static(); //allocation failed + CRGB *prevLeds = reinterpret_cast(SEGENV.data); + unsigned long *resetMillis = reinterpret_cast(SEGENV.data + dataSize); // triggers reset CRGB backgroundColor = SEGCOLOR(1); @@ -4868,19 +4855,20 @@ uint16_t mode_2Dgameoflife(void) { // Written by Ewoud Wijma, inspired by https: for (int x = 0; x < cols; x++) for (int y = 0; y < rows; y++) { uint8_t state = random8()%2; if (state == 0) - leds[XY(x,y)] = backgroundColor; + SEGMENT.setPixelColorXY(x,y, backgroundColor); else - leds[XY(x,y)] = (CRGB)SEGMENT.color_from_palette(random8(), false, PALETTE_SOLID_WRAP, 0); + SEGMENT.setPixelColorXY(x,y, SEGMENT.color_from_palette(random8(), false, PALETTE_SOLID_WRAP, 0)); } - SEGMENT.fill_solid(prevLeds, CRGB::Black); + for (int y = 0; y < rows; y++) for (int x = 0; x < cols; x++) prevLeds[XY(x,y)] = CRGB::Black; + SEGENV.aux1 = 0; SEGENV.aux0 = 0xFFFF; } //copy previous leds (save previous generation) - for (int x = 0; x < cols; x++) for (int y = 0; y < rows; y++) prevLeds[XY(x,y)] = leds[XY(x,y)]; + for (int x = 0; x < cols; x++) for (int y = 0; y < rows; y++) prevLeds[XY(x,y)] = SEGMENT.getPixelColorXY(x,y); //calculate new leds for (int x = 0; x < cols; x++) for (int y = 0; y < rows; y++) { @@ -4912,32 +4900,33 @@ uint16_t mode_2Dgameoflife(void) { // Written by Ewoud Wijma, inspired by https: } // i,j // Rules of Life - if ((leds[XY(x,y)] != backgroundColor) && (neighbors < 2)) leds[XY(x,y)] = backgroundColor; // Loneliness - else if ((leds[XY(x,y)] != backgroundColor) && (neighbors > 3)) leds[XY(x,y)] = backgroundColor; // Overpopulation - else if ((leds[XY(x,y)] == backgroundColor) && (neighbors == 3)) { // Reproduction + uint32_t col = SEGMENT.getPixelColorXY(x,y); + uint32_t bgc = RGBW32(backgroundColor.r, backgroundColor.g, backgroundColor.b, 0); + if ((col != bgc) && (neighbors < 2)) SEGMENT.setPixelColorXY(x,y, bgc); // Loneliness + else if ((col != bgc) && (neighbors > 3)) SEGMENT.setPixelColorXY(x,y, bgc); // Overpopulation + else if ((col == bgc) && (neighbors == 3)) { // Reproduction //find dominantcolor and assign to cell colorCount dominantColorCount = {backgroundColor, 0}; for (int i=0; i<9 && colorsCount[i].count != 0; i++) if (colorsCount[i].count > dominantColorCount.count) dominantColorCount = colorsCount[i]; - if (dominantColorCount.count > 0) leds[XY(x,y)] = dominantColorCount.color; //assign the dominant color + if (dominantColorCount.count > 0) SEGMENT.setPixelColorXY(x,y, dominantColorCount.color); //assign the dominant color } // else do nothing! } //x,y - // calculate CRC16 of leds[] - uint16_t crc = crc16((const unsigned char*)leds, dataSize-1); + // calculate CRC16 of leds + uint16_t crc = crc16((const unsigned char*)prevLeds, dataSize-1); //ewowi: prevLeds instead of leds work as well, tbd: compare more patterns, see SR! // check if we had same CRC and reset if needed // same CRC would mean image did not change or was repeating itself if (!(crc == SEGENV.aux0 || crc == SEGENV.aux1)) *resetMillis = strip.now; //if no repetition avoid reset - // remeber last two + // remember last two SEGENV.aux1 = SEGENV.aux0; SEGENV.aux0 = crc; - SEGMENT.setPixels(leds); return (SEGMENT.getOption(SEG_OPTION_TRANSITIONAL)) ? FRAMETIME : FRAMETIME_FIXED * (128-(SEGMENT.speed>>1)); // update only when appropriate time passes (in 42 FPS slots) } // mode_2Dgameoflife() -static const char *_data_FX_MODE_2DGAMEOFLIFE PROGMEM = "2D Game Of Life@!,;!,!;!"; +static const char _data_FX_MODE_2DGAMEOFLIFE[] PROGMEM = "Game Of Life@!,;!,!;!;2d"; ///////////////////////// @@ -4950,15 +4939,15 @@ uint16_t mode_2DHiphotic() { // By: ldirko https://edit const uint16_t rows = SEGMENT.virtualHeight(); const uint32_t a = strip.now / 8; - for (uint16_t x = 0; x < cols; x++) { - for (uint16_t y = 0; y < rows; y++) { + for (int x = 0; x < cols; x++) { + for (int y = 0; y < rows; y++) { SEGMENT.setPixelColorXY(x, y, SEGMENT.color_from_palette(sin8(cos8(x * SEGMENT.speed/16 + a / 3) + sin8(y * SEGMENT.intensity/16 + a / 4) + a), false, PALETTE_SOLID_WRAP, 0)); } } return FRAMETIME; } // mode_2DHiphotic() -static const char *_data_FX_MODE_2DHIPHOTIC PROGMEM = "2D Hiphotic@X scale,Y scale;;!"; +static const char _data_FX_MODE_2DHIPHOTIC[] PROGMEM = "Hiphotic@X scale,Y scale;;!;2d"; ///////////////////////// @@ -5071,11 +5060,11 @@ uint16_t mode_2DJulia(void) { // An animated Julia set } y += dy; } -// blur2d( leds, 64); +// SEGMENT.blur(64); return FRAMETIME; } // mode_2DJulia() -static const char *_data_FX_MODE_2DJULIA PROGMEM = "2D Julia@,Max iterations per pixel,X center,Y center,Area size;;!"; +static const char _data_FX_MODE_2DJULIA[] PROGMEM = "Julia@,Max iterations per pixel,X center,Y center,Area size;;!;2d"; ////////////////////////////// @@ -5088,7 +5077,6 @@ uint16_t mode_2DLissajous(void) { // By: Andrew Tuline const uint16_t rows = SEGMENT.virtualHeight(); SEGMENT.fadeToBlackBy(SEGMENT.intensity); - //SEGMENT.fade_out(SEGMENT.intensity); //for (int i=0; i < 4*(cols+rows); i ++) { for (int i=0; i < 256; i ++) { @@ -5103,7 +5091,7 @@ uint16_t mode_2DLissajous(void) { // By: Andrew Tuline return FRAMETIME; } // mode_2DLissajous() -static const char *_data_FX_MODE_2DLISSAJOUS PROGMEM = "2D Lissajous@X frequency,Fade rate;!,!,!;!"; +static const char _data_FX_MODE_2DLISSAJOUS[] PROGMEM = "Lissajous@X frequency,Fade rate;!,!,!;!;2d"; /////////////////////// @@ -5114,12 +5102,11 @@ uint16_t mode_2Dmatrix(void) { // Matrix2D. By Jeremy Williams. const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } uint8_t fade = map(SEGMENT.custom1, 0, 255, 50, 250); // equals trail size uint8_t speed = (256-SEGMENT.speed) >> map(MIN(rows, 150), 0, 150, 0, 3); // slower speeds for small displays @@ -5136,24 +5123,23 @@ uint16_t mode_2Dmatrix(void) { // Matrix2D. By Jeremy Williams. if (strip.now - SEGENV.step >= speed) { SEGENV.step = strip.now; - for (int16_t row=rows-1; row>=0; row--) { - for (int16_t col=0; col=0; row--) { + for (int col=0; col(SEGENV.data); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); + SEGMENT.fadeToBlackBy(SEGMENT.custom1>>2); - SEGMENT.fadeToBlackBy(leds, 64); float t = millis() / (33 - SEGMENT.speed/8); - for (uint16_t i = 0; i < cols; i++) { + for (int i = 0; i < cols; i++) { uint16_t thisVal = inoise8(i * 30, t, t); uint16_t thisMax = map(thisVal, 0, 255, 0, cols-1); - for (uint16_t j = 0; j < rows; j++) { + for (int j = 0; j < rows; j++) { uint16_t thisVal_ = inoise8(t, j * 30, t); uint16_t thisMax_ = map(thisVal_, 0, 255, 0, rows-1); uint16_t x = (i + thisMax_ - cols / 2); @@ -5284,20 +5267,19 @@ uint16_t mode_2DPlasmaball(void) { // By: Stepko https://edito uint16_t cx = (i + thisMax_); uint16_t cy = (j + thisMax); - leds[XY(i, j)] += ((x - y > -2) && (x - y < 2)) || - ((cols - 1 - x - y) > -2 && (cols - 1 - x - y < 2)) || - (cols - cx == 0) || - (cols - 1 - cx == 0) || - ((rows - cy == 0) || - (rows - 1 - cy == 0)) ? ColorFromPalette(SEGPALETTE, beat8(5), thisVal, LINEARBLEND) : CRGB::Black; + SEGMENT.addPixelColorXY(i, j, ((x - y > -2) && (x - y < 2)) || + ((cols - 1 - x - y) > -2 && (cols - 1 - x - y < 2)) || + (cols - cx == 0) || + (cols - 1 - cx == 0) || + ((rows - cy == 0) || + (rows - 1 - cy == 0)) ? ColorFromPalette(SEGPALETTE, beat8(5), thisVal, LINEARBLEND) : CRGB::Black); } } - SEGMENT.blur2d(leds, 4); + SEGMENT.blur(SEGMENT.custom2>>5); - SEGMENT.setPixels(leds); return FRAMETIME; } // mode_2DPlasmaball() -static const char *_data_FX_MODE_2DPLASMABALL PROGMEM = "2D Plasma Ball@Speed;!,!,!;!"; +static const char _data_FX_MODE_2DPLASMABALL[] PROGMEM = "Plasma Ball@Speed,,Fade,Blur;!,!,!;!;2d"; //////////////////////////////// @@ -5311,16 +5293,13 @@ uint16_t mode_2DPolarLights(void) { // By: Kostyantyn Matviyevskyy https const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); CRGBPalette16 auroraPalette = {0x000000, 0x003300, 0x006600, 0x009900, 0x00cc00, 0x00ff00, 0x33ff00, 0x66ff00, 0x99ff00, 0xccff00, 0xffff00, 0xffcc00, 0xff9900, 0xff6600, 0xff3300, 0xff0000}; if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); SEGENV.step = 0; - SEGMENT.fill_solid(leds, CRGB::Black); } float adjustHeight = (float)map(rows, 8, 32, 28, 12); @@ -5343,20 +5322,19 @@ uint16_t mode_2DPolarLights(void) { // By: Kostyantyn Matviyevskyy https uint16_t _scale = map(SEGMENT.intensity, 0, 255, 30, adjScale); byte _speed = map(SEGMENT.speed, 0, 255, 128, 16); - for (uint16_t x = 0; x < cols; x++) { - for (uint16_t y = 0; y < rows; y++) { + for (int x = 0; x < cols; x++) { + for (int y = 0; y < rows; y++) { SEGENV.step++; - leds[XY(x, y)] = ColorFromPalette(auroraPalette, - qsub8( - inoise8((SEGENV.step%2) + x * _scale, y * 16 + SEGENV.step % 16, SEGENV.step / _speed), - fabs((float)rows / 2 - (float)y) * adjustHeight)); + SEGMENT.setPixelColorXY(x, y, ColorFromPalette(auroraPalette, + qsub8( + inoise8((SEGENV.step%2) + x * _scale, y * 16 + SEGENV.step % 16, SEGENV.step / _speed), + fabs((float)rows / 2 - (float)y) * adjustHeight))); } } - SEGMENT.setPixels(leds); return FRAMETIME; } // mode_2DPolarLights() -static const char *_data_FX_MODE_2DPOLARLIGHTS PROGMEM = "2D Polar Lights@Speed,Scale;;"; +static const char _data_FX_MODE_2DPOLARLIGHTS[] PROGMEM = "Polar Lights@Speed,Scale;;;2d"; ///////////////////////// @@ -5367,27 +5345,24 @@ uint16_t mode_2DPulser(void) { // By: ldirko https://edi //const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); - - SEGMENT.fadeToBlackBy(leds, 8 - (SEGMENT.intensity>>5)); + SEGMENT.fadeToBlackBy(8 - (SEGMENT.intensity>>5)); uint16_t a = strip.now / (18 - SEGMENT.speed / 16); uint16_t x = (a / 14); uint16_t y = map((sin8(a * 5) + sin8(a * 4) + sin8(a * 2)), 0, 765, rows-1, 0); - uint16_t index = XY(x, y); // XY() will wrap x or y - leds[index] = ColorFromPalette(SEGPALETTE, map(y, 0, rows-1, 0, 255), 255, LINEARBLEND); + SEGMENT.setPixelColorXY(x, y, ColorFromPalette(SEGPALETTE, map(y, 0, rows-1, 0, 255), 255, LINEARBLEND)); - SEGMENT.blur2d(leds, 1 + (SEGMENT.intensity>>4)); + SEGMENT.blur(1 + (SEGMENT.intensity>>4)); - SEGMENT.setPixels(leds); // Use this ONLY if we're going to display via leds[x] method. return FRAMETIME; } // mode_2DPulser() -static const char *_data_FX_MODE_2DPULSER PROGMEM = "2D Pulser@Speed,Blur;;!"; +static const char _data_FX_MODE_2DPULSER[] PROGMEM = "Pulser@Speed,Blur;;!;2d"; ///////////////////////// @@ -5398,27 +5373,26 @@ uint16_t mode_2DSindots(void) { // By: ldirko http const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); + SEGMENT.fadeToBlackBy(SEGMENT.custom1>>3); - SEGMENT.fadeToBlackBy(leds, 15); byte t1 = millis() / (257 - SEGMENT.speed); // 20; byte t2 = sin8(t1) / 4 * 2; - for (uint16_t i = 0; i < 13; i++) { + for (int i = 0; i < 13; i++) { byte x = sin8(t1 + i * SEGMENT.intensity/8)*(cols-1)/255; // max index now 255x15/255=15! byte y = sin8(t2 + i * SEGMENT.intensity/8)*(rows-1)/255; // max index now 255x15/255=15! - leds[XY(x, y)] = ColorFromPalette(SEGPALETTE, i * 255 / 13, 255, LINEARBLEND); + SEGMENT.setPixelColorXY(x, y, ColorFromPalette(SEGPALETTE, i * 255 / 13, 255, LINEARBLEND)); } - SEGMENT.blur2d(leds, 16); + SEGMENT.blur(SEGMENT.custom2>>3); - SEGMENT.setPixels(leds); // Use this ONLY if we're going to display via leds[x] method. return FRAMETIME; } // mode_2DSindots() -static const char *_data_FX_MODE_2DSINDOTS PROGMEM = "2D Sindots@Speed,Dot distance;;!"; +static const char _data_FX_MODE_2DSINDOTS[] PROGMEM = "Sindots@Speed,Dot distance,Fade rate,Blur;;!;2d"; ////////////////////////////// @@ -5431,18 +5405,18 @@ uint16_t mode_2Dsquaredswirl(void) { // By: Mark Kriegsman. https://g const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } const uint8_t kBorderWidth = 2; - SEGMENT.fadeToBlackBy(leds, 24); + SEGMENT.fadeToBlackBy(24); + uint8_t blurAmount = SEGMENT.custom3>>4; - SEGMENT.blur2d(leds, blurAmount); + SEGMENT.blur(blurAmount); // Use two out-of-sync sine waves uint8_t i = beatsin8(19, kBorderWidth, cols-kBorderWidth); @@ -5454,14 +5428,13 @@ uint16_t mode_2Dsquaredswirl(void) { // By: Mark Kriegsman. https://g uint16_t ms = millis(); - leds[XY(i, m)] += ColorFromPalette(SEGPALETTE, ms/29, 255, LINEARBLEND); - leds[XY(j, n)] += ColorFromPalette(SEGPALETTE, ms/41, 255, LINEARBLEND); - leds[XY(k, p)] += ColorFromPalette(SEGPALETTE, ms/73, 255, LINEARBLEND); + SEGMENT.addPixelColorXY(i, m, ColorFromPalette(SEGPALETTE, ms/29, 255, LINEARBLEND)); + SEGMENT.addPixelColorXY(j, n, ColorFromPalette(SEGPALETTE, ms/41, 255, LINEARBLEND)); + SEGMENT.addPixelColorXY(k, p, ColorFromPalette(SEGPALETTE, ms/73, 255, LINEARBLEND)); - SEGMENT.setPixels(leds); return FRAMETIME; } // mode_2Dsquaredswirl() -static const char *_data_FX_MODE_2DSQUAREDSWIRL PROGMEM = "2D Squared Swirl@,,,,Blur;,,;!"; +static const char _data_FX_MODE_2DSQUAREDSWIRL[] PROGMEM = "Squared Swirl@,,,,Blur;,,;!;2d"; ////////////////////////////// @@ -5472,19 +5445,20 @@ uint16_t mode_2DSunradiation(void) { // By: ldirko https://edi const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize + (sizeof(byte)*(cols+2)*(rows+2)))) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - byte *bump = reinterpret_cast(SEGENV.data + dataSize); + if (!SEGENV.allocateData(sizeof(byte)*(cols+2)*(rows+2))) return mode_static(); //allocation failed + byte *bump = reinterpret_cast(SEGENV.data); - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } unsigned long t = millis() / 4; int index = 0; uint8_t someVal = SEGMENT.speed/4; // Was 25. - for (uint16_t j = 0; j < (rows + 2); j++) { - for (uint16_t i = 0; i < (cols + 2); i++) { + for (int j = 0; j < (rows + 2); j++) { + for (int i = 0; i < (cols + 2); i++) { byte col = (inoise8_raw(i * someVal, j * someVal, t)) / 2; bump[index++] = col; } @@ -5492,10 +5466,10 @@ uint16_t mode_2DSunradiation(void) { // By: ldirko https://edi int yindex = cols + 3; int16_t vly = -(rows / 2 + 1); - for (uint16_t y = 0; y < rows; y++) { + for (int y = 0; y < rows; y++) { ++vly; int16_t vlx = -(cols / 2 + 1); - for (uint16_t x = 0; x < cols; x++) { + for (int x = 0; x < cols; x++) { ++vlx; int8_t nx = bump[x + yindex + 1] - bump[x + yindex - 1]; int8_t ny = bump[x + yindex + (cols + 2)] - bump[x + yindex - (cols + 2)]; @@ -5504,15 +5478,14 @@ uint16_t mode_2DSunradiation(void) { // By: ldirko https://edi int temp = difx * difx + dify * dify; int col = 255 - temp / 8; //8 its a size of effect if (col < 0) col = 0; - leds[XY(x, y)] = HeatColor(col / (3.0f-(float)(SEGMENT.intensity)/128.f)); + SEGMENT.setPixelColorXY(x, y, HeatColor(col / (3.0f-(float)(SEGMENT.intensity)/128.f))); } yindex += (cols + 2); } - SEGMENT.setPixels(leds); return FRAMETIME; } // mode_2DSunradiation() -static const char *_data_FX_MODE_2DSUNRADIATION PROGMEM = "2D Sun Radiation@Variance,Brightness;;"; +static const char _data_FX_MODE_2DSUNRADIATION[] PROGMEM = "Sun Radiation@Variance,Brightness;;;2d"; ///////////////////////// @@ -5523,47 +5496,43 @@ uint16_t mode_2Dtartan(void) { // By: Elliott Kember https://editor.so const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } uint8_t hue; int offsetX = beatsin16(3, -360, 360); int offsetY = beatsin16(2, -360, 360); - for (uint16_t x = 0; x < cols; x++) { - for (uint16_t y = 0; y < rows; y++) { - uint16_t index = XY(x, y); + for (int x = 0; x < cols; x++) { + for (int y = 0; y < rows; y++) { hue = x * beatsin16(10, 1, 10) + offsetY; - leds[index] = ColorFromPalette(SEGPALETTE, hue, sin8(x * SEGMENT.speed + offsetX) * sin8(x * SEGMENT.speed + offsetX) / 255, LINEARBLEND); + SEGMENT.setPixelColorXY(x, y, ColorFromPalette(SEGPALETTE, hue, sin8(x * SEGMENT.speed + offsetX) * sin8(x * SEGMENT.speed + offsetX) / 255, LINEARBLEND)); hue = y * 3 + offsetX; - leds[index] += ColorFromPalette(SEGPALETTE, hue, sin8(y * SEGMENT.intensity + offsetY) * sin8(y * SEGMENT.intensity + offsetY) / 255, LINEARBLEND); + SEGMENT.addPixelColorXY(x, y, ColorFromPalette(SEGPALETTE, hue, sin8(y * SEGMENT.intensity + offsetY) * sin8(y * SEGMENT.intensity + offsetY) / 255, LINEARBLEND)); } } - SEGMENT.setPixels(leds); // Use this ONLY if we're going to display via leds[x] method. return FRAMETIME; } // mode_2DTartan() -static const char *_data_FX_MODE_2DTARTAN PROGMEM = "2D Tartan@X scale,Y scale;;!"; +static const char _data_FX_MODE_2DTARTAN[] PROGMEM = "Tartan@X scale,Y scale;;!;2d"; ///////////////////////// // 2D spaceships // ///////////////////////// -uint16_t mode_2Dspaceships(void) { //// Space ships by stepko (c)05.02.21 [https://editor.soulmatelights.com/gallery/639-space-ships], adapted by Blaz Kristan +uint16_t mode_2Dspaceships(void) { //// Space ships by stepko (c)05.02.21 [https://editor.soulmatelights.com/gallery/639-space-ships], adapted by Blaz Kristan (AKA blazoncek) if (!strip.isMatrix) return mode_static(); // not a 2D set-up const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } uint32_t tb = strip.now >> 12; // every ~4s if (tb > SEGENV.step) { @@ -5575,39 +5544,38 @@ uint16_t mode_2Dspaceships(void) { //// Space ships by stepko (c)05.02.21 [ht SEGENV.step = tb + random8(4); } - SEGMENT.fadeToBlackBy(leds, map(SEGMENT.speed, 0, 255, 248, 16)); - SEGMENT.move(SEGENV.aux0, 1, leds); + SEGMENT.fadeToBlackBy(map(SEGMENT.speed, 0, 255, 248, 16)); + SEGMENT.move(SEGENV.aux0, 1); + for (size_t i = 0; i < 8; i++) { byte x = beatsin8(12 + i, 2, cols - 3); byte y = beatsin8(15 + i, 2, rows - 3); CRGB color = ColorFromPalette(SEGPALETTE, beatsin8(12 + i, 0, 255), 255); - leds[XY(x, y)] += color; + SEGMENT.addPixelColorXY(x, y, color); if (cols > 24 || rows > 24) { - leds[XY(x + 1, y)] += color; - leds[XY(x - 1, y)] += color; - leds[XY(x, y + 1)] += color; - leds[XY(x, y - 1)] += color; + SEGMENT.addPixelColorXY(x+1, y, color); + SEGMENT.addPixelColorXY(x-1, y, color); + SEGMENT.addPixelColorXY(x, y+1, color); + SEGMENT.addPixelColorXY(x, y-1, color); } } - SEGMENT.blur2d(leds, SEGMENT.intensity>>3); + SEGMENT.blur(SEGMENT.intensity>>3); - SEGMENT.setPixels(leds); return FRAMETIME; } -static const char *_data_FX_MODE_2DSPACESHIPS PROGMEM = "2D Spaceships@!,Blur;!,!,!;!"; +static const char _data_FX_MODE_2DSPACESHIPS[] PROGMEM = "Spaceships@!,Blur;!,!,!;!;2d"; ///////////////////////// // 2D Crazy Bees // ///////////////////////// -//// Crazy bees by stepko (c)12.02.21 [https://editor.soulmatelights.com/gallery/651-crazy-bees], adapted by Blaz Kristan +//// Crazy bees by stepko (c)12.02.21 [https://editor.soulmatelights.com/gallery/651-crazy-bees], adapted by Blaz Kristan (AKA blazoncek) #define MAX_BEES 5 uint16_t mode_2Dcrazybees(void) { if (!strip.isMatrix) return mode_static(); // not a 2D set-up const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled byte n = MIN(MAX_BEES, (rows * cols) / 256 + 1); @@ -5627,12 +5595,12 @@ uint16_t mode_2Dcrazybees(void) { }; } bee_t; - if (!SEGENV.allocateData(dataSize + sizeof(bee_t)*MAX_BEES)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - bee_t *bee = reinterpret_cast(SEGENV.data + dataSize); + if (!SEGENV.allocateData(sizeof(bee_t)*MAX_BEES)) return mode_static(); //allocation failed + bee_t *bee = reinterpret_cast(SEGENV.data); if (SEGENV.call == 0) { - SEGMENT.fill_solid(leds, CRGB::Black); + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); for (size_t i = 0; i < n; i++) { bee[i].posX = random8(0, cols); bee[i].posY = random8(0, rows); @@ -5643,15 +5611,15 @@ uint16_t mode_2Dcrazybees(void) { if (millis() > SEGENV.step) { SEGENV.step = millis() + (FRAMETIME * 8 / ((SEGMENT.speed>>5)+1)); - SEGMENT.fadeToBlackBy(leds, 32); + SEGMENT.fadeToBlackBy(32); for (size_t i = 0; i < n; i++) { - leds[XY(bee[i].aimX + 1, bee[i].aimY)] += CHSV(bee[i].hue, 255, 255); - leds[XY(bee[i].aimX, bee[i].aimY + 1)] += CHSV(bee[i].hue, 255, 255); - leds[XY(bee[i].aimX - 1, bee[i].aimY)] += CHSV(bee[i].hue, 255, 255); - leds[XY(bee[i].aimX, bee[i].aimY - 1)] += CHSV(bee[i].hue, 255, 255); + SEGMENT.addPixelColorXY(bee[i].aimX + 1, bee[i].aimY, CHSV(bee[i].hue, 255, 255)); + SEGMENT.addPixelColorXY(bee[i].aimX, bee[i].aimY + 1, CHSV(bee[i].hue, 255, 255)); + SEGMENT.addPixelColorXY(bee[i].aimX - 1, bee[i].aimY, CHSV(bee[i].hue, 255, 255)); + SEGMENT.addPixelColorXY(bee[i].aimX, bee[i].aimY - 1, CHSV(bee[i].hue, 255, 255)); if (bee[i].posX != bee[i].aimX || bee[i].posY != bee[i].aimY) { - leds[XY(bee[i].posX, bee[i].posY)] = CHSV(bee[i].hue, 60, 255); + SEGMENT.setPixelColorXY(bee[i].posX, bee[i].posY, CRGB(CHSV(bee[i].hue, 60, 255))); int8_t error2 = bee[i].error * 2; if (error2 > -bee[i].deltaY) { bee[i].error -= bee[i].deltaY; @@ -5665,26 +5633,23 @@ uint16_t mode_2Dcrazybees(void) { bee[i].aimed(cols, rows); } } - SEGMENT.blur2d(leds, SEGMENT.intensity>>4); - - SEGMENT.setPixels(leds); + SEGMENT.blur(SEGMENT.intensity>>4); } return FRAMETIME; } -static const char *_data_FX_MODE_2DCRAZYBEES PROGMEM = "2D Crazy Bees@!,Blur;;"; +static const char _data_FX_MODE_2DCRAZYBEES[] PROGMEM = "Crazy Bees@!,Blur;;;2d"; ///////////////////////// // 2D Ghost Rider // ///////////////////////// -//// Ghost Rider by stepko (c)2021 [https://editor.soulmatelights.com/gallery/716-ghost-rider], adapted by Blaz Kristan +//// Ghost Rider by stepko (c)2021 [https://editor.soulmatelights.com/gallery/716-ghost-rider], adapted by Blaz Kristan (AKA blazoncek) #define LIGHTERS_AM 64 // max lighters (adequate for 32x32 matrix) uint16_t mode_2Dghostrider(void) { if (!strip.isMatrix) return mode_static(); // not a 2D set-up const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled typedef struct Lighter { int16_t gPosX; @@ -5699,16 +5664,16 @@ uint16_t mode_2Dghostrider(void) { int8_t Vspeed; } lighter_t; - if (!SEGENV.allocateData(dataSize + sizeof(lighter_t))) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - lighter_t *lighter = reinterpret_cast(SEGENV.data + dataSize); + if (!SEGENV.allocateData(sizeof(lighter_t))) return mode_static(); //allocation failed + lighter_t *lighter = reinterpret_cast(SEGENV.data); const size_t maxLighters = min(cols + rows, LIGHTERS_AM); + if (SEGENV.call == 0) SEGMENT.setUpLeds(); if (SEGENV.call == 0 || SEGENV.aux0 != cols || SEGENV.aux1 != rows) { SEGENV.aux0 = cols; SEGENV.aux1 = rows; - SEGMENT.fill_solid(leds, CRGB::Black); + SEGMENT.fill(BLACK); random16_set_seed(strip.now); lighter->angleSpeed = random8(0,20) - 10; lighter->Vspeed = 5; @@ -5724,10 +5689,10 @@ uint16_t mode_2Dghostrider(void) { if (millis() > SEGENV.step) { SEGENV.step = millis() + 1024 / (cols+rows); - SEGMENT.fadeToBlackBy(leds, (SEGMENT.speed>>2)+64); + SEGMENT.fadeToBlackBy((SEGMENT.speed>>2)+64); CRGB color = CRGB::White; - SEGMENT.wu_pixel(leds, lighter->gPosX * 256 / 10, lighter->gPosY * 256 / 10, color); + SEGMENT.wu_pixel(lighter->gPosX * 256 / 10, lighter->gPosY * 256 / 10, color); lighter->gPosX += lighter->Vspeed * sin_t(radians(lighter->gAngle)); lighter->gPosY += lighter->Vspeed * cos_t(radians(lighter->gAngle)); @@ -5755,28 +5720,26 @@ uint16_t mode_2Dghostrider(void) { lighter->lightersPosX[i] += -7 * sin_t(radians(lighter->Angle[i])); lighter->lightersPosY[i] += -7 * cos_t(radians(lighter->Angle[i])); } - SEGMENT.wu_pixel(leds, lighter->lightersPosX[i] * 256 / 10, lighter->lightersPosY[i] * 256 / 10, ColorFromPalette(SEGPALETTE, (256 - lighter->time[i]))); + SEGMENT.wu_pixel(lighter->lightersPosX[i] * 256 / 10, lighter->lightersPosY[i] * 256 / 10, ColorFromPalette(SEGPALETTE, (256 - lighter->time[i]))); } - SEGMENT.blur2d(leds, SEGMENT.intensity>>3); + SEGMENT.blur(SEGMENT.intensity>>3); } - SEGMENT.setPixels(leds); return FRAMETIME; } -static const char *_data_FX_MODE_2DGHOSTRIDER PROGMEM = "2D Ghost Rider@Fade rate,Blur;!,!,!;!"; +static const char _data_FX_MODE_2DGHOSTRIDER[] PROGMEM = "Ghost Rider@Fade rate,Blur;!,!,!;!;2d"; //////////////////////////// // 2D Floating Blobs // //////////////////////////// -//// Floating Blobs by stepko (c)2021 [https://editor.soulmatelights.com/gallery/573-blobs], adapted by Blaz Kristan +//// Floating Blobs by stepko (c)2021 [https://editor.soulmatelights.com/gallery/573-blobs], adapted by Blaz Kristan (AKA blazoncek) #define MAX_BLOBS 8 uint16_t mode_2Dfloatingblobs(void) { if (!strip.isMatrix) return mode_static(); // not a 2D set-up const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled typedef struct Blob { float x[MAX_BLOBS], y[MAX_BLOBS]; @@ -5788,16 +5751,16 @@ uint16_t mode_2Dfloatingblobs(void) { uint8_t Amount = (SEGMENT.intensity>>5) + 1; // NOTE: be sure to update MAX_BLOBS if you change this - if (!SEGENV.allocateData(dataSize + sizeof(blob_t))) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - blob_t *blob = reinterpret_cast(SEGENV.data + dataSize); + if (!SEGENV.allocateData(sizeof(blob_t))) return mode_static(); //allocation failed + blob_t *blob = reinterpret_cast(SEGENV.data); + if (SEGENV.call == 0) SEGMENT.setUpLeds(); if (SEGENV.call == 0 || SEGENV.aux0 != cols || SEGENV.aux1 != rows) { SEGENV.aux0 = cols; SEGENV.aux1 = rows; - SEGMENT.fill_solid(leds, CRGB::Black); + SEGMENT.fill(BLACK); for (size_t i = 0; i < MAX_BLOBS; i++) { - blob->r[i] = cols>15 ? random8(1, cols/8.f) : 1; + blob->r[i] = random8(1, cols>8 ? (cols/4) : 2); blob->sX[i] = (float) random8(3, cols) / (float)(256 - SEGMENT.speed); // speed x blob->sY[i] = (float) random8(3, rows) / (float)(256 - SEGMENT.speed); // speed y blob->x[i] = random8(0, cols-1); @@ -5809,7 +5772,7 @@ uint16_t mode_2Dfloatingblobs(void) { } } - SEGMENT.fadeToBlackBy(leds, 20); + SEGMENT.fadeToBlackBy(20); // Bounce balls around for (size_t i = 0; i < Amount; i++) { @@ -5818,7 +5781,7 @@ uint16_t mode_2Dfloatingblobs(void) { if (blob->grow[i]) { // enlarge radius until it is >= 4 blob->r[i] += (fabs(blob->sX[i]) > fabs(blob->sY[i]) ? fabs(blob->sX[i]) : fabs(blob->sY[i])) * 0.05f; - if (blob->r[i] >= MIN(cols/8.f,2.f)) { + if (blob->r[i] >= MIN(cols/4.f,2.f)) { blob->grow[i] = false; } } else { @@ -5828,10 +5791,9 @@ uint16_t mode_2Dfloatingblobs(void) { blob->grow[i] = true; } } - CRGB c = ColorFromPalette(SEGPALETTE, blob->color[i]); - //if (!SEGMENT.palette) c = SEGCOLOR(0); - if (blob->r[i] > 1.f) SEGMENT.fill_circle(leds, blob->y[i], blob->x[i], blob->r[i], c); - else leds[XY(blob->y[i], blob->x[i])] += c; + uint32_t c = SEGMENT.color_from_palette(blob->color[i], false, false, 0); + if (blob->r[i] > 1.f) SEGMENT.fill_circle(blob->y[i], blob->x[i], blob->r[i], c); + else SEGMENT.setPixelColorXY(blob->y[i], blob->x[i], c); // move x if (blob->x[i] + blob->r[i] >= cols - 1) blob->x[i] += (blob->sX[i] * ((cols - 1 - blob->x[i]) / blob->r[i] + 0.005f)); else if (blob->x[i] - blob->r[i] <= 0) blob->x[i] += (blob->sX[i] * (blob->x[i] / blob->r[i] + 0.005f)); @@ -5859,15 +5821,14 @@ uint16_t mode_2Dfloatingblobs(void) { blob->y[i] = rows - 1.01f; } } - SEGMENT.blur2d(leds, cols+rows); + SEGMENT.blur(SEGMENT.custom1>>2); if (SEGENV.step < millis()) SEGENV.step = millis() + 2000; // change colors every 2 seconds - SEGMENT.setPixels(leds); return FRAMETIME; } #undef MAX_BLOBS -static const char *_data_FX_MODE_2DBLOBS PROGMEM = "2D Blobs@!,# blobs;!,!,!;!"; +static const char _data_FX_MODE_2DBLOBS[] PROGMEM = "Blobs@!,# blobs,Blur;!,!,!;!;c1=8,2d"; //////////////////////////// @@ -5879,14 +5840,21 @@ uint16_t mode_2Dscrollingtext(void) { const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const int letterWidth = SEGMENT.custom2 > 128 ? 6 : 5; - const int letterHeight = 8; + int letterWidth; + int letterHeight; + switch (map(SEGMENT.custom2, 0, 255, 1, 4)) { + default: + case 1: letterWidth = 5; letterHeight = 8; break; + case 2: letterWidth = 6; letterHeight = 8; break; + case 3: letterWidth = 7; letterHeight = 9; break; + case 4: letterWidth = 5; letterHeight = 12; break; + } const int yoffset = map(SEGMENT.intensity, 0, 255, -rows/2, rows/2) + (rows-letterHeight)/2; - const char *text = nullptr; - if (SEGMENT.name && strlen(SEGMENT.name)) text = SEGMENT.name; + char text[33] = {'\0'}; + if (SEGMENT.name) for (size_t i=0,j=0; i31 && SEGMENT.name[i]<128) text[j++] = SEGMENT.name[i]; - char lineBuffer[17], sec[3]; - if (!text) { // fallback if empty segment name: display date and time + if (!strlen(text) || !strncmp_P(text,PSTR("#DATE"),5) || !strncmp_P(text,PSTR("#TIME"),5)) { // fallback if empty segment name: display date and time + char sec[5]; byte AmPmHour = hour(localTime); boolean isitAM = true; if (useAMPM) { @@ -5895,8 +5863,9 @@ uint16_t mode_2Dscrollingtext(void) { } if (useAMPM) sprintf_P(sec, PSTR(" %2s"), (isitAM ? "AM" : "PM")); else sprintf_P(sec, PSTR(":%02d"), second(localTime)); - sprintf_P(lineBuffer,PSTR("%s %2d %2d:%02d%s"), monthShortStr(month(localTime)), day(localTime), AmPmHour, minute(localTime), sec); - text = lineBuffer; + if (!strncmp_P(text,PSTR("#DATE"),5)) sprintf_P(text, PSTR("%d.%d.%d"), day(localTime), month(localTime), year(localTime)); + else if (!strncmp_P(text,PSTR("#TIME"),5)) sprintf_P(text, PSTR("%2d:%02d%s"), AmPmHour, minute(localTime), sec); + else sprintf_P(text, PSTR("%s %d, %d %2d:%02d%s"), monthShortStr(month(localTime)), day(localTime), year(localTime), AmPmHour, minute(localTime), sec); } const int numberOfLetters = strlen(text); @@ -5905,59 +5874,57 @@ uint16_t mode_2Dscrollingtext(void) { else SEGENV.aux0 = (cols + (numberOfLetters * letterWidth))/2; ++SEGENV.aux1 &= 0xFF; // color shift SEGENV.step = millis() + map(SEGMENT.speed, 0, 255, 10*FRAMETIME_FIXED, 2*FRAMETIME_FIXED); - } - SEGMENT.fade_out(255 - (SEGMENT.custom1>>5)); // fade to background color - - for (uint16_t i = 0; i < numberOfLetters; i++) { - if (int(cols) - int(SEGENV.aux0) + letterWidth*(i+1) < 0) continue; // don't draw characters off-screen - if (text[i]<32 || text[i]>126) continue; // skip non-ANSII characters (may add UTF translation at some point) - SEGMENT.drawCharacter(text[i], int(cols) - int(SEGENV.aux0) + letterWidth*i, yoffset, letterWidth, letterHeight, SEGMENT.color_from_palette(SEGENV.aux1, false, PALETTE_SOLID_WRAP, 0)); + // we need it 3 times + SEGMENT.fade_out(255 - (SEGMENT.custom1>>5)); // fade to background color + SEGMENT.fade_out(255 - (SEGMENT.custom1>>5)); // fade to background color + SEGMENT.fade_out(255 - (SEGMENT.custom1>>5)); // fade to background color + for (int i = 0; i < numberOfLetters; i++) { + if (int(cols) - int(SEGENV.aux0) + letterWidth*(i+1) < 0) continue; // don't draw characters off-screen + SEGMENT.drawCharacter(text[i], int(cols) - int(SEGENV.aux0) + letterWidth*i, yoffset, letterWidth, letterHeight, SEGMENT.color_from_palette(SEGENV.aux1, false, PALETTE_SOLID_WRAP, 0)); + } } return FRAMETIME; } -static const char *_data_FX_MODE_2DSCROLLTEXT PROGMEM = "2D Scrolling Text@!,Y Offset=128,Trail=0,Font size;!,!;!;rev=0,mi=0,rY=0,mY=0"; +static const char _data_FX_MODE_2DSCROLLTEXT[] PROGMEM = "Scrolling Text@!,Y Offset,Trail,Font size;!,!;!;ix=128,c1=0,rev=0,mi=0,rY=0,mY=0,2d"; //////////////////////////// // 2D Drift Rose // //////////////////////////// -//// Drift Rose by stepko (c)2021 [https://editor.soulmatelights.com/gallery/1369-drift-rose-pattern], adapted by Blaz Kristan +//// Drift Rose by stepko (c)2021 [https://editor.soulmatelights.com/gallery/1369-drift-rose-pattern], adapted by Blaz Kristan (AKA blazoncek) uint16_t mode_2Ddriftrose(void) { if (!strip.isMatrix) return mode_static(); // not a 2D set-up const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled const float CX = cols/2.f - .5f; const float CY = rows/2.f - .5f; const float L = min(cols, rows) / 2.f; - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - if (SEGENV.call == 0) { - SEGMENT.fill_solid(leds, CRGB::Black); + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); } - SEGMENT.fadeToBlackBy(leds, 32+(SEGMENT.speed>>3)); + SEGMENT.fadeToBlackBy(32+(SEGMENT.speed>>3)); for (size_t i = 1; i < 37; i++) { uint32_t x = (CX + (sin_t(radians(i * 10)) * (beatsin8(i, 0, L*2)-L))) * 255.f; uint32_t y = (CY + (cos_t(radians(i * 10)) * (beatsin8(i, 0, L*2)-L))) * 255.f; - SEGMENT.wu_pixel(leds, x, y, CHSV(i * 10, 255, 255)); + SEGMENT.wu_pixel(x, y, CHSV(i * 10, 255, 255)); } - SEGMENT.blur2d(leds, (SEGMENT.intensity>>4)+1); + SEGMENT.blur((SEGMENT.intensity>>4)+1); - SEGMENT.setPixels(leds); return FRAMETIME; } -static const char *_data_FX_MODE_2DDRIFTROSE PROGMEM = "2D Drift Rose@Fade,Blur;;"; +static const char _data_FX_MODE_2DDRIFTROSE[] PROGMEM = "Drift Rose@Fade,Blur;;;2d"; #endif // WLED_DISABLE_2D +#ifndef WLED_DISABLE_AUDIO /////////////////////////////////////////////////////////////////////////////// /******************** audio enhanced routines ************************/ /////////////////////////////////////////////////////////////////////////////// @@ -6002,11 +5969,13 @@ uint16_t mode_ripplepeak(void) { // * Ripple peak. By Andrew Tuli um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } uint8_t samplePeak = *(uint8_t*)um_data->u_data[3]; + #ifdef ESP32 float FFT_MajorPeak = *(float*) um_data->u_data[4]; + #endif uint8_t *maxVol = (uint8_t*)um_data->u_data[6]; uint8_t *binNum = (uint8_t*)um_data->u_data[7]; @@ -6024,7 +5993,7 @@ uint16_t mode_ripplepeak(void) { // * Ripple peak. By Andrew Tuli SEGMENT.fade_out(240); // Lower frame rate means less effective fading than FastLED SEGMENT.fade_out(240); - for (uint16_t i = 0; i < SEGMENT.intensity/16; i++) { // Limit the number of ripples. + for (int i = 0; i < SEGMENT.intensity/16; i++) { // Limit the number of ripples. if (samplePeak) ripples[i].state = 255; switch (ripples[i].state) { @@ -6060,7 +6029,7 @@ uint16_t mode_ripplepeak(void) { // * Ripple peak. By Andrew Tuli return FRAMETIME; } // mode_ripplepeak() -static const char *_data_FX_MODE_RIPPLEPEAK PROGMEM = "Ripple Peak ♪@Fade rate,Max # of ripples,,Select bin,Volume (minimum)=0;!,!;!;mp12=0,ssim=0"; // Pixel, Beatsin +static const char _data_FX_MODE_RIPPLEPEAK[] PROGMEM = "Ripple Peak@Fade rate,Max # of ripples,,Select bin,Volume (minimum);!,!;!;c3=0,mp12=0,ssim=0,1d,vo"; // Pixel, Beatsin #ifndef WLED_DISABLE_2D @@ -6073,16 +6042,15 @@ uint16_t mode_2DSwirl(void) { const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); - - if (SEGENV.call == 0) SEGMENT.fill_solid(leds, CRGB::Black); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } const uint8_t borderWidth = 2; - SEGMENT.blur2d(leds, SEGMENT.custom1); + SEGMENT.blur(SEGMENT.custom1); uint8_t i = beatsin8( 27*SEGMENT.speed/255, borderWidth, cols - borderWidth); uint8_t j = beatsin8( 41*SEGMENT.speed/255, borderWidth, rows - borderWidth); @@ -6092,7 +6060,7 @@ uint16_t mode_2DSwirl(void) { um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float volumeSmth = *(float*) um_data->u_data[0]; //ewowi: use instead of sampleAvg??? @@ -6100,17 +6068,16 @@ uint16_t mode_2DSwirl(void) { // printUmData(); - leds[XY( i, j)] += ColorFromPalette(SEGPALETTE, (ms / 11 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 11, 200, 255); - leds[XY( j, i)] += ColorFromPalette(SEGPALETTE, (ms / 13 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 13, 200, 255); - leds[XY(ni, nj)] += ColorFromPalette(SEGPALETTE, (ms / 17 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 17, 200, 255); - leds[XY(nj, ni)] += ColorFromPalette(SEGPALETTE, (ms / 29 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 29, 200, 255); - leds[XY( i, nj)] += ColorFromPalette(SEGPALETTE, (ms / 37 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 37, 200, 255); - leds[XY(ni, j)] += ColorFromPalette(SEGPALETTE, (ms / 41 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND); //CHSV( ms / 41, 200, 255); + SEGMENT.addPixelColorXY( i, j, ColorFromPalette(SEGPALETTE, (ms / 11 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND)); //CHSV( ms / 11, 200, 255); + SEGMENT.addPixelColorXY( j, i, ColorFromPalette(SEGPALETTE, (ms / 13 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND)); //CHSV( ms / 13, 200, 255); + SEGMENT.addPixelColorXY(ni,nj, ColorFromPalette(SEGPALETTE, (ms / 17 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND)); //CHSV( ms / 17, 200, 255); + SEGMENT.addPixelColorXY(nj,ni, ColorFromPalette(SEGPALETTE, (ms / 29 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND)); //CHSV( ms / 29, 200, 255); + SEGMENT.addPixelColorXY( i,nj, ColorFromPalette(SEGPALETTE, (ms / 37 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND)); //CHSV( ms / 37, 200, 255); + SEGMENT.addPixelColorXY(ni, j, ColorFromPalette(SEGPALETTE, (ms / 41 + volumeSmth*4), volumeRaw * SEGMENT.intensity / 64, LINEARBLEND)); //CHSV( ms / 41, 200, 255); - SEGMENT.setPixels(leds); return FRAMETIME; } // mode_2DSwirl() -static const char *_data_FX_MODE_2DSWIRL PROGMEM = "2D Swirl ♪@!,Sensitivity=64,Blur;,Bg Swirl;!;ssim=0"; // Beatsin +static const char _data_FX_MODE_2DSWIRL[] PROGMEM = "Swirl@!,Sensitivity,Blur;,Bg Swirl;!;ix=64ssim=0,2d,vo"; // Beatsin ///////////////////////// @@ -6122,26 +6089,23 @@ uint16_t mode_2DWaverly(void) { const uint16_t cols = SEGMENT.virtualWidth(); const uint16_t rows = SEGMENT.virtualHeight(); - const uint16_t dataSize = sizeof(CRGB) * SEGMENT.width() * SEGMENT.height(); // using width*height prevents reallocation if mirroring is enabled - - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); if (SEGENV.call == 0) { - SEGMENT.fill_solid(leds, CRGB::Black); + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); } um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float volumeSmth = *(float*) um_data->u_data[0]; - SEGMENT.fadeToBlackBy(leds, SEGMENT.speed); + SEGMENT.fadeToBlackBy(SEGMENT.speed); long t = millis() / 2; - for (uint16_t i = 0; i < cols; i++) { + for (int i = 0; i < cols; i++) { uint16_t thisVal = (1 + SEGMENT.intensity/64) * inoise8(i * 45 , t , t)/2; // use audio if available if (um_data) { @@ -6150,17 +6114,16 @@ uint16_t mode_2DWaverly(void) { } uint16_t thisMax = map(thisVal, 0, 512, 0, rows); - for (uint16_t j = 0; j < thisMax; j++) { - leds[XY(i, j)] += ColorFromPalette(SEGPALETTE, map(j, 0, thisMax, 250, 0), 255, LINEARBLEND); - leds[XY((cols - 1) - i, (rows - 1) - j)] += ColorFromPalette(SEGPALETTE, map(j, 0, thisMax, 250, 0), 255, LINEARBLEND); + for (int j = 0; j < thisMax; j++) { + SEGMENT.addPixelColorXY(i, j, ColorFromPalette(SEGPALETTE, map(j, 0, thisMax, 250, 0), 255, LINEARBLEND)); + SEGMENT.addPixelColorXY((cols - 1) - i, (rows - 1) - j, ColorFromPalette(SEGPALETTE, map(j, 0, thisMax, 250, 0), 255, LINEARBLEND)); } } - SEGMENT.blur2d(leds, 16); + SEGMENT.blur(16); - SEGMENT.setPixels(leds); return FRAMETIME; } // mode_2DWaverly() -static const char *_data_FX_MODE_2DWAVERLY PROGMEM = "2D Waverly ♪@Amplification,Sensitivity=64;;!;ssim=0"; // Beatsin +static const char _data_FX_MODE_2DWAVERLY[] PROGMEM = "Waverly@Amplification,Sensitivity;;!;ix=64,ssim=0,2d,vo"; // Beatsin #endif // WLED_DISABLE_2D @@ -6186,7 +6149,7 @@ uint16_t mode_gravcenter(void) { // Gravcenter. By Andrew Tuline. um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float volumeSmth = *(float*) um_data->u_data[0]; @@ -6219,7 +6182,7 @@ uint16_t mode_gravcenter(void) { // Gravcenter. By Andrew Tuline. return FRAMETIME; } // mode_gravcenter() -static const char *_data_FX_MODE_GRAVCENTER PROGMEM = "Gravcenter ♪@Rate of fall,Sensitivity=128;,!;!;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_GRAVCENTER[] PROGMEM = "Gravcenter@Rate of fall,Sensitivity;,!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin /////////////////////// @@ -6233,7 +6196,7 @@ uint16_t mode_gravcentric(void) { // Gravcentric. By Andrew um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float volumeSmth = *(float*) um_data->u_data[0]; @@ -6269,7 +6232,7 @@ uint16_t mode_gravcentric(void) { // Gravcentric. By Andrew return FRAMETIME; } // mode_gravcentric() -static const char *_data_FX_MODE_GRAVCENTRIC PROGMEM = "Gravcentric ♪@Rate of fall,Sensitivity=128;!;!;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_GRAVCENTRIC[] PROGMEM = "Gravcentric@Rate of fall,Sensitivity;!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin /////////////////////// @@ -6283,7 +6246,7 @@ uint16_t mode_gravimeter(void) { // Gravmeter. By Andrew Tuline. um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float volumeSmth = *(float*) um_data->u_data[0]; @@ -6314,7 +6277,7 @@ uint16_t mode_gravimeter(void) { // Gravmeter. By Andrew Tuline. return FRAMETIME; } // mode_gravimeter() -static const char *_data_FX_MODE_GRAVIMETER PROGMEM = "Gravimeter ♪@Rate of fall,Sensitivity=128;,!;!;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_GRAVIMETER[] PROGMEM = "Gravimeter@Rate of fall,Sensitivity;!,!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin ////////////////////// @@ -6323,7 +6286,7 @@ static const char *_data_FX_MODE_GRAVIMETER PROGMEM = "Gravimeter ♪@Rate of fa uint16_t mode_juggles(void) { // Juggles. By Andrew Tuline. um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float volumeSmth = *(float*) um_data->u_data[0]; @@ -6337,34 +6300,39 @@ uint16_t mode_juggles(void) { // Juggles. By Andrew Tuline. return FRAMETIME; } // mode_juggles() -static const char *_data_FX_MODE_JUGGLES PROGMEM = "Juggles ♪@!,# of balls;,!;!;mp12=0,ssim=0"; // Pixels, Beatsin +static const char _data_FX_MODE_JUGGLES[] PROGMEM = "Juggles@!,# of balls;,!;!;mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin ////////////////////// // * MATRIPIX // ////////////////////// uint16_t mode_matripix(void) { // Matripix. By Andrew Tuline. + // even with 1D effect we have to take logic for 2D segments for allocation as fill_solid() fills whole segment + um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } int16_t volumeRaw = *(int16_t*)um_data->u_data[1]; - if (SEGENV.call == 0) SEGMENT.fill(BLACK); + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } uint8_t secondHand = micros()/(256-SEGMENT.speed)/500 % 16; if(SEGENV.aux0 != secondHand) { SEGENV.aux0 = secondHand; int pixBri = volumeRaw * SEGMENT.intensity / 64; - for (uint16_t i=0; iu_data[0]; @@ -6399,7 +6367,7 @@ uint16_t mode_midnoise(void) { // Midnoise. By Andrew Tuline. return FRAMETIME; } // mode_midnoise() -static const char *_data_FX_MODE_MIDNOISE PROGMEM = "Midnoise ♪@Fade rate,Maximum length=128;,!;!;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_MIDNOISE[] PROGMEM = "Midnoise@Fade rate,Maximum length;,!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin ////////////////////// @@ -6407,30 +6375,32 @@ static const char *_data_FX_MODE_MIDNOISE PROGMEM = "Midnoise ♪@Fade rate,Maxi ////////////////////// // I am the god of hellfire. . . Volume (only) reactive fire routine. Oh, look how short this is. uint16_t mode_noisefire(void) { // Noisefire. By Andrew Tuline. - SEGPALETTE = CRGBPalette16(CHSV(0,255,2), CHSV(0,255,4), CHSV(0,255,8), CHSV(0, 255, 8), // Fire palette definition. Lower value = darker. - CHSV(0, 255, 16), CRGB::Red, CRGB::Red, CRGB::Red, - CRGB::DarkOrange,CRGB::DarkOrange, CRGB::Orange, CRGB::Orange, - CRGB::Yellow, CRGB::Orange, CRGB::Yellow, CRGB::Yellow); + CRGBPalette16 myPal = CRGBPalette16(CHSV(0,255,2), CHSV(0,255,4), CHSV(0,255,8), CHSV(0, 255, 8), // Fire palette definition. Lower value = darker. + CHSV(0, 255, 16), CRGB::Red, CRGB::Red, CRGB::Red, + CRGB::DarkOrange, CRGB::DarkOrange, CRGB::Orange, CRGB::Orange, + CRGB::Yellow, CRGB::Orange, CRGB::Yellow, CRGB::Yellow); um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float volumeSmth = *(float*) um_data->u_data[0]; - for (uint16_t i = 0; i < SEGLEN; i++) { + if (SEGENV.call == 0) SEGMENT.fill(BLACK); + + for (int i = 0; i < SEGLEN; i++) { uint16_t index = inoise8(i*SEGMENT.speed/64,millis()*SEGMENT.speed/64*SEGLEN/255); // X location is constant, but we move along the Y at the rate of millis(). By Andrew Tuline. index = (255 - i*256/SEGLEN) * index/(256-SEGMENT.intensity); // Now we need to scale index so that it gets blacker as we get close to one of the ends. // This is a simple y=mx+b equation that's been scaled. index/128 is another scaling. - CRGB color = ColorFromPalette(SEGPALETTE, index, volumeSmth*2, LINEARBLEND); // Use the my own palette. + CRGB color = ColorFromPalette(myPal, index, volumeSmth*2, LINEARBLEND); // Use the my own palette. SEGMENT.setPixelColor(i, color); } return FRAMETIME; } // mode_noisefire() -static const char *_data_FX_MODE_NOISEFIRE PROGMEM = "Noisefire ♪@!,!;;;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_NOISEFIRE[] PROGMEM = "Noisefire@!,!;;;mp12=2,ssim=0,1d,vo"; // Circle, Beatsin /////////////////////// @@ -6440,7 +6410,7 @@ uint16_t mode_noisemeter(void) { // Noisemeter. By Andrew Tuline. um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float volumeSmth = *(float*) um_data->u_data[0]; @@ -6463,37 +6433,41 @@ uint16_t mode_noisemeter(void) { // Noisemeter. By Andrew Tuline. return FRAMETIME; } // mode_noisemeter() -static const char *_data_FX_MODE_NOISEMETER PROGMEM = "Noisemeter ♪@Fade rate,Width=128;!,!;!;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_NOISEMETER[] PROGMEM = "Noisemeter@Fade rate,Width;!,!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin ////////////////////// // * PIXELWAVE // ////////////////////// uint16_t mode_pixelwave(void) { // Pixelwave. By Andrew Tuline. - if (SEGENV.call == 0) SEGMENT.fill(BLACK); + // even with 1D effect we have to take logic for 2D segments for allocation as fill_solid() fills whole segment + + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } int16_t volumeRaw = *(int16_t*)um_data->u_data[1]; uint8_t secondHand = micros()/(256-SEGMENT.speed)/500+1 % 16; - if(SEGENV.aux0 != secondHand) { + if (SEGENV.aux0 != secondHand) { SEGENV.aux0 = secondHand; int pixBri = volumeRaw * SEGMENT.intensity / 64; SEGMENT.setPixelColor(SEGLEN/2, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(millis(), false, PALETTE_SOLID_WRAP, 0), pixBri)); - - for (uint16_t i=SEGLEN-1; i>SEGLEN/2; i--) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i-1)); // Move to the right. - for (uint16_t i=0; i SEGLEN/2; i--) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i-1)); //move to the left + for (int i = 0; i < SEGLEN/2; i++) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i+1)); // move to the right } return FRAMETIME; } // mode_pixelwave() -static const char *_data_FX_MODE_PIXELWAVE PROGMEM = "Pixelwave ♪@!,Sensitivity=64;!,!;!;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_PIXELWAVE[] PROGMEM = "Pixelwave@!,Sensitivity;!,!;!;ix=64,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin ////////////////////// @@ -6505,23 +6479,23 @@ typedef struct Plasphase { } plasphase; uint16_t mode_plasmoid(void) { // Plasmoid. By Andrew Tuline. - uint16_t dataSize = sizeof(plasphase); - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed + // even with 1D effect we have to take logic for 2D segments for allocation as fill_solid() fills whole segment + if (!SEGENV.allocateData(sizeof(plasphase))) return mode_static(); //allocation failed Plasphase* plasmoip = reinterpret_cast(SEGENV.data); um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float volumeSmth = *(float*) um_data->u_data[0]; - SEGMENT.fade_out(64); + SEGMENT.fadeToBlackBy(64); plasmoip->thisphase += beatsin8(6,-4,4); // You can change direction and speed individually. plasmoip->thatphase += beatsin8(7,-4,4); // Two phase values to make a complex pattern. By Andrew Tuline. - for (uint16_t i=0; ithisphase) & 0xFF)/2; thisbright += cos8(((i*(97 +(5*SEGMENT.speed/32)))+plasmoip->thatphase) & 0xFF)/2; // Let's munge the brightness a bit and animate it all with the phases. @@ -6529,12 +6503,12 @@ uint16_t mode_plasmoid(void) { // Plasmoid. By Andrew Tuline. uint8_t colorIndex=thisbright; if (volumeSmth * SEGMENT.intensity / 64 < thisbright) {thisbright = 0;} - SEGMENT.setPixelColor(i, color_add(SEGMENT.getPixelColor(i), color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(colorIndex, false, PALETTE_SOLID_WRAP, 0), thisbright))); + SEGMENT.addPixelColor(i, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(colorIndex, false, PALETTE_SOLID_WRAP, 0), thisbright)); } return FRAMETIME; } // mode_plasmoid() -static const char *_data_FX_MODE_PLASMOID PROGMEM = "Plasmoid ♪@Phase=128,# of pixels=128;,!;!;mp12=0,ssim=0"; // Pixels, Beatsin +static const char _data_FX_MODE_PLASMOID[] PROGMEM = "Plasmoid@Phase,# of pixels;!,!;!;sx=128,ix=128,mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin /////////////////////// @@ -6549,7 +6523,7 @@ uint16_t mode_puddlepeak(void) { // Puddlepeak. By Andrew Tuline. um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } uint8_t samplePeak = *(uint8_t*)um_data->u_data[3]; @@ -6572,13 +6546,13 @@ uint16_t mode_puddlepeak(void) { // Puddlepeak. By Andrew Tuline. if (pos+size>= SEGLEN) size = SEGLEN - pos; } - for (uint16_t i=0; iu_data[1]; @@ -6603,13 +6577,13 @@ uint16_t mode_puddles(void) { // Puddles. By Andrew Tuline. if (pos+size >= SEGLEN) size = SEGLEN - pos; } - for(uint16_t i=0; i>1)); - for (uint16_t i=0; i u_data[6]; -#endif - fftBin = (float*) um_data->u_data[8]; - inputLevel = (uint8_t*)um_data->u_data[10]; - } - if (!fftBin) return mode_static(); - - if (SEGENV.call == 0) { - SEGMENT.custom1 = *inputLevel; -#ifdef SR_DEBUG - SEGMENT.custom3 = *maxVol; -#endif - } - //TODO: implement inputLevel as a global or slider - *inputLevel = SEGMENT.custom1; - float binScale = (((float)sampleGain / 40.0f) + 1.0f/16.f) * ((float)*inputLevel/128.0f); // non-AGC gain multiplier - if (soundAgc) binScale = multAgc; // AGC gain - if (sampleAvg < 1) binScale = 0.001f; // silentium! - -#ifdef SR_DEBUG - //The next lines are good for debugging, however too much flickering for non-developers ;-) - float my_magnitude = FFT_Magnitude / 16.0f; // scale magnitude to be aligned with scaling of FFT bins - my_magnitude *= binScale; // apply gain - *maxVol = fmax(64, my_magnitude); // set maxVal = max FFT result -#endif - - for (int i=0; i startBin) endBin --; // avoid overlapping - - float sumBin = 0; - - for (int j=startBin; j<=endBin; j++) { - sumBin += (fftBin[j] < soundSquelch*1.75f) ? 0 : fftBin[j]; // We need some sound temporary squelch for fftBin, because we didn't do it for the raw bins in audio_reactive.h - } - - sumBin = sumBin/(endBin-startBin+1); // Normalize it. - sumBin = sumBin * (i+5) / (endBin-startBin+5); // Disgusting frequency adjustment calculation. Lows were too bright. Am open to quick 'n dirty alternatives. - - sumBin = sumBin * 8; // Need to use the 'log' version for this. Why " * 8" ?? - sumBin *= binScale; // apply gain - - if (sumBin > maxVal) sumBin = maxVal; // Make sure our bin isn't higher than the max . . which we capped earlier. - - uint8_t bright = constrain(mapf(sumBin, 0, maxVal, 0, 255),0,255); // Map the brightness in relation to maxVal and crunch to 8 bits. - - setPixelColor(i, color_blend(SEGCOLOR(1), color_from_palette(i*8+millis()/50, false, PALETTE_SOLID_WRAP, 0), bright)); // 'i' is just an index in the palette. The FFT value, bright, is the intensity. - } // for i - - return FRAMETIME; -} // mode_binmap() -#ifdef SR_DEBUG -static const char *_data_FX_MODE_BINMAP PROGMEM = " ♫ Binmap@,,Input level=128,,Max vol;!,!;!"; -#else -static const char *_data_FX_MODE_BINMAP PROGMEM = " ♫ Binmap@,,Input level=128;!,!;!"; -#endif -*/ ////////////////////// // ** Blurz // ////////////////////// uint16_t mode_blurz(void) { // Blurz. By Andrew Tuline. + // even with 1D effect we have to take logic for 2D segments for allocation as fill_solid() fills whole segment + um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } uint8_t *fftResult = (uint8_t*)um_data->u_data[2]; - if (!fftResult) return mode_static(); if (SEGENV.call == 0) { SEGMENT.fill(BLACK); @@ -6747,52 +6644,54 @@ uint16_t mode_blurz(void) { // Blurz. By Andrew Tuline. SEGMENT.fade_out(SEGMENT.speed); - uint16_t segLoc = random16(SEGLEN); - SEGMENT.setPixelColor(segLoc, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(fftResult[SEGENV.aux0], false, PALETTE_SOLID_WRAP, 0), 2*fftResult[SEGENV.aux0])); - ++(SEGENV.aux0) %= 16; // make sure it doesn't cross 16 + SEGENV.step += FRAMETIME; + if (SEGENV.step > SPEED_FORMULA_L) { + uint16_t segLoc = random16(SEGLEN); + SEGMENT.setPixelColor(segLoc, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(2*fftResult[SEGENV.aux0%16]*240/(SEGLEN-1), false, PALETTE_SOLID_WRAP, 0), 2*fftResult[SEGENV.aux0%16])); + ++(SEGENV.aux0) %= 16; // make sure it doesn't cross 16 - SEGMENT.blur(SEGMENT.intensity); + SEGENV.step = 1; + SEGMENT.blur(SEGMENT.intensity); + } return FRAMETIME; } // mode_blurz() -static const char *_data_FX_MODE_BLURZ PROGMEM = "Blurz ♫@Fade rate,Blur amount;!,Color mix;!;mp12=0,ssim=0"; // Pixels, Beatsin +static const char _data_FX_MODE_BLURZ[] PROGMEM = "Blurz@Fade rate,Blur amount;!,Color mix;!;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin ///////////////////////// // ** DJLight // ///////////////////////// uint16_t mode_DJLight(void) { // Written by ??? Adapted by Will Tatam. - const int NUM_LEDS = SEGLEN; // aka SEGLEN - const int mid = NUM_LEDS / 2; - - const uint16_t dataSize = SEGLEN*sizeof(CRGB); - if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed - CRGB *leds = reinterpret_cast(SEGENV.data); + const int mid = SEGLEN / 2; um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } uint8_t *fftResult = (uint8_t*)um_data->u_data[2]; - if (!fftResult) return mode_static(); + + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } uint8_t secondHand = micros()/(256-SEGMENT.speed)/500+1 % 64; if (SEGENV.aux0 != secondHand) { // Triggered millis timing. SEGENV.aux0 = secondHand; - leds[mid] = CRGB(fftResult[15]/2, fftResult[5]/2, fftResult[0]/2); // 16-> 15 as 16 is out of bounds - leds[mid].fadeToBlackBy(map(fftResult[1*4], 0, 255, 255, 10)); // TODO - Update + SEGMENT.setPixelColor(mid, CRGB(fftResult[15]/2, fftResult[5]/2, fftResult[0]/2)); // 16-> 15 as 16 is out of bounds + CRGB color = SEGMENT.getPixelColor(mid); + SEGMENT.setPixelColor(mid, color.fadeToBlackBy(map(fftResult[1*4], 0, 255, 255, 10))); // TODO - Update - for (int i = NUM_LEDS - 1; i > mid; i--) leds[i] = leds[i - 1]; //move to the left - for (int i = 0; i < mid; i++) leds[i] = leds[i + 1]; // move to the right - - for (uint16_t i=0; i mid; i--) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i-1)); //move to the left + for (int i = 0; i < mid; i++) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i+1)); // move to the right } return FRAMETIME; } // mode_DJLight() -static const char *_data_FX_MODE_DJLIGHT PROGMEM = "DJ Light ♫@Speed;;;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_DJLIGHT[] PROGMEM = "DJ Light@Speed;;;mp12=2,ssim=0,1d,fr"; // Circle, Beatsin //////////////////// @@ -6804,7 +6703,7 @@ uint16_t mode_freqmap(void) { // Map FFT_MajorPeak to SEGLEN. um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float FFT_MajorPeak = *(float*) um_data->u_data[4]; @@ -6822,7 +6721,7 @@ uint16_t mode_freqmap(void) { // Map FFT_MajorPeak to SEGLEN. return FRAMETIME; } // mode_freqmap() -static const char *_data_FX_MODE_FREQMAP PROGMEM = "Freqmap ♫@Fade rate,Starting color;,!;!;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_FREQMAP[] PROGMEM = "Freqmap@Fade rate,Starting color;,!;!;mp12=2,ssim=0,1d,fr"; // Circle, Beatsin /////////////////////// @@ -6831,12 +6730,17 @@ static const char *_data_FX_MODE_FREQMAP PROGMEM = "Freqmap ♫@Fade rate,Starti uint16_t mode_freqmatrix(void) { // Freqmatrix. By Andreas Pleschung. um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float FFT_MajorPeak = *(float*)um_data->u_data[4]; float volumeSmth = *(float*) um_data->u_data[0]; + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } + uint8_t secondHand = micros()/(256-SEGMENT.speed)/500 % 16; if(SEGENV.aux0 != secondHand) { SEGENV.aux0 = secondHand; @@ -6847,7 +6751,7 @@ uint16_t mode_freqmatrix(void) { // Freqmatrix. By Andreas Plesch float intensity = map(pixVal, 0, 255, 0, 100) / 100.0f; // make a brightness from the last avg - CRGB color = 0; + CRGB color = CRGB::Black; if (FFT_MajorPeak > 5120) FFT_MajorPeak = 0; // MajorPeak holds the freq. value which is most abundant in the last sample. @@ -6866,13 +6770,13 @@ uint16_t mode_freqmatrix(void) { // Freqmatrix. By Andreas Plesch } // shift the pixels one pixel up - for (uint16_t i = SEGLEN-1; i > 0; i--) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i-1)); SEGMENT.setPixelColor(0, color); + for (int i = SEGLEN - 1; i > 0; i--) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i-1)); //move to the left } return FRAMETIME; } // mode_freqmatrix() -static const char *_data_FX_MODE_FREQMATRIX PROGMEM = "Freqmatrix ♫@Time delay,Sound effect,Low bin,High bin,Sensivity;;;mp12=0,ssim=0"; // Pixels, Beatsin +static const char _data_FX_MODE_FREQMATRIX[] PROGMEM = "Freqmatrix@Time delay,Sound effect,Low bin,High bin,Sensivity;;;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin ////////////////////// @@ -6885,7 +6789,7 @@ static const char *_data_FX_MODE_FREQMATRIX PROGMEM = "Freqmatrix ♫@Time delay uint16_t mode_freqpixels(void) { // Freqpixel. By Andrew Tuline. um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float FFT_MajorPeak = *(float*) um_data->u_data[4]; @@ -6902,7 +6806,7 @@ uint16_t mode_freqpixels(void) { // Freqpixel. By Andrew Tuline. return FRAMETIME; } // mode_freqpixels() -static const char *_data_FX_MODE_FREQPIXELS PROGMEM = "Freqpixels ♫@Fade rate,Starting colour and # of pixels;;;mp12=0,ssim=0"; // Pixels, Beatsin +static const char _data_FX_MODE_FREQPIXELS[] PROGMEM = "Freqpixels@Fade rate,Starting colour and # of pixels;;;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin ////////////////////// @@ -6923,12 +6827,17 @@ static const char *_data_FX_MODE_FREQPIXELS PROGMEM = "Freqpixels ♫@Fade rate, uint16_t mode_freqwave(void) { // Freqwave. By Andreas Pleschung. um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float FFT_MajorPeak = *(float*) um_data->u_data[4]; float volumeSmth = *(float*) um_data->u_data[0]; + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } + uint8_t secondHand = micros()/(256-SEGMENT.speed)/500 % 16; if(SEGENV.aux0 != secondHand) { SEGENV.aux0 = secondHand; @@ -6963,13 +6872,13 @@ uint16_t mode_freqwave(void) { // Freqwave. By Andreas Pleschun SEGMENT.setPixelColor(SEGLEN/2, color); // shift the pixels one pixel outwards - for (uint16_t i = SEGLEN-1; i > SEGLEN/2; i--) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i-1)); // Move to the right. - for (uint16_t i = 0; i < SEGLEN/2; i++) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i+1)); // Move to the left. + for (int i = SEGLEN - 1; i > SEGLEN/2; i--) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i-1)); //move to the left + for (int i = 0; i < SEGLEN/2; i++) SEGMENT.setPixelColor(i, SEGMENT.getPixelColor(i+1)); // move to the right } return FRAMETIME; } // mode_freqwave() -static const char *_data_FX_MODE_FREQWAVE PROGMEM = "Freqwave ♫@Time delay,Sound effect,Low bin,High bin,Pre-amp;;;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_FREQWAVE[] PROGMEM = "Freqwave@Time delay,Sound effect,Low bin,High bin,Pre-amp;;;mp12=2,ssim=0,1d,fr"; // Circle, Beatsin /////////////////////// @@ -6983,7 +6892,7 @@ uint16_t mode_gravfreq(void) { // Gravfreq. By Andrew Tuline. um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float FFT_MajorPeak = *(float*) um_data->u_data[4]; @@ -7019,7 +6928,7 @@ uint16_t mode_gravfreq(void) { // Gravfreq. By Andrew Tuline. return FRAMETIME; } // mode_gravfreq() -static const char *_data_FX_MODE_GRAVFREQ PROGMEM = "Gravfreq ♫@Rate of fall,Sensivity=128;,!;!;mp12=2,ssim=0"; // Circle, Beatsin +static const char _data_FX_MODE_GRAVFREQ[] PROGMEM = "Gravfreq@Rate of fall,Sensivity;,!;!;ix=128,mp12=2,ssim=0,1d,fr"; // Circle, Beatsin ////////////////////// @@ -7028,11 +6937,10 @@ static const char *_data_FX_MODE_GRAVFREQ PROGMEM = "Gravfreq ♫@Rate of fall,S uint16_t mode_noisemove(void) { // Noisemove. By: Andrew Tuline um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } uint8_t *fftResult = (uint8_t*)um_data->u_data[2]; - if (!fftResult) return mode_static(); SEGMENT.fade_out(224); // Just in case something doesn't get faded. @@ -7045,7 +6953,7 @@ uint16_t mode_noisemove(void) { // Noisemove. By: Andrew Tuli return FRAMETIME; } // mode_noisemove() -static const char *_data_FX_MODE_NOISEMOVE PROGMEM = "Noisemove ♫@Speed of perlin movement,Fade rate;,!;!;mp12=0,ssim=0"; // Pixels, Beatsin +static const char _data_FX_MODE_NOISEMOVE[] PROGMEM = "Noisemove@Speed of perlin movement,Fade rate;,!;!;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin ////////////////////// @@ -7054,13 +6962,13 @@ static const char *_data_FX_MODE_NOISEMOVE PROGMEM = "Noisemove ♫@Speed of per uint16_t mode_rocktaves(void) { // Rocktaves. Same note from each octave is same colour. By: Andrew Tuline um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } float FFT_MajorPeak = *(float*) um_data->u_data[4]; float my_magnitude = *(float*) um_data->u_data[5] / 16.0f; - SEGMENT.fade_out(128); // Just in case something doesn't get faded. + SEGMENT.fadeToBlackBy(64); // Just in case something doesn't get faded. float frTemp = FFT_MajorPeak; uint8_t octCount = 0; // Octave counter. @@ -7076,13 +6984,12 @@ uint16_t mode_rocktaves(void) { // Rocktaves. Same note from eac frTemp -=132; // This should give us a base musical note of C3 frTemp = fabs(frTemp * 2.1); // Fudge factors to compress octave range starting at 0 and going to 255; -// leds[beatsin8(8+octCount*4,0,SEGLEN-1,0,octCount*8)] += CHSV((uint8_t)frTemp,255,volTemp); // Back and forth with different frequencies and phase shift depending on current octave. uint16_t i = map(beatsin8(8+octCount*4, 0, 255, 0, octCount*8), 0, 255, 0, SEGLEN-1); - SEGMENT.setPixelColor(i, color_add(SEGMENT.getPixelColor(i),color_blend(SEGCOLOR(1), SEGMENT.color_from_palette((uint8_t)frTemp, false, PALETTE_SOLID_WRAP, 0), volTemp))); + SEGMENT.addPixelColor(i, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette((uint8_t)frTemp, false, PALETTE_SOLID_WRAP, 0), volTemp)); return FRAMETIME; } // mode_rocktaves() -static const char *_data_FX_MODE_ROCKTAVES PROGMEM = "Rocktaves ♫@;,!;!;mp12=0,ssim=0"; // Pixels, Beatsin +static const char _data_FX_MODE_ROCKTAVES[] PROGMEM = "Rocktaves@;,!;!;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin /////////////////////// @@ -7094,7 +7001,7 @@ uint16_t mode_waterfall(void) { // Waterfall. By: Andrew Tulin um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } uint8_t samplePeak = *(uint8_t*)um_data->u_data[3]; @@ -7104,6 +7011,8 @@ uint16_t mode_waterfall(void) { // Waterfall. By: Andrew Tulin float my_magnitude = *(float*) um_data->u_data[5] / 8.0f; if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); SEGENV.aux0 = 255; SEGMENT.custom2 = *binNum; SEGMENT.custom3 = *maxVol * 2; @@ -7123,12 +7032,12 @@ uint16_t mode_waterfall(void) { // Waterfall. By: Andrew Tulin } else { SEGMENT.setPixelColor(SEGLEN-1, color_blend(SEGCOLOR(1), SEGMENT.color_from_palette(pixCol+SEGMENT.intensity, false, PALETTE_SOLID_WRAP, 0), (int)my_magnitude)); } - for (uint16_t i=0; iu_data[2]; - if (!fftResult) return mode_static(); if (SEGENV.call == 0) for (int i=0; i(SEGENV.data); int NUMB_BANDS = map(SEGMENT.custom1, 0, 255, 1, 16); int barWidth = (cols / NUMB_BANDS); @@ -7211,11 +7116,15 @@ uint16_t mode_2DFunkyPlank(void) { // Written by ??? Adapted by Wil um_data_t *um_data; if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) { - // add support for no audio data + // add support for no audio um_data = simulateSound(SEGMENT.soundSim); } uint8_t *fftResult = (uint8_t*)um_data->u_data[2]; - if (!fftResult) return mode_static(); + + if (SEGENV.call == 0) { + SEGMENT.setUpLeds(); + SEGMENT.fill(BLACK); + } uint8_t secondHand = micros()/(256-SEGMENT.speed)/500+1 % 64; if (SEGENV.aux0 != secondHand) { // Triggered millis timing. @@ -7228,24 +7137,21 @@ uint16_t mode_2DFunkyPlank(void) { // Written by ??? Adapted by Wil int v = map(fftResult[band], 0, 255, 10, 255); for (int w = 0; w < barWidth; w++) { int xpos = (barWidth * b) + w; - leds[XY(xpos, 0)] = CHSV(hue, 255, v); + SEGMENT.setPixelColorXY(xpos, 0, CHSV(hue, 255, v)); } } // Update the display: for (int i = (rows - 1); i > 0; i--) { for (int j = (cols - 1); j >= 0; j--) { - int src = XY(j, (i - 1)); - int dst = XY(j, i); - leds[dst] = leds[src]; + SEGMENT.setPixelColorXY(j, i, SEGMENT.getPixelColorXY(j, i-1)); } } } - SEGMENT.setPixels(leds); return FRAMETIME; } // mode_2DFunkyPlank -static const char *_data_FX_MODE_2DFUNKYPLANK PROGMEM = "2D Funky Plank ♫@Scroll speed,,# of bands;;;ssim=0"; // Beatsin +static const char _data_FX_MODE_2DFUNKYPLANK[] PROGMEM = "Funky Plank@Scroll speed,,# of bands;;;ssim=0,2d,fr"; // Beatsin #endif // WLED_DISABLE_2D @@ -7313,7 +7219,7 @@ uint16_t mode_2DAkemi(void) { float base = fftResult[0]/255.0f; //draw and color Akemi - for (uint16_t y=0; y < rows; y++) for (uint16_t x=0; x < cols; x++) { + for (int y=0; y < rows; y++) for (int x=0; x < cols; x++) { CRGB color; CRGB soundColor = ORANGE; CRGB faceColor = SEGMENT.color_wheel(counter); @@ -7341,12 +7247,12 @@ uint16_t mode_2DAkemi(void) { //add geq left and right if (um_data && fftResult) { - for (uint16_t x=0; x < cols/8; x++) { + for (int x=0; x < cols/8; x++) { uint16_t band = x * cols/8; uint16_t barHeight = map(fftResult[band], 0, 255, 0, 17*rows/32); CRGB color = SEGMENT.color_from_palette((band * 35), false, PALETTE_SOLID_WRAP, 0); - for (uint16_t y=0; y < barHeight; y++) { + for (int y=0; y < barHeight; y++) { SEGMENT.setPixelColorXY(x, rows/2-y, color); SEGMENT.setPixelColorXY(cols-1-x, rows/2-y, color); } @@ -7355,37 +7261,44 @@ uint16_t mode_2DAkemi(void) { return FRAMETIME; } // mode_2DAkemi -static const char *_data_FX_MODE_2DAKEMI PROGMEM = "2D Akemi@Color speed,Dance;Head palette,Arms & Legs,Eyes & Mouth;Face palette;ssim=0"; //beatsin +static const char _data_FX_MODE_2DAKEMI[] PROGMEM = "Akemi@Color speed,Dance;Head palette,Arms & Legs,Eyes & Mouth;Face palette;ssim=0,2d,fr"; //beatsin #endif // WLED_DISABLE_2D +#endif // WLED_DISABLE_AUDIO ////////////////////////////////////////////////////////////////////////////////////////// // mode data -static const char *_data_RESERVED PROGMEM = "Reserved"; +static const char _data_RESERVED[] PROGMEM = "RSVD"; +// add (or replace reserved) effect mode and data into vector +// use id==255 to find unallocatd gaps (with "Reserved" data string) +// if vector size() is smaller than id (single) data is appended at the end (regardless of id) void WS2812FX::addEffect(uint8_t id, mode_ptr mode_fn, const char *mode_name) { - /* - if (id == 255) { for (int i=1; i<_modeCount; i++) if (_mode[i] == &mode_static) { id = i; break; } } // find empty slot - if (id < _modeCount) { - if (_mode[id] != &mode_static) return; // do not overwrite alerady added effect - _mode[id] = mode_fn; - _modeData[id] = mode_name; + if (id == 255) { // find empty slot + for (size_t i=1; i<_mode.size(); i++) if (_modeData[i] == _data_RESERVED) { id = i; break; } } - */ - if (id >= _mode.size()) { + if (id < _mode.size()) { + if (_modeData[id] != _data_RESERVED) return; // do not overwrite alerady added effect + _mode[id] = mode_fn; + _modeData[id] = mode_name; + } else { _mode.push_back(mode_fn); _modeData.push_back(mode_name); - } else { - _mode.insert(_mode.begin()+id, mode_fn); - _modeData.insert(_modeData.begin()+id, mode_name); + if (_modeCount < _mode.size()) _modeCount++; } } void WS2812FX::setupEffectData() { + // Solid must be first! (assuming vector is empty upon call to setup) + _mode.push_back(&mode_static); + _modeData.push_back(_data_FX_MODE_STATIC); // fill reserved word in case there will be any gaps in the array - for (int i=0; i<_modeCount; i++) { _mode[i] = &mode_static; _modeData[i] = _data_RESERVED; } - //addEffect(FX_MODE_..., &mode_fcn, _data_FX_MODE_...); - addEffect(FX_MODE_STATIC, &mode_static, _data_FX_MODE_STATIC); + for (size_t i=1; i<_modeCount; i++) { + _mode.push_back(&mode_static); + _modeData.push_back(_data_RESERVED); + } + // now replace all pre-allocated effects + // --- 1D non-audio effects --- addEffect(FX_MODE_BLINK, &mode_blink, _data_FX_MODE_BLINK); addEffect(FX_MODE_COLOR_WIPE, &mode_color_wipe, _data_FX_MODE_COLOR_WIPE); addEffect(FX_MODE_COLOR_WIPE_RANDOM, &mode_color_wipe_random, _data_FX_MODE_COLOR_WIPE_RANDOM); @@ -7503,18 +7416,28 @@ void WS2812FX::setupEffectData() { addEffect(FX_MODE_BLENDS, &mode_blends, _data_FX_MODE_BLENDS); addEffect(FX_MODE_TV_SIMULATOR, &mode_tv_simulator, _data_FX_MODE_TV_SIMULATOR); addEffect(FX_MODE_DYNAMIC_SMOOTH, &mode_dynamic_smooth, _data_FX_MODE_DYNAMIC_SMOOTH); - #ifndef WLED_DISABLE_2D + + // --- 2D non-audio effects --- +#ifndef WLED_DISABLE_2D addEffect(FX_MODE_2DSPACESHIPS, &mode_2Dspaceships, _data_FX_MODE_2DSPACESHIPS); addEffect(FX_MODE_2DCRAZYBEES, &mode_2Dcrazybees, _data_FX_MODE_2DCRAZYBEES); addEffect(FX_MODE_2DGHOSTRIDER, &mode_2Dghostrider, _data_FX_MODE_2DGHOSTRIDER); addEffect(FX_MODE_2DBLOBS, &mode_2Dfloatingblobs, _data_FX_MODE_2DBLOBS); addEffect(FX_MODE_2DSCROLLTEXT, &mode_2Dscrollingtext, _data_FX_MODE_2DSCROLLTEXT); addEffect(FX_MODE_2DDRIFTROSE, &mode_2Ddriftrose, _data_FX_MODE_2DDRIFTROSE); - #endif -#ifndef USERMOD_AUDIOREACTIVE - #ifndef WLED_DISABLE_2D - addEffect(FX_MODE_2DJULIA, &mode_2DJulia, _data_FX_MODE_2DJULIA); + addEffect(FX_MODE_2DBLACKHOLE, &mode_2DBlackHole, _data_FX_MODE_2DBLACKHOLE); + addEffect(FX_MODE_2DDNASPIRAL, &mode_2DDNASpiral, _data_FX_MODE_2DDNASPIRAL); + addEffect(FX_MODE_2DHIPHOTIC, &mode_2DHiphotic, _data_FX_MODE_2DHIPHOTIC); + addEffect(FX_MODE_2DPLASMABALL, &mode_2DPlasmaball, _data_FX_MODE_2DPLASMABALL); + addEffect(FX_MODE_2DSINDOTS, &mode_2DSindots, _data_FX_MODE_2DSINDOTS); + addEffect(FX_MODE_2DFRIZZLES, &mode_2DFrizzles, _data_FX_MODE_2DFRIZZLES); + addEffect(FX_MODE_2DLISSAJOUS, &mode_2DLissajous, _data_FX_MODE_2DLISSAJOUS); + addEffect(FX_MODE_2DPOLARLIGHTS, &mode_2DPolarLights, _data_FX_MODE_2DPOLARLIGHTS); + addEffect(FX_MODE_2DTARTAN, &mode_2Dtartan, _data_FX_MODE_2DTARTAN); addEffect(FX_MODE_2DGAMEOFLIFE, &mode_2Dgameoflife, _data_FX_MODE_2DGAMEOFLIFE); + addEffect(FX_MODE_2DJULIA, &mode_2DJulia, _data_FX_MODE_2DJULIA); + addEffect(FX_MODE_2DCOLOREDBURSTS, &mode_2DColoredBursts, _data_FX_MODE_2DCOLOREDBURSTS); + addEffect(FX_MODE_2DSUNRADIATION, &mode_2DSunradiation, _data_FX_MODE_2DSUNRADIATION); addEffect(FX_MODE_2DNOISE, &mode_2Dnoise, _data_FX_MODE_2DNOISE); addEffect(FX_MODE_2DFIRENOISE, &mode_2Dfirenoise, _data_FX_MODE_2DFIRENOISE); addEffect(FX_MODE_2DSQUAREDSWIRL, &mode_2Dsquaredswirl, _data_FX_MODE_2DSQUAREDSWIRL); @@ -7522,95 +7445,54 @@ void WS2812FX::setupEffectData() { addEffect(FX_MODE_2DMATRIX, &mode_2Dmatrix, _data_FX_MODE_2DMATRIX); addEffect(FX_MODE_2DMETABALLS, &mode_2Dmetaballs, _data_FX_MODE_2DMETABALLS); addEffect(FX_MODE_2DPULSER, &mode_2DPulser, _data_FX_MODE_2DPULSER); - addEffect(FX_MODE_2DSUNRADIATION, &mode_2DSunradiation, _data_FX_MODE_2DSUNRADIATION); - addEffect(FX_MODE_2DWAVERLY, &mode_2DWaverly, _data_FX_MODE_2DWAVERLY); addEffect(FX_MODE_2DDRIFT, &mode_2DDrift, _data_FX_MODE_2DDRIFT); - addEffect(FX_MODE_2DCOLOREDBURSTS, &mode_2DColoredBursts, _data_FX_MODE_2DCOLOREDBURSTS); - addEffect(FX_MODE_2DTARTAN, &mode_2Dtartan, _data_FX_MODE_2DTARTAN); - addEffect(FX_MODE_2DPOLARLIGHTS, &mode_2DPolarLights, _data_FX_MODE_2DPOLARLIGHTS); + + // --- 2D audio effects --- + #ifndef WLED_DISABLE_AUDIO + addEffect(FX_MODE_2DWAVERLY, &mode_2DWaverly, _data_FX_MODE_2DWAVERLY); addEffect(FX_MODE_2DSWIRL, &mode_2DSwirl, _data_FX_MODE_2DSWIRL); - addEffect(FX_MODE_2DLISSAJOUS, &mode_2DLissajous, _data_FX_MODE_2DLISSAJOUS); - addEffect(FX_MODE_2DFRIZZLES, &mode_2DFrizzles, _data_FX_MODE_2DFRIZZLES); - addEffect(FX_MODE_2DPLASMABALL, &mode_2DPlasmaball, _data_FX_MODE_2DPLASMABALL); - addEffect(FX_MODE_2DHIPHOTIC, &mode_2DHiphotic, _data_FX_MODE_2DHIPHOTIC); - addEffect(FX_MODE_2DSINDOTS, &mode_2DSindots, _data_FX_MODE_2DSINDOTS); - addEffect(FX_MODE_2DDNASPIRAL, &mode_2DDNASpiral, _data_FX_MODE_2DDNASPIRAL); - addEffect(FX_MODE_2DBLACKHOLE, &mode_2DBlackHole, _data_FX_MODE_2DBLACKHOLE); addEffect(FX_MODE_2DAKEMI, &mode_2DAkemi, _data_FX_MODE_2DAKEMI); #endif +#endif // WLED_DISABLE_2D + +#ifndef WLED_DISABLE_AUDIO + // --- 1D audio effects --- addEffect(FX_MODE_PIXELWAVE, &mode_pixelwave, _data_FX_MODE_PIXELWAVE); addEffect(FX_MODE_JUGGLES, &mode_juggles, _data_FX_MODE_JUGGLES); addEffect(FX_MODE_MATRIPIX, &mode_matripix, _data_FX_MODE_MATRIPIX); - addEffect(FX_MODE_GRAVCENTER, &mode_gravcenter, _data_FX_MODE_GRAVCENTER); - addEffect(FX_MODE_GRAVCENTRIC, &mode_gravcentric, _data_FX_MODE_GRAVCENTRIC); addEffect(FX_MODE_GRAVIMETER, &mode_gravimeter, _data_FX_MODE_GRAVIMETER); addEffect(FX_MODE_PLASMOID, &mode_plasmoid, _data_FX_MODE_PLASMOID); addEffect(FX_MODE_PUDDLES, &mode_puddles, _data_FX_MODE_PUDDLES); - addEffect(FX_MODE_PUDDLEPEAK, &mode_puddlepeak, _data_FX_MODE_PUDDLEPEAK); - addEffect(FX_MODE_RIPPLEPEAK, &mode_ripplepeak, _data_FX_MODE_RIPPLEPEAK); addEffect(FX_MODE_MIDNOISE, &mode_midnoise, _data_FX_MODE_MIDNOISE); addEffect(FX_MODE_NOISEMETER, &mode_noisemeter, _data_FX_MODE_NOISEMETER); addEffect(FX_MODE_NOISEFIRE, &mode_noisefire, _data_FX_MODE_NOISEFIRE); -#else - // WLED-SR - #ifdef WLED_DISABLE_2D - #error AUDIOREACTIVE requires 2D support. + addEffect(FX_MODE_PUDDLEPEAK, &mode_puddlepeak, _data_FX_MODE_PUDDLEPEAK); + addEffect(FX_MODE_RIPPLEPEAK, &mode_ripplepeak, _data_FX_MODE_RIPPLEPEAK); + addEffect(FX_MODE_GRAVCENTER, &mode_gravcenter, _data_FX_MODE_GRAVCENTER); + addEffect(FX_MODE_GRAVCENTRIC, &mode_gravcentric, _data_FX_MODE_GRAVCENTRIC); +#endif // WLED_DISABLE_AUDIO + +#ifdef USERMOD_AUDIOREACTIVE + // --- WLED-SR audio reactive usermod only effects --- + #ifdef WLED_DISABLE_AUDIO + #error Incompatible options: WLED_DISABLE_AUDIO and USERMOD_AUDIOREACTIVE + #endif + #ifdef WLED_DISABLE_2D + #error AUDIOREACTIVE usermod requires 2D support. #endif - addEffect(FX_MODE_2DJULIA, &mode_2DJulia, _data_FX_MODE_2DJULIA); - addEffect(FX_MODE_2DGAMEOFLIFE, &mode_2Dgameoflife, _data_FX_MODE_2DGAMEOFLIFE); addEffect(FX_MODE_PIXELS, &mode_pixels, _data_FX_MODE_PIXELS); - addEffect(FX_MODE_PIXELWAVE, &mode_pixelwave, _data_FX_MODE_PIXELWAVE); - addEffect(FX_MODE_JUGGLES, &mode_juggles, _data_FX_MODE_JUGGLES); - addEffect(FX_MODE_MATRIPIX, &mode_matripix, _data_FX_MODE_MATRIPIX); - addEffect(FX_MODE_GRAVIMETER, &mode_gravimeter, _data_FX_MODE_GRAVIMETER); - addEffect(FX_MODE_PLASMOID, &mode_plasmoid, _data_FX_MODE_PLASMOID); - addEffect(FX_MODE_PUDDLES, &mode_puddles, _data_FX_MODE_PUDDLES); - addEffect(FX_MODE_MIDNOISE, &mode_midnoise, _data_FX_MODE_MIDNOISE); - addEffect(FX_MODE_NOISEMETER, &mode_noisemeter, _data_FX_MODE_NOISEMETER); addEffect(FX_MODE_FREQWAVE, &mode_freqwave, _data_FX_MODE_FREQWAVE); addEffect(FX_MODE_FREQMATRIX, &mode_freqmatrix, _data_FX_MODE_FREQMATRIX); addEffect(FX_MODE_2DGEQ, &mode_2DGEQ, _data_FX_MODE_2DGEQ); addEffect(FX_MODE_WATERFALL, &mode_waterfall, _data_FX_MODE_WATERFALL); addEffect(FX_MODE_FREQPIXELS, &mode_freqpixels, _data_FX_MODE_FREQPIXELS); - addEffect(FX_MODE_NOISEFIRE, &mode_noisefire, _data_FX_MODE_NOISEFIRE); - addEffect(FX_MODE_PUDDLEPEAK, &mode_puddlepeak, _data_FX_MODE_PUDDLEPEAK); addEffect(FX_MODE_NOISEMOVE, &mode_noisemove, _data_FX_MODE_NOISEMOVE); - addEffect(FX_MODE_2DNOISE, &mode_2Dnoise, _data_FX_MODE_2DNOISE); - //addEffect(FX_MODE_PERLINMOVE, &mode_perlinmove, _data_FX_MODE_PERLINMOVE); - addEffect(FX_MODE_RIPPLEPEAK, &mode_ripplepeak, _data_FX_MODE_RIPPLEPEAK); - addEffect(FX_MODE_2DFIRENOISE, &mode_2Dfirenoise, _data_FX_MODE_2DFIRENOISE); - addEffect(FX_MODE_2DSQUAREDSWIRL, &mode_2Dsquaredswirl, _data_FX_MODE_2DSQUAREDSWIRL); - //addEffect(FX_MODE_2DFIRE2012, &mode_2Dfire2012, _data_RESERVED); - addEffect(FX_MODE_2DDNA, &mode_2Ddna, _data_FX_MODE_2DDNA); - addEffect(FX_MODE_2DMATRIX, &mode_2Dmatrix, _data_FX_MODE_2DMATRIX); - addEffect(FX_MODE_2DMETABALLS, &mode_2Dmetaballs, _data_FX_MODE_2DMETABALLS); addEffect(FX_MODE_FREQMAP, &mode_freqmap, _data_FX_MODE_FREQMAP); - addEffect(FX_MODE_GRAVCENTER, &mode_gravcenter, _data_FX_MODE_GRAVCENTER); - addEffect(FX_MODE_GRAVCENTRIC, &mode_gravcentric, _data_FX_MODE_GRAVCENTRIC); addEffect(FX_MODE_GRAVFREQ, &mode_gravfreq, _data_FX_MODE_GRAVFREQ); addEffect(FX_MODE_DJLIGHT, &mode_DJLight, _data_FX_MODE_DJLIGHT); addEffect(FX_MODE_2DFUNKYPLANK, &mode_2DFunkyPlank, _data_FX_MODE_2DFUNKYPLANK); - //addEffect(FX_MODE_2DCENTERBARS, &mode_2DCenterBars, _data_FX_MODE_2DCENTERBARS); - addEffect(FX_MODE_2DPULSER, &mode_2DPulser, _data_FX_MODE_2DPULSER); addEffect(FX_MODE_BLURZ, &mode_blurz, _data_FX_MODE_BLURZ); - addEffect(FX_MODE_2DSUNRADIATION, &mode_2DSunradiation, _data_FX_MODE_2DSUNRADIATION); - addEffect(FX_MODE_2DWAVERLY, &mode_2DWaverly, _data_FX_MODE_2DWAVERLY); - addEffect(FX_MODE_2DDRIFT, &mode_2DDrift, _data_FX_MODE_2DDRIFT); - addEffect(FX_MODE_2DCOLOREDBURSTS, &mode_2DColoredBursts, _data_FX_MODE_2DCOLOREDBURSTS); - addEffect(FX_MODE_2DTARTAN, &mode_2Dtartan, _data_FX_MODE_2DTARTAN); - addEffect(FX_MODE_2DPOLARLIGHTS, &mode_2DPolarLights, _data_FX_MODE_2DPOLARLIGHTS); - addEffect(FX_MODE_2DSWIRL, &mode_2DSwirl, _data_FX_MODE_2DSWIRL); - addEffect(FX_MODE_2DLISSAJOUS, &mode_2DLissajous, _data_FX_MODE_2DLISSAJOUS); - addEffect(FX_MODE_2DFRIZZLES, &mode_2DFrizzles, _data_FX_MODE_2DFRIZZLES); - addEffect(FX_MODE_2DPLASMABALL, &mode_2DPlasmaball, _data_FX_MODE_2DPLASMABALL); - //addEffect(FX_MODE_FLOWSTRIPE, &mode_FlowStripe, _data_FX_MODE_FLOWSTRIPE); - addEffect(FX_MODE_2DHIPHOTIC, &mode_2DHiphotic, _data_FX_MODE_2DHIPHOTIC); - addEffect(FX_MODE_2DSINDOTS, &mode_2DSindots, _data_FX_MODE_2DSINDOTS); - addEffect(FX_MODE_2DDNASPIRAL, &mode_2DDNASpiral, _data_FX_MODE_2DDNASPIRAL); - addEffect(FX_MODE_2DBLACKHOLE, &mode_2DBlackHole, _data_FX_MODE_2DBLACKHOLE); - //addEffect(FX_MODE_WAVESINS, &mode_wavesins, _data_FX_MODE_WAVESINS); addEffect(FX_MODE_ROCKTAVES, &mode_rocktaves, _data_FX_MODE_ROCKTAVES); - addEffect(FX_MODE_2DAKEMI, &mode_2DAkemi, _data_FX_MODE_2DAKEMI); //addEffect(FX_MODE_CUSTOMEFFECT, &mode_customEffect, _data_FX_MODE_CUSTOMEFFECT); //WLEDSR Custom Effects -#endif +#endif // USERMOD_AUDIOREACTIVE } diff --git a/wled00/FX.h b/wled00/FX.h index 7f66f074..b44b51ce 100644 --- a/wled00/FX.h +++ b/wled00/FX.h @@ -56,10 +56,6 @@ #define RGBW32(r,g,b,w) (uint32_t((byte(w) << 24) | (byte(r) << 16) | (byte(g) << 8) | (byte(b)))) #endif -//colors.cpp (.h does not like including other .h) -uint32_t color_blend(uint32_t,uint32_t,uint16_t,bool b16); -uint32_t color_add(uint32_t,uint32_t); - /* Not used in all effects yet */ #define WLED_FPS 42 #define FRAMETIME_FIXED (1000/WLED_FPS) @@ -71,12 +67,12 @@ uint32_t color_add(uint32_t,uint32_t); #ifdef ESP8266 #define MAX_NUM_SEGMENTS 16 /* How much data bytes all segments combined may allocate */ - #define MAX_SEGMENT_DATA 4096 + #define MAX_SEGMENT_DATA 5120 #else #ifndef MAX_NUM_SEGMENTS #define MAX_NUM_SEGMENTS 32 #endif - #define MAX_SEGMENT_DATA 32768 + #define MAX_SEGMENT_DATA 32767 #endif /* How much data bytes each segment should max allocate to leave enough space for other segments, @@ -88,7 +84,7 @@ uint32_t color_add(uint32_t,uint32_t); #define NUM_COLORS 3 /* number of colors per segment */ #define SEGMENT strip._segments[strip.getCurrSegmentId()] #define SEGENV strip._segments[strip.getCurrSegmentId()] -//#define SEGCOLOR(x) strip._segments[s//trip.getCurrSegmentId()].currentColor(x, strip._segments[strip.getCurrSegmentId()].colors[x]) +//#define SEGCOLOR(x) strip._segments[strip.getCurrSegmentId()].currentColor(x, strip._segments[strip.getCurrSegmentId()].colors[x]) //#define SEGLEN strip._segments[strip.getCurrSegmentId()].virtualLength() #define SEGCOLOR(x) strip.segColor(x) /* saves us a few kbytes of code */ #define SEGPALETTE strip._currentPalette @@ -108,6 +104,8 @@ uint32_t color_add(uint32_t,uint32_t); #define ORANGE (uint32_t)0xFF3000 #define PINK (uint32_t)0xFF1493 #define ULTRAWHITE (uint32_t)0xFFFFFFFF +#define DARKSLATEGRAY (uint32_t)0x2F4F4F +#define DARKSLATEGREY (uint32_t)0x2F4F4F // options // bit 7: segment is in transition mode @@ -247,120 +245,96 @@ uint32_t color_add(uint32_t,uint32_t); #define FX_MODE_BLENDS 115 #define FX_MODE_TV_SIMULATOR 116 #define FX_MODE_DYNAMIC_SMOOTH 117 -// new 2D effects -#define FX_MODE_2DSPACESHIPS 118 -#define FX_MODE_2DCRAZYBEES 119 -#define FX_MODE_2DGHOSTRIDER 120 -#define FX_MODE_2DBLOBS 121 -#define FX_MODE_2DSCROLLTEXT 122 -#define FX_MODE_2DDRIFTROSE 123 -// WLED-SR effects (non SR compatible IDs) -#define FX_MODE_2DBLACKHOLE 124 // non audio -#define FX_MODE_2DDNASPIRAL 125 // non audio -#define FX_MODE_2DHIPHOTIC 126 // non audio -#define FX_MODE_2DPLASMABALL 127 // non audio -#define FX_MODE_2DSINDOTS 128 // non audio -#define FX_MODE_2DFRIZZLES 129 // non audio -#define FX_MODE_2DLISSAJOUS 130 // non audio -#define FX_MODE_2DPOLARLIGHTS 131 // non audio -#define FX_MODE_2DTARTAN 132 // non audio -#define FX_MODE_2DGAMEOFLIFE 133 // non audio -#define FX_MODE_2DJULIA 134 // non audio -#define FX_MODE_2DCOLOREDBURSTS 135 // non audio -#define FX_MODE_2DSUNRADIATION 136 // non audio -#define FX_MODE_2DNOISE 137 // non audio -#define FX_MODE_2DFIRENOISE 138 // non audio -#define FX_MODE_2DSQUAREDSWIRL 139 // non audio -#define FX_MODE_2DDNA 140 // non audio -#define FX_MODE_2DMATRIX 141 // non audio -#define FX_MODE_2DMETABALLS 142 // non audio -#define FX_MODE_2DPULSER 143 // non audio -#define FX_MODE_2DDRIFT 144 // non audio -#define FX_MODE_2DWAVERLY 145 // audio enhanced -#define FX_MODE_2DSWIRL 146 // audio enhanced -#define FX_MODE_2DAKEMI 147 // audio enhanced -#define FX_MODE_PIXELWAVE 160 // audio enhanced -#define FX_MODE_JUGGLES 161 // audio enhanced -#define FX_MODE_MATRIPIX 162 // audio enhanced -#define FX_MODE_GRAVIMETER 163 // audio enhanced -#define FX_MODE_PLASMOID 164 // audio enhanced -#define FX_MODE_PUDDLES 165 // audio enhanced -#define FX_MODE_MIDNOISE 166 // audio enhanced -#define FX_MODE_NOISEMETER 167 // audio enhanced -#define FX_MODE_NOISEFIRE 168 // audio enhanced -#define FX_MODE_PUDDLEPEAK 169 // audio enhanced -#define FX_MODE_RIPPLEPEAK 170 // audio enhanced -#define FX_MODE_GRAVCENTER 171 // audio enhanced -#define FX_MODE_GRAVCENTRIC 172 // audio enhanced +#ifndef WLED_DISABLE_2D + // new 2D effects + #define FX_MODE_2DSPACESHIPS 118 + #define FX_MODE_2DCRAZYBEES 119 + #define FX_MODE_2DGHOSTRIDER 120 + #define FX_MODE_2DBLOBS 121 + #define FX_MODE_2DSCROLLTEXT 122 + #define FX_MODE_2DDRIFTROSE 123 + // WLED-SR effects (non SR compatible IDs) + #define FX_MODE_2DBLACKHOLE 124 // non audio + #define FX_MODE_2DDNASPIRAL 125 // non audio + #define FX_MODE_2DHIPHOTIC 126 // non audio + #define FX_MODE_2DPLASMABALL 127 // non audio + #define FX_MODE_2DSINDOTS 128 // non audio + #define FX_MODE_2DFRIZZLES 129 // non audio + #define FX_MODE_2DLISSAJOUS 130 // non audio + #define FX_MODE_2DPOLARLIGHTS 131 // non audio + #define FX_MODE_2DTARTAN 132 // non audio + #define FX_MODE_2DGAMEOFLIFE 133 // non audio + #define FX_MODE_2DJULIA 134 // non audio + #define FX_MODE_2DCOLOREDBURSTS 135 // non audio + #define FX_MODE_2DSUNRADIATION 136 // non audio + #define FX_MODE_2DNOISE 137 // non audio + #define FX_MODE_2DFIRENOISE 138 // non audio + #define FX_MODE_2DSQUAREDSWIRL 139 // non audio + #define FX_MODE_2DDNA 140 // non audio + #define FX_MODE_2DMATRIX 141 // non audio + #define FX_MODE_2DMETABALLS 142 // non audio + #define FX_MODE_2DPULSER 143 // non audio + #define FX_MODE_2DDRIFT 144 // non audio +#endif +#ifndef WLED_DISABLE_AUDIO + #ifndef WLED_DISABLE_2D + #define FX_MODE_2DWAVERLY 145 // audio enhanced + #define FX_MODE_2DSWIRL 146 // audio enhanced + #define FX_MODE_2DAKEMI 147 // audio enhanced + // 148 & 149 reserved + #endif + #define FX_MODE_PIXELWAVE 150 // audio enhanced + #define FX_MODE_JUGGLES 151 // audio enhanced + #define FX_MODE_MATRIPIX 152 // audio enhanced + #define FX_MODE_GRAVIMETER 153 // audio enhanced + #define FX_MODE_PLASMOID 154 // audio enhanced + #define FX_MODE_PUDDLES 155 // audio enhanced + #define FX_MODE_MIDNOISE 156 // audio enhanced + #define FX_MODE_NOISEMETER 157 // audio enhanced + #define FX_MODE_NOISEFIRE 158 // audio enhanced + #define FX_MODE_PUDDLEPEAK 159 // audio enhanced + #define FX_MODE_RIPPLEPEAK 160 // audio enhanced + #define FX_MODE_GRAVCENTER 161 // audio enhanced + #define FX_MODE_GRAVCENTRIC 162 // audio enhanced +#endif #ifndef USERMOD_AUDIOREACTIVE - #define MODE_COUNT 173 + #ifndef WLED_DISABLE_AUDIO + #define MODE_COUNT 163 + #else + #ifndef WLED_DISABLE_2D + #define MODE_COUNT 145 + #else + #define MODE_COUNT 118 + #endif + #endif #else - #define FX_MODE_PIXELS 173 -// #define FX_MODE_PIXELWAVE 129 // audio enhanced -// #define FX_MODE_JUGGLES 130 // audio enhanced -// #define FX_MODE_MATRIPIX 131 // audio enhanced -// #define FX_MODE_GRAVIMETER 132 // audio enhanced -// #define FX_MODE_PLASMOID 133 // audio enhanced -// #define FX_MODE_PUDDLES 134 // audio enhanced -// #define FX_MODE_MIDNOISE 135 // audio enhanced -// #define FX_MODE_NOISEMETER 136 // audio enhanced - #define FX_MODE_FREQWAVE 174 - #define FX_MODE_FREQMATRIX 175 + #ifdef WLED_DISABLE_AUDIO + #error Incompatible options: WLED_DISABLE_AUDIO and USERMOD_AUDIOREACTIVE + #endif + #ifdef WLED_DISABLE_2D + #error AUDIOREACTIVE usermod requires 2D support. + #endif #define FX_MODE_2DGEQ 148 - #define FX_MODE_WATERFALL 176 - #define FX_MODE_FREQPIXELS 177 - #define FX_MODE_BINMAP 178 -// #define FX_MODE_NOISEFIRE 143 // audio enhanced -// #define FX_MODE_PUDDLEPEAK 144 // audio enhanced - #define FX_MODE_NOISEMOVE 179 -// #define FX_MODE_2DNOISE 146 // non audio - //#define FX_MODE_PERLINMOVE 147 // moved to 53 -// #define FX_MODE_RIPPLEPEAK 148 // audio enhanced -// #define FX_MODE_2DFIRENOISE 149 // non audio -// #define FX_MODE_2DSQUAREDSWIRL 150 // non audio - //#define FX_MODE_2DFIRE2012 151 // implemented in native Fire2012 -// #define FX_MODE_2DDNA 152 // non audio -// #define FX_MODE_2DMATRIX 153 // non audio -// #define FX_MODE_2DMETABALLS 154 // non audio - #define FX_MODE_FREQMAP 180 -// #define FX_MODE_GRAVCENTER 156 // audio enhanced -// #define FX_MODE_GRAVCENTRIC 157 // audio enhanced - #define FX_MODE_GRAVFREQ 181 - #define FX_MODE_DJLIGHT 182 #define FX_MODE_2DFUNKYPLANK 149 - //#define FX_MODE_2DCENTERBARS 161 // obsolete by X & Y mirroring -// #define FX_MODE_2DPULSER 162 // non audio - #define FX_MODE_BLURZ 183 -// #define FX_MODE_2DDRIFT 164 // non audio -// #define FX_MODE_2DWAVERLY 165 // audio enhanced -// #define FX_MODE_2DSUNRADIATION 166 // non audio -// #define FX_MODE_2DCOLOREDBURSTS 167 // non audio -// #define FX_MODE_2DJULIA 168 // non audio - #define FX_MODE_2DPOOLNOISE 150 // reserved in JSON_mode_names - #define FX_MODE_2DTWISTER 151 // reserved in JSON_mode_names - #define FX_MODE_2DCAELEMENTATY 152 // reserved in JSON_mode_names -// #define FX_MODE_2DGAMEOFLIFE 172 // non audio -// #define FX_MODE_2DTARTAN 173 // non audio -// #define FX_MODE_2DPOLARLIGHTS 174 // non audio -// #define FX_MODE_2DSWIRL 175 // audio enhanced -// #define FX_MODE_2DLISSAJOUS 176 // non audio -// #define FX_MODE_2DFRIZZLES 177 // non audio -// #define FX_MODE_2DPLASMABALL 178 // non audio - //#define FX_MODE_FLOWSTRIPE 179 // moved to 114 -// #define FX_MODE_2DHIPHOTIC 180 // non audio -// #define FX_MODE_2DSINDOTS 181 // non audio -// #define FX_MODE_2DDNASPIRAL 182 // non audio -// #define FX_MODE_2DBLACKHOLE 183 // non audio - //#define FX_MODE_WAVESINS 184 // moved to 48 - #define FX_MODE_ROCKTAVES 184 -// #define FX_MODE_2DAKEMI 186 // audio enhanced - //#define FX_MODE_CUSTOMEFFECT 187 //WLEDSR Custom Effects + #define FX_MODE_PIXELS 163 + #define FX_MODE_FREQWAVE 164 + #define FX_MODE_FREQMATRIX 165 + #define FX_MODE_WATERFALL 166 + #define FX_MODE_FREQPIXELS 167 + #define FX_MODE_BINMAP 168 + #define FX_MODE_NOISEMOVE 169 + #define FX_MODE_FREQMAP 170 + #define FX_MODE_GRAVFREQ 171 + #define FX_MODE_DJLIGHT 172 + #define FX_MODE_BLURZ 173 + #define FX_MODE_ROCKTAVES 174 + //#define FX_MODE_CUSTOMEFFECT 175 //WLEDSR Custom Effects - #define MODE_COUNT 185 + #define MODE_COUNT 175 #endif typedef enum mapping1D2D { @@ -414,6 +388,8 @@ typedef struct Segment { uint16_t aux0; // custom var uint16_t aux1; // custom var byte* data; + CRGB* leds; + static CRGB *_globalLeds; private: union { @@ -427,21 +403,22 @@ typedef struct Segment { }; }; uint16_t _dataLen; + static uint16_t _usedSegmentData; - // transition data, valid only if getOption(SEG_OPTION_TRANSITIONAL)==true, holds values during transition - //struct Transition { + // transition data, valid only if transitional==true, holds values during transition + struct Transition { uint32_t _colorT[NUM_COLORS]; uint8_t _briT; // temporary brightness uint8_t _cctT; // temporary CCT CRGBPalette16 _palT; // temporary palette - //uint8_t _modeP; // previous mode/effect (transitioning effects is way more complex than this) + uint8_t _modeP; // previous mode/effect uint32_t _start; uint16_t _dur; - // Transition(uint16_t dur=750) : _briT(255), _cctT(127), _palT(CRGBPalette16(CRGB::Black)), _modeP(FX_MODE_STATIC), _start(millis()), _dur(dur) {} - // Transition(uint16_t d, uint8_t b, uint8_t c, const uint32_t *o) : _briT(b), _cctT(c), _palT(CRGBPalette16(CRGB::Black)), _modeP(FX_MODE_STATIC), _start(millis()), _dur(d) { - // for (size_t i=0; i> n) & 0x01); } - inline bool isSelected(void) { return getOption(0); } + inline bool isSelected(void) { return selected; } inline bool isActive(void) { return stop > start; } - inline uint16_t width(void) { return stop - start; } - inline uint16_t height(void) { return stopY - startY; } - inline uint16_t length(void) { return width(); } + inline bool is2D(void) { return !(startY == 0 && stopY == 1); } + inline uint16_t width(void) { return stop - start; } // segment width in physical pixels (length if 1D) + inline uint16_t height(void) { return stopY - startY; } // segment height (if 2D) in physical pixels + inline uint16_t length(void) { return width() * height(); } // segment length (count) in physical pixels inline uint16_t groupLength(void) { return grouping + spacing; } inline uint8_t getLightCapabilities(void) { return _capabilities; } - bool setColor(uint8_t slot, uint32_t c); //returns true if changed - void setCCT(uint16_t k); - void setOpacity(uint8_t o); - void setOption(uint8_t n, bool val); + static uint16_t getUsedSegmentData(void) { return _usedSegmentData; } + static void addUsedSegmentData(int len) { _usedSegmentData += len; } + + bool setColor(uint8_t slot, uint32_t c); //returns true if changed + void setCCT(uint16_t k); + void setOpacity(uint8_t o); + void setOption(uint8_t n, bool val); uint8_t differs(Segment& b); - void refreshLightCapabilities(void); + void refreshLightCapabilities(void); // runtime data functions - bool allocateData(uint16_t len); - void deallocateData(void); inline uint16_t dataSize(void) { return _dataLen; } + bool allocateData(size_t len); + void deallocateData(void); void resetIfRequired(void); /** * Flags that before the next effect is calculated, @@ -529,13 +517,16 @@ typedef struct Segment { * Safe to call from interrupts and network requests. */ inline void markForReset(void) { reset = true; } // setOption(SEG_OPTION_RESET, true) + //inline void setUpLeds() { if (!leds) leds = (CRGB*)malloc(sizeof(CRGB)*length()); } + void setUpLeds(void); // transition functions - void startTransition(uint16_t dur); // transition has to start before actual segment values change - void handleTransition(void); + void startTransition(uint16_t dur); // transition has to start before actual segment values change + void handleTransition(void); uint16_t progress(void); //transition progression between 0-65535 uint8_t currentBri(uint8_t briNew, bool useCct = false); - uint32_t currentColor(uint8_t slot, uint32_t colorNew) { return getOption(SEG_OPTION_TRANSITIONAL) /*&& !_t*/ ? color_blend(/*_t->*/_colorT[slot], colorNew, progress(), true) : colorNew; } + uint8_t currentMode(uint8_t modeNew); + uint32_t currentColor(uint8_t slot, uint32_t colorNew); CRGBPalette16 &loadPalette(CRGBPalette16 &tgt, uint8_t pal); CRGBPalette16 ¤tPalette(CRGBPalette16 &tgt, uint8_t paletteID); @@ -543,18 +534,22 @@ typedef struct Segment { uint16_t virtualLength(void); void setPixelColor(int n, uint32_t c); // set relative pixel within segment with color void setPixelColor(int n, byte r, byte g, byte b, byte w = 0) { setPixelColor(n, RGBW32(r,g,b,w)); } // automatically inline - void setPixelColor(int n, CRGB c) { setPixelColor(n, c.red, c.green, c.blue); } // automatically inline + void setPixelColor(int n, CRGB c) { setPixelColor(n, RGBW32(c.r,c.g,c.b,0)); } // automatically inline void setPixelColor(float i, uint32_t c, bool aa = true); void setPixelColor(float i, uint8_t r, uint8_t g, uint8_t b, uint8_t w = 0, bool aa = true) { setPixelColor(i, RGBW32(r,g,b,w), aa); } - void setPixelColor(float i, CRGB c, bool aa = true) { setPixelColor(i, c.red, c.green, c.blue, 0, aa); } + void setPixelColor(float i, CRGB c, bool aa = true) { setPixelColor(i, RGBW32(c.r,c.g,c.b,0), aa); } uint32_t getPixelColor(uint16_t i); // 1D support functions (some implement 2D as well) void blur(uint8_t); void fill(uint32_t c); void fade_out(uint8_t r); void fadeToBlackBy(uint8_t fadeBy); - void blendPixelColor(uint16_t n, uint32_t color, uint8_t blend); - void addPixelColor(uint16_t n, uint32_t color); + void blendPixelColor(int n, uint32_t color, uint8_t blend); + void blendPixelColor(int n, CRGB c, uint8_t blend) { blendPixelColor(n, RGBW32(c.r,c.g,c.b,0), blend); } + void addPixelColor(int n, uint32_t color); + void addPixelColor(int n, byte r, byte g, byte b, byte w = 0) { addPixelColor(n, RGBW32(r,g,b,w)); } // automatically inline + void addPixelColor(int n, CRGB c) { addPixelColor(n, RGBW32(c.r,c.g,c.b,0)); } // automatically inline + void fadePixelColor(uint16_t n, uint8_t fade); uint8_t get_random_wheel_index(uint8_t pos); uint32_t color_from_palette(uint16_t, bool mapping, bool wrap, uint8_t mcol, uint8_t pbri = 255); uint32_t color_wheel(uint8_t pos); @@ -562,35 +557,66 @@ typedef struct Segment { // 2D matrix uint16_t virtualWidth(void); uint16_t virtualHeight(void); + #ifndef WLED_DISABLE_2D uint16_t XY(uint16_t x, uint16_t y); // support function to get relative index within segment (for leds[]) void setPixelColorXY(int x, int y, uint32_t c); // set relative pixel within segment with color void setPixelColorXY(int x, int y, byte r, byte g, byte b, byte w = 0) { setPixelColorXY(x, y, RGBW32(r,g,b,w)); } // automatically inline - void setPixelColorXY(int x, int y, CRGB c) { setPixelColorXY(x, y, c.red, c.green, c.blue); } // automatically inline + void setPixelColorXY(int x, int y, CRGB c) { setPixelColorXY(x, y, RGBW32(c.r,c.g,c.b,0)); } // automatically inline void setPixelColorXY(float x, float y, uint32_t c, bool aa = true); void setPixelColorXY(float x, float y, byte r, byte g, byte b, byte w = 0, bool aa = true) { setPixelColorXY(x, y, RGBW32(r,g,b,w), aa); } - void setPixelColorXY(float x, float y, CRGB c, bool aa = true) { setPixelColorXY(x, y, c.red, c.green, c.blue, 0, aa); } + void setPixelColorXY(float x, float y, CRGB c, bool aa = true) { setPixelColorXY(x, y, RGBW32(c.r,c.g,c.b,0), aa); } uint32_t getPixelColorXY(uint16_t x, uint16_t y); // 2D support functions void blendPixelColorXY(uint16_t x, uint16_t y, uint32_t color, uint8_t blend); - void addPixelColorXY(uint16_t x, uint16_t y, uint32_t color); - void blur1d(CRGB* leds, fract8 blur_amount); - void blur1d(uint16_t i, bool vertical, fract8 blur_amount, CRGB* leds=nullptr); // 1D box blur (with weight) - void blur2d(CRGB* leds, fract8 blur_amount); - void blurRow(uint16_t row, fract8 blur_amount, CRGB* leds=nullptr); - void blurCol(uint16_t col, fract8 blur_amount, CRGB* leds=nullptr); - void moveX(CRGB *leds, int8_t delta); - void moveY(CRGB *leds, int8_t delta); - void move(uint8_t dir, uint8_t delta, CRGB *leds=nullptr); - void fill_solid(CRGB* leds, CRGB c); - void fill_circle(CRGB* leds, uint16_t cx, uint16_t cy, uint8_t radius, CRGB c); - void fadeToBlackBy(CRGB* leds, uint8_t fadeBy); - void nscale8(CRGB* leds, uint8_t scale); - void setPixels(CRGB* leds); - void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, CRGB c, CRGB *leds = nullptr); - void drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, CRGB color, CRGB *leds = nullptr); - void wu_pixel(CRGB *leds, uint32_t x, uint32_t y, CRGB c); - inline void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint32_t c) { drawLine(x0, y0, x1, y1, CRGB(byte(c>>16), byte(c>>8), byte(c))); } - inline void drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, uint32_t c) { drawCharacter(chr, x, y, w, h, CRGB(byte(c>>16), byte(c>>8), byte(c))); } + void blendPixelColorXY(uint16_t x, uint16_t y, CRGB c, uint8_t blend) { blendPixelColorXY(x, y, RGBW32(c.r,c.g,c.b,0), blend); } + void addPixelColorXY(int x, int y, uint32_t color); + void addPixelColorXY(int x, int y, byte r, byte g, byte b, byte w = 0) { addPixelColorXY(x, y, RGBW32(r,g,b,w)); } // automatically inline + void addPixelColorXY(int x, int y, CRGB c) { addPixelColorXY(x, y, RGBW32(c.r,c.g,c.b,0)); } + void fadePixelColorXY(uint16_t x, uint16_t y, uint8_t fade); + void box_blur(uint16_t i, bool vertical, fract8 blur_amount); // 1D box blur (with weight) + void blurRow(uint16_t row, fract8 blur_amount); + void blurCol(uint16_t col, fract8 blur_amount); + void moveX(int8_t delta); + void moveY(int8_t delta); + void move(uint8_t dir, uint8_t delta); + void fill_circle(uint16_t cx, uint16_t cy, uint8_t radius, CRGB c); + void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint32_t c); + void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, CRGB c) { drawLine(x0, y0, x1, y1, RGBW32(c.r,c.g,c.b,0)); } // automatic inline + void drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, uint32_t color); + void drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, CRGB c) { drawCharacter(chr, x, y, w, h, RGBW32(c.r,c.g,c.b,0)); } // automatic inline + void wu_pixel(uint32_t x, uint32_t y, CRGB c); + void blur1d(fract8 blur_amount); // blur all rows in 1 dimension + void blur2d(fract8 blur_amount) { blur(blur_amount); } + void fill_solid(CRGB c) { fill(RGBW32(c.r,c.g,c.b,0)); } + void nscale8(uint8_t scale); + #else + uint16_t XY(uint16_t x, uint16_t y) { return x; } + void setPixelColorXY(int x, int y, uint32_t c) { setPixelColor(x, c); } + void setPixelColorXY(int x, int y, byte r, byte g, byte b, byte w = 0) { setPixelColor(x, RGBW32(r,g,b,w)); } + void setPixelColorXY(int x, int y, CRGB c) { setPixelColor(x, RGBW32(c.r,c.g,c.b,0)); } + void setPixelColorXY(float x, float y, uint32_t c, bool aa = true) { setPixelColor(x, c, aa); } + void setPixelColorXY(float x, float y, byte r, byte g, byte b, byte w = 0, bool aa = true) { setPixelColor(x, RGBW32(r,g,b,w), aa); } + void setPixelColorXY(float x, float y, CRGB c, bool aa = true) { setPixelColor(x, RGBW32(c.r,c.g,c.b,0), aa); } + uint32_t getPixelColorXY(uint16_t x, uint16_t y) { return getPixelColor(x); } + void blendPixelColorXY(uint16_t x, uint16_t y, uint32_t c, uint8_t blend) { blendPixelColor(x, c, blend); } + void blendPixelColorXY(uint16_t x, uint16_t y, CRGB c, uint8_t blend) { blendPixelColor(x, RGBW32(c.r,c.g,c.b,0), blend); } + void addPixelColorXY(int x, int y, uint32_t color) { addPixelColor(x, color); } + void addPixelColorXY(int x, int y, byte r, byte g, byte b, byte w = 0) { addPixelColor(x, RGBW32(r,g,b,w)); } + void addPixelColorXY(int x, int y, CRGB c) { addPixelColor(x, RGBW32(c.r,c.g,c.b,0)); } + void fadePixelColorXY(uint16_t x, uint16_t y, uint8_t fade) { fadePixelColor(x, fade); } + void box_blur(uint16_t i, bool vertical, fract8 blur_amount) {} + void blurRow(uint16_t row, fract8 blur_amount) {} + void blurCol(uint16_t col, fract8 blur_amount) {} + void moveX(int8_t delta) {} + void moveY(int8_t delta) {} + void move(uint8_t dir, uint8_t delta) {} + void fill_circle(uint16_t cx, uint16_t cy, uint8_t radius, CRGB c) {} + void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint32_t c) {} + void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, CRGB c) {} + void drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, uint32_t color) {} + void drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, CRGB color) {} + void wu_pixel(uint32_t x, uint32_t y, CRGB c) {} + #endif } segment; //static int i = sizeof(Segment); @@ -633,13 +659,11 @@ class WS2812FX { // 96 bytes #endif // semi-private (just obscured) used in effect functions through macros _currentPalette(CRGBPalette16(CRGB::Black)), - _bri_t(0), _colors_t{0,0,0}, _virtualSegmentLength(0), // true private variables _length(DEFAULT_LED_COUNT), _brightness(DEFAULT_BRIGHTNESS), - _usedSegmentData(0), _transitionDur(750), _targetFps(WLED_FPS), _frametime(FRAMETIME_FIXED), @@ -657,9 +681,9 @@ class WS2812FX { // 96 bytes _mainSegment(0) { WS2812FX::instance = this; - _mode.reserve(_modeCount); // allocate memory to prevent initial fragmentation - _modeData.reserve(_modeCount); // allocate memory to prevent initial fragmentation - if (_mode.capacity() <= 1 || _modeData.capacity() <= 1) _modeCount = 1; + _mode.reserve(_modeCount); // allocate memory to prevent initial fragmentation (does not increase size()) + _modeData.reserve(_modeCount); // allocate memory to prevent initial fragmentation (does not increase size()) + if (_mode.capacity() <= 1 || _modeData.capacity() <= 1) _modeCount = 1; // memory allocation failed only show Solid else setupEffectData(); } @@ -669,11 +693,15 @@ class WS2812FX { // 96 bytes _modeData.clear(); _segments.clear(); customPalettes.clear(); + if (useLedsArray && Segment::_globalLeds) free(Segment::_globalLeds); } static WS2812FX* getInstance(void) { return instance; } void +#ifdef WLED_DEBUG + printSize(), +#endif finalizeInit(), service(void), setMode(uint8_t segid, uint8_t m), @@ -683,8 +711,7 @@ class WS2812FX { // 96 bytes setBrightness(uint8_t b, bool direct = false), setRange(uint16_t i, uint16_t i2, uint32_t col), setTransitionMode(bool t), - calcGammaTable(float), - purgeSegments(void), + purgeSegments(bool force = false), setSegment(uint8_t n, uint16_t start, uint16_t stop, uint8_t grouping = 1, uint8_t spacing = 0, uint16_t offset = UINT16_MAX, uint16_t startY=0, uint16_t stopY=1), setMainSegmentId(uint8_t n), restartRuntime(), @@ -707,7 +734,6 @@ class WS2812FX { // 96 bytes inline void setShowCallback(show_callback cb) { _callback = cb; } inline void setTransition(uint16_t t) { _transitionDur = t; } inline void appendSegment(const Segment &seg = Segment()) { _segments.push_back(seg); } - inline void addUsedSegmentData(int16_t size) { _usedSegmentData += size; } bool gammaCorrectBri, @@ -716,7 +742,8 @@ class WS2812FX { // 96 bytes hasRGBWBus(void), hasCCTBus(void), // return true if the strip is being sent pixel updates - isUpdating(void); + isUpdating(void), + useLedsArray = false; inline bool isServicing(void) { return _isServicing; } inline bool hasWhiteChannel(void) {return _hasWhiteChannel;} @@ -730,9 +757,7 @@ class WS2812FX { // 96 bytes getActiveSegmentsNum(void), getFirstSelectedSegId(void), getLastActiveSegmentId(void), - setPixelSegment(uint8_t n), - gamma8(uint8_t), - gamma8_cal(uint8_t, float); + setPixelSegment(uint8_t n); inline uint8_t getBrightness(void) { return _brightness; } inline uint8_t getMaxSegments(void) { return MAX_NUM_SEGMENTS; } // returns maximum number of supported segments (fixed value) @@ -753,13 +778,11 @@ class WS2812FX { // 96 bytes inline uint16_t getMinShowDelay(void) { return MIN_SHOW_DELAY; } inline uint16_t getLengthTotal(void) { return _length; } inline uint16_t getTransition(void) { return _transitionDur; } - inline uint16_t getUsedSegmentData(void) { return _usedSegmentData; } uint32_t now, timebase, currentColor(uint32_t colorNew, uint8_t tNr), - gamma32(uint32_t), getPixelColor(uint16_t); inline uint32_t getLastShow(void) { return _lastShow; } @@ -771,10 +794,10 @@ class WS2812FX { // 96 bytes const char ** getModeDataSrc(void) { return &(_modeData[0]); } // vectors use arrays for underlying data - Segment& getSegment(uint8_t id); + Segment& getSegment(uint8_t id); inline Segment& getFirstSelectedSeg(void) { return _segments[getFirstSelectedSegId()]; } - inline Segment& getMainSegment(void) { return _segments[getMainSegmentId()]; } - inline Segment* getSegments(void) { return &(_segments[0]); } + inline Segment& getMainSegment(void) { return _segments[getMainSegmentId()]; } + inline Segment* getSegments(void) { return &(_segments[0]); } // 2D support (panels) bool @@ -793,11 +816,10 @@ class WS2812FX { // 96 bytes matrixHeight; typedef struct panel_bitfield_t { - unsigned char - bottomStart : 1, // starts at bottom? - rightStart : 1, // starts on right? - vertical : 1, // is vertical? - serpentine : 1; // is serpentine? + bool bottomStart : 1; // starts at bottom? + bool rightStart : 1; // starts on right? + bool vertical : 1; // is vertical? + bool serpentine : 1; // is serpentine? } Panel; Panel matrix, @@ -810,7 +832,7 @@ class WS2812FX { // 96 bytes // outsmart the compiler :) by correctly overloading inline void setPixelColorXY(int x, int y, byte r, byte g, byte b, byte w = 0) { setPixelColorXY(x, y, RGBW32(r,g,b,w)); } // automatically inline - inline void setPixelColorXY(int x, int y, CRGB c) { setPixelColorXY(x, y, c.red, c.green, c.blue); } + inline void setPixelColorXY(int x, int y, CRGB c) { setPixelColorXY(x, y, RGBW32(c.r,c.g,c.b,0)); } uint32_t getPixelColorXY(uint16_t, uint16_t); @@ -823,7 +845,6 @@ class WS2812FX { // 96 bytes // using public variables to reduce code size increase due to inline function getSegment() (with bounds checking) // and color transitions - uint8_t _bri_t; // opacity used for effect (includes transition) uint32_t _colors_t[3]; // color used for effect (includes transition) uint16_t _virtualSegmentLength; @@ -833,7 +854,6 @@ class WS2812FX { // 96 bytes private: uint16_t _length; uint8_t _brightness; - uint16_t _usedSegmentData; uint16_t _transitionDur; uint8_t _targetFps; diff --git a/wled00/FX_2Dfcn.cpp b/wled00/FX_2Dfcn.cpp index 63530080..af62706d 100644 --- a/wled00/FX_2Dfcn.cpp +++ b/wled00/FX_2Dfcn.cpp @@ -114,46 +114,46 @@ void IRAM_ATTR WS2812FX::setPixelColorXY(int x, int y, uint32_t col) #ifndef WLED_DISABLE_2D if (!isMatrix) return; // not a matrix set-up uint16_t index = y * matrixWidth + x; +#else + uint16_t index = x; +#endif if (index >= _length) return; if (index < customMappingSize) index = customMappingTable[index]; busses.setPixelColor(index, col); -#endif } // returns RGBW values of pixel uint32_t WS2812FX::getPixelColorXY(uint16_t x, uint16_t y) { #ifndef WLED_DISABLE_2D uint16_t index = (y * matrixWidth + x); +#else + uint16_t index = x; +#endif if (index >= _length) return 0; if (index < customMappingSize) index = customMappingTable[index]; return busses.getPixelColor(index); -#else - return 0; -#endif } /////////////////////////////////////////////////////////// // Segment:: routines /////////////////////////////////////////////////////////// +#ifndef WLED_DISABLE_2D + // XY(x,y) - gets pixel index within current segment (often used to reference leds[] array element) uint16_t IRAM_ATTR Segment::XY(uint16_t x, uint16_t y) { -#ifndef WLED_DISABLE_2D uint16_t width = virtualWidth(); // segment width in logical pixels uint16_t height = virtualHeight(); // segment height in logical pixels return (x%width) + (y%height) * width; -#else - return 0; -#endif } void IRAM_ATTR Segment::setPixelColorXY(int x, int y, uint32_t col) { -#ifndef WLED_DISABLE_2D if (!strip.isMatrix) return; // not a matrix set-up - uint8_t _bri_t = strip._bri_t; - //uint8_t _bri_t = currentBri(getOption(SEG_OPTION_ON) ? opacity : 0); + if (leds) leds[XY(x,y)] = col; + + uint8_t _bri_t = currentBri(on ? opacity : 0); if (_bri_t < 255) { byte r = scale8(R(col), _bri_t); byte g = scale8(G(col), _bri_t); @@ -162,9 +162,9 @@ void IRAM_ATTR Segment::setPixelColorXY(int x, int y, uint32_t col) col = RGBW32(r, g, b, w); } - if (getOption(SEG_OPTION_REVERSED) ) x = virtualWidth() - x - 1; - if (getOption(SEG_OPTION_REVERSED_Y)) y = virtualHeight() - y - 1; - if (getOption(SEG_OPTION_TRANSPOSED)) { uint16_t t = x; x = y; y = t; } // swap X & Y if segment transposed + if (reverse ) x = virtualWidth() - x - 1; + if (reverse_y) y = virtualHeight() - y - 1; + if (transpose) { uint16_t t = x; x = y; y = t; } // swap X & Y if segment transposed x *= groupLength(); // expand to physical pixels y *= groupLength(); // expand to physical pixels @@ -177,26 +177,24 @@ void IRAM_ATTR Segment::setPixelColorXY(int x, int y, uint32_t col) strip.setPixelColorXY(start + xX, startY + yY, col); - if (getOption(SEG_OPTION_MIRROR)) { //set the corresponding horizontally mirrored pixel - if (getOption(SEG_OPTION_TRANSPOSED)) strip.setPixelColorXY(start + xX, startY + height() - yY - 1, col); - else strip.setPixelColorXY(start + width() - xX - 1, startY + yY, col); + if (mirror) { //set the corresponding horizontally mirrored pixel + if (transpose) strip.setPixelColorXY(start + xX, startY + height() - yY - 1, col); + else strip.setPixelColorXY(start + width() - xX - 1, startY + yY, col); } - if (getOption(SEG_OPTION_MIRROR_Y)) { //set the corresponding vertically mirrored pixel - if (getOption(SEG_OPTION_TRANSPOSED)) strip.setPixelColorXY(start + width() - xX - 1, startY + yY, col); - else strip.setPixelColorXY(start + xX, startY + height() - yY - 1, col); + if (mirror_y) { //set the corresponding vertically mirrored pixel + if (transpose) strip.setPixelColorXY(start + width() - xX - 1, startY + yY, col); + else strip.setPixelColorXY(start + xX, startY + height() - yY - 1, col); } - if (getOption(SEG_OPTION_MIRROR_Y) && getOption(SEG_OPTION_MIRROR)) { //set the corresponding vertically AND horizontally mirrored pixel + if (mirror_y && mirror) { //set the corresponding vertically AND horizontally mirrored pixel strip.setPixelColorXY(width() - xX - 1, height() - yY - 1, col); } } } -#endif } // anti-aliased version of setPixelColorXY() void Segment::setPixelColorXY(float x, float y, uint32_t col, bool aa) { -#ifndef WLED_DISABLE_2D if (!strip.isMatrix) return; // not a matrix set-up if (x<0.0f || x>1.0f || y<0.0f || y>1.0f) return; // not normalized @@ -236,41 +234,38 @@ void Segment::setPixelColorXY(float x, float y, uint32_t col, bool aa) } else { setPixelColorXY(uint16_t(roundf(fX)), uint16_t(roundf(fY)), col); } -#endif } // returns RGBW values of pixel uint32_t Segment::getPixelColorXY(uint16_t x, uint16_t y) { -#ifndef WLED_DISABLE_2D - if (getOption(SEG_OPTION_REVERSED) ) x = virtualWidth() - x - 1; - if (getOption(SEG_OPTION_REVERSED_Y)) y = virtualHeight() - y - 1; - if (getOption(SEG_OPTION_TRANSPOSED)) { uint16_t t = x; x = y; y = t; } // swap X & Y if segment transposed + int i = XY(x,y); + if (leds) return RGBW32(leds[i].r, leds[i].g, leds[i].b, 0); + if (reverse ) x = virtualWidth() - x - 1; + if (reverse_y) y = virtualHeight() - y - 1; + if (transpose) { uint16_t t = x; x = y; y = t; } // swap X & Y if segment transposed x *= groupLength(); // expand to physical pixels y *= groupLength(); // expand to physical pixels if (x >= width() || y >= height()) return 0; return strip.getPixelColorXY(start + x, startY + y); -#else - return 0; -#endif } // Blends the specified color with the existing pixel color. void Segment::blendPixelColorXY(uint16_t x, uint16_t y, uint32_t color, uint8_t blend) { -#ifndef WLED_DISABLE_2D setPixelColorXY(x, y, color_blend(getPixelColorXY(x,y), color, blend)); -#endif } // Adds the specified color with the existing pixel color perserving color balance. -void Segment::addPixelColorXY(uint16_t x, uint16_t y, uint32_t color) { -#ifndef WLED_DISABLE_2D +void Segment::addPixelColorXY(int x, int y, uint32_t color) { setPixelColorXY(x, y, color_add(getPixelColorXY(x,y), color)); -#endif +} + +void Segment::fadePixelColorXY(uint16_t x, uint16_t y, uint8_t fade) { + CRGB pix = CRGB(getPixelColorXY(x,y)).nscale8_video(fade); + setPixelColor(x, y, pix); } // blurRow: perform a blur on a row of a rectangular matrix -void Segment::blurRow(uint16_t row, fract8 blur_amount, CRGB* leds) { -#ifndef WLED_DISABLE_2D +void Segment::blurRow(uint16_t row, fract8 blur_amount) { const uint16_t cols = virtualWidth(); const uint16_t rows = virtualHeight(); @@ -280,26 +275,22 @@ void Segment::blurRow(uint16_t row, fract8 blur_amount, CRGB* leds) { uint8_t seep = blur_amount >> 1; CRGB carryover = CRGB::Black; for (uint16_t x = 0; x < cols; x++) { - CRGB cur = leds ? leds[XY(x,row)] : CRGB(getPixelColorXY(x, row)); + CRGB cur = getPixelColorXY(x, row); CRGB part = cur; part.nscale8(seep); cur.nscale8(keep); cur += carryover; if (x) { - CRGB prev = (leds ? leds[XY(x-1,row)] : CRGB(getPixelColorXY(x-1, row))) + part; - if (leds) leds[XY(x-1,row)] = prev; - else setPixelColorXY(x-1, row, prev); + CRGB prev = CRGB(getPixelColorXY(x-1, row)) + part; + setPixelColorXY(x-1, row, prev); } - if (leds) leds[XY(x,row)] = cur; - else setPixelColorXY(x, row, cur); + setPixelColorXY(x, row, cur); carryover = part; } -#endif } // blurCol: perform a blur on a column of a rectangular matrix -void Segment::blurCol(uint16_t col, fract8 blur_amount, CRGB* leds) { -#ifndef WLED_DISABLE_2D +void Segment::blurCol(uint16_t col, fract8 blur_amount) { const uint16_t cols = virtualWidth(); const uint16_t rows = virtualHeight(); @@ -309,47 +300,22 @@ void Segment::blurCol(uint16_t col, fract8 blur_amount, CRGB* leds) { uint8_t seep = blur_amount >> 1; CRGB carryover = CRGB::Black; for (uint16_t i = 0; i < rows; i++) { - CRGB cur = leds ? leds[XY(col,i)] : CRGB(getPixelColorXY(col, i)); + CRGB cur = getPixelColorXY(col, i); CRGB part = cur; part.nscale8(seep); cur.nscale8(keep); cur += carryover; if (i) { - CRGB prev = (leds ? leds[XY(col,i-1)] : CRGB(getPixelColorXY(col, i-1))) + part; - if (leds) leds[XY(col,i-1)] = prev; - else setPixelColorXY(col, i-1, prev); + CRGB prev = CRGB(getPixelColorXY(col, i-1)) + part; + setPixelColorXY(col, i-1, prev); } - if (leds) leds[XY(col,i)] = cur; - else setPixelColorXY(col, i, cur); + setPixelColorXY(col, i, cur); carryover = part; } -#endif -} - -// blur1d: one-dimensional blur filter. Spreads light to 2 line neighbors. -// blur2d: two-dimensional blur filter. Spreads light to 8 XY neighbors. -// -// 0 = no spread at all -// 64 = moderate spreading -// 172 = maximum smooth, even spreading -// -// 173..255 = wider spreading, but increasing flicker -// -// Total light is NOT entirely conserved, so many repeated -// calls to 'blur' will also result in the light fading, -// eventually all the way to black; this is by design so that -// it can be used to (slowly) clear the LEDs to black. - -void Segment::blur1d(CRGB* leds, fract8 blur_amount) { -#ifndef WLED_DISABLE_2D - const uint16_t rows = virtualHeight(); - for (uint16_t y = 0; y < rows; y++) blurRow(y, blur_amount, leds); -#endif } // 1D Box blur (with added weight - blur_amount: [0=no blur, 255=max blur]) -void Segment::blur1d(uint16_t i, bool vertical, fract8 blur_amount, CRGB* leds) { -#ifndef WLED_DISABLE_2D +void Segment::box_blur(uint16_t i, bool vertical, fract8 blur_amount) { const uint16_t cols = virtualWidth(); const uint16_t rows = virtualHeight(); const uint16_t dim1 = vertical ? rows : cols; @@ -366,9 +332,9 @@ void Segment::blur1d(uint16_t i, bool vertical, fract8 blur_amount, CRGB* leds) uint16_t yp = vertical ? y-1 : y; uint16_t xn = vertical ? x : x+1; uint16_t yn = vertical ? y+1 : y; - CRGB curr = leds ? leds[XY(x,y)] : CRGB(getPixelColorXY(x,y)); - CRGB prev = (xp<0 || yp<0) ? CRGB::Black : (leds ? leds[XY(xp,yp)] : CRGB(getPixelColorXY(xp,yp))); - CRGB next = ((vertical && yn>=dim1) || (!vertical && xn>=dim1)) ? CRGB::Black : (leds ? leds[XY(xn,yn)] : CRGB(getPixelColorXY(xn,yn))); + CRGB curr = getPixelColorXY(x,y); + CRGB prev = (xp<0 || yp<0) ? CRGB::Black : getPixelColorXY(xp,yp); + CRGB next = ((vertical && yn>=dim1) || (!vertical && xn>=dim1)) ? CRGB::Black : getPixelColorXY(xn,yn); uint16_t r, g, b; r = (curr.r*keep + (prev.r + next.r)*seep) / 3; g = (curr.g*keep + (prev.g + next.g)*seep) / 3; @@ -378,96 +344,82 @@ void Segment::blur1d(uint16_t i, bool vertical, fract8 blur_amount, CRGB* leds) for (uint16_t j = 0; j < dim1; j++) { uint16_t x = vertical ? i : j; uint16_t y = vertical ? j : i; - if (leds) leds[XY(x,y)] = tmp[j]; - else setPixelColorXY(x, y, tmp[j]); + setPixelColorXY(x, y, tmp[j]); } -#endif } -void Segment::blur2d(CRGB* leds, fract8 blur_amount) { -#ifndef WLED_DISABLE_2D - const uint16_t cols = virtualWidth(); +// blur1d: one-dimensional blur filter. Spreads light to 2 line neighbors. +// blur2d: two-dimensional blur filter. Spreads light to 8 XY neighbors. +// +// 0 = no spread at all +// 64 = moderate spreading +// 172 = maximum smooth, even spreading +// +// 173..255 = wider spreading, but increasing flicker +// +// Total light is NOT entirely conserved, so many repeated +// calls to 'blur' will also result in the light fading, +// eventually all the way to black; this is by design so that +// it can be used to (slowly) clear the LEDs to black. + +void Segment::blur1d(fract8 blur_amount) { const uint16_t rows = virtualHeight(); - for (uint16_t i = 0; i < rows; i++) blurRow(i, blur_amount, leds); // blur all rows - for (uint16_t k = 0; k < cols; k++) blurCol(k, blur_amount, leds); // blur all columns -#endif + for (uint16_t y = 0; y < rows; y++) blurRow(y, blur_amount); } -void Segment::moveX(CRGB *leds, int8_t delta) { -#ifndef WLED_DISABLE_2D +void Segment::moveX(int8_t delta) { const uint16_t cols = virtualWidth(); const uint16_t rows = virtualHeight(); if (!delta) return; if (delta > 0) { for (uint8_t y = 0; y < rows; y++) for (uint8_t x = 0; x < cols-1; x++) { if (x + delta >= cols) break; - if (leds) leds[XY(x, y)] = leds[XY((x + delta)%cols, y)]; - else setPixelColorXY(x, y, getPixelColorXY((x + delta)%cols, y)); + setPixelColorXY(x, y, getPixelColorXY((x + delta)%cols, y)); } } else { for (uint8_t y = 0; y < rows; y++) for (int16_t x = cols-1; x >= 0; x--) { if (x + delta < 0) break; - if (leds) leds[XY(x, y)] = leds[XY(x + delta, y)]; - else setPixelColorXY(x, y, getPixelColorXY(x + delta, y)); + setPixelColorXY(x, y, getPixelColorXY(x + delta, y)); } } -#endif } -void Segment::moveY(CRGB *leds, int8_t delta) { -#ifndef WLED_DISABLE_2D +void Segment::moveY(int8_t delta) { const uint16_t cols = virtualWidth(); const uint16_t rows = virtualHeight(); if (!delta) return; if (delta > 0) { for (uint8_t x = 0; x < cols; x++) for (uint8_t y = 0; y < rows-1; y++) { if (y + delta >= rows) break; - if (leds) leds[XY(x, y)] = leds[XY(x, (y + delta))]; - else setPixelColorXY(x, y, getPixelColorXY(x, (y + delta))); + setPixelColorXY(x, y, getPixelColorXY(x, (y + delta))); } } else { for (uint8_t x = 0; x < cols; x++) for (int16_t y = rows-1; y >= 0; y--) { if (y + delta < 0) break; - if (leds) leds[XY(x, y)] = leds[XY(x, y + delta)]; - else setPixelColorXY(x, y, getPixelColorXY(x, y + delta)); + setPixelColorXY(x, y, getPixelColorXY(x, y + delta)); } } -#endif } // move() - move all pixels in desired direction delta number of pixels // @param dir direction: 0=left, 1=left-up, 2=up, 3=right-up, 4=right, 5=right-down, 6=down, 7=left-down // @param delta number of pixels to move -void Segment::move(uint8_t dir, uint8_t delta, CRGB *leds) { -#ifndef WLED_DISABLE_2D +void Segment::move(uint8_t dir, uint8_t delta) { if (delta==0) return; switch (dir) { - case 0: moveX(leds, delta); break; - case 1: moveX(leds, delta); moveY(leds, delta); break; - case 2: moveY(leds, delta); break; - case 3: moveX(leds,-delta); moveY(leds, delta); break; - case 4: moveX(leds,-delta); break; - case 5: moveX(leds,-delta); moveY(leds,-delta); break; - case 6: moveY(leds,-delta); break; - case 7: moveX(leds, delta); moveY(leds,-delta); break; + case 0: moveX( delta); break; + case 1: moveX( delta); moveY( delta); break; + case 2: moveY( delta); break; + case 3: moveX(-delta); moveY( delta); break; + case 4: moveX(-delta); break; + case 5: moveX(-delta); moveY(-delta); break; + case 6: moveY(-delta); break; + case 7: moveX( delta); moveY(-delta); break; } -#endif -} - -void Segment::fill_solid(CRGB* leds, CRGB color) { -#ifndef WLED_DISABLE_2D - const uint16_t cols = virtualWidth(); - const uint16_t rows = virtualHeight(); - for(uint16_t y = 0; y < rows; y++) for (uint16_t x = 0; x < cols; x++) { - if (leds) leds[XY(x,y)] = color; - else setPixelColorXY(x, y, color); - } -#endif } // by stepko, taken from https://editor.soulmatelights.com/gallery/573-blobs -void Segment::fill_circle(CRGB* leds, uint16_t cx, uint16_t cy, uint8_t radius, CRGB col) { -#ifndef WLED_DISABLE_2D +void Segment::fill_circle(uint16_t cx, uint16_t cy, uint8_t radius, CRGB col) { const uint16_t cols = virtualWidth(); const uint16_t rows = virtualHeight(); for (int16_t y = -radius; y <= radius; y++) { @@ -475,40 +427,22 @@ void Segment::fill_circle(CRGB* leds, uint16_t cx, uint16_t cy, uint8_t radius, if (x * x + y * y <= radius * radius && int16_t(cx)+x>=0 && int16_t(cy)+y>=0 && int16_t(cx)+x= cols || x1 >= cols || y0 >= rows || y1 >= rows) return; @@ -516,6212 +450,64 @@ void Segment::drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, CRGB const int16_t dy = abs(y1-y0), sy = y0dy ? dx : -dy)/2, e2; for (;;) { - if (leds == nullptr) setPixelColorXY(x0,y0,c); - else leds[XY(x0,y0)] = c; + setPixelColorXY(x0,y0,c); if (x0==x1 && y0==y1) break; e2 = err; if (e2 >-dx) { err -= dy; x0 += sx; } if (e2 < dy) { err += dx; y0 += sy; } } -#endif } -#ifndef WLED_DISABLE_2D -// font curtesy of https://github.com/idispatch/raster-fonts -static const unsigned char console_font_6x8[] PROGMEM = { - - /* - * code=0, hex=0x00, ascii="^@" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=1, hex=0x01, ascii="^A" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x6C, /* 011011 */ - 0x44, /* 010001 */ - 0x54, /* 010101 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=2, hex=0x02, ascii="^B" - */ - 0x38, /* 001110 */ - 0x7C, /* 011111 */ - 0x54, /* 010101 */ - 0x7C, /* 011111 */ - 0x44, /* 010001 */ - 0x7C, /* 011111 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=3, hex=0x03, ascii="^C" - */ - 0x00, /* 000000 */ - 0x28, /* 001010 */ - 0x7C, /* 011111 */ - 0x7C, /* 011111 */ - 0x7C, /* 011111 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=4, hex=0x04, ascii="^D" - */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x7C, /* 011111 */ - 0x7C, /* 011111 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=5, hex=0x05, ascii="^E" - */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x7C, /* 011111 */ - 0x7C, /* 011111 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=6, hex=0x06, ascii="^F" - */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x7C, /* 011111 */ - 0x7C, /* 011111 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=7, hex=0x07, ascii="^G" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=8, hex=0x08, ascii="^H" - */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xCC, /* 110011 */ - 0xCC, /* 110011 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - - /* - * code=9, hex=0x09, ascii="^I" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=10, hex=0x0A, ascii="^J" - */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0x84, /* 100001 */ - 0xB4, /* 101101 */ - 0xB4, /* 101101 */ - 0x84, /* 100001 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - - /* - * code=11, hex=0x0B, ascii="^K" - */ - 0x00, /* 000000 */ - 0x1C, /* 000111 */ - 0x0C, /* 000011 */ - 0x34, /* 001101 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=12, hex=0x0C, ascii="^L" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=13, hex=0x0D, ascii="^M" - */ - 0x10, /* 000100 */ - 0x18, /* 000110 */ - 0x14, /* 000101 */ - 0x10, /* 000100 */ - 0x30, /* 001100 */ - 0x70, /* 011100 */ - 0x60, /* 011000 */ - 0x00, /* 000000 */ - - /* - * code=14, hex=0x0E, ascii="^N" - */ - 0x0C, /* 000011 */ - 0x34, /* 001101 */ - 0x2C, /* 001011 */ - 0x34, /* 001101 */ - 0x2C, /* 001011 */ - 0x6C, /* 011011 */ - 0x60, /* 011000 */ - 0x00, /* 000000 */ - - /* - * code=15, hex=0x0F, ascii="^O" - */ - 0x00, /* 000000 */ - 0x54, /* 010101 */ - 0x38, /* 001110 */ - 0x6C, /* 011011 */ - 0x38, /* 001110 */ - 0x54, /* 010101 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=16, hex=0x10, ascii="^P" - */ - 0x20, /* 001000 */ - 0x30, /* 001100 */ - 0x38, /* 001110 */ - 0x3C, /* 001111 */ - 0x38, /* 001110 */ - 0x30, /* 001100 */ - 0x20, /* 001000 */ - 0x00, /* 000000 */ - - /* - * code=17, hex=0x11, ascii="^Q" - */ - 0x08, /* 000010 */ - 0x18, /* 000110 */ - 0x38, /* 001110 */ - 0x78, /* 011110 */ - 0x38, /* 001110 */ - 0x18, /* 000110 */ - 0x08, /* 000010 */ - 0x00, /* 000000 */ - - /* - * code=18, hex=0x12, ascii="^R" - */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x7C, /* 011111 */ - 0x10, /* 000100 */ - 0x7C, /* 011111 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=19, hex=0x13, ascii="^S" - */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - - /* - * code=20, hex=0x14, ascii="^T" - */ - 0x3C, /* 001111 */ - 0x54, /* 010101 */ - 0x54, /* 010101 */ - 0x34, /* 001101 */ - 0x14, /* 000101 */ - 0x14, /* 000101 */ - 0x14, /* 000101 */ - 0x00, /* 000000 */ - - /* - * code=21, hex=0x15, ascii="^U" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x30, /* 001100 */ - 0x28, /* 001010 */ - 0x18, /* 000110 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=22, hex=0x16, ascii="^V" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - - /* - * code=23, hex=0x17, ascii="^W" - */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x7C, /* 011111 */ - 0x10, /* 000100 */ - 0x7C, /* 011111 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - - /* - * code=24, hex=0x18, ascii="^X" - */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x7C, /* 011111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=25, hex=0x19, ascii="^Y" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x7C, /* 011111 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=26, hex=0x1A, ascii="^Z" - */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x18, /* 000110 */ - 0x7C, /* 011111 */ - 0x18, /* 000110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=27, hex=0x1B, ascii="^[" - */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x30, /* 001100 */ - 0x7C, /* 011111 */ - 0x30, /* 001100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=28, hex=0x1C, ascii="^\" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - - /* - * code=29, hex=0x1D, ascii="^]" - */ - 0x00, /* 000000 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x7C, /* 011111 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=30, hex=0x1E, ascii="^^" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x38, /* 001110 */ - 0x7C, /* 011111 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=31, hex=0x1F, ascii="^_" - */ - 0x7C, /* 011111 */ - 0x7C, /* 011111 */ - 0x38, /* 001110 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=32, hex=0x20, ascii=" " - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=33, hex=0x21, ascii="!" - */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=34, hex=0x22, ascii=""" - */ - 0x6C, /* 011011 */ - 0x6C, /* 011011 */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=35, hex=0x23, ascii="#" - */ - 0x00, /* 000000 */ - 0x28, /* 001010 */ - 0x7C, /* 011111 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x7C, /* 011111 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - - /* - * code=36, hex=0x24, ascii="$" - */ - 0x20, /* 001000 */ - 0x38, /* 001110 */ - 0x40, /* 010000 */ - 0x30, /* 001100 */ - 0x08, /* 000010 */ - 0x70, /* 011100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=37, hex=0x25, ascii="%" - */ - 0x64, /* 011001 */ - 0x64, /* 011001 */ - 0x08, /* 000010 */ - 0x10, /* 000100 */ - 0x20, /* 001000 */ - 0x4C, /* 010011 */ - 0x4C, /* 010011 */ - 0x00, /* 000000 */ - - /* - * code=38, hex=0x26, ascii="&" - */ - 0x20, /* 001000 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x20, /* 001000 */ - 0x54, /* 010101 */ - 0x48, /* 010010 */ - 0x34, /* 001101 */ - 0x00, /* 000000 */ - - /* - * code=39, hex=0x27, ascii="'" - */ - 0x30, /* 001100 */ - 0x30, /* 001100 */ - 0x20, /* 001000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=40, hex=0x28, ascii="(" - */ - 0x10, /* 000100 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=41, hex=0x29, ascii=")" - */ - 0x20, /* 001000 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x20, /* 001000 */ - 0x00, /* 000000 */ - - /* - * code=42, hex=0x2A, ascii="*" - */ - 0x00, /* 000000 */ - 0x28, /* 001010 */ - 0x38, /* 001110 */ - 0x7C, /* 011111 */ - 0x38, /* 001110 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=43, hex=0x2B, ascii="+" - */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x7C, /* 011111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=44, hex=0x2C, ascii="," - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x30, /* 001100 */ - 0x20, /* 001000 */ - - /* - * code=45, hex=0x2D, ascii="-" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=46, hex=0x2E, ascii="." - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=47, hex=0x2F, ascii="/" - */ - 0x00, /* 000000 */ - 0x04, /* 000001 */ - 0x08, /* 000010 */ - 0x10, /* 000100 */ - 0x20, /* 001000 */ - 0x40, /* 010000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=48, hex=0x30, ascii="0" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x4C, /* 010011 */ - 0x54, /* 010101 */ - 0x64, /* 011001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=49, hex=0x31, ascii="1" - */ - 0x10, /* 000100 */ - 0x30, /* 001100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=50, hex=0x32, ascii="2" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x04, /* 000001 */ - 0x18, /* 000110 */ - 0x20, /* 001000 */ - 0x40, /* 010000 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - - /* - * code=51, hex=0x33, ascii="3" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x04, /* 000001 */ - 0x38, /* 001110 */ - 0x04, /* 000001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=52, hex=0x34, ascii="4" - */ - 0x08, /* 000010 */ - 0x18, /* 000110 */ - 0x28, /* 001010 */ - 0x48, /* 010010 */ - 0x7C, /* 011111 */ - 0x08, /* 000010 */ - 0x08, /* 000010 */ - 0x00, /* 000000 */ - - /* - * code=53, hex=0x35, ascii="5" - */ - 0x7C, /* 011111 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x78, /* 011110 */ - 0x04, /* 000001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=54, hex=0x36, ascii="6" - */ - 0x18, /* 000110 */ - 0x20, /* 001000 */ - 0x40, /* 010000 */ - 0x78, /* 011110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=55, hex=0x37, ascii="7" - */ - 0x7C, /* 011111 */ - 0x04, /* 000001 */ - 0x08, /* 000010 */ - 0x10, /* 000100 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x00, /* 000000 */ - - /* - * code=56, hex=0x38, ascii="8" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=57, hex=0x39, ascii="9" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x04, /* 000001 */ - 0x08, /* 000010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=58, hex=0x3A, ascii=":" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=59, hex=0x3B, ascii=";" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x30, /* 001100 */ - 0x20, /* 001000 */ - - /* - * code=60, hex=0x3C, ascii="<" - */ - 0x08, /* 000010 */ - 0x10, /* 000100 */ - 0x20, /* 001000 */ - 0x40, /* 010000 */ - 0x20, /* 001000 */ - 0x10, /* 000100 */ - 0x08, /* 000010 */ - 0x00, /* 000000 */ - - /* - * code=61, hex=0x3D, ascii="=" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=62, hex=0x3E, ascii=">" - */ - 0x20, /* 001000 */ - 0x10, /* 000100 */ - 0x08, /* 000010 */ - 0x04, /* 000001 */ - 0x08, /* 000010 */ - 0x10, /* 000100 */ - 0x20, /* 001000 */ - 0x00, /* 000000 */ - - /* - * code=63, hex=0x3F, ascii="?" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x04, /* 000001 */ - 0x18, /* 000110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=64, hex=0x40, ascii="@" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x5C, /* 010111 */ - 0x54, /* 010101 */ - 0x5C, /* 010111 */ - 0x40, /* 010000 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=65, hex=0x41, ascii="A" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x7C, /* 011111 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - - /* - * code=66, hex=0x42, ascii="B" - */ - 0x78, /* 011110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - - /* - * code=67, hex=0x43, ascii="C" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=68, hex=0x44, ascii="D" - */ - 0x78, /* 011110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - - /* - * code=69, hex=0x45, ascii="E" - */ - 0x7C, /* 011111 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - - /* - * code=70, hex=0x46, ascii="F" - */ - 0x7C, /* 011111 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x00, /* 000000 */ - - /* - * code=71, hex=0x47, ascii="G" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x40, /* 010000 */ - 0x5C, /* 010111 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - - /* - * code=72, hex=0x48, ascii="H" - */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x7C, /* 011111 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - - /* - * code=73, hex=0x49, ascii="I" - */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=74, hex=0x4A, ascii="J" - */ - 0x04, /* 000001 */ - 0x04, /* 000001 */ - 0x04, /* 000001 */ - 0x04, /* 000001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=75, hex=0x4B, ascii="K" - */ - 0x44, /* 010001 */ - 0x48, /* 010010 */ - 0x50, /* 010100 */ - 0x60, /* 011000 */ - 0x50, /* 010100 */ - 0x48, /* 010010 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - - /* - * code=76, hex=0x4C, ascii="L" - */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - - /* - * code=77, hex=0x4D, ascii="M" - */ - 0x44, /* 010001 */ - 0x6C, /* 011011 */ - 0x54, /* 010101 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - - /* - * code=78, hex=0x4E, ascii="N" - */ - 0x44, /* 010001 */ - 0x64, /* 011001 */ - 0x54, /* 010101 */ - 0x4C, /* 010011 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - - /* - * code=79, hex=0x4F, ascii="O" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=80, hex=0x50, ascii="P" - */ - 0x78, /* 011110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x00, /* 000000 */ - - /* - * code=81, hex=0x51, ascii="Q" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x54, /* 010101 */ - 0x48, /* 010010 */ - 0x34, /* 001101 */ - 0x00, /* 000000 */ - - /* - * code=82, hex=0x52, ascii="R" - */ - 0x78, /* 011110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x48, /* 010010 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - - /* - * code=83, hex=0x53, ascii="S" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x40, /* 010000 */ - 0x38, /* 001110 */ - 0x04, /* 000001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=84, hex=0x54, ascii="T" - */ - 0x7C, /* 011111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=85, hex=0x55, ascii="U" - */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=86, hex=0x56, ascii="V" - */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x28, /* 001010 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=87, hex=0x57, ascii="W" - */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x54, /* 010101 */ - 0x54, /* 010101 */ - 0x54, /* 010101 */ - 0x54, /* 010101 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - - /* - * code=88, hex=0x58, ascii="X" - */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x28, /* 001010 */ - 0x10, /* 000100 */ - 0x28, /* 001010 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - - /* - * code=89, hex=0x59, ascii="Y" - */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x28, /* 001010 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=90, hex=0x5A, ascii="Z" - */ - 0x78, /* 011110 */ - 0x08, /* 000010 */ - 0x10, /* 000100 */ - 0x20, /* 001000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - - /* - * code=91, hex=0x5B, ascii="[" - */ - 0x38, /* 001110 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=92, hex=0x5C, ascii="\" - */ - 0x00, /* 000000 */ - 0x40, /* 010000 */ - 0x20, /* 001000 */ - 0x10, /* 000100 */ - 0x08, /* 000010 */ - 0x04, /* 000001 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=93, hex=0x5D, ascii="]" - */ - 0x38, /* 001110 */ - 0x08, /* 000010 */ - 0x08, /* 000010 */ - 0x08, /* 000010 */ - 0x08, /* 000010 */ - 0x08, /* 000010 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=94, hex=0x5E, ascii="^" - */ - 0x10, /* 000100 */ - 0x28, /* 001010 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=95, hex=0x5F, ascii="_" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - - /* - * code=96, hex=0x60, ascii="`" - */ - 0x30, /* 001100 */ - 0x30, /* 001100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=97, hex=0x61, ascii="a" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x04, /* 000001 */ - 0x3C, /* 001111 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - - /* - * code=98, hex=0x62, ascii="b" - */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x78, /* 011110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - - /* - * code=99, hex=0x63, ascii="c" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x40, /* 010000 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=100, hex=0x64, ascii="d" - */ - 0x04, /* 000001 */ - 0x04, /* 000001 */ - 0x3C, /* 001111 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - - /* - * code=101, hex=0x65, ascii="e" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=102, hex=0x66, ascii="f" - */ - 0x18, /* 000110 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x78, /* 011110 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x00, /* 000000 */ - - /* - * code=103, hex=0x67, ascii="g" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x3C, /* 001111 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x04, /* 000001 */ - 0x38, /* 001110 */ - - /* - * code=104, hex=0x68, ascii="h" - */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x70, /* 011100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - - /* - * code=105, hex=0x69, ascii="i" - */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - - /* - * code=106, hex=0x6A, ascii="j" - */ - 0x08, /* 000010 */ - 0x00, /* 000000 */ - 0x18, /* 000110 */ - 0x08, /* 000010 */ - 0x08, /* 000010 */ - 0x08, /* 000010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - - /* - * code=107, hex=0x6B, ascii="k" - */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x48, /* 010010 */ - 0x50, /* 010100 */ - 0x60, /* 011000 */ - 0x50, /* 010100 */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - - /* - * code=108, hex=0x6C, ascii="l" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - - /* - * code=109, hex=0x6D, ascii="m" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x68, /* 011010 */ - 0x54, /* 010101 */ - 0x54, /* 010101 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - - /* - * code=110, hex=0x6E, ascii="n" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x70, /* 011100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - - /* - * code=111, hex=0x6F, ascii="o" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=112, hex=0x70, ascii="p" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - - /* - * code=113, hex=0x71, ascii="q" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x3C, /* 001111 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x04, /* 000001 */ - - /* - * code=114, hex=0x72, ascii="r" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x58, /* 010110 */ - 0x24, /* 001001 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x70, /* 011100 */ - 0x00, /* 000000 */ - - /* - * code=115, hex=0x73, ascii="s" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x40, /* 010000 */ - 0x38, /* 001110 */ - 0x04, /* 000001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=116, hex=0x74, ascii="t" - */ - 0x00, /* 000000 */ - 0x20, /* 001000 */ - 0x78, /* 011110 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x28, /* 001010 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=117, hex=0x75, ascii="u" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x58, /* 010110 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - - /* - * code=118, hex=0x76, ascii="v" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x28, /* 001010 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=119, hex=0x77, ascii="w" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x54, /* 010101 */ - 0x7C, /* 011111 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - - /* - * code=120, hex=0x78, ascii="x" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - - /* - * code=121, hex=0x79, ascii="y" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x60, /* 011000 */ - - /* - * code=122, hex=0x7A, ascii="z" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x08, /* 000010 */ - 0x30, /* 001100 */ - 0x40, /* 010000 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - - /* - * code=123, hex=0x7B, ascii="{" - */ - 0x18, /* 000110 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x60, /* 011000 */ - 0x20, /* 001000 */ - 0x20, /* 001000 */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - - /* - * code=124, hex=0x7C, ascii="|" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=125, hex=0x7D, ascii="}" - */ - 0x30, /* 001100 */ - 0x08, /* 000010 */ - 0x08, /* 000010 */ - 0x0C, /* 000011 */ - 0x08, /* 000010 */ - 0x08, /* 000010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=126, hex=0x7E, ascii="~" - */ - 0x28, /* 001010 */ - 0x50, /* 010100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=127, hex=0x7F, ascii="^?" - */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x6C, /* 011011 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=128, hex=0x80, ascii="!^@" - */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x30, /* 001100 */ - - /* - * code=129, hex=0x81, ascii="!^A" - */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x58, /* 010110 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - - /* - * code=130, hex=0x82, ascii="!^B" - */ - 0x0C, /* 000011 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=131, hex=0x83, ascii="!^C" - */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x04, /* 000001 */ - 0x3C, /* 001111 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - - /* - * code=132, hex=0x84, ascii="!^D" - */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x04, /* 000001 */ - 0x3C, /* 001111 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - - /* - * code=133, hex=0x85, ascii="!^E" - */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x04, /* 000001 */ - 0x3C, /* 001111 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - - /* - * code=134, hex=0x86, ascii="!^F" - */ - 0x38, /* 001110 */ - 0x28, /* 001010 */ - 0x38, /* 001110 */ - 0x04, /* 000001 */ - 0x3C, /* 001111 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - - /* - * code=135, hex=0x87, ascii="!^G" - */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x40, /* 010000 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x30, /* 001100 */ - - /* - * code=136, hex=0x88, ascii="!^H" - */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=137, hex=0x89, ascii="!^I" - */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=138, hex=0x8A, ascii="!^J" - */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=139, hex=0x8B, ascii="!^K" - */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - - /* - * code=140, hex=0x8C, ascii="!^L" - */ - 0x10, /* 000100 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - - /* - * code=141, hex=0x8D, ascii="!^M" - */ - 0x20, /* 001000 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - - /* - * code=142, hex=0x8E, ascii="!^N" - */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x28, /* 001010 */ - 0x44, /* 010001 */ - 0x7C, /* 011111 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - - /* - * code=143, hex=0x8F, ascii="!^O" - */ - 0x38, /* 001110 */ - 0x28, /* 001010 */ - 0x38, /* 001110 */ - 0x6C, /* 011011 */ - 0x44, /* 010001 */ - 0x7C, /* 011111 */ - 0x44, /* 010001 */ - 0x00, /* 000000 */ - - /* - * code=144, hex=0x90, ascii="!^P" - */ - 0x0C, /* 000011 */ - 0x00, /* 000000 */ - 0x7C, /* 011111 */ - 0x40, /* 010000 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - - /* - * code=145, hex=0x91, ascii="!^Q" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x14, /* 000101 */ - 0x7C, /* 011111 */ - 0x50, /* 010100 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - - /* - * code=146, hex=0x92, ascii="!^R" - */ - 0x3C, /* 001111 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x7C, /* 011111 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x5C, /* 010111 */ - 0x00, /* 000000 */ - - /* - * code=147, hex=0x93, ascii="!^S" - */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=148, hex=0x94, ascii="!^T" - */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=149, hex=0x95, ascii="!^U" - */ - 0x60, /* 011000 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=150, hex=0x96, ascii="!^V" - */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x58, /* 010110 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - - /* - * code=151, hex=0x97, ascii="!^W" - */ - 0x60, /* 011000 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x58, /* 010110 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - - /* - * code=152, hex=0x98, ascii="!^X" - */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x60, /* 011000 */ - - /* - * code=153, hex=0x99, ascii="!^Y" - */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=154, hex=0x9A, ascii="!^Z" - */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=155, hex=0x9B, ascii="!^[" - */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=156, hex=0x9C, ascii="!^\" - */ - 0x18, /* 000110 */ - 0x24, /* 001001 */ - 0x20, /* 001000 */ - 0x78, /* 011110 */ - 0x20, /* 001000 */ - 0x24, /* 001001 */ - 0x5C, /* 010111 */ - 0x00, /* 000000 */ - - /* - * code=157, hex=0x9D, ascii="!^]" - */ - 0x44, /* 010001 */ - 0x28, /* 001010 */ - 0x10, /* 000100 */ - 0x7C, /* 011111 */ - 0x10, /* 000100 */ - 0x7C, /* 011111 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=158, hex=0x9E, ascii="!^^" - */ - 0x60, /* 011000 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x68, /* 011010 */ - 0x5C, /* 010111 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - - /* - * code=159, hex=0x9F, ascii="!^_" - */ - 0x08, /* 000010 */ - 0x14, /* 000101 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x50, /* 010100 */ - 0x20, /* 001000 */ - - /* - * code=160, hex=0xA0, ascii="! " - */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x04, /* 000001 */ - 0x3C, /* 001111 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - - /* - * code=161, hex=0xA1, ascii="!!" - */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - - /* - * code=162, hex=0xA2, ascii="!"" - */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=163, hex=0xA3, ascii="!#" - */ - 0x18, /* 000110 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x58, /* 010110 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - - /* - * code=164, hex=0xA4, ascii="!$" - */ - 0x28, /* 001010 */ - 0x50, /* 010100 */ - 0x00, /* 000000 */ - 0x70, /* 011100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - - /* - * code=165, hex=0xA5, ascii="!%" - */ - 0x28, /* 001010 */ - 0x50, /* 010100 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x68, /* 011010 */ - 0x58, /* 010110 */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - - /* - * code=166, hex=0xA6, ascii="!&" - */ - 0x38, /* 001110 */ - 0x04, /* 000001 */ - 0x3C, /* 001111 */ - 0x44, /* 010001 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - 0x3C, /* 001111 */ - 0x00, /* 000000 */ - - /* - * code=167, hex=0xA7, ascii="!'" - */ - 0x30, /* 001100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - - /* - * code=168, hex=0xA8, ascii="!(" - */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x30, /* 001100 */ - 0x40, /* 010000 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=169, hex=0xA9, ascii="!)" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x7C, /* 011111 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=170, hex=0xAA, ascii="!*" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x04, /* 000001 */ - 0x04, /* 000001 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=171, hex=0xAB, ascii="!+" - */ - 0x40, /* 010000 */ - 0x48, /* 010010 */ - 0x50, /* 010100 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x08, /* 000010 */ - 0x1C, /* 000111 */ - 0x00, /* 000000 */ - - /* - * code=172, hex=0xAC, ascii="!," - */ - 0x40, /* 010000 */ - 0x48, /* 010010 */ - 0x50, /* 010100 */ - 0x2C, /* 001011 */ - 0x54, /* 010101 */ - 0x1C, /* 000111 */ - 0x04, /* 000001 */ - 0x00, /* 000000 */ - - /* - * code=173, hex=0xAD, ascii="!-" - */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=174, hex=0xAE, ascii="!." - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x24, /* 001001 */ - 0x48, /* 010010 */ - 0x24, /* 001001 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=175, hex=0xAF, ascii="!/" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x24, /* 001001 */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=176, hex=0xB0, ascii="!0" - */ - 0x54, /* 010101 */ - 0x00, /* 000000 */ - 0xA8, /* 101010 */ - 0x00, /* 000000 */ - 0x54, /* 010101 */ - 0x00, /* 000000 */ - 0xA8, /* 101010 */ - 0x00, /* 000000 */ - - /* - * code=177, hex=0xB1, ascii="!1" - */ - 0x54, /* 010101 */ - 0xA8, /* 101010 */ - 0x54, /* 010101 */ - 0xA8, /* 101010 */ - 0x54, /* 010101 */ - 0xA8, /* 101010 */ - 0x54, /* 010101 */ - 0xA8, /* 101010 */ - - /* - * code=178, hex=0xB2, ascii="!2" - */ - 0xA8, /* 101010 */ - 0xFC, /* 111111 */ - 0x54, /* 010101 */ - 0xFC, /* 111111 */ - 0xA8, /* 101010 */ - 0xFC, /* 111111 */ - 0x54, /* 010101 */ - 0xFC, /* 111111 */ - - /* - * code=179, hex=0xB3, ascii="!3" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=180, hex=0xB4, ascii="!4" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0xF0, /* 111100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=181, hex=0xB5, ascii="!5" - */ - 0x10, /* 000100 */ - 0xF0, /* 111100 */ - 0x10, /* 000100 */ - 0xF0, /* 111100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=182, hex=0xB6, ascii="!6" - */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0xD0, /* 110100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=183, hex=0xB7, ascii="!7" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0xF0, /* 111100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=184, hex=0xB8, ascii="!8" - */ - 0x00, /* 000000 */ - 0xF0, /* 111100 */ - 0x10, /* 000100 */ - 0xF0, /* 111100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=185, hex=0xB9, ascii="!9" - */ - 0x50, /* 010100 */ - 0xD0, /* 110100 */ - 0x10, /* 000100 */ - 0xD0, /* 110100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=186, hex=0xBA, ascii="!:" - */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=187, hex=0xBB, ascii="!;" - */ - 0x00, /* 000000 */ - 0xF0, /* 111100 */ - 0x10, /* 000100 */ - 0xD0, /* 110100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=188, hex=0xBC, ascii="!<" - */ - 0x50, /* 010100 */ - 0xD0, /* 110100 */ - 0x10, /* 000100 */ - 0xF0, /* 111100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=189, hex=0xBD, ascii="!=" - */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0xF0, /* 111100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=190, hex=0xBE, ascii="!>" - */ - 0x10, /* 000100 */ - 0xF0, /* 111100 */ - 0x10, /* 000100 */ - 0xF0, /* 111100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=191, hex=0xBF, ascii="!?" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0xF0, /* 111100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=192, hex=0xC0, ascii="!@" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x1C, /* 000111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=193, hex=0xC1, ascii="!A" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=194, hex=0xC2, ascii="!B" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=195, hex=0xC3, ascii="!C" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x1C, /* 000111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=196, hex=0xC4, ascii="!D" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=197, hex=0xC5, ascii="!E" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0xFC, /* 111111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=198, hex=0xC6, ascii="!F" - */ - 0x10, /* 000100 */ - 0x1C, /* 000111 */ - 0x10, /* 000100 */ - 0x1C, /* 000111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=199, hex=0xC7, ascii="!G" - */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x5C, /* 010111 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=200, hex=0xC8, ascii="!H" - */ - 0x50, /* 010100 */ - 0x5C, /* 010111 */ - 0x40, /* 010000 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=201, hex=0xC9, ascii="!I" - */ - 0x00, /* 000000 */ - 0x7C, /* 011111 */ - 0x40, /* 010000 */ - 0x5C, /* 010111 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=202, hex=0xCA, ascii="!J" - */ - 0x50, /* 010100 */ - 0xDC, /* 110111 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=203, hex=0xCB, ascii="!K" - */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0xDC, /* 110111 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=204, hex=0xCC, ascii="!L" - */ - 0x50, /* 010100 */ - 0x5C, /* 010111 */ - 0x40, /* 010000 */ - 0x5C, /* 010111 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=205, hex=0xCD, ascii="!M" - */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=206, hex=0xCE, ascii="!N" - */ - 0x50, /* 010100 */ - 0xDC, /* 110111 */ - 0x00, /* 000000 */ - 0xDC, /* 110111 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=207, hex=0xCF, ascii="!O" - */ - 0x10, /* 000100 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=208, hex=0xD0, ascii="!P" - */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=209, hex=0xD1, ascii="!Q" - */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=210, hex=0xD2, ascii="!R" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=211, hex=0xD3, ascii="!S" - */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=212, hex=0xD4, ascii="!T" - */ - 0x10, /* 000100 */ - 0x1C, /* 000111 */ - 0x10, /* 000100 */ - 0x1C, /* 000111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=213, hex=0xD5, ascii="!U" - */ - 0x00, /* 000000 */ - 0x1C, /* 000111 */ - 0x10, /* 000100 */ - 0x1C, /* 000111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=214, hex=0xD6, ascii="!V" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x7C, /* 011111 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=215, hex=0xD7, ascii="!W" - */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0xDC, /* 110111 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - - /* - * code=216, hex=0xD8, ascii="!X" - */ - 0x10, /* 000100 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=217, hex=0xD9, ascii="!Y" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0xF0, /* 111100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=218, hex=0xDA, ascii="!Z" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x1C, /* 000111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=219, hex=0xDB, ascii="![" - */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - - /* - * code=220, hex=0xDC, ascii="!\" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - - /* - * code=221, hex=0xDD, ascii="!]" - */ - 0xE0, /* 111000 */ - 0xE0, /* 111000 */ - 0xE0, /* 111000 */ - 0xE0, /* 111000 */ - 0xE0, /* 111000 */ - 0xE0, /* 111000 */ - 0xE0, /* 111000 */ - 0xE0, /* 111000 */ - - /* - * code=222, hex=0xDE, ascii="!^" - */ - 0x1C, /* 000111 */ - 0x1C, /* 000111 */ - 0x1C, /* 000111 */ - 0x1C, /* 000111 */ - 0x1C, /* 000111 */ - 0x1C, /* 000111 */ - 0x1C, /* 000111 */ - 0x1C, /* 000111 */ - - /* - * code=223, hex=0xDF, ascii="!_" - */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0xFC, /* 111111 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=224, hex=0xE0, ascii="!`" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x34, /* 001101 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x34, /* 001101 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=225, hex=0xE1, ascii="!a" - */ - 0x00, /* 000000 */ - 0x70, /* 011100 */ - 0x48, /* 010010 */ - 0x70, /* 011100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x70, /* 011100 */ - 0x40, /* 010000 */ - - /* - * code=226, hex=0xE2, ascii="!b" - */ - 0x78, /* 011110 */ - 0x48, /* 010010 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - 0x00, /* 000000 */ - - /* - * code=227, hex=0xE3, ascii="!c" - */ - 0x00, /* 000000 */ - 0x7C, /* 011111 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - - /* - * code=228, hex=0xE4, ascii="!d" - */ - 0x78, /* 011110 */ - 0x48, /* 010010 */ - 0x20, /* 001000 */ - 0x10, /* 000100 */ - 0x20, /* 001000 */ - 0x48, /* 010010 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - - /* - * code=229, hex=0xE5, ascii="!e" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x3C, /* 001111 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=230, hex=0xE6, ascii="!f" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x70, /* 011100 */ - 0x40, /* 010000 */ - 0x40, /* 010000 */ - - /* - * code=231, hex=0xE7, ascii="!g" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x28, /* 001010 */ - 0x50, /* 010100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=232, hex=0xE8, ascii="!h" - */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - - /* - * code=233, hex=0xE9, ascii="!i" - */ - 0x30, /* 001100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x78, /* 011110 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=234, hex=0xEA, ascii="!j" - */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x44, /* 010001 */ - 0x44, /* 010001 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x6C, /* 011011 */ - 0x00, /* 000000 */ - - /* - * code=235, hex=0xEB, ascii="!k" - */ - 0x30, /* 001100 */ - 0x40, /* 010000 */ - 0x20, /* 001000 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - - /* - * code=236, hex=0xEC, ascii="!l" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x28, /* 001010 */ - 0x54, /* 010101 */ - 0x54, /* 010101 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=237, hex=0xED, ascii="!m" - */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x54, /* 010101 */ - 0x54, /* 010101 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - - /* - * code=238, hex=0xEE, ascii="!n" - */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x40, /* 010000 */ - 0x78, /* 011110 */ - 0x40, /* 010000 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=239, hex=0xEF, ascii="!o" - */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=240, hex=0xF0, ascii="!p" - */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=241, hex=0xF1, ascii="!q" - */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x38, /* 001110 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x38, /* 001110 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=242, hex=0xF2, ascii="!r" - */ - 0x40, /* 010000 */ - 0x30, /* 001100 */ - 0x08, /* 000010 */ - 0x30, /* 001100 */ - 0x40, /* 010000 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - - /* - * code=243, hex=0xF3, ascii="!s" - */ - 0x08, /* 000010 */ - 0x30, /* 001100 */ - 0x40, /* 010000 */ - 0x30, /* 001100 */ - 0x08, /* 000010 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - - /* - * code=244, hex=0xF4, ascii="!t" - */ - 0x00, /* 000000 */ - 0x08, /* 000010 */ - 0x14, /* 000101 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - - /* - * code=245, hex=0xF5, ascii="!u" - */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x50, /* 010100 */ - 0x20, /* 001000 */ - 0x00, /* 000000 */ - - /* - * code=246, hex=0xF6, ascii="!v" - */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x7C, /* 011111 */ - 0x00, /* 000000 */ - 0x10, /* 000100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=247, hex=0xF7, ascii="!w" - */ - 0x00, /* 000000 */ - 0x28, /* 001010 */ - 0x50, /* 010100 */ - 0x00, /* 000000 */ - 0x28, /* 001010 */ - 0x50, /* 010100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=248, hex=0xF8, ascii="!x" - */ - 0x30, /* 001100 */ - 0x48, /* 010010 */ - 0x48, /* 010010 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=249, hex=0xF9, ascii="!y" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x30, /* 001100 */ - 0x30, /* 001100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=250, hex=0xFA, ascii="!z" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x20, /* 001000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=251, hex=0xFB, ascii="!{" - */ - 0x00, /* 000000 */ - 0x1C, /* 000111 */ - 0x10, /* 000100 */ - 0x10, /* 000100 */ - 0x50, /* 010100 */ - 0x50, /* 010100 */ - 0x20, /* 001000 */ - 0x00, /* 000000 */ - - /* - * code=252, hex=0xFC, ascii="!|" - */ - 0x50, /* 010100 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x28, /* 001010 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=253, hex=0xFD, ascii="!}" - */ - 0x60, /* 011000 */ - 0x10, /* 000100 */ - 0x20, /* 001000 */ - 0x70, /* 011100 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=254, hex=0xFE, ascii="!~" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x78, /* 011110 */ - 0x78, /* 011110 */ - 0x78, /* 011110 */ - 0x78, /* 011110 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - - /* - * code=255, hex=0xFF, ascii="!^ź" - */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00, /* 000000 */ - 0x00 /* 000000 */ -}; - -static const unsigned char console_font_5x8[] PROGMEM = { - - /* - * code=0, hex=0x00, ascii="^@" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=1, hex=0x01, ascii="^A" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0xA8, /* 10101 */ - 0xF8, /* 11111 */ - 0xD8, /* 11011 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=2, hex=0x02, ascii="^B" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0xA8, /* 10101 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=3, hex=0x03, ascii="^C" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=4, hex=0x04, ascii="^D" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0xF8, /* 11111 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=5, hex=0x05, ascii="^E" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0xA8, /* 10101 */ - 0xF8, /* 11111 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=6, hex=0x06, ascii="^F" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0xF8, /* 11111 */ - 0xA8, /* 10101 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=7, hex=0x07, ascii="^G" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=8, hex=0x08, ascii="^H" - */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xD8, /* 11011 */ - 0x88, /* 10001 */ - 0xD8, /* 11011 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - - /* - * code=9, hex=0x09, ascii="^I" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=10, hex=0x0A, ascii="^J" - */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xD8, /* 11011 */ - 0x88, /* 10001 */ - 0xD8, /* 11011 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - - /* - * code=11, hex=0x0B, ascii="^K" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x38, /* 00111 */ - 0x18, /* 00011 */ - 0x68, /* 01101 */ - 0xA0, /* 10100 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=12, hex=0x0C, ascii="^L" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=13, hex=0x0D, ascii="^M" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x40, /* 01000 */ - 0xC0, /* 11000 */ - 0x80, /* 10000 */ - 0x00, /* 00000 */ - - /* - * code=14, hex=0x0E, ascii="^N" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x38, /* 00111 */ - 0x48, /* 01001 */ - 0x58, /* 01011 */ - 0xD0, /* 11010 */ - 0x80, /* 10000 */ - 0x00, /* 00000 */ - - /* - * code=15, hex=0x0F, ascii="^O" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=16, hex=0x10, ascii="^P" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0x60, /* 01100 */ - 0x70, /* 01110 */ - 0x60, /* 01100 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=17, hex=0x11, ascii="^Q" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0x30, /* 00110 */ - 0x70, /* 01110 */ - 0x30, /* 00110 */ - 0x10, /* 00010 */ - 0x00, /* 00000 */ - - /* - * code=18, hex=0x12, ascii="^R" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=19, hex=0x13, ascii="^S" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - - /* - * code=20, hex=0x14, ascii="^T" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x78, /* 01111 */ - 0xD0, /* 11010 */ - 0xD0, /* 11010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=21, hex=0x15, ascii="^U" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x18, /* 00011 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x48, /* 01001 */ - 0x30, /* 00110 */ - 0xC0, /* 11000 */ - - /* - * code=22, hex=0x16, ascii="^V" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - - /* - * code=23, hex=0x17, ascii="^W" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - - /* - * code=24, hex=0x18, ascii="^X" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=25, hex=0x19, ascii="^Y" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=26, hex=0x1A, ascii="^Z" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0xF8, /* 11111 */ - 0x10, /* 00010 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=27, hex=0x1B, ascii="^[" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0xF8, /* 11111 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=28, hex=0x1C, ascii="^\" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x80, /* 10000 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=29, hex=0x1D, ascii="^]" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0xF8, /* 11111 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=30, hex=0x1E, ascii="^^" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - - /* - * code=31, hex=0x1F, ascii="^_" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=32, hex=0x20, ascii=" " - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=33, hex=0x21, ascii="!" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=34, hex=0x22, ascii=""" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=35, hex=0x23, ascii="#" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0xF8, /* 11111 */ - 0x50, /* 01010 */ - 0xF8, /* 11111 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - - /* - * code=36, hex=0x24, ascii="$" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x30, /* 00110 */ - 0x40, /* 01000 */ - 0x30, /* 00110 */ - 0x60, /* 01100 */ - 0x20, /* 00100 */ - - /* - * code=37, hex=0x25, ascii="%" - */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0xA8, /* 10101 */ - 0x50, /* 01010 */ - 0x30, /* 00110 */ - 0x68, /* 01101 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=38, hex=0x26, ascii="&" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x30, /* 00110 */ - 0x40, /* 01000 */ - 0x68, /* 01101 */ - 0x90, /* 10010 */ - 0x68, /* 01101 */ - 0x00, /* 00000 */ - - /* - * code=39, hex=0x27, ascii="'" - */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=40, hex=0x28, ascii="(" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=41, hex=0x29, ascii=")" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=42, hex=0x2A, ascii="*" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - - /* - * code=43, hex=0x2B, ascii="+" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=44, hex=0x2C, ascii="," - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - - /* - * code=45, hex=0x2D, ascii="-" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=46, hex=0x2E, ascii="." - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=47, hex=0x2F, ascii="/" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=48, hex=0x30, ascii="0" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=49, hex=0x31, ascii="1" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x60, /* 01100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=50, hex=0x32, ascii="2" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - - /* - * code=51, hex=0x33, ascii="3" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xE0, /* 11100 */ - 0x10, /* 00010 */ - 0x60, /* 01100 */ - 0x10, /* 00010 */ - 0xE0, /* 11100 */ - 0x00, /* 00000 */ - - /* - * code=52, hex=0x34, ascii="4" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0x30, /* 00110 */ - 0x50, /* 01010 */ - 0xF0, /* 11110 */ - 0x10, /* 00010 */ - 0x00, /* 00000 */ - - /* - * code=53, hex=0x35, ascii="5" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x80, /* 10000 */ - 0xE0, /* 11100 */ - 0x10, /* 00010 */ - 0xE0, /* 11100 */ - 0x00, /* 00000 */ - - /* - * code=54, hex=0x36, ascii="6" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x80, /* 10000 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=55, hex=0x37, ascii="7" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=56, hex=0x38, ascii="8" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=57, hex=0x39, ascii="9" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x10, /* 00010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=58, hex=0x3A, ascii=":" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=59, hex=0x3B, ascii=";" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - - /* - * code=60, hex=0x3C, ascii="<" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x10, /* 00010 */ - 0x00, /* 00000 */ - - /* - * code=61, hex=0x3D, ascii="=" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=62, hex=0x3E, ascii=">" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=63, hex=0x3F, ascii="?" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x10, /* 00010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=64, hex=0x40, ascii="@" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x88, /* 10001 */ - 0xB0, /* 10110 */ - 0x80, /* 10000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=65, hex=0x41, ascii="A" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0xF0, /* 11110 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=66, hex=0x42, ascii="B" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0xE0, /* 11100 */ - 0x00, /* 00000 */ - - /* - * code=67, hex=0x43, ascii="C" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=68, hex=0x44, ascii="D" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0xE0, /* 11100 */ - 0x00, /* 00000 */ - - /* - * code=69, hex=0x45, ascii="E" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x80, /* 10000 */ - 0xE0, /* 11100 */ - 0x80, /* 10000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - - /* - * code=70, hex=0x46, ascii="F" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x80, /* 10000 */ - 0xE0, /* 11100 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0x00, /* 00000 */ - - /* - * code=71, hex=0x47, ascii="G" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x80, /* 10000 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=72, hex=0x48, ascii="H" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0xF0, /* 11110 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=73, hex=0x49, ascii="I" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=74, hex=0x4A, ascii="J" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0x10, /* 00010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=75, hex=0x4B, ascii="K" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0xA0, /* 10100 */ - 0xC0, /* 11000 */ - 0xA0, /* 10100 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=76, hex=0x4C, ascii="L" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - - /* - * code=77, hex=0x4D, ascii="M" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0xF0, /* 11110 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=78, hex=0x4E, ascii="N" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0xD0, /* 11010 */ - 0xB0, /* 10110 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=79, hex=0x4F, ascii="O" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=80, hex=0x50, ascii="P" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0xE0, /* 11100 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0x00, /* 00000 */ - - /* - * code=81, hex=0x51, ascii="Q" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x10, /* 00010 */ - - /* - * code=82, hex=0x52, ascii="R" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=83, hex=0x53, ascii="S" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x80, /* 10000 */ - 0x60, /* 01100 */ - 0x10, /* 00010 */ - 0xE0, /* 11100 */ - 0x00, /* 00000 */ - - /* - * code=84, hex=0x54, ascii="T" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=85, hex=0x55, ascii="U" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=86, hex=0x56, ascii="V" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=87, hex=0x57, ascii="W" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x88, /* 10001 */ - 0xA8, /* 10101 */ - 0xA8, /* 10101 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - - /* - * code=88, hex=0x58, ascii="X" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x50, /* 01010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=89, hex=0x59, ascii="Y" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=90, hex=0x5A, ascii="Z" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x80, /* 10000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - - /* - * code=91, hex=0x5B, ascii="[" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=92, hex=0x5C, ascii="\" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x10, /* 00010 */ - 0x00, /* 00000 */ - - /* - * code=93, hex=0x5D, ascii="]" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=94, hex=0x5E, ascii="^" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=95, hex=0x5F, ascii="_" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - - /* - * code=96, hex=0x60, ascii="`" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=97, hex=0x61, ascii="a" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x10, /* 00010 */ - 0x70, /* 01110 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - - /* - * code=98, hex=0x62, ascii="b" - */ - 0x00, /* 00000 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0xE0, /* 11100 */ - 0x00, /* 00000 */ - - /* - * code=99, hex=0x63, ascii="c" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x30, /* 00110 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x30, /* 00110 */ - 0x00, /* 00000 */ - - /* - * code=100, hex=0x64, ascii="d" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0x70, /* 01110 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=101, hex=0x65, ascii="e" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0xF0, /* 11110 */ - 0x80, /* 10000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=102, hex=0x66, ascii="f" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x30, /* 00110 */ - 0x40, /* 01000 */ - 0xE0, /* 11100 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=103, hex=0x67, ascii="g" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x10, /* 00010 */ - 0x60, /* 01100 */ - - /* - * code=104, hex=0x68, ascii="h" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x80, /* 10000 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=105, hex=0x69, ascii="i" - */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=106, hex=0x6A, ascii="j" - */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0x10, /* 00010 */ - 0x10, /* 00010 */ - 0x10, /* 00010 */ - 0x60, /* 01100 */ - - /* - * code=107, hex=0x6B, ascii="k" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x80, /* 10000 */ - 0xA0, /* 10100 */ - 0xC0, /* 11000 */ - 0xA0, /* 10100 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=108, hex=0x6C, ascii="l" - */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=109, hex=0x6D, ascii="m" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0xF0, /* 11110 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=110, hex=0x6E, ascii="n" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=111, hex=0x6F, ascii="o" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=112, hex=0x70, ascii="p" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0xE0, /* 11100 */ - 0x80, /* 10000 */ - - /* - * code=113, hex=0x71, ascii="q" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x10, /* 00010 */ - - /* - * code=114, hex=0x72, ascii="r" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x60, /* 01100 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=115, hex=0x73, ascii="s" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0xC0, /* 11000 */ - 0x30, /* 00110 */ - 0xE0, /* 11100 */ - 0x00, /* 00000 */ - - /* - * code=116, hex=0x74, ascii="t" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0xF0, /* 11110 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x30, /* 00110 */ - 0x00, /* 00000 */ - - /* - * code=117, hex=0x75, ascii="u" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=118, hex=0x76, ascii="v" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=119, hex=0x77, ascii="w" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0xF0, /* 11110 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=120, hex=0x78, ascii="x" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=121, hex=0x79, ascii="y" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x10, /* 00010 */ - 0x60, /* 01100 */ - - /* - * code=122, hex=0x7A, ascii="z" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - - /* - * code=123, hex=0x7B, ascii="{" - */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x10, /* 00010 */ - 0x00, /* 00000 */ - - /* - * code=124, hex=0x7C, ascii="|" - */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=125, hex=0x7D, ascii="}" - */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x10, /* 00010 */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=126, hex=0x7E, ascii="~" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0xA0, /* 10100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=127, hex=0x7F, ascii="^?" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x88, /* 10001 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - - /* - * code=128, hex=0x80, ascii="!^@" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - - /* - * code=129, hex=0x81, ascii="!^A" - */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=130, hex=0x82, ascii="!^B" - */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0xF0, /* 11110 */ - 0x80, /* 10000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=131, hex=0x83, ascii="!^C" - */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0xC0, /* 11000 */ - 0x20, /* 00100 */ - 0xA0, /* 10100 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - - /* - * code=132, hex=0x84, ascii="!^D" - */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0xC0, /* 11000 */ - 0x20, /* 00100 */ - 0x60, /* 01100 */ - 0xB0, /* 10110 */ - 0x00, /* 00000 */ - - /* - * code=133, hex=0x85, ascii="!^E" - */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0xC0, /* 11000 */ - 0x20, /* 00100 */ - 0x60, /* 01100 */ - 0xB0, /* 10110 */ - 0x00, /* 00000 */ - - /* - * code=134, hex=0x86, ascii="!^F" - */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0xC0, /* 11000 */ - 0x20, /* 00100 */ - 0x60, /* 01100 */ - 0xB0, /* 10110 */ - 0x00, /* 00000 */ - - /* - * code=135, hex=0x87, ascii="!^G" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x30, /* 00110 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x30, /* 00110 */ - 0x20, /* 00100 */ - - /* - * code=136, hex=0x88, ascii="!^H" - */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0xF0, /* 11110 */ - 0x80, /* 10000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=137, hex=0x89, ascii="!^I" - */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0xF0, /* 11110 */ - 0x80, /* 10000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=138, hex=0x8A, ascii="!^J" - */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0xF0, /* 11110 */ - 0x80, /* 10000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=139, hex=0x8B, ascii="!^K" - */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=140, hex=0x8C, ascii="!^L" - */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=141, hex=0x8D, ascii="!^M" - */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=142, hex=0x8E, ascii="!^N" - */ - 0xA0, /* 10100 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0xF0, /* 11110 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=143, hex=0x8F, ascii="!^O" - */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0xF0, /* 11110 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=144, hex=0x90, ascii="!^P" - */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0xF0, /* 11110 */ - 0x80, /* 10000 */ - 0xE0, /* 11100 */ - 0x80, /* 10000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - - /* - * code=145, hex=0x91, ascii="!^Q" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xD8, /* 11011 */ - 0x78, /* 01111 */ - 0xE0, /* 11100 */ - 0xB8, /* 10111 */ - 0x00, /* 00000 */ - - /* - * code=146, hex=0x92, ascii="!^R" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0xA0, /* 10100 */ - 0xF0, /* 11110 */ - 0xA0, /* 10100 */ - 0xB0, /* 10110 */ - 0x00, /* 00000 */ - - /* - * code=147, hex=0x93, ascii="!^S" - */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=148, hex=0x94, ascii="!^T" - */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=149, hex=0x95, ascii="!^U" - */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=150, hex=0x96, ascii="!^V" - */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=151, hex=0x97, ascii="!^W" - */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=152, hex=0x98, ascii="!^X" - */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x10, /* 00010 */ - 0x60, /* 01100 */ - - /* - * code=153, hex=0x99, ascii="!^Y" - */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=154, hex=0x9A, ascii="!^Z" - */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=155, hex=0x9B, ascii="!^[" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x80, /* 10000 */ - 0x80, /* 10000 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - - /* - * code=156, hex=0x9C, ascii="!^\" - */ - 0x00, /* 00000 */ - 0x30, /* 00110 */ - 0x50, /* 01010 */ - 0x40, /* 01000 */ - 0xE0, /* 11100 */ - 0x40, /* 01000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - - /* - * code=157, hex=0x9D, ascii="!^]" - */ - 0x00, /* 00000 */ - 0xD8, /* 11011 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=158, hex=0x9E, ascii="!^^" - */ - 0x00, /* 00000 */ - 0xC0, /* 11000 */ - 0xA0, /* 10100 */ - 0xB0, /* 10110 */ - 0xF8, /* 11111 */ - 0x90, /* 10010 */ - 0x88, /* 10001 */ - 0x00, /* 00000 */ - - /* - * code=159, hex=0x9F, ascii="!^_" - */ - 0x00, /* 00000 */ - 0x30, /* 00110 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0xF0, /* 11110 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x80, /* 10000 */ - - /* - * code=160, hex=0xA0, ascii="! " - */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - 0xC0, /* 11000 */ - 0x20, /* 00100 */ - 0x60, /* 01100 */ - 0xB0, /* 10110 */ - 0x00, /* 00000 */ - - /* - * code=161, hex=0xA1, ascii="!!" - */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=162, hex=0xA2, ascii="!"" - */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=163, hex=0xA3, ascii="!#" - */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=164, hex=0xA4, ascii="!$" - */ - 0x50, /* 01010 */ - 0xA0, /* 10100 */ - 0x00, /* 00000 */ - 0xE0, /* 11100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=165, hex=0xA5, ascii="!%" - */ - 0x50, /* 01010 */ - 0xA0, /* 10100 */ - 0x90, /* 10010 */ - 0xD0, /* 11010 */ - 0xD0, /* 11010 */ - 0xB0, /* 10110 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=166, hex=0xA6, ascii="!&" - */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x30, /* 00110 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=167, hex=0xA7, ascii="!'" - */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=168, hex=0xA8, ascii="!(" - */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=169, hex=0xA9, ascii="!)" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x80, /* 10000 */ - 0x00, /* 00000 */ - - /* - * code=170, hex=0xAA, ascii="!*" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x08, /* 00001 */ - 0x00, /* 00000 */ - - /* - * code=171, hex=0xAB, ascii="!+" - */ - 0x00, /* 00000 */ - 0x80, /* 10000 */ - 0x90, /* 10010 */ - 0xA0, /* 10100 */ - 0x58, /* 01011 */ - 0x88, /* 10001 */ - 0x38, /* 00111 */ - 0x00, /* 00000 */ - - /* - * code=172, hex=0xAC, ascii="!," - */ - 0x00, /* 00000 */ - 0x88, /* 10001 */ - 0x90, /* 10010 */ - 0xA0, /* 10100 */ - 0x48, /* 01001 */ - 0x98, /* 10011 */ - 0x38, /* 00111 */ - 0x08, /* 00001 */ - - /* - * code=173, hex=0xAD, ascii="!-" - */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=174, hex=0xAE, ascii="!." - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0xA0, /* 10100 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - - /* - * code=175, hex=0xAF, ascii="!/" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xA0, /* 10100 */ - 0x50, /* 01010 */ - 0xA0, /* 10100 */ - 0x00, /* 00000 */ - - /* - * code=176, hex=0xB0, ascii="!0" - */ - 0xA8, /* 10101 */ - 0x50, /* 01010 */ - 0xA8, /* 10101 */ - 0x50, /* 01010 */ - 0xA8, /* 10101 */ - 0x50, /* 01010 */ - 0xA8, /* 10101 */ - 0x50, /* 01010 */ - - /* - * code=177, hex=0xB1, ascii="!1" - */ - 0xE8, /* 11101 */ - 0x50, /* 01010 */ - 0xB8, /* 10111 */ - 0x50, /* 01010 */ - 0xE8, /* 11101 */ - 0x50, /* 01010 */ - 0xB8, /* 10111 */ - 0x50, /* 01010 */ - - /* - * code=178, hex=0xB2, ascii="!2" - */ - 0xD8, /* 11011 */ - 0x70, /* 01110 */ - 0xD8, /* 11011 */ - 0x70, /* 01110 */ - 0xD8, /* 11011 */ - 0x70, /* 01110 */ - 0xD8, /* 11011 */ - 0x70, /* 01110 */ - - /* - * code=179, hex=0xB3, ascii="!3" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=180, hex=0xB4, ascii="!4" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0xE0, /* 11100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=181, hex=0xB5, ascii="!5" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0xE0, /* 11100 */ - 0x20, /* 00100 */ - 0xE0, /* 11100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=182, hex=0xB6, ascii="!6" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0xD0, /* 11010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=183, hex=0xB7, ascii="!7" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=184, hex=0xB8, ascii="!8" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xE0, /* 11100 */ - 0x20, /* 00100 */ - 0xE0, /* 11100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=185, hex=0xB9, ascii="!9" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0xD0, /* 11010 */ - 0x10, /* 00010 */ - 0xD0, /* 11010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=186, hex=0xBA, ascii="!:" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=187, hex=0xBB, ascii="!;" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x10, /* 00010 */ - 0xD0, /* 11010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=188, hex=0xBC, ascii="!<" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0xD0, /* 11010 */ - 0x10, /* 00010 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=189, hex=0xBD, ascii="!=" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=190, hex=0xBE, ascii="!>" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0xE0, /* 11100 */ - 0x20, /* 00100 */ - 0xE0, /* 11100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=191, hex=0xBF, ascii="!?" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xE0, /* 11100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=192, hex=0xC0, ascii="!@" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x38, /* 00111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=193, hex=0xC1, ascii="!A" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=194, hex=0xC2, ascii="!B" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=195, hex=0xC3, ascii="!C" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x38, /* 00111 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=196, hex=0xC4, ascii="!D" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=197, hex=0xC5, ascii="!E" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0xF8, /* 11111 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=198, hex=0xC6, ascii="!F" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x38, /* 00111 */ - 0x20, /* 00100 */ - 0x38, /* 00111 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=199, hex=0xC7, ascii="!G" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x58, /* 01011 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=200, hex=0xC8, ascii="!H" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x58, /* 01011 */ - 0x40, /* 01000 */ - 0x78, /* 01111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=201, hex=0xC9, ascii="!I" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x78, /* 01111 */ - 0x40, /* 01000 */ - 0x58, /* 01011 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=202, hex=0xCA, ascii="!J" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0xD8, /* 11011 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=203, hex=0xCB, ascii="!K" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0xD8, /* 11011 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=204, hex=0xCC, ascii="!L" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x58, /* 01011 */ - 0x40, /* 01000 */ - 0x58, /* 01011 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=205, hex=0xCD, ascii="!M" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=206, hex=0xCE, ascii="!N" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0xD8, /* 11011 */ - 0x00, /* 00000 */ - 0xD8, /* 11011 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=207, hex=0xCF, ascii="!O" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=208, hex=0xD0, ascii="!P" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=209, hex=0xD1, ascii="!Q" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=210, hex=0xD2, ascii="!R" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=211, hex=0xD3, ascii="!S" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x78, /* 01111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=212, hex=0xD4, ascii="!T" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x38, /* 00111 */ - 0x20, /* 00100 */ - 0x38, /* 00111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=213, hex=0xD5, ascii="!U" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x38, /* 00111 */ - 0x20, /* 00100 */ - 0x38, /* 00111 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=214, hex=0xD6, ascii="!V" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x78, /* 01111 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=215, hex=0xD7, ascii="!W" - */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0xF8, /* 11111 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - - /* - * code=216, hex=0xD8, ascii="!X" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0xF8, /* 11111 */ - 0x20, /* 00100 */ - 0xF8, /* 11111 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=217, hex=0xD9, ascii="!Y" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0xE0, /* 11100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=218, hex=0xDA, ascii="!Z" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x38, /* 00111 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=219, hex=0xDB, ascii="![" - */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - - /* - * code=220, hex=0xDC, ascii="!\" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - - /* - * code=221, hex=0xDD, ascii="!]" - */ - 0xE0, /* 11100 */ - 0xE0, /* 11100 */ - 0xE0, /* 11100 */ - 0xE0, /* 11100 */ - 0xE0, /* 11100 */ - 0xE0, /* 11100 */ - 0xE0, /* 11100 */ - 0xE0, /* 11100 */ - - /* - * code=222, hex=0xDE, ascii="!^" - */ - 0x18, /* 00011 */ - 0x18, /* 00011 */ - 0x18, /* 00011 */ - 0x18, /* 00011 */ - 0x18, /* 00011 */ - 0x18, /* 00011 */ - 0x18, /* 00011 */ - 0x18, /* 00011 */ - - /* - * code=223, hex=0xDF, ascii="!_" - */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=224, hex=0xE0, ascii="!`" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x68, /* 01101 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x68, /* 01101 */ - 0x00, /* 00000 */ - - /* - * code=225, hex=0xE1, ascii="!a" - */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0xF0, /* 11110 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0xE0, /* 11100 */ - 0x80, /* 10000 */ - - /* - * code=226, hex=0xE2, ascii="!b" - */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=227, hex=0xE3, ascii="!c" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - - /* - * code=228, hex=0xE4, ascii="!d" - */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x48, /* 01001 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x88, /* 10001 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - - /* - * code=229, hex=0xE5, ascii="!e" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x78, /* 01111 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=230, hex=0xE6, ascii="!f" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0xE8, /* 11101 */ - 0x80, /* 10000 */ - - /* - * code=231, hex=0xE7, ascii="!g" - */ - 0x00, /* 00000 */ - 0x98, /* 10011 */ - 0x50, /* 01010 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - - /* - * code=232, hex=0xE8, ascii="!h" - */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x88, /* 10001 */ - 0x70, /* 01110 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=233, hex=0xE9, ascii="!i" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x88, /* 10001 */ - 0xF8, /* 11111 */ - 0x88, /* 10001 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=234, hex=0xEA, ascii="!j" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x88, /* 10001 */ - 0x88, /* 10001 */ - 0x50, /* 01010 */ - 0xD8, /* 11011 */ - 0x00, /* 00000 */ - - /* - * code=235, hex=0xEB, ascii="!k" - */ - 0x60, /* 01100 */ - 0x80, /* 10000 */ - 0x40, /* 01000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=236, hex=0xEC, ascii="!l" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0xA8, /* 10101 */ - 0xA8, /* 10101 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=237, hex=0xED, ascii="!m" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x08, /* 00001 */ - 0x70, /* 01110 */ - 0xA8, /* 10101 */ - 0x48, /* 01001 */ - 0xB0, /* 10110 */ - 0x00, /* 00000 */ - - /* - * code=238, hex=0xEE, ascii="!n" - */ - 0x00, /* 00000 */ - 0x30, /* 00110 */ - 0x40, /* 01000 */ - 0x70, /* 01110 */ - 0x40, /* 01000 */ - 0x40, /* 01000 */ - 0x30, /* 00110 */ - 0x00, /* 00000 */ - - /* - * code=239, hex=0xEF, ascii="!o" - */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x90, /* 10010 */ - 0x00, /* 00000 */ - - /* - * code=240, hex=0xF0, ascii="!p" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - - /* - * code=241, hex=0xF1, ascii="!q" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0xF8, /* 11111 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0xF8, /* 11111 */ - 0x00, /* 00000 */ - - /* - * code=242, hex=0xF2, ascii="!r" - */ - 0x00, /* 00000 */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - - /* - * code=243, hex=0xF3, ascii="!s" - */ - 0x00, /* 00000 */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x40, /* 01000 */ - 0x20, /* 00100 */ - 0x10, /* 00010 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - - /* - * code=244, hex=0xF4, ascii="!t" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x18, /* 00011 */ - 0x28, /* 00101 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - - /* - * code=245, hex=0xF5, ascii="!u" - */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0x20, /* 00100 */ - 0xA0, /* 10100 */ - 0xC0, /* 11000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=246, hex=0xF6, ascii="!v" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - 0xF0, /* 11110 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - - /* - * code=247, hex=0xF7, ascii="!w" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0xA0, /* 10100 */ - 0x00, /* 00000 */ - 0x50, /* 01010 */ - 0xA0, /* 10100 */ - 0x00, /* 00000 */ - - /* - * code=248, hex=0xF8, ascii="!x" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x50, /* 01010 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=249, hex=0xF9, ascii="!y" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x60, /* 01100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=250, hex=0xFA, ascii="!z" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x20, /* 00100 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=251, hex=0xFB, ascii="!{" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x18, /* 00011 */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0xA0, /* 10100 */ - 0x40, /* 01000 */ - 0x00, /* 00000 */ - - /* - * code=252, hex=0xFC, ascii="!|" - */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x50, /* 01010 */ - 0x50, /* 01010 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=253, hex=0xFD, ascii="!}" - */ - 0x00, /* 00000 */ - 0x60, /* 01100 */ - 0x10, /* 00010 */ - 0x20, /* 00100 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=254, hex=0xFE, ascii="!~" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x70, /* 01110 */ - 0x70, /* 01110 */ - 0x70, /* 01110 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - - /* - * code=255, hex=0xFF, ascii="!^Ÿ" - */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ - 0x00, /* 00000 */ -}; -#endif +#include "console_font_5x8.h" +#include "console_font_5x12.h" +#include "console_font_6x8.h" +#include "console_font_7x9.h" // draws a raster font character on canvas -// only supports 5x8 and 6x8 fonts ATM -void Segment::drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, CRGB color, CRGB *leds) { -#ifndef WLED_DISABLE_2D +// only supports 5x8=40, 5x12=60, 6x8=48 and 7x9=63 fonts ATM +void Segment::drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, uint32_t color) { const uint16_t cols = virtualWidth(); const uint16_t rows = virtualHeight(); + const int font = w*h; - if (w<5 || w>6 || h!=8) return; - for (uint8_t i = 0; i6 || h!=8) return; + for (int i = 0; i= rows) break; // drawing off-screen uint8_t bits = 0; - switch (w) { - case 5: bits = pgm_read_byte_near(&console_font_5x8[(chr * 8) + i]); break; - case 6: bits = pgm_read_byte_near(&console_font_6x8[(chr * 8) + i]); break; + switch (font) { + case 40: bits = pgm_read_byte_near(&console_font_5x8[(chr * 8) + i]); break; // 5x8 font + case 48: bits = pgm_read_byte_near(&console_font_6x8[(chr * 8) + i]); break; // 6x8 font + case 63: bits = pgm_read_byte_near(&console_font_7x9[(chr * 8) + i]); break; // 7x9 font + case 60: bits = pgm_read_byte_near(&console_font_5x12[(chr * 8) + i]); break; // 5x12 font + default: return; } - for (uint8_t j = 0; j= 0 || x0 < cols) && ((bits>>(j+(8-w))) & 0x01)) { // bit set & drawing on-screen - if (leds) leds[XY(x0,y0)] = color; - else setPixelColorXY(x0, y0, color); + setPixelColorXY(x0, y0, color); } } } -#endif } #define WU_WEIGHT(a,b) ((uint8_t) (((a)*(b)+(a)+(b))>>8)) -void Segment::wu_pixel(CRGB *leds, uint32_t x, uint32_t y, CRGB c) { //awesome wu_pixel procedure by reddit u/sutaburosu -#ifndef WLED_DISABLE_2D +void Segment::wu_pixel(uint32_t x, uint32_t y, CRGB c) { //awesome wu_pixel procedure by reddit u/sutaburosu // extract the fractional parts and derive their inverses uint8_t xx = x & 0xff, yy = y & 0xff, ix = 255 - xx, iy = 255 - yy; // calculate the intensities for each affected pixel uint8_t wu[4] = {WU_WEIGHT(ix, iy), WU_WEIGHT(xx, iy), WU_WEIGHT(ix, yy), WU_WEIGHT(xx, yy)}; // multiply the intensities by the colour, and saturating-add them to the pixels - for (uint8_t i = 0; i < 4; i++) { - uint16_t xy = XY((x >> 8) + (i & 1), (y >> 8) + ((i >> 1) & 1)); - leds[xy].r = qadd8(leds[xy].r, c.r * wu[i] >> 8); - leds[xy].g = qadd8(leds[xy].g, c.g * wu[i] >> 8); - leds[xy].b = qadd8(leds[xy].b, c.b * wu[i] >> 8); + for (int i = 0; i < 4; i++) { + CRGB led = getPixelColorXY((x >> 8) + (i & 1), (y >> 8) + ((i >> 1) & 1)); + led.r = qadd8(led.r, c.r * wu[i] >> 8); + led.g = qadd8(led.g, c.g * wu[i] >> 8); + led.b = qadd8(led.b, c.b * wu[i] >> 8); + setPixelColorXY(int((x >> 8) + (i & 1)), int((y >> 8) + ((i >> 1) & 1)), led); } -#endif } #undef WU_WEIGHT + +#endif // WLED_DISABLE_2D diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index a4cb9c48..8e112f82 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -73,76 +73,83 @@ /////////////////////////////////////////////////////////////////////////////// // Segment class implementation /////////////////////////////////////////////////////////////////////////////// +uint16_t Segment::_usedSegmentData = 0U; // amount of RAM all segments use for their data[] +CRGB *Segment::_globalLeds = nullptr; +// copy constructor Segment::Segment(const Segment &orig) { - DEBUG_PRINTLN(F("-- Segment duplicated --")); + DEBUG_PRINTLN(F("-- Copy segment constructor --")); memcpy(this, &orig, sizeof(Segment)); name = nullptr; data = nullptr; _dataLen = 0; - //_t = nullptr; + _t = nullptr; + if (leds && !Segment::_globalLeds) leds = nullptr; if (orig.name) { name = new char[strlen(orig.name)+1]; if (name) strcpy(name, orig.name); } if (orig.data) { if (allocateData(orig._dataLen)) memcpy(data, orig.data, orig._dataLen); } - //if (orig._t) { _t = new Transition(orig._t->_dur, orig._t->_briT, orig._t->_cctT, orig._t->_colorT); } - DEBUG_PRINTF(" Original data: %p (%d)\n", orig.data, (int)orig._dataLen); - DEBUG_PRINTF(" Constructed data: %p (%d)\n", data, (int)_dataLen); + if (orig._t) { _t = new Transition(orig._t->_dur, orig._t->_briT, orig._t->_cctT, orig._t->_colorT); } + if (orig.leds && !Segment::_globalLeds) { leds = (CRGB*)malloc(sizeof(CRGB)*length()); if (leds) memcpy(leds, orig.leds, sizeof(CRGB)*length()); } } +// move constructor Segment::Segment(Segment &&orig) noexcept { - DEBUG_PRINTLN(F("-- Move constructor --")); + DEBUG_PRINTLN(F("-- Move segment constructor --")); memcpy(this, &orig, sizeof(Segment)); orig.name = nullptr; orig.data = nullptr; orig._dataLen = 0; - //orig._t = nullptr; + orig._t = nullptr; + orig.leds = nullptr; } +// copy assignment Segment& Segment::operator= (const Segment &orig) { - DEBUG_PRINTLN(F("-- Segment copied --")); + DEBUG_PRINTLN(F("-- Copying segment --")); if (this != &orig) { - if (name) { - DEBUG_PRINTF(" Copy Deleting %s (%p)\n", name, name); - delete[] name; - } - //if (_t) delete _t; + // clean destination + if (name) delete[] name; + if (_t) delete _t; + if (leds && !Segment::_globalLeds) free(leds); deallocateData(); + // copy source memcpy(this, &orig, sizeof(Segment)); + // erase pointers to allocated data name = nullptr; data = nullptr; _dataLen = 0; - //_t = nullptr; + _t = nullptr; + if (!Segment::_globalLeds) leds = nullptr; + // copy source data if (orig.name) { name = new char[strlen(orig.name)+1]; if (name) strcpy(name, orig.name); } if (orig.data) { if (allocateData(orig._dataLen)) memcpy(data, orig.data, orig._dataLen); } - //if (orig._t) { _t = new Transition(orig._t->_dur, orig._t->_briT, orig._t->_cctT, orig._t->_colorT); } - DEBUG_PRINTF(" Original data: %p (%d)\n", orig.data, (int)orig._dataLen); - DEBUG_PRINTF(" Copied data: %p (%d)\n", data, (int)_dataLen); + if (orig._t) { _t = new Transition(orig._t->_dur, orig._t->_briT, orig._t->_cctT, orig._t->_colorT); } + if (orig.leds && !Segment::_globalLeds) { leds = (CRGB*)malloc(sizeof(CRGB)*length()); if (leds) memcpy(leds, orig.leds, sizeof(CRGB)*length()); } } return *this; } +// move assignment Segment& Segment::operator= (Segment &&orig) noexcept { DEBUG_PRINTLN(F("-- Moving segment --")); if (this != &orig) { - if (name) { - DEBUG_PRINTF(" Move Deleting %s (%p)\n", name, name); - delete[] name; // free old name - } - //if (_t) delete _t; + if (name) delete[] name; // free old name deallocateData(); // free old runtime data + if (_t) delete _t; + if (leds && !Segment::_globalLeds) free(leds); memcpy(this, &orig, sizeof(Segment)); orig.name = nullptr; orig.data = nullptr; orig._dataLen = 0; - //orig._t = nullptr; + orig._t = nullptr; + orig.leds = nullptr; } return *this; } -bool Segment::allocateData(uint16_t len) { +bool Segment::allocateData(size_t len) { if (data && _dataLen == len) return true; //already allocated deallocateData(); - // TODO: move out to WS2812FX class: for (seg : _segments) sum += seg.dataSize(); - if (strip.getUsedSegmentData() + len > MAX_SEGMENT_DATA) return false; //not enough memory + if (Segment::getUsedSegmentData() + len > MAX_SEGMENT_DATA) return false; //not enough memory // if possible use SPI RAM on ESP32 #if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM) if (psramFound()) @@ -151,23 +158,18 @@ bool Segment::allocateData(uint16_t len) { #endif data = (byte*) malloc(len); if (!data) return false; //allocation failed - strip.addUsedSegmentData(len); // TODO: move out to WS2812FX class: for (seg : _segments) sum += seg.dataSize(); + Segment::addUsedSegmentData(len); _dataLen = len; memset(data, 0, len); - DEBUG_PRINTF("-- Allocated data %p (%d)\n", data, (int)len); return true; } void Segment::deallocateData() { - // NOTE: deallocating data sometimes produces corrupt heap. if (!data) return; - DEBUG_PRINTF("-- Deallocating data: %p (%d)\n", data, (int)_dataLen); free(data); - DEBUG_PRINTLN(F("-- Data freed.")); data = nullptr; - strip.addUsedSegmentData(-(int16_t)_dataLen); // TODO: move out to WS2812FX class: for (seg : _segments) sum -= seg.dataSize(); + Segment::addUsedSegmentData(-_dataLen); _dataLen = 0; - DEBUG_PRINTLN(F("-- Dealocated data.")); } /** @@ -178,54 +180,77 @@ void Segment::deallocateData() { * may free that data buffer. */ void Segment::resetIfRequired() { - if (reset) { // (getOption(SEG_OPTION_RESET)) + if (reset) { + if (leds && !Segment::_globalLeds) { free(leds); leds = nullptr; } + //if (_t) { delete _t; _t = nullptr; transitional = false; } next_time = 0; step = 0; call = 0; aux0 = 0; aux1 = 0; reset = false; // setOption(SEG_OPTION_RESET, false); } } -void Segment::startTransition(uint16_t dur) { - // starting a transition has to occur before change so we get current values 1st - /*uint8_t*/ _briT = currentBri(getOption(SEG_OPTION_ON) ? opacity : 0); // comment out uint8_t if not using Transition struct - /*uint8_t*/ _cctT = currentBri(cct, true); // comment out uint8_t if not using Transition struct - /*CRGBPalette16 _palT;*/ loadPalette(_palT, palette); - ///*uint8_t*/ _modeP = mode; // comment out uint8_t if not using Transition struct - //uint32_t _colorT[NUM_COLORS]; // comment out if not using Transition struct - for (size_t i=0; i_briT = _briT; - //_t->_cctT = _cctT; - //_t->_palT = _palT; - //_t->_modeT = _modeP; - //for (size_t i=0; i_colorT[i] = _colorT[i]; - // comment out if using transition struct as it is done in constructor - _dur = dur; - _start = millis(); - - setOption(SEG_OPTION_TRANSITIONAL, true); +void Segment::setUpLeds() { + // deallocation happens in resetIfRequired() as it is called when segment changes or in destructor + if (Segment::_globalLeds) + #ifndef WLED_DISABLE_2D + leds = &Segment::_globalLeds[start + startY*strip.matrixWidth]; // TODO: remove this hack + #else + leds = &Segment::_globalLeds[start]; + #endif + else if (!leds) + leds = (CRGB*)malloc(sizeof(CRGB)*length()); } -uint16_t Segment::progress() { //transition progression between 0-65535 - //if (!_t) return 0xFFFFU; +void Segment::startTransition(uint16_t dur) { + if (transitional || _t) return; // already in transition no need to store anything + + // starting a transition has to occur before change so we get current values 1st + uint8_t _briT = currentBri(on ? opacity : 0); + uint8_t _cctT = currentBri(cct, true); + CRGBPalette16 _palT; loadPalette(_palT, palette); + uint8_t _modeP = mode; + uint32_t _colorT[NUM_COLORS]; + for (size_t i=0; i_briT = _briT; + _t->_cctT = _cctT; + _t->_palT = _palT; + _t->_modeP = _modeP; + for (size_t i=0; i_colorT[i] = _colorT[i]; + transitional = true; // setOption(SEG_OPTION_TRANSITIONAL, true); +} + +// transition progression between 0-65535 +uint16_t Segment::progress() { + if (!transitional || !_t) return 0xFFFFU; uint32_t timeNow = millis(); - if (timeNow - /*_t->*/_start > /*_t->*/_dur) return 0xFFFFU; - return (timeNow - /*_t->*/_start) * 0xFFFFU / /*_t->*/_dur; + if (timeNow - _t->_start > _t->_dur || _t->_dur == 0) return 0xFFFFU; + return (timeNow - _t->_start) * 0xFFFFU / _t->_dur; } uint8_t Segment::currentBri(uint8_t briNew, bool useCct) { - //if (!_t) return (useCct) ? cct : opacity; - if (getOption(SEG_OPTION_TRANSITIONAL)) { + if (transitional && _t) { uint32_t prog = progress() + 1; - if (useCct) return ((briNew * prog) + /*_t->*/_cctT * (0x10000 - prog)) >> 16; - else return ((briNew * prog) + /*_t->*/_briT * (0x10000 - prog)) >> 16; + if (useCct) return ((briNew * prog) + _t->_cctT * (0x10000 - prog)) >> 16; + else return ((briNew * prog) + _t->_briT * (0x10000 - prog)) >> 16; } else { - return (useCct) ? cct : (getOption(SEG_OPTION_ON) ? opacity : 0); + return briNew; } } +uint8_t Segment::currentMode(uint8_t newMode) { + if (transitional && _t) { + return _t->_modeP; + } else { + return newMode; + } +} + +uint32_t Segment::currentColor(uint8_t slot, uint32_t colorNew) { + return transitional && _t ? color_blend(_t->_colorT[slot], colorNew, progress(), true) : colorNew; +} + CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) { static unsigned long _lastPaletteChange = 0; // perhaps it should be per segment byte tcp[72]; @@ -257,22 +282,22 @@ CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) { _lastPaletteChange = millis(); } break;} case 2: {//primary color only - CRGB prim = CRGB(colors[0]); + CRGB prim = strip.gammaCorrectCol ? gamma32(colors[0]) : colors[0]; targetPalette = CRGBPalette16(prim); break;} case 3: {//primary + secondary - CRGB prim = CRGB(colors[0]); - CRGB sec = CRGB(colors[1]); + CRGB prim = strip.gammaCorrectCol ? gamma32(colors[0]) : colors[0]; + CRGB sec = strip.gammaCorrectCol ? gamma32(colors[1]) : colors[1]; targetPalette = CRGBPalette16(prim,prim,sec,sec); break;} case 4: {//primary + secondary + tertiary - CRGB prim = CRGB(colors[0]); - CRGB sec = CRGB(colors[1]); - CRGB ter = CRGB(colors[2]); + CRGB prim = strip.gammaCorrectCol ? gamma32(colors[0]) : colors[0]; + CRGB sec = strip.gammaCorrectCol ? gamma32(colors[1]) : colors[1]; + CRGB ter = strip.gammaCorrectCol ? gamma32(colors[2]) : colors[2]; targetPalette = CRGBPalette16(ter,sec,prim); break;} case 5: {//primary + secondary (+tert if not off), more distinct - CRGB prim = CRGB(colors[0]); - CRGB sec = CRGB(colors[1]); + CRGB prim = strip.gammaCorrectCol ? gamma32(colors[0]) : colors[0]; + CRGB sec = strip.gammaCorrectCol ? gamma32(colors[1]) : colors[1]; if (colors[2]) { - CRGB ter = CRGB(colors[2]); + CRGB ter = strip.gammaCorrectCol ? gamma32(colors[2]) : colors[2]; targetPalette = CRGBPalette16(prim,prim,prim,prim,prim,sec,sec,sec,sec,sec,ter,ter,ter,ter,ter,prim); } else { targetPalette = CRGBPalette16(prim,prim,prim,prim,prim,prim,prim,prim,sec,sec,sec,sec,sec,sec,sec,sec); @@ -306,23 +331,26 @@ CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) { CRGBPalette16 &Segment::currentPalette(CRGBPalette16 &targetPalette, uint8_t pal) { loadPalette(targetPalette, pal); - //if (_t && progress() < 0xFFFFU) { - if (strip.paletteFade && getOption(SEG_OPTION_TRANSITIONAL) && progress() < 0xFFFFU) { // TODO: get rid of + if (transitional && _t && progress() < 0xFFFFU) { // blend palettes - uint8_t blends = map(_dur, 0, 0xFFFF, 48, 6); // do not blend palettes too quickly (0-65.5s) - nblendPaletteTowardPalette(/*_t->*/_palT, targetPalette, blends); - targetPalette = /*_t->*/_palT; // copy transitioning/temporary palette + uint8_t blends = map(_t->_dur, 0, 0xFFFF, 48, 6); // do not blend palettes too quickly (0-65.5s) + nblendPaletteTowardPalette(_t->_palT, targetPalette, blends); + targetPalette = _t->_palT; // copy transitioning/temporary palette } return targetPalette; } void Segment::handleTransition() { - if (!getOption(SEG_OPTION_TRANSITIONAL)) return; + if (!transitional) return; unsigned long maxWait = millis() + 20; if (mode == FX_MODE_STATIC && next_time > maxWait) next_time = maxWait; if (progress() == 0xFFFFU) { - //if (_t) { delete _t; _t = nullptr; } - setOption(SEG_OPTION_TRANSITIONAL, false); // finish transitioning segment + if (_t) { + if (_t->_modeP != mode) markForReset(); + delete _t; + _t = nullptr; + } + transitional = false; // finish transitioning segment } } @@ -351,7 +379,7 @@ void Segment::setOpacity(uint8_t o) { } void Segment::setOption(uint8_t n, bool val) { - bool prevOn = getOption(SEG_OPTION_ON); + bool prevOn = on; if (fadeTransition && n == SEG_OPTION_ON && val != prevOn) startTransition(strip.getTransition()); // start transition prior to change if (val) options |= 0x01 << n; else options &= ~(0x01 << n); @@ -360,22 +388,22 @@ void Segment::setOption(uint8_t n, bool val) { // 2D matrix uint16_t Segment::virtualWidth() { uint16_t groupLen = groupLength(); - uint16_t vWidth = ((getOption(SEG_OPTION_TRANSPOSED) ? height() : width()) + groupLen - 1) / groupLen; - if (getOption(SEG_OPTION_MIRROR)) vWidth = (vWidth + 1) /2; // divide by 2 if mirror, leave at least a single LED + uint16_t vWidth = ((transpose ? height() : width()) + groupLen - 1) / groupLen; + if (mirror) vWidth = (vWidth + 1) /2; // divide by 2 if mirror, leave at least a single LED return vWidth; } uint16_t Segment::virtualHeight() { uint16_t groupLen = groupLength(); - uint16_t vHeight = ((getOption(SEG_OPTION_TRANSPOSED) ? width() : height()) + groupLen - 1) / groupLen; - if (getOption(SEG_OPTION_MIRROR_Y)) vHeight = (vHeight + 1) /2; // divide by 2 if mirror, leave at least a single LED + uint16_t vHeight = ((transpose ? width() : height()) + groupLen - 1) / groupLen; + if (mirror_y) vHeight = (vHeight + 1) /2; // divide by 2 if mirror, leave at least a single LED return vHeight; } // 1D strip uint16_t Segment::virtualLength() { #ifndef WLED_DISABLE_2D - if (height() > 1) { + if (is2D()) { uint16_t vW = virtualWidth(); uint16_t vH = virtualHeight(); uint32_t vLen = vW * vH; // use all pixels from segment @@ -393,14 +421,14 @@ uint16_t Segment::virtualLength() { #endif uint16_t groupLen = groupLength(); uint16_t vLength = (length() + groupLen - 1) / groupLen; - if (getOption(SEG_OPTION_MIRROR)) vLength = (vLength + 1) /2; // divide by 2 if mirror, leave at least a single LED + if (mirror) vLength = (vLength + 1) /2; // divide by 2 if mirror, leave at least a single LED return vLength; } void IRAM_ATTR Segment::setPixelColor(int i, uint32_t col) { #ifndef WLED_DISABLE_2D - if (height() > 1) { // if this does not work use strip.isMatrix + if (is2D()) { // if this does not work use strip.isMatrix uint16_t vH = virtualHeight(); // segment height in logical pixels uint16_t vW = virtualWidth(); switch (map1D2D) { @@ -430,9 +458,10 @@ void IRAM_ATTR Segment::setPixelColor(int i, uint32_t col) } #endif + if (leds) leds[i] = col; + uint16_t len = length(); - uint8_t _bri_t = strip._bri_t; - //uint8_t _bri_t = currentBri(getOption(SEG_OPTION_ON) ? opacity : 0); + uint8_t _bri_t = currentBri(on ? opacity : 0); if (_bri_t < 255) { byte r = scale8(R(col), _bri_t); byte g = scale8(G(col), _bri_t); @@ -443,8 +472,8 @@ void IRAM_ATTR Segment::setPixelColor(int i, uint32_t col) // expand pixel (taking into account start, grouping, spacing [and offset]) i = i * groupLength(); - if (getOption(SEG_OPTION_REVERSED)) { // is segment reversed? - if (getOption(SEG_OPTION_MIRROR)) { // is segment mirrored? + if (reverse) { // is segment reversed? + if (mirror) { // is segment mirrored? i = (len - 1) / 2 - i; //only need to index half the pixels } else { i = (len - 1) - i; @@ -454,9 +483,9 @@ void IRAM_ATTR Segment::setPixelColor(int i, uint32_t col) // set all the pixels in the group for (int j = 0; j < grouping; j++) { - uint16_t indexSet = i + ((getOption(SEG_OPTION_REVERSED)) ? -j : j); + uint16_t indexSet = i + ((reverse) ? -j : j); if (indexSet >= start && indexSet < stop) { - if (getOption(SEG_OPTION_MIRROR)) { //set the corresponding mirrored pixel + if (mirror) { //set the corresponding mirrored pixel uint16_t indexMir = stop - indexSet + start - 1; indexMir += offset; // offset/phase if (indexMir >= stop) indexMir -= len; // wrap @@ -501,7 +530,7 @@ void Segment::setPixelColor(float i, uint32_t col, bool aa) uint32_t Segment::getPixelColor(uint16_t i) { #ifndef WLED_DISABLE_2D - if (height() > 1) { // if this does not work use strip.isMatrix + if (is2D()) { // if this does not work use strip.isMatrix uint16_t vH = virtualHeight(); // segment height in logical pixels uint16_t vW = virtualWidth(); switch (map1D2D) { @@ -521,7 +550,9 @@ uint32_t Segment::getPixelColor(uint16_t i) } #endif - if (getOption(SEG_OPTION_REVERSED)) i = virtualLength() - i - 1; + if (leds) return RGBW32(leds[i].r, leds[i].g, leds[i].b, 0); + + if (reverse) i = virtualLength() - i - 1; i *= groupLength(); i += start; /* offset/phase */ @@ -589,29 +620,34 @@ void Segment::refreshLightCapabilities() { * Fills segment with color */ void Segment::fill(uint32_t c) { - const uint16_t cols = strip.isMatrix ? virtualWidth() : virtualLength(); + const uint16_t cols = is2D() ? virtualWidth() : virtualLength(); const uint16_t rows = virtualHeight(); // will be 1 for 1D for(uint16_t y = 0; y < rows; y++) for (uint16_t x = 0; x < cols; x++) { - if (strip.isMatrix) setPixelColorXY(x, y, c); - else setPixelColor(x, c); + if (is2D()) setPixelColorXY(x, y, c); + else setPixelColor(x, c); } } // Blends the specified color with the existing pixel color. -void Segment::blendPixelColor(uint16_t n, uint32_t color, uint8_t blend) { +void Segment::blendPixelColor(int n, uint32_t color, uint8_t blend) { setPixelColor(n, color_blend(getPixelColor(n), color, blend)); } // Adds the specified color with the existing pixel color perserving color balance. -void Segment::addPixelColor(uint16_t n, uint32_t color) { +void Segment::addPixelColor(int n, uint32_t color) { setPixelColor(n, color_add(getPixelColor(n), color)); } +void Segment::fadePixelColor(uint16_t n, uint8_t fade) { + CRGB pix = CRGB(getPixelColor(n)).nscale8_video(fade); + setPixelColor(n, pix); +} + /* * fade out function, higher rate = quicker fade */ void Segment::fade_out(uint8_t rate) { - const uint16_t cols = strip.isMatrix ? virtualWidth() : virtualLength(); + const uint16_t cols = is2D() ? virtualWidth() : virtualLength(); const uint16_t rows = virtualHeight(); // will be 1 for 1D rate = (255-rate) >> 1; @@ -624,7 +660,7 @@ void Segment::fade_out(uint8_t rate) { int b2 = B(color); for (uint16_t y = 0; y < rows; y++) for (uint16_t x = 0; x < cols; x++) { - color = strip.isMatrix ? getPixelColorXY(x, y) : getPixelColor(x); + color = is2D() ? getPixelColorXY(x, y) : getPixelColor(x); int w1 = W(color); int r1 = R(color); int g1 = G(color); @@ -641,19 +677,19 @@ void Segment::fade_out(uint8_t rate) { gdelta += (g2 == g1) ? 0 : (g2 > g1) ? 1 : -1; bdelta += (b2 == b1) ? 0 : (b2 > b1) ? 1 : -1; - if (strip.isMatrix) setPixelColorXY(x, y, r1 + rdelta, g1 + gdelta, b1 + bdelta, w1 + wdelta); - else setPixelColor(x, r1 + rdelta, g1 + gdelta, b1 + bdelta, w1 + wdelta); + if (is2D()) setPixelColorXY(x, y, r1 + rdelta, g1 + gdelta, b1 + bdelta, w1 + wdelta); + else setPixelColor(x, r1 + rdelta, g1 + gdelta, b1 + bdelta, w1 + wdelta); } } // fades all pixels to black using nscale8() void Segment::fadeToBlackBy(uint8_t fadeBy) { - const uint16_t cols = strip.isMatrix ? virtualWidth() : virtualLength(); + const uint16_t cols = is2D() ? virtualWidth() : virtualLength(); const uint16_t rows = virtualHeight(); // will be 1 for 1D for (uint16_t y = 0; y < rows; y++) for (uint16_t x = 0; x < cols; x++) { - if (strip.isMatrix) setPixelColorXY(x, y, CRGB(getPixelColorXY(x,y)).nscale8(255-fadeBy)); - else setPixelColor(x, CRGB(getPixelColor(x)).nscale8(255-fadeBy)); + if (is2D()) setPixelColorXY(x, y, CRGB(getPixelColorXY(x,y)).nscale8(255-fadeBy)); + else setPixelColor(x, CRGB(getPixelColor(x)).nscale8(255-fadeBy)); } } @@ -662,7 +698,8 @@ void Segment::fadeToBlackBy(uint8_t fadeBy) { */ void Segment::blur(uint8_t blur_amount) { - if (strip.isMatrix) { +#ifndef WLED_DISABLE_2D + if (is2D()) { // compatibility with 2D const uint16_t cols = virtualWidth(); const uint16_t rows = virtualHeight(); @@ -670,6 +707,7 @@ void Segment::blur(uint8_t blur_amount) for (uint16_t k = 0; k < cols; k++) blurCol(k, blur_amount); // blur all columns return; } +#endif uint8_t keep = 255 - blur_amount; uint8_t seep = blur_amount >> 1; CRGB carryover = CRGB::Black; @@ -735,11 +773,12 @@ uint8_t Segment::get_random_wheel_index(uint8_t pos) { * @param pbri Value to scale the brightness of the returned color by. Default is 255. (no scaling) * @returns Single color from palette */ -uint32_t IRAM_ATTR Segment::color_from_palette(uint16_t i, bool mapping, bool wrap, uint8_t mcol, uint8_t pbri) +uint32_t Segment::color_from_palette(uint16_t i, bool mapping, bool wrap, uint8_t mcol, uint8_t pbri) { // default palette or no RGB support on segment - if (palette == 0 || !(_capabilities & 0x01)) { - uint32_t color = colors[constrain(mcol,0,NUM_COLORS-1)]; // SEGCOLOR(mcol); + if ((palette == 0 && mcol < NUM_COLORS) || !(_capabilities & 0x01)) { + uint32_t color = (transitional && _t) ? _t->_colorT[mcol] : colors[mcol]; + color = strip.gammaCorrectCol ? gamma32(color) : color; if (pbri == 255) return color; return RGBW32(scale8_video(R(color),pbri), scale8_video(G(color),pbri), scale8_video(B(color),pbri), scale8_video(W(color),pbri)); } @@ -749,8 +788,8 @@ uint32_t IRAM_ATTR Segment::color_from_palette(uint16_t i, bool mapping, bool wr if (!wrap) paletteIndex = scale8(paletteIndex, 240); //cut off blend at palette "end" CRGB fastled_col; CRGBPalette16 curPal; - if (transitional) curPal = /*_t->*/_palT; - else loadPalette(curPal, palette); + if (transitional && _t) curPal = _t->_palT; + else loadPalette(curPal, palette); fastled_col = ColorFromPalette(curPal, paletteIndex, pbri, (strip.paletteBlend == 3)? NOBLEND:LINEARBLEND); // NOTE: paletteBlend should be global return RGBW32(fastled_col.r, fastled_col.g, fastled_col.b, 0); @@ -769,10 +808,11 @@ void WS2812FX::finalizeInit(void) seg.markForReset(); seg.resetIfRequired(); } -// for (uint8_t i = 0; i < getMaxSegments(); i++) { -// _segments[i].markForReset(); -// _segments[i].resetIfRequired(); -// } + + // for the lack of better place enumerate ledmaps here + // if we do it in json.cpp (serializeInfo()) we are getting flashes on LEDs + // unfortunately this means we do not get updates after uploads + enumerateLedmaps(); _hasWhiteChannel = _isOffRefreshRequired = false; @@ -814,8 +854,23 @@ void WS2812FX::finalizeInit(void) #endif } - //segments are created in makeAutoSegments(); + //initialize leds array. TBD: realloc if nr of leds change + if (Segment::_globalLeds) { + purgeSegments(true); + free(Segment::_globalLeds); + Segment::_globalLeds = nullptr; + } + if (useLedsArray) { + #if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM) + if (psramFound()) + Segment::_globalLeds = (CRGB*) ps_malloc(sizeof(CRGB) * _length); + else + #endif + Segment::_globalLeds = (CRGB*) malloc(sizeof(CRGB) * _length); + memset(Segment::_globalLeds, 0, sizeof(CRGB) * _length); + } + //segments are created in makeAutoSegments(); setBrightness(_brightness); } @@ -828,8 +883,6 @@ void WS2812FX::service() { _isServicing = true; _segment_index = 0; for (segment &seg : _segments) { -// for (int i = 0; i < getMaxSegments(); i++) { -// Segment &seg = getSegment(i); // reset the segment runtime data if needed seg.resetIfRequired(); @@ -842,27 +895,24 @@ void WS2812FX::service() { doShow = true; uint16_t delay = FRAMETIME; - if (!seg.getOption(SEG_OPTION_FREEZE)) { //only run effect function if not frozen + if (!seg.freeze) { //only run effect function if not frozen _virtualSegmentLength = seg.virtualLength(); - _bri_t = seg.currentBri(seg.getOption(SEG_OPTION_ON) ? seg.opacity : 0); - uint8_t _cct_t = seg.currentBri(seg.cct, true); - _colors_t[0] = seg.currentColor(0, seg.colors[0]); - _colors_t[1] = seg.currentColor(1, seg.colors[1]); - _colors_t[2] = seg.currentColor(2, seg.colors[2]); + _colors_t[0] = seg.currentColor(0, seg.colors[0]); + _colors_t[1] = seg.currentColor(1, seg.colors[1]); + _colors_t[2] = seg.currentColor(2, seg.colors[2]); seg.currentPalette(_currentPalette, seg.palette); - seg.handleTransition(); - - if (!cctFromRgb || correctWB) busses.setSegmentCCT(_cct_t, correctWB); - for (uint8_t c = 0; c < NUM_COLORS; c++) { - _colors_t[c] = gamma32(_colors_t[c]); - } + if (!cctFromRgb || correctWB) busses.setSegmentCCT(seg.currentBri(seg.cct, true), correctWB); + for (uint8_t c = 0; c < NUM_COLORS; c++) _colors_t[c] = gamma32(_colors_t[c]); // effect blending (execute previous effect) // actual code may be a bit more involved as effects have runtime data including allocated memory - //if (getOption(SEG_OPTION_TRANSITIONAL) && seg._modeP) (*_mode[seg._modeP])(progress()); - delay = (*_mode[seg.mode])(); + //if (seg.transitional && seg._modeP) (*_mode[seg._modeP])(progress()); + delay = (*_mode[seg.currentMode(seg.mode)])(); if (seg.mode != FX_MODE_HALLOWEEN_EYES) seg.call++; + if (seg.transitional && delay > FRAMETIME) delay = FRAMETIME; // foce faster updates during transition + + seg.handleTransition(); } seg.next_time = nowUp + delay; @@ -879,66 +929,16 @@ void WS2812FX::service() { _isServicing = false; } -void WS2812FX::setPixelColor(int i, uint32_t col) +void IRAM_ATTR WS2812FX::setPixelColor(int i, uint32_t col) { if (i >= _length) return; - - // if realtime mode is active and applying to main segment - if (realtimeMode && useMainSegmentOnly) { - Segment &seg = _segments[_mainSegment]; - uint16_t len = seg.length(); // length of segment in number of pixels - - if (seg.opacity < 255) { - byte r = scale8(R(col), seg.opacity); - byte g = scale8(G(col), seg.opacity); - byte b = scale8(B(col), seg.opacity); - byte w = scale8(W(col), seg.opacity); - col = RGBW32(r, g, b, w); - } - - // get physical pixel address (taking into account start, grouping, spacing [and offset]) - i = i * seg.groupLength(); - if (seg.getOption(SEG_OPTION_REVERSED)) { // is segment reversed? - if (seg.getOption(SEG_OPTION_MIRROR)) { // is segment mirrored? - i = (len - 1) / 2 - i; //only need to index half the pixels - } else { - i = (len - 1) - i; - } - } - i += seg.start; // starting pixel in a group - - // set all the pixels in the group - for (uint16_t j = 0; j < seg.grouping; j++) { - uint16_t indexSet = i + ((seg.getOption(SEG_OPTION_REVERSED)) ? -j : j); - if (indexSet >= seg.start && indexSet < seg.stop) { - - if (seg.getOption(SEG_OPTION_MIRROR)) { //set the corresponding mirrored pixel - uint16_t indexMir = seg.stop - indexSet + seg.start - 1; - indexMir += seg.offset; // offset/phase - if (indexMir >= seg.stop) indexMir -= len; // wrap - if (indexMir < customMappingSize) indexMir = customMappingTable[indexMir]; - - busses.setPixelColor(indexMir, col); - } - indexSet += seg.offset; // offset/phase - if (indexSet >= seg.stop) indexSet -= len; // wrap - if (indexSet < customMappingSize) indexSet = customMappingTable[indexSet]; - - busses.setPixelColor(indexSet, col); - } - } - } else { - if (i < customMappingSize) i = customMappingTable[i]; - busses.setPixelColor(i, col); - } + if (i < customMappingSize) i = customMappingTable[i]; + busses.setPixelColor(i, col); } uint32_t WS2812FX::getPixelColor(uint16_t i) { if (i >= _length) return 0; - //#ifndef WLED_DISABLE_2D - //if (isMatrix) return getPixelColorXY(i%matrixWidth, i/matrixWidth); // compatibility w/ non-effect fn - //#endif if (i < customMappingSize) i = customMappingTable[i]; return busses.getPixelColor(i); } @@ -1071,13 +1071,12 @@ void WS2812FX::setTargetFps(uint8_t fps) { void WS2812FX::setMode(uint8_t segid, uint8_t m) { if (segid >= _segments.size()) return; -// if (segid >= getMaxSegments()) return; if (m >= getModeCount()) m = getModeCount() - 1; if (_segments[segid].mode != m) { - //_segments[segid].startTransition(_transitionDur); // set effect transitions - _segments[segid].markForReset(); + _segments[segid].startTransition(_transitionDur); // set effect transitions + //_segments[segid].markForReset(); _segments[segid].mode = m; } } @@ -1087,8 +1086,6 @@ void WS2812FX::setColor(uint8_t slot, uint32_t c) { if (slot >= NUM_COLORS) return; for (segment &seg : _segments) { -// for (int i = 0; i < getMaxSegments(); i++) { -// Segment &seg = getSegment(i); if (seg.isSelected()) { seg.setColor(slot, c); } @@ -1097,8 +1094,6 @@ void WS2812FX::setColor(uint8_t slot, uint32_t c) { void WS2812FX::setCCT(uint16_t k) { for (segment &seg : _segments) { -// for (int i = 0; i < getMaxSegments(); i++) { -// Segment &seg = getSegment(i); if (seg.isActive() && seg.isSelected()) { seg.setCCT(k); } @@ -1111,8 +1106,6 @@ void WS2812FX::setBrightness(uint8_t b, bool direct) { _brightness = b; if (_brightness == 0) { //unfreeze all segments on power off for (segment &seg : _segments) { -// for (int i = 0; i < getMaxSegments(); i++) { -// Segment &seg = getSegment(i); seg.setOption(SEG_OPTION_FREEZE, false); } } @@ -1129,8 +1122,6 @@ uint8_t WS2812FX::getFirstSelectedSegId(void) { size_t i = 0; for (segment &seg : _segments) { -// for (int i = 0; i < getMaxSegments(); i++) { -// Segment &seg = getSegment(i); if (seg.isSelected()) return i; i++; } @@ -1139,16 +1130,6 @@ uint8_t WS2812FX::getFirstSelectedSegId(void) } void WS2812FX::setMainSegmentId(uint8_t n) { -// if (n >= getMaxSegments()) return; -// //use supplied n if active, or first active -// if (_segments[n].isActive()) { -// _mainSegment = n; return; -// } -// for (uint8_t i = 0; i < getMaxSegments(); i++) { -// if (_segments[i].isActive()) { -// _mainSegment = i; return; -// } -// } _mainSegment = 0; if (n < _segments.size()) { _mainSegment = n; @@ -1157,16 +1138,14 @@ void WS2812FX::setMainSegmentId(uint8_t n) { } uint8_t WS2812FX::getLastActiveSegmentId(void) { -// for (uint8_t i = getMaxSegments() -1; i > 0; i--) { -// if (_segments[i].isActive()) return i; -// } -// return 0; - return _segments.size()-1; + for (size_t i = _segments.size() -1; i > 0; i--) { + if (_segments[i].isActive()) return i; + } + return 0; } uint8_t WS2812FX::getActiveSegmentsNum(void) { uint8_t c = 0; -// for (uint8_t i = 0; i < getMaxSegments(); i++) { for (size_t i = 0; i < _segments.size(); i++) { if (_segments[i].isActive()) c++; } @@ -1175,7 +1154,7 @@ uint8_t WS2812FX::getActiveSegmentsNum(void) { uint16_t WS2812FX::getLengthPhysical(void) { uint16_t len = 0; - for (uint8_t b = 0; b < busses.getNumBusses(); b++) { + for (size_t b = 0; b < busses.getNumBusses(); b++) { Bus *bus = busses.getBus(b); if (bus->getType() >= TYPE_NET_DDP_RGB) continue; //exclude non-physical network busses len += bus->getLength(); @@ -1187,7 +1166,7 @@ uint16_t WS2812FX::getLengthPhysical(void) { //returns if there is an RGBW bus (supports RGB and White, not only white) //not influenced by auto-white mode, also true if white slider does not affect output white channel bool WS2812FX::hasRGBWBus(void) { - for (uint8_t b = 0; b < busses.getNumBusses(); b++) { + for (size_t b = 0; b < busses.getNumBusses(); b++) { Bus *bus = busses.getBus(b); if (bus == nullptr || bus->getLength()==0) break; switch (bus->getType()) { @@ -1202,7 +1181,7 @@ bool WS2812FX::hasRGBWBus(void) { bool WS2812FX::hasCCTBus(void) { if (cctFromRgb && !correctWB) return false; - for (uint8_t b = 0; b < busses.getNumBusses(); b++) { + for (size_t b = 0; b < busses.getNumBusses(); b++) { Bus *bus = busses.getBus(b); if (bus == nullptr || bus->getLength()==0) break; switch (bus->getType()) { @@ -1214,13 +1193,13 @@ bool WS2812FX::hasCCTBus(void) { return false; } -void WS2812FX::purgeSegments(void) { +void WS2812FX::purgeSegments(bool force) { // remove all inactive segments (from the back) int deleted = 0; - if (_segments.size() <= 1 || _isServicing) return; - for (int i = _segments.size()-1; i > 0; i--) - if (_segments[i].stop == 0) { - DEBUG_PRINT(F("-- Removing segment: ")); DEBUG_PRINTLN(i); + if (_segments.size() <= 1) return; + for (size_t i = _segments.size()-1; i > 0; i--) + if (_segments[i].stop == 0 || force) { + DEBUG_PRINT(F("Purging segment segment: ")); DEBUG_PRINTLN(i); deleted++; _segments.erase(_segments.begin() + i); } @@ -1231,13 +1210,11 @@ void WS2812FX::purgeSegments(void) { } Segment& WS2812FX::getSegment(uint8_t id) { -// return _segments[id >= getMaxSegments() ? getMainSegmentId() : id]; return _segments[id >= _segments.size() ? getMainSegmentId() : id]; // vectors } void WS2812FX::setSegment(uint8_t n, uint16_t i1, uint16_t i2, uint8_t grouping, uint8_t spacing, uint16_t offset, uint16_t startY, uint16_t stopY) { if (n >= _segments.size()) return; -// if (n >= getMaxSegments()) return; Segment& seg = _segments[n]; //return if neither bounds nor grouping have changed @@ -1289,56 +1266,17 @@ void WS2812FX::setSegment(uint8_t n, uint16_t i1, uint16_t i2, uint8_t grouping, void WS2812FX::restartRuntime() { for (segment &seg : _segments) seg.markForReset(); -// for (uint8_t i = 0; i < getMaxSegments(); i++) { -// Segment &seg = getSegment(i); -// seg.markForReset(); -// } } void WS2812FX::resetSegments() { _segments.clear(); // destructs all Segment as part of clearing + #ifndef WLED_DISABLE_2D segment seg = isMatrix ? Segment(0, matrixWidth, 0, matrixHeight) : Segment(0, _length); + #else + segment seg = Segment(0, _length); + #endif _segments.push_back(seg); _mainSegment = 0; -/* - for (uint8_t i = 0; i < getMaxSegments(); i++) if (_segments[i].name) delete[] _segments[i].name; - _mainSegment = 0; - memset(_segments, 0, sizeof(_segments)); - //memset(_segmentruntimes, 0, sizeof(_segmentruntimes)); - _segment_index = 0; - _segments[0].mode = DEFAULT_MODE; - _segments[0].colors[0] = DEFAULT_COLOR; - _segments[0].start = 0; - _segments[0].startY = 0; - _segments[0].speed = DEFAULT_SPEED; - _segments[0].intensity = DEFAULT_INTENSITY; - _segments[0].stop = isMatrix ? matrixWidth : _length; - _segments[0].stopY = isMatrix ? matrixHeight : 1; - _segments[0].grouping = 1; - _segments[0].setOption(SEG_OPTION_SELECTED, 1); - _segments[0].setOption(SEG_OPTION_ON, 1); - _segments[0].opacity = 255; - _segments[0].cct = 127; - _segments[0].custom1 = DEFAULT_C1; - _segments[0].custom2 = DEFAULT_C2; - _segments[0].custom3 = DEFAULT_C3; - - for (uint16_t i = 1; i < getMaxSegments(); i++) - { - _segments[i].colors[0] = _segments[i].color_wheel(i*51); - _segments[i].grouping = 1; - _segments[i].setOption(SEG_OPTION_ON, 1); - _segments[i].opacity = 255; - _segments[i].cct = 127; - _segments[i].speed = DEFAULT_SPEED; - _segments[i].intensity = DEFAULT_INTENSITY; - _segments[i].custom1 = DEFAULT_C1; - _segments[i].custom2 = DEFAULT_C2; - _segments[i].custom3 = DEFAULT_C3; - _segments[i].markForReset(); - } - _segments[0].markForReset(); -*/ } void WS2812FX::makeAutoSegments(bool forceReset) { @@ -1368,7 +1306,7 @@ void WS2812FX::makeAutoSegments(bool forceReset) { segStops[s] = segStarts[s] + b->getLength(); //check for overlap with previous segments - for (uint8_t j = 0; j < s; j++) { + for (size_t j = 0; j < s; j++) { if (segStops[j] > segStarts[s] && segStarts[j] < segStops[s]) { //segments overlap, merge segStarts[j] = min(segStarts[s],segStarts[j]); @@ -1379,15 +1317,11 @@ void WS2812FX::makeAutoSegments(bool forceReset) { s++; } _segments.clear(); - for (uint8_t i = 0; i < s; i++) { + for (size_t i = 0; i < s; i++) { Segment seg = Segment(segStarts[i], segStops[i]); seg.setOption(SEG_OPTION_SELECTED, true); _segments.push_back(seg); } -// for (uint8_t i = 0; i < getMaxSegments(); i++) { -// _segments[i].setOption(SEG_OPTION_SELECTED, true); -// setSegment(i, segStarts[i], segStops[i]); -// } _mainSegment = 0; } else { if (forceReset || getSegmentsNum() == 0) resetSegments(); @@ -1405,26 +1339,18 @@ void WS2812FX::makeAutoSegments(bool forceReset) { void WS2812FX::fixInvalidSegments() { //make sure no segment is longer than total (sanity check) - for (int i = getSegmentsNum()-1; i > 0; i--) { + for (size_t i = getSegmentsNum()-1; i > 0; i--) { if (_segments[i].start >= _length) { _segments.erase(_segments.begin()+i); continue; } if (_segments[i].stop > _length) _segments[i].stop = _length; // this is always called as the last step after finalizeInit(), update covered bus types _segments[i].refreshLightCapabilities(); } -// for (uint8_t i = 0; i < getMaxSegments(); i++) { -// if (_segments[i].start >= _length) { _segments[i].start = _segments[i].stop = 0; _segments[i].markForReset(); } -// if (_segments[i].stop > _length) { _segments[i].stop = _length; _segments[i].markForReset(); } -// // this is always called as the last step after finalizeInit(), update covered bus types -// if (_segments[i].isActive()) _segments[i].refreshLightCapabilities(); -// } } //true if all segments align with a bus, or if a segment covers the total length bool WS2812FX::checkSegmentAlignment() { bool aligned = false; for (segment &seg : _segments) { -// for (uint8_t i = 0; i < getMaxSegments(); i++) { -// Segment &seg = getSegment(i); for (uint8_t b = 0; bgetStart() && seg.stop == bus->getStart() + bus->getLength()) aligned = true; @@ -1442,7 +1368,6 @@ uint8_t WS2812FX::setPixelSegment(uint8_t n) { uint8_t prevSegId = _segment_index; if (n < _segments.size()) { -// if (n < getMaxSegments()) { _segment_index = n; _virtualSegmentLength = _segments[_segment_index].virtualLength(); } @@ -1463,12 +1388,21 @@ void WS2812FX::setRange(uint16_t i, uint16_t i2, uint32_t col) void WS2812FX::setTransitionMode(bool t) { for (segment &seg : _segments) if (!seg.transitional) seg.startTransition(t ? _transitionDur : 0); -// for (uint8_t i = 0; i < getMaxSegments(); i++) { -// Segment &seg = getSegment(i); -// if (!seg.transitional)seg.startTransition(t ? _transitionDur : 0); -// } } +#ifdef WLED_DEBUG +void WS2812FX::printSize() +{ + size_t size = 0; + for (Segment seg : _segments) size += seg.getSize(); + DEBUG_PRINTF("Segments: %d -> %uB\n", _segments.size(), size); + DEBUG_PRINTF("Modes: %d*%d=%uB\n", sizeof(mode_ptr), _mode.size(), (_mode.capacity()*sizeof(mode_ptr))); + DEBUG_PRINTF("Data: %d*%d=%uB\n", sizeof(const char *), _modeData.size(), (_modeData.capacity()*sizeof(const char *))); + DEBUG_PRINTF("Map: %d*%d=%uB\n", sizeof(uint16_t), (int)customMappingSize, customMappingSize*sizeof(uint16_t)); + if (useLedsArray) DEBUG_PRINTF("Buffer: %d*%d=%uB\n", sizeof(CRGB), (int)_length, _length*sizeof(CRGB)); +} +#endif + void WS2812FX::loadCustomPalettes() { byte tcp[72]; //support gradient palettes with up to 18 entries @@ -1554,54 +1488,6 @@ void WS2812FX::deserializeMap(uint8_t n) { releaseJSONBufferLock(); } -//gamma 2.8 lookup table used for color correction -static byte gammaT[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, - 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, - 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, - 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25, - 25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36, - 37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, - 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, - 69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89, - 90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114, - 115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142, - 144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175, - 177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213, - 215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 }; - -uint8_t WS2812FX::gamma8_cal(uint8_t b, float gamma) { - return (int)(powf((float)b / 255.0f, gamma) * 255.0f + 0.5f); -} - -void WS2812FX::calcGammaTable(float gamma) -{ - for (uint16_t i = 0; i < 256; i++) { - gammaT[i] = gamma8_cal(i, gamma); - } -} - -uint8_t WS2812FX::gamma8(uint8_t b) -{ - return gammaT[b]; -} - -uint32_t WS2812FX::gamma32(uint32_t color) -{ - if (!gammaCorrectCol) return color; - uint8_t w = W(color); - uint8_t r = R(color); - uint8_t g = G(color); - uint8_t b = B(color); - w = gammaT[w]; - r = gammaT[r]; - g = gammaT[g]; - b = gammaT[b]; - return RGBW32(r, g, b, w); -} WS2812FX* WS2812FX::instance = nullptr; diff --git a/wled00/bus_manager.h b/wled00/bus_manager.h index 955fc31f..405c402a 100644 --- a/wled00/bus_manager.h +++ b/wled00/bus_manager.h @@ -518,7 +518,7 @@ class BusOnOff : public Bus { uint8_t b = B(c); uint8_t w = W(c); - _data = bool((r+g+b+w)*_bri) ? 0xFF : 0; + _data = bool((r+g+b+w) && _bri) ? 0xFF : 0; } uint32_t getPixelColor(uint16_t pix) { diff --git a/wled00/button.cpp b/wled00/button.cpp index 0567abb0..2bd093ce 100644 --- a/wled00/button.cpp +++ b/wled00/button.cpp @@ -265,7 +265,9 @@ void handleButton() if (b == 0 && dur > WLED_LONG_AP) { // long press on button 0 (when released) if (dur > WLED_LONG_FACTORY_RESET) { // factory reset if pressed > 10 seconds WLED_FS.format(); + #ifdef WLED_ADD_EEPROM_SUPPORT clearEEPROM(); + #endif doReboot = true; } else { WLED::instance().initAP(true); diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index b8796b8d..9759063f 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -90,6 +90,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { CJSON(strip.cctBlending, hw_led[F("cb")]); Bus::setCCTBlend(strip.cctBlending); strip.setTargetFps(hw_led["fps"]); //NOP if 0, default 42 FPS + CJSON(strip.useLedsArray, hw_led[F("ld")]); #ifndef WLED_DISABLE_2D // 2D Matrix Settings @@ -266,6 +267,40 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { if (serialBaud < 96 || serialBaud > 15000) serialBaud = 1152; updateBaudRate(serialBaud *100); + JsonArray hw_if_i2c = hw[F("if")][F("i2c-pin")]; + CJSON(i2c_sda, hw_if_i2c[0]); + CJSON(i2c_scl, hw_if_i2c[1]); + PinManagerPinType i2c[2] = { { i2c_sda, true }, { i2c_scl, true } }; + if (pinManager.allocateMultiplePins(i2c, 2, PinOwner::HW_I2C)) { + #ifdef ESP32 + Wire.setPins(i2c_sda, i2c_scl); // this will fail if Wire is initilised (Wire.begin() called prior) + #endif + Wire.begin(); + uint8_t i2c[2] = {i2c_sda, i2c_scl}; + pinManager.deallocateMultiplePins(i2c, 2, PinOwner::HW_I2C); + } else { + i2c_sda = -1; + i2c_scl = -1; + } + JsonArray hw_if_spi = hw[F("if")][F("spi-pin")]; + CJSON(spi_mosi, hw_if_spi[0]); + CJSON(spi_sclk, hw_if_spi[1]); + CJSON(spi_cs, hw_if_spi[2]); + PinManagerPinType spi[3] = { { spi_mosi, true }, { spi_sclk, true }, { spi_cs, true } }; + if (pinManager.allocateMultiplePins(spi, 3, PinOwner::HW_SPI)) { + #ifdef ESP8266 + SPI.begin(); + #else + SPI.begin(spi_sclk, (int8_t)-1, spi_mosi, spi_cs); + #endif + uint8_t spi[3] = { spi_mosi, spi_sclk, spi_cs }; + pinManager.deallocateMultiplePins(spi, 3, PinOwner::HW_SPI); + } else { + spi_mosi = -1; + spi_sclk = -1; + spi_cs = -1; + } + //int hw_status_pin = hw[F("status")]["pin"]; // -1 JsonObject light = doc[F("light")]; @@ -507,7 +542,9 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { void deserializeConfigFromFS() { bool success = deserializeConfigSec(); if (!success) { //if file does not exist, try reading from EEPROM + #ifdef WLED_ADD_EEPROM_SUPPORT deEEPSettings(); + #endif return; } @@ -517,7 +554,9 @@ void deserializeConfigFromFS() { success = readObjectFromFile("/cfg.json", nullptr, &doc); if (!success) { //if file does not exist, try reading from EEPROM + #ifdef WLED_ADD_EEPROM_SUPPORT deEEPSettings(); + #endif releaseJSONBufferLock(); return; } @@ -621,6 +660,7 @@ void serializeConfig() { hw_led[F("cb")] = strip.cctBlending; hw_led["fps"] = strip.getTargetFps(); hw_led[F("rgbwm")] = Bus::getAutoWhiteMode(); // global override + hw_led[F("ld")] = strip.useLedsArray; #ifndef WLED_DISABLE_2D // 2D Matrix Settings @@ -709,6 +749,15 @@ void serializeConfig() { hw[F("baud")] = serialBaud; + JsonObject hw_if = hw.createNestedObject(F("if")); + JsonArray hw_if_i2c = hw_if.createNestedArray("i2c-pin"); + hw_if_i2c.add(i2c_sda); + hw_if_i2c.add(i2c_scl); + JsonArray hw_if_spi = hw_if.createNestedArray("spi-pin"); + hw_if_spi.add(spi_mosi); + hw_if_spi.add(spi_sclk); + hw_if_spi.add(spi_cs); + //JsonObject hw_status = hw.createNestedObject("status"); //hw_status["pin"] = -1; diff --git a/wled00/colors.cpp b/wled00/colors.cpp index abe1cc4c..c42c9076 100644 --- a/wled00/colors.cpp +++ b/wled00/colors.cpp @@ -7,7 +7,7 @@ /* * color blend function */ -uint32_t IRAM_ATTR color_blend(uint32_t color1, uint32_t color2, uint16_t blend, bool b16) { +uint32_t color_blend(uint32_t color1, uint32_t color2, uint16_t blend, bool b16) { if(blend == 0) return color1; uint16_t blendmax = b16 ? 0xFFFF : 0xFF; if(blend == blendmax) return color2; @@ -319,3 +319,53 @@ uint16_t approximateKelvinFromRGB(uint32_t rgb) { return (k > 10091) ? 10091 : k; } } + +//gamma 2.8 lookup table used for color correction +static byte gammaT[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, + 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, + 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, + 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25, + 25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36, + 37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, + 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, + 69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89, + 90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114, + 115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142, + 144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175, + 177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213, + 215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 }; + +uint8_t gamma8_cal(uint8_t b, float gamma) +{ + return (int)(powf((float)b / 255.0f, gamma) * 255.0f + 0.5f); +} + +void calcGammaTable(float gamma) +{ + for (uint16_t i = 0; i < 256; i++) { + gammaT[i] = gamma8_cal(i, gamma); + } +} + +uint8_t gamma8(uint8_t b) +{ + return gammaT[b]; +} + +uint32_t gamma32(uint32_t color) +{ + //if (!strip.gammaCorrectCol) return color; + uint8_t w = W(color); + uint8_t r = R(color); + uint8_t g = G(color); + uint8_t b = B(color); + w = gammaT[w]; + r = gammaT[r]; + g = gammaT[g]; + b = gammaT[b]; + return RGBW32(r, g, b, w); +} diff --git a/wled00/console_font_5x12.h b/wled00/console_font_5x12.h new file mode 100644 index 00000000..8429de7d --- /dev/null +++ b/wled00/console_font_5x12.h @@ -0,0 +1,4099 @@ +// font curtesy of https://github.com/idispatch/raster-fonts +static const unsigned char console_font_5x12[] PROGMEM = { + + /* + * code=0, hex=0x00, ascii="^@" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=1, hex=0x01, ascii="^A" + */ + 0x70, /* 01110 */ + 0x88, /* 10001 */ + 0x88, /* 10001 */ + 0xD8, /* 11011 */ + 0x88, /* 10001 */ + 0x88, /* 10001 */ + 0xD8, /* 11011 */ + 0xA8, /* 10101 */ + 0x88, /* 10001 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=2, hex=0x02, ascii="^B" + */ + 0x70, /* 01110 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xA8, /* 10101 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xA8, /* 10101 */ + 0xD8, /* 11011 */ + 0xF8, /* 11111 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=3, hex=0x03, ascii="^C" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xD8, /* 11011 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=4, hex=0x04, ascii="^D" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=5, hex=0x05, ascii="^E" + */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=6, hex=0x06, ascii="^F" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=7, hex=0x07, ascii="^G" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=8, hex=0x08, ascii="^H" + */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x98, /* 10011 */ + 0x98, /* 10011 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + + /* + * code=9, hex=0x09, ascii="^I" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=10, hex=0x0A, ascii="^J" + */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x88, /* 10001 */ + 0xA8, /* 10101 */ + 0xA8, /* 10101 */ + 0x88, /* 10001 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + + /* + * code=11, hex=0x0B, ascii="^K" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x38, /* 00111 */ + 0x18, /* 00011 */ + 0x28, /* 00101 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=12, hex=0x0C, ascii="^L" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0xE0, /* 11100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=13, hex=0x0D, ascii="^M" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x30, /* 00110 */ + 0x30, /* 00110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0xC0, /* 11000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=14, hex=0x0E, ascii="^N" + */ + 0x30, /* 00110 */ + 0x50, /* 01010 */ + 0x70, /* 01110 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0xC0, /* 11000 */ + 0xC0, /* 11000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=15, hex=0x0F, ascii="^O" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xA8, /* 10101 */ + 0x70, /* 01110 */ + 0x88, /* 10001 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=16, hex=0x10, ascii="^P" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0xC0, /* 11000 */ + 0xE0, /* 11100 */ + 0xF0, /* 11110 */ + 0xE0, /* 11100 */ + 0xC0, /* 11000 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=17, hex=0x11, ascii="^Q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x30, /* 00110 */ + 0x70, /* 01110 */ + 0xF0, /* 11110 */ + 0x70, /* 01110 */ + 0x30, /* 00110 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=18, hex=0x12, ascii="^R" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xA8, /* 10101 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=19, hex=0x13, ascii="^S" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=20, hex=0x14, ascii="^T" + */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0xD0, /* 11010 */ + 0xD0, /* 11010 */ + 0xD0, /* 11010 */ + 0xD0, /* 11010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=21, hex=0x15, ascii="^U" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x80, /* 10000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=22, hex=0x16, ascii="^V" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=23, hex=0x17, ascii="^W" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xA8, /* 10101 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + + /* + * code=24, hex=0x18, ascii="^X" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=25, hex=0x19, ascii="^Y" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xA8, /* 10101 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=26, hex=0x1A, ascii="^Z" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0xF0, /* 11110 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=27, hex=0x1B, ascii="^[" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0xF0, /* 11110 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=28, hex=0x1C, ascii="^\" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=29, hex=0x1D, ascii="^]" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=30, hex=0x1E, ascii="^^" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=31, hex=0x1F, ascii="^_" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=32, hex=0x20, ascii=" " + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=33, hex=0x21, ascii="!" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=34, hex=0x22, ascii=""" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=35, hex=0x23, ascii="#" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=36, hex=0x24, ascii="$" + */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x80, /* 10000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=37, hex=0x25, ascii="%" + */ + 0x00, /* 00000 */ + 0xD0, /* 11010 */ + 0xD0, /* 11010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0xB0, /* 10110 */ + 0xB0, /* 10110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=38, hex=0x26, ascii="&" + */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0x40, /* 01000 */ + 0xA8, /* 10101 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x68, /* 01101 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=39, hex=0x27, ascii="'" + */ + 0x30, /* 00110 */ + 0x30, /* 00110 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=40, hex=0x28, ascii="(" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=41, hex=0x29, ascii=")" + */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=42, hex=0x2A, ascii="*" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0xA8, /* 10101 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=43, hex=0x2B, ascii="+" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=44, hex=0x2C, ascii="," + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + + /* + * code=45, hex=0x2D, ascii="-" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=46, hex=0x2E, ascii="." + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=47, hex=0x2F, ascii="/" + */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=48, hex=0x30, ascii="0" + */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=49, hex=0x31, ascii="1" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x60, /* 01100 */ + 0xA0, /* 10100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=50, hex=0x32, ascii="2" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=51, hex=0x33, ascii="3" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=52, hex=0x34, ascii="4" + */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x30, /* 00110 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=53, hex=0x35, ascii="5" + */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=54, hex=0x36, ascii="6" + */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=55, hex=0x37, ascii="7" + */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=56, hex=0x38, ascii="8" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=57, hex=0x39, ascii="9" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0xC0, /* 11000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=58, hex=0x3A, ascii=":" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=59, hex=0x3B, ascii=";" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + + /* + * code=60, hex=0x3C, ascii="<" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=61, hex=0x3D, ascii="=" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=62, hex=0x3E, ascii=">" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=63, hex=0x3F, ascii="?" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=64, hex=0x40, ascii="@" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xB0, /* 10110 */ + 0xB0, /* 10110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=65, hex=0x41, ascii="A" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=66, hex=0x42, ascii="B" + */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=67, hex=0x43, ascii="C" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=68, hex=0x44, ascii="D" + */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=69, hex=0x45, ascii="E" + */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=70, hex=0x46, ascii="F" + */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=71, hex=0x47, ascii="G" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xB0, /* 10110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=72, hex=0x48, ascii="H" + */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=73, hex=0x49, ascii="I" + */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=74, hex=0x4A, ascii="J" + */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=75, hex=0x4B, ascii="K" + */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0xC0, /* 11000 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=76, hex=0x4C, ascii="L" + */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=77, hex=0x4D, ascii="M" + */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=78, hex=0x4E, ascii="N" + */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xD0, /* 11010 */ + 0xD0, /* 11010 */ + 0xB0, /* 10110 */ + 0xB0, /* 10110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=79, hex=0x4F, ascii="O" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=80, hex=0x50, ascii="P" + */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=81, hex=0x51, ascii="Q" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + + /* + * code=82, hex=0x52, ascii="R" + */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0xC0, /* 11000 */ + 0xA0, /* 10100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=83, hex=0x53, ascii="S" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x80, /* 10000 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=84, hex=0x54, ascii="T" + */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=85, hex=0x55, ascii="U" + */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=86, hex=0x56, ascii="V" + */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=87, hex=0x57, ascii="W" + */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=88, hex=0x58, ascii="X" + */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=89, hex=0x59, ascii="Y" + */ + 0x00, /* 00000 */ + 0x88, /* 10001 */ + 0x88, /* 10001 */ + 0x88, /* 10001 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=90, hex=0x5A, ascii="Z" + */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=91, hex=0x5B, ascii="[" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=92, hex=0x5C, ascii="\" + */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=93, hex=0x5D, ascii="]" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=94, hex=0x5E, ascii="^" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=95, hex=0x5F, ascii="_" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + + /* + * code=96, hex=0x60, ascii="`" + */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=97, hex=0x61, ascii="a" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=98, hex=0x62, ascii="b" + */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=99, hex=0x63, ascii="c" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=100, hex=0x64, ascii="d" + */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=101, hex=0x65, ascii="e" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=102, hex=0x66, ascii="f" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0xE0, /* 11100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=103, hex=0x67, ascii="g" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x10, /* 00010 */ + 0x60, /* 01100 */ + + /* + * code=104, hex=0x68, ascii="h" + */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=105, hex=0x69, ascii="i" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=106, hex=0x6A, ascii="j" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xA0, /* 10100 */ + 0x40, /* 01000 */ + + /* + * code=107, hex=0x6B, ascii="k" + */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x90, /* 10010 */ + 0xA0, /* 10100 */ + 0xC0, /* 11000 */ + 0xC0, /* 11000 */ + 0xA0, /* 10100 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=108, hex=0x6C, ascii="l" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=109, hex=0x6D, ascii="m" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=110, hex=0x6E, ascii="n" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xA0, /* 10100 */ + 0xD0, /* 11010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=111, hex=0x6F, ascii="o" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=112, hex=0x70, ascii="p" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + + /* + * code=113, hex=0x71, ascii="q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + + /* + * code=114, hex=0x72, ascii="r" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xB0, /* 10110 */ + 0x50, /* 01010 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=115, hex=0x73, ascii="s" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=116, hex=0x74, ascii="t" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0xE0, /* 11100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=117, hex=0x75, ascii="u" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=118, hex=0x76, ascii="v" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=119, hex=0x77, ascii="w" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=120, hex=0x78, ascii="x" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=121, hex=0x79, ascii="y" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x10, /* 00010 */ + 0xE0, /* 11100 */ + + /* + * code=122, hex=0x7A, ascii="z" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=123, hex=0x7B, ascii="{" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=124, hex=0x7C, ascii="|" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=125, hex=0x7D, ascii="}" + */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=126, hex=0x7E, ascii="~" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=127, hex=0x7F, ascii="^?" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x88, /* 10001 */ + 0x88, /* 10001 */ + 0x88, /* 10001 */ + 0x88, /* 10001 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=128, hex=0x80, ascii="!^@" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + + /* + * code=129, hex=0x81, ascii="!^A" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=130, hex=0x82, ascii="!^B" + */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=131, hex=0x83, ascii="!^C" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=132, hex=0x84, ascii="!^D" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=133, hex=0x85, ascii="!^E" + */ + 0x00, /* 00000 */ + 0xC0, /* 11000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=134, hex=0x86, ascii="!^F" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=135, hex=0x87, ascii="!^G" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0xC0, /* 11000 */ + + /* + * code=136, hex=0x88, ascii="!^H" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=137, hex=0x89, ascii="!^I" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=138, hex=0x8A, ascii="!^J" + */ + 0x00, /* 00000 */ + 0xC0, /* 11000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=139, hex=0x8B, ascii="!^K" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=140, hex=0x8C, ascii="!^L" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=141, hex=0x8D, ascii="!^M" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=142, hex=0x8E, ascii="!^N" + */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=143, hex=0x8F, ascii="!^O" + */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=144, hex=0x90, ascii="!^P" + */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=145, hex=0x91, ascii="!^Q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x28, /* 00101 */ + 0x28, /* 00101 */ + 0x70, /* 01110 */ + 0xA0, /* 10100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=146, hex=0x92, ascii="!^R" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0xE0, /* 11100 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0xF0, /* 11110 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0xB0, /* 10110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=147, hex=0x93, ascii="!^S" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=148, hex=0x94, ascii="!^T" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=149, hex=0x95, ascii="!^U" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=150, hex=0x96, ascii="!^V" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=151, hex=0x97, ascii="!^W" + */ + 0x00, /* 00000 */ + 0xC0, /* 11000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=152, hex=0x98, ascii="!^X" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x10, /* 00010 */ + 0xE0, /* 11100 */ + + /* + * code=153, hex=0x99, ascii="!^Y" + */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=154, hex=0x9A, ascii="!^Z" + */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=155, hex=0x9B, ascii="!^[" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x88, /* 10001 */ + 0x80, /* 10000 */ + 0x88, /* 10001 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=156, hex=0x9C, ascii="!^\" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0xE0, /* 11100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0xD0, /* 11010 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=157, hex=0x9D, ascii="!^]" + */ + 0x00, /* 00000 */ + 0x88, /* 10001 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=158, hex=0x9E, ascii="!^^" + */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0xB8, /* 10111 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=159, hex=0x9F, ascii="!^_" + */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xA0, /* 10100 */ + 0x40, /* 01000 */ + + /* + * code=160, hex=0xA0, ascii="! " + */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=161, hex=0xA1, ascii="!!" + */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=162, hex=0xA2, ascii="!"" + */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=163, hex=0xA3, ascii="!#" + */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=164, hex=0xA4, ascii="!$" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + 0xA0, /* 10100 */ + 0xD0, /* 11010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=165, hex=0xA5, ascii="!%" + */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0xD0, /* 11010 */ + 0xF0, /* 11110 */ + 0xB0, /* 10110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=166, hex=0xA6, ascii="!&" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=167, hex=0xA7, ascii="!'" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=168, hex=0xA8, ascii="!(" + */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=169, hex=0xA9, ascii="!)" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=170, hex=0xAA, ascii="!*" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=171, hex=0xAB, ascii="!+" + */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0xA0, /* 10100 */ + 0x30, /* 00110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=172, hex=0xAC, ascii="!," + */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x50, /* 01010 */ + 0xB0, /* 10110 */ + 0xB0, /* 10110 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=173, hex=0xAD, ascii="!-" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=174, hex=0xAE, ascii="!." + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=175, hex=0xAF, ascii="!/" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=176, hex=0xB0, ascii="!0" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xA8, /* 10101 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xA8, /* 10101 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + + /* + * code=177, hex=0xB1, ascii="!1" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0xA8, /* 10101 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0xA8, /* 10101 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0xA8, /* 10101 */ + + /* + * code=178, hex=0xB2, ascii="!2" + */ + 0x50, /* 01010 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0xA8, /* 10101 */ + + /* + * code=179, hex=0xB3, ascii="!3" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=180, hex=0xB4, ascii="!4" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=181, hex=0xB5, ascii="!5" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=182, hex=0xB6, ascii="!6" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD0, /* 11010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=183, hex=0xB7, ascii="!7" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=184, hex=0xB8, ascii="!8" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=185, hex=0xB9, ascii="!9" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD0, /* 11010 */ + 0x10, /* 00010 */ + 0xD0, /* 11010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=186, hex=0xBA, ascii="!:" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=187, hex=0xBB, ascii="!;" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x10, /* 00010 */ + 0xD0, /* 11010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=188, hex=0xBC, ascii="!<" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD0, /* 11010 */ + 0x10, /* 00010 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=189, hex=0xBD, ascii="!=" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=190, hex=0xBE, ascii="!>" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=191, hex=0xBF, ascii="!?" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=192, hex=0xC0, ascii="!@" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=193, hex=0xC1, ascii="!A" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=194, hex=0xC2, ascii="!B" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=195, hex=0xC3, ascii="!C" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=196, hex=0xC4, ascii="!D" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=197, hex=0xC5, ascii="!E" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=198, hex=0xC6, ascii="!F" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=199, hex=0xC7, ascii="!G" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x58, /* 01011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=200, hex=0xC8, ascii="!H" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x58, /* 01011 */ + 0x40, /* 01000 */ + 0x78, /* 01111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=201, hex=0xC9, ascii="!I" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x78, /* 01111 */ + 0x40, /* 01000 */ + 0x58, /* 01011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=202, hex=0xCA, ascii="!J" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD8, /* 11011 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=203, hex=0xCB, ascii="!K" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0xD8, /* 11011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=204, hex=0xCC, ascii="!L" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x58, /* 01011 */ + 0x40, /* 01000 */ + 0x58, /* 01011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=205, hex=0xCD, ascii="!M" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=206, hex=0xCE, ascii="!N" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD8, /* 11011 */ + 0x00, /* 00000 */ + 0xD8, /* 11011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=207, hex=0xCF, ascii="!O" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=208, hex=0xD0, ascii="!P" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=209, hex=0xD1, ascii="!Q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=210, hex=0xD2, ascii="!R" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=211, hex=0xD3, ascii="!S" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x78, /* 01111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=212, hex=0xD4, ascii="!T" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=213, hex=0xD5, ascii="!U" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=214, hex=0xD6, ascii="!V" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x78, /* 01111 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=215, hex=0xD7, ascii="!W" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD8, /* 11011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=216, hex=0xD8, ascii="!X" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=217, hex=0xD9, ascii="!Y" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=218, hex=0xDA, ascii="!Z" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=219, hex=0xDB, ascii="![" + */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + + /* + * code=220, hex=0xDC, ascii="!\" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + + /* + * code=221, hex=0xDD, ascii="!]" + */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + + /* + * code=222, hex=0xDE, ascii="!^" + */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + 0x38, /* 00111 */ + + /* + * code=223, hex=0xDF, ascii="!_" + */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=224, hex=0xE0, ascii="!`" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x48, /* 01001 */ + 0xB0, /* 10110 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0xB0, /* 10110 */ + 0x48, /* 01001 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=225, hex=0xE1, ascii="!a" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xA0, /* 10100 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + + /* + * code=226, hex=0xE2, ascii="!b" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x78, /* 01111 */ + 0x48, /* 01001 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=227, hex=0xE3, ascii="!c" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=228, hex=0xE4, ascii="!d" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x48, /* 01001 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x48, /* 01001 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=229, hex=0xE5, ascii="!e" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=230, hex=0xE6, ascii="!f" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + + /* + * code=231, hex=0xE7, ascii="!g" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=232, hex=0xE8, ascii="!h" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=233, hex=0xE9, ascii="!i" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x88, /* 10001 */ + 0xF8, /* 11111 */ + 0x88, /* 10001 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=234, hex=0xEA, ascii="!j" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x88, /* 10001 */ + 0x88, /* 10001 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD8, /* 11011 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=235, hex=0xEB, ascii="!k" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=236, hex=0xEC, ascii="!l" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xA8, /* 10101 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=237, hex=0xED, ascii="!m" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0xA8, /* 10101 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=238, hex=0xEE, ascii="!n" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=239, hex=0xEF, ascii="!o" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=240, hex=0xF0, ascii="!p" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=241, hex=0xF1, ascii="!q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=242, hex=0xF2, ascii="!r" + */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=243, hex=0xF3, ascii="!s" + */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=244, hex=0xF4, ascii="!t" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x28, /* 00101 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=245, hex=0xF5, ascii="!u" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xA0, /* 10100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=246, hex=0xF6, ascii="!v" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=247, hex=0xF7, ascii="!w" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=248, hex=0xF8, ascii="!x" + */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=249, hex=0xF9, ascii="!y" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=250, hex=0xFA, ascii="!z" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=251, hex=0xFB, ascii="!{" + */ + 0x00, /* 00000 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xA0, /* 10100 */ + 0xA0, /* 10100 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=252, hex=0xFC, ascii="!|" + */ + 0xA0, /* 10100 */ + 0xD0, /* 11010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=253, hex=0xFD, ascii="!}" + */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x10, /* 00010 */ + 0x60, /* 01100 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=254, hex=0xFE, ascii="!~" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=255, hex=0xFF, ascii="!^Ÿ" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ +}; diff --git a/wled00/console_font_5x8.h b/wled00/console_font_5x8.h new file mode 100644 index 00000000..cf1fdd88 --- /dev/null +++ b/wled00/console_font_5x8.h @@ -0,0 +1,3075 @@ +// font curtesy of https://github.com/idispatch/raster-fonts +static const unsigned char console_font_5x8[] PROGMEM = { + + /* + * code=0, hex=0x00, ascii="^@" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=1, hex=0x01, ascii="^A" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0xF8, /* 11111 */ + 0xD8, /* 11011 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=2, hex=0x02, ascii="^B" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=3, hex=0x03, ascii="^C" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=4, hex=0x04, ascii="^D" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0xF8, /* 11111 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=5, hex=0x05, ascii="^E" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=6, hex=0x06, ascii="^F" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0xF8, /* 11111 */ + 0xA8, /* 10101 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=7, hex=0x07, ascii="^G" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=8, hex=0x08, ascii="^H" + */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xD8, /* 11011 */ + 0x88, /* 10001 */ + 0xD8, /* 11011 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + + /* + * code=9, hex=0x09, ascii="^I" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=10, hex=0x0A, ascii="^J" + */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xD8, /* 11011 */ + 0x88, /* 10001 */ + 0xD8, /* 11011 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + + /* + * code=11, hex=0x0B, ascii="^K" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x38, /* 00111 */ + 0x18, /* 00011 */ + 0x68, /* 01101 */ + 0xA0, /* 10100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=12, hex=0x0C, ascii="^L" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=13, hex=0x0D, ascii="^M" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x40, /* 01000 */ + 0xC0, /* 11000 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + + /* + * code=14, hex=0x0E, ascii="^N" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x38, /* 00111 */ + 0x48, /* 01001 */ + 0x58, /* 01011 */ + 0xD0, /* 11010 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + + /* + * code=15, hex=0x0F, ascii="^O" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=16, hex=0x10, ascii="^P" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x60, /* 01100 */ + 0x70, /* 01110 */ + 0x60, /* 01100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=17, hex=0x11, ascii="^Q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x30, /* 00110 */ + 0x70, /* 01110 */ + 0x30, /* 00110 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + + /* + * code=18, hex=0x12, ascii="^R" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=19, hex=0x13, ascii="^S" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + + /* + * code=20, hex=0x14, ascii="^T" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x78, /* 01111 */ + 0xD0, /* 11010 */ + 0xD0, /* 11010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=21, hex=0x15, ascii="^U" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x18, /* 00011 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x48, /* 01001 */ + 0x30, /* 00110 */ + 0xC0, /* 11000 */ + + /* + * code=22, hex=0x16, ascii="^V" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + + /* + * code=23, hex=0x17, ascii="^W" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + + /* + * code=24, hex=0x18, ascii="^X" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=25, hex=0x19, ascii="^Y" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=26, hex=0x1A, ascii="^Z" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0xF8, /* 11111 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=27, hex=0x1B, ascii="^[" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0xF8, /* 11111 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=28, hex=0x1C, ascii="^\" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=29, hex=0x1D, ascii="^]" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=30, hex=0x1E, ascii="^^" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + + /* + * code=31, hex=0x1F, ascii="^_" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=32, hex=0x20, ascii=" " + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=33, hex=0x21, ascii="!" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=34, hex=0x22, ascii=""" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=35, hex=0x23, ascii="#" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + + /* + * code=36, hex=0x24, ascii="$" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x30, /* 00110 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + + /* + * code=37, hex=0x25, ascii="%" + */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0x30, /* 00110 */ + 0x68, /* 01101 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=38, hex=0x26, ascii="&" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x68, /* 01101 */ + 0x90, /* 10010 */ + 0x68, /* 01101 */ + 0x00, /* 00000 */ + + /* + * code=39, hex=0x27, ascii="'" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=40, hex=0x28, ascii="(" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=41, hex=0x29, ascii=")" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=42, hex=0x2A, ascii="*" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + + /* + * code=43, hex=0x2B, ascii="+" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=44, hex=0x2C, ascii="," + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + + /* + * code=45, hex=0x2D, ascii="-" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=46, hex=0x2E, ascii="." + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=47, hex=0x2F, ascii="/" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=48, hex=0x30, ascii="0" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=49, hex=0x31, ascii="1" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=50, hex=0x32, ascii="2" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + + /* + * code=51, hex=0x33, ascii="3" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x10, /* 00010 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + + /* + * code=52, hex=0x34, ascii="4" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x30, /* 00110 */ + 0x50, /* 01010 */ + 0xF0, /* 11110 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + + /* + * code=53, hex=0x35, ascii="5" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x10, /* 00010 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + + /* + * code=54, hex=0x36, ascii="6" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=55, hex=0x37, ascii="7" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=56, hex=0x38, ascii="8" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=57, hex=0x39, ascii="9" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x10, /* 00010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=58, hex=0x3A, ascii=":" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=59, hex=0x3B, ascii=";" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + + /* + * code=60, hex=0x3C, ascii="<" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + + /* + * code=61, hex=0x3D, ascii="=" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=62, hex=0x3E, ascii=">" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=63, hex=0x3F, ascii="?" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=64, hex=0x40, ascii="@" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x88, /* 10001 */ + 0xB0, /* 10110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=65, hex=0x41, ascii="A" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=66, hex=0x42, ascii="B" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + + /* + * code=67, hex=0x43, ascii="C" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=68, hex=0x44, ascii="D" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + + /* + * code=69, hex=0x45, ascii="E" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + + /* + * code=70, hex=0x46, ascii="F" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + + /* + * code=71, hex=0x47, ascii="G" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x80, /* 10000 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=72, hex=0x48, ascii="H" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=73, hex=0x49, ascii="I" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=74, hex=0x4A, ascii="J" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=75, hex=0x4B, ascii="K" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0xA0, /* 10100 */ + 0xC0, /* 11000 */ + 0xA0, /* 10100 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=76, hex=0x4C, ascii="L" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + + /* + * code=77, hex=0x4D, ascii="M" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=78, hex=0x4E, ascii="N" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0xD0, /* 11010 */ + 0xB0, /* 10110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=79, hex=0x4F, ascii="O" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=80, hex=0x50, ascii="P" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + + /* + * code=81, hex=0x51, ascii="Q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + + /* + * code=82, hex=0x52, ascii="R" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=83, hex=0x53, ascii="S" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x80, /* 10000 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + + /* + * code=84, hex=0x54, ascii="T" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=85, hex=0x55, ascii="U" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=86, hex=0x56, ascii="V" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=87, hex=0x57, ascii="W" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x88, /* 10001 */ + 0xA8, /* 10101 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + + /* + * code=88, hex=0x58, ascii="X" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x50, /* 01010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=89, hex=0x59, ascii="Y" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=90, hex=0x5A, ascii="Z" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + + /* + * code=91, hex=0x5B, ascii="[" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=92, hex=0x5C, ascii="\" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + + /* + * code=93, hex=0x5D, ascii="]" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=94, hex=0x5E, ascii="^" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=95, hex=0x5F, ascii="_" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + + /* + * code=96, hex=0x60, ascii="`" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=97, hex=0x61, ascii="a" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + + /* + * code=98, hex=0x62, ascii="b" + */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + + /* + * code=99, hex=0x63, ascii="c" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x30, /* 00110 */ + 0x00, /* 00000 */ + + /* + * code=100, hex=0x64, ascii="d" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=101, hex=0x65, ascii="e" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=102, hex=0x66, ascii="f" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0xE0, /* 11100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=103, hex=0x67, ascii="g" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x10, /* 00010 */ + 0x60, /* 01100 */ + + /* + * code=104, hex=0x68, ascii="h" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=105, hex=0x69, ascii="i" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=106, hex=0x6A, ascii="j" + */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x60, /* 01100 */ + + /* + * code=107, hex=0x6B, ascii="k" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0xA0, /* 10100 */ + 0xC0, /* 11000 */ + 0xA0, /* 10100 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=108, hex=0x6C, ascii="l" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=109, hex=0x6D, ascii="m" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=110, hex=0x6E, ascii="n" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=111, hex=0x6F, ascii="o" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=112, hex=0x70, ascii="p" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + + /* + * code=113, hex=0x71, ascii="q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x10, /* 00010 */ + + /* + * code=114, hex=0x72, ascii="r" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x60, /* 01100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=115, hex=0x73, ascii="s" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0xC0, /* 11000 */ + 0x30, /* 00110 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + + /* + * code=116, hex=0x74, ascii="t" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0xF0, /* 11110 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x30, /* 00110 */ + 0x00, /* 00000 */ + + /* + * code=117, hex=0x75, ascii="u" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=118, hex=0x76, ascii="v" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=119, hex=0x77, ascii="w" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=120, hex=0x78, ascii="x" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=121, hex=0x79, ascii="y" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x10, /* 00010 */ + 0x60, /* 01100 */ + + /* + * code=122, hex=0x7A, ascii="z" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + + /* + * code=123, hex=0x7B, ascii="{" + */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x00, /* 00000 */ + + /* + * code=124, hex=0x7C, ascii="|" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=125, hex=0x7D, ascii="}" + */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=126, hex=0x7E, ascii="~" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=127, hex=0x7F, ascii="^?" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x88, /* 10001 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + + /* + * code=128, hex=0x80, ascii="!^@" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + + /* + * code=129, hex=0x81, ascii="!^A" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=130, hex=0x82, ascii="!^B" + */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=131, hex=0x83, ascii="!^C" + */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0xC0, /* 11000 */ + 0x20, /* 00100 */ + 0xA0, /* 10100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + + /* + * code=132, hex=0x84, ascii="!^D" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0xC0, /* 11000 */ + 0x20, /* 00100 */ + 0x60, /* 01100 */ + 0xB0, /* 10110 */ + 0x00, /* 00000 */ + + /* + * code=133, hex=0x85, ascii="!^E" + */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0xC0, /* 11000 */ + 0x20, /* 00100 */ + 0x60, /* 01100 */ + 0xB0, /* 10110 */ + 0x00, /* 00000 */ + + /* + * code=134, hex=0x86, ascii="!^F" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0xC0, /* 11000 */ + 0x20, /* 00100 */ + 0x60, /* 01100 */ + 0xB0, /* 10110 */ + 0x00, /* 00000 */ + + /* + * code=135, hex=0x87, ascii="!^G" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x30, /* 00110 */ + 0x20, /* 00100 */ + + /* + * code=136, hex=0x88, ascii="!^H" + */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=137, hex=0x89, ascii="!^I" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=138, hex=0x8A, ascii="!^J" + */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=139, hex=0x8B, ascii="!^K" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=140, hex=0x8C, ascii="!^L" + */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=141, hex=0x8D, ascii="!^M" + */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=142, hex=0x8E, ascii="!^N" + */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=143, hex=0x8F, ascii="!^O" + */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=144, hex=0x90, ascii="!^P" + */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0xF0, /* 11110 */ + 0x80, /* 10000 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + + /* + * code=145, hex=0x91, ascii="!^Q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xD8, /* 11011 */ + 0x78, /* 01111 */ + 0xE0, /* 11100 */ + 0xB8, /* 10111 */ + 0x00, /* 00000 */ + + /* + * code=146, hex=0x92, ascii="!^R" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0xA0, /* 10100 */ + 0xF0, /* 11110 */ + 0xA0, /* 10100 */ + 0xB0, /* 10110 */ + 0x00, /* 00000 */ + + /* + * code=147, hex=0x93, ascii="!^S" + */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=148, hex=0x94, ascii="!^T" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=149, hex=0x95, ascii="!^U" + */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=150, hex=0x96, ascii="!^V" + */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=151, hex=0x97, ascii="!^W" + */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=152, hex=0x98, ascii="!^X" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x10, /* 00010 */ + 0x60, /* 01100 */ + + /* + * code=153, hex=0x99, ascii="!^Y" + */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=154, hex=0x9A, ascii="!^Z" + */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=155, hex=0x9B, ascii="!^[" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x80, /* 10000 */ + 0x80, /* 10000 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + + /* + * code=156, hex=0x9C, ascii="!^\" + */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x50, /* 01010 */ + 0x40, /* 01000 */ + 0xE0, /* 11100 */ + 0x40, /* 01000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + + /* + * code=157, hex=0x9D, ascii="!^]" + */ + 0x00, /* 00000 */ + 0xD8, /* 11011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=158, hex=0x9E, ascii="!^^" + */ + 0x00, /* 00000 */ + 0xC0, /* 11000 */ + 0xA0, /* 10100 */ + 0xB0, /* 10110 */ + 0xF8, /* 11111 */ + 0x90, /* 10010 */ + 0x88, /* 10001 */ + 0x00, /* 00000 */ + + /* + * code=159, hex=0x9F, ascii="!^_" + */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0xF0, /* 11110 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x80, /* 10000 */ + + /* + * code=160, hex=0xA0, ascii="! " + */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + 0xC0, /* 11000 */ + 0x20, /* 00100 */ + 0x60, /* 01100 */ + 0xB0, /* 10110 */ + 0x00, /* 00000 */ + + /* + * code=161, hex=0xA1, ascii="!!" + */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=162, hex=0xA2, ascii="!"" + */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=163, hex=0xA3, ascii="!#" + */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=164, hex=0xA4, ascii="!$" + */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=165, hex=0xA5, ascii="!%" + */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x90, /* 10010 */ + 0xD0, /* 11010 */ + 0xD0, /* 11010 */ + 0xB0, /* 10110 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=166, hex=0xA6, ascii="!&" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x30, /* 00110 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=167, hex=0xA7, ascii="!'" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=168, hex=0xA8, ascii="!(" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=169, hex=0xA9, ascii="!)" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x80, /* 10000 */ + 0x00, /* 00000 */ + + /* + * code=170, hex=0xAA, ascii="!*" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x08, /* 00001 */ + 0x00, /* 00000 */ + + /* + * code=171, hex=0xAB, ascii="!+" + */ + 0x00, /* 00000 */ + 0x80, /* 10000 */ + 0x90, /* 10010 */ + 0xA0, /* 10100 */ + 0x58, /* 01011 */ + 0x88, /* 10001 */ + 0x38, /* 00111 */ + 0x00, /* 00000 */ + + /* + * code=172, hex=0xAC, ascii="!," + */ + 0x00, /* 00000 */ + 0x88, /* 10001 */ + 0x90, /* 10010 */ + 0xA0, /* 10100 */ + 0x48, /* 01001 */ + 0x98, /* 10011 */ + 0x38, /* 00111 */ + 0x08, /* 00001 */ + + /* + * code=173, hex=0xAD, ascii="!-" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=174, hex=0xAE, ascii="!." + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + + /* + * code=175, hex=0xAF, ascii="!/" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xA0, /* 10100 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + + /* + * code=176, hex=0xB0, ascii="!0" + */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + 0xA8, /* 10101 */ + 0x50, /* 01010 */ + + /* + * code=177, hex=0xB1, ascii="!1" + */ + 0xE8, /* 11101 */ + 0x50, /* 01010 */ + 0xB8, /* 10111 */ + 0x50, /* 01010 */ + 0xE8, /* 11101 */ + 0x50, /* 01010 */ + 0xB8, /* 10111 */ + 0x50, /* 01010 */ + + /* + * code=178, hex=0xB2, ascii="!2" + */ + 0xD8, /* 11011 */ + 0x70, /* 01110 */ + 0xD8, /* 11011 */ + 0x70, /* 01110 */ + 0xD8, /* 11011 */ + 0x70, /* 01110 */ + 0xD8, /* 11011 */ + 0x70, /* 01110 */ + + /* + * code=179, hex=0xB3, ascii="!3" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=180, hex=0xB4, ascii="!4" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=181, hex=0xB5, ascii="!5" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=182, hex=0xB6, ascii="!6" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD0, /* 11010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=183, hex=0xB7, ascii="!7" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=184, hex=0xB8, ascii="!8" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=185, hex=0xB9, ascii="!9" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD0, /* 11010 */ + 0x10, /* 00010 */ + 0xD0, /* 11010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=186, hex=0xBA, ascii="!:" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=187, hex=0xBB, ascii="!;" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x10, /* 00010 */ + 0xD0, /* 11010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=188, hex=0xBC, ascii="!<" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD0, /* 11010 */ + 0x10, /* 00010 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=189, hex=0xBD, ascii="!=" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=190, hex=0xBE, ascii="!>" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=191, hex=0xBF, ascii="!?" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xE0, /* 11100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=192, hex=0xC0, ascii="!@" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=193, hex=0xC1, ascii="!A" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=194, hex=0xC2, ascii="!B" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=195, hex=0xC3, ascii="!C" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=196, hex=0xC4, ascii="!D" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=197, hex=0xC5, ascii="!E" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=198, hex=0xC6, ascii="!F" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=199, hex=0xC7, ascii="!G" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x58, /* 01011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=200, hex=0xC8, ascii="!H" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x58, /* 01011 */ + 0x40, /* 01000 */ + 0x78, /* 01111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=201, hex=0xC9, ascii="!I" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x78, /* 01111 */ + 0x40, /* 01000 */ + 0x58, /* 01011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=202, hex=0xCA, ascii="!J" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD8, /* 11011 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=203, hex=0xCB, ascii="!K" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0xD8, /* 11011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=204, hex=0xCC, ascii="!L" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x58, /* 01011 */ + 0x40, /* 01000 */ + 0x58, /* 01011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=205, hex=0xCD, ascii="!M" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=206, hex=0xCE, ascii="!N" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xD8, /* 11011 */ + 0x00, /* 00000 */ + 0xD8, /* 11011 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=207, hex=0xCF, ascii="!O" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=208, hex=0xD0, ascii="!P" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=209, hex=0xD1, ascii="!Q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=210, hex=0xD2, ascii="!R" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=211, hex=0xD3, ascii="!S" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x78, /* 01111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=212, hex=0xD4, ascii="!T" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=213, hex=0xD5, ascii="!U" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=214, hex=0xD6, ascii="!V" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x78, /* 01111 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=215, hex=0xD7, ascii="!W" + */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0xF8, /* 11111 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + + /* + * code=216, hex=0xD8, ascii="!X" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=217, hex=0xD9, ascii="!Y" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xE0, /* 11100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=218, hex=0xDA, ascii="!Z" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x38, /* 00111 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=219, hex=0xDB, ascii="![" + */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + + /* + * code=220, hex=0xDC, ascii="!\" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + + /* + * code=221, hex=0xDD, ascii="!]" + */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + 0xE0, /* 11100 */ + + /* + * code=222, hex=0xDE, ascii="!^" + */ + 0x18, /* 00011 */ + 0x18, /* 00011 */ + 0x18, /* 00011 */ + 0x18, /* 00011 */ + 0x18, /* 00011 */ + 0x18, /* 00011 */ + 0x18, /* 00011 */ + 0x18, /* 00011 */ + + /* + * code=223, hex=0xDF, ascii="!_" + */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=224, hex=0xE0, ascii="!`" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x68, /* 01101 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x68, /* 01101 */ + 0x00, /* 00000 */ + + /* + * code=225, hex=0xE1, ascii="!a" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0xF0, /* 11110 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE0, /* 11100 */ + 0x80, /* 10000 */ + + /* + * code=226, hex=0xE2, ascii="!b" + */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=227, hex=0xE3, ascii="!c" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + + /* + * code=228, hex=0xE4, ascii="!d" + */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x48, /* 01001 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x88, /* 10001 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + + /* + * code=229, hex=0xE5, ascii="!e" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x78, /* 01111 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=230, hex=0xE6, ascii="!f" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0xE8, /* 11101 */ + 0x80, /* 10000 */ + + /* + * code=231, hex=0xE7, ascii="!g" + */ + 0x00, /* 00000 */ + 0x98, /* 10011 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + + /* + * code=232, hex=0xE8, ascii="!h" + */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x88, /* 10001 */ + 0x70, /* 01110 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=233, hex=0xE9, ascii="!i" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x88, /* 10001 */ + 0xF8, /* 11111 */ + 0x88, /* 10001 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=234, hex=0xEA, ascii="!j" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x88, /* 10001 */ + 0x88, /* 10001 */ + 0x50, /* 01010 */ + 0xD8, /* 11011 */ + 0x00, /* 00000 */ + + /* + * code=235, hex=0xEB, ascii="!k" + */ + 0x60, /* 01100 */ + 0x80, /* 10000 */ + 0x40, /* 01000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=236, hex=0xEC, ascii="!l" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0xA8, /* 10101 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=237, hex=0xED, ascii="!m" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x08, /* 00001 */ + 0x70, /* 01110 */ + 0xA8, /* 10101 */ + 0x48, /* 01001 */ + 0xB0, /* 10110 */ + 0x00, /* 00000 */ + + /* + * code=238, hex=0xEE, ascii="!n" + */ + 0x00, /* 00000 */ + 0x30, /* 00110 */ + 0x40, /* 01000 */ + 0x70, /* 01110 */ + 0x40, /* 01000 */ + 0x40, /* 01000 */ + 0x30, /* 00110 */ + 0x00, /* 00000 */ + + /* + * code=239, hex=0xEF, ascii="!o" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x90, /* 10010 */ + 0x00, /* 00000 */ + + /* + * code=240, hex=0xF0, ascii="!p" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + + /* + * code=241, hex=0xF1, ascii="!q" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0xF8, /* 11111 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0xF8, /* 11111 */ + 0x00, /* 00000 */ + + /* + * code=242, hex=0xF2, ascii="!r" + */ + 0x00, /* 00000 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + + /* + * code=243, hex=0xF3, ascii="!s" + */ + 0x00, /* 00000 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x40, /* 01000 */ + 0x20, /* 00100 */ + 0x10, /* 00010 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + + /* + * code=244, hex=0xF4, ascii="!t" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x18, /* 00011 */ + 0x28, /* 00101 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + + /* + * code=245, hex=0xF5, ascii="!u" + */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0x20, /* 00100 */ + 0xA0, /* 10100 */ + 0xC0, /* 11000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=246, hex=0xF6, ascii="!v" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0xF0, /* 11110 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + + /* + * code=247, hex=0xF7, ascii="!w" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + 0x50, /* 01010 */ + 0xA0, /* 10100 */ + 0x00, /* 00000 */ + + /* + * code=248, hex=0xF8, ascii="!x" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x50, /* 01010 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=249, hex=0xF9, ascii="!y" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x60, /* 01100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=250, hex=0xFA, ascii="!z" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x20, /* 00100 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=251, hex=0xFB, ascii="!{" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x18, /* 00011 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0xA0, /* 10100 */ + 0x40, /* 01000 */ + 0x00, /* 00000 */ + + /* + * code=252, hex=0xFC, ascii="!|" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x50, /* 01010 */ + 0x50, /* 01010 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=253, hex=0xFD, ascii="!}" + */ + 0x00, /* 00000 */ + 0x60, /* 01100 */ + 0x10, /* 00010 */ + 0x20, /* 00100 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=254, hex=0xFE, ascii="!~" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x70, /* 01110 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + + /* + * code=255, hex=0xFF, ascii="!^Ÿ" + */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ + 0x00, /* 00000 */ +}; diff --git a/wled00/console_font_6x8.h b/wled00/console_font_6x8.h new file mode 100644 index 00000000..e8da19d7 --- /dev/null +++ b/wled00/console_font_6x8.h @@ -0,0 +1,3075 @@ +// font curtesy of https://github.com/idispatch/raster-fonts +static const unsigned char console_font_6x8[] PROGMEM = { + + /* + * code=0, hex=0x00, ascii="^@" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=1, hex=0x01, ascii="^A" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x6C, /* 011011 */ + 0x44, /* 010001 */ + 0x54, /* 010101 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=2, hex=0x02, ascii="^B" + */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x54, /* 010101 */ + 0x7C, /* 011111 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=3, hex=0x03, ascii="^C" + */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=4, hex=0x04, ascii="^D" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=5, hex=0x05, ascii="^E" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=6, hex=0x06, ascii="^F" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=7, hex=0x07, ascii="^G" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=8, hex=0x08, ascii="^H" + */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xCC, /* 110011 */ + 0xCC, /* 110011 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + + /* + * code=9, hex=0x09, ascii="^I" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=10, hex=0x0A, ascii="^J" + */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0x84, /* 100001 */ + 0xB4, /* 101101 */ + 0xB4, /* 101101 */ + 0x84, /* 100001 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + + /* + * code=11, hex=0x0B, ascii="^K" + */ + 0x00, /* 000000 */ + 0x1C, /* 000111 */ + 0x0C, /* 000011 */ + 0x34, /* 001101 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=12, hex=0x0C, ascii="^L" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=13, hex=0x0D, ascii="^M" + */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x14, /* 000101 */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + 0x70, /* 011100 */ + 0x60, /* 011000 */ + 0x00, /* 000000 */ + + /* + * code=14, hex=0x0E, ascii="^N" + */ + 0x0C, /* 000011 */ + 0x34, /* 001101 */ + 0x2C, /* 001011 */ + 0x34, /* 001101 */ + 0x2C, /* 001011 */ + 0x6C, /* 011011 */ + 0x60, /* 011000 */ + 0x00, /* 000000 */ + + /* + * code=15, hex=0x0F, ascii="^O" + */ + 0x00, /* 000000 */ + 0x54, /* 010101 */ + 0x38, /* 001110 */ + 0x6C, /* 011011 */ + 0x38, /* 001110 */ + 0x54, /* 010101 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=16, hex=0x10, ascii="^P" + */ + 0x20, /* 001000 */ + 0x30, /* 001100 */ + 0x38, /* 001110 */ + 0x3C, /* 001111 */ + 0x38, /* 001110 */ + 0x30, /* 001100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=17, hex=0x11, ascii="^Q" + */ + 0x08, /* 000010 */ + 0x18, /* 000110 */ + 0x38, /* 001110 */ + 0x78, /* 011110 */ + 0x38, /* 001110 */ + 0x18, /* 000110 */ + 0x08, /* 000010 */ + 0x00, /* 000000 */ + + /* + * code=18, hex=0x12, ascii="^R" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=19, hex=0x13, ascii="^S" + */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=20, hex=0x14, ascii="^T" + */ + 0x3C, /* 001111 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x34, /* 001101 */ + 0x14, /* 000101 */ + 0x14, /* 000101 */ + 0x14, /* 000101 */ + 0x00, /* 000000 */ + + /* + * code=21, hex=0x15, ascii="^U" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x30, /* 001100 */ + 0x28, /* 001010 */ + 0x18, /* 000110 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=22, hex=0x16, ascii="^V" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=23, hex=0x17, ascii="^W" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + + /* + * code=24, hex=0x18, ascii="^X" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=25, hex=0x19, ascii="^Y" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=26, hex=0x1A, ascii="^Z" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x7C, /* 011111 */ + 0x18, /* 000110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=27, hex=0x1B, ascii="^[" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + 0x7C, /* 011111 */ + 0x30, /* 001100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=28, hex=0x1C, ascii="^\" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + + /* + * code=29, hex=0x1D, ascii="^]" + */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x7C, /* 011111 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=30, hex=0x1E, ascii="^^" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=31, hex=0x1F, ascii="^_" + */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=32, hex=0x20, ascii=" " + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=33, hex=0x21, ascii="!" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=34, hex=0x22, ascii=""" + */ + 0x6C, /* 011011 */ + 0x6C, /* 011011 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=35, hex=0x23, ascii="#" + */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x7C, /* 011111 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x7C, /* 011111 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=36, hex=0x24, ascii="$" + */ + 0x20, /* 001000 */ + 0x38, /* 001110 */ + 0x40, /* 010000 */ + 0x30, /* 001100 */ + 0x08, /* 000010 */ + 0x70, /* 011100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=37, hex=0x25, ascii="%" + */ + 0x64, /* 011001 */ + 0x64, /* 011001 */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x4C, /* 010011 */ + 0x4C, /* 010011 */ + 0x00, /* 000000 */ + + /* + * code=38, hex=0x26, ascii="&" + */ + 0x20, /* 001000 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x20, /* 001000 */ + 0x54, /* 010101 */ + 0x48, /* 010010 */ + 0x34, /* 001101 */ + 0x00, /* 000000 */ + + /* + * code=39, hex=0x27, ascii="'" + */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=40, hex=0x28, ascii="(" + */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=41, hex=0x29, ascii=")" + */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=42, hex=0x2A, ascii="*" + */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=43, hex=0x2B, ascii="+" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=44, hex=0x2C, ascii="," + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x20, /* 001000 */ + + /* + * code=45, hex=0x2D, ascii="-" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=46, hex=0x2E, ascii="." + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=47, hex=0x2F, ascii="/" + */ + 0x00, /* 000000 */ + 0x04, /* 000001 */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=48, hex=0x30, ascii="0" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x4C, /* 010011 */ + 0x54, /* 010101 */ + 0x64, /* 011001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=49, hex=0x31, ascii="1" + */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=50, hex=0x32, ascii="2" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x04, /* 000001 */ + 0x18, /* 000110 */ + 0x20, /* 001000 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + + /* + * code=51, hex=0x33, ascii="3" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x04, /* 000001 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=52, hex=0x34, ascii="4" + */ + 0x08, /* 000010 */ + 0x18, /* 000110 */ + 0x28, /* 001010 */ + 0x48, /* 010010 */ + 0x7C, /* 011111 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x00, /* 000000 */ + + /* + * code=53, hex=0x35, ascii="5" + */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x04, /* 000001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=54, hex=0x36, ascii="6" + */ + 0x18, /* 000110 */ + 0x20, /* 001000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=55, hex=0x37, ascii="7" + */ + 0x7C, /* 011111 */ + 0x04, /* 000001 */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=56, hex=0x38, ascii="8" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=57, hex=0x39, ascii="9" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x04, /* 000001 */ + 0x08, /* 000010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=58, hex=0x3A, ascii=":" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=59, hex=0x3B, ascii=";" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x20, /* 001000 */ + + /* + * code=60, hex=0x3C, ascii="<" + */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x40, /* 010000 */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x08, /* 000010 */ + 0x00, /* 000000 */ + + /* + * code=61, hex=0x3D, ascii="=" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=62, hex=0x3E, ascii=">" + */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x08, /* 000010 */ + 0x04, /* 000001 */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=63, hex=0x3F, ascii="?" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x04, /* 000001 */ + 0x18, /* 000110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=64, hex=0x40, ascii="@" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x5C, /* 010111 */ + 0x54, /* 010101 */ + 0x5C, /* 010111 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=65, hex=0x41, ascii="A" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=66, hex=0x42, ascii="B" + */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=67, hex=0x43, ascii="C" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=68, hex=0x44, ascii="D" + */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=69, hex=0x45, ascii="E" + */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + + /* + * code=70, hex=0x46, ascii="F" + */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + + /* + * code=71, hex=0x47, ascii="G" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x5C, /* 010111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=72, hex=0x48, ascii="H" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=73, hex=0x49, ascii="I" + */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=74, hex=0x4A, ascii="J" + */ + 0x04, /* 000001 */ + 0x04, /* 000001 */ + 0x04, /* 000001 */ + 0x04, /* 000001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=75, hex=0x4B, ascii="K" + */ + 0x44, /* 010001 */ + 0x48, /* 010010 */ + 0x50, /* 010100 */ + 0x60, /* 011000 */ + 0x50, /* 010100 */ + 0x48, /* 010010 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=76, hex=0x4C, ascii="L" + */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + + /* + * code=77, hex=0x4D, ascii="M" + */ + 0x44, /* 010001 */ + 0x6C, /* 011011 */ + 0x54, /* 010101 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=78, hex=0x4E, ascii="N" + */ + 0x44, /* 010001 */ + 0x64, /* 011001 */ + 0x54, /* 010101 */ + 0x4C, /* 010011 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=79, hex=0x4F, ascii="O" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=80, hex=0x50, ascii="P" + */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + + /* + * code=81, hex=0x51, ascii="Q" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x54, /* 010101 */ + 0x48, /* 010010 */ + 0x34, /* 001101 */ + 0x00, /* 000000 */ + + /* + * code=82, hex=0x52, ascii="R" + */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x48, /* 010010 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=83, hex=0x53, ascii="S" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=84, hex=0x54, ascii="T" + */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=85, hex=0x55, ascii="U" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=86, hex=0x56, ascii="V" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=87, hex=0x57, ascii="W" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=88, hex=0x58, ascii="X" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x28, /* 001010 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=89, hex=0x59, ascii="Y" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=90, hex=0x5A, ascii="Z" + */ + 0x78, /* 011110 */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=91, hex=0x5B, ascii="[" + */ + 0x38, /* 001110 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=92, hex=0x5C, ascii="\" + */ + 0x00, /* 000000 */ + 0x40, /* 010000 */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x08, /* 000010 */ + 0x04, /* 000001 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=93, hex=0x5D, ascii="]" + */ + 0x38, /* 001110 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=94, hex=0x5E, ascii="^" + */ + 0x10, /* 000100 */ + 0x28, /* 001010 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=95, hex=0x5F, ascii="_" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + + /* + * code=96, hex=0x60, ascii="`" + */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=97, hex=0x61, ascii="a" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=98, hex=0x62, ascii="b" + */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=99, hex=0x63, ascii="c" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=100, hex=0x64, ascii="d" + */ + 0x04, /* 000001 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=101, hex=0x65, ascii="e" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=102, hex=0x66, ascii="f" + */ + 0x18, /* 000110 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x78, /* 011110 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=103, hex=0x67, ascii="g" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x04, /* 000001 */ + 0x38, /* 001110 */ + + /* + * code=104, hex=0x68, ascii="h" + */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x70, /* 011100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=105, hex=0x69, ascii="i" + */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=106, hex=0x6A, ascii="j" + */ + 0x08, /* 000010 */ + 0x00, /* 000000 */ + 0x18, /* 000110 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + + /* + * code=107, hex=0x6B, ascii="k" + */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x48, /* 010010 */ + 0x50, /* 010100 */ + 0x60, /* 011000 */ + 0x50, /* 010100 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=108, hex=0x6C, ascii="l" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=109, hex=0x6D, ascii="m" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x68, /* 011010 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=110, hex=0x6E, ascii="n" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x70, /* 011100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=111, hex=0x6F, ascii="o" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=112, hex=0x70, ascii="p" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + + /* + * code=113, hex=0x71, ascii="q" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x04, /* 000001 */ + + /* + * code=114, hex=0x72, ascii="r" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x58, /* 010110 */ + 0x24, /* 001001 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x70, /* 011100 */ + 0x00, /* 000000 */ + + /* + * code=115, hex=0x73, ascii="s" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=116, hex=0x74, ascii="t" + */ + 0x00, /* 000000 */ + 0x20, /* 001000 */ + 0x78, /* 011110 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=117, hex=0x75, ascii="u" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x58, /* 010110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=118, hex=0x76, ascii="v" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=119, hex=0x77, ascii="w" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x54, /* 010101 */ + 0x7C, /* 011111 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=120, hex=0x78, ascii="x" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=121, hex=0x79, ascii="y" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x60, /* 011000 */ + + /* + * code=122, hex=0x7A, ascii="z" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x08, /* 000010 */ + 0x30, /* 001100 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=123, hex=0x7B, ascii="{" + */ + 0x18, /* 000110 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x60, /* 011000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=124, hex=0x7C, ascii="|" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=125, hex=0x7D, ascii="}" + */ + 0x30, /* 001100 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x0C, /* 000011 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=126, hex=0x7E, ascii="~" + */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=127, hex=0x7F, ascii="^?" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x6C, /* 011011 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=128, hex=0x80, ascii="!^@" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + + /* + * code=129, hex=0x81, ascii="!^A" + */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x58, /* 010110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=130, hex=0x82, ascii="!^B" + */ + 0x0C, /* 000011 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=131, hex=0x83, ascii="!^C" + */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=132, hex=0x84, ascii="!^D" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=133, hex=0x85, ascii="!^E" + */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=134, hex=0x86, ascii="!^F" + */ + 0x38, /* 001110 */ + 0x28, /* 001010 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=135, hex=0x87, ascii="!^G" + */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + + /* + * code=136, hex=0x88, ascii="!^H" + */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=137, hex=0x89, ascii="!^I" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=138, hex=0x8A, ascii="!^J" + */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=139, hex=0x8B, ascii="!^K" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=140, hex=0x8C, ascii="!^L" + */ + 0x10, /* 000100 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=141, hex=0x8D, ascii="!^M" + */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=142, hex=0x8E, ascii="!^N" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x28, /* 001010 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=143, hex=0x8F, ascii="!^O" + */ + 0x38, /* 001110 */ + 0x28, /* 001010 */ + 0x38, /* 001110 */ + 0x6C, /* 011011 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=144, hex=0x90, ascii="!^P" + */ + 0x0C, /* 000011 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + + /* + * code=145, hex=0x91, ascii="!^Q" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x14, /* 000101 */ + 0x7C, /* 011111 */ + 0x50, /* 010100 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=146, hex=0x92, ascii="!^R" + */ + 0x3C, /* 001111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x7C, /* 011111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x5C, /* 010111 */ + 0x00, /* 000000 */ + + /* + * code=147, hex=0x93, ascii="!^S" + */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=148, hex=0x94, ascii="!^T" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=149, hex=0x95, ascii="!^U" + */ + 0x60, /* 011000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=150, hex=0x96, ascii="!^V" + */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x58, /* 010110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=151, hex=0x97, ascii="!^W" + */ + 0x60, /* 011000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x58, /* 010110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=152, hex=0x98, ascii="!^X" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x60, /* 011000 */ + + /* + * code=153, hex=0x99, ascii="!^Y" + */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=154, hex=0x9A, ascii="!^Z" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=155, hex=0x9B, ascii="!^[" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=156, hex=0x9C, ascii="!^\" + */ + 0x18, /* 000110 */ + 0x24, /* 001001 */ + 0x20, /* 001000 */ + 0x78, /* 011110 */ + 0x20, /* 001000 */ + 0x24, /* 001001 */ + 0x5C, /* 010111 */ + 0x00, /* 000000 */ + + /* + * code=157, hex=0x9D, ascii="!^]" + */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=158, hex=0x9E, ascii="!^^" + */ + 0x60, /* 011000 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x68, /* 011010 */ + 0x5C, /* 010111 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=159, hex=0x9F, ascii="!^_" + */ + 0x08, /* 000010 */ + 0x14, /* 000101 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x50, /* 010100 */ + 0x20, /* 001000 */ + + /* + * code=160, hex=0xA0, ascii="! " + */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=161, hex=0xA1, ascii="!!" + */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=162, hex=0xA2, ascii="!"" + */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=163, hex=0xA3, ascii="!#" + */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x58, /* 010110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=164, hex=0xA4, ascii="!$" + */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x00, /* 000000 */ + 0x70, /* 011100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=165, hex=0xA5, ascii="!%" + */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x68, /* 011010 */ + 0x58, /* 010110 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=166, hex=0xA6, ascii="!&" + */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=167, hex=0xA7, ascii="!'" + */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=168, hex=0xA8, ascii="!(" + */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + 0x40, /* 010000 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=169, hex=0xA9, ascii="!)" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=170, hex=0xAA, ascii="!*" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x04, /* 000001 */ + 0x04, /* 000001 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=171, hex=0xAB, ascii="!+" + */ + 0x40, /* 010000 */ + 0x48, /* 010010 */ + 0x50, /* 010100 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x08, /* 000010 */ + 0x1C, /* 000111 */ + 0x00, /* 000000 */ + + /* + * code=172, hex=0xAC, ascii="!," + */ + 0x40, /* 010000 */ + 0x48, /* 010010 */ + 0x50, /* 010100 */ + 0x2C, /* 001011 */ + 0x54, /* 010101 */ + 0x1C, /* 000111 */ + 0x04, /* 000001 */ + 0x00, /* 000000 */ + + /* + * code=173, hex=0xAD, ascii="!-" + */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=174, hex=0xAE, ascii="!." + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x24, /* 001001 */ + 0x48, /* 010010 */ + 0x24, /* 001001 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=175, hex=0xAF, ascii="!/" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x24, /* 001001 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=176, hex=0xB0, ascii="!0" + */ + 0x54, /* 010101 */ + 0x00, /* 000000 */ + 0xA8, /* 101010 */ + 0x00, /* 000000 */ + 0x54, /* 010101 */ + 0x00, /* 000000 */ + 0xA8, /* 101010 */ + 0x00, /* 000000 */ + + /* + * code=177, hex=0xB1, ascii="!1" + */ + 0x54, /* 010101 */ + 0xA8, /* 101010 */ + 0x54, /* 010101 */ + 0xA8, /* 101010 */ + 0x54, /* 010101 */ + 0xA8, /* 101010 */ + 0x54, /* 010101 */ + 0xA8, /* 101010 */ + + /* + * code=178, hex=0xB2, ascii="!2" + */ + 0xA8, /* 101010 */ + 0xFC, /* 111111 */ + 0x54, /* 010101 */ + 0xFC, /* 111111 */ + 0xA8, /* 101010 */ + 0xFC, /* 111111 */ + 0x54, /* 010101 */ + 0xFC, /* 111111 */ + + /* + * code=179, hex=0xB3, ascii="!3" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=180, hex=0xB4, ascii="!4" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=181, hex=0xB5, ascii="!5" + */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=182, hex=0xB6, ascii="!6" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0xD0, /* 110100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=183, hex=0xB7, ascii="!7" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xF0, /* 111100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=184, hex=0xB8, ascii="!8" + */ + 0x00, /* 000000 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=185, hex=0xB9, ascii="!9" + */ + 0x50, /* 010100 */ + 0xD0, /* 110100 */ + 0x10, /* 000100 */ + 0xD0, /* 110100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=186, hex=0xBA, ascii="!:" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=187, hex=0xBB, ascii="!;" + */ + 0x00, /* 000000 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0xD0, /* 110100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=188, hex=0xBC, ascii="!<" + */ + 0x50, /* 010100 */ + 0xD0, /* 110100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=189, hex=0xBD, ascii="!=" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0xF0, /* 111100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=190, hex=0xBE, ascii="!>" + */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=191, hex=0xBF, ascii="!?" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=192, hex=0xC0, ascii="!@" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=193, hex=0xC1, ascii="!A" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=194, hex=0xC2, ascii="!B" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=195, hex=0xC3, ascii="!C" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=196, hex=0xC4, ascii="!D" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=197, hex=0xC5, ascii="!E" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0xFC, /* 111111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=198, hex=0xC6, ascii="!F" + */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=199, hex=0xC7, ascii="!G" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x5C, /* 010111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=200, hex=0xC8, ascii="!H" + */ + 0x50, /* 010100 */ + 0x5C, /* 010111 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=201, hex=0xC9, ascii="!I" + */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x5C, /* 010111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=202, hex=0xCA, ascii="!J" + */ + 0x50, /* 010100 */ + 0xDC, /* 110111 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=203, hex=0xCB, ascii="!K" + */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0xDC, /* 110111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=204, hex=0xCC, ascii="!L" + */ + 0x50, /* 010100 */ + 0x5C, /* 010111 */ + 0x40, /* 010000 */ + 0x5C, /* 010111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=205, hex=0xCD, ascii="!M" + */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=206, hex=0xCE, ascii="!N" + */ + 0x50, /* 010100 */ + 0xDC, /* 110111 */ + 0x00, /* 000000 */ + 0xDC, /* 110111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=207, hex=0xCF, ascii="!O" + */ + 0x10, /* 000100 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=208, hex=0xD0, ascii="!P" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=209, hex=0xD1, ascii="!Q" + */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=210, hex=0xD2, ascii="!R" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=211, hex=0xD3, ascii="!S" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=212, hex=0xD4, ascii="!T" + */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=213, hex=0xD5, ascii="!U" + */ + 0x00, /* 000000 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=214, hex=0xD6, ascii="!V" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=215, hex=0xD7, ascii="!W" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0xDC, /* 110111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=216, hex=0xD8, ascii="!X" + */ + 0x10, /* 000100 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=217, hex=0xD9, ascii="!Y" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=218, hex=0xDA, ascii="!Z" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=219, hex=0xDB, ascii="![" + */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + + /* + * code=220, hex=0xDC, ascii="!\" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + + /* + * code=221, hex=0xDD, ascii="!]" + */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + + /* + * code=222, hex=0xDE, ascii="!^" + */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + + /* + * code=223, hex=0xDF, ascii="!_" + */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=224, hex=0xE0, ascii="!`" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x34, /* 001101 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x34, /* 001101 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=225, hex=0xE1, ascii="!a" + */ + 0x00, /* 000000 */ + 0x70, /* 011100 */ + 0x48, /* 010010 */ + 0x70, /* 011100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x70, /* 011100 */ + 0x40, /* 010000 */ + + /* + * code=226, hex=0xE2, ascii="!b" + */ + 0x78, /* 011110 */ + 0x48, /* 010010 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + + /* + * code=227, hex=0xE3, ascii="!c" + */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=228, hex=0xE4, ascii="!d" + */ + 0x78, /* 011110 */ + 0x48, /* 010010 */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x48, /* 010010 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=229, hex=0xE5, ascii="!e" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x3C, /* 001111 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=230, hex=0xE6, ascii="!f" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x70, /* 011100 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + + /* + * code=231, hex=0xE7, ascii="!g" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=232, hex=0xE8, ascii="!h" + */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=233, hex=0xE9, ascii="!i" + */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x78, /* 011110 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=234, hex=0xEA, ascii="!j" + */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x6C, /* 011011 */ + 0x00, /* 000000 */ + + /* + * code=235, hex=0xEB, ascii="!k" + */ + 0x30, /* 001100 */ + 0x40, /* 010000 */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=236, hex=0xEC, ascii="!l" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=237, hex=0xED, ascii="!m" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=238, hex=0xEE, ascii="!n" + */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=239, hex=0xEF, ascii="!o" + */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=240, hex=0xF0, ascii="!p" + */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=241, hex=0xF1, ascii="!q" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=242, hex=0xF2, ascii="!r" + */ + 0x40, /* 010000 */ + 0x30, /* 001100 */ + 0x08, /* 000010 */ + 0x30, /* 001100 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=243, hex=0xF3, ascii="!s" + */ + 0x08, /* 000010 */ + 0x30, /* 001100 */ + 0x40, /* 010000 */ + 0x30, /* 001100 */ + 0x08, /* 000010 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=244, hex=0xF4, ascii="!t" + */ + 0x00, /* 000000 */ + 0x08, /* 000010 */ + 0x14, /* 000101 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=245, hex=0xF5, ascii="!u" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x50, /* 010100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=246, hex=0xF6, ascii="!v" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=247, hex=0xF7, ascii="!w" + */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=248, hex=0xF8, ascii="!x" + */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=249, hex=0xF9, ascii="!y" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=250, hex=0xFA, ascii="!z" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=251, hex=0xFB, ascii="!{" + */ + 0x00, /* 000000 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=252, hex=0xFC, ascii="!|" + */ + 0x50, /* 010100 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=253, hex=0xFD, ascii="!}" + */ + 0x60, /* 011000 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x70, /* 011100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=254, hex=0xFE, ascii="!~" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x78, /* 011110 */ + 0x78, /* 011110 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=255, hex=0xFF, ascii="!^ź" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00 /* 000000 */ +}; diff --git a/wled00/console_font_7x9.h b/wled00/console_font_7x9.h new file mode 100644 index 00000000..35466f70 --- /dev/null +++ b/wled00/console_font_7x9.h @@ -0,0 +1,3331 @@ +// font curtesy of https://github.com/idispatch/raster-fonts +static const unsigned char console_font_7x9[] PROGMEM = { + + /* + * code=0, hex=0x00, ascii="^@" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=1, hex=0x01, ascii="^A" + */ + 0x38, /* 0011100 */ + 0x44, /* 0100010 */ + 0xAA, /* 1010101 */ + 0xAA, /* 1010101 */ + 0x82, /* 1000001 */ + 0xAA, /* 1010101 */ + 0x94, /* 1001010 */ + 0x78, /* 0111100 */ + 0x00, /* 0000000 */ + + /* + * code=2, hex=0x02, ascii="^B" + */ + 0x38, /* 0011100 */ + 0x7C, /* 0111110 */ + 0xD6, /* 1101011 */ + 0xD6, /* 1101011 */ + 0xFE, /* 1111111 */ + 0xBA, /* 1011101 */ + 0xC6, /* 1100011 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + + /* + * code=3, hex=0x03, ascii="^C" + */ + 0x00, /* 0000000 */ + 0x6C, /* 0110110 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0x7C, /* 0111110 */ + 0x38, /* 0011100 */ + 0x10, /* 0001000 */ + 0x00, /* 0000000 */ + + /* + * code=4, hex=0x04, ascii="^D" + */ + 0x00, /* 0000000 */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x7C, /* 0111110 */ + 0xFE, /* 1111111 */ + 0x7C, /* 0111110 */ + 0x38, /* 0011100 */ + 0x10, /* 0001000 */ + 0x00, /* 0000000 */ + + /* + * code=5, hex=0x05, ascii="^E" + */ + 0x38, /* 0011100 */ + 0x38, /* 0011100 */ + 0x10, /* 0001000 */ + 0xD6, /* 1101011 */ + 0xFE, /* 1111111 */ + 0xD6, /* 1101011 */ + 0x10, /* 0001000 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + + /* + * code=6, hex=0x06, ascii="^F" + */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x7C, /* 0111110 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0x54, /* 0101010 */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x00, /* 0000000 */ + + /* + * code=7, hex=0x07, ascii="^G" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=8, hex=0x08, ascii="^H" + */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xE6, /* 1110011 */ + 0xC2, /* 1100001 */ + 0xC2, /* 1100001 */ + 0xE6, /* 1110011 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + + /* + * code=9, hex=0x09, ascii="^I" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=10, hex=0x0A, ascii="^J" + */ + 0xFE, /* 1111111 */ + 0xE6, /* 1110011 */ + 0xC2, /* 1100001 */ + 0x98, /* 1001100 */ + 0x98, /* 1001100 */ + 0xC2, /* 1100001 */ + 0xE6, /* 1110011 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + + /* + * code=11, hex=0x0B, ascii="^K" + */ + 0x0E, /* 0000111 */ + 0x06, /* 0000011 */ + 0x0A, /* 0000101 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=12, hex=0x0C, ascii="^L" + */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=13, hex=0x0D, ascii="^M" + */ + 0x00, /* 0000000 */ + 0x38, /* 0011100 */ + 0x2C, /* 0010110 */ + 0x20, /* 0010000 */ + 0x20, /* 0010000 */ + 0x20, /* 0010000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x00, /* 0000000 */ + + /* + * code=14, hex=0x0E, ascii="^N" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x24, /* 0010010 */ + 0x3C, /* 0011110 */ + 0x24, /* 0010010 */ + 0x24, /* 0010010 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x00, /* 0000000 */ + + /* + * code=15, hex=0x0F, ascii="^O" + */ + 0x92, /* 1001001 */ + 0x54, /* 0101010 */ + 0x38, /* 0011100 */ + 0x28, /* 0010100 */ + 0xEE, /* 1110111 */ + 0x38, /* 0011100 */ + 0x54, /* 0101010 */ + 0x92, /* 1001001 */ + 0x00, /* 0000000 */ + + /* + * code=16, hex=0x10, ascii="^P" + */ + 0x00, /* 0000000 */ + 0x20, /* 0010000 */ + 0x30, /* 0011000 */ + 0x38, /* 0011100 */ + 0x3C, /* 0011110 */ + 0x38, /* 0011100 */ + 0x30, /* 0011000 */ + 0x20, /* 0010000 */ + 0x00, /* 0000000 */ + + /* + * code=17, hex=0x11, ascii="^Q" + */ + 0x00, /* 0000000 */ + 0x04, /* 0000010 */ + 0x0C, /* 0000110 */ + 0x1C, /* 0001110 */ + 0x3C, /* 0011110 */ + 0x1C, /* 0001110 */ + 0x0C, /* 0000110 */ + 0x04, /* 0000010 */ + 0x00, /* 0000000 */ + + /* + * code=18, hex=0x12, ascii="^R" + */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x7C, /* 0111110 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x7C, /* 0111110 */ + 0x38, /* 0011100 */ + 0x10, /* 0001000 */ + 0x00, /* 0000000 */ + + /* + * code=19, hex=0x13, ascii="^S" + */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x00, /* 0000000 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x00, /* 0000000 */ + + /* + * code=20, hex=0x14, ascii="^T" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x54, /* 0101010 */ + 0x54, /* 0101010 */ + 0x3C, /* 0011110 */ + 0x14, /* 0001010 */ + 0x14, /* 0001010 */ + 0x14, /* 0001010 */ + 0x00, /* 0000000 */ + + /* + * code=21, hex=0x15, ascii="^U" + */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x60, /* 0110000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + 0x66, /* 0110011 */ + + /* + * code=22, hex=0x16, ascii="^V" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=23, hex=0x17, ascii="^W" + */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x7C, /* 0111110 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x7C, /* 0111110 */ + 0x38, /* 0011100 */ + 0x10, /* 0001000 */ + 0x7C, /* 0111110 */ + + /* + * code=24, hex=0x18, ascii="^X" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x5A, /* 0101101 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=25, hex=0x19, ascii="^Y" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x5A, /* 0101101 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=26, hex=0x1A, ascii="^Z" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x7E, /* 0111111 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=27, hex=0x1B, ascii="^[" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x7E, /* 0111111 */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=28, hex=0x1C, ascii="^\" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=29, hex=0x1D, ascii="^]" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x24, /* 0010010 */ + 0x66, /* 0110011 */ + 0xFE, /* 1111111 */ + 0x66, /* 0110011 */ + 0x24, /* 0010010 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=30, hex=0x1E, ascii="^^" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x7C, /* 0111110 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=31, hex=0x1F, ascii="^_" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0x7C, /* 0111110 */ + 0x38, /* 0011100 */ + 0x10, /* 0001000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=32, hex=0x20, ascii=" " + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=33, hex=0x21, ascii="!" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=34, hex=0x22, ascii=""" + */ + 0x00, /* 0000000 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x44, /* 0100010 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=35, hex=0x23, ascii="#" + */ + 0x00, /* 0000000 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0xFE, /* 1111111 */ + 0x6C, /* 0110110 */ + 0xFE, /* 1111111 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x00, /* 0000000 */ + + /* + * code=36, hex=0x24, ascii="$" + */ + 0x08, /* 0000100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x60, /* 0110000 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + 0x7C, /* 0111110 */ + 0x18, /* 0001100 */ + 0x10, /* 0001000 */ + + /* + * code=37, hex=0x25, ascii="%" + */ + 0x70, /* 0111000 */ + 0x52, /* 0101001 */ + 0x76, /* 0111011 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x3E, /* 0011111 */ + 0x6A, /* 0110101 */ + 0x0E, /* 0000111 */ + 0x00, /* 0000000 */ + + /* + * code=38, hex=0x26, ascii="&" + */ + 0x38, /* 0011100 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x38, /* 0011100 */ + 0x6E, /* 0110111 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x3E, /* 0011111 */ + 0x00, /* 0000000 */ + + /* + * code=39, hex=0x27, ascii="'" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=40, hex=0x28, ascii="(" + */ + 0x00, /* 0000000 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + + /* + * code=41, hex=0x29, ascii=")" + */ + 0x00, /* 0000000 */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x00, /* 0000000 */ + + /* + * code=42, hex=0x2A, ascii="*" + */ + 0x00, /* 0000000 */ + 0x44, /* 0100010 */ + 0x6C, /* 0110110 */ + 0x38, /* 0011100 */ + 0xFE, /* 1111111 */ + 0x38, /* 0011100 */ + 0x6C, /* 0110110 */ + 0x44, /* 0100010 */ + 0x00, /* 0000000 */ + + /* + * code=43, hex=0x2B, ascii="+" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x7E, /* 0111111 */ + 0x7E, /* 0111111 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=44, hex=0x2C, ascii="," + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x60, /* 0110000 */ + + /* + * code=45, hex=0x2D, ascii="-" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=46, hex=0x2E, ascii="." + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x00, /* 0000000 */ + + /* + * code=47, hex=0x2F, ascii="/" + */ + 0x00, /* 0000000 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x60, /* 0110000 */ + 0x00, /* 0000000 */ + + /* + * code=48, hex=0x30, ascii="0" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x6E, /* 0110111 */ + 0x76, /* 0111011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=49, hex=0x31, ascii="1" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x78, /* 0111100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + + /* + * code=50, hex=0x32, ascii="2" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x46, /* 0100011 */ + 0x1C, /* 0001110 */ + 0x30, /* 0011000 */ + 0x66, /* 0110011 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + + /* + * code=51, hex=0x33, ascii="3" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x06, /* 0000011 */ + 0x1C, /* 0001110 */ + 0x06, /* 0000011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=52, hex=0x34, ascii="4" + */ + 0x00, /* 0000000 */ + 0x0C, /* 0000110 */ + 0x1C, /* 0001110 */ + 0x3C, /* 0011110 */ + 0x6C, /* 0110110 */ + 0x7E, /* 0111111 */ + 0x0C, /* 0000110 */ + 0x1E, /* 0001111 */ + 0x00, /* 0000000 */ + + /* + * code=53, hex=0x35, ascii="5" + */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x66, /* 0110011 */ + 0x60, /* 0110000 */ + 0x7C, /* 0111110 */ + 0x06, /* 0000011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=54, hex=0x36, ascii="6" + */ + 0x00, /* 0000000 */ + 0x1C, /* 0001110 */ + 0x30, /* 0011000 */ + 0x60, /* 0110000 */ + 0x7C, /* 0111110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=55, hex=0x37, ascii="7" + */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x66, /* 0110011 */ + 0x06, /* 0000011 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=56, hex=0x38, ascii="8" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=57, hex=0x39, ascii="9" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3E, /* 0011111 */ + 0x06, /* 0000011 */ + 0x0C, /* 0000110 */ + 0x38, /* 0011100 */ + 0x00, /* 0000000 */ + + /* + * code=58, hex=0x3A, ascii=":" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x00, /* 0000000 */ + + /* + * code=59, hex=0x3B, ascii=";" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x60, /* 0110000 */ + + /* + * code=60, hex=0x3C, ascii="<" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x60, /* 0110000 */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=61, hex=0x3D, ascii="=" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=62, hex=0x3E, ascii=">" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=63, hex=0x3F, ascii="?" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x06, /* 0000011 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=64, hex=0x40, ascii="@" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x62, /* 0110001 */ + 0x6E, /* 0110111 */ + 0x6A, /* 0110101 */ + 0x6C, /* 0110110 */ + 0x62, /* 0110001 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=65, hex=0x41, ascii="A" + */ + 0x00, /* 0000000 */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x28, /* 0010100 */ + 0x6C, /* 0110110 */ + 0x7C, /* 0111110 */ + 0xC6, /* 1100011 */ + 0xC6, /* 1100011 */ + 0x00, /* 0000000 */ + + /* + * code=66, hex=0x42, ascii="B" + */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x7C, /* 0111110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + + /* + * code=67, hex=0x43, ascii="C" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=68, hex=0x44, ascii="D" + */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + + /* + * code=69, hex=0x45, ascii="E" + */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x66, /* 0110011 */ + 0x60, /* 0110000 */ + 0x78, /* 0111100 */ + 0x60, /* 0110000 */ + 0x66, /* 0110011 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + + /* + * code=70, hex=0x46, ascii="F" + */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x66, /* 0110011 */ + 0x60, /* 0110000 */ + 0x7C, /* 0111110 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x00, /* 0000000 */ + + /* + * code=71, hex=0x47, ascii="G" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x60, /* 0110000 */ + 0x6E, /* 0110111 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3E, /* 0011111 */ + 0x00, /* 0000000 */ + + /* + * code=72, hex=0x48, ascii="H" + */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x7E, /* 0111111 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=73, hex=0x49, ascii="I" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=74, hex=0x4A, ascii="J" + */ + 0x00, /* 0000000 */ + 0x1E, /* 0001111 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x38, /* 0011100 */ + 0x00, /* 0000000 */ + + /* + * code=75, hex=0x4B, ascii="K" + */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x78, /* 0111100 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=76, hex=0x4C, ascii="L" + */ + 0x00, /* 0000000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x66, /* 0110011 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + + /* + * code=77, hex=0x4D, ascii="M" + */ + 0x00, /* 0000000 */ + 0xC6, /* 1100011 */ + 0xC6, /* 1100011 */ + 0xEE, /* 1110111 */ + 0xFE, /* 1111111 */ + 0xD6, /* 1101011 */ + 0xD6, /* 1101011 */ + 0xD6, /* 1101011 */ + 0x00, /* 0000000 */ + + /* + * code=78, hex=0x4E, ascii="N" + */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x76, /* 0111011 */ + 0x76, /* 0111011 */ + 0x7E, /* 0111111 */ + 0x6E, /* 0110111 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=79, hex=0x4F, ascii="O" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=80, hex=0x50, ascii="P" + */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x7C, /* 0111110 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x00, /* 0000000 */ + + /* + * code=81, hex=0x51, ascii="Q" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x76, /* 0111011 */ + 0x6E, /* 0110111 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + + /* + * code=82, hex=0x52, ascii="R" + */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x6C, /* 0110110 */ + 0x78, /* 0111100 */ + 0x6C, /* 0110110 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=83, hex=0x53, ascii="S" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x60, /* 0110000 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=84, hex=0x54, ascii="T" + */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x5A, /* 0101101 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=85, hex=0x55, ascii="U" + */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=86, hex=0x56, ascii="V" + */ + 0x00, /* 0000000 */ + 0xC6, /* 1100011 */ + 0xC6, /* 1100011 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x38, /* 0011100 */ + 0x38, /* 0011100 */ + 0x10, /* 0001000 */ + 0x00, /* 0000000 */ + + /* + * code=87, hex=0x57, ascii="W" + */ + 0x00, /* 0000000 */ + 0xC6, /* 1100011 */ + 0xD6, /* 1101011 */ + 0xD6, /* 1101011 */ + 0xD6, /* 1101011 */ + 0x7C, /* 0111110 */ + 0x6C, /* 0110110 */ + 0x44, /* 0100010 */ + 0x00, /* 0000000 */ + + /* + * code=88, hex=0x58, ascii="X" + */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=89, hex=0x59, ascii="Y" + */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=90, hex=0x5A, ascii="Z" + */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x66, /* 0110011 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x66, /* 0110011 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + + /* + * code=91, hex=0x5B, ascii="[" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=92, hex=0x5C, ascii="\" + */ + 0x00, /* 0000000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + + /* + * code=93, hex=0x5D, ascii="]" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=94, hex=0x5E, ascii="^" + */ + 0x00, /* 0000000 */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x6C, /* 0110110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=95, hex=0x5F, ascii="_" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x7C, /* 0111110 */ + + /* + * code=96, hex=0x60, ascii="`" + */ + 0x00, /* 0000000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=97, hex=0x61, ascii="a" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + 0x3E, /* 0011111 */ + 0x66, /* 0110011 */ + 0x3A, /* 0011101 */ + 0x00, /* 0000000 */ + + /* + * code=98, hex=0x62, ascii="b" + */ + 0x00, /* 0000000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x7C, /* 0111110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x5C, /* 0101110 */ + 0x00, /* 0000000 */ + + /* + * code=99, hex=0x63, ascii="c" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x60, /* 0110000 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=100, hex=0x64, ascii="d" + */ + 0x00, /* 0000000 */ + 0x06, /* 0000011 */ + 0x06, /* 0000011 */ + 0x3E, /* 0011111 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3A, /* 0011101 */ + 0x00, /* 0000000 */ + + /* + * code=101, hex=0x65, ascii="e" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x7E, /* 0111111 */ + 0x60, /* 0110000 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=102, hex=0x66, ascii="f" + */ + 0x00, /* 0000000 */ + 0x1C, /* 0001110 */ + 0x36, /* 0011011 */ + 0x30, /* 0011000 */ + 0x7C, /* 0111110 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x78, /* 0111100 */ + 0x00, /* 0000000 */ + + /* + * code=103, hex=0x67, ascii="g" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3A, /* 0011101 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3E, /* 0011111 */ + 0x06, /* 0000011 */ + 0x3C, /* 0011110 */ + + /* + * code=104, hex=0x68, ascii="h" + */ + 0x00, /* 0000000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x6C, /* 0110110 */ + 0x76, /* 0111011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=105, hex=0x69, ascii="i" + */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x38, /* 0011100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=106, hex=0x6A, ascii="j" + */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + 0x0C, /* 0000110 */ + 0x3C, /* 0011110 */ + 0x0C, /* 0000110 */ + 0x4C, /* 0100110 */ + 0x6C, /* 0110110 */ + 0x38, /* 0011100 */ + + /* + * code=107, hex=0x6B, ascii="k" + */ + 0x00, /* 0000000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x66, /* 0110011 */ + 0x6C, /* 0110110 */ + 0x78, /* 0111100 */ + 0x6C, /* 0110110 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=108, hex=0x6C, ascii="l" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=109, hex=0x6D, ascii="m" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x6C, /* 0110110 */ + 0xFE, /* 1111111 */ + 0xD6, /* 1101011 */ + 0xD6, /* 1101011 */ + 0xD6, /* 1101011 */ + 0x00, /* 0000000 */ + + /* + * code=110, hex=0x6E, ascii="n" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x6C, /* 0110110 */ + 0x76, /* 0111011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=111, hex=0x6F, ascii="o" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=112, hex=0x70, ascii="p" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x76, /* 0111011 */ + 0x6C, /* 0110110 */ + 0x60, /* 0110000 */ + + /* + * code=113, hex=0x71, ascii="q" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3A, /* 0011101 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x6E, /* 0110111 */ + 0x36, /* 0011011 */ + 0x06, /* 0000011 */ + + /* + * code=114, hex=0x72, ascii="r" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x26, /* 0010011 */ + 0x7E, /* 0111111 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x78, /* 0111100 */ + 0x00, /* 0000000 */ + + /* + * code=115, hex=0x73, ascii="s" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x60, /* 0110000 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=116, hex=0x74, ascii="t" + */ + 0x00, /* 0000000 */ + 0x10, /* 0001000 */ + 0x30, /* 0011000 */ + 0xFC, /* 1111110 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x36, /* 0011011 */ + 0x1C, /* 0001110 */ + 0x00, /* 0000000 */ + + /* + * code=117, hex=0x75, ascii="u" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x6E, /* 0110111 */ + 0x36, /* 0011011 */ + 0x00, /* 0000000 */ + + /* + * code=118, hex=0x76, ascii="v" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xC6, /* 1100011 */ + 0xC6, /* 1100011 */ + 0x6C, /* 0110110 */ + 0x38, /* 0011100 */ + 0x10, /* 0001000 */ + 0x00, /* 0000000 */ + + /* + * code=119, hex=0x77, ascii="w" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xD6, /* 1101011 */ + 0xD6, /* 1101011 */ + 0x7C, /* 0111110 */ + 0x6C, /* 0110110 */ + 0x44, /* 0100010 */ + 0x00, /* 0000000 */ + + /* + * code=120, hex=0x78, ascii="x" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xC6, /* 1100011 */ + 0x6C, /* 0110110 */ + 0x38, /* 0011100 */ + 0x6C, /* 0110110 */ + 0xC6, /* 1100011 */ + 0x00, /* 0000000 */ + + /* + * code=121, hex=0x79, ascii="y" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x36, /* 0011011 */ + 0x1C, /* 0001110 */ + 0x6C, /* 0110110 */ + 0x38, /* 0011100 */ + + /* + * code=122, hex=0x7A, ascii="z" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x06, /* 0000011 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + + /* + * code=123, hex=0x7B, ascii="{" + */ + 0x00, /* 0000000 */ + 0x1C, /* 0001110 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x60, /* 0110000 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x1C, /* 0001110 */ + 0x00, /* 0000000 */ + + /* + * code=124, hex=0x7C, ascii="|" + */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=125, hex=0x7D, ascii="}" + */ + 0x00, /* 0000000 */ + 0x70, /* 0111000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x70, /* 0111000 */ + 0x00, /* 0000000 */ + + /* + * code=126, hex=0x7E, ascii="~" + */ + 0x00, /* 0000000 */ + 0x10, /* 0001000 */ + 0x3A, /* 0011101 */ + 0x6E, /* 0110111 */ + 0x04, /* 0000010 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=127, hex=0x7F, ascii="^?" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x08, /* 0000100 */ + 0x1C, /* 0001110 */ + 0x36, /* 0011011 */ + 0x62, /* 0110001 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=128, hex=0x80, ascii="!^@" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x78, /* 0111100 */ + + /* + * code=129, hex=0x81, ascii="!^A" + */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3A, /* 0011101 */ + 0x00, /* 0000000 */ + + /* + * code=130, hex=0x82, ascii="!^B" + */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x3E, /* 0011111 */ + 0x62, /* 0110001 */ + 0x7E, /* 0111111 */ + 0x60, /* 0110000 */ + 0x3E, /* 0011111 */ + 0x00, /* 0000000 */ + + /* + * code=131, hex=0x83, ascii="!^C" + */ + 0x1C, /* 0001110 */ + 0x36, /* 0011011 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + 0x3E, /* 0011111 */ + 0x66, /* 0110011 */ + 0x3E, /* 0011111 */ + 0x00, /* 0000000 */ + + /* + * code=132, hex=0x84, ascii="!^D" + */ + 0x36, /* 0011011 */ + 0x36, /* 0011011 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + 0x3E, /* 0011111 */ + 0x66, /* 0110011 */ + 0x3E, /* 0011111 */ + 0x00, /* 0000000 */ + + /* + * code=133, hex=0x85, ascii="!^E" + */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + 0x3E, /* 0011111 */ + 0x66, /* 0110011 */ + 0x3A, /* 0011101 */ + 0x00, /* 0000000 */ + + /* + * code=134, hex=0x86, ascii="!^F" + */ + 0x1C, /* 0001110 */ + 0x14, /* 0001010 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + 0x3E, /* 0011111 */ + 0x66, /* 0110011 */ + 0x3A, /* 0011101 */ + 0x00, /* 0000000 */ + + /* + * code=135, hex=0x87, ascii="!^G" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x1C, /* 0001110 */ + 0x36, /* 0011011 */ + 0x60, /* 0110000 */ + 0x36, /* 0011011 */ + 0x1C, /* 0001110 */ + 0x78, /* 0111100 */ + + /* + * code=136, hex=0x88, ascii="!^H" + */ + 0x08, /* 0000100 */ + 0x1C, /* 0001110 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x7E, /* 0111111 */ + 0x60, /* 0110000 */ + 0x3E, /* 0011111 */ + 0x00, /* 0000000 */ + + /* + * code=137, hex=0x89, ascii="!^I" + */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x7E, /* 0111111 */ + 0x60, /* 0110000 */ + 0x3E, /* 0011111 */ + 0x00, /* 0000000 */ + + /* + * code=138, hex=0x8A, ascii="!^J" + */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x7E, /* 0111111 */ + 0x60, /* 0110000 */ + 0x3E, /* 0011111 */ + 0x00, /* 0000000 */ + + /* + * code=139, hex=0x8B, ascii="!^K" + */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + 0x38, /* 0011100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=140, hex=0x8C, ascii="!^L" + */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x00, /* 0000000 */ + 0x38, /* 0011100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=141, hex=0x8D, ascii="!^M" + */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x38, /* 0011100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=142, hex=0x8E, ascii="!^N" + */ + 0xC6, /* 1100011 */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x28, /* 0010100 */ + 0x6C, /* 0110110 */ + 0x7C, /* 0111110 */ + 0xC6, /* 1100011 */ + 0xC6, /* 1100011 */ + 0x00, /* 0000000 */ + + /* + * code=143, hex=0x8F, ascii="!^O" + */ + 0x38, /* 0011100 */ + 0x28, /* 0010100 */ + 0x38, /* 0011100 */ + 0x28, /* 0010100 */ + 0x6C, /* 0110110 */ + 0x7C, /* 0111110 */ + 0xC6, /* 1100011 */ + 0xC6, /* 1100011 */ + 0x00, /* 0000000 */ + + /* + * code=144, hex=0x90, ascii="!^P" + */ + 0x1C, /* 0001110 */ + 0x30, /* 0011000 */ + 0x7E, /* 0111111 */ + 0x60, /* 0110000 */ + 0x7C, /* 0111110 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + + /* + * code=145, hex=0x91, ascii="!^Q" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x1A, /* 0001101 */ + 0x7E, /* 0111111 */ + 0xD8, /* 1101100 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + + /* + * code=146, hex=0x92, ascii="!^R" + */ + 0x00, /* 0000000 */ + 0x1E, /* 0001111 */ + 0x38, /* 0011100 */ + 0x58, /* 0101100 */ + 0x5E, /* 0101111 */ + 0xF8, /* 1111100 */ + 0xD8, /* 1101100 */ + 0xDE, /* 1101111 */ + 0x00, /* 0000000 */ + + /* + * code=147, hex=0x93, ascii="!^S" + */ + 0x10, /* 0001000 */ + 0x38, /* 0011100 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=148, hex=0x94, ascii="!^T" + */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=149, hex=0x95, ascii="!^U" + */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=150, hex=0x96, ascii="!^V" + */ + 0x08, /* 0000100 */ + 0x1C, /* 0001110 */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3A, /* 0011101 */ + 0x00, /* 0000000 */ + + /* + * code=151, hex=0x97, ascii="!^W" + */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3A, /* 0011101 */ + 0x00, /* 0000000 */ + + /* + * code=152, hex=0x98, ascii="!^X" + */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x36, /* 0011011 */ + 0x1C, /* 0001110 */ + 0x6C, /* 0110110 */ + 0x38, /* 0011100 */ + + /* + * code=153, hex=0x99, ascii="!^Y" + */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=154, hex=0x9A, ascii="!^Z" + */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=155, hex=0x9B, ascii="!^[" + */ + 0x08, /* 0000100 */ + 0x08, /* 0000100 */ + 0x3C, /* 0011110 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x3C, /* 0011110 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x00, /* 0000000 */ + + /* + * code=156, hex=0x9C, ascii="!^\" + */ + 0x1C, /* 0001110 */ + 0x36, /* 0011011 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x7C, /* 0111110 */ + 0x30, /* 0011000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=157, hex=0x9D, ascii="!^]" + */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x7E, /* 0111111 */ + 0x18, /* 0001100 */ + 0x7E, /* 0111111 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=158, hex=0x9E, ascii="!^^" + */ + 0xE0, /* 1110000 */ + 0xD0, /* 1101000 */ + 0xD0, /* 1101000 */ + 0xF4, /* 1111010 */ + 0xCC, /* 1100110 */ + 0xDE, /* 1101111 */ + 0xCC, /* 1100110 */ + 0x06, /* 0000011 */ + 0x00, /* 0000000 */ + + /* + * code=159, hex=0x9F, ascii="!^_" + */ + 0x0E, /* 0000111 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x7E, /* 0111111 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x70, /* 0111000 */ + + /* + * code=160, hex=0xA0, ascii="! " + */ + 0x06, /* 0000011 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x06, /* 0000011 */ + 0x3E, /* 0011111 */ + 0x66, /* 0110011 */ + 0x3A, /* 0011101 */ + 0x00, /* 0000000 */ + + /* + * code=161, hex=0xA1, ascii="!!" + */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x38, /* 0011100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=162, hex=0xA2, ascii="!"" + */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=163, hex=0xA3, ascii="!#" + */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3A, /* 0011101 */ + 0x00, /* 0000000 */ + + /* + * code=164, hex=0xA4, ascii="!$" + */ + 0x76, /* 0111011 */ + 0xDC, /* 1101110 */ + 0x00, /* 0000000 */ + 0x6C, /* 0110110 */ + 0x76, /* 0111011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=165, hex=0xA5, ascii="!%" + */ + 0x76, /* 0111011 */ + 0xDC, /* 1101110 */ + 0x00, /* 0000000 */ + 0x66, /* 0110011 */ + 0x76, /* 0111011 */ + 0x7E, /* 0111111 */ + 0x6E, /* 0110111 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=166, hex=0xA6, ascii="!&" + */ + 0x38, /* 0011100 */ + 0x0C, /* 0000110 */ + 0x3C, /* 0011110 */ + 0x6C, /* 0110110 */ + 0x34, /* 0011010 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=167, hex=0xA7, ascii="!'" + */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=168, hex=0xA8, ascii="!(" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x60, /* 0110000 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=169, hex=0xA9, ascii="!)" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x3C, /* 0011110 */ + 0x30, /* 0011000 */ + 0x30, /* 0011000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=170, hex=0xAA, ascii="!*" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x7C, /* 0111110 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=171, hex=0xAB, ascii="!+" + */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x6E, /* 0110111 */ + 0x1A, /* 0001101 */ + 0x04, /* 0000010 */ + 0x18, /* 0001100 */ + 0x1E, /* 0001111 */ + 0x00, /* 0000000 */ + + /* + * code=172, hex=0xAC, ascii="!," + */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x6C, /* 0110110 */ + 0x7C, /* 0111110 */ + 0x2C, /* 0010110 */ + 0x7C, /* 0111110 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + + /* + * code=173, hex=0xAD, ascii="!-" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=174, hex=0xAE, ascii="!." + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x32, /* 0011001 */ + 0x66, /* 0110011 */ + 0xCC, /* 1100110 */ + 0x66, /* 0110011 */ + 0x32, /* 0011001 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=175, hex=0xAF, ascii="!/" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xCC, /* 1100110 */ + 0x66, /* 0110011 */ + 0x32, /* 0011001 */ + 0x66, /* 0110011 */ + 0xCC, /* 1100110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=176, hex=0xB0, ascii="!0" + */ + 0x54, /* 0101010 */ + 0x00, /* 0000000 */ + 0xAA, /* 1010101 */ + 0x00, /* 0000000 */ + 0x54, /* 0101010 */ + 0x00, /* 0000000 */ + 0xAA, /* 1010101 */ + 0x00, /* 0000000 */ + 0x54, /* 0101010 */ + + /* + * code=177, hex=0xB1, ascii="!1" + */ + 0x92, /* 1001001 */ + 0x48, /* 0100100 */ + 0x24, /* 0010010 */ + 0x92, /* 1001001 */ + 0x48, /* 0100100 */ + 0x24, /* 0010010 */ + 0x92, /* 1001001 */ + 0x48, /* 0100100 */ + 0x24, /* 0010010 */ + + /* + * code=178, hex=0xB2, ascii="!2" + */ + 0xAA, /* 1010101 */ + 0x54, /* 0101010 */ + 0xAA, /* 1010101 */ + 0x54, /* 0101010 */ + 0xAA, /* 1010101 */ + 0x54, /* 0101010 */ + 0xAA, /* 1010101 */ + 0x54, /* 0101010 */ + 0xAA, /* 1010101 */ + + /* + * code=179, hex=0xB3, ascii="!3" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=180, hex=0xB4, ascii="!4" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0xF0, /* 1111000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=181, hex=0xB5, ascii="!5" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0xF0, /* 1111000 */ + 0x10, /* 0001000 */ + 0xF0, /* 1111000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=182, hex=0xB6, ascii="!6" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0xE8, /* 1110100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=183, hex=0xB7, ascii="!7" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xF8, /* 1111100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=184, hex=0xB8, ascii="!8" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xF0, /* 1111000 */ + 0x10, /* 0001000 */ + 0xF0, /* 1111000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=185, hex=0xB9, ascii="!9" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0xE8, /* 1110100 */ + 0x08, /* 0000100 */ + 0xE8, /* 1110100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=186, hex=0xBA, ascii="!:" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=187, hex=0xBB, ascii="!;" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xF8, /* 1111100 */ + 0x08, /* 0000100 */ + 0xE8, /* 1110100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=188, hex=0xBC, ascii="!<" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0xE8, /* 1110100 */ + 0x08, /* 0000100 */ + 0xF8, /* 1111100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=189, hex=0xBD, ascii="!=" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0xF8, /* 1111100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=190, hex=0xBE, ascii="!>" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0xF0, /* 1111000 */ + 0x10, /* 0001000 */ + 0xF0, /* 1111000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=191, hex=0xBF, ascii="!?" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xF0, /* 1111000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=192, hex=0xC0, ascii="!@" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x1E, /* 0001111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=193, hex=0xC1, ascii="!A" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=194, hex=0xC2, ascii="!B" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=195, hex=0xC3, ascii="!C" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x1E, /* 0001111 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=196, hex=0xC4, ascii="!D" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=197, hex=0xC5, ascii="!E" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0xFE, /* 1111111 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=198, hex=0xC6, ascii="!F" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x1E, /* 0001111 */ + 0x10, /* 0001000 */ + 0x1E, /* 0001111 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=199, hex=0xC7, ascii="!G" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x2E, /* 0010111 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=200, hex=0xC8, ascii="!H" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x2E, /* 0010111 */ + 0x20, /* 0010000 */ + 0x3E, /* 0011111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=201, hex=0xC9, ascii="!I" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3E, /* 0011111 */ + 0x20, /* 0010000 */ + 0x2E, /* 0010111 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=202, hex=0xCA, ascii="!J" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0xEE, /* 1110111 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=203, hex=0xCB, ascii="!K" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0xEE, /* 1110111 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=204, hex=0xCC, ascii="!L" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x2E, /* 0010111 */ + 0x20, /* 0010000 */ + 0x2E, /* 0010111 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=205, hex=0xCD, ascii="!M" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=206, hex=0xCE, ascii="!N" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0xEE, /* 1110111 */ + 0x00, /* 0000000 */ + 0xEE, /* 1110111 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=207, hex=0xCF, ascii="!O" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=208, hex=0xD0, ascii="!P" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0xF8, /* 1111100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=209, hex=0xD1, ascii="!Q" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=210, hex=0xD2, ascii="!R" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xF8, /* 1111100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=211, hex=0xD3, ascii="!S" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x3E, /* 0011111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=212, hex=0xD4, ascii="!T" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x1E, /* 0001111 */ + 0x10, /* 0001000 */ + 0x1E, /* 0001111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=213, hex=0xD5, ascii="!U" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x1E, /* 0001111 */ + 0x10, /* 0001000 */ + 0x1E, /* 0001111 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=214, hex=0xD6, ascii="!V" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3E, /* 0011111 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=215, hex=0xD7, ascii="!W" + */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0xE8, /* 1110100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + 0x28, /* 0010100 */ + + /* + * code=216, hex=0xD8, ascii="!X" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0xFE, /* 1111111 */ + 0x10, /* 0001000 */ + 0xFE, /* 1111111 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=217, hex=0xD9, ascii="!Y" + */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0xF0, /* 1111000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=218, hex=0xDA, ascii="!Z" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x1E, /* 0001111 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + 0x10, /* 0001000 */ + + /* + * code=219, hex=0xDB, ascii="![" + */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + + /* + * code=220, hex=0xDC, ascii="!\" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + + /* + * code=221, hex=0xDD, ascii="!]" + */ + 0xF0, /* 1111000 */ + 0xF0, /* 1111000 */ + 0xF0, /* 1111000 */ + 0xF0, /* 1111000 */ + 0xF0, /* 1111000 */ + 0xF0, /* 1111000 */ + 0xF0, /* 1111000 */ + 0xF0, /* 1111000 */ + 0xF0, /* 1111000 */ + + /* + * code=222, hex=0xDE, ascii="!^" + */ + 0x0E, /* 0000111 */ + 0x0E, /* 0000111 */ + 0x0E, /* 0000111 */ + 0x0E, /* 0000111 */ + 0x0E, /* 0000111 */ + 0x0E, /* 0000111 */ + 0x0E, /* 0000111 */ + 0x0E, /* 0000111 */ + 0x0E, /* 0000111 */ + + /* + * code=223, hex=0xDF, ascii="!_" + */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=224, hex=0xE0, ascii="!`" + */ + 0x00, /* 0000000 */ + 0x34, /* 0011010 */ + 0x68, /* 0110100 */ + 0x68, /* 0110100 */ + 0x68, /* 0110100 */ + 0x34, /* 0011010 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=225, hex=0xE1, ascii="!a" + */ + 0x7C, /* 0111110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x6C, /* 0110110 */ + 0x66, /* 0110011 */ + 0x62, /* 0110001 */ + 0x66, /* 0110011 */ + 0x6C, /* 0110110 */ + 0x08, /* 0000100 */ + + /* + * code=226, hex=0xE2, ascii="!b" + */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x62, /* 0110001 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x00, /* 0000000 */ + + /* + * code=227, hex=0xE3, ascii="!c" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x6C, /* 0110110 */ + 0xFE, /* 1111111 */ + 0xF6, /* 1111011 */ + 0x66, /* 0110011 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x00, /* 0000000 */ + + /* + * code=228, hex=0xE4, ascii="!d" + */ + 0x00, /* 0000000 */ + 0xFE, /* 1111111 */ + 0xC6, /* 1100011 */ + 0x60, /* 0110000 */ + 0x38, /* 0011100 */ + 0x30, /* 0011000 */ + 0x66, /* 0110011 */ + 0xFE, /* 1111111 */ + 0x00, /* 0000000 */ + + /* + * code=229, hex=0xE5, ascii="!e" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3E, /* 0011111 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x38, /* 0011100 */ + 0x00, /* 0000000 */ + + /* + * code=230, hex=0xE6, ascii="!f" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x36, /* 0011011 */ + 0x36, /* 0011011 */ + 0x36, /* 0011011 */ + 0x3E, /* 0011111 */ + 0x62, /* 0110001 */ + 0x40, /* 0100000 */ + + /* + * code=231, hex=0xE7, ascii="!g" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7A, /* 0111101 */ + 0x6A, /* 0110101 */ + 0x0E, /* 0000111 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=232, hex=0xE8, ascii="!h" + */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=233, hex=0xE9, ascii="!i" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x7E, /* 0111111 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=234, hex=0xEA, ascii="!j" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x24, /* 0010010 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=235, hex=0xEB, ascii="!k" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x60, /* 0110000 */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=236, hex=0xEC, ascii="!l" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x34, /* 0011010 */ + 0x4A, /* 0100101 */ + 0x4A, /* 0100101 */ + 0x4A, /* 0100101 */ + 0x34, /* 0011010 */ + 0x00, /* 0000000 */ + + /* + * code=237, hex=0xED, ascii="!m" + */ + 0x04, /* 0000010 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x6E, /* 0110111 */ + 0x76, /* 0111011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x10, /* 0001000 */ + 0x20, /* 0010000 */ + + /* + * code=238, hex=0xEE, ascii="!n" + */ + 0x1E, /* 0001111 */ + 0x30, /* 0011000 */ + 0x60, /* 0110000 */ + 0x60, /* 0110000 */ + 0x7E, /* 0111111 */ + 0x60, /* 0110000 */ + 0x30, /* 0011000 */ + 0x1E, /* 0001111 */ + 0x00, /* 0000000 */ + + /* + * code=239, hex=0xEF, ascii="!o" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x00, /* 0000000 */ + + /* + * code=240, hex=0xF0, ascii="!p" + */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + + /* + * code=241, hex=0xF1, ascii="!q" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x7E, /* 0111111 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + + /* + * code=242, hex=0xF2, ascii="!r" + */ + 0x00, /* 0000000 */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=243, hex=0xF3, ascii="!s" + */ + 0x00, /* 0000000 */ + 0x0C, /* 0000110 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x18, /* 0001100 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + + /* + * code=244, hex=0xF4, ascii="!t" + */ + 0x0C, /* 0000110 */ + 0x1A, /* 0001101 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + + /* + * code=245, hex=0xF5, ascii="!u" + */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x58, /* 0101100 */ + 0x30, /* 0011000 */ + + /* + * code=246, hex=0xF6, ascii="!v" + */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x7E, /* 0111111 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + + /* + * code=247, hex=0xF7, ascii="!w" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x1A, /* 0001101 */ + 0x76, /* 0111011 */ + 0x00, /* 0000000 */ + 0x1A, /* 0001101 */ + 0x76, /* 0111011 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=248, hex=0xF8, ascii="!x" + */ + 0x00, /* 0000000 */ + 0x3C, /* 0011110 */ + 0x66, /* 0110011 */ + 0x66, /* 0110011 */ + 0x3C, /* 0011110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=249, hex=0xF9, ascii="!y" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x3C, /* 0011110 */ + 0x3C, /* 0011110 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=250, hex=0xFA, ascii="!z" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x18, /* 0001100 */ + 0x18, /* 0001100 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=251, hex=0xFB, ascii="!{" + */ + 0x0E, /* 0000111 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x0C, /* 0000110 */ + 0x6C, /* 0110110 */ + 0x3C, /* 0011110 */ + 0x0C, /* 0000110 */ + 0x00, /* 0000000 */ + + /* + * code=252, hex=0xFC, ascii="!|" + */ + 0x00, /* 0000000 */ + 0x78, /* 0111100 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x6C, /* 0110110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=253, hex=0xFD, ascii="!}" + */ + 0x00, /* 0000000 */ + 0x38, /* 0011100 */ + 0x4C, /* 0100110 */ + 0x18, /* 0001100 */ + 0x30, /* 0011000 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=254, hex=0xFE, ascii="!~" + */ + 0x00, /* 0000000 */ + 0x7C, /* 0111110 */ + 0x7C, /* 0111110 */ + 0x7C, /* 0111110 */ + 0x7C, /* 0111110 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + + /* + * code=255, hex=0xFF, ascii="!^Ÿ" + */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ + 0x00, /* 0000000 */ +}; diff --git a/wled00/const.h b/wled00/const.h index 499724c4..7a62a38d 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -247,6 +247,7 @@ // WLED Error modes #define ERR_NONE 0 // All good :) #define ERR_EEP_COMMIT 2 // Could not commit to EEPROM (wrong flash layout?) +#define ERR_NOBUF 3 // JSON buffer was not released in time, request cannot be handled at this time #define ERR_JSON 9 // JSON parsing failed (input too large?) #define ERR_FS_BEGIN 10 // Could not init filesystem (no partition?) #define ERR_FS_QUOTA 11 // The FS is full or the maximum file size is reached @@ -369,18 +370,10 @@ #undef HW_PIN_SDA #endif #ifndef HW_PIN_SCL - #ifdef ESP8266 - #define HW_PIN_SCL 5 - #else - #define HW_PIN_SCL 22 - #endif + #define HW_PIN_SCL SCL #endif #ifndef HW_PIN_SDA - #ifdef ESP8266 - #define HW_PIN_SDA 4 - #else - #define HW_PIN_SDA 21 - #endif + #define HW_PIN_SDA SDA #endif #if defined(ESP8266) && defined(HW_PIN_CLOCKSPI) @@ -389,19 +382,17 @@ #if defined(ESP8266) && defined(HW_PIN_DATASPI) #undef HW_PIN_DATASPI #endif +#if defined(ESP8266) && defined(HW_PIN_CSSPI) + #undef HW_PIN_CSSPI +#endif #ifndef HW_PIN_CLOCKSPI - #ifdef ESP8266 - #define HW_PIN_CLOCKSPI 14 - #else - #define HW_PIN_CLOCKSPI 18 - #endif + #define HW_PIN_CLOCKSPI SCK #endif #ifndef HW_PIN_DATASPI - #ifdef ESP8266 - #define HW_PIN_DATASPI 13 - #else - #define HW_PIN_DATASPI 23 - #endif + #define HW_PIN_DATASPI MOSI +#endif +#ifndef HW_PIN_CSSPI + #define HW_PIN_CSSPI SS #endif #endif diff --git a/wled00/data/index.css b/wled00/data/index.css index 5a9e2402..210603fc 100644 --- a/wled00/data/index.css +++ b/wled00/data/index.css @@ -238,7 +238,10 @@ button { display: none; width: 90%; border: 0px; - margin: 0 auto; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); } .tab { @@ -398,10 +401,10 @@ button { .filter { background-color: var(--c-4); - box-shadow: 0px 0px 6px 6px var(--c-1); + /*box-shadow: 0px 0px 6px 6px var(--c-1);*/ border-radius: 26px; height: 26px; - margin: 0 auto 4px; /* 8px if you want space */ + margin: 0 auto; /* add 4-8px if you want space at the bottom */ padding: 8px 2px; position: relative; /*width: 260px;*/ @@ -1217,7 +1220,7 @@ TD .checkmark, TD .radiomark { .filter .fchkl { display: inline-block; min-width: 0.7em; - padding: 4px 4px 4px 32px; + padding: 1px 4px 4px 32px; text-align: left; line-height: 24px; vertical-align: middle; @@ -1228,6 +1231,7 @@ TD .checkmark, TD .radiomark { .lbl-s { display: inline-block; /* margin: 10px 4px 0 0; */ + margin-top: 6px; font-size: 13px; width: 48%; text-align: center; diff --git a/wled00/data/index.htm b/wled00/data/index.htm index c6eb2e38..e0944395 100644 --- a/wled00/data/index.htm +++ b/wled00/data/index.htm @@ -46,9 +46,9 @@ } }, 100); }); - setTimeout(()=>{h.appendChild(l)},50); + setTimeout(()=>{h.appendChild(l)},100); }); - setTimeout(()=>{h.appendChild(l)},50); + setTimeout(()=>{h.appendChild(l)},100); @@ -218,16 +218,16 @@
-

diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index fce96856..c531fb16 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -588,8 +588,9 @@ Length: 800 LEDs per output for the best experience!

- Make a segment for each output:
- Custom bus start indices:
+ Make a segment for each output:
+ Custom bus start indices:
+ Use global LED buffer:

Color Order Override: diff --git a/wled00/data/settings_sec.htm b/wled00/data/settings_sec.htm index f3936126..a6098300 100644 --- a/wled00/data/settings_sec.htm +++ b/wled00/data/settings_sec.htm @@ -24,6 +24,8 @@ scE.addEventListener("load", () => { //console.log("File loaded"); GetV(); + setBckFilename(gId("bckcfg")); + setBckFilename(gId("bckpresets")); }); // error event scE.addEventListener("error", (ev) => { @@ -59,6 +61,9 @@ event.preventDefault(); return false; } + function setBckFilename(x) { + x.setAttribute("download","wled_" + x.getAttribute("download") + (sd=="WLED"?"":("_" +sd))); + } function S() { if (window.location.protocol == "file:") { loc = true; @@ -101,9 +106,9 @@ Enable ArduinoOTA:

Backup & Restore

- Backup presets
+ Backup presets
Restore presets


- Backup configuration
+ Backup configuration
Restore configuration

⚠ Restoring presets/configuration will OVERWRITE your current presets/configuration.
Incorrect configuration may require a factory reset or re-flashing of your ESP.
@@ -119,6 +124,5 @@
- \ No newline at end of file diff --git a/wled00/data/settings_um.htm b/wled00/data/settings_um.htm index 4b9d47cc..e2328566 100644 --- a/wled00/data/settings_um.htm +++ b/wled00/data/settings_um.htm @@ -55,6 +55,7 @@ if (o.type=="number" && n.substr(0,3)=="pin") { for (var i=0; i39) { o.style.color="red"; break; } else o.style.color=o.value>33?"orange":"#fff"; } } @@ -79,6 +80,7 @@ } } } + function updPins() {} function addField(k,f,o,a=false) { //key, field, (sub)object, isArray if (isO(o)) { urows += '
'; @@ -205,6 +207,16 @@

Usermod Setup

+ Global I2C GPIOs (HW)
+ (only changable on ESP32, change requires reboot!)
+ SDA: + SCL: +
+ Global SPI GPIOs (HW)
+ (only changable on ESP32, change requires reboot!)
+ MOSI: + SCLK: + CS:
Loading settings...

diff --git a/wled00/data/simple.js b/wled00/data/simple.js index eb8013f5..582861b0 100644 --- a/wled00/data/simple.js +++ b/wled00/data/simple.js @@ -644,7 +644,7 @@ function populateEffects() for (let i = 0; i < effects.length; i++) { // WLEDSR: add slider and color control to setEffect (used by requestjson) - if (effects[i].name.indexOf("Reserved") < 0) { + if (effects[i].name.indexOf("RSVD") < 0) { var posAt = effects[i].name.indexOf("@"); var extra = ''; if (posAt > 0) diff --git a/wled00/fcn_declare.h b/wled00/fcn_declare.h index 1babd2b0..d0073f85 100644 --- a/wled00/fcn_declare.h +++ b/wled00/fcn_declare.h @@ -60,22 +60,21 @@ bool getJsonValue(const JsonVariant& element, DestType& destination, const Defau //colors.cpp uint32_t color_blend(uint32_t,uint32_t,uint16_t,bool b16=false); uint32_t color_add(uint32_t,uint32_t); - inline uint32_t colorFromRgbw(byte* rgbw) { return uint32_t((byte(rgbw[3]) << 24) | (byte(rgbw[0]) << 16) | (byte(rgbw[1]) << 8) | (byte(rgbw[2]))); } void colorHStoRGB(uint16_t hue, byte sat, byte* rgb); //hue, sat to rgb void colorKtoRGB(uint16_t kelvin, byte* rgb); void colorCTtoRGB(uint16_t mired, byte* rgb); //white spectrum to rgb - void colorXYtoRGB(float x, float y, byte* rgb); // only defined if huesync disabled TODO void colorRGBtoXY(byte* rgb, float* xy); // only defined if huesync disabled TODO - void colorFromDecOrHexString(byte* rgb, char* in); bool colorFromHexString(byte* rgb, const char* in); - uint32_t colorBalanceFromKelvin(uint16_t kelvin, uint32_t rgb); uint16_t approximateKelvinFromRGB(uint32_t rgb); - void setRandomColor(byte* rgb); +uint8_t gamma8_cal(uint8_t b, float gamma); +void calcGammaTable(float gamma); +uint8_t gamma8(uint8_t b); +uint32_t gamma32(uint32_t); //dmx.cpp void initDMX(); @@ -238,7 +237,7 @@ typedef enum UM_Data_Types { typedef struct UM_Exchange_Data { // should just use: size_t arr_size, void **arr_ptr, byte *ptr_type size_t u_size; // size of u_data array - um_types_t *u_type; // array of data types ewowi: not used??? + um_types_t *u_type; // array of data types void **u_data; // array of pointers to data UM_Exchange_Data() { u_size = 0; @@ -328,12 +327,15 @@ uint8_t extractModeSlider(uint8_t mode, uint8_t slider, char *dest, uint8_t maxL int16_t extractModeDefaults(uint8_t mode, const char *segVar); uint16_t crc16(const unsigned char* data_p, size_t length); um_data_t* simulateSound(uint8_t simulationId); +void enumerateLedmaps(); +#ifdef WLED_ADD_EEPROM_SUPPORT //wled_eeprom.cpp void applyMacro(byte index); void deEEP(); void deEEPSettings(); void clearEEPROM(); +#endif //wled_math.cpp #ifndef WLED_USE_REAL_MATH diff --git a/wled00/html_other.h b/wled00/html_other.h index 92577a77..d758be1d 100644 --- a/wled00/html_other.h +++ b/wled00/html_other.h @@ -229,117 +229,111 @@ const uint8_t PAGE_liveview[] PROGMEM = { // Autogenerated from wled00/data/liveviewws.htm, do not edit!! -const uint16_t PAGE_liveviewws_length = 740; +const uint16_t PAGE_liveviewws_length = 711; const uint8_t PAGE_liveviewws[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x54, 0x5d, 0x6f, 0xdb, 0x38, - 0x10, 0x7c, 0xf7, 0xaf, 0x50, 0x99, 0x4b, 0x2a, 0xc1, 0xb2, 0xec, 0xa4, 0x68, 0xd3, 0x93, 0x44, - 0x07, 0xfd, 0xf0, 0x43, 0x0f, 0xc1, 0x35, 0x40, 0x52, 0x04, 0x87, 0x20, 0x40, 0x29, 0x69, 0x2d, - 0xf1, 0x22, 0x91, 0x02, 0xb9, 0xb2, 0x60, 0x18, 0xfa, 0xef, 0xb7, 0x94, 0x1d, 0xe7, 0xee, 0xda, - 0xfa, 0x41, 0x22, 0xcd, 0xdd, 0x9d, 0xd9, 0x19, 0xae, 0xd2, 0x57, 0x9f, 0xbf, 0x7e, 0xba, 0xfb, - 0xeb, 0x66, 0xe5, 0x55, 0xd8, 0xd4, 0xcb, 0xf4, 0xf0, 0x04, 0x51, 0x2c, 0xd3, 0x06, 0x50, 0x78, - 0x4a, 0x34, 0xc0, 0xd9, 0x46, 0x42, 0xdf, 0x6a, 0x83, 0xcc, 0x9b, 0xe4, 0x5a, 0x21, 0x28, 0xe4, - 0xac, 0x97, 0x05, 0x56, 0xbc, 0x80, 0x8d, 0xcc, 0x61, 0x36, 0x6e, 0x42, 0xa9, 0x24, 0x4a, 0x51, - 0xcf, 0x6c, 0x2e, 0x6a, 0xe0, 0xe7, 0x61, 0x43, 0x7f, 0x34, 0x5d, 0xf3, 0xbc, 0x67, 0x87, 0x9a, - 0x93, 0xbc, 0x12, 0xc6, 0x02, 0xd5, 0xe8, 0x70, 0x3d, 0x7b, 0xcf, 0xfe, 0x03, 0x85, 0x15, 0x34, - 0x30, 0xcb, 0x75, 0xad, 0x0d, 0xf3, 0x8e, 0x60, 0x27, 0x17, 0xe3, 0x8f, 0x42, 0x51, 0x62, 0x0d, - 0xcb, 0xc9, 0xfd, 0xf5, 0xea, 0xb3, 0x77, 0x2d, 0x37, 0xe0, 0xdd, 0x18, 0x70, 0xf4, 0xd2, 0xf9, - 0xfe, 0x24, 0xb5, 0xb8, 0x75, 0x01, 0x99, 0x2e, 0xb6, 0xbb, 0x46, 0x98, 0x52, 0xaa, 0x78, 0x31, - 0x9c, 0xe4, 0x42, 0x6d, 0x76, 0x99, 0xc8, 0x9f, 0x4a, 0xa3, 0x3b, 0x55, 0xc4, 0x27, 0x8b, 0xc5, - 0x22, 0x59, 0xcb, 0x1a, 0xc1, 0xc4, 0x99, 0x91, 0x65, 0x85, 0x0a, 0xac, 0xf5, 0xcf, 0x2f, 0xdf, - 0x9e, 0x06, 0xc9, 0xd8, 0x4d, 0x7c, 0xbe, 0x58, 0x9c, 0x26, 0x15, 0xb8, 0xb3, 0xfd, 0xba, 0xd5, - 0x96, 0xfa, 0xd3, 0x2a, 0x16, 0x99, 0xd5, 0x75, 0x87, 0x30, 0x4c, 0xd2, 0xf9, 0x1e, 0x2e, 0x9d, - 0xef, 0x35, 0x73, 0xa8, 0xcb, 0xb4, 0x90, 0x1b, 0x4f, 0x16, 0x9c, 0x39, 0x50, 0xa2, 0x6c, 0x73, - 0x23, 0x5b, 0x5c, 0x4e, 0xd6, 0x9d, 0xca, 0x5d, 0xbe, 0xd7, 0xb5, 0x85, 0x40, 0x38, 0x10, 0xf7, - 0x21, 0xd8, 0x6d, 0x84, 0xf1, 0x14, 0x67, 0xb5, 0x54, 0x20, 0xcc, 0xac, 0x34, 0xa2, 0x90, 0xd4, - 0xb6, 0xff, 0xfb, 0xa2, 0x80, 0x32, 0x64, 0x21, 0x72, 0x88, 0x6a, 0x50, 0x25, 0x56, 0xc9, 0x5a, - 0x1b, 0x5f, 0xf2, 0x8b, 0x44, 0xa6, 0x98, 0xc8, 0x29, 0x7f, 0x13, 0xa8, 0x29, 0xff, 0x6e, 0xca, - 0xcc, 0xff, 0x6d, 0x07, 0x0f, 0xf2, 0x71, 0x08, 0xc7, 0xf7, 0xf4, 0xfc, 0xb8, 0xba, 0x78, 0x1c, - 0x82, 0xef, 0x21, 0x85, 0xcf, 0xde, 0x9c, 0x9d, 0xf9, 0x14, 0xcd, 0x42, 0x16, 0x24, 0xee, 0x1d, - 0xb0, 0xb0, 0xd0, 0x79, 0xd7, 0x10, 0x52, 0x54, 0x02, 0xae, 0x6a, 0x70, 0xcb, 0x8f, 0xdb, 0x2f, - 0x85, 0xbf, 0x67, 0x1e, 0x44, 0x63, 0x73, 0xd1, 0x8b, 0x6c, 0x5c, 0x0d, 0xc7, 0x26, 0x28, 0xc5, - 0xe9, 0xff, 0x87, 0xd5, 0xca, 0xb5, 0x80, 0x66, 0xbb, 0x93, 0x6b, 0x9f, 0x3d, 0xe8, 0xec, 0x6f, - 0xc8, 0xd1, 0xfb, 0x60, 0x8c, 0xd8, 0x7e, 0xec, 0xd6, 0x6b, 0x30, 0x8f, 0x8c, 0x73, 0x8e, 0xfa, - 0x16, 0x8d, 0x54, 0x65, 0x44, 0x77, 0xa1, 0xf6, 0x21, 0x22, 0x05, 0x44, 0x10, 0xec, 0x6a, 0x40, - 0x0f, 0xb8, 0x82, 0xde, 0xfb, 0x26, 0x15, 0xbe, 0x1f, 0xb3, 0x7c, 0xd8, 0x38, 0x4e, 0x63, 0x44, - 0x42, 0x35, 0x2f, 0xdf, 0xbd, 0xe2, 0xf0, 0xb0, 0x78, 0x0c, 0x0c, 0x60, 0x67, 0x54, 0xf2, 0x7f, - 0xf9, 0x86, 0x21, 0x17, 0x98, 0x57, 0x8e, 0x05, 0x5d, 0x18, 0xb2, 0x06, 0x22, 0x30, 0x86, 0x84, - 0x62, 0x37, 0x00, 0x4f, 0xde, 0xfd, 0xad, 0x37, 0x6e, 0x63, 0x16, 0xba, 0x58, 0xa7, 0x75, 0x6f, - 0x13, 0xc7, 0xb7, 0xb7, 0x44, 0xab, 0x8d, 0x7a, 0xa9, 0x0a, 0xdd, 0x47, 0xbd, 0x7d, 0xa9, 0x33, - 0xf4, 0xf6, 0xec, 0xac, 0xb7, 0x91, 0x21, 0x57, 0xb7, 0xb7, 0x48, 0x70, 0xd4, 0xc2, 0x3d, 0x64, - 0xb7, 0x3a, 0x7f, 0x02, 0x8c, 0xbe, 0xde, 0xac, 0xfe, 0xbc, 0xf2, 0x9f, 0xc1, 0xa4, 0x5a, 0xeb, - 0x03, 0x56, 0x67, 0xc1, 0x7a, 0x54, 0x93, 0x40, 0x59, 0x10, 0x52, 0x01, 0x0b, 0x8a, 0xe4, 0xdc, - 0xbd, 0xae, 0x37, 0xaf, 0x63, 0x34, 0x1d, 0x0c, 0x2c, 0x08, 0xe2, 0x9f, 0x65, 0x12, 0x4b, 0xdd, - 0x82, 0x22, 0x85, 0x28, 0xd1, 0x27, 0x66, 0x4e, 0x93, 0x23, 0xa2, 0xef, 0xb3, 0x0a, 0xb1, 0xb5, - 0x31, 0x49, 0x79, 0xa0, 0x5b, 0x6b, 0x62, 0x4b, 0x46, 0x44, 0xad, 0xd1, 0xa8, 0x69, 0x60, 0xae, - 0x58, 0x6f, 0x2d, 0x8b, 0xe9, 0xc9, 0x82, 0x29, 0x8b, 0xe7, 0x73, 0x36, 0x3d, 0xfa, 0x7b, 0x0c, - 0xae, 0xb4, 0xc5, 0x29, 0x9b, 0xbb, 0x98, 0x20, 0xd2, 0xca, 0x41, 0xf2, 0x67, 0x4b, 0xfd, 0x17, - 0xfd, 0x7e, 0x24, 0xf6, 0xcb, 0x76, 0x86, 0xf1, 0x20, 0x93, 0x4a, 0x98, 0xed, 0xdd, 0xb6, 0xa5, - 0x11, 0x16, 0xce, 0xc4, 0x6c, 0xb4, 0x9e, 0xb9, 0x33, 0x51, 0x14, 0x2b, 0xe7, 0xe8, 0xb5, 0xb4, - 0x34, 0xcd, 0x40, 0xbe, 0x34, 0x34, 0x6b, 0xa2, 0x04, 0x16, 0xfe, 0xeb, 0x12, 0x05, 0x6e, 0x98, - 0xf6, 0x93, 0x92, 0xce, 0xf7, 0x73, 0x34, 0x1f, 0x3f, 0x47, 0xff, 0x00, 0xeb, 0x0e, 0x42, 0x19, - 0xa4, 0x04, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x6d, 0x54, 0x5d, 0x8f, 0x9b, 0x3a, + 0x10, 0x7d, 0xcf, 0xaf, 0xa0, 0xde, 0xdb, 0x2d, 0x56, 0x08, 0x24, 0xdb, 0xdb, 0x2f, 0xc0, 0x59, + 0xb5, 0xb7, 0x79, 0xa8, 0xb4, 0x6a, 0x57, 0xda, 0x5e, 0xad, 0xaa, 0x55, 0xa4, 0x1a, 0x98, 0x80, + 0xef, 0x82, 0x1d, 0xd9, 0x43, 0x50, 0x84, 0xf8, 0xef, 0x77, 0x20, 0xdb, 0xac, 0x2a, 0x95, 0x07, + 0xdb, 0xc3, 0x9c, 0x99, 0x33, 0x33, 0x3e, 0x90, 0xbe, 0xf8, 0xfc, 0xed, 0x9f, 0xef, 0x3f, 0x6e, + 0x37, 0x5e, 0x85, 0x4d, 0xbd, 0x4e, 0x9f, 0x56, 0x90, 0xc5, 0x3a, 0x6d, 0x00, 0xa5, 0xa7, 0x65, + 0x03, 0x82, 0x1d, 0x14, 0x74, 0x7b, 0x63, 0x91, 0x79, 0xb3, 0xdc, 0x68, 0x04, 0x8d, 0x82, 0x75, + 0xaa, 0xc0, 0x4a, 0x14, 0x70, 0x50, 0x39, 0x2c, 0x26, 0x23, 0x50, 0x5a, 0xa1, 0x92, 0xf5, 0xc2, + 0xe5, 0xb2, 0x06, 0xb1, 0x0a, 0x1a, 0x7a, 0xd1, 0xb4, 0xcd, 0x2f, 0x9b, 0x3d, 0xe5, 0x9c, 0xe5, + 0x95, 0xb4, 0x0e, 0x28, 0x47, 0x8b, 0xbb, 0xc5, 0x7b, 0xf6, 0x1b, 0x15, 0x56, 0xd0, 0xc0, 0x22, + 0x37, 0xb5, 0xb1, 0xcc, 0x3b, 0x93, 0x5d, 0x5c, 0x4d, 0x0f, 0x41, 0x51, 0x61, 0x0d, 0xeb, 0xd9, + 0xfd, 0xcd, 0xe6, 0xb3, 0x77, 0xa3, 0x0e, 0xe0, 0xdd, 0x5a, 0x18, 0xcb, 0x4b, 0xa3, 0x93, 0x27, + 0x75, 0x78, 0x1c, 0x01, 0x99, 0x29, 0x8e, 0x7d, 0x23, 0x6d, 0xa9, 0x74, 0xbc, 0x1c, 0x2e, 0x72, + 0xa9, 0x0f, 0x7d, 0x26, 0xf3, 0xc7, 0xd2, 0x9a, 0x56, 0x17, 0xf1, 0xc5, 0x72, 0xb9, 0x4c, 0x76, + 0xaa, 0x46, 0xb0, 0x71, 0x66, 0x55, 0x59, 0xa1, 0x06, 0xe7, 0xfc, 0xd5, 0xbb, 0x37, 0x2f, 0x79, + 0x32, 0x75, 0x13, 0xaf, 0x96, 0xcb, 0x97, 0x49, 0x05, 0xa3, 0xef, 0x74, 0xde, 0x1b, 0x47, 0xfd, + 0x19, 0x1d, 0xcb, 0xcc, 0x99, 0xba, 0x45, 0x18, 0x66, 0x69, 0x74, 0xa2, 0x4b, 0xa3, 0xd3, 0xcc, + 0x46, 0xd6, 0x75, 0x5a, 0xa8, 0x83, 0xa7, 0x0a, 0xc1, 0x46, 0x52, 0x2a, 0x39, 0x22, 0x9b, 0xea, + 0xca, 0xad, 0xda, 0xe3, 0x7a, 0x76, 0x90, 0xd6, 0xeb, 0x5c, 0x82, 0xf6, 0xd8, 0x77, 0x4e, 0xa0, + 0xd9, 0x87, 0x9d, 0xd2, 0x85, 0xe9, 0xc2, 0xce, 0x0d, 0xb9, 0xc4, 0xbc, 0xf2, 0x81, 0xf7, 0x43, + 0xe7, 0x2e, 0x2f, 0x3b, 0x17, 0x5a, 0xca, 0x7a, 0xbc, 0x43, 0x89, 0x20, 0x84, 0xb8, 0x87, 0xec, + 0xce, 0xe4, 0x8f, 0x80, 0xe1, 0xb7, 0xdb, 0xcd, 0xd7, 0x6b, 0x72, 0x3b, 0xd0, 0x85, 0xcf, 0xfa, + 0x57, 0xf5, 0xe1, 0x55, 0x8c, 0xb6, 0x85, 0x81, 0xf1, 0xd8, 0xa7, 0xa1, 0x51, 0x79, 0x10, 0x2a, + 0xbd, 0x33, 0x3e, 0xbb, 0x05, 0x78, 0xf4, 0xee, 0xef, 0x3c, 0xb3, 0x07, 0xad, 0x74, 0xc9, 0x78, + 0xe0, 0x13, 0xad, 0x86, 0xce, 0x3b, 0xa7, 0xf3, 0x7d, 0x56, 0x21, 0xee, 0x5d, 0xcc, 0x84, 0x78, + 0xaa, 0xa5, 0x36, 0x54, 0x0a, 0xb5, 0x1a, 0xee, 0xad, 0x41, 0x43, 0xb7, 0x71, 0xcd, 0x3a, 0xe7, + 0x58, 0x4c, 0x2b, 0xe3, 0x73, 0x16, 0x47, 0x11, 0x9b, 0x17, 0x26, 0x6f, 0x1b, 0xba, 0x9d, 0x67, + 0x70, 0x65, 0x1c, 0xce, 0x59, 0x34, 0x62, 0x78, 0x68, 0xf4, 0x48, 0x29, 0x76, 0xad, 0xce, 0x47, + 0xa7, 0xcf, 0xfb, 0x3f, 0x17, 0x3c, 0xf0, 0x80, 0x1c, 0x99, 0xd2, 0xd2, 0x1e, 0xbf, 0x1f, 0xf7, + 0x24, 0x01, 0x69, 0xad, 0x3c, 0x66, 0xed, 0x6e, 0x07, 0x96, 0x8d, 0x3e, 0x59, 0x14, 0x9b, 0x03, + 0x11, 0xdd, 0x28, 0x47, 0x6a, 0x00, 0xeb, 0xb3, 0x86, 0xee, 0x4a, 0x96, 0xc0, 0x02, 0x10, 0xeb, + 0x7e, 0x9c, 0xa4, 0xda, 0xf9, 0xec, 0xc1, 0x64, 0xff, 0x41, 0x8e, 0xde, 0xc7, 0x31, 0xfc, 0xd3, + 0x14, 0xbe, 0xa5, 0x8e, 0x68, 0xc4, 0x77, 0x68, 0xa9, 0xf5, 0x90, 0x54, 0x58, 0xfb, 0x10, 0x16, + 0x12, 0x25, 0xe7, 0x7d, 0x0d, 0xe8, 0xc1, 0x34, 0x88, 0x7f, 0x95, 0xc6, 0xf7, 0x53, 0x94, 0x0f, + 0x23, 0xcf, 0x09, 0x91, 0x50, 0xce, 0x77, 0x6f, 0x5f, 0x08, 0x78, 0x58, 0x6e, 0xb9, 0x05, 0x6c, + 0xad, 0x4e, 0xc6, 0x18, 0x52, 0x63, 0xad, 0x34, 0x48, 0xbb, 0x28, 0xad, 0x2c, 0x14, 0xe1, 0xfd, + 0x0f, 0xcb, 0x02, 0xca, 0x80, 0x05, 0x5a, 0x40, 0x58, 0x83, 0x2e, 0xe9, 0x53, 0xb0, 0xe2, 0x4a, + 0x50, 0xe8, 0x6a, 0x7b, 0xfd, 0x77, 0x7c, 0x95, 0xec, 0x8c, 0xf5, 0x95, 0xb0, 0x89, 0x4a, 0x75, + 0xa2, 0xe6, 0xe2, 0x35, 0xc7, 0xb9, 0xf8, 0x69, 0xcb, 0xcc, 0xff, 0xab, 0x87, 0x07, 0xb5, 0x1d, + 0x82, 0x69, 0x9f, 0xaf, 0xce, 0xa7, 0xab, 0xed, 0xc0, 0x7f, 0x06, 0x04, 0x5f, 0xbc, 0xbe, 0xbc, + 0xf4, 0x09, 0xcd, 0x02, 0xc6, 0x93, 0x71, 0xe7, 0x2c, 0x38, 0x0f, 0xbe, 0x04, 0xdc, 0xd4, 0x30, + 0x1e, 0x3f, 0x1d, 0xbf, 0xd0, 0x5c, 0x27, 0xbd, 0xf1, 0x70, 0x92, 0x64, 0xf8, 0x2c, 0x76, 0x81, + 0xc3, 0xb3, 0xb2, 0x7e, 0xa9, 0x03, 0xac, 0xa5, 0xa2, 0xce, 0xf2, 0x98, 0xcc, 0x98, 0x06, 0xca, + 0x87, 0x81, 0x8f, 0xb2, 0x3e, 0xa9, 0x35, 0x8d, 0x4e, 0x8a, 0x8e, 0xa6, 0x1f, 0xc3, 0xff, 0x16, + 0x7e, 0x9e, 0x8e, 0x2e, 0x04, 0x00, 0x00 }; // Autogenerated from wled00/data/liveviewws2D.htm, do not edit!! -const uint16_t PAGE_liveviewws2D_length = 896; +const uint16_t PAGE_liveviewws2D_length = 818; const uint8_t PAGE_liveviewws2D[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x7d, 0x55, 0x6d, 0x6f, 0xdb, 0x36, - 0x10, 0xfe, 0xee, 0x5f, 0xa1, 0x72, 0x5d, 0x4b, 0xc6, 0x8a, 0xe4, 0x3a, 0xc9, 0x96, 0xd9, 0x92, - 0x8b, 0x35, 0x35, 0xb0, 0x0e, 0xd9, 0x6a, 0xc0, 0xdd, 0x82, 0x21, 0x30, 0x50, 0x5a, 0x3a, 0x5b, - 0x5c, 0x25, 0x52, 0x20, 0x69, 0x2b, 0x86, 0xa0, 0xff, 0xbe, 0xa3, 0xe4, 0x38, 0x76, 0xb2, 0xcd, - 0x1f, 0x24, 0x91, 0x77, 0x7c, 0xee, 0xe1, 0x73, 0x2f, 0x8e, 0x5e, 0x7d, 0xfc, 0x7c, 0xf3, 0xe5, - 0xaf, 0xd9, 0xd4, 0xcb, 0x6c, 0x91, 0x4f, 0xa2, 0xfd, 0x13, 0x78, 0x3a, 0x89, 0x0a, 0xb0, 0xdc, - 0x93, 0xbc, 0x80, 0x98, 0x6c, 0x05, 0x54, 0xa5, 0xd2, 0x96, 0x78, 0xbd, 0x44, 0x49, 0x0b, 0xd2, - 0xc6, 0xa4, 0x12, 0xa9, 0xcd, 0xe2, 0x14, 0xb6, 0x22, 0x81, 0xf3, 0x76, 0xe1, 0x0b, 0x29, 0xac, - 0xe0, 0xf9, 0xb9, 0x49, 0x78, 0x0e, 0xf1, 0x3b, 0xbf, 0xc0, 0x8d, 0x62, 0x53, 0x3c, 0xae, 0xc9, - 0x1e, 0xb3, 0x97, 0x64, 0x5c, 0x1b, 0x40, 0x8c, 0x8d, 0x5d, 0x9d, 0x5f, 0x93, 0x93, 0x50, 0x36, - 0x83, 0x02, 0xce, 0x13, 0x95, 0x2b, 0x4d, 0xbc, 0x43, 0xb0, 0xef, 0x86, 0xed, 0x0f, 0x5d, 0xad, - 0xb0, 0x39, 0x4c, 0x7a, 0x77, 0xb7, 0xd3, 0x8f, 0xde, 0xad, 0xd8, 0x82, 0x37, 0xd3, 0xe0, 0xe8, - 0x45, 0x61, 0x67, 0x89, 0x8c, 0xdd, 0xe1, 0x6b, 0xa9, 0xd2, 0x5d, 0x5d, 0x70, 0xbd, 0x16, 0x72, - 0x34, 0x68, 0xa2, 0xb0, 0xdb, 0x8d, 0xc2, 0xee, 0x6a, 0xce, 0x3a, 0x89, 0x12, 0x2e, 0xb7, 0xdc, - 0x78, 0x3d, 0x91, 0xc6, 0x24, 0x47, 0x28, 0x07, 0x73, 0xd3, 0xee, 0x91, 0x89, 0x83, 0xfe, 0xb3, - 0x85, 0xed, 0xbc, 0x10, 0x37, 0xd1, 0xa2, 0xb4, 0x93, 0xde, 0x96, 0x6b, 0xaf, 0xdb, 0x8b, 0x53, - 0x95, 0x6c, 0x0a, 0xe4, 0x17, 0xac, 0xc1, 0x4e, 0x73, 0x70, 0x9f, 0x1f, 0x76, 0x9f, 0x52, 0xfa, - 0x1c, 0x8d, 0x8d, 0xbb, 0x03, 0x41, 0xa7, 0x59, 0xf0, 0xd3, 0xf5, 0x59, 0x25, 0x64, 0xaa, 0xaa, - 0x40, 0x48, 0x09, 0xfa, 0xae, 0x15, 0x6f, 0xef, 0x92, 0x81, 0x58, 0x67, 0xf6, 0x85, 0xcf, 0x2f, - 0xed, 0xf6, 0xd8, 0x05, 0xaf, 0x8c, 0x9f, 0x43, 0x6a, 0x62, 0x42, 0xfc, 0x82, 0x5b, 0x2d, 0x1e, - 0xda, 0xf3, 0xf1, 0xc0, 0x2f, 0xc5, 0x03, 0xe4, 0x66, 0x06, 0xfa, 0x16, 0xd2, 0x78, 0x30, 0x16, - 0x2b, 0xba, 0xc7, 0x44, 0x7a, 0x37, 0x4e, 0xc9, 0x07, 0xcb, 0xea, 0x96, 0xbe, 0x7d, 0x88, 0x5f, - 0x98, 0x28, 0x19, 0xa6, 0xc8, 0x74, 0xb5, 0x91, 0x89, 0x15, 0x4a, 0x7a, 0xa9, 0xe6, 0x15, 0x02, - 0xdd, 0x08, 0x9d, 0xe4, 0x60, 0x28, 0xf8, 0xd6, 0x17, 0xbe, 0xf4, 0xb9, 0x6f, 0x58, 0x8d, 0x00, - 0xc1, 0x4a, 0xe4, 0xf9, 0xdc, 0xa9, 0x1a, 0x7f, 0xd5, 0xeb, 0x25, 0x7d, 0x5d, 0x8b, 0xc6, 0x7f, - 0x5d, 0x4b, 0xf7, 0xe0, 0x0d, 0xfb, 0xea, 0x3b, 0x9f, 0x25, 0xa0, 0xfe, 0x33, 0x6e, 0x33, 0xca, - 0xda, 0x35, 0xd7, 0x09, 0x85, 0xb3, 0x63, 0x9e, 0xfd, 0xe0, 0xea, 0x64, 0xed, 0xdb, 0xff, 0x37, - 0x07, 0x97, 0xa7, 0xeb, 0x81, 0x3f, 0x3c, 0xfb, 0x0d, 0x03, 0x04, 0xb3, 0x4f, 0x5d, 0x08, 0x47, - 0x8b, 0xb2, 0xe6, 0x70, 0x8d, 0x92, 0x0b, 0x69, 0xd1, 0xd3, 0x50, 0x56, 0xaf, 0x94, 0xa6, 0x22, - 0xbe, 0x1c, 0x8b, 0xc8, 0x09, 0x18, 0xe4, 0x20, 0xd7, 0x36, 0x1b, 0x8b, 0x7e, 0x7c, 0xc1, 0xea, - 0x1c, 0xac, 0x07, 0x31, 0x15, 0xe7, 0x97, 0x2c, 0xbc, 0x18, 0x3f, 0xbf, 0xfc, 0xf7, 0x47, 0x4a, - 0xfb, 0x6d, 0xbc, 0x55, 0xae, 0x10, 0x0d, 0xc2, 0x23, 0x03, 0x6b, 0xf3, 0x72, 0x2f, 0x16, 0xfb, - 0x77, 0xff, 0xdd, 0xe1, 0x6b, 0xb8, 0xf0, 0x87, 0x57, 0x57, 0xac, 0x69, 0x9e, 0x88, 0x6d, 0xca, - 0x94, 0x5b, 0xd8, 0x57, 0x2f, 0x05, 0x56, 0x1f, 0x27, 0x93, 0xb6, 0x19, 0x06, 0x76, 0x8f, 0x07, - 0xbb, 0xfd, 0xae, 0x00, 0xe2, 0x16, 0xef, 0x62, 0x71, 0x9a, 0xeb, 0x96, 0x10, 0x36, 0x1b, 0x3d, - 0x2e, 0xb3, 0x63, 0x66, 0xa7, 0xc5, 0x15, 0x1e, 0x23, 0x32, 0xff, 0x48, 0xa1, 0x27, 0x76, 0x58, - 0x17, 0xae, 0x05, 0x7e, 0x35, 0x4a, 0x3a, 0x6e, 0x56, 0xef, 0x6a, 0xac, 0x27, 0x72, 0xaf, 0x96, - 0x7f, 0x43, 0x62, 0xbd, 0x9f, 0xb5, 0xe6, 0xbb, 0x0f, 0x9b, 0xd5, 0x0a, 0xf4, 0x82, 0xc4, 0x71, - 0x6c, 0xd5, 0x1c, 0x21, 0xe5, 0x3a, 0xc0, 0x4e, 0xcf, 0x29, 0x04, 0x78, 0x35, 0xce, 0x1e, 0x45, - 0x95, 0x50, 0x79, 0x7f, 0x60, 0x8c, 0xeb, 0xf6, 0x14, 0x85, 0xad, 0x6b, 0x99, 0xd6, 0xc3, 0xd5, - 0xe8, 0x8f, 0x3f, 0xbc, 0x8a, 0xe1, 0x7e, 0xb0, 0x60, 0x1a, 0xec, 0x46, 0xcb, 0xf1, 0x73, 0x5d, - 0x9a, 0x26, 0xe1, 0x36, 0xc9, 0x1c, 0x0b, 0x1c, 0x07, 0x46, 0xe5, 0x10, 0x80, 0xd6, 0xa8, 0x3d, - 0x99, 0x01, 0x7c, 0xf3, 0xee, 0xe6, 0x5e, 0xbb, 0x1c, 0x11, 0xdf, 0xf9, 0x3a, 0xa2, 0x95, 0x41, - 0x3e, 0x65, 0xb0, 0x6f, 0x9f, 0xca, 0x3c, 0x01, 0x34, 0x95, 0x79, 0xf3, 0xa6, 0x32, 0x81, 0xc6, - 0x29, 0xb0, 0x9b, 0x5b, 0x8c, 0x83, 0xdc, 0xef, 0x60, 0x39, 0x57, 0xc9, 0x37, 0xb0, 0xc1, 0xe7, - 0xd9, 0xf4, 0xf7, 0xf7, 0xf4, 0x31, 0x8a, 0x90, 0x2b, 0xb5, 0x0f, 0xb2, 0x31, 0x60, 0x3c, 0xc4, - 0xc4, 0x68, 0x84, 0xf9, 0x08, 0x60, 0x40, 0x62, 0x9b, 0xd7, 0x6f, 0xf3, 0xed, 0xdb, 0x91, 0xd5, - 0x1b, 0x68, 0x08, 0x63, 0xa3, 0x7f, 0x3b, 0x89, 0xf4, 0x54, 0x09, 0x12, 0xa5, 0xc1, 0x83, 0x14, - 0x99, 0x39, 0x31, 0x0e, 0x11, 0x29, 0x25, 0x99, 0xb5, 0xa5, 0x19, 0xa1, 0x86, 0x7b, 0xba, 0xb9, - 0x42, 0xb6, 0x98, 0x81, 0xa0, 0xd4, 0xca, 0x2a, 0x9c, 0x83, 0xef, 0x49, 0x65, 0x0c, 0x19, 0xe1, - 0x93, 0xb0, 0x3e, 0x19, 0x85, 0x21, 0xe9, 0x1f, 0xe6, 0xce, 0xc1, 0x39, 0x53, 0xc6, 0xf6, 0x49, - 0xe8, 0x7c, 0x58, 0xa0, 0xa4, 0x0b, 0x19, 0x3f, 0xe6, 0x92, 0x3e, 0x09, 0xf7, 0x92, 0xd8, 0x7f, - 0x5e, 0xa7, 0x69, 0x0d, 0x4b, 0x21, 0xb9, 0xde, 0x7d, 0xd9, 0x95, 0x38, 0x99, 0xb9, 0xcb, 0xde, - 0xb2, 0xcd, 0x39, 0x71, 0x36, 0x9e, 0xa6, 0x53, 0x97, 0xca, 0x5b, 0x61, 0x70, 0x48, 0x03, 0x26, - 0xa4, 0x00, 0x63, 0xf8, 0x1a, 0x88, 0x7f, 0x54, 0x3d, 0xac, 0x87, 0xc3, 0xb7, 0x1b, 0x9d, 0x51, - 0xd8, 0xcd, 0xdd, 0xb0, 0xfd, 0x97, 0xf9, 0x07, 0xa8, 0x98, 0x44, 0x5c, 0x7b, 0x06, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x6d, 0x54, 0x6d, 0x6f, 0xdb, 0x36, + 0x10, 0xfe, 0xee, 0x5f, 0xa1, 0x70, 0x43, 0x2b, 0xda, 0xb2, 0xe4, 0xb8, 0xed, 0x96, 0xd9, 0xa2, + 0x8b, 0x36, 0x35, 0xb0, 0x02, 0xd9, 0x6a, 0xc0, 0x19, 0x82, 0x21, 0x30, 0x50, 0x5a, 0x3a, 0x5b, + 0x5c, 0x25, 0xd2, 0xa0, 0xce, 0x96, 0x35, 0x47, 0xff, 0x7d, 0x47, 0xc9, 0xf1, 0x32, 0x74, 0xfa, + 0x40, 0x91, 0xf7, 0xf2, 0xdc, 0xf1, 0xb9, 0x3b, 0xc6, 0x57, 0x9f, 0xbe, 0xdc, 0xde, 0xff, 0xb9, + 0x98, 0x7b, 0x19, 0x16, 0xf9, 0x2c, 0x3e, 0xaf, 0x20, 0xd3, 0x59, 0x5c, 0x00, 0x4a, 0x4f, 0xcb, + 0x02, 0x04, 0x3b, 0x28, 0xa8, 0x76, 0xc6, 0x22, 0xf3, 0x7a, 0x89, 0xd1, 0x08, 0x1a, 0x05, 0xab, + 0x54, 0x8a, 0x99, 0x48, 0xe1, 0xa0, 0x12, 0x18, 0xb6, 0x87, 0x40, 0x69, 0x85, 0x4a, 0xe6, 0xc3, + 0x32, 0x91, 0x39, 0x88, 0xeb, 0xa0, 0x20, 0x41, 0xb1, 0x2f, 0x9e, 0xcf, 0xec, 0x8c, 0xd9, 0x4b, + 0x32, 0x69, 0x4b, 0x20, 0x8c, 0x3d, 0x6e, 0x86, 0x37, 0xec, 0x3f, 0xa1, 0x30, 0x83, 0x02, 0x86, + 0x89, 0xc9, 0x8d, 0x65, 0xde, 0x25, 0xd8, 0x0f, 0xe3, 0xf6, 0x23, 0x53, 0x54, 0x98, 0xc3, 0xac, + 0xf7, 0x70, 0x37, 0xff, 0xe4, 0xdd, 0xa9, 0x03, 0x78, 0x0b, 0x0b, 0x2e, 0xbd, 0x38, 0xea, 0x34, + 0x71, 0x89, 0x35, 0xfd, 0xd6, 0x26, 0xad, 0x4f, 0x85, 0xb4, 0x5b, 0xa5, 0x27, 0xa3, 0x26, 0x8e, + 0x3a, 0x69, 0x1c, 0x75, 0x57, 0x73, 0xda, 0x59, 0x9c, 0x48, 0x7d, 0x90, 0xa5, 0xd7, 0x53, 0xa9, + 0x60, 0x6e, 0x4f, 0xe8, 0x51, 0x27, 0x23, 0x94, 0xc4, 0xaa, 0x1d, 0xce, 0x7a, 0x07, 0x69, 0xbd, + 0x44, 0xa4, 0x26, 0xd9, 0x17, 0x94, 0x48, 0xb8, 0x05, 0x9c, 0xe7, 0xe0, 0xb6, 0x1f, 0xeb, 0xcf, + 0xa9, 0xdf, 0xb9, 0xf1, 0x20, 0x87, 0xb4, 0x14, 0x8c, 0x05, 0x98, 0x59, 0x83, 0x94, 0x45, 0x2a, + 0xae, 0xae, 0xa7, 0x9b, 0xbd, 0x4e, 0x50, 0x19, 0xed, 0xd1, 0x55, 0x6f, 0x5b, 0x58, 0x9f, 0x9f, + 0x92, 0xb0, 0xe3, 0x2d, 0xfc, 0xe5, 0xa6, 0x5f, 0x29, 0x9d, 0x9a, 0x2a, 0x54, 0x5a, 0x83, 0x7d, + 0x68, 0x09, 0x4c, 0xc2, 0x0c, 0xd4, 0x36, 0xc3, 0xef, 0xd4, 0xbf, 0xb6, 0xe2, 0xe6, 0x05, 0xd2, + 0xb4, 0xcd, 0x0c, 0x8f, 0x22, 0x71, 0x49, 0xdd, 0x3a, 0xa2, 0x8e, 0xe8, 0xb3, 0x71, 0xca, 0xf8, + 0x54, 0x6d, 0x7c, 0xd2, 0xf0, 0x93, 0x33, 0xa9, 0xca, 0x29, 0xda, 0xfa, 0x54, 0x95, 0x02, 0xcd, + 0x2e, 0x3c, 0x63, 0x56, 0x65, 0x93, 0x48, 0x4c, 0x32, 0x1f, 0xf9, 0xa9, 0xa9, 0xca, 0x57, 0xaf, + 0xaa, 0x32, 0xb4, 0xc4, 0x4c, 0xbd, 0x44, 0x89, 0x20, 0x84, 0x78, 0x80, 0xf5, 0xd2, 0x24, 0xdf, + 0x00, 0xc3, 0x2f, 0x8b, 0xf9, 0xef, 0xef, 0x49, 0x5d, 0x82, 0xa6, 0xfb, 0x9e, 0x5e, 0xe7, 0x87, + 0xd7, 0x13, 0xb4, 0x7b, 0x68, 0x18, 0x9f, 0xf8, 0x84, 0xaa, 0xa1, 0xf2, 0x2e, 0xd6, 0xbe, 0xcf, + 0x32, 0xc4, 0x5d, 0x39, 0x61, 0x42, 0x9c, 0x43, 0xe5, 0x86, 0x22, 0x11, 0x0b, 0xe1, 0x8e, 0xa8, + 0x31, 0x54, 0xd7, 0xf7, 0xac, 0x2a, 0x4b, 0x36, 0xa1, 0x95, 0xf1, 0x01, 0x9b, 0x44, 0x11, 0x1b, + 0x5c, 0xe8, 0xbd, 0x18, 0x67, 0xa6, 0xc4, 0x01, 0x8b, 0x9c, 0x0d, 0x0f, 0x8d, 0x36, 0x3b, 0xd0, + 0xc2, 0xe7, 0x62, 0x76, 0xfa, 0xff, 0x4c, 0x9a, 0x80, 0xe4, 0x6b, 0xa5, 0xa5, 0xad, 0xef, 0xeb, + 0x1d, 0x75, 0x91, 0xb4, 0x56, 0xd6, 0xeb, 0xfd, 0x66, 0x03, 0x96, 0x39, 0x9d, 0x4c, 0xd3, 0xf9, + 0x81, 0x22, 0xdc, 0xa9, 0x92, 0x1a, 0x0a, 0xac, 0xcf, 0x0a, 0x28, 0x4b, 0xb9, 0x05, 0xaa, 0x19, + 0xa1, 0x3a, 0x86, 0x88, 0x34, 0xf6, 0x68, 0xd6, 0x7f, 0x41, 0x82, 0xde, 0x07, 0xe7, 0xfe, 0xb1, + 0x75, 0x5f, 0xd1, 0x55, 0x88, 0xba, 0x25, 0x5a, 0xa5, 0xb7, 0x21, 0x35, 0x72, 0xee, 0x63, 0x98, + 0x4a, 0x94, 0x9c, 0x9f, 0x72, 0x40, 0x0f, 0x5b, 0x06, 0xfe, 0x50, 0x1a, 0x6f, 0x5a, 0x2f, 0x1f, + 0x5c, 0x9c, 0xce, 0xc2, 0x15, 0xe2, 0xe7, 0x9f, 0xae, 0x04, 0x3e, 0x8e, 0x56, 0x4f, 0x4f, 0x63, + 0xb7, 0xb9, 0xa6, 0xcd, 0x95, 0x2b, 0x8e, 0x05, 0xdc, 0x5b, 0x3d, 0x75, 0x10, 0x96, 0xe4, 0xe3, + 0x55, 0xa0, 0xe9, 0xf7, 0x66, 0x15, 0x18, 0xf1, 0x9b, 0xc4, 0x2c, 0xa4, 0xd9, 0xf1, 0xcf, 0xcd, + 0x12, 0xd9, 0x4b, 0x63, 0x44, 0x9a, 0x07, 0xb2, 0x33, 0xd8, 0xe4, 0xc6, 0x58, 0xff, 0xd9, 0x66, + 0x68, 0xfa, 0x96, 0x47, 0xe3, 0xae, 0x2d, 0x40, 0xbc, 0x9d, 0x6e, 0x48, 0x59, 0x8b, 0xf0, 0xdd, + 0xb4, 0x8e, 0xf5, 0xb4, 0x1e, 0x0c, 0xb8, 0x13, 0x1c, 0x9d, 0xe0, 0x18, 0xdb, 0xe9, 0x91, 0x04, + 0x94, 0x45, 0xb8, 0x51, 0x79, 0xbe, 0x74, 0xa3, 0x21, 0xbe, 0xda, 0xed, 0xda, 0xff, 0xf1, 0x84, + 0x8f, 0xb0, 0x6a, 0x82, 0xf6, 0x3f, 0xb8, 0xbe, 0xec, 0xc6, 0xab, 0x86, 0x7f, 0x0d, 0x9c, 0xc3, + 0x1a, 0x68, 0xa2, 0x16, 0x14, 0xdf, 0xe7, 0xed, 0x59, 0xda, 0xc4, 0x3f, 0xf6, 0xcd, 0x40, 0x06, + 0x75, 0xdf, 0x04, 0xe1, 0x5b, 0x5a, 0x46, 0xc1, 0xb8, 0xdf, 0x66, 0xb8, 0xf8, 0xdc, 0xd9, 0xb8, + 0x20, 0x64, 0x0e, 0x03, 0xf1, 0xa6, 0xf9, 0xb7, 0xef, 0x68, 0xb6, 0x4b, 0x93, 0x43, 0x08, 0xd6, + 0x52, 0x66, 0x6c, 0x01, 0xf0, 0xcd, 0x7b, 0x58, 0x7a, 0xed, 0x71, 0x42, 0x65, 0xe1, 0x4d, 0xc3, + 0x9b, 0x73, 0x13, 0x7d, 0x5f, 0x3e, 0x0b, 0xa5, 0xfa, 0xfb, 0xb9, 0x7a, 0xcf, 0x53, 0xf7, 0xf4, + 0xe4, 0xbf, 0x98, 0x90, 0x97, 0xd3, 0x38, 0x0a, 0x48, 0x71, 0xaf, 0x0a, 0x30, 0x7b, 0x6a, 0x52, + 0xfe, 0xd2, 0x89, 0x46, 0xb5, 0x09, 0xc6, 0xef, 0x46, 0x9c, 0x37, 0xbc, 0x47, 0x0f, 0x45, 0x37, + 0xf8, 0x71, 0xd4, 0xbd, 0x11, 0x51, 0xfb, 0x22, 0xfe, 0x03, 0x69, 0xb3, 0xce, 0x95, 0x27, 0x05, + 0x00, 0x00 }; diff --git a/wled00/html_settings.h b/wled00/html_settings.h index ccfff298..a9f0263b 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -236,267 +236,267 @@ const uint8_t PAGE_settings_wifi[] PROGMEM = { // Autogenerated from wled00/data/settings_leds.htm, do not edit!! -const uint16_t PAGE_settings_leds_length = 7326; +const uint16_t PAGE_settings_leds_length = 7343; const uint8_t PAGE_settings_leds[] PROGMEM = { 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdd, 0x3c, 0xed, 0x76, 0xe2, 0xc6, 0x92, 0xff, 0x79, 0x8a, 0x76, 0x27, 0x71, 0xa4, 0x8b, 0x0c, 0x12, 0x1f, 0x8e, 0x07, 0x10, 0xac, - 0xf1, 0x78, 0x26, 0xbe, 0xd7, 0x8e, 0x7d, 0x8c, 0x93, 0xb9, 0x7b, 0x26, 0x73, 0x32, 0x42, 0x34, - 0xa0, 0xb1, 0x90, 0x74, 0x25, 0x61, 0x9b, 0xb5, 0xd9, 0x67, 0xda, 0x67, 0xd8, 0x27, 0xdb, 0xaa, + 0xb1, 0x3d, 0x13, 0xdf, 0x6b, 0xc7, 0x3e, 0xc6, 0xc9, 0xdc, 0x3d, 0x93, 0x39, 0x19, 0x21, 0x1a, + 0xd0, 0x58, 0x48, 0xba, 0x92, 0xb0, 0x87, 0xb5, 0xd9, 0x67, 0xda, 0x67, 0xd8, 0x27, 0xdb, 0xaa, 0xee, 0xd6, 0x17, 0x08, 0xec, 0xdc, 0xbb, 0xfb, 0x67, 0x73, 0xce, 0xc4, 0x20, 0x55, 0x57, 0x55, - 0x57, 0xd7, 0x77, 0x77, 0xd3, 0x3b, 0x78, 0x7f, 0x7d, 0x76, 0xf7, 0xef, 0x37, 0xe7, 0x64, 0x1e, - 0x2f, 0xdc, 0x7e, 0x0f, 0xff, 0x4f, 0x5c, 0xcb, 0x9b, 0x99, 0x94, 0x79, 0x14, 0xbe, 0x33, 0x6b, - 0xd2, 0xef, 0x2d, 0x58, 0x6c, 0x11, 0x7b, 0x6e, 0x85, 0x11, 0x8b, 0x4d, 0xba, 0x8c, 0xa7, 0x47, - 0x27, 0x54, 0x3e, 0xad, 0x78, 0xd6, 0x82, 0x99, 0xf4, 0xc1, 0x61, 0x8f, 0x81, 0x1f, 0xc6, 0x94, - 0xd8, 0xbe, 0x17, 0x33, 0x0f, 0xc0, 0x1e, 0x9d, 0x49, 0x3c, 0x37, 0xdb, 0xba, 0x9e, 0x82, 0x6e, - 0xbc, 0x9a, 0xb0, 0x07, 0xc7, 0x66, 0x47, 0xfc, 0x8b, 0xe6, 0x78, 0x4e, 0xec, 0x58, 0xee, 0x51, - 0x64, 0x5b, 0x2e, 0x33, 0x0d, 0x6d, 0x61, 0x3d, 0x39, 0x8b, 0xe5, 0x22, 0xfd, 0xbe, 0x8c, 0x58, + 0x57, 0xd7, 0x77, 0x77, 0xd3, 0x3b, 0x38, 0xbf, 0x39, 0xbb, 0xff, 0xf7, 0xdb, 0x0b, 0x32, 0x8f, + 0x17, 0x6e, 0xbf, 0x87, 0xff, 0x27, 0xae, 0xe5, 0xcd, 0x4c, 0xca, 0x3c, 0x0a, 0xdf, 0x99, 0x35, + 0xe9, 0xf7, 0x16, 0x2c, 0xb6, 0x88, 0x3d, 0xb7, 0xc2, 0x88, 0xc5, 0x26, 0x5d, 0xc6, 0xd3, 0xa3, + 0x13, 0x2a, 0x9f, 0x56, 0x3c, 0x6b, 0xc1, 0x4c, 0xfa, 0xe8, 0xb0, 0xa7, 0xc0, 0x0f, 0x63, 0x4a, + 0x6c, 0xdf, 0x8b, 0x99, 0x07, 0x60, 0x4f, 0xce, 0x24, 0x9e, 0x9b, 0x6d, 0x5d, 0x4f, 0x41, 0x37, + 0x5e, 0x4d, 0xd8, 0xa3, 0x63, 0xb3, 0x23, 0xfe, 0x45, 0x73, 0x3c, 0x27, 0x76, 0x2c, 0xf7, 0x28, + 0xb2, 0x2d, 0x97, 0x99, 0x86, 0xb6, 0xb0, 0xbe, 0x39, 0x8b, 0xe5, 0x22, 0xfd, 0xbe, 0x8c, 0x58, 0xc8, 0xbf, 0x58, 0x63, 0xf8, 0xee, 0xf9, 0x74, 0x8b, 0x72, 0xbf, 0x17, 0x3b, 0xb1, 0xcb, 0xfa, - 0x97, 0xe7, 0xef, 0xc9, 0x88, 0xc5, 0xb1, 0xe3, 0xcd, 0xa2, 0x5e, 0x5d, 0x3c, 0xeb, 0x45, 0x76, - 0xe8, 0x04, 0x71, 0xbf, 0xf2, 0x60, 0x85, 0xc4, 0xf5, 0x6d, 0x27, 0xd0, 0x62, 0x67, 0xc1, 0xfc, - 0x65, 0xac, 0x4d, 0xcc, 0x89, 0x6f, 0x2f, 0x17, 0xc0, 0x97, 0xe6, 0x5a, 0x41, 0xc8, 0x1e, 0xcc, - 0x76, 0x1b, 0xa9, 0x0f, 0x05, 0x13, 0x57, 0x66, 0x8b, 0x35, 0xf1, 0xc3, 0xcd, 0xd0, 0x6c, 0xe9, - 0xef, 0x8e, 0xf1, 0xe3, 0xa5, 0x69, 0x34, 0x9b, 0xfc, 0xe1, 0xe5, 0xf8, 0x1f, 0x4b, 0x3f, 0x36, - 0x75, 0xcd, 0x5e, 0x46, 0xb1, 0xbf, 0x18, 0xc5, 0x56, 0x18, 0x47, 0xe6, 0x81, 0xa1, 0x45, 0xfc, - 0xd3, 0x7b, 0x27, 0x8c, 0x57, 0xe6, 0xe7, 0x2f, 0x08, 0x7a, 0x76, 0x7d, 0xfd, 0xc0, 0xc2, 0xd0, - 0x99, 0xb0, 0xc8, 0x6c, 0x6b, 0xc0, 0x03, 0x80, 0x75, 0xa7, 0x4b, 0xcf, 0x8e, 0x1d, 0xdf, 0x23, - 0x3f, 0x2b, 0xea, 0xf3, 0xa3, 0xe3, 0x4d, 0xfc, 0xc7, 0x9a, 0x1f, 0x30, 0x4f, 0xa1, 0xf3, 0x38, - 0x0e, 0xa2, 0x4e, 0xbd, 0x7e, 0xef, 0xf9, 0xb5, 0x47, 0x97, 0x4d, 0x6a, 0x33, 0x56, 0x9f, 0x32, - 0x2b, 0x5e, 0x86, 0x2c, 0xaa, 0x47, 0x72, 0x7a, 0xf5, 0xef, 0xe0, 0xcd, 0x51, 0xf2, 0x8d, 0xaa, - 0xeb, 0x14, 0xdf, 0x70, 0x13, 0x5f, 0x3a, 0x86, 0x6a, 0xf4, 0x8f, 0x88, 0xb9, 0xd3, 0x3c, 0xf4, - 0xec, 0x62, 0xa2, 0x30, 0xf5, 0x39, 0x64, 0x80, 0xde, 0x23, 0x48, 0x2b, 0x3e, 0x77, 0x19, 0xca, - 0x64, 0xb8, 0xe2, 0xaf, 0x32, 0x50, 0x7f, 0x3a, 0x45, 0xd0, 0x3c, 0x4c, 0x34, 0x5c, 0xfd, 0x02, - 0x4b, 0x01, 0x8f, 0x3f, 0xeb, 0x5f, 0x6a, 0x0f, 0x96, 0xbb, 0x64, 0xe6, 0x91, 0x91, 0x0d, 0x71, - 0x7d, 0x6b, 0xf2, 0xd7, 0x91, 0xc2, 0x34, 0xcf, 0x3c, 0xd0, 0xd5, 0x67, 0x97, 0xc5, 0x24, 0x36, - 0x27, 0x35, 0x3b, 0x84, 0xe9, 0x30, 0x89, 0x43, 0xa1, 0x62, 0x85, 0xa8, 0xda, 0x8d, 0x6b, 0xc0, - 0xea, 0x69, 0x1c, 0x87, 0xce, 0x78, 0x19, 0x33, 0x78, 0x11, 0xda, 0x54, 0x63, 0xaa, 0xb6, 0xf9, - 0x3c, 0x5e, 0x05, 0x0c, 0x26, 0x13, 0xb3, 0xa7, 0xb8, 0xfe, 0xcd, 0x7a, 0xb0, 0x12, 0x04, 0x5b, - 0x80, 0x56, 0xb4, 0xf2, 0x00, 0x85, 0xa7, 0x6a, 0x93, 0xda, 0xd8, 0x9f, 0xac, 0x6a, 0x56, 0x00, - 0x22, 0x99, 0x9c, 0xcd, 0x1d, 0x77, 0xa2, 0xc4, 0x08, 0x6f, 0x4d, 0x26, 0xe7, 0x0f, 0xc0, 0xc5, - 0xa5, 0x13, 0x81, 0x82, 0xb2, 0x50, 0xa1, 0xc8, 0x33, 0xd5, 0x14, 0xd5, 0xec, 0x3f, 0x7f, 0x64, - 0xf1, 0x6f, 0x8a, 0xaa, 0xd9, 0x73, 0x66, 0xdf, 0x8f, 0x1c, 0xf8, 0x84, 0xd8, 0x87, 0x97, 0x8a, - 0xba, 0x2e, 0x1f, 0x0a, 0x8b, 0xec, 0x87, 0xc0, 0x31, 0x0c, 0x05, 0x85, 0x8f, 0x7c, 0x97, 0xd5, - 0x5c, 0x7f, 0xa6, 0xd0, 0x73, 0x7c, 0x4e, 0xa4, 0x3c, 0x60, 0x25, 0xc8, 0xd4, 0x71, 0x19, 0x9f, - 0x19, 0x68, 0x78, 0x08, 0x12, 0xb8, 0x94, 0xcf, 0xfd, 0x29, 0x1a, 0xd1, 0xd4, 0x99, 0x2d, 0x43, - 0x8b, 0x0b, 0x50, 0xcc, 0x8c, 0x4c, 0x2d, 0x07, 0x15, 0xe1, 0x77, 0xef, 0xc2, 0xb3, 0xfd, 0x45, - 0x00, 0x72, 0x64, 0x24, 0xb0, 0x66, 0x8c, 0x4c, 0xac, 0xd8, 0x3a, 0x80, 0xf5, 0xcc, 0x2d, 0x53, - 0x34, 0xf7, 0x1f, 0xef, 0x7c, 0x2b, 0x8a, 0x85, 0xd8, 0x0d, 0xf5, 0x19, 0x35, 0x3f, 0x36, 0x71, - 0xa5, 0x69, 0x8c, 0x2f, 0xb8, 0xa4, 0x1d, 0x0f, 0x58, 0xfe, 0xf9, 0xee, 0xea, 0xd2, 0x64, 0x30, - 0x17, 0xdb, 0xb5, 0xa2, 0x08, 0x97, 0xd2, 0xf4, 0x06, 0x72, 0x1a, 0x1d, 0x8a, 0x98, 0xa8, 0x66, - 0xbb, 0xcc, 0x0a, 0xef, 0x84, 0xc9, 0x28, 0xd2, 0x74, 0xb8, 0xa4, 0xe3, 0x15, 0xcc, 0xcf, 0xf2, - 0x9c, 0x05, 0x67, 0xd5, 0xa4, 0x9e, 0xef, 0xc1, 0xa4, 0x24, 0x84, 0x09, 0xa2, 0x4a, 0x06, 0x29, - 0x09, 0x6f, 0xa0, 0x99, 0x79, 0x52, 0xb9, 0xcf, 0xb5, 0x90, 0x05, 0xae, 0x65, 0xe3, 0x9a, 0x73, - 0xa2, 0x14, 0xe7, 0xa4, 0x35, 0xde, 0xe9, 0x7a, 0x6e, 0x66, 0xe3, 0x4b, 0x67, 0xe1, 0xc4, 0x11, - 0xce, 0x4b, 0x8b, 0x35, 0x47, 0x7d, 0xe6, 0xb6, 0xca, 0x84, 0xad, 0xc6, 0xd2, 0x52, 0x3d, 0x61, - 0xa6, 0x4e, 0x36, 0x2c, 0x70, 0xbc, 0xe8, 0xfa, 0x6f, 0x8a, 0x90, 0x03, 0x33, 0x37, 0xf4, 0xf7, - 0xce, 0x9a, 0x71, 0x15, 0xa6, 0x8e, 0x17, 0x2c, 0x51, 0x34, 0x53, 0x3f, 0x54, 0x1c, 0x53, 0xef, - 0x3a, 0x3d, 0x58, 0x3d, 0xe6, 0xcd, 0xe2, 0x79, 0xd7, 0xa9, 0x56, 0xc5, 0x68, 0xcf, 0x64, 0x9f, - 0x9d, 0x2f, 0x35, 0x74, 0x3f, 0xb5, 0x68, 0x39, 0x8e, 0x40, 0xd1, 0xbc, 0x99, 0xa2, 0x6b, 0x0d, - 0xb5, 0xeb, 0x4c, 0x61, 0x19, 0x75, 0x6a, 0x9a, 0xde, 0xcb, 0x0b, 0xbd, 0x34, 0x92, 0x0f, 0x8d, - 0xe4, 0x43, 0x13, 0x3f, 0x24, 0x6b, 0x51, 0x86, 0x45, 0xe0, 0x08, 0xd0, 0xd3, 0x5e, 0x80, 0x55, - 0x94, 0x99, 0x19, 0xbd, 0xbc, 0xa3, 0xd5, 0x38, 0xb3, 0x35, 0xcd, 0xd0, 0xd5, 0xbe, 0x79, 0xa2, - 0xab, 0xe8, 0x5e, 0x1d, 0x6f, 0xc9, 0xd6, 0x80, 0xe1, 0x0d, 0x6c, 0xe0, 0x87, 0x96, 0xfc, 0x70, - 0x7b, 0x29, 0x3f, 0x0c, 0xef, 0xe4, 0x87, 0x8b, 0x5b, 0xce, 0xea, 0xe1, 0x21, 0xa5, 0x07, 0x82, - 0x53, 0x4e, 0x0c, 0xbe, 0x1f, 0x19, 0x85, 0x27, 0xea, 0x33, 0x90, 0x9b, 0xd4, 0x96, 0x8b, 0x3f, - 0x82, 0xc3, 0x43, 0xf1, 0xb7, 0x16, 0xf9, 0xc0, 0xa7, 0x67, 0xf6, 0x3d, 0xd3, 0x4c, 0xa7, 0x92, - 0x8d, 0x40, 0x86, 0x55, 0x55, 0x3a, 0x1b, 0xa1, 0xfb, 0x5f, 0x47, 0x7e, 0x18, 0xae, 0x34, 0xbe, - 0x4a, 0xe4, 0xfb, 0xe7, 0xbf, 0x8e, 0xae, 0x7f, 0xa9, 0x09, 0x89, 0x38, 0xd3, 0x95, 0xc4, 0xae, - 0xae, 0x89, 0x6d, 0x79, 0x3f, 0xc6, 0x64, 0xcc, 0x08, 0x44, 0x83, 0x49, 0xed, 0xab, 0xaa, 0x65, - 0x48, 0x4d, 0x4a, 0xc5, 0xb7, 0x29, 0x78, 0xf3, 0x08, 0xac, 0x14, 0xbc, 0x2b, 0x30, 0x96, 0x01, - 0xf4, 0xdb, 0x87, 0x87, 0xd9, 0xb7, 0x9e, 0xd1, 0x28, 0x72, 0x40, 0xf3, 0x1c, 0x1c, 0x1f, 0x19, - 0x06, 0x12, 0x23, 0x9e, 0x9f, 0x91, 0xa3, 0x6f, 0x20, 0x87, 0x62, 0x3b, 0x30, 0x3d, 0x90, 0x12, - 0x08, 0x92, 0x7f, 0xc8, 0x31, 0xd0, 0x6c, 0xee, 0x21, 0x09, 0x6f, 0x89, 0x15, 0x32, 0xc2, 0x15, - 0x10, 0xbc, 0x84, 0xbb, 0x7a, 0x9d, 0x20, 0x2a, 0xe9, 0x37, 0xd3, 0xa9, 0x1a, 0xdd, 0x6f, 0x99, - 0x9a, 0x7e, 0x4b, 0xd4, 0xd4, 0x82, 0x45, 0xfa, 0xf6, 0x8a, 0x9a, 0x5a, 0x89, 0x7e, 0x58, 0x89, - 0x7e, 0x58, 0x89, 0x7e, 0x58, 0x89, 0x7e, 0x58, 0x89, 0x7e, 0x58, 0x89, 0x7e, 0x58, 0x89, 0x7e, - 0x58, 0x7c, 0xf1, 0x29, 0xbe, 0x34, 0xad, 0x02, 0x11, 0x43, 0x15, 0x4c, 0xf8, 0xa5, 0x4c, 0xbc, - 0x55, 0xcb, 0xfd, 0x57, 0xb4, 0x5c, 0xe8, 0xe6, 0xb7, 0x54, 0x37, 0x73, 0xe2, 0xca, 0x3d, 0xdf, - 0x50, 0xb5, 0x1b, 0xc7, 0xe3, 0xfe, 0xd5, 0x75, 0x6c, 0x5c, 0xdc, 0xf8, 0x91, 0x31, 0x0f, 0x74, - 0x2e, 0xb5, 0xc6, 0x75, 0x1d, 0xbf, 0x48, 0xa6, 0xd7, 0x07, 0x5c, 0xcb, 0xbe, 0x15, 0x56, 0xe1, - 0x5b, 0x7e, 0x15, 0xd6, 0xf0, 0x9f, 0x20, 0x70, 0xa0, 0x67, 0xee, 0x26, 0x0e, 0x57, 0xa3, 0xe5, - 0x18, 0x1c, 0x95, 0x92, 0x18, 0xc8, 0x68, 0x5a, 0x43, 0x3f, 0x9d, 0xc3, 0x53, 0xc3, 0x6c, 0x03, - 0xa6, 0xfc, 0x9e, 0x4d, 0xad, 0xa5, 0x1b, 0x23, 0xb6, 0xc4, 0x4b, 0x25, 0x2c, 0x83, 0xd0, 0x62, - 0x3f, 0xb8, 0x09, 0x7d, 0xf0, 0xf3, 0x96, 0x70, 0x9e, 0x52, 0xd3, 0x78, 0xe2, 0xd1, 0x37, 0xc0, - 0x35, 0x4a, 0x9f, 0x44, 0xef, 0x7c, 0x9f, 0x2c, 0x2c, 0x6f, 0x45, 0x20, 0x01, 0x8a, 0x08, 0xe8, - 0x06, 0x59, 0x30, 0x12, 0xfb, 0x64, 0x6e, 0x79, 0x13, 0x97, 0x1d, 0xd0, 0x2e, 0x7a, 0xc8, 0x9e, - 0xc1, 0x5a, 0x87, 0x87, 0x8a, 0x57, 0x35, 0xe9, 0xef, 0xde, 0xef, 0xe1, 0x19, 0x04, 0x28, 0xc8, - 0x48, 0x42, 0xd0, 0x70, 0x8c, 0x3c, 0xa0, 0xf1, 0xe7, 0xa3, 0x9b, 0x66, 0x03, 0x55, 0x4f, 0x48, - 0xcb, 0x53, 0xd7, 0x9c, 0x75, 0x1e, 0xfd, 0x7e, 0xb3, 0x5c, 0x67, 0xe2, 0xc4, 0x2b, 0x45, 0x45, - 0x4b, 0x87, 0xa7, 0x91, 0x98, 0x62, 0xce, 0x3b, 0x33, 0x8f, 0x87, 0x46, 0xe9, 0x65, 0x79, 0xb4, - 0xc1, 0x84, 0x8d, 0xaa, 0x02, 0x03, 0x9b, 0x74, 0xf9, 0xc0, 0xcb, 0x53, 0x29, 0x07, 0x36, 0x10, - 0x49, 0x57, 0x47, 0xd7, 0x12, 0x60, 0x80, 0x15, 0x51, 0x65, 0xe2, 0x44, 0x10, 0x0e, 0x56, 0x00, - 0x03, 0x6e, 0xd9, 0x75, 0x20, 0xae, 0x74, 0x64, 0x78, 0xe1, 0xa0, 0x41, 0xb4, 0x6c, 0xbc, 0x01, - 0xb6, 0x40, 0xaf, 0xaf, 0x1f, 0x1e, 0xa6, 0xe1, 0x3b, 0xc7, 0xf4, 0xe5, 0x69, 0x2e, 0x32, 0x70, - 0x78, 0x48, 0x91, 0xc4, 0x90, 0x4d, 0x86, 0x05, 0xf1, 0xcb, 0x53, 0xa0, 0xb8, 0x45, 0xbd, 0xad, - 0x9b, 0x25, 0x1c, 0xfc, 0x7a, 0x91, 0x27, 0x96, 0x90, 0x7f, 0x8e, 0x1e, 0x9d, 0xd8, 0x9e, 0x2b, - 0x25, 0x32, 0x82, 0x34, 0x49, 0xdb, 0x64, 0x03, 0x70, 0x6b, 0x39, 0x83, 0xc9, 0xb1, 0x04, 0x96, - 0x66, 0x5b, 0x11, 0x23, 0x7a, 0xa7, 0x14, 0x95, 0xa1, 0xc9, 0x35, 0xe9, 0x8e, 0x21, 0xe1, 0xba, - 0xef, 0x72, 0xd8, 0xa6, 0xde, 0xd9, 0x22, 0xd0, 0xd4, 0x0b, 0x10, 0xed, 0x12, 0x88, 0x76, 0x1e, - 0xa2, 0x5d, 0x02, 0xd1, 0x2e, 0x40, 0x34, 0xca, 0x40, 0x1a, 0x29, 0xcc, 0x44, 0xe8, 0x7d, 0x67, - 0x8f, 0x40, 0x13, 0x51, 0xae, 0x39, 0xcc, 0xc2, 0x00, 0x80, 0x2c, 0x65, 0x41, 0x7d, 0xd6, 0x4a, - 0x7d, 0xc7, 0x08, 0xb2, 0x5b, 0xf4, 0x1c, 0xdb, 0xc9, 0x99, 0xd0, 0x58, 0x48, 0x50, 0x12, 0xfb, - 0x54, 0x37, 0x96, 0x07, 0xb0, 0x5d, 0xb1, 0x05, 0x66, 0x17, 0x49, 0xa6, 0xfa, 0x8a, 0x9b, 0x3a, - 0xa3, 0x55, 0x2f, 0x73, 0x53, 0x6a, 0x57, 0x5a, 0x6e, 0x5c, 0x7d, 0x65, 0xe0, 0xe8, 0xb2, 0x38, - 0x50, 0x63, 0xbd, 0x66, 0x63, 0x90, 0xd9, 0x68, 0xd3, 0x34, 0xcb, 0x09, 0xea, 0x85, 0x71, 0x03, - 0xd6, 0x6f, 0xbc, 0x1b, 0x34, 0xf4, 0xbf, 0xc4, 0x1d, 0xa3, 0x0d, 0xff, 0x43, 0x04, 0x7d, 0x13, - 0x30, 0x88, 0x17, 0x27, 0xf0, 0xe8, 0x18, 0xfe, 0xf1, 0x2f, 0x2d, 0xf8, 0xd0, 0xe4, 0x5f, 0x9a, - 0x06, 0x38, 0xcb, 0x5e, 0xeb, 0x64, 0xd0, 0xee, 0xb4, 0x5a, 0xa0, 0xb3, 0x2f, 0x2f, 0xad, 0x36, - 0xaa, 0xae, 0x84, 0xc8, 0xc4, 0x01, 0xc2, 0x61, 0x69, 0xfa, 0x88, 0x89, 0xa4, 0x06, 0xd5, 0x4e, - 0x57, 0x28, 0xda, 0x22, 0x78, 0xb4, 0x42, 0x0f, 0xfc, 0xc6, 0xd6, 0xb2, 0xf1, 0x45, 0xbf, 0x4a, - 0x6c, 0xee, 0xa7, 0x86, 0xae, 0x6f, 0x19, 0x05, 0xa8, 0x81, 0x69, 0x16, 0xf4, 0x58, 0x7a, 0x02, - 0xd3, 0x68, 0x74, 0xb6, 0x6c, 0x56, 0x91, 0xef, 0x8a, 0x8a, 0xdf, 0x15, 0x61, 0x6e, 0x57, 0x2e, - 0x07, 0x3a, 0xc7, 0xec, 0x62, 0x32, 0x67, 0xe5, 0x93, 0x39, 0x1e, 0xba, 0x78, 0x3c, 0xdb, 0x91, - 0xce, 0x25, 0x21, 0xcc, 0x2a, 0x4d, 0xd4, 0x34, 0x37, 0x5b, 0x61, 0xab, 0x90, 0xdc, 0x08, 0xf9, - 0x04, 0xfa, 0x04, 0x23, 0x58, 0x4e, 0x61, 0x5d, 0x0c, 0x60, 0x87, 0x87, 0x6e, 0xef, 0xdd, 0xf1, - 0x80, 0x5e, 0xdc, 0x10, 0x50, 0x4f, 0xa8, 0xe6, 0xa2, 0x0e, 0xed, 0xb8, 0xfd, 0xd6, 0xbb, 0x01, - 0x7d, 0x0f, 0xf1, 0x81, 0x7c, 0xbc, 0xb9, 0xb8, 0x16, 0x4f, 0x8c, 0x01, 0xc5, 0x2f, 0xf8, 0x9e, - 0x8a, 0xa7, 0xd2, 0xf1, 0x19, 0xdb, 0x88, 0x5b, 0xef, 0x10, 0xef, 0x71, 0x6b, 0x40, 0xcf, 0xdc, - 0xfb, 0x04, 0x07, 0xa5, 0x5c, 0x42, 0xd1, 0x0e, 0x45, 0x32, 0x64, 0x80, 0xe5, 0xf2, 0x01, 0x7d, - 0x95, 0xaa, 0xef, 0x6a, 0xbe, 0xaa, 0x4d, 0x4d, 0x48, 0x2f, 0x7a, 0xed, 0xee, 0x14, 0xb3, 0x09, - 0x65, 0x17, 0x06, 0x5a, 0x9d, 0x0a, 0x14, 0x2a, 0x2e, 0x51, 0x36, 0xbb, 0xc3, 0xc3, 0x69, 0xaf, - 0xf5, 0xf2, 0x22, 0xd8, 0x32, 0x4c, 0x73, 0xca, 0x3f, 0x1b, 0xf8, 0xb2, 0x0d, 0x20, 0xd3, 0x6a, - 0x4b, 0xef, 0xb9, 0x03, 0x25, 0xda, 0x61, 0xed, 0x5a, 0x04, 0x95, 0xc0, 0x3f, 0x96, 0x4e, 0xc8, - 0x5d, 0xa1, 0xda, 0xd9, 0x06, 0x14, 0x3a, 0x94, 0x07, 0x83, 0x92, 0x3b, 0x0d, 0xad, 0xaa, 0xba, - 0x86, 0x64, 0x40, 0x78, 0xd6, 0x70, 0xca, 0x65, 0x95, 0xb8, 0xc3, 0x92, 0x67, 0x2f, 0x2f, 0x4d, - 0x60, 0xd1, 0xd5, 0x5c, 0x6e, 0x15, 0x2e, 0x58, 0x05, 0x8c, 0xdd, 0x69, 0xeb, 0xb9, 0x94, 0xc4, - 0x84, 0x24, 0x47, 0xcb, 0x23, 0xf4, 0x3d, 0x1b, 0x92, 0x8a, 0x7b, 0x93, 0xe3, 0x1b, 0xe4, 0xea, - 0x1d, 0x99, 0x1f, 0x18, 0xeb, 0x4e, 0xee, 0xe1, 0x5a, 0xf3, 0x5e, 0xc0, 0xe9, 0x02, 0xa8, 0xe4, - 0x80, 0x0b, 0x89, 0x4b, 0xb0, 0x05, 0x12, 0x6c, 0x35, 0x0f, 0x80, 0x29, 0x8e, 0xde, 0xf6, 0x39, - 0xfa, 0xa2, 0x0c, 0x72, 0xe2, 0xc6, 0x81, 0xa6, 0x1c, 0x79, 0x32, 0x10, 0xc2, 0xe9, 0xa4, 0xc2, - 0xe4, 0x28, 0x26, 0xce, 0x0c, 0x70, 0x54, 0xe9, 0xe3, 0x96, 0xad, 0xe6, 0x39, 0xd8, 0xb2, 0xd2, - 0xa6, 0x0e, 0x4c, 0x80, 0x2f, 0x32, 0xf8, 0x9f, 0x72, 0xa9, 0x7c, 0xba, 0x2e, 0x4a, 0x45, 0x57, - 0x8b, 0x24, 0x6d, 0x5a, 0xc2, 0xfa, 0xdb, 0xb8, 0x0d, 0xe9, 0x9e, 0x59, 0xef, 0x1f, 0x1a, 0xd1, - 0xff, 0x1d, 0x81, 0x4d, 0xcb, 0xf0, 0x18, 0xc7, 0x38, 0xb4, 0xd9, 0xe0, 0x78, 0xda, 0x7a, 0x62, - 0x7a, 0x65, 0x59, 0x4a, 0x82, 0xc7, 0xda, 0xc2, 0x03, 0xc5, 0x41, 0x0b, 0xc5, 0x5b, 0x3e, 0x0e, - 0xbc, 0xdd, 0xb6, 0xf7, 0xc8, 0x58, 0xbe, 0xf0, 0x1e, 0x20, 0x3d, 0x63, 0x13, 0x02, 0xa5, 0x35, - 0x56, 0xac, 0x1d, 0x7a, 0x0b, 0xb9, 0x24, 0x78, 0xa3, 0x09, 0x51, 0x42, 0x3f, 0xb6, 0xf0, 0x95, - 0x71, 0xa2, 0xff, 0xf7, 0x7f, 0xa9, 0x69, 0xb6, 0x34, 0xd9, 0x8f, 0x6f, 0xc2, 0x9e, 0xd0, 0x65, - 0xf0, 0x16, 0x56, 0x87, 0xae, 0xd1, 0x71, 0x84, 0x60, 0xf6, 0xff, 0x58, 0x32, 0x08, 0x95, 0xdc, - 0x93, 0xfa, 0xe1, 0xa9, 0xeb, 0x2a, 0xb4, 0xf6, 0x08, 0x2b, 0xaa, 0x2d, 0xcd, 0x30, 0xf1, 0xa5, - 0x99, 0x7b, 0x5d, 0x72, 0xbf, 0x1a, 0xa2, 0x33, 0xdc, 0x98, 0xeb, 0xe6, 0x24, 0xb9, 0x63, 0x0a, - 0x5e, 0x2b, 0xc3, 0xb5, 0x85, 0xa9, 0x6b, 0x0f, 0xd8, 0x5e, 0x03, 0xf4, 0x19, 0x99, 0x60, 0xab, - 0x24, 0x9f, 0x99, 0xc1, 0xae, 0x92, 0xdc, 0x2f, 0x7d, 0x95, 0x14, 0x41, 0x67, 0x50, 0x41, 0xcc, - 0x64, 0x15, 0x83, 0x05, 0xd1, 0x2c, 0x29, 0x88, 0x66, 0xea, 0x2b, 0x2e, 0x00, 0x02, 0xad, 0xc9, - 0x9b, 0x0d, 0xdd, 0x92, 0xc1, 0x49, 0x35, 0x35, 0x4b, 0xaa, 0x29, 0x41, 0x43, 0x71, 0xcd, 0x3f, - 0x55, 0xf4, 0xa8, 0xa2, 0xe4, 0x79, 0xe6, 0x33, 0x40, 0x82, 0x10, 0x35, 0x35, 0xf1, 0xc5, 0xf1, - 0x40, 0x2c, 0x41, 0x26, 0x69, 0xdb, 0x77, 0xfd, 0xd0, 0xa4, 0xdf, 0x4d, 0xa7, 0x53, 0xda, 0x4d, - 0x6b, 0xa4, 0x74, 0x60, 0xb3, 0x99, 0x8d, 0x3b, 0x32, 0x72, 0x1d, 0x82, 0x7d, 0x3c, 0x27, 0x15, - 0xe0, 0x2c, 0xa9, 0x00, 0x67, 0x49, 0x05, 0x38, 0x4b, 0x2a, 0xc0, 0x99, 0xec, 0x10, 0x04, 0x5b, - 0x1d, 0x82, 0x20, 0xd7, 0x21, 0xc0, 0x25, 0x9a, 0x9a, 0x9f, 0xbf, 0x74, 0x73, 0xad, 0x82, 0xd3, - 0x30, 0xb4, 0x56, 0x35, 0x27, 0xe2, 0x7f, 0x93, 0x12, 0x5f, 0xc5, 0x45, 0xbe, 0x87, 0x45, 0xbe, - 0xef, 0xc9, 0x56, 0x82, 0x5c, 0xe9, 0x7b, 0x58, 0xe9, 0x69, 0x2d, 0x58, 0x46, 0x73, 0x09, 0xfa, - 0xf9, 0xfe, 0x8b, 0x2a, 0x0b, 0x60, 0x1d, 0xca, 0xdf, 0x20, 0x5f, 0xfe, 0x02, 0x15, 0xe7, 0xc0, - 0xfc, 0x26, 0xe8, 0xae, 0x80, 0x93, 0xd7, 0xca, 0xe0, 0x55, 0x22, 0x84, 0x55, 0x22, 0x84, 0x55, - 0x22, 0x84, 0x55, 0x22, 0x84, 0x55, 0x22, 0x84, 0x55, 0x22, 0x84, 0x55, 0x22, 0x84, 0x55, 0xae, - 0x0c, 0x5e, 0x95, 0x96, 0xc1, 0x97, 0xa5, 0x4c, 0xbc, 0xb5, 0x0c, 0xbe, 0xdc, 0x57, 0x06, 0x0b, - 0xe9, 0x7f, 0xdb, 0x92, 0x7e, 0xf6, 0x44, 0xca, 0x2d, 0xa5, 0x93, 0xbd, 0xe3, 0x9d, 0x98, 0xf5, - 0x7a, 0x2a, 0x1a, 0x36, 0xcc, 0xec, 0xb3, 0x5c, 0xc3, 0x26, 0x28, 0x36, 0x6c, 0x06, 0xdb, 0xca, - 0x06, 0x81, 0x97, 0x76, 0xb6, 0x1e, 0xef, 0x40, 0xd0, 0x6f, 0x36, 0x07, 0xd4, 0x0f, 0x2d, 0x6f, - 0x86, 0x4e, 0x80, 0xeb, 0xe9, 0x7a, 0xcd, 0xdc, 0x88, 0x71, 0x01, 0x5d, 0xec, 0x1a, 0xd6, 0xcd, - 0x77, 0xd6, 0xa1, 0x78, 0xcb, 0xfa, 0xea, 0x9f, 0xfd, 0x2f, 0x2f, 0x2f, 0x22, 0xc8, 0xbb, 0x11, - 0xf7, 0x6d, 0x22, 0xfe, 0x2c, 0x64, 0xfc, 0x91, 0x0f, 0xc1, 0x05, 0x61, 0x49, 0x04, 0x29, 0x42, - 0x1e, 0x93, 0x76, 0x01, 0xe1, 0x4c, 0xb1, 0x32, 0xaa, 0x5b, 0x78, 0x54, 0xb5, 0x7a, 0xd1, 0x5f, - 0x00, 0xd4, 0xc2, 0xb4, 0xaa, 0x17, 0xaa, 0x76, 0xd1, 0xb7, 0xe1, 0x8b, 0x6d, 0xc2, 0xc7, 0x3f, - 0x6f, 0xc6, 0x3d, 0x8c, 0x3c, 0xca, 0x43, 0x15, 0x46, 0x83, 0xbc, 0x05, 0x2d, 0x8c, 0x8b, 0xd8, - 0xbc, 0x3e, 0x93, 0xbb, 0x22, 0x0b, 0xe9, 0xa8, 0xb7, 0x9e, 0x9b, 0xe6, 0xc3, 0x80, 0x82, 0xcc, - 0x14, 0x5a, 0x7d, 0xa8, 0x52, 0x12, 0xcc, 0x57, 0x91, 0x63, 0x5b, 0x6e, 0xe2, 0xd9, 0x17, 0x7a, - 0xa1, 0x2a, 0x8a, 0x35, 0xb1, 0x27, 0x11, 0xd7, 0xb1, 0x14, 0xf8, 0x8b, 0xa1, 0xcb, 0xca, 0x7a, - 0x32, 0xb6, 0xb2, 0x70, 0x3a, 0xb6, 0xec, 0xfb, 0x59, 0xe8, 0x2f, 0xbd, 0x89, 0xf9, 0x15, 0xdd, - 0xb2, 0x15, 0x1e, 0xcd, 0x42, 0x6b, 0xe2, 0x60, 0x27, 0xfe, 0x9d, 0x3e, 0x61, 0x33, 0x8d, 0x7c, - 0xff, 0x2c, 0x5a, 0x0c, 0xc7, 0xfa, 0x40, 0x7c, 0x78, 0x07, 0x49, 0x3c, 0x5f, 0xf1, 0xdc, 0x2a, - 0xda, 0xb6, 0x4d, 0xd7, 0x44, 0x4f, 0x80, 0xd7, 0x3f, 0x68, 0xe4, 0xbb, 0x56, 0xab, 0x95, 0x7d, - 0x27, 0x40, 0xff, 0x07, 0xf5, 0xab, 0x5c, 0x11, 0x36, 0xd9, 0x55, 0x31, 0xd8, 0xfd, 0x2b, 0x2b, - 0x9e, 0xa3, 0x7b, 0x52, 0xb8, 0x53, 0xd5, 0x4e, 0x74, 0x5d, 0x7d, 0x79, 0x11, 0x94, 0x4f, 0xf4, - 0xf2, 0x18, 0x59, 0x82, 0x4f, 0xa8, 0x60, 0x82, 0xcd, 0x7a, 0x2a, 0xc1, 0x66, 0xe8, 0x9b, 0x13, - 0x11, 0xd8, 0x1e, 0xa1, 0x28, 0x8d, 0x7c, 0xaf, 0x20, 0xcc, 0x8c, 0xfe, 0x89, 0xfe, 0x03, 0x36, - 0xe6, 0x01, 0x5d, 0x0d, 0x1b, 0x2c, 0x64, 0xc1, 0x16, 0x7e, 0xb8, 0xa2, 0xd5, 0xac, 0x11, 0x33, - 0xf8, 0x4a, 0x94, 0xde, 0xb8, 0x7f, 0x7e, 0x7b, 0x7b, 0x7d, 0xdb, 0x21, 0xbf, 0xf2, 0x86, 0x8a, - 0x0f, 0x31, 0x19, 0x84, 0x81, 0x2b, 0xb1, 0x1e, 0x1e, 0xf4, 0xea, 0xe3, 0xbe, 0xfa, 0x15, 0xd2, - 0x72, 0xb5, 0x03, 0xf8, 0x74, 0xd1, 0xa8, 0x09, 0x00, 0x42, 0x06, 0x71, 0x1e, 0x14, 0xe7, 0x26, - 0xe7, 0xdd, 0x66, 0x8e, 0xab, 0x28, 0x80, 0xb6, 0xfa, 0xf0, 0x17, 0x51, 0xfc, 0xa8, 0xf5, 0x36, - 0xcc, 0xa2, 0xde, 0xe8, 0xce, 0xcd, 0x79, 0xbf, 0x3d, 0xc8, 0xa0, 0xe6, 0x6a, 0x67, 0xde, 0xb5, - 0x4c, 0x99, 0xed, 0x8f, 0x79, 0x46, 0xb7, 0x59, 0x76, 0x6b, 0x43, 0x33, 0x5f, 0x71, 0x65, 0xdd, - 0x8d, 0x79, 0xcf, 0xa8, 0xe9, 0x8d, 0xc3, 0xc3, 0x83, 0x31, 0xfc, 0x1b, 0x0e, 0x00, 0xcd, 0xf9, - 0xe8, 0x86, 0xb4, 0x7f, 0xc3, 0xae, 0x24, 0x79, 0x74, 0xe2, 0x39, 0x31, 0x4e, 0xc9, 0xaf, 0xa3, - 0x21, 0x89, 0x96, 0x41, 0xe0, 0xae, 0x68, 0x47, 0xb1, 0xaa, 0xe6, 0x78, 0x40, 0x8d, 0xc6, 0x6f, - 0x84, 0x76, 0x86, 0x03, 0xfa, 0x69, 0xd4, 0x38, 0x31, 0xda, 0x44, 0x7c, 0xa7, 0x30, 0x90, 0x6a, - 0x00, 0x31, 0xc7, 0xff, 0xd1, 0x53, 0x39, 0x0a, 0xfb, 0x6d, 0x1e, 0x64, 0x10, 0x90, 0x94, 0xc4, - 0x3e, 0x9f, 0x36, 0x15, 0xc5, 0xdb, 0x68, 0xf7, 0x64, 0x0d, 0x31, 0x5b, 0xed, 0xdc, 0xa4, 0x0a, - 0x6f, 0x66, 0xf9, 0x51, 0x4c, 0xd8, 0x74, 0x0a, 0x68, 0x22, 0x8d, 0xfc, 0x27, 0xed, 0x9e, 0x57, - 0xcd, 0x91, 0x39, 0x2a, 0x48, 0x62, 0xa4, 0x76, 0x46, 0xda, 0x39, 0x27, 0xec, 0x44, 0x84, 0x79, - 0xfe, 0x72, 0x36, 0x57, 0x7b, 0xe3, 0xb0, 0x9f, 0xb5, 0x8c, 0x0a, 0xcb, 0x6b, 0x15, 0x3a, 0x49, - 0xd9, 0xf3, 0x21, 0xda, 0xdb, 0xb9, 0x78, 0xf9, 0x4d, 0xe8, 0x44, 0x51, 0x5d, 0x4f, 0xa4, 0x24, - 0x2f, 0xee, 0x64, 0xed, 0x4a, 0x13, 0xcd, 0xcc, 0x6d, 0x7b, 0x59, 0x51, 0x7c, 0xee, 0x4d, 0x64, - 0x03, 0x90, 0xf5, 0x8c, 0xa4, 0xa9, 0xa7, 0x77, 0x1f, 0x5e, 0xf3, 0x1f, 0x23, 0x50, 0x2c, 0x76, - 0x04, 0xd1, 0x23, 0xf3, 0x21, 0xd5, 0xd7, 0xfb, 0x10, 0x9b, 0x43, 0xba, 0xa2, 0x68, 0x7f, 0xdd, - 0x57, 0x6d, 0x0d, 0x94, 0x9c, 0x7a, 0xbc, 0x24, 0xf2, 0x44, 0x49, 0x04, 0x95, 0xb9, 0xaa, 0x39, - 0xd1, 0x2f, 0xd6, 0x2f, 0xca, 0x83, 0x3a, 0xd0, 0x3b, 0x0f, 0xd9, 0x54, 0xa1, 0x90, 0xc5, 0x45, - 0x4d, 0xb7, 0xf8, 0xc4, 0xfe, 0xc6, 0x06, 0xb9, 0xb3, 0x64, 0x9b, 0x07, 0xd2, 0xbb, 0xd1, 0x1d, - 0x24, 0x77, 0x8e, 0x19, 0xa7, 0x89, 0xdc, 0x54, 0x39, 0x50, 0xa0, 0x02, 0x81, 0x68, 0xe5, 0xf4, - 0x31, 0xad, 0x1a, 0xbe, 0xbc, 0x1c, 0x89, 0xef, 0xa0, 0xcc, 0x8e, 0x9a, 0x74, 0xb4, 0x85, 0xc3, - 0x83, 0xb9, 0xf2, 0xc8, 0x89, 0x00, 0x49, 0x8d, 0xfe, 0xb5, 0x37, 0x71, 0x1e, 0x08, 0xdf, 0x4a, - 0x32, 0x39, 0xfe, 0xfe, 0xef, 0x5e, 0x6f, 0x0e, 0xc5, 0x2f, 0xae, 0x9b, 0xdc, 0x71, 0xee, 0x34, - 0x8e, 0xf5, 0xe0, 0x09, 0xdf, 0x7c, 0xff, 0xec, 0x54, 0xa1, 0x1a, 0x03, 0x10, 0xd1, 0x24, 0x20, - 0x62, 0x2f, 0xf9, 0xf2, 0x0e, 0x5e, 0xac, 0x29, 0x81, 0x42, 0x6e, 0x8e, 0x9e, 0xc1, 0xa4, 0xbf, - 0x5e, 0x28, 0x71, 0x08, 0x12, 0xe1, 0xe8, 0xfc, 0x80, 0xcf, 0x56, 0x96, 0x99, 0x8d, 0x06, 0x25, - 0x62, 0x34, 0x9b, 0xf4, 0xb9, 0x15, 0x3c, 0xf5, 0xea, 0x02, 0x64, 0x1b, 0xb8, 0xa9, 0xd3, 0xfe, - 0xe8, 0x6f, 0xc7, 0x27, 0x46, 0x83, 0xdc, 0x7e, 0x1c, 0x7e, 0xda, 0x03, 0x68, 0xd0, 0xfe, 0xdd, - 0x95, 0x71, 0x62, 0xb4, 0x76, 0xc3, 0x34, 0x5a, 0x14, 0x0a, 0x45, 0xfd, 0xfe, 0xe7, 0xff, 0xd8, - 0x0d, 0xd3, 0x06, 0x82, 0xc8, 0x94, 0x6e, 0xec, 0x81, 0x01, 0x5a, 0xa7, 0x37, 0xa7, 0x86, 0xde, - 0xd8, 0x03, 0xd3, 0xa0, 0xfd, 0xcb, 0x9b, 0xf7, 0x27, 0x27, 0xfa, 0xf1, 0x1e, 0xa0, 0x26, 0xed, - 0xdf, 0xbc, 0x3b, 0x31, 0x9a, 0xbb, 0x41, 0x5a, 0xc0, 0xcf, 0xb5, 0x57, 0xbf, 0x9e, 0x4e, 0xf7, - 0xc0, 0x00, 0x3f, 0x37, 0x9f, 0xae, 0xc8, 0xa7, 0xb9, 0x13, 0xb3, 0x3d, 0x60, 0x0d, 0x01, 0x76, - 0x76, 0x76, 0xb7, 0x07, 0xa8, 0x29, 0x80, 0x40, 0xda, 0x7b, 0x80, 0x5a, 0x29, 0xd0, 0x9e, 0x25, - 0x69, 0xb5, 0x53, 0xa8, 0x6a, 0x91, 0xe6, 0xef, 0x4f, 0x4d, 0xfb, 0xe0, 0xe8, 0x68, 0x03, 0xfc, - 0x38, 0x03, 0x7f, 0x9f, 0x83, 0x3f, 0x3a, 0x02, 0x70, 0xb6, 0x85, 0xfd, 0x04, 0x04, 0xf3, 0xfe, - 0xfd, 0x0d, 0x82, 0x13, 0xc5, 0x63, 0xf1, 0xa3, 0x1f, 0xde, 0xab, 0xaf, 0xd1, 0x38, 0x01, 0x49, - 0x9d, 0x1b, 0xb5, 0xa6, 0x51, 0x3e, 0x2c, 0x21, 0x55, 0x3e, 0x16, 0xc4, 0x77, 0x1a, 0xc6, 0xbf, - 0xb0, 0x78, 0xff, 0xe0, 0x5e, 0x5d, 0x68, 0x77, 0x1f, 0x1d, 0x28, 0x7c, 0x45, 0xfb, 0x72, 0x26, - 0x26, 0xb5, 0x7d, 0x61, 0x24, 0xd2, 0xb2, 0xa4, 0x4b, 0xec, 0xc8, 0x00, 0xdd, 0x3f, 0xc3, 0x08, - 0x4c, 0xae, 0xc3, 0x09, 0x0b, 0xb7, 0xec, 0xeb, 0xec, 0x9a, 0x0f, 0xdd, 0x16, 0x31, 0xc8, 0xe0, - 0xe3, 0xed, 0x9e, 0x85, 0x82, 0xe9, 0xee, 0x5d, 0x48, 0x98, 0xd2, 0xf0, 0xf6, 0xe3, 0x1e, 0xab, - 0x82, 0xf1, 0xc3, 0x3d, 0xef, 0x41, 0x0f, 0x86, 0x1f, 0x6f, 0xf7, 0x28, 0x38, 0xf0, 0x37, 0x2c, - 0xbc, 0x4f, 0x85, 0x53, 0x07, 0xb9, 0xe4, 0xc5, 0x03, 0x05, 0x3f, 0x4e, 0xf2, 0x71, 0x4b, 0x40, - 0x3c, 0x3c, 0xf4, 0x47, 0x8f, 0x56, 0xd0, 0x21, 0x45, 0xb1, 0x7c, 0x92, 0x62, 0xd9, 0x16, 0xca, - 0x2f, 0x30, 0x26, 0xa5, 0xba, 0x2d, 0x93, 0x4f, 0xe4, 0x90, 0x0c, 0x77, 0xbd, 0x6f, 0x88, 0xf7, - 0x1f, 0x77, 0xbd, 0x6f, 0x8a, 0xf7, 0xd9, 0xac, 0x4a, 0xe7, 0x84, 0x7f, 0xa2, 0xc0, 0xf2, 0xf8, - 0xdc, 0x82, 0x68, 0x22, 0x38, 0x15, 0x5d, 0x02, 0x18, 0x00, 0x6f, 0xfa, 0xa4, 0x27, 0x36, 0x2d, - 0xf1, 0x40, 0x86, 0x49, 0xbd, 0xe5, 0x62, 0xcc, 0x42, 0x9a, 0x78, 0xd4, 0x91, 0x50, 0x16, 0x1c, - 0xed, 0x46, 0xe2, 0xb3, 0x74, 0xd2, 0x2e, 0x11, 0xc9, 0x3c, 0x25, 0x58, 0x94, 0xc2, 0x6c, 0x31, - 0xb9, 0x42, 0xd5, 0x7e, 0x67, 0xd0, 0x84, 0xc7, 0xef, 0x9f, 0x93, 0x28, 0xea, 0xa8, 0xdc, 0x2f, - 0x73, 0x4a, 0x26, 0xcd, 0x97, 0x01, 0x88, 0xf4, 0x8b, 0x89, 0x5e, 0xba, 0x8b, 0xad, 0xfc, 0x2e, - 0x25, 0x49, 0x57, 0x90, 0xd4, 0xfb, 0x87, 0xde, 0x38, 0x0a, 0xba, 0xdb, 0xcb, 0x63, 0xef, 0xd4, - 0xdf, 0x4b, 0x1e, 0x91, 0x3a, 0x7b, 0x27, 0x75, 0x56, 0x9c, 0x88, 0x9c, 0x81, 0x21, 0x67, 0xc0, - 0xf3, 0xbd, 0x9b, 0xe1, 0x9a, 0x66, 0x2b, 0x95, 0xb1, 0x94, 0x4e, 0x01, 0x79, 0xa5, 0xc0, 0xa1, - 0x10, 0xb6, 0xb4, 0xb1, 0xfa, 0x96, 0xc4, 0x75, 0x29, 0x71, 0xde, 0xd2, 0x7d, 0x8b, 0xc0, 0x75, - 0xc1, 0x5b, 0x41, 0xa6, 0xcd, 0x66, 0x8e, 0x03, 0xc9, 0x75, 0xb4, 0x11, 0xe6, 0x54, 0x5a, 0x2f, - 0x52, 0x36, 0x24, 0x65, 0x49, 0x74, 0x1f, 0x4d, 0x63, 0x07, 0xcd, 0xb7, 0x92, 0x6a, 0xbc, 0x9d, - 0x54, 0xe3, 0x5f, 0x24, 0xd5, 0x7c, 0x3b, 0xa9, 0xe6, 0xbf, 0x48, 0xaa, 0xf5, 0x76, 0x52, 0xad, - 0x7f, 0x8a, 0xd4, 0x86, 0x4e, 0x87, 0x3b, 0x75, 0x1a, 0xb5, 0x2b, 0x63, 0x0c, 0xd2, 0x6b, 0xc1, - 0x58, 0xd2, 0x32, 0x94, 0x0c, 0x6e, 0xe8, 0x3c, 0x6f, 0x8f, 0x8f, 0xfd, 0xa7, 0x84, 0xc9, 0xb3, - 0xdf, 0x92, 0xe9, 0x94, 0x7b, 0xbc, 0x68, 0x2f, 0xf9, 0xd1, 0xbd, 0x13, 0x90, 0xa9, 0x13, 0x42, - 0x12, 0x8f, 0xa9, 0xe2, 0x5e, 0xfb, 0x1a, 0x5d, 0x96, 0x88, 0x03, 0xca, 0x17, 0xba, 0x61, 0x3d, - 0x3b, 0x59, 0x99, 0xee, 0x65, 0x05, 0x72, 0x10, 0x72, 0xcb, 0xa6, 0x21, 0x8b, 0x32, 0x33, 0xe7, - 0x72, 0x99, 0x0a, 0xb2, 0xe5, 0xd3, 0xbf, 0xfd, 0xb0, 0x7f, 0xfa, 0xd6, 0x5e, 0x9a, 0xa7, 0xcb, - 0xd8, 0x3f, 0x82, 0xa2, 0xdd, 0x5e, 0xba, 0x56, 0xcc, 0xc8, 0x23, 0x66, 0x38, 0x78, 0xa2, 0x12, - 0x4a, 0x0e, 0x97, 0x4c, 0x43, 0x7f, 0x81, 0xb1, 0xb8, 0x23, 0xd6, 0x29, 0x1f, 0x1a, 0x4e, 0x3f, - 0x95, 0x85, 0x06, 0x7d, 0x5f, 0x60, 0x30, 0xfa, 0xc3, 0xd0, 0x99, 0xcd, 0x63, 0x16, 0xee, 0x00, - 0x68, 0xf4, 0x4f, 0x6d, 0x1b, 0xcf, 0x96, 0xed, 0xc2, 0xd0, 0xec, 0xbf, 0x5f, 0x5a, 0xee, 0x76, - 0x5c, 0x10, 0xce, 0x34, 0x15, 0x00, 0xff, 0xfb, 0xb5, 0x6b, 0x41, 0xe1, 0x14, 0xb1, 0x30, 0x3e, - 0x9d, 0x7c, 0xb3, 0x6c, 0x48, 0xf5, 0xb1, 0x82, 0x52, 0xe8, 0x98, 0x41, 0xd1, 0xc6, 0x98, 0x37, - 0xa1, 0x9a, 0xaf, 0xae, 0x65, 0x2e, 0xaf, 0xc4, 0x9f, 0x8f, 0x8e, 0x9c, 0x2f, 0xb5, 0x10, 0x8a, - 0xe7, 0x07, 0xa6, 0xa8, 0x1a, 0x7c, 0x93, 0xdd, 0x9a, 0xea, 0x56, 0x8d, 0xe5, 0xf4, 0xb0, 0x0e, - 0x38, 0x32, 0xca, 0x6b, 0xff, 0xa3, 0x6d, 0xf8, 0xfe, 0x76, 0x9b, 0xc0, 0x7b, 0x79, 0xe1, 0xdb, - 0xbb, 0x85, 0x52, 0xe5, 0xec, 0xfa, 0x4a, 0x01, 0x19, 0x42, 0xad, 0xc2, 0x77, 0x33, 0x45, 0x05, - 0xe1, 0xec, 0x29, 0x57, 0x6c, 0x7f, 0xf1, 0x07, 0x3c, 0x84, 0x72, 0x5f, 0x2d, 0x14, 0x2c, 0x50, - 0xaa, 0x60, 0x67, 0x4c, 0xd6, 0x26, 0x85, 0x0a, 0x24, 0x1b, 0xf2, 0x96, 0x3a, 0x84, 0x88, 0x78, - 0xba, 0xcf, 0x26, 0xfe, 0x9e, 0x0b, 0xa4, 0x4f, 0x6f, 0x0a, 0xa4, 0xc7, 0xed, 0x76, 0xb3, 0x9d, - 0x8b, 0xa4, 0x6c, 0xbd, 0x61, 0x3f, 0xb9, 0x48, 0x69, 0x52, 0x9a, 0x86, 0xca, 0x37, 0x04, 0xc0, - 0xbf, 0x9f, 0xe5, 0x98, 0xb1, 0xf7, 0x06, 0xc3, 0x4d, 0x2e, 0xbc, 0x75, 0x81, 0xea, 0xa6, 0x45, - 0x4b, 0xbb, 0xfa, 0x53, 0xb9, 0x25, 0xe7, 0x42, 0x26, 0xa5, 0x92, 0xbf, 0xff, 0x7f, 0x79, 0x66, - 0x62, 0x6f, 0xdc, 0x45, 0x48, 0xcb, 0x93, 0x9b, 0x83, 0x42, 0xd3, 0x1c, 0x16, 0xf1, 0x1e, 0xc6, - 0x5e, 0x53, 0xb4, 0xa4, 0xb5, 0x3d, 0xf9, 0xb4, 0xea, 0x24, 0x0d, 0xd3, 0x58, 0x1b, 0xc7, 0x1e, + 0x57, 0x17, 0xe7, 0x64, 0xc4, 0xe2, 0xd8, 0xf1, 0x66, 0x51, 0xaf, 0x2e, 0x9e, 0xf5, 0x22, 0x3b, + 0x74, 0x82, 0xb8, 0x5f, 0x79, 0xb4, 0x42, 0xe2, 0xfa, 0xb6, 0x13, 0x68, 0xb1, 0xb3, 0x60, 0xfe, + 0x32, 0xd6, 0x26, 0xe6, 0xc4, 0xb7, 0x97, 0x0b, 0xe0, 0x4b, 0x73, 0xad, 0x20, 0x64, 0x8f, 0x66, + 0xbb, 0x8d, 0xd4, 0x87, 0x82, 0x89, 0x6b, 0xb3, 0xc5, 0x9a, 0xf8, 0xe1, 0x76, 0x68, 0xb6, 0xf4, + 0x77, 0xc7, 0xf8, 0xf1, 0xca, 0x34, 0x9a, 0x4d, 0xfe, 0xf0, 0x6a, 0xfc, 0x8f, 0xa5, 0x1f, 0x9b, + 0xba, 0x66, 0x2f, 0xa3, 0xd8, 0x5f, 0x8c, 0x62, 0x2b, 0x8c, 0x23, 0xf3, 0xc0, 0xd0, 0x22, 0xfe, + 0xe9, 0xdc, 0x09, 0xe3, 0x95, 0xf9, 0xe9, 0x33, 0x82, 0x9e, 0xdd, 0xdc, 0x3c, 0xb2, 0x30, 0x74, + 0x26, 0x2c, 0x32, 0xdb, 0x1a, 0xf0, 0x00, 0x60, 0xdd, 0xe9, 0xd2, 0xb3, 0x63, 0xc7, 0xf7, 0xc8, + 0xcf, 0x8a, 0xfa, 0xfc, 0xe4, 0x78, 0x13, 0xff, 0xa9, 0xe6, 0x07, 0xcc, 0x53, 0xe8, 0x3c, 0x8e, + 0x83, 0xa8, 0x53, 0xaf, 0x3f, 0x78, 0x7e, 0xed, 0xc9, 0x65, 0x93, 0xda, 0x8c, 0xd5, 0xa7, 0xcc, + 0x8a, 0x97, 0x21, 0x8b, 0xea, 0x91, 0x9c, 0x5e, 0xfd, 0x3b, 0x78, 0x73, 0x94, 0x7c, 0xa3, 0xea, + 0x3a, 0xc5, 0x37, 0xdc, 0xc4, 0x97, 0x8e, 0xa1, 0x1a, 0xfd, 0x23, 0x62, 0xee, 0x34, 0x0f, 0x3d, + 0xbb, 0x9c, 0x28, 0x4c, 0x7d, 0x0e, 0x19, 0xa0, 0xf7, 0x08, 0xd2, 0x8a, 0x2f, 0x5c, 0x86, 0x32, + 0x19, 0xae, 0xf8, 0xab, 0x0c, 0xd4, 0x9f, 0x4e, 0x11, 0x34, 0x0f, 0x13, 0x0d, 0x57, 0xbf, 0xc0, + 0x52, 0xc0, 0xe3, 0x4f, 0xfa, 0xe7, 0xda, 0xa3, 0xe5, 0x2e, 0x99, 0x79, 0x64, 0x64, 0x43, 0x5c, + 0xdf, 0x9a, 0xfc, 0x75, 0xa4, 0x30, 0xcd, 0x33, 0x0f, 0x74, 0xf5, 0xd9, 0x65, 0x31, 0x89, 0xcd, + 0x49, 0xcd, 0x0e, 0x61, 0x3a, 0x4c, 0xe2, 0x50, 0xa8, 0x58, 0x21, 0xaa, 0x76, 0xe3, 0x1a, 0xb0, + 0x7a, 0x1a, 0xc7, 0xa1, 0x33, 0x5e, 0xc6, 0x0c, 0x5e, 0x84, 0x36, 0xd5, 0x98, 0xaa, 0x6d, 0x3e, + 0x8f, 0x57, 0x01, 0x83, 0xc9, 0xc4, 0xec, 0x5b, 0x5c, 0xff, 0x6a, 0x3d, 0x5a, 0x09, 0x82, 0x2d, + 0x40, 0x2b, 0x5a, 0x79, 0x80, 0xc2, 0x53, 0xb5, 0x49, 0x6d, 0xec, 0x4f, 0x56, 0x35, 0x2b, 0x00, + 0x91, 0x4c, 0xce, 0xe6, 0x8e, 0x3b, 0x51, 0x62, 0x84, 0xb7, 0x26, 0x93, 0x8b, 0x47, 0xe0, 0xe2, + 0xca, 0x89, 0x40, 0x41, 0x59, 0xa8, 0x50, 0xe4, 0x99, 0x6a, 0x8a, 0x6a, 0xf6, 0x9f, 0x3f, 0xb0, + 0xf8, 0x37, 0x45, 0xd5, 0xec, 0x39, 0xb3, 0x1f, 0x46, 0x0e, 0x7c, 0x42, 0xec, 0xc3, 0x2b, 0x45, + 0x5d, 0x97, 0x0f, 0x85, 0x45, 0xf6, 0x43, 0xe0, 0x18, 0x86, 0x82, 0xc2, 0x47, 0xbe, 0xcb, 0x6a, + 0xae, 0x3f, 0x53, 0xe8, 0x05, 0x3e, 0x27, 0x52, 0x1e, 0xb0, 0x12, 0x64, 0xea, 0xb8, 0x8c, 0xcf, + 0x0c, 0x34, 0x3c, 0x04, 0x09, 0x5c, 0xc9, 0xe7, 0xfe, 0x14, 0x8d, 0x68, 0xea, 0xcc, 0x96, 0xa1, + 0xc5, 0x05, 0x28, 0x66, 0x46, 0xa6, 0x96, 0x83, 0x8a, 0xf0, 0xbb, 0x77, 0xe9, 0xd9, 0xfe, 0x22, + 0x00, 0x39, 0x32, 0x12, 0x58, 0x33, 0x46, 0x26, 0x56, 0x6c, 0x1d, 0xc0, 0x7a, 0xe6, 0x96, 0x29, + 0x9a, 0xfb, 0x4f, 0xf7, 0xbe, 0x15, 0xc5, 0x42, 0xec, 0x86, 0xfa, 0x8c, 0x9a, 0x1f, 0x9b, 0xb8, + 0xd2, 0x34, 0xc6, 0x17, 0x5c, 0xd2, 0x8e, 0x07, 0x2c, 0xff, 0x7c, 0x7f, 0x7d, 0x65, 0x32, 0x98, + 0x8b, 0xed, 0x5a, 0x51, 0x84, 0x4b, 0x69, 0x7a, 0x03, 0x39, 0x8d, 0x0e, 0x45, 0x4c, 0x54, 0xb3, + 0x5d, 0x66, 0x85, 0xf7, 0xc2, 0x64, 0x14, 0x69, 0x3a, 0x5c, 0xd2, 0xf1, 0x0a, 0xe6, 0x67, 0x79, + 0xce, 0x82, 0xb3, 0x6a, 0x52, 0xcf, 0xf7, 0x60, 0x52, 0x12, 0xc2, 0x04, 0x51, 0x25, 0x83, 0x94, + 0x84, 0x37, 0xd0, 0xcc, 0x3c, 0xa9, 0xdc, 0xe7, 0x5a, 0xc8, 0x02, 0xd7, 0xb2, 0x71, 0xcd, 0x39, + 0x51, 0x8a, 0x73, 0xd2, 0x1a, 0xef, 0x74, 0x3d, 0x37, 0xb3, 0xf1, 0x95, 0xb3, 0x70, 0xe2, 0x08, + 0xe7, 0xa5, 0xc5, 0x9a, 0xa3, 0x3e, 0x73, 0x5b, 0x65, 0xc2, 0x56, 0x63, 0x69, 0xa9, 0x9e, 0x30, + 0x53, 0x27, 0x1b, 0x16, 0x38, 0x5e, 0x74, 0xf3, 0x37, 0x45, 0xc8, 0x81, 0x99, 0x1b, 0xfa, 0x7b, + 0x6f, 0xcd, 0xb8, 0x0a, 0x53, 0xc7, 0x0b, 0x96, 0x28, 0x9a, 0xa9, 0x1f, 0x2a, 0x8e, 0xa9, 0x77, + 0x9d, 0x1e, 0xac, 0x1e, 0xf3, 0x66, 0xf1, 0xbc, 0xeb, 0x54, 0xab, 0x62, 0xb4, 0x67, 0xb2, 0x4f, + 0xce, 0xe7, 0x1a, 0xba, 0x9f, 0x5a, 0xb4, 0x1c, 0x47, 0xa0, 0x68, 0xde, 0x4c, 0xd1, 0xb5, 0x86, + 0xda, 0x75, 0xa6, 0xb0, 0x8c, 0x3a, 0x35, 0x4d, 0xef, 0xe5, 0x85, 0x5e, 0x19, 0xc9, 0x87, 0x46, + 0xf2, 0xa1, 0x89, 0x1f, 0x92, 0xb5, 0x28, 0xc3, 0x22, 0x70, 0x04, 0xe8, 0x69, 0x2f, 0xc1, 0x2a, + 0xca, 0xcc, 0x8c, 0x5e, 0xdd, 0xd3, 0x6a, 0x9c, 0xd9, 0x9a, 0x66, 0xe8, 0x6a, 0xdf, 0x3c, 0xd1, + 0x55, 0x74, 0xaf, 0x8e, 0xb7, 0x64, 0x6b, 0xc0, 0xf0, 0x06, 0x36, 0xf0, 0x43, 0x4b, 0x7e, 0xb8, + 0xbb, 0x92, 0x1f, 0x86, 0xf7, 0xf2, 0xc3, 0xe5, 0x1d, 0x67, 0xf5, 0xf0, 0x90, 0xd2, 0x03, 0xc1, + 0x29, 0x27, 0x06, 0xdf, 0x8f, 0x8c, 0xc2, 0x13, 0xf5, 0x19, 0xc8, 0x4d, 0x6a, 0xcb, 0xc5, 0x1f, + 0xc1, 0xe1, 0xa1, 0xf8, 0x5b, 0x8b, 0x7c, 0xe0, 0xd3, 0x33, 0xfb, 0x9e, 0x69, 0xa6, 0x53, 0xc9, + 0x46, 0x20, 0xc3, 0xaa, 0x2a, 0x9d, 0x8d, 0xd0, 0xfd, 0x2f, 0x23, 0x3f, 0x0c, 0x57, 0x1a, 0x5f, + 0x25, 0xf2, 0xfd, 0xf3, 0x5f, 0x47, 0x37, 0xbf, 0xd4, 0x84, 0x44, 0x9c, 0xe9, 0x4a, 0x62, 0x57, + 0xd7, 0xc4, 0xb6, 0xbc, 0x1f, 0x63, 0x32, 0x66, 0x04, 0xa2, 0xc1, 0xa4, 0xf6, 0x45, 0xd5, 0x32, + 0xa4, 0x26, 0xa5, 0xe2, 0xdb, 0x14, 0xbc, 0x79, 0x04, 0x56, 0x0a, 0xde, 0x15, 0x18, 0xcb, 0x00, + 0xfa, 0xed, 0xc3, 0xc3, 0xec, 0x5b, 0xcf, 0x68, 0x14, 0x39, 0xa0, 0x79, 0x0e, 0x8e, 0x8f, 0x0c, + 0x03, 0x89, 0x11, 0xcf, 0xcf, 0xc8, 0xd1, 0x37, 0x90, 0x43, 0xb1, 0x1d, 0x98, 0x1e, 0x48, 0x09, + 0x04, 0xc9, 0x3f, 0xe4, 0x18, 0x68, 0x36, 0xf7, 0x90, 0x84, 0xb7, 0xc4, 0x0a, 0x19, 0xe1, 0x0a, + 0x08, 0x5e, 0xc2, 0x5d, 0xbd, 0x4e, 0x10, 0x95, 0xf4, 0xab, 0xe9, 0x54, 0x8d, 0xee, 0xd7, 0x4c, + 0x4d, 0xbf, 0x26, 0x6a, 0x6a, 0xc1, 0x22, 0x7d, 0x7d, 0x45, 0x4d, 0xad, 0x44, 0x3f, 0xac, 0x44, + 0x3f, 0xac, 0x44, 0x3f, 0xac, 0x44, 0x3f, 0xac, 0x44, 0x3f, 0xac, 0x44, 0x3f, 0xac, 0x44, 0x3f, + 0x2c, 0xbe, 0xf8, 0x14, 0x5f, 0x9a, 0x56, 0x81, 0x88, 0xa1, 0x0a, 0x26, 0xfc, 0x52, 0x26, 0xde, + 0xaa, 0xe5, 0xfe, 0x2b, 0x5a, 0x2e, 0x74, 0xf3, 0x6b, 0xaa, 0x9b, 0x39, 0x71, 0xe5, 0x9e, 0x6f, + 0xa8, 0xda, 0xad, 0xe3, 0x71, 0xff, 0xea, 0x3a, 0x36, 0x2e, 0x6e, 0xfc, 0xc4, 0x98, 0x07, 0x3a, + 0x97, 0x5a, 0xe3, 0xba, 0x8e, 0x5f, 0x24, 0xd3, 0xeb, 0x03, 0xae, 0x65, 0x5f, 0x0b, 0xab, 0xf0, + 0x35, 0xbf, 0x0a, 0x6b, 0xf8, 0x4f, 0x10, 0x38, 0xd0, 0x33, 0x77, 0x13, 0x87, 0xab, 0xd1, 0x72, + 0x0c, 0x8e, 0x4a, 0x49, 0x0c, 0x64, 0x34, 0xad, 0xa1, 0x9f, 0xce, 0xe1, 0xa9, 0x61, 0xb6, 0x01, + 0x53, 0x3e, 0x67, 0x53, 0x6b, 0xe9, 0xc6, 0x88, 0x2d, 0xf1, 0x52, 0x09, 0xcb, 0x20, 0xb4, 0xd8, + 0x0f, 0x6e, 0x43, 0x1f, 0xfc, 0xbc, 0x25, 0x9c, 0xa7, 0xd4, 0x34, 0x9e, 0x78, 0xf4, 0x0d, 0x70, + 0x8d, 0xd2, 0x27, 0xd1, 0x7b, 0xdf, 0x27, 0x0b, 0xcb, 0x5b, 0x11, 0x48, 0x80, 0x22, 0x02, 0xba, + 0x41, 0x16, 0x8c, 0xc4, 0x3e, 0x99, 0x5b, 0xde, 0xc4, 0x65, 0x07, 0xb4, 0x8b, 0x1e, 0xb2, 0x67, + 0xb0, 0xd6, 0xe1, 0xa1, 0xe2, 0x55, 0x4d, 0xfa, 0xbb, 0xf7, 0x7b, 0x78, 0x06, 0x01, 0x0a, 0x32, + 0x92, 0x10, 0x34, 0x1c, 0x23, 0x0f, 0x68, 0xfc, 0xc5, 0xe8, 0xb6, 0xd9, 0x40, 0xd5, 0x13, 0xd2, + 0xf2, 0xd4, 0x35, 0x67, 0x9d, 0x47, 0xbf, 0xdf, 0x2c, 0xd7, 0x99, 0x38, 0xf1, 0x4a, 0x51, 0xd1, + 0xd2, 0xe1, 0x69, 0x24, 0xa6, 0x98, 0xf3, 0xce, 0xcc, 0xe3, 0xa1, 0x51, 0x7a, 0x59, 0x1e, 0x6d, + 0x30, 0x61, 0xa3, 0xaa, 0xc0, 0xc0, 0x26, 0x5d, 0x3e, 0xf0, 0xea, 0x54, 0xca, 0x81, 0x0d, 0x44, + 0xd2, 0xd5, 0xd1, 0xb5, 0x04, 0x18, 0x60, 0x45, 0x54, 0x99, 0x38, 0x11, 0x84, 0x83, 0x15, 0xc0, + 0x80, 0x5b, 0x76, 0x1d, 0x88, 0x2b, 0x1d, 0x19, 0x5e, 0x38, 0x68, 0x10, 0x2d, 0x1b, 0x6f, 0x80, + 0x2d, 0xd0, 0xeb, 0xeb, 0x87, 0x87, 0x69, 0xf8, 0xce, 0x31, 0x7d, 0x75, 0x9a, 0x8b, 0x0c, 0x1c, + 0x1e, 0x52, 0x24, 0x31, 0x64, 0x93, 0x61, 0x41, 0xfc, 0xea, 0x14, 0x28, 0x6e, 0x51, 0x6f, 0xeb, + 0x66, 0x09, 0x07, 0xbf, 0x5e, 0xe6, 0x89, 0x25, 0xe4, 0x9f, 0xa3, 0x27, 0x27, 0xb6, 0xe7, 0x4a, + 0x89, 0x8c, 0x20, 0x4d, 0xd2, 0x36, 0xd9, 0x00, 0xdc, 0x5a, 0xce, 0x60, 0x72, 0x2c, 0x81, 0xa5, + 0xd9, 0x56, 0xc4, 0x88, 0xde, 0x29, 0x45, 0x65, 0x68, 0x72, 0x4d, 0xba, 0x63, 0x48, 0xb8, 0x1e, + 0xba, 0x1c, 0xb6, 0xa9, 0x77, 0xb6, 0x08, 0x34, 0xf5, 0x02, 0x44, 0xbb, 0x04, 0xa2, 0x9d, 0x87, + 0x68, 0x97, 0x40, 0xb4, 0x0b, 0x10, 0x8d, 0x32, 0x90, 0x46, 0x0a, 0x33, 0x11, 0x7a, 0xdf, 0xd9, + 0x23, 0xd0, 0x44, 0x94, 0x6b, 0x0e, 0xb3, 0x30, 0x00, 0x20, 0x4b, 0x59, 0x50, 0x9f, 0xb5, 0x52, + 0xdf, 0x31, 0x82, 0xec, 0x16, 0x3d, 0xc7, 0x76, 0x72, 0x26, 0x34, 0x16, 0x12, 0x94, 0xc4, 0x3e, + 0xd5, 0x8d, 0xe5, 0x01, 0x6c, 0xd7, 0x6c, 0x81, 0xd9, 0x45, 0x92, 0xa9, 0xbe, 0xe2, 0xa6, 0xce, + 0x68, 0xd5, 0xcb, 0xdc, 0x94, 0xda, 0x95, 0x96, 0x1b, 0x57, 0x5f, 0x19, 0x38, 0xba, 0x2a, 0x0e, + 0xd4, 0x58, 0xaf, 0xd9, 0x18, 0x64, 0x36, 0xda, 0x34, 0xcd, 0x72, 0x82, 0x7a, 0x61, 0xdc, 0x80, + 0xf5, 0x1b, 0xef, 0x06, 0x0d, 0xfd, 0x2f, 0x71, 0xc7, 0x68, 0xc3, 0xff, 0x10, 0x41, 0xdf, 0x04, + 0x0c, 0xe2, 0xc5, 0x09, 0x3c, 0x3a, 0x86, 0x7f, 0xfc, 0x4b, 0x0b, 0x3e, 0x34, 0xf9, 0x97, 0xa6, + 0x01, 0xce, 0xb2, 0xd7, 0x3a, 0x19, 0xb4, 0x3b, 0xad, 0x16, 0xe8, 0xec, 0xcb, 0x4b, 0xab, 0x8d, + 0xaa, 0x2b, 0x21, 0x32, 0x71, 0x80, 0x70, 0x58, 0x9a, 0x3e, 0x62, 0x22, 0xa9, 0x41, 0xb5, 0xd3, + 0x15, 0x8a, 0xb6, 0x08, 0x9e, 0xac, 0xd0, 0x03, 0xbf, 0xb1, 0xb5, 0x6c, 0x7c, 0xd1, 0xaf, 0x13, + 0x9b, 0xfb, 0xa9, 0xa1, 0xeb, 0x5b, 0x46, 0x01, 0x6a, 0x60, 0x9a, 0x05, 0x3d, 0x96, 0x9e, 0xc0, + 0x34, 0x1a, 0x9d, 0x2d, 0x9b, 0x55, 0xe4, 0xbb, 0xa2, 0xe2, 0x77, 0x45, 0x98, 0xdb, 0x95, 0xcb, + 0x81, 0xce, 0x31, 0xbb, 0x98, 0xcc, 0x59, 0xf9, 0x64, 0x8e, 0x87, 0x2e, 0x1e, 0xcf, 0x76, 0xa4, + 0x73, 0x49, 0x08, 0xb3, 0x4a, 0x13, 0x35, 0xcd, 0xcd, 0x56, 0xd8, 0x2a, 0x24, 0x37, 0x42, 0x3e, + 0x81, 0x3e, 0xc1, 0x08, 0x96, 0x53, 0x58, 0x17, 0x03, 0xd8, 0xe1, 0xa1, 0xdb, 0x7b, 0x77, 0x3c, + 0xa0, 0x97, 0xb7, 0x04, 0xd4, 0x13, 0xaa, 0xb9, 0xa8, 0x43, 0x3b, 0x6e, 0xbf, 0xf5, 0x6e, 0x40, + 0xcf, 0x21, 0x3e, 0x90, 0x0f, 0xb7, 0x97, 0x37, 0xe2, 0x89, 0x31, 0xa0, 0xf8, 0x05, 0xdf, 0x53, + 0xf1, 0x54, 0x3a, 0x3e, 0x63, 0x1b, 0x71, 0xeb, 0x1d, 0xe2, 0x3d, 0x6e, 0x0d, 0xe8, 0x99, 0xfb, + 0x90, 0xe0, 0xa0, 0x94, 0x4b, 0x28, 0xda, 0xa1, 0x48, 0x86, 0x0c, 0xb0, 0x5c, 0x3e, 0xa0, 0xaf, + 0x52, 0xf5, 0x5d, 0xcd, 0x57, 0xb5, 0xa9, 0x09, 0xe9, 0x45, 0xaf, 0xdd, 0x9d, 0x62, 0x36, 0xa1, + 0xec, 0xc2, 0x40, 0xab, 0x53, 0x81, 0x42, 0xc5, 0x25, 0xca, 0x66, 0x77, 0x78, 0x38, 0xed, 0xb5, + 0x5e, 0x5e, 0x04, 0x5b, 0x86, 0x69, 0x4e, 0xf9, 0x67, 0x03, 0x5f, 0xb6, 0x01, 0x64, 0x5a, 0x6d, + 0xe9, 0x3d, 0x77, 0xa0, 0x44, 0x3b, 0xac, 0x5d, 0x8b, 0xa0, 0x12, 0xf8, 0xc7, 0xd2, 0x09, 0xb9, + 0x2b, 0x54, 0x3b, 0xdb, 0x80, 0x42, 0x87, 0xf2, 0x60, 0x50, 0x72, 0xa7, 0xa1, 0x55, 0x55, 0xd7, + 0x90, 0x0c, 0x08, 0xcf, 0x1a, 0x4e, 0xb9, 0xac, 0x12, 0x77, 0x58, 0xf2, 0xec, 0xe5, 0xa5, 0x09, + 0x2c, 0xba, 0x9a, 0xcb, 0xad, 0xc2, 0x05, 0xab, 0x80, 0xb1, 0x3b, 0x6d, 0x3d, 0x97, 0x92, 0x98, + 0x90, 0xe4, 0x68, 0x79, 0x84, 0xbe, 0x67, 0x43, 0x52, 0xf1, 0x60, 0x72, 0x7c, 0x83, 0x5c, 0xbd, + 0x23, 0xf3, 0x03, 0x63, 0xdd, 0xc9, 0x3d, 0x5c, 0x6b, 0xde, 0x0b, 0x38, 0x5d, 0x00, 0x95, 0x1c, + 0x70, 0x21, 0x71, 0x09, 0xb6, 0x40, 0x82, 0xad, 0xe6, 0x01, 0x30, 0xc5, 0xd1, 0xdb, 0x3e, 0x47, + 0x5f, 0x94, 0x41, 0x4e, 0xdc, 0x38, 0xd0, 0x94, 0x23, 0x4f, 0x06, 0x42, 0x38, 0x9d, 0x54, 0x98, + 0x1c, 0xc5, 0xc4, 0x99, 0x01, 0x8e, 0x2a, 0x7d, 0xda, 0xb2, 0xd5, 0x3c, 0x07, 0x5b, 0x56, 0xda, + 0xd4, 0x81, 0x09, 0xf0, 0x45, 0x06, 0xff, 0x53, 0x2e, 0x95, 0x8f, 0x37, 0x45, 0xa9, 0xe8, 0x6a, + 0x91, 0xa4, 0x4d, 0x4b, 0x58, 0x7f, 0x1b, 0xb7, 0x21, 0xdd, 0x33, 0xeb, 0xfd, 0x43, 0x23, 0xfa, + 0xbf, 0x23, 0xb0, 0x69, 0x19, 0x1e, 0xe3, 0x18, 0x87, 0x36, 0x1b, 0x1c, 0x4f, 0x5b, 0x4f, 0x4c, + 0xaf, 0x2c, 0x4b, 0x49, 0xf0, 0x58, 0x5b, 0x78, 0xa0, 0x38, 0x68, 0xa1, 0x78, 0xcb, 0xc7, 0x81, + 0xb7, 0xdb, 0xf6, 0x1e, 0x19, 0xcb, 0x97, 0xde, 0x23, 0xa4, 0x67, 0x6c, 0x42, 0xa0, 0xb4, 0xc6, + 0x8a, 0xb5, 0x43, 0xef, 0x20, 0x97, 0x04, 0x6f, 0x34, 0x21, 0x4a, 0xe8, 0xc7, 0x16, 0xbe, 0x32, + 0x4e, 0xf4, 0xff, 0xfe, 0x2f, 0x35, 0xcd, 0x96, 0x26, 0xfb, 0xf1, 0x4d, 0xd8, 0x37, 0x74, 0x19, + 0xbc, 0x85, 0xd5, 0xa1, 0x6b, 0x74, 0x1c, 0x21, 0x98, 0xfd, 0x3f, 0x96, 0x0c, 0x42, 0x25, 0xf7, + 0xa4, 0x7e, 0x78, 0xea, 0xba, 0x0a, 0xad, 0x3d, 0xc1, 0x8a, 0x6a, 0x4b, 0x33, 0x4c, 0x7c, 0x69, + 0xe6, 0x5e, 0x97, 0xdc, 0xaf, 0x86, 0xe8, 0x0c, 0x37, 0xe6, 0xba, 0x39, 0x49, 0xee, 0x98, 0x82, + 0xd7, 0xca, 0x70, 0x6d, 0x61, 0xea, 0xda, 0x23, 0xb6, 0xd7, 0x00, 0x7d, 0x46, 0x26, 0xd8, 0x2a, + 0xc9, 0x67, 0x66, 0xb0, 0xab, 0x24, 0xf7, 0x4b, 0x5f, 0x25, 0x45, 0xd0, 0x19, 0x54, 0x10, 0x33, + 0x59, 0xc5, 0x60, 0x41, 0x34, 0x4b, 0x0a, 0xa2, 0x99, 0xfa, 0x8a, 0x0b, 0x80, 0x40, 0x6b, 0xf2, + 0x66, 0x43, 0xb7, 0x64, 0x70, 0x52, 0x4d, 0xcd, 0x92, 0x6a, 0x4a, 0xd0, 0x50, 0x5c, 0xf3, 0x4f, + 0x15, 0x3d, 0xaa, 0x28, 0x79, 0x9e, 0xf9, 0x0c, 0x90, 0x20, 0x44, 0x4d, 0x4d, 0x7c, 0x71, 0x3c, + 0x10, 0x4b, 0x90, 0x49, 0xda, 0xf6, 0x5d, 0x3f, 0x34, 0xe9, 0x77, 0xd3, 0xe9, 0x94, 0x76, 0xd3, + 0x1a, 0x29, 0x1d, 0xd8, 0x6c, 0x66, 0xe3, 0x8e, 0x8c, 0x5c, 0x87, 0x60, 0x1f, 0xcf, 0x49, 0x05, + 0x38, 0x4b, 0x2a, 0xc0, 0x59, 0x52, 0x01, 0xce, 0x92, 0x0a, 0x70, 0x26, 0x3b, 0x04, 0xc1, 0x56, + 0x87, 0x20, 0xc8, 0x75, 0x08, 0x70, 0x89, 0xa6, 0xe6, 0xa7, 0xcf, 0xdd, 0x5c, 0xab, 0xe0, 0x34, + 0x0c, 0xad, 0x55, 0xcd, 0x89, 0xf8, 0xdf, 0xa4, 0xc4, 0x57, 0x71, 0x91, 0x1f, 0x60, 0x91, 0x1f, + 0x7a, 0xb2, 0x95, 0x20, 0x57, 0xfa, 0x01, 0x56, 0x7a, 0x5a, 0x0b, 0x96, 0xd1, 0x5c, 0x82, 0x7e, + 0x7a, 0xf8, 0xac, 0xca, 0x02, 0x58, 0x87, 0xf2, 0x37, 0xc8, 0x97, 0xbf, 0x40, 0xc5, 0x39, 0x30, + 0xbf, 0x0a, 0xba, 0x2b, 0xe0, 0xe4, 0xb5, 0x32, 0x78, 0x95, 0x08, 0x61, 0x95, 0x08, 0x61, 0x95, + 0x08, 0x61, 0x95, 0x08, 0x61, 0x95, 0x08, 0x61, 0x95, 0x08, 0x61, 0x95, 0x08, 0x61, 0x95, 0x2b, + 0x83, 0x57, 0xa5, 0x65, 0xf0, 0x55, 0x29, 0x13, 0x6f, 0x2d, 0x83, 0xaf, 0xf6, 0x95, 0xc1, 0x42, + 0xfa, 0x5f, 0xb7, 0xa4, 0x9f, 0x3d, 0x91, 0x72, 0x4b, 0xe9, 0x64, 0xef, 0x78, 0x27, 0x66, 0xbd, + 0x9e, 0x8a, 0x86, 0x0d, 0x33, 0xfb, 0x2c, 0xd7, 0xb0, 0x09, 0x8a, 0x0d, 0x9b, 0xc1, 0xb6, 0xb2, + 0x41, 0xe0, 0xa5, 0x9d, 0xad, 0xc7, 0x3b, 0x10, 0xf4, 0x9b, 0xcd, 0x01, 0xf5, 0x43, 0xcb, 0x9b, + 0xa1, 0x13, 0xe0, 0x7a, 0xba, 0x5e, 0x33, 0x37, 0x62, 0x5c, 0x40, 0x97, 0xbb, 0x86, 0x75, 0xf3, + 0x9d, 0x75, 0x28, 0xde, 0xb2, 0xbe, 0xfa, 0x27, 0xff, 0xf3, 0xcb, 0x8b, 0x08, 0xf2, 0x6e, 0xc4, + 0x7d, 0x9b, 0x88, 0x3f, 0x0b, 0x19, 0x7f, 0xe4, 0x43, 0x70, 0x41, 0x58, 0x12, 0x41, 0x8a, 0x90, + 0xc7, 0xa4, 0x5d, 0x42, 0x38, 0x53, 0xac, 0x8c, 0xea, 0x16, 0x1e, 0x55, 0xad, 0x5e, 0xf6, 0x17, + 0x00, 0xb5, 0x30, 0xad, 0xea, 0xa5, 0xaa, 0x5d, 0xf6, 0x6d, 0xf8, 0x62, 0x9b, 0xf0, 0xf1, 0xcf, + 0x9b, 0x71, 0x0f, 0x23, 0x8f, 0xf2, 0x58, 0x85, 0xd1, 0x20, 0x6f, 0x41, 0x0b, 0xe3, 0x22, 0x36, + 0xaf, 0xcf, 0xe4, 0xae, 0xc8, 0x42, 0x3a, 0xea, 0xad, 0xe7, 0xa6, 0xf9, 0x38, 0xa0, 0x20, 0x33, + 0x85, 0x56, 0x1f, 0xab, 0x94, 0x04, 0xf3, 0x55, 0xe4, 0xd8, 0x96, 0x9b, 0x78, 0xf6, 0x85, 0x5e, + 0xa8, 0x8a, 0x62, 0x4d, 0xec, 0x49, 0xc4, 0x75, 0x2c, 0x05, 0xfe, 0x62, 0xe8, 0xb2, 0xb2, 0x9e, + 0x8c, 0xad, 0x2c, 0x9c, 0x8e, 0x2d, 0xfb, 0x61, 0x16, 0xfa, 0x4b, 0x6f, 0x62, 0x7e, 0x41, 0xb7, + 0x6c, 0x85, 0x47, 0xb3, 0xd0, 0x9a, 0x38, 0xd8, 0x89, 0x7f, 0xa7, 0x4f, 0xd8, 0x4c, 0x23, 0xdf, + 0x3f, 0x8b, 0x16, 0xc3, 0xb1, 0x3e, 0x10, 0x1f, 0xde, 0x41, 0x12, 0xcf, 0x57, 0x3c, 0xb7, 0x8a, + 0xb6, 0x6d, 0xd3, 0x35, 0xd1, 0x13, 0xe0, 0xf5, 0x0f, 0x1a, 0xf9, 0xae, 0xd5, 0x6a, 0x65, 0xdf, + 0x09, 0xd0, 0xff, 0x41, 0xfd, 0x22, 0x57, 0x84, 0x4d, 0x76, 0x55, 0x0c, 0x76, 0xff, 0xda, 0x8a, + 0xe7, 0xe8, 0x9e, 0x14, 0xee, 0x54, 0xb5, 0x13, 0x5d, 0x57, 0x5f, 0x5e, 0x04, 0xe5, 0x13, 0xbd, + 0x3c, 0x46, 0x96, 0xe0, 0x13, 0x2a, 0x98, 0x60, 0xb3, 0xbe, 0x95, 0x60, 0x33, 0xf4, 0xcd, 0x89, + 0x08, 0x6c, 0x4f, 0x50, 0x94, 0x46, 0xbe, 0x57, 0x10, 0x66, 0x46, 0xff, 0x44, 0xff, 0x01, 0x1b, + 0xf3, 0x80, 0xae, 0x86, 0x0d, 0x16, 0xb2, 0x60, 0x0b, 0x3f, 0x5c, 0xd1, 0x6a, 0xd6, 0x88, 0x19, + 0x7c, 0x21, 0x4a, 0x6f, 0xdc, 0xbf, 0xb8, 0xbb, 0xbb, 0xb9, 0xeb, 0x90, 0x5f, 0x79, 0x43, 0xc5, + 0x87, 0x98, 0x0c, 0xc2, 0xc0, 0x95, 0x58, 0x0f, 0x0f, 0x7a, 0xf5, 0x71, 0x5f, 0xfd, 0x02, 0x69, + 0xb9, 0xda, 0x01, 0x7c, 0xba, 0x68, 0xd4, 0x04, 0x00, 0x21, 0x83, 0x38, 0x0f, 0x8a, 0x73, 0x93, + 0xf3, 0x6e, 0x33, 0xc7, 0x55, 0x14, 0x40, 0x5b, 0x7d, 0xfc, 0x8b, 0x28, 0x7e, 0xd4, 0x7a, 0x1b, + 0x66, 0x51, 0x6f, 0x74, 0xe7, 0xe6, 0xbc, 0xdf, 0x1e, 0x64, 0x50, 0x73, 0xb5, 0x33, 0xef, 0x5a, + 0xa6, 0xcc, 0xf6, 0xc7, 0x3c, 0xa3, 0xdb, 0x2c, 0xbb, 0xb5, 0xa1, 0x99, 0xaf, 0xb8, 0xb2, 0xee, + 0xc6, 0xbc, 0x67, 0xd4, 0xf4, 0xc6, 0xe1, 0xe1, 0xc1, 0x18, 0xfe, 0x0d, 0x07, 0x80, 0xe6, 0x62, + 0x74, 0x4b, 0xda, 0xbf, 0x61, 0x57, 0x92, 0x3c, 0x39, 0xf1, 0x9c, 0x18, 0xa7, 0xe4, 0xd7, 0xd1, + 0x90, 0x44, 0xcb, 0x20, 0x70, 0x57, 0xb4, 0xa3, 0x58, 0x55, 0x73, 0x3c, 0xa0, 0x46, 0xe3, 0x37, + 0x42, 0x3b, 0xc3, 0x01, 0xfd, 0x38, 0x6a, 0x9c, 0x18, 0x6d, 0x22, 0xbe, 0x53, 0x18, 0x48, 0x35, + 0x80, 0x98, 0xe3, 0xff, 0xe8, 0xa9, 0x1c, 0x85, 0xfd, 0x36, 0x0f, 0x32, 0x08, 0x48, 0x4a, 0x62, + 0x9f, 0x4f, 0x9b, 0x8a, 0xe2, 0x6d, 0xb4, 0x7b, 0xb2, 0x86, 0x98, 0xad, 0x76, 0x61, 0x52, 0x85, + 0x37, 0xb3, 0xfc, 0x28, 0x26, 0x6c, 0x3a, 0x05, 0x34, 0x91, 0x46, 0xfe, 0x93, 0x76, 0x2f, 0xaa, + 0xe6, 0xc8, 0x1c, 0x15, 0x24, 0x31, 0x52, 0x3b, 0x23, 0xed, 0x82, 0x13, 0x76, 0x22, 0xc2, 0x3c, + 0x7f, 0x39, 0x9b, 0xab, 0xbd, 0x71, 0xd8, 0xcf, 0x5a, 0x46, 0x85, 0xe5, 0xb5, 0x0a, 0x9d, 0xa4, + 0xec, 0xf9, 0x10, 0xed, 0xed, 0x42, 0xbc, 0xfc, 0x2a, 0x74, 0xa2, 0xa8, 0xae, 0x27, 0x52, 0x92, + 0x97, 0xf7, 0xb2, 0x76, 0xa5, 0x89, 0x66, 0xe6, 0xb6, 0xbd, 0xac, 0x28, 0xbe, 0xf0, 0x26, 0xb2, + 0x01, 0xc8, 0x7a, 0x46, 0xd2, 0xd4, 0xd3, 0xbb, 0x8f, 0xaf, 0xf9, 0x8f, 0x11, 0x28, 0x16, 0x3b, + 0x82, 0xe8, 0x91, 0xf9, 0x90, 0xea, 0xeb, 0x7d, 0x88, 0xcd, 0x21, 0x5d, 0x51, 0xb4, 0xbf, 0xee, + 0xab, 0xb6, 0x06, 0x4a, 0x4e, 0x3d, 0x5e, 0x12, 0x79, 0xa2, 0x24, 0x82, 0xca, 0x5c, 0xd5, 0x9c, + 0xe8, 0x17, 0xeb, 0x17, 0xe5, 0x51, 0x1d, 0xe8, 0x9d, 0xc7, 0x6c, 0xaa, 0x50, 0xc8, 0xe2, 0xa2, + 0xa6, 0x5b, 0x7c, 0x62, 0x7f, 0x63, 0x83, 0xdc, 0x59, 0xb2, 0xcd, 0x03, 0xe9, 0xdd, 0xe8, 0x1e, + 0x92, 0x3b, 0xc7, 0x8c, 0xd3, 0x44, 0x6e, 0xaa, 0x1c, 0x28, 0x50, 0x81, 0x40, 0xb4, 0x72, 0xfa, + 0x98, 0x56, 0x0d, 0x5f, 0x5e, 0x8e, 0xc4, 0x77, 0x50, 0x66, 0x47, 0x4d, 0x3a, 0xda, 0xc2, 0xe1, + 0xc1, 0x5c, 0x79, 0xe4, 0x44, 0x80, 0xa4, 0x46, 0xff, 0xd2, 0x9b, 0x38, 0x8f, 0x84, 0x6f, 0x25, + 0x99, 0x1c, 0x7f, 0xff, 0x77, 0xaf, 0x37, 0x87, 0xe2, 0x17, 0xd7, 0x4d, 0xee, 0x38, 0x77, 0x1a, + 0xc7, 0x7a, 0xf0, 0x0d, 0xdf, 0x7c, 0xff, 0xec, 0x54, 0xa1, 0x1a, 0x03, 0x10, 0xd1, 0x24, 0x20, + 0x62, 0x2f, 0xf9, 0xea, 0x1e, 0x5e, 0xac, 0x29, 0x81, 0x42, 0x6e, 0x8e, 0x9e, 0xc1, 0xa4, 0xbf, + 0x5e, 0x2a, 0x71, 0x08, 0x12, 0xe1, 0xe8, 0xfc, 0x80, 0xcf, 0x56, 0x96, 0x99, 0x8d, 0x06, 0x25, + 0x62, 0x34, 0x9b, 0xf4, 0xb9, 0x15, 0x7c, 0xeb, 0xd5, 0x05, 0xc8, 0x36, 0x70, 0x53, 0xa7, 0xfd, + 0xd1, 0xdf, 0x8e, 0x4f, 0x8c, 0x06, 0xb9, 0xfb, 0x30, 0xfc, 0xb8, 0x07, 0xd0, 0xa0, 0xfd, 0xfb, + 0x6b, 0xe3, 0xc4, 0x68, 0xed, 0x86, 0x69, 0xb4, 0x28, 0x14, 0x8a, 0xfa, 0xc3, 0xcf, 0xff, 0xb1, + 0x1b, 0xa6, 0x0d, 0x04, 0x91, 0x29, 0xdd, 0xd8, 0x03, 0x03, 0xb4, 0x4e, 0x6f, 0x4f, 0x0d, 0xbd, + 0xb1, 0x07, 0xa6, 0x41, 0xfb, 0x57, 0xb7, 0xe7, 0x27, 0x27, 0xfa, 0xf1, 0x1e, 0xa0, 0x26, 0xed, + 0xdf, 0xbe, 0x3b, 0x31, 0x9a, 0xbb, 0x41, 0x5a, 0xc0, 0xcf, 0x8d, 0x57, 0xbf, 0x99, 0x4e, 0xf7, + 0xc0, 0x00, 0x3f, 0xb7, 0x1f, 0xaf, 0xc9, 0xc7, 0xb9, 0x13, 0xb3, 0x3d, 0x60, 0x0d, 0x01, 0x76, + 0x76, 0x76, 0xbf, 0x07, 0xa8, 0x29, 0x80, 0x40, 0xda, 0x7b, 0x80, 0x5a, 0x29, 0xd0, 0x9e, 0x25, + 0x69, 0xb5, 0x53, 0xa8, 0x6a, 0x91, 0xe6, 0xef, 0xdf, 0x9a, 0xf6, 0xc1, 0xd1, 0xd1, 0x06, 0xf8, + 0x71, 0x06, 0x7e, 0x9e, 0x83, 0x3f, 0x3a, 0x02, 0x70, 0xb6, 0x85, 0xfd, 0x04, 0x04, 0x73, 0x7e, + 0x7e, 0x8b, 0xe0, 0x44, 0xf1, 0x58, 0xfc, 0xe4, 0x87, 0x0f, 0xea, 0x6b, 0x34, 0x4e, 0x40, 0x52, + 0x17, 0x46, 0xad, 0x69, 0x94, 0x0f, 0x4b, 0x48, 0x95, 0x8f, 0x05, 0xf1, 0x9d, 0x86, 0xf1, 0x2f, + 0x2c, 0xde, 0x3f, 0xb8, 0x57, 0x17, 0xda, 0xdd, 0x47, 0x07, 0x0a, 0x5f, 0xd1, 0xbe, 0x9c, 0x89, + 0x49, 0x6d, 0x5f, 0x18, 0x89, 0xb4, 0x2c, 0xe9, 0x12, 0x3b, 0x32, 0x40, 0xf7, 0xcf, 0x30, 0x02, + 0x93, 0x9b, 0x70, 0xc2, 0xc2, 0x2d, 0xfb, 0x3a, 0xbb, 0xe1, 0x43, 0xb7, 0x45, 0x0c, 0x32, 0xf8, + 0x70, 0xb7, 0x67, 0xa1, 0x60, 0xba, 0x7b, 0x17, 0x12, 0xa6, 0x34, 0xbc, 0xfb, 0xb0, 0xc7, 0xaa, + 0x60, 0xfc, 0x70, 0xcf, 0x7b, 0xd0, 0x83, 0xe1, 0x87, 0xbb, 0x3d, 0x0a, 0x0e, 0xfc, 0x0d, 0x0b, + 0xef, 0x53, 0xe1, 0xd4, 0x41, 0x2e, 0x79, 0xf1, 0x40, 0xc1, 0x8f, 0x93, 0x7c, 0xda, 0x12, 0x10, + 0x0f, 0x0f, 0xfd, 0xd1, 0x93, 0x15, 0x74, 0x48, 0x51, 0x2c, 0x1f, 0xa5, 0x58, 0xb6, 0x85, 0xf2, + 0x0b, 0x8c, 0x49, 0xa9, 0x6e, 0xcb, 0xe4, 0x23, 0x39, 0x24, 0xc3, 0x5d, 0xef, 0x1b, 0xe2, 0xfd, + 0x87, 0x5d, 0xef, 0x9b, 0xe2, 0x7d, 0x36, 0xab, 0xd2, 0x39, 0xe1, 0x9f, 0x28, 0xb0, 0x3c, 0x3e, + 0xb7, 0x20, 0x9a, 0x08, 0x4e, 0x45, 0x97, 0x00, 0x06, 0xc0, 0x9b, 0x3e, 0xe9, 0x89, 0x4d, 0x4b, + 0x3c, 0x90, 0x61, 0x52, 0x6f, 0xb9, 0x18, 0xb3, 0x90, 0x26, 0x1e, 0x75, 0x24, 0x94, 0x05, 0x47, + 0xbb, 0x91, 0xf8, 0x2c, 0x9d, 0xb4, 0x4b, 0x44, 0x32, 0x4f, 0x09, 0x16, 0xa5, 0x30, 0x5b, 0x4c, + 0xae, 0x50, 0xb5, 0xdf, 0x19, 0x34, 0xe1, 0xf1, 0xfb, 0xe7, 0x24, 0x8a, 0x3a, 0x2a, 0xf7, 0xcb, + 0x9c, 0x92, 0x49, 0xf3, 0x65, 0x00, 0x22, 0xfd, 0x6c, 0xa2, 0x97, 0xee, 0x62, 0x2b, 0xbf, 0x4b, + 0x49, 0xd2, 0x15, 0x24, 0xf5, 0xfe, 0xa1, 0x37, 0x8e, 0x82, 0xee, 0xf6, 0xf2, 0xd8, 0x3b, 0xf5, + 0xf7, 0x8a, 0x47, 0xa4, 0xce, 0xde, 0x49, 0x9d, 0x15, 0x27, 0x22, 0x67, 0x60, 0xc8, 0x19, 0xf0, + 0x7c, 0xef, 0x76, 0xb8, 0xa6, 0xd9, 0x4a, 0x65, 0x2c, 0xa5, 0x53, 0x40, 0x5e, 0x29, 0x70, 0x28, + 0x84, 0x2d, 0x6d, 0xac, 0xbe, 0x25, 0x71, 0x5d, 0x4a, 0x9c, 0xb7, 0x74, 0xdf, 0x22, 0x70, 0x5d, + 0xf0, 0x56, 0x90, 0x69, 0xb3, 0x99, 0xe3, 0x40, 0x72, 0x1d, 0x6d, 0x84, 0x39, 0x95, 0xd6, 0x8b, + 0x94, 0x0d, 0x49, 0x59, 0x12, 0xdd, 0x47, 0xd3, 0xd8, 0x41, 0xf3, 0xad, 0xa4, 0x1a, 0x6f, 0x27, + 0xd5, 0xf8, 0x17, 0x49, 0x35, 0xdf, 0x4e, 0xaa, 0xf9, 0x2f, 0x92, 0x6a, 0xbd, 0x9d, 0x54, 0xeb, + 0x9f, 0x22, 0xb5, 0xa1, 0xd3, 0xe1, 0x4e, 0x9d, 0x46, 0xed, 0xca, 0x18, 0x83, 0xf4, 0x5a, 0x30, + 0x96, 0xb4, 0x0c, 0x25, 0x83, 0x1b, 0x3a, 0xcf, 0xdb, 0xe3, 0x63, 0xff, 0x5b, 0xc2, 0xe4, 0xd9, + 0x6f, 0xc9, 0x74, 0xca, 0x3d, 0x5e, 0xb4, 0x97, 0xfc, 0xe8, 0xc1, 0x09, 0xc8, 0xd4, 0x09, 0x21, + 0x89, 0xc7, 0x54, 0x71, 0xaf, 0x7d, 0x8d, 0xae, 0x4a, 0xc4, 0x01, 0xe5, 0x0b, 0xdd, 0xb0, 0x9e, + 0x9d, 0xac, 0x4c, 0xf7, 0xb2, 0x02, 0x39, 0x08, 0xb9, 0x63, 0xd3, 0x90, 0x45, 0x99, 0x99, 0x73, + 0xb9, 0x4c, 0x05, 0xd9, 0xf2, 0xe9, 0xdf, 0xbd, 0xdf, 0x3f, 0x7d, 0x6b, 0x2f, 0xcd, 0xd3, 0x65, + 0xec, 0x1f, 0x41, 0xd1, 0x6e, 0x2f, 0x5d, 0x2b, 0x66, 0xe4, 0x09, 0x33, 0x1c, 0x3c, 0x51, 0x09, + 0x25, 0x87, 0x4b, 0xa6, 0xa1, 0xbf, 0xc0, 0x58, 0xdc, 0x11, 0xeb, 0x94, 0x0f, 0x0d, 0xa7, 0x1f, + 0xcb, 0x42, 0x83, 0xbe, 0x2f, 0x30, 0x18, 0xfd, 0x61, 0xe8, 0xcc, 0xe6, 0x31, 0x0b, 0x77, 0x00, + 0x34, 0xfa, 0xa7, 0xb6, 0x8d, 0x67, 0xcb, 0x76, 0x61, 0x68, 0xf6, 0xcf, 0x97, 0x96, 0xbb, 0x1d, + 0x17, 0x84, 0x33, 0x4d, 0x05, 0xc0, 0xff, 0x7e, 0xe9, 0x5a, 0x50, 0x38, 0x45, 0x2c, 0x8c, 0x4f, + 0x27, 0x5f, 0x2d, 0x1b, 0x52, 0x7d, 0xac, 0xa0, 0x14, 0x3a, 0x66, 0x50, 0xb4, 0x31, 0xe6, 0x4d, + 0xa8, 0xe6, 0xab, 0x6b, 0x99, 0xcb, 0x2b, 0xf1, 0xa7, 0xa3, 0x23, 0xe7, 0x73, 0x2d, 0x84, 0xe2, + 0xf9, 0x91, 0x29, 0xaa, 0x06, 0xdf, 0x64, 0xb7, 0xa6, 0xba, 0x55, 0x63, 0x39, 0x3d, 0xac, 0x03, + 0x8e, 0x8c, 0xf2, 0xda, 0xff, 0x68, 0x1b, 0xbe, 0xbf, 0xdd, 0x26, 0xf0, 0x5e, 0x5e, 0xf8, 0xf6, + 0x6e, 0xa1, 0x54, 0x39, 0xbb, 0xb9, 0x56, 0x40, 0x86, 0x50, 0xab, 0xf0, 0xdd, 0x4c, 0x51, 0x41, + 0x38, 0x7b, 0xca, 0x15, 0xdb, 0x5f, 0xfc, 0x01, 0x0f, 0xa1, 0xdc, 0x57, 0x0b, 0x05, 0x0b, 0x94, + 0x2a, 0xd8, 0x19, 0x93, 0xb5, 0x49, 0xa1, 0x02, 0xc9, 0x86, 0xbc, 0xa5, 0x0e, 0x21, 0x22, 0x9e, + 0xee, 0xb3, 0x89, 0xbf, 0xe7, 0x02, 0xe9, 0xb7, 0x37, 0x05, 0xd2, 0xe3, 0x76, 0xbb, 0xd9, 0xce, + 0x45, 0x52, 0xb6, 0xde, 0xb0, 0x9f, 0x5c, 0xa4, 0x34, 0x29, 0x4d, 0x43, 0xe5, 0x1b, 0x02, 0xe0, + 0xdf, 0xcf, 0x72, 0xcc, 0xd8, 0x7b, 0x83, 0xe1, 0x26, 0x17, 0xde, 0xba, 0x40, 0x75, 0xd3, 0xa2, + 0xa5, 0x5d, 0xfd, 0xa9, 0xdc, 0x92, 0x73, 0x21, 0x93, 0x52, 0xc9, 0xdf, 0xff, 0xbf, 0x3c, 0x33, + 0xb1, 0x37, 0xee, 0x22, 0xa4, 0xe5, 0xc9, 0xcd, 0x41, 0xa1, 0x69, 0x0e, 0x8b, 0x78, 0x0f, 0x63, + 0xaf, 0x29, 0x5a, 0xd2, 0xda, 0xbe, 0xf9, 0xb4, 0xea, 0x24, 0x0d, 0xd3, 0x58, 0x1b, 0xc7, 0x1e, 0x1a, 0x05, 0xe8, 0xa2, 0x3c, 0x0e, 0x91, 0xd9, 0x0b, 0x98, 0x2a, 0xbe, 0xda, 0x71, 0x6e, 0xb2, - 0xdc, 0x48, 0xc0, 0xb2, 0xd2, 0xe3, 0x68, 0xfa, 0x81, 0x89, 0x3b, 0x5d, 0x0a, 0xfb, 0xec, 0x1d, + 0xdc, 0x48, 0xc0, 0xb2, 0xd2, 0xe3, 0x68, 0xfa, 0x81, 0x89, 0x3b, 0x5d, 0x0a, 0xfb, 0xe4, 0x1d, 0x19, 0x39, 0xcb, 0x97, 0x24, 0xe1, 0xa1, 0x20, 0xa9, 0xe6, 0x49, 0x46, 0x2c, 0xe6, 0x46, 0xaa, 0x3e, 0xa3, 0xd3, 0xd8, 0x38, 0x3c, 0xcd, 0x44, 0xdf, 0x1f, 0x0f, 0x67, 0x30, 0x6c, 0xc9, 0xbd, 0x89, 0x25, 0x95, 0xa5, 0xa4, 0xbb, 0x92, 0x74, 0xe1, 0x50, 0xa9, 0x78, 0x04, 0x04, 0x53, 0x99, @@ -504,198 +504,199 @@ const uint8_t PAGE_settings_leds[] PROGMEM = { 0xbd, 0xed, 0xa0, 0x0a, 0x7e, 0x69, 0x18, 0x7b, 0xe2, 0x54, 0x6b, 0xe2, 0x91, 0x38, 0x36, 0x60, 0x2d, 0xca, 0x37, 0xa7, 0x34, 0xcb, 0xc4, 0xed, 0x87, 0xea, 0x88, 0xef, 0x21, 0xd4, 0x30, 0x76, 0x9c, 0xcd, 0xad, 0xf0, 0xcc, 0x9f, 0x30, 0x05, 0xbb, 0x4c, 0xfa, 0xa0, 0x75, 0xd2, 0x69, 0xb7, - 0xd5, 0x2a, 0xc8, 0xc9, 0xa9, 0x9a, 0x5f, 0x87, 0xcb, 0x38, 0xf6, 0xf9, 0x01, 0xb7, 0xb5, 0x38, + 0xd5, 0x2a, 0xc8, 0xc9, 0xa9, 0x9a, 0x5f, 0x86, 0xcb, 0x38, 0xf6, 0xf9, 0x01, 0xb7, 0xb5, 0x38, 0x17, 0x50, 0x6e, 0xd8, 0xdc, 0x68, 0x8f, 0x12, 0xab, 0x85, 0x6a, 0x5d, 0x9a, 0xd2, 0xf7, 0xcf, - 0xd6, 0x7a, 0x2b, 0xfb, 0x48, 0x8c, 0xfd, 0x29, 0x2a, 0x5a, 0x76, 0xff, 0xab, 0x86, 0x24, 0x65, - 0x9c, 0x28, 0x04, 0xb2, 0xef, 0x9f, 0xe9, 0xf0, 0xfc, 0x4d, 0x5c, 0xa7, 0x68, 0xb6, 0x6c, 0x17, - 0x26, 0xa1, 0x9b, 0x66, 0x3c, 0xa0, 0x49, 0xdb, 0x05, 0x8f, 0x38, 0xac, 0xfb, 0xef, 0x65, 0x87, - 0x3f, 0x35, 0x9b, 0xd2, 0xe1, 0x0d, 0x1c, 0xde, 0x28, 0x19, 0x7e, 0xb3, 0x8c, 0xe6, 0x63, 0x2e, + 0xd6, 0x7a, 0x2b, 0xfb, 0x48, 0x8c, 0xfd, 0x5b, 0x54, 0xb4, 0xec, 0xfe, 0x17, 0x0d, 0x49, 0xca, + 0x38, 0x51, 0x08, 0x64, 0xdf, 0x3f, 0xd3, 0xe1, 0xc5, 0x9b, 0xb8, 0x4e, 0xd1, 0x6c, 0xd9, 0x2e, + 0x4c, 0x42, 0x37, 0xcd, 0x78, 0x40, 0x93, 0xb6, 0x0b, 0x1e, 0x71, 0x58, 0xf7, 0xcf, 0x65, 0x87, + 0x3f, 0x35, 0x9b, 0xd2, 0xe1, 0x0d, 0x1c, 0xde, 0x28, 0x19, 0x7e, 0xbb, 0x8c, 0xe6, 0x63, 0x2e, 0xa4, 0xfd, 0x08, 0x9a, 0x88, 0xa0, 0xb9, 0x03, 0x01, 0x71, 0xe4, 0x86, 0xec, 0x7e, 0x1c, 0x2d, 0xc4, 0xd1, 0x2a, 0xc1, 0x31, 0xe2, 0x87, 0xc1, 0xf6, 0x0f, 0x6e, 0xe3, 0xe0, 0x76, 0x19, 0x03, - 0x17, 0xb7, 0x24, 0x62, 0x5e, 0xe4, 0x87, 0xfb, 0x11, 0x1c, 0x23, 0x82, 0xe3, 0x12, 0x04, 0x77, + 0x97, 0x77, 0x24, 0x62, 0x5e, 0xe4, 0x87, 0xfb, 0x11, 0x1c, 0x23, 0x82, 0xe3, 0x12, 0x04, 0xf7, 0xfe, 0xf2, 0x35, 0xe2, 0x3f, 0xe1, 0xd8, 0x9f, 0x4a, 0xc6, 0x9e, 0x7a, 0x96, 0xeb, 0xcf, 0xf6, 0x0f, 0x3e, 0xc1, 0xc1, 0x27, 0x3b, 0x07, 0xef, 0x10, 0x1e, 0x4d, 0x9d, 0x1f, 0x15, 0x48, 0x79, 0x06, 0x2b, 0x43, 0x03, 0x24, 0x30, 0x30, 0xdf, 0x0e, 0x09, 0x7c, 0xc7, 0x83, 0x54, 0xa7, 0xcb, 0x75, 0x94, 0x9f, 0xbe, 0xa0, 0x78, 0x45, 0xe1, 0x47, 0xd4, 0xdb, 0x1f, 0xd5, 0x24, 0xaa, 0x1d, - 0x7e, 0xf7, 0xd4, 0xf8, 0xc9, 0x68, 0x77, 0x93, 0x54, 0x1c, 0x9c, 0xa8, 0xdc, 0x93, 0xd8, 0x34, - 0xaf, 0xfc, 0x99, 0xf1, 0x78, 0xe6, 0x8e, 0x1c, 0x74, 0x0a, 0x4a, 0xe1, 0x7a, 0x07, 0x53, 0x5f, - 0x5e, 0x94, 0xe2, 0x05, 0x8f, 0xcd, 0x53, 0x64, 0xe9, 0x65, 0x81, 0x67, 0x74, 0x55, 0xc2, 0x75, - 0x1e, 0x18, 0x98, 0x71, 0x74, 0x21, 0xc0, 0xed, 0xef, 0x8b, 0x26, 0x9e, 0xd3, 0xc3, 0xcd, 0xed, - 0xed, 0xfd, 0x29, 0xee, 0x32, 0xd5, 0x3f, 0xd1, 0x14, 0xf6, 0x8a, 0xbd, 0xdd, 0x83, 0x92, 0x3d, - 0x2f, 0x2f, 0xc1, 0x87, 0x8e, 0x1a, 0x4f, 0x1f, 0xe6, 0xeb, 0x6b, 0xef, 0x0b, 0xf6, 0x74, 0xe5, - 0xa6, 0x55, 0xa4, 0x53, 0x00, 0xd2, 0xb7, 0x91, 0xe0, 0x26, 0xd4, 0x6e, 0x1c, 0x3a, 0xc7, 0x21, - 0x24, 0x1e, 0x39, 0xb9, 0xe3, 0x89, 0x4c, 0x4b, 0x84, 0x9c, 0x09, 0x6f, 0x19, 0xe0, 0x0d, 0x89, - 0x0f, 0x8e, 0x8b, 0x57, 0x4a, 0xe4, 0xc1, 0x33, 0x8f, 0x3d, 0x92, 0xbf, 0x5f, 0x5d, 0xfe, 0x1c, - 0xc7, 0xc1, 0x2d, 0x64, 0x0f, 0x2c, 0x8a, 0xbb, 0xde, 0xee, 0x6b, 0x1b, 0xb9, 0x53, 0x36, 0xd9, - 0x45, 0x88, 0x78, 0xee, 0xe0, 0x81, 0xa1, 0x28, 0xf0, 0x21, 0x46, 0xde, 0xb1, 0xa7, 0x58, 0xe3, - 0x4f, 0x80, 0xcd, 0x78, 0x19, 0xe1, 0x59, 0x08, 0x98, 0xa4, 0x0a, 0xb1, 0x6b, 0xf7, 0x95, 0x8e, - 0x0c, 0x2f, 0xcb, 0x23, 0xc6, 0x43, 0xba, 0x96, 0x7d, 0xaf, 0x1d, 0x24, 0x08, 0xc4, 0x8d, 0x9b, - 0x9b, 0x6b, 0x58, 0x4d, 0x8d, 0xd6, 0xc5, 0x74, 0xe4, 0x86, 0x47, 0xcc, 0x67, 0xf2, 0xc1, 0x0f, - 0x17, 0x78, 0xd8, 0x2b, 0x3d, 0x2c, 0x28, 0xaf, 0xa4, 0x28, 0x14, 0x8f, 0x08, 0xcb, 0x33, 0xab, - 0xfc, 0xb4, 0x30, 0xde, 0x11, 0x89, 0x40, 0x7c, 0x78, 0x4d, 0xc4, 0xab, 0x45, 0x08, 0x13, 0xab, - 0x5a, 0xc9, 0x69, 0xe2, 0x83, 0x8d, 0x0b, 0x37, 0x67, 0xd3, 0x59, 0x2a, 0x3d, 0x2d, 0xee, 0xd2, - 0xe4, 0x25, 0x05, 0x2b, 0x04, 0xc7, 0x0f, 0x71, 0x53, 0x5e, 0x0f, 0x42, 0x39, 0xdf, 0x32, 0x0b, - 0x52, 0xaa, 0x01, 0xcc, 0x84, 0xd3, 0x1b, 0xb0, 0x94, 0xee, 0x40, 0xc1, 0x58, 0x9e, 0x72, 0xa1, - 0x48, 0xfe, 0xd3, 0x31, 0x78, 0xe8, 0x09, 0xc9, 0x99, 0x79, 0xd1, 0x60, 0x68, 0xc6, 0x61, 0xa0, - 0x00, 0xa0, 0x94, 0x28, 0xf3, 0xa5, 0x1b, 0xcb, 0xe9, 0xf3, 0xa3, 0xfd, 0x5c, 0x79, 0x14, 0x8f, - 0x37, 0xf1, 0xe3, 0xda, 0xfc, 0x91, 0xef, 0x90, 0xe0, 0x07, 0xd0, 0xfd, 0x49, 0x66, 0x33, 0xe2, - 0xb4, 0x87, 0xa1, 0xf3, 0x73, 0x1e, 0xc9, 0x1e, 0x03, 0x68, 0x73, 0x37, 0x01, 0xc5, 0x74, 0xa7, - 0x06, 0xd0, 0xe7, 0x96, 0x3d, 0x57, 0x64, 0xec, 0x34, 0xfb, 0xcf, 0x09, 0xa8, 0x21, 0x32, 0x85, - 0x0c, 0x15, 0xab, 0x05, 0x8e, 0x97, 0x3f, 0x3c, 0x52, 0x66, 0x35, 0x5f, 0x79, 0xf5, 0x89, 0xf1, - 0xec, 0x6b, 0xee, 0x54, 0x13, 0x1f, 0xfa, 0xd9, 0xf9, 0xd2, 0xdd, 0xb9, 0x89, 0xe2, 0x15, 0xa0, - 0x51, 0xc8, 0xda, 0xce, 0xcd, 0x9d, 0x22, 0x2c, 0xb7, 0x14, 0xed, 0x2d, 0xc7, 0x4b, 0x45, 0x5e, - 0x55, 0x0e, 0x7a, 0x76, 0xbd, 0x09, 0xea, 0x63, 0xa2, 0xac, 0xbd, 0xe5, 0xf4, 0x29, 0x32, 0x01, - 0x05, 0x7a, 0x39, 0xec, 0xed, 0x87, 0x04, 0x36, 0xb5, 0x5a, 0x58, 0xd3, 0xe9, 0x0e, 0x2e, 0x7e, - 0x2b, 0x03, 0x7e, 0x58, 0xab, 0xeb, 0x64, 0x89, 0x21, 0x3d, 0x02, 0x17, 0x91, 0x26, 0x79, 0x78, - 0x8b, 0x48, 0x3c, 0x4d, 0x57, 0x92, 0x89, 0x35, 0xe4, 0x19, 0x99, 0x14, 0x8e, 0x98, 0xb7, 0x9c, - 0x12, 0x37, 0x33, 0x3e, 0x0a, 0xbc, 0x77, 0x52, 0x7e, 0x25, 0xdf, 0xbb, 0xc5, 0x83, 0x25, 0xbc, - 0x3a, 0x55, 0x93, 0xd3, 0x80, 0x5b, 0xde, 0x9e, 0xe2, 0x49, 0xf7, 0xdd, 0x6a, 0x84, 0x29, 0x19, - 0x92, 0xc5, 0xb5, 0x47, 0x23, 0xe4, 0xcb, 0x8a, 0x97, 0x92, 0x4a, 0xe7, 0x7e, 0x77, 0x47, 0x73, - 0x22, 0xb5, 0x6a, 0x71, 0xbc, 0xe6, 0x5c, 0x39, 0xe1, 0xae, 0xb3, 0x73, 0x17, 0xb7, 0xf9, 0x11, - 0x12, 0x18, 0xa9, 0x95, 0x13, 0xb8, 0xb8, 0x2b, 0x03, 0xe7, 0x3c, 0x09, 0x79, 0x84, 0x0c, 0x12, - 0xcd, 0x5d, 0xc4, 0x6e, 0x2f, 0xb7, 0x46, 0x73, 0xf8, 0xdd, 0xf4, 0x6e, 0xaf, 0x68, 0x61, 0x29, - 0x73, 0x63, 0x20, 0x64, 0x27, 0xb5, 0x82, 0x86, 0x26, 0x6e, 0x4d, 0x4e, 0x23, 0x74, 0xaa, 0x60, - 0xd5, 0x6a, 0x47, 0xde, 0x6f, 0xb9, 0x71, 0x19, 0x1e, 0x03, 0x97, 0x79, 0xa0, 0x45, 0xd0, 0xf6, - 0xf9, 0xad, 0x37, 0xd1, 0x08, 0x3a, 0xa0, 0x29, 0xe4, 0x1d, 0x78, 0x62, 0x32, 0x0e, 0xfd, 0x47, - 0xa8, 0x5e, 0xc8, 0xc4, 0x67, 0x11, 0xde, 0xf3, 0xc1, 0xbd, 0x63, 0x3f, 0x84, 0x44, 0x75, 0xce, - 0xc8, 0x57, 0xee, 0x82, 0xbe, 0x92, 0x20, 0x04, 0xe7, 0x0a, 0x11, 0x05, 0x13, 0x7f, 0x8e, 0x89, - 0xe7, 0xb2, 0x11, 0xbf, 0x2b, 0x93, 0x9d, 0xff, 0xcc, 0xd0, 0x32, 0x01, 0x75, 0x7a, 0x73, 0x41, - 0x9c, 0x3c, 0x52, 0xde, 0x89, 0x25, 0x71, 0x9e, 0xec, 0x0a, 0x5c, 0x55, 0xfe, 0x52, 0xe4, 0x08, - 0xa2, 0x07, 0xc5, 0xd1, 0x1d, 0xf0, 0x99, 0xd2, 0x59, 0xba, 0xbe, 0xcd, 0xaf, 0x61, 0xd4, 0x80, - 0x8f, 0xd8, 0xb7, 0x7d, 0x3c, 0x14, 0xc9, 0xaf, 0x72, 0xea, 0x9a, 0xc2, 0xaf, 0x95, 0x9a, 0x08, - 0xe1, 0x8e, 0x62, 0x3f, 0xb4, 0x66, 0x0c, 0x45, 0x7a, 0x11, 0xb3, 0x05, 0xc6, 0x25, 0xfb, 0x22, - 0x80, 0x2a, 0x04, 0x12, 0x07, 0x01, 0x06, 0xe3, 0x17, 0x01, 0x70, 0x88, 0x9e, 0x94, 0x5c, 0x41, - 0x16, 0x5c, 0x23, 0x52, 0x5a, 0x0c, 0xd3, 0x19, 0xf2, 0x09, 0xcf, 0x18, 0x5c, 0xdc, 0x80, 0x88, - 0xb4, 0x02, 0xc6, 0xa8, 0x88, 0x51, 0xe3, 0xd8, 0x54, 0x15, 0xa1, 0xf8, 0x25, 0x4b, 0x44, 0x3f, - 0xe0, 0x97, 0x47, 0x3b, 0xf5, 0x3a, 0xad, 0xf2, 0xd7, 0x78, 0xe0, 0xa0, 0x9a, 0x5d, 0x00, 0xad, - 0x47, 0xb5, 0x6f, 0xd1, 0x20, 0x30, 0x1b, 0x18, 0x34, 0xd4, 0x75, 0x05, 0x72, 0x22, 0x71, 0x39, - 0xb6, 0xc7, 0x53, 0xab, 0xfe, 0xbf, 0x39, 0x0b, 0x2e, 0xf6, 0x65, 0xe8, 0x42, 0xb0, 0x16, 0xa7, - 0x2a, 0x22, 0xdc, 0xb0, 0x07, 0x40, 0x0e, 0xd0, 0xab, 0x8b, 0x5b, 0xc1, 0x78, 0x97, 0x92, 0x48, - 0xf7, 0x4f, 0x47, 0xbc, 0x1f, 0x07, 0x46, 0xb4, 0xa8, 0xf0, 0x82, 0x1c, 0x3f, 0xfd, 0x11, 0xa5, - 0x1d, 0xbd, 0x29, 0x14, 0x16, 0x2c, 0x9e, 0xfb, 0xd8, 0x17, 0xf5, 0x23, 0xbc, 0xac, 0x9b, 0x6b, - 0x96, 0xc4, 0x3e, 0x88, 0xe3, 0xb1, 0xf8, 0x6c, 0xce, 0xdc, 0x60, 0x48, 0xfb, 0x95, 0x9e, 0x48, - 0xcd, 0x65, 0xb5, 0x22, 0xbe, 0xe4, 0x72, 0xbd, 0x9f, 0x91, 0xec, 0xa0, 0x57, 0x17, 0x2f, 0xd2, - 0x66, 0x7a, 0xd9, 0x98, 0x4a, 0x3a, 0x68, 0x88, 0x83, 0x86, 0x10, 0xb2, 0xb3, 0x71, 0x85, 0x11, - 0xf2, 0x92, 0x40, 0x7f, 0x64, 0x3d, 0xb0, 0x0c, 0x64, 0x9e, 0x14, 0xde, 0xbd, 0x79, 0xa3, 0x5f, - 0xc1, 0xf5, 0x39, 0xb4, 0x16, 0x41, 0x97, 0xfc, 0x6c, 0x85, 0x78, 0x0c, 0x05, 0xf5, 0x3c, 0x5e, - 0x06, 0x20, 0x9c, 0x06, 0xe4, 0xd3, 0xb1, 0xe5, 0x26, 0x7d, 0xce, 0xb4, 0xef, 0xea, 0xda, 0x9c, - 0x55, 0xd9, 0xc2, 0xcf, 0xfa, 0xc4, 0x36, 0x4e, 0x33, 0x4b, 0x4c, 0x7b, 0x4e, 0xff, 0x96, 0x81, - 0x3b, 0x04, 0x4b, 0x9c, 0x80, 0x9a, 0x06, 0xfe, 0x23, 0xe8, 0x83, 0x3c, 0x47, 0x81, 0x07, 0x21, - 0xc6, 0xa2, 0xbb, 0x17, 0xc5, 0xa2, 0x8b, 0xd8, 0xe9, 0xd5, 0x1d, 0x31, 0x6e, 0x2c, 0x7b, 0xbc, - 0x15, 0xb1, 0x55, 0xb3, 0xcc, 0xa8, 0xe1, 0xc1, 0x93, 0x62, 0x0f, 0x98, 0x1f, 0x79, 0x90, 0xcd, - 0x84, 0x94, 0x72, 0xe5, 0xdc, 0xc3, 0x42, 0x8a, 0x58, 0x4b, 0x48, 0x76, 0x41, 0xcf, 0x6d, 0x49, - 0xcb, 0x63, 0x51, 0x44, 0x5c, 0xbc, 0x76, 0xc9, 0xc2, 0x57, 0x9a, 0xc4, 0xa7, 0x43, 0x26, 0x45, - 0x2d, 0xeb, 0x45, 0x79, 0xf9, 0x44, 0xf4, 0x8a, 0xf8, 0xdd, 0x14, 0x41, 0x35, 0xe9, 0x9e, 0xe2, - 0x85, 0x9f, 0xfe, 0x95, 0xb8, 0xec, 0x4d, 0xce, 0x96, 0x61, 0x08, 0xfa, 0x9f, 0xd2, 0x90, 0x57, - 0xbc, 0xaf, 0x4e, 0xe9, 0x46, 0xb5, 0xba, 0xd1, 0x6c, 0x6a, 0xb4, 0xb3, 0xa6, 0x97, 0xae, 0xeb, - 0x9b, 0x5d, 0xa5, 0xb4, 0xe1, 0xd4, 0xaf, 0x90, 0xc5, 0x69, 0x91, 0x7c, 0x76, 0x89, 0x21, 0xad, - 0x2c, 0xb0, 0xc9, 0xd4, 0x11, 0x47, 0x83, 0xba, 0xc5, 0xcd, 0xbb, 0xca, 0xe1, 0x77, 0xef, 0x4e, - 0x4e, 0x4e, 0xba, 0xe4, 0xdf, 0xfd, 0x65, 0x58, 0x5c, 0x19, 0xd0, 0xe0, 0x07, 0x6c, 0x09, 0x90, - 0x39, 0x48, 0x8c, 0xd8, 0x62, 0x22, 0x35, 0x2e, 0xd5, 0x3b, 0x9f, 0x80, 0x49, 0xc1, 0x7b, 0xc6, - 0x5d, 0x59, 0x64, 0x4d, 0x99, 0x70, 0x60, 0x2b, 0xc4, 0xc2, 0xb5, 0x46, 0x43, 0xc0, 0x40, 0x38, - 0x80, 0x65, 0x84, 0x70, 0xa0, 0xa8, 0xc4, 0x46, 0x79, 0x45, 0xfc, 0x5d, 0x65, 0x01, 0x29, 0x94, - 0x03, 0x10, 0x92, 0xaa, 0xe3, 0x7d, 0x63, 0xf2, 0x62, 0x2b, 0x16, 0x40, 0x11, 0xb1, 0xbc, 0x09, - 0x78, 0xd8, 0x29, 0x0c, 0x3e, 0xc8, 0x5a, 0x44, 0xa0, 0x4a, 0x95, 0xd3, 0x64, 0x31, 0x2d, 0x17, - 0xd8, 0xe4, 0xab, 0x18, 0xe5, 0xd7, 0x35, 0xf6, 0xb1, 0x7d, 0xb8, 0x02, 0x91, 0xfa, 0x11, 0xbf, - 0x2f, 0x86, 0x3c, 0x72, 0x30, 0xc1, 0xfd, 0xdf, 0x18, 0x0b, 0x88, 0x15, 0x93, 0x43, 0x48, 0xe1, - 0x8c, 0x53, 0xe2, 0x4c, 0x05, 0x07, 0x78, 0xba, 0x89, 0x9f, 0x5f, 0x9a, 0x80, 0x60, 0xed, 0x18, - 0x75, 0x13, 0xbb, 0xd8, 0x38, 0x38, 0x3b, 0x40, 0xc4, 0x59, 0xa9, 0x5c, 0xf0, 0x99, 0xf2, 0xdb, - 0x8d, 0xe9, 0x35, 0x33, 0x88, 0x14, 0x2c, 0x84, 0xe2, 0xaf, 0x20, 0x44, 0x4d, 0x3a, 0x3f, 0xe4, - 0x10, 0xaf, 0x3e, 0x7b, 0x33, 0xc1, 0x82, 0x22, 0xf5, 0x82, 0x80, 0xd2, 0xe3, 0x45, 0x63, 0xb0, - 0x8a, 0x65, 0x04, 0xde, 0x30, 0x31, 0x2e, 0xa9, 0x0d, 0x01, 0xfa, 0x90, 0xa5, 0x77, 0xef, 0xf9, - 0x8f, 0x9e, 0xd4, 0x6a, 0x35, 0x33, 0x8e, 0x50, 0xd8, 0xec, 0x83, 0xef, 0xc6, 0x78, 0x67, 0x5a, - 0xb9, 0xc2, 0x93, 0x5c, 0x72, 0x9d, 0xb8, 0x5d, 0x59, 0x04, 0x99, 0x03, 0x09, 0x03, 0x98, 0x5a, - 0xd2, 0x8a, 0xe7, 0xa7, 0xa6, 0x36, 0x74, 0x1b, 0xef, 0x8d, 0x6d, 0xed, 0xdb, 0xe2, 0x46, 0x45, - 0x52, 0xe6, 0x9a, 0x59, 0xc1, 0xdb, 0x07, 0x99, 0xc8, 0x2b, 0x4f, 0x44, 0x69, 0xb7, 0x17, 0xa7, - 0x6a, 0x65, 0xe7, 0xd6, 0x6c, 0x9b, 0x43, 0xb3, 0xe9, 0xd4, 0xb1, 0xf1, 0x4c, 0x1e, 0x51, 0x9a, - 0x08, 0xbf, 0x13, 0x5c, 0x07, 0xd5, 0xc4, 0x03, 0x58, 0x4a, 0x53, 0xdf, 0x03, 0x86, 0x3b, 0x28, - 0x7d, 0x79, 0x5c, 0x4b, 0x31, 0x1a, 0x7b, 0x20, 0xf1, 0xf0, 0x48, 0xe5, 0x8c, 0xd7, 0xbc, 0x25, - 0xbb, 0xc3, 0x05, 0x47, 0x22, 0xee, 0x6d, 0x95, 0xef, 0x75, 0x4b, 0x14, 0xe2, 0xd0, 0x5c, 0x22, - 0x6a, 0x3c, 0xef, 0x06, 0x12, 0x4e, 0x6d, 0x3c, 0x11, 0x2e, 0x2d, 0x6b, 0x48, 0x15, 0x36, 0x7f, - 0xb8, 0x5f, 0x73, 0xad, 0xdd, 0xd6, 0x9d, 0x18, 0x77, 0xb2, 0xdf, 0x96, 0x29, 0x6f, 0x22, 0x77, - 0x27, 0xa7, 0x8a, 0x5e, 0xb4, 0x84, 0x3f, 0xd6, 0xd8, 0x07, 0x26, 0xb8, 0x25, 0x22, 0x7d, 0x34, - 0x4b, 0x54, 0xeb, 0x5a, 0xaa, 0x38, 0xd2, 0xe5, 0x37, 0xfb, 0x95, 0x2d, 0x47, 0xdf, 0xcc, 0xfc, - 0x08, 0x9e, 0x49, 0xe2, 0xbf, 0x3c, 0x21, 0x8e, 0xf2, 0x45, 0x9d, 0x64, 0x5c, 0x79, 0xe7, 0x7f, - 0x47, 0x58, 0x43, 0x4c, 0xd5, 0x5c, 0x74, 0x4b, 0x0b, 0x19, 0x8c, 0xd4, 0xb4, 0x5f, 0x4d, 0x83, - 0x11, 0x49, 0xc6, 0x57, 0xb6, 0x11, 0x1c, 0x95, 0x20, 0x38, 0x92, 0x18, 0x8e, 0x72, 0x11, 0x2f, - 0xe4, 0xfc, 0x5e, 0xf1, 0x73, 0x8c, 0xe4, 0x57, 0x61, 0x4f, 0x95, 0x6c, 0x61, 0x17, 0xa0, 0x03, - 0x7a, 0x12, 0xad, 0xea, 0xb9, 0x78, 0xb5, 0x30, 0x72, 0x61, 0x6c, 0x58, 0xf0, 0xa6, 0xfc, 0x8c, - 0x29, 0xa9, 0x94, 0x76, 0xef, 0x8f, 0xc6, 0x90, 0x8c, 0xdc, 0x77, 0x85, 0x18, 0x0c, 0x1d, 0xc4, - 0xd0, 0x9d, 0x33, 0xf4, 0x42, 0xf0, 0x05, 0x3e, 0x8f, 0x79, 0x66, 0x7f, 0x84, 0x87, 0x50, 0x97, - 0x51, 0xa7, 0xc1, 0xa5, 0x24, 0x64, 0x58, 0x29, 0x90, 0xc8, 0x9d, 0xf9, 0xfc, 0x93, 0x0e, 0x1b, - 0x34, 0x0a, 0xa8, 0x91, 0x70, 0x09, 0xd3, 0xf0, 0x84, 0xd7, 0x1b, 0x3b, 0xae, 0x83, 0xae, 0x38, - 0x24, 0xae, 0x35, 0x83, 0x04, 0x31, 0x5a, 0xb2, 0x88, 0xbb, 0x9c, 0x5f, 0xc1, 0x15, 0xba, 0xdc, - 0x3b, 0x82, 0xa9, 0x93, 0x5c, 0x58, 0x4d, 0x0e, 0x89, 0xf6, 0x4b, 0xce, 0x6f, 0x26, 0x32, 0x41, - 0x67, 0x82, 0x7e, 0x70, 0x8c, 0x31, 0x9a, 0x3d, 0x01, 0x00, 0xd8, 0xb0, 0x5d, 0xf0, 0xcb, 0xa0, - 0x16, 0x95, 0x32, 0xbd, 0xb8, 0xb2, 0xee, 0x19, 0x3a, 0x22, 0x36, 0x5b, 0x24, 0x6e, 0x89, 0x41, - 0x51, 0x22, 0x09, 0xec, 0x8c, 0xbd, 0x49, 0x9c, 0x1c, 0x89, 0xe0, 0x2a, 0xcd, 0x6e, 0xbc, 0x8c, - 0xc4, 0xce, 0x10, 0xcc, 0x77, 0xe2, 0xd8, 0x2c, 0xda, 0x3d, 0x3e, 0xf3, 0x69, 0xa2, 0x1d, 0xc3, - 0x3b, 0x23, 0x32, 0xeb, 0x97, 0xb1, 0x3b, 0x72, 0x64, 0xe4, 0xde, 0xa1, 0xd2, 0x7c, 0x85, 0x2a, - 0xe2, 0x80, 0x10, 0xac, 0xc7, 0x1f, 0x7c, 0x3d, 0xff, 0x58, 0x58, 0x41, 0x80, 0x6b, 0x95, 0xdf, - 0xba, 0x21, 0x49, 0xff, 0xbc, 0x93, 0x3b, 0x53, 0x94, 0x6d, 0x62, 0xbc, 0x26, 0xa3, 0xdd, 0xa6, - 0x93, 0xb4, 0xed, 0x0b, 0xfa, 0xcf, 0x6b, 0x4c, 0xb0, 0x9d, 0xca, 0xb6, 0xf1, 0x94, 0x63, 0xc0, - 0xd6, 0x7d, 0x86, 0x21, 0xd9, 0xff, 0xd8, 0xb4, 0x9d, 0xca, 0x7e, 0x03, 0x4f, 0x67, 0xc6, 0x2b, - 0x4e, 0x39, 0x25, 0xde, 0x66, 0x05, 0xd5, 0xc0, 0x9d, 0x67, 0xdf, 0x9d, 0x64, 0x69, 0x4e, 0x69, - 0x72, 0xb3, 0xb9, 0x9f, 0x67, 0xe8, 0x69, 0x53, 0x1e, 0x0a, 0xcd, 0xcc, 0xeb, 0x21, 0x37, 0x17, - 0xb7, 0x85, 0xde, 0x7e, 0xe5, 0x8d, 0xcd, 0x7d, 0x28, 0x3f, 0xf7, 0xb4, 0xf6, 0xd3, 0xf8, 0x27, - 0xd5, 0x0b, 0xaa, 0xcf, 0x4d, 0xe8, 0x92, 0x23, 0x4b, 0xb7, 0xe0, 0x50, 0x62, 0x46, 0x26, 0x9b, - 0x4d, 0xf9, 0x04, 0xb2, 0x92, 0x6d, 0xb5, 0x35, 0x5a, 0x47, 0xf7, 0x6c, 0x55, 0x38, 0xa2, 0xb7, - 0xbd, 0xdf, 0x26, 0x81, 0xf8, 0x51, 0xe4, 0xdc, 0xe1, 0xbb, 0x4d, 0x74, 0x4d, 0x3c, 0x12, 0xc9, - 0x21, 0xc7, 0xf8, 0xf3, 0x0e, 0x3b, 0xf0, 0xe1, 0xc1, 0xc9, 0xdd, 0x44, 0x2b, 0xd9, 0x2e, 0x5c, - 0xc3, 0x78, 0x8d, 0xb5, 0x63, 0xda, 0x3f, 0x96, 0xf4, 0x78, 0x25, 0xb1, 0x03, 0xd7, 0x4f, 0xb4, - 0xff, 0x8e, 0x83, 0x85, 0x25, 0xb2, 0x48, 0xdb, 0xe3, 0x7d, 0x5e, 0x1a, 0x87, 0x5c, 0x74, 0x25, - 0x11, 0x17, 0xfd, 0x4a, 0x65, 0xa3, 0xf3, 0x2d, 0x1b, 0xdf, 0x99, 0xaa, 0xfe, 0x88, 0x7d, 0x6f, - 0xde, 0x51, 0xf8, 0x71, 0x77, 0xd7, 0xbb, 0x72, 0xca, 0xb3, 0x55, 0xd0, 0x17, 0xb1, 0x8e, 0x98, - 0xf0, 0x2d, 0x2c, 0xc7, 0x4b, 0x5d, 0x0e, 0xfe, 0xf2, 0xc4, 0x2b, 0x39, 0xfe, 0xd5, 0xe8, 0x3a, - 0x4b, 0xe2, 0x45, 0xb5, 0xc7, 0x0f, 0x49, 0x97, 0x27, 0x01, 0x69, 0xd1, 0xbf, 0x81, 0x95, 0xff, - 0xfa, 0x8d, 0xc4, 0xc8, 0xbb, 0x9e, 0xa4, 0x62, 0xd9, 0x36, 0x0b, 0x20, 0xac, 0xd7, 0x38, 0xba, - 0x1d, 0x86, 0x9e, 0x58, 0xc7, 0xc2, 0xcd, 0x95, 0x74, 0x3f, 0xe6, 0x7a, 0xc6, 0xb4, 0xee, 0x84, - 0x02, 0x03, 0x08, 0xe2, 0x57, 0xfe, 0xbc, 0x60, 0xb9, 0xd2, 0x70, 0x2d, 0x52, 0x01, 0x43, 0x9c, - 0x9a, 0xa5, 0xbf, 0xb4, 0xc4, 0x45, 0x3b, 0xb5, 0xc0, 0x67, 0xc2, 0xc7, 0x69, 0x08, 0x41, 0x7f, - 0x52, 0x87, 0x04, 0x85, 0xf7, 0x33, 0x4d, 0xfa, 0x07, 0x2c, 0xb9, 0x77, 0x4f, 0xd1, 0xea, 0xe0, - 0xad, 0xdf, 0xab, 0x5b, 0x42, 0xb6, 0xb7, 0xd8, 0x19, 0x79, 0xfb, 0x26, 0x1b, 0x1e, 0xf0, 0x91, - 0x67, 0x4b, 0x2e, 0xb7, 0xed, 0xb0, 0x92, 0x33, 0x44, 0x22, 0xae, 0xfb, 0xed, 0x5f, 0x96, 0xdb, - 0x2b, 0x9a, 0x14, 0x80, 0x6f, 0xd2, 0x14, 0x6c, 0x07, 0xed, 0xd1, 0x94, 0xdd, 0xfe, 0x17, 0xf2, - 0x1e, 0xf9, 0x93, 0x15, 0x11, 0x4f, 0x82, 0xee, 0xb0, 0x85, 0xcd, 0x63, 0x21, 0xee, 0x63, 0x4e, - 0x31, 0x83, 0x17, 0x59, 0xfd, 0x32, 0xa8, 0xf3, 0x36, 0xdf, 0xa6, 0xa3, 0xdb, 0xe4, 0x7c, 0x28, - 0xf5, 0x49, 0x62, 0xcd, 0x55, 0x27, 0x1b, 0x59, 0xe2, 0x19, 0x64, 0x89, 0xe5, 0xce, 0x72, 0x51, - 0x96, 0x30, 0x66, 0x89, 0xa1, 0xa2, 0x1f, 0xc1, 0x13, 0x35, 0xa9, 0x04, 0x4e, 0x65, 0xc9, 0x86, - 0xcc, 0x41, 0xce, 0x93, 0x27, 0x31, 0xbc, 0xd9, 0x51, 0x6b, 0x6e, 0x53, 0xd0, 0x0b, 0x85, 0x25, - 0x64, 0x99, 0x63, 0xdf, 0x87, 0x54, 0x5d, 0xc7, 0x0a, 0x2e, 0x4a, 0x52, 0xce, 0x28, 0x25, 0x8a, - 0x39, 0xc5, 0x47, 0x6b, 0xb1, 0xb0, 0x88, 0xed, 0x87, 0xa1, 0xac, 0xde, 0x30, 0xc2, 0x8b, 0xfc, - 0xe5, 0x15, 0x19, 0x7d, 0x84, 0xfc, 0x92, 0x28, 0x51, 0x1c, 0xfa, 0x50, 0xa3, 0xa0, 0x37, 0x49, - 0x3b, 0x04, 0x9c, 0x40, 0x65, 0x27, 0xf6, 0x12, 0x61, 0xee, 0xa0, 0x80, 0xed, 0x16, 0xa2, 0xe0, - 0x4f, 0xde, 0x6c, 0x62, 0xc7, 0x7f, 0xc3, 0xac, 0x64, 0x04, 0xc3, 0x88, 0x73, 0x1c, 0x4b, 0xc1, - 0x7d, 0xd8, 0x14, 0x5c, 0x65, 0x43, 0x72, 0x46, 0xf9, 0xda, 0xfc, 0x80, 0x0a, 0x75, 0x07, 0xd9, - 0x5b, 0xe4, 0x20, 0xd3, 0x42, 0xa7, 0xce, 0x42, 0x3f, 0x8a, 0xa6, 0xd6, 0x84, 0xbd, 0x26, 0x97, - 0xbb, 0x0f, 0x42, 0x77, 0x32, 0x04, 0x04, 0x7f, 0x71, 0x6a, 0x83, 0xb9, 0xbb, 0xf7, 0xbb, 0x98, - 0x7b, 0x72, 0xb7, 0x8f, 0xcd, 0xe0, 0x4f, 0xd6, 0x91, 0x45, 0x84, 0x68, 0x65, 0x47, 0xe4, 0xc6, - 0x72, 0x59, 0x0c, 0x51, 0x2d, 0xce, 0xd8, 0x7c, 0x8d, 0xb1, 0x9b, 0x0f, 0xc2, 0x54, 0x90, 0x9b, - 0x09, 0x14, 0xd4, 0x20, 0x3c, 0x3e, 0xb3, 0x44, 0xc9, 0xdf, 0xcb, 0x5f, 0xf7, 0xda, 0x6c, 0x76, - 0xdc, 0x5d, 0xbe, 0xa2, 0x80, 0x3b, 0xc4, 0x08, 0xef, 0xb8, 0x22, 0x24, 0xf8, 0xef, 0xb8, 0xb3, - 0xda, 0x6d, 0x4b, 0x77, 0xc3, 0xd7, 0x15, 0xbd, 0x52, 0x42, 0x08, 0x89, 0x60, 0xc3, 0x72, 0xf3, - 0x10, 0xf3, 0xdd, 0xa7, 0xb2, 0x6c, 0xe0, 0x93, 0xe5, 0xc4, 0xbc, 0x37, 0x01, 0x96, 0x56, 0xd9, - 0x73, 0x92, 0xf9, 0x03, 0x2c, 0xf5, 0x9e, 0x24, 0x00, 0x5f, 0x13, 0x9e, 0x42, 0xa6, 0x40, 0x95, - 0xed, 0xa3, 0x37, 0xa3, 0xa5, 0x17, 0x3a, 0x51, 0x59, 0x00, 0x05, 0xb9, 0xf3, 0x4b, 0x05, 0xf8, - 0x03, 0x39, 0x50, 0xe8, 0x60, 0xa4, 0xe3, 0x8b, 0x51, 0x11, 0x4f, 0x87, 0x16, 0x38, 0x74, 0x9b, - 0xe5, 0x4c, 0xe7, 0xb5, 0xb3, 0x90, 0x67, 0x77, 0xf9, 0x53, 0x95, 0x89, 0x32, 0x3d, 0xda, 0xb4, - 0xff, 0xd1, 0xf5, 0xc7, 0x96, 0xcb, 0x6f, 0x7e, 0x61, 0x8e, 0xcb, 0x6d, 0xb0, 0xec, 0xf4, 0x5f, - 0xe9, 0x61, 0x3f, 0xba, 0x35, 0x2d, 0x5e, 0xb4, 0xbf, 0xdf, 0x95, 0x4c, 0xbd, 0x72, 0x52, 0x3c, - 0x97, 0x6b, 0xbd, 0x72, 0x26, 0x10, 0x85, 0xfc, 0xca, 0xa9, 0x40, 0x94, 0x70, 0xa5, 0xfc, 0x60, - 0x20, 0x2f, 0x3a, 0xd2, 0xe9, 0x81, 0x70, 0xb2, 0x23, 0x8d, 0xaf, 0x94, 0x2c, 0x67, 0xb7, 0xb2, - 0x64, 0x81, 0x31, 0x90, 0xac, 0x83, 0x69, 0x3d, 0x40, 0xe1, 0xe4, 0x82, 0xeb, 0x81, 0xaa, 0x61, - 0x47, 0x14, 0xdd, 0xce, 0x8f, 0x2b, 0x9b, 0x09, 0xf2, 0xd9, 0xb0, 0xe8, 0x61, 0x64, 0x58, 0x83, - 0x15, 0x3f, 0x9d, 0x3c, 0xe0, 0x52, 0x4f, 0xf8, 0xf2, 0x27, 0x66, 0x9d, 0x23, 0x28, 0x66, 0x54, - 0x49, 0x8c, 0x78, 0x58, 0xa6, 0xd4, 0x97, 0xfc, 0xc6, 0x24, 0x51, 0x1e, 0x43, 0x2b, 0xc0, 0x96, - 0xc2, 0xc2, 0x7f, 0x80, 0xc1, 0xea, 0x1e, 0xf5, 0xae, 0x24, 0x43, 0x2c, 0xf7, 0xd1, 0x5a, 0x45, - 0x04, 0x47, 0xaa, 0x7b, 0x96, 0x22, 0x01, 0xf7, 0xf0, 0x84, 0xee, 0x06, 0x74, 0x89, 0xe2, 0xe3, - 0xe2, 0x97, 0x78, 0xee, 0xd2, 0x75, 0xaa, 0x48, 0xc7, 0x10, 0x8a, 0x13, 0xb0, 0xd8, 0x68, 0x63, - 0x6f, 0x13, 0x74, 0xe2, 0x78, 0x8c, 0x46, 0x2a, 0xe7, 0x0f, 0x50, 0x40, 0x54, 0x32, 0x41, 0x7f, - 0xb8, 0x19, 0xbd, 0x5a, 0x10, 0xd9, 0x53, 0x5e, 0x0d, 0xe2, 0xef, 0x1b, 0x92, 0x98, 0x2d, 0x02, - 0x37, 0x4f, 0xbf, 0x52, 0x9e, 0x1b, 0x36, 0x28, 0xf9, 0xe7, 0x73, 0x43, 0x9a, 0x6c, 0x87, 0xa7, - 0xbb, 0xe6, 0x0d, 0x28, 0x5c, 0x78, 0x0a, 0x50, 0x96, 0x17, 0x62, 0x9b, 0xff, 0xff, 0x64, 0xff, - 0xa0, 0x8e, 0x5b, 0x22, 0xb9, 0x32, 0x59, 0xfc, 0x0a, 0x63, 0x42, 0xb6, 0x8e, 0xbb, 0x29, 0xb8, - 0xb5, 0x82, 0x3f, 0xc3, 0xfa, 0x3f, 0x59, 0xcf, 0xc5, 0xe9, 0x96, 0x55, 0x00, 0x00 + 0x7e, 0xf7, 0xad, 0xf1, 0x93, 0xd1, 0xee, 0x26, 0xa9, 0x38, 0x38, 0x51, 0xb9, 0x27, 0xb1, 0x69, + 0x5e, 0xf9, 0x33, 0xe3, 0xf1, 0xcc, 0x1d, 0x39, 0xe8, 0x14, 0x94, 0xc2, 0xf5, 0x0e, 0xa6, 0xbe, + 0xbc, 0x28, 0xc5, 0x0b, 0x1e, 0x9b, 0xa7, 0xc8, 0xd2, 0xcb, 0x02, 0xcf, 0xe8, 0xaa, 0x84, 0xeb, + 0x3c, 0x30, 0x30, 0xe3, 0xe8, 0x42, 0x80, 0xdb, 0xdf, 0x17, 0x4d, 0x3c, 0xa7, 0x87, 0x9b, 0xdb, + 0xdb, 0xfb, 0x53, 0xdc, 0x65, 0xaa, 0x7f, 0xa2, 0x29, 0xec, 0x15, 0x7b, 0xbb, 0x07, 0x25, 0x7b, + 0x5e, 0x5e, 0x82, 0x0f, 0x1d, 0x35, 0x9e, 0x3e, 0xcc, 0xd7, 0xd7, 0xde, 0x67, 0xec, 0xe9, 0xca, + 0x4d, 0xab, 0x48, 0xa7, 0x00, 0xa4, 0x6f, 0x23, 0xc1, 0x4d, 0xa8, 0xdd, 0x38, 0x74, 0x8e, 0x43, + 0x48, 0x3c, 0x72, 0x72, 0xc7, 0x13, 0x99, 0x96, 0x08, 0x39, 0x13, 0xde, 0x32, 0xc0, 0x1b, 0x12, + 0xef, 0x1d, 0x17, 0xaf, 0x94, 0xc8, 0x83, 0x67, 0x1e, 0x7b, 0x22, 0x7f, 0xbf, 0xbe, 0xfa, 0x39, + 0x8e, 0x83, 0x3b, 0xc8, 0x1e, 0x58, 0x14, 0x77, 0xbd, 0xdd, 0xd7, 0x36, 0x72, 0xa7, 0x6c, 0xb2, + 0x8b, 0x10, 0xf1, 0xdc, 0xc1, 0x03, 0x43, 0x51, 0xe0, 0x43, 0x8c, 0xbc, 0x67, 0xdf, 0x62, 0x8d, + 0x3f, 0x01, 0x36, 0xe3, 0x65, 0x84, 0x67, 0x21, 0x60, 0x92, 0x2a, 0xc4, 0xae, 0xdd, 0x57, 0x3a, + 0x32, 0xbc, 0x2c, 0x8f, 0x18, 0x0f, 0xe9, 0x5a, 0xf6, 0x83, 0x76, 0x90, 0x20, 0x10, 0x37, 0x6e, + 0x6e, 0x6f, 0x60, 0x35, 0x35, 0x5a, 0x17, 0xd3, 0x91, 0x1b, 0x1e, 0x31, 0x9f, 0xc9, 0x7b, 0x3f, + 0x5c, 0xe0, 0x61, 0xaf, 0xf4, 0xb0, 0xa0, 0xbc, 0x92, 0xa2, 0x50, 0x3c, 0x22, 0x2c, 0xcf, 0xac, + 0xf2, 0xd3, 0xc2, 0x78, 0x47, 0x24, 0x02, 0xf1, 0xe1, 0x35, 0x11, 0xaf, 0x16, 0x21, 0x4c, 0xac, + 0x6a, 0x25, 0xa7, 0x89, 0x0f, 0x36, 0x2e, 0xdc, 0x9c, 0x4d, 0x67, 0xa9, 0xf4, 0xb4, 0xb8, 0x4b, + 0x93, 0x97, 0x14, 0xac, 0x10, 0x1c, 0x3f, 0xc4, 0x4d, 0x79, 0x3d, 0x08, 0xe5, 0x7c, 0xc7, 0x2c, + 0x48, 0xa9, 0x06, 0x30, 0x13, 0x4e, 0x6f, 0xc0, 0x52, 0xba, 0x03, 0x05, 0x63, 0x79, 0xca, 0x85, + 0x22, 0xf9, 0x4f, 0xc7, 0xe0, 0xa1, 0x27, 0x24, 0x67, 0xe6, 0x45, 0x83, 0xa1, 0x19, 0x87, 0x81, + 0x02, 0x80, 0x52, 0xa2, 0xcc, 0x97, 0x6e, 0x2c, 0xa7, 0xcf, 0x8f, 0xf6, 0x73, 0xe5, 0x51, 0x3c, + 0xde, 0xc4, 0x8f, 0x6b, 0xf3, 0x27, 0xbe, 0x43, 0x82, 0x1f, 0x40, 0xf7, 0x27, 0x99, 0xcd, 0x88, + 0xd3, 0x1e, 0x86, 0xce, 0xcf, 0x79, 0x24, 0x7b, 0x0c, 0xa0, 0xcd, 0xdd, 0x04, 0x14, 0xd3, 0x9d, + 0x1a, 0x40, 0x5f, 0x58, 0xf6, 0x5c, 0x91, 0xb1, 0xd3, 0xec, 0x3f, 0x27, 0xa0, 0x86, 0xc8, 0x14, + 0x32, 0x54, 0xac, 0x16, 0x38, 0x5e, 0xfe, 0xf0, 0x48, 0x99, 0xd5, 0x7c, 0xe1, 0xd5, 0x27, 0xc6, + 0xb3, 0x2f, 0xb9, 0x53, 0x4d, 0x7c, 0xe8, 0x27, 0xe7, 0x73, 0x77, 0xe7, 0x26, 0x8a, 0x57, 0x80, + 0x46, 0x21, 0x6b, 0x3b, 0x37, 0x77, 0x8a, 0xb0, 0xdc, 0x52, 0xb4, 0xb7, 0x1c, 0x2f, 0x15, 0x79, + 0x55, 0x39, 0xe8, 0xd9, 0xcd, 0x26, 0xa8, 0x8f, 0x89, 0xb2, 0xf6, 0x96, 0xd3, 0xa7, 0xc8, 0x04, + 0x14, 0xe8, 0xe5, 0xb0, 0x77, 0xef, 0x13, 0xd8, 0xd4, 0x6a, 0x61, 0x4d, 0xa7, 0x3b, 0xb8, 0xf8, + 0xad, 0x0c, 0xf8, 0x71, 0xad, 0xae, 0x93, 0x25, 0x86, 0xf4, 0x08, 0x5c, 0x44, 0x9a, 0xe4, 0xe1, + 0x2d, 0x22, 0xf1, 0x34, 0x5d, 0x49, 0x26, 0xd6, 0x90, 0x67, 0x64, 0x52, 0x38, 0x62, 0xde, 0x72, + 0x4a, 0xdc, 0xcc, 0xf8, 0x28, 0xf0, 0xde, 0x49, 0xf9, 0x95, 0x7c, 0xef, 0x16, 0x0f, 0x96, 0xf0, + 0xea, 0x54, 0x4d, 0x4e, 0x03, 0x6e, 0x79, 0x7b, 0x8a, 0x27, 0xdd, 0x77, 0xab, 0x11, 0xa6, 0x64, + 0x48, 0x16, 0xd7, 0x1e, 0x8d, 0x90, 0x2f, 0x2b, 0x5e, 0x4a, 0x2a, 0x9d, 0xfb, 0xfd, 0x3d, 0xcd, + 0x89, 0xd4, 0xaa, 0xc5, 0xf1, 0x9a, 0x73, 0xe5, 0x84, 0xbb, 0xce, 0xce, 0x5d, 0xde, 0xe5, 0x47, + 0x48, 0x60, 0xa4, 0x56, 0x4e, 0xe0, 0xf2, 0xbe, 0x0c, 0x9c, 0xf3, 0x24, 0xe4, 0x11, 0x32, 0x48, + 0x34, 0x77, 0x11, 0xbb, 0xbb, 0xda, 0x1a, 0xcd, 0xe1, 0x77, 0xd3, 0xbb, 0xbb, 0xa6, 0x85, 0xa5, + 0xcc, 0x8d, 0x81, 0x90, 0x9d, 0xd4, 0x0a, 0x1a, 0x9a, 0xb8, 0x35, 0x39, 0x8d, 0xd0, 0xa9, 0x82, + 0x55, 0xab, 0x1d, 0x79, 0xbf, 0xe5, 0xd6, 0x65, 0x78, 0x0c, 0x5c, 0xe6, 0x81, 0x16, 0x41, 0xdb, + 0xe7, 0xb7, 0xde, 0x44, 0x23, 0xe8, 0x80, 0xa6, 0x90, 0xf7, 0xe0, 0x89, 0xc9, 0x38, 0xf4, 0x9f, + 0xa0, 0x7a, 0x21, 0x13, 0x9f, 0x45, 0x78, 0xcf, 0x07, 0xf7, 0x8e, 0xfd, 0x10, 0x12, 0xd5, 0x39, + 0x23, 0x5f, 0xb8, 0x0b, 0xfa, 0x42, 0x82, 0x10, 0x9c, 0x2b, 0x44, 0x14, 0x4c, 0xfc, 0x39, 0x26, + 0x9e, 0xcb, 0x46, 0xfc, 0xae, 0x4c, 0x76, 0xfe, 0x33, 0x43, 0xcb, 0x04, 0xd4, 0xe9, 0xed, 0x25, + 0x71, 0xf2, 0x48, 0x79, 0x27, 0x96, 0xc4, 0x79, 0xb2, 0x2b, 0x70, 0x55, 0xf9, 0x4b, 0x91, 0x23, + 0x88, 0x1e, 0x14, 0x47, 0x77, 0xc0, 0x67, 0x4a, 0x67, 0xe9, 0xfa, 0x36, 0xbf, 0x86, 0x51, 0x03, + 0x3e, 0x62, 0xdf, 0xf6, 0xf1, 0x50, 0x24, 0xbf, 0xca, 0xa9, 0x6b, 0x0a, 0xbf, 0x56, 0x6a, 0x22, + 0x84, 0x3b, 0x8a, 0xfd, 0xd0, 0x9a, 0x31, 0x14, 0xe9, 0x65, 0xcc, 0x16, 0x18, 0x97, 0xec, 0xcb, + 0x00, 0xaa, 0x10, 0x48, 0x1c, 0x04, 0x18, 0x8c, 0x5f, 0x04, 0xc0, 0x21, 0x7a, 0x52, 0x72, 0x0d, + 0x59, 0x70, 0x8d, 0x48, 0x69, 0x31, 0x4c, 0x67, 0xc8, 0x47, 0x3c, 0x63, 0x70, 0x79, 0x0b, 0x22, + 0xd2, 0x0a, 0x18, 0xa3, 0x22, 0x46, 0x8d, 0x63, 0x53, 0x55, 0x84, 0xe2, 0x97, 0x2c, 0x11, 0xfd, + 0x80, 0x5f, 0x1e, 0xed, 0xd4, 0xeb, 0xb4, 0xca, 0x5f, 0xe3, 0x81, 0x83, 0x6a, 0x76, 0x01, 0xb4, + 0x1e, 0xd5, 0xbe, 0x46, 0x83, 0xc0, 0x6c, 0x60, 0xd0, 0x50, 0xd7, 0x15, 0xc8, 0x89, 0xc4, 0xe5, + 0xd8, 0x1e, 0x4f, 0xad, 0xfa, 0xff, 0xe6, 0x2c, 0xb8, 0xd8, 0x97, 0xa1, 0x0b, 0xc1, 0x5a, 0x9c, + 0xaa, 0x88, 0x70, 0xc3, 0x1e, 0x00, 0x39, 0x40, 0xaf, 0x2e, 0x6e, 0x05, 0xe3, 0x5d, 0x4a, 0x22, + 0xdd, 0x3f, 0x1d, 0xf1, 0x7e, 0x1c, 0x18, 0xd1, 0xa2, 0xc2, 0x0b, 0x72, 0xfc, 0xf4, 0x47, 0x94, + 0x76, 0xf4, 0xa6, 0x50, 0x58, 0xb0, 0x78, 0xee, 0x63, 0x5f, 0xd4, 0x8f, 0xf0, 0xb2, 0x6e, 0xae, + 0x59, 0x12, 0xfb, 0x20, 0x8e, 0xa7, 0xe2, 0xb3, 0x39, 0x73, 0x83, 0x21, 0xed, 0x57, 0x7a, 0x22, + 0x35, 0x97, 0xd5, 0x8a, 0xf8, 0x92, 0xcb, 0xf5, 0x7e, 0x46, 0xb2, 0x83, 0x5e, 0x5d, 0xbc, 0x48, + 0x9b, 0xe9, 0x65, 0x63, 0x2a, 0xe9, 0xa0, 0x21, 0x0e, 0x1a, 0x42, 0xc8, 0xce, 0xc6, 0x15, 0x46, + 0xc8, 0x4b, 0x02, 0xfd, 0x91, 0xf5, 0xc8, 0x32, 0x90, 0x79, 0x52, 0x78, 0xf7, 0xe6, 0x8d, 0x7e, + 0x05, 0xd7, 0xe7, 0xd0, 0x5a, 0x04, 0x5d, 0xf2, 0xb3, 0x15, 0xe2, 0x31, 0x14, 0xd4, 0xf3, 0x78, + 0x19, 0x80, 0x70, 0x1a, 0x90, 0x4f, 0xc7, 0x96, 0x9b, 0xf4, 0x39, 0xd3, 0xbe, 0xab, 0x6b, 0x73, + 0x56, 0x65, 0x0b, 0x3f, 0xeb, 0x13, 0xdb, 0x38, 0xcd, 0x2c, 0x31, 0xed, 0x39, 0xfd, 0x3b, 0x06, + 0xee, 0x10, 0x2c, 0x71, 0x02, 0x6a, 0x1a, 0xf8, 0x4f, 0xa0, 0x0f, 0xf2, 0x1c, 0x05, 0x1e, 0x84, + 0x18, 0x8b, 0xee, 0x5e, 0x14, 0x8b, 0x2e, 0x62, 0xa7, 0x57, 0x77, 0xc4, 0xb8, 0xb1, 0xec, 0xf1, + 0x56, 0xc4, 0x56, 0xcd, 0x32, 0xa3, 0x86, 0x07, 0x4f, 0x8a, 0x3d, 0x60, 0x7e, 0xe4, 0x41, 0x36, + 0x13, 0x52, 0xca, 0x95, 0x0b, 0x0f, 0x0b, 0x29, 0x62, 0x2d, 0x21, 0xd9, 0x05, 0x3d, 0xb7, 0x25, + 0x2d, 0x8f, 0x45, 0x11, 0x71, 0xf1, 0xda, 0x25, 0x0b, 0x5f, 0x69, 0x12, 0x9f, 0x0e, 0x99, 0x14, + 0xb5, 0xac, 0x17, 0xe5, 0xe5, 0x13, 0xd1, 0x2b, 0xe2, 0x77, 0x53, 0x04, 0xd5, 0xa4, 0x7b, 0x8a, + 0x17, 0x7e, 0xfa, 0xd7, 0xe2, 0xb2, 0x37, 0x39, 0x5b, 0x86, 0x21, 0xe8, 0x7f, 0x4a, 0x43, 0x5e, + 0xf1, 0xbe, 0x3e, 0xa5, 0x1b, 0xd5, 0xea, 0x46, 0xb3, 0xa9, 0xd1, 0xce, 0x9a, 0x5e, 0xba, 0xae, + 0x6f, 0x76, 0x95, 0xd2, 0x86, 0x53, 0xbf, 0x42, 0x16, 0xa7, 0x45, 0xf2, 0xd9, 0x25, 0x86, 0xb4, + 0xb2, 0xc0, 0x26, 0x53, 0x47, 0x1c, 0x0d, 0xea, 0x16, 0x37, 0xef, 0x2a, 0x87, 0xdf, 0xbd, 0x3b, + 0x39, 0x39, 0xe9, 0x92, 0x7f, 0xf7, 0x97, 0x61, 0x71, 0x65, 0x40, 0x83, 0x1f, 0xb1, 0x25, 0x40, + 0xe6, 0x20, 0x31, 0x62, 0x8b, 0x89, 0xd4, 0xb8, 0x54, 0xef, 0x7d, 0x02, 0x26, 0x05, 0xef, 0x19, + 0x77, 0x65, 0x91, 0x35, 0x65, 0xc2, 0x81, 0xad, 0x10, 0x0b, 0xd7, 0x1a, 0x0d, 0x01, 0x03, 0xe1, + 0x00, 0x96, 0x11, 0xc2, 0x81, 0xa2, 0x12, 0x1b, 0xe5, 0x15, 0xf1, 0x77, 0x95, 0x05, 0xa4, 0x50, + 0x0e, 0x40, 0x48, 0xaa, 0x8e, 0xf7, 0x95, 0xc9, 0x8b, 0xad, 0x58, 0x00, 0x45, 0xc4, 0xf2, 0x26, + 0xe0, 0x61, 0xa7, 0x30, 0xf8, 0x20, 0x6b, 0x11, 0x81, 0x2a, 0x55, 0x4e, 0x93, 0xc5, 0xb4, 0x5c, + 0x60, 0x93, 0xaf, 0x62, 0x94, 0x5f, 0xd7, 0xd8, 0xc7, 0xf6, 0xe1, 0x0a, 0x44, 0xea, 0x47, 0xfc, + 0xbe, 0x18, 0xf2, 0xc8, 0xc1, 0x04, 0xf7, 0x7f, 0x63, 0x2c, 0x20, 0x56, 0x4c, 0x0e, 0x21, 0x85, + 0x33, 0x4e, 0x89, 0x33, 0x15, 0x1c, 0xe0, 0xe9, 0x26, 0x7e, 0x7e, 0x69, 0x02, 0x82, 0xb5, 0x63, + 0xd4, 0x4d, 0xec, 0x62, 0xe3, 0xe0, 0xec, 0x00, 0x11, 0x67, 0xa5, 0x72, 0xc9, 0x67, 0xca, 0x6f, + 0x37, 0xa6, 0xd7, 0xcc, 0x20, 0x52, 0xb0, 0x10, 0x8a, 0xbf, 0x82, 0x10, 0x35, 0xe9, 0xfc, 0x90, + 0x43, 0xbc, 0xfa, 0xec, 0xcd, 0x04, 0x0b, 0x8a, 0xd4, 0x0b, 0x02, 0x4a, 0x8f, 0x17, 0x8d, 0xc1, + 0x2a, 0x96, 0x11, 0x78, 0xc3, 0xc4, 0xb8, 0xa4, 0x36, 0x04, 0xe8, 0x43, 0x96, 0xde, 0x83, 0xe7, + 0x3f, 0x79, 0x52, 0xab, 0xd5, 0xcc, 0x38, 0x42, 0x61, 0xb3, 0x8f, 0xbe, 0x1b, 0xe3, 0x9d, 0x69, + 0xe5, 0x1a, 0x4f, 0x72, 0xc9, 0x75, 0xe2, 0x76, 0x65, 0x11, 0x64, 0x0e, 0x24, 0x0c, 0x60, 0x6a, + 0x49, 0x2b, 0x9e, 0x9f, 0x9a, 0xda, 0xd0, 0x6d, 0xbc, 0x37, 0xb6, 0xb5, 0x6f, 0x8b, 0x1b, 0x15, + 0x49, 0x99, 0x6b, 0x66, 0x05, 0x6f, 0x1f, 0x64, 0x22, 0xaf, 0x3c, 0x11, 0xa5, 0xdd, 0x5e, 0x9c, + 0xaa, 0x95, 0x9d, 0x5b, 0xb3, 0x6d, 0x0e, 0xcd, 0xa6, 0x53, 0xc7, 0xc6, 0x33, 0x79, 0x44, 0x69, + 0x22, 0xfc, 0x4e, 0x70, 0x1d, 0x54, 0x13, 0x0f, 0x60, 0x29, 0x4d, 0x7d, 0x0f, 0x18, 0xee, 0xa0, + 0xf4, 0xe5, 0x71, 0x2d, 0xc5, 0x68, 0xec, 0x81, 0xc4, 0xc3, 0x23, 0x95, 0x33, 0x5e, 0xf3, 0x96, + 0xec, 0x0e, 0x17, 0x1c, 0x89, 0xb8, 0xb7, 0x55, 0xbe, 0xd7, 0x2d, 0x51, 0x88, 0x43, 0x73, 0x89, + 0xa8, 0xf1, 0xbc, 0x1b, 0x48, 0x38, 0xb5, 0xf1, 0x44, 0xb8, 0xb4, 0xac, 0x21, 0x55, 0xd8, 0xfc, + 0xe1, 0x7e, 0xcd, 0xb5, 0x76, 0x5b, 0x77, 0x62, 0xdc, 0xc9, 0x7e, 0x5b, 0xa6, 0xbc, 0x89, 0xdc, + 0x9d, 0x9c, 0x2a, 0x7a, 0xd1, 0x12, 0xfe, 0x58, 0x63, 0x1f, 0x98, 0xe0, 0x96, 0x88, 0xf4, 0xd1, + 0x2c, 0x51, 0xad, 0x6b, 0xa9, 0xe2, 0x48, 0x97, 0xdf, 0xec, 0x57, 0xb6, 0x1c, 0x7d, 0x33, 0xf3, + 0x23, 0x78, 0x26, 0x89, 0xff, 0xf2, 0x84, 0x38, 0xca, 0x17, 0x75, 0x92, 0x71, 0xe5, 0x9d, 0xff, + 0x1d, 0x61, 0x0d, 0x31, 0x55, 0x73, 0xd1, 0x2d, 0x2d, 0x64, 0x30, 0x52, 0xd3, 0x7e, 0x35, 0x0d, + 0x46, 0x24, 0x19, 0x5f, 0xd9, 0x46, 0x70, 0x54, 0x82, 0xe0, 0x48, 0x62, 0x38, 0xca, 0x45, 0xbc, + 0x90, 0xf3, 0x7b, 0xcd, 0xcf, 0x31, 0x92, 0x5f, 0x85, 0x3d, 0x55, 0xb2, 0x85, 0x5d, 0x80, 0x0e, + 0xe8, 0x49, 0xb4, 0xaa, 0xe7, 0xe2, 0xd5, 0xc2, 0xc8, 0x85, 0xb1, 0x61, 0xc1, 0x9b, 0xf2, 0x33, + 0xa6, 0xa4, 0x52, 0xda, 0xbd, 0x3f, 0x1a, 0x43, 0x32, 0xf2, 0xd0, 0x15, 0x62, 0x30, 0x74, 0x10, + 0x43, 0x77, 0xce, 0xd0, 0x0b, 0xc1, 0x17, 0xf8, 0x3c, 0xe6, 0x99, 0xfd, 0x11, 0x1e, 0x42, 0x5d, + 0x46, 0x9d, 0x06, 0x97, 0x92, 0x90, 0x61, 0xa5, 0x40, 0x22, 0x77, 0xe6, 0xf3, 0x4f, 0x3a, 0x6c, + 0xd0, 0x28, 0xa0, 0x46, 0xc2, 0x25, 0x4c, 0xc3, 0x13, 0x5e, 0x6f, 0xec, 0xb8, 0x0e, 0xba, 0xe2, + 0x90, 0xb8, 0xd6, 0x0c, 0x12, 0xc4, 0x68, 0xc9, 0x22, 0xee, 0x72, 0x7e, 0x05, 0x57, 0xe8, 0x72, + 0xef, 0x08, 0xa6, 0x4e, 0x72, 0x61, 0x35, 0x39, 0x24, 0xda, 0x2f, 0x39, 0xbf, 0x99, 0xc8, 0x04, + 0x9d, 0x09, 0xfa, 0xc1, 0x31, 0xc6, 0x68, 0xf6, 0x0d, 0x00, 0xc0, 0x86, 0xed, 0x82, 0x5f, 0x06, + 0xb5, 0xa8, 0x94, 0xe9, 0xc5, 0xb5, 0xf5, 0xc0, 0xd0, 0x11, 0xb1, 0xd9, 0x22, 0x71, 0x4b, 0x0c, + 0x8a, 0x12, 0x49, 0x60, 0x67, 0xec, 0x4d, 0xe2, 0xe4, 0x48, 0x04, 0x57, 0x69, 0x76, 0xe3, 0x65, + 0x24, 0x76, 0x86, 0x60, 0xbe, 0x13, 0xc7, 0x66, 0xd1, 0xee, 0xf1, 0x99, 0x4f, 0x13, 0xed, 0x18, + 0xde, 0x19, 0x91, 0x59, 0xbf, 0x8c, 0xdd, 0x91, 0x23, 0x90, 0xa3, 0x68, 0x66, 0xae, 0x3f, 0x16, + 0x09, 0x0e, 0x10, 0x99, 0x4e, 0x73, 0x59, 0x41, 0xa5, 0x3c, 0x2d, 0xb8, 0x3a, 0x97, 0x61, 0x7f, + 0x87, 0x3d, 0xf0, 0xe5, 0xad, 0x88, 0xd3, 0x45, 0xb0, 0x98, 0x7f, 0x70, 0x65, 0xf8, 0x63, 0x61, + 0x05, 0x01, 0x2e, 0x74, 0x7e, 0xdf, 0x87, 0x24, 0xcd, 0xf7, 0x4e, 0xee, 0x40, 0x52, 0xb6, 0x03, + 0xf2, 0x9a, 0x80, 0x77, 0xdb, 0x5d, 0xd2, 0xf3, 0x2f, 0x18, 0x0f, 0x2f, 0x50, 0xc1, 0xf0, 0x2a, + 0xdb, 0x96, 0x57, 0x8e, 0x01, 0xfb, 0xfe, 0x19, 0x86, 0x64, 0xf3, 0x64, 0xd3, 0xf0, 0x2a, 0xfb, + 0xbd, 0x43, 0x3a, 0x33, 0x5e, 0xae, 0xca, 0x29, 0xf1, 0x1e, 0x2d, 0xe8, 0x15, 0x6e, 0x5b, 0xfb, + 0xee, 0x64, 0x53, 0xe2, 0x1b, 0x99, 0xd1, 0xe6, 0x66, 0xa0, 0xa1, 0xa7, 0x1d, 0x7d, 0xa8, 0x52, + 0x33, 0x97, 0x89, 0xdc, 0x5c, 0xde, 0x15, 0x36, 0x06, 0x2a, 0x6f, 0xdc, 0x19, 0x80, 0xda, 0x75, + 0xcf, 0xbe, 0x40, 0x1a, 0x3c, 0xa5, 0x6e, 0x42, 0xe9, 0xba, 0x09, 0x5d, 0x72, 0xde, 0xe9, 0x0e, + 0xbc, 0x51, 0xcc, 0xc8, 0x64, 0xb3, 0xa3, 0x9f, 0x40, 0x56, 0xb2, 0x7d, 0xba, 0x46, 0xeb, 0xe8, + 0x81, 0xad, 0x0a, 0xe7, 0xfb, 0xb6, 0x37, 0xeb, 0x24, 0x10, 0x3f, 0xc7, 0x9c, 0x3b, 0xb9, 0xb7, + 0x89, 0xae, 0x89, 0xe7, 0x29, 0x39, 0xe4, 0x18, 0x7f, 0x1b, 0x62, 0x07, 0x3e, 0x3c, 0x75, 0xb9, + 0x9b, 0x68, 0x25, 0xdb, 0xc2, 0x6b, 0x18, 0xaf, 0xb1, 0x76, 0x4c, 0xfb, 0xc7, 0x92, 0x1e, 0x2f, + 0x43, 0x76, 0xe0, 0xfa, 0x89, 0xf6, 0xdf, 0x71, 0xb0, 0xb0, 0x44, 0x16, 0x69, 0x6f, 0xbd, 0xcf, + 0xeb, 0xea, 0x90, 0x8b, 0xae, 0x24, 0x5c, 0xa3, 0x53, 0xaa, 0x6c, 0xb4, 0xcd, 0x65, 0xd7, 0x3c, + 0x53, 0xd5, 0x1f, 0xb1, 0x69, 0xce, 0xdb, 0x11, 0x3f, 0xee, 0x6e, 0x99, 0x57, 0x4e, 0x79, 0xaa, + 0x0b, 0xfa, 0x22, 0xd6, 0x11, 0xb3, 0xc5, 0x85, 0xe5, 0x78, 0xa9, 0xbf, 0xc2, 0x9f, 0xad, 0x78, + 0xa5, 0x40, 0xb8, 0x1e, 0xdd, 0x64, 0x15, 0x80, 0x28, 0x15, 0xf9, 0x09, 0xeb, 0xf2, 0x0c, 0x22, + 0xed, 0x18, 0x6c, 0x60, 0xe5, 0x3f, 0x9d, 0x23, 0x31, 0xf2, 0x96, 0x29, 0xa9, 0x58, 0xb6, 0xcd, + 0x02, 0xc8, 0x09, 0x6a, 0x1c, 0xdd, 0x0e, 0x43, 0x4f, 0xac, 0x63, 0xe1, 0xe6, 0xea, 0xc1, 0x1f, + 0x73, 0x0d, 0x67, 0x5a, 0x77, 0x42, 0x81, 0x01, 0x04, 0xf1, 0x2b, 0x7f, 0x5e, 0xb0, 0x5c, 0x69, + 0xb8, 0x16, 0xa9, 0x80, 0x21, 0x4e, 0xcd, 0xd2, 0x9f, 0x69, 0xe2, 0xa2, 0x9d, 0x5a, 0xe0, 0x70, + 0xe1, 0xe3, 0x34, 0x84, 0x8c, 0x61, 0x52, 0x87, 0xec, 0x86, 0x37, 0x43, 0x4d, 0xfa, 0x07, 0x2c, + 0xb9, 0xf7, 0x40, 0xd1, 0xea, 0xe0, 0xad, 0xdf, 0xab, 0x5b, 0x42, 0xb6, 0x77, 0xd8, 0x56, 0x79, + 0xfb, 0x0e, 0x1d, 0x9e, 0x0e, 0x92, 0x07, 0x53, 0xae, 0xb6, 0xed, 0xb0, 0x92, 0x33, 0x44, 0x22, + 0xee, 0x0a, 0xee, 0x5f, 0x96, 0xbb, 0x6b, 0x9a, 0x54, 0x8f, 0x6f, 0xd2, 0x14, 0xec, 0x25, 0xed, + 0xd1, 0x94, 0xdd, 0xfe, 0x17, 0x92, 0x26, 0xf9, 0x7b, 0x17, 0x11, 0xcf, 0xa0, 0xee, 0xb1, 0xff, + 0xcd, 0x03, 0x29, 0x6e, 0x82, 0x4e, 0x31, 0xfd, 0x17, 0x25, 0xc1, 0x32, 0xa8, 0xf3, 0x1e, 0xe1, + 0x6b, 0xa1, 0x65, 0x28, 0xf5, 0x49, 0x62, 0xcd, 0x95, 0x36, 0x1b, 0x29, 0xe6, 0x19, 0xa4, 0x98, + 0xe5, 0xce, 0x72, 0x51, 0x96, 0x6d, 0x66, 0x59, 0xa5, 0xa2, 0x1f, 0xc1, 0x13, 0x35, 0x29, 0x23, + 0x4e, 0x65, 0xbd, 0x87, 0xcc, 0x41, 0xc2, 0x94, 0x27, 0x31, 0xbc, 0xdd, 0x51, 0xa8, 0x6e, 0x53, + 0xd0, 0x0b, 0x55, 0x29, 0xa4, 0xa8, 0x63, 0xdf, 0x87, 0x3c, 0x5f, 0xc7, 0xf2, 0x2f, 0x4a, 0xf2, + 0xd5, 0x28, 0x25, 0x8a, 0x51, 0xf7, 0x83, 0xb5, 0x58, 0x58, 0xc4, 0xf6, 0xc3, 0x50, 0x96, 0x7e, + 0x98, 0x1e, 0x88, 0xe4, 0xe7, 0x15, 0x19, 0x7d, 0x80, 0xe4, 0x94, 0x28, 0x51, 0x1c, 0xfa, 0x50, + 0xe0, 0xa0, 0x37, 0x49, 0xdb, 0x0b, 0x9c, 0x40, 0x65, 0x27, 0xf6, 0x12, 0x61, 0xee, 0xa0, 0x80, + 0xbd, 0x1a, 0xa2, 0xe0, 0xef, 0xe5, 0x6c, 0x62, 0xc7, 0x7f, 0xc3, 0xac, 0xde, 0x04, 0xc3, 0x88, + 0x73, 0x1c, 0x4b, 0xc1, 0xbd, 0xdf, 0x14, 0x5c, 0x65, 0x43, 0x72, 0x46, 0xf9, 0xda, 0xfc, 0x80, + 0x0a, 0x75, 0x0f, 0xa9, 0x5f, 0xe4, 0x20, 0xd3, 0x42, 0xa7, 0xce, 0x42, 0x3f, 0x8a, 0xa6, 0xd6, + 0x84, 0xbd, 0x26, 0x97, 0xfb, 0xf7, 0x42, 0x77, 0x32, 0x04, 0x04, 0x7f, 0xae, 0x6a, 0x83, 0xb9, + 0xfb, 0xf3, 0x5d, 0xcc, 0x7d, 0x73, 0xb7, 0xcf, 0xdc, 0xe0, 0xef, 0xdd, 0x91, 0x45, 0x84, 0x68, + 0x65, 0x3b, 0xe5, 0xd6, 0x72, 0x59, 0x0c, 0x51, 0x2d, 0xce, 0xd8, 0x7c, 0x8d, 0xb1, 0xdb, 0xf7, + 0xc2, 0x54, 0x90, 0x9b, 0x09, 0x54, 0xe3, 0x20, 0x3c, 0x3e, 0xb3, 0x44, 0xc9, 0xcf, 0xe5, 0x4f, + 0x83, 0x6d, 0x76, 0x4a, 0xee, 0xaf, 0x5e, 0x51, 0xc0, 0x1d, 0x62, 0x84, 0x77, 0x5c, 0x11, 0x12, + 0xfc, 0xf7, 0xdc, 0x59, 0xed, 0xb6, 0xa5, 0xfb, 0xe1, 0xeb, 0x8a, 0x5e, 0x29, 0x21, 0x84, 0x44, + 0xb0, 0xdb, 0xb9, 0x79, 0x02, 0xfa, 0xfe, 0x63, 0x59, 0x36, 0xf0, 0xd1, 0x72, 0x62, 0xde, 0xd8, + 0x00, 0x4b, 0xab, 0xec, 0x39, 0x06, 0xfd, 0x1e, 0x96, 0x7a, 0x4f, 0x12, 0x80, 0xaf, 0x09, 0x4f, + 0x21, 0x53, 0xa0, 0xca, 0xf6, 0xb9, 0x9d, 0xd1, 0xd2, 0x0b, 0x9d, 0xa8, 0x2c, 0x80, 0x82, 0xdc, + 0xf9, 0x8d, 0x04, 0xfc, 0x75, 0x1d, 0xa8, 0x92, 0x30, 0xd2, 0xf1, 0xc5, 0xa8, 0x88, 0xa7, 0x43, + 0x0b, 0x1c, 0xba, 0xcd, 0x72, 0xa6, 0xf3, 0xda, 0x41, 0xca, 0xb3, 0xfb, 0xfc, 0x91, 0xcc, 0x44, + 0x99, 0x9e, 0x6c, 0xda, 0xff, 0x20, 0x12, 0x6b, 0x5f, 0xe6, 0xb8, 0xdc, 0x06, 0xcb, 0x8e, 0x0e, + 0x96, 0x9e, 0x14, 0xa4, 0x5b, 0xd3, 0xe2, 0x15, 0xff, 0xf9, 0xae, 0x64, 0xea, 0x95, 0x63, 0xe6, + 0xb9, 0x5c, 0xeb, 0x95, 0x03, 0x85, 0x28, 0xe4, 0x57, 0x8e, 0x14, 0xa2, 0x84, 0x2b, 0xe5, 0xa7, + 0x0a, 0x79, 0xc5, 0x92, 0x4e, 0x0f, 0x84, 0x93, 0x9d, 0x87, 0x7c, 0xa5, 0xde, 0x39, 0xbb, 0x93, + 0xf5, 0x0e, 0x8c, 0x81, 0x64, 0x1d, 0x4c, 0xeb, 0x11, 0xaa, 0x2e, 0x17, 0x5c, 0x0f, 0x54, 0x0d, + 0x3b, 0xa2, 0xe8, 0x76, 0x7e, 0x5c, 0xd9, 0x4c, 0x90, 0xcf, 0x86, 0x45, 0x0f, 0x23, 0xc3, 0x1a, + 0xac, 0xf8, 0xe9, 0xe4, 0x11, 0x97, 0x7a, 0xc2, 0x97, 0x3f, 0x31, 0xeb, 0x1c, 0x41, 0x31, 0xa3, + 0x4a, 0x62, 0xc4, 0xc3, 0x32, 0xa5, 0xbe, 0xe2, 0xd7, 0x2d, 0x89, 0xf2, 0x14, 0x5a, 0x01, 0xf6, + 0x23, 0x16, 0xfe, 0x23, 0x0c, 0x56, 0xf7, 0xa8, 0x77, 0x25, 0x19, 0x62, 0xb9, 0x4f, 0xd6, 0x2a, + 0x22, 0x38, 0x52, 0xdd, 0xb3, 0x14, 0x09, 0xb8, 0x87, 0xc7, 0x7b, 0x37, 0xa0, 0x4b, 0x14, 0x1f, + 0x17, 0xbf, 0xc4, 0x73, 0x97, 0xae, 0x53, 0x45, 0x3a, 0x86, 0x50, 0x1c, 0x9f, 0xc5, 0x2e, 0x1d, + 0x7b, 0x9b, 0xa0, 0x13, 0xc7, 0x63, 0x34, 0x52, 0x39, 0xbf, 0x87, 0x02, 0xa2, 0x92, 0x09, 0xfa, + 0xfd, 0xed, 0xe8, 0xd5, 0x82, 0xc8, 0x9e, 0xf2, 0x6a, 0x10, 0x7f, 0x1c, 0x91, 0xc4, 0x6c, 0x11, + 0xb8, 0x79, 0xfa, 0x95, 0xf2, 0xdc, 0xb0, 0x41, 0xc9, 0x3f, 0x9f, 0x1b, 0xd2, 0x64, 0x2f, 0x3d, + 0xdd, 0x72, 0x6f, 0x40, 0xe1, 0xc2, 0x53, 0x80, 0xb2, 0xbc, 0x10, 0xf7, 0x08, 0xfe, 0x4f, 0x36, + 0x1f, 0xea, 0xb8, 0x9f, 0x92, 0x2b, 0x93, 0xc5, 0x4f, 0x38, 0x26, 0x64, 0xeb, 0xb8, 0x15, 0x83, + 0xfb, 0x32, 0xf8, 0x1b, 0xae, 0xff, 0x03, 0x0d, 0x22, 0xe8, 0x1f, 0xd3, 0x55, 0x00, 0x00 }; @@ -1424,418 +1425,435 @@ const uint8_t PAGE_settings_time[] PROGMEM = { // Autogenerated from wled00/data/settings_sec.htm, do not edit!! -const uint16_t PAGE_settings_sec_length = 2355; +const uint16_t PAGE_settings_sec_length = 2406; const uint8_t PAGE_settings_sec[] PROGMEM = { 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xa5, 0x58, 0x6d, 0x53, 0xdb, 0x48, - 0x12, 0xfe, 0xee, 0x5f, 0x31, 0x4c, 0xaa, 0x58, 0xfb, 0x56, 0x58, 0x86, 0xe4, 0xb6, 0x12, 0xb0, - 0x9c, 0x83, 0xe0, 0x6c, 0xb8, 0x82, 0x40, 0x61, 0xb3, 0xb9, 0xab, 0x5c, 0x6a, 0x6b, 0x2c, 0x8d, - 0xad, 0x89, 0x65, 0x8d, 0x76, 0x66, 0x84, 0xe3, 0xcb, 0xee, 0x7f, 0xbf, 0xa7, 0x47, 0x92, 0x5f, - 0x08, 0x49, 0x2a, 0x75, 0x1f, 0x00, 0xcd, 0x5b, 0xf7, 0xf4, 0xd3, 0xdd, 0x4f, 0xf7, 0xd0, 0xdf, - 0x3b, 0xbf, 0x7e, 0x35, 0xfe, 0xf7, 0xcd, 0x90, 0xa5, 0x6e, 0x91, 0x0d, 0xfa, 0xf4, 0x9b, 0x65, - 0x22, 0x9f, 0x45, 0x5c, 0xe6, 0x1c, 0x63, 0x29, 0x92, 0x41, 0x7f, 0x21, 0x9d, 0x60, 0xb9, 0x58, - 0xc8, 0x88, 0xdf, 0x2b, 0xb9, 0x2c, 0xb4, 0x71, 0x9c, 0xc5, 0x3a, 0x77, 0x32, 0x77, 0x11, 0x5f, - 0xaa, 0xc4, 0xa5, 0xd1, 0xdf, 0x7b, 0x3d, 0x3e, 0x68, 0x55, 0x5b, 0x5b, 0x0f, 0xd6, 0x12, 0x79, - 0xaf, 0x62, 0x79, 0xe0, 0x07, 0x81, 0xca, 0x95, 0x53, 0x22, 0x3b, 0xb0, 0xb1, 0xc8, 0x64, 0x74, - 0x18, 0x2c, 0xc4, 0x27, 0xb5, 0x28, 0x17, 0xeb, 0x71, 0x69, 0xa5, 0xf1, 0x03, 0x31, 0xc1, 0x38, - 0xd7, 0x9c, 0xb5, 0x1e, 0xa8, 0xae, 0x2f, 0x14, 0xa7, 0xc2, 0x58, 0x09, 0x25, 0xa5, 0x9b, 0x1e, - 0x3c, 0xc7, 0xac, 0x53, 0x2e, 0x93, 0x83, 0x2b, 0x65, 0x63, 0x36, 0x92, 0xce, 0xa9, 0x7c, 0x66, - 0xfb, 0x61, 0x35, 0xd9, 0xb7, 0xb1, 0x51, 0x85, 0x1b, 0xb4, 0xee, 0x85, 0x61, 0x99, 0x8e, 0x55, - 0x11, 0x38, 0xb5, 0x90, 0xba, 0x74, 0x41, 0x12, 0x25, 0x3a, 0x2e, 0x17, 0xb8, 0x6e, 0x80, 0x85, - 0x68, 0xef, 0xf0, 0x64, 0x5a, 0xe6, 0xb1, 0x53, 0x3a, 0x67, 0x6f, 0xda, 0x9d, 0xcf, 0x4b, 0x95, - 0x27, 0x7a, 0xd9, 0xd5, 0x85, 0xcc, 0xdb, 0x3c, 0x75, 0xae, 0xb0, 0xc7, 0x61, 0x38, 0xcf, 0x75, - 0x77, 0x99, 0xc9, 0xa4, 0x3b, 0x93, 0xe1, 0x54, 0x0a, 0x57, 0x1a, 0x69, 0x43, 0x5b, 0xeb, 0x0c, - 0x9f, 0x58, 0x19, 0x97, 0x46, 0xb9, 0xd5, 0x41, 0x33, 0xc5, 0x3b, 0x7f, 0xad, 0x85, 0x9e, 0x3d, - 0x14, 0xba, 0x3e, 0xc8, 0x03, 0xfe, 0xbb, 0x95, 0xd9, 0x74, 0x7b, 0xf7, 0xdd, 0x17, 0xbb, 0xcb, - 0x22, 0x11, 0x4e, 0x3e, 0xb6, 0x77, 0x76, 0x91, 0xb4, 0x65, 0xe7, 0xb3, 0x91, 0xb8, 0x4f, 0xce, - 0xe8, 0x72, 0x6e, 0x98, 0x49, 0xb2, 0xec, 0x6c, 0xe5, 0x97, 0x36, 0x5b, 0x95, 0xbd, 0x9e, 0x7c, - 0xdc, 0xda, 0x2c, 0xf7, 0xf7, 0xb9, 0x9e, 0x7c, 0x94, 0xb1, 0xe3, 0x51, 0xe4, 0x56, 0x85, 0xd4, - 0x53, 0x9a, 0xdb, 0x3b, 0x35, 0x46, 0xac, 0xba, 0xca, 0xfa, 0xbf, 0x3b, 0x12, 0x32, 0x2d, 0x92, - 0x7f, 0x8e, 0xda, 0x32, 0x70, 0xd1, 0x5e, 0xaf, 0xf3, 0x39, 0x93, 0x8e, 0xe9, 0x28, 0xe9, 0xc6, - 0x06, 0x70, 0xc8, 0x5a, 0x6d, 0x9b, 0x57, 0xb0, 0xf3, 0xce, 0x89, 0xee, 0xc2, 0xca, 0x53, 0xe7, - 0x8c, 0x9a, 0x94, 0x4e, 0x62, 0xc1, 0xc4, 0x3c, 0x90, 0x9d, 0xe0, 0xe1, 0x3c, 0xe9, 0x86, 0x6d, - 0x4e, 0x7e, 0x72, 0xe1, 0x47, 0x71, 0x2f, 0x1a, 0x01, 0x5f, 0x6c, 0x14, 0x76, 0x95, 0x43, 0x84, - 0xeb, 0x04, 0x49, 0x77, 0xa2, 0x93, 0x55, 0x57, 0x14, 0xc0, 0x27, 0x79, 0x95, 0xaa, 0x2c, 0x69, - 0x6b, 0xda, 0x2f, 0x92, 0x64, 0x78, 0x8f, 0x5b, 0x5c, 0x2a, 0x8b, 0x60, 0x94, 0xa6, 0xcd, 0xe9, - 0xce, 0x3c, 0x68, 0x77, 0xa2, 0xc1, 0xe7, 0x5f, 0xa5, 0xfb, 0xad, 0xdd, 0xf9, 0xeb, 0xf1, 0x7d, - 0xd2, 0x18, 0x6d, 0x70, 0x3d, 0xec, 0x43, 0x24, 0x5b, 0x9d, 0xc9, 0x6e, 0xa6, 0x67, 0x6d, 0x3e, - 0xa4, 0x79, 0x56, 0x1b, 0x0f, 0x8f, 0xb1, 0xa9, 0xca, 0xa4, 0x37, 0x03, 0xa1, 0x6b, 0x60, 0xee, - 0x65, 0x3d, 0x0f, 0xf4, 0x70, 0x70, 0xaa, 0x66, 0xa5, 0x11, 0x1e, 0xad, 0xca, 0x0c, 0x36, 0x15, - 0x8a, 0xa2, 0xe6, 0x3f, 0xf9, 0x45, 0x1e, 0xeb, 0x45, 0x01, 0xd0, 0x24, 0x2b, 0xc4, 0x4c, 0x32, - 0xb8, 0x54, 0xec, 0xc1, 0x97, 0x5b, 0x00, 0xdb, 0x54, 0x2f, 0xc7, 0x5a, 0x58, 0x57, 0x61, 0x7c, - 0xd8, 0xf9, 0x4c, 0xb1, 0xab, 0x23, 0xf2, 0x32, 0x77, 0xb4, 0xe0, 0x61, 0x55, 0x39, 0xae, 0xfc, - 0x66, 0x7c, 0x75, 0x19, 0x49, 0xd8, 0x12, 0x67, 0xc2, 0x5a, 0x32, 0x84, 0xac, 0x6a, 0xbb, 0x97, - 0xb5, 0x29, 0xc7, 0x9c, 0xa4, 0x01, 0xc5, 0x38, 0x93, 0xc2, 0x8c, 0xab, 0xc8, 0x6f, 0xd7, 0x19, - 0xe0, 0xb1, 0x75, 0x2b, 0x18, 0x29, 0x72, 0xb5, 0xf0, 0xf7, 0x8d, 0x78, 0xae, 0x73, 0x58, 0x56, - 0xef, 0x88, 0x00, 0x7d, 0x73, 0xa8, 0xdd, 0x5c, 0x10, 0x81, 0xb9, 0xad, 0xcf, 0xc8, 0x85, 0xbe, - 0x27, 0xc7, 0x7a, 0x45, 0x00, 0xf6, 0xe8, 0x45, 0xaf, 0xb7, 0x65, 0x4e, 0x59, 0x10, 0x68, 0xaf, - 0x61, 0x3f, 0xd9, 0xd3, 0x18, 0x93, 0xcb, 0x25, 0xfb, 0xd7, 0xd5, 0xe5, 0x1b, 0xe4, 0xd5, 0xad, - 0xfc, 0xa3, 0x94, 0xd6, 0x9d, 0x7c, 0xc3, 0x71, 0x5b, 0xaa, 0x37, 0xe8, 0xb8, 0x54, 0x59, 0x68, - 0xb7, 0x05, 0x3c, 0x25, 0xc7, 0x88, 0x9b, 0xc0, 0xcf, 0x58, 0x87, 0xb4, 0xb4, 0x83, 0xe8, 0x19, - 0xdd, 0xa2, 0xf3, 0x4d, 0x3f, 0x6f, 0xe4, 0xca, 0x6d, 0xc1, 0x92, 0x64, 0xc4, 0xf3, 0x60, 0xaf, - 0x11, 0x50, 0x25, 0xe0, 0xcd, 0xf5, 0x68, 0x8c, 0x08, 0x0d, 0x2b, 0x83, 0xe0, 0x03, 0xb2, 0x24, - 0xf7, 0x96, 0xbc, 0xd6, 0x66, 0x71, 0x0e, 0x4f, 0x9e, 0xd4, 0x59, 0x95, 0xd7, 0x41, 0xd9, 0xe6, - 0xe4, 0x5f, 0x04, 0x4a, 0x97, 0x02, 0xc6, 0xbe, 0xef, 0x7d, 0x08, 0x2a, 0xd4, 0x69, 0x2d, 0xef, - 0x60, 0xfe, 0x5e, 0x64, 0x25, 0x28, 0x8e, 0x07, 0x7b, 0x87, 0x1b, 0xc8, 0xe2, 0x54, 0xc6, 0xf3, - 0xb7, 0xe5, 0x62, 0x93, 0xa7, 0x7b, 0xed, 0x3d, 0x49, 0x26, 0x74, 0xe7, 0x72, 0xd5, 0x85, 0xab, - 0xe2, 0xb4, 0x1d, 0xbe, 0xef, 0x1d, 0xbc, 0xf8, 0x10, 0x76, 0x90, 0xac, 0xef, 0xf9, 0x19, 0xee, - 0x6b, 0x0b, 0x11, 0x53, 0x0a, 0x8d, 0xc5, 0x04, 0xbf, 0x87, 0x20, 0x62, 0x98, 0xc8, 0x47, 0xa9, - 0x9a, 0x3a, 0xfc, 0x7d, 0x05, 0x66, 0x36, 0x3a, 0xc3, 0xd7, 0x69, 0x46, 0xe3, 0x1b, 0x01, 0xbe, - 0xa5, 0x79, 0x51, 0xd8, 0x4b, 0x1d, 0xcf, 0xe9, 0x08, 0xc8, 0xd7, 0x27, 0xe1, 0xa8, 0x96, 0x74, - 0x83, 0x08, 0xbd, 0x2b, 0xea, 0x8f, 0x73, 0xbd, 0xcc, 0xbd, 0x5c, 0x38, 0x84, 0xbf, 0xd1, 0x0b, - 0xda, 0x00, 0x76, 0xd0, 0xcb, 0x4b, 0xe9, 0x15, 0xf8, 0x6f, 0xbf, 0xdb, 0x7f, 0xdd, 0xaa, 0x59, - 0xba, 0x9e, 0xae, 0xcf, 0x5e, 0xc0, 0x51, 0x86, 0x26, 0xcf, 0x25, 0x65, 0x00, 0xff, 0x80, 0x20, - 0x8e, 0xb3, 0x32, 0x91, 0xb6, 0xbd, 0xb6, 0xae, 0xd3, 0xf9, 0xf3, 0xcf, 0x7a, 0x54, 0x18, 0xff, - 0xf7, 0x5c, 0x4e, 0x45, 0x99, 0xb9, 0x76, 0x07, 0x18, 0x6d, 0xc5, 0xd5, 0x08, 0xc1, 0xc0, 0x09, - 0xd6, 0x63, 0x30, 0x57, 0xcd, 0x94, 0xe0, 0x71, 0x1f, 0xc6, 0x38, 0xaa, 0x9d, 0x8e, 0x75, 0xb6, - 0xbf, 0xdf, 0xf6, 0xdc, 0xde, 0x0b, 0xda, 0x9e, 0xfc, 0x23, 0xda, 0x91, 0x8d, 0x9c, 0x36, 0xb0, - 0x88, 0x78, 0xf2, 0xc2, 0xc9, 0x05, 0x85, 0x59, 0x7c, 0x51, 0x70, 0xaf, 0xba, 0xda, 0x86, 0xf3, - 0x8b, 0x02, 0x79, 0x4d, 0x61, 0xcb, 0xae, 0x74, 0x22, 0xbb, 0xec, 0x06, 0x19, 0x64, 0x25, 0x93, - 0x84, 0x2b, 0x7b, 0x77, 0x39, 0x3c, 0x67, 0x17, 0x37, 0xc8, 0xdc, 0x60, 0x47, 0xa2, 0xdd, 0x95, - 0x18, 0x78, 0x69, 0x9d, 0x0e, 0xed, 0xf2, 0xac, 0x49, 0xe2, 0x5f, 0xfa, 0x6a, 0x82, 0x62, 0xc2, - 0x7f, 0xf6, 0xcb, 0xc7, 0x9c, 0x77, 0x7e, 0xde, 0x14, 0x83, 0xd0, 0x76, 0x3f, 0xda, 0x97, 0x45, - 0xf4, 0x0b, 0xf7, 0xf6, 0xb6, 0xfa, 0x61, 0x5d, 0xc2, 0xfa, 0x3e, 0x57, 0x07, 0xff, 0x50, 0x0b, - 0x2a, 0x86, 0xac, 0x34, 0x19, 0x92, 0xce, 0xa7, 0x6f, 0x6c, 0x51, 0x68, 0x4e, 0xb0, 0xd1, 0x6f, - 0xe8, 0x87, 0x55, 0xf1, 0x26, 0x72, 0x04, 0x67, 0x91, 0xe6, 0x88, 0x03, 0x2d, 0x14, 0xca, 0x29, - 0xe2, 0xb4, 0xc5, 0x14, 0xc6, 0xf4, 0xf5, 0xbb, 0xe5, 0x75, 0x71, 0x1f, 0x4d, 0x39, 0x43, 0x69, - 0x4d, 0x35, 0x56, 0x0a, 0x6d, 0xa9, 0xd2, 0x26, 0xea, 0x9e, 0xf9, 0x24, 0x8f, 0xc0, 0x39, 0x80, - 0x63, 0xb9, 0x3b, 0x97, 0xca, 0xac, 0x38, 0xa3, 0xba, 0x0f, 0x52, 0x76, 0xf0, 0x06, 0xd1, 0x77, - 0xc4, 0xab, 0x01, 0x87, 0xd6, 0x38, 0x53, 0xf1, 0x3c, 0xe2, 0x6f, 0x48, 0xed, 0xcb, 0x7e, 0x58, - 0x2d, 0xe0, 0x6a, 0x10, 0x31, 0x78, 0xfc, 0x4c, 0x6b, 0x7d, 0xe8, 0x8c, 0x0e, 0x51, 0x44, 0x6f, - 0xce, 0xed, 0x9c, 0xb0, 0xe5, 0x64, 0xa1, 0x70, 0xc7, 0x91, 0xb8, 0x97, 0x9b, 0x2d, 0xa9, 0x69, - 0xc4, 0xa7, 0x47, 0x83, 0xd6, 0xa8, 0xae, 0xc4, 0x6c, 0x9f, 0xdd, 0xf9, 0xba, 0xc9, 0x80, 0x6f, - 0x59, 0x00, 0x9b, 0xa3, 0x41, 0xd3, 0x23, 0xb0, 0x9b, 0x8b, 0xb7, 0xc7, 0xac, 0xaf, 0xf2, 0xa2, - 0x74, 0xb5, 0xe8, 0x02, 0xc6, 0x2d, 0xb5, 0x49, 0xb8, 0x07, 0x09, 0xeb, 0xeb, 0x26, 0xc4, 0x7f, - 0x5b, 0xf5, 0x5f, 0x7c, 0x3e, 0x03, 0x58, 0xe2, 0x53, 0x26, 0xf3, 0x19, 0x5a, 0x1c, 0x3f, 0x52, - 0xf9, 0xd6, 0x48, 0xe7, 0x08, 0x63, 0x44, 0x23, 0xc8, 0x74, 0x9d, 0xc8, 0xc4, 0x4c, 0x1d, 0xc8, - 0x2a, 0x84, 0x43, 0xf8, 0x60, 0xc5, 0x27, 0xef, 0xdf, 0xa0, 0x86, 0x94, 0x2f, 0x10, 0x60, 0x60, - 0x5e, 0xf4, 0x22, 0x46, 0xc5, 0x9c, 0xf9, 0xce, 0x05, 0x1a, 0xb7, 0x03, 0x4e, 0xb0, 0x67, 0x2c, - 0x51, 0x33, 0xe5, 0x18, 0xb6, 0x4d, 0x90, 0xd9, 0xc0, 0xc4, 0x00, 0x7e, 0x72, 0x89, 0x77, 0x3b, - 0x94, 0xe9, 0x4c, 0x9b, 0xe3, 0x27, 0x53, 0x41, 0xfd, 0xd8, 0xfe, 0x93, 0x17, 0xcf, 0x9f, 0x3f, - 0x3f, 0x61, 0x77, 0xb9, 0xcc, 0x63, 0xb3, 0x2a, 0x9c, 0x4c, 0x98, 0x33, 0x22, 0xb7, 0x0b, 0x65, - 0x2d, 0x65, 0x08, 0x3b, 0x43, 0x05, 0x32, 0xc8, 0xbd, 0xdc, 0xb1, 0x65, 0x2a, 0x51, 0x76, 0x90, - 0x93, 0x31, 0xe1, 0x42, 0xb0, 0x04, 0x2c, 0xd1, 0xec, 0xed, 0xf5, 0x98, 0x81, 0x24, 0xd8, 0x4a, - 0x97, 0x86, 0x4d, 0x44, 0x3e, 0xc7, 0x22, 0x2d, 0x68, 0x13, 0xb0, 0xd1, 0xc5, 0x55, 0xc0, 0xa4, - 0x8b, 0xbb, 0xac, 0x50, 0xf9, 0x5e, 0xab, 0x71, 0xac, 0xf1, 0x3f, 0xc4, 0x27, 0x6c, 0xa9, 0x0c, - 0x24, 0x5a, 0xcb, 0xda, 0xd7, 0xe3, 0xd3, 0x0e, 0xb3, 0x7a, 0xea, 0x96, 0xc2, 0x48, 0x56, 0xb5, - 0x31, 0x0f, 0x70, 0xf7, 0x40, 0x4d, 0xf4, 0xa7, 0x35, 0xdc, 0x6f, 0xaf, 0x2b, 0x0b, 0x6f, 0xe0, - 0x90, 0x22, 0x35, 0x00, 0xe2, 0xab, 0x9e, 0xaa, 0x0e, 0x5c, 0xdf, 0xec, 0x78, 0xe5, 0xe9, 0x51, - 0x8d, 0xd0, 0x58, 0x03, 0x41, 0xea, 0x28, 0x19, 0xae, 0x11, 0x30, 0xc4, 0x3d, 0x6b, 0xba, 0x34, - 0x86, 0x96, 0xc5, 0xa2, 0x78, 0x90, 0x81, 0x2c, 0x97, 0x84, 0x90, 0x66, 0x22, 0xb3, 0xba, 0xc6, - 0xdc, 0xa5, 0x12, 0xd5, 0xdc, 0x18, 0xc0, 0xc2, 0x1a, 0x75, 0x30, 0x15, 0x52, 0xc7, 0xa9, 0x5c, - 0xcf, 0x50, 0xbd, 0x2e, 0xb3, 0x84, 0x4d, 0x24, 0x35, 0xa6, 0xf9, 0x0c, 0x62, 0x3c, 0x9e, 0x50, - 0x87, 0x6e, 0xab, 0x56, 0x9e, 0x74, 0x2b, 0x6c, 0x06, 0xad, 0x73, 0x65, 0x9b, 0xdb, 0x54, 0xfb, - 0x72, 0xed, 0x10, 0x05, 0x04, 0x74, 0xc0, 0x34, 0x54, 0x9a, 0xa5, 0x02, 0xe6, 0x22, 0x67, 0x08, - 0x15, 0xe4, 0x00, 0xee, 0x11, 0x63, 0x60, 0xe4, 0x14, 0x89, 0x97, 0xb2, 0xaa, 0xa3, 0x5e, 0xa3, - 0x49, 0xc8, 0x4f, 0x2a, 0xdc, 0xd5, 0x26, 0xae, 0x29, 0x53, 0x10, 0x70, 0x55, 0x87, 0x41, 0x98, - 0x83, 0x05, 0x56, 0xd5, 0xed, 0xbc, 0x6e, 0x35, 0xf5, 0xea, 0x33, 0x72, 0x13, 0xb6, 0x25, 0xd5, - 0x95, 0x92, 0xbd, 0x7e, 0xa8, 0x06, 0xde, 0xbe, 0x73, 0x99, 0xaf, 0x98, 0x88, 0x63, 0x72, 0x1f, - 0x30, 0x79, 0xa7, 0x5e, 0x2b, 0xd6, 0xf0, 0x13, 0x9d, 0xa6, 0x93, 0x32, 0xf9, 0xaa, 0x0f, 0x6b, - 0x8f, 0xbc, 0xe3, 0x95, 0x34, 0xfa, 0x79, 0x2d, 0x62, 0x50, 0x24, 0x41, 0x0e, 0x39, 0xdf, 0x39, - 0x78, 0x3b, 0xaa, 0x7d, 0x77, 0x9a, 0x65, 0x1b, 0xb5, 0x22, 0x4f, 0x10, 0xb0, 0x74, 0xdc, 0x22, - 0xb6, 0xb0, 0x02, 0xc0, 0x25, 0x05, 0x46, 0x83, 0xad, 0x19, 0xfc, 0x1f, 0xd9, 0x70, 0xba, 0x85, - 0xb7, 0x87, 0x0f, 0x18, 0xe3, 0x32, 0x08, 0x0b, 0x07, 0x27, 0xcf, 0xbd, 0x0f, 0x14, 0x45, 0x45, - 0x2c, 0xa9, 0x9d, 0x03, 0x7b, 0x56, 0xad, 0x5b, 0x13, 0xf9, 0xc4, 0x3e, 0xe9, 0xd3, 0xc1, 0xa8, - 0x89, 0xf2, 0x8a, 0x74, 0x40, 0x37, 0x4f, 0x07, 0xdf, 0xa1, 0xc8, 0x3b, 0x62, 0xbb, 0xd6, 0x95, - 0xc8, 0x4b, 0x91, 0x79, 0xb7, 0x34, 0x47, 0xd7, 0xdc, 0x67, 0x06, 0xc3, 0x2a, 0x82, 0x4f, 0x4d, - 0x52, 0xaa, 0x5c, 0x63, 0xd3, 0xf7, 0xd2, 0xe7, 0x94, 0xd2, 0xa7, 0xbe, 0x13, 0x31, 0x69, 0x59, - 0x80, 0x08, 0x6f, 0xd1, 0x65, 0x69, 0x53, 0x5f, 0x4a, 0x34, 0x4c, 0x3e, 0x71, 0x68, 0x6b, 0xf3, - 0x39, 0x8e, 0xa6, 0x08, 0xb2, 0x88, 0x87, 0x35, 0xc8, 0xa8, 0x42, 0x3a, 0x7f, 0x49, 0x3c, 0xe6, - 0xdb, 0x1d, 0xe6, 0x84, 0x99, 0xd1, 0xa3, 0xab, 0x99, 0x39, 0x98, 0x1a, 0xa8, 0xe2, 0x8d, 0xf8, - 0xfa, 0x54, 0x3f, 0x14, 0x1b, 0x66, 0x1a, 0xd4, 0x1a, 0xd7, 0x8b, 0x3e, 0x4e, 0xb7, 0xee, 0xed, - 0xdb, 0xe8, 0xda, 0xeb, 0xbe, 0x53, 0xf2, 0x41, 0x57, 0x40, 0x8b, 0xd7, 0xce, 0x07, 0xac, 0x01, - 0xaf, 0xf5, 0x38, 0x7a, 0x3f, 0x6d, 0x75, 0x97, 0x49, 0x77, 0x34, 0xed, 0x92, 0x94, 0x60, 0xd7, - 0x06, 0xde, 0xf9, 0x69, 0x70, 0xe7, 0xb7, 0xad, 0x31, 0xad, 0xc2, 0x72, 0xc3, 0x59, 0x5f, 0x82, - 0x51, 0x63, 0x11, 0x4f, 0x67, 0x0f, 0x71, 0x68, 0x7d, 0x07, 0x88, 0x9d, 0xfe, 0xbf, 0x81, 0x63, - 0x07, 0x8d, 0x9d, 0x1d, 0xad, 0xef, 0x82, 0x72, 0xf4, 0x75, 0x54, 0xbe, 0x52, 0x41, 0x1f, 0x45, - 0xe5, 0x28, 0xd8, 0x98, 0xf3, 0x08, 0x24, 0x5b, 0x88, 0x50, 0x16, 0xb5, 0xbe, 0x95, 0x46, 0x95, - 0x21, 0x54, 0x2a, 0x6a, 0x9c, 0xc3, 0xdd, 0x47, 0x8f, 0x4f, 0xcf, 0xeb, 0xdf, 0x86, 0xb7, 0xef, - 0x6e, 0x2f, 0xc6, 0xc3, 0xaa, 0x7e, 0x80, 0x72, 0x0d, 0xd5, 0x9a, 0x47, 0x4f, 0x74, 0x3d, 0x0a, - 0x2d, 0x7a, 0x1c, 0x55, 0x74, 0xbb, 0x2b, 0x6f, 0x21, 0x88, 0x38, 0xfe, 0x28, 0x51, 0x51, 0x50, - 0x08, 0xa7, 0xdb, 0x54, 0xc2, 0xc0, 0xe7, 0x46, 0x1e, 0x78, 0x72, 0xac, 0x1f, 0x60, 0x5e, 0xdd, - 0x70, 0x74, 0xd3, 0xad, 0x73, 0xf3, 0xf5, 0x23, 0x94, 0x1f, 0xac, 0xe9, 0xdb, 0x7a, 0x82, 0x24, - 0x12, 0x9e, 0x50, 0xf6, 0x27, 0xa8, 0x4f, 0xdd, 0x26, 0x73, 0x4e, 0x27, 0x78, 0xf8, 0x34, 0xe9, - 0x52, 0xa7, 0x47, 0xf3, 0x9f, 0x00, 0x94, 0xe2, 0xb4, 0x9c, 0x74, 0xf1, 0x9a, 0x0b, 0x4f, 0x95, - 0x89, 0xb5, 0xd6, 0x73, 0x25, 0x43, 0xea, 0x0b, 0xc3, 0x4d, 0xae, 0xfc, 0x3e, 0xc9, 0x50, 0x36, - 0xf9, 0x80, 0xa6, 0x29, 0x14, 0x5a, 0xec, 0x5e, 0x1a, 0x22, 0x1c, 0xd6, 0xeb, 0x1e, 0x3e, 0xeb, - 0xf6, 0x0e, 0x26, 0x59, 0x6f, 0x4d, 0x5e, 0x3f, 0xa2, 0x62, 0xa9, 0xe6, 0x2a, 0xf4, 0x2d, 0x3d, - 0xbd, 0x8a, 0xb5, 0xb1, 0x07, 0xa0, 0xc7, 0x03, 0xbc, 0xc1, 0x13, 0xe5, 0xec, 0x56, 0x8c, 0x36, - 0x17, 0xd8, 0xde, 0x8a, 0x12, 0x2e, 0xe9, 0x71, 0x02, 0x2a, 0x54, 0xb2, 0xe2, 0x55, 0x5b, 0xc8, - 0x58, 0x81, 0x7e, 0x1c, 0x4a, 0xc4, 0x7c, 0x93, 0xc3, 0xa7, 0x2c, 0x2d, 0x51, 0x41, 0xfc, 0xac, - 0x2f, 0x92, 0xa8, 0x05, 0x68, 0xc9, 0xcd, 0x0a, 0x6f, 0x44, 0x14, 0x2f, 0xcd, 0xa8, 0x0b, 0x04, - 0x64, 0xe0, 0xc9, 0xea, 0xf9, 0xef, 0xfb, 0xe2, 0xbd, 0xc6, 0xa2, 0x56, 0x3b, 0xee, 0xb0, 0xa3, - 0xde, 0xe1, 0x2f, 0x07, 0x47, 0xbd, 0xa3, 0x23, 0xf6, 0x2a, 0x35, 0x78, 0x80, 0x29, 0x10, 0xe9, - 0x28, 0x4e, 0x97, 0xf4, 0x7c, 0xad, 0xeb, 0xd6, 0x25, 0x2a, 0x1a, 0x5e, 0x06, 0x80, 0x1e, 0x97, - 0xaa, 0xca, 0xee, 0x0f, 0x81, 0x31, 0xc9, 0xf4, 0x24, 0x5c, 0xe0, 0xe5, 0x26, 0x4d, 0x78, 0x79, - 0xf1, 0x6a, 0xf8, 0x76, 0x34, 0xfc, 0xd2, 0x05, 0xad, 0xab, 0x8b, 0x31, 0xcb, 0x2a, 0x4d, 0xde, - 0x40, 0xd4, 0xba, 0xe6, 0xa2, 0x23, 0x69, 0x60, 0x15, 0xcc, 0xb0, 0x16, 0x15, 0x13, 0xdc, 0x8a, - 0xa7, 0x54, 0xde, 0x50, 0x82, 0x55, 0x05, 0xa7, 0xd4, 0xf5, 0xcf, 0x4c, 0xe6, 0x5f, 0x8e, 0xc4, - 0xfa, 0xb4, 0xa5, 0xa2, 0x58, 0x4a, 0x17, 0xea, 0x16, 0xab, 0xa7, 0xf9, 0x37, 0x7b, 0xdc, 0x2f, - 0x5b, 0xdc, 0xd6, 0x0f, 0xf5, 0xb8, 0x21, 0x15, 0x1e, 0x40, 0xe6, 0x19, 0xa7, 0xe1, 0xfa, 0x07, - 0x3c, 0xd4, 0x14, 0x40, 0x54, 0xf5, 0x22, 0x13, 0xab, 0x63, 0xff, 0xa0, 0x27, 0x73, 0xfd, 0x32, - 0x3e, 0xe8, 0x5d, 0x40, 0x8f, 0x04, 0xfa, 0xbf, 0xdf, 0xff, 0x00, 0x76, 0x9c, 0x87, 0xd9, 0x07, - 0x14, 0x00, 0x00 + 0x12, 0xfe, 0xee, 0x5f, 0x31, 0x4c, 0xaa, 0x58, 0xeb, 0x22, 0x2c, 0x43, 0x72, 0x5b, 0x09, 0x20, + 0xe7, 0x20, 0x90, 0x0d, 0x57, 0x10, 0x28, 0x6c, 0x36, 0x77, 0x95, 0x4b, 0xa5, 0xc6, 0xd2, 0xd8, + 0x9a, 0x58, 0xd6, 0x68, 0x67, 0x46, 0x38, 0xbe, 0xec, 0xfe, 0xf7, 0x7b, 0x7a, 0x24, 0xd9, 0x86, + 0x40, 0x52, 0xa9, 0xfb, 0x00, 0xb6, 0x46, 0x33, 0xfd, 0xf2, 0x74, 0xf7, 0xd3, 0x3d, 0x3e, 0xdc, + 0x3a, 0xb9, 0x7c, 0x3d, 0xfa, 0xf7, 0xd5, 0x29, 0xcb, 0xdc, 0x3c, 0x1f, 0x1c, 0xd2, 0x7f, 0x96, + 0x8b, 0x62, 0x1a, 0x73, 0x59, 0x70, 0x3c, 0x4b, 0x91, 0x0e, 0x0e, 0xe7, 0xd2, 0x09, 0x56, 0x88, + 0xb9, 0x8c, 0xf9, 0xad, 0x92, 0x8b, 0x52, 0x1b, 0xc7, 0x59, 0xa2, 0x0b, 0x27, 0x0b, 0x17, 0xf3, + 0x85, 0x4a, 0x5d, 0x16, 0xff, 0xbd, 0xdf, 0xe7, 0x83, 0x4e, 0xbd, 0xb5, 0x73, 0xef, 0x5d, 0x2a, + 0x6f, 0x55, 0x22, 0x77, 0xfc, 0x43, 0xa8, 0x0a, 0xe5, 0x94, 0xc8, 0x77, 0x6c, 0x22, 0x72, 0x19, + 0xef, 0x86, 0x73, 0xf1, 0x45, 0xcd, 0xab, 0xf9, 0xea, 0xb9, 0xb2, 0xd2, 0xf8, 0x07, 0x31, 0xc6, + 0x73, 0xa1, 0x39, 0xeb, 0xdc, 0x53, 0xdd, 0x18, 0x94, 0x64, 0xc2, 0x58, 0x09, 0x25, 0x95, 0x9b, + 0xec, 0xbc, 0xc0, 0xaa, 0x53, 0x2e, 0x97, 0x83, 0x0b, 0x65, 0x13, 0x36, 0x94, 0xce, 0xa9, 0x62, + 0x6a, 0x0f, 0xa3, 0x7a, 0xf1, 0xd0, 0x26, 0x46, 0x95, 0x6e, 0xd0, 0xb9, 0x15, 0x86, 0xe5, 0x3a, + 0x51, 0x65, 0xe8, 0xd4, 0x5c, 0xea, 0xca, 0x85, 0x69, 0x9c, 0xea, 0xa4, 0x9a, 0xc3, 0xdc, 0x10, + 0x2f, 0xe2, 0xad, 0xdd, 0x83, 0x49, 0x55, 0x24, 0x4e, 0xe9, 0x82, 0xbd, 0xed, 0x06, 0x5f, 0x17, + 0xaa, 0x48, 0xf5, 0xa2, 0xa7, 0x4b, 0x59, 0x74, 0x79, 0xe6, 0x5c, 0x69, 0xf7, 0xa3, 0x68, 0x56, + 0xe8, 0xde, 0x22, 0x97, 0x69, 0x6f, 0x2a, 0xa3, 0x89, 0x14, 0xae, 0x32, 0xd2, 0x46, 0xb6, 0xd1, + 0x19, 0x3d, 0xb1, 0x32, 0xa9, 0x8c, 0x72, 0xcb, 0x9d, 0x76, 0x89, 0x07, 0x7f, 0xad, 0x84, 0x1e, + 0xdf, 0x17, 0xba, 0x3a, 0xc8, 0x43, 0xfe, 0xc9, 0xca, 0x7c, 0xb2, 0xb9, 0xfb, 0xe6, 0x9b, 0xdd, + 0x55, 0x99, 0x0a, 0x27, 0x1f, 0xda, 0x3b, 0x3d, 0x4b, 0xbb, 0x32, 0xf8, 0x6a, 0x24, 0xec, 0x29, + 0x18, 0x19, 0xe7, 0x4e, 0x73, 0x49, 0x9e, 0x1d, 0x2f, 0xfd, 0xab, 0xf5, 0x56, 0x65, 0x2f, 0xc7, + 0x9f, 0x37, 0x36, 0xcb, 0xed, 0x6d, 0xae, 0xc7, 0x9f, 0x65, 0xe2, 0x78, 0x1c, 0xbb, 0x65, 0x29, + 0xf5, 0x84, 0xd6, 0xb6, 0x8e, 0x8c, 0x11, 0xcb, 0x9e, 0xb2, 0xfe, 0xf3, 0x8e, 0x84, 0x5c, 0x8b, + 0xf4, 0x9f, 0xc3, 0xae, 0x0c, 0x5d, 0xbc, 0xd5, 0x0f, 0xbe, 0xe6, 0xd2, 0x31, 0x1d, 0xa7, 0xbd, + 0xc4, 0x00, 0x0e, 0xd9, 0xa8, 0xed, 0xf2, 0x1a, 0x76, 0x1e, 0x1c, 0xe8, 0x1e, 0xbc, 0x3c, 0x72, + 0xce, 0xa8, 0x71, 0xe5, 0x24, 0x5e, 0x98, 0x84, 0x87, 0x32, 0x08, 0xef, 0xaf, 0x93, 0x6e, 0xf8, + 0xe6, 0xe4, 0x17, 0x17, 0x7d, 0x16, 0xb7, 0xa2, 0x15, 0xf0, 0xcd, 0x46, 0x61, 0x97, 0x05, 0x44, + 0xb8, 0x20, 0x4c, 0x7b, 0x63, 0x9d, 0x2e, 0x7b, 0xa2, 0x04, 0x3e, 0xe9, 0xeb, 0x4c, 0xe5, 0x69, + 0x57, 0xd3, 0x7e, 0x91, 0xa6, 0xa7, 0xb7, 0xb0, 0xe2, 0x5c, 0x59, 0x24, 0xa3, 0x34, 0x5d, 0x4e, + 0x36, 0xf3, 0xb0, 0x1b, 0xc4, 0x83, 0xaf, 0xbf, 0x49, 0xf7, 0x7b, 0x37, 0x08, 0x21, 0xf3, 0x38, + 0x99, 0xbd, 0x51, 0xb9, 0xa4, 0x1c, 0xeb, 0x12, 0x82, 0x7c, 0x9c, 0xcc, 0x92, 0xc9, 0x94, 0x07, + 0x8f, 0xbe, 0x2d, 0x11, 0x6d, 0xe9, 0x10, 0xd4, 0xe0, 0xaf, 0x87, 0xf5, 0x48, 0x63, 0xb4, 0x81, + 0x7b, 0xd0, 0x83, 0x4a, 0xb0, 0x3a, 0x97, 0xbd, 0x5c, 0x4f, 0xbb, 0xfc, 0x94, 0xd6, 0x59, 0x03, + 0x1e, 0x22, 0xce, 0x26, 0x10, 0xed, 0x61, 0x40, 0xea, 0x1b, 0xc0, 0x75, 0xde, 0xac, 0x03, 0x7d, + 0x1c, 0x9c, 0xa8, 0x69, 0x65, 0x84, 0x47, 0xbb, 0x86, 0x81, 0x4d, 0x84, 0xa2, 0xac, 0xfb, 0x4f, + 0x71, 0x56, 0x24, 0x7a, 0x5e, 0x02, 0x74, 0xc9, 0x4a, 0x31, 0x95, 0x0c, 0x29, 0x21, 0xb6, 0x90, + 0x0b, 0x1b, 0x01, 0xb2, 0x99, 0x5e, 0x8c, 0xb4, 0xb0, 0xae, 0x8e, 0xd1, 0x6e, 0xf0, 0x95, 0x72, + 0x5f, 0xc7, 0xde, 0x0b, 0x47, 0x2f, 0x7c, 0x58, 0x54, 0x01, 0x93, 0xdf, 0x8e, 0x2e, 0xce, 0x63, + 0x09, 0x5f, 0x92, 0x5c, 0x58, 0x4b, 0x8e, 0x90, 0x57, 0x5d, 0xf7, 0xaa, 0x71, 0x65, 0x9f, 0x93, + 0x34, 0x44, 0x21, 0xc9, 0xa5, 0x30, 0xa3, 0xba, 0x72, 0xba, 0x4d, 0x05, 0xf9, 0xd8, 0xb8, 0x25, + 0x9c, 0x14, 0x85, 0x9a, 0x7b, 0x7b, 0x63, 0x5e, 0xe8, 0x02, 0x9e, 0x35, 0x3b, 0x62, 0xc0, 0xd5, + 0x1e, 0xea, 0xb6, 0x06, 0x22, 0xb1, 0x37, 0xf5, 0x19, 0x39, 0xd7, 0xb7, 0x94, 0x18, 0x5e, 0x11, + 0x80, 0xdd, 0x7b, 0xd9, 0xef, 0x6f, 0xb8, 0x53, 0x95, 0x04, 0x1a, 0xc5, 0x82, 0xfc, 0x69, 0x9d, + 0x29, 0xe4, 0x82, 0xfd, 0xeb, 0xe2, 0xfc, 0x2d, 0xea, 0xf2, 0x5a, 0xfe, 0x51, 0x49, 0xeb, 0x0e, + 0xbe, 0x13, 0xf8, 0x0d, 0xd5, 0x6b, 0x74, 0x5c, 0xa6, 0x2c, 0xb4, 0xdb, 0x12, 0x91, 0x92, 0x23, + 0xe4, 0x5d, 0xe8, 0x57, 0xac, 0x43, 0x59, 0xdb, 0x41, 0xfc, 0x9c, 0xac, 0x08, 0xbe, 0x1b, 0xe7, + 0xb5, 0x5c, 0xb9, 0x29, 0x58, 0x92, 0x8c, 0x64, 0x16, 0x6e, 0xb5, 0x02, 0xea, 0x02, 0xbe, 0xba, + 0x1c, 0x8e, 0x90, 0xe1, 0x51, 0xed, 0x10, 0x62, 0x40, 0x9e, 0x14, 0xde, 0x93, 0x37, 0xda, 0xcc, + 0x4f, 0x10, 0xc9, 0x83, 0xa6, 0x2a, 0x8b, 0x26, 0xa9, 0xbb, 0x9c, 0xe2, 0x8b, 0x44, 0xe9, 0x51, + 0xc2, 0xd8, 0x0f, 0xfd, 0x8f, 0x61, 0x8d, 0x3a, 0xbd, 0x2b, 0x02, 0xac, 0xdf, 0x8a, 0xbc, 0x02, + 0x45, 0xf2, 0x70, 0x6b, 0x77, 0x0d, 0x59, 0x92, 0xc9, 0x64, 0xf6, 0xae, 0x9a, 0xaf, 0xeb, 0x7c, + 0xab, 0xbb, 0x25, 0xc9, 0x85, 0xde, 0x4c, 0x2e, 0x7b, 0x08, 0x55, 0x92, 0x75, 0xa3, 0x0f, 0xfd, + 0x9d, 0x97, 0x1f, 0xa3, 0x00, 0xc5, 0xfe, 0x81, 0x1f, 0xc3, 0x5e, 0x5b, 0x8a, 0x84, 0x4a, 0x70, + 0x24, 0xc6, 0xf8, 0x7f, 0x0a, 0x22, 0x87, 0x8b, 0x7c, 0x98, 0xa9, 0x89, 0xc3, 0xe7, 0x6b, 0x30, + 0xbb, 0xd1, 0x39, 0xbe, 0x1d, 0xe5, 0xf4, 0x7c, 0x25, 0xc0, 0xd7, 0xb4, 0x2e, 0x4a, 0x7b, 0xae, + 0x93, 0x19, 0x1d, 0x01, 0x79, 0xfb, 0x22, 0x1e, 0x36, 0x92, 0xae, 0x90, 0xa1, 0x37, 0x65, 0xf3, + 0xe5, 0x44, 0x2f, 0x0a, 0x2f, 0x17, 0x01, 0xe1, 0x6f, 0xf5, 0x9c, 0x36, 0x80, 0x5d, 0xf4, 0xe2, + 0x5c, 0x7a, 0x05, 0xfe, 0xbb, 0xdf, 0xed, 0xbf, 0x5d, 0xab, 0x69, 0xb6, 0x5a, 0x6e, 0xce, 0x9e, + 0x21, 0x50, 0x86, 0x16, 0x4f, 0x24, 0x55, 0x00, 0xff, 0x88, 0x24, 0x4e, 0xf2, 0x2a, 0x95, 0xb6, + 0xbb, 0xf2, 0x2e, 0x08, 0xfe, 0xfc, 0xb3, 0x79, 0x42, 0xb9, 0xd2, 0xe7, 0x89, 0x9c, 0x88, 0x2a, + 0x77, 0x28, 0x7a, 0xd4, 0xc2, 0x46, 0x99, 0xdc, 0xad, 0x71, 0x40, 0x25, 0xef, 0x31, 0x0d, 0xb8, + 0xb7, 0xa8, 0x13, 0x88, 0x13, 0xe7, 0x7f, 0xe2, 0x4f, 0x25, 0x51, 0xeb, 0x43, 0x3b, 0x82, 0xa7, + 0x5d, 0xfe, 0xfe, 0xfc, 0xf4, 0x04, 0x24, 0x6a, 0xd3, 0x57, 0x1c, 0x75, 0x83, 0xdd, 0x36, 0x0d, + 0x36, 0xf4, 0x0d, 0x91, 0x7c, 0x9c, 0xc2, 0xb8, 0x8f, 0x4d, 0x0d, 0xb3, 0xa3, 0xef, 0xf8, 0xb2, + 0x81, 0xa9, 0xda, 0xe9, 0x44, 0xe7, 0xdb, 0xdb, 0x5d, 0xdf, 0x8b, 0xfa, 0x61, 0xd7, 0x37, 0xab, + 0x98, 0x76, 0xe4, 0x43, 0xa7, 0x0d, 0x10, 0x24, 0xe5, 0x67, 0x4e, 0xce, 0x29, 0xad, 0x93, 0xb3, + 0x92, 0x7b, 0x57, 0xeb, 0x6d, 0x38, 0x3f, 0x2f, 0xc1, 0x23, 0xe4, 0x0e, 0xbb, 0xd0, 0xa9, 0xec, + 0xb1, 0x2b, 0x54, 0xac, 0x95, 0x4c, 0x52, 0x1c, 0x19, 0xd9, 0xc6, 0xce, 0xae, 0xc0, 0x14, 0xe1, + 0x1d, 0x89, 0xf6, 0xae, 0xc4, 0xd0, 0x4b, 0x0b, 0x02, 0xda, 0xe5, 0x59, 0x9e, 0xc4, 0xbf, 0xf2, + 0xdd, 0x0f, 0xcd, 0x8f, 0x3f, 0xf5, 0xaf, 0xf7, 0x39, 0xdc, 0x5d, 0x37, 0xaf, 0xc8, 0xf6, 0x3e, + 0xdb, 0x57, 0x65, 0xfc, 0x2b, 0xf7, 0xf8, 0x76, 0x0e, 0xa3, 0xa6, 0xe5, 0x1e, 0x7a, 0x6e, 0x18, + 0xfc, 0x43, 0xcd, 0xa9, 0x79, 0xb3, 0xca, 0xe4, 0x28, 0x72, 0x4f, 0x17, 0x89, 0x05, 0x87, 0x1e, + 0x60, 0xa3, 0xdf, 0x70, 0x18, 0xd5, 0xc3, 0x06, 0x91, 0x39, 0x38, 0x92, 0x34, 0xc7, 0x1c, 0x68, + 0xa1, 0xb1, 0x4f, 0x50, 0x17, 0x1d, 0xa6, 0xf0, 0x4c, 0xdf, 0x3e, 0x59, 0xde, 0x0c, 0x23, 0xc3, + 0x09, 0x67, 0x18, 0x05, 0x32, 0x8d, 0x37, 0xa5, 0xb6, 0x34, 0x19, 0xa4, 0xea, 0x96, 0x79, 0x52, + 0x89, 0xc1, 0x71, 0x80, 0x63, 0x71, 0x77, 0x2d, 0x93, 0x79, 0x79, 0x4c, 0x73, 0x0a, 0x02, 0xe7, + 0x10, 0x0d, 0x6a, 0x37, 0x31, 0xaf, 0x1f, 0x38, 0xb4, 0x26, 0xb9, 0x4a, 0x66, 0x31, 0x7f, 0x4b, + 0x6a, 0x5f, 0x1d, 0x46, 0xf5, 0x0b, 0x98, 0x06, 0x11, 0x83, 0x87, 0xcf, 0x74, 0x56, 0x87, 0x8e, + 0xe9, 0x10, 0x55, 0xd0, 0xfa, 0xdc, 0x9d, 0x13, 0xb6, 0x1a, 0xcf, 0x15, 0x6c, 0x1c, 0x8a, 0x5b, + 0xb9, 0xde, 0x92, 0x99, 0x56, 0x7c, 0xb6, 0x37, 0xe8, 0x0c, 0x9b, 0xc9, 0x81, 0x6d, 0xb3, 0x1b, + 0xdf, 0xe7, 0x29, 0x3f, 0xab, 0x12, 0xd8, 0xec, 0x0d, 0xda, 0x99, 0x86, 0x5d, 0x9d, 0xbd, 0xdb, + 0x67, 0x87, 0xaa, 0x28, 0x2b, 0xd7, 0x88, 0x2e, 0xe1, 0xdc, 0x42, 0x9b, 0x94, 0x7b, 0x90, 0xf0, + 0x7e, 0x35, 0x34, 0xf9, 0xef, 0x56, 0xfd, 0x17, 0x5f, 0x9f, 0x03, 0x2c, 0xf1, 0x05, 0x79, 0x3e, + 0xc5, 0x48, 0xe6, 0x9f, 0x54, 0xb1, 0xf1, 0xa4, 0x0b, 0x94, 0x0d, 0x65, 0x72, 0xcc, 0x57, 0xc4, + 0x41, 0x4c, 0x18, 0x40, 0x56, 0x29, 0x1c, 0xd2, 0x07, 0x6f, 0x3c, 0x59, 0xfc, 0x0d, 0x6a, 0x48, + 0xf9, 0x1c, 0x09, 0x06, 0xa6, 0xc7, 0xec, 0x64, 0x54, 0xc2, 0x99, 0x9f, 0xb4, 0xa0, 0x71, 0x33, + 0xe1, 0x04, 0x7b, 0xce, 0x52, 0x35, 0x55, 0x8e, 0x61, 0xdb, 0x18, 0x4c, 0x02, 0x4c, 0x0c, 0xe0, + 0xa7, 0x90, 0xf8, 0xb0, 0x43, 0x99, 0xce, 0xb5, 0xd9, 0x7f, 0x32, 0x11, 0x34, 0x3f, 0x6e, 0x3f, + 0x79, 0xf9, 0xe2, 0xc5, 0x8b, 0x03, 0x76, 0x53, 0xc8, 0x22, 0x31, 0xcb, 0xd2, 0xc9, 0x94, 0x39, + 0x23, 0x0a, 0x3b, 0x57, 0xd6, 0x52, 0x85, 0xb0, 0x63, 0x74, 0x3c, 0x83, 0x5a, 0x2f, 0x1c, 0x5b, + 0x64, 0x92, 0xea, 0x37, 0xc7, 0xd4, 0x42, 0x4d, 0x13, 0xae, 0x86, 0x2c, 0xd5, 0xec, 0xdd, 0xe5, + 0x88, 0x81, 0x94, 0xd8, 0x52, 0x57, 0x86, 0x8d, 0x45, 0x31, 0xc3, 0x4b, 0x7a, 0xa1, 0x4d, 0xc8, + 0x86, 0x67, 0x17, 0x21, 0x93, 0x2e, 0xe9, 0xb1, 0x52, 0x15, 0x5b, 0x9d, 0x36, 0xb0, 0xc6, 0xff, + 0x11, 0x7f, 0xb1, 0x85, 0x32, 0x90, 0x68, 0x2d, 0xeb, 0x5e, 0x8e, 0x8e, 0x02, 0x66, 0xf5, 0xc4, + 0x2d, 0x84, 0x91, 0xac, 0x1e, 0xbb, 0xee, 0xe1, 0xee, 0x81, 0x1a, 0xeb, 0x2f, 0x2b, 0xb8, 0xdf, + 0x5d, 0xd6, 0x1e, 0x5e, 0x21, 0x20, 0x65, 0x66, 0x00, 0xc4, 0xa3, 0x91, 0xaa, 0x0f, 0x5c, 0x5e, + 0xdd, 0x89, 0xca, 0xb3, 0xbd, 0x06, 0xa1, 0x91, 0x06, 0x82, 0x34, 0x01, 0x33, 0x98, 0x11, 0x32, + 0xe4, 0x3d, 0x6b, 0xa7, 0x4a, 0x86, 0x11, 0xcb, 0xa2, 0x59, 0x91, 0x83, 0xac, 0x90, 0x84, 0x90, + 0x66, 0x22, 0xb7, 0xba, 0xc1, 0xdc, 0x65, 0x12, 0xd3, 0x83, 0x31, 0x80, 0x85, 0xb5, 0xea, 0xe0, + 0x2a, 0xa4, 0x8e, 0x32, 0xb9, 0x5a, 0xa1, 0xf9, 0xa0, 0xca, 0x53, 0x36, 0x96, 0x34, 0x48, 0x17, + 0x53, 0x88, 0xf1, 0x78, 0x42, 0x1d, 0xa6, 0xc3, 0x46, 0x79, 0xda, 0xab, 0xb1, 0x19, 0x74, 0x4e, + 0x94, 0x6d, 0xad, 0xa9, 0xf7, 0x15, 0xda, 0x21, 0x0b, 0x08, 0xe8, 0x90, 0x69, 0xa8, 0x34, 0x0b, + 0x05, 0xcc, 0x45, 0xc1, 0x90, 0x2a, 0xa8, 0x01, 0xd8, 0x91, 0xe0, 0xc1, 0xc8, 0x09, 0x0a, 0x2f, + 0x63, 0xf5, 0x0d, 0x60, 0x85, 0x26, 0x21, 0x3f, 0xae, 0x71, 0x57, 0xeb, 0xbc, 0xa6, 0x4a, 0x41, + 0xc2, 0xd5, 0x13, 0x0d, 0x61, 0x0e, 0x16, 0x58, 0xd6, 0xd6, 0x79, 0xdd, 0x6a, 0xe2, 0xd5, 0xe7, + 0x14, 0x26, 0x6c, 0x4b, 0x6b, 0x93, 0xd2, 0xad, 0xc3, 0x48, 0x0d, 0xbc, 0x7f, 0x27, 0xb2, 0x58, + 0x32, 0x91, 0x24, 0x14, 0x3e, 0x60, 0xf2, 0x5e, 0xbd, 0x51, 0xac, 0xe5, 0x27, 0x3a, 0x4d, 0x27, + 0x65, 0xfa, 0x68, 0x0c, 0x9b, 0x88, 0xbc, 0xe7, 0xb5, 0x34, 0xfa, 0x7b, 0x23, 0x12, 0x50, 0x24, + 0x41, 0x0e, 0x39, 0x3f, 0x38, 0x78, 0x3d, 0x6c, 0x62, 0x77, 0x94, 0xe7, 0x6b, 0xb5, 0xa2, 0x48, + 0x59, 0x33, 0x30, 0x22, 0xb7, 0xf0, 0x06, 0x80, 0x4b, 0x4a, 0x8c, 0x16, 0x5b, 0x33, 0xf8, 0x3f, + 0xaa, 0xe1, 0x68, 0x03, 0x6f, 0x0f, 0x1f, 0x30, 0x86, 0x31, 0x48, 0x0b, 0x87, 0x20, 0xcf, 0x7c, + 0x0c, 0x14, 0x65, 0x45, 0x22, 0x69, 0x7c, 0x04, 0x7b, 0xd6, 0xa3, 0x62, 0x9b, 0xf9, 0xc4, 0x3e, + 0xd9, 0xb3, 0xc1, 0xb0, 0xcd, 0xf2, 0x9a, 0x74, 0x40, 0x37, 0xcf, 0x06, 0x3f, 0xa0, 0xc8, 0x1b, + 0x62, 0xbb, 0xce, 0x85, 0x28, 0x2a, 0x91, 0xfb, 0xb0, 0xb4, 0x47, 0x57, 0xdc, 0x67, 0x06, 0xa7, + 0x75, 0x06, 0x1f, 0x99, 0xb4, 0x52, 0x85, 0xc6, 0xa6, 0x1f, 0x95, 0xcf, 0x11, 0x95, 0x4f, 0x63, + 0x13, 0x31, 0x69, 0x55, 0x82, 0x08, 0xaf, 0x31, 0xd5, 0x69, 0xd3, 0x18, 0x25, 0x5a, 0x26, 0x1f, + 0x3b, 0x8c, 0xd1, 0xc5, 0xac, 0x66, 0xbc, 0x66, 0x64, 0x67, 0x9d, 0x0c, 0x09, 0x17, 0xf3, 0xa8, + 0x01, 0x1c, 0x1d, 0x89, 0x6c, 0x6e, 0xdb, 0x33, 0xaa, 0xaf, 0x99, 0xdc, 0x5b, 0xe1, 0xcd, 0xf3, + 0x61, 0x24, 0x56, 0x81, 0x18, 0x74, 0x1a, 0x7d, 0xab, 0x97, 0x3e, 0x4b, 0x37, 0xac, 0xf6, 0x43, + 0x7b, 0x13, 0x73, 0x3f, 0x97, 0xf9, 0x94, 0x2b, 0x71, 0x11, 0xad, 0xf5, 0x0d, 0x58, 0x0b, 0x5d, + 0xe7, 0x61, 0xec, 0x7e, 0xd9, 0x98, 0x65, 0xd3, 0xde, 0x70, 0xd2, 0x23, 0x29, 0xe1, 0x3d, 0xab, + 0x83, 0x5f, 0x06, 0x37, 0x7e, 0xdb, 0x0a, 0xd1, 0x3a, 0x29, 0xd7, 0x8c, 0xf5, 0x28, 0x14, 0xad, + 0x97, 0xac, 0x41, 0x03, 0xd0, 0x34, 0x48, 0x74, 0xd6, 0x50, 0x10, 0x5e, 0x2d, 0x0c, 0x77, 0xee, + 0x1a, 0x77, 0xc0, 0x68, 0xb1, 0xb8, 0xbb, 0x63, 0x8d, 0x48, 0xe7, 0x61, 0x48, 0xf6, 0x1e, 0xc7, + 0xe4, 0x91, 0xee, 0xf9, 0x20, 0x26, 0x7b, 0xe1, 0x86, 0xf1, 0xdf, 0x02, 0xb2, 0x81, 0x07, 0x55, + 0x50, 0xe7, 0x7b, 0x25, 0x54, 0x3b, 0x42, 0x6d, 0xa2, 0x41, 0x27, 0xba, 0x7b, 0xc1, 0xf2, 0xa5, + 0x79, 0xf9, 0xfb, 0xe9, 0xf5, 0xfb, 0xeb, 0xb3, 0xd1, 0x69, 0xdd, 0x3b, 0x40, 0xb7, 0x86, 0xfa, + 0xcc, 0x83, 0x27, 0x7a, 0x3e, 0x1c, 0x1d, 0xba, 0x88, 0xd5, 0x54, 0x7b, 0x57, 0xde, 0x5c, 0x10, + 0x69, 0xfc, 0x51, 0xa1, 0x9b, 0xa0, 0x09, 0x4e, 0x36, 0x69, 0x84, 0x81, 0xcb, 0x8d, 0xdc, 0xf1, + 0xc4, 0xd8, 0x5c, 0xf6, 0xbc, 0xba, 0xd3, 0xe1, 0x55, 0xaf, 0xa9, 0xcb, 0x37, 0x0f, 0xd0, 0x7d, + 0xb8, 0xa2, 0x6e, 0xeb, 0xc9, 0x91, 0x08, 0x78, 0x4c, 0x95, 0x9f, 0xa2, 0x37, 0xf5, 0xda, 0xaa, + 0x39, 0x1a, 0xe3, 0x92, 0xd5, 0x96, 0x4a, 0x53, 0x0e, 0xed, 0xaf, 0x16, 0x68, 0xc3, 0x59, 0x35, + 0xee, 0xe1, 0xe6, 0x18, 0x1d, 0x29, 0x93, 0x68, 0xad, 0x67, 0x4a, 0x46, 0x34, 0x13, 0x46, 0xe8, + 0xde, 0xc2, 0x4c, 0xe9, 0xc7, 0x94, 0x4f, 0xe3, 0x1c, 0x2d, 0x93, 0x0f, 0x68, 0x99, 0x52, 0xa1, + 0xc3, 0x6e, 0xa5, 0x21, 0xb2, 0x61, 0xfd, 0xde, 0xee, 0xf3, 0x5e, 0x7f, 0x67, 0x9c, 0xf7, 0x57, + 0xc4, 0xf5, 0x33, 0x2a, 0x16, 0x6a, 0xa6, 0x22, 0x7f, 0x7d, 0xa0, 0xa9, 0x59, 0x1b, 0xbb, 0x03, + 0x6a, 0xdc, 0x49, 0x8c, 0x4c, 0x15, 0xe5, 0x6a, 0xe7, 0xbe, 0x01, 0x9b, 0x5b, 0xd1, 0xbe, 0x25, + 0x5d, 0x84, 0x40, 0x83, 0x4a, 0xd6, 0x9c, 0x6a, 0x4b, 0x99, 0x28, 0x50, 0x8f, 0x43, 0x7b, 0x98, + 0xad, 0x2a, 0xb8, 0x73, 0xc4, 0xb2, 0x0a, 0xdd, 0xc3, 0xaf, 0xfa, 0x06, 0x89, 0x3e, 0x80, 0xf1, + 0xdf, 0x2c, 0x71, 0x1f, 0x45, 0xe3, 0xd2, 0x8c, 0x26, 0x40, 0x40, 0x06, 0x8e, 0xac, 0x7f, 0xaa, + 0xf0, 0x33, 0xf1, 0x56, 0xeb, 0x51, 0xa7, 0x9b, 0x04, 0x6c, 0xaf, 0xbf, 0xfb, 0xeb, 0xce, 0x5e, + 0x7f, 0x6f, 0x8f, 0xbd, 0xce, 0x0c, 0x2e, 0x7b, 0x0a, 0x24, 0x3a, 0x4c, 0xb2, 0x05, 0x5d, 0x95, + 0x9b, 0x9e, 0x75, 0x8e, 0x6e, 0x86, 0x5b, 0x08, 0xa0, 0x87, 0x51, 0x75, 0xcb, 0xfd, 0x29, 0x30, + 0xc6, 0xb9, 0x1e, 0x47, 0x73, 0xdc, 0x12, 0xa5, 0x89, 0xce, 0xcf, 0x5e, 0x9f, 0xbe, 0x1b, 0x9e, + 0x7e, 0x1b, 0x82, 0xce, 0xc5, 0xd9, 0x88, 0xe5, 0xb5, 0x26, 0xef, 0x20, 0xfa, 0x5c, 0x6b, 0xe8, + 0x50, 0x1a, 0x78, 0x05, 0x37, 0xac, 0x45, 0xb7, 0x04, 0xaf, 0xe2, 0xda, 0x56, 0xb4, 0x84, 0x60, + 0x55, 0xc9, 0xa9, 0x74, 0xfd, 0x95, 0x96, 0xf9, 0x5b, 0x2a, 0x31, 0x3e, 0x6d, 0xa9, 0xe9, 0x95, + 0xca, 0x85, 0xc8, 0xa2, 0xfe, 0x19, 0xe0, 0xbb, 0xf3, 0xed, 0xb7, 0xe3, 0x6d, 0xe7, 0xa7, 0xe6, + 0xdb, 0x88, 0x9a, 0x0e, 0x3e, 0x68, 0xac, 0xa7, 0x19, 0x9f, 0x7e, 0x66, 0xfc, 0x1f, 0xe4, 0x1f, + 0xd8, 0x7d, 0x76, 0x14, 0x00, 0x00 }; // Autogenerated from wled00/data/settings_um.htm, do not edit!! -const uint16_t PAGE_settings_um_length = 2230; +const uint16_t PAGE_settings_um_length = 2451; const uint8_t PAGE_settings_um[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xa5, 0x58, 0x6d, 0x53, 0xdb, 0x48, - 0x12, 0xfe, 0xce, 0xaf, 0x10, 0x13, 0x0a, 0xa4, 0xb2, 0x90, 0x4d, 0xb8, 0xdd, 0x4b, 0x6c, 0x8f, - 0xd9, 0x90, 0x97, 0x0b, 0x57, 0x49, 0xa0, 0x8a, 0xec, 0x5e, 0x5d, 0x71, 0xd4, 0x22, 0x4b, 0x63, - 0x7b, 0x82, 0x3c, 0xa3, 0x9a, 0x19, 0xf1, 0x72, 0xc6, 0xff, 0xfd, 0x9e, 0x1e, 0x49, 0xc6, 0x26, - 0x64, 0xf7, 0xae, 0xee, 0x0b, 0xa0, 0x51, 0x4f, 0xab, 0xe7, 0xe9, 0xa7, 0x9f, 0xee, 0x61, 0xb8, - 0xfd, 0xee, 0xf4, 0xed, 0xd7, 0x7f, 0x9e, 0xbd, 0x0f, 0x66, 0x6e, 0x5e, 0x8c, 0x86, 0xcd, 0x4f, - 0x91, 0xe6, 0x41, 0x91, 0xaa, 0x29, 0x67, 0x42, 0xb1, 0xd1, 0x70, 0x2e, 0x5c, 0x1a, 0x64, 0xb3, - 0xd4, 0x58, 0xe1, 0x38, 0xab, 0xdc, 0x64, 0xff, 0x55, 0xbb, 0xba, 0xa5, 0xd2, 0xb9, 0xe0, 0xec, - 0x46, 0x8a, 0xdb, 0x52, 0x1b, 0xc7, 0x82, 0x4c, 0x2b, 0x27, 0x14, 0xcc, 0x6e, 0x65, 0xee, 0x66, - 0xfc, 0xa7, 0x5e, 0x6f, 0x65, 0xfa, 0xe4, 0x55, 0x2e, 0x6e, 0x64, 0x26, 0xf6, 0xfd, 0x43, 0x2c, - 0x95, 0x74, 0x32, 0x2d, 0xf6, 0x6d, 0x96, 0x16, 0x82, 0x1f, 0xc4, 0xf3, 0xf4, 0x4e, 0xce, 0xab, - 0xf9, 0xea, 0xb9, 0xb2, 0xc2, 0xf8, 0x87, 0x74, 0x8c, 0x67, 0xa5, 0xd9, 0x77, 0x5f, 0x1e, 0x0d, - 0x9d, 0x74, 0x85, 0x18, 0xfd, 0x0a, 0xcb, 0xb9, 0xce, 0x83, 0x73, 0xe1, 0x9c, 0x54, 0x53, 0x3b, - 0xec, 0xd6, 0xeb, 0x43, 0x9b, 0x19, 0x59, 0xba, 0xd1, 0xd6, 0x4d, 0x6a, 0x02, 0x7d, 0xab, 0x84, - 0x89, 0x0b, 0x9d, 0xc9, 0x32, 0xae, 0x8c, 0xbe, 0xb5, 0x71, 0xce, 0x73, 0x9d, 0x55, 0x73, 0xc4, - 0x17, 0x57, 0xf3, 0xb7, 0x93, 0x29, 0x5f, 0x2c, 0xe3, 0x52, 0x2a, 0xcb, 0x2f, 0x7e, 0x8e, 0xff, - 0x1a, 0xbf, 0x8a, 0x5f, 0xc7, 0x07, 0xbd, 0xf8, 0xe0, 0xe0, 0x92, 0x16, 0x4f, 0xf9, 0x05, 0x33, - 0xf6, 0x26, 0x67, 0xf1, 0x9f, 0xff, 0xba, 0xa4, 0xaf, 0xf0, 0xed, 0x83, 0x58, 0x55, 0xf3, 0xcf, - 0xbc, 0x37, 0x98, 0x54, 0x2a, 0x73, 0x52, 0xab, 0x60, 0x7a, 0x92, 0x87, 0x22, 0x5a, 0x18, 0xe1, - 0x2a, 0xa3, 0x82, 0x3c, 0x99, 0x0a, 0xf7, 0xbe, 0x10, 0x14, 0xc0, 0xf1, 0xbd, 0x7f, 0xb5, 0x5c, - 0x99, 0x4a, 0x7b, 0xba, 0x66, 0x2a, 0x76, 0x77, 0x99, 0x1e, 0x7f, 0x13, 0x99, 0x63, 0x9c, 0xbb, - 0xfb, 0x52, 0xe8, 0x09, 0xad, 0x6d, 0xbf, 0x31, 0x26, 0xbd, 0x4f, 0xa4, 0xf5, 0xbf, 0x37, 0xf6, - 0x7f, 0x0c, 0xa3, 0xc5, 0xad, 0x54, 0xb9, 0xbe, 0x4d, 0x74, 0x29, 0x54, 0xc8, 0x66, 0xce, 0x95, - 0xb6, 0xdf, 0xed, 0x4e, 0xa5, 0x9b, 0x55, 0xe3, 0x24, 0xd3, 0xf3, 0xee, 0x1b, 0x69, 0x32, 0xad, - 0xf5, 0xb5, 0x14, 0xdd, 0x7f, 0x7c, 0x7a, 0xff, 0xae, 0x7b, 0x2b, 0xaf, 0x65, 0xb7, 0xc5, 0xf0, - 0x45, 0x55, 0x83, 0xba, 0x6f, 0x9b, 0x05, 0xb6, 0xe6, 0xfd, 0xf8, 0xa9, 0xf7, 0xee, 0xca, 0x2a, - 0x66, 0xbf, 0x5b, 0x51, 0x4c, 0xd6, 0xad, 0x0b, 0x9d, 0xe6, 0x7f, 0x3f, 0x0f, 0x45, 0xec, 0xf8, - 0x76, 0x2f, 0x5a, 0x14, 0xc2, 0x05, 0x8a, 0xe7, 0x49, 0x66, 0x44, 0xea, 0x44, 0x03, 0x40, 0xc8, - 0xea, 0x5c, 0xb1, 0x68, 0xa0, 0x12, 0x38, 0x7b, 0xe3, 0x9c, 0x91, 0xe3, 0xca, 0x09, 0xbc, 0x30, - 0x19, 0x8b, 0x45, 0x14, 0x3f, 0x5d, 0x27, 0x1c, 0xf0, 0x39, 0x27, 0xee, 0x5c, 0xf7, 0x5b, 0x7a, - 0x93, 0xb6, 0x0e, 0xbe, 0x33, 0x4c, 0xed, 0xbd, 0x82, 0x0b, 0x17, 0xc5, 0x79, 0x32, 0xd6, 0xf9, - 0x7d, 0x92, 0x96, 0x08, 0x3a, 0x7f, 0x3b, 0x93, 0x45, 0x1e, 0x2a, 0xb2, 0x4f, 0xf3, 0xfc, 0xfd, - 0x0d, 0xa2, 0xf8, 0x24, 0x2d, 0xe8, 0x2a, 0x4c, 0xc8, 0x28, 0x66, 0x16, 0x87, 0x11, 0x1f, 0x2d, - 0xfe, 0x26, 0xdc, 0x6f, 0x61, 0xb4, 0x7c, 0xde, 0x4e, 0x18, 0xa3, 0x0d, 0xc2, 0x83, 0x1d, 0xb8, - 0x6e, 0x75, 0x21, 0x92, 0x42, 0x4f, 0x43, 0xf6, 0x9e, 0xd6, 0x83, 0xe6, 0xf0, 0x00, 0x26, 0x98, - 0xc8, 0x42, 0xf8, 0x63, 0x80, 0xdc, 0x06, 0xc7, 0xfd, 0xd4, 0xac, 0x23, 0x93, 0xd8, 0x38, 0x91, - 0xd3, 0xca, 0xa4, 0x1e, 0xad, 0xfa, 0x18, 0xc1, 0x24, 0xc5, 0x86, 0x3c, 0xf9, 0x97, 0x3a, 0x51, - 0xc8, 0x55, 0x09, 0xd0, 0x44, 0x50, 0xa6, 0x53, 0x11, 0xe4, 0xa9, 0x4b, 0xb7, 0x01, 0xef, 0x1a, - 0xc0, 0xe7, 0x48, 0x07, 0xa3, 0x0f, 0xf4, 0x41, 0x8f, 0x26, 0x2f, 0xa0, 0xa0, 0xf7, 0x97, 0x94, - 0x46, 0x3b, 0x9d, 0xe9, 0x62, 0x77, 0x37, 0xf4, 0xb4, 0xec, 0xc5, 0xa1, 0x2f, 0x02, 0x4e, 0x16, - 0xc5, 0xb9, 0xd3, 0x06, 0x5e, 0x89, 0x8a, 0x27, 0x4e, 0xcc, 0xe9, 0xe0, 0xd9, 0x49, 0xc9, 0xa2, - 0xe8, 0xe1, 0xa1, 0x31, 0xc3, 0xfe, 0x79, 0x89, 0x80, 0x3f, 0xc0, 0x7f, 0xf0, 0x59, 0xe7, 0x22, - 0x09, 0xce, 0x0a, 0x91, 0x5a, 0x11, 0x00, 0x08, 0x61, 0x02, 0xa2, 0x4e, 0x70, 0x72, 0x86, 0x90, - 0xe2, 0x0d, 0x8f, 0x76, 0xd3, 0x63, 0x5d, 0x79, 0x51, 0x04, 0xab, 0x1c, 0xf1, 0xfa, 0xda, 0xc0, - 0x37, 0xa8, 0x24, 0x58, 0x35, 0x67, 0x51, 0x22, 0x15, 0x00, 0xfd, 0xf8, 0xf5, 0xf3, 0x27, 0xce, - 0xbe, 0xe8, 0xa0, 0x29, 0x69, 0x1b, 0xa0, 0x1e, 0x5d, 0x5a, 0x10, 0x14, 0x6c, 0xa3, 0x3c, 0x3e, - 0xac, 0x97, 0x07, 0xe7, 0xbc, 0x83, 0x7a, 0x10, 0xdb, 0x9c, 0x87, 0xbd, 0x87, 0xcd, 0x3a, 0x3a, - 0x79, 0xce, 0x90, 0x7f, 0x67, 0x98, 0xcd, 0x44, 0x76, 0x4d, 0x1c, 0x8d, 0x16, 0xa4, 0x16, 0x8a, - 0x8b, 0x84, 0xd4, 0x26, 0x31, 0xa2, 0x2c, 0xd2, 0x0c, 0x2c, 0xba, 0xb8, 0x04, 0xd9, 0x10, 0xa7, - 0xad, 0xc6, 0xd6, 0x99, 0x70, 0xff, 0x30, 0x1a, 0xc8, 0x49, 0xc8, 0x70, 0x8e, 0xb1, 0x30, 0xc0, - 0x5d, 0x24, 0x44, 0x48, 0x14, 0x2a, 0xd4, 0x02, 0x8f, 0xaa, 0x35, 0xec, 0xc5, 0x87, 0x51, 0x34, - 0xd1, 0x26, 0x24, 0xb7, 0x12, 0x72, 0x20, 0x87, 0x24, 0x32, 0x49, 0x21, 0xd4, 0xd4, 0xcd, 0x06, - 0xb2, 0xd3, 0x89, 0xe0, 0xc7, 0x6d, 0x73, 0x52, 0x99, 0x0b, 0x79, 0x19, 0x2d, 0xf0, 0x28, 0x92, - 0x9b, 0xb4, 0xa8, 0x10, 0x26, 0x99, 0x62, 0xf1, 0xe1, 0xa1, 0x59, 0x19, 0xee, 0x1f, 0xac, 0xfe, - 0x1e, 0x1d, 0xbe, 0x8e, 0x16, 0x00, 0xda, 0xdd, 0x83, 0x75, 0xc8, 0xb0, 0x36, 0x9c, 0x19, 0x91, - 0xb3, 0xc1, 0x18, 0x95, 0x75, 0xbd, 0xdc, 0x7c, 0xb3, 0xda, 0x73, 0x78, 0xc4, 0x90, 0x20, 0x35, - 0x15, 0xac, 0xcf, 0x5e, 0x4c, 0x26, 0x13, 0xb6, 0x7c, 0x04, 0x01, 0x2c, 0x38, 0xc3, 0x07, 0x09, - 0x31, 0x04, 0x51, 0x6b, 0x90, 0x8f, 0x9d, 0xb8, 0xed, 0x2e, 0x54, 0x2c, 0x2f, 0xc1, 0xd7, 0x53, - 0xaf, 0x44, 0x09, 0xd2, 0x6f, 0xa4, 0x20, 0xe3, 0xa8, 0x31, 0x96, 0x51, 0xe4, 0x55, 0x96, 0xab, - 0xb8, 0xf5, 0x24, 0xa3, 0x81, 0x28, 0xc0, 0x15, 0x82, 0xaa, 0x05, 0xe6, 0x0f, 0x20, 0x25, 0x4f, - 0x9b, 0xa2, 0x26, 0x1f, 0xc1, 0x73, 0x00, 0xcf, 0x0d, 0x65, 0x8b, 0x9c, 0x23, 0xe4, 0x2e, 0xdc, - 0xe5, 0x88, 0xf7, 0xc0, 0x6d, 0x8f, 0x69, 0x59, 0xd9, 0x59, 0x48, 0x6b, 0x91, 0xd7, 0xec, 0xfa, - 0xd9, 0x87, 0x14, 0xb5, 0x71, 0x7c, 0x67, 0xfd, 0x63, 0xd3, 0x1f, 0x84, 0xf2, 0x4c, 0x18, 0xab, - 0xd3, 0xd2, 0xa7, 0x1f, 0xe1, 0x84, 0x5c, 0x7c, 0x90, 0x02, 0x22, 0x03, 0x5a, 0xc5, 0x00, 0x0f, - 0x3d, 0x61, 0x05, 0xac, 0x8a, 0xa2, 0x85, 0x6f, 0x43, 0x1d, 0xbe, 0x37, 0x9c, 0x99, 0xc0, 0xe7, - 0xaa, 0xe9, 0x93, 0xfd, 0x97, 0x3f, 0xf7, 0xca, 0x3b, 0x36, 0xda, 0x1b, 0x3c, 0x62, 0x2f, 0x63, - 0xf3, 0x0c, 0xf6, 0xf0, 0xc2, 0x2a, 0x75, 0xad, 0x10, 0x38, 0xa0, 0xe5, 0x8e, 0xb8, 0x21, 0x55, - 0x56, 0x54, 0x39, 0x5e, 0x22, 0xc1, 0xd1, 0xd1, 0x5a, 0x0c, 0x70, 0x11, 0xf5, 0x1f, 0x9f, 0x3b, - 0x78, 0xdf, 0x71, 0x7e, 0x75, 0xf9, 0xfc, 0x81, 0xd5, 0x23, 0xf6, 0x06, 0x87, 0x36, 0x43, 0xd5, - 0x1e, 0xda, 0xe0, 0xd0, 0x9b, 0xa7, 0xbb, 0x30, 0x97, 0x31, 0xd4, 0xdd, 0x43, 0xe7, 0x2b, 0xc8, - 0xc6, 0xba, 0x6d, 0x55, 0x6a, 0x60, 0x6f, 0xa5, 0xcb, 0x80, 0x6f, 0xb4, 0xc8, 0xa0, 0x1c, 0x6c, - 0xac, 0x21, 0x94, 0xa9, 0x62, 0x7d, 0xcd, 0x99, 0x2f, 0xbc, 0xb1, 0xbe, 0x63, 0xb1, 0xe5, 0x7b, - 0x35, 0xeb, 0x99, 0x33, 0x95, 0x60, 0x7b, 0x9d, 0x50, 0x1d, 0xb1, 0xba, 0x30, 0xc1, 0xea, 0x3e, - 0x98, 0x52, 0x33, 0x7b, 0xe0, 0x7d, 0x34, 0x85, 0xd7, 0xb7, 0xfc, 0xaa, 0xd9, 0xb5, 0xb3, 0x50, - 0x4b, 0x76, 0x15, 0x37, 0x3c, 0xe3, 0x6e, 0x8d, 0x57, 0x47, 0x21, 0xe1, 0x1c, 0x60, 0xc4, 0xe0, - 0xec, 0xf0, 0x35, 0x0b, 0xe6, 0x52, 0x71, 0xb6, 0x7f, 0x00, 0xef, 0x45, 0x6a, 0x2d, 0x67, 0x96, - 0xed, 0x21, 0x5c, 0x26, 0x15, 0xfa, 0x47, 0xdf, 0x9b, 0x42, 0xe0, 0x4b, 0xce, 0x52, 0x75, 0xbf, - 0xb2, 0xb9, 0xbb, 0x2b, 0xd8, 0x5e, 0x13, 0x41, 0x2e, 0x26, 0x69, 0x55, 0x38, 0x8a, 0x9f, 0xfa, - 0x0f, 0xc5, 0xbe, 0x11, 0xc5, 0x93, 0x74, 0xfe, 0x84, 0x74, 0x0e, 0xd8, 0xd5, 0xf2, 0x49, 0x72, - 0x40, 0xc4, 0x86, 0x02, 0xa2, 0x8d, 0x95, 0x2c, 0x72, 0x71, 0x77, 0x3a, 0xf1, 0x06, 0x9d, 0x03, - 0xe8, 0x65, 0x63, 0x72, 0x15, 0xec, 0x2c, 0xdc, 0xb2, 0x1f, 0xe0, 0x80, 0x2b, 0xc8, 0x38, 0xd7, - 0x47, 0xed, 0xeb, 0xa1, 0x54, 0x65, 0xe5, 0x02, 0x82, 0x9c, 0xb3, 0x99, 0xcc, 0x73, 0xcc, 0x71, - 0x41, 0x3d, 0x30, 0xed, 0x2c, 0xc4, 0xb2, 0x4f, 0xbb, 0x77, 0x16, 0xf2, 0x88, 0xaa, 0x0e, 0x58, - 0x22, 0xc6, 0x26, 0xe0, 0x49, 0x8a, 0x94, 0xb1, 0xd1, 0x55, 0x5f, 0x42, 0x8f, 0xff, 0x6f, 0x6f, - 0x3b, 0x0b, 0xbd, 0x84, 0xb3, 0xc7, 0xb0, 0x37, 0x3c, 0xed, 0x2c, 0x3c, 0xc6, 0x9c, 0x02, 0x5f, - 0x65, 0x10, 0x1b, 0xfe, 0xd8, 0xf5, 0xce, 0xc2, 0x2e, 0xd1, 0x4b, 0xbd, 0xa3, 0x86, 0x30, 0xa1, - 0x9b, 0x49, 0x1b, 0xef, 0xed, 0x2c, 0x7e, 0x8c, 0xdc, 0x72, 0x2f, 0xc2, 0x84, 0x38, 0x36, 0xa3, - 0xab, 0xe5, 0x46, 0x49, 0xbe, 0x33, 0xba, 0x44, 0x87, 0x54, 0xb5, 0xd8, 0xff, 0x68, 0x1a, 0x11, - 0x05, 0x4d, 0x5b, 0x11, 0x8a, 0x76, 0x7d, 0x4e, 0xb3, 0xc7, 0xf7, 0x5f, 0x10, 0x69, 0x5b, 0x3c, - 0xd1, 0xc5, 0xc1, 0x25, 0x75, 0x01, 0x09, 0xd9, 0x3f, 0xf9, 0x72, 0xf6, 0xeb, 0x57, 0x3a, 0x99, - 0x4c, 0x5c, 0x3a, 0x25, 0x2b, 0xa4, 0xb7, 0x66, 0x47, 0xbd, 0x08, 0x00, 0x1e, 0x1e, 0x1e, 0xfb, - 0x45, 0xb3, 0x14, 0xd5, 0x21, 0x08, 0x3c, 0x7a, 0x04, 0x07, 0xd2, 0xf7, 0x9d, 0xc1, 0x66, 0xe1, - 0xc9, 0x24, 0x6d, 0xe7, 0x99, 0x55, 0xe7, 0xe8, 0x74, 0x4c, 0xdd, 0xab, 0x2c, 0x5f, 0x7f, 0x8d, - 0x42, 0x1c, 0xd4, 0xb3, 0xd1, 0x36, 0xb7, 0xde, 0x17, 0x82, 0xf3, 0xae, 0xd7, 0x17, 0x3c, 0xa7, - 0xd7, 0x17, 0x3c, 0x61, 0xd7, 0x16, 0x9e, 0x0c, 0x51, 0xf5, 0x72, 0x6c, 0xeb, 0x20, 0xa3, 0x65, - 0xd3, 0x50, 0x9f, 0x8e, 0x5a, 0x34, 0x9c, 0xec, 0xc3, 0xc4, 0x4f, 0x3a, 0x32, 0x29, 0x53, 0x03, - 0xd0, 0x1a, 0xec, 0x5a, 0xdd, 0x6f, 0xe6, 0xae, 0x18, 0xca, 0xab, 0x56, 0x7e, 0xaa, 0xa2, 0xd8, - 0x48, 0xd2, 0x69, 0x49, 0x7f, 0xd5, 0xd2, 0xe2, 0x35, 0x93, 0x2c, 0x00, 0x9a, 0x88, 0xea, 0x1d, - 0x03, 0x02, 0x4d, 0x7e, 0x9f, 0x37, 0xed, 0xf7, 0x41, 0x29, 0x1a, 0x38, 0xd1, 0x8a, 0x80, 0x33, - 0x92, 0xc0, 0x5d, 0x2c, 0x36, 0x06, 0x3f, 0x74, 0x26, 0xc2, 0x98, 0xfc, 0xd4, 0x8a, 0x8e, 0x4e, - 0x49, 0x2f, 0xbe, 0x60, 0xc4, 0xb1, 0xeb, 0xe2, 0xbe, 0x58, 0x7f, 0x01, 0x81, 0x6f, 0x5b, 0xb3, - 0x48, 0xe8, 0xb4, 0x38, 0x3f, 0x2d, 0x20, 0xd7, 0x34, 0xf2, 0x10, 0x69, 0x44, 0x7e, 0x42, 0x44, - 0xe4, 0x2e, 0xda, 0xe4, 0xdd, 0x89, 0x9a, 0xe8, 0xf6, 0x40, 0x6d, 0xf4, 0xcf, 0x30, 0x0b, 0xa1, - 0xe3, 0x23, 0xbb, 0xbb, 0xf4, 0x13, 0x94, 0xc6, 0x1c, 0xe4, 0xde, 0xe4, 0xdf, 0x80, 0x9b, 0x72, - 0x34, 0x1d, 0x61, 0x9c, 0x9d, 0x60, 0xec, 0xc2, 0x31, 0xd0, 0x3b, 0x77, 0xd5, 0xd8, 0x96, 0x03, - 0xd6, 0x51, 0xeb, 0xd3, 0x36, 0x8d, 0x57, 0x8b, 0x89, 0x20, 0xbd, 0xa5, 0x11, 0xee, 0xc8, 0x8f, - 0xfe, 0x98, 0xfc, 0x59, 0xc7, 0x8f, 0x60, 0xa4, 0xa3, 0x1d, 0xd6, 0xcd, 0x26, 0xd3, 0xe4, 0x9b, - 0x05, 0x54, 0xf1, 0x02, 0x57, 0xb5, 0x99, 0xce, 0xfb, 0x0c, 0xc1, 0xb0, 0x65, 0x94, 0xb8, 0x19, - 0x26, 0x7a, 0x0c, 0xb4, 0x38, 0x90, 0xbe, 0x6e, 0x47, 0x34, 0x48, 0x84, 0x31, 0xd4, 0xaa, 0xfd, - 0x48, 0x91, 0x4b, 0x8b, 0x54, 0xde, 0x93, 0x60, 0x16, 0x52, 0x09, 0x94, 0x89, 0xf0, 0xce, 0x42, - 0xcc, 0x77, 0xab, 0xfd, 0x94, 0xb5, 0xfa, 0x5e, 0x25, 0x92, 0x6a, 0x1e, 0x3f, 0xce, 0x16, 0xb5, - 0x34, 0x70, 0xc6, 0x62, 0x6a, 0x84, 0xde, 0x64, 0x7d, 0xca, 0x00, 0x44, 0xcf, 0x74, 0xba, 0xc6, - 0x6c, 0xa5, 0x2a, 0x33, 0x83, 0x4b, 0xeb, 0xe1, 0x88, 0x14, 0x63, 0xd8, 0xc5, 0x1f, 0x57, 0xf1, - 0x5a, 0x3f, 0x5a, 0xf5, 0x44, 0x54, 0xf8, 0x80, 0x51, 0xb1, 0xf9, 0x7d, 0xad, 0xde, 0x72, 0xb6, - 0x1a, 0x2f, 0x37, 0x67, 0x6f, 0xa5, 0x31, 0x78, 0xeb, 0x4a, 0xe5, 0x09, 0xe9, 0xc6, 0x99, 0x11, - 0xd6, 0x06, 0x43, 0x39, 0x3a, 0x4f, 0x6f, 0xc4, 0xb0, 0x2b, 0x47, 0x81, 0xd3, 0x41, 0x73, 0x6b, - 0x95, 0xff, 0xc6, 0x24, 0x5e, 0x37, 0x01, 0x8b, 0xc9, 0x34, 0x7e, 0x6e, 0x8e, 0xad, 0x6f, 0x99, - 0xcd, 0xed, 0xe7, 0x0f, 0x52, 0xd1, 0xde, 0x9d, 0xba, 0x16, 0x20, 0x1e, 0x95, 0xfc, 0x15, 0x8b, - 0x31, 0x28, 0x20, 0x13, 0x98, 0xe0, 0x91, 0x44, 0x82, 0xf2, 0xbf, 0xc8, 0x41, 0xbc, 0x7e, 0xff, - 0x10, 0x1b, 0xf7, 0x03, 0x7b, 0x73, 0x4e, 0x23, 0x9d, 0xc0, 0x5d, 0x40, 0xd0, 0xf5, 0xe5, 0x5d, - 0x1d, 0x78, 0x48, 0x17, 0xa2, 0xf3, 0x49, 0xe2, 0x05, 0xf5, 0x37, 0x9c, 0x29, 0x97, 0xee, 0x3e, - 0x44, 0x57, 0xf2, 0xab, 0x90, 0xd5, 0xb9, 0x84, 0xcd, 0x72, 0x6b, 0xd8, 0x6d, 0xee, 0xd1, 0x43, - 0xff, 0xe5, 0xd1, 0x2f, 0x72, 0x4e, 0xd7, 0xef, 0xa0, 0x32, 0x45, 0xc8, 0x9a, 0x19, 0x13, 0x62, - 0x12, 0x0d, 0x60, 0xe8, 0x0d, 0x90, 0x10, 0x91, 0xe6, 0xd0, 0x5e, 0x5c, 0xb6, 0xa0, 0xdb, 0x84, - 0x00, 0x67, 0x60, 0x25, 0xe4, 0x18, 0x69, 0x9e, 0x6f, 0x05, 0x12, 0xcf, 0xf4, 0xd7, 0xef, 0xb6, - 0x55, 0xfe, 0xf3, 0x09, 0x9a, 0xb2, 0xe7, 0x21, 0x67, 0xa5, 0xb6, 0x8e, 0x61, 0x5f, 0x1d, 0x01, - 0x9a, 0x33, 0x85, 0x4f, 0x71, 0x93, 0x83, 0x5c, 0xde, 0xb4, 0x0d, 0xd9, 0x69, 0xdc, 0x4d, 0x6e, - 0xd9, 0x68, 0x6b, 0x7d, 0x71, 0x26, 0x8a, 0xf2, 0x98, 0x74, 0xbf, 0x72, 0x0e, 0x47, 0xaf, 0xdb, - 0x4e, 0xfd, 0x40, 0x3e, 0xb3, 0x42, 0x66, 0xd7, 0x9c, 0x7d, 0xa4, 0x60, 0x8e, 0x86, 0xdd, 0xfa, - 0x05, 0x02, 0x86, 0x87, 0xd5, 0x9e, 0xad, 0x1f, 0x6c, 0x3a, 0xa6, 0x4d, 0xc7, 0x69, 0x76, 0xfd, - 0xb8, 0x6f, 0xe3, 0x2b, 0x75, 0xbc, 0xac, 0xa1, 0xcb, 0xca, 0xc4, 0x20, 0x40, 0x5b, 0xa6, 0xca, - 0x9f, 0xba, 0xb0, 0xb6, 0xca, 0x56, 0xe3, 0x81, 0x1f, 0xcd, 0xfb, 0x53, 0x23, 0x84, 0x1a, 0x34, - 0xf9, 0xec, 0x2b, 0x8d, 0x64, 0x8e, 0x76, 0x5f, 0x1c, 0xf4, 0x7a, 0xbd, 0xbf, 0x0c, 0x82, 0xb7, - 0x9b, 0x97, 0x43, 0xb8, 0xce, 0xb7, 0x29, 0x23, 0x70, 0x38, 0x0a, 0xd6, 0xfd, 0x12, 0x37, 0x36, - 0xfd, 0xe2, 0x2e, 0xf0, 0xc4, 0xeb, 0xd6, 0xee, 0x8b, 0xd7, 0xaf, 0x5e, 0xbd, 0x22, 0xaf, 0x55, - 0x91, 0x7b, 0xba, 0x53, 0x72, 0x36, 0xab, 0x20, 0x69, 0xbc, 0xfb, 0x12, 0xab, 0x81, 0x99, 0xbd, - 0x5c, 0xff, 0x1f, 0x4b, 0x55, 0x22, 0xc1, 0x2f, 0x7d, 0x2a, 0xea, 0x54, 0x82, 0xf7, 0xa3, 0xf6, - 0x3e, 0xdb, 0x92, 0x39, 0x49, 0x92, 0x76, 0xb3, 0xf9, 0xb3, 0x6c, 0xac, 0x80, 0xdd, 0xfa, 0x9f, - 0x90, 0xed, 0x12, 0x85, 0xf0, 0x8b, 0x68, 0x46, 0x9c, 0xa3, 0x7f, 0x64, 0xfd, 0x07, 0xe9, 0x71, - 0x3b, 0x45, 0xde, 0x12, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xb5, 0x58, 0x6d, 0x73, 0xdb, 0xb8, + 0x11, 0xfe, 0xee, 0x5f, 0x41, 0x23, 0x1e, 0x9b, 0x1c, 0xd1, 0x94, 0x1c, 0xf7, 0xae, 0x89, 0x24, + 0xc8, 0x4d, 0x9c, 0xe4, 0xa2, 0x5e, 0x12, 0x7b, 0x46, 0xb9, 0xbb, 0xe9, 0xb8, 0x9e, 0x33, 0x4d, + 0x42, 0x12, 0x62, 0x0a, 0x64, 0x01, 0xd0, 0x2f, 0x95, 0xf5, 0xdf, 0xfb, 0x2c, 0x48, 0xea, 0xc5, + 0xb1, 0x93, 0x66, 0x3a, 0xfd, 0x22, 0x89, 0xe0, 0x62, 0xb1, 0x78, 0x76, 0xf7, 0xd9, 0x5d, 0xf5, + 0xb7, 0xdf, 0x9c, 0x1c, 0x7f, 0xfe, 0xc7, 0xe9, 0x5b, 0x6f, 0x6a, 0x67, 0xd9, 0xa0, 0x5f, 0x7f, + 0x8a, 0x38, 0xf5, 0xb2, 0x58, 0x4d, 0x38, 0x13, 0x8a, 0x0d, 0xfa, 0x33, 0x61, 0x63, 0x2f, 0x99, + 0xc6, 0xda, 0x08, 0xcb, 0x59, 0x69, 0xc7, 0xfb, 0x2f, 0x9a, 0xd5, 0x2d, 0x15, 0xcf, 0x04, 0x67, + 0xd7, 0x52, 0xdc, 0x14, 0xb9, 0xb6, 0xcc, 0x4b, 0x72, 0x65, 0x85, 0x82, 0xd8, 0x8d, 0x4c, 0xed, + 0x94, 0xff, 0xd4, 0xe9, 0x2c, 0x45, 0x1f, 0xbc, 0x4a, 0xc5, 0xb5, 0x4c, 0xc4, 0xbe, 0x7b, 0x08, + 0xa5, 0x92, 0x56, 0xc6, 0xd9, 0xbe, 0x49, 0xe2, 0x4c, 0xf0, 0x83, 0x70, 0x16, 0xdf, 0xca, 0x59, + 0x39, 0x5b, 0x3e, 0x97, 0x46, 0x68, 0xf7, 0x10, 0x5f, 0xe2, 0x59, 0xe5, 0xec, 0xab, 0x93, 0x07, + 0x7d, 0x2b, 0x6d, 0x26, 0x06, 0xbf, 0x41, 0x72, 0x96, 0xa7, 0xde, 0x48, 0x58, 0x2b, 0xd5, 0xc4, + 0xf4, 0xdb, 0xd5, 0x7a, 0xdf, 0x24, 0x5a, 0x16, 0x76, 0xb0, 0x75, 0x1d, 0x6b, 0x2f, 0xbf, 0x51, + 0x42, 0x87, 0x59, 0x9e, 0xc8, 0x22, 0x2c, 0x75, 0x7e, 0x63, 0xc2, 0x94, 0xa7, 0x79, 0x52, 0xce, + 0x60, 0x5f, 0x58, 0xce, 0x8e, 0xc7, 0x13, 0x3e, 0x5f, 0x84, 0x85, 0x54, 0x86, 0x9f, 0xfd, 0x1c, + 0xfe, 0x35, 0x7c, 0x11, 0xbe, 0x0c, 0x0f, 0x3a, 0xe1, 0xc1, 0xc1, 0x39, 0x2d, 0x9e, 0xf0, 0x33, + 0xa6, 0xcd, 0x75, 0xca, 0xc2, 0xef, 0x7f, 0x9d, 0xd3, 0x29, 0x7c, 0xfb, 0x20, 0x54, 0xe5, 0xec, + 0x23, 0xef, 0xf4, 0xc6, 0xa5, 0x4a, 0xac, 0xcc, 0x95, 0x37, 0x19, 0xa6, 0xbe, 0x08, 0xe6, 0x5a, + 0xd8, 0x52, 0x2b, 0x2f, 0x8d, 0x26, 0xc2, 0xbe, 0xcd, 0x04, 0x19, 0xf0, 0xfa, 0xce, 0xbd, 0x5a, + 0x2c, 0x45, 0xa5, 0x39, 0x59, 0x13, 0x15, 0xbb, 0xbb, 0x2c, 0xbf, 0xfc, 0x22, 0x12, 0xcb, 0x38, + 0xb7, 0x77, 0x85, 0xc8, 0xc7, 0xb4, 0xb6, 0xfd, 0x4a, 0xeb, 0xf8, 0x2e, 0x92, 0xc6, 0x7d, 0x6f, + 0xec, 0x7f, 0xef, 0x07, 0xf3, 0x1b, 0xa9, 0xd2, 0xfc, 0x26, 0xca, 0x0b, 0xa1, 0x7c, 0x36, 0xb5, + 0xb6, 0x30, 0xdd, 0x76, 0x7b, 0x22, 0xed, 0xb4, 0xbc, 0x8c, 0x92, 0x7c, 0xd6, 0x7e, 0x25, 0x75, + 0x92, 0xe7, 0xf9, 0x95, 0x14, 0xed, 0x3f, 0x3e, 0xbc, 0x7d, 0xd3, 0xbe, 0x91, 0x57, 0xb2, 0xdd, + 0x60, 0xf8, 0xac, 0xac, 0x40, 0xdd, 0x37, 0xf5, 0x02, 0x5b, 0xd3, 0xfe, 0xfa, 0xa1, 0xf6, 0xf6, + 0x52, 0x2a, 0x64, 0x7f, 0x1a, 0x91, 0x8d, 0xd7, 0xa5, 0xb3, 0x3c, 0x4e, 0xff, 0x3e, 0xf2, 0x45, + 0x68, 0xf9, 0x76, 0x27, 0x98, 0x67, 0xc2, 0x7a, 0x8a, 0xa7, 0x51, 0xa2, 0x45, 0x6c, 0x45, 0x0d, + 0x80, 0xcf, 0x2a, 0x5f, 0xb1, 0xa0, 0xa7, 0x22, 0x28, 0x7b, 0x65, 0xad, 0x96, 0x97, 0xa5, 0x15, + 0x78, 0xa1, 0x13, 0x16, 0x8a, 0x20, 0x7c, 0xb8, 0x4e, 0x38, 0xe0, 0x38, 0x2b, 0x6e, 0x6d, 0xfb, + 0x4b, 0x7c, 0x1d, 0x37, 0x0a, 0xbe, 0x12, 0x8c, 0xcd, 0x9d, 0x82, 0x0a, 0x1b, 0x84, 0x69, 0x74, + 0x99, 0xa7, 0x77, 0x51, 0x5c, 0xc0, 0xe8, 0xf4, 0x78, 0x2a, 0xb3, 0xd4, 0x57, 0x24, 0x1f, 0xa7, + 0xe9, 0xdb, 0x6b, 0x58, 0xf1, 0x41, 0x1a, 0x84, 0xab, 0xd0, 0x3e, 0x23, 0x9b, 0x59, 0xe8, 0x07, + 0x7c, 0x30, 0xff, 0x45, 0xd8, 0xdf, 0xfd, 0x60, 0xf1, 0xb8, 0x9c, 0xd0, 0x3a, 0xd7, 0x30, 0x0f, + 0x72, 0x88, 0x75, 0x93, 0x67, 0x22, 0xca, 0xf2, 0x89, 0xcf, 0xde, 0xd2, 0xba, 0x57, 0x5f, 0x1e, + 0xc0, 0x78, 0x63, 0x99, 0x09, 0x77, 0x0d, 0x04, 0xb7, 0xc6, 0x75, 0x3f, 0xd4, 0xeb, 0xf0, 0x24, + 0x36, 0x8e, 0xe5, 0xa4, 0xd4, 0xb1, 0x43, 0xab, 0xba, 0x86, 0x37, 0x8e, 0xb1, 0x21, 0x8d, 0xfe, + 0xa9, 0x86, 0x0a, 0xbe, 0x2a, 0x00, 0x9a, 0xf0, 0x8a, 0x78, 0x22, 0xbc, 0x34, 0xb6, 0xf1, 0x36, + 0xe0, 0x5d, 0x03, 0x78, 0x04, 0x77, 0x30, 0x3a, 0xa0, 0x8b, 0xf0, 0xa8, 0xfd, 0x82, 0x10, 0x74, + 0xfa, 0xa2, 0x42, 0xe7, 0x36, 0x4f, 0xf2, 0x6c, 0x77, 0xd7, 0x77, 0x61, 0xd9, 0x09, 0x7d, 0x97, + 0x04, 0x9c, 0x24, 0xb2, 0x91, 0xcd, 0x35, 0xb4, 0x52, 0x28, 0x0e, 0xad, 0x98, 0xd1, 0xc5, 0x93, + 0x61, 0xc1, 0x82, 0xe0, 0xfe, 0xbe, 0x16, 0xc3, 0xfe, 0x59, 0x01, 0x83, 0xdf, 0x41, 0xbf, 0xf7, + 0x31, 0x4f, 0x45, 0xe4, 0x9d, 0x66, 0x22, 0x36, 0xc2, 0x03, 0x10, 0x42, 0x7b, 0x14, 0x3a, 0xde, + 0xf0, 0x14, 0x26, 0x85, 0x1b, 0x1a, 0xcd, 0xa6, 0xc6, 0x2a, 0xf3, 0x82, 0x00, 0x52, 0x29, 0xec, + 0x75, 0xb9, 0x81, 0x33, 0x28, 0x25, 0x58, 0x39, 0x63, 0x41, 0x24, 0x15, 0x00, 0x7d, 0xff, 0xf9, + 0xe3, 0x07, 0xce, 0x3e, 0xe5, 0x5e, 0x9d, 0xd2, 0xc6, 0x43, 0x3e, 0xda, 0x38, 0x23, 0x28, 0xd8, + 0x46, 0x7a, 0xbc, 0x5b, 0x4f, 0x0f, 0xce, 0x79, 0x0b, 0xf9, 0x20, 0xb6, 0x39, 0xf7, 0x3b, 0xf7, + 0x9b, 0x79, 0x34, 0x7c, 0x4c, 0x90, 0x7f, 0x25, 0x98, 0x4c, 0x45, 0x72, 0x45, 0x31, 0x1a, 0xcc, + 0x89, 0x2d, 0x14, 0x17, 0x11, 0xb1, 0x4d, 0xa4, 0x45, 0x91, 0xc5, 0x09, 0xa2, 0xe8, 0xec, 0x1c, + 0xc1, 0x06, 0x3b, 0x4d, 0x79, 0x69, 0xac, 0xf6, 0xf7, 0x0f, 0x83, 0x9e, 0x1c, 0xfb, 0x0c, 0xf7, + 0xb8, 0x14, 0x1a, 0xb8, 0x8b, 0x88, 0x02, 0x12, 0x89, 0x0a, 0xb6, 0xc0, 0xa3, 0x6a, 0x04, 0x3b, + 0xe1, 0x61, 0x10, 0x8c, 0x73, 0xed, 0x93, 0x5a, 0x09, 0x3a, 0x90, 0x7d, 0x22, 0x99, 0x28, 0x13, + 0x6a, 0x62, 0xa7, 0x3d, 0xd9, 0x6a, 0x05, 0xd0, 0x63, 0xb7, 0x39, 0xb1, 0xcc, 0x99, 0x3c, 0x0f, + 0xe6, 0x78, 0x14, 0xd1, 0x75, 0x9c, 0x95, 0x30, 0x93, 0x44, 0xb1, 0x08, 0xb5, 0x72, 0x0c, 0xad, + 0x2b, 0x21, 0x00, 0x6c, 0xef, 0x10, 0x6d, 0xf0, 0x6c, 0xae, 0x39, 0xcb, 0xe4, 0x4c, 0xb0, 0xde, + 0x25, 0x52, 0xea, 0x6a, 0xf1, 0xc8, 0xfe, 0xfb, 0xfb, 0x7a, 0xa5, 0xbf, 0x7f, 0xb0, 0xfc, 0x3d, + 0x38, 0x7c, 0xf9, 0x95, 0x1e, 0x2d, 0xd2, 0x46, 0xcd, 0xe6, 0x9b, 0xe5, 0x9e, 0xc3, 0x23, 0x06, + 0x07, 0xab, 0x89, 0x60, 0x5d, 0xf6, 0x6c, 0x3c, 0x1e, 0xb3, 0xc5, 0x0a, 0x44, 0x44, 0xd1, 0x29, + 0x0e, 0x24, 0xc4, 0x61, 0x44, 0xc5, 0x61, 0xee, 0xee, 0x94, 0x1b, 0xf6, 0x4c, 0x85, 0xf2, 0x1c, + 0xf1, 0x7e, 0xe2, 0x98, 0x2c, 0x42, 0xf8, 0x68, 0x29, 0x48, 0x38, 0xa8, 0x85, 0x65, 0x10, 0x38, + 0x96, 0xe6, 0x2a, 0x6c, 0x34, 0xc9, 0xa0, 0x27, 0x32, 0xc4, 0x1a, 0x41, 0xdd, 0x00, 0xfb, 0x0d, + 0x97, 0x90, 0xa6, 0x4d, 0x52, 0x94, 0x2b, 0xf0, 0x2d, 0xc0, 0xb7, 0x7d, 0xd9, 0x20, 0x6f, 0x09, + 0xf9, 0x33, 0x7b, 0x3e, 0xe0, 0x1d, 0xe4, 0x86, 0xf3, 0x49, 0x51, 0x9a, 0xa9, 0x4f, 0x6b, 0x81, + 0xe3, 0xfc, 0xea, 0xd9, 0x99, 0x14, 0x34, 0x76, 0x7c, 0x25, 0xfd, 0xb4, 0xe8, 0x13, 0xa6, 0x3c, + 0x62, 0xc6, 0xf2, 0xb6, 0x74, 0xf4, 0x0a, 0xce, 0xb2, 0x48, 0xdd, 0x72, 0x30, 0x5f, 0xad, 0x81, + 0x82, 0xde, 0x49, 0x01, 0xe2, 0x42, 0xa8, 0x86, 0x00, 0x14, 0x75, 0x66, 0x09, 0xb6, 0x0a, 0x82, + 0xb9, 0x2b, 0x6d, 0x2d, 0xbe, 0xd7, 0x9f, 0x6a, 0xcf, 0xf9, 0xaf, 0xae, 0xbd, 0xdd, 0xe7, 0x3f, + 0x77, 0x8a, 0x5b, 0x36, 0xd8, 0xeb, 0xad, 0xfc, 0x21, 0x43, 0xfd, 0x88, 0x3f, 0xa0, 0x85, 0x95, + 0xea, 0x4a, 0xe1, 0x32, 0x14, 0x71, 0x96, 0xe2, 0x45, 0xaa, 0x24, 0x2b, 0x53, 0xbc, 0x84, 0xd3, + 0x83, 0xa3, 0x35, 0x1b, 0xa0, 0x22, 0xe8, 0xae, 0x9e, 0x5b, 0x78, 0xdf, 0xb2, 0x6e, 0x75, 0xf1, + 0x38, 0x08, 0x6a, 0xe5, 0x0f, 0x0d, 0x20, 0x74, 0x5f, 0x35, 0x40, 0x68, 0x00, 0xb1, 0x79, 0xbb, + 0x33, 0x7d, 0x1e, 0xa2, 0x62, 0x38, 0x38, 0x5d, 0x56, 0x9a, 0x30, 0x6f, 0xca, 0x9f, 0xea, 0x99, + 0x1b, 0x69, 0x13, 0x60, 0x1e, 0xcc, 0x13, 0xb0, 0x11, 0xbb, 0xcc, 0x41, 0xbe, 0xb1, 0x62, 0xdd, + 0x9c, 0x33, 0x97, 0xcc, 0x97, 0xf9, 0x2d, 0x0b, 0x0d, 0xdf, 0xab, 0x32, 0x81, 0x59, 0x5d, 0x0a, + 0xb6, 0xd7, 0xf2, 0xd5, 0x11, 0xab, 0x92, 0x1d, 0x91, 0xde, 0x45, 0xf4, 0x54, 0xd1, 0xde, 0x73, + 0x3a, 0xea, 0x64, 0xee, 0x1a, 0x7e, 0x51, 0xef, 0xda, 0x99, 0xab, 0x05, 0xbb, 0x08, 0xeb, 0xd8, + 0xe3, 0x76, 0x2d, 0xd6, 0x8e, 0x7c, 0xc2, 0xd9, 0x43, 0xdb, 0xc2, 0xd9, 0xe1, 0x4b, 0xe6, 0xcd, + 0xa4, 0xe2, 0x6c, 0xff, 0x00, 0xda, 0xb3, 0xd8, 0x18, 0xce, 0x0c, 0xdb, 0x83, 0xb9, 0x4c, 0x2a, + 0xd4, 0xa4, 0xae, 0x13, 0x45, 0xd1, 0x28, 0x38, 0x8b, 0xd5, 0xdd, 0x52, 0xe6, 0xf6, 0x36, 0x63, + 0x7b, 0xb5, 0x05, 0xa9, 0x18, 0xc7, 0x65, 0x66, 0xc9, 0x7e, 0xaa, 0x69, 0x64, 0xfb, 0x86, 0x15, + 0x0f, 0xdc, 0xf9, 0x13, 0xdc, 0xd9, 0x63, 0x17, 0x8b, 0x07, 0xce, 0x41, 0x70, 0xd6, 0x21, 0x20, + 0x1a, 0x5b, 0x49, 0x22, 0x15, 0xb7, 0x27, 0x63, 0x27, 0xd0, 0x3a, 0x00, 0x07, 0xd7, 0x22, 0x17, + 0xde, 0xce, 0xdc, 0x2e, 0xba, 0x1e, 0x2e, 0xb8, 0x84, 0x8c, 0xf3, 0xfc, 0xa8, 0x79, 0xdd, 0x97, + 0xaa, 0x28, 0xad, 0x47, 0x90, 0x73, 0x36, 0x95, 0x69, 0x8a, 0xde, 0xd0, 0xab, 0x9a, 0xb0, 0x9d, + 0xb9, 0x58, 0x74, 0x69, 0xf7, 0xce, 0x5c, 0x1e, 0x51, 0x26, 0x02, 0x4b, 0xd8, 0x58, 0x1b, 0x3c, + 0x8e, 0xe1, 0x32, 0x36, 0xb8, 0xe8, 0x4a, 0x70, 0xfc, 0xff, 0xac, 0x6d, 0x67, 0x9e, 0x2f, 0xa0, + 0x6c, 0x65, 0xf6, 0x86, 0xa6, 0x9d, 0xb9, 0xc3, 0x98, 0x93, 0xe1, 0x4b, 0x0f, 0x62, 0xc3, 0xb7, + 0x55, 0xef, 0xcc, 0xcd, 0x02, 0xf5, 0xd9, 0x29, 0xaa, 0x03, 0xc6, 0xb7, 0x53, 0x69, 0xc2, 0xbd, + 0x9d, 0xf9, 0xd3, 0xc8, 0x2d, 0xf6, 0x02, 0x74, 0x9d, 0x97, 0x7a, 0x70, 0xb1, 0xd8, 0x48, 0xc9, + 0x37, 0x3a, 0x2f, 0x50, 0x75, 0x55, 0x55, 0x40, 0x9e, 0xea, 0x70, 0x44, 0x46, 0x1d, 0x5c, 0x80, + 0xa4, 0x5d, 0xef, 0xfd, 0xcc, 0xeb, 0xbb, 0x4f, 0xb0, 0xb4, 0x49, 0x9e, 0xe0, 0xec, 0xe0, 0x9c, + 0x2a, 0x8b, 0x04, 0xe7, 0x0f, 0x3f, 0x9d, 0xfe, 0xf6, 0x99, 0x6e, 0x26, 0x23, 0x1b, 0x4f, 0x48, + 0x0a, 0xee, 0xad, 0xa2, 0xa3, 0x5a, 0x04, 0x00, 0xf7, 0xf7, 0xab, 0x1a, 0x54, 0x2f, 0x05, 0x95, + 0x09, 0x02, 0x8f, 0x0e, 0xc1, 0x9e, 0x74, 0xb5, 0xac, 0xb7, 0x99, 0x78, 0x32, 0x8a, 0x9b, 0x1e, + 0x69, 0x59, 0x8d, 0x5a, 0x2d, 0x5d, 0xd5, 0x3f, 0xc3, 0xd7, 0x5f, 0x23, 0x11, 0x7b, 0x55, 0xbf, + 0xb5, 0xcd, 0x8d, 0xd3, 0x05, 0xe3, 0x9c, 0xea, 0xf5, 0x05, 0x17, 0xd3, 0xeb, 0x0b, 0x2e, 0x60, + 0xd7, 0x16, 0x1e, 0x34, 0x66, 0xd5, 0x72, 0x68, 0x2a, 0x23, 0x83, 0x45, 0x5d, 0xa4, 0x1f, 0xb6, + 0x6f, 0xd4, 0xf0, 0xec, 0x43, 0xc4, 0x75, 0x4f, 0x32, 0x2a, 0x62, 0x0d, 0xd0, 0x6a, 0xec, 0x9a, + 0x5a, 0x50, 0xf7, 0x72, 0x21, 0xd8, 0x58, 0x2d, 0xf5, 0x94, 0x59, 0xb6, 0xe1, 0xa4, 0x93, 0x82, + 0x7e, 0x55, 0xd4, 0xe2, 0x38, 0x93, 0x24, 0x00, 0x9a, 0x08, 0xaa, 0x1d, 0x3d, 0x02, 0x4d, 0x7e, + 0xed, 0xb7, 0xdc, 0xed, 0x03, 0x53, 0xd4, 0x70, 0xa2, 0x3c, 0x01, 0x67, 0x38, 0x81, 0xdb, 0x50, + 0x6c, 0x34, 0x93, 0xa8, 0x56, 0x84, 0x31, 0xe9, 0xa9, 0x58, 0x1e, 0xd5, 0x93, 0x5e, 0x7c, 0x42, + 0xdb, 0x64, 0xd6, 0x09, 0x7f, 0xbe, 0xfe, 0x02, 0xa4, 0xdf, 0x94, 0x6b, 0x11, 0xd1, 0x6d, 0x71, + 0x7f, 0x5a, 0x80, 0xaf, 0xa9, 0x8d, 0xa2, 0xa0, 0x11, 0xe9, 0x90, 0x02, 0x91, 0xdb, 0x60, 0x33, + 0xee, 0x86, 0x6a, 0x9c, 0x37, 0x17, 0x6a, 0xac, 0x7f, 0x24, 0xb2, 0x60, 0x3a, 0x0e, 0xd9, 0xdd, + 0xa5, 0x4f, 0x84, 0x34, 0x7a, 0x2b, 0xfb, 0x2a, 0xfd, 0x02, 0xdc, 0x94, 0xa5, 0x8e, 0x0b, 0x2d, + 0xf2, 0x18, 0xad, 0x1c, 0xae, 0x81, 0x7a, 0xba, 0xab, 0x2e, 0x4d, 0xd1, 0x63, 0x2d, 0xb5, 0xde, + 0xc1, 0x53, 0xcb, 0x36, 0x1f, 0x0b, 0xe2, 0x5b, 0x6a, 0x0b, 0x8f, 0xdc, 0x38, 0x81, 0x69, 0x82, + 0xb5, 0x5c, 0x5b, 0x47, 0x3c, 0xda, 0x62, 0xed, 0x64, 0x3c, 0x89, 0xbe, 0x18, 0x40, 0x15, 0xce, + 0x31, 0xfe, 0x4d, 0xf3, 0xb4, 0xcb, 0x60, 0x0c, 0x5b, 0x04, 0x91, 0x9d, 0x62, 0x4a, 0x40, 0x93, + 0x8c, 0x0b, 0xe5, 0x57, 0x4d, 0xdb, 0x07, 0x8a, 0xd0, 0x9a, 0xca, 0xb7, 0x6b, 0x33, 0x52, 0x69, + 0xe0, 0xca, 0x3b, 0x22, 0xcc, 0x4c, 0x2a, 0x81, 0x34, 0x11, 0x4e, 0x99, 0x8f, 0x9e, 0x71, 0xb9, + 0x9f, 0xbc, 0x56, 0xcd, 0x6a, 0x22, 0x2a, 0x67, 0xe1, 0xaa, 0xdf, 0xa8, 0xa8, 0x81, 0x33, 0x16, + 0x52, 0x21, 0x74, 0x22, 0xeb, 0x9d, 0x07, 0x20, 0x7a, 0xa4, 0xd2, 0xd5, 0x62, 0x4b, 0x56, 0x99, + 0x6a, 0x0c, 0xc2, 0x87, 0x03, 0x62, 0x8c, 0x7e, 0x1b, 0x3f, 0x2e, 0xc2, 0xb5, 0x7a, 0xb4, 0xac, + 0x89, 0xc8, 0xf0, 0x1e, 0xa3, 0x64, 0x73, 0xfb, 0x1a, 0xbe, 0xe5, 0x6c, 0xd9, 0xb2, 0x6e, 0xf6, + 0xf3, 0x2a, 0x47, 0x33, 0x9f, 0x97, 0x2a, 0x8d, 0x88, 0x37, 0x4e, 0xb5, 0x30, 0xc6, 0xeb, 0xcb, + 0xc1, 0x28, 0xbe, 0x16, 0xfd, 0xb6, 0x1c, 0x78, 0x36, 0xf7, 0xea, 0x49, 0x58, 0xfe, 0x1b, 0xdd, + 0x7d, 0x55, 0x04, 0x0c, 0xba, 0xdd, 0xf0, 0xb1, 0xde, 0xb8, 0x9a, 0x5c, 0xeb, 0x89, 0xea, 0x1b, + 0xae, 0x68, 0xe6, 0xb1, 0xb6, 0x01, 0x88, 0x47, 0x05, 0x7f, 0xc1, 0x42, 0x34, 0x0a, 0xf0, 0x04, + 0xa6, 0x02, 0x38, 0x91, 0xa0, 0xfc, 0x2f, 0x7c, 0x10, 0xae, 0xcf, 0x34, 0x62, 0x63, 0xe6, 0x30, + 0xd7, 0x23, 0x6a, 0xf3, 0x04, 0xe6, 0x0b, 0x41, 0x23, 0xd1, 0x9b, 0xca, 0x70, 0x9f, 0x86, 0xac, + 0xd1, 0x38, 0x72, 0x84, 0xfa, 0x3b, 0xee, 0x94, 0x4a, 0x7b, 0xe7, 0xa3, 0x2a, 0xb9, 0x55, 0xd0, + 0xea, 0x4c, 0x42, 0x66, 0xb1, 0xd5, 0x6f, 0xd7, 0xb3, 0x79, 0xdf, 0x9d, 0x3c, 0xf8, 0x9b, 0x9c, + 0xd1, 0x48, 0xef, 0x95, 0x3a, 0xf3, 0x59, 0xdd, 0x77, 0x82, 0x4c, 0x82, 0x1e, 0x04, 0x9d, 0x00, + 0x1c, 0x22, 0xe2, 0x14, 0xdc, 0x8b, 0x01, 0x0e, 0xbc, 0x4d, 0x08, 0x70, 0x86, 0xa8, 0x04, 0x1d, + 0xc3, 0xcd, 0xb3, 0x2d, 0x4f, 0xe2, 0x99, 0x7e, 0xfd, 0x69, 0x1a, 0xe6, 0x1f, 0x8d, 0x51, 0x94, + 0x5d, 0x1c, 0x72, 0x56, 0xe4, 0xc6, 0x32, 0xec, 0xab, 0x2c, 0x40, 0x71, 0x26, 0xf3, 0xc9, 0x6e, + 0x52, 0x90, 0xca, 0xeb, 0xa6, 0x20, 0xdb, 0x1c, 0xf3, 0xce, 0x0d, 0x1b, 0x6c, 0xad, 0x2f, 0x4e, + 0x45, 0x56, 0xbc, 0x26, 0xde, 0x2f, 0xad, 0xc5, 0xd5, 0xab, 0xb2, 0x53, 0x3d, 0x90, 0xce, 0x24, + 0x93, 0xc9, 0x15, 0x67, 0xef, 0xc9, 0x98, 0xa3, 0x7e, 0xbb, 0x7a, 0x01, 0x83, 0xa1, 0x61, 0xb9, + 0x67, 0xeb, 0x89, 0x4d, 0xaf, 0x69, 0xd3, 0xeb, 0x38, 0xb9, 0x5a, 0xed, 0xdb, 0x38, 0xa5, 0xb2, + 0x97, 0xd5, 0xe1, 0xb2, 0x14, 0xd1, 0x30, 0xd0, 0x14, 0xb1, 0x72, 0xb7, 0xce, 0x8c, 0x29, 0x93, + 0x65, 0x7b, 0xe0, 0xda, 0xf5, 0xee, 0x44, 0x0b, 0xa1, 0x7a, 0xb5, 0x3f, 0xbb, 0x2a, 0x87, 0x33, + 0x07, 0xbb, 0xcf, 0x0e, 0x3a, 0x9d, 0xce, 0x5f, 0x7a, 0xde, 0xf1, 0xe6, 0xc0, 0x09, 0xd5, 0xe9, + 0x36, 0x79, 0x04, 0x0a, 0x07, 0xde, 0xba, 0x5e, 0x8a, 0x8d, 0x4d, 0xbd, 0x98, 0x0f, 0x1e, 0x68, + 0xdd, 0xda, 0x7d, 0xf6, 0xf2, 0xc5, 0x8b, 0x17, 0xa4, 0xb5, 0xcc, 0x52, 0x17, 0xee, 0xe4, 0x9c, + 0xcd, 0x2c, 0x88, 0x6a, 0xed, 0x2e, 0xc5, 0x2a, 0x60, 0xa6, 0xcf, 0xd7, 0xff, 0xb7, 0x29, 0x0b, + 0x38, 0xf8, 0xf9, 0x60, 0xeb, 0x97, 0x2c, 0xbf, 0x8c, 0x33, 0x6f, 0xd8, 0x37, 0x65, 0x31, 0x78, + 0x8e, 0x5d, 0xf8, 0x3a, 0xf6, 0x7e, 0x39, 0x1d, 0x9e, 0x18, 0xcf, 0x7f, 0xff, 0x47, 0x40, 0x57, + 0xef, 0xcb, 0x4d, 0x9b, 0xea, 0x71, 0x64, 0xb0, 0xe5, 0x23, 0x2e, 0xee, 0xe8, 0x5f, 0x2b, 0x35, + 0xa1, 0xff, 0x8c, 0x68, 0xfc, 0x7e, 0x3b, 0x3a, 0x3d, 0x7c, 0x1e, 0x56, 0x6b, 0xc2, 0xd3, 0xe2, + 0x5f, 0xa5, 0x44, 0x06, 0xe2, 0x07, 0xda, 0x45, 0xbb, 0x1d, 0x50, 0x06, 0x92, 0xca, 0xd1, 0x9b, + 0x57, 0xdd, 0xba, 0xa9, 0xa8, 0x3d, 0x55, 0xd7, 0xd4, 0x55, 0x57, 0x57, 0xf5, 0x79, 0x87, 0xcb, + 0xe0, 0x7a, 0xf3, 0xca, 0xb9, 0xd1, 0x29, 0xe6, 0x6c, 0xd9, 0xaa, 0xaf, 0xb5, 0x7f, 0xde, 0x96, + 0xab, 0x4d, 0xd3, 0x3c, 0x4b, 0x31, 0xd3, 0xb8, 0x1d, 0x03, 0x6f, 0x74, 0xfc, 0xa1, 0xbb, 0xd1, + 0xbe, 0x7c, 0xf7, 0xa0, 0xe3, 0x0f, 0xd0, 0xf4, 0x9d, 0x93, 0x36, 0x0f, 0xc2, 0x8e, 0xc1, 0x53, + 0xfd, 0x7f, 0x83, 0xf0, 0xe8, 0x74, 0xf8, 0xff, 0x87, 0xf5, 0xe3, 0xc9, 0x68, 0xf8, 0x83, 0xb8, + 0xd2, 0x96, 0x1f, 0x04, 0xd6, 0x6d, 0x71, 0xc8, 0xfe, 0xfa, 0xc3, 0xd0, 0xfe, 0xfa, 0xe3, 0xd8, + 0xfe, 0x8a, 0xb3, 0x8e, 0x47, 0x8f, 0x9f, 0xb4, 0xf5, 0xd4, 0x51, 0xc7, 0xa3, 0xef, 0x5e, 0x6a, + 0xe3, 0x1c, 0xc8, 0x3b, 0x5e, 0xaa, 0x78, 0x0d, 0x45, 0x60, 0xd0, 0xfc, 0x61, 0xd4, 0x30, 0x7b, + 0x14, 0x45, 0x4d, 0x26, 0xe9, 0xef, 0x51, 0xd3, 0x92, 0x65, 0xb6, 0x7e, 0x88, 0x66, 0xda, 0xc4, + 0xa7, 0xf8, 0x22, 0xce, 0x25, 0x02, 0xa6, 0x7f, 0x8a, 0xff, 0x03, 0x76, 0xda, 0xd5, 0xdf, 0x3f, + 0x16, 0x00, 0x00 }; // Autogenerated from wled00/data/settings_2D.htm, do not edit!! -const uint16_t PAGE_settings_2D_length = 1751; +const uint16_t PAGE_settings_2D_length = 1754; const uint8_t PAGE_settings_2D[] PROGMEM = { 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x8d, 0x58, 0x6d, 0x73, 0xdb, 0x36, 0x12, 0xfe, 0xce, 0x5f, 0x01, 0x63, 0x3a, 0x2d, 0xd9, 0x50, 0x94, 0xe4, 0xde, 0x75, 0x3a, 0x16, 0x49, 0x37, 0x6e, 0xdc, 0xda, 0x1d, 0x7b, 0xe2, 0x89, 0x72, 0xce, 0xdc, 0x5c, 0x3a, 0x29, 0x44, - 0xae, 0x44, 0xc4, 0x24, 0xc0, 0x01, 0x40, 0xd9, 0xae, 0xe2, 0xff, 0x7e, 0x0b, 0x90, 0x7a, 0xb5, - 0xe4, 0xe4, 0x8b, 0x25, 0x82, 0xfb, 0x86, 0xdd, 0x67, 0x9f, 0x5d, 0x39, 0x3e, 0x7a, 0xf3, 0xf6, - 0xb7, 0xf7, 0xff, 0xbd, 0x39, 0x27, 0x85, 0xa9, 0xca, 0x34, 0xb6, 0x7f, 0x49, 0xc9, 0xc4, 0x2c, - 0xa1, 0x20, 0x28, 0x3e, 0x03, 0xcb, 0xd3, 0xb8, 0x02, 0xc3, 0x48, 0x56, 0x30, 0xa5, 0xc1, 0x24, - 0xb4, 0x31, 0xd3, 0xde, 0x2f, 0xb4, 0x3b, 0xf5, 0x04, 0xab, 0x20, 0xa1, 0x73, 0x0e, 0xf7, 0xb5, - 0x54, 0x86, 0x92, 0x4c, 0x0a, 0x03, 0x02, 0xc5, 0xee, 0x79, 0x6e, 0x8a, 0xe4, 0xdf, 0x83, 0xc1, - 0x4a, 0x74, 0xe7, 0x55, 0x0e, 0x73, 0x9e, 0x41, 0xcf, 0x3d, 0x84, 0x5c, 0x70, 0xc3, 0x59, 0xd9, - 0xd3, 0x19, 0x2b, 0x21, 0x19, 0x86, 0x15, 0x7b, 0xe0, 0x55, 0x53, 0xad, 0x9e, 0x1b, 0x0d, 0xca, - 0x3d, 0xb0, 0x09, 0x3e, 0x0b, 0x49, 0x9f, 0x79, 0x4e, 0x63, 0xc3, 0x4d, 0x09, 0xe9, 0xf1, 0x1b, - 0x32, 0x06, 0xd3, 0x6b, 0xea, 0xb8, 0xdf, 0x1e, 0xc4, 0x3a, 0x53, 0xbc, 0x36, 0xa9, 0x37, 0x67, - 0x8a, 0x94, 0x32, 0xe3, 0x75, 0x98, 0x27, 0xb9, 0xcc, 0x9a, 0x0a, 0x83, 0x09, 0xf1, 0x20, 0x39, - 0x1a, 0x8e, 0xa6, 0x8d, 0xc8, 0x0c, 0x97, 0x82, 0x5c, 0xf8, 0xc1, 0xe2, 0x9e, 0x8b, 0x5c, 0xde, - 0x47, 0xb2, 0x06, 0xe1, 0xd3, 0xc2, 0x98, 0x5a, 0x9f, 0xf4, 0xfb, 0x77, 0x42, 0x46, 0xf7, 0x25, - 0xe4, 0xd1, 0x0c, 0xfa, 0x53, 0x60, 0xa6, 0x51, 0xa0, 0xfb, 0xc7, 0x6f, 0x68, 0xf0, 0xb4, 0xd2, - 0x3d, 0xdb, 0xd5, 0xed, 0x63, 0xc2, 0x0c, 0x17, 0x33, 0x4d, 0x43, 0xfa, 0x49, 0x43, 0x39, 0xdd, - 0x94, 0x9e, 0x5d, 0xe6, 0x3e, 0x04, 0x0b, 0x05, 0x68, 0x4a, 0x10, 0x6b, 0xd7, 0x9c, 0x97, 0x60, - 0x83, 0x3a, 0x7b, 0x74, 0xaf, 0xd6, 0xa2, 0xa5, 0x64, 0xf9, 0x9f, 0x63, 0x1f, 0x42, 0x91, 0x1c, - 0x0d, 0x82, 0x45, 0x09, 0x86, 0x98, 0x24, 0x8f, 0x32, 0x85, 0x71, 0x40, 0xa7, 0xe4, 0xd3, 0xf6, - 0x9e, 0x34, 0x18, 0x99, 0x08, 0xfd, 0xbe, 0x36, 0x46, 0xf1, 0x49, 0x63, 0x00, 0x5f, 0xa8, 0x8c, - 0x86, 0x10, 0x84, 0xbb, 0xe7, 0xe6, 0xb1, 0x06, 0x8c, 0xcc, 0xc0, 0x83, 0xe9, 0x7f, 0x66, 0x73, - 0xb6, 0x34, 0xf0, 0x4c, 0x90, 0xe9, 0x47, 0x81, 0x26, 0x44, 0x10, 0xe6, 0xd1, 0x44, 0xe6, 0x8f, - 0x11, 0xab, 0xf1, 0x7e, 0xf9, 0x6f, 0x05, 0x2f, 0x73, 0xdf, 0x58, 0x79, 0x96, 0xe7, 0xe7, 0x73, - 0x8c, 0xe2, 0x8a, 0x6b, 0xac, 0x31, 0x28, 0x9f, 0xda, 0x98, 0x69, 0xe8, 0x07, 0x49, 0xba, 0xf8, - 0x03, 0xcc, 0xad, 0x1f, 0x84, 0xff, 0xb9, 0xf4, 0x83, 0xa7, 0xfd, 0xc2, 0xa0, 0x94, 0x54, 0x18, - 0x23, 0x0a, 0x23, 0x4a, 0xb4, 0x2c, 0x21, 0x2a, 0xe5, 0xcc, 0xa7, 0xe7, 0xf6, 0x9c, 0x74, 0x19, - 0xc0, 0x44, 0x92, 0x29, 0x2f, 0xc1, 0xdd, 0x05, 0x61, 0xa1, 0xf0, 0xce, 0x57, 0xdd, 0xb9, 0x9c, - 0x5a, 0xe4, 0x4d, 0xf9, 0xac, 0x51, 0xcc, 0xa5, 0xac, 0xbd, 0x0b, 0x99, 0x32, 0x6e, 0x6b, 0xf6, - 0x51, 0x5c, 0x8a, 0x4c, 0x56, 0x35, 0x66, 0x0e, 0x48, 0xcd, 0x66, 0x40, 0x72, 0x66, 0xd8, 0x11, - 0x96, 0x63, 0x23, 0xcb, 0x63, 0x2c, 0x1f, 0xb5, 0x0e, 0x4e, 0x68, 0x92, 0x74, 0x75, 0x44, 0x78, - 0x38, 0x7b, 0x51, 0xad, 0xa4, 0x91, 0x99, 0x2c, 0xbf, 0xff, 0xde, 0x77, 0x90, 0x19, 0x84, 0xbe, - 0xc3, 0x52, 0x62, 0x25, 0xca, 0xb1, 0x91, 0x0a, 0xad, 0xda, 0x1a, 0x5e, 0x1a, 0xa8, 0xec, 0xed, - 0xb3, 0xcb, 0x9a, 0x06, 0xc1, 0x97, 0x2f, 0x9d, 0x18, 0xea, 0x57, 0x35, 0x06, 0xfc, 0x3b, 0xda, - 0x27, 0xd7, 0x32, 0x87, 0x88, 0xdc, 0x94, 0xc0, 0x34, 0x10, 0x4c, 0x04, 0x28, 0xf2, 0xe1, 0xea, - 0xfc, 0x0d, 0xb9, 0xbc, 0xc1, 0x90, 0xc2, 0x2d, 0x8b, 0x7a, 0xdb, 0x62, 0xe8, 0xac, 0x05, 0x81, - 0x95, 0x72, 0x98, 0xb0, 0xe6, 0x4f, 0x1d, 0x48, 0x11, 0xa3, 0xf4, 0x95, 0x7b, 0x7d, 0x42, 0x69, - 0xf0, 0x6a, 0x0d, 0xbe, 0xbe, 0x8e, 0x3e, 0xeb, 0xd3, 0x3a, 0x19, 0x0e, 0x68, 0x78, 0x34, 0x0c, - 0x9e, 0x6c, 0x1f, 0x60, 0x7f, 0xdd, 0x30, 0x01, 0xa5, 0x4e, 0x7e, 0xfe, 0xd7, 0x1a, 0xfc, 0x58, - 0x21, 0xc0, 0x6e, 0x08, 0x16, 0x7c, 0xea, 0xd3, 0x01, 0x66, 0x21, 0xb1, 0x20, 0xa5, 0x1a, 0x43, - 0xa7, 0x41, 0x34, 0x67, 0x65, 0x03, 0x41, 0x87, 0x57, 0xf7, 0xa2, 0xaa, 0x73, 0x3e, 0xc7, 0x37, - 0xda, 0x3c, 0x62, 0xc5, 0x72, 0xae, 0xeb, 0x92, 0x3d, 0x26, 0x54, 0x48, 0x81, 0x45, 0x9a, 0x4b, - 0x9e, 0x13, 0x6c, 0x12, 0x30, 0xad, 0x27, 0x3f, 0x18, 0xbd, 0xa4, 0x34, 0xc1, 0xd0, 0xef, 0x68, - 0xb8, 0x0e, 0xac, 0xb6, 0x7c, 0x73, 0x89, 0xc0, 0xce, 0xa3, 0xf1, 0x34, 0xba, 0xbe, 0xb9, 0xe8, - 0x02, 0xf8, 0x71, 0xf7, 0xc5, 0x6d, 0xf7, 0x62, 0x64, 0xfb, 0x42, 0xb4, 0x21, 0xd7, 0xce, 0x06, - 0x7a, 0xc9, 0x2c, 0x46, 0x15, 0x88, 0xa8, 0x04, 0x31, 0x33, 0xc5, 0x08, 0x6f, 0x26, 0xe2, 0x95, - 0x93, 0x60, 0x2a, 0x95, 0x6f, 0xd5, 0x90, 0x53, 0x46, 0xb0, 0x3e, 0x1f, 0xc1, 0xab, 0x57, 0x01, - 0xc2, 0xd4, 0x3d, 0x61, 0x2b, 0x3a, 0xb5, 0xf4, 0x80, 0x5a, 0xba, 0xa1, 0xd6, 0xeb, 0x61, 0x82, - 0xaa, 0x56, 0x6d, 0x03, 0x5a, 0x4b, 0x53, 0x98, 0x84, 0x45, 0xab, 0x77, 0xe8, 0x76, 0xd8, 0xe2, - 0x07, 0xef, 0xb7, 0xf4, 0x6a, 0x92, 0xc1, 0xc8, 0xc4, 0xf0, 0xa3, 0x18, 0x99, 0xcd, 0x30, 0xcd, - 0x1e, 0x87, 0x58, 0xcf, 0x8e, 0x30, 0x76, 0x12, 0xe3, 0x6e, 0xb4, 0x9b, 0x9d, 0x34, 0x59, 0x5f, - 0xb1, 0xad, 0xf3, 0xa8, 0xf5, 0xf7, 0x77, 0x8c, 0x35, 0x23, 0x3c, 0x4f, 0x68, 0x2d, 0xca, 0xef, - 0x16, 0xf0, 0x44, 0xd3, 0xef, 0x16, 0x03, 0xc4, 0x07, 0x9c, 0x52, 0x7a, 0xf2, 0x43, 0x5c, 0x28, - 0xe2, 0xca, 0xd9, 0x71, 0xfb, 0xc9, 0xf1, 0xcf, 0x83, 0xfa, 0x81, 0xa6, 0x3f, 0x3c, 0x39, 0x63, - 0xc4, 0x6a, 0xc4, 0x13, 0x95, 0x0e, 0x63, 0xdd, 0xd4, 0xa9, 0x36, 0x71, 0xdf, 0x7e, 0x12, 0x84, - 0xfc, 0x09, 0x89, 0x91, 0x17, 0x21, 0xc3, 0xf8, 0x1c, 0x9d, 0xdf, 0x58, 0xd1, 0x33, 0x9a, 0x7e, - 0x14, 0x1f, 0x4d, 0x2c, 0x6b, 0x77, 0x17, 0x77, 0xfb, 0x04, 0xf1, 0x98, 0xbe, 0x97, 0xc8, 0xea, - 0xed, 0xe9, 0x3e, 0x89, 0x21, 0x4d, 0xcf, 0xa4, 0x31, 0xb2, 0xda, 0x10, 0x42, 0x57, 0xce, 0x7e, - 0xba, 0xc7, 0xcf, 0xbb, 0x43, 0x7e, 0xae, 0x60, 0x6a, 0xbe, 0xe2, 0xe8, 0x1d, 0x9f, 0x15, 0x66, - 0xaf, 0x1f, 0xbc, 0xe7, 0x47, 0xf1, 0x56, 0x71, 0xec, 0x6b, 0x47, 0x1d, 0x7b, 0xaf, 0x78, 0x7b, - 0xc8, 0xf5, 0x85, 0x54, 0xfc, 0x1f, 0x1c, 0x94, 0xac, 0xfc, 0x4a, 0x00, 0xb7, 0xc8, 0x7f, 0x3c, - 0xdb, 0x12, 0xdb, 0x89, 0x61, 0x0c, 0x0a, 0x59, 0x1a, 0x29, 0x00, 0x30, 0x04, 0x2e, 0xea, 0x06, - 0x2b, 0x89, 0x8c, 0x9f, 0xd0, 0xac, 0x80, 0xec, 0x6e, 0x22, 0x1f, 0xe8, 0x66, 0x44, 0x63, 0x9c, - 0xa0, 0x7d, 0xac, 0x72, 0xfa, 0xf7, 0x48, 0x44, 0x5c, 0xe0, 0xbc, 0x35, 0xaf, 0xf3, 0xcf, 0x2c, - 0x43, 0x0b, 0x17, 0xef, 0xaf, 0xaf, 0x7c, 0x3a, 0x01, 0xc4, 0x1f, 0x20, 0xed, 0xd3, 0x70, 0x13, - 0x69, 0x6b, 0xb8, 0x77, 0xc8, 0xde, 0xdf, 0x7f, 0x23, 0xcb, 0x3a, 0x22, 0x81, 0x65, 0x1f, 0x8a, - 0x38, 0x19, 0x7e, 0xf9, 0x02, 0xff, 0x13, 0xbd, 0xe1, 0x5f, 0x11, 0xda, 0x90, 0x73, 0xf0, 0xb7, - 0xac, 0x6e, 0xf0, 0xc6, 0x62, 0xbb, 0x47, 0x70, 0x1d, 0xd8, 0xee, 0x8c, 0x64, 0xb8, 0x6a, 0x0d, - 0xb0, 0x93, 0x60, 0x7f, 0x04, 0x01, 0xec, 0xf1, 0x33, 0x31, 0x62, 0xd9, 0xe3, 0x8b, 0x56, 0x4d, - 0x94, 0x9f, 0xb0, 0x79, 0x9e, 0xf1, 0xd3, 0x06, 0x39, 0x9c, 0x52, 0x2e, 0x4a, 0xcc, 0x2a, 0x3d, - 0xe9, 0x98, 0x6e, 0xa5, 0x88, 0xf6, 0x9f, 0x2b, 0xa6, 0xc3, 0x5d, 0x85, 0x27, 0x0f, 0x2b, 0xd5, - 0x2e, 0x25, 0xb1, 0x13, 0x4e, 0x7f, 0xe5, 0x95, 0x5d, 0x62, 0x48, 0xa3, 0x4a, 0xa4, 0x5b, 0xa7, - 0x9f, 0x69, 0xdb, 0xa5, 0x28, 0xe8, 0x04, 0xe2, 0x7e, 0xbb, 0x8a, 0xd9, 0xe9, 0x8b, 0xf3, 0xd0, - 0x92, 0x7f, 0x42, 0x71, 0x60, 0x61, 0xd1, 0xf0, 0xea, 0x95, 0xe7, 0x7a, 0xd3, 0x7e, 0xfb, 0xa4, - 0x97, 0x55, 0x1d, 0x4f, 0x29, 0xc1, 0xc5, 0xab, 0x90, 0xb6, 0x6b, 0xa5, 0xb6, 0x1b, 0x92, 0x6d, - 0xe2, 0xac, 0x64, 0x5a, 0x27, 0xd4, 0x48, 0x9c, 0x48, 0xf7, 0xdb, 0x67, 0x05, 0x94, 0x35, 0xf6, - 0x9e, 0x17, 0xe3, 0xd4, 0x37, 0x98, 0x9c, 0x16, 0x2d, 0xed, 0x03, 0x45, 0xaf, 0x59, 0xc9, 0xb3, - 0xbb, 0x84, 0x5e, 0x58, 0xb7, 0xa7, 0x71, 0xbf, 0x7d, 0xd1, 0xa1, 0x66, 0xbf, 0x8e, 0xb7, 0x52, - 0x3a, 0xb3, 0x4a, 0x67, 0x2c, 0xbb, 0x5b, 0xeb, 0x6d, 0x69, 0xe8, 0x66, 0x52, 0x71, 0x8c, 0x71, - 0xcc, 0xe6, 0xb0, 0x16, 0x29, 0xd4, 0xd2, 0x7c, 0x71, 0x9c, 0x7a, 0xb8, 0xda, 0x21, 0x2a, 0xec, - 0x66, 0x87, 0x4f, 0x63, 0xdc, 0x4e, 0x6a, 0x82, 0xdb, 0x81, 0x2b, 0xf4, 0xba, 0xc9, 0x6c, 0x22, - 0xdc, 0xc0, 0x5a, 0xa6, 0xe1, 0xed, 0xf5, 0x4d, 0x1b, 0x48, 0x81, 0x7b, 0x2d, 0x1e, 0x6c, 0x41, - 0x2b, 0xdc, 0x60, 0x66, 0xb7, 0xa0, 0x60, 0x46, 0x9e, 0xf5, 0xe4, 0x10, 0x57, 0x4a, 0xeb, 0x6d, - 0xd5, 0x6a, 0xde, 0xf3, 0x76, 0xc4, 0xd8, 0xae, 0x19, 0x0a, 0x3d, 0xac, 0x84, 0xb6, 0xba, 0x71, - 0xc5, 0x9f, 0xed, 0xf4, 0x23, 0x5e, 0x47, 0x97, 0x1d, 0x4a, 0x4e, 0x1c, 0x2e, 0xf0, 0x96, 0x3f, - 0x6d, 0x1a, 0xc2, 0xa7, 0x96, 0x3f, 0x73, 0x8e, 0x1b, 0x9e, 0x46, 0xa3, 0x9a, 0xf8, 0x1f, 0x1e, - 0x2e, 0x82, 0x55, 0x3f, 0x77, 0xfd, 0xfb, 0x01, 0x0d, 0xb6, 0x69, 0x14, 0x4d, 0x35, 0x01, 0x85, - 0x85, 0xe7, 0xc2, 0x86, 0x65, 0xe7, 0x3c, 0x7e, 0x1e, 0xff, 0x42, 0x97, 0xa1, 0xe2, 0xe6, 0x4e, - 0x1e, 0x76, 0xd4, 0x2f, 0x28, 0xd9, 0xd6, 0xf6, 0x5e, 0x52, 0xb7, 0xd7, 0x59, 0xb3, 0x54, 0x9b, - 0x7e, 0xbd, 0x13, 0xd1, 0xb5, 0xb5, 0xf9, 0x52, 0x48, 0x6b, 0x8b, 0x43, 0x8b, 0x2c, 0xa7, 0x9b, - 0xd0, 0xb6, 0x00, 0x64, 0x49, 0x6d, 0xbb, 0xb6, 0xbd, 0xa5, 0xf1, 0xdb, 0xdd, 0x80, 0xbf, 0xd9, - 0xf6, 0xe6, 0x14, 0xf2, 0xba, 0x31, 0xb4, 0x03, 0xa0, 0x2e, 0x29, 0x67, 0xfb, 0x90, 0xb0, 0x39, - 0x80, 0x9e, 0x63, 0xc0, 0xdb, 0x99, 0x3e, 0x87, 0x66, 0xcf, 0xbb, 0x7d, 0xa6, 0xb7, 0x66, 0x4e, - 0xf7, 0xda, 0x3b, 0x38, 0x70, 0xb6, 0xc0, 0xf5, 0xd2, 0xb0, 0xb9, 0x5d, 0xfb, 0xf2, 0x5e, 0x9c, - 0x32, 0xdf, 0x30, 0x61, 0xb6, 0x9c, 0x7a, 0xdf, 0x3e, 0x5e, 0xec, 0x68, 0x39, 0xb0, 0x21, 0xc4, - 0x3c, 0xf5, 0x5e, 0x63, 0xd9, 0x2c, 0xe0, 0x09, 0xd7, 0xf8, 0x2d, 0x77, 0x14, 0x3e, 0xb4, 0x9d, - 0x5d, 0xe1, 0xbc, 0x21, 0x75, 0xf1, 0xa8, 0x1d, 0x18, 0x70, 0x8f, 0xef, 0x00, 0x61, 0x05, 0x4c, - 0x01, 0x44, 0xa3, 0xf9, 0x8d, 0xde, 0x88, 0x5c, 0x58, 0x6d, 0x37, 0x13, 0x5d, 0xc8, 0xa6, 0xcc, - 0xc9, 0x04, 0x08, 0x53, 0xca, 0x36, 0x7e, 0x4e, 0xa6, 0xb8, 0x82, 0x13, 0xe4, 0xbd, 0x5e, 0x89, - 0xa9, 0xc6, 0x2f, 0x64, 0xe2, 0xca, 0xd5, 0x53, 0x36, 0xb3, 0xe8, 0x2f, 0x07, 0x15, 0x62, 0x90, - 0x4c, 0xd9, 0xad, 0x99, 0xdc, 0x73, 0x53, 0xe0, 0xcf, 0x8e, 0x7b, 0xe8, 0x18, 0x86, 0xb4, 0x58, - 0xb3, 0x3f, 0x46, 0xac, 0x6f, 0x67, 0xc3, 0xc7, 0x20, 0xd1, 0x20, 0xe1, 0x18, 0x0f, 0x3a, 0xd1, - 0x48, 0xb3, 0x90, 0x07, 0x91, 0xe7, 0x02, 0x39, 0x67, 0x59, 0xd1, 0xa9, 0x66, 0x4c, 0x90, 0x02, - 0x89, 0x0d, 0x83, 0x9d, 0x4e, 0x01, 0x67, 0x91, 0x75, 0xb7, 0xaa, 0x19, 0x61, 0x22, 0xef, 0x4b, - 0xb5, 0x76, 0x5d, 0x4b, 0x8e, 0x12, 0xdd, 0x29, 0xb2, 0x83, 0x6c, 0x0c, 0xda, 0xec, 0xf3, 0x96, - 0x49, 0x0e, 0x65, 0xb2, 0xe5, 0x8e, 0x96, 0x30, 0x5a, 0x25, 0xc7, 0x20, 0xeb, 0xcd, 0xad, 0x1d, - 0x88, 0x1d, 0xa1, 0x7a, 0x4b, 0x5e, 0x55, 0xe9, 0x57, 0xe8, 0xfe, 0x30, 0x73, 0x7b, 0x2f, 0x51, - 0x77, 0xdf, 0x4e, 0x23, 0xfc, 0xb0, 0x13, 0xcb, 0x8e, 0x2f, 0xfb, 0xff, 0x85, 0xff, 0x03, 0xf0, - 0x4e, 0xfb, 0x34, 0x6f, 0x10, 0x00, 0x00 + 0xae, 0x44, 0xc4, 0x24, 0xc0, 0x01, 0x20, 0xd9, 0xae, 0xe2, 0xff, 0x7e, 0x0b, 0x90, 0x12, 0x25, + 0x59, 0x8a, 0xf3, 0xc5, 0x12, 0xc1, 0x7d, 0xc3, 0xee, 0xb3, 0xcf, 0xae, 0x1c, 0x1f, 0xbd, 0x79, + 0xfb, 0xdb, 0xfb, 0xff, 0xde, 0x9c, 0x93, 0xc2, 0x54, 0x65, 0x1a, 0xdb, 0xbf, 0xa4, 0x64, 0x62, + 0x96, 0x50, 0x10, 0x14, 0x9f, 0x81, 0xe5, 0x69, 0x5c, 0x81, 0x61, 0x24, 0x2b, 0x98, 0xd2, 0x60, + 0x12, 0x3a, 0x37, 0xd3, 0xde, 0x2f, 0xb4, 0x3d, 0xf5, 0x04, 0xab, 0x20, 0xa1, 0x0b, 0x0e, 0xf7, + 0xb5, 0x54, 0x86, 0x92, 0x4c, 0x0a, 0x03, 0x02, 0xc5, 0xee, 0x79, 0x6e, 0x8a, 0xe4, 0xdf, 0x83, + 0xc1, 0x5a, 0x74, 0xe7, 0x55, 0x0e, 0x0b, 0x9e, 0x41, 0xcf, 0x3d, 0x84, 0x5c, 0x70, 0xc3, 0x59, + 0xd9, 0xd3, 0x19, 0x2b, 0x21, 0x19, 0x86, 0x15, 0x7b, 0xe0, 0xd5, 0xbc, 0x5a, 0x3f, 0xcf, 0x35, + 0x28, 0xf7, 0xc0, 0x26, 0xf8, 0x2c, 0x24, 0x7d, 0xe6, 0x39, 0x8d, 0x0d, 0x37, 0x25, 0xa4, 0xc7, + 0x6f, 0xc8, 0x18, 0x4c, 0x6f, 0x5e, 0xc7, 0xfd, 0xe6, 0x20, 0xd6, 0x99, 0xe2, 0xb5, 0x49, 0xbd, + 0x05, 0x53, 0xa4, 0x94, 0x19, 0xaf, 0xc3, 0x3c, 0xc9, 0x65, 0x36, 0xaf, 0x30, 0x98, 0x10, 0x0f, + 0x92, 0xa3, 0xe1, 0x68, 0x3a, 0x17, 0x99, 0xe1, 0x52, 0x90, 0x0b, 0x3f, 0x58, 0xde, 0x73, 0x91, + 0xcb, 0xfb, 0x48, 0xd6, 0x20, 0x7c, 0x5a, 0x18, 0x53, 0xeb, 0x93, 0x7e, 0xff, 0x4e, 0xc8, 0xe8, + 0xbe, 0x84, 0x3c, 0x9a, 0x41, 0x7f, 0x0a, 0xcc, 0xcc, 0x15, 0xe8, 0xfe, 0xf1, 0x1b, 0x1a, 0x3c, + 0xad, 0x75, 0xcf, 0x76, 0x75, 0xfb, 0x98, 0x30, 0xc3, 0xc5, 0x4c, 0xd3, 0x90, 0x7e, 0xd2, 0x50, + 0x4e, 0x37, 0xa5, 0x67, 0x97, 0xb9, 0x0f, 0xc1, 0x52, 0x01, 0x9a, 0x12, 0xc4, 0xda, 0x35, 0xe7, + 0x25, 0xd8, 0xa0, 0xce, 0x1e, 0xdd, 0xab, 0x4e, 0xb4, 0x94, 0x2c, 0xff, 0x73, 0xec, 0x43, 0x28, + 0x92, 0xa3, 0x41, 0xb0, 0x2c, 0xc1, 0x10, 0x93, 0xe4, 0x51, 0xa6, 0x30, 0x0e, 0x68, 0x95, 0x7c, + 0xda, 0xdc, 0x93, 0x06, 0x23, 0x13, 0xa1, 0xdf, 0xd7, 0xc6, 0x28, 0x3e, 0x99, 0x1b, 0xc0, 0x17, + 0x2a, 0xa3, 0x21, 0x04, 0xe1, 0xee, 0xb9, 0x79, 0xac, 0x01, 0x23, 0x33, 0xf0, 0x60, 0xfa, 0x9f, + 0xd9, 0x82, 0xad, 0x0c, 0x3c, 0x13, 0x64, 0xfa, 0x51, 0xa0, 0x09, 0x11, 0x84, 0x79, 0x34, 0x91, + 0xf9, 0x63, 0xc4, 0x6a, 0xbc, 0x5f, 0xfe, 0x5b, 0xc1, 0xcb, 0xdc, 0x37, 0x56, 0x9e, 0xe5, 0xf9, + 0xf9, 0x02, 0xa3, 0xb8, 0xe2, 0x1a, 0x6b, 0x0c, 0xca, 0xa7, 0x36, 0x66, 0x1a, 0xfa, 0x41, 0x92, + 0x2e, 0xff, 0x00, 0x73, 0xeb, 0x07, 0xe1, 0x7f, 0x2e, 0xfd, 0xe0, 0x69, 0xbf, 0x30, 0x28, 0x25, + 0x15, 0xc6, 0x88, 0xc2, 0x88, 0x12, 0x2d, 0x4b, 0x88, 0x4a, 0x39, 0xf3, 0xe9, 0xb9, 0x3d, 0x27, + 0x6d, 0x06, 0x30, 0x91, 0x64, 0xca, 0x4b, 0x70, 0x77, 0x41, 0x58, 0x28, 0xbc, 0xf3, 0x55, 0x7b, + 0x2e, 0xa7, 0x16, 0x79, 0x53, 0x3e, 0x9b, 0x2b, 0xe6, 0x52, 0xd6, 0xdc, 0x85, 0x4c, 0x19, 0xb7, + 0x35, 0xfb, 0x28, 0x2e, 0x45, 0x26, 0xab, 0x1a, 0x33, 0x07, 0xa4, 0x66, 0x33, 0x20, 0x39, 0x33, + 0xec, 0x08, 0xcb, 0xb1, 0x91, 0xe5, 0x31, 0x96, 0x8f, 0x5a, 0x07, 0x27, 0x34, 0x49, 0xda, 0x3a, + 0x22, 0x3c, 0x9c, 0xbd, 0xa8, 0x56, 0xd2, 0xc8, 0x4c, 0x96, 0xdf, 0x7f, 0xef, 0x3b, 0xc8, 0x0c, + 0x42, 0xdf, 0x61, 0x29, 0xb1, 0x12, 0xe5, 0xd8, 0x48, 0x85, 0x56, 0x6d, 0x0d, 0x2f, 0x0d, 0x54, + 0xf6, 0xf6, 0xd9, 0x65, 0x4d, 0x83, 0xe0, 0xcb, 0x97, 0x56, 0x0c, 0xf5, 0xab, 0x1a, 0x03, 0xfe, + 0x1d, 0xed, 0x93, 0x6b, 0x99, 0x43, 0x44, 0x6e, 0x4a, 0x60, 0x1a, 0x08, 0x26, 0x02, 0x14, 0xf9, + 0x70, 0x75, 0xfe, 0x86, 0x5c, 0xde, 0x60, 0x48, 0xe1, 0x96, 0x45, 0xbd, 0x6d, 0x31, 0x74, 0xd6, + 0x82, 0xc0, 0x4a, 0x39, 0x4c, 0x58, 0xf3, 0xa7, 0x0e, 0xa4, 0x88, 0x51, 0xfa, 0xca, 0xbd, 0x3e, + 0xa1, 0x34, 0x78, 0xd5, 0x81, 0xaf, 0xaf, 0xa3, 0xcf, 0xfa, 0xb4, 0x4e, 0x86, 0x03, 0x1a, 0x1e, + 0x0d, 0x83, 0x27, 0xdb, 0x07, 0xd8, 0x5f, 0x37, 0x4c, 0x40, 0xa9, 0x93, 0x9f, 0xff, 0xd5, 0x81, + 0x1f, 0x2b, 0x04, 0xd8, 0x0d, 0xc1, 0x92, 0x4f, 0x7d, 0x3a, 0xc0, 0x2c, 0x24, 0x16, 0xa4, 0x54, + 0x63, 0xe8, 0x34, 0x88, 0x16, 0xac, 0x9c, 0x43, 0xd0, 0xe2, 0xd5, 0xbd, 0xa8, 0xea, 0x9c, 0x2f, + 0xf0, 0x8d, 0x36, 0x8f, 0x58, 0xb1, 0x9c, 0xeb, 0xba, 0x64, 0x8f, 0x09, 0x15, 0x52, 0x60, 0x91, + 0x16, 0x92, 0xe7, 0x04, 0x9b, 0x04, 0x4c, 0xe3, 0xc9, 0x0f, 0x46, 0x5f, 0x53, 0x9a, 0x60, 0xe8, + 0x77, 0x34, 0xec, 0x02, 0xab, 0x2d, 0xdf, 0x5c, 0x22, 0xb0, 0xf3, 0x68, 0x3c, 0x8d, 0xae, 0x6f, + 0x2e, 0xda, 0x00, 0x7e, 0xdc, 0x7d, 0x71, 0xdb, 0xbe, 0x18, 0xd9, 0xbe, 0x10, 0x4d, 0xc8, 0xb5, + 0xb3, 0x81, 0x5e, 0x32, 0x8b, 0x51, 0x05, 0x22, 0x2a, 0x41, 0xcc, 0x4c, 0x31, 0xc2, 0x9b, 0x89, + 0x78, 0xed, 0x24, 0x98, 0x4a, 0xe5, 0x5b, 0x35, 0xe4, 0x94, 0x11, 0x74, 0xe7, 0x23, 0x78, 0xf5, + 0x2a, 0x40, 0x98, 0xba, 0x27, 0x6c, 0x45, 0xa7, 0x96, 0x1e, 0x50, 0x4b, 0x37, 0xd4, 0x7a, 0x3d, + 0x4c, 0x50, 0xd5, 0xa8, 0x6d, 0x40, 0x6b, 0x65, 0x0a, 0x93, 0xb0, 0x6c, 0xf4, 0x0e, 0xdd, 0x0e, + 0x5b, 0xfc, 0xe0, 0xfd, 0x56, 0x5e, 0x4d, 0x32, 0x18, 0x99, 0x18, 0x7e, 0x14, 0x23, 0xb3, 0x19, + 0xa6, 0xd9, 0xe3, 0x10, 0xeb, 0xd9, 0x12, 0xc6, 0x4e, 0x62, 0xdc, 0x8d, 0x76, 0xb3, 0x93, 0x26, + 0xdd, 0x15, 0x9b, 0x3a, 0x8f, 0x1a, 0x7f, 0x7f, 0xc7, 0x58, 0x33, 0xc2, 0xf3, 0x84, 0xd6, 0xa2, + 0xfc, 0x6e, 0x09, 0x4f, 0x34, 0xfd, 0x6e, 0x39, 0x40, 0x7c, 0xc0, 0x29, 0xa5, 0x27, 0x3f, 0xc4, + 0x85, 0x22, 0xae, 0x9c, 0x2d, 0xb7, 0x9f, 0x1c, 0xff, 0x3c, 0xa8, 0x1f, 0x68, 0xfa, 0xc3, 0x93, + 0x33, 0x46, 0xac, 0x46, 0x3c, 0x51, 0xe9, 0x30, 0xd6, 0xf3, 0x3a, 0xd5, 0x26, 0xee, 0xdb, 0x4f, + 0x82, 0x90, 0x3f, 0x21, 0x31, 0xf2, 0x22, 0x64, 0x18, 0x9f, 0xa3, 0xf3, 0x1b, 0x2b, 0x7a, 0x46, + 0xd3, 0x8f, 0xe2, 0xa3, 0x89, 0x65, 0xed, 0xee, 0xe2, 0x6e, 0x9f, 0x20, 0x1e, 0xd3, 0xf7, 0x12, + 0x59, 0xbd, 0x39, 0xdd, 0x27, 0x31, 0xa4, 0xe9, 0x99, 0x34, 0x46, 0x56, 0x1b, 0x42, 0xe8, 0xca, + 0xd9, 0x4f, 0xf7, 0xf8, 0x79, 0x77, 0xc8, 0xcf, 0x15, 0x4c, 0xcd, 0x0b, 0x8e, 0xde, 0xf1, 0x59, + 0x61, 0xf6, 0xfa, 0xc1, 0x7b, 0x7e, 0x14, 0x6f, 0x15, 0xc7, 0xbe, 0x76, 0xd4, 0xb1, 0xf7, 0x8a, + 0xb7, 0x87, 0x5c, 0x5f, 0x48, 0xc5, 0xff, 0xc1, 0x41, 0xc9, 0xca, 0x17, 0x02, 0xb8, 0x45, 0xfe, + 0xe3, 0xd9, 0x96, 0xd8, 0x4e, 0x0c, 0x63, 0x50, 0xc8, 0xd2, 0x48, 0x01, 0x80, 0x21, 0x70, 0x51, + 0xcf, 0xb1, 0x92, 0xc8, 0xf8, 0x09, 0xcd, 0x0a, 0xc8, 0xee, 0x26, 0xf2, 0x81, 0x6e, 0x46, 0x34, + 0xc6, 0x09, 0xda, 0xc7, 0x2a, 0xa7, 0x7f, 0x8f, 0x44, 0xc4, 0x05, 0xce, 0x5b, 0xf3, 0x3a, 0xff, + 0xcc, 0x32, 0xb4, 0x70, 0xf1, 0xfe, 0xfa, 0xca, 0xa7, 0x13, 0x40, 0xfc, 0x01, 0xd2, 0x3e, 0x0d, + 0x37, 0x91, 0xd6, 0xc1, 0xbd, 0x45, 0xf6, 0xfe, 0xfe, 0x1b, 0x59, 0xd6, 0x11, 0x09, 0xac, 0xfa, + 0x50, 0xc4, 0xc9, 0xf0, 0xcb, 0x17, 0xf8, 0x9f, 0xe8, 0x0d, 0xff, 0x8a, 0xd0, 0x86, 0x5c, 0x80, + 0xbf, 0x65, 0x75, 0x83, 0x37, 0x96, 0xdb, 0x3d, 0x82, 0xeb, 0xc0, 0x76, 0x67, 0x24, 0xc3, 0x75, + 0x6b, 0x80, 0x9d, 0x04, 0xfb, 0x23, 0x08, 0x60, 0x8f, 0x9f, 0x89, 0x11, 0xab, 0x1e, 0x5f, 0x36, + 0x6a, 0xa2, 0xfc, 0x84, 0xcd, 0xf3, 0x8c, 0x9f, 0x36, 0xc8, 0xe1, 0x94, 0x72, 0x51, 0x62, 0x56, + 0xe9, 0x49, 0xcb, 0x74, 0x6b, 0x45, 0xb4, 0xff, 0x5c, 0x31, 0x1d, 0xee, 0x2a, 0x3c, 0x79, 0x58, + 0xa9, 0x66, 0x29, 0x89, 0x9d, 0x70, 0xfa, 0x2b, 0xaf, 0xec, 0x12, 0x43, 0xe6, 0xaa, 0x44, 0xba, + 0x75, 0xfa, 0x99, 0xb6, 0x5d, 0x8a, 0x82, 0x4e, 0x20, 0xee, 0x37, 0xab, 0x98, 0x9d, 0xbe, 0x38, + 0x0f, 0x2d, 0xf9, 0x27, 0x14, 0x07, 0x16, 0x16, 0x0d, 0xaf, 0x5e, 0x79, 0xae, 0x37, 0xed, 0xb7, + 0x4f, 0x7a, 0x55, 0xd5, 0xf1, 0x94, 0x12, 0x5c, 0xbc, 0x0a, 0x69, 0xbb, 0x56, 0x6a, 0xbb, 0x21, + 0xd9, 0x26, 0xce, 0x4a, 0xa6, 0x75, 0x42, 0x8d, 0xc4, 0x89, 0x74, 0xbf, 0x7d, 0x56, 0x40, 0x59, + 0x63, 0xef, 0x79, 0x31, 0x4e, 0x7d, 0x83, 0xc9, 0x69, 0xd0, 0xd2, 0x3c, 0x50, 0xf4, 0x9a, 0x95, + 0x3c, 0xbb, 0x4b, 0xe8, 0x85, 0x75, 0x7b, 0x1a, 0xf7, 0x9b, 0x17, 0x2d, 0x6a, 0xf6, 0xeb, 0x78, + 0x6b, 0xa5, 0x33, 0xab, 0x74, 0xc6, 0xb2, 0xbb, 0x4e, 0x6f, 0x4b, 0x43, 0xcf, 0x27, 0x15, 0xc7, + 0x18, 0xc7, 0x6c, 0x01, 0x9d, 0x48, 0xa1, 0x56, 0xe6, 0x8b, 0xe3, 0xd4, 0xc3, 0xd5, 0x0e, 0x51, + 0x61, 0x37, 0x3b, 0x7c, 0x1a, 0xe3, 0x76, 0x52, 0x13, 0xdc, 0x0e, 0x5c, 0xa1, 0xbb, 0x26, 0xb3, + 0x89, 0x70, 0x03, 0x6b, 0x95, 0x86, 0xb7, 0xd7, 0x37, 0x4d, 0x20, 0x05, 0xee, 0xb5, 0x78, 0xb0, + 0x05, 0xad, 0x70, 0x83, 0x99, 0xdd, 0x82, 0x82, 0x19, 0x79, 0xd6, 0x93, 0x43, 0x5c, 0x29, 0xad, + 0xb7, 0x75, 0xab, 0x79, 0xcf, 0xdb, 0x11, 0x63, 0xbb, 0x66, 0x28, 0xf4, 0xb0, 0x16, 0xda, 0xea, + 0xc6, 0x35, 0x7f, 0x36, 0xd3, 0x8f, 0x78, 0x2d, 0x5d, 0xb6, 0x28, 0x39, 0x71, 0xb8, 0xc0, 0x5b, + 0xfe, 0x94, 0x36, 0x8c, 0xa9, 0xdb, 0x15, 0x76, 0x7d, 0x90, 0x73, 0x5c, 0xf2, 0x34, 0xda, 0xd5, + 0xc4, 0xff, 0xf0, 0x70, 0x11, 0xac, 0x5b, 0xba, 0xdd, 0x83, 0x6f, 0x3e, 0xd0, 0x36, 0x93, 0x62, + 0x5e, 0x4d, 0x40, 0x61, 0xed, 0xb9, 0xb0, 0x91, 0xd9, 0x51, 0x8f, 0x9f, 0xc7, 0xbf, 0xd0, 0x55, + 0xb4, 0xb8, 0xbc, 0x93, 0x87, 0x95, 0x7a, 0xab, 0x7d, 0x81, 0x21, 0x7d, 0xbb, 0xba, 0xbd, 0x51, + 0x47, 0x54, 0x4d, 0x05, 0xf4, 0x6e, 0x44, 0xd7, 0xd6, 0xe8, 0x57, 0x6c, 0x76, 0x16, 0x87, 0x16, + 0x5c, 0x4e, 0x37, 0xa1, 0x4d, 0x0d, 0x3c, 0xb2, 0xa2, 0xb7, 0x5d, 0xe3, 0x2b, 0xdb, 0xb7, 0xdf, + 0x6e, 0xdb, 0xdb, 0x31, 0xbe, 0x67, 0x12, 0xed, 0x60, 0xa8, 0x4d, 0xca, 0xd9, 0x3e, 0x30, 0xe0, + 0x0c, 0xf2, 0xba, 0x1a, 0xbf, 0x34, 0x80, 0x0e, 0x8d, 0x9f, 0x77, 0x9d, 0x69, 0xef, 0xc0, 0xdc, + 0x79, 0x69, 0xe6, 0x6c, 0xe1, 0xcb, 0xfb, 0xda, 0xc0, 0xb9, 0xdd, 0x77, 0x8f, 0x3d, 0x83, 0x66, + 0x37, 0xa2, 0x7d, 0x53, 0x66, 0xcb, 0xeb, 0x37, 0x4c, 0x98, 0x15, 0x3c, 0xed, 0x78, 0x39, 0xb0, + 0x25, 0xc4, 0x3c, 0xf5, 0x5e, 0x63, 0xdd, 0x6c, 0xf7, 0x10, 0xae, 0xf1, 0x5b, 0xee, 0x68, 0x7c, + 0x68, 0xbb, 0xbb, 0xc2, 0x99, 0x43, 0xea, 0xe2, 0x51, 0x3b, 0x30, 0xd8, 0x25, 0xb9, 0x01, 0x84, + 0x15, 0x30, 0x05, 0x10, 0x8d, 0xe6, 0x37, 0x9a, 0x23, 0x72, 0xc9, 0x68, 0x3a, 0x9a, 0xe8, 0x42, + 0xce, 0xcb, 0x9c, 0x4c, 0x80, 0x30, 0xa5, 0x6c, 0xf3, 0xe7, 0x64, 0x8a, 0x6b, 0x38, 0x41, 0xee, + 0xeb, 0x95, 0x98, 0x6a, 0xfc, 0x42, 0x26, 0xae, 0x5e, 0x3d, 0x65, 0x53, 0x8b, 0xfe, 0x72, 0x50, + 0x21, 0x06, 0xc9, 0x94, 0xdd, 0x9c, 0xc9, 0x3d, 0x37, 0x05, 0xfe, 0xf4, 0xb8, 0x87, 0x96, 0x65, + 0x48, 0x03, 0x36, 0xfb, 0x83, 0xc4, 0xfa, 0x76, 0x36, 0x7c, 0x0c, 0x12, 0x0d, 0x12, 0x8e, 0xf1, + 0xa0, 0x13, 0x8d, 0x54, 0x0b, 0x79, 0x10, 0x79, 0x2e, 0x90, 0x73, 0x96, 0x15, 0xad, 0x6a, 0xc6, + 0x04, 0x29, 0x90, 0xdc, 0x30, 0xd8, 0xe9, 0x14, 0x70, 0x1e, 0x19, 0x77, 0x1b, 0xd9, 0xd5, 0x8d, + 0x30, 0x91, 0xf7, 0xa5, 0xea, 0xdc, 0xd7, 0x92, 0xa3, 0x54, 0x7b, 0x8a, 0x2c, 0x21, 0xe7, 0x06, + 0xed, 0xf6, 0x79, 0xc3, 0x28, 0x87, 0xb2, 0x89, 0x94, 0xb1, 0x4e, 0x53, 0xab, 0xe5, 0x78, 0xa4, + 0x5b, 0xe1, 0x9a, 0xc9, 0xd8, 0x32, 0xab, 0xb7, 0x22, 0x58, 0x95, 0xbe, 0xc0, 0xfb, 0x87, 0x29, + 0xdc, 0xfb, 0x1a, 0x87, 0xf7, 0xed, 0x58, 0xc2, 0x0f, 0x3b, 0xba, 0xec, 0x1c, 0xb3, 0xff, 0x68, + 0xf8, 0x3f, 0x9e, 0x40, 0x57, 0xf6, 0x78, 0x10, 0x00, 0x00 }; diff --git a/wled00/html_simple.h b/wled00/html_simple.h index 3cedcbde..51bfc970 100644 --- a/wled00/html_simple.h +++ b/wled00/html_simple.h @@ -7,7 +7,7 @@ */ // Autogenerated from wled00/data/simple.htm, do not edit!! -const uint16_t PAGE_simple_L = 17882; +const uint16_t PAGE_simple_L = 17880; const uint8_t PAGE_simple[] PROGMEM = { 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xcd, 0x7d, 0xe9, 0x7a, 0xe2, 0xba, 0xb2, 0xe8, 0xff, 0x3c, 0x05, 0xed, 0xde, 0x3b, 0x8d, 0x37, 0x0e, 0x98, 0x79, 0x6a, 0xd2, 0x9b, @@ -871,260 +871,260 @@ const uint8_t PAGE_simple[] PROGMEM = { 0xd3, 0xfd, 0xd5, 0x98, 0x6b, 0x6a, 0x0d, 0x1f, 0xe8, 0x36, 0x29, 0x4c, 0x06, 0xfb, 0x01, 0x56, 0x2e, 0xc2, 0xf8, 0xec, 0x3a, 0x02, 0x94, 0xf8, 0x0e, 0x06, 0x84, 0x27, 0x32, 0x48, 0x1c, 0x3d, 0x9a, 0x85, 0x0e, 0x07, 0x11, 0xf0, 0x1d, 0xf4, 0x84, 0xf1, 0x2a, 0x12, 0x8e, 0x54, 0x44, 0xc5, - 0x1c, 0x83, 0x15, 0x69, 0x13, 0xf4, 0x56, 0xcd, 0xcb, 0x5e, 0x92, 0xc3, 0x03, 0x0d, 0xf6, 0x18, - 0x64, 0x20, 0xff, 0x5d, 0xf4, 0x97, 0xfe, 0x9a, 0x62, 0xff, 0x46, 0xef, 0x2b, 0x0e, 0xda, 0xdc, - 0x15, 0x7f, 0x38, 0xa1, 0x12, 0xce, 0x48, 0x06, 0xbd, 0x36, 0x69, 0xf2, 0x35, 0xb3, 0x51, 0xad, - 0x56, 0x51, 0x1b, 0xe8, 0xe3, 0x96, 0x1a, 0xa0, 0x0e, 0x69, 0x1e, 0x5d, 0xa6, 0x47, 0xee, 0x50, - 0x4f, 0x72, 0xbd, 0x29, 0x90, 0x22, 0x56, 0xd3, 0x54, 0x61, 0xa5, 0xba, 0x08, 0x0a, 0xbe, 0x80, - 0xf2, 0x84, 0xa1, 0x1b, 0x77, 0x5b, 0xf0, 0x7f, 0x50, 0x12, 0x29, 0xa1, 0xfa, 0x47, 0xf0, 0xde, - 0xd7, 0xb3, 0x96, 0xae, 0x38, 0xdf, 0x32, 0xc4, 0xb9, 0xfa, 0xff, 0x64, 0x9a, 0xbc, 0x5d, 0x79, - 0x9c, 0xa3, 0x40, 0x07, 0xf4, 0xfb, 0xc3, 0x74, 0x38, 0x12, 0xde, 0x7a, 0xdf, 0x88, 0x46, 0xcf, - 0xdf, 0x89, 0xb8, 0x34, 0x3d, 0x5c, 0x9a, 0x0c, 0x97, 0x42, 0xe8, 0xf0, 0x17, 0x27, 0x7c, 0x7b, - 0xef, 0xbc, 0x17, 0x30, 0x3e, 0x66, 0x8f, 0xfb, 0x07, 0xe6, 0xd6, 0x23, 0x36, 0xb2, 0x89, 0x9c, - 0x64, 0x41, 0x47, 0x64, 0x6d, 0x94, 0xec, 0x57, 0x0f, 0x52, 0x82, 0xde, 0xf7, 0xcb, 0xbd, 0x8b, - 0xea, 0x39, 0x1b, 0x32, 0xe2, 0x36, 0x8d, 0xae, 0x30, 0xe8, 0x35, 0x8e, 0xc3, 0x61, 0x29, 0xf1, - 0x30, 0xd9, 0xa0, 0xeb, 0x7c, 0x1d, 0x37, 0xa8, 0x1c, 0xb6, 0xd3, 0x89, 0xc8, 0xf1, 0xfa, 0xd5, - 0x72, 0x1c, 0xa0, 0x3e, 0x7e, 0x11, 0xde, 0x9c, 0x0b, 0xe7, 0xb1, 0x5d, 0x96, 0xf0, 0xf1, 0x8b, - 0xe5, 0x6e, 0xdd, 0x32, 0xed, 0x27, 0xa1, 0x42, 0xe7, 0x8b, 0xeb, 0xef, 0xbe, 0xf8, 0x77, 0x14, - 0x24, 0x58, 0x08, 0x6f, 0xb6, 0x01, 0xe2, 0x89, 0x0d, 0x02, 0xbd, 0x04, 0x40, 0x14, 0x0d, 0xf4, - 0x58, 0x09, 0xd1, 0x88, 0x0e, 0x4c, 0xe7, 0xbd, 0x7c, 0xc8, 0x6d, 0x80, 0xba, 0xc3, 0xf3, 0x51, - 0xf7, 0x11, 0xc3, 0xa1, 0x58, 0x27, 0xdf, 0x7d, 0x78, 0x75, 0x82, 0x48, 0xa1, 0xb6, 0x32, 0x28, - 0xec, 0x2e, 0xf6, 0x84, 0xae, 0x60, 0x41, 0x17, 0x24, 0xc1, 0x6e, 0x7c, 0xc9, 0x62, 0xc7, 0xa2, - 0xed, 0x38, 0x3c, 0x6f, 0x37, 0xd0, 0x91, 0x94, 0x81, 0x16, 0xfe, 0x05, 0x86, 0x8e, 0xc0, 0x7c, - 0x49, 0x82, 0x0e, 0x5f, 0xb9, 0x5f, 0x82, 0x04, 0x5f, 0xf9, 0x5f, 0x75, 0xea, 0x42, 0x81, 0xca, - 0x9c, 0x0d, 0x4a, 0x80, 0xc3, 0x1b, 0xd8, 0x1f, 0xcf, 0x82, 0xa7, 0xb7, 0x1e, 0xa1, 0x7b, 0x7b, - 0x4d, 0x9a, 0xb4, 0x9a, 0x16, 0x80, 0x0a, 0x0e, 0xb4, 0xf8, 0xd4, 0x80, 0xcd, 0xee, 0x64, 0xeb, - 0xd0, 0xbe, 0x9f, 0x03, 0x03, 0x40, 0xcc, 0xe8, 0xd1, 0x94, 0x2c, 0xed, 0x55, 0x38, 0x25, 0xf7, - 0x6b, 0xf1, 0x05, 0xd0, 0xda, 0xb0, 0x01, 0x61, 0x76, 0x83, 0x64, 0x7c, 0x7c, 0xe0, 0x78, 0x02, - 0xb7, 0xd7, 0x6f, 0x8c, 0xaa, 0x40, 0x65, 0x4a, 0x40, 0x83, 0x5b, 0x40, 0x5b, 0x9c, 0x07, 0x79, - 0x67, 0x2f, 0xfe, 0xf9, 0x9b, 0xf7, 0x34, 0xa0, 0xdf, 0xa1, 0x2b, 0x9b, 0x12, 0x1b, 0xef, 0x6c, - 0xc2, 0x08, 0xb3, 0x67, 0x53, 0xa3, 0x41, 0x0d, 0xf5, 0xdf, 0x51, 0x6a, 0xa1, 0xcb, 0xec, 0x92, - 0xbe, 0xdf, 0x24, 0x58, 0x68, 0x54, 0x13, 0xf2, 0x77, 0x27, 0xd9, 0xbb, 0x4f, 0x96, 0x3a, 0x2a, - 0x59, 0xb0, 0x1d, 0x48, 0x50, 0x28, 0x69, 0x4e, 0x78, 0xf3, 0x71, 0xed, 0xb2, 0xa5, 0x1b, 0x9e, - 0x82, 0x83, 0xbe, 0x18, 0x4e, 0x40, 0x37, 0x09, 0x20, 0x23, 0xbc, 0xfd, 0x19, 0xf7, 0xea, 0xe1, - 0x60, 0x43, 0xe7, 0x40, 0xb1, 0x2d, 0xef, 0x27, 0x34, 0xd8, 0x60, 0x2e, 0x09, 0x50, 0x73, 0x5a, - 0x4c, 0xcd, 0x41, 0x35, 0xc0, 0xf7, 0xf0, 0xc5, 0x4c, 0x92, 0xd0, 0xed, 0xdf, 0xdc, 0xaa, 0x85, - 0xb3, 0xf4, 0xdf, 0x51, 0x5d, 0x1b, 0x37, 0x54, 0x99, 0x3a, 0xbd, 0x34, 0x74, 0x3c, 0xc5, 0x1a, - 0xa7, 0x60, 0xa9, 0x2c, 0x07, 0x83, 0x0d, 0xab, 0xbe, 0x6c, 0xa1, 0xa1, 0xaf, 0xfe, 0x4b, 0x23, - 0xb0, 0x74, 0x49, 0x7a, 0x20, 0x39, 0x4d, 0xd7, 0xb5, 0x35, 0x50, 0xad, 0x48, 0x92, 0x03, 0x2b, - 0x80, 0xe3, 0x41, 0x13, 0x95, 0xfc, 0x24, 0xea, 0x15, 0x63, 0xd7, 0x9c, 0xd4, 0x80, 0xec, 0x04, - 0xb3, 0xc1, 0xec, 0x76, 0x9a, 0x92, 0x71, 0xeb, 0x49, 0x73, 0x69, 0xb4, 0xc2, 0x32, 0xff, 0x5e, - 0x14, 0x99, 0xce, 0x94, 0xf3, 0x3d, 0x5d, 0xbf, 0xd7, 0xbf, 0x1c, 0x30, 0x74, 0x05, 0x3f, 0x1d, - 0xd7, 0x3f, 0x85, 0xd0, 0x0d, 0xcc, 0x2c, 0x85, 0xff, 0x0d, 0x7c, 0x9d, 0xbd, 0x8b, 0x0e, 0xf5, - 0x87, 0x4d, 0xc7, 0x35, 0x62, 0x66, 0x07, 0x06, 0x12, 0xae, 0x04, 0x7a, 0x34, 0x1c, 0xcf, 0xa3, - 0x1b, 0x01, 0xb8, 0x09, 0x76, 0x10, 0x99, 0xc8, 0xcc, 0x11, 0x0a, 0x12, 0x7d, 0xc0, 0x49, 0x23, - 0xec, 0x19, 0xf5, 0xee, 0x7e, 0x09, 0x91, 0x6a, 0x38, 0x34, 0x85, 0x06, 0xab, 0xa7, 0xd9, 0x31, - 0xbf, 0xbf, 0xdb, 0x66, 0x28, 0x08, 0x84, 0x81, 0x4e, 0x72, 0xf1, 0x77, 0x07, 0x86, 0xb7, 0x54, - 0x97, 0x9e, 0x5a, 0x7f, 0x63, 0x97, 0x9e, 0x78, 0xe1, 0xa8, 0x03, 0xfa, 0x43, 0xe9, 0xba, 0x2e, - 0xe2, 0xc4, 0x3b, 0x83, 0x86, 0x1b, 0xc3, 0x01, 0x30, 0xdc, 0x4b, 0xf8, 0x0f, 0x81, 0x01, 0x19, - 0x46, 0x4e, 0xb2, 0xed, 0x8a, 0x3e, 0x39, 0x52, 0xf3, 0xcc, 0xfa, 0xc7, 0x3c, 0x92, 0xbd, 0x30, - 0x7f, 0xf3, 0x75, 0xb0, 0xe7, 0xdc, 0x10, 0x54, 0x49, 0x55, 0xc3, 0x20, 0x85, 0xe4, 0xa6, 0xba, - 0xaf, 0xba, 0x0c, 0x46, 0xde, 0xbb, 0x95, 0x17, 0x71, 0x14, 0xe2, 0x5e, 0x0e, 0x8b, 0x46, 0x09, - 0xdf, 0x98, 0x1b, 0x8e, 0x49, 0xc1, 0x43, 0x7f, 0xd4, 0x33, 0xa0, 0x8d, 0x09, 0x0d, 0xe7, 0x60, - 0x08, 0xa7, 0x96, 0x98, 0xce, 0x76, 0xe4, 0xe9, 0x97, 0x87, 0x17, 0x3e, 0x08, 0xe9, 0x63, 0xf8, - 0x0a, 0xe7, 0x51, 0x9c, 0xf9, 0xd5, 0x10, 0x75, 0xc0, 0x50, 0x1a, 0xa1, 0xd3, 0x7f, 0x40, 0x46, - 0x60, 0xe3, 0xca, 0x36, 0x91, 0x5e, 0x16, 0xbe, 0x52, 0x80, 0x57, 0x35, 0x84, 0x75, 0x82, 0x6f, - 0x1b, 0xaf, 0x6d, 0xa0, 0x27, 0xdd, 0xbf, 0xa5, 0xf4, 0x20, 0x5e, 0x02, 0x8d, 0x4b, 0xd4, 0x34, - 0x1b, 0x22, 0xdb, 0x34, 0xdc, 0xde, 0x26, 0x2b, 0x1d, 0xf5, 0x26, 0x75, 0x4d, 0x27, 0xc9, 0xba, - 0x4e, 0xb6, 0xa7, 0xe1, 0x3e, 0x7a, 0x2a, 0x6a, 0xb8, 0xc1, 0x88, 0x9a, 0x0a, 0x9a, 0x54, 0x83, - 0xf2, 0x88, 0x06, 0x0d, 0x24, 0xf0, 0xf4, 0xc7, 0xcf, 0x8d, 0x28, 0xb8, 0xed, 0xe2, 0x5b, 0x2a, - 0xda, 0x40, 0x48, 0x4d, 0x5d, 0xc4, 0xcd, 0xfd, 0xd0, 0xa5, 0xaf, 0xbc, 0xbf, 0x5b, 0xb7, 0x92, - 0xcb, 0xee, 0x72, 0xd9, 0x9c, 0xbf, 0xbc, 0x9e, 0x84, 0xf7, 0xfa, 0xcc, 0x2e, 0xd7, 0x8a, 0x9f, - 0x10, 0x62, 0x3b, 0x11, 0xf1, 0x63, 0x42, 0xac, 0x02, 0x5e, 0x51, 0x15, 0x2f, 0xaf, 0x28, 0xee, - 0xda, 0xc2, 0x2f, 0x6b, 0xa1, 0xd3, 0xd2, 0xb4, 0x54, 0xcd, 0xab, 0x14, 0xde, 0x9e, 0x89, 0xa9, - 0x83, 0x7e, 0x56, 0x97, 0x0e, 0x00, 0xb4, 0x6e, 0x8f, 0x21, 0xc7, 0x0f, 0xdc, 0x18, 0x1f, 0x9f, - 0xab, 0x62, 0x04, 0x11, 0x21, 0x06, 0x4a, 0x05, 0xd1, 0xde, 0x39, 0xb1, 0x91, 0x84, 0xe2, 0x4d, - 0x86, 0x56, 0x27, 0x2c, 0xb1, 0x13, 0x04, 0x37, 0xd6, 0x8c, 0x1f, 0xa0, 0xb0, 0xe3, 0x83, 0x1f, - 0x85, 0xf3, 0x83, 0xfb, 0xbf, 0x50, 0x37, 0x01, 0x46, 0x2b, 0xcb, 0xe7, 0x63, 0x2a, 0x3c, 0xd5, - 0xdb, 0xd6, 0x94, 0xa6, 0xc9, 0x06, 0x8b, 0xe8, 0x10, 0x85, 0xb9, 0x31, 0x1a, 0x12, 0x5b, 0x53, - 0x6a, 0x5f, 0xc4, 0x05, 0x5f, 0x0b, 0x76, 0x4b, 0x97, 0xbd, 0xf1, 0x03, 0x97, 0xe7, 0x13, 0xe7, - 0xcf, 0x9f, 0x64, 0x12, 0xa3, 0xdd, 0xc8, 0x24, 0x11, 0x04, 0xc4, 0xc1, 0x4c, 0x39, 0xd4, 0x86, - 0xa6, 0x26, 0x35, 0x33, 0xa4, 0x57, 0x6e, 0x73, 0x36, 0x1d, 0x97, 0x9a, 0x13, 0x60, 0x5e, 0x4f, - 0x1c, 0x3c, 0x28, 0x86, 0x2e, 0x6a, 0xc7, 0xc1, 0x80, 0x79, 0x3f, 0x28, 0xdf, 0x0d, 0x87, 0xaa, - 0x10, 0xaa, 0x4a, 0xf3, 0x4c, 0x87, 0xa5, 0x3e, 0x76, 0x7e, 0x1e, 0x89, 0x15, 0x0c, 0x6d, 0x1a, - 0xf3, 0x42, 0xe8, 0xc7, 0x32, 0x12, 0xcf, 0x3b, 0xe7, 0x1b, 0x84, 0x04, 0xaf, 0x5a, 0xdb, 0x7f, - 0x2d, 0xda, 0x51, 0xe7, 0x39, 0x4f, 0xf5, 0x05, 0xfd, 0x1e, 0xac, 0xf2, 0xba, 0xf9, 0x23, 0xb0, - 0xd0, 0x1b, 0xa6, 0x10, 0xda, 0xc8, 0xf3, 0xce, 0x36, 0x6f, 0x6f, 0x47, 0x36, 0xbd, 0x40, 0xda, - 0x83, 0x4d, 0x19, 0xd8, 0xf4, 0x18, 0x5d, 0x48, 0x83, 0x0b, 0x93, 0x78, 0x92, 0x00, 0xbe, 0x7f, - 0x78, 0xdf, 0x35, 0x17, 0x38, 0xac, 0x30, 0x41, 0x07, 0x36, 0x0d, 0x30, 0xa4, 0x08, 0xfa, 0xcb, - 0x81, 0x99, 0x7f, 0x31, 0x28, 0xd1, 0x6b, 0xd0, 0xb4, 0x88, 0x41, 0xdb, 0x9b, 0xa0, 0x47, 0x19, - 0x23, 0x95, 0xe6, 0xdf, 0xc6, 0xdf, 0x6a, 0xae, 0x3d, 0x02, 0x15, 0x11, 0x57, 0xcc, 0xab, 0x73, - 0x46, 0xfa, 0x92, 0x8e, 0xf1, 0xf9, 0x2b, 0xf8, 0x0c, 0xc7, 0x3b, 0x2c, 0x47, 0xe7, 0x87, 0x97, - 0xe2, 0x4c, 0x12, 0xcf, 0x1a, 0x41, 0x1b, 0x00, 0x8f, 0x81, 0x13, 0x74, 0xd2, 0xc7, 0x79, 0x0e, - 0xd3, 0x13, 0x20, 0x4f, 0xb6, 0x35, 0xc1, 0xd0, 0x9b, 0xe8, 0xee, 0xd3, 0xa9, 0x37, 0x5f, 0xdf, - 0x1f, 0xd9, 0xec, 0x97, 0x3a, 0xb2, 0xe1, 0xe7, 0x8d, 0xe4, 0xfd, 0x74, 0x59, 0xd1, 0xb6, 0xa4, - 0x12, 0x96, 0x80, 0x2f, 0x1f, 0xa7, 0xdb, 0x97, 0x5d, 0x18, 0x04, 0x24, 0x8d, 0x54, 0xcb, 0xa0, - 0x03, 0x8a, 0x1d, 0x09, 0x07, 0xfd, 0x42, 0xff, 0x2e, 0xfe, 0xc0, 0x5d, 0xa2, 0x1a, 0x3e, 0xe3, - 0xf1, 0x6e, 0xd0, 0x42, 0x82, 0x57, 0xf7, 0x64, 0xb2, 0xa2, 0x37, 0xe7, 0x22, 0x0d, 0x9f, 0x5e, - 0xb3, 0x05, 0x12, 0x13, 0xed, 0xab, 0x7b, 0x1f, 0xcc, 0x48, 0xa4, 0xdb, 0x88, 0xb8, 0x77, 0x81, - 0x6c, 0x80, 0x80, 0x94, 0x32, 0x41, 0xc7, 0x62, 0x12, 0xc0, 0x49, 0xa5, 0x16, 0xbe, 0xb6, 0xe5, - 0xed, 0x6e, 0x20, 0xb2, 0x0c, 0x3f, 0x8e, 0x2b, 0xe4, 0x64, 0xba, 0x30, 0x13, 0x7e, 0xd3, 0x9e, - 0x5f, 0x89, 0x2e, 0xe2, 0xa5, 0x18, 0xae, 0x07, 0x26, 0x49, 0xc3, 0xc0, 0xe3, 0xaa, 0xde, 0x3e, - 0xe6, 0x9a, 0x70, 0xf0, 0x90, 0xf5, 0xe6, 0x07, 0xc9, 0x83, 0xdd, 0x43, 0x76, 0xd1, 0x96, 0xdb, - 0xd9, 0xf1, 0x7c, 0x98, 0x82, 0x2d, 0x68, 0x82, 0x52, 0x97, 0x18, 0x30, 0xcf, 0x12, 0xb2, 0x97, - 0xbf, 0xc0, 0x0a, 0xd2, 0x96, 0xbf, 0xc0, 0x52, 0x63, 0xfc, 0x1c, 0xcf, 0x43, 0x2c, 0x93, 0x31, - 0xf6, 0x1d, 0x1f, 0xde, 0x0b, 0x34, 0xe7, 0x52, 0x52, 0x8a, 0x13, 0xb8, 0x94, 0x4d, 0x3f, 0x35, - 0xdc, 0x9b, 0x5a, 0xc2, 0x62, 0x97, 0x00, 0x00, 0x84, 0xa5, 0xea, 0xac, 0x60, 0x18, 0xed, 0x32, - 0x24, 0x1d, 0xcf, 0xfb, 0xf3, 0x28, 0xa7, 0x43, 0xc4, 0x74, 0x1f, 0x90, 0x92, 0x57, 0x1f, 0x0b, - 0xfd, 0x12, 0x0c, 0xdc, 0x97, 0xde, 0xde, 0xa6, 0x5f, 0xbb, 0x54, 0xb2, 0x86, 0xea, 0x34, 0x83, - 0x3a, 0x34, 0x9f, 0x17, 0x56, 0x45, 0x5e, 0x90, 0xef, 0x4c, 0x85, 0xf5, 0x02, 0x2f, 0x28, 0xa1, - 0x4d, 0x05, 0x92, 0xa6, 0xe1, 0xb6, 0xdb, 0xdb, 0x22, 0x18, 0x11, 0xec, 0x99, 0xa1, 0x56, 0x45, - 0x87, 0x89, 0xef, 0x38, 0xf7, 0x33, 0x98, 0x87, 0x5c, 0xac, 0xd1, 0xcb, 0x70, 0x7d, 0x77, 0xe2, - 0x10, 0xbd, 0xf3, 0x89, 0x5e, 0xb0, 0x5d, 0xf8, 0x85, 0x63, 0x74, 0xe3, 0xf9, 0xd3, 0xb3, 0x58, - 0x1a, 0x37, 0xc4, 0x89, 0x61, 0x8e, 0xfa, 0x83, 0x04, 0x7d, 0x7b, 0x11, 0xc6, 0x11, 0x3a, 0xd2, - 0x98, 0x24, 0x58, 0xac, 0x5d, 0xac, 0x4a, 0xae, 0x16, 0x5c, 0xcb, 0x47, 0x5b, 0xf0, 0x7c, 0xb3, - 0x91, 0x32, 0x79, 0x2c, 0x73, 0xae, 0x39, 0x0e, 0xbe, 0xeb, 0xe1, 0xf8, 0x9a, 0x7a, 0x2f, 0x63, - 0x45, 0xaa, 0x58, 0xa4, 0x19, 0xea, 0x59, 0x82, 0x0e, 0x23, 0x01, 0x16, 0x52, 0xc2, 0x54, 0x60, - 0xa1, 0xa1, 0x5b, 0x78, 0x11, 0xa2, 0x5e, 0xca, 0x2c, 0xe8, 0x5e, 0x24, 0x2d, 0x98, 0xe2, 0x6a, - 0xf0, 0x43, 0xa5, 0xb1, 0x42, 0xe1, 0xeb, 0x1b, 0x0c, 0x90, 0x01, 0x7a, 0xf8, 0x76, 0x07, 0x23, - 0xdd, 0x9b, 0x86, 0xc3, 0x86, 0x10, 0x7f, 0x21, 0x56, 0x94, 0xad, 0x87, 0xd8, 0xce, 0x32, 0xda, - 0x3f, 0x14, 0x25, 0xf9, 0xd7, 0xb9, 0xe7, 0x17, 0xf2, 0xe7, 0x4f, 0xd0, 0x04, 0x3f, 0x0f, 0x09, - 0x18, 0x10, 0x81, 0x61, 0x71, 0x13, 0x62, 0xa7, 0xd1, 0x18, 0x2c, 0x21, 0x4f, 0xf2, 0xbc, 0xef, - 0x1c, 0xa3, 0x9c, 0xd8, 0x6c, 0x7c, 0xe4, 0x74, 0x76, 0x34, 0xdc, 0xa4, 0xf8, 0x38, 0xfc, 0x1c, - 0x74, 0x10, 0xf2, 0x83, 0xb3, 0x40, 0xa8, 0x72, 0xcc, 0x33, 0x8d, 0x67, 0xd7, 0x93, 0x5f, 0xa0, - 0x1e, 0x72, 0x32, 0xe8, 0x21, 0x18, 0x5b, 0x0d, 0xe6, 0x75, 0xc6, 0xad, 0xf4, 0x70, 0x10, 0x36, - 0x8a, 0xc2, 0xb4, 0x61, 0x4e, 0x92, 0x3c, 0x06, 0x5b, 0x50, 0x43, 0x20, 0x16, 0x3f, 0x4b, 0x78, - 0x9f, 0x73, 0x61, 0x54, 0x05, 0x3d, 0x01, 0x07, 0xfc, 0x1b, 0x96, 0xdb, 0x0f, 0x5f, 0x28, 0x00, - 0x0e, 0xbe, 0xcd, 0xb9, 0x31, 0xc7, 0xe4, 0xc2, 0x37, 0xbe, 0x86, 0x61, 0xa8, 0xd8, 0x72, 0x44, - 0xba, 0x84, 0xe6, 0x42, 0xc8, 0xa1, 0x0b, 0x84, 0x39, 0xde, 0xcd, 0xc0, 0xa7, 0x6e, 0x08, 0x78, - 0x92, 0x8d, 0xe0, 0xa5, 0x14, 0x18, 0x07, 0x8f, 0x36, 0xfd, 0x0e, 0x6e, 0x4e, 0xc0, 0x98, 0xf0, - 0x88, 0x94, 0xc6, 0x74, 0x07, 0x8a, 0x99, 0x3a, 0x5e, 0xb5, 0x6a, 0x23, 0xc7, 0xbe, 0xbd, 0x69, - 0xef, 0x54, 0xb8, 0x85, 0x80, 0x6f, 0x2a, 0xa9, 0xb9, 0x7f, 0x33, 0x10, 0x2e, 0xf9, 0xbf, 0xac, - 0x4a, 0xf4, 0x79, 0xbc, 0x5d, 0xe0, 0x07, 0xea, 0xe1, 0x8a, 0x02, 0x6a, 0x10, 0x9d, 0x31, 0x8d, - 0xaa, 0x0c, 0x4b, 0x95, 0x82, 0xa5, 0x7c, 0xac, 0x57, 0xf8, 0x15, 0x78, 0x3e, 0xa4, 0x53, 0x10, - 0x4f, 0xa7, 0xf0, 0xbe, 0x6b, 0x24, 0x2a, 0xbc, 0xf9, 0x5a, 0x78, 0x59, 0xe2, 0x8d, 0x0d, 0xb0, - 0x74, 0x1c, 0x0b, 0x0c, 0x07, 0xc2, 0x8e, 0x1d, 0xfc, 0xbd, 0xed, 0x86, 0x55, 0xe3, 0xde, 0x7b, - 0x4d, 0x4a, 0xe4, 0x18, 0xce, 0xdc, 0x34, 0x6a, 0xec, 0x16, 0x18, 0xfc, 0x0c, 0x6b, 0x0d, 0xe1, - 0x2b, 0x92, 0xe6, 0xde, 0xb5, 0x30, 0x60, 0x8a, 0x86, 0x2f, 0xc1, 0x11, 0x92, 0xfe, 0xc5, 0x31, - 0xec, 0x9b, 0x8f, 0x5d, 0x93, 0xe1, 0x1d, 0x3f, 0xc5, 0xbb, 0xb5, 0xfc, 0x69, 0x08, 0xee, 0x2e, - 0x6f, 0xb0, 0x2a, 0x3f, 0xb8, 0xd0, 0x1d, 0xe6, 0xf8, 0x0a, 0x20, 0x20, 0xb8, 0x50, 0x0a, 0xbe, - 0x6f, 0x8b, 0xf7, 0xcc, 0x0a, 0xff, 0x55, 0x2c, 0x51, 0x5b, 0x96, 0x01, 0x59, 0x5a, 0xb3, 0xf1, - 0x01, 0xf8, 0x3b, 0x4d, 0xfe, 0x74, 0x85, 0x87, 0x85, 0xfd, 0xf7, 0xae, 0xbb, 0xf1, 0x1e, 0x78, - 0x76, 0xf0, 0xcb, 0x1f, 0x1f, 0x0b, 0xf6, 0xa2, 0xbb, 0x4f, 0xeb, 0x06, 0x40, 0x8b, 0xfd, 0xe5, - 0x11, 0x5c, 0x78, 0xf0, 0xc2, 0xa3, 0xf0, 0x20, 0xad, 0x1d, 0x06, 0x7b, 0x09, 0x8a, 0x1f, 0x70, - 0xe9, 0x15, 0x01, 0x36, 0x14, 0x02, 0xd9, 0xea, 0x84, 0xe1, 0xd5, 0x37, 0xe6, 0x20, 0xa7, 0xc2, - 0x15, 0xcd, 0x60, 0xb0, 0x4e, 0x79, 0x17, 0xc2, 0xc7, 0xcd, 0x35, 0x12, 0x37, 0xd6, 0x68, 0xe1, - 0xf1, 0x5a, 0xd3, 0x6e, 0x7d, 0x59, 0xff, 0x66, 0xf1, 0x8f, 0x4a, 0xfb, 0x7b, 0x16, 0xec, 0x97, - 0x3f, 0x30, 0x76, 0x4d, 0x70, 0xac, 0x6e, 0x7d, 0x73, 0x56, 0x23, 0x6e, 0x5d, 0x46, 0x31, 0x18, - 0x0a, 0x90, 0xf1, 0x7d, 0x2d, 0x64, 0xa1, 0x38, 0x90, 0xf5, 0x9b, 0x4f, 0x7b, 0xa1, 0x1a, 0xf5, - 0x65, 0x8e, 0x99, 0xfd, 0xbd, 0x06, 0xfe, 0xaa, 0xad, 0xeb, 0x95, 0xce, 0xfd, 0xfe, 0x7c, 0x6f, - 0xbc, 0x70, 0x11, 0x12, 0x5b, 0x87, 0xa0, 0x6c, 0xd6, 0xe8, 0x1e, 0x11, 0x0a, 0xdb, 0xda, 0x72, - 0xab, 0x9f, 0xa0, 0x38, 0x5e, 0xf6, 0x71, 0xb1, 0x88, 0xde, 0x4d, 0x11, 0xb9, 0x1c, 0x33, 0x7c, - 0x26, 0x22, 0x7c, 0x5d, 0xa2, 0xd7, 0xb9, 0xfa, 0xb2, 0x7b, 0x4b, 0x64, 0x07, 0x69, 0x6b, 0xe7, - 0x30, 0x74, 0x3b, 0x66, 0x7c, 0x84, 0x1e, 0x16, 0xd6, 0x40, 0xda, 0xde, 0x5e, 0xd7, 0x03, 0xfa, - 0x16, 0x35, 0xd0, 0xcc, 0xcc, 0x3b, 0x8d, 0x4c, 0x92, 0x73, 0x99, 0x0c, 0xa4, 0xb1, 0x66, 0xda, - 0x35, 0xce, 0x19, 0x9a, 0x26, 0x06, 0xae, 0x51, 0x40, 0x35, 0xff, 0xd2, 0xdc, 0xd8, 0x38, 0xc3, - 0x17, 0x8d, 0x86, 0x87, 0xb9, 0xda, 0xc1, 0xbf, 0x31, 0xca, 0x35, 0xb8, 0xfa, 0xfc, 0x30, 0xa3, - 0x3d, 0xf8, 0x0f, 0x46, 0xb9, 0x0c, 0xc4, 0xd9, 0x4c, 0x1b, 0xc0, 0xad, 0xbf, 0xf8, 0xf1, 0x3d, - 0xe4, 0xd7, 0x62, 0xb5, 0x3a, 0x06, 0xcc, 0x6c, 0xae, 0x0e, 0xa6, 0x59, 0x2d, 0x50, 0xdb, 0xc3, - 0x34, 0x46, 0xc3, 0x49, 0x02, 0xa7, 0x70, 0x14, 0x2a, 0xdb, 0x36, 0x45, 0xaf, 0x1b, 0x3f, 0x8f, - 0xcd, 0x84, 0xb0, 0xda, 0x4e, 0x6f, 0x5a, 0x0b, 0x9d, 0x54, 0x8b, 0xc3, 0xf2, 0xef, 0x8f, 0xf4, - 0xf5, 0xc1, 0x38, 0x05, 0xaf, 0x01, 0x08, 0x93, 0x53, 0x23, 0x71, 0x38, 0xf4, 0x9d, 0x47, 0xd1, - 0x51, 0xae, 0x8c, 0x6d, 0xd5, 0x8e, 0xe5, 0xe3, 0xf8, 0x62, 0x17, 0x1e, 0xaf, 0xc1, 0x96, 0x33, - 0x5d, 0x0b, 0x2b, 0x62, 0x76, 0xac, 0x0c, 0x2e, 0x74, 0xdd, 0xef, 0xba, 0x09, 0x58, 0x0f, 0x72, - 0xc5, 0x56, 0x59, 0x01, 0x8b, 0x97, 0xc2, 0xc5, 0xa7, 0x14, 0xef, 0x14, 0x23, 0x71, 0xdc, 0xb2, - 0x68, 0xec, 0x80, 0xcf, 0xcd, 0xd1, 0x8e, 0x5e, 0xd4, 0x23, 0xe7, 0xca, 0x70, 0xff, 0x10, 0xcc, - 0x77, 0xaa, 0x8f, 0x86, 0xb4, 0x0e, 0xff, 0x3d, 0x72, 0x96, 0x7f, 0x98, 0xcd, 0x3f, 0xe5, 0xe6, - 0xc5, 0x28, 0xd2, 0xf0, 0xc4, 0xc8, 0xdc, 0xb8, 0x91, 0xb6, 0x03, 0xdb, 0x0f, 0xc3, 0x8e, 0xf0, - 0xba, 0x37, 0x52, 0x5f, 0xf2, 0xda, 0xcd, 0xb6, 0xee, 0xca, 0x4e, 0x25, 0x6e, 0x50, 0xae, 0x71, - 0xbf, 0xd3, 0xf7, 0xa2, 0x73, 0x7c, 0x3d, 0x96, 0x4d, 0x5d, 0xe1, 0x5e, 0x9e, 0x80, 0x08, 0xa0, - 0x92, 0x2c, 0xe9, 0x6e, 0x34, 0x6f, 0x23, 0x26, 0xe4, 0x8a, 0x49, 0x4a, 0x7e, 0x7d, 0xe8, 0x85, - 0xa4, 0xd6, 0x0e, 0xea, 0x78, 0x03, 0xe8, 0xfb, 0x32, 0x46, 0xa0, 0xe5, 0xed, 0x4f, 0xd1, 0xf7, - 0xbf, 0x34, 0x70, 0x83, 0x0a, 0x08, 0x7c, 0x3e, 0xa8, 0x89, 0x82, 0x03, 0x7f, 0x63, 0x7c, 0x6b, - 0x28, 0x28, 0x71, 0x91, 0xe3, 0x99, 0x41, 0xb8, 0xb3, 0xb7, 0x09, 0x9a, 0x2a, 0x8a, 0x7c, 0x5d, - 0x35, 0xe7, 0x24, 0x3d, 0x08, 0x17, 0xcb, 0x97, 0x62, 0xe5, 0xf8, 0x05, 0xf4, 0x56, 0x27, 0x49, - 0x9a, 0x28, 0xc9, 0x18, 0xeb, 0x3c, 0xa0, 0x77, 0x95, 0x0d, 0x70, 0xfb, 0x8a, 0xaf, 0xb3, 0xce, - 0x41, 0xe2, 0x62, 0x89, 0x10, 0x42, 0xb1, 0xe3, 0xbf, 0xd5, 0x60, 0x65, 0xcf, 0x25, 0x18, 0x9d, - 0xc7, 0x57, 0xd9, 0x79, 0x72, 0x76, 0x13, 0x17, 0xc8, 0xf0, 0x7a, 0x08, 0x67, 0xd7, 0x21, 0x8f, - 0x90, 0x1d, 0x46, 0xe6, 0x61, 0x28, 0xa3, 0x1f, 0xf1, 0x22, 0x85, 0x7d, 0x48, 0xf5, 0x30, 0xe8, - 0x01, 0x99, 0x76, 0xa9, 0x9d, 0xe3, 0x39, 0xc0, 0xe1, 0xc9, 0x0f, 0x31, 0x77, 0x23, 0x5e, 0x82, - 0xba, 0x8b, 0x51, 0xe2, 0xb8, 0x8d, 0xd4, 0xf5, 0x4a, 0x95, 0x22, 0x27, 0x9d, 0xfd, 0x17, 0xcb, - 0xe0, 0x59, 0x67, 0xd6, 0x54, 0xb8, 0x19, 0x9a, 0xe2, 0x79, 0x8f, 0x61, 0x4a, 0x22, 0x3d, 0x18, - 0x81, 0xb0, 0x8d, 0xa4, 0x38, 0x92, 0x3b, 0xb2, 0xa9, 0xa5, 0xe3, 0xcd, 0x1a, 0x18, 0x77, 0x9a, - 0x6d, 0xa6, 0x5b, 0xac, 0xbc, 0x33, 0xbe, 0x31, 0xf1, 0x7d, 0x18, 0x0e, 0xee, 0x6d, 0x7b, 0xae, - 0x12, 0x23, 0xcd, 0xdc, 0x24, 0x46, 0xba, 0xef, 0x7d, 0xcb, 0xb8, 0x5a, 0xa0, 0x2f, 0x06, 0x99, - 0xfa, 0x7b, 0x64, 0x5d, 0x4d, 0xd6, 0xe9, 0x48, 0xd7, 0xdf, 0x52, 0xb2, 0x61, 0x97, 0x11, 0x6f, - 0x28, 0x4a, 0x88, 0xff, 0x14, 0xe8, 0x8e, 0x2d, 0xff, 0x3b, 0x8c, 0xd6, 0xd3, 0x00, 0xad, 0xe1, - 0xee, 0xbf, 0x10, 0x7d, 0xac, 0x19, 0x51, 0xa6, 0xe0, 0x93, 0x80, 0xc7, 0x14, 0xd0, 0x6c, 0x0a, - 0x46, 0x84, 0x1e, 0x33, 0x97, 0xc1, 0xd9, 0x15, 0x7f, 0x44, 0x10, 0x41, 0xf0, 0xf0, 0x46, 0x2d, - 0x96, 0xd4, 0x62, 0xaf, 0xd8, 0x48, 0x72, 0x80, 0x09, 0x18, 0x2b, 0xfc, 0x85, 0xc9, 0xc9, 0x7b, - 0x7d, 0xcf, 0xfc, 0xc3, 0x4a, 0x2b, 0x37, 0xdd, 0x2d, 0xa7, 0xd0, 0x67, 0x81, 0x11, 0xa0, 0xa7, - 0xab, 0x40, 0x93, 0x73, 0x36, 0xd6, 0xda, 0x26, 0x58, 0x01, 0x82, 0x16, 0x31, 0x60, 0xf4, 0x7d, - 0x26, 0xf3, 0x25, 0x66, 0xbc, 0x20, 0x80, 0x75, 0x44, 0x8e, 0x21, 0x01, 0xeb, 0x68, 0x3c, 0x96, - 0xbe, 0xb7, 0x6c, 0xea, 0xf7, 0x86, 0x95, 0x16, 0x24, 0x46, 0x94, 0xd0, 0x38, 0x63, 0xcc, 0x02, - 0xeb, 0xd8, 0xde, 0x8e, 0xde, 0xf5, 0xd0, 0x68, 0xb8, 0x6c, 0x15, 0xac, 0xe7, 0x68, 0xdb, 0xdb, - 0x1f, 0x62, 0x9b, 0x46, 0x3c, 0xbc, 0x0b, 0x24, 0xbe, 0xe2, 0xd9, 0x32, 0x13, 0x72, 0x5f, 0xb0, - 0x3b, 0xc9, 0xf0, 0x52, 0x6c, 0xac, 0x93, 0x60, 0x01, 0x23, 0x0d, 0xc2, 0x51, 0x62, 0xf0, 0x04, - 0x58, 0x79, 0x54, 0x04, 0x42, 0x4a, 0xed, 0xe7, 0x4f, 0x13, 0x58, 0x87, 0x09, 0x5c, 0xc2, 0x4c, - 0xcb, 0x42, 0x18, 0xf8, 0x2f, 0xe1, 0x27, 0xfe, 0x0f, 0x5a, 0x4d, 0x3d, 0x4b, 0x9b, 0x8e, 0x59, - 0x04, 0xeb, 0x0d, 0x15, 0x30, 0xd7, 0xd1, 0x13, 0xd2, 0x4f, 0xf7, 0xa6, 0xa0, 0xa0, 0x08, 0x80, - 0x43, 0x04, 0xf6, 0x23, 0xda, 0x24, 0xc0, 0x7d, 0xaf, 0x55, 0x68, 0xb2, 0x96, 0x63, 0x15, 0xa9, - 0x8b, 0x25, 0x56, 0xf5, 0xbd, 0xda, 0xa8, 0x83, 0x45, 0x04, 0xa3, 0x13, 0x53, 0x54, 0xbc, 0x17, - 0xae, 0xac, 0xd5, 0xc9, 0x14, 0xc5, 0x8d, 0x2b, 0x4b, 0x88, 0xc0, 0x81, 0x12, 0x96, 0x2e, 0xb8, - 0x0d, 0x70, 0x78, 0x84, 0x3b, 0x3e, 0x6c, 0x1f, 0x07, 0x7f, 0x27, 0x83, 0x5b, 0x69, 0xbc, 0x4b, - 0x2f, 0xf1, 0x82, 0xce, 0xe5, 0x95, 0xbe, 0x19, 0x8c, 0xcd, 0xcd, 0x4c, 0x34, 0x3c, 0xa4, 0xb2, - 0xf0, 0x14, 0x13, 0x1b, 0xa6, 0x88, 0x1d, 0xfd, 0xf3, 0x2d, 0xe1, 0x64, 0x72, 0xa0, 0xa4, 0x1a, - 0xd9, 0x0a, 0xbf, 0x9b, 0xa7, 0xa7, 0xeb, 0xb1, 0x59, 0x5e, 0x18, 0x28, 0xbb, 0x39, 0xff, 0x67, - 0x5e, 0x2c, 0x01, 0x46, 0x0b, 0x85, 0x46, 0x63, 0xa0, 0xd0, 0x94, 0x54, 0x23, 0x8f, 0x29, 0x62, - 0x25, 0x94, 0x02, 0x00, 0x18, 0x67, 0x62, 0x97, 0x0e, 0xfb, 0xd3, 0x43, 0x67, 0xbf, 0xf1, 0x7b, - 0xe0, 0xe0, 0x05, 0x4c, 0x03, 0x65, 0x81, 0xb7, 0x59, 0x21, 0x2f, 0x2b, 0x82, 0x39, 0xfc, 0x9b, - 0x5f, 0x08, 0xd5, 0xac, 0xc8, 0xc8, 0x45, 0x31, 0x7a, 0x76, 0xc4, 0x6f, 0xb8, 0xbc, 0x09, 0x99, - 0xee, 0x53, 0x60, 0x7e, 0x44, 0xe5, 0x0f, 0x2e, 0x4f, 0x0e, 0xce, 0xa8, 0x93, 0x48, 0x9b, 0xdc, - 0x57, 0x7c, 0x61, 0x9b, 0x40, 0x42, 0x3b, 0xb2, 0x1c, 0x7d, 0xf9, 0xa8, 0x3d, 0x4c, 0xb0, 0x9b, - 0x95, 0x39, 0xea, 0xa9, 0x4f, 0xb2, 0x96, 0x61, 0x9d, 0x6e, 0x78, 0xdf, 0x29, 0x6d, 0x88, 0x5b, - 0x7f, 0x92, 0x38, 0x72, 0x7a, 0x34, 0x1e, 0x03, 0xc6, 0xba, 0xe5, 0x89, 0xb2, 0x77, 0x0e, 0x7a, - 0x4b, 0xfa, 0x94, 0x45, 0x14, 0xb8, 0xbc, 0x6b, 0xcf, 0x10, 0x4c, 0x32, 0xb2, 0xf1, 0xe6, 0xb2, - 0xcd, 0xff, 0x31, 0x6e, 0x58, 0x07, 0x5b, 0x47, 0x78, 0x04, 0xc8, 0x3f, 0x54, 0x1e, 0x6a, 0xb4, - 0x81, 0x27, 0xf1, 0xe9, 0xb0, 0xd8, 0xd1, 0x4e, 0x7e, 0xe1, 0x5d, 0xfa, 0xc3, 0xcf, 0x17, 0x91, - 0x72, 0xf3, 0x05, 0x1e, 0xf2, 0x89, 0x8c, 0x43, 0x14, 0xbc, 0xcb, 0x5b, 0x36, 0xdd, 0xbf, 0x48, - 0x7b, 0x1a, 0x3f, 0xdb, 0x3f, 0xb7, 0x6a, 0x91, 0x8b, 0x87, 0xa1, 0x63, 0xb5, 0x70, 0x2f, 0x17, - 0x18, 0xaf, 0xb8, 0xee, 0x70, 0x76, 0xe4, 0xaa, 0x8b, 0x28, 0x42, 0x71, 0x9b, 0xf5, 0xd3, 0x67, - 0xb3, 0xa7, 0x3f, 0x2c, 0x14, 0x9f, 0xa0, 0x9f, 0x46, 0x43, 0x83, 0xff, 0x03, 0x57, 0xe6, 0xdf, - 0xf0, 0x61, 0x9a, 0x80, 0xb9, 0x08, 0x82, 0x57, 0xef, 0x54, 0x08, 0x63, 0xc9, 0x4c, 0x5b, 0x00, - 0xe3, 0xbb, 0x99, 0x1e, 0xfe, 0x88, 0x5f, 0x9c, 0xb2, 0x82, 0x8d, 0x54, 0x16, 0xef, 0x8b, 0x15, - 0x40, 0xaf, 0xab, 0xb9, 0xc9, 0xe8, 0x3d, 0x4e, 0x2b, 0xe7, 0x7b, 0xc3, 0x5c, 0x87, 0xbe, 0x95, - 0x00, 0xf7, 0xfa, 0x96, 0x57, 0x13, 0x6c, 0xd6, 0x46, 0x02, 0x43, 0x17, 0x8f, 0xd2, 0x78, 0x81, - 0x41, 0x71, 0x57, 0x47, 0x10, 0xb8, 0x8f, 0x0b, 0xd0, 0xe5, 0xd7, 0x6e, 0xb9, 0x2f, 0x63, 0x33, - 0x35, 0x8c, 0x25, 0x59, 0xde, 0x6d, 0xa4, 0x2d, 0x4f, 0x0c, 0x99, 0x3f, 0x35, 0xbc, 0xcb, 0xc9, - 0x59, 0x1b, 0x89, 0x49, 0x83, 0xc5, 0xbc, 0x38, 0x8a, 0x1b, 0xe8, 0x2d, 0x28, 0x7c, 0xb7, 0xf8, - 0xfa, 0xe8, 0x96, 0x84, 0x17, 0xbb, 0xd4, 0x9d, 0x58, 0x7f, 0x8d, 0x20, 0x32, 0xc3, 0xeb, 0x74, - 0xb4, 0x3c, 0xbf, 0xbb, 0x93, 0xa5, 0xce, 0x2e, 0xb6, 0x9d, 0xbf, 0x88, 0x5e, 0xde, 0x62, 0xb0, - 0x10, 0xa7, 0x75, 0xa6, 0x7e, 0xdd, 0x0f, 0x2e, 0xc3, 0xc8, 0x50, 0xcd, 0x1c, 0x39, 0x51, 0xac, - 0xf9, 0x0a, 0x13, 0x3d, 0xe7, 0x9b, 0xa6, 0x2f, 0x82, 0x48, 0xe2, 0x95, 0x74, 0x08, 0x04, 0x67, - 0x87, 0xde, 0xfd, 0x93, 0x44, 0x35, 0x8b, 0x3d, 0xb1, 0x4b, 0x99, 0xb8, 0x70, 0xf8, 0xf7, 0x88, - 0xbd, 0x3f, 0x62, 0xa9, 0x77, 0xaf, 0x58, 0xab, 0xb2, 0x3e, 0xb2, 0x93, 0x6b, 0x37, 0xbc, 0x56, - 0x73, 0xc2, 0x06, 0x24, 0xcb, 0x5d, 0xb0, 0x78, 0xcf, 0xff, 0x6a, 0xad, 0xb9, 0x19, 0x76, 0xf9, - 0xa6, 0x5d, 0x5e, 0xb8, 0x68, 0x64, 0x69, 0x34, 0xe8, 0x44, 0xd0, 0x68, 0x5f, 0x1a, 0xa2, 0x30, - 0x15, 0x99, 0xa3, 0x9d, 0xf9, 0x31, 0xba, 0xf4, 0x0a, 0x6e, 0x74, 0x3b, 0x45, 0x18, 0xf4, 0xc8, - 0x60, 0x5b, 0x13, 0x41, 0x40, 0x44, 0x9a, 0x1d, 0xda, 0x51, 0x6f, 0xe8, 0x45, 0x47, 0xce, 0x8f, - 0x78, 0xc2, 0x4f, 0xf1, 0x57, 0x2d, 0x74, 0x2c, 0x64, 0x20, 0x39, 0xc7, 0xb6, 0x49, 0x83, 0xe0, - 0xe8, 0xa1, 0xf5, 0x48, 0x78, 0x11, 0x59, 0xd9, 0xa9, 0x65, 0xc1, 0x1a, 0xcb, 0x93, 0x98, 0x50, - 0x17, 0xd0, 0xe9, 0x6d, 0x5e, 0x8b, 0x0b, 0x7f, 0x17, 0x3b, 0xcc, 0xa7, 0x95, 0x97, 0x64, 0x28, - 0x4a, 0xd0, 0x0b, 0x64, 0x0b, 0x0c, 0x47, 0x7a, 0xcc, 0x35, 0x12, 0xdd, 0xe6, 0xdf, 0xd8, 0x1c, - 0x14, 0x81, 0x59, 0xf6, 0x30, 0xe5, 0x24, 0x83, 0xd3, 0x49, 0xfc, 0x9f, 0x3f, 0xe1, 0xae, 0xbb, - 0xb1, 0xdf, 0x26, 0x5e, 0x80, 0x07, 0x08, 0xf4, 0xd1, 0x03, 0xd0, 0x50, 0x9b, 0x7f, 0x08, 0x90, - 0xe9, 0x45, 0xa1, 0x85, 0x5e, 0x6a, 0xcc, 0xff, 0x64, 0x98, 0xff, 0xe5, 0x39, 0x8e, 0x6e, 0x4c, - 0x4b, 0xf8, 0xaf, 0xd6, 0xba, 0xd0, 0x39, 0xcf, 0x7b, 0xf4, 0x25, 0xe9, 0xcf, 0x87, 0xc8, 0x87, - 0x49, 0x8a, 0xda, 0xc9, 0xcc, 0x08, 0x65, 0x05, 0xfc, 0xd1, 0xaf, 0x74, 0xc6, 0x6c, 0xb8, 0x3b, - 0x53, 0xd1, 0xbf, 0x2b, 0x88, 0xb2, 0x28, 0x13, 0xef, 0x06, 0x4a, 0x25, 0x9d, 0x7f, 0x99, 0x99, - 0xc9, 0xf2, 0x5c, 0x66, 0x8e, 0xaf, 0x8b, 0x5f, 0xf0, 0x26, 0xb4, 0x24, 0xeb, 0xe3, 0xae, 0x08, - 0xcc, 0xf0, 0xbb, 0xc8, 0x07, 0x09, 0xdf, 0x31, 0x61, 0x17, 0x13, 0x8c, 0xdd, 0x74, 0x36, 0xb7, - 0xbd, 0xfd, 0xa9, 0xf1, 0x35, 0x1a, 0x1e, 0x3a, 0x00, 0x0e, 0x0c, 0x75, 0xf5, 0x8e, 0x6c, 0x6e, - 0x67, 0x47, 0xe3, 0x3c, 0x8a, 0xdc, 0x69, 0x38, 0xd8, 0xb7, 0xec, 0x8e, 0xe1, 0xc7, 0x36, 0x49, - 0xb8, 0x08, 0x5f, 0x1c, 0xaf, 0x0b, 0x20, 0x61, 0x36, 0xc1, 0xe8, 0xe1, 0x61, 0xd1, 0xcf, 0x22, - 0x13, 0xb7, 0xd4, 0x3c, 0xd2, 0x0f, 0x31, 0x0a, 0x76, 0xb3, 0x58, 0x58, 0xf5, 0xc0, 0xb7, 0xd5, - 0xfb, 0xa8, 0x3c, 0x22, 0x18, 0xfb, 0x5b, 0x0f, 0x6e, 0x37, 0xc6, 0xa3, 0xb7, 0x29, 0x2e, 0x7a, - 0xe3, 0xb1, 0x05, 0x69, 0x3b, 0xc9, 0x98, 0x1e, 0xeb, 0xbf, 0x74, 0x3c, 0xa6, 0xc8, 0xfe, 0x10, - 0x6b, 0xb1, 0x6c, 0xd6, 0x0e, 0xe0, 0x8c, 0x8f, 0xc1, 0xa5, 0x37, 0x7f, 0xe2, 0x15, 0xcb, 0x61, - 0x0a, 0x08, 0xee, 0x3b, 0x24, 0x42, 0x3a, 0x9d, 0x76, 0x99, 0xf2, 0xe4, 0x7b, 0x57, 0x7c, 0x8d, - 0x81, 0xd4, 0x19, 0x6f, 0xc0, 0xb8, 0x19, 0xff, 0xe4, 0x02, 0x94, 0xf3, 0x2f, 0xfd, 0xde, 0xde, - 0x66, 0x4f, 0x26, 0xbf, 0x3c, 0x63, 0x9d, 0xc0, 0x03, 0x3f, 0x09, 0x93, 0xf7, 0x72, 0x60, 0x35, - 0xf2, 0x3f, 0xe8, 0xa2, 0xfc, 0xf3, 0x27, 0x2a, 0xe9, 0x40, 0x0a, 0x43, 0x6a, 0x6d, 0x8e, 0x1a, - 0x71, 0xa8, 0x37, 0x90, 0x26, 0xd0, 0x5a, 0x7c, 0x6d, 0x6d, 0x79, 0xcc, 0x5b, 0x04, 0xaa, 0xdc, - 0xca, 0x30, 0x16, 0xde, 0xfd, 0x6e, 0x9e, 0x8e, 0xb6, 0x7a, 0xbb, 0x1a, 0x68, 0x69, 0x50, 0x82, - 0xa3, 0xf7, 0xc0, 0xd1, 0x0b, 0xe1, 0x60, 0xce, 0x57, 0x4b, 0x0d, 0x4d, 0x3c, 0x65, 0x8a, 0x4e, - 0x5a, 0xca, 0xd1, 0x36, 0x17, 0x0c, 0x5f, 0xed, 0xf6, 0x7e, 0x49, 0x0a, 0x12, 0x84, 0x37, 0x27, - 0xe0, 0xea, 0xfb, 0xa0, 0xdc, 0xc8, 0xfa, 0xa8, 0xd8, 0xf2, 0x96, 0x38, 0xbf, 0xdc, 0xd6, 0xf7, - 0x8c, 0xf7, 0xd6, 0x87, 0xc4, 0xf7, 0x0c, 0xee, 0xb1, 0xe2, 0xf7, 0xc0, 0x1d, 0xea, 0xbb, 0x89, - 0xff, 0x07, 0x67, 0xc7, 0x83, 0x20, 0xcd, 0xc3, 0x00, 0x00 + 0x1c, 0x83, 0x15, 0x69, 0x13, 0xf4, 0x56, 0xcd, 0xcb, 0x5e, 0x92, 0xbb, 0xee, 0xde, 0xed, 0x73, + 0xfc, 0x77, 0xd1, 0x5f, 0xf6, 0x6b, 0x8a, 0xfc, 0x1b, 0x3d, 0xaf, 0x38, 0x60, 0x73, 0x57, 0xfc, + 0xe1, 0x84, 0x4a, 0x38, 0x23, 0x19, 0x74, 0xda, 0xa4, 0xc9, 0xd7, 0xcc, 0x46, 0xb5, 0x5a, 0x45, + 0x4d, 0xa0, 0x8f, 0xdb, 0x69, 0x80, 0x36, 0xa4, 0x77, 0x74, 0x97, 0x1e, 0xb9, 0x43, 0x3d, 0xc9, + 0xf5, 0xa6, 0x40, 0x86, 0x58, 0x4d, 0x53, 0x85, 0x95, 0xea, 0x22, 0x28, 0xf7, 0x02, 0xca, 0x12, + 0x86, 0x6a, 0xdc, 0x69, 0xc1, 0xff, 0x41, 0x41, 0xa4, 0x44, 0xea, 0x1f, 0xbf, 0x7b, 0x5f, 0xc7, + 0x5a, 0xba, 0xe1, 0x7c, 0xab, 0x10, 0xe7, 0xe9, 0xff, 0x93, 0x29, 0xf2, 0x76, 0xe4, 0x71, 0x7e, + 0x02, 0xfd, 0xcf, 0xef, 0x0f, 0xd3, 0xdf, 0x48, 0x78, 0xdb, 0x7d, 0x23, 0x1a, 0x3d, 0x5f, 0x27, + 0xe2, 0xd2, 0xf4, 0x70, 0x69, 0x32, 0x5c, 0x0a, 0xa1, 0x83, 0x5f, 0x9c, 0xf0, 0xed, 0xbd, 0xb3, + 0x5e, 0xc0, 0xf4, 0x98, 0x2d, 0xee, 0x1f, 0x96, 0x5b, 0x8f, 0xd8, 0xc8, 0x06, 0x72, 0x92, 0x05, + 0x1c, 0x91, 0xb5, 0x11, 0xb2, 0x5f, 0x3d, 0x48, 0x09, 0x7a, 0xd7, 0x2f, 0xf7, 0x2e, 0xaa, 0xe7, + 0x6c, 0xc8, 0x88, 0xdb, 0x34, 0xba, 0xc1, 0xa0, 0xd7, 0x38, 0x0e, 0x87, 0xa5, 0xc4, 0x43, 0x64, + 0x83, 0xae, 0xf3, 0x75, 0xdc, 0x9c, 0x72, 0xd8, 0x2e, 0x27, 0x22, 0xc7, 0xeb, 0x57, 0xcb, 0x71, + 0x80, 0xfa, 0xf8, 0x45, 0x78, 0x63, 0x2e, 0x9c, 0xc7, 0x76, 0x58, 0xc2, 0x47, 0x2f, 0x96, 0x3b, + 0x75, 0xcb, 0xb4, 0x9f, 0x84, 0x0a, 0x9c, 0x2f, 0xae, 0xbf, 0xf3, 0xe2, 0xdf, 0x4f, 0x90, 0x60, + 0xe1, 0xbb, 0xd9, 0x06, 0x88, 0x26, 0x36, 0x08, 0xf4, 0x10, 0x00, 0x51, 0x34, 0xd0, 0x5b, 0x25, + 0x44, 0xa3, 0x39, 0x30, 0x9d, 0xf7, 0xf2, 0x21, 0xb7, 0x01, 0xaa, 0x0e, 0xcf, 0x47, 0x5d, 0x47, + 0x0c, 0x87, 0x62, 0x9d, 0x7c, 0xf7, 0xe1, 0xd5, 0x09, 0x22, 0x85, 0xda, 0xc9, 0xa0, 0xac, 0xbb, + 0xd8, 0x13, 0xba, 0x7a, 0x05, 0x5d, 0x90, 0x04, 0xbb, 0xf1, 0x25, 0x8b, 0x1d, 0x8b, 0xb6, 0xe3, + 0xf0, 0xbc, 0xdd, 0x40, 0x27, 0x52, 0x06, 0x5a, 0xf8, 0x17, 0x18, 0x39, 0x02, 0xf3, 0x23, 0x09, + 0x3a, 0x7c, 0xe5, 0x7e, 0x09, 0x12, 0x7c, 0xe5, 0x7f, 0xd5, 0xa9, 0xfb, 0x04, 0x2a, 0x73, 0x36, + 0x28, 0x00, 0x0e, 0x6f, 0x60, 0x7f, 0x3c, 0xeb, 0x9d, 0xde, 0x78, 0x84, 0xae, 0xed, 0x35, 0x69, + 0xd2, 0x6a, 0x5a, 0x00, 0x2a, 0x38, 0xcc, 0xe2, 0x53, 0x03, 0x36, 0xbb, 0x93, 0xad, 0x43, 0xfb, + 0x7e, 0x0e, 0x0c, 0x00, 0x31, 0xa3, 0x47, 0x53, 0xb2, 0xb4, 0x57, 0xe1, 0x94, 0xdc, 0xaf, 0xc5, + 0x17, 0x40, 0x6b, 0xc3, 0x06, 0x84, 0xd9, 0x0d, 0x92, 0xf1, 0xf1, 0x81, 0xe3, 0x09, 0x5c, 0x5e, + 0xbf, 0x31, 0xa2, 0x02, 0x15, 0x29, 0x01, 0x8d, 0x6d, 0x01, 0xed, 0x70, 0x1e, 0x64, 0x9d, 0xbd, + 0xf8, 0xe7, 0x6f, 0xde, 0xd3, 0x7e, 0x7e, 0x87, 0xae, 0x6b, 0x4a, 0x6c, 0xbc, 0xaf, 0x09, 0xa3, + 0xcb, 0x9e, 0x4d, 0x8d, 0x06, 0x34, 0xd4, 0x7f, 0x47, 0xa9, 0x85, 0x2e, 0xb3, 0x4b, 0xfa, 0x6e, + 0x93, 0x60, 0xa1, 0x51, 0x2d, 0xc8, 0xdf, 0x99, 0x64, 0xef, 0x3d, 0x59, 0xea, 0xa7, 0x64, 0xc1, + 0x76, 0x1f, 0x41, 0x99, 0xa4, 0x39, 0xe1, 0x8d, 0xc7, 0xb5, 0xcb, 0x96, 0x6e, 0x76, 0x0a, 0x0e, + 0xfa, 0x61, 0x38, 0x01, 0x5d, 0x24, 0x80, 0x8c, 0xf0, 0xd6, 0x67, 0xdc, 0xa3, 0x87, 0x83, 0x0d, + 0x9d, 0x01, 0xc5, 0xb6, 0xbc, 0x9f, 0xd0, 0x60, 0x83, 0xb9, 0x23, 0x40, 0xc5, 0x69, 0x31, 0x15, + 0x07, 0x55, 0x00, 0xdf, 0xbb, 0x17, 0x33, 0x47, 0x42, 0x37, 0x7f, 0x73, 0xab, 0xd6, 0xcd, 0xd2, + 0x77, 0x47, 0xf5, 0x6c, 0xdc, 0x4c, 0x65, 0xaa, 0xf4, 0xd2, 0xc8, 0xf1, 0x94, 0x6a, 0x9c, 0x82, + 0xa5, 0xa2, 0x1c, 0x0c, 0x36, 0xac, 0xf6, 0xb2, 0x85, 0x86, 0x7e, 0xfa, 0x2f, 0x8d, 0xc0, 0xca, + 0x25, 0xe9, 0x81, 0xe4, 0x34, 0x5d, 0xd7, 0xd6, 0x40, 0xad, 0x22, 0x49, 0x0e, 0x2c, 0x00, 0x8e, + 0x07, 0x2d, 0x54, 0xf2, 0x93, 0xa8, 0x47, 0x8c, 0x5d, 0x71, 0x52, 0x03, 0xb2, 0x13, 0xcc, 0x06, + 0xb3, 0xd9, 0x69, 0x4a, 0xc6, 0xad, 0x27, 0xcd, 0xa5, 0xc1, 0x0a, 0xcb, 0xfc, 0x7b, 0x51, 0x64, + 0xfa, 0x52, 0xce, 0xf7, 0x72, 0xfd, 0x5e, 0xff, 0x62, 0xc0, 0xd0, 0xf5, 0xfb, 0x74, 0x5c, 0xff, + 0x14, 0x42, 0xb7, 0x2f, 0xb3, 0x14, 0xfe, 0x37, 0xf0, 0x75, 0xf6, 0x1e, 0x3a, 0xd4, 0x1d, 0x36, + 0x1d, 0xd5, 0x88, 0x99, 0x1c, 0x18, 0x44, 0xb8, 0x12, 0xe4, 0xd1, 0x70, 0x3c, 0x6f, 0x6e, 0x04, + 0xe0, 0x26, 0xd8, 0x41, 0x54, 0x22, 0x33, 0x45, 0x28, 0x48, 0xf4, 0xff, 0x26, 0x8d, 0xb0, 0x57, + 0xd4, 0xbb, 0xf7, 0x25, 0x44, 0xaa, 0xe1, 0xb0, 0x14, 0x1a, 0xa8, 0x9e, 0x66, 0x47, 0xfc, 0xfe, + 0x6e, 0x9b, 0xa1, 0x00, 0x10, 0x06, 0x3a, 0xc9, 0xc5, 0xdf, 0x1b, 0x18, 0xde, 0x4e, 0x5d, 0x7a, + 0x69, 0xfd, 0x4d, 0x5d, 0x7a, 0xda, 0x85, 0xa3, 0xce, 0xe7, 0x0f, 0xa5, 0xeb, 0xba, 0x68, 0x13, + 0xef, 0xfc, 0x19, 0x6e, 0x0a, 0x07, 0xc0, 0x70, 0x1f, 0xe1, 0x3f, 0x04, 0x06, 0x64, 0x18, 0x39, + 0xc5, 0xb6, 0x2b, 0xfa, 0xe4, 0x48, 0x4d, 0x33, 0xeb, 0x1f, 0xf3, 0x48, 0xf6, 0xc2, 0xfc, 0xcd, + 0xd7, 0xc1, 0x96, 0x73, 0x43, 0x50, 0x25, 0x55, 0x0d, 0x83, 0x14, 0x92, 0x9b, 0xea, 0xbe, 0xea, + 0x32, 0x18, 0x78, 0xef, 0x56, 0x5e, 0xc4, 0x51, 0x88, 0xfb, 0x38, 0x2c, 0x12, 0x25, 0x7c, 0x5b, + 0x6e, 0x38, 0x1e, 0x05, 0x0f, 0xfc, 0x51, 0xaf, 0x80, 0x36, 0x26, 0x34, 0x94, 0x83, 0x21, 0x9c, + 0x5a, 0x61, 0x3a, 0xdb, 0x8d, 0xa7, 0x5f, 0x1e, 0x5e, 0xf8, 0x20, 0x9c, 0x8f, 0xe1, 0x2b, 0x9c, + 0x47, 0x71, 0xe6, 0x57, 0x43, 0xd4, 0x01, 0x43, 0x69, 0x84, 0x4e, 0xfe, 0x01, 0x19, 0x81, 0x7d, + 0x2b, 0xdb, 0x44, 0x7a, 0x59, 0xf8, 0x4a, 0x01, 0x5e, 0xd3, 0x10, 0xd6, 0x09, 0xbe, 0x6d, 0xbc, + 0xb2, 0x81, 0x9e, 0x72, 0xff, 0x96, 0xd2, 0x83, 0x58, 0x09, 0x34, 0x2c, 0x51, 0xcb, 0x6c, 0x88, + 0x6c, 0xc3, 0x70, 0x7b, 0x9b, 0xac, 0x74, 0xd4, 0x9b, 0xd4, 0x35, 0x9d, 0x24, 0xeb, 0x3a, 0xd9, + 0x9e, 0x86, 0xfb, 0xe8, 0xa9, 0xa8, 0xe1, 0x06, 0x23, 0x6a, 0x2a, 0x68, 0x52, 0x0d, 0xca, 0x23, + 0x1a, 0x34, 0x88, 0xc0, 0xd3, 0x1f, 0x3f, 0x37, 0xa2, 0xe0, 0xa6, 0x8b, 0x6f, 0xa9, 0x68, 0x03, + 0x21, 0x35, 0x75, 0x11, 0x37, 0xf5, 0x43, 0x17, 0xbe, 0xf2, 0xfe, 0x4e, 0xdd, 0x4a, 0x2e, 0xbb, + 0xc7, 0x65, 0x73, 0xfe, 0xf2, 0x6a, 0x12, 0xde, 0xeb, 0x33, 0xbb, 0x58, 0x2b, 0x7e, 0x3a, 0x88, + 0xed, 0x42, 0xc4, 0x8f, 0x08, 0xb1, 0x0a, 0x78, 0x3d, 0x55, 0xbc, 0xbc, 0xa2, 0xb8, 0x6b, 0x0b, + 0xbf, 0xac, 0x85, 0x4e, 0x4b, 0xd3, 0x52, 0x35, 0xaf, 0x52, 0x78, 0x6b, 0x26, 0xa6, 0x0e, 0xfa, + 0x59, 0x5d, 0x3a, 0x00, 0xd0, 0xba, 0x3d, 0x86, 0x1c, 0x3f, 0x6c, 0x63, 0x7c, 0x7c, 0xa6, 0x8a, + 0x11, 0x44, 0x84, 0x18, 0x28, 0x15, 0x44, 0x7b, 0xe7, 0xc4, 0x46, 0x12, 0x8a, 0x35, 0x19, 0x5a, + 0x9d, 0xb0, 0xc4, 0x4e, 0x10, 0xdc, 0x54, 0x33, 0x7e, 0x80, 0xc2, 0x8e, 0x0f, 0x7e, 0x04, 0xce, + 0x0f, 0xee, 0xff, 0x42, 0xdd, 0x04, 0x18, 0xac, 0x2c, 0x9f, 0x8f, 0xa9, 0xf0, 0x54, 0x6f, 0x5b, + 0x53, 0x9a, 0x26, 0x1b, 0x2c, 0x9a, 0x43, 0x14, 0xe6, 0xc6, 0x68, 0x48, 0x6c, 0x4d, 0xa9, 0x7d, + 0x11, 0x17, 0x7c, 0x2d, 0xd8, 0x29, 0x5d, 0xf6, 0xc6, 0x0f, 0x5a, 0x9e, 0x4f, 0x9c, 0x3f, 0x7f, + 0x92, 0x49, 0x8c, 0x74, 0x23, 0x93, 0x44, 0x10, 0x0c, 0x07, 0x33, 0xe5, 0x50, 0xfb, 0x99, 0x9a, + 0xd3, 0xcc, 0x88, 0x5e, 0xb9, 0xc9, 0xd9, 0x74, 0x5c, 0x6a, 0x4e, 0x80, 0x69, 0x3d, 0x71, 0xf0, + 0x90, 0x18, 0xba, 0xa7, 0x1d, 0x07, 0x83, 0xe5, 0xfd, 0x80, 0x7c, 0x37, 0x1c, 0xa6, 0x42, 0xa8, + 0x2a, 0xcd, 0x33, 0x1d, 0x96, 0xfa, 0xd7, 0xf9, 0x79, 0x24, 0x4e, 0x30, 0xb4, 0x61, 0xcc, 0x0b, + 0xa1, 0x1f, 0xcb, 0x28, 0x3c, 0xef, 0x8c, 0x6f, 0x10, 0x0e, 0xbc, 0x6a, 0x69, 0xff, 0xb5, 0x48, + 0x47, 0x9d, 0xe7, 0x3c, 0xd5, 0x17, 0xf4, 0x7b, 0xb0, 0xc8, 0xeb, 0xe6, 0x8f, 0xc0, 0x3a, 0x6f, + 0x98, 0x42, 0x68, 0x13, 0xcf, 0x3b, 0xd7, 0xbc, 0xbd, 0x1d, 0xd9, 0xf0, 0x02, 0x69, 0x0f, 0x36, + 0x65, 0x60, 0xcf, 0x63, 0x64, 0x21, 0x0d, 0x2c, 0x4c, 0xe2, 0x29, 0x02, 0xf8, 0xfe, 0xe1, 0x7d, + 0xd7, 0x5c, 0xe0, 0xb0, 0xc2, 0x04, 0x9d, 0xd7, 0x34, 0xb8, 0x90, 0x22, 0xe8, 0x2f, 0x07, 0x65, + 0xfe, 0xc5, 0x80, 0x44, 0xaf, 0x41, 0xd3, 0x22, 0x06, 0x6d, 0x6f, 0x82, 0xde, 0x64, 0x8c, 0x52, + 0x9a, 0x7f, 0x1b, 0x7f, 0xab, 0xb9, 0xf6, 0x08, 0x54, 0x44, 0x5c, 0x31, 0xaf, 0xce, 0x19, 0xe9, + 0x4b, 0x3a, 0xc6, 0xe6, 0xaf, 0xe0, 0x33, 0x1c, 0xeb, 0xb0, 0x1c, 0x9d, 0x1f, 0x5a, 0x8a, 0x33, + 0x49, 0x3c, 0x6b, 0x04, 0x6d, 0x00, 0x3c, 0x02, 0x4e, 0xd0, 0x41, 0x1f, 0xe7, 0x39, 0x4c, 0x4f, + 0x80, 0x3c, 0xd9, 0xd6, 0x04, 0x43, 0x6f, 0xa2, 0xab, 0x4f, 0xa7, 0x9e, 0x7c, 0x7d, 0x7f, 0x64, + 0xb3, 0x5f, 0xea, 0xc8, 0x86, 0x9f, 0x37, 0x92, 0xf7, 0xd3, 0x65, 0x45, 0xdb, 0x92, 0x4a, 0x58, + 0x02, 0xbe, 0x78, 0x9c, 0x6e, 0x5d, 0x76, 0x61, 0x10, 0x90, 0x34, 0x52, 0x2d, 0x83, 0x0e, 0x28, + 0x76, 0x1c, 0x1c, 0xf4, 0x0b, 0xfd, 0xbb, 0xf8, 0x03, 0x77, 0x88, 0x6a, 0xf8, 0x8c, 0x47, 0xbb, + 0x41, 0x0b, 0x09, 0x5e, 0xdb, 0x93, 0xc9, 0x8a, 0xde, 0x9c, 0x8b, 0x34, 0x74, 0x7a, 0xcd, 0xf6, + 0x47, 0x4c, 0xb4, 0xaf, 0xee, 0x7b, 0x30, 0x23, 0x91, 0x6e, 0x21, 0xe2, 0xbe, 0x05, 0xb2, 0x01, + 0x02, 0x52, 0xca, 0x04, 0x1d, 0x8b, 0x49, 0x00, 0x27, 0x95, 0x5a, 0xf8, 0xda, 0x96, 0xb7, 0xb3, + 0x81, 0xc8, 0x32, 0xfc, 0x18, 0xae, 0x90, 0x83, 0xe9, 0xc2, 0x4c, 0xf8, 0x4d, 0x7b, 0x3e, 0x25, + 0xba, 0x88, 0x97, 0x62, 0xb8, 0x1e, 0x98, 0x24, 0x0d, 0x03, 0x8f, 0xaa, 0x7a, 0x7b, 0x98, 0x6b, + 0x42, 0xc1, 0x43, 0xd6, 0x9b, 0x1f, 0x20, 0x0f, 0x76, 0x0f, 0xd9, 0x45, 0x5b, 0x6e, 0x67, 0xc7, + 0xf3, 0x5f, 0x0a, 0xb6, 0xa0, 0x09, 0x4a, 0x5d, 0x62, 0xc0, 0x3c, 0x4b, 0xc8, 0x5e, 0xfe, 0x02, + 0x2b, 0x48, 0x5b, 0xfe, 0x02, 0x4b, 0x8d, 0xf1, 0x73, 0x3c, 0x0b, 0xb1, 0x4c, 0xc6, 0xb8, 0x77, + 0x7c, 0x78, 0x2f, 0xc8, 0x9c, 0x4b, 0x49, 0x29, 0x4e, 0xe0, 0x52, 0x36, 0xfd, 0xd4, 0x70, 0x5f, + 0x6a, 0x09, 0x8b, 0x5d, 0x00, 0x00, 0x10, 0x96, 0xaa, 0xb3, 0x82, 0x21, 0xb4, 0xcb, 0x70, 0x74, + 0x3c, 0xeb, 0xcf, 0xa3, 0x9c, 0x0e, 0x11, 0xd3, 0x7d, 0x40, 0x4a, 0x5e, 0x7d, 0x2c, 0xf4, 0x4b, + 0x30, 0x70, 0x4f, 0x7a, 0x7b, 0x9b, 0x7e, 0xed, 0x52, 0xc9, 0x1a, 0xaa, 0xd3, 0x0c, 0xea, 0xd0, + 0x7c, 0x5e, 0x58, 0x15, 0x79, 0x41, 0xbe, 0x33, 0x15, 0xd6, 0x0b, 0xbc, 0xa0, 0x84, 0x36, 0x15, + 0x48, 0x9a, 0x86, 0xda, 0x6e, 0x6f, 0x8b, 0x60, 0x44, 0xb0, 0x67, 0x86, 0x5a, 0x15, 0x1d, 0x26, + 0xbe, 0xd3, 0xdc, 0xcf, 0x60, 0xde, 0x71, 0xb1, 0x46, 0x2f, 0xc2, 0xf5, 0x5d, 0x89, 0x43, 0xf4, + 0xcc, 0x27, 0x7a, 0xc1, 0x56, 0xe1, 0x17, 0x8e, 0xd1, 0x8d, 0xe7, 0x4b, 0xcf, 0x62, 0x69, 0xdc, + 0x0c, 0x27, 0x86, 0x39, 0xea, 0x0f, 0x12, 0xf4, 0xcd, 0x45, 0x18, 0x43, 0xe8, 0x48, 0x63, 0x92, + 0x60, 0x71, 0x76, 0xb1, 0x2a, 0xb9, 0x5a, 0x70, 0x25, 0x1f, 0x6d, 0xc1, 0xf3, 0xcb, 0x46, 0xca, + 0xe4, 0xb1, 0xcc, 0xb9, 0xe6, 0x38, 0xf8, 0x9e, 0x87, 0xe3, 0x6b, 0xea, 0xb9, 0x8c, 0x15, 0xa9, + 0x62, 0x91, 0x66, 0xa8, 0x67, 0x09, 0x3a, 0x8c, 0x04, 0x58, 0x48, 0x09, 0x53, 0x81, 0x85, 0x86, + 0x2e, 0xe1, 0x45, 0x88, 0x7a, 0x29, 0xb3, 0xa0, 0xfb, 0x90, 0xb4, 0x60, 0x8a, 0xab, 0xc1, 0x0f, + 0x95, 0xc6, 0x09, 0x85, 0xaf, 0x6e, 0x30, 0x40, 0x06, 0xe8, 0xe1, 0x9b, 0x1d, 0x8c, 0x74, 0x6f, + 0x1a, 0x0e, 0x19, 0x42, 0xfc, 0x85, 0x58, 0x51, 0xb6, 0x1e, 0x62, 0x3b, 0xcb, 0x48, 0xff, 0x50, + 0x84, 0xe4, 0x5f, 0xe7, 0x9e, 0x5f, 0xc8, 0x9f, 0x3f, 0x41, 0x13, 0xfc, 0x3c, 0x24, 0x60, 0x40, + 0x04, 0x86, 0xc5, 0x4d, 0x88, 0x9d, 0x46, 0xe3, 0xaf, 0x84, 0x3c, 0xc9, 0xf3, 0xbe, 0x73, 0x8c, + 0x72, 0x62, 0xb3, 0xf1, 0x91, 0xc3, 0xd9, 0xd1, 0x70, 0x83, 0xe2, 0xe3, 0xd0, 0x73, 0xd0, 0x41, + 0xc8, 0x0f, 0xce, 0x02, 0xa1, 0xca, 0x31, 0xaf, 0x34, 0x9e, 0x5b, 0x4f, 0x7e, 0x81, 0x7a, 0xc8, + 0xc9, 0xa0, 0x87, 0x60, 0x6c, 0x35, 0x98, 0xc7, 0x19, 0xb7, 0xd1, 0xc3, 0x01, 0xd8, 0x28, 0x0a, + 0xd3, 0x86, 0x39, 0x49, 0xf2, 0x18, 0x68, 0x41, 0x0d, 0x81, 0x58, 0xec, 0x2c, 0xe1, 0x7d, 0xce, + 0x85, 0x11, 0x15, 0xf4, 0xf4, 0x1b, 0xf0, 0x6f, 0x58, 0x6e, 0x3f, 0x7c, 0xa1, 0x00, 0x38, 0xf8, + 0x36, 0xe7, 0xc6, 0x1c, 0x93, 0x0b, 0xdf, 0xf8, 0x1a, 0x86, 0xa0, 0x62, 0xcb, 0x11, 0xe9, 0x12, + 0x9a, 0x0b, 0x21, 0x87, 0x2e, 0x10, 0xe6, 0x74, 0x37, 0x03, 0x7f, 0xba, 0x21, 0xe0, 0x29, 0x36, + 0x82, 0x17, 0x52, 0x60, 0x0c, 0x3c, 0xda, 0xf4, 0x3b, 0xb8, 0x31, 0x01, 0x63, 0xc2, 0xe3, 0x51, + 0x1a, 0xd3, 0x1d, 0x28, 0x66, 0xea, 0x78, 0xcd, 0xaa, 0x8d, 0x1c, 0xfb, 0xf6, 0xa6, 0xbd, 0x53, + 0xe1, 0x16, 0x02, 0xbe, 0xa5, 0xa4, 0xe6, 0xfe, 0xcd, 0x20, 0xb8, 0xe4, 0xff, 0xb2, 0x2a, 0xd1, + 0xe7, 0xf1, 0x66, 0x81, 0x1f, 0xa8, 0x87, 0x2b, 0x0a, 0xa8, 0x41, 0x74, 0xc6, 0x34, 0xaa, 0x32, + 0x2c, 0x55, 0x0a, 0x96, 0xf2, 0xb1, 0x5e, 0xe1, 0x57, 0xe0, 0xf9, 0x90, 0x4e, 0x41, 0x3c, 0x9d, + 0xc2, 0xfb, 0xae, 0x91, 0xa8, 0xf0, 0xe6, 0x6b, 0xe1, 0x65, 0x89, 0xb7, 0x35, 0xc0, 0xd2, 0x71, + 0x2c, 0x30, 0x1c, 0x08, 0x3b, 0x72, 0xf0, 0xf7, 0xb6, 0x1a, 0x56, 0x8d, 0x7b, 0xef, 0x15, 0x29, + 0x91, 0x23, 0x38, 0x73, 0xd3, 0xa8, 0xb1, 0x1b, 0x60, 0xf0, 0x33, 0xac, 0x35, 0x84, 0xaf, 0x47, + 0x9a, 0x7b, 0x57, 0xc2, 0x80, 0x29, 0x1a, 0xbe, 0x00, 0x47, 0x48, 0xfa, 0x97, 0xc6, 0xb0, 0x6f, + 0x3e, 0x76, 0x45, 0x86, 0x77, 0xf4, 0x14, 0xef, 0xd5, 0xf2, 0xa7, 0x21, 0xb8, 0xb7, 0xbc, 0xc1, + 0xaa, 0xfc, 0xe0, 0x42, 0xf7, 0x97, 0xe3, 0xeb, 0x7f, 0x80, 0xe0, 0x42, 0x29, 0xf8, 0xae, 0x2d, + 0xde, 0x33, 0x2b, 0xfc, 0xd7, 0xb0, 0x44, 0x6d, 0x59, 0x06, 0x64, 0x69, 0xcd, 0xc6, 0x07, 0xe0, + 0xef, 0x32, 0xf9, 0xd3, 0x15, 0x1e, 0x16, 0xf6, 0xdf, 0xbb, 0xea, 0xc6, 0x7b, 0xe0, 0xd9, 0xa1, + 0x2f, 0x7f, 0x7c, 0x2c, 0xd0, 0x8b, 0xee, 0x3c, 0xad, 0x1b, 0x00, 0x2d, 0xf6, 0x97, 0x47, 0x70, + 0xe1, 0xc1, 0x0b, 0x8f, 0xc2, 0x83, 0xb4, 0x76, 0x18, 0xec, 0x05, 0x28, 0x7e, 0xb0, 0xa5, 0x57, + 0x04, 0xd8, 0x50, 0x08, 0x64, 0xab, 0x13, 0x86, 0x57, 0xdf, 0x98, 0x83, 0x9c, 0x0a, 0x57, 0x34, + 0x83, 0xc1, 0x3a, 0xe5, 0x5d, 0x06, 0x1f, 0x37, 0xd7, 0x48, 0xdc, 0x58, 0xa3, 0x85, 0xc7, 0x6b, + 0x4d, 0xbb, 0xf5, 0x65, 0xfd, 0x5b, 0xc5, 0x3f, 0x2a, 0xed, 0xef, 0x59, 0xb0, 0x5f, 0xfe, 0xc0, + 0xd8, 0x15, 0xc1, 0xb1, 0xba, 0xf5, 0xcd, 0x59, 0x8d, 0xb8, 0x75, 0x19, 0xc5, 0x60, 0x28, 0x38, + 0xc6, 0xf7, 0xb5, 0x90, 0x85, 0xe2, 0x40, 0xd6, 0x6f, 0x3e, 0xed, 0x85, 0x69, 0xd4, 0x97, 0x39, + 0x66, 0xf6, 0xf7, 0x1a, 0xf8, 0xab, 0xb6, 0xae, 0x57, 0x3a, 0xf7, 0xfb, 0xf3, 0xbd, 0xf1, 0x42, + 0x45, 0x48, 0x6c, 0x1d, 0x82, 0xb2, 0x59, 0xa3, 0x7b, 0x44, 0x28, 0x6c, 0x6b, 0xcb, 0x6d, 0x7e, + 0x82, 0xe2, 0x78, 0xd9, 0xc7, 0xc5, 0x22, 0x7a, 0x2f, 0x45, 0xe4, 0x62, 0xcc, 0xf0, 0x79, 0x88, + 0xf0, 0x55, 0x89, 0x5e, 0xe7, 0xea, 0xcb, 0xee, 0x2d, 0x91, 0x1d, 0xa4, 0xad, 0x9d, 0xc3, 0xd0, + 0xcd, 0x98, 0xf1, 0x11, 0x7a, 0x58, 0x58, 0x03, 0x69, 0x7b, 0x7b, 0x5d, 0x0f, 0xe8, 0x1b, 0xd4, + 0x40, 0x33, 0x33, 0xef, 0x34, 0x32, 0x49, 0xce, 0x65, 0x32, 0x90, 0xc6, 0x9a, 0x69, 0xd7, 0x38, + 0x67, 0x68, 0x9a, 0x18, 0xb4, 0x46, 0x01, 0xd5, 0xfc, 0x0b, 0x73, 0x63, 0xe3, 0x0c, 0x5f, 0x32, + 0x1a, 0x1e, 0xe6, 0x6a, 0x07, 0xff, 0xc6, 0x28, 0xd7, 0xe0, 0xea, 0xf3, 0xc3, 0x8c, 0xf6, 0xe0, + 0x3f, 0x18, 0xe5, 0x32, 0x08, 0x67, 0x33, 0x6d, 0x00, 0xb7, 0xfe, 0xe2, 0xc7, 0xf6, 0x90, 0x5f, + 0x8b, 0xd5, 0xea, 0x18, 0x2c, 0xb3, 0xb9, 0x3a, 0x98, 0x66, 0xb5, 0x40, 0x6d, 0x0f, 0xd3, 0x18, + 0x0d, 0x25, 0x09, 0x9c, 0xc2, 0x51, 0xa8, 0x6c, 0xdb, 0x14, 0xbd, 0x6e, 0xfc, 0x3c, 0x36, 0x13, + 0xc2, 0x6a, 0x3b, 0xbd, 0x69, 0x2d, 0x74, 0x4a, 0x2d, 0x0e, 0xcb, 0xbf, 0x3b, 0xd2, 0xd7, 0x07, + 0xe3, 0x14, 0xbc, 0x06, 0x20, 0x4c, 0x4e, 0x8d, 0xc4, 0xe1, 0xd0, 0xf7, 0x1d, 0x45, 0x47, 0xb9, + 0x32, 0xb6, 0x55, 0x3b, 0x96, 0x8f, 0xe3, 0x8b, 0x5d, 0x76, 0xbc, 0x06, 0x5b, 0xce, 0x74, 0x2d, + 0xac, 0x88, 0xd9, 0xb1, 0x32, 0xb8, 0xd0, 0x55, 0xbf, 0xeb, 0x26, 0x60, 0x3d, 0xc8, 0x15, 0x5b, + 0x65, 0x05, 0x2c, 0x5e, 0x08, 0x17, 0x9f, 0x52, 0xbc, 0x4f, 0x8c, 0xc4, 0x71, 0xcb, 0x22, 0xb1, + 0x03, 0x3e, 0x37, 0x47, 0x3b, 0x7a, 0x51, 0x8f, 0x9c, 0x29, 0xc3, 0xfd, 0x43, 0x30, 0xdf, 0xa9, + 0x3e, 0x1a, 0xd2, 0x3a, 0xfc, 0x77, 0xc8, 0x59, 0xfe, 0x41, 0x36, 0xff, 0x84, 0x9b, 0x17, 0x9f, + 0x48, 0x43, 0x13, 0x23, 0x73, 0xe3, 0x46, 0xda, 0x0e, 0x6c, 0x3f, 0x0c, 0x39, 0xc2, 0xab, 0xde, + 0x48, 0x7d, 0xc9, 0x6b, 0x37, 0xdb, 0xba, 0x2b, 0x3b, 0x95, 0xb8, 0x41, 0xb9, 0xc6, 0xfd, 0x4e, + 0xdf, 0x89, 0xce, 0xf1, 0xf5, 0x58, 0x36, 0x75, 0x85, 0x7b, 0x79, 0x02, 0x22, 0x80, 0x4a, 0xb2, + 0xa4, 0xbb, 0xd1, 0xbc, 0x8d, 0x98, 0x90, 0x2b, 0x26, 0x29, 0xf9, 0xf5, 0xa1, 0x17, 0x92, 0x5a, + 0x3b, 0xa8, 0xe3, 0x0d, 0xa0, 0xef, 0xcb, 0x18, 0x81, 0x96, 0xb7, 0x3f, 0x45, 0xdf, 0xfd, 0xd2, + 0xc0, 0x0d, 0x2a, 0x20, 0xf0, 0xf9, 0xa0, 0x26, 0x0a, 0x0e, 0xfc, 0x8d, 0xf1, 0x8d, 0xa1, 0xa0, + 0xc4, 0x45, 0x8e, 0x66, 0x06, 0xa1, 0xce, 0xde, 0x26, 0x68, 0xaa, 0x28, 0xf2, 0x75, 0xd5, 0x9c, + 0x93, 0xf4, 0x20, 0x5c, 0x2c, 0x5f, 0x8a, 0x95, 0xe3, 0x17, 0xd0, 0x5b, 0x9d, 0x24, 0x69, 0xa2, + 0x24, 0x63, 0x9c, 0xf3, 0x80, 0xde, 0x53, 0x36, 0xc0, 0xed, 0x2b, 0xbe, 0xce, 0x3a, 0x07, 0x89, + 0x8b, 0x25, 0x42, 0x08, 0xc5, 0x8e, 0xff, 0x46, 0x83, 0x95, 0x3d, 0x97, 0x60, 0x74, 0x1e, 0x5f, + 0x65, 0x67, 0xc9, 0xd9, 0x2d, 0x5c, 0x20, 0xc3, 0xeb, 0x21, 0x9c, 0x5d, 0x87, 0x3c, 0x42, 0x76, + 0x18, 0x99, 0x87, 0xa1, 0x8c, 0x7e, 0xc4, 0x8b, 0x14, 0xf6, 0x21, 0xd5, 0xc3, 0xa0, 0x07, 0x64, + 0xda, 0xa5, 0x76, 0x8e, 0xe7, 0x00, 0x87, 0x27, 0x3f, 0xbc, 0xdc, 0x8d, 0x78, 0x09, 0xea, 0x2e, + 0x46, 0x88, 0xe3, 0x36, 0x52, 0xd7, 0x2b, 0x55, 0x8a, 0x9c, 0x72, 0xf6, 0x5f, 0x2a, 0x83, 0xe7, + 0x9c, 0x59, 0x53, 0xe1, 0x66, 0x68, 0x8a, 0xe7, 0x3d, 0x86, 0x29, 0x89, 0xf4, 0x60, 0x04, 0xc2, + 0x36, 0x92, 0xe2, 0x48, 0xee, 0xc8, 0xa6, 0x96, 0x8e, 0x37, 0x6b, 0x60, 0xdc, 0x69, 0xb6, 0x99, + 0x6e, 0xb1, 0xf2, 0xce, 0xf8, 0xc6, 0xc4, 0x77, 0x61, 0x38, 0xb8, 0xb7, 0xed, 0xb9, 0x4a, 0x8c, + 0x34, 0x73, 0x93, 0x18, 0xe9, 0xbe, 0xf7, 0x2d, 0xe3, 0x6a, 0x81, 0xbe, 0x18, 0x64, 0xea, 0xef, + 0x91, 0x75, 0x35, 0x59, 0xa7, 0x23, 0x5d, 0x7f, 0x43, 0xc9, 0x86, 0x5d, 0x46, 0xbc, 0x9d, 0x28, + 0x21, 0xfe, 0x53, 0xa0, 0x3b, 0xb6, 0xfc, 0xef, 0x30, 0x5a, 0x4f, 0x03, 0xb4, 0x86, 0xbb, 0xff, + 0x42, 0xf4, 0xb1, 0x66, 0x44, 0x99, 0x82, 0x4f, 0x02, 0x1e, 0x53, 0x40, 0xb3, 0x29, 0x18, 0x11, + 0x7a, 0xcc, 0x5c, 0x06, 0x67, 0x57, 0xfc, 0x11, 0x41, 0x04, 0xc1, 0x83, 0x1b, 0xb5, 0x58, 0x52, + 0x8b, 0xbd, 0x5e, 0x23, 0xc9, 0x01, 0x26, 0x60, 0xac, 0xf0, 0x17, 0x26, 0x27, 0xef, 0xd5, 0x3d, + 0xf3, 0x0f, 0x2b, 0xad, 0xdc, 0x72, 0xb7, 0x9c, 0x42, 0x9f, 0x05, 0x46, 0x80, 0x9e, 0xae, 0x02, + 0x4d, 0xce, 0xd9, 0x58, 0x6b, 0x9b, 0x60, 0x05, 0x08, 0x5a, 0xc4, 0x80, 0xd1, 0x77, 0x99, 0xcc, + 0x97, 0x98, 0xf1, 0x82, 0x00, 0xd6, 0x11, 0x39, 0x86, 0x04, 0xac, 0xa3, 0xf1, 0x58, 0xfa, 0xde, + 0xb2, 0xa9, 0xdf, 0x1b, 0x56, 0x5a, 0x90, 0x18, 0x51, 0x42, 0xe3, 0x8c, 0x31, 0x0b, 0xac, 0x63, + 0x7b, 0x3b, 0x7a, 0xcf, 0x43, 0xa3, 0xe1, 0xb2, 0x55, 0xb0, 0x9e, 0xa3, 0x6d, 0x6f, 0x7f, 0x88, + 0x6d, 0x1a, 0xf1, 0xf0, 0x2e, 0x90, 0xf8, 0x8a, 0x67, 0xcb, 0x4c, 0xc8, 0x7d, 0xc1, 0xee, 0x24, + 0xc3, 0x4b, 0xb1, 0xb1, 0x4e, 0x82, 0x05, 0x8c, 0x34, 0x08, 0x47, 0x89, 0xc1, 0x13, 0x60, 0xe5, + 0x51, 0x11, 0x08, 0x29, 0xb5, 0x9f, 0x3f, 0x4d, 0x60, 0x1d, 0x26, 0x70, 0x09, 0x33, 0x2d, 0x0b, + 0x61, 0xe0, 0xbf, 0x84, 0x9f, 0xf8, 0x3f, 0x68, 0x35, 0xf5, 0x2c, 0x6d, 0x3a, 0x66, 0x11, 0xac, + 0x37, 0x54, 0xc0, 0x5c, 0x47, 0x4f, 0x48, 0x3f, 0xdd, 0x9b, 0x82, 0x82, 0x22, 0x00, 0x0e, 0x11, + 0xd8, 0x8f, 0x68, 0x93, 0x00, 0xf7, 0xbd, 0x56, 0xa1, 0xc9, 0x5a, 0x8e, 0x55, 0xa4, 0x2e, 0x96, + 0x58, 0xd5, 0xf7, 0x6a, 0xa3, 0x0e, 0x16, 0x11, 0x8c, 0x4e, 0x4c, 0x51, 0xf1, 0x5e, 0xb6, 0xb2, + 0x56, 0x27, 0x53, 0x14, 0x37, 0xae, 0x2c, 0x21, 0x02, 0x07, 0x4a, 0x58, 0xba, 0xe0, 0x36, 0xc0, + 0xe1, 0x11, 0xee, 0xf8, 0xb0, 0x7d, 0x1c, 0xfc, 0x9d, 0x0c, 0x6e, 0xa4, 0xf1, 0x2e, 0xbc, 0xc4, + 0xcb, 0x39, 0x97, 0xd7, 0xf9, 0x66, 0x30, 0x2e, 0x37, 0x33, 0xd1, 0xf0, 0x80, 0xca, 0xc2, 0x53, + 0x4c, 0x6c, 0x98, 0x22, 0x76, 0xec, 0xcf, 0xb7, 0x84, 0x93, 0xc9, 0x81, 0x92, 0x6a, 0x64, 0x2b, + 0xfc, 0x6e, 0x9e, 0x9e, 0xac, 0xc7, 0x66, 0x79, 0x61, 0xa0, 0xec, 0xe6, 0xfc, 0x9f, 0x79, 0xb1, + 0x04, 0x18, 0x2d, 0x14, 0x1a, 0x8d, 0x81, 0x42, 0x53, 0x52, 0x8d, 0x3c, 0xa6, 0x88, 0x95, 0x50, + 0x0a, 0x00, 0x60, 0x9c, 0x89, 0x5d, 0x38, 0xec, 0x4f, 0x0f, 0x9d, 0xfd, 0xc6, 0xef, 0x81, 0x83, + 0x97, 0x2f, 0x0d, 0x94, 0x05, 0xde, 0x64, 0x85, 0xbc, 0xac, 0x08, 0xe6, 0xf0, 0x6f, 0x7e, 0x21, + 0x54, 0xb3, 0x22, 0x23, 0x17, 0xc5, 0xe8, 0xd9, 0x11, 0xbf, 0xe1, 0xf2, 0x16, 0x64, 0xba, 0x4f, + 0x81, 0xf9, 0x11, 0x95, 0x3f, 0xb8, 0x38, 0x39, 0x38, 0x9f, 0x4e, 0x22, 0x6d, 0x72, 0x5f, 0xf1, + 0x65, 0x6d, 0x02, 0x09, 0xed, 0xc8, 0x72, 0xf4, 0xc5, 0xa3, 0xf6, 0x30, 0xc1, 0x6e, 0x55, 0xe6, + 0xa8, 0xa7, 0x3e, 0xc9, 0x5a, 0x86, 0x75, 0xba, 0xe1, 0x5d, 0xa7, 0xb4, 0x21, 0x6e, 0xfd, 0x29, + 0xe2, 0xc8, 0xc9, 0xd1, 0x78, 0x0c, 0x18, 0xeb, 0x96, 0x27, 0xca, 0xde, 0x39, 0xe4, 0x2d, 0xe9, + 0x53, 0x16, 0x51, 0xe0, 0xf2, 0xae, 0x3d, 0x43, 0x30, 0xc9, 0xc8, 0xc6, 0x9b, 0xcb, 0x36, 0xff, + 0xc7, 0xb8, 0x61, 0x1d, 0x6c, 0x1d, 0xe1, 0xf1, 0x1f, 0xff, 0x40, 0x79, 0xa8, 0xd1, 0x06, 0x9e, + 0xc2, 0xa7, 0xc3, 0x62, 0xc7, 0x3a, 0xf9, 0x85, 0x77, 0xe1, 0x0f, 0x3f, 0x5f, 0x44, 0xca, 0xcd, + 0x17, 0x78, 0xc0, 0x27, 0x32, 0x0e, 0x51, 0xf0, 0x2e, 0x6e, 0xd9, 0x74, 0xf7, 0x22, 0xed, 0x69, + 0xfc, 0x5c, 0xff, 0xdc, 0xaa, 0x45, 0x2e, 0x1d, 0x86, 0x8e, 0xd5, 0xc2, 0xbd, 0x5c, 0x60, 0xbc, + 0xe2, 0xba, 0x83, 0xd9, 0x91, 0x6b, 0x2e, 0xa2, 0x08, 0xc5, 0x6d, 0xd6, 0x4f, 0x9f, 0xcb, 0x9e, + 0xfe, 0xb0, 0x50, 0x7c, 0x82, 0x7e, 0x1a, 0x0d, 0x0b, 0xfe, 0x0f, 0x5c, 0x99, 0x7f, 0xc3, 0x87, + 0x69, 0x02, 0xe6, 0x22, 0x08, 0x5e, 0xbd, 0x4f, 0x21, 0x8c, 0x25, 0x33, 0x6d, 0x01, 0x8c, 0xef, + 0x66, 0x7a, 0xf8, 0x23, 0x7e, 0x69, 0xca, 0x0a, 0x36, 0x52, 0x59, 0xbc, 0x2b, 0x56, 0x00, 0xbd, + 0xae, 0xe6, 0x26, 0xa3, 0x77, 0x38, 0xad, 0x9c, 0xed, 0x0d, 0x73, 0x1d, 0xfa, 0x46, 0x02, 0xdc, + 0xeb, 0x5b, 0x5e, 0x4b, 0xb0, 0x59, 0x1b, 0x09, 0x0c, 0x5d, 0x3c, 0x46, 0xe3, 0x05, 0x06, 0xc5, + 0x5d, 0x1d, 0x41, 0xd0, 0x3e, 0x2e, 0x40, 0x97, 0x5f, 0xbb, 0xe5, 0xbe, 0x8c, 0xcd, 0xd4, 0x30, + 0x96, 0x64, 0x79, 0xaf, 0x91, 0xb6, 0x3c, 0x2d, 0x64, 0xfe, 0xd4, 0xf0, 0x1e, 0x27, 0x67, 0x6d, + 0x24, 0x26, 0x0d, 0x16, 0xf3, 0xe2, 0x28, 0x6e, 0xa0, 0xb7, 0xa0, 0xf0, 0xdd, 0xe2, 0xab, 0xa3, + 0x5b, 0x12, 0x5e, 0xea, 0x52, 0x77, 0x62, 0xfd, 0x35, 0x82, 0xc8, 0x0c, 0xaf, 0xd3, 0xd1, 0xf2, + 0xfc, 0xee, 0x4e, 0x96, 0x3a, 0xbb, 0xd8, 0x76, 0xfe, 0x22, 0x7a, 0x71, 0x8b, 0xc1, 0x42, 0x9c, + 0xd6, 0x99, 0xfa, 0x75, 0x3f, 0xb8, 0x0c, 0x23, 0x43, 0x35, 0x73, 0xe4, 0x44, 0xb1, 0xe6, 0x2b, + 0x4c, 0xf4, 0x8c, 0x6f, 0x9a, 0xbe, 0x04, 0x22, 0x89, 0xd7, 0xd1, 0x21, 0x10, 0x9c, 0x1d, 0x7a, + 0xef, 0x4f, 0x12, 0xd5, 0x2c, 0xf6, 0xc4, 0x2e, 0x64, 0xe2, 0xc2, 0xa1, 0xdf, 0x23, 0xf6, 0xee, + 0x88, 0xa5, 0xde, 0xbd, 0x62, 0xad, 0xca, 0xfa, 0xc8, 0x4e, 0xae, 0xdd, 0xf0, 0x5a, 0xcd, 0x09, + 0x1b, 0x90, 0x2c, 0x77, 0xc1, 0xe2, 0x3d, 0xff, 0xab, 0xb5, 0xe6, 0x56, 0xd8, 0xe5, 0x5b, 0x76, + 0x79, 0xe1, 0xa2, 0x91, 0xa5, 0xd1, 0xa0, 0x13, 0x41, 0xa3, 0x7d, 0x69, 0x88, 0xc2, 0x54, 0x64, + 0x8e, 0x76, 0xe6, 0xc7, 0xe8, 0xd2, 0xeb, 0xb7, 0xd1, 0xed, 0x14, 0x61, 0xd0, 0x23, 0x83, 0x6d, + 0x4d, 0x04, 0x01, 0x11, 0x69, 0x76, 0x60, 0x47, 0xbd, 0xa1, 0x97, 0x1c, 0x39, 0x3f, 0xe2, 0x09, + 0x3f, 0xc5, 0x5f, 0xb5, 0xd0, 0x91, 0x90, 0x81, 0xe4, 0x1c, 0xdb, 0x26, 0x0d, 0x82, 0xa3, 0x07, + 0xd6, 0x23, 0xe1, 0x45, 0x64, 0x65, 0xa7, 0x96, 0x05, 0x6b, 0x2c, 0x4f, 0x61, 0x42, 0x5d, 0x40, + 0xa7, 0xb7, 0x79, 0x2d, 0x2e, 0xfc, 0x5d, 0xec, 0x30, 0x9f, 0x56, 0x5e, 0x92, 0xa1, 0x28, 0x41, + 0x2f, 0x90, 0x2d, 0x30, 0x1c, 0xe9, 0x11, 0xd7, 0x48, 0x74, 0x9b, 0x7f, 0x5b, 0x73, 0x50, 0x04, + 0x66, 0xd9, 0xc3, 0x94, 0x93, 0x0c, 0x4e, 0x26, 0xf1, 0x7f, 0xfe, 0x84, 0xbb, 0xee, 0xc6, 0x7e, + 0x9b, 0x78, 0xf9, 0x1d, 0x20, 0xd0, 0x47, 0x0f, 0x40, 0x43, 0x6d, 0xfe, 0x21, 0x40, 0xa6, 0x17, + 0x85, 0x16, 0x7a, 0xa1, 0x31, 0xff, 0x93, 0x61, 0xfe, 0x97, 0xe7, 0x38, 0xba, 0x31, 0x2d, 0xe1, + 0xbf, 0x5a, 0xeb, 0x42, 0xe7, 0x3c, 0xef, 0xd1, 0x97, 0xa4, 0x3f, 0x1f, 0x22, 0x1f, 0x26, 0x29, + 0x6a, 0x27, 0x33, 0x23, 0x94, 0x15, 0xf0, 0x47, 0xbf, 0xd2, 0x19, 0xb3, 0xe1, 0xee, 0x4c, 0x45, + 0xff, 0x9e, 0x20, 0xca, 0xa2, 0x4c, 0xbc, 0x17, 0x28, 0x95, 0x74, 0xfe, 0x65, 0x66, 0x26, 0xcb, + 0x33, 0x99, 0x39, 0xbe, 0x2e, 0x7e, 0xc1, 0x5b, 0xd0, 0x92, 0xac, 0x8f, 0xbb, 0x22, 0x30, 0xc3, + 0xef, 0x22, 0x1f, 0x24, 0x7c, 0xc7, 0x84, 0x5d, 0x4c, 0x30, 0x76, 0xd3, 0xd9, 0xdc, 0xf6, 0xf6, + 0xa7, 0xc6, 0xd7, 0x68, 0x78, 0xe8, 0x00, 0x38, 0x30, 0xd4, 0xd5, 0xfb, 0xb1, 0xb9, 0x9d, 0x1d, + 0x8d, 0xf3, 0x28, 0x72, 0xa7, 0xe1, 0x60, 0xdf, 0xb2, 0x3b, 0x86, 0x1f, 0xdb, 0x24, 0xe1, 0x22, + 0x7c, 0x71, 0xbc, 0x2e, 0x80, 0x84, 0xd9, 0x04, 0xa3, 0x87, 0x07, 0x45, 0x3f, 0x8b, 0x4c, 0xdc, + 0x52, 0xf3, 0x48, 0x3f, 0xc4, 0x28, 0xd8, 0xad, 0x62, 0x61, 0xd5, 0x03, 0xdf, 0x54, 0xef, 0xa3, + 0xf2, 0x88, 0x60, 0xec, 0x6f, 0x3d, 0xb8, 0xd9, 0x18, 0x8f, 0xdd, 0xa6, 0xb8, 0xe8, 0x6d, 0xc7, + 0x16, 0xa4, 0xed, 0x24, 0x63, 0x7a, 0xac, 0xff, 0xc2, 0xf1, 0x98, 0x22, 0xfb, 0x43, 0xac, 0xc5, + 0xb2, 0x59, 0x3b, 0x80, 0x33, 0x3e, 0x06, 0x97, 0xde, 0xfa, 0x89, 0xd7, 0x2b, 0x87, 0x29, 0x20, + 0xb8, 0xeb, 0x90, 0x08, 0xe9, 0x74, 0xda, 0x65, 0xca, 0x93, 0xef, 0x5d, 0xf1, 0x35, 0x06, 0x52, + 0x67, 0xbc, 0x01, 0xe3, 0x66, 0xfc, 0x93, 0x0b, 0x50, 0xce, 0xbf, 0xf0, 0x7b, 0x7b, 0x9b, 0x3d, + 0x99, 0xfc, 0xf2, 0x7c, 0x75, 0x02, 0x0f, 0xfb, 0x24, 0x4c, 0xde, 0xcb, 0x81, 0xd5, 0xc8, 0xff, + 0xa0, 0x8b, 0xf2, 0xcf, 0x9f, 0xa8, 0xa4, 0x03, 0x29, 0x0c, 0xa9, 0xb5, 0x39, 0x6a, 0xc4, 0xa1, + 0xde, 0x40, 0x9a, 0x40, 0x6b, 0xf1, 0xb5, 0xb5, 0xe5, 0x31, 0x6f, 0x11, 0xa8, 0x72, 0x2b, 0xc3, + 0x58, 0x78, 0x77, 0xbb, 0x79, 0x3a, 0xda, 0xea, 0xcd, 0x6a, 0xa0, 0xa5, 0x41, 0x09, 0x8e, 0xde, + 0x01, 0x47, 0x2f, 0x83, 0x83, 0x39, 0x5f, 0x2d, 0x35, 0x34, 0xf1, 0x84, 0x29, 0x3a, 0x69, 0x29, + 0x47, 0xdb, 0x5c, 0x30, 0x7c, 0xad, 0xdb, 0xfb, 0x25, 0x29, 0x48, 0x10, 0xde, 0x9c, 0x80, 0xab, + 0xef, 0x83, 0x72, 0x23, 0xeb, 0xa3, 0x62, 0xcb, 0x1b, 0xe2, 0xfc, 0x72, 0x5b, 0xdf, 0x33, 0xde, + 0x1b, 0x1f, 0x12, 0xdf, 0x33, 0xb8, 0xc7, 0x8a, 0xdf, 0x03, 0x77, 0xa8, 0xef, 0x26, 0xfe, 0x1f, + 0x3d, 0xed, 0xd5, 0xb1, 0xc9, 0xc3, 0x00, 0x00 }; diff --git a/wled00/html_ui.h b/wled00/html_ui.h index c614eb2b..22f99f24 100644 --- a/wled00/html_ui.h +++ b/wled00/html_ui.h @@ -7,1843 +7,1850 @@ */ // Autogenerated from wled00/data/index.htm, do not edit!! -const uint16_t PAGE_index_L = 29391; +const uint16_t PAGE_index_L = 29494; const uint8_t PAGE_index[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdc, 0xbd, 0xd9, 0x7a, 0xe2, 0xca, - 0xd2, 0x28, 0x78, 0xef, 0xa7, 0x50, 0xa9, 0xd6, 0xae, 0x42, 0x0b, 0x19, 0xc4, 0x68, 0xc0, 0x85, - 0xfd, 0xe3, 0x79, 0x9e, 0xe7, 0x3a, 0xf5, 0xfd, 0x25, 0x40, 0x80, 0x6c, 0x21, 0xc9, 0x92, 0x98, - 0x4c, 0xf1, 0x3f, 0xc2, 0xb9, 0xef, 0xab, 0xbe, 0xed, 0xaf, 0xfb, 0xad, 0xfa, 0x09, 0xfa, 0x11, - 0x3a, 0x22, 0x33, 0x25, 0xa5, 0x84, 0xc0, 0xae, 0xb5, 0xd6, 0x3e, 0xdd, 0xe7, 0xac, 0xbd, 0xcb, - 0x48, 0xa9, 0x1c, 0x23, 0x22, 0x23, 0x23, 0x22, 0x23, 0x23, 0xbf, 0x7d, 0xda, 0x39, 0xdf, 0xbe, - 0x79, 0xbc, 0xd8, 0x15, 0x7a, 0x5e, 0xdf, 0xd8, 0x10, 0xbe, 0xe1, 0x8f, 0x60, 0xa8, 0x66, 0xb7, - 0x2e, 0x6a, 0xa6, 0x88, 0x09, 0x9a, 0xda, 0x86, 0x9f, 0xbe, 0xe6, 0xa9, 0x82, 0xa9, 0xf6, 0xb5, - 0xba, 0x38, 0xd4, 0xb5, 0x91, 0x6d, 0x39, 0x9e, 0x28, 0xac, 0xb4, 0x2c, 0xd3, 0xd3, 0x4c, 0xaf, - 0x2e, 0x8e, 0xf4, 0xb6, 0xd7, 0xab, 0xb7, 0xb5, 0xa1, 0xde, 0xd2, 0x56, 0xc9, 0x8b, 0xac, 0x9b, - 0xba, 0xa7, 0xab, 0xc6, 0xaa, 0xdb, 0x52, 0x0d, 0xad, 0x9e, 0x93, 0xfb, 0x90, 0xd0, 0x1f, 0xf4, - 0xfd, 0x77, 0xd1, 0xaf, 0x74, 0xa5, 0xd5, 0x53, 0x1d, 0x57, 0x83, 0x4a, 0x06, 0x5e, 0x67, 0xb5, - 0x22, 0x46, 0x1b, 0xf3, 0x7a, 0x5a, 0x5f, 0x5b, 0x6d, 0x59, 0x86, 0xe5, 0x88, 0x42, 0xd0, 0xdc, - 0xe7, 0x3c, 0xf9, 0x8f, 0xab, 0xc3, 0xff, 0x32, 0xd1, 0x5c, 0x91, 0x15, 0x55, 0x6d, 0xdb, 0xd0, - 0x56, 0xfb, 0x56, 0x53, 0x87, 0x9f, 0x91, 0xd6, 0x5c, 0x85, 0x84, 0xd5, 0x96, 0x6a, 0xab, 0x4d, - 0x43, 0xc3, 0x92, 0x86, 0x6e, 0xbe, 0x08, 0x8e, 0x66, 0xd4, 0x45, 0xb7, 0x07, 0xc3, 0x69, 0x0d, - 0x3c, 0x41, 0x87, 0x7a, 0x60, 0x58, 0x3d, 0x47, 0xeb, 0xd4, 0xc5, 0xb6, 0xea, 0xa9, 0x35, 0xbd, - 0xaf, 0x76, 0xb5, 0xec, 0x78, 0x15, 0xbf, 0xac, 0x37, 0x55, 0x57, 0x2b, 0x17, 0xe5, 0x46, 0xa3, - 0xb1, 0xd5, 0x68, 0xec, 0x36, 0x76, 0xe1, 0x2f, 0xfe, 0xee, 0x37, 0xb6, 0xf7, 0xf1, 0x69, 0xaf, - 0x0b, 0x7f, 0x0e, 0x8d, 0xcb, 0x9b, 0x97, 0xd6, 0xd9, 0x76, 0xcf, 0x3a, 0xc6, 0xb4, 0x9d, 0x5b, - 0xe3, 0xf0, 0x6a, 0xef, 0x10, 0x1f, 0x2f, 0x69, 0xee, 0x2e, 0xc9, 0x7b, 0x90, 0xbd, 0xc8, 0x3e, - 0x62, 0xca, 0x6e, 0xee, 0xe8, 0x6a, 0x77, 0xef, 0xf6, 0xfc, 0x30, 0xf7, 0x0c, 0x49, 0xd9, 0x8b, - 0xd1, 0xf9, 0xb8, 0x7b, 0xb6, 0xaf, 0x35, 0x6e, 0x4f, 0xc7, 0xbb, 0xd5, 0xfd, 0x72, 0xeb, 0x72, - 0xfb, 0x78, 0xe7, 0xbe, 0xd1, 0xb3, 0x1b, 0x3b, 0x4f, 0xf9, 0x4e, 0xe5, 0xe2, 0xf4, 0x79, 0xeb, - 0xba, 0x70, 0x79, 0xaf, 0x54, 0x2e, 0x8f, 0xf3, 0xca, 0xb1, 0xfa, 0xb4, 0x9d, 0xef, 0x76, 0xb6, - 0xab, 0xbd, 0x6d, 0xf3, 0xd5, 0x1a, 0x58, 0x67, 0xdd, 0xc6, 0x55, 0xf7, 0x71, 0xed, 0xed, 0x74, - 0xdc, 0x98, 0x9c, 0x19, 0xb7, 0xed, 0xcb, 0x03, 0xe3, 0x41, 0x6f, 0x18, 0xe7, 0xf9, 0xd3, 0x9d, - 0xc6, 0x4e, 0xb9, 0xb0, 0x7b, 0xf7, 0x7a, 0x76, 0xd0, 0xd0, 0x94, 0x06, 0xe9, 0x88, 0xb1, 0x77, - 0xf3, 0x72, 0x3d, 0xb8, 0xec, 0x6f, 0x6f, 0x8b, 0x1b, 0x2b, 0xc2, 0x37, 0x4f, 0xf7, 0x0c, 0x6d, - 0xe3, 0xfe, 0x64, 0x77, 0xe7, 0x5b, 0x96, 0x3e, 0x0b, 0xdf, 0xdc, 0x96, 0xa3, 0xdb, 0xde, 0xc6, - 0x4a, 0x67, 0x60, 0xb6, 0x3c, 0xdd, 0x32, 0x85, 0x8e, 0xa6, 0xb5, 0x9b, 0x6a, 0xeb, 0x25, 0x25, - 0x4d, 0x67, 0x43, 0xd5, 0x11, 0x00, 0xe5, 0x56, 0x6b, 0xd0, 0x07, 0xc8, 0x67, 0xba, 0x9a, 0xb7, - 0x6b, 0x68, 0xf8, 0xe8, 0x6e, 0x4d, 0x6e, 0xd4, 0xee, 0x19, 0xe0, 0x20, 0x25, 0x22, 0xf5, 0x88, - 0xd2, 0x77, 0xe5, 0x87, 0x6c, 0x84, 0x59, 0x5b, 0x8e, 0xa6, 0x7a, 0x1a, 0xcb, 0x9d, 0x12, 0x69, - 0x2b, 0xa2, 0xb4, 0x6e, 0x64, 0xbc, 0x89, 0xcd, 0x10, 0xa7, 0xb7, 0x54, 0x6c, 0x31, 0xfb, 0xac, - 0x0e, 0x55, 0x96, 0x41, 0x36, 0x32, 0xae, 0xd3, 0xaa, 0x8b, 0xba, 0x63, 0x65, 0x9e, 0x5d, 0x7c, - 0x55, 0xdb, 0xed, 0xdd, 0x21, 0xd4, 0x71, 0xa2, 0xbb, 0x80, 0x7d, 0xcd, 0x49, 0x89, 0x86, 0x05, - 0xed, 0xc9, 0x5a, 0x7d, 0x63, 0xda, 0xb2, 0xf5, 0xd6, 0x4b, 0xdd, 0xd4, 0x46, 0x02, 0xe6, 0xdf, - 0x46, 0x02, 0xba, 0x80, 0x14, 0xcc, 0xf4, 0xd9, 0x26, 0x0f, 0xa2, 0x3c, 0x25, 0x94, 0x5a, 0xcb, - 0x97, 0x15, 0x79, 0xd4, 0xd3, 0x34, 0xe3, 0x44, 0xef, 0xf6, 0x3c, 0x53, 0x73, 0xdd, 0xda, 0xa7, - 0x1c, 0x4d, 0x69, 0x98, 0x5d, 0x43, 0xab, 0xe5, 0xd7, 0x58, 0x86, 0x1d, 0xdd, 0xd1, 0x08, 0x24, - 0x6a, 0x62, 0xcb, 0xb0, 0x5a, 0x2f, 0x23, 0xdd, 0xd5, 0xa0, 0x23, 0xea, 0xc4, 0x1a, 0x78, 0xb5, - 0xef, 0xd3, 0x96, 0xd5, 0xb7, 0x2d, 0x13, 0x3a, 0x54, 0xc3, 0x36, 0x07, 0x7a, 0xe6, 0x1e, 0x0b, - 0xc9, 0x96, 0x8d, 0x45, 0xdc, 0xda, 0x74, 0x36, 0xfb, 0x31, 0x93, 0x64, 0xd2, 0xb3, 0x8c, 0x65, - 0xa6, 0x44, 0xdd, 0xb4, 0xa1, 0x9c, 0x66, 0x42, 0x97, 0x53, 0x12, 0xf4, 0x19, 0x66, 0x01, 0xe9, - 0x68, 0x2a, 0x27, 0x45, 0xf2, 0x11, 0xf2, 0xaf, 0xc1, 0x3c, 0x31, 0xbb, 0x1a, 0xcb, 0x3a, 0xb0, - 0x81, 0x3c, 0xb5, 0x8b, 0x6b, 0x43, 0x6f, 0x6b, 0x8e, 0x9b, 0x82, 0xfc, 0xeb, 0x88, 0x10, 0xef, - 0x7d, 0x28, 0x7b, 0xef, 0x40, 0xd9, 0xa3, 0x50, 0x76, 0xb0, 0x31, 0xcf, 0x1a, 0xb4, 0x7a, 0x04, - 0xd8, 0xde, 0x52, 0x60, 0x93, 0xcc, 0x6e, 0xfd, 0x0a, 0x7f, 0x6e, 0x48, 0x19, 0x18, 0xca, 0xc0, - 0x4e, 0x7d, 0x25, 0x23, 0xfc, 0x4e, 0x1b, 0x24, 0x99, 0xc4, 0x1f, 0x5f, 0xe5, 0x29, 0x74, 0xd6, - 0xd0, 0x3c, 0xe8, 0x2c, 0xe4, 0x3a, 0x84, 0x89, 0xeb, 0x0c, 0x55, 0x23, 0x45, 0x86, 0x25, 0x22, - 0x08, 0xe1, 0x9b, 0x26, 0xd6, 0xeb, 0xe1, 0x50, 0x60, 0x24, 0xed, 0xc9, 0xb5, 0x07, 0xc3, 0xf9, - 0xf2, 0x25, 0xd5, 0x32, 0x34, 0xd5, 0x09, 0x4a, 0x79, 0x92, 0x6c, 0x99, 0x27, 0xd0, 0x91, 0x94, - 0x24, 0xcd, 0xe4, 0x9c, 0xa2, 0x20, 0xe4, 0xa0, 0xda, 0x1b, 0xbd, 0xaf, 0x01, 0x52, 0x68, 0xad, - 0xbd, 0x0c, 0x0c, 0x16, 0xc0, 0xbc, 0xdd, 0xd3, 0x8d, 0x36, 0x14, 0x99, 0xc9, 0xa5, 0x0f, 0xe4, - 0x33, 0x68, 0xbe, 0x95, 0x6f, 0x59, 0x36, 0x0f, 0x60, 0x42, 0x78, 0x13, 0x98, 0x18, 0x2b, 0xff, - 0xd1, 0x01, 0x76, 0xb3, 0xda, 0x51, 0x5b, 0xda, 0x94, 0x3d, 0xf5, 0x75, 0x63, 0x52, 0xbb, 0x3f, - 0x04, 0x26, 0xe1, 0xae, 0x03, 0xf8, 0x6a, 0x03, 0xc7, 0x48, 0x11, 0xfe, 0x81, 0xdf, 0xb3, 0x23, - 0xab, 0xd3, 0xc9, 0xaf, 0xfb, 0x7c, 0x8e, 0xb0, 0x39, 0x9f, 0x97, 0xb4, 0x95, 0xea, 0xfe, 0x69, - 0xb7, 0x41, 0x38, 0x49, 0xa3, 0x61, 0xde, 0x36, 0x1a, 0x2e, 0x9d, 0x9e, 0x39, 0xfc, 0xdb, 0xdf, - 0x6b, 0x34, 0xf6, 0x9f, 0xfa, 0xdd, 0xc6, 0xc2, 0xff, 0xb6, 0xfa, 0x8d, 0x46, 0xf7, 0x61, 0x74, - 0xb5, 0xdd, 0x78, 0x6d, 0x3d, 0x1e, 0x3d, 0x1d, 0x36, 0x6e, 0x1e, 0xb7, 0x8f, 0x1a, 0x67, 0xa3, - 0xed, 0x37, 0xab, 0xb1, 0xb5, 0x0d, 0x2c, 0x69, 0xf4, 0x78, 0x70, 0xb8, 0xe5, 0xae, 0xed, 0x54, - 0xf4, 0xf3, 0xd1, 0x5b, 0xb7, 0x5f, 0x38, 0x7d, 0x38, 0x35, 0xdf, 0x9e, 0xb6, 0x5f, 0x3c, 0xf3, - 0xb9, 0xd5, 0x3c, 0x4b, 0x5f, 0x1a, 0x47, 0x27, 0xea, 0x51, 0x61, 0x60, 0xdc, 0x9e, 0xd8, 0x86, - 0x7d, 0x5f, 0xbe, 0x7d, 0xbd, 0xd7, 0x2d, 0xed, 0xba, 0x9a, 0x3b, 0x9a, 0x68, 0xca, 0xf3, 0xad, - 0x71, 0x34, 0x7a, 0x72, 0x4a, 0xe6, 0x4d, 0x7b, 0xb7, 0x70, 0x62, 0x7a, 0xed, 0x8b, 0x61, 0xa3, - 0x9b, 0xee, 0x78, 0xd9, 0x4e, 0xd3, 0x3d, 0x71, 0xf7, 0x8d, 0xb3, 0x93, 0x41, 0xcf, 0xe8, 0x5f, - 0x3e, 0x1f, 0xeb, 0x6b, 0x67, 0x17, 0x3b, 0xbb, 0x87, 0xdd, 0xd1, 0x4d, 0x1f, 0x78, 0x98, 0x5a, - 0xee, 0xb7, 0x8d, 0xf4, 0xf5, 0xc1, 0xed, 0x56, 0x6f, 0xf7, 0xb0, 0x7d, 0xb0, 0x37, 0x56, 0x5f, - 0xd6, 0xdc, 0xe2, 0x6e, 0x76, 0xf2, 0xd6, 0x3b, 0xba, 0x7e, 0xde, 0x5e, 0xdb, 0xba, 0xbc, 0x3c, - 0xe9, 0xec, 0x8c, 0x2c, 0x7b, 0x2f, 0xab, 0x97, 0xd5, 0xd7, 0xeb, 0x5d, 0x63, 0x77, 0x6f, 0xe7, - 0x61, 0x5c, 0x79, 0xba, 0xbb, 0x7f, 0x9e, 0x14, 0x9c, 0x49, 0xbf, 0x78, 0x56, 0xde, 0x33, 0x9e, - 0x2e, 0x8b, 0xbd, 0x41, 0xda, 0x7c, 0x70, 0xf7, 0x0f, 0x77, 0x4e, 0x2f, 0xf7, 0x0a, 0xdd, 0xc6, - 0x58, 0xcd, 0x15, 0x1b, 0xdd, 0x86, 0xe3, 0xdd, 0x9d, 0xf6, 0x3a, 0x2f, 0xdd, 0xe7, 0xce, 0x6e, - 0xa3, 0xa9, 0x6f, 0xf7, 0x46, 0x83, 0xeb, 0xc3, 0xd1, 0xee, 0xed, 0x76, 0x7f, 0xd0, 0xbe, 0xe8, - 0xe9, 0x97, 0xed, 0x9b, 0xb2, 0x33, 0x3c, 0x7c, 0x3e, 0xb9, 0xbe, 0x7a, 0xda, 0x1d, 0xed, 0xf4, - 0xf6, 0xaa, 0x5b, 0x87, 0xae, 0x65, 0x1d, 0x96, 0x0a, 0x37, 0x87, 0x57, 0x87, 0xd6, 0xe1, 0xed, - 0x4e, 0xe5, 0x65, 0x72, 0xf6, 0x74, 0xb8, 0x76, 0xfb, 0xdc, 0x98, 0x9c, 0x3a, 0x57, 0x59, 0xf5, - 0x34, 0xbb, 0x33, 0x52, 0xcf, 0x6d, 0xeb, 0x4d, 0xed, 0x55, 0x4f, 0xf6, 0xb7, 0xdd, 0xc7, 0xfc, - 0xdb, 0x59, 0xfe, 0xf1, 0xfc, 0xcd, 0xcd, 0x9f, 0x14, 0xc6, 0xaf, 0xda, 0x99, 0x5d, 0x7c, 0x7b, - 0x78, 0x7e, 0xad, 0x34, 0x1f, 0x6e, 0xb2, 0xbd, 0xd3, 0xad, 0x93, 0xe7, 0x6c, 0xa9, 0xf0, 0xb8, - 0xd3, 0x38, 0xbc, 0x4e, 0xaf, 0x0d, 0xca, 0xe5, 0x8a, 0x59, 0x38, 0x48, 0x1f, 0x5c, 0x5d, 0xb4, - 0x9f, 0xda, 0xb9, 0x41, 0xe1, 0xe6, 0xad, 0x7d, 0xf5, 0xd4, 0xbe, 0x3b, 0xbd, 0xe9, 0x1c, 0x1a, - 0xa5, 0x83, 0xce, 0x71, 0xb7, 0x9d, 0x6b, 0xae, 0x5d, 0x0f, 0x5f, 0xdb, 0xd5, 0xfb, 0xea, 0xc0, - 0x76, 0xda, 0x17, 0x95, 0xcb, 0x9b, 0xf3, 0xbe, 0xa6, 0xbe, 0x95, 0x6e, 0x2e, 0xce, 0xaf, 0x8e, - 0x8c, 0x9d, 0x9d, 0xe7, 0x83, 0xbb, 0xe7, 0x7d, 0xa5, 0x71, 0x76, 0x7a, 0xf9, 0xe8, 0xf6, 0xaf, - 0x9c, 0x63, 0xa3, 0x6f, 0x4f, 0x5e, 0xef, 0xd6, 0x5e, 0x06, 0xcd, 0xc3, 0xcb, 0xed, 0xfc, 0xfe, - 0xf5, 0xe1, 0xcb, 0xde, 0x75, 0xfa, 0xd4, 0xd4, 0xb6, 0x8f, 0x8a, 0x95, 0xa3, 0xa3, 0xbd, 0xbb, - 0xed, 0xde, 0x65, 0x67, 0x30, 0x3a, 0x3e, 0xb5, 0xf3, 0x93, 0xdb, 0xaa, 0xdd, 0x7f, 0xcd, 0xdd, - 0x1d, 0xdf, 0x5e, 0x95, 0x1d, 0xcd, 0x53, 0xf6, 0x6d, 0xe5, 0xfa, 0xf9, 0xee, 0xf1, 0xea, 0x6a, - 0x2f, 0xfd, 0xf0, 0xbc, 0x96, 0x3e, 0xd7, 0x6f, 0xaf, 0x5f, 0xb2, 0xfb, 0x87, 0x6f, 0x83, 0x5c, - 0x5f, 0x3f, 0x78, 0xba, 0x1f, 0xa7, 0xbb, 0x95, 0xc7, 0xdc, 0xd5, 0xed, 0x8b, 0x77, 0xd1, 0x7f, - 0x3d, 0xd4, 0xbd, 0xab, 0x9b, 0x87, 0xbb, 0xb3, 0xb7, 0xb7, 0x6d, 0x6f, 0xb0, 0x77, 0x71, 0xdc, - 0x3a, 0x50, 0xde, 0xae, 0xb6, 0xf6, 0xd3, 0x8f, 0xd5, 0xec, 0xb6, 0xd9, 0xdb, 0x52, 0xf3, 0xca, - 0xb0, 0x64, 0x1d, 0x74, 0xdc, 0xdd, 0xdb, 0xd3, 0xee, 0xc3, 0xe9, 0xc5, 0x6e, 0xe7, 0xbc, 0xf4, - 0xd4, 0x3a, 0x1a, 0x2b, 0x7b, 0x87, 0x17, 0xfa, 0xdd, 0x64, 0xd4, 0x7d, 0x6e, 0x96, 0x4f, 0x0f, - 0x07, 0x77, 0x69, 0xeb, 0xa9, 0x38, 0xcc, 0xbf, 0xbc, 0x94, 0xb3, 0x6f, 0xe6, 0xe1, 0x78, 0xe7, - 0xd8, 0xe9, 0x0e, 0x4e, 0xf3, 0xf9, 0x49, 0xba, 0x79, 0x5f, 0x19, 0xdd, 0xee, 0xbf, 0xea, 0x6b, - 0xea, 0x49, 0xa5, 0x73, 0x79, 0xf4, 0x36, 0x32, 0xb7, 0x9f, 0x2b, 0xde, 0xa1, 0x6d, 0xb7, 0x0f, - 0xab, 0xcd, 0xc7, 0x9d, 0xeb, 0xbb, 0xa3, 0xbb, 0xed, 0xcb, 0x43, 0x53, 0xb7, 0xef, 0x95, 0x83, - 0xa6, 0xd7, 0x32, 0x5a, 0x37, 0x6b, 0xc3, 0xed, 0xc9, 0x49, 0xff, 0x41, 0xbd, 0xbe, 0x73, 0x2e, - 0xaf, 0xcf, 0x4e, 0x27, 0x4d, 0xf5, 0xe8, 0x68, 0xab, 0x97, 0xbf, 0xd0, 0x1f, 0x9c, 0x87, 0x66, - 0xb7, 0x5d, 0x6e, 0x34, 0x5f, 0xb5, 0x56, 0x7b, 0xe7, 0xe6, 0xbc, 0xba, 0x7b, 0xb9, 0x7b, 0xa8, - 0xdd, 0x2b, 0x77, 0x17, 0xf7, 0x97, 0xad, 0xf6, 0x65, 0xc5, 0xf0, 0x2e, 0xce, 0x77, 0x07, 0xe9, - 0xb5, 0xf2, 0x6b, 0xfe, 0x70, 0x7c, 0x7b, 0x63, 0x1d, 0x69, 0xf7, 0x76, 0xe7, 0xf9, 0x52, 0x3f, - 0x38, 0x38, 0x28, 0xc1, 0x54, 0xda, 0x39, 0x79, 0xce, 0x35, 0x0f, 0xba, 0x97, 0xe3, 0x07, 0xf7, - 0x16, 0x06, 0x74, 0xfc, 0xd8, 0xec, 0xa6, 0xb7, 0xc7, 0xf0, 0xbf, 0x72, 0x55, 0x3b, 0x68, 0x9d, - 0x0f, 0x81, 0x41, 0x1f, 0xe5, 0x8c, 0x72, 0x53, 0x31, 0x77, 0xd6, 0x9e, 0xf7, 0xd3, 0xcd, 0xeb, - 0x46, 0xae, 0xbd, 0xfd, 0x74, 0x37, 0xee, 0x8f, 0x2a, 0x4f, 0x47, 0xd9, 0xc3, 0x47, 0x6f, 0x7c, - 0xe1, 0x35, 0x8f, 0xc6, 0x86, 0x7d, 0x99, 0x3d, 0xd9, 0x7f, 0xbe, 0x7e, 0x55, 0x94, 0x9b, 0x7e, - 0xfb, 0xec, 0xf0, 0x69, 0xec, 0xec, 0x6b, 0x46, 0x7a, 0x92, 0x76, 0x9e, 0x8e, 0x1c, 0x2b, 0x6d, - 0xde, 0xf6, 0x0a, 0x17, 0xce, 0xd9, 0xe1, 0xfe, 0xe8, 0xb8, 0x7c, 0xef, 0x3c, 0x9c, 0x9d, 0xde, - 0xe5, 0xc7, 0x37, 0xda, 0xd5, 0xfd, 0xc1, 0xf5, 0xf3, 0x75, 0xeb, 0xc5, 0x3b, 0x39, 0xea, 0x68, - 0x39, 0xa7, 0xb5, 0xe6, 0xda, 0x93, 0xe1, 0x4b, 0xa1, 0x59, 0xbe, 0x2b, 0xbe, 0x14, 0x2b, 0xd7, - 0x4e, 0xa1, 0xd1, 0xcf, 0x5d, 0x0c, 0xb3, 0x97, 0x7a, 0xa7, 0xe7, 0x1e, 0xe6, 0x07, 0xa7, 0xc3, - 0x56, 0xa5, 0x5c, 0x38, 0xd7, 0x2f, 0x2f, 0xaf, 0xce, 0x2c, 0xad, 0x6d, 0x5f, 0x74, 0x0e, 0xcc, - 0xeb, 0x51, 0x0b, 0x78, 0x61, 0x5a, 0xdd, 0xd9, 0xdd, 0x2d, 0xaf, 0xb5, 0x8e, 0xdf, 0x6e, 0xba, - 0x5b, 0xc6, 0x65, 0xf7, 0xd9, 0x7e, 0xee, 0xde, 0xec, 0x98, 0x47, 0xde, 0xbe, 0xf9, 0x90, 0x7f, - 0x6d, 0xf6, 0x1f, 0x8e, 0xca, 0x7b, 0xe7, 0x5b, 0x27, 0x4f, 0x6b, 0x23, 0xd7, 0x49, 0x1f, 0x3d, - 0xbd, 0x3d, 0x9a, 0xcd, 0xe7, 0x76, 0xf3, 0x65, 0x7b, 0xb0, 0xdb, 0xb9, 0x55, 0x0e, 0x86, 0xc6, - 0xe8, 0xb5, 0xe9, 0xdd, 0x76, 0x8f, 0xd6, 0xde, 0xae, 0x1e, 0xf6, 0xce, 0x8e, 0xdc, 0xe1, 0xf5, - 0xd8, 0x18, 0xbd, 0xe5, 0xef, 0x1f, 0x3d, 0xb5, 0x38, 0x7e, 0x76, 0xf4, 0x6c, 0xc7, 0x1d, 0x18, - 0xa6, 0xb9, 0x77, 0x77, 0x31, 0xb1, 0x4c, 0xfb, 0x42, 0xb9, 0x3a, 0x29, 0x59, 0x77, 0x67, 0xc7, - 0x2f, 0x2f, 0x9d, 0x5d, 0x63, 0xbf, 0xd8, 0x72, 0x6f, 0x76, 0xce, 0x1a, 0x6e, 0xf7, 0x6d, 0xbb, - 0x50, 0xd9, 0x5f, 0xeb, 0x5e, 0x1f, 0xdf, 0x75, 0xaf, 0x9f, 0xd6, 0xfa, 0xd9, 0xd6, 0xee, 0xf0, - 0xb8, 0x71, 0xd2, 0x1f, 0x1f, 0xbf, 0x65, 0xb3, 0x83, 0xb5, 0x5e, 0x59, 0xeb, 0x1e, 0xec, 0xad, - 0x9d, 0x3a, 0x07, 0xc5, 0xe7, 0x23, 0x3b, 0xfb, 0x34, 0x2e, 0xbe, 0x16, 0xf2, 0x6a, 0xe5, 0x66, - 0x2d, 0x37, 0x36, 0x0f, 0xee, 0xae, 0xb6, 0xf7, 0x8d, 0xce, 0xde, 0xd3, 0x99, 0xe7, 0xb5, 0xf3, - 0x7b, 0xad, 0x5b, 0x55, 0x9d, 0x94, 0xb5, 0xea, 0xc5, 0x4b, 0x6f, 0xd0, 0x9a, 0x5c, 0x29, 0xd6, - 0xc5, 0x20, 0xf7, 0x96, 0x7b, 0xcb, 0xee, 0x6c, 0xa5, 0x2b, 0x23, 0x7d, 0xdc, 0xd8, 0x6b, 0x9f, - 0xde, 0xe6, 0xba, 0x66, 0x7f, 0xab, 0x38, 0x6e, 0x8c, 0xca, 0x15, 0x7b, 0x74, 0xd0, 0xba, 0x7f, - 0x36, 0xf6, 0x9c, 0x2d, 0xf3, 0x61, 0x7c, 0xf2, 0xfc, 0x5c, 0x2e, 0xdc, 0xee, 0x77, 0x87, 0x67, - 0xfb, 0x77, 0xfb, 0x8d, 0xa3, 0xbd, 0xb7, 0xf1, 0xde, 0x28, 0x7d, 0x6f, 0xf5, 0xcd, 0xb5, 0xd3, - 0x86, 0xde, 0xbc, 0x6b, 0x0e, 0xca, 0x86, 0x76, 0x70, 0xb5, 0x55, 0x72, 0x5b, 0x39, 0xa5, 0x73, - 0xe2, 0x35, 0x9d, 0xb6, 0x93, 0x3d, 0x7a, 0xbd, 0x2b, 0x3f, 0x3a, 0x69, 0x6b, 0x38, 0xda, 0xf3, - 0xae, 0x0e, 0x76, 0xd7, 0x4e, 0x8b, 0x6f, 0xfb, 0x55, 0xe5, 0xf5, 0x6c, 0xab, 0xfc, 0x78, 0xb5, - 0x6b, 0x59, 0xa5, 0xdc, 0xcb, 0xde, 0x91, 0xda, 0x7c, 0x2d, 0x9c, 0x69, 0x07, 0x77, 0xc7, 0x6d, - 0xad, 0x93, 0xed, 0xb9, 0xa7, 0x7b, 0x7b, 0xd7, 0xb6, 0x57, 0xea, 0x57, 0x1e, 0xfa, 0x47, 0xaf, - 0x3b, 0x3b, 0x0d, 0xf3, 0x4a, 0x69, 0x15, 0x73, 0x95, 0xfe, 0xb8, 0x3f, 0x76, 0x2e, 0xdf, 0x2e, - 0x07, 0x93, 0x0b, 0xd3, 0xb5, 0xaf, 0x46, 0x9d, 0xc6, 0xe3, 0x8b, 0xed, 0xf5, 0xde, 0x1c, 0x00, - 0xcb, 0x4d, 0x6e, 0x7c, 0x76, 0xdd, 0x29, 0xde, 0x7b, 0x5b, 0xa7, 0xa7, 0xd5, 0x9d, 0xcb, 0x9b, - 0x5c, 0x75, 0x70, 0x92, 0xee, 0x36, 0x8b, 0x6b, 0xdd, 0xbd, 0x93, 0x8b, 0x42, 0xeb, 0x46, 0xa9, - 0xec, 0x55, 0x0e, 0x8b, 0xed, 0xa7, 0xf1, 0x91, 0x51, 0xcc, 0xed, 0xbb, 0xe3, 0xea, 0xfd, 0xc1, - 0xdb, 0xc9, 0xd6, 0xf9, 0xc1, 0xdb, 0xfd, 0xf3, 0xd5, 0x75, 0xf5, 0xec, 0x64, 0xfb, 0xfc, 0x76, - 0x6b, 0x7b, 0xef, 0x32, 0x3d, 0xd8, 0xef, 0x6d, 0x65, 0xef, 0xd6, 0x9e, 0xde, 0x6e, 0x47, 0xc7, - 0xbb, 0xd7, 0x37, 0xfd, 0x1d, 0x47, 0x3f, 0x4a, 0xdf, 0x22, 0xed, 0x67, 0x9b, 0x7b, 0x0f, 0x7b, - 0xa7, 0x27, 0x27, 0xee, 0x73, 0x57, 0x6f, 0x78, 0x45, 0xdb, 0x5e, 0x1b, 0x18, 0xf6, 0xb8, 0x99, - 0xf7, 0xde, 0x76, 0x2b, 0x87, 0x95, 0x71, 0x6f, 0x72, 0x70, 0xbe, 0xb3, 0x75, 0x5c, 0xb8, 0xde, - 0xef, 0x96, 0x2f, 0x2f, 0x72, 0xf9, 0x2d, 0xfd, 0xa2, 0xf0, 0x78, 0x3a, 0xca, 0x3b, 0x3b, 0x7b, - 0xde, 0xfd, 0xed, 0xce, 0xc3, 0x49, 0x5a, 0x73, 0xcd, 0x61, 0xe1, 0xa0, 0x7a, 0x39, 0x7e, 0xed, - 0xf4, 0x9b, 0x3b, 0x66, 0xf3, 0xf4, 0xe4, 0x79, 0xff, 0x76, 0xcf, 0x7e, 0x7d, 0x7d, 0x6a, 0x9a, - 0xf7, 0xd7, 0x5d, 0xc5, 0xe8, 0xdd, 0x0f, 0xab, 0xa3, 0xdb, 0x42, 0xe9, 0xf5, 0xe6, 0xe0, 0xf5, - 0xa2, 0xfa, 0xf6, 0x7a, 0xeb, 0x9c, 0xac, 0xbd, 0xbc, 0x1e, 0x3f, 0x57, 0x1e, 0x9f, 0x9f, 0xde, - 0xba, 0x4a, 0xce, 0x6e, 0x56, 0xd3, 0x93, 0xcb, 0x8a, 0xfb, 0xf0, 0x64, 0x3f, 0x8e, 0x8f, 0xf7, - 0xf5, 0xbd, 0xa3, 0x9b, 0x33, 0xf7, 0x70, 0x34, 0xb2, 0x27, 0x57, 0xc5, 0x62, 0x77, 0xf7, 0xdc, - 0xbc, 0xcb, 0xa6, 0x35, 0x20, 0xa4, 0xf6, 0xc1, 0x4e, 0x36, 0x6f, 0x5c, 0x16, 0x06, 0xd7, 0xa5, - 0x49, 0xee, 0xf5, 0xed, 0xf0, 0xcd, 0x7b, 0xb8, 0x3d, 0xbb, 0xd8, 0x2d, 0x5b, 0xed, 0xc7, 0x23, - 0xe5, 0xe2, 0xf5, 0x56, 0xbf, 0x3f, 0xf2, 0xba, 0xc7, 0xfb, 0xc7, 0xa7, 0x87, 0x27, 0x8f, 0x65, - 0xa5, 0x3d, 0xd6, 0x1e, 0x27, 0x66, 0xb3, 0x99, 0x76, 0xf7, 0x8e, 0x8f, 0x5f, 0xcf, 0x4c, 0xe5, - 0xfe, 0x2d, 0xef, 0x9c, 0x78, 0xa7, 0xcd, 0xad, 0xcb, 0xfb, 0x0b, 0xf3, 0xd1, 0xeb, 0x1f, 0xa9, - 0xc5, 0xfb, 0xd7, 0xbd, 0x2b, 0xab, 0x99, 0xad, 0xf6, 0xfb, 0x83, 0x49, 0xeb, 0xf2, 0x6e, 0xb8, - 0xa6, 0x77, 0xb6, 0xcf, 0x86, 0x0f, 0x8e, 0xd1, 0x7b, 0xeb, 0xee, 0x9c, 0xec, 0x0c, 0x41, 0x04, - 0x4f, 0x57, 0x0e, 0x4a, 0xe3, 0xe7, 0xe3, 0x6a, 0xb1, 0xd2, 0xda, 0xd1, 0xbc, 0xf4, 0x9e, 0xfa, - 0xd0, 0xb9, 0x4e, 0x9f, 0xbc, 0x58, 0xd9, 0x7b, 0x2f, 0x3d, 0xbc, 0x6e, 0xbd, 0xaa, 0xce, 0x6b, - 0xf9, 0xe5, 0xe9, 0xa6, 0xf9, 0x52, 0x3c, 0x53, 0x8f, 0x5f, 0xed, 0xf3, 0xe6, 0xcb, 0xee, 0xae, - 0xed, 0xaa, 0xad, 0xea, 0x49, 0xce, 0xb9, 0x3a, 0x7b, 0x38, 0xea, 0x5e, 0x34, 0x9d, 0xfb, 0xc9, - 0x4e, 0xfb, 0xf1, 0x59, 0x2b, 0x7b, 0x5b, 0x97, 0x8d, 0x37, 0xef, 0xa5, 0xf9, 0xb8, 0xad, 0x8c, - 0x76, 0xb4, 0xe2, 0xad, 0x79, 0xa6, 0xdb, 0x7d, 0xf3, 0x09, 0x64, 0x95, 0x41, 0x76, 0xf0, 0xdc, - 0x29, 0x1f, 0x77, 0xd6, 0x86, 0x5a, 0x2e, 0x97, 0x3f, 0x18, 0x74, 0xaa, 0xf9, 0xdd, 0x61, 0x76, - 0x4d, 0x33, 0xb7, 0xb2, 0x69, 0xf3, 0x62, 0xcd, 0x6e, 0x82, 0x90, 0x79, 0x79, 0xf4, 0xd4, 0xd4, - 0x95, 0xe7, 0xed, 0x6b, 0xdb, 0x3a, 0xab, 0xc2, 0xc0, 0x6f, 0x5e, 0x9e, 0xd7, 0x8e, 0x4e, 0x47, - 0x76, 0xf3, 0xbe, 0x6b, 0xd9, 0x8d, 0x66, 0xcf, 0x6b, 0x9e, 0xdf, 0xbf, 0x4c, 0xbc, 0xc6, 0x5e, - 0xe1, 0x38, 0x9d, 0x7d, 0xb5, 0x94, 0xeb, 0xc6, 0xf5, 0xd9, 0x7d, 0x7e, 0x3f, 0xdf, 0x3c, 0xe9, - 0x98, 0x6e, 0xcf, 0xde, 0x2a, 0xaa, 0xd5, 0x76, 0xff, 0x6d, 0x2d, 0x7b, 0x30, 0xce, 0x66, 0xdb, - 0xad, 0xc2, 0xf9, 0xc3, 0xd9, 0x53, 0x11, 0x68, 0x75, 0xf2, 0x70, 0x7b, 0x97, 0x6f, 0x3f, 0x5e, - 0xb9, 0x3b, 0xd5, 0xb5, 0xd7, 0xe3, 0x93, 0xb5, 0xea, 0xab, 0xfa, 0x36, 0x80, 0xa1, 0x1d, 0xe6, - 0x86, 0x17, 0x0f, 0x37, 0x6b, 0x85, 0xb5, 0x52, 0xf3, 0xfe, 0x7a, 0xdf, 0x6a, 0x6d, 0x59, 0x9d, - 0x9d, 0xbc, 0x76, 0x78, 0xf5, 0x76, 0xa4, 0xb4, 0x4e, 0xb7, 0x15, 0x90, 0xd5, 0x46, 0x97, 0x4a, - 0xb7, 0x33, 0x1c, 0x5c, 0xb7, 0x87, 0xed, 0x5c, 0xb1, 0x93, 0x1b, 0x00, 0xd5, 0x9f, 0x5c, 0xec, - 0x16, 0x8e, 0x8e, 0x0e, 0x4e, 0xca, 0x83, 0xed, 0x76, 0xd6, 0x2c, 0x99, 0x95, 0x76, 0xa1, 0x74, - 0x7b, 0x7e, 0x7c, 0x61, 0x96, 0xcd, 0x9e, 0x03, 0x0b, 0xa4, 0x73, 0x57, 0x50, 0xdb, 0x05, 0xf3, - 0x2d, 0xaf, 0xdf, 0xe8, 0x67, 0x27, 0xc5, 0x5c, 0x71, 0xd7, 0xd4, 0x3a, 0x27, 0xd9, 0xa3, 0xfd, - 0x13, 0xe3, 0xfe, 0xc9, 0x7b, 0xba, 0x57, 0x5f, 0xad, 0xdd, 0x5e, 0x71, 0x7c, 0xfd, 0x3c, 0x74, - 0xf7, 0x9b, 0xd9, 0x72, 0xbf, 0xea, 0xa8, 0x7b, 0x86, 0x7b, 0xd2, 0x2f, 0x0e, 0x0e, 0x5e, 0x2e, - 0xef, 0x8d, 0xe1, 0xda, 0x4d, 0x76, 0xa4, 0x3d, 0xbd, 0x3d, 0x1f, 0x1c, 0x68, 0x6b, 0xe3, 0x27, - 0xfd, 0xf6, 0xcd, 0x3e, 0x2a, 0xdd, 0x37, 0xee, 0xb7, 0x4e, 0x76, 0xce, 0x46, 0x57, 0xc7, 0xe3, - 0xd1, 0xd5, 0xa3, 0xb9, 0x67, 0x3d, 0xec, 0x8f, 0x5b, 0xea, 0xf1, 0xf8, 0xac, 0xbc, 0x73, 0x55, - 0xd9, 0x3a, 0x33, 0xf3, 0x56, 0xf5, 0xec, 0x15, 0x30, 0xec, 0x0d, 0x1d, 0xb5, 0x74, 0x63, 0x1e, - 0x3e, 0x3f, 0x9c, 0x6e, 0x19, 0xfd, 0xc3, 0xbd, 0xa7, 0xc2, 0xe4, 0xe2, 0xf1, 0xa1, 0x70, 0xea, - 0x55, 0x87, 0xa5, 0x7e, 0xff, 0x60, 0x30, 0x7a, 0x1c, 0x0e, 0xc7, 0x17, 0x43, 0xcd, 0x39, 0xa9, - 0x6a, 0xd7, 0x43, 0xf7, 0xed, 0xe1, 0xec, 0xf9, 0xf6, 0xc1, 0x79, 0x69, 0xbe, 0xb6, 0xf6, 0xcf, - 0xef, 0xee, 0xf3, 0xcd, 0xdd, 0xe6, 0xce, 0xfe, 0xb1, 0x5e, 0x38, 0x3d, 0xb9, 0xbb, 0xb9, 0x7f, - 0x7b, 0xbb, 0x3f, 0xd8, 0x2b, 0x15, 0xb7, 0x06, 0xd9, 0xbc, 0xd3, 0xc8, 0xbd, 0xbe, 0x58, 0x65, - 0xa3, 0xda, 0xd9, 0xeb, 0xde, 0x35, 0xb7, 0x06, 0x4e, 0xe7, 0x6e, 0xeb, 0x7e, 0x6f, 0xcf, 0xb8, - 0xbb, 0xcf, 0x0d, 0xba, 0xe3, 0xf3, 0x51, 0xcb, 0x4d, 0x57, 0xee, 0xb3, 0x59, 0xe0, 0x4f, 0x4f, - 0x47, 0xba, 0x76, 0x62, 0x54, 0xef, 0x1f, 0x1a, 0x15, 0x6d, 0xff, 0xa4, 0xd4, 0x72, 0xb6, 0xd6, - 0x3a, 0xbd, 0xf3, 0xd3, 0xc9, 0xd8, 0xa8, 0x34, 0x9f, 0x2f, 0xef, 0xf7, 0x9f, 0xb7, 0x72, 0xcd, - 0xfb, 0xac, 0xf5, 0x52, 0xbe, 0x6d, 0xbd, 0x6a, 0xa6, 0xeb, 0xac, 0xed, 0x55, 0x0e, 0xd6, 0x06, - 0x9e, 0xdb, 0x6f, 0xbf, 0x5a, 0x07, 0xfd, 0xb7, 0x6a, 0xd5, 0x19, 0x4e, 0xb4, 0xdd, 0xec, 0xc5, - 0x1b, 0x08, 0x08, 0xc5, 0xfe, 0xf0, 0xee, 0xe1, 0xe4, 0x79, 0xf2, 0x58, 0x19, 0x56, 0x9e, 0x4b, - 0x0f, 0xbd, 0x27, 0xed, 0xa0, 0xa0, 0x5e, 0x3c, 0xac, 0x95, 0xda, 0xb6, 0x7e, 0x5e, 0xd2, 0xce, - 0xb2, 0xe7, 0x6f, 0xa3, 0xd6, 0xfe, 0xda, 0xdb, 0x4b, 0xc7, 0xf0, 0xb2, 0x6e, 0xbb, 0xa4, 0xad, - 0x3d, 0xb6, 0x5e, 0x9b, 0xe7, 0xd6, 0xa8, 0x73, 0xd5, 0xcd, 0xe7, 0xaf, 0x4a, 0xa5, 0x4a, 0x49, - 0xf5, 0xf2, 0xc3, 0x87, 0x87, 0xca, 0xda, 0x7d, 0xee, 0x51, 0xe9, 0x5e, 0x2a, 0x6b, 0xd5, 0x62, - 0x75, 0x4d, 0x7b, 0xbc, 0xc9, 0xed, 0xbe, 0x4c, 0xac, 0xdd, 0xd7, 0xd3, 0x47, 0x90, 0x01, 0x0f, - 0xda, 0x95, 0xcb, 0xe1, 0xf1, 0xbe, 0x73, 0xb5, 0x5f, 0x6e, 0x1e, 0x3d, 0xde, 0xec, 0x6c, 0x6f, - 0x3f, 0x3d, 0xee, 0xef, 0xde, 0xb7, 0xfa, 0xa5, 0xfd, 0x1c, 0x80, 0x31, 0xaf, 0x97, 0x8a, 0x8f, - 0xd5, 0x7b, 0x4f, 0xdf, 0x1a, 0xbc, 0x18, 0x17, 0xa5, 0xb5, 0x47, 0x6f, 0xeb, 0xe9, 0xb4, 0x71, - 0x6f, 0x0c, 0xf2, 0x9d, 0xc7, 0xb7, 0x9d, 0xd3, 0xb5, 0xcb, 0x74, 0x69, 0x0f, 0x38, 0xf9, 0x75, - 0xe1, 0xfc, 0xad, 0xf4, 0x0c, 0x6b, 0xd8, 0xa1, 0xda, 0xf2, 0x9a, 0xf7, 0x17, 0xd6, 0x68, 0x70, - 0xd9, 0x3d, 0x9b, 0x1c, 0x18, 0x83, 0x63, 0x43, 0x1d, 0x55, 0x47, 0x66, 0xf3, 0xbc, 0xef, 0x0d, - 0xd4, 0x67, 0x2b, 0x7b, 0x77, 0x3d, 0xaa, 0x02, 0x47, 0xbe, 0xbe, 0x1a, 0x9d, 0xb6, 0x06, 0x40, - 0x96, 0x4f, 0xa3, 0xbd, 0x5e, 0xaf, 0xec, 0xae, 0xf5, 0xdc, 0x57, 0x47, 0xbf, 0xdf, 0x76, 0xbb, - 0x8d, 0xbc, 0x5b, 0x30, 0xf7, 0x40, 0x6c, 0x2e, 0x1e, 0xae, 0x9d, 0xa7, 0x55, 0x77, 0x3c, 0x1a, - 0x3f, 0x35, 0xbd, 0x93, 0x13, 0xa5, 0xb0, 0x5b, 0x6d, 0xf6, 0x5a, 0x57, 0xe5, 0xc7, 0xb7, 0x6a, - 0xff, 0xb0, 0xb9, 0xa7, 0xdc, 0x56, 0xcb, 0xc7, 0xca, 0x78, 0xbf, 0xb1, 0xd6, 0x1c, 0x57, 0x27, - 0x69, 0x23, 0x9f, 0xcd, 0xae, 0x15, 0x9e, 0xd3, 0x07, 0x79, 0x5d, 0xd9, 0xdd, 0x6f, 0xe7, 0xd7, - 0x06, 0x8d, 0xbb, 0xb3, 0xc3, 0xec, 0x7d, 0x6f, 0xfb, 0x71, 0x70, 0xff, 0x7a, 0xb8, 0xa3, 0x3e, - 0x8e, 0xd5, 0xb6, 0xab, 0x18, 0xad, 0xbb, 0xbd, 0xbb, 0x74, 0xfb, 0xdc, 0x38, 0xe8, 0x6f, 0x8d, - 0xb3, 0xaf, 0xe7, 0x6b, 0xad, 0x72, 0x76, 0xf0, 0xf4, 0xa0, 0x78, 0x57, 0xda, 0xad, 0x77, 0x74, - 0x39, 0x2c, 0x17, 0x27, 0x40, 0xbe, 0x8d, 0xe1, 0x43, 0x79, 0xbc, 0xa3, 0xbd, 0x35, 0x1e, 0xb2, - 0x95, 0xfb, 0x7e, 0x65, 0xbb, 0xdb, 0xcb, 0x56, 0x4b, 0xe7, 0xd5, 0xf3, 0xb1, 0x7b, 0xb6, 0xfd, - 0x68, 0xba, 0x0f, 0xf7, 0x97, 0xe9, 0x35, 0x7b, 0xfb, 0xad, 0x92, 0x3d, 0x3b, 0x7d, 0x2a, 0xad, - 0x3d, 0x35, 0x0e, 0xf7, 0x77, 0xdb, 0x37, 0xa3, 0xb4, 0x6a, 0x57, 0xee, 0xd2, 0x87, 0x85, 0xb3, - 0xdb, 0x3b, 0x0d, 0xe6, 0xd4, 0x48, 0x1f, 0xa6, 0x8d, 0x56, 0xeb, 0xf5, 0x39, 0xb7, 0x96, 0x7f, - 0x58, 0x7b, 0x1c, 0x95, 0xba, 0x47, 0x8d, 0xdb, 0xcb, 0xfd, 0xc7, 0x8b, 0xcb, 0xf2, 0xe5, 0x64, - 0x7c, 0xd5, 0xe9, 0x6a, 0xdb, 0xe9, 0xcb, 0x56, 0xe9, 0xde, 0x6c, 0x9c, 0x6e, 0x37, 0x0e, 0xf6, - 0x86, 0xe5, 0x9b, 0x23, 0x4f, 0xf3, 0x0a, 0xb6, 0x99, 0xad, 0x14, 0x9a, 0xc5, 0xc7, 0xed, 0xc6, - 0xe1, 0xd6, 0xb0, 0x50, 0xb2, 0x3a, 0xf6, 0xcd, 0xd5, 0xc4, 0x2b, 0x5d, 0x3c, 0x83, 0x4c, 0x7a, - 0x53, 0x39, 0x7e, 0x6c, 0xec, 0x5e, 0x1e, 0x57, 0xcc, 0xbd, 0xee, 0x56, 0x0b, 0xc4, 0xe2, 0xdb, - 0x11, 0xd0, 0xfe, 0xeb, 0xc1, 0xf5, 0xd6, 0xb1, 0xb5, 0xbb, 0xbf, 0x76, 0xfc, 0x74, 0x79, 0x72, - 0x6a, 0x3f, 0x5b, 0xa5, 0x41, 0x4f, 0xcd, 0x5e, 0x1c, 0xe6, 0x27, 0x83, 0xad, 0xfb, 0xf3, 0xed, - 0x9b, 0xeb, 0x9d, 0x27, 0xf5, 0xd9, 0x7e, 0xbd, 0x2c, 0x57, 0xd2, 0x4f, 0x6a, 0xae, 0xf2, 0xdc, - 0xdd, 0xef, 0x3e, 0x9e, 0xde, 0x54, 0xcc, 0xad, 0xde, 0xf3, 0x71, 0x6b, 0xcf, 0x39, 0xde, 0x7e, - 0xdc, 0x2b, 0x4f, 0x8e, 0xaf, 0x9f, 0xae, 0x4e, 0xf6, 0x4a, 0xde, 0x55, 0xe9, 0xf1, 0xb8, 0x77, - 0xfb, 0xf6, 0x76, 0x76, 0x7f, 0x5a, 0xca, 0xf7, 0xb7, 0x86, 0x83, 0x8b, 0x53, 0xfd, 0x64, 0x6d, - 0x7c, 0x31, 0x2e, 0xde, 0xaa, 0x57, 0xdd, 0x3d, 0xfd, 0xe8, 0xa9, 0x71, 0xb7, 0xe7, 0xb6, 0x9e, - 0xf2, 0x07, 0xb7, 0x87, 0xbd, 0xdb, 0x8b, 0xd6, 0xae, 0x7a, 0x50, 0xba, 0xbf, 0xdf, 0x19, 0x0e, - 0xfb, 0xc3, 0xf6, 0x45, 0xc7, 0x28, 0x1d, 0xab, 0xdb, 0xc3, 0xf3, 0x8a, 0x95, 0x4b, 0x77, 0xf6, - 0xb6, 0xb7, 0x9a, 0xe5, 0xde, 0x70, 0x70, 0xf2, 0x56, 0x31, 0x4e, 0xaf, 0xce, 0x47, 0x9d, 0xe7, - 0x8b, 0xb3, 0x8a, 0xae, 0x3a, 0x55, 0xe5, 0x6a, 0x7b, 0x5b, 0xbf, 0xda, 0x3e, 0x72, 0x0a, 0x83, - 0xee, 0xeb, 0x41, 0xa7, 0x7c, 0xf2, 0xda, 0xbd, 0x7d, 0x7c, 0x74, 0x4b, 0xbd, 0xb7, 0xe1, 0xa0, - 0xea, 0x9d, 0x1e, 0x9e, 0xdf, 0x3a, 0xd9, 0xb1, 0x3d, 0xbc, 0x72, 0xcf, 0xee, 0x86, 0xed, 0xa7, - 0xac, 0x9d, 0xee, 0x6f, 0x55, 0xcc, 0xb5, 0xbb, 0x3c, 0x70, 0x45, 0xe5, 0x26, 0xad, 0x5e, 0xf5, - 0x2e, 0xec, 0xb3, 0x9e, 0x7b, 0xb6, 0x77, 0xfe, 0x3a, 0xb6, 0x76, 0xf3, 0x03, 0xc5, 0x1d, 0xbc, - 0xde, 0xe8, 0x76, 0x77, 0x5c, 0xaa, 0x1c, 0x1e, 0x35, 0x88, 0x89, 0xa2, 0x2e, 0x09, 0x1d, 0xcb, - 0xe9, 0xab, 0x5e, 0xea, 0x2b, 0x2a, 0x50, 0x5f, 0xa5, 0x59, 0xcd, 0xb1, 0x2c, 0x6f, 0xba, 0xba, - 0xda, 0x5a, 0xcd, 0xd5, 0x3e, 0xe7, 0x72, 0xb9, 0x75, 0x7c, 0xec, 0xd4, 0x3e, 0x77, 0x3a, 0x1d, - 0xf2, 0x98, 0xaf, 0xa1, 0x61, 0x88, 0x3c, 0x16, 0x6a, 0x9f, 0x0b, 0x85, 0x02, 0x79, 0x2c, 0xd6, - 0x3e, 0x17, 0x8b, 0x45, 0xf2, 0x58, 0xaa, 0x7d, 0x2e, 0x95, 0x4a, 0xe4, 0xb1, 0x5c, 0xfb, 0x5c, - 0x2e, 0x97, 0xc9, 0x63, 0xa5, 0xf6, 0xb9, 0x52, 0xa9, 0x90, 0xc7, 0x66, 0xed, 0x73, 0xb3, 0xd9, - 0x24, 0x8f, 0xad, 0xda, 0xe7, 0x56, 0xab, 0x45, 0x1e, 0xb5, 0xda, 0x67, 0x4d, 0xd3, 0xc8, 0x63, - 0xbb, 0xf6, 0xb9, 0xdd, 0x6e, 0x93, 0x47, 0x07, 0x32, 0x14, 0x68, 0x6b, 0x5d, 0x68, 0xb8, 0x45, - 0xbb, 0x63, 0x40, 0x6b, 0x15, 0x95, 0x3c, 0x4e, 0x6a, 0x9f, 0xd5, 0xaa, 0x02, 0x8f, 0x1e, 0xd4, - 0xab, 0x64, 0x68, 0xbb, 0x56, 0xcd, 0xe9, 0x36, 0xd5, 0x54, 0xa1, 0x28, 0x0b, 0xfe, 0x3f, 0x25, - 0x53, 0x95, 0xc8, 0x37, 0xaf, 0x39, 0xff, 0x11, 0xb4, 0xfa, 0x14, 0xa9, 0x41, 0xf2, 0xf3, 0xa8, - 0x34, 0x53, 0x4e, 0xc9, 0xcb, 0x42, 0xf8, 0x67, 0x3e, 0x5f, 0x8f, 0xe6, 0x2b, 0xe5, 0x64, 0xc1, - 0xff, 0x17, 0xcd, 0xe4, 0xf5, 0x6a, 0x6b, 0x8a, 0x3d, 0xc6, 0x27, 0xdb, 0x7f, 0x82, 0x52, 0xe5, - 0x02, 0x4d, 0x6b, 0xda, 0xb5, 0x5c, 0xd1, 0x1e, 0x0b, 0xf4, 0x8f, 0xc2, 0x9e, 0x30, 0x0f, 0x7c, - 0xa9, 0xc2, 0xab, 0x22, 0xac, 0xe1, 0x5f, 0x52, 0xaa, 0x5d, 0x33, 0x2d, 0x13, 0x41, 0xe4, 0x76, - 0xed, 0x9a, 0xd8, 0x44, 0xe3, 0x88, 0x88, 0x1f, 0xfa, 0x5e, 0x0d, 0x4a, 0xce, 0xd0, 0xac, 0x38, - 0x25, 0xd6, 0x84, 0x55, 0x95, 0x1a, 0x50, 0xfa, 0x2a, 0xc8, 0xff, 0x03, 0x83, 0xd8, 0x1f, 0x66, - 0x4d, 0xab, 0x3d, 0x99, 0xf6, 0x55, 0xa7, 0xab, 0x9b, 0x35, 0x65, 0x1d, 0x2d, 0x4c, 0x5d, 0xc7, - 0x1a, 0x98, 0x6d, 0x6a, 0xf8, 0xab, 0xd1, 0x6e, 0x03, 0xd6, 0xa5, 0x75, 0x5e, 0xdf, 0x3e, 0xd0, - 0x8c, 0xa1, 0xe6, 0xe9, 0x2d, 0x55, 0xbe, 0xd3, 0x9c, 0xb6, 0x6a, 0xaa, 0xb2, 0xab, 0x9a, 0xee, - 0xaa, 0xab, 0x39, 0x7a, 0x87, 0x66, 0x74, 0xf5, 0x37, 0xad, 0x96, 0x83, 0x5e, 0xae, 0x47, 0x2b, - 0xea, 0x48, 0xeb, 0x9e, 0x36, 0xf6, 0x56, 0x55, 0x43, 0xef, 0x9a, 0xb5, 0x96, 0x86, 0xd6, 0x84, - 0x75, 0xb4, 0x11, 0xbe, 0xe8, 0xde, 0x2a, 0xed, 0x66, 0x4b, 0x35, 0x0c, 0xb4, 0xea, 0xd0, 0x61, - 0xb1, 0x4f, 0x03, 0xa8, 0x1b, 0xea, 0x37, 0xb4, 0x96, 0xff, 0xa1, 0x6f, 0xbd, 0x25, 0xa5, 0xba, - 0xf3, 0x89, 0xf3, 0xb9, 0xfc, 0xf6, 0x54, 0x7b, 0xb5, 0xa7, 0x77, 0x7b, 0x06, 0x5a, 0x9f, 0xd8, - 0x88, 0x3d, 0x07, 0x46, 0x62, 0xab, 0x0e, 0xf4, 0x6c, 0xdd, 0x6d, 0x39, 0x96, 0x61, 0x34, 0x55, - 0x87, 0x1a, 0x56, 0x6b, 0x65, 0x18, 0x4e, 0x98, 0x16, 0x1d, 0x98, 0xdb, 0x94, 0x04, 0xae, 0x2c, - 0x01, 0xac, 0x4c, 0x80, 0xdf, 0xd3, 0xb0, 0xfa, 0x5a, 0x4e, 0x51, 0xfe, 0xb5, 0x4e, 0xeb, 0x21, - 0x8f, 0xb6, 0xe5, 0xea, 0x04, 0x1f, 0x1d, 0x7d, 0xac, 0xb5, 0xd7, 0x2d, 0x58, 0x56, 0x69, 0xdd, - 0xab, 0x4d, 0xad, 0xa7, 0x0e, 0x75, 0xa8, 0x1b, 0x3b, 0x3b, 0xfb, 0xdc, 0xec, 0x72, 0x55, 0x0c, - 0x7b, 0x61, 0x1d, 0xc3, 0x51, 0xbc, 0x92, 0xb7, 0x55, 0xdd, 0x6c, 0x6b, 0xe3, 0xda, 0x6a, 0x2e, - 0x82, 0xcb, 0x20, 0x17, 0x83, 0x37, 0xf7, 0xc9, 0xd1, 0x6c, 0x4d, 0x45, 0xb0, 0xb0, 0x27, 0xfe, - 0x1b, 0xc1, 0x61, 0x0b, 0x3b, 0xb6, 0x6e, 0xd9, 0x6a, 0x4b, 0xf7, 0x26, 0x40, 0x22, 0x64, 0x8c, - 0xb4, 0x36, 0x96, 0x28, 0xe4, 0xdd, 0x99, 0xed, 0xd3, 0x10, 0xa1, 0x56, 0x45, 0xc8, 0xe3, 0xdf, - 0x99, 0x2a, 0xab, 0xb5, 0xa1, 0x0e, 0xb9, 0xb5, 0xb6, 0x6c, 0x4f, 0xa3, 0xf0, 0x6a, 0x4b, 0xfc, - 0xe7, 0x29, 0x21, 0x8a, 0xb6, 0xd6, 0xb2, 0x1c, 0x42, 0x97, 0x74, 0xe8, 0xcd, 0x81, 0xe7, 0x59, - 0xe6, 0x14, 0x88, 0xc1, 0xd0, 0x4d, 0x0d, 0x1a, 0x6f, 0x0d, 0x1c, 0x17, 0xea, 0xb0, 0x2d, 0x1d, - 0xc7, 0x31, 0xcb, 0x18, 0x6a, 0x53, 0x33, 0xdc, 0x90, 0x7e, 0x6d, 0xb5, 0xdd, 0xd6, 0xcd, 0x6e, - 0xad, 0xc2, 0x75, 0xe2, 0x33, 0xda, 0xa4, 0x49, 0xc6, 0x69, 0x0c, 0x5a, 0x4d, 0x0b, 0xaa, 0xef, - 0xd7, 0x80, 0xde, 0x5a, 0x29, 0xda, 0xad, 0x66, 0x4f, 0x12, 0xd2, 0x02, 0xa0, 0x59, 0x5a, 0x77, - 0x08, 0xc4, 0xcb, 0x73, 0x04, 0xdc, 0x96, 0x62, 0xbd, 0x58, 0x1f, 0x39, 0x50, 0xa9, 0xd9, 0x05, - 0x82, 0x6c, 0x6b, 0x35, 0x00, 0x16, 0xce, 0x0b, 0x63, 0xd5, 0x31, 0x28, 0xa8, 0x90, 0x91, 0x02, - 0xf7, 0x44, 0x13, 0x5a, 0x2a, 0x57, 0x51, 0xda, 0x5a, 0x57, 0x9a, 0x65, 0x9a, 0x8e, 0x3e, 0xf5, - 0xfb, 0x0a, 0x33, 0x7b, 0x96, 0x19, 0x39, 0x68, 0xff, 0x72, 0xe2, 0x3d, 0xf4, 0x2c, 0x1b, 0x46, - 0x65, 0x68, 0x1d, 0x98, 0xcb, 0xac, 0x47, 0x3c, 0x62, 0x83, 0x4e, 0x79, 0x4d, 0x29, 0xc0, 0x7d, - 0x6e, 0x96, 0x41, 0x93, 0xb9, 0x9b, 0x64, 0x20, 0xa3, 0x53, 0x13, 0x4d, 0x69, 0x00, 0x60, 0x60, - 0xf0, 0x06, 0x37, 0x59, 0xf3, 0xd0, 0x91, 0x4f, 0x7a, 0x1f, 0xf7, 0x17, 0x54, 0xa0, 0x7d, 0x84, - 0xf8, 0xaa, 0x4f, 0x77, 0x5c, 0x7a, 0x5b, 0x77, 0x6d, 0x43, 0x9d, 0xd4, 0x74, 0x93, 0xe4, 0x20, - 0xfc, 0x86, 0xb5, 0x98, 0x01, 0x5c, 0x45, 0x81, 0x85, 0x63, 0x65, 0x9f, 0x3a, 0x9d, 0xd8, 0xb7, - 0x32, 0xc2, 0xc1, 0xf2, 0x04, 0x9a, 0x41, 0xce, 0xc0, 0x58, 0xd9, 0xb3, 0x8f, 0xcf, 0x55, 0x82, - 0x40, 0xa1, 0x48, 0xd0, 0x98, 0xe9, 0x0d, 0xba, 0xcc, 0xe8, 0x47, 0xba, 0x5b, 0xcc, 0x23, 0xdc, - 0x6c, 0x03, 0x28, 0xda, 0x99, 0x08, 0x37, 0x8d, 0xad, 0x93, 0x5d, 0x39, 0xe3, 0x6a, 0x5d, 0x6f, - 0xea, 0xe1, 0x36, 0xc3, 0x2a, 0x33, 0x0d, 0x53, 0x38, 0x86, 0xd3, 0x6e, 0x46, 0xf2, 0x08, 0x37, - 0x3b, 0x01, 0xfc, 0xf3, 0x91, 0x61, 0xcf, 0x31, 0x27, 0xae, 0x8d, 0x1d, 0x39, 0x28, 0xcc, 0xf1, - 0x38, 0xe4, 0xd9, 0x7e, 0x5d, 0xca, 0x7a, 0x80, 0x7f, 0x5a, 0x47, 0x5f, 0x6f, 0xb7, 0x0d, 0x6d, - 0x96, 0x79, 0xd1, 0x26, 0x1e, 0x23, 0x72, 0xfa, 0x01, 0x71, 0x3a, 0xcb, 0x0c, 0x55, 0x23, 0x9a, - 0x4c, 0x70, 0xcc, 0xd2, 0x05, 0x9d, 0x6b, 0xc6, 0x05, 0x64, 0x19, 0xd0, 0x79, 0x62, 0x75, 0x26, - 0x7b, 0x22, 0xd3, 0x90, 0xbc, 0xc8, 0x93, 0x81, 0x14, 0x06, 0x9d, 0x91, 0xe1, 0x1f, 0x80, 0x56, - 0x5b, 0x98, 0xe9, 0x31, 0x45, 0x73, 0x00, 0x47, 0x5c, 0x98, 0xe7, 0x21, 0xc5, 0xd7, 0x22, 0x07, - 0x79, 0xe5, 0x48, 0x0f, 0x62, 0x13, 0x61, 0x6e, 0x82, 0x43, 0x31, 0xd5, 0x01, 0x8e, 0x4e, 0x32, - 0x07, 0xa4, 0xad, 0x36, 0x5d, 0xcb, 0x18, 0x78, 0x1a, 0xa1, 0x6e, 0x98, 0xa9, 0x94, 0xbe, 0x73, - 0x80, 0x07, 0x86, 0x27, 0xa4, 0xc4, 0x75, 0x46, 0x7a, 0x79, 0x32, 0x3d, 0x88, 0xe5, 0x79, 0x51, - 0x35, 0x3e, 0x45, 0x12, 0xd6, 0xee, 0xd7, 0x49, 0x27, 0x4b, 0x15, 0xa7, 0x6f, 0x8c, 0x67, 0x74, - 0x0c, 0x67, 0x3a, 0xbf, 0x26, 0xc5, 0xa7, 0xaa, 0x22, 0xf1, 0x9c, 0x2e, 0xf8, 0x2c, 0x64, 0x0a, - 0xee, 0x7a, 0xf2, 0x48, 0xc2, 0x09, 0xca, 0x71, 0x21, 0x80, 0xe0, 0xd8, 0x96, 0xf1, 0x8f, 0x0a, - 0x93, 0xb3, 0x2d, 0x90, 0xd6, 0x17, 0xf3, 0x05, 0xdd, 0x98, 0x26, 0xcd, 0xaf, 0x05, 0x54, 0xf5, - 0xd9, 0xd0, 0x87, 0x1a, 0xee, 0x09, 0xfa, 0xeb, 0x03, 0xc2, 0x2d, 0x02, 0x0d, 0x6e, 0xb9, 0x69, - 0x5a, 0x0e, 0xe0, 0xad, 0xa6, 0x84, 0xa5, 0xf2, 0x3b, 0x7e, 0xb9, 0x2a, 0x7c, 0x4f, 0x28, 0x57, - 0xe5, 0x8a, 0xad, 0xfb, 0x3c, 0x56, 0x50, 0x07, 0x9e, 0x35, 0xcb, 0xc0, 0x24, 0x9b, 0xce, 0x49, - 0x0b, 0xfc, 0xda, 0x39, 0x4f, 0x0c, 0x30, 0xd9, 0x17, 0x70, 0xe0, 0x80, 0xc5, 0xf1, 0xfd, 0x5d, - 0x24, 0x8a, 0x00, 0xaf, 0x23, 0xcd, 0x0b, 0x6c, 0x75, 0x58, 0xda, 0x8b, 0x8e, 0x61, 0xc1, 0xea, - 0x86, 0xb5, 0xfb, 0x23, 0xa1, 0x54, 0x12, 0xa2, 0x96, 0x94, 0x41, 0xb4, 0xca, 0xf1, 0x8a, 0x08, - 0xae, 0x97, 0x0a, 0x33, 0x2d, 0x69, 0xbd, 0xaf, 0x9b, 0x4c, 0x38, 0x28, 0x12, 0x4a, 0x45, 0x2e, - 0xc6, 0x3a, 0xe6, 0x93, 0x01, 0x13, 0xfd, 0x9a, 0xb6, 0x14, 0x00, 0x91, 0x72, 0xbe, 0xc4, 0x7c, - 0x4d, 0xcc, 0xc7, 0xe6, 0x41, 0xe9, 0x5f, 0x5c, 0x89, 0x70, 0xc8, 0xb5, 0x1e, 0xae, 0xc9, 0xd3, - 0x25, 0x10, 0xea, 0x49, 0xb1, 0x9e, 0x6a, 0x11, 0x98, 0x65, 0x50, 0x12, 0x1c, 0x6a, 0xcb, 0x6a, - 0x50, 0x25, 0x8e, 0x29, 0xc6, 0xa7, 0xcb, 0xec, 0xdd, 0x0a, 0xca, 0xcb, 0x8b, 0xe3, 0xa6, 0xb1, - 0x0a, 0xe4, 0xed, 0x80, 0x4a, 0x01, 0x32, 0x03, 0x8f, 0x77, 0xfa, 0xc8, 0xad, 0xc9, 0xa6, 0xf4, - 0x27, 0x7e, 0x90, 0x7c, 0x8e, 0x40, 0x3e, 0x61, 0x8a, 0xb0, 0xea, 0x4b, 0xd5, 0xb6, 0x14, 0x3c, - 0xc3, 0xd0, 0x7d, 0x30, 0xaf, 0xe2, 0xac, 0x0c, 0x72, 0xac, 0x27, 0xb1, 0x4b, 0xae, 0x19, 0x5d, - 0x56, 0xa4, 0xac, 0x10, 0x34, 0xb9, 0x4a, 0xda, 0x94, 0x16, 0x8b, 0x65, 0x08, 0x4e, 0xb6, 0xf7, - 0x3d, 0xe5, 0xa8, 0x2c, 0x20, 0x70, 0x47, 0x43, 0x09, 0x7b, 0xa8, 0x2d, 0x18, 0x1b, 0xbe, 0x67, - 0xfd, 0xd6, 0x24, 0x20, 0xce, 0x31, 0x52, 0x19, 0x92, 0x01, 0xa5, 0xd3, 0x55, 0x48, 0x09, 0x27, - 0x1f, 0xf6, 0x02, 0x1a, 0x19, 0xd5, 0x70, 0xf2, 0xad, 0xf3, 0x02, 0xe5, 0x62, 0xb1, 0x71, 0xb7, - 0xd3, 0x01, 0x81, 0xd7, 0x9d, 0xfa, 0xc2, 0xae, 0x5f, 0xc7, 0x2a, 0xcd, 0x8e, 0x4d, 0x11, 0x79, - 0x7b, 0xf6, 0xd9, 0xc6, 0x71, 0xc8, 0x9f, 0xed, 0x57, 0x03, 0xfe, 0x0c, 0x3c, 0x1d, 0x7e, 0x60, - 0x9d, 0xa3, 0x89, 0xf0, 0x10, 0xa4, 0xe0, 0x43, 0xde, 0xdf, 0xb9, 0xad, 0xa0, 0x72, 0xc1, 0x65, - 0x8f, 0xe5, 0xc2, 0x79, 0xe1, 0x73, 0x25, 0xe4, 0xec, 0xbe, 0x78, 0x08, 0xcb, 0x0a, 0xe1, 0x20, - 0x28, 0x98, 0xb1, 0xcc, 0x02, 0xae, 0xaa, 0x7a, 0x30, 0x0f, 0x08, 0xda, 0x70, 0x35, 0x88, 0x76, - 0x8c, 0xf5, 0x68, 0x1a, 0xe5, 0x43, 0xb4, 0x03, 0xc1, 0x14, 0x2a, 0x11, 0x81, 0x01, 0x26, 0x8b, - 0xdb, 0x07, 0x7d, 0xb5, 0x37, 0x4d, 0x64, 0xe1, 0x1c, 0xd2, 0x3b, 0x72, 0x4e, 0xfa, 0x33, 0x53, - 0x72, 0x25, 0x41, 0x53, 0x5d, 0x6d, 0x15, 0x04, 0x06, 0x82, 0xd7, 0x55, 0x2a, 0x2e, 0x06, 0x4d, - 0x29, 0xc2, 0x2a, 0xa9, 0xd9, 0xe7, 0xec, 0xab, 0x8c, 0x6f, 0xf1, 0xfc, 0xd6, 0x27, 0x3f, 0xe4, - 0x74, 0x08, 0x6a, 0x48, 0x8b, 0x73, 0xbb, 0x05, 0x8a, 0x40, 0x44, 0xc8, 0x5b, 0x38, 0xa3, 0x0a, - 0x52, 0x4c, 0x56, 0x0b, 0x5a, 0xee, 0x18, 0xda, 0x78, 0x9d, 0x2c, 0x0c, 0xab, 0x20, 0x4a, 0xf7, - 0x5d, 0x5f, 0xca, 0x7f, 0x1e, 0xb8, 0x9e, 0xde, 0x99, 0xac, 0x32, 0x2a, 0xf5, 0x93, 0x03, 0x39, - 0x31, 0x17, 0x48, 0xf5, 0x99, 0x6a, 0x89, 0x67, 0x89, 0x99, 0x35, 0x5c, 0xe3, 0xc8, 0x72, 0xb9, - 0xaa, 0xe1, 0xc6, 0xb3, 0xcb, 0x48, 0xde, 0xf5, 0xd4, 0x09, 0x0c, 0x5d, 0x26, 0x0f, 0xd0, 0xed, - 0x60, 0xb1, 0xa2, 0xab, 0x54, 0x30, 0x5c, 0x9f, 0xe4, 0xa0, 0xfd, 0xd6, 0xcb, 0x24, 0x4c, 0xa7, - 0xef, 0xbc, 0xb4, 0x45, 0x86, 0xee, 0xf7, 0x28, 0x1f, 0x5d, 0x64, 0xd8, 0x4a, 0xc3, 0x1a, 0x9d, - 0x32, 0x98, 0x97, 0x90, 0x30, 0xa8, 0x10, 0xe2, 0x32, 0x5a, 0x2c, 0x28, 0x4a, 0x48, 0x61, 0xb4, - 0x6c, 0xbc, 0xcd, 0x60, 0xa5, 0x09, 0xca, 0x0a, 0xbe, 0xf2, 0xc0, 0x93, 0x1d, 0xca, 0x72, 0x0b, - 0x64, 0xae, 0xc5, 0xbc, 0x2e, 0x8f, 0x0c, 0x67, 0xbc, 0x1a, 0xe9, 0x4b, 0xb0, 0x2a, 0x90, 0x79, - 0x12, 0xeb, 0x1b, 0x9b, 0xe1, 0x8e, 0xda, 0xd6, 0x07, 0x2e, 0xc5, 0xe5, 0x1c, 0xdb, 0x00, 0x39, - 0x45, 0x37, 0xbc, 0x65, 0xcd, 0x16, 0x19, 0xd7, 0xe8, 0xa9, 0x6d, 0x60, 0x0c, 0x48, 0xa4, 0xa0, - 0xac, 0x90, 0x7f, 0x9c, 0xd2, 0x1e, 0x6b, 0xaa, 0xcc, 0x09, 0x56, 0xe5, 0x78, 0xbf, 0x84, 0x22, - 0x27, 0xc9, 0xa2, 0x06, 0x95, 0x4f, 0xea, 0x18, 0xaf, 0x67, 0x50, 0xc8, 0x08, 0xb0, 0xe8, 0x59, - 0x86, 0xa7, 0xdb, 0x28, 0xc7, 0x4e, 0x51, 0xa1, 0x6b, 0xea, 0x06, 0x92, 0x55, 0x0f, 0xc4, 0x14, - 0xcd, 0x5c, 0x4c, 0xd2, 0xa5, 0xc8, 0x08, 0x50, 0xcc, 0x0f, 0xec, 0x1d, 0xc5, 0xe8, 0x30, 0x3e, - 0x60, 0x43, 0xe0, 0x59, 0x00, 0x56, 0x11, 0x1b, 0x7a, 0x39, 0x90, 0x2e, 0x73, 0x65, 0x85, 0x1f, - 0x57, 0x20, 0xc3, 0x05, 0xe3, 0xf2, 0x69, 0x85, 0x4c, 0x4e, 0x32, 0x2d, 0x4b, 0x8a, 0xbf, 0x10, - 0xaf, 0x92, 0xf7, 0xd5, 0x2a, 0x82, 0x66, 0xa9, 0x4e, 0x9c, 0x59, 0x2b, 0xb9, 0x89, 0x00, 0xaa, - 0xd5, 0xd4, 0x0e, 0xe2, 0xd5, 0x9f, 0x95, 0xa2, 0xb8, 0x40, 0x9e, 0x5c, 0xd2, 0x7c, 0x29, 0x1c, - 0x1e, 0x1d, 0x13, 0x97, 0x40, 0xb5, 0x3b, 0xa8, 0x47, 0x6f, 0xfb, 0x49, 0x71, 0xa8, 0xf3, 0x76, - 0x8a, 0x45, 0xcf, 0x7e, 0xdf, 0xa9, 0xac, 0xb1, 0x10, 0xc5, 0xe4, 0xd1, 0xd0, 0x02, 0x58, 0xe4, - 0x66, 0x84, 0x5b, 0x67, 0xb4, 0x36, 0x4c, 0x7f, 0x22, 0xaf, 0xf3, 0x72, 0x25, 0x28, 0x71, 0x50, - 0x67, 0x24, 0x29, 0x64, 0x06, 0x40, 0xf1, 0x2a, 0x7c, 0x9c, 0xa7, 0x9f, 0x00, 0xce, 0x38, 0x27, - 0x1c, 0xd7, 0x5f, 0x02, 0xe8, 0x3a, 0x41, 0x56, 0x21, 0xcf, 0x52, 0x21, 0x39, 0xc4, 0xc7, 0x72, - 0x8a, 0x23, 0x6b, 0x6a, 0x0e, 0xc8, 0x84, 0x00, 0x49, 0x48, 0x9c, 0xc6, 0x28, 0xfa, 0x7e, 0x80, - 0xe8, 0xa2, 0x34, 0x56, 0xe2, 0xe6, 0x4f, 0x3e, 0x32, 0x79, 0xa2, 0xd6, 0x99, 0x52, 0x88, 0xd6, - 0x44, 0xd5, 0x6b, 0xb5, 0x84, 0xe2, 0xce, 0x22, 0xeb, 0x04, 0xd6, 0x2c, 0xc5, 0xe5, 0xd2, 0x24, - 0x76, 0x4d, 0xc1, 0x92, 0x71, 0x7b, 0xd6, 0x28, 0x80, 0x4d, 0x6e, 0x5d, 0x35, 0xf5, 0x3e, 0x35, - 0xb1, 0x20, 0xb8, 0x75, 0x53, 0x80, 0xe5, 0x4f, 0x0e, 0x1f, 0x85, 0x3c, 0xfe, 0x71, 0x34, 0x14, - 0x2b, 0x82, 0x2a, 0x34, 0xc7, 0xb1, 0x1c, 0xae, 0x8e, 0x39, 0xf8, 0x7e, 0x6e, 0xe6, 0x93, 0x6b, - 0x9e, 0x65, 0xfa, 0x56, 0x5b, 0x9d, 0xb3, 0xbc, 0xf8, 0x8b, 0x9d, 0x2f, 0xfe, 0xfb, 0x9a, 0x13, - 0xa2, 0x94, 0x1b, 0xb0, 0xd7, 0x43, 0xc1, 0x2e, 0x87, 0xe3, 0x5d, 0x88, 0x52, 0x2b, 0x51, 0xb2, - 0x7b, 0x4c, 0x51, 0x99, 0x31, 0x59, 0x87, 0x2b, 0xba, 0x3c, 0x9f, 0xe3, 0xd7, 0x55, 0x64, 0x0d, - 0x11, 0x61, 0x0b, 0x75, 0x4f, 0xcb, 0xd5, 0xa6, 0xf1, 0xf5, 0x84, 0xae, 0x5c, 0x54, 0xf0, 0xa3, - 0x4a, 0xfb, 0x67, 0xdd, 0xec, 0x58, 0xf2, 0x67, 0xd3, 0x6a, 0x6b, 0xee, 0xd4, 0x47, 0x75, 0x71, - 0xf6, 0xd9, 0x21, 0xc2, 0xba, 0x9f, 0x50, 0x98, 0x7d, 0x36, 0xdb, 0x46, 0x20, 0xc6, 0xe4, 0x98, - 0x8d, 0x8a, 0x64, 0x82, 0x95, 0x2e, 0xd1, 0x02, 0x14, 0x83, 0x48, 0x5a, 0x28, 0x21, 0x44, 0xa8, - 0xd6, 0x1c, 0xd7, 0xf8, 0x62, 0xda, 0xee, 0x67, 0x98, 0x82, 0x26, 0xb4, 0xfc, 0x51, 0xd3, 0x57, - 0x58, 0x33, 0xbf, 0x18, 0x94, 0xe6, 0xd8, 0x29, 0x49, 0x99, 0xa3, 0x02, 0xb4, 0xb9, 0x07, 0x26, - 0xc8, 0x3c, 0x85, 0x88, 0xe0, 0xaf, 0x9f, 0xe1, 0xe4, 0xca, 0xc7, 0xd6, 0xc8, 0x5c, 0x11, 0xab, - 0xe3, 0x60, 0x19, 0x6a, 0x3d, 0x91, 0x2a, 0xd0, 0x48, 0x36, 0xe5, 0xaa, 0x60, 0x5f, 0x89, 0xbd, - 0x87, 0x01, 0x9e, 0xbe, 0xbc, 0x63, 0x02, 0x62, 0xc5, 0xda, 0x41, 0x99, 0xf6, 0x34, 0x26, 0xd8, - 0x55, 0x82, 0xca, 0x33, 0x4d, 0xcf, 0xf4, 0x91, 0x55, 0x8a, 0x36, 0x49, 0xbe, 0x45, 0xda, 0x8d, - 0xe4, 0xf6, 0x3b, 0xdf, 0xd6, 0x87, 0x7e, 0x26, 0x78, 0xe4, 0xc0, 0x50, 0xac, 0xce, 0x89, 0x06, - 0x50, 0xa4, 0xdf, 0x1d, 0xf9, 0x35, 0x54, 0x98, 0xac, 0x0c, 0x2a, 0x3b, 0x5f, 0xae, 0x4c, 0xc0, - 0x97, 0x68, 0x87, 0xfb, 0xdc, 0xd3, 0x54, 0xc7, 0x9b, 0xce, 0xab, 0xb7, 0xd5, 0x88, 0x26, 0x1b, - 0x5a, 0x35, 0x1d, 0xad, 0x3d, 0x83, 0x26, 0xb9, 0xda, 0xc9, 0xb2, 0x83, 0xaf, 0x9c, 0xb4, 0x3a, - 0xcb, 0x8c, 0xf4, 0x29, 0xf1, 0xc7, 0x5d, 0x85, 0xb5, 0x01, 0x30, 0x81, 0x44, 0x61, 0x03, 0x58, - 0x71, 0xaa, 0xb5, 0xd7, 0xe3, 0x5f, 0x5a, 0x0e, 0xf4, 0x6d, 0x55, 0x6b, 0x77, 0x35, 0xd7, 0xd7, - 0x64, 0x09, 0x9f, 0xfe, 0x8f, 0x17, 0x6d, 0xd2, 0x71, 0xd4, 0x3e, 0x40, 0x82, 0x72, 0x88, 0x69, - 0xc7, 0xb1, 0xfa, 0xd3, 0x80, 0x0b, 0x84, 0x8c, 0xde, 0xb3, 0xa6, 0xcb, 0xd9, 0x5f, 0xb8, 0xde, - 0xf8, 0x0b, 0x15, 0x83, 0x47, 0xb0, 0xae, 0x7e, 0xfd, 0xba, 0x68, 0x5d, 0xcd, 0xfb, 0x26, 0xa7, - 0xd0, 0x4e, 0x54, 0x09, 0xe5, 0xa2, 0x28, 0x65, 0x47, 0xa5, 0x2d, 0x7e, 0x06, 0x10, 0x20, 0x26, - 0xb0, 0x5d, 0xce, 0x06, 0x8f, 0xbb, 0x30, 0x5d, 0x5e, 0xef, 0xfd, 0x4c, 0x48, 0x58, 0x88, 0xf5, - 0x98, 0xe4, 0x22, 0x45, 0xb9, 0x76, 0x11, 0xa9, 0xaa, 0xb3, 0xda, 0xc5, 0xd6, 0xd0, 0x8b, 0xb4, - 0x8a, 0x16, 0x22, 0xf9, 0xb3, 0xa2, 0x80, 0x2e, 0x92, 0x2b, 0xfd, 0x4b, 0x06, 0xc4, 0x41, 0x7d, - 0xdd, 0x7f, 0xac, 0xbe, 0xcf, 0x4a, 0x47, 0x81, 0x0a, 0x9b, 0xff, 0x60, 0x85, 0x0a, 0x8e, 0x78, - 0xf4, 0xcf, 0x55, 0xd8, 0xe9, 0x60, 0x85, 0x2f, 0x09, 0x15, 0xca, 0x9f, 0x47, 0x4d, 0xd5, 0x88, - 0xb7, 0xf2, 0x7e, 0xdd, 0x9d, 0x4e, 0xa5, 0x93, 0xeb, 0x08, 0x0a, 0xa9, 0x5b, 0x80, 0x55, 0x57, - 0xfe, 0xdc, 0x6a, 0xb6, 0x9b, 0xa4, 0x9d, 0x9e, 0x36, 0x1e, 0xc9, 0xb4, 0x35, 0xf9, 0xf3, 0x6b, - 0xcb, 0x5d, 0x85, 0x37, 0xa7, 0xdb, 0xa4, 0xef, 0xd8, 0x9c, 0x4c, 0xc7, 0x16, 0x13, 0x70, 0x68, - 0x17, 0x9a, 0x83, 0x26, 0xb2, 0x21, 0xce, 0x9c, 0x39, 0x2f, 0x47, 0x27, 0x1a, 0xfa, 0x62, 0x34, - 0xa6, 0x24, 0x13, 0x63, 0x21, 0x41, 0x22, 0xe6, 0xb6, 0x13, 0x88, 0xf4, 0x9c, 0x8f, 0x2c, 0x6c, - 0x64, 0xff, 0x90, 0xd2, 0x3a, 0xea, 0x38, 0x1c, 0x83, 0x08, 0xe5, 0x2d, 0x21, 0x93, 0x87, 0xa5, - 0x1f, 0x15, 0x61, 0x39, 0x90, 0x62, 0xfd, 0x14, 0x4e, 0xd8, 0x9d, 0x13, 0xd0, 0x66, 0xc0, 0x64, - 0x41, 0x0d, 0x8f, 0x0c, 0x9d, 0x08, 0x1d, 0x4b, 0xe5, 0x44, 0xce, 0x3f, 0x99, 0xb8, 0x27, 0xff, - 0x08, 0x0c, 0x15, 0xb8, 0x13, 0xa2, 0x42, 0x5a, 0x4b, 0x9b, 0x33, 0x62, 0x86, 0x76, 0xf6, 0xc5, - 0x5b, 0x96, 0x11, 0x23, 0x64, 0x74, 0x35, 0x9c, 0x6b, 0xb3, 0xd6, 0xb1, 0x5a, 0x03, 0x37, 0xdc, - 0x60, 0x4a, 0xc8, 0x11, 0x2a, 0xb3, 0xd4, 0xf0, 0xed, 0x0c, 0x4c, 0x93, 0xac, 0x2e, 0xd0, 0x4e, - 0xeb, 0x65, 0xca, 0x75, 0x8e, 0x31, 0x90, 0x82, 0x32, 0x67, 0x74, 0xe6, 0x71, 0x88, 0xe6, 0x89, - 0xf7, 0x5b, 0xf1, 0x7a, 0x83, 0x7e, 0x33, 0xd8, 0xf6, 0xe3, 0x95, 0x97, 0xf9, 0xa5, 0x38, 0x62, - 0x2c, 0xe5, 0x49, 0x22, 0xd6, 0x89, 0x45, 0xf0, 0xe5, 0xc4, 0x69, 0x10, 0x25, 0x13, 0x3b, 0x87, - 0x7b, 0xad, 0xe4, 0x65, 0xf9, 0xa8, 0xe7, 0x70, 0x41, 0xb6, 0xc1, 0x15, 0x99, 0xfc, 0x4f, 0x7a, - 0xaf, 0x66, 0x32, 0x64, 0xdf, 0xe4, 0xc5, 0x84, 0x73, 0x1e, 0x99, 0x7f, 0x13, 0x1a, 0x89, 0x52, - 0x22, 0xca, 0x3b, 0xb3, 0xcf, 0xc4, 0xf5, 0xdf, 0x15, 0x7e, 0x17, 0x2d, 0x95, 0xb0, 0x23, 0x95, - 0xa0, 0x23, 0xb8, 0x9f, 0x14, 0xd3, 0x2c, 0x72, 0x11, 0x8b, 0x24, 0x91, 0x22, 0x96, 0xb4, 0xb8, - 0x00, 0x22, 0x49, 0xd5, 0xce, 0x78, 0xc1, 0x88, 0x47, 0x04, 0x63, 0x3c, 0x05, 0x65, 0xa9, 0x06, - 0xaf, 0x04, 0xfd, 0x48, 0x10, 0xb0, 0xca, 0x9c, 0x70, 0xc2, 0x36, 0x75, 0x71, 0x13, 0xae, 0x3d, - 0x4d, 0x30, 0x78, 0x7d, 0x6e, 0x3a, 0x3a, 0x29, 0x3b, 0x2f, 0xc3, 0x71, 0x46, 0xd8, 0x66, 0xdf, - 0x8b, 0xf3, 0x55, 0x5b, 0x35, 0xd0, 0xe6, 0x48, 0x0e, 0x85, 0xcc, 0x73, 0xd9, 0xe1, 0x3c, 0xb3, - 0x8d, 0x1a, 0x52, 0xb8, 0xae, 0xce, 0x58, 0x2d, 0x73, 0xca, 0x21, 0x11, 0xc9, 0x78, 0x69, 0x9f, - 0x1f, 0x53, 0x31, 0x06, 0x2b, 0x8e, 0x61, 0x56, 0x3f, 0xb0, 0xf3, 0x1b, 0xb3, 0xae, 0x94, 0x22, - 0x9c, 0x75, 0xb5, 0x3d, 0x60, 0x7b, 0xd9, 0xb8, 0x8f, 0xe0, 0x13, 0x12, 0xd2, 0x26, 0x1e, 0x5f, - 0x58, 0x9d, 0xd7, 0x73, 0x03, 0xaf, 0x84, 0x79, 0x42, 0x2d, 0xb4, 0xe9, 0x2c, 0xa2, 0x7a, 0xd0, - 0x82, 0xf2, 0x4b, 0xcb, 0x05, 0x4a, 0x4d, 0xcb, 0xd0, 0x6d, 0xaa, 0xc9, 0x46, 0x93, 0x16, 0xea, - 0xc5, 0x05, 0x69, 0x99, 0x51, 0x92, 0x59, 0x60, 0x89, 0xe4, 0xbb, 0xea, 0x52, 0x6b, 0x81, 0x1c, - 0x5a, 0x76, 0x93, 0x52, 0xf3, 0xd1, 0x64, 0x7c, 0xf1, 0x77, 0x34, 0x16, 0xf5, 0xa1, 0x24, 0x2d, - 0xd3, 0xe9, 0x67, 0xb4, 0xbe, 0x69, 0x44, 0x80, 0x0d, 0x36, 0x5a, 0xe0, 0x13, 0x31, 0x44, 0xf8, - 0x9b, 0xca, 0xfe, 0x02, 0x09, 0xf4, 0x9c, 0xbc, 0xaf, 0xb6, 0x60, 0x8b, 0x1b, 0x2b, 0x32, 0xa7, - 0x3c, 0xb5, 0x04, 0xc4, 0x58, 0xf1, 0xa7, 0x07, 0xe6, 0xf1, 0x67, 0x50, 0x2e, 0xcf, 0xe5, 0x29, - 0xd1, 0x3d, 0x6c, 0xf2, 0x1d, 0x5a, 0x6b, 0xb7, 0x65, 0xff, 0xb9, 0xad, 0x19, 0xf4, 0x79, 0xec, - 0x0f, 0xa0, 0x18, 0xdd, 0x91, 0xe6, 0xac, 0xe8, 0xbc, 0xb1, 0x84, 0x15, 0x61, 0xf5, 0xd3, 0x9d, - 0x72, 0xec, 0x03, 0x8f, 0x8f, 0xf0, 0xbb, 0xc2, 0xa9, 0x33, 0x98, 0xbc, 0x10, 0xd2, 0xc5, 0x18, - 0x46, 0xfd, 0xc1, 0x14, 0x08, 0xdb, 0xa2, 0x6a, 0x4c, 0x06, 0xab, 0x8a, 0x6a, 0x3a, 0x7c, 0x91, - 0x38, 0xfa, 0xe7, 0x10, 0x3f, 0x5d, 0x66, 0xe4, 0x5e, 0x42, 0x87, 0x8b, 0xe0, 0x17, 0xfa, 0x7f, - 0x8c, 0x7a, 0xba, 0xa7, 0xad, 0xc2, 0x82, 0x41, 0xd6, 0x36, 0xe4, 0x18, 0x33, 0xca, 0x55, 0xe6, - 0xd9, 0x02, 0x24, 0x73, 0xc0, 0x8b, 0x0b, 0x5e, 0xc5, 0x05, 0x1a, 0x96, 0xcf, 0x2d, 0x38, 0x85, - 0x81, 0x3c, 0xf3, 0xde, 0x12, 0xf9, 0x0a, 0xab, 0xbf, 0x19, 0xf0, 0xd2, 0x98, 0xd9, 0x35, 0x92, - 0x3b, 0x5c, 0xc3, 0xb8, 0x41, 0xa3, 0x40, 0x4a, 0x79, 0xe5, 0x34, 0xb6, 0x74, 0x50, 0x3f, 0x26, - 0xde, 0x7b, 0x44, 0xe0, 0xb8, 0x9a, 0x12, 0x67, 0x61, 0xcb, 0x40, 0xfd, 0x31, 0xf6, 0x16, 0xac, - 0xc5, 0x9c, 0xa1, 0x2c, 0xc6, 0xf8, 0x94, 0x45, 0x8c, 0xaf, 0xf4, 0xcf, 0x31, 0xbe, 0x45, 0xd2, - 0x0b, 0x59, 0x2f, 0xe3, 0x89, 0x7f, 0x95, 0x4b, 0x46, 0xf9, 0xa2, 0x66, 0x00, 0x63, 0x74, 0x75, - 0x77, 0xf6, 0xd9, 0xf3, 0xa6, 0x09, 0x8e, 0x21, 0x2d, 0x63, 0x9e, 0x92, 0x51, 0x5f, 0x61, 0x38, - 0x22, 0x4e, 0x13, 0xb6, 0xcc, 0xbf, 0x18, 0xd1, 0x37, 0x6d, 0xca, 0xb3, 0x87, 0xf5, 0x79, 0xa9, - 0xaa, 0x88, 0xa4, 0xda, 0xd6, 0x87, 0x34, 0xff, 0x74, 0x7e, 0x97, 0x20, 0xf8, 0xf6, 0x11, 0xab, - 0xb2, 0xc3, 0x14, 0x7a, 0xc4, 0x16, 0x50, 0x53, 0x3e, 0xf4, 0xb8, 0x50, 0xfc, 0x06, 0x15, 0x1f, - 0xb5, 0xbe, 0x82, 0x9c, 0x20, 0x87, 0xf9, 0xc8, 0xf7, 0x35, 0xe7, 0xc5, 0x59, 0x98, 0x33, 0x46, - 0x8c, 0x7e, 0x40, 0xbb, 0x8a, 0x41, 0x61, 0x1e, 0xb6, 0xf4, 0xe0, 0xe6, 0xf4, 0xe3, 0xd4, 0xdb, - 0x89, 0x88, 0x97, 0x26, 0x08, 0x4e, 0x9a, 0xf3, 0x43, 0xe6, 0x92, 0xb0, 0x8d, 0x1f, 0xd3, 0x0f, - 0x2a, 0x53, 0x1f, 0xa5, 0xfc, 0x52, 0x74, 0xc7, 0x24, 0x3e, 0xf9, 0x38, 0x35, 0x6b, 0xde, 0xb9, - 0x20, 0xef, 0xae, 0x87, 0x8e, 0x6d, 0x09, 0xd4, 0x8d, 0x1d, 0xee, 0xe8, 0x9a, 0xd1, 0x9e, 0x23, - 0xf1, 0xf0, 0x4b, 0x52, 0x62, 0x02, 0x1c, 0xe6, 0x3c, 0x8c, 0x18, 0xda, 0x4b, 0x4a, 0x54, 0xde, - 0xa7, 0x30, 0x9a, 0xc7, 0xc6, 0x7c, 0x8d, 0x54, 0x71, 0x9a, 0x83, 0x2f, 0xd3, 0xa7, 0x12, 0xa0, - 0x5c, 0x4e, 0xc2, 0x4f, 0x28, 0x5f, 0xeb, 0xa6, 0x89, 0x7b, 0x17, 0x36, 0x30, 0x3a, 0xea, 0xa2, - 0x20, 0x2f, 0xcb, 0x0d, 0x70, 0x8b, 0xe6, 0x5e, 0xa4, 0x3b, 0x52, 0x16, 0x2a, 0xcc, 0x0d, 0x91, - 0x19, 0xd2, 0xb4, 0xfe, 0xdc, 0xe8, 0x33, 0xb6, 0x37, 0xf6, 0xa6, 0xb1, 0x8d, 0x7a, 0x61, 0x55, - 0x40, 0x25, 0x5e, 0x9a, 0x61, 0x16, 0xa0, 0x70, 0x35, 0x69, 0x84, 0xf9, 0x04, 0x3a, 0x9a, 0xaf, - 0x07, 0x57, 0x96, 0xc0, 0x95, 0xa1, 0xaa, 0x24, 0x1b, 0x56, 0x17, 0x49, 0xfc, 0x20, 0x06, 0x85, - 0x24, 0xe3, 0x68, 0x84, 0xd0, 0x08, 0xbf, 0x8b, 0xd1, 0x1d, 0x67, 0xb7, 0x9d, 0x65, 0x54, 0x5b, - 0xc7, 0x21, 0xb1, 0x26, 0xd7, 0x60, 0xcc, 0xb5, 0x1a, 0x9d, 0x7f, 0xd1, 0x19, 0x16, 0xf4, 0x1b, - 0xfd, 0x6b, 0x08, 0x14, 0x02, 0xf9, 0x86, 0x89, 0x4c, 0x09, 0x5e, 0x80, 0xfe, 0xbe, 0x70, 0x00, - 0x33, 0x24, 0x29, 0x5e, 0x4c, 0xb1, 0xd1, 0xfb, 0x92, 0xf8, 0xcd, 0xe1, 0xc3, 0x74, 0x7e, 0x81, - 0x8e, 0x2f, 0x3a, 0xf3, 0x9b, 0x2c, 0xcb, 0x44, 0x57, 0x9f, 0x45, 0x47, 0x97, 0xd4, 0xb9, 0x8d, - 0xcc, 0x22, 0x59, 0x21, 0x03, 0x13, 0xe7, 0xda, 0x92, 0xfd, 0xe2, 0x70, 0x03, 0x96, 0x74, 0x9d, - 0x78, 0x6c, 0x05, 0xfd, 0x5f, 0xe0, 0xbf, 0xa5, 0xf8, 0xee, 0xa2, 0xab, 0x65, 0x84, 0xb8, 0xdb, - 0x74, 0x23, 0xeb, 0x33, 0x05, 0x60, 0x65, 0xce, 0x59, 0xc0, 0xed, 0xda, 0x12, 0x6b, 0x66, 0x4a, - 0x04, 0x13, 0xea, 0xd1, 0x18, 0xbc, 0x83, 0xc0, 0x68, 0xeb, 0xed, 0x0f, 0x39, 0xce, 0xc5, 0x8c, - 0xbb, 0xf3, 0x40, 0x8c, 0x92, 0x26, 0xa2, 0xd8, 0xd4, 0x46, 0x30, 0x2a, 0xdf, 0x87, 0xaf, 0xad, - 0x75, 0xd4, 0x81, 0xe1, 0xa1, 0xbb, 0x66, 0xd0, 0xf7, 0x72, 0x20, 0x54, 0x66, 0xc6, 0xa1, 0x74, - 0xca, 0x39, 0xe7, 0x15, 0x8b, 0x11, 0x09, 0x97, 0x64, 0x0b, 0x64, 0xad, 0x5a, 0xb8, 0xbc, 0x20, - 0x51, 0x04, 0xf6, 0x55, 0xa2, 0xac, 0xb5, 0x5c, 0x90, 0x0e, 0xc7, 0xa1, 0x20, 0x3a, 0x4f, 0xeb, - 0x6d, 0xce, 0x83, 0x28, 0xcc, 0x0f, 0xb5, 0xc7, 0x37, 0x3e, 0xf9, 0x6c, 0x81, 0xab, 0xaf, 0x4c, - 0xe4, 0x3b, 0x02, 0x06, 0xb6, 0xbd, 0xbc, 0x8a, 0xc2, 0x15, 0xf9, 0xa3, 0x70, 0xc2, 0xae, 0x9c, - 0x9c, 0x4a, 0x52, 0x12, 0xf3, 0xc6, 0x13, 0x01, 0x45, 0xae, 0xe7, 0xce, 0x3b, 0x14, 0x32, 0x18, - 0x10, 0x9f, 0x30, 0x7b, 0xe4, 0xcc, 0xf9, 0xbe, 0x26, 0xba, 0x23, 0x41, 0xe5, 0x32, 0xd9, 0xed, - 0x8a, 0xfb, 0x2c, 0xaa, 0x20, 0xf1, 0xcd, 0x7b, 0x51, 0xb5, 0x79, 0x97, 0xe6, 0x80, 0x38, 0xc2, - 0x2d, 0x8c, 0xd0, 0xb8, 0x3d, 0xcb, 0x74, 0x9c, 0xb7, 0x29, 0x21, 0x97, 0x42, 0x3e, 0x71, 0xf7, - 0x1b, 0x49, 0x6a, 0xb5, 0x30, 0x6f, 0xb9, 0xe2, 0x57, 0x37, 0x6e, 0xe7, 0x9f, 0x73, 0x68, 0x84, - 0x8a, 0xa3, 0xdc, 0xa0, 0xd5, 0xd3, 0x5a, 0x2f, 0x72, 0x06, 0x19, 0x9a, 0xb5, 0xc8, 0x43, 0x24, - 0xb0, 0x45, 0xc4, 0x47, 0xea, 0x68, 0xc3, 0x56, 0xef, 0xc5, 0x88, 0xcd, 0x1f, 0x45, 0x40, 0xfd, - 0xc3, 0x37, 0x29, 0x04, 0x1b, 0x06, 0x9c, 0x68, 0x8c, 0x83, 0xbc, 0xd9, 0x11, 0xe6, 0xca, 0x2b, - 0xb4, 0x74, 0xe8, 0x82, 0xb4, 0xca, 0x66, 0x16, 0xe9, 0x25, 0x5d, 0x19, 0x58, 0x5f, 0xe9, 0x4b, - 0x02, 0x44, 0x43, 0xdb, 0x67, 0x0c, 0x38, 0x81, 0xd0, 0xc4, 0xa4, 0x28, 0x56, 0x2b, 0x34, 0xe4, - 0x8f, 0x1f, 0x1f, 0x13, 0x6a, 0xe4, 0x19, 0x15, 0x67, 0x24, 0xa6, 0x9b, 0x8a, 0x71, 0xa7, 0xc8, - 0xbf, 0xa4, 0x2d, 0xe5, 0x81, 0x3e, 0xc2, 0x1e, 0x44, 0x18, 0x06, 0xaf, 0xbb, 0x70, 0x4e, 0xb7, - 0xf9, 0x77, 0x6c, 0x69, 0xf3, 0xe6, 0x55, 0x6e, 0xb8, 0xd3, 0x79, 0xc3, 0x35, 0xfb, 0xca, 0x1c, - 0x08, 0x08, 0x6c, 0xff, 0x6b, 0x0e, 0x3e, 0xd1, 0xaf, 0x61, 0x87, 0x97, 0x6a, 0xfb, 0x41, 0x25, - 0x54, 0xe8, 0xe5, 0x40, 0xfd, 0x11, 0x29, 0x38, 0x81, 0x58, 0x85, 0x78, 0x95, 0x74, 0xaa, 0x54, - 0x19, 0x4a, 0x42, 0x2c, 0x95, 0x42, 0xd0, 0x71, 0x3e, 0x26, 0xb5, 0xb8, 0x7c, 0x1b, 0x75, 0xce, - 0x00, 0xf2, 0x03, 0xf4, 0x14, 0xa8, 0x05, 0x20, 0xb9, 0x3d, 0x18, 0x82, 0xe5, 0x15, 0x4b, 0xd3, - 0x79, 0x4d, 0x88, 0xad, 0x30, 0xc5, 0x12, 0x3a, 0x08, 0x93, 0xe3, 0x2d, 0x8b, 0xbe, 0x2d, 0x48, - 0x67, 0x64, 0x20, 0xcc, 0x01, 0xc9, 0xdf, 0x7b, 0xe5, 0x86, 0xe4, 0xd3, 0x60, 0x69, 0xde, 0xf3, - 0xa4, 0xb6, 0xba, 0xf6, 0x71, 0x5b, 0x2b, 0x99, 0x89, 0x21, 0xaa, 0xc9, 0xbc, 0x8c, 0xd0, 0x22, - 0x5d, 0x27, 0x7b, 0x71, 0x37, 0xfa, 0x8f, 0x2c, 0x5b, 0x4d, 0xdf, 0x08, 0xb8, 0xca, 0x39, 0x84, - 0x65, 0x6c, 0x90, 0x86, 0xc8, 0x2a, 0xbd, 0xd4, 0x4d, 0xeb, 0xa3, 0x72, 0x7e, 0xd4, 0xd7, 0x83, - 0xf8, 0x75, 0x2e, 0x15, 0xe5, 0x4b, 0xee, 0x9c, 0xda, 0x1d, 0x55, 0x90, 0x73, 0xf3, 0x3e, 0x61, - 0xe4, 0x20, 0x02, 0x01, 0x06, 0xca, 0x1f, 0x9c, 0x68, 0xc5, 0x86, 0x15, 0x4d, 0x25, 0xb9, 0x85, - 0x8c, 0x4b, 0x79, 0x5b, 0x22, 0xf7, 0x5e, 0xf3, 0xe7, 0x77, 0x95, 0xf0, 0x7b, 0xe2, 0x3d, 0x06, - 0xec, 0x99, 0x94, 0x48, 0x34, 0x65, 0x84, 0x1d, 0xca, 0x80, 0x54, 0x38, 0xb7, 0x81, 0x84, 0xff, - 0x08, 0xdf, 0x8c, 0x83, 0x62, 0x4e, 0xd4, 0x4a, 0xb6, 0xa2, 0xf9, 0xb4, 0x4c, 0x7b, 0x52, 0xeb, - 0x3a, 0xea, 0x84, 0x04, 0xa0, 0x62, 0x9e, 0x19, 0xc9, 0xc9, 0xb3, 0x8c, 0xd1, 0x34, 0x56, 0xdd, - 0xe4, 0x0e, 0xc7, 0xa8, 0x85, 0xc9, 0x23, 0x95, 0x7f, 0x25, 0x1d, 0xda, 0x30, 0x74, 0xd7, 0x9b, - 0x2e, 0x72, 0xc6, 0xa5, 0x4e, 0x79, 0xef, 0xa1, 0x94, 0x11, 0x7e, 0xe0, 0x8a, 0x28, 0xe4, 0x13, - 0x4c, 0xc4, 0x71, 0x60, 0x40, 0xcb, 0xae, 0x77, 0x38, 0x4d, 0x70, 0xc7, 0x5c, 0xb8, 0x25, 0x34, - 0x4f, 0xa7, 0x81, 0x78, 0xcb, 0x6c, 0x16, 0xf3, 0xce, 0x8c, 0xf3, 0xd4, 0x35, 0xe7, 0x5f, 0xbb, - 0xce, 0xbb, 0xe0, 0x2a, 0x49, 0x46, 0x26, 0x6e, 0xad, 0x08, 0x4d, 0x76, 0xa4, 0xfb, 0xd1, 0xa5, - 0x92, 0x6a, 0x0b, 0x5a, 0x7b, 0x9a, 0xb8, 0x2f, 0x3e, 0xf3, 0x5d, 0x73, 0x89, 0x1f, 0x2f, 0x65, - 0xe8, 0xc0, 0x5c, 0xbd, 0xd4, 0xf7, 0x96, 0xa1, 0xba, 0xee, 0x9f, 0x75, 0x5f, 0x56, 0xf8, 0x21, - 0xc9, 0xa4, 0xf6, 0xa5, 0x59, 0x92, 0xda, 0x28, 0x49, 0x61, 0x1f, 0x78, 0xbe, 0xc2, 0x25, 0x06, - 0xec, 0x85, 0x4b, 0x4c, 0xb0, 0x07, 0x24, 0x7e, 0x8c, 0x5b, 0x06, 0xe6, 0x6d, 0xdc, 0xa4, 0xdb, - 0x21, 0x18, 0xa2, 0xcb, 0x74, 0xec, 0xab, 0xcc, 0x5e, 0x09, 0xa6, 0xa6, 0xbc, 0x53, 0x61, 0xc4, - 0x57, 0x33, 0xc1, 0xcb, 0x91, 0xf9, 0x3b, 0x0b, 0x41, 0x55, 0x0b, 0x41, 0xc4, 0x18, 0x5f, 0xde, - 0x5f, 0x9f, 0x88, 0xb3, 0x74, 0x67, 0x8c, 0x34, 0x2f, 0x24, 0xf4, 0xb5, 0x52, 0x9c, 0xff, 0x4e, - 0xbb, 0x17, 0x96, 0xc6, 0x9d, 0x98, 0xa5, 0xc5, 0x63, 0x19, 0x62, 0xe5, 0x49, 0xaa, 0xef, 0x0e, - 0xef, 0x73, 0x92, 0xe0, 0xa4, 0x6a, 0x92, 0x76, 0x85, 0x05, 0x16, 0xa9, 0x84, 0x0b, 0x74, 0xbc, - 0xbf, 0xca, 0x51, 0xa0, 0x25, 0x58, 0x1f, 0x86, 0x09, 0xbb, 0x96, 0x6b, 0x89, 0xb2, 0x70, 0x5c, - 0x00, 0x0b, 0x3d, 0x3a, 0x80, 0xaf, 0x9a, 0xed, 0xe9, 0x62, 0xcf, 0xde, 0x24, 0x37, 0x5e, 0x33, - 0x81, 0xd8, 0xa2, 0x52, 0x71, 0xe4, 0x94, 0x4e, 0xd2, 0x39, 0x00, 0x5e, 0x97, 0xc5, 0xa9, 0x4c, - 0x36, 0x1c, 0x62, 0xca, 0x97, 0x3f, 0xeb, 0xe3, 0xdc, 0x3a, 0x81, 0x57, 0x24, 0x1b, 0x2f, 0x96, - 0x6d, 0x00, 0xfd, 0x45, 0xc8, 0x27, 0x8d, 0x7d, 0xce, 0x44, 0x34, 0xe7, 0xd6, 0xbc, 0xa0, 0x1c, - 0xdb, 0x2d, 0x4a, 0xfc, 0x86, 0x13, 0xa5, 0x06, 0x10, 0x6d, 0x69, 0x3d, 0xcb, 0x20, 0x5e, 0xb0, - 0x3d, 0x6b, 0x64, 0x4a, 0xcb, 0x27, 0x35, 0xca, 0x0c, 0x3a, 0x39, 0xdb, 0xc6, 0x9d, 0x3e, 0x20, - 0xd2, 0xf1, 0xc2, 0x75, 0xa3, 0x5c, 0x64, 0x3b, 0x8a, 0xab, 0xa6, 0xec, 0xef, 0x65, 0x2c, 0xf1, - 0x27, 0x5d, 0xc2, 0xe3, 0x99, 0x63, 0xa4, 0x10, 0xee, 0x7e, 0xb1, 0x8e, 0x08, 0xff, 0xc4, 0x7e, - 0x18, 0x0e, 0x4d, 0xe0, 0xe7, 0xa4, 0x3f, 0xca, 0x24, 0xe1, 0x97, 0xc6, 0xc2, 0x23, 0xcf, 0x5a, - 0xfb, 0xbf, 0xe6, 0x45, 0x53, 0x9f, 0xf3, 0xf0, 0xc7, 0xd8, 0x02, 0xff, 0x5e, 0x3e, 0xd1, 0x07, - 0x68, 0x98, 0xe2, 0x36, 0xdd, 0xc8, 0x2b, 0xf6, 0x21, 0xa2, 0x6d, 0x85, 0xcd, 0xc6, 0xc4, 0x53, - 0x99, 0xfa, 0xad, 0x26, 0xc9, 0x01, 0xbc, 0x54, 0xd4, 0x4a, 0xb2, 0xcb, 0xdb, 0x56, 0x3e, 0x32, - 0xd0, 0xb8, 0x9e, 0x08, 0x0a, 0xb9, 0xea, 0xf8, 0x47, 0x55, 0xd1, 0x03, 0x2e, 0xd3, 0x03, 0x25, - 0x96, 0xa2, 0x98, 0x3f, 0x60, 0x93, 0x5f, 0xb6, 0x7f, 0xd2, 0x0c, 0x74, 0x7c, 0x2a, 0xd9, 0x73, - 0xbe, 0x02, 0xfe, 0x09, 0xf1, 0x69, 0x70, 0x6a, 0x3c, 0xe9, 0x2b, 0x73, 0xa5, 0x88, 0xb9, 0x86, - 0x24, 0x66, 0xa4, 0x7e, 0x00, 0xf3, 0xb3, 0xd6, 0x6d, 0x86, 0x9e, 0x70, 0x99, 0xfc, 0xbc, 0x25, - 0x71, 0x71, 0x6d, 0x73, 0x47, 0xc8, 0xb8, 0x3a, 0x7b, 0xd2, 0xec, 0x3f, 0xfa, 0x80, 0x60, 0x55, - 0x80, 0x69, 0x25, 0x00, 0xdb, 0x17, 0x00, 0x7d, 0x42, 0xca, 0x5f, 0xb5, 0x4d, 0x4d, 0x9a, 0x72, - 0xfe, 0x02, 0xb4, 0xa6, 0x74, 0x82, 0x0f, 0xd0, 0x72, 0xff, 0x1f, 0xbf, 0x8d, 0xa0, 0x7e, 0xee, - 0x0c, 0x05, 0x2a, 0xfb, 0x41, 0x23, 0xac, 0xb2, 0x08, 0xe5, 0x2e, 0x29, 0x5c, 0x42, 0x03, 0x93, - 0xc4, 0x52, 0x03, 0x09, 0xb7, 0xb0, 0x86, 0x76, 0xd7, 0xe9, 0x07, 0xbc, 0x37, 0xe7, 0xfd, 0x4b, - 0xfd, 0xed, 0x4e, 0x39, 0xbe, 0xfd, 0xc9, 0x79, 0xaf, 0xbe, 0xe7, 0xeb, 0x59, 0x40, 0xd9, 0x71, - 0x69, 0xb7, 0x91, 0xaf, 0xc3, 0x98, 0xb9, 0xf3, 0x83, 0xbe, 0x8f, 0x4b, 0xa6, 0xfc, 0xaf, 0xd8, - 0xc1, 0x76, 0x7a, 0x22, 0x7a, 0xbe, 0xb6, 0x60, 0xb8, 0xa5, 0x62, 0x2e, 0x04, 0x42, 0xd0, 0xc6, - 0x1a, 0x4a, 0xac, 0x89, 0x6d, 0x14, 0x33, 0xf9, 0x8f, 0xb6, 0x31, 0x57, 0x1b, 0xe7, 0x12, 0x12, - 0x73, 0xe8, 0x0f, 0xdc, 0x42, 0x78, 0x71, 0x92, 0xd3, 0x74, 0xa8, 0xb7, 0xc8, 0x7b, 0x08, 0x5d, - 0xab, 0x56, 0x08, 0xea, 0x68, 0x8f, 0xcf, 0x88, 0x7b, 0xf5, 0x47, 0x89, 0x21, 0x97, 0x2f, 0x56, - 0xb9, 0xc2, 0x17, 0xad, 0x7e, 0xac, 0x28, 0x86, 0x98, 0x24, 0x91, 0x25, 0x85, 0x6f, 0x59, 0x16, - 0x6f, 0x17, 0x03, 0x37, 0xc0, 0x0f, 0xe0, 0x4f, 0xd0, 0xdb, 0x75, 0xb1, 0x35, 0x14, 0x05, 0x22, - 0x82, 0xd5, 0x45, 0x76, 0xac, 0x4b, 0xdc, 0xc0, 0xa8, 0x97, 0x00, 0x29, 0x01, 0x63, 0xb6, 0x0a, - 0xb7, 0x87, 0x99, 0x4c, 0xe6, 0x5b, 0x16, 0xf2, 0x6f, 0x08, 0x2b, 0xdf, 0x4c, 0x8b, 0x85, 0xac, - 0x24, 0x15, 0xc4, 0x0a, 0x0a, 0xa4, 0x2d, 0x78, 0xf7, 0x67, 0x81, 0xb8, 0xb1, 0x72, 0x6d, 0x39, - 0xce, 0x44, 0xf6, 0xab, 0x12, 0x4c, 0x4d, 0x6b, 0xbb, 0xc2, 0x91, 0x3a, 0x54, 0xaf, 0x49, 0x3d, - 0x9f, 0x68, 0xcd, 0xdf, 0xb2, 0x41, 0xc5, 0x61, 0xd7, 0x9a, 0x5d, 0x71, 0x83, 0x35, 0x4c, 0xd2, - 0x56, 0x58, 0x73, 0x2c, 0x98, 0x80, 0x48, 0x32, 0x01, 0xd0, 0x45, 0xf6, 0x9d, 0x7d, 0xc6, 0x73, - 0xa0, 0xf3, 0xa9, 0x40, 0xd0, 0x58, 0x0e, 0x53, 0x29, 0xb0, 0x84, 0x15, 0xd2, 0x06, 0x05, 0x9c, - 0x35, 0xc2, 0xfa, 0x2c, 0xb3, 0x65, 0x60, 0x6c, 0x57, 0xa8, 0xb4, 0xdb, 0x35, 0x34, 0x92, 0x9a, - 0x92, 0x02, 0xf8, 0x78, 0x5d, 0x03, 0x3a, 0xa4, 0xfb, 0xaf, 0xe4, 0x2c, 0xbf, 0xb8, 0xf1, 0xe5, - 0xf3, 0x58, 0x53, 0x2a, 0x9d, 0x75, 0x00, 0xb5, 0xbe, 0xf1, 0xcd, 0xe6, 0x7a, 0x41, 0x8f, 0xd9, - 0x89, 0x1b, 0xa4, 0x9e, 0x6f, 0x59, 0x1b, 0x06, 0x43, 0x9b, 0x0b, 0xfb, 0x10, 0x76, 0xe1, 0xcc, - 0x10, 0x85, 0x95, 0x58, 0x07, 0xce, 0x0c, 0x68, 0x3d, 0xb9, 0xc5, 0xbc, 0x9a, 0x5f, 0x5f, 0xd8, - 0x20, 0x86, 0x1e, 0x25, 0x0d, 0xae, 0x2c, 0x6b, 0xf1, 0x7a, 0x62, 0xb6, 0xe6, 0xc6, 0x8c, 0x89, - 0x89, 0x8d, 0xae, 0x60, 0xab, 0xb9, 0x5c, 0x79, 0x71, 0xab, 0x58, 0xf4, 0xbd, 0x51, 0x5e, 0x3b, - 0xf3, 0xa3, 0x3c, 0x61, 0xe7, 0xb5, 0x17, 0x8e, 0xb5, 0x98, 0x53, 0x16, 0xb7, 0xba, 0x72, 0xa1, - 0x69, 0x2f, 0xef, 0x35, 0x7b, 0x38, 0x37, 0xce, 0x43, 0x60, 0x67, 0x8b, 0xc7, 0xa9, 0x94, 0x97, - 0x8c, 0x13, 0x8b, 0xbe, 0x8b, 0x4d, 0x9c, 0xc6, 0x09, 0x08, 0xc5, 0xe4, 0xc5, 0x38, 0xcd, 0xb7, - 0x17, 0xb7, 0x4a, 0x8a, 0xae, 0x24, 0xb7, 0xeb, 0xb7, 0xf2, 0x75, 0x04, 0x82, 0xbc, 0x35, 0xca, - 0x80, 0x14, 0x41, 0x1c, 0x14, 0x32, 0x34, 0xdc, 0x74, 0xd6, 0xd5, 0x3c, 0x8c, 0xe0, 0xe1, 0x8a, - 0x5f, 0xb1, 0xe1, 0x95, 0x04, 0xfa, 0x5d, 0x46, 0x4d, 0xdb, 0x96, 0xd9, 0xd1, 0xbb, 0xc9, 0x2d, - 0xf3, 0x73, 0xa8, 0xd5, 0x9f, 0x9f, 0x41, 0xad, 0x53, 0xe8, 0x76, 0xea, 0x93, 0xb2, 0x70, 0xc8, - 0x85, 0x60, 0xc8, 0x2b, 0x09, 0x13, 0x67, 0x5b, 0xc0, 0xf2, 0xb1, 0xa6, 0x39, 0x8e, 0x40, 0x5a, - 0xa7, 0x4c, 0x18, 0x27, 0x76, 0xd0, 0xfb, 0x5e, 0x1b, 0x10, 0xb9, 0xe5, 0xf8, 0x41, 0x97, 0xb1, - 0x82, 0x08, 0x33, 0xd0, 0x0d, 0xcc, 0x1e, 0xed, 0x90, 0xc0, 0x45, 0x7e, 0x88, 0x60, 0xae, 0x6b, - 0xdc, 0x60, 0xa8, 0x70, 0x44, 0x1b, 0x9d, 0x79, 0x94, 0x36, 0x22, 0x15, 0x86, 0xf2, 0x82, 0xc0, - 0xea, 0x46, 0xe9, 0x8f, 0x82, 0x87, 0x7e, 0x83, 0xde, 0x10, 0xf0, 0x90, 0x50, 0xcb, 0x90, 0xa8, - 0x79, 0x90, 0x82, 0xcc, 0xc5, 0x32, 0x49, 0xde, 0xba, 0x48, 0x03, 0x2f, 0xdf, 0x38, 0xaa, 0x6e, - 0xa4, 0xbc, 0x9e, 0xee, 0xc2, 0x37, 0xe0, 0xf4, 0x75, 0x31, 0x5f, 0x2a, 0x41, 0x7f, 0x60, 0xf1, - 0xab, 0x8b, 0x39, 0x51, 0xe0, 0x23, 0x1e, 0x83, 0xbc, 0x6c, 0x0c, 0xe0, 0x2d, 0x97, 0xaf, 0x88, - 0x49, 0xfd, 0x61, 0x6b, 0x41, 0xc8, 0x45, 0x7d, 0x2e, 0x4e, 0xa5, 0x99, 0x68, 0x66, 0x2a, 0x87, - 0x60, 0x5e, 0xfa, 0x35, 0x84, 0x34, 0xfb, 0xd1, 0xc9, 0xd9, 0x06, 0x02, 0x73, 0x3f, 0xc4, 0x02, - 0xf4, 0x8b, 0x84, 0x74, 0x56, 0x9b, 0x78, 0x10, 0xa5, 0x69, 0xa8, 0xe6, 0x0b, 0x56, 0x40, 0x73, - 0xce, 0x55, 0xc0, 0xf5, 0x2f, 0x38, 0x20, 0xef, 0xf7, 0x9b, 0x40, 0x8a, 0x7a, 0x6b, 0x8a, 0x1c, - 0x0d, 0x32, 0xf1, 0x5e, 0xe4, 0xf0, 0xcd, 0x42, 0x6c, 0xfb, 0x99, 0x60, 0xdd, 0xc0, 0xee, 0xc7, - 0x56, 0x0a, 0xcc, 0xd8, 0xf3, 0xc9, 0xe2, 0x7d, 0x3c, 0x85, 0x68, 0x3a, 0x98, 0xab, 0x18, 0x49, - 0x81, 0x61, 0x08, 0x8f, 0x73, 0x1c, 0x50, 0x9c, 0x71, 0x78, 0xa4, 0x81, 0xb5, 0x15, 0x1f, 0x5d, - 0x85, 0x52, 0x15, 0x9e, 0x10, 0x5b, 0x4a, 0x0c, 0x5b, 0x2b, 0x0c, 0x5d, 0x0a, 0x2e, 0x94, 0x9a, - 0x0d, 0x60, 0x33, 0x27, 0x4b, 0xf1, 0x06, 0xd0, 0xa5, 0x0b, 0xea, 0xbb, 0xae, 0xfe, 0x20, 0xe5, - 0x0b, 0x79, 0x72, 0x86, 0x40, 0x11, 0x72, 0x55, 0x7a, 0xdc, 0x41, 0x28, 0xd0, 0x73, 0x0f, 0x1d, - 0xa1, 0x94, 0xa7, 0xe7, 0x15, 0x84, 0x72, 0x05, 0xf3, 0xc0, 0x43, 0x85, 0x1d, 0xb1, 0x10, 0x71, - 0x89, 0xe0, 0x90, 0xf4, 0xad, 0xe9, 0xcc, 0xcf, 0x30, 0xf7, 0xe3, 0x80, 0xe4, 0x08, 0xfe, 0x7a, - 0x1e, 0x92, 0x11, 0x40, 0x5e, 0xbf, 0x07, 0x48, 0x50, 0xb2, 0x7d, 0xba, 0x57, 0x16, 0xd0, 0xbd, - 0xf2, 0x6f, 0x00, 0xe5, 0x67, 0x55, 0x55, 0x05, 0x85, 0x41, 0x67, 0x21, 0x70, 0x56, 0x02, 0xe8, - 0x0c, 0xff, 0x0a, 0x99, 0xdd, 0x89, 0x01, 0xbf, 0x4b, 0x86, 0xce, 0xdd, 0x87, 0xa0, 0xe3, 0x03, - 0x67, 0xe5, 0x6f, 0x42, 0x27, 0x3a, 0xce, 0x95, 0x44, 0x2a, 0x78, 0xf9, 0x2b, 0xe3, 0x3c, 0x7e, - 0x6f, 0x9c, 0xc7, 0x1f, 0x18, 0x67, 0x35, 0xc7, 0x46, 0x9a, 0xab, 0x2a, 0x8b, 0x06, 0x5b, 0x06, - 0xbd, 0xe8, 0x77, 0x78, 0xe0, 0x1c, 0xb7, 0x60, 0x5e, 0xd9, 0x91, 0x65, 0x84, 0x9e, 0xa0, 0x17, - 0x70, 0x35, 0xb9, 0xda, 0xdf, 0x12, 0x88, 0x82, 0x1c, 0xae, 0x25, 0xa4, 0x14, 0x29, 0x13, 0x59, - 0x56, 0x56, 0x7e, 0x0b, 0x40, 0x57, 0xef, 0xf1, 0x9b, 0xab, 0x6e, 0xf3, 0x3d, 0x10, 0x91, 0x05, - 0x62, 0x29, 0xc7, 0xf9, 0xcd, 0x05, 0x22, 0x8e, 0xfa, 0x2e, 0x1d, 0xe5, 0x4a, 0x64, 0xf5, 0xfc, - 0x9d, 0x51, 0xee, 0xff, 0xcf, 0x30, 0xca, 0xe6, 0xdf, 0x1d, 0xe5, 0xd6, 0xff, 0x9f, 0x47, 0x19, - 0xa7, 0xf7, 0xd1, 0x32, 0x6a, 0xbf, 0x47, 0x9b, 0xb5, 0x80, 0xbd, 0x34, 0x35, 0x23, 0x4a, 0xf1, - 0xa3, 0x9e, 0xde, 0x44, 0x51, 0x66, 0xe5, 0xa3, 0x50, 0xb9, 0x7f, 0x67, 0x1d, 0xb8, 0x47, 0x90, - 0xac, 0xfc, 0x35, 0x98, 0xcc, 0x83, 0x64, 0xe5, 0xaf, 0x60, 0x1e, 0x4f, 0x60, 0x2c, 0x02, 0xc5, - 0x0a, 0x85, 0x05, 0xe4, 0x40, 0xaf, 0xbb, 0x39, 0x49, 0xf2, 0xdd, 0xe1, 0x37, 0x12, 0x39, 0x20, - 0x2f, 0x06, 0xd2, 0x9a, 0x89, 0xc8, 0x97, 0x21, 0x03, 0x4a, 0x1c, 0xf7, 0xca, 0x3f, 0x20, 0xf8, - 0xcd, 0x11, 0x01, 0xf1, 0x1d, 0x8f, 0xd5, 0x00, 0x69, 0xa1, 0x1c, 0xff, 0xd5, 0xde, 0x4e, 0x89, - 0x28, 0x55, 0xc0, 0x7f, 0xa2, 0xf4, 0x55, 0x20, 0xf7, 0xb7, 0xd4, 0xc5, 0x2b, 0xad, 0x9d, 0xb4, - 0xa2, 0xae, 0x06, 0x26, 0xc7, 0xa8, 0x38, 0xb6, 0xac, 0x66, 0x95, 0xd5, 0xbc, 0xc2, 0xaa, 0x3e, - 0x67, 0x23, 0x5c, 0x54, 0xb9, 0x5f, 0x64, 0x61, 0x03, 0x2b, 0xf1, 0x16, 0x5a, 0x95, 0x48, 0xdf, - 0x1f, 0x35, 0xc3, 0xb0, 0x46, 0x4b, 0x1b, 0x20, 0x25, 0x36, 0x22, 0x2b, 0xfd, 0xb2, 0x21, 0x80, - 0xfa, 0xc4, 0x37, 0x70, 0xaf, 0x3a, 0x7d, 0x81, 0x50, 0xcd, 0x12, 0x18, 0xf9, 0xc5, 0x3e, 0x3e, - 0x0c, 0xfc, 0x8f, 0x6f, 0x85, 0x36, 0xb0, 0xa4, 0xfe, 0x4e, 0xb2, 0xf5, 0x04, 0x6a, 0x17, 0xd0, - 0x79, 0x3f, 0x3e, 0x0e, 0x45, 0x89, 0x21, 0x79, 0xcb, 0x80, 0x4a, 0x97, 0x0d, 0x81, 0x43, 0x03, - 0x95, 0x18, 0xde, 0x1d, 0x03, 0xc8, 0xa0, 0xfc, 0x18, 0x2e, 0x74, 0xd0, 0x17, 0x96, 0x0c, 0x41, - 0x59, 0x3c, 0x84, 0xa4, 0xde, 0x47, 0xea, 0xde, 0x82, 0x09, 0xb2, 0xa4, 0x6e, 0x05, 0xeb, 0x5e, - 0xf9, 0x18, 0x91, 0x62, 0xcd, 0xad, 0x0a, 0x57, 0xf7, 0xf6, 0x44, 0x35, 0x97, 0x03, 0x86, 0x14, - 0xf8, 0x28, 0x6e, 0x95, 0x0a, 0x42, 0x86, 0xab, 0x7f, 0xdf, 0xd1, 0x34, 0x73, 0x59, 0xe7, 0x69, - 0x81, 0x0f, 0x52, 0xa8, 0x63, 0xb6, 0xf9, 0xa9, 0xab, 0x9a, 0x6d, 0xab, 0xff, 0x21, 0x79, 0xd8, - 0xb3, 0x04, 0xa2, 0x42, 0xa3, 0x2c, 0x2c, 0x5b, 0x64, 0x5e, 0x12, 0x0d, 0x43, 0xee, 0x62, 0xff, - 0x88, 0x46, 0x21, 0xdb, 0x03, 0xc7, 0x36, 0xb4, 0x05, 0xa7, 0x0f, 0x57, 0x73, 0x68, 0xa6, 0x05, - 0x38, 0x5f, 0x2d, 0x60, 0xbc, 0x2d, 0xd7, 0x10, 0xa3, 0xe6, 0x13, 0x48, 0x51, 0x44, 0xce, 0x66, - 0x27, 0x8c, 0xc7, 0x2e, 0xbc, 0xf2, 0x0a, 0x39, 0xdd, 0xbc, 0xbd, 0x36, 0x2c, 0x8f, 0x2c, 0x11, - 0x78, 0x19, 0xce, 0xaa, 0x43, 0x78, 0x24, 0x79, 0xec, 0x86, 0x8f, 0xcd, 0xf0, 0x71, 0x84, 0x8f, - 0x1b, 0xb9, 0xd0, 0x8c, 0xb0, 0x12, 0x6b, 0x35, 0x97, 0xd8, 0x6a, 0x52, 0xa3, 0xb9, 0x68, 0xa3, - 0x2b, 0xef, 0xb6, 0x9a, 0x4f, 0xb6, 0x14, 0x41, 0xa3, 0xf9, 0x70, 0x71, 0x78, 0xaf, 0xd5, 0xfc, - 0x47, 0x86, 0xba, 0xc2, 0xb5, 0x5a, 0x98, 0x37, 0x99, 0xcc, 0xad, 0x6f, 0xa2, 0xdf, 0x91, 0x13, - 0x6a, 0x70, 0x09, 0x97, 0x37, 0xaa, 0x41, 0x6b, 0xe3, 0x51, 0x92, 0xa1, 0x84, 0x05, 0xcb, 0xe4, - 0xcd, 0x3d, 0x5d, 0x83, 0x0a, 0x37, 0x11, 0x43, 0x56, 0x44, 0x2b, 0x84, 0xca, 0x5a, 0xfe, 0xf2, - 0x8d, 0x9b, 0x5a, 0x49, 0x62, 0xc1, 0x8b, 0x36, 0x69, 0x5b, 0x23, 0x93, 0x64, 0xde, 0xc5, 0xcd, - 0x2e, 0x94, 0x0d, 0x70, 0xcb, 0xca, 0xbf, 0xbc, 0xa9, 0x2e, 0x5a, 0x30, 0xcb, 0x41, 0x2b, 0x54, - 0xc7, 0x86, 0x66, 0x76, 0xbd, 0x5e, 0x5d, 0xac, 0xc4, 0x28, 0x08, 0xdb, 0x31, 0x3b, 0x11, 0x6c, - 0xd2, 0x43, 0x61, 0x5c, 0x77, 0x89, 0x22, 0xaf, 0x8d, 0x99, 0x25, 0x2e, 0x62, 0x10, 0x13, 0xfc, - 0x03, 0x75, 0x74, 0x28, 0x85, 0x2a, 0xb3, 0x3d, 0xbe, 0x07, 0x4c, 0x0a, 0x4a, 0xf4, 0x22, 0x40, - 0xbe, 0xf2, 0x21, 0x88, 0xb1, 0x1e, 0x10, 0x88, 0x35, 0x0b, 0x14, 0x62, 0x44, 0xf4, 0x11, 0xa0, - 0x1a, 0xcd, 0xf3, 0x42, 0x69, 0x63, 0xc5, 0xaf, 0x7c, 0x14, 0xd5, 0x35, 0x22, 0x2b, 0x3f, 0x8d, - 0x59, 0x26, 0x74, 0x60, 0xba, 0x07, 0x90, 0xe7, 0xc1, 0xbd, 0xc2, 0x6d, 0x20, 0xd7, 0xc5, 0x6b, - 0x12, 0xba, 0x34, 0x94, 0xc5, 0xbe, 0xd2, 0x58, 0xa6, 0x44, 0x0c, 0x91, 0x45, 0xe6, 0x0d, 0x41, - 0x16, 0x66, 0xcb, 0x24, 0x5b, 0xda, 0x0b, 0x73, 0xcc, 0x13, 0x48, 0x18, 0xce, 0x94, 0x9f, 0xb7, - 0x98, 0x6a, 0x32, 0xcb, 0x16, 0x85, 0x6d, 0xa5, 0xe3, 0x93, 0x49, 0x1c, 0x5c, 0x41, 0x58, 0x55, - 0xdf, 0x3e, 0x99, 0xa3, 0x39, 0x57, 0xe2, 0x1c, 0xc4, 0xef, 0x46, 0x80, 0x0c, 0x7c, 0x89, 0x02, - 0x06, 0xb7, 0x89, 0xc9, 0xad, 0x7c, 0x88, 0xa7, 0x00, 0xd9, 0x74, 0x93, 0x96, 0x38, 0x9c, 0x71, - 0x58, 0xc1, 0x8b, 0xc7, 0x2e, 0x28, 0xf0, 0x89, 0x9d, 0x76, 0xae, 0x22, 0xce, 0x20, 0xe5, 0xda, - 0xaa, 0x19, 0x54, 0xe7, 0xbb, 0x7b, 0xc0, 0x07, 0xb6, 0x7b, 0x92, 0xc9, 0x64, 0x80, 0x56, 0x30, - 0x13, 0x27, 0x7f, 0x91, 0x3e, 0x2c, 0x92, 0xcd, 0xa9, 0xf2, 0x1d, 0x8e, 0x8d, 0x45, 0x38, 0x7c, - 0xc7, 0x1e, 0xd6, 0x19, 0x2f, 0x10, 0x5d, 0xe9, 0xb4, 0xc3, 0xa8, 0xcd, 0x6c, 0x76, 0xd3, 0xfa, - 0x84, 0x3e, 0x33, 0xa9, 0x2e, 0xa4, 0x1e, 0x56, 0xed, 0x9e, 0xce, 0x53, 0xd2, 0x0a, 0x4f, 0x4a, - 0xbf, 0x41, 0x49, 0xd4, 0x2d, 0x67, 0x09, 0x21, 0x05, 0x19, 0xfe, 0xbd, 0x74, 0xc4, 0x2d, 0xba, - 0xdd, 0xc3, 0x76, 0x4a, 0xa4, 0x3e, 0x1d, 0xae, 0x28, 0x65, 0x48, 0x11, 0xbc, 0x7b, 0x2e, 0x43, - 0x8d, 0xd6, 0x29, 0x11, 0xa3, 0x78, 0x61, 0x8f, 0xd9, 0x12, 0x19, 0xf5, 0x6c, 0xf3, 0xb7, 0x08, - 0x7c, 0x92, 0x8c, 0x53, 0x24, 0x1b, 0xcf, 0x3f, 0x48, 0x90, 0x7b, 0x0f, 0xff, 0xc3, 0x49, 0x31, - 0x58, 0x02, 0x58, 0x34, 0xc1, 0x08, 0xc1, 0x31, 0xc8, 0xf9, 0x7d, 0xa1, 0xef, 0xe1, 0x80, 0xc2, - 0x3c, 0x30, 0x93, 0xc2, 0x05, 0x8e, 0x3a, 0x63, 0x10, 0x7f, 0x4d, 0x44, 0x5b, 0x2e, 0xbf, 0x56, - 0xcd, 0xe5, 0xd7, 0xa3, 0x8c, 0x8a, 0xe4, 0x69, 0x5a, 0x63, 0xb6, 0xa8, 0x75, 0x0c, 0xd0, 0x11, - 0x83, 0xac, 0x11, 0x2d, 0x91, 0x36, 0xb0, 0x37, 0xf6, 0xe9, 0x80, 0xc1, 0x80, 0x6f, 0x0b, 0x9d, - 0x2d, 0x70, 0x49, 0xf3, 0xc7, 0xed, 0x0f, 0x98, 0x81, 0x3d, 0xec, 0x66, 0x6e, 0x47, 0x14, 0x92, - 0x3a, 0x99, 0xdb, 0x79, 0xbf, 0x77, 0x7f, 0xfe, 0xdb, 0x7a, 0x95, 0x5f, 0xd0, 0xab, 0xfc, 0x07, - 0x7a, 0x85, 0x65, 0xff, 0x4d, 0xdd, 0xba, 0xb3, 0x8c, 0xe4, 0x7e, 0x7d, 0xf9, 0x5c, 0xad, 0x14, - 0x8a, 0x0b, 0x11, 0xba, 0xc2, 0x63, 0x94, 0xe4, 0xe4, 0xf5, 0xe0, 0xdf, 0xee, 0xe1, 0x4a, 0xbc, - 0x8b, 0x61, 0x0f, 0xf7, 0x1c, 0xed, 0x75, 0x49, 0x17, 0x4b, 0xeb, 0x31, 0x96, 0x96, 0x4c, 0x74, - 0x24, 0xe7, 0x07, 0xba, 0xb8, 0xf2, 0x11, 0x28, 0xc6, 0x0d, 0xea, 0x64, 0x52, 0x85, 0x72, 0x2e, - 0x7d, 0xa7, 0x92, 0xd6, 0xca, 0xe2, 0x3d, 0xa9, 0x64, 0x76, 0x14, 0x11, 0x29, 0x60, 0xec, 0xda, - 0x5b, 0xb0, 0x55, 0x55, 0xc8, 0x97, 0xe8, 0xb6, 0xf4, 0xef, 0x99, 0x2c, 0xae, 0x6d, 0x0d, 0xf5, - 0xfb, 0x04, 0x5b, 0x16, 0x67, 0xb6, 0x20, 0x99, 0x3e, 0xbe, 0x7f, 0xf5, 0x8f, 0x9a, 0x31, 0xd8, - 0xf6, 0xd5, 0xca, 0x7b, 0xfb, 0x57, 0x04, 0x41, 0xe1, 0xb8, 0xc8, 0x32, 0x18, 0x42, 0x9d, 0x0b, - 0xf9, 0x08, 0x3c, 0x9d, 0x2d, 0x8e, 0x2e, 0x0e, 0x2b, 0xce, 0x2b, 0xa3, 0x78, 0xcb, 0xfd, 0x1b, - 0xf0, 0x46, 0xba, 0xe6, 0xfa, 0x78, 0x2b, 0x2a, 0xd5, 0xbf, 0x82, 0x37, 0xbc, 0xba, 0x14, 0x3d, - 0xbe, 0x27, 0xef, 0xe1, 0x2e, 0xc8, 0xf8, 0x3f, 0x03, 0xfe, 0x12, 0xb0, 0x15, 0xc7, 0x69, 0x2e, - 0xc4, 0x9f, 0xee, 0x0f, 0x6d, 0x39, 0x0e, 0xf3, 0x31, 0x1c, 0x0a, 0x64, 0xc9, 0x7f, 0x07, 0x91, - 0x11, 0x67, 0x84, 0xdf, 0xdc, 0x0d, 0xdb, 0xce, 0x25, 0xe9, 0x3b, 0xbc, 0xcd, 0x73, 0xe0, 0x7a, - 0x56, 0x9f, 0x28, 0x97, 0x2b, 0xbf, 0x87, 0x92, 0xc4, 0xed, 0x90, 0xdf, 0xb3, 0x87, 0x7e, 0x70, - 0x3f, 0x18, 0x21, 0xba, 0xf2, 0x11, 0x84, 0xe4, 0xc5, 0x0d, 0x3a, 0x1e, 0x21, 0xb7, 0x1c, 0x0f, - 0x85, 0xb8, 0x21, 0x99, 0x43, 0xc4, 0x72, 0x3c, 0xf8, 0x2e, 0x0b, 0x49, 0xc3, 0x5c, 0x32, 0x47, - 0xb6, 0xf3, 0xef, 0x4d, 0x0e, 0x86, 0x88, 0xfc, 0x3f, 0x33, 0x35, 0xca, 0xff, 0x9f, 0x4e, 0x8c, - 0x02, 0x4c, 0x0c, 0x86, 0x88, 0xfc, 0x72, 0x44, 0x14, 0xff, 0xf2, 0x84, 0x50, 0xb4, 0xca, 0x5f, - 0x9a, 0x10, 0x85, 0x8f, 0x4d, 0x88, 0xc2, 0xff, 0x12, 0x13, 0xa2, 0x18, 0x4c, 0x88, 0xc2, 0x9c, - 0x20, 0x1e, 0x17, 0xbc, 0xa9, 0xb2, 0x7f, 0xad, 0x75, 0xc9, 0x95, 0xe7, 0xef, 0x68, 0x7f, 0xec, - 0x6c, 0x4a, 0x5c, 0xd6, 0x8f, 0x4b, 0xf1, 0xf4, 0xf4, 0x8b, 0xc8, 0x6b, 0x7b, 0x4d, 0x8b, 0x54, - 0x14, 0xa7, 0x06, 0x16, 0xca, 0x86, 0xf7, 0x93, 0x8b, 0x59, 0x52, 0x98, 0xa9, 0xc3, 0x71, 0xe1, - 0x85, 0x5b, 0xc5, 0x1c, 0xe8, 0x31, 0x59, 0xc1, 0xae, 0x34, 0xc0, 0x1e, 0xe8, 0x5e, 0xb4, 0xff, - 0x73, 0x86, 0x93, 0x95, 0x6f, 0xf6, 0xc6, 0x4d, 0x78, 0x34, 0x89, 0x9f, 0xa2, 0x5e, 0x82, 0x51, - 0x88, 0x22, 0x93, 0x1e, 0x70, 0x09, 0x51, 0x4c, 0x90, 0x5e, 0x2e, 0x65, 0x4a, 0xc4, 0x90, 0x89, - 0x5b, 0xdc, 0x4a, 0x26, 0x17, 0x20, 0x5b, 0xc9, 0xac, 0x01, 0x6d, 0x9a, 0x4d, 0xd7, 0x5e, 0x67, - 0xbe, 0x3f, 0xb1, 0x51, 0x5e, 0x38, 0xd8, 0xc7, 0x05, 0xb0, 0x0d, 0xb7, 0xf6, 0xed, 0x57, 0x43, - 0x5c, 0x62, 0x3d, 0x03, 0xed, 0x98, 0x55, 0xb4, 0x5c, 0x9d, 0x26, 0x28, 0xb0, 0xdd, 0xa8, 0x3e, - 0xfd, 0xae, 0x3a, 0xbd, 0xb2, 0xc0, 0x32, 0x43, 0xd0, 0x0d, 0xca, 0xe9, 0x02, 0xb3, 0x0c, 0xfb, - 0x9c, 0x30, 0x73, 0x79, 0x6d, 0xfa, 0x63, 0xca, 0xf4, 0xca, 0x07, 0xad, 0x32, 0x73, 0x46, 0x19, - 0xd2, 0x89, 0x98, 0x06, 0xbc, 0x42, 0xb9, 0x56, 0xd4, 0xd4, 0x42, 0xc1, 0x87, 0x54, 0x13, 0x92, - 0xef, 0x22, 0x46, 0x65, 0x53, 0x12, 0x5e, 0x59, 0x48, 0xc3, 0x0b, 0xbd, 0x8d, 0xc8, 0xcd, 0x20, - 0x16, 0x9b, 0x95, 0xac, 0x4c, 0x8c, 0xb8, 0xd1, 0x43, 0x5a, 0x37, 0x5f, 0x78, 0x23, 0xa1, 0x65, - 0x6b, 0xe6, 0x8d, 0xda, 0x4c, 0x2d, 0x76, 0x5e, 0x63, 0x46, 0xbb, 0x64, 0xe7, 0x35, 0xea, 0xcc, - 0x94, 0xec, 0x36, 0x37, 0xd7, 0xe8, 0xca, 0x5c, 0xab, 0xb9, 0x0f, 0xb8, 0xcc, 0xcd, 0x37, 0xca, - 0x4c, 0x46, 0x2b, 0x1f, 0x6c, 0x76, 0xae, 0xd5, 0xfc, 0x42, 0x97, 0xc8, 0x42, 0xb1, 0xb9, 0xc4, - 0xf5, 0x33, 0x98, 0xec, 0x7f, 0x71, 0xb4, 0x85, 0x45, 0xa3, 0x55, 0x8a, 0xad, 0xc5, 0xcd, 0x32, - 0xf2, 0x59, 0x59, 0xee, 0x20, 0xc8, 0x42, 0x44, 0x47, 0xb7, 0x63, 0xa8, 0xeb, 0xb0, 0x8a, 0x86, - 0x9a, 0xa8, 0x65, 0xc9, 0xd9, 0xc5, 0x60, 0xe0, 0x37, 0xf8, 0x09, 0x8f, 0xf9, 0x48, 0xf3, 0xc5, - 0x82, 0x20, 0x0c, 0xcb, 0xfc, 0x3b, 0x63, 0x65, 0xd0, 0x7b, 0x3e, 0x98, 0x10, 0xe4, 0x64, 0xcc, - 0x12, 0x06, 0x4b, 0x76, 0x01, 0x2c, 0x57, 0xfb, 0xa8, 0xd3, 0xaa, 0x40, 0x0e, 0x57, 0x53, 0x78, - 0xe5, 0x2a, 0x2a, 0xf3, 0x44, 0x0e, 0xe1, 0x11, 0x74, 0xa2, 0xdf, 0xa5, 0xe6, 0xfc, 0x7e, 0xd7, - 0x2f, 0x3f, 0xd2, 0x45, 0x41, 0x35, 0x3c, 0xe6, 0xc6, 0x87, 0xfa, 0x6f, 0x8d, 0x44, 0x3b, 0xce, - 0xda, 0x66, 0x77, 0xbd, 0xa9, 0xba, 0x5a, 0xb9, 0x28, 0xeb, 0x77, 0x5b, 0xe7, 0x57, 0x23, 0xe5, - 0x78, 0xbf, 0x6b, 0xe1, 0xe5, 0x99, 0x67, 0xd7, 0xb7, 0xbd, 0xdd, 0xdb, 0x2e, 0x3c, 0x6d, 0x91, - 0xcb, 0x34, 0xf7, 0xb6, 0x1b, 0x8f, 0xf0, 0xb3, 0x5d, 0xda, 0x1b, 0x74, 0x4a, 0x98, 0xd0, 0x78, - 0x38, 0xbb, 0xbe, 0x52, 0x0e, 0x1b, 0x8e, 0x5b, 0x6c, 0x95, 0x2f, 0x31, 0xe1, 0xca, 0xbc, 0xbc, - 0xcd, 0x6d, 0x41, 0x9e, 0xf1, 0xf3, 0x68, 0x58, 0x79, 0xbc, 0xbc, 0xc5, 0xc4, 0xa3, 0xd6, 0x6e, - 0xef, 0xa9, 0x35, 0x6a, 0x34, 0x76, 0xdc, 0x53, 0x78, 0x5d, 0xdb, 0x69, 0xb4, 0xda, 0xc3, 0xd7, - 0x7d, 0x2c, 0xb0, 0xd5, 0xbc, 0xbe, 0xbd, 0xda, 0xba, 0xdb, 0xee, 0xdd, 0x18, 0x8f, 0xd5, 0xe6, - 0x8e, 0xd5, 0x18, 0xed, 0x9c, 0x9e, 0xdd, 0xaf, 0x99, 0x55, 0x73, 0xb4, 0xad, 0xdb, 0x13, 0xef, - 0xf2, 0xac, 0xf8, 0x54, 0xf1, 0x9a, 0xce, 0xcd, 0x41, 0x7f, 0xa7, 0xbf, 0x57, 0xb4, 0x2e, 0xde, - 0x26, 0x46, 0x7b, 0x74, 0xf5, 0x6a, 0xe7, 0xae, 0xaf, 0xdb, 0xe6, 0x5d, 0xf6, 0x6c, 0xf0, 0x34, - 0x78, 0x7b, 0xd5, 0x9c, 0xc6, 0xd6, 0x64, 0xfc, 0xf0, 0x66, 0x6e, 0x8d, 0x0a, 0x7a, 0xf7, 0x45, - 0xdb, 0xdb, 0xed, 0x3c, 0x4c, 0x6e, 0x07, 0xbd, 0xe3, 0xec, 0x64, 0xef, 0x54, 0xd9, 0x1e, 0x1f, - 0x75, 0x26, 0xaf, 0x0f, 0x4f, 0xbb, 0xe7, 0xad, 0x72, 0xf6, 0xda, 0xa9, 0x66, 0x9b, 0x9d, 0xb5, - 0xc1, 0xe1, 0x76, 0xe9, 0x6c, 0xd4, 0x5e, 0xb3, 0x9c, 0xd3, 0x61, 0xe3, 0x82, 0x8c, 0x65, 0xd7, - 0xd8, 0xbb, 0x79, 0xb9, 0x1e, 0x5c, 0xf6, 0xb7, 0xb7, 0x45, 0xb4, 0xcd, 0xc6, 0x9d, 0xa2, 0x86, - 0x51, 0xce, 0x15, 0xd9, 0x0b, 0x9d, 0x9b, 0x01, 0x88, 0x60, 0x76, 0xb8, 0x82, 0xa7, 0x1d, 0x47, - 0x7b, 0x1d, 0x68, 0xae, 0x77, 0xe4, 0x5a, 0x26, 0x5d, 0x3f, 0x3b, 0x40, 0xd7, 0xbd, 0x85, 0xf3, - 0x68, 0x41, 0x2d, 0x31, 0x0a, 0x3c, 0x34, 0x81, 0x41, 0x9a, 0x2d, 0x4d, 0x40, 0xcb, 0xe6, 0x6f, - 0xd6, 0xe5, 0xfb, 0x11, 0xe3, 0xec, 0x4c, 0x89, 0x59, 0x2a, 0x74, 0x89, 0xb2, 0xf8, 0x9f, 0xae, - 0x66, 0xe0, 0x1e, 0xeb, 0xc6, 0x2d, 0x49, 0x21, 0x4e, 0xfd, 0x09, 0x3e, 0xc1, 0x49, 0x75, 0x13, - 0x89, 0x01, 0x67, 0x6b, 0x54, 0x68, 0x68, 0x99, 0x1d, 0x22, 0x2e, 0xd0, 0x71, 0x37, 0x2d, 0xcb, - 0x8b, 0x55, 0x1a, 0x18, 0xfc, 0x09, 0x50, 0x79, 0xb9, 0xb7, 0x27, 0x6e, 0x9c, 0xaa, 0x6d, 0x4d, - 0x18, 0xe9, 0x5e, 0x8f, 0x53, 0xf5, 0x49, 0x84, 0x70, 0x62, 0x60, 0x54, 0x94, 0x4a, 0x71, 0x1d, - 0xe6, 0xc4, 0xde, 0xae, 0xb2, 0xbb, 0xce, 0x16, 0x95, 0x15, 0xa1, 0x39, 0x11, 0x1a, 0xba, 0xd3, - 0xb2, 0x2c, 0xeb, 0x45, 0xd7, 0xc8, 0x79, 0x0a, 0xaf, 0xa7, 0x09, 0xdf, 0x54, 0x81, 0xfa, 0x4a, - 0xf7, 0x3c, 0xcf, 0x76, 0x6b, 0xd9, 0xec, 0xc8, 0xd0, 0xda, 0x19, 0x90, 0x0e, 0x5b, 0x16, 0x68, - 0xed, 0x5a, 0x06, 0x77, 0x48, 0xed, 0x2c, 0x48, 0x23, 0xaa, 0xd3, 0xd5, 0x40, 0x0e, 0xfd, 0x4f, - 0xe6, 0xeb, 0xba, 0x42, 0xce, 0x35, 0xb4, 0xac, 0x7e, 0x7f, 0x60, 0x12, 0xa5, 0x53, 0xdd, 0x58, - 0xb4, 0x7c, 0x99, 0xd4, 0x25, 0xfc, 0xef, 0xf2, 0x80, 0x45, 0x2e, 0xe4, 0x1f, 0x65, 0x02, 0x18, - 0x9d, 0x5f, 0xdc, 0x20, 0xdd, 0xd6, 0x19, 0x89, 0xb8, 0x73, 0x54, 0x6d, 0xce, 0x53, 0x35, 0x13, - 0x8b, 0x98, 0x2d, 0x63, 0xd1, 0xf5, 0x33, 0xe2, 0x47, 0xa9, 0x15, 0x57, 0xff, 0x60, 0x28, 0xf3, - 0x14, 0x9f, 0xbc, 0x5d, 0xdc, 0x0f, 0xaf, 0x76, 0x0b, 0xe5, 0x80, 0x00, 0x92, 0x41, 0xef, 0xf9, - 0x5c, 0xac, 0xbf, 0xf3, 0x47, 0x63, 0xf1, 0x99, 0x1f, 0xe5, 0xca, 0x12, 0x07, 0x58, 0x72, 0x7b, - 0xc1, 0x3c, 0xea, 0x62, 0x08, 0xc0, 0x0b, 0x1c, 0x43, 0x1b, 0x01, 0x85, 0x7f, 0xe0, 0x16, 0x41, - 0xbc, 0xa6, 0x81, 0x59, 0x6c, 0x86, 0xcd, 0xe0, 0xbf, 0x15, 0xe1, 0xc6, 0x12, 0x06, 0xae, 0x26, - 0x34, 0x07, 0xba, 0x81, 0x61, 0xc2, 0x04, 0x8d, 0xae, 0xe0, 0x32, 0x49, 0x45, 0x79, 0x09, 0x9a, - 0x76, 0x40, 0x12, 0x66, 0x27, 0x9a, 0x04, 0x58, 0x77, 0x60, 0x66, 0xd2, 0xb2, 0x8f, 0xd6, 0x40, - 0x68, 0x41, 0x1e, 0x47, 0xf3, 0x06, 0x8e, 0x29, 0xe0, 0x7e, 0xbd, 0x06, 0xdc, 0x5c, 0xef, 0x6b, - 0x64, 0x93, 0x07, 0x69, 0x1d, 0xcf, 0x2c, 0xba, 0x78, 0x96, 0x07, 0xa9, 0x1c, 0x2f, 0x60, 0x00, - 0x64, 0x90, 0x67, 0x94, 0x4e, 0xf1, 0x00, 0x2d, 0x10, 0xaf, 0x63, 0x6a, 0x4e, 0x86, 0x39, 0x7d, - 0xce, 0x21, 0x2f, 0xb2, 0x1b, 0xed, 0x9d, 0x58, 0x0e, 0x91, 0x4c, 0xce, 0xfd, 0x5e, 0x59, 0xc4, - 0x29, 0x6a, 0x09, 0x0b, 0x98, 0x2f, 0x9f, 0xe7, 0xcb, 0x0f, 0x4c, 0x3c, 0x95, 0xef, 0x90, 0xa9, - 0x1f, 0xd4, 0xc3, 0x4d, 0xf6, 0x95, 0x70, 0xb6, 0xaf, 0xec, 0x59, 0x0e, 0x0c, 0xdf, 0xf5, 0x04, - 0x5b, 0x73, 0xc8, 0xfd, 0xcd, 0xd0, 0xb6, 0x2c, 0xe8, 0xa0, 0x3b, 0xe0, 0x8d, 0x1e, 0x38, 0x09, - 0x35, 0x72, 0x0e, 0x13, 0xe0, 0x40, 0xe0, 0x61, 0x75, 0x3a, 0x6c, 0xd8, 0x00, 0x96, 0x3e, 0x02, - 0xc1, 0x85, 0xd9, 0x0c, 0x2c, 0x71, 0xd4, 0xd3, 0x4c, 0x72, 0xf8, 0x0f, 0x60, 0x01, 0x60, 0x46, - 0xdc, 0x47, 0xe7, 0xac, 0x1e, 0xa2, 0x1d, 0x61, 0x26, 0x26, 0x20, 0x7a, 0x6e, 0x58, 0x8a, 0x94, - 0x88, 0x7c, 0x76, 0xaa, 0x69, 0x65, 0x08, 0xa0, 0x37, 0xac, 0x96, 0x6e, 0xcb, 0xa3, 0x7b, 0x99, - 0xed, 0xef, 0xba, 0x3b, 0xb0, 0xe0, 0xca, 0x23, 0x57, 0x6e, 0xa1, 0x53, 0xbb, 0x4c, 0x34, 0x56, - 0x57, 0x46, 0xfc, 0x81, 0x86, 0x29, 0x43, 0xee, 0xfa, 0xa7, 0x9c, 0x6c, 0x5a, 0x67, 0xda, 0x08, - 0x75, 0x2b, 0x7c, 0xd1, 0xdd, 0x73, 0x93, 0x24, 0x1a, 0x0d, 0xfa, 0x7a, 0x32, 0xa4, 0xbf, 0x28, - 0x1a, 0xd0, 0x27, 0x32, 0xab, 0xf0, 0xd1, 0x9d, 0x98, 0xad, 0x6b, 0x80, 0x88, 0xff, 0x7c, 0xd3, - 0x35, 0xae, 0xb4, 0x16, 0xe4, 0x57, 0xe4, 0x9e, 0xea, 0x12, 0xff, 0x21, 0xfc, 0x04, 0xcf, 0x57, - 0xfb, 0x5b, 0xec, 0x69, 0x7b, 0xfb, 0x86, 0x56, 0xbf, 0x33, 0x70, 0xea, 0x65, 0x05, 0x1e, 0x6e, - 0x54, 0xa7, 0x8e, 0xbf, 0x78, 0x10, 0x83, 0xd4, 0xc4, 0x8e, 0xce, 0xef, 0x8d, 0x21, 0xd9, 0x7f, - 0xb9, 0x50, 0x0d, 0x78, 0x6b, 0xc1, 0x2b, 0xfe, 0x0c, 0x1c, 0x8c, 0x9e, 0x43, 0x85, 0xb3, 0xfa, - 0x6a, 0x4e, 0x06, 0xd8, 0x79, 0x74, 0xc5, 0x20, 0x45, 0xba, 0xdb, 0x16, 0x60, 0x1d, 0x1e, 0x81, - 0xc5, 0x06, 0x8f, 0xd6, 0x08, 0x10, 0x7b, 0x6b, 0x02, 0x36, 0xda, 0xf0, 0x0a, 0xea, 0x1d, 0x8c, - 0x18, 0xd3, 0xe9, 0x8f, 0xdd, 0xf2, 0x9b, 0xa7, 0x4f, 0x64, 0xf0, 0x58, 0xed, 0x08, 0x3e, 0x7a, - 0x4e, 0x7d, 0x4d, 0x6e, 0xd7, 0xdb, 0xa0, 0x0d, 0xa1, 0x10, 0x2a, 0x77, 0xc6, 0x28, 0xc7, 0xd4, - 0xbf, 0xff, 0x90, 0x6d, 0x5c, 0x52, 0xeb, 0xd3, 0x99, 0xac, 0xf9, 0x0f, 0x86, 0xff, 0x60, 0x9f, - 0xd5, 0x45, 0x51, 0xb6, 0x0f, 0xb1, 0xf2, 0xb3, 0x41, 0x1f, 0x7f, 0xfa, 0x5e, 0x3d, 0x87, 0x7f, - 0x4f, 0xae, 0xe9, 0xdb, 0x09, 0xd4, 0x8f, 0x5d, 0x80, 0x1f, 0x64, 0x60, 0x58, 0x4a, 0x77, 0x4f, - 0xb1, 0xe5, 0x3e, 0x36, 0xdb, 0xef, 0xe1, 0x58, 0x3b, 0xdd, 0xfa, 0xd4, 0xc3, 0xe3, 0x21, 0xb5, - 0x29, 0x8a, 0x4b, 0x35, 0x90, 0xa1, 0x9c, 0x17, 0x51, 0x6e, 0x76, 0x6b, 0xd3, 0x81, 0x63, 0xd4, - 0x44, 0x71, 0x26, 0xab, 0x86, 0xdd, 0x53, 0xe1, 0x73, 0xb7, 0x96, 0x29, 0xcb, 0x20, 0xbd, 0xd6, - 0x32, 0x95, 0x99, 0x4c, 0x3d, 0x79, 0x30, 0x11, 0xb2, 0xe0, 0x6b, 0xdf, 0xae, 0xd1, 0x13, 0xbb, - 0x6e, 0x6d, 0x4a, 0x8f, 0x38, 0xd4, 0x00, 0x51, 0x4e, 0xb7, 0x59, 0x83, 0x06, 0x5f, 0x07, 0x90, - 0x82, 0xef, 0x3d, 0x6d, 0x0c, 0xef, 0x30, 0x0e, 0xa2, 0x82, 0x62, 0x8a, 0xdd, 0xea, 0x03, 0xf3, - 0xc5, 0x4c, 0xb6, 0xde, 0xc6, 0x04, 0x00, 0xb0, 0xa1, 0x99, 0x35, 0x82, 0xaa, 0xae, 0x3d, 0x72, - 0xd8, 0x93, 0x36, 0xb6, 0xf1, 0xa9, 0xe5, 0x92, 0x52, 0xbd, 0xb6, 0x3a, 0x71, 0xb1, 0xa6, 0x99, - 0x0c, 0x7a, 0x67, 0xfd, 0xfb, 0x77, 0x45, 0xce, 0xe5, 0xe4, 0x7c, 0x51, 0x2e, 0xca, 0xc1, 0x12, - 0xa8, 0x06, 0xcb, 0x64, 0xa6, 0x0b, 0x6b, 0xec, 0xa0, 0x99, 0xd1, 0xad, 0xec, 0xb8, 0xaf, 0xba, - 0x19, 0x10, 0x0e, 0xc5, 0x1f, 0x32, 0x94, 0xc9, 0xcb, 0xb9, 0x35, 0x39, 0x17, 0x16, 0x21, 0xb2, - 0xa3, 0x9b, 0x21, 0x23, 0x6e, 0x59, 0xb8, 0x71, 0x98, 0x81, 0x91, 0x65, 0x8b, 0xd5, 0x1c, 0xfe, - 0xcb, 0xe5, 0x0b, 0x99, 0x67, 0x9b, 0x14, 0xcd, 0x2b, 0xf9, 0x92, 0x5c, 0x90, 0xf3, 0x58, 0xc5, - 0xf2, 0x06, 0x35, 0x00, 0x3f, 0xb0, 0x27, 0xd6, 0x24, 0x94, 0x2b, 0x40, 0xb9, 0xea, 0xef, 0x17, - 0x2b, 0x42, 0x91, 0x42, 0xee, 0x37, 0xcb, 0x29, 0x72, 0x19, 0x20, 0xc2, 0x0f, 0x10, 0x56, 0x79, - 0x1d, 0x08, 0x79, 0x6e, 0x88, 0xe8, 0xb6, 0x82, 0x6b, 0x5a, 0x76, 0xa4, 0x1a, 0x86, 0xad, 0x02, - 0x87, 0xca, 0x96, 0x72, 0xe5, 0xb5, 0x6a, 0x9e, 0xc1, 0x24, 0x0b, 0x03, 0x87, 0x14, 0xa5, 0x9a, - 0xcf, 0x15, 0xca, 0x85, 0x7c, 0x35, 0x5f, 0x2a, 0x94, 0x69, 0x0b, 0x00, 0xf9, 0xbf, 0xda, 0x42, - 0x2e, 0x57, 0xad, 0x54, 0x14, 0x85, 0x6f, 0x22, 0x5f, 0xca, 0xe7, 0x2b, 0xca, 0x5a, 0xb1, 0x92, - 0x2b, 0x55, 0x4a, 0x65, 0x45, 0x11, 0x7f, 0xfc, 0x58, 0xef, 0x0c, 0x4c, 0x12, 0x0c, 0x51, 0xe8, - 0x81, 0xb8, 0x63, 0x68, 0x77, 0xc1, 0xb1, 0xe5, 0x6d, 0x62, 0x6d, 0x4b, 0x49, 0xd3, 0x4f, 0xed, - 0x0c, 0x0d, 0xc5, 0xf2, 0xe5, 0x8b, 0xa9, 0x8d, 0x04, 0x60, 0x4b, 0x78, 0xbb, 0x8c, 0x3f, 0x6b, - 0x37, 0x0a, 0x5a, 0xe1, 0xcb, 0x97, 0x88, 0x94, 0x3a, 0x0b, 0xea, 0x74, 0x41, 0xcf, 0x4d, 0x69, - 0xb2, 0x27, 0x4d, 0x41, 0x5e, 0x62, 0x53, 0x70, 0xd7, 0xd0, 0xf0, 0x27, 0x43, 0x16, 0xdf, 0x0c, - 0x70, 0x81, 0x0b, 0x07, 0x44, 0x49, 0xc7, 0x9b, 0x90, 0x8c, 0x61, 0x59, 0xdc, 0x88, 0xd7, 0xa4, - 0x29, 0x5b, 0xbe, 0xda, 0x19, 0x10, 0xad, 0x58, 0xd1, 0xad, 0x09, 0xf9, 0xc4, 0x65, 0xdd, 0xdd, - 0xda, 0x3e, 0x5b, 0x90, 0xd9, 0xdd, 0x9a, 0x6c, 0x23, 0x7f, 0x3e, 0x03, 0xc5, 0x2c, 0x52, 0x48, - 0x77, 0x77, 0xfb, 0x36, 0xb6, 0x1a, 0x14, 0x53, 0xea, 0xf5, 0xfa, 0x79, 0xf3, 0x19, 0x83, 0xb3, - 0xbe, 0x68, 0x13, 0x17, 0xbe, 0x64, 0xa8, 0x1f, 0x11, 0x5f, 0x08, 0x32, 0x70, 0x45, 0xb4, 0x2f, - 0x5f, 0x44, 0x8b, 0x14, 0x11, 0xeb, 0x75, 0xb4, 0xda, 0x58, 0x1d, 0x4c, 0xfb, 0xd4, 0x70, 0x1c, - 0x75, 0x92, 0xd1, 0x5d, 0xf2, 0x1b, 0x6b, 0xf6, 0xaa, 0xdb, 0x24, 0xde, 0x93, 0xd1, 0x96, 0x6d, - 0x15, 0x44, 0xc9, 0x43, 0xd3, 0x4b, 0x69, 0x19, 0x47, 0xfa, 0xf2, 0x25, 0x9a, 0xd2, 0x9d, 0x4b, - 0x69, 0x72, 0x55, 0x02, 0x1f, 0xb8, 0xf6, 0x9c, 0xb0, 0x3a, 0x3c, 0xae, 0x90, 0x12, 0xd3, 0x50, - 0x51, 0x1a, 0xe4, 0x72, 0xf8, 0xed, 0xb2, 0xdf, 0x66, 0x5a, 0x94, 0xc4, 0x48, 0x39, 0x3c, 0x66, - 0x16, 0x94, 0xcb, 0xe4, 0x73, 0xf9, 0xf2, 0x9f, 0x91, 0x8e, 0xa4, 0x33, 0x6b, 0xb9, 0x52, 0xfe, - 0xcf, 0x48, 0x57, 0xd2, 0x19, 0x65, 0x2d, 0x1f, 0x49, 0xe3, 0x3b, 0x83, 0xc6, 0xd9, 0xeb, 0x13, - 0xac, 0x14, 0x56, 0x31, 0xc1, 0xab, 0x6b, 0x19, 0x64, 0xb8, 0x90, 0x9a, 0x19, 0x6d, 0x72, 0x45, - 0x82, 0x44, 0xa9, 0x06, 0x5c, 0x09, 0x05, 0x60, 0x53, 0x13, 0x3f, 0xd5, 0xeb, 0x5d, 0x74, 0xf0, - 0xee, 0xdb, 0x03, 0x58, 0x37, 0xae, 0x91, 0x40, 0x10, 0x09, 0x68, 0x07, 0xbb, 0x26, 0xd1, 0x63, - 0xd6, 0xe9, 0x7a, 0x04, 0x00, 0xe6, 0xc1, 0xe8, 0x57, 0x26, 0x6d, 0xc2, 0x33, 0x25, 0xab, 0xd0, - 0x71, 0x91, 0x58, 0x5a, 0xea, 0x3e, 0x88, 0x82, 0xac, 0xb2, 0xfb, 0xeb, 0x57, 0x90, 0xbb, 0xe5, - 0xe7, 0x21, 0xe0, 0x08, 0xf2, 0x6c, 0xe4, 0xf2, 0x6b, 0x9b, 0xc4, 0x7b, 0x54, 0xac, 0x11, 0x27, - 0x5b, 0x51, 0x0a, 0x16, 0xc7, 0x2f, 0x5f, 0xbc, 0x0d, 0xe5, 0xcb, 0x97, 0x84, 0x06, 0xeb, 0x3f, - 0xe3, 0xae, 0x92, 0xf4, 0x86, 0x63, 0x59, 0xf8, 0x63, 0x3a, 0xd7, 0x8d, 0x99, 0x50, 0x50, 0xfe, - 0x25, 0x23, 0x26, 0x52, 0x7f, 0x4c, 0xbd, 0x99, 0x1c, 0xfc, 0x91, 0xa4, 0x9f, 0x92, 0x54, 0x4b, - 0xf9, 0xcd, 0x41, 0x67, 0x61, 0xb9, 0x91, 0xe4, 0xa4, 0xe6, 0x12, 0x0a, 0xff, 0x4c, 0x18, 0x9e, - 0x97, 0x30, 0x1c, 0x0e, 0x6f, 0xaa, 0x6d, 0x1b, 0x93, 0xed, 0x4e, 0x17, 0x26, 0x7c, 0x8b, 0x1e, - 0x69, 0x14, 0x0d, 0x94, 0x85, 0x81, 0xae, 0xeb, 0xb0, 0x90, 0x65, 0xc8, 0x3a, 0x96, 0xc1, 0x65, - 0x4c, 0x5a, 0x47, 0x71, 0x45, 0xe3, 0x52, 0x49, 0x03, 0x99, 0x66, 0x77, 0x1d, 0xc0, 0x42, 0xa6, - 0xbc, 0x48, 0x82, 0xfa, 0x88, 0x32, 0xcb, 0xeb, 0x91, 0xbc, 0xb8, 0x8c, 0xb1, 0x7b, 0x27, 0xd7, - 0xfd, 0x5c, 0x5e, 0xd3, 0x16, 0x65, 0x6f, 0x53, 0xcc, 0x91, 0xcb, 0x0f, 0x83, 0x1b, 0x10, 0xf1, - 0x09, 0x3a, 0x49, 0x9e, 0x31, 0x36, 0x1f, 0xbd, 0xd4, 0x05, 0x1e, 0x00, 0x03, 0x7e, 0xd1, 0x26, - 0x2b, 0x1a, 0x04, 0xda, 0x11, 0x14, 0xbf, 0x08, 0x3b, 0xc0, 0xcf, 0x67, 0xee, 0xb5, 0x49, 0x66, - 0x12, 0x43, 0x03, 0xb2, 0x11, 0x72, 0xe3, 0x3e, 0xf7, 0x3d, 0xf2, 0x59, 0x21, 0xcd, 0x96, 0x22, - 0xed, 0x78, 0xab, 0x4d, 0x51, 0x0e, 0xc7, 0x4a, 0x38, 0x2f, 0xde, 0x93, 0x1a, 0xe6, 0x70, 0xbb, - 0x36, 0xcd, 0x41, 0x46, 0x48, 0x17, 0xd6, 0x4d, 0xda, 0x44, 0x8d, 0xb5, 0x08, 0x99, 0x75, 0xdc, - 0x7a, 0x47, 0xb9, 0x4d, 0x35, 0xae, 0x3d, 0xcb, 0x01, 0xa6, 0x8c, 0xcc, 0xef, 0xd0, 0xd3, 0xfa, - 0x29, 0x11, 0x15, 0xca, 0x5b, 0x1d, 0xa0, 0x2f, 0xca, 0x47, 0xd7, 0xe7, 0x67, 0x80, 0x37, 0xbc, - 0x4b, 0x4a, 0xef, 0x4c, 0x52, 0x50, 0xad, 0x24, 0x05, 0x62, 0x06, 0xf0, 0xa3, 0xb6, 0xfb, 0xe5, - 0x0b, 0xd5, 0xb9, 0x6f, 0x0f, 0x79, 0x56, 0xeb, 0xbb, 0x0c, 0x4e, 0x83, 0x8e, 0x50, 0x81, 0x21, - 0x03, 0x52, 0x41, 0xfd, 0x53, 0x42, 0xa2, 0x1c, 0x62, 0x3c, 0x52, 0x0b, 0x3b, 0xcf, 0x3a, 0x8d, - 0x22, 0xbd, 0xbe, 0x88, 0x1a, 0x36, 0xa9, 0x50, 0x53, 0x63, 0xdf, 0x17, 0xd5, 0xea, 0xef, 0x61, - 0x4f, 0x63, 0x94, 0xc0, 0x75, 0x8d, 0x26, 0x2c, 0xaa, 0x80, 0x78, 0x90, 0xce, 0x0d, 0x0e, 0x68, - 0x7f, 0x7e, 0x70, 0x90, 0x98, 0x58, 0x0b, 0xa3, 0x6b, 0x60, 0x4d, 0xda, 0x66, 0x2a, 0x42, 0xa7, - 0xe2, 0x67, 0x4d, 0xe3, 0xe9, 0xa1, 0xb5, 0xda, 0xc1, 0x44, 0xe2, 0xf2, 0xce, 0x25, 0xe6, 0x31, - 0xb1, 0xdd, 0x6e, 0x47, 0x12, 0x0b, 0x98, 0xd8, 0x6c, 0x36, 0x23, 0x89, 0x45, 0x4c, 0x54, 0x55, - 0x35, 0x92, 0x58, 0xc2, 0xc4, 0x6a, 0xb5, 0x1a, 0x49, 0x2c, 0x27, 0x25, 0x56, 0x30, 0xb1, 0x52, - 0xa9, 0x44, 0x12, 0x9b, 0x98, 0x58, 0x2c, 0x16, 0x23, 0x89, 0x2d, 0x4c, 0x2c, 0x14, 0x0a, 0x91, - 0x44, 0x34, 0xc7, 0x7c, 0xce, 0xe5, 0x72, 0x91, 0xc4, 0x36, 0x26, 0xe6, 0xf3, 0xf9, 0x48, 0xa2, - 0x43, 0xfa, 0x99, 0x8f, 0xe6, 0xec, 0x92, 0x9c, 0x6a, 0x34, 0xd1, 0x20, 0x89, 0xe5, 0x56, 0x24, - 0xd1, 0x82, 0x44, 0x72, 0xcd, 0x4d, 0x5e, 0x29, 0xca, 0x42, 0xf8, 0x47, 0xc9, 0x54, 0xa5, 0x48, - 0x46, 0xb7, 0xc9, 0xe0, 0x59, 0x88, 0x25, 0xf7, 0x58, 0x7a, 0x39, 0x92, 0xee, 0x35, 0x17, 0x54, - 0xcc, 0x2e, 0x02, 0x5c, 0x6d, 0x4a, 0x52, 0xac, 0x80, 0xea, 0x97, 0xc8, 0xad, 0x29, 0xb2, 0x10, - 0xfe, 0x59, 0x5c, 0xa2, 0xf7, 0xa1, 0x36, 0x88, 0x3f, 0x20, 0x31, 0x8e, 0x4a, 0x8c, 0x9d, 0x52, - 0x5f, 0x1f, 0x34, 0xdb, 0x62, 0xec, 0xbf, 0x94, 0x92, 0xa9, 0x40, 0xbe, 0x5a, 0x9c, 0xa0, 0xe2, - 0xe0, 0x27, 0x04, 0x45, 0xd7, 0x90, 0x18, 0x41, 0xc5, 0x71, 0x52, 0x48, 0x42, 0x69, 0x31, 0x09, - 0xf9, 0x84, 0xa0, 0x4a, 0xa5, 0xd2, 0x3c, 0x41, 0x95, 0xcb, 0xe5, 0x0f, 0x12, 0x54, 0x9c, 0x72, - 0x09, 0x41, 0xb5, 0x5a, 0xad, 0x79, 0x82, 0x8a, 0x4f, 0x91, 0x76, 0xd2, 0x6c, 0x20, 0x04, 0xa5, - 0x15, 0xf3, 0xf3, 0x04, 0x55, 0xd4, 0xf2, 0xf3, 0x04, 0x55, 0xac, 0xa8, 0xc9, 0x04, 0x55, 0x00, - 0x44, 0xf8, 0xff, 0x16, 0x50, 0x13, 0x00, 0x33, 0x91, 0x9a, 0x20, 0xbd, 0xb4, 0x80, 0x9a, 0xf8, - 0x5a, 0x3f, 0x42, 0x4a, 0x4a, 0x1e, 0xa8, 0x28, 0xf8, 0xf3, 0x01, 0x52, 0x2a, 0xe5, 0x64, 0xc1, - 0xff, 0xf7, 0x51, 0x3a, 0x1a, 0x98, 0xb0, 0x0e, 0x88, 0x1c, 0x9f, 0x42, 0x41, 0x7e, 0xab, 0x1b, - 0x8a, 0x50, 0xa4, 0x68, 0xb3, 0x8b, 0x6d, 0xd6, 0xdb, 0x99, 0x96, 0xa3, 0x01, 0xf3, 0x67, 0xd2, - 0x2d, 0xa9, 0x52, 0x94, 0xd6, 0xf5, 0x4e, 0xca, 0xcd, 0xa0, 0x99, 0x5e, 0x93, 0x45, 0xe0, 0xd1, - 0x20, 0x2f, 0x04, 0x3a, 0x03, 0xe8, 0x8b, 0xee, 0xa0, 0x9f, 0xb1, 0x7b, 0x96, 0x67, 0xb9, 0xd9, - 0x5c, 0x35, 0xaf, 0x64, 0x73, 0x4a, 0x45, 0x41, 0x4e, 0x0e, 0x2d, 0xe0, 0xf2, 0x6c, 0xd6, 0x7d, - 0xb9, 0x7e, 0xbd, 0x63, 0x39, 0x29, 0x62, 0x8c, 0x10, 0x40, 0x90, 0x05, 0xe5, 0xef, 0xd7, 0xaf, - 0xef, 0x3f, 0x68, 0x26, 0xb5, 0x0e, 0x02, 0xa8, 0xf1, 0x5d, 0xf9, 0xb1, 0x69, 0xa2, 0x74, 0xbd, - 0x37, 0x30, 0x8c, 0x47, 0x90, 0x72, 0x52, 0x52, 0x0d, 0x13, 0x65, 0x2b, 0xa8, 0x23, 0xa5, 0xca, - 0xc6, 0xf7, 0xdc, 0x0f, 0xf8, 0x93, 0xff, 0x21, 0xc9, 0x7a, 0x98, 0x6e, 0x41, 0x37, 0x71, 0xc9, - 0x23, 0x2f, 0x3a, 0x56, 0x42, 0x9e, 0xa4, 0xb4, 0xf1, 0xbd, 0x00, 0x39, 0xcd, 0x8d, 0xba, 0x05, - 0x1a, 0xc6, 0xb7, 0xba, 0x0e, 0x62, 0x15, 0x1d, 0x8c, 0xf1, 0xbd, 0xf8, 0x43, 0x9a, 0xcd, 0x40, - 0x67, 0x6c, 0xb7, 0x77, 0xf1, 0x96, 0x41, 0x34, 0x57, 0x6b, 0xa6, 0xe6, 0xa4, 0x88, 0x89, 0x10, - 0xe4, 0x8b, 0xfa, 0x06, 0x1b, 0x01, 0x11, 0x2d, 0xf7, 0x30, 0xa6, 0x4e, 0x2a, 0xbe, 0x56, 0x37, - 0xbb, 0xd0, 0x30, 0xc8, 0xff, 0x67, 0x29, 0x13, 0xc4, 0xe8, 0x94, 0x59, 0xcf, 0x94, 0x25, 0xd9, - 0xd7, 0x3f, 0x58, 0x34, 0x9a, 0xba, 0x19, 0xa4, 0x84, 0xa2, 0xd5, 0x21, 0x6a, 0x4e, 0xf5, 0x9f, - 0xa0, 0xaa, 0x83, 0x7c, 0x45, 0x7a, 0x44, 0x24, 0xab, 0xba, 0x09, 0x63, 0x9f, 0xc5, 0xf0, 0x75, - 0xfd, 0xa2, 0x9b, 0xdb, 0xd7, 0xd7, 0x88, 0x34, 0xc0, 0xc5, 0x27, 0xaa, 0xbc, 0x50, 0xc8, 0x79, - 0xf5, 0x98, 0x3e, 0x72, 0xa3, 0x76, 0x89, 0x36, 0x82, 0xe6, 0x68, 0x98, 0x3d, 0x08, 0xbe, 0x04, - 0xc4, 0xe2, 0x76, 0x18, 0x60, 0xd6, 0xcd, 0xe8, 0x6d, 0xc0, 0x2a, 0xac, 0x6a, 0x9a, 0x81, 0xfb, - 0x9a, 0x13, 0xbc, 0x5f, 0x4e, 0x03, 0x82, 0x81, 0xa4, 0x70, 0x9b, 0x38, 0x0b, 0xaa, 0x3b, 0xa6, - 0x10, 0x3b, 0x75, 0x0a, 0x84, 0x8c, 0x4d, 0x82, 0x7f, 0x40, 0xbf, 0x98, 0x26, 0x86, 0xa5, 0x9a, - 0x98, 0x11, 0xa5, 0xb4, 0x98, 0x75, 0xa1, 0x9f, 0x19, 0x96, 0x99, 0x44, 0x0e, 0xaa, 0x8b, 0x78, - 0x2a, 0x01, 0x46, 0x8f, 0x61, 0x73, 0x40, 0x5c, 0xee, 0xe9, 0x46, 0x3b, 0xe5, 0x02, 0xd4, 0x83, - 0xe1, 0x59, 0x26, 0x1a, 0x42, 0x61, 0xf1, 0x45, 0x2f, 0x47, 0xad, 0x06, 0x84, 0x13, 0x8f, 0x24, - 0x62, 0x3b, 0x16, 0x9e, 0xc2, 0x30, 0x00, 0xba, 0xc4, 0x2e, 0xa5, 0xc8, 0x29, 0xd2, 0x68, 0x3d, - 0x22, 0xed, 0x74, 0x7d, 0x69, 0x07, 0x52, 0x0f, 0x6d, 0x10, 0x3e, 0x41, 0x44, 0xa5, 0xd9, 0xa0, - 0x3c, 0xa8, 0x62, 0x29, 0x71, 0x0f, 0xea, 0x27, 0x41, 0x3d, 0x32, 0xc2, 0x85, 0x81, 0x37, 0xef, - 0x09, 0x24, 0xa8, 0x19, 0x8d, 0x0f, 0x74, 0x78, 0xf1, 0x49, 0x5c, 0x24, 0x3f, 0xd1, 0x1a, 0x65, - 0x52, 0x9b, 0x24, 0xf9, 0x02, 0x6a, 0x72, 0xeb, 0xa1, 0xac, 0x25, 0xa1, 0xbc, 0x8a, 0xe4, 0x52, - 0xef, 0x6b, 0x4e, 0x57, 0xdb, 0xd1, 0x34, 0x1b, 0xdf, 0xa8, 0x08, 0x46, 0x08, 0x0a, 0x71, 0x28, - 0xc9, 0xc4, 0x56, 0x75, 0x71, 0xeb, 0xe9, 0x06, 0x08, 0x70, 0xa1, 0x60, 0x11, 0x8a, 0x7c, 0xc4, - 0x60, 0xb2, 0xd9, 0xd1, 0xbc, 0x56, 0x2f, 0xb5, 0x0c, 0xf8, 0x3d, 0x8c, 0x63, 0x07, 0x59, 0x33, - 0xcf, 0xa0, 0x27, 0x8b, 0xf2, 0xb4, 0xaf, 0x79, 0x3d, 0xab, 0x5d, 0x13, 0xa1, 0x6f, 0xe2, 0x4c, - 0x42, 0xa2, 0x35, 0x53, 0x40, 0xd2, 0x1a, 0xf9, 0x9e, 0x92, 0xc2, 0x94, 0x69, 0x5c, 0x9f, 0x84, - 0x7e, 0xa3, 0x69, 0x06, 0x14, 0x4b, 0x29, 0x03, 0x48, 0x80, 0x76, 0x31, 0x17, 0x1a, 0x20, 0x2d, - 0x20, 0x61, 0xc3, 0xea, 0xa6, 0xc4, 0x33, 0x4b, 0x50, 0x31, 0x37, 0x9b, 0xc9, 0xa4, 0x61, 0xb4, - 0x69, 0x46, 0x3a, 0x91, 0x11, 0x76, 0x68, 0xec, 0x7b, 0x97, 0x50, 0xb1, 0xd6, 0x86, 0x8e, 0x42, - 0x95, 0x1d, 0xdd, 0x04, 0xaa, 0x98, 0xa4, 0x52, 0x12, 0xd4, 0xca, 0xd8, 0x11, 0x27, 0xf6, 0x75, - 0x33, 0x30, 0x27, 0x20, 0x5f, 0x6d, 0xd1, 0xa7, 0x10, 0x34, 0x40, 0x6a, 0x5f, 0xbe, 0xf0, 0x13, - 0x44, 0x44, 0x0a, 0xdc, 0x06, 0x02, 0x94, 0xe4, 0xc8, 0x59, 0x2d, 0x99, 0x79, 0xef, 0xb0, 0x7d, - 0x60, 0x4c, 0xa1, 0xe6, 0xb6, 0xc5, 0x58, 0xbc, 0x00, 0xa9, 0x1d, 0x29, 0x82, 0x3b, 0x95, 0x11, - 0x74, 0x78, 0xef, 0x01, 0xcd, 0xa7, 0xfc, 0x3b, 0x7d, 0x06, 0x4c, 0xde, 0x50, 0x13, 0x6a, 0xf8, - 0xed, 0x82, 0x33, 0xb8, 0xd2, 0xd4, 0xa8, 0x39, 0x43, 0x9a, 0xc9, 0xb8, 0xd9, 0x3b, 0x23, 0xff, - 0xa3, 0xd4, 0xc0, 0x88, 0xa1, 0x9d, 0xc0, 0x99, 0xc2, 0xc0, 0x6f, 0xd4, 0x5f, 0x49, 0x94, 0x93, - 0x2d, 0x2b, 0xf2, 0xa7, 0x5c, 0xa0, 0x15, 0x10, 0x0e, 0xdf, 0x1a, 0x06, 0x4b, 0x83, 0xcf, 0x95, - 0x14, 0x59, 0xf4, 0x9c, 0x81, 0x06, 0x53, 0x2e, 0x19, 0x0a, 0x76, 0xab, 0x2f, 0x02, 0x2d, 0xc4, - 0xe3, 0xe9, 0xac, 0xfb, 0x6c, 0x07, 0x46, 0xe1, 0x4c, 0xae, 0x09, 0x98, 0x2d, 0xa7, 0x61, 0x18, - 0xa9, 0xaf, 0x5c, 0xf4, 0x48, 0xe6, 0x04, 0xf5, 0xe3, 0xab, 0x14, 0xb0, 0x7d, 0x17, 0x89, 0xc5, - 0x93, 0x92, 0x18, 0xae, 0x67, 0x0d, 0x5a, 0x3d, 0xb4, 0x77, 0xa3, 0xa6, 0x44, 0xda, 0xdb, 0x22, - 0x2e, 0x4f, 0x30, 0x86, 0x45, 0xb9, 0x81, 0x9d, 0xc4, 0xf2, 0x86, 0x4c, 0x25, 0x86, 0x6d, 0xcd, - 0x67, 0x95, 0xd4, 0x94, 0x13, 0xba, 0x03, 0x24, 0xf4, 0x2d, 0x3c, 0x92, 0xe1, 0x68, 0x7d, 0x6b, - 0x08, 0x7c, 0x54, 0x6d, 0x61, 0x9c, 0x4a, 0xc8, 0x4b, 0x0d, 0xc0, 0xbf, 0x7e, 0x79, 0xdf, 0xb5, - 0x1f, 0x5c, 0x3e, 0xe8, 0x5f, 0x98, 0x89, 0x63, 0x6c, 0xcc, 0xbf, 0x40, 0x93, 0xbd, 0x3a, 0x20, - 0x63, 0x4a, 0x4b, 0x7f, 0xf9, 0xf2, 0xc9, 0x03, 0xce, 0xa4, 0x5f, 0xa3, 0x8b, 0x11, 0x70, 0xde, - 0xff, 0xdc, 0x4e, 0x38, 0x04, 0xe2, 0xf6, 0x2d, 0xcb, 0x83, 0x55, 0x1f, 0x71, 0x08, 0x19, 0xe6, - 0x6d, 0x59, 0x20, 0x18, 0xe8, 0xa2, 0x4c, 0x2b, 0x99, 0xa3, 0x6d, 0x8d, 0x57, 0xbc, 0x31, 0xd4, - 0x23, 0xf5, 0x28, 0xf0, 0xfb, 0xe1, 0xc1, 0xec, 0xa6, 0x14, 0xc1, 0x9c, 0x13, 0xa4, 0x05, 0x56, - 0x0d, 0xd1, 0x8f, 0x5b, 0xe8, 0x80, 0x84, 0x41, 0x90, 0xee, 0x52, 0x61, 0x81, 0x3a, 0x2f, 0x90, - 0xc5, 0x03, 0xef, 0x96, 0x39, 0xb8, 0x39, 0x3d, 0x21, 0x6b, 0x48, 0x14, 0x24, 0xa0, 0xf0, 0x92, - 0xcb, 0xcd, 0x41, 0x79, 0xc3, 0x4e, 0xc0, 0x5c, 0x22, 0x3e, 0x0e, 0xfe, 0xfc, 0x60, 0x5b, 0x0d, - 0x88, 0x60, 0xda, 0x7c, 0x70, 0xc7, 0x39, 0x33, 0xd7, 0xf8, 0x9b, 0x11, 0xf5, 0xf8, 0xa4, 0x4a, - 0xc2, 0x11, 0x6d, 0x61, 0x26, 0xe7, 0xab, 0x30, 0x95, 0x64, 0x18, 0x22, 0xcf, 0xac, 0xb4, 0x18, - 0x3c, 0x38, 0x37, 0x0b, 0x69, 0x1a, 0x02, 0x48, 0xdc, 0x06, 0x80, 0x68, 0x4c, 0x25, 0xb4, 0x04, - 0xa2, 0x71, 0x0a, 0x1d, 0x15, 0x56, 0x8d, 0xf6, 0x27, 0xc0, 0x85, 0xc2, 0xeb, 0x7a, 0x31, 0x6f, - 0x0d, 0xad, 0x5e, 0xd2, 0x0a, 0x01, 0x91, 0xf1, 0x30, 0xf2, 0xb8, 0xce, 0xb2, 0xc8, 0x43, 0x6e, - 0x8a, 0x01, 0x06, 0xf9, 0x6c, 0x32, 0x4c, 0x16, 0x0d, 0xdd, 0x5b, 0x38, 0x74, 0x39, 0xe9, 0x13, - 0x6b, 0x66, 0x26, 0x47, 0x48, 0x02, 0xe6, 0xf7, 0x15, 0xee, 0x7d, 0xf5, 0x35, 0x66, 0xd7, 0xa3, - 0xdd, 0x0e, 0xcd, 0x67, 0x28, 0x09, 0x9e, 0xaa, 0x5e, 0x2f, 0xd3, 0x31, 0x2c, 0x98, 0x1e, 0x5e, - 0xb6, 0x52, 0x2e, 0x22, 0x58, 0x4d, 0x3e, 0x35, 0xe5, 0xad, 0x92, 0xe4, 0x3f, 0x5d, 0x29, 0x5b, - 0x28, 0xe3, 0x67, 0x23, 0xf9, 0xf3, 0x2a, 0x7e, 0xfd, 0xd3, 0x94, 0xb2, 0x65, 0xc8, 0xa3, 0xd6, - 0xdd, 0x4d, 0x37, 0x2d, 0x0a, 0x62, 0x3a, 0x95, 0xab, 0xc3, 0x33, 0xa8, 0xf7, 0x13, 0x11, 0x77, - 0x2e, 0x26, 0x2e, 0xae, 0x61, 0xb2, 0x20, 0xe2, 0xcd, 0x02, 0xcc, 0x6e, 0xa9, 0xa6, 0xeb, 0xe6, - 0xaf, 0x5f, 0xee, 0xa6, 0x19, 0x14, 0x30, 0x61, 0xed, 0xb3, 0x06, 0x48, 0x52, 0xf8, 0x03, 0x45, - 0x20, 0xb7, 0xfc, 0x09, 0xd6, 0x00, 0x13, 0x40, 0x09, 0xd9, 0xb1, 0x02, 0x00, 0xc5, 0x46, 0xa9, - 0x0a, 0xf3, 0xcc, 0xa5, 0x69, 0x46, 0x9a, 0xf8, 0xee, 0x61, 0xfa, 0x37, 0xec, 0x0a, 0xda, 0xd6, - 0xf0, 0x3b, 0x97, 0x9f, 0xa5, 0x63, 0x8a, 0xb7, 0x5a, 0x56, 0xfe, 0xc4, 0x22, 0xae, 0x86, 0x4a, - 0x8a, 0xca, 0x99, 0x56, 0x4d, 0xe0, 0x15, 0xd6, 0x08, 0xe7, 0x11, 0x9a, 0x14, 0x45, 0xdf, 0xae, - 0xf9, 0xf3, 0x9b, 0xe7, 0x6c, 0x7c, 0xf3, 0xda, 0xfe, 0x46, 0xdd, 0x8b, 0x36, 0xf1, 0xda, 0xe2, - 0xc6, 0x1f, 0x53, 0x6d, 0xf6, 0x2d, 0xeb, 0xb5, 0xf9, 0x4f, 0x43, 0xd5, 0xa0, 0x9f, 0xbc, 0x19, - 0x88, 0x7c, 0xec, 0x73, 0x16, 0x8a, 0xff, 0x8c, 0x60, 0xe7, 0x84, 0xdb, 0x91, 0xba, 0x48, 0x51, - 0xfc, 0x68, 0xf5, 0x5c, 0xc0, 0xab, 0xc8, 0xe6, 0x21, 0xd9, 0x60, 0x92, 0x3c, 0x10, 0xb3, 0xbf, - 0x7c, 0xd1, 0xd2, 0x69, 0x1f, 0x66, 0xda, 0x46, 0xbe, 0x44, 0x2c, 0x87, 0x75, 0xf8, 0x95, 0x64, - 0x8d, 0xa3, 0x59, 0x3c, 0x25, 0x72, 0x0b, 0x55, 0x72, 0xec, 0x10, 0x28, 0xf5, 0xa7, 0x8d, 0x3d, - 0xd5, 0xdb, 0x3f, 0x25, 0x1a, 0x01, 0x62, 0xfd, 0x13, 0xa9, 0xf9, 0xbb, 0xf7, 0xe3, 0xd7, 0x2f, - 0xe5, 0x13, 0xd6, 0x8e, 0x6d, 0x6c, 0x86, 0x59, 0x31, 0xc0, 0x2b, 0x64, 0x0e, 0xa7, 0xbe, 0x87, - 0x4d, 0x6e, 0x92, 0x73, 0x2b, 0x95, 0xca, 0xba, 0x70, 0xb8, 0x23, 0xf4, 0x07, 0xae, 0x27, 0x34, - 0x35, 0x01, 0xd2, 0x05, 0x0b, 0xc4, 0x7d, 0xcd, 0x75, 0x33, 0x88, 0xd8, 0xda, 0x92, 0x5a, 0x7e, - 0xfa, 0xe5, 0x71, 0x7f, 0x76, 0xe4, 0xe8, 0x18, 0x35, 0x4e, 0xf8, 0x63, 0x6a, 0x13, 0x59, 0xd6, - 0x93, 0x66, 0x9f, 0x38, 0x18, 0xd9, 0xcc, 0xdc, 0xce, 0x86, 0xc1, 0x7c, 0x2a, 0x81, 0x46, 0x34, - 0x1f, 0x0c, 0x64, 0x0c, 0x5f, 0xbe, 0xd0, 0xa1, 0x68, 0x3f, 0xc2, 0xa7, 0x0c, 0x52, 0x0a, 0x10, - 0x7b, 0xf0, 0x0a, 0xe8, 0xe7, 0xcd, 0xe7, 0x17, 0x86, 0x3a, 0x41, 0xaf, 0x41, 0xce, 0x7c, 0x1e, - 0xe4, 0xb5, 0xd9, 0x37, 0xae, 0x36, 0x3f, 0x29, 0x63, 0xbb, 0x5c, 0xf7, 0x54, 0x5b, 0xbf, 0x53, - 0x0d, 0x5f, 0x5a, 0x27, 0x99, 0x7f, 0xfd, 0xfa, 0xe4, 0x17, 0x92, 0x98, 0x1d, 0x5d, 0x64, 0x0b, - 0x29, 0xdb, 0x14, 0x00, 0x0a, 0xd1, 0xbb, 0x66, 0x0a, 0x37, 0x08, 0xfd, 0x8c, 0xfe, 0x68, 0xbc, - 0x0c, 0xc8, 0xc4, 0x9b, 0xe4, 0x6f, 0x2d, 0xd5, 0xd6, 0xf0, 0x34, 0x32, 0xa4, 0x99, 0x72, 0xf0, - 0x68, 0x87, 0x8f, 0xaf, 0x46, 0xdc, 0xc8, 0xe7, 0xf1, 0x93, 0xff, 0xd5, 0xf0, 0x61, 0xf7, 0x2e, - 0xa4, 0x5e, 0x8d, 0x4d, 0xee, 0x19, 0x37, 0x0b, 0x43, 0x5a, 0xb2, 0xb7, 0x5a, 0x2f, 0x01, 0x65, - 0x52, 0x0d, 0x12, 0xed, 0x90, 0xeb, 0x1a, 0x8b, 0x6f, 0x9e, 0x22, 0xc6, 0x64, 0xcd, 0xbb, 0xf6, - 0x6f, 0xc3, 0xba, 0x22, 0xdb, 0x3d, 0x8a, 0x5c, 0x25, 0xff, 0xa1, 0x6c, 0xa3, 0x8d, 0xb5, 0xd6, - 0xb6, 0xd5, 0xef, 0x83, 0xf8, 0x82, 0x6b, 0x91, 0x3d, 0x41, 0x99, 0x8d, 0x67, 0xc6, 0xb6, 0x4e, - 0x37, 0xd4, 0xf1, 0x6e, 0xaa, 0xa6, 0xa5, 0x3a, 0xc0, 0x85, 0xb9, 0x81, 0xd8, 0x04, 0xe7, 0x84, - 0x07, 0x87, 0x94, 0x80, 0xfb, 0x8d, 0x30, 0x35, 0xd7, 0x3d, 0x67, 0x32, 0x4d, 0xb9, 0xcb, 0x84, - 0x3b, 0x50, 0x10, 0xd8, 0xf6, 0xcb, 0x46, 0x4e, 0x21, 0x24, 0x81, 0x0c, 0x9e, 0x09, 0xbb, 0xd2, - 0x74, 0x46, 0xf5, 0xbe, 0x9f, 0xbc, 0x2b, 0x27, 0x89, 0xfc, 0xdc, 0x12, 0x81, 0x28, 0xb5, 0xcd, - 0xaf, 0xbe, 0x33, 0x0a, 0x1f, 0xd8, 0x95, 0x0f, 0x86, 0x2c, 0xe4, 0xf0, 0x42, 0x13, 0xf1, 0x6b, - 0xed, 0xeb, 0x02, 0xaf, 0xd3, 0xe4, 0xa3, 0x39, 0xd1, 0x48, 0xb1, 0x50, 0x7e, 0xb6, 0xf1, 0x73, - 0xdd, 0x4c, 0xc3, 0x04, 0x14, 0xd1, 0xe3, 0xa2, 0xa7, 0x0e, 0x35, 0xc1, 0xb4, 0xd8, 0xe0, 0x5d, - 0x61, 0xa2, 0x79, 0x9f, 0x60, 0x62, 0xb1, 0x40, 0xa7, 0x20, 0x24, 0x3b, 0x9a, 0x30, 0x52, 0x5d, - 0x74, 0xde, 0xd0, 0x5d, 0x77, 0xa0, 0x11, 0xb1, 0x1b, 0x27, 0xd2, 0x04, 0xd8, 0xa5, 0x5f, 0x0a, - 0x16, 0x33, 0x94, 0x01, 0xa0, 0x56, 0xd1, 0xf7, 0x05, 0x11, 0x65, 0xda, 0xc6, 0x01, 0x70, 0x1e, - 0x8c, 0x97, 0xcd, 0xaa, 0xd2, 0x5d, 0x01, 0x85, 0x82, 0x81, 0xcd, 0x8a, 0x92, 0x53, 0x6a, 0x28, - 0x28, 0xa9, 0x98, 0x30, 0xd4, 0xad, 0x81, 0x4b, 0x3d, 0x79, 0x0c, 0x43, 0xa5, 0x66, 0xfe, 0x21, - 0x2c, 0x97, 0x18, 0xf0, 0x97, 0x78, 0x89, 0xfc, 0x37, 0x53, 0x10, 0x84, 0xd4, 0xb5, 0x3a, 0xc4, - 0x1e, 0xa8, 0x7e, 0x1d, 0x23, 0xdd, 0x30, 0x88, 0x8b, 0xbf, 0x80, 0xae, 0xbf, 0xc4, 0x0d, 0xca, - 0x62, 0x53, 0x5e, 0x23, 0x3e, 0x13, 0xb4, 0x49, 0x09, 0xc6, 0x75, 0xc0, 0x3a, 0xa1, 0xfa, 0xdd, - 0xb0, 0xa8, 0x57, 0x05, 0x1a, 0xac, 0x85, 0x17, 0xd3, 0x1a, 0x01, 0xbb, 0xb4, 0xac, 0x36, 0x3a, - 0x97, 0x78, 0xa0, 0x3a, 0xe2, 0x20, 0xbe, 0x7e, 0xf3, 0x2f, 0x92, 0xa3, 0x1e, 0xb7, 0x2d, 0x72, - 0x28, 0xce, 0x4f, 0xdb, 0x08, 0xba, 0x95, 0xe0, 0x2a, 0x44, 0x6e, 0x3d, 0xe5, 0x1d, 0xc4, 0x28, - 0x91, 0xa3, 0x3b, 0xad, 0x3d, 0x89, 0x10, 0x62, 0xe0, 0x2d, 0xf2, 0x55, 0x92, 0x09, 0x18, 0x89, - 0xef, 0x86, 0x48, 0x05, 0x6d, 0xe6, 0x06, 0xcd, 0xb1, 0x36, 0x53, 0x0e, 0x64, 0x2e, 0x32, 0x4b, - 0x28, 0xa3, 0xad, 0xbb, 0x31, 0x25, 0xdf, 0xa7, 0x0d, 0x8d, 0x98, 0x00, 0x08, 0xef, 0x00, 0xee, - 0x8b, 0xbe, 0x01, 0x75, 0xa2, 0xab, 0x90, 0xe7, 0x0d, 0x45, 0xf2, 0x27, 0xae, 0x65, 0x0f, 0x30, - 0xd6, 0x85, 0x5f, 0xec, 0x13, 0xd3, 0x69, 0xd0, 0x75, 0x00, 0x7e, 0xe5, 0xa1, 0xa5, 0xb7, 0x05, - 0x10, 0xff, 0xd7, 0x53, 0x20, 0xb2, 0x42, 0xc2, 0xa7, 0x3a, 0xfb, 0x0a, 0x62, 0xc7, 0x32, 0x65, - 0x92, 0xe8, 0x92, 0x8c, 0x54, 0xde, 0x51, 0x25, 0x53, 0xa0, 0x4b, 0xbc, 0xc0, 0x0a, 0x1d, 0x93, - 0xa9, 0xe4, 0x40, 0xc5, 0xe4, 0x74, 0x4c, 0xea, 0x10, 0xa1, 0x45, 0xba, 0x18, 0x1f, 0x42, 0x54, - 0xdf, 0xe4, 0x45, 0x57, 0x32, 0x38, 0x6e, 0xc6, 0x83, 0x20, 0x1b, 0x57, 0x24, 0x71, 0x77, 0x28, - 0x14, 0x97, 0x34, 0xe0, 0x34, 0x52, 0xdc, 0x8c, 0x12, 0x28, 0x72, 0x3e, 0x88, 0xdf, 0x85, 0x03, - 0x8e, 0x23, 0xeb, 0xbb, 0xcc, 0xfc, 0x33, 0x80, 0xa0, 0x7e, 0x20, 0x8c, 0xe9, 0x83, 0x5a, 0xe3, - 0xe8, 0xd8, 0x21, 0x29, 0x04, 0x46, 0x10, 0x03, 0x60, 0x19, 0x34, 0x12, 0x46, 0x8f, 0xaa, 0x1e, - 0xb7, 0x77, 0x13, 0x1b, 0x3b, 0xa8, 0xa8, 0xbf, 0x37, 0x6a, 0xe6, 0x0d, 0xf6, 0xcf, 0x0c, 0x5a, - 0x7b, 0x67, 0xd0, 0xcc, 0x79, 0xfc, 0x1f, 0x1f, 0x33, 0x51, 0xba, 0x7f, 0x6f, 0xdc, 0xd4, 0x87, - 0xe7, 0x9f, 0x19, 0x76, 0x8a, 0x39, 0x04, 0x69, 0xc4, 0xd2, 0x99, 0x71, 0x7b, 0x7a, 0x07, 0xb3, - 0xd2, 0xd4, 0xcc, 0xc0, 0xa4, 0x09, 0xe2, 0x7f, 0xac, 0x7f, 0x5a, 0x57, 0xc4, 0xe8, 0xd8, 0x43, - 0x57, 0xa2, 0xbf, 0x00, 0x05, 0x5c, 0xbd, 0xb0, 0x37, 0x6c, 0x36, 0xc8, 0xf6, 0xe5, 0x09, 0xd4, - 0x14, 0x7a, 0x63, 0xf8, 0x60, 0xbf, 0x3c, 0x09, 0x16, 0x71, 0x58, 0x35, 0x81, 0xe1, 0x40, 0x46, - 0x7f, 0x59, 0x54, 0x00, 0x60, 0x81, 0xc0, 0x69, 0xd1, 0x4f, 0xb0, 0x52, 0x81, 0x26, 0x82, 0x9e, - 0x14, 0xf5, 0x0d, 0xed, 0xbb, 0xf2, 0x63, 0xc3, 0x83, 0x3f, 0x30, 0x74, 0xe4, 0xbb, 0x49, 0x67, - 0x54, 0x2e, 0xd1, 0x79, 0x88, 0xa0, 0x02, 0xfd, 0xe4, 0xbf, 0x62, 0x3f, 0x08, 0x24, 0x24, 0x28, - 0xf1, 0x73, 0x01, 0x0b, 0x1e, 0xbb, 0x02, 0xde, 0xfb, 0xc7, 0x82, 0x9a, 0x80, 0xac, 0x0c, 0x4d, - 0xcc, 0x5e, 0x8d, 0xa6, 0xe8, 0x87, 0x11, 0xc2, 0xa4, 0xfc, 0x8f, 0x4d, 0xfc, 0x83, 0x42, 0x49, - 0xd4, 0x1d, 0x8e, 0xb2, 0x92, 0x14, 0x2b, 0x26, 0xad, 0x13, 0x69, 0xfb, 0x7b, 0xee, 0xc7, 0x2c, - 0xe0, 0xd9, 0x3f, 0xd7, 0x29, 0x9b, 0x7e, 0x35, 0x22, 0x01, 0x18, 0x88, 0x16, 0xef, 0xdf, 0xa7, - 0x00, 0xb8, 0x80, 0x21, 0x68, 0x42, 0x62, 0xce, 0x40, 0xbb, 0x0a, 0x32, 0xf3, 0x35, 0x72, 0x2a, - 0xf1, 0x6c, 0x0e, 0xde, 0x01, 0x8b, 0xf7, 0xb9, 0x7b, 0x8a, 0xb2, 0x45, 0xce, 0x26, 0xb8, 0x5c, - 0x66, 0x91, 0xa8, 0x70, 0x28, 0x4d, 0x99, 0xbc, 0x47, 0x05, 0x34, 0xe5, 0x07, 0x13, 0x25, 0x41, - 0x1b, 0x72, 0xe3, 0xb3, 0x8c, 0x16, 0x00, 0x65, 0x9d, 0x20, 0xaf, 0xd5, 0xb7, 0x2f, 0x24, 0x9f, - 0x1e, 0xa8, 0x90, 0x83, 0x84, 0xc1, 0x19, 0xe6, 0x53, 0xcc, 0x29, 0xcd, 0xa5, 0x98, 0x22, 0x22, - 0x2c, 0x75, 0x4c, 0x41, 0xc3, 0xbb, 0x24, 0xe1, 0xf2, 0xa6, 0x9b, 0xa0, 0x28, 0xe0, 0xf6, 0x81, - 0x16, 0xaa, 0x8d, 0x68, 0xa8, 0xa7, 0x66, 0x02, 0xb5, 0x8e, 0x39, 0x41, 0x66, 0x5c, 0x57, 0x61, - 0xcd, 0x02, 0xb2, 0xb1, 0x07, 0x6e, 0x2f, 0xf5, 0x5d, 0x93, 0x55, 0xd9, 0x97, 0xdc, 0xd1, 0x22, - 0x4f, 0x93, 0x81, 0x09, 0x78, 0xe9, 0x04, 0x41, 0x8b, 0x44, 0xaa, 0xf0, 0x69, 0x40, 0x9b, 0x59, - 0xe2, 0xc6, 0xcf, 0xd0, 0xee, 0x67, 0xeb, 0x6d, 0x94, 0xd9, 0xe2, 0xe5, 0xf4, 0x40, 0xef, 0xc2, - 0xf5, 0xf8, 0x67, 0x42, 0xcd, 0xe4, 0xa6, 0xd1, 0x20, 0x4a, 0x45, 0x32, 0xe5, 0x68, 0x33, 0x09, - 0xab, 0x89, 0xe8, 0x02, 0x9b, 0x62, 0xe0, 0x72, 0xfb, 0x35, 0x1a, 0xab, 0xe7, 0x2b, 0x75, 0x7b, - 0x2e, 0x54, 0xc9, 0x59, 0x11, 0xd4, 0x72, 0x66, 0xbe, 0xd6, 0xa2, 0x49, 0x33, 0x90, 0x35, 0xe2, - 0xbe, 0xba, 0xc1, 0xfd, 0x1e, 0x42, 0xc7, 0x70, 0xb8, 0x11, 0x9a, 0xf8, 0x21, 0x7a, 0x34, 0xfb, - 0x5a, 0x03, 0x85, 0x00, 0xbe, 0xa5, 0x73, 0x8a, 0x32, 0xf3, 0xc3, 0xf5, 0xb4, 0x58, 0x7c, 0x70, - 0x32, 0xc6, 0xa4, 0xfa, 0x63, 0x95, 0xa3, 0x03, 0x9e, 0x5f, 0x07, 0x57, 0x3d, 0xa5, 0xde, 0x78, - 0xed, 0x85, 0x6a, 0x89, 0xd4, 0x8e, 0xf5, 0xc6, 0x30, 0x02, 0x3a, 0x27, 0x1f, 0xfa, 0xc3, 0xaf, - 0x3b, 0xa8, 0x3a, 0xe8, 0x11, 0x83, 0x3e, 0x71, 0x6e, 0x4c, 0xa7, 0x67, 0x0b, 0x84, 0x22, 0x8f, - 0x7c, 0xdf, 0x50, 0x36, 0x53, 0x44, 0xb8, 0x21, 0xd2, 0xc9, 0x97, 0x2f, 0x0a, 0xfb, 0x4d, 0x2d, - 0xf6, 0x64, 0x40, 0xbb, 0x2c, 0x4a, 0x11, 0x6c, 0x2a, 0x00, 0xd5, 0x11, 0xef, 0xca, 0xc5, 0xf9, - 0xe7, 0xbc, 0x1e, 0xe8, 0x8c, 0x90, 0x7c, 0x13, 0x30, 0xd6, 0x55, 0x8b, 0x08, 0x17, 0x81, 0xbd, - 0xf8, 0xa2, 0x91, 0x0a, 0xd7, 0x28, 0x64, 0x96, 0x94, 0x2d, 0x70, 0x72, 0x06, 0x27, 0xb8, 0xc9, - 0xa8, 0x71, 0xf3, 0x5a, 0x20, 0x99, 0x18, 0x1d, 0x8b, 0x6c, 0xb5, 0xf9, 0x9e, 0x9c, 0x1a, 0x9b, - 0xa9, 0x5a, 0x06, 0x29, 0x90, 0x32, 0x8e, 0xf0, 0x54, 0x4f, 0x14, 0x40, 0x5a, 0x06, 0xdd, 0xc9, - 0x89, 0x72, 0x22, 0xa6, 0x30, 0x54, 0xbd, 0x04, 0x2a, 0xae, 0x47, 0x76, 0x29, 0xfc, 0x44, 0x96, - 0xd2, 0xce, 0x50, 0xde, 0xe8, 0x85, 0x8e, 0xad, 0x1a, 0xf1, 0xe6, 0x80, 0xe9, 0x02, 0x2f, 0x11, - 0x1f, 0x5c, 0xf4, 0xdb, 0x71, 0x7c, 0x37, 0x57, 0x96, 0x0b, 0xde, 0x00, 0x95, 0xc4, 0x0f, 0x55, - 0xcb, 0x74, 0xdc, 0x0c, 0x0a, 0x67, 0xfd, 0x51, 0xf8, 0x15, 0x40, 0x37, 0xde, 0x8c, 0xbc, 0x65, - 0x46, 0x35, 0xe2, 0x87, 0xba, 0x2c, 0x4b, 0x0f, 0xb2, 0xa4, 0xd0, 0x6f, 0xb5, 0x3f, 0x42, 0x6f, - 0xa6, 0x3e, 0xae, 0x29, 0xbf, 0x7e, 0xa1, 0xe8, 0x7f, 0x4a, 0xdc, 0xef, 0xc5, 0xfc, 0x8e, 0x10, - 0x51, 0xe9, 0x18, 0xa0, 0x7d, 0xa0, 0x71, 0x3c, 0x0d, 0x7a, 0xe5, 0x68, 0x5a, 0x4f, 0x53, 0xed, - 0x6c, 0x4e, 0x2b, 0xac, 0xbb, 0x75, 0x37, 0xe3, 0x59, 0x7b, 0xfa, 0x58, 0x6b, 0xa7, 0x72, 0x12, - 0xe3, 0x63, 0xac, 0x71, 0x7b, 0xe4, 0xc8, 0x46, 0x5d, 0x3c, 0xb3, 0x3c, 0x01, 0x6f, 0x87, 0x26, - 0x35, 0xb6, 0xc5, 0x75, 0x73, 0x03, 0x0a, 0x6e, 0x1a, 0xf5, 0x94, 0x09, 0xff, 0xcf, 0xd6, 0xe1, - 0x45, 0x0a, 0xaa, 0x80, 0x6f, 0xca, 0xa6, 0x52, 0xcb, 0x49, 0x20, 0x04, 0x08, 0x0d, 0xb1, 0x66, - 0x12, 0xe7, 0x2b, 0x92, 0xb7, 0xa4, 0xfc, 0x49, 0xac, 0x5a, 0xc4, 0x2e, 0x0a, 0x05, 0x01, 0xc5, - 0x98, 0xa9, 0xdf, 0x10, 0x7d, 0x5e, 0x47, 0x17, 0x4e, 0x2d, 0x33, 0x90, 0x90, 0x8b, 0xe2, 0x14, - 0xf4, 0xbe, 0x03, 0xc4, 0x7f, 0x80, 0xae, 0x12, 0x97, 0x77, 0x20, 0x8f, 0xe4, 0x02, 0x6b, 0xdc, - 0x54, 0xd3, 0x75, 0xdf, 0x9c, 0x04, 0x59, 0xc9, 0x16, 0x1d, 0xf2, 0xd6, 0x5a, 0x34, 0x9d, 0xb6, - 0x60, 0xd5, 0xc5, 0xe3, 0xc1, 0xa0, 0xa7, 0xbe, 0x0c, 0x44, 0x50, 0xaf, 0x41, 0x53, 0xca, 0x10, - 0x3b, 0xb9, 0x7b, 0xaf, 0x7b, 0xbd, 0x14, 0x9e, 0x3d, 0x2d, 0x64, 0x88, 0x25, 0x11, 0xf2, 0xdd, - 0x58, 0x2f, 0xba, 0x88, 0x92, 0x08, 0xe6, 0xd2, 0x61, 0xa6, 0x0f, 0x08, 0x98, 0x57, 0x9b, 0x86, - 0x9f, 0xe3, 0x6a, 0x32, 0x78, 0x26, 0xb6, 0x30, 0x2d, 0xd3, 0x32, 0x49, 0x12, 0x3e, 0x50, 0x46, - 0x39, 0x84, 0xa9, 0x8c, 0x25, 0x67, 0x02, 0x2c, 0xb1, 0xd6, 0x2c, 0x50, 0x0e, 0xbf, 0x91, 0x2b, - 0x5c, 0x60, 0x62, 0xff, 0x31, 0x55, 0x67, 0xf8, 0xd7, 0xef, 0xa2, 0xb8, 0x35, 0xd0, 0x0d, 0xdc, - 0x27, 0xcd, 0x0c, 0xf5, 0xb6, 0x14, 0xfd, 0x74, 0xad, 0x77, 0x41, 0x46, 0x21, 0xfe, 0xef, 0x28, - 0x4d, 0x60, 0xa6, 0x91, 0xde, 0xd1, 0x33, 0x2e, 0x49, 0x4f, 0x8b, 0xff, 0x12, 0x88, 0x0f, 0x21, - 0x49, 0x73, 0x5c, 0x57, 0x97, 0x45, 0xa1, 0xbd, 0xd5, 0x97, 0xc4, 0x58, 0x35, 0xb7, 0x36, 0xda, - 0x29, 0x41, 0xb3, 0x8a, 0xda, 0x2c, 0x33, 0x03, 0x92, 0x2e, 0xc5, 0x72, 0x63, 0x08, 0x12, 0x01, - 0x89, 0x04, 0x48, 0x06, 0x2a, 0x7c, 0xd9, 0x62, 0xd5, 0x69, 0x19, 0xdb, 0x75, 0xd4, 0xfe, 0x66, - 0x34, 0xe3, 0xc5, 0xf5, 0x55, 0xe3, 0x54, 0x94, 0x53, 0xec, 0x6b, 0x36, 0xa7, 0xe4, 0x8b, 0x12, - 0x47, 0x56, 0xac, 0x06, 0xe4, 0xe8, 0x91, 0x56, 0x76, 0x61, 0x2a, 0xf7, 0x91, 0xa8, 0x04, 0xe6, - 0x6e, 0x2e, 0xca, 0x46, 0xac, 0x23, 0x0d, 0x00, 0x23, 0x30, 0x22, 0x61, 0xef, 0xe2, 0x1a, 0x47, - 0x4e, 0xe8, 0xb2, 0x63, 0xbb, 0xb1, 0x5c, 0xa7, 0x8d, 0x6d, 0x01, 0xc4, 0x0e, 0x3c, 0x26, 0x81, - 0xb9, 0xfa, 0x6a, 0x2b, 0x3e, 0x1e, 0xdd, 0xd0, 0xdc, 0x89, 0x0b, 0xac, 0x0c, 0xbf, 0xc3, 0xbc, - 0x1c, 0x80, 0x90, 0x8a, 0x60, 0x83, 0x47, 0x2f, 0x8d, 0xdd, 0x43, 0x28, 0x72, 0xf4, 0x09, 0x8c, - 0xf8, 0x4f, 0x9a, 0x31, 0x4b, 0x33, 0x01, 0xad, 0xfe, 0x6b, 0x0e, 0xa8, 0xbb, 0xe6, 0x50, 0x77, - 0x2c, 0xb3, 0x4f, 0xba, 0xae, 0x65, 0xf0, 0x68, 0x2d, 0xb1, 0xb0, 0xa2, 0xab, 0x9d, 0xa3, 0xc1, - 0x23, 0x41, 0x8d, 0x31, 0xd2, 0x6d, 0xf4, 0xe8, 0xc4, 0xc2, 0xa0, 0x41, 0x13, 0x1a, 0xf8, 0x49, - 0x55, 0xdc, 0x97, 0x61, 0x94, 0x53, 0x11, 0xf9, 0x81, 0x88, 0x03, 0xa8, 0xa1, 0x87, 0x59, 0x16, - 0xf8, 0xc9, 0xc6, 0x0e, 0xc0, 0x4b, 0xd4, 0x0d, 0xc0, 0x77, 0xe8, 0xf4, 0x2d, 0x0b, 0xac, 0xe4, - 0xb5, 0x8e, 0xdb, 0x1a, 0xdd, 0x75, 0xcf, 0x77, 0x4c, 0x63, 0x27, 0xf0, 0xf9, 0x3d, 0x64, 0x9f, - 0x71, 0xf8, 0x67, 0x41, 0x79, 0xe6, 0x41, 0xc4, 0x14, 0xb7, 0xee, 0x33, 0xe0, 0x40, 0xd4, 0xc1, - 0x33, 0x1a, 0x29, 0xfe, 0x44, 0x40, 0xf4, 0x18, 0x00, 0xf3, 0xfe, 0xc7, 0xb5, 0xa4, 0xcb, 0x04, - 0x21, 0x3f, 0x73, 0x3a, 0x4d, 0xea, 0x34, 0x42, 0xd1, 0xc7, 0xcc, 0x00, 0xfd, 0xaf, 0x1b, 0xb8, - 0x8f, 0x16, 0x56, 0x42, 0x16, 0x31, 0xae, 0x4e, 0x23, 0x0d, 0x24, 0x65, 0x6c, 0x60, 0xc5, 0xf8, - 0x09, 0xeb, 0x37, 0x24, 0x52, 0x93, 0x4a, 0x2d, 0x68, 0x50, 0x3f, 0xa8, 0x23, 0x92, 0x6c, 0xd5, - 0x3f, 0x7d, 0x52, 0xd1, 0x1a, 0x9d, 0xbc, 0x75, 0x10, 0x48, 0x9d, 0xbf, 0x7e, 0xa1, 0x4b, 0xb1, - 0xf1, 0xe5, 0x0b, 0xef, 0x1c, 0x08, 0x9f, 0xd1, 0x2d, 0xe2, 0x27, 0x7f, 0xaa, 0x1e, 0xc4, 0x0b, - 0x63, 0x16, 0x1e, 0xc0, 0x6f, 0xba, 0x22, 0xb1, 0x81, 0x2c, 0x10, 0x1c, 0x80, 0x7f, 0x0a, 0x7f, - 0x4c, 0xcd, 0x8c, 0x65, 0x6e, 0xe2, 0xae, 0x96, 0x48, 0x65, 0xec, 0x60, 0xb5, 0x37, 0x66, 0x90, - 0x21, 0x2a, 0x39, 0xc1, 0x50, 0x2e, 0x46, 0x4e, 0x0a, 0xbf, 0x49, 0xe1, 0xa5, 0x34, 0x4c, 0x8c, - 0x58, 0x16, 0x9b, 0x81, 0x5a, 0x62, 0xb8, 0x38, 0x19, 0xb4, 0x01, 0x12, 0xe4, 0x79, 0x69, 0x80, - 0x06, 0x68, 0x11, 0x9d, 0x69, 0x69, 0x8b, 0xbf, 0x13, 0x2b, 0x63, 0xc1, 0x2d, 0x16, 0x38, 0x5e, - 0x68, 0x15, 0xc6, 0x99, 0x65, 0x9d, 0x7a, 0x2f, 0x6e, 0x06, 0x19, 0x59, 0x20, 0x82, 0x31, 0x89, - 0xc7, 0x01, 0xb8, 0xd3, 0x90, 0x50, 0x91, 0x10, 0x50, 0xec, 0xe2, 0x6c, 0x3c, 0x6c, 0x86, 0xa7, - 0x7a, 0x34, 0x01, 0x85, 0xcb, 0xd3, 0x4d, 0x11, 0x37, 0x3e, 0x74, 0x87, 0xda, 0x47, 0xc5, 0xd9, - 0x82, 0xe0, 0x55, 0x1c, 0x5c, 0xa0, 0x9e, 0x18, 0x1c, 0xa0, 0x42, 0x1f, 0x08, 0x38, 0x04, 0xc8, - 0xb0, 0x29, 0xb2, 0x6b, 0xdf, 0x08, 0xde, 0x36, 0xde, 0x89, 0x65, 0xe5, 0x87, 0x89, 0x02, 0xd1, - 0xfa, 0x9d, 0xae, 0x9f, 0xea, 0x28, 0x1a, 0xbd, 0xdf, 0xc7, 0x7e, 0xfc, 0xaa, 0x91, 0x53, 0x9d, - 0xef, 0x61, 0x5f, 0xff, 0xab, 0x1d, 0x6c, 0x93, 0x43, 0x33, 0x64, 0xb5, 0x75, 0x4f, 0x61, 0x76, - 0xb4, 0x3f, 0x06, 0xeb, 0x0f, 0x40, 0xf5, 0x71, 0x1e, 0xa8, 0x8f, 0x11, 0xa8, 0x3e, 0xfe, 0xd5, - 0x3e, 0xdb, 0xff, 0x14, 0x50, 0x1f, 0xe7, 0x80, 0x1a, 0xe9, 0x61, 0xff, 0xaf, 0xf6, 0x90, 0xf2, - 0x9f, 0x6e, 0x94, 0x5d, 0x90, 0x16, 0x55, 0x1b, 0x8f, 0x30, 0x92, 0xa8, 0x64, 0xf0, 0x5c, 0x17, - 0x59, 0x82, 0xaf, 0xe2, 0xe3, 0x4d, 0xc2, 0x2c, 0x4e, 0xcb, 0x2e, 0x61, 0x48, 0x42, 0x6e, 0x47, - 0xd8, 0x7b, 0x08, 0xcd, 0xab, 0xfc, 0xfc, 0xd1, 0x8c, 0x55, 0x1b, 0xda, 0xa6, 0x3b, 0x03, 0xd1, - 0xd4, 0x48, 0x9b, 0x76, 0x2e, 0x1f, 0x1f, 0x27, 0x24, 0xf9, 0x7c, 0x85, 0xd4, 0x2b, 0x7c, 0xb3, - 0x6c, 0xc2, 0xf2, 0xc3, 0xfb, 0x4c, 0xfe, 0x98, 0x02, 0x1b, 0x04, 0x18, 0x40, 0xd6, 0x4d, 0xdc, - 0xb6, 0xa3, 0xc7, 0xc2, 0x28, 0x1c, 0xce, 0x2c, 0x53, 0xfb, 0x96, 0xa5, 0x45, 0x92, 0x2b, 0xc8, - 0x61, 0x05, 0xb9, 0x85, 0x15, 0x6c, 0xa9, 0xce, 0xf2, 0xf2, 0x79, 0x2c, 0x9f, 0x5f, 0x58, 0xbe, - 0xe1, 0xb4, 0x96, 0x97, 0x2f, 0x60, 0xf9, 0xc2, 0xc2, 0xf2, 0xdb, 0xe4, 0x84, 0x64, 0xb4, 0x0a, - 0x40, 0x22, 0xc9, 0x33, 0xc7, 0x89, 0x7e, 0xca, 0x03, 0x86, 0x49, 0x82, 0x37, 0xd7, 0x44, 0xd8, - 0xba, 0x7a, 0x3f, 0x11, 0x6d, 0xd7, 0x28, 0x30, 0x08, 0xf0, 0xf5, 0x6f, 0xe1, 0x8c, 0x56, 0x1f, - 0xe5, 0xcd, 0xd7, 0x7a, 0xff, 0x83, 0x38, 0xc3, 0xd2, 0xf3, 0x20, 0xd7, 0x54, 0x58, 0xf4, 0xcd, - 0x8f, 0xa2, 0x2d, 0xb1, 0x8e, 0x7b, 0xed, 0x5e, 0x37, 0x8c, 0x2b, 0xab, 0xf5, 0xf2, 0x68, 0x0d, - 0x3e, 0x8a, 0xc0, 0xc4, 0x9a, 0x6e, 0x73, 0xca, 0x7f, 0x16, 0x3e, 0x8a, 0xc2, 0x05, 0x35, 0x14, - 0xe3, 0x35, 0x2c, 0xc6, 0xe0, 0x7a, 0xdc, 0x62, 0x81, 0x77, 0x93, 0xa3, 0xda, 0x0d, 0x4d, 0x80, - 0x7c, 0x81, 0x42, 0x22, 0x48, 0x01, 0x5a, 0x77, 0x53, 0x8c, 0x34, 0x02, 0x5f, 0xad, 0xcd, 0x50, - 0x34, 0x98, 0x5b, 0xb2, 0x09, 0x26, 0x92, 0x58, 0x11, 0x8d, 0xf9, 0xc9, 0xc4, 0x81, 0xf7, 0xd8, - 0x90, 0xab, 0x19, 0x51, 0x5c, 0xa3, 0x10, 0xc3, 0xf3, 0x21, 0x48, 0x89, 0x31, 0x22, 0x52, 0xf1, - 0x72, 0x66, 0x44, 0xd6, 0x4f, 0xca, 0x8f, 0x96, 0x58, 0x33, 0x9c, 0xb7, 0x48, 0x57, 0xc8, 0x7b, - 0x68, 0xcb, 0x40, 0xf7, 0x20, 0x22, 0x38, 0xc2, 0x2f, 0x73, 0x39, 0x4b, 0x49, 0xeb, 0x61, 0x50, - 0x42, 0xd2, 0xc7, 0x75, 0x22, 0x9b, 0x60, 0x3f, 0xa1, 0xf4, 0xa6, 0xcb, 0x94, 0x6b, 0xfa, 0x0b, - 0xd5, 0x82, 0x28, 0x05, 0x20, 0x2c, 0xe6, 0xf0, 0x9c, 0x07, 0x46, 0x96, 0xc2, 0x9f, 0x42, 0xbe, - 0x24, 0xce, 0x92, 0x0c, 0x22, 0x90, 0x7f, 0xce, 0x82, 0x84, 0xd0, 0xd8, 0x1d, 0xf3, 0xa4, 0x8f, - 0x6d, 0x99, 0x9b, 0xf0, 0xaf, 0xe6, 0xc7, 0x54, 0x02, 0x29, 0xdb, 0x98, 0x25, 0x0a, 0x5f, 0xf3, - 0x56, 0x21, 0x36, 0xd4, 0xc5, 0x76, 0x21, 0x23, 0x6e, 0x13, 0x0a, 0x44, 0x91, 0x0f, 0x9b, 0x85, - 0x8c, 0x44, 0x93, 0x90, 0x91, 0x60, 0x0e, 0xfa, 0x63, 0x1a, 0x3f, 0x83, 0xa2, 0x53, 0xcd, 0x28, - 0x0e, 0x17, 0xdd, 0x8c, 0x74, 0x1f, 0x5e, 0xe7, 0xc9, 0x2b, 0x12, 0x84, 0xdb, 0xf6, 0xc6, 0x9e, - 0x10, 0xc8, 0x79, 0x5c, 0x51, 0x2f, 0x31, 0x00, 0x77, 0x18, 0x7f, 0xbb, 0x90, 0xe7, 0xe5, 0x37, - 0x06, 0x68, 0xa4, 0xfc, 0x48, 0x50, 0x23, 0x12, 0xcc, 0x5b, 0x40, 0x6c, 0x65, 0x32, 0x19, 0x91, - 0xca, 0x77, 0x54, 0xa5, 0x0d, 0x00, 0x04, 0x7a, 0x01, 0x89, 0x1a, 0xe5, 0xb1, 0xae, 0x7a, 0x3e, - 0x47, 0xf4, 0xda, 0x1b, 0x4c, 0x56, 0xbb, 0x46, 0x9d, 0x5b, 0x78, 0xc0, 0xcd, 0x56, 0xf2, 0x74, - 0xb2, 0xbb, 0x23, 0x52, 0x07, 0x8e, 0x58, 0x4e, 0x1e, 0x4a, 0xd0, 0xcf, 0x4d, 0xf1, 0x1e, 0xcf, - 0xff, 0x93, 0x72, 0x96, 0x8d, 0x15, 0xcc, 0x65, 0xa0, 0x61, 0x1c, 0x40, 0xb1, 0xf0, 0x33, 0x2d, - 0xac, 0x1b, 0x25, 0xc6, 0xf3, 0x4e, 0x07, 0x1d, 0xba, 0xc3, 0xef, 0xc4, 0x81, 0x64, 0xae, 0xdb, - 0x0c, 0xdc, 0x51, 0x29, 0x1a, 0xc7, 0x18, 0xc5, 0x8e, 0xbb, 0x34, 0xca, 0xd5, 0x1f, 0x53, 0x34, - 0xdf, 0x6c, 0xf6, 0x47, 0x35, 0xdf, 0xac, 0x24, 0xad, 0xe6, 0x66, 0x11, 0xa9, 0x99, 0xd8, 0x22, - 0x66, 0x73, 0x32, 0xf8, 0x89, 0x66, 0x86, 0xd2, 0x79, 0x10, 0x5a, 0x1d, 0x1a, 0xa5, 0xa1, 0xd5, - 0x19, 0x89, 0x45, 0xc7, 0xf8, 0xc1, 0x2e, 0x6b, 0xbf, 0xdd, 0xe5, 0x54, 0x1c, 0xe4, 0xac, 0xdb, - 0x35, 0x45, 0x8a, 0x0f, 0xc6, 0xb2, 0xdf, 0xc9, 0xfd, 0xf7, 0xc7, 0xe9, 0x6f, 0xfc, 0x73, 0xb7, - 0x2b, 0x23, 0xe3, 0x72, 0xbc, 0x75, 0xd1, 0x27, 0xa1, 0x34, 0xb1, 0xbd, 0x88, 0x69, 0x07, 0xc9, - 0x79, 0x31, 0x58, 0x7c, 0x3d, 0x82, 0x2c, 0xe8, 0x73, 0x3c, 0xdf, 0xea, 0xc4, 0x01, 0xc5, 0x8d, - 0xd4, 0xea, 0x2c, 0x1b, 0xcb, 0xc6, 0x3c, 0x71, 0xb1, 0xa6, 0x98, 0xaf, 0xd3, 0x06, 0x9d, 0x04, - 0x8f, 0xbe, 0x83, 0x13, 0xf4, 0x75, 0x0e, 0x6c, 0xe2, 0x01, 0x89, 0x76, 0xe1, 0x13, 0xf5, 0xa3, - 0x28, 0xa5, 0xbf, 0x06, 0xf9, 0x43, 0xd7, 0x27, 0xbf, 0xc6, 0x0f, 0x60, 0xff, 0x6b, 0xda, 0x48, - 0x7f, 0x75, 0x1f, 0x97, 0xe2, 0xff, 0x6b, 0x3a, 0xd5, 0xef, 0xad, 0xe6, 0xa0, 0xad, 0x60, 0xbc, - 0x5f, 0xd3, 0x0c, 0x83, 0x8f, 0x98, 0x98, 0x30, 0x68, 0x52, 0xef, 0x02, 0x0c, 0xb2, 0x6f, 0x1b, - 0x61, 0xcf, 0x3f, 0xd8, 0x4f, 0xed, 0x23, 0xfd, 0x5c, 0x44, 0x6b, 0x8f, 0x35, 0x34, 0x33, 0xf2, - 0x43, 0x48, 0x51, 0xea, 0x7c, 0x7c, 0xbf, 0xc8, 0xdf, 0x1c, 0xe0, 0x32, 0xf2, 0xfc, 0x9a, 0xb6, - 0x7d, 0xd2, 0x6c, 0xc3, 0x43, 0x80, 0x43, 0x91, 0xad, 0x04, 0x51, 0x16, 0xb4, 0x8f, 0x81, 0x6b, - 0x74, 0xb3, 0x1b, 0x9d, 0xe5, 0xd7, 0xe8, 0x7c, 0x1c, 0x4f, 0xfc, 0x6f, 0xe3, 0x42, 0xeb, 0xd3, - 0xea, 0x6a, 0x03, 0xbd, 0xdf, 0x57, 0x57, 0xe1, 0x4d, 0xfb, 0x67, 0xd8, 0x5b, 0xd7, 0xb1, 0x13, - 0xb1, 0x90, 0xe3, 0x0d, 0x03, 0xdc, 0xb4, 0x80, 0xfc, 0xff, 0x43, 0x79, 0x99, 0x6b, 0xb7, 0x96, - 0x52, 0x49, 0xbc, 0x7f, 0x90, 0xff, 0x1f, 0xea, 0xdf, 0xa2, 0xbd, 0xd7, 0x39, 0xcb, 0x4e, 0x50, - 0x3e, 0x26, 0x4f, 0x04, 0x77, 0x55, 0x04, 0xb1, 0x20, 0xa9, 0xa0, 0x99, 0x78, 0x73, 0x45, 0x02, - 0x36, 0xb3, 0xbe, 0x55, 0x39, 0xaa, 0x78, 0xf4, 0x84, 0x66, 0x54, 0xc3, 0x00, 0x12, 0xe7, 0x6d, - 0x2e, 0xc1, 0x42, 0xe8, 0xcc, 0xe8, 0x6b, 0x97, 0xfd, 0x6a, 0x99, 0xc6, 0xa0, 0xad, 0x5b, 0x57, - 0x1a, 0xf5, 0xc4, 0xfe, 0xf2, 0x25, 0x96, 0x40, 0xec, 0x59, 0x62, 0x6d, 0x40, 0xe9, 0x74, 0x99, - 0x56, 0x4e, 0x80, 0xc4, 0xda, 0x21, 0xd1, 0x22, 0x6d, 0x0c, 0x86, 0x54, 0x13, 0xa9, 0xb6, 0xce, - 0xa2, 0xe4, 0x50, 0x7a, 0xff, 0x80, 0xd0, 0xcc, 0x2a, 0xf2, 0x6c, 0xa8, 0xa1, 0xaf, 0xb3, 0xed, - 0x6a, 0x26, 0x41, 0xb3, 0xc5, 0x0a, 0x21, 0x7d, 0x63, 0xa7, 0xd0, 0x51, 0x9a, 0xd8, 0x4b, 0x80, - 0x53, 0x32, 0x91, 0x1a, 0xbf, 0x9a, 0x19, 0xcf, 0x8e, 0x48, 0xd5, 0xb5, 0x04, 0x33, 0x0a, 0xed, - 0xcc, 0xbb, 0x82, 0x36, 0x2f, 0x69, 0x47, 0xc0, 0xde, 0xd6, 0x02, 0x73, 0xdc, 0x62, 0xca, 0x60, - 0xa3, 0x72, 0xa8, 0xd8, 0x18, 0xdc, 0xc7, 0x65, 0x83, 0xc2, 0xc6, 0x82, 0xe9, 0xa0, 0x4f, 0x3e, - 0x17, 0x96, 0xd3, 0xfe, 0x10, 0x01, 0x45, 0x2f, 0x20, 0xf6, 0x49, 0xe6, 0x83, 0x9d, 0x69, 0x47, - 0x3a, 0xb3, 0x43, 0x76, 0xc5, 0xb9, 0x2e, 0xb4, 0x79, 0x1d, 0xe5, 0x9d, 0x2e, 0x28, 0x85, 0xb5, - 0xf9, 0x2e, 0xc4, 0x6c, 0x7c, 0x89, 0x82, 0x30, 0xa0, 0x44, 0x9f, 0x05, 0xfb, 0x9e, 0x33, 0xdf, - 0x98, 0x9b, 0xb0, 0xe5, 0xc9, 0x1b, 0x84, 0x37, 0xea, 0x74, 0x0f, 0x6e, 0x33, 0xe5, 0x17, 0x20, - 0x41, 0x26, 0xf9, 0x02, 0x5f, 0xe7, 0xa3, 0x8e, 0x8d, 0xf5, 0xfe, 0xa0, 0x2f, 0x50, 0x66, 0x81, - 0xc6, 0x76, 0x3f, 0xd6, 0x29, 0x86, 0x5f, 0x02, 0x94, 0xb7, 0xfd, 0x10, 0x96, 0x5f, 0xf9, 0xe0, - 0x3d, 0x8a, 0x54, 0x0b, 0xde, 0xbe, 0x7c, 0x49, 0xf1, 0x67, 0x4c, 0xf8, 0x10, 0x3f, 0xe1, 0x69, - 0x08, 0xa3, 0xae, 0xac, 0x1b, 0xdf, 0xea, 0x08, 0xbb, 0x75, 0x23, 0x9d, 0x96, 0x42, 0x46, 0x63, - 0x04, 0xc7, 0x0d, 0x88, 0x95, 0x95, 0x38, 0xf4, 0x86, 0x66, 0xdb, 0x9f, 0x12, 0x3b, 0x6d, 0x82, - 0x64, 0x82, 0xc6, 0x6c, 0xe6, 0xdb, 0xcf, 0x8c, 0xa7, 0xbe, 0x67, 0x3f, 0x5f, 0x0a, 0xf4, 0xa6, - 0x9f, 0x52, 0x86, 0x11, 0xf3, 0xaf, 0x5f, 0x3e, 0x30, 0x0c, 0x3c, 0x37, 0x16, 0xa4, 0x93, 0xce, - 0xf9, 0xf6, 0xf7, 0x6f, 0x79, 0xdf, 0x9b, 0x0e, 0xf1, 0x0f, 0xad, 0x40, 0x2f, 0x93, 0x1b, 0x92, - 0xe4, 0x4f, 0xc4, 0x58, 0xf8, 0x89, 0x1f, 0x7d, 0x7c, 0xfd, 0x0c, 0xac, 0xf8, 0x5c, 0xaf, 0x20, - 0xeb, 0xcc, 0xf5, 0x3d, 0xa2, 0x25, 0x58, 0x59, 0xd3, 0x8b, 0x72, 0x69, 0x41, 0xae, 0x6f, 0xbe, - 0xc0, 0xc9, 0xf5, 0xce, 0x59, 0xd0, 0x3b, 0xdd, 0xc4, 0x28, 0x0e, 0x62, 0x08, 0x2c, 0x1a, 0xf8, - 0x36, 0x9e, 0xcf, 0x1f, 0xf1, 0x46, 0x2e, 0x16, 0x5b, 0x60, 0x7e, 0xeb, 0x23, 0x70, 0xa0, 0x62, - 0xee, 0x3c, 0xc4, 0xe1, 0x4a, 0x26, 0x1b, 0x20, 0x9a, 0xef, 0x77, 0x14, 0x6c, 0xd3, 0x78, 0x80, - 0x5e, 0xef, 0x9b, 0xc6, 0x3c, 0x7d, 0xd6, 0x3d, 0xc0, 0xb0, 0xf6, 0xdd, 0xfb, 0x51, 0x9f, 0xea, - 0xed, 0x1a, 0x3e, 0xe0, 0x86, 0x24, 0x2a, 0x4c, 0xf4, 0x25, 0xf7, 0x63, 0x86, 0x75, 0xf0, 0xae, - 0x3f, 0x64, 0xf3, 0x9a, 0x9c, 0xd0, 0x33, 0x34, 0x0c, 0xa8, 0xa1, 0x3a, 0x5a, 0xca, 0x23, 0x89, - 0x12, 0x6e, 0x2d, 0xfa, 0x8e, 0x4d, 0x58, 0x9f, 0x42, 0x6b, 0x12, 0xaf, 0xf1, 0x60, 0x98, 0x38, - 0x0b, 0x3b, 0x41, 0x1c, 0x49, 0xd9, 0x29, 0x54, 0xad, 0xae, 0x66, 0xf4, 0xb6, 0x6c, 0xc1, 0x0f, - 0xe6, 0x96, 0x75, 0xb6, 0xab, 0x4a, 0x5f, 0x61, 0x46, 0xb4, 0xb5, 0xf1, 0x79, 0x27, 0x25, 0x62, - 0xc0, 0x3e, 0x67, 0x88, 0x9b, 0x1f, 0xdf, 0x14, 0xe2, 0x99, 0x12, 0x3d, 0xb9, 0x46, 0x7d, 0xa6, - 0xd0, 0xbf, 0x91, 0x3a, 0x58, 0x31, 0x4f, 0x26, 0xf4, 0xb6, 0xa9, 0xd3, 0x24, 0xf4, 0x65, 0x76, - 0x07, 0x4d, 0xd7, 0x73, 0xfc, 0x7d, 0x63, 0xf4, 0x17, 0xae, 0xd7, 0xf5, 0xcd, 0xef, 0x3f, 0x6a, - 0x3a, 0xac, 0xaf, 0x86, 0xee, 0xa5, 0xc4, 0x75, 0x11, 0x0f, 0x3b, 0xb8, 0xac, 0xfc, 0xb7, 0xc2, - 0xaf, 0x5f, 0x98, 0xa7, 0xee, 0xa2, 0xdb, 0x11, 0xe4, 0xc3, 0x5f, 0x3f, 0xab, 0x8c, 0x67, 0xc4, - 0xc2, 0xac, 0xc5, 0x20, 0x6b, 0x81, 0x65, 0x2d, 0xf0, 0x59, 0x71, 0x4c, 0x84, 0x22, 0x8d, 0xd0, - 0xcb, 0x2a, 0xb2, 0x77, 0x66, 0x48, 0x22, 0x31, 0x83, 0xa2, 0xa9, 0x87, 0xf6, 0x13, 0x64, 0xa5, - 0x94, 0x22, 0x17, 0xc9, 0xfe, 0x6d, 0xba, 0x2e, 0x0a, 0x7f, 0x42, 0x2d, 0x66, 0x50, 0xfa, 0xcb, - 0x17, 0xf1, 0x13, 0xb6, 0x87, 0x6e, 0x10, 0x91, 0x02, 0xb9, 0xa0, 0xc0, 0xff, 0xf3, 0xbf, 0xff, - 0xf7, 0xff, 0x43, 0x94, 0x66, 0x5e, 0xba, 0xde, 0xc5, 0xd3, 0x53, 0x38, 0x8f, 0x75, 0x97, 0xf8, - 0x47, 0x1c, 0x78, 0x7d, 0x23, 0x85, 0x97, 0xf8, 0xc8, 0x9a, 0x6c, 0xc9, 0xb8, 0xf8, 0x3c, 0x40, - 0x27, 0x45, 0x59, 0x97, 0x66, 0x94, 0x89, 0xf9, 0xf7, 0xe3, 0xf0, 0x3c, 0x2c, 0xc1, 0xa9, 0x29, - 0x70, 0x58, 0xa4, 0xbe, 0x8d, 0x81, 0x9b, 0x1b, 0x7b, 0x8b, 0xf8, 0x8c, 0xe5, 0x7e, 0xc4, 0xc9, - 0x86, 0x38, 0x15, 0xb1, 0xbc, 0x3e, 0xe1, 0x7c, 0x57, 0x64, 0x91, 0xd9, 0x71, 0xc4, 0x1f, 0xfe, - 0x81, 0x4b, 0x20, 0x89, 0x80, 0x80, 0x09, 0xac, 0x88, 0x1b, 0x87, 0xb6, 0x68, 0x5c, 0xcc, 0x6b, - 0x53, 0x94, 0xd1, 0x13, 0x4c, 0xc6, 0x66, 0xc8, 0x10, 0x2f, 0xfc, 0xe4, 0x9f, 0xf1, 0x4b, 0x6d, - 0x6c, 0xb2, 0xbf, 0xc2, 0xc4, 0x5f, 0x10, 0x2c, 0x34, 0x13, 0xf2, 0x5e, 0x40, 0xe2, 0xb6, 0xeb, - 0xa6, 0x88, 0xa3, 0x5b, 0xe0, 0xe4, 0xf2, 0xd3, 0x77, 0xf9, 0xf2, 0x6f, 0xa2, 0x4a, 0x76, 0xfb, - 0x72, 0xb4, 0xb6, 0xa3, 0x8e, 0x58, 0x2d, 0x29, 0x9f, 0xd4, 0x13, 0x0e, 0xce, 0x89, 0x9f, 0x59, - 0x4d, 0x42, 0x86, 0xf8, 0x3d, 0x49, 0xeb, 0xbc, 0xeb, 0x9d, 0xa0, 0x85, 0x3b, 0xa4, 0x5a, 0xdd, - 0x8b, 0x16, 0x4f, 0x89, 0x99, 0xa0, 0xf3, 0xf4, 0xc8, 0x29, 0x0b, 0xcc, 0x52, 0x8f, 0x0d, 0x20, - 0x08, 0x8a, 0xa3, 0xb7, 0x25, 0x7e, 0xf3, 0x34, 0x9a, 0x8d, 0x7a, 0xa6, 0xf1, 0x41, 0xe2, 0xc2, - 0xf3, 0x41, 0x61, 0x1a, 0x4c, 0x23, 0x24, 0xe5, 0x4f, 0x9e, 0x7f, 0x96, 0x81, 0x71, 0xac, 0x9a, - 0x40, 0xd8, 0xd3, 0x7a, 0xae, 0x0e, 0xdd, 0xa4, 0x34, 0x8a, 0x9e, 0x2a, 0x00, 0xfb, 0x3a, 0xc1, - 0x42, 0x74, 0xba, 0x12, 0xd4, 0xb3, 0xef, 0xe8, 0xc6, 0x03, 0xd2, 0xae, 0xe4, 0x4f, 0x4a, 0xe6, - 0x94, 0x46, 0x87, 0xac, 0xac, 0x6b, 0xdf, 0xfc, 0xfa, 0xd6, 0x35, 0xe0, 0x56, 0xe4, 0x2c, 0x2a, - 0x6e, 0xc1, 0xe2, 0x51, 0x3c, 0xba, 0x87, 0x0a, 0x14, 0xac, 0xcb, 0x0e, 0x2c, 0x14, 0xeb, 0x73, - 0x6c, 0xc1, 0x90, 0x24, 0xa7, 0xce, 0xed, 0x92, 0xa3, 0xa7, 0x5a, 0x16, 0x1a, 0xfb, 0x13, 0xcf, - 0x5d, 0xca, 0xd4, 0x5b, 0x0d, 0x78, 0x0f, 0x1e, 0x29, 0x07, 0xce, 0x83, 0xe7, 0xc5, 0xd7, 0x89, - 0x9b, 0x0f, 0x54, 0x24, 0x3a, 0x78, 0x3a, 0x52, 0x52, 0xb1, 0x6f, 0xcc, 0x11, 0x84, 0x5c, 0x62, - 0x98, 0xc2, 0x6d, 0xda, 0xf9, 0x34, 0x7d, 0x3e, 0x8d, 0x54, 0xc5, 0x50, 0x87, 0x0d, 0xad, 0xe6, - 0x98, 0xbb, 0x0a, 0x3d, 0x83, 0xe7, 0xd2, 0x55, 0x4e, 0x37, 0xda, 0x8e, 0x66, 0xae, 0xab, 0xdc, - 0x9e, 0x32, 0xb2, 0x2a, 0x1f, 0x65, 0x0e, 0x36, 0x97, 0xfc, 0xa9, 0x8b, 0xad, 0x26, 0x7f, 0x6a, - 0x4a, 0xb3, 0x4f, 0x80, 0x89, 0xba, 0x83, 0x6b, 0x3e, 0x0f, 0x00, 0x2d, 0xeb, 0x43, 0x93, 0x80, - 0x00, 0xcf, 0xe0, 0x11, 0x5f, 0x3c, 0x16, 0xec, 0x47, 0xc5, 0x38, 0x3f, 0x16, 0xfe, 0xd1, 0x67, - 0x12, 0xc6, 0x15, 0x9a, 0xfd, 0xeb, 0xa7, 0x34, 0x63, 0xa7, 0x9d, 0xb8, 0x4b, 0x1b, 0x85, 0x85, - 0xb7, 0x36, 0xe2, 0x81, 0xf6, 0x67, 0x4b, 0x27, 0xc7, 0x5b, 0xd7, 0x7f, 0x46, 0x89, 0x6d, 0x7e, - 0xaa, 0x92, 0x13, 0x55, 0xb2, 0x89, 0x5e, 0x3b, 0xa2, 0xac, 0x46, 0x8e, 0x56, 0xc5, 0xa6, 0x28, - 0xd9, 0x37, 0xf0, 0xd0, 0xc4, 0x4e, 0x62, 0x7f, 0x32, 0xa3, 0x07, 0xd9, 0xed, 0x40, 0x79, 0x10, - 0x0f, 0x56, 0xa1, 0xd8, 0x4c, 0x58, 0xb0, 0x8a, 0x72, 0xd9, 0x57, 0xf2, 0xcd, 0xb2, 0x3d, 0xd4, - 0xa1, 0x55, 0x50, 0x8f, 0xbf, 0xce, 0x2c, 0x73, 0x9b, 0xca, 0x86, 0xa0, 0x50, 0xcd, 0x48, 0x68, - 0x23, 0x29, 0xc1, 0x3c, 0x9e, 0x7c, 0x25, 0x56, 0xb2, 0xa1, 0x39, 0xc1, 0xc0, 0x49, 0x8a, 0x73, - 0xaa, 0x1b, 0xf6, 0x0b, 0x97, 0x32, 0x7c, 0xd6, 0x66, 0xe2, 0xbc, 0x5d, 0x9c, 0x14, 0x98, 0x17, - 0xd7, 0x17, 0xdd, 0xbb, 0x35, 0x2f, 0xef, 0x87, 0x57, 0x6f, 0xd1, 0x4d, 0x0a, 0x3c, 0x60, 0xe6, - 0x6f, 0x36, 0x84, 0xd2, 0x7f, 0x20, 0xcc, 0x06, 0x6a, 0x00, 0xca, 0x60, 0xa1, 0xec, 0x1a, 0x20, - 0xaa, 0x89, 0xe3, 0x40, 0x6e, 0xe0, 0x8e, 0x74, 0x76, 0x26, 0xa6, 0x85, 0x47, 0xe6, 0x0b, 0xf9, - 0x1a, 0x9b, 0xf2, 0xbb, 0xd7, 0x17, 0x85, 0xbc, 0xb8, 0x4e, 0x52, 0x2b, 0x7c, 0x6a, 0x25, 0x5f, - 0x2e, 0x8b, 0x8c, 0x5c, 0xc4, 0x4d, 0x4e, 0x56, 0x69, 0x9a, 0x91, 0xa3, 0x47, 0x22, 0x1e, 0xbc, - 0x27, 0x2b, 0x1d, 0xa6, 0x6f, 0xc2, 0x32, 0x6f, 0xd7, 0xe8, 0xf3, 0xfc, 0x1a, 0x43, 0xe3, 0xb5, - 0x92, 0x58, 0x6f, 0xfe, 0xa2, 0x0d, 0x2b, 0x34, 0xfc, 0x41, 0x49, 0x15, 0xe6, 0x29, 0x08, 0x1f, - 0x98, 0x43, 0xf2, 0xd9, 0x26, 0x0a, 0x17, 0x7e, 0xe2, 0x6f, 0x88, 0x2e, 0x7e, 0x35, 0x84, 0x09, - 0x52, 0xe1, 0x43, 0x32, 0x43, 0x9f, 0xac, 0x9f, 0x49, 0x31, 0x4a, 0x03, 0xaf, 0x64, 0x10, 0x61, - 0xec, 0x59, 0xe4, 0xfe, 0x34, 0x16, 0xc0, 0x80, 0x9d, 0xec, 0xfa, 0xca, 0x7c, 0xce, 0x59, 0xce, - 0xaf, 0xd4, 0x39, 0x99, 0x02, 0x45, 0x95, 0x38, 0x07, 0x65, 0xf9, 0x27, 0x24, 0x13, 0xf8, 0xab, - 0x24, 0x08, 0x03, 0x7c, 0x43, 0x37, 0x2c, 0x7d, 0x83, 0x90, 0xbf, 0x8a, 0xde, 0x56, 0x9b, 0xe2, - 0x59, 0xb6, 0x21, 0xd6, 0xc8, 0xf3, 0x0c, 0x95, 0x96, 0x9f, 0xb0, 0x84, 0xa6, 0xd3, 0x33, 0x18, - 0x5e, 0xbb, 0xf5, 0x4d, 0xd9, 0x74, 0x61, 0xe5, 0x8f, 0x84, 0x61, 0xc6, 0x63, 0x34, 0xc0, 0xa4, - 0x51, 0xe7, 0x6e, 0x67, 0xc4, 0x9a, 0x42, 0x1c, 0x47, 0x52, 0x98, 0xed, 0xcc, 0x12, 0x2c, 0x3c, - 0xee, 0x13, 0xc6, 0xe4, 0x15, 0x3a, 0x38, 0xbd, 0x33, 0x78, 0x1e, 0x0b, 0x77, 0xa3, 0x02, 0x45, - 0x9d, 0x73, 0x21, 0xda, 0xa6, 0x9e, 0x4f, 0x41, 0x99, 0x1a, 0x3a, 0x12, 0x11, 0x70, 0xcd, 0x48, - 0x46, 0x93, 0x6c, 0x0c, 0xc4, 0xbc, 0x86, 0xcc, 0xc8, 0x3a, 0xe9, 0x46, 0x7d, 0xf5, 0x59, 0x44, - 0xde, 0x0f, 0x3a, 0xe9, 0xd3, 0x88, 0xc6, 0x1f, 0xf1, 0xd1, 0x0f, 0x8e, 0x93, 0x0d, 0x8c, 0x36, - 0x09, 0xbc, 0x8a, 0x8d, 0x09, 0xd8, 0x9a, 0x80, 0x0b, 0x2e, 0x3d, 0xd9, 0x9b, 0xe8, 0xbc, 0x9f, - 0x14, 0x92, 0x5d, 0x8e, 0x12, 0xa4, 0xef, 0x55, 0x24, 0x6b, 0xef, 0x1c, 0x5c, 0x98, 0x3b, 0x9a, - 0x4e, 0xb4, 0x27, 0xba, 0xd8, 0xe2, 0xe1, 0x04, 0x8c, 0x96, 0x42, 0x67, 0xc5, 0x7a, 0xe0, 0x07, - 0xa5, 0x22, 0x84, 0xb1, 0x9d, 0x8f, 0xfa, 0x51, 0xa1, 0x1f, 0x38, 0xce, 0x05, 0x10, 0x0a, 0x17, - 0x06, 0xbc, 0xf3, 0x88, 0x57, 0x96, 0x7f, 0x90, 0xfc, 0x0e, 0xf9, 0x13, 0x09, 0x51, 0xd6, 0x15, - 0x25, 0x7f, 0x6a, 0x69, 0x99, 0x9e, 0xea, 0x36, 0x3c, 0x90, 0x24, 0x81, 0x20, 0xe1, 0x2b, 0xa8, - 0xa9, 0xa2, 0x04, 0xd3, 0x53, 0xf5, 0x93, 0x88, 0xbf, 0x28, 0xd5, 0x7a, 0x6a, 0xb0, 0xde, 0xf9, - 0xe7, 0x82, 0x79, 0x17, 0x34, 0xf2, 0x31, 0xeb, 0x82, 0xa8, 0xfa, 0x8d, 0x1c, 0x47, 0x85, 0x49, - 0x94, 0xa7, 0x4b, 0xbb, 0x31, 0x1f, 0xc1, 0xae, 0x4a, 0x03, 0xd8, 0xd1, 0xe3, 0xe6, 0xcd, 0xae, - 0x44, 0xe8, 0xe7, 0x5f, 0x7e, 0x42, 0x6b, 0xb5, 0xcc, 0x52, 0xa4, 0x9f, 0xeb, 0x8b, 0xc2, 0xa8, - 0x18, 0x33, 0xea, 0x8c, 0x19, 0x01, 0xdb, 0x22, 0x08, 0x06, 0x11, 0x52, 0xe8, 0x65, 0x2a, 0x14, - 0x70, 0xd4, 0xe3, 0x8a, 0x13, 0xe3, 0x98, 0x5a, 0xc7, 0x85, 0x09, 0xe3, 0x62, 0x0d, 0x90, 0x30, - 0x5f, 0x19, 0x1a, 0x92, 0xfb, 0xaf, 0x36, 0x99, 0x74, 0xf0, 0x9f, 0xbb, 0xed, 0x85, 0x1d, 0x69, - 0x8f, 0x11, 0x0e, 0xea, 0xe0, 0x94, 0x6c, 0x42, 0x45, 0x54, 0x43, 0x5d, 0x75, 0xee, 0x18, 0x77, - 0xec, 0x3b, 0x1b, 0x8e, 0xec, 0x26, 0xe7, 0x08, 0xf5, 0x58, 0xd4, 0x7c, 0xe6, 0xad, 0xcc, 0x4a, - 0xcd, 0x93, 0x98, 0xe7, 0xcd, 0xa2, 0x36, 0x1e, 0xb9, 0x2a, 0xfe, 0xac, 0xa7, 0x16, 0x35, 0x14, - 0x66, 0x93, 0x92, 0x9b, 0x91, 0xdd, 0x55, 0xd4, 0x78, 0xf9, 0x42, 0xc4, 0xfb, 0xe4, 0x67, 0xd2, - 0x21, 0x0c, 0x7a, 0x5f, 0x66, 0x6d, 0x79, 0x66, 0x72, 0xb6, 0x83, 0xe6, 0xf4, 0x89, 0x50, 0x64, - 0xe7, 0x68, 0x25, 0xa2, 0x67, 0x9a, 0xd0, 0x9e, 0x51, 0xc7, 0x73, 0xe6, 0xb0, 0x24, 0xb9, 0x62, - 0x0d, 0x3d, 0x0b, 0x88, 0x07, 0xb0, 0x98, 0x23, 0xbb, 0x71, 0x30, 0x22, 0x98, 0xa4, 0x9f, 0xea, - 0x7c, 0x33, 0x5d, 0xc7, 0xf6, 0xa1, 0xae, 0x26, 0x0f, 0x95, 0xe4, 0xf0, 0x41, 0x62, 0x2d, 0x80, - 0x9a, 0xdd, 0x0a, 0xf2, 0xac, 0x23, 0x77, 0x47, 0x32, 0xac, 0x33, 0xdd, 0x54, 0xa7, 0x13, 0xab, - 0xa5, 0x01, 0xaf, 0x30, 0xb3, 0x29, 0x35, 0x6d, 0x41, 0xff, 0x3f, 0xd1, 0x68, 0x43, 0x3a, 0x4a, - 0xce, 0xea, 0x46, 0xee, 0xd7, 0x2f, 0x0b, 0x94, 0x48, 0xec, 0x2c, 0xf0, 0x6a, 0x21, 0x85, 0x32, - 0x9b, 0x30, 0xd4, 0x1d, 0x6f, 0xa0, 0x1a, 0x12, 0x48, 0x6d, 0x7c, 0x5b, 0x00, 0xe0, 0xc8, 0x91, - 0x6b, 0x63, 0x16, 0xa7, 0x2e, 0xf4, 0x77, 0xa7, 0xb2, 0xea, 0xba, 0xe6, 0x07, 0xcb, 0x40, 0xcf, - 0x78, 0x51, 0x8a, 0xaa, 0x5e, 0x9a, 0x94, 0x18, 0x89, 0xc0, 0x77, 0x49, 0x90, 0xb8, 0xd2, 0x78, - 0x94, 0xe7, 0x77, 0x4b, 0x03, 0x46, 0x22, 0x91, 0x9c, 0xf1, 0x2c, 0x52, 0xf4, 0xc4, 0x7a, 0xe4, - 0xf3, 0xcc, 0x02, 0x7d, 0x0c, 0xb8, 0x9e, 0x17, 0x47, 0x79, 0x58, 0xa5, 0x9c, 0x5a, 0x54, 0xf6, - 0xd5, 0x68, 0x02, 0x1a, 0x97, 0x16, 0x9e, 0x03, 0x13, 0x9e, 0xb2, 0x9a, 0xd2, 0xf3, 0x9c, 0x64, - 0xc9, 0xbe, 0xb0, 0x46, 0x9a, 0xe3, 0x9f, 0x11, 0xc2, 0x79, 0x5e, 0xc7, 0x60, 0xd9, 0x9b, 0x7e, - 0x50, 0x10, 0x0c, 0x52, 0xc0, 0xe5, 0x3e, 0x33, 0x22, 0x59, 0x4d, 0xa3, 0xb1, 0x28, 0xe7, 0xf5, - 0xc4, 0x6c, 0x45, 0xf2, 0xfa, 0x71, 0xb5, 0x23, 0x05, 0x90, 0x51, 0xb0, 0xd5, 0x93, 0xd9, 0xe6, - 0xae, 0xc3, 0xd8, 0xd8, 0xa8, 0xb2, 0xcd, 0xa5, 0xef, 0x8d, 0x53, 0xf3, 0x66, 0x3c, 0xc6, 0x7c, - 0xb6, 0x1c, 0x1d, 0x66, 0xc9, 0xa2, 0xaf, 0xf4, 0x7e, 0xc6, 0xc5, 0xdf, 0xc3, 0x7b, 0x00, 0x17, - 0xe7, 0xd9, 0xce, 0x2d, 0xfb, 0x98, 0x5f, 0xf6, 0xb1, 0x80, 0x1f, 0xfd, 0x28, 0xad, 0xa9, 0x05, - 0xb9, 0xae, 0x96, 0xd4, 0xb0, 0xbf, 0xe4, 0xdb, 0x16, 0x39, 0x5f, 0x15, 0x86, 0x60, 0x5d, 0x90, - 0xed, 0x5e, 0xf4, 0x8d, 0x9c, 0x23, 0x74, 0x64, 0x9d, 0x33, 0xda, 0xf9, 0x15, 0xc4, 0x4c, 0x76, - 0xac, 0x48, 0x53, 0x35, 0x92, 0x4a, 0x6c, 0x6f, 0xdf, 0xc4, 0xf2, 0x73, 0x61, 0x50, 0xb9, 0xe8, - 0x93, 0xd4, 0xec, 0x40, 0x2e, 0x47, 0x8f, 0xd7, 0xa2, 0x61, 0xd8, 0xcd, 0xc4, 0x46, 0x69, 0x4c, - 0xef, 0xa4, 0x66, 0x09, 0x1c, 0x61, 0xd5, 0x22, 0x19, 0x12, 0xcb, 0xf6, 0x16, 0x8d, 0x91, 0x06, - 0xca, 0x5d, 0x5a, 0xd6, 0xfd, 0x1b, 0x65, 0x87, 0x4b, 0xca, 0x26, 0x16, 0x78, 0x59, 0xde, 0x58, - 0x22, 0x8c, 0x69, 0x49, 0x50, 0x7a, 0x97, 0x96, 0xd5, 0x30, 0xe4, 0x67, 0x62, 0xc9, 0xd7, 0x96, - 0xbb, 0x3a, 0x5a, 0x52, 0x8e, 0xc4, 0x4e, 0x8f, 0x97, 0xe4, 0x4e, 0x16, 0xb1, 0xc7, 0x6b, 0x7a, - 0xd1, 0x71, 0x6a, 0x6e, 0xb1, 0x9f, 0x9b, 0xc7, 0x7c, 0xc0, 0x85, 0xc0, 0xf6, 0x24, 0xa3, 0xb4, - 0x18, 0xb5, 0x09, 0xfd, 0xa4, 0x81, 0x98, 0xa8, 0xc6, 0xe9, 0x1b, 0xc2, 0x7e, 0x7c, 0x0f, 0xd4, - 0x51, 0x2e, 0x78, 0xfe, 0x4c, 0xfc, 0x41, 0xb9, 0x27, 0x68, 0x41, 0x81, 0xb5, 0x5d, 0xf1, 0xcd, - 0x30, 0xda, 0x9c, 0xb1, 0x89, 0x63, 0xd3, 0x2e, 0x7a, 0x4f, 0x2d, 0x63, 0xe4, 0xf2, 0x5c, 0xbf, - 0x88, 0xad, 0xea, 0x3b, 0xa7, 0xb0, 0xc7, 0x7b, 0x42, 0xc1, 0xf6, 0x7b, 0x65, 0x96, 0x70, 0xee, - 0x05, 0x00, 0x45, 0x06, 0xc8, 0xc3, 0xd2, 0x37, 0x74, 0xbe, 0x07, 0xca, 0xce, 0x38, 0x09, 0x8a, - 0x7b, 0xe3, 0xbf, 0x07, 0xc4, 0xd4, 0x3b, 0x50, 0xf4, 0x23, 0x24, 0xd1, 0x9b, 0x4e, 0xe8, 0x61, - 0xe6, 0xe0, 0xcc, 0xd3, 0x47, 0x81, 0xe5, 0x77, 0x12, 0xa5, 0x1d, 0x69, 0x6a, 0x2e, 0x59, 0x2a, - 0xf1, 0x1c, 0x1c, 0xd9, 0x4d, 0xb8, 0x50, 0x1d, 0x18, 0x35, 0x5e, 0xb8, 0x9d, 0x0a, 0x6b, 0xf1, - 0x05, 0x28, 0x33, 0xd1, 0x0c, 0x49, 0x2c, 0x10, 0x4c, 0xc6, 0xb8, 0xd1, 0xc6, 0x9e, 0x1c, 0x9e, - 0x6d, 0x60, 0xdb, 0x61, 0xf3, 0x41, 0xc3, 0xda, 0xfa, 0xf0, 0x7b, 0xdc, 0xd1, 0xd8, 0x0f, 0x1b, - 0x46, 0xed, 0x7c, 0xc4, 0x34, 0xae, 0x4a, 0x46, 0xb8, 0x11, 0x40, 0x4e, 0x8e, 0x81, 0x9e, 0xab, - 0x2d, 0x16, 0x09, 0xb5, 0x64, 0x01, 0x70, 0xfd, 0x77, 0x7a, 0x14, 0xba, 0xd0, 0xbe, 0xd7, 0x21, - 0xe1, 0xff, 0xfe, 0xdf, 0xfe, 0x4f, 0xec, 0x11, 0x9a, 0xf6, 0xf9, 0xc4, 0xff, 0x6b, 0xae, 0x9b, - 0x5c, 0x5f, 0x6a, 0x8b, 0xbb, 0xcf, 0xc9, 0x1c, 0x8c, 0xaf, 0x5c, 0x61, 0x94, 0x0c, 0x6a, 0x02, - 0xa1, 0x6c, 0x8b, 0xdc, 0x0c, 0xe3, 0x33, 0x1f, 0x0f, 0x37, 0xaa, 0xf1, 0x66, 0x92, 0xba, 0x7f, - 0x6a, 0x50, 0x21, 0x36, 0x58, 0xcb, 0xc1, 0x19, 0xc5, 0x5c, 0x1c, 0xa1, 0x27, 0x22, 0xc9, 0x88, - 0x1a, 0xec, 0x63, 0x4a, 0xb1, 0xc7, 0x18, 0x65, 0x83, 0x4b, 0xc1, 0x9b, 0x69, 0x24, 0x31, 0x20, - 0x5b, 0x43, 0xb7, 0x37, 0xc9, 0x5f, 0x0c, 0xca, 0xe4, 0xef, 0x71, 0x6c, 0xe0, 0xf6, 0x9b, 0x5b, - 0x17, 0x85, 0x8e, 0x63, 0xf5, 0x05, 0x31, 0xed, 0xb2, 0xd5, 0xd0, 0x88, 0x1e, 0x0a, 0xfa, 0x49, - 0xef, 0xf9, 0x21, 0xd7, 0xa3, 0x68, 0x3a, 0x09, 0x01, 0x82, 0xbd, 0x20, 0x3b, 0xf5, 0x46, 0x7f, - 0x46, 0x8c, 0x76, 0x68, 0xa3, 0x62, 0xc6, 0x81, 0xf0, 0xc2, 0x93, 0xf9, 0x75, 0x8d, 0x8e, 0x87, - 0x0c, 0x66, 0xe1, 0x3e, 0x18, 0x9e, 0x6b, 0xa6, 0xc0, 0x41, 0xbb, 0x34, 0xd9, 0x67, 0x30, 0xfd, - 0x48, 0x19, 0xc1, 0x49, 0xf5, 0x75, 0x8a, 0x3d, 0x18, 0x1a, 0xf9, 0x0e, 0x53, 0x55, 0x75, 0xb6, - 0xf1, 0x4e, 0x0f, 0x12, 0x22, 0xd0, 0xac, 0x7b, 0x09, 0xc9, 0xeb, 0xe3, 0xba, 0xbb, 0x51, 0x5c, - 0x03, 0x56, 0xf7, 0xad, 0x54, 0xf9, 0xf5, 0xcb, 0xdd, 0x28, 0x17, 0xf1, 0xb9, 0x9a, 0xc3, 0xe7, - 0x6a, 0x19, 0x9f, 0x73, 0xf9, 0x02, 0xbe, 0x80, 0x2a, 0xbc, 0x29, 0xd6, 0xa1, 0x6b, 0x1b, 0xa2, - 0x3c, 0xa9, 0x9b, 0xa4, 0x90, 0x49, 0x0a, 0x99, 0xa4, 0x90, 0x49, 0x0a, 0x99, 0xa4, 0x90, 0x49, - 0x0b, 0x99, 0x7c, 0x21, 0x16, 0xed, 0x27, 0x95, 0x22, 0xbd, 0xf3, 0x23, 0x0b, 0x6d, 0x8a, 0xdf, - 0xc4, 0xda, 0x58, 0x4a, 0xb3, 0x21, 0xc5, 0x2c, 0x57, 0xc4, 0x76, 0x1e, 0xcd, 0x3b, 0x91, 0xd2, - 0x74, 0x1c, 0x34, 0x02, 0x88, 0x22, 0x4f, 0xcd, 0x41, 0x5f, 0x73, 0xf4, 0x56, 0xed, 0x93, 0xc2, - 0x1b, 0x22, 0xfa, 0xea, 0x8b, 0x76, 0x7f, 0x0d, 0x7c, 0x70, 0xe4, 0xfe, 0xfa, 0x15, 0x84, 0x00, - 0x1f, 0xb9, 0xdf, 0x94, 0x5f, 0xbf, 0x52, 0xa9, 0x91, 0x4b, 0x42, 0xab, 0xde, 0x6b, 0xcd, 0x6b, - 0x80, 0xb7, 0xe6, 0xa5, 0x52, 0x2c, 0xe4, 0xeb, 0x92, 0x00, 0x9d, 0x9b, 0xe2, 0xc8, 0x05, 0xe5, - 0x09, 0xfe, 0xa2, 0xa1, 0x86, 0x18, 0x6e, 0x88, 0x1d, 0x87, 0x5a, 0x6f, 0xe2, 0xa5, 0x7a, 0x96, - 0xeb, 0x11, 0x8b, 0x51, 0x5a, 0xcc, 0x62, 0x09, 0x29, 0xd3, 0xd4, 0x4d, 0xd5, 0x99, 0xdc, 0x10, - 0x03, 0x2a, 0x09, 0x2e, 0xd9, 0x1c, 0x00, 0x1f, 0x72, 0x44, 0x79, 0xe4, 0x66, 0xf0, 0xb8, 0x9a, - 0xeb, 0xa2, 0xaa, 0x8f, 0xf6, 0x15, 0xc4, 0x31, 0x8b, 0x73, 0x1f, 0x98, 0xa0, 0x60, 0x46, 0x12, - 0x73, 0xff, 0x16, 0x29, 0x14, 0xe8, 0xc3, 0x7c, 0xb8, 0x4d, 0x52, 0x40, 0xa2, 0x3b, 0x17, 0xe4, - 0x50, 0x9e, 0x34, 0x8d, 0xc4, 0x5f, 0xe3, 0x42, 0x26, 0x48, 0x32, 0xf7, 0x42, 0x58, 0x2e, 0x7f, - 0x97, 0x8c, 0x1f, 0x75, 0x56, 0x8e, 0xdb, 0x88, 0xfc, 0x60, 0x8b, 0x1f, 0x0d, 0xad, 0x67, 0x04, - 0xb3, 0xcd, 0xcb, 0x90, 0xe3, 0x69, 0xee, 0x66, 0x2a, 0x3c, 0x38, 0xec, 0x4a, 0x11, 0xe1, 0x9e, - 0x5e, 0xb5, 0xf3, 0xe5, 0x4b, 0xe4, 0x9c, 0xac, 0x2b, 0x49, 0x35, 0xee, 0x78, 0x1b, 0x5d, 0x16, - 0xd0, 0x4c, 0x02, 0x19, 0x36, 0xd9, 0x6f, 0xcd, 0x5b, 0x8f, 0x30, 0x11, 0x57, 0x36, 0x31, 0xd2, - 0xa4, 0xda, 0xbe, 0xc6, 0xaf, 0xb0, 0x1e, 0xcc, 0x66, 0x33, 0x0a, 0x64, 0x72, 0xf1, 0x17, 0x01, - 0xf1, 0x6f, 0x87, 0x08, 0x94, 0xb9, 0x53, 0xd1, 0x94, 0xb6, 0xe4, 0x5c, 0x09, 0x4d, 0x66, 0x23, - 0x16, 0xd3, 0x96, 0xb6, 0x80, 0x61, 0x11, 0x49, 0x03, 0x8e, 0xf6, 0xea, 0x9e, 0x68, 0x5d, 0xd5, - 0xa8, 0x47, 0xe9, 0x32, 0xec, 0x97, 0x1f, 0xb1, 0x90, 0xcc, 0x68, 0x36, 0x99, 0xe9, 0xfe, 0x0e, - 0x6e, 0x8e, 0xb6, 0x5a, 0x40, 0x10, 0x7e, 0xaa, 0xb2, 0x4e, 0xae, 0x27, 0x42, 0x2f, 0x1f, 0x39, - 0xae, 0xcc, 0xb0, 0x70, 0x3b, 0x1a, 0x9e, 0xf0, 0x22, 0xb7, 0x17, 0x69, 0x19, 0xd3, 0xc0, 0x8c, - 0xf4, 0xaa, 0x21, 0xf2, 0xd6, 0x1e, 0x38, 0xec, 0xc2, 0x21, 0xf2, 0xea, 0xd1, 0xac, 0x7b, 0x2a, - 0xc6, 0x68, 0xc4, 0x84, 0x0e, 0x3c, 0x85, 0xb7, 0x1a, 0x69, 0x99, 0x41, 0xdb, 0x46, 0x77, 0x77, - 0xb3, 0x1d, 0xbb, 0x72, 0x08, 0x64, 0x5a, 0x83, 0xf0, 0x7b, 0x98, 0x29, 0xf8, 0x8c, 0x37, 0x04, - 0x31, 0xe6, 0x4c, 0x2e, 0x2d, 0xa3, 0x9d, 0xf3, 0xbc, 0xa0, 0x57, 0x9e, 0x93, 0xcd, 0x29, 0x72, - 0xc2, 0x01, 0x46, 0x46, 0x16, 0x0a, 0xb0, 0x25, 0x85, 0x5d, 0x4c, 0x11, 0xa8, 0x16, 0xf5, 0xe0, - 0xba, 0xa4, 0xd8, 0x96, 0x7e, 0x2a, 0x3c, 0xaf, 0xc8, 0x6f, 0xee, 0x03, 0xc4, 0x14, 0x62, 0xd1, - 0x20, 0x9f, 0xbf, 0x7b, 0x3f, 0x30, 0xea, 0x6f, 0x78, 0x98, 0x80, 0xf0, 0x73, 0x0f, 0x1a, 0xca, - 0xd1, 0xa8, 0x5d, 0x24, 0x07, 0xac, 0xf8, 0x20, 0x26, 0x7c, 0xa3, 0xcc, 0xde, 0x43, 0xee, 0x98, - 0x67, 0x2b, 0x7f, 0xe4, 0xba, 0x00, 0x62, 0xb8, 0x69, 0x7d, 0xe7, 0x2a, 0xfe, 0xc1, 0x7a, 0xfb, - 0xab, 0xfe, 0xe9, 0x53, 0x2a, 0xf7, 0xc5, 0x08, 0x55, 0x2a, 0x92, 0x52, 0x61, 0x29, 0xd0, 0x7f, - 0xf2, 0x5e, 0x84, 0xf7, 0xc0, 0x78, 0x87, 0x95, 0xb8, 0xc4, 0x88, 0x89, 0x16, 0x18, 0x69, 0x9a, - 0xdc, 0x98, 0xca, 0xb5, 0x32, 0xd7, 0x48, 0xac, 0x8d, 0xa0, 0x09, 0x24, 0x22, 0xd5, 0x5f, 0x11, - 0x38, 0xc3, 0xf0, 0x99, 0x25, 0xf8, 0x50, 0x67, 0xb6, 0xe0, 0x50, 0xc7, 0x87, 0x57, 0x76, 0x04, - 0x3b, 0x69, 0xb3, 0x2e, 0xdc, 0x9f, 0xb4, 0x18, 0xb0, 0x57, 0x73, 0xeb, 0xda, 0x06, 0xee, 0x56, - 0xae, 0xae, 0x4a, 0x56, 0x64, 0xff, 0xae, 0xae, 0xa2, 0x02, 0x07, 0x49, 0x24, 0x9a, 0x75, 0x64, - 0xff, 0x2e, 0xfc, 0x94, 0x8b, 0x7d, 0x6a, 0x86, 0x9f, 0xf2, 0x3f, 0x38, 0xc5, 0x34, 0x15, 0xc9, - 0x35, 0x0a, 0x73, 0x61, 0xa0, 0x6b, 0x76, 0x43, 0x8a, 0x45, 0xe2, 0xc7, 0x61, 0xe0, 0xee, 0x30, - 0x0c, 0x2e, 0x5e, 0x92, 0xe5, 0x5b, 0xb2, 0xa0, 0x4c, 0x0b, 0xe4, 0x55, 0xf2, 0x03, 0x5d, 0x0e, - 0x7c, 0x56, 0xc8, 0xb4, 0x69, 0x04, 0xe4, 0x49, 0xbe, 0x4b, 0xf2, 0xbc, 0x05, 0x20, 0xf8, 0xee, - 0x8e, 0xe5, 0x64, 0xfd, 0x3f, 0xc8, 0xa1, 0x47, 0x72, 0xa0, 0xf6, 0x1f, 0x56, 0x9e, 0xdb, 0xc4, - 0x3f, 0x35, 0x45, 0x8e, 0x99, 0x00, 0xc2, 0x1c, 0x79, 0xcc, 0x91, 0x8f, 0xe5, 0x28, 0xf0, 0x39, - 0x0a, 0x98, 0xa3, 0x50, 0xc3, 0xc3, 0xba, 0x24, 0xe0, 0x25, 0x89, 0x22, 0xc1, 0x9e, 0xe9, 0x2a, - 0x40, 0xdc, 0x49, 0xfc, 0x8d, 0x2c, 0xff, 0x03, 0xd9, 0xb8, 0xca, 0x29, 0x35, 0xf8, 0x18, 0x6e, - 0x0e, 0xf4, 0xd1, 0xdd, 0x46, 0xe8, 0x04, 0xe7, 0xae, 0x3f, 0x89, 0xeb, 0x4d, 0x60, 0x48, 0x2f, - 0x74, 0x9b, 0x2b, 0x97, 0xc3, 0xdc, 0x18, 0x59, 0x40, 0x33, 0xad, 0x41, 0xb7, 0x27, 0xb8, 0xb6, - 0xda, 0xc2, 0xfb, 0xec, 0x04, 0x17, 0x03, 0xb3, 0xd1, 0x18, 0x12, 0xb1, 0x22, 0x79, 0x2c, 0xc2, - 0x02, 0x14, 0x62, 0x0b, 0x6c, 0x6f, 0x25, 0x92, 0xa7, 0x80, 0x79, 0x4e, 0x75, 0x7a, 0x5b, 0x9e, - 0xee, 0xd0, 0xd8, 0xc9, 0xd1, 0x2c, 0x55, 0xcc, 0xd2, 0xe0, 0x7a, 0x26, 0x90, 0x61, 0x08, 0x40, - 0x15, 0x82, 0xd5, 0x02, 0x26, 0x84, 0xdb, 0x3a, 0x33, 0x8e, 0xae, 0xc9, 0xa2, 0x44, 0x0e, 0x75, - 0x93, 0x8c, 0xb0, 0x1e, 0xc3, 0x8b, 0x4e, 0x76, 0x23, 0xfc, 0x49, 0xc0, 0xdd, 0xa0, 0xa6, 0xc2, - 0x12, 0x69, 0xf0, 0x17, 0xac, 0xa9, 0x99, 0xce, 0x58, 0x8e, 0xf9, 0x2f, 0x44, 0x67, 0x46, 0xe4, - 0x52, 0x9e, 0x39, 0x85, 0x81, 0xc5, 0x3e, 0xfc, 0xa8, 0x83, 0x8e, 0xbf, 0xf9, 0xc1, 0x4e, 0x6d, - 0xff, 0x07, 0x48, 0x19, 0x73, 0x0e, 0x3b, 0xe8, 0xd4, 0x22, 0xbb, 0x49, 0x8e, 0x3c, 0x64, 0x2b, - 0x10, 0xc3, 0x89, 0xa2, 0xc7, 0x0d, 0xef, 0xc4, 0x63, 0xd4, 0xc9, 0x39, 0x33, 0xda, 0x0c, 0x75, - 0xcd, 0x41, 0x4f, 0x19, 0xcc, 0x47, 0x3d, 0x66, 0x42, 0x27, 0x1e, 0x35, 0xc8, 0xf7, 0x2d, 0xef, - 0xe7, 0xcc, 0xb1, 0x9c, 0xb9, 0x48, 0x4e, 0x2b, 0xcc, 0x59, 0xf0, 0x73, 0xe6, 0x59, 0xce, 0xa8, - 0x63, 0x10, 0xb3, 0xdf, 0xf6, 0x75, 0x33, 0x55, 0x92, 0xb9, 0xe0, 0xa8, 0x1c, 0x29, 0xbb, 0x1c, - 0x47, 0x61, 0xb5, 0x4a, 0xa1, 0xb9, 0x14, 0xf8, 0xff, 0xba, 0xfb, 0x4d, 0x5f, 0x77, 0xd1, 0xe7, - 0x01, 0x61, 0xe3, 0xd4, 0xb9, 0xb2, 0x44, 0xf6, 0x6e, 0xf1, 0x29, 0xe4, 0x1e, 0x14, 0x4c, 0xa6, - 0x32, 0x0e, 0x0a, 0xa7, 0x29, 0x0d, 0x44, 0xcd, 0xca, 0x26, 0x90, 0xa1, 0x04, 0x62, 0x9e, 0x0f, - 0x71, 0xd0, 0x3a, 0x45, 0xf1, 0x53, 0xdd, 0x00, 0x6e, 0x4b, 0x10, 0xc5, 0x7f, 0xc0, 0xc4, 0x50, - 0x87, 0xa9, 0x8b, 0x92, 0x6f, 0x7e, 0xb5, 0xeb, 0x73, 0x9f, 0xd6, 0x31, 0x85, 0x26, 0xf3, 0xde, - 0x47, 0xb6, 0x34, 0x8b, 0x34, 0xf5, 0x89, 0xb5, 0xb5, 0xd9, 0xe2, 0xcd, 0xcf, 0x90, 0x50, 0xe3, - 0x13, 0x14, 0x12, 0x11, 0x96, 0x92, 0x12, 0x4c, 0x2d, 0xe4, 0x33, 0xb5, 0x1c, 0x9f, 0xa6, 0x07, - 0xdc, 0xa5, 0x26, 0xd2, 0x3b, 0xed, 0x41, 0xc2, 0x74, 0x57, 0x81, 0x00, 0x9c, 0xc5, 0x8a, 0x14, - 0x71, 0xe5, 0x70, 0x92, 0x15, 0xb0, 0x19, 0x3d, 0xfe, 0x1a, 0x5a, 0xe6, 0xe3, 0xdb, 0x65, 0x51, - 0x4c, 0x49, 0x19, 0x7a, 0x83, 0x27, 0xcc, 0x84, 0xb8, 0x17, 0x4f, 0x4a, 0xfc, 0x4c, 0x8d, 0x08, - 0x02, 0xaf, 0xdc, 0x0f, 0xd0, 0x4a, 0x19, 0xd5, 0xde, 0xbb, 0x69, 0x11, 0x2f, 0x00, 0x22, 0x94, - 0xde, 0xc1, 0x1d, 0xec, 0x21, 0xfe, 0xc1, 0x0b, 0xfd, 0xfa, 0x75, 0x64, 0xd0, 0x31, 0xb7, 0x97, - 0x84, 0x85, 0x27, 0xe2, 0x08, 0x83, 0xd5, 0x34, 0xc3, 0xe5, 0x29, 0xad, 0x49, 0xd4, 0x6f, 0xce, - 0x9f, 0x59, 0x14, 0xcf, 0x38, 0x5d, 0x08, 0x9e, 0x9b, 0x0b, 0x3c, 0x11, 0xe5, 0x48, 0x89, 0x4f, - 0x41, 0x11, 0xac, 0xfe, 0xb0, 0x1e, 0x9d, 0x85, 0x79, 0x69, 0xbd, 0xc9, 0x61, 0xed, 0x50, 0x3e, - 0xa4, 0xb9, 0x61, 0xac, 0x9d, 0x74, 0x7d, 0x98, 0x3e, 0x4c, 0x03, 0x65, 0xa4, 0x31, 0x05, 0xc7, - 0x86, 0x11, 0x76, 0x29, 0x0e, 0x9a, 0x51, 0x54, 0x6b, 0x9b, 0xe2, 0xde, 0x98, 0x20, 0x18, 0x9e, - 0xb6, 0xba, 0x88, 0x52, 0x57, 0x5c, 0xc7, 0xbb, 0x20, 0xbf, 0x7c, 0xe9, 0x7f, 0xc2, 0x90, 0x69, - 0xdc, 0xd2, 0xa5, 0xc1, 0x7a, 0x8e, 0xdb, 0xdb, 0x58, 0x8f, 0xb7, 0xd9, 0x4c, 0xf4, 0xf6, 0xac, - 0x2d, 0x1e, 0x1d, 0xdf, 0xb4, 0x08, 0x34, 0xa3, 0x61, 0x2c, 0x86, 0xa5, 0x4d, 0xd1, 0x9d, 0x13, - 0x84, 0xe9, 0xc9, 0x5c, 0x64, 0x9e, 0x0e, 0x41, 0xde, 0x24, 0x30, 0xc3, 0x61, 0xf8, 0xe5, 0x3f, - 0x42, 0xa3, 0x9c, 0xc8, 0x66, 0xdf, 0xaf, 0x5f, 0x16, 0xef, 0xa7, 0x07, 0x30, 0xb5, 0x80, 0xe7, - 0x7c, 0xf9, 0x42, 0xf7, 0x6f, 0xf0, 0x99, 0xfa, 0x19, 0x4c, 0x16, 0x18, 0x39, 0x69, 0xe7, 0x57, - 0xa3, 0xd6, 0x43, 0xbe, 0x4a, 0xac, 0x62, 0x6e, 0xa2, 0xda, 0xf5, 0xb9, 0x64, 0xca, 0x7a, 0xfa, - 0xea, 0x18, 0x90, 0x17, 0x30, 0x24, 0xdc, 0xb8, 0x0d, 0xe8, 0xde, 0x0a, 0xdd, 0x07, 0x53, 0x36, - 0xc0, 0x06, 0x6f, 0x39, 0xc0, 0xb4, 0xba, 0x15, 0xf7, 0x2b, 0x84, 0x99, 0x6d, 0x45, 0xbd, 0x0f, - 0xe9, 0xb0, 0x36, 0xff, 0xe0, 0x00, 0x84, 0x09, 0xb5, 0x3f, 0x22, 0x8e, 0xcc, 0x31, 0xcf, 0x6b, - 0x3c, 0x49, 0x4c, 0x4f, 0x0f, 0xf0, 0xe7, 0x1a, 0xc9, 0x15, 0x53, 0xd1, 0x0b, 0xee, 0x05, 0xa2, - 0x68, 0x08, 0xcc, 0x86, 0xf9, 0x95, 0x52, 0xc0, 0xbf, 0xa3, 0x6a, 0xb2, 0x38, 0xa3, 0x5f, 0xf6, - 0x57, 0x79, 0x92, 0x48, 0x5e, 0x09, 0x41, 0x4e, 0x42, 0xf7, 0xbf, 0x79, 0x8f, 0x3e, 0xe6, 0xc8, - 0x47, 0x64, 0x71, 0x58, 0x28, 0xe6, 0xed, 0x9a, 0xc9, 0x06, 0xb3, 0x10, 0x71, 0x7f, 0x0a, 0xdb, - 0x80, 0xd1, 0xfa, 0x5f, 0x32, 0x1e, 0x91, 0xa5, 0x22, 0xd4, 0xaf, 0x72, 0xeb, 0x9c, 0x76, 0x15, - 0xde, 0x3d, 0xc0, 0x05, 0x1a, 0xfd, 0x3d, 0x6d, 0x6f, 0x02, 0xda, 0xde, 0x27, 0x98, 0x35, 0x41, - 0x13, 0xd2, 0x94, 0xd3, 0x96, 0x7f, 0xfd, 0xe2, 0x15, 0xe9, 0xb9, 0x18, 0xe6, 0x23, 0x58, 0x10, - 0x46, 0x68, 0xf1, 0x04, 0x4d, 0x33, 0x15, 0x68, 0x87, 0x72, 0x3c, 0x9e, 0xe2, 0x4c, 0x2e, 0x68, - 0x05, 0xc9, 0xbf, 0x6c, 0x80, 0x66, 0xa9, 0xbf, 0xe7, 0x16, 0xe2, 0xea, 0xe8, 0x16, 0xc4, 0x5a, - 0x40, 0x45, 0x72, 0x42, 0x34, 0xc9, 0x7a, 0xbd, 0x1e, 0x18, 0x32, 0x32, 0xe7, 0x17, 0xbb, 0x67, - 0x20, 0x18, 0x00, 0xd3, 0xb1, 0x2d, 0x17, 0x8f, 0xa7, 0xa1, 0xef, 0x08, 0x51, 0x2a, 0x71, 0x4b, - 0x9f, 0xdc, 0x51, 0x0b, 0x1a, 0x1b, 0xf4, 0x98, 0x0f, 0x67, 0x8e, 0xca, 0x7e, 0xc6, 0xb4, 0x46, - 0x29, 0x09, 0xe3, 0x4f, 0xf9, 0xa1, 0x9f, 0x02, 0x65, 0x8e, 0xf2, 0x5c, 0x90, 0x48, 0xf5, 0x36, - 0xac, 0x4e, 0xf4, 0xe1, 0xcb, 0x17, 0xe6, 0xd8, 0xc1, 0xa9, 0x7f, 0x94, 0xa1, 0x72, 0x5b, 0xc1, - 0x39, 0xe5, 0x4f, 0xd5, 0xdf, 0xfd, 0xb5, 0x3e, 0x81, 0x36, 0x48, 0xfc, 0x37, 0xc3, 0x02, 0x75, - 0x4b, 0x9a, 0xa5, 0x98, 0x11, 0x23, 0x0c, 0x60, 0xa6, 0x71, 0xc1, 0x8b, 0x8b, 0x05, 0xe2, 0x5f, - 0x81, 0x8a, 0xf2, 0xcc, 0xdc, 0x1c, 0xb9, 0x44, 0x2b, 0x4d, 0x01, 0x12, 0xbe, 0x4e, 0xc5, 0xa1, - 0x58, 0xc3, 0x0b, 0x1e, 0x66, 0x5f, 0xa5, 0x1a, 0x75, 0xab, 0x71, 0x03, 0x8f, 0x19, 0x43, 0xc6, - 0xeb, 0x61, 0x34, 0xbc, 0xf2, 0x15, 0xe3, 0xde, 0xa3, 0x57, 0xd9, 0x2a, 0xfa, 0x1a, 0x01, 0x3c, - 0xf0, 0x0e, 0x12, 0x9d, 0x1a, 0x69, 0x08, 0x54, 0xd7, 0x05, 0x34, 0x88, 0xa1, 0x76, 0x7b, 0x7b, - 0xb3, 0xb7, 0x5a, 0x11, 0x67, 0x72, 0xd3, 0x6a, 0x4f, 0x6a, 0x1e, 0xef, 0x6f, 0xf3, 0x1b, 0x66, - 0x94, 0x0f, 0x86, 0xcf, 0xf4, 0xa8, 0x99, 0xe7, 0x23, 0x46, 0x17, 0x24, 0x94, 0xdf, 0xb4, 0xbb, - 0x74, 0x81, 0x82, 0x99, 0xad, 0xd0, 0x0b, 0x6c, 0x09, 0x53, 0xe2, 0x48, 0x86, 0xda, 0x26, 0xdd, - 0x04, 0x0f, 0x8c, 0x32, 0xc4, 0x00, 0x81, 0x8c, 0x9b, 0xde, 0xe9, 0xe9, 0xeb, 0xa4, 0x12, 0x39, - 0x3d, 0x4e, 0xee, 0xcc, 0x73, 0x59, 0xb4, 0x35, 0xe0, 0x08, 0x52, 0x74, 0x01, 0xe7, 0xbe, 0xd0, - 0x15, 0x9b, 0x6a, 0xeb, 0x73, 0x17, 0xf2, 0xb4, 0xf5, 0xa1, 0x38, 0xe7, 0x55, 0xcc, 0xdf, 0x9a, - 0x83, 0xd7, 0x02, 0x64, 0x00, 0x8a, 0x8c, 0xef, 0xbd, 0xe3, 0xf4, 0x0c, 0xec, 0x7d, 0x55, 0x93, - 0xc5, 0xff, 0x12, 0xa8, 0x9c, 0x84, 0x8a, 0x40, 0x5a, 0xcc, 0x09, 0xff, 0x25, 0xfe, 0x1d, 0x27, - 0x68, 0x52, 0x29, 0xef, 0x05, 0x3d, 0x8b, 0xd8, 0xaa, 0x16, 0xd8, 0xa7, 0x66, 0xa1, 0x45, 0x67, - 0xce, 0x2e, 0xc5, 0x82, 0xf8, 0x91, 0x2b, 0x37, 0x29, 0x70, 0x69, 0x70, 0x3e, 0x5c, 0x91, 0x13, - 0xae, 0x52, 0x61, 0xe1, 0x33, 0x79, 0x3e, 0xb2, 0x64, 0x96, 0xff, 0xfa, 0xe5, 0xdb, 0x38, 0xf1, - 0x92, 0x95, 0x7c, 0x09, 0x6d, 0x5e, 0x9c, 0xcd, 0x89, 0xc5, 0xf2, 0xe3, 0x54, 0x26, 0xec, 0x00, - 0x70, 0x48, 0xd7, 0x86, 0x75, 0x44, 0x13, 0x59, 0xb0, 0xd5, 0x65, 0x5e, 0x5d, 0x71, 0xe7, 0x20, - 0xe2, 0x08, 0x10, 0x6c, 0x2d, 0x4d, 0x2d, 0xb3, 0x46, 0x6f, 0xcd, 0xc6, 0xbf, 0x33, 0x62, 0xa2, - 0x02, 0xf1, 0x9a, 0x51, 0x4f, 0xf8, 0xc4, 0x0c, 0xdc, 0x91, 0x57, 0x57, 0xeb, 0x52, 0xb5, 0x9c, - 0x9a, 0xbf, 0x31, 0xb2, 0x39, 0x31, 0x8f, 0x60, 0x40, 0x58, 0x6a, 0x27, 0x51, 0xe8, 0x79, 0x8d, - 0x78, 0x29, 0xb9, 0xe3, 0xbc, 0xe1, 0xed, 0xca, 0x64, 0xb0, 0x21, 0xab, 0x9f, 0xf3, 0x63, 0x3a, - 0x33, 0x22, 0x97, 0x5f, 0xa4, 0xc8, 0xb5, 0xde, 0xf0, 0x47, 0xda, 0xfc, 0x89, 0x70, 0x07, 0xf6, - 0x46, 0x8f, 0xcd, 0xe1, 0x4d, 0xef, 0x0e, 0xbb, 0x0c, 0x83, 0x84, 0xee, 0x26, 0xba, 0xe3, 0x1f, - 0x53, 0x62, 0x2d, 0xdb, 0x50, 0x36, 0x45, 0x58, 0x69, 0x6b, 0xe4, 0x64, 0xfe, 0x8c, 0xa4, 0x62, - 0x68, 0x3f, 0x48, 0xc4, 0xbd, 0x09, 0x60, 0x25, 0x1d, 0x20, 0x57, 0xf6, 0x61, 0x67, 0xe0, 0xcc, - 0xf0, 0x74, 0x23, 0x71, 0x20, 0xfb, 0x59, 0x13, 0x69, 0x2b, 0x6d, 0x7a, 0x3c, 0x0f, 0xc3, 0xa9, - 0xa1, 0xc3, 0x21, 0xdf, 0x67, 0x28, 0x53, 0x43, 0x10, 0x42, 0xa7, 0x66, 0xb3, 0xb9, 0xfe, 0xa3, - 0x6f, 0x44, 0x74, 0x04, 0xe1, 0xa5, 0xe3, 0xfe, 0x93, 0xb4, 0x29, 0x9e, 0x13, 0xd7, 0x46, 0xd2, - 0x7d, 0xd7, 0xbf, 0x7f, 0xde, 0xd4, 0xbc, 0x91, 0xe5, 0xbc, 0xd0, 0xe1, 0x00, 0x53, 0x17, 0x30, - 0x3f, 0xb9, 0xba, 0x1d, 0x03, 0x92, 0xc3, 0x5a, 0x8f, 0x97, 0x15, 0xdc, 0xe0, 0x33, 0x1d, 0x36, - 0x09, 0x51, 0xfe, 0x7e, 0x3d, 0x82, 0x61, 0x99, 0x5d, 0xc8, 0x84, 0xb5, 0x65, 0x44, 0xff, 0xd4, - 0xc2, 0x14, 0x4d, 0x85, 0xb5, 0x29, 0x72, 0xe5, 0x9a, 0xdf, 0xaf, 0xd9, 0x6c, 0x9d, 0x8b, 0xc8, - 0x48, 0x90, 0x4c, 0x0c, 0x8a, 0x0e, 0xc6, 0x67, 0x0c, 0x3a, 0xff, 0x0e, 0x02, 0x31, 0x20, 0xe4, - 0x50, 0xd7, 0x60, 0x49, 0x9a, 0xfa, 0x13, 0x8f, 0xf8, 0x67, 0xd1, 0xaf, 0x64, 0xee, 0x49, 0xfe, - 0x9d, 0xec, 0x91, 0x4f, 0xa1, 0x39, 0x19, 0x6f, 0x70, 0xc7, 0xbf, 0xfe, 0x01, 0x0b, 0x83, 0x55, - 0x29, 0xb2, 0x73, 0x2a, 0x34, 0x4a, 0x6d, 0x98, 0x9e, 0xdf, 0x11, 0x49, 0x29, 0xbc, 0x70, 0x39, - 0x76, 0x61, 0xb2, 0xf8, 0xc2, 0x65, 0x8a, 0x9e, 0x61, 0xd3, 0x3b, 0x68, 0x15, 0x20, 0x07, 0xf6, - 0xb8, 0x3c, 0x02, 0x5e, 0xc1, 0x26, 0xaa, 0x4d, 0x98, 0xe0, 0xb5, 0xa6, 0xa1, 0x9a, 0xc4, 0xf1, - 0x99, 0x66, 0xdd, 0xf8, 0x7f, 0x8b, 0xbb, 0xf6, 0xe6, 0xb6, 0x8d, 0x24, 0xff, 0xff, 0x7d, 0x0a, - 0x0a, 0x49, 0x2c, 0x62, 0x05, 0x49, 0xa0, 0x64, 0x25, 0x36, 0x28, 0x50, 0x95, 0x73, 0x92, 0x5b, - 0xd5, 0x66, 0xbd, 0xaa, 0xc8, 0x1b, 0x27, 0xa5, 0x52, 0xad, 0x48, 0x0a, 0x14, 0x71, 0x86, 0x00, - 0x18, 0x18, 0x59, 0xf2, 0x51, 0xfc, 0xee, 0xd7, 0xdd, 0xf3, 0x1e, 0x00, 0x7c, 0x38, 0xb9, 0xbd, - 0xaa, 0xcd, 0x5a, 0x1c, 0xcc, 0xa3, 0x67, 0xa6, 0x67, 0xa6, 0xa7, 0xa7, 0xfb, 0xd7, 0xbb, 0x5c, - 0xf8, 0xbe, 0xb7, 0xaa, 0x74, 0xdf, 0xb9, 0x90, 0x90, 0x8d, 0x9e, 0xb3, 0x96, 0x3c, 0x5c, 0x9a, - 0x23, 0xd4, 0xf1, 0xe2, 0x4d, 0x93, 0x0b, 0xb6, 0x4a, 0xc8, 0xc0, 0x08, 0x13, 0xb2, 0x36, 0x20, - 0x9f, 0xea, 0x60, 0x91, 0xd5, 0x0b, 0xcb, 0x7e, 0xc7, 0x35, 0x0a, 0xc2, 0x26, 0x0d, 0xcb, 0x1d, - 0x1a, 0x7c, 0xdc, 0xc5, 0xd6, 0xed, 0x64, 0xf4, 0x9d, 0x0e, 0x76, 0x38, 0xd5, 0x33, 0x38, 0xd6, - 0x67, 0x63, 0xd8, 0xbb, 0xe0, 0x5c, 0x17, 0x21, 0x9e, 0x5c, 0xde, 0xe0, 0xb3, 0xbf, 0x50, 0xb3, - 0xdf, 0x9c, 0x78, 0x8b, 0x23, 0x34, 0x2b, 0x21, 0x5e, 0x27, 0x16, 0x46, 0xbe, 0x38, 0xe7, 0x47, - 0x9c, 0x15, 0xad, 0x4a, 0x04, 0x1a, 0x84, 0x2f, 0xad, 0x33, 0x82, 0x45, 0x36, 0x9a, 0x13, 0x73, - 0x94, 0xce, 0x9d, 0x41, 0xe2, 0x95, 0xe8, 0x61, 0x6a, 0xec, 0x5c, 0xc2, 0x52, 0x58, 0x72, 0xbd, - 0xc3, 0xf0, 0x2b, 0xfb, 0x46, 0x65, 0xb1, 0x73, 0xf4, 0x87, 0xcf, 0x83, 0x87, 0xc9, 0x71, 0xe1, - 0x60, 0xac, 0x64, 0x59, 0xdc, 0xd6, 0x39, 0xca, 0xb6, 0x75, 0xef, 0xde, 0x8a, 0xfa, 0xcc, 0x1e, - 0x8a, 0x9a, 0xda, 0xba, 0x88, 0x27, 0x16, 0x7a, 0xac, 0xca, 0x33, 0x24, 0x0c, 0x98, 0x85, 0x2a, - 0x48, 0x06, 0xbe, 0x52, 0x21, 0xd3, 0x6a, 0x62, 0xc9, 0xf6, 0x07, 0xda, 0x9a, 0x33, 0x18, 0x84, - 0xfe, 0xde, 0x26, 0x2e, 0x8f, 0x58, 0xaa, 0x36, 0x4b, 0x45, 0xa1, 0x3f, 0xac, 0x4d, 0x9f, 0x46, - 0x0a, 0x58, 0xe0, 0xb8, 0xaa, 0xd6, 0xd3, 0xaa, 0xc8, 0x32, 0xa8, 0xa9, 0xf8, 0x15, 0x87, 0x78, - 0x31, 0x49, 0xe6, 0xe3, 0x4f, 0x69, 0x51, 0x45, 0x2a, 0x84, 0x15, 0x2d, 0x30, 0xf8, 0x49, 0xa1, - 0xbd, 0x96, 0xd2, 0x6c, 0x61, 0x03, 0x8c, 0x8e, 0x24, 0xa2, 0x90, 0x42, 0xed, 0x60, 0x48, 0x0a, - 0xe9, 0x68, 0xd4, 0x8a, 0x3f, 0xb3, 0x06, 0x70, 0xa6, 0x89, 0x35, 0xc3, 0xb6, 0xc0, 0x9a, 0x71, - 0xe0, 0x65, 0xde, 0x82, 0x54, 0x2a, 0x9c, 0x70, 0x7b, 0xe4, 0xe7, 0xd1, 0x86, 0x30, 0xa3, 0xb1, - 0x65, 0x34, 0x8c, 0x01, 0x61, 0x81, 0x3c, 0x22, 0x38, 0x4c, 0xec, 0x1d, 0xbf, 0xfa, 0xc6, 0xdb, - 0x10, 0x69, 0xa6, 0xa3, 0xd8, 0xff, 0x01, 0xec, 0xcc, 0xa1, 0x06, 0x5c, 0x30, 0x48, 0xde, 0x0c, - 0xda, 0x80, 0xad, 0x45, 0x96, 0xe1, 0x1c, 0xb0, 0x3f, 0x50, 0x3c, 0x60, 0x23, 0xcb, 0x24, 0x5d, - 0x38, 0x07, 0xac, 0x1b, 0xe7, 0x80, 0xd9, 0x38, 0x07, 0xdb, 0x50, 0xbb, 0x0e, 0x54, 0x26, 0xb7, - 0x80, 0x62, 0xfe, 0x2c, 0xda, 0xb6, 0x01, 0x61, 0x80, 0x0a, 0x86, 0x86, 0xe3, 0xf6, 0xb0, 0xcd, - 0x9b, 0x7d, 0xde, 0x40, 0x64, 0x60, 0x6b, 0x11, 0x19, 0x8c, 0x79, 0xfe, 0x33, 0x31, 0x5e, 0xb6, - 0x86, 0x76, 0x61, 0x5f, 0x02, 0xed, 0x12, 0x76, 0xc0, 0x9d, 0xb0, 0x15, 0x70, 0x27, 0xec, 0x0b, - 0xf0, 0x5c, 0xd8, 0x06, 0x78, 0x2e, 0xf7, 0x73, 0x0b, 0xb0, 0x85, 0xff, 0xfc, 0x43, 0xd4, 0xe1, - 0x18, 0xee, 0x2a, 0x68, 0x95, 0x2e, 0xc0, 0x0c, 0x8b, 0x8f, 0x09, 0x2d, 0xe3, 0xeb, 0x85, 0x5a, - 0x53, 0xc9, 0x92, 0x2c, 0xda, 0x0d, 0x9c, 0x39, 0xa3, 0xe8, 0xd4, 0x1b, 0x6d, 0x10, 0x06, 0xc7, - 0x60, 0x3a, 0x6f, 0xf4, 0x06, 0x2d, 0x2d, 0x32, 0x83, 0x8b, 0x1c, 0x74, 0x04, 0x09, 0x63, 0xd7, - 0x09, 0x69, 0x90, 0x99, 0x0f, 0xfd, 0xaa, 0xe2, 0xc5, 0x0a, 0x08, 0x04, 0x67, 0xff, 0x97, 0x24, - 0xd6, 0xea, 0x96, 0x3a, 0x29, 0x2a, 0xd8, 0x89, 0xf7, 0xd1, 0x9b, 0xe4, 0xa1, 0x8e, 0x8e, 0x5e, - 0x96, 0x4f, 0x2a, 0x8a, 0x52, 0x88, 0xcb, 0xa4, 0x1b, 0xf6, 0x6e, 0x25, 0x7a, 0x07, 0x21, 0x10, - 0x34, 0xe0, 0xee, 0x50, 0xb7, 0xc7, 0xa1, 0x65, 0x37, 0x05, 0xd9, 0x5c, 0x0d, 0x1b, 0xa7, 0xce, - 0xfb, 0x75, 0xe8, 0x14, 0x83, 0x57, 0x63, 0x5a, 0xc1, 0xe2, 0xac, 0xe1, 0x03, 0xcd, 0xff, 0x7f, - 0x97, 0xf4, 0x7d, 0x25, 0x0f, 0x2c, 0xb3, 0x08, 0xa3, 0x45, 0x59, 0x47, 0xf8, 0xce, 0x7c, 0xfb, - 0x50, 0x45, 0x57, 0x20, 0x91, 0x5c, 0x07, 0x5a, 0xa1, 0x14, 0x5d, 0xed, 0x0f, 0xae, 0xe1, 0x66, - 0x81, 0xa0, 0x1d, 0x51, 0x18, 0x54, 0x11, 0x5e, 0x2c, 0xe1, 0x6a, 0x02, 0xd7, 0xe1, 0xa1, 0x25, - 0x84, 0x5c, 0x40, 0x6f, 0x33, 0x65, 0x82, 0x21, 0x9d, 0xee, 0x86, 0x6d, 0x71, 0x27, 0xf2, 0x8e, - 0x90, 0x13, 0x56, 0xb8, 0xe7, 0x5c, 0xba, 0x4a, 0x50, 0x6c, 0x88, 0xfc, 0x8c, 0xff, 0x13, 0xe9, - 0xd8, 0x6d, 0xe8, 0x95, 0x3b, 0xc4, 0x37, 0xab, 0xcc, 0x34, 0x69, 0x72, 0x7e, 0x1e, 0x94, 0xf5, - 0xf3, 0x73, 0x9f, 0xdc, 0xd2, 0x6c, 0x10, 0x46, 0xe0, 0x79, 0x0c, 0xf8, 0x81, 0xde, 0x9f, 0xf8, - 0x07, 0x3d, 0x2a, 0xd8, 0x38, 0x8c, 0xe8, 0xd7, 0xaa, 0x60, 0x18, 0x6f, 0xf4, 0x2b, 0xa8, 0xc9, - 0x90, 0x33, 0x20, 0x66, 0x7e, 0x91, 0xfd, 0x68, 0x87, 0xc8, 0xf3, 0x40, 0x24, 0x90, 0x2f, 0x2b, - 0x4c, 0x47, 0x45, 0xa9, 0x6d, 0xe6, 0x9c, 0xa5, 0x55, 0x0d, 0xfb, 0x88, 0x37, 0x92, 0x61, 0x23, - 0x7a, 0x62, 0x38, 0xc4, 0x24, 0x91, 0x21, 0x47, 0x7e, 0xca, 0xa7, 0x89, 0x62, 0xc7, 0x49, 0x8b, - 0xba, 0x61, 0xbe, 0xb7, 0xe7, 0x43, 0x9f, 0xf8, 0xb0, 0xc3, 0x4e, 0x50, 0x7d, 0x86, 0x81, 0xc7, - 0x98, 0x1d, 0x7b, 0x76, 0x13, 0xf3, 0xea, 0x7f, 0xa4, 0xee, 0x65, 0x37, 0x60, 0xa6, 0x2f, 0x9d, - 0x30, 0xcd, 0x60, 0x9d, 0xae, 0x62, 0xb4, 0xaa, 0xb3, 0x7d, 0xc4, 0x79, 0xf1, 0x87, 0x99, 0x7a, - 0xe9, 0x44, 0xbf, 0x11, 0x52, 0xf1, 0xb7, 0xa1, 0x67, 0x98, 0x5a, 0x4e, 0x02, 0xa7, 0xee, 0x53, - 0xa8, 0x07, 0x7f, 0x05, 0xb0, 0x37, 0x55, 0x6f, 0x42, 0x6c, 0xf7, 0xc6, 0x7e, 0xae, 0x4c, 0x15, - 0x60, 0xae, 0x30, 0xe4, 0x89, 0x86, 0xcd, 0x36, 0x3e, 0xf8, 0xa3, 0xf0, 0x2c, 0x17, 0x8f, 0xfa, - 0xd6, 0x87, 0xc8, 0x1c, 0xb1, 0x2b, 0xfd, 0x89, 0x14, 0xe5, 0xd7, 0x26, 0x08, 0xb7, 0xf0, 0x2a, - 0x32, 0xb4, 0x32, 0xb0, 0x0d, 0x5c, 0x64, 0xdc, 0x2c, 0xd0, 0x1a, 0x77, 0x7c, 0xa3, 0x9d, 0x26, - 0x7d, 0xb6, 0x37, 0x08, 0xc2, 0x00, 0xbd, 0xfa, 0xd4, 0x47, 0x58, 0x33, 0xf6, 0x57, 0xeb, 0xd3, - 0x15, 0xbb, 0x36, 0x33, 0xeb, 0x65, 0xd5, 0x55, 0x46, 0xe7, 0xa0, 0xa2, 0x16, 0x87, 0x19, 0x16, - 0x9e, 0x49, 0xd6, 0x4a, 0xa6, 0x7e, 0x8f, 0xee, 0xb7, 0x92, 0x8f, 0x0f, 0xe2, 0xed, 0xa4, 0xdb, - 0x5f, 0x5a, 0xe8, 0xc4, 0x0c, 0x16, 0x35, 0x66, 0x1c, 0x86, 0x2c, 0xb9, 0xa8, 0xb9, 0x57, 0xb6, - 0x4d, 0x10, 0x62, 0x84, 0xa8, 0xf1, 0xae, 0x1b, 0x0e, 0x72, 0x50, 0xee, 0x87, 0x87, 0x4a, 0x16, - 0xac, 0x1b, 0xfa, 0xf0, 0xbe, 0x3b, 0x96, 0xa6, 0x86, 0x7d, 0x10, 0xfe, 0xa5, 0x56, 0x33, 0x68, - 0x56, 0xf9, 0x6e, 0xb3, 0x1a, 0xad, 0x91, 0xde, 0xa4, 0xe2, 0x5f, 0x8c, 0xd0, 0xa7, 0xb2, 0x96, - 0x21, 0x9a, 0xea, 0x70, 0x3f, 0xa1, 0x0c, 0x65, 0xd0, 0x8a, 0xdd, 0x19, 0xe8, 0x34, 0x81, 0xf9, - 0xa5, 0xb4, 0x3e, 0x9d, 0xf5, 0xf1, 0x0d, 0x06, 0x37, 0x55, 0xb8, 0xb1, 0xa9, 0x58, 0x8c, 0x68, - 0x1f, 0x66, 0x94, 0x29, 0x06, 0x37, 0x1d, 0x38, 0x35, 0x91, 0x2e, 0x6e, 0xdf, 0xcd, 0x64, 0x63, - 0xda, 0x8f, 0x8c, 0x6a, 0x6d, 0xcd, 0x05, 0x8b, 0xef, 0xc7, 0xfc, 0x56, 0xe7, 0x5c, 0xd3, 0x32, - 0x57, 0x7d, 0x38, 0x06, 0xa1, 0x17, 0xb6, 0x8f, 0xb5, 0xd8, 0xf1, 0xf8, 0x26, 0xaf, 0xc7, 0x9a, - 0x93, 0x7a, 0xe6, 0x26, 0xc0, 0x71, 0x5b, 0x1b, 0x50, 0xd2, 0x30, 0x77, 0x5c, 0x8e, 0x17, 0xe7, - 0xb4, 0x11, 0x1d, 0x71, 0x10, 0x62, 0x70, 0x44, 0xb1, 0x95, 0xad, 0x04, 0xe3, 0xba, 0x9c, 0x3f, - 0xcc, 0x66, 0x59, 0x42, 0x80, 0xa6, 0x9d, 0x87, 0xb5, 0x9e, 0x2c, 0xf3, 0xc0, 0xc6, 0x29, 0xe6, - 0xd1, 0x7c, 0x30, 0x8e, 0xa8, 0xa6, 0xf5, 0xf9, 0x39, 0x47, 0x43, 0x68, 0x17, 0x3f, 0x6b, 0x2d, - 0x7a, 0x96, 0x76, 0x9a, 0x5f, 0x03, 0x3c, 0x4e, 0x80, 0x58, 0xb8, 0x3d, 0xcd, 0xd2, 0x3c, 0x65, - 0x49, 0xf6, 0x79, 0x23, 0xea, 0xcb, 0x55, 0xe4, 0xe7, 0xa8, 0x69, 0x05, 0x52, 0x25, 0xd1, 0x5b, - 0x53, 0xac, 0x27, 0x85, 0xf3, 0x83, 0x9a, 0x15, 0x89, 0xdc, 0x21, 0xda, 0xb0, 0xcd, 0xab, 0x3d, - 0x59, 0x54, 0x4b, 0x8c, 0xa2, 0x7b, 0xad, 0x62, 0xb3, 0x2b, 0x21, 0x9b, 0xbd, 0x33, 0x64, 0x61, - 0xa3, 0x67, 0x28, 0x3b, 0x0f, 0x8e, 0xbe, 0x23, 0x59, 0x3a, 0x14, 0x67, 0x39, 0xa7, 0x24, 0x8f, - 0x06, 0xcb, 0x51, 0x0f, 0xdf, 0xe1, 0x94, 0xf4, 0xea, 0x00, 0x54, 0x7b, 0x23, 0x60, 0x77, 0x61, - 0x74, 0x15, 0x71, 0x14, 0xeb, 0x0d, 0x21, 0xac, 0xb3, 0xc4, 0xa4, 0x8d, 0xaf, 0x9b, 0x8e, 0xa1, - 0x27, 0x37, 0x00, 0xa0, 0x2b, 0x36, 0x59, 0x08, 0x3d, 0xf0, 0xac, 0x5f, 0x20, 0x3e, 0x61, 0xeb, - 0x2e, 0xce, 0xb5, 0x8b, 0x3f, 0xee, 0x42, 0x4f, 0x9f, 0x9c, 0xe0, 0x78, 0xd6, 0xac, 0xa8, 0xa4, - 0xf1, 0x98, 0x91, 0xf9, 0xeb, 0x85, 0x16, 0xc3, 0x56, 0x36, 0x4d, 0x6f, 0x11, 0x38, 0xd9, 0x16, - 0xa8, 0xb4, 0x2d, 0x91, 0x37, 0xa6, 0x71, 0x03, 0xc1, 0x9f, 0x01, 0x65, 0x70, 0x2c, 0xe1, 0x40, - 0x04, 0x3d, 0x29, 0xf3, 0x6e, 0x14, 0x05, 0xeb, 0x1d, 0x94, 0x74, 0xee, 0x08, 0x37, 0x4b, 0x09, - 0xa9, 0x52, 0xaf, 0x01, 0xc5, 0x77, 0x19, 0xdb, 0x02, 0xb6, 0x38, 0xe7, 0x41, 0x6d, 0x7a, 0x13, - 0xc2, 0x19, 0xc9, 0x93, 0xba, 0xa6, 0xcb, 0x87, 0x02, 0x92, 0x5e, 0xb1, 0xca, 0x28, 0xcc, 0xf1, - 0x84, 0x16, 0x99, 0x58, 0x45, 0x7f, 0xe6, 0xaa, 0x5f, 0x49, 0xf5, 0x25, 0x5a, 0x07, 0x4a, 0x25, - 0xd1, 0x04, 0x9f, 0x23, 0xb7, 0x23, 0xbb, 0xfe, 0xff, 0x21, 0xfb, 0x0d, 0x6f, 0x4f, 0x63, 0xcc, - 0x15, 0x39, 0xdf, 0xcb, 0xb6, 0x20, 0x1c, 0x9a, 0xf1, 0xb6, 0x22, 0xf8, 0xc6, 0x01, 0x09, 0x52, - 0xef, 0x5b, 0xf7, 0xe3, 0x92, 0x14, 0xb6, 0xe6, 0x6f, 0x23, 0x56, 0x61, 0xdd, 0x00, 0x4e, 0x87, - 0xee, 0xfd, 0x9c, 0xdc, 0x42, 0xb6, 0xe8, 0x45, 0x3e, 0xa9, 0xcb, 0x61, 0x37, 0x98, 0x3d, 0xd1, - 0x9a, 0xdd, 0xe3, 0x6e, 0x61, 0xaf, 0x50, 0x67, 0x05, 0xdf, 0x18, 0x2e, 0x40, 0x1c, 0x82, 0xca, - 0x24, 0x86, 0x4c, 0x3d, 0x5a, 0xaf, 0x26, 0x6c, 0x89, 0x1a, 0x2d, 0xb4, 0x97, 0x51, 0x01, 0x95, - 0x33, 0xa2, 0x4c, 0x80, 0xd9, 0x38, 0xf7, 0x14, 0x66, 0xdc, 0x53, 0xf0, 0x0e, 0xe0, 0x39, 0x4b, - 0x5b, 0x82, 0xab, 0xdc, 0x6c, 0x86, 0xa9, 0xcd, 0xd1, 0xf6, 0xf1, 0x3e, 0x84, 0x88, 0x02, 0x1a, - 0x27, 0x98, 0x7a, 0xcd, 0x9e, 0xb6, 0x41, 0xd9, 0x86, 0x3e, 0x9c, 0xc9, 0xd8, 0x76, 0x1b, 0x41, - 0x6d, 0x3b, 0xbb, 0x8e, 0x8e, 0x07, 0xd9, 0xa3, 0xd9, 0x8e, 0x56, 0x68, 0x69, 0x6b, 0x0b, 0x16, - 0x5c, 0xd3, 0x63, 0x90, 0xa3, 0x82, 0x59, 0x9b, 0x3d, 0xfa, 0x98, 0xb5, 0x75, 0xe8, 0x70, 0xd4, - 0xb6, 0x11, 0xce, 0xbd, 0x51, 0x3f, 0x4b, 0x70, 0x75, 0x26, 0xf4, 0xf6, 0x0b, 0xd3, 0x8b, 0x0f, - 0x79, 0x06, 0x99, 0x7c, 0x13, 0xf3, 0xad, 0xc2, 0x30, 0x43, 0xe4, 0x5e, 0x85, 0x43, 0x4a, 0x87, - 0xe8, 0xae, 0x3c, 0x44, 0xf1, 0xd4, 0xdc, 0x95, 0x12, 0xc5, 0x97, 0x2f, 0x3c, 0x68, 0xe0, 0xcc, - 0xbb, 0x84, 0xd9, 0xea, 0x95, 0xea, 0x2e, 0x09, 0x62, 0x6f, 0x51, 0x79, 0x11, 0xce, 0x80, 0xf7, - 0x0f, 0x15, 0x2f, 0xf9, 0x31, 0x65, 0x73, 0x1e, 0xfe, 0x18, 0x5a, 0xfd, 0x27, 0x6c, 0xb0, 0xc2, - 0x1d, 0x41, 0xa4, 0x2d, 0xad, 0xd5, 0xba, 0x1a, 0xaf, 0x94, 0x06, 0x6f, 0x5a, 0x3b, 0x52, 0x08, - 0xfc, 0x7c, 0x53, 0x6b, 0x39, 0x04, 0x7b, 0xfd, 0xfc, 0xcc, 0xda, 0xd0, 0x47, 0xb7, 0x83, 0x1f, - 0x6d, 0x9b, 0x8d, 0xb2, 0x38, 0x32, 0x23, 0x3e, 0x1e, 0x49, 0x28, 0xa3, 0xef, 0x2f, 0xce, 0x7b, - 0x53, 0x1e, 0x29, 0x5c, 0x05, 0xab, 0xe8, 0xe9, 0x38, 0xcf, 0xa2, 0xf4, 0xb8, 0x4c, 0x89, 0x99, - 0x55, 0x05, 0x90, 0x60, 0xc5, 0x7e, 0xee, 0x6a, 0x74, 0x60, 0x36, 0x3a, 0x10, 0x13, 0x50, 0x2f, - 0x3b, 0x8f, 0x4e, 0xda, 0xcd, 0x59, 0x81, 0x81, 0xee, 0x3b, 0xa4, 0x20, 0x7d, 0xde, 0xdc, 0xba, - 0x22, 0x91, 0x12, 0x82, 0x68, 0x80, 0x60, 0xc6, 0x6e, 0x4d, 0x51, 0xe8, 0xe8, 0x24, 0x24, 0x51, - 0x68, 0xa0, 0x44, 0x21, 0x9c, 0xef, 0x24, 0x82, 0xfb, 0xf6, 0xcf, 0xc6, 0x23, 0xd0, 0x45, 0xdf, - 0x5f, 0x8e, 0x3a, 0xa8, 0xc3, 0x19, 0x5f, 0x7f, 0xb6, 0xa3, 0xbd, 0xfa, 0x05, 0x3f, 0xda, 0xa5, - 0x6e, 0x7a, 0xa5, 0xf6, 0x49, 0xea, 0x8f, 0xb1, 0xef, 0x26, 0x3e, 0x2a, 0x27, 0x70, 0xb7, 0xbb, - 0x45, 0x1a, 0x8a, 0xdd, 0xbd, 0x64, 0x6f, 0xf7, 0x36, 0xc9, 0x6c, 0x60, 0xd6, 0x8b, 0x3e, 0xa5, - 0x6f, 0x8c, 0xcb, 0xca, 0xc1, 0x5d, 0x77, 0xa3, 0xdd, 0x4d, 0x95, 0x96, 0x17, 0xb6, 0xd6, 0x72, - 0x77, 0x69, 0x50, 0xde, 0xca, 0x0a, 0x8f, 0xe3, 0x4a, 0x76, 0xc9, 0x9b, 0x94, 0x3c, 0xb2, 0xc6, - 0xd4, 0x98, 0x4e, 0xfc, 0xae, 0xc1, 0x88, 0x65, 0xdf, 0xed, 0xfd, 0x04, 0xb8, 0x02, 0xbb, 0x25, - 0x63, 0x82, 0x63, 0x1d, 0x37, 0xce, 0x1d, 0x4b, 0xe8, 0x3c, 0xb9, 0x8d, 0x10, 0x57, 0x30, 0x71, - 0xbd, 0xe7, 0xb0, 0xcd, 0xa4, 0x0f, 0x56, 0xf2, 0xe7, 0x49, 0xc1, 0x78, 0xcc, 0x3e, 0xdb, 0x10, - 0x90, 0x43, 0x73, 0x04, 0x89, 0xe9, 0x76, 0xd9, 0x12, 0xb6, 0x53, 0xbf, 0x96, 0x09, 0x99, 0xb2, - 0x1f, 0xfa, 0x32, 0x46, 0x2a, 0x1a, 0x93, 0x6c, 0xfa, 0x88, 0x37, 0x4d, 0x72, 0x32, 0xe7, 0x10, - 0x2f, 0xa5, 0x65, 0xfd, 0x13, 0xb7, 0xb5, 0x6a, 0xa7, 0x19, 0xee, 0x79, 0x8d, 0xdb, 0xa5, 0x52, - 0x6e, 0xb1, 0x56, 0x88, 0x37, 0xd8, 0xaf, 0xf1, 0xbb, 0xd7, 0x8c, 0x47, 0x63, 0x68, 0xbe, 0x90, - 0xc1, 0x95, 0x2a, 0xfc, 0x54, 0x81, 0x83, 0xab, 0x47, 0xb1, 0x57, 0xe1, 0x37, 0x70, 0x86, 0x14, - 0x19, 0x6e, 0x3a, 0xf1, 0xd1, 0x56, 0xa1, 0x6d, 0x9c, 0xfb, 0x17, 0x6a, 0x41, 0xd4, 0x12, 0x09, - 0x44, 0x40, 0x31, 0x75, 0x21, 0xf0, 0xbe, 0x76, 0x75, 0x23, 0x0a, 0x8a, 0x0e, 0x35, 0x53, 0xe2, - 0xdc, 0x97, 0x2f, 0x2b, 0x6d, 0xb2, 0x3c, 0x15, 0xf2, 0x97, 0xdd, 0x21, 0x61, 0x24, 0x68, 0x36, - 0x74, 0x6e, 0xbd, 0xe4, 0x9e, 0xed, 0x03, 0x4f, 0x18, 0x4b, 0x80, 0xeb, 0xbe, 0x36, 0x5f, 0xe2, - 0x52, 0xc1, 0xdc, 0x78, 0x22, 0x92, 0x0f, 0x44, 0xe6, 0x58, 0x6b, 0x72, 0x7e, 0x78, 0xa8, 0xc8, - 0x54, 0xb0, 0x83, 0xda, 0x77, 0x4a, 0x2d, 0xd3, 0x91, 0xe1, 0x2b, 0x20, 0x6e, 0x6f, 0xb0, 0xdc, - 0xa8, 0x31, 0x39, 0xc5, 0x2f, 0x61, 0x8a, 0x57, 0x3e, 0xdc, 0xd8, 0x7b, 0xae, 0x25, 0xa3, 0x48, - 0x7a, 0xf9, 0x86, 0xfb, 0xed, 0xc9, 0xc9, 0xf1, 0x01, 0xdf, 0x73, 0xc3, 0x83, 0x23, 0x38, 0x35, - 0x93, 0x12, 0xfe, 0x18, 0x98, 0x77, 0x55, 0xd2, 0x69, 0x35, 0xd8, 0x40, 0xc9, 0x20, 0xae, 0x4e, - 0xeb, 0x70, 0x80, 0xb1, 0x70, 0xeb, 0xf6, 0xde, 0xfe, 0x19, 0x1d, 0xd0, 0x23, 0x2a, 0xbb, 0xa0, - 0x3a, 0x10, 0xb6, 0x77, 0xe0, 0xdd, 0x66, 0xf4, 0x5b, 0x1a, 0xb4, 0x95, 0xdd, 0x58, 0xc1, 0x83, - 0xcd, 0x5d, 0x7e, 0x1b, 0x1e, 0x6c, 0x40, 0x70, 0xcb, 0xbb, 0xac, 0xc3, 0x1c, 0xea, 0x2d, 0xac, - 0x81, 0x5b, 0xc8, 0xd7, 0x99, 0xd8, 0x61, 0x31, 0xc2, 0x30, 0xea, 0xb8, 0x0d, 0x1b, 0xbf, 0xdf, - 0x8b, 0x87, 0x5e, 0x9e, 0xc0, 0xa5, 0x66, 0xcc, 0x7a, 0x20, 0xf9, 0x81, 0x64, 0x75, 0x24, 0xae, - 0xde, 0x35, 0x9e, 0xe9, 0x58, 0xbc, 0x37, 0x56, 0x62, 0xd7, 0x8e, 0xa7, 0xd4, 0xa8, 0xa1, 0x35, - 0x40, 0xe1, 0x35, 0xba, 0xfa, 0xf7, 0x3b, 0xbe, 0xc5, 0xac, 0xf2, 0x87, 0x5f, 0xb0, 0xbd, 0xaf, - 0xd8, 0xc6, 0xbd, 0x51, 0xc3, 0xcc, 0x41, 0xef, 0xeb, 0xf2, 0x05, 0x70, 0x10, 0x86, 0xc6, 0x1e, - 0x4f, 0x7a, 0x01, 0x53, 0x19, 0x70, 0x63, 0x6a, 0x7c, 0x09, 0xf4, 0xee, 0xdf, 0xb3, 0xf5, 0x9b, - 0x87, 0xf1, 0xa2, 0xab, 0x3c, 0x47, 0xa1, 0x90, 0x85, 0xd7, 0x8d, 0x9e, 0xca, 0xdd, 0x3c, 0x19, - 0x25, 0x21, 0x2d, 0x87, 0x63, 0x97, 0xe4, 0x50, 0x3b, 0x0f, 0x72, 0x52, 0x70, 0x90, 0x3a, 0xb2, - 0x19, 0x5c, 0x05, 0x58, 0x94, 0x25, 0x33, 0x36, 0xdc, 0x74, 0x17, 0x95, 0xea, 0x1c, 0xc9, 0xc7, - 0x1b, 0x36, 0x9c, 0xb5, 0xb6, 0x4c, 0xca, 0x8e, 0xcd, 0x9b, 0x16, 0xcc, 0xab, 0x1a, 0xdf, 0x35, - 0x2c, 0xa8, 0x48, 0x9c, 0x4f, 0x5c, 0x38, 0x2d, 0x21, 0xf8, 0x6b, 0x7d, 0xf6, 0x50, 0x7f, 0x69, - 0xd1, 0x1d, 0xb3, 0x36, 0x34, 0x1c, 0x91, 0xfb, 0xa8, 0x2d, 0x37, 0xf7, 0xcf, 0x11, 0x85, 0x2c, - 0x6a, 0x28, 0x94, 0x55, 0x22, 0xad, 0xa2, 0xc9, 0xb6, 0xee, 0x14, 0xd8, 0xf8, 0x4c, 0x62, 0x96, - 0xb1, 0x9b, 0x88, 0x2a, 0xde, 0xc7, 0x18, 0xe3, 0x20, 0xdf, 0x37, 0x91, 0xbe, 0x14, 0x76, 0x1e, - 0xe1, 0xe5, 0x05, 0xed, 0x10, 0xad, 0x22, 0x19, 0x43, 0xa8, 0x20, 0xf6, 0xe1, 0xf8, 0x8e, 0xce, - 0x00, 0xd3, 0x70, 0x4e, 0x3f, 0xef, 0xaa, 0xd1, 0xc1, 0x88, 0xaf, 0xd1, 0xd5, 0xf5, 0xd2, 0x71, - 0xc7, 0xe3, 0xb0, 0xf8, 0xe8, 0x92, 0xc7, 0xd0, 0x0e, 0x82, 0x43, 0xe7, 0xa2, 0x29, 0x6e, 0x8d, - 0x0e, 0x94, 0xe8, 0x96, 0xc1, 0xc7, 0x90, 0x0c, 0x36, 0xb4, 0xed, 0x1c, 0x6b, 0x34, 0xf6, 0xe3, - 0x13, 0xb6, 0xd5, 0x05, 0x78, 0x3f, 0xfc, 0x23, 0x44, 0xd4, 0x70, 0x4f, 0x83, 0xf6, 0x99, 0x74, - 0xf1, 0x8e, 0x93, 0x60, 0x35, 0x2d, 0xab, 0x28, 0xb1, 0xad, 0x72, 0x91, 0x1e, 0x02, 0x8a, 0xa7, - 0x86, 0x2c, 0x2c, 0x3b, 0x13, 0xca, 0xdf, 0x32, 0xd9, 0x15, 0x91, 0x20, 0x6c, 0xbe, 0x53, 0x33, - 0x2c, 0xad, 0xce, 0xea, 0xb5, 0xe0, 0x85, 0xf9, 0x3a, 0xf0, 0x42, 0x7c, 0xb0, 0x08, 0x77, 0x62, - 0xf1, 0xd8, 0x9c, 0x59, 0x0d, 0x01, 0x4b, 0x18, 0x6f, 0x39, 0x63, 0xeb, 0xdb, 0x7d, 0x6a, 0x7c, - 0x2a, 0xe2, 0xce, 0x5e, 0x05, 0xa9, 0xf5, 0xad, 0x7c, 0xac, 0x2c, 0xf8, 0x21, 0x1d, 0xa6, 0x17, - 0x23, 0xe7, 0xfa, 0x41, 0x15, 0x1b, 0xc3, 0x95, 0x47, 0x2c, 0xe0, 0x91, 0xa4, 0x60, 0x8e, 0xf0, - 0x15, 0xa4, 0x61, 0x4e, 0x53, 0x63, 0xa4, 0x81, 0x1c, 0x86, 0xfb, 0x53, 0x94, 0x05, 0xf7, 0x69, - 0x34, 0x0e, 0xd0, 0x82, 0x3c, 0x98, 0x54, 0x69, 0xd4, 0xda, 0x6f, 0x8a, 0xb8, 0xa0, 0x80, 0x1d, - 0x61, 0x36, 0x8a, 0xe5, 0x72, 0xe8, 0x40, 0x43, 0x1a, 0x30, 0x85, 0xd3, 0x0d, 0x60, 0x0a, 0x6f, - 0xd7, 0xc3, 0x14, 0x06, 0x65, 0x7b, 0x9e, 0x62, 0xa6, 0xa7, 0xa1, 0x22, 0xa6, 0x84, 0x9a, 0xe3, - 0x69, 0xc0, 0xff, 0x86, 0x1a, 0xe2, 0x5b, 0xf1, 0x77, 0x31, 0x8b, 0xcb, 0x25, 0xff, 0x13, 0x38, - 0x83, 0x3c, 0x6e, 0x78, 0xe8, 0xb9, 0xc4, 0x36, 0x7a, 0xae, 0xcc, 0xb7, 0x5c, 0x61, 0x09, 0xf5, - 0xef, 0xe1, 0x21, 0x67, 0x66, 0x48, 0xdd, 0x93, 0x3f, 0x3f, 0xef, 0x34, 0xd2, 0xf3, 0xd3, 0xb8, - 0xf6, 0x6f, 0xe5, 0x12, 0xe2, 0x60, 0xdf, 0x9c, 0xf5, 0xbe, 0x60, 0xe6, 0xf9, 0xec, 0x91, 0xe1, - 0xf5, 0x0a, 0x58, 0x49, 0x13, 0x68, 0xb3, 0x58, 0x0b, 0xb2, 0x39, 0xcc, 0xf8, 0xf0, 0x53, 0x8c, - 0xa8, 0x78, 0x1c, 0xc8, 0x9f, 0x45, 0xf9, 0x7b, 0xdc, 0x20, 0x63, 0x8c, 0x64, 0x14, 0xcb, 0x6e, - 0x16, 0x4a, 0x37, 0x60, 0xa1, 0x6a, 0x03, 0x16, 0x9a, 0xae, 0x67, 0xa1, 0x4c, 0xb1, 0x50, 0x2a, - 0x89, 0x06, 0x16, 0xaa, 0xc4, 0xdf, 0xc0, 0x42, 0xd3, 0xa5, 0xc9, 0x2b, 0x99, 0x05, 0x99, 0xa4, - 0xf6, 0x34, 0x1d, 0x34, 0xe4, 0xac, 0x4d, 0x0a, 0x04, 0x91, 0x6f, 0x8e, 0xea, 0x9c, 0x7b, 0x38, - 0x25, 0x52, 0x10, 0x95, 0xb5, 0xae, 0x1b, 0xbe, 0x88, 0x77, 0x5c, 0x38, 0xbb, 0x76, 0xf0, 0x89, - 0x56, 0x56, 0xb5, 0xbf, 0xdf, 0xb9, 0x21, 0xe2, 0xdc, 0x86, 0xb0, 0xf3, 0x59, 0xdb, 0x2b, 0x45, - 0x69, 0x26, 0xd4, 0xeb, 0xd6, 0x42, 0xb8, 0xda, 0x3b, 0xb7, 0x29, 0x6b, 0x17, 0x95, 0xb1, 0x89, - 0x57, 0xd4, 0xf5, 0xbb, 0x5d, 0xd5, 0xef, 0xdd, 0x35, 0xfd, 0x3d, 0x5d, 0x51, 0x0f, 0xec, 0x3d, - 0x5d, 0xbb, 0x63, 0xb3, 0x9e, 0x55, 0x04, 0xdd, 0xdb, 0x04, 0xdd, 0xaf, 0x22, 0x08, 0x63, 0xfd, - 0xae, 0xa8, 0x09, 0x3e, 0xdb, 0x75, 0x41, 0x02, 0xca, 0x1a, 0x42, 0x79, 0x7e, 0x8e, 0x97, 0x6e, - 0xb7, 0x4e, 0x8a, 0x45, 0xdb, 0x5d, 0x27, 0x22, 0x7b, 0xd9, 0x27, 0x18, 0x24, 0xac, 0xab, 0xf3, - 0x5d, 0xb9, 0xa2, 0x46, 0x56, 0x5a, 0xf5, 0xb1, 0xb2, 0xbb, 0xbf, 0x22, 0x6a, 0x7a, 0x77, 0x5d, - 0xb0, 0xf7, 0xef, 0x6c, 0x71, 0xd8, 0xb4, 0xd4, 0x8f, 0x31, 0xd2, 0xbb, 0xeb, 0xdf, 0xe8, 0x58, - 0xb1, 0x3d, 0x6f, 0x54, 0x40, 0x55, 0xe9, 0x3a, 0x6a, 0xc8, 0x28, 0x0b, 0x74, 0x3c, 0xf2, 0x98, - 0x07, 0x9b, 0x18, 0x87, 0x18, 0x89, 0x13, 0xc2, 0xc3, 0xc3, 0xd5, 0x0a, 0xf7, 0x93, 0x24, 0xd0, - 0x8e, 0x4f, 0x49, 0x1c, 0xbb, 0x6e, 0x4b, 0x0d, 0x6f, 0xa8, 0x3e, 0x54, 0x9b, 0xc1, 0x4d, 0x64, - 0x00, 0xab, 0x69, 0x85, 0xec, 0xc2, 0x7e, 0x53, 0xb4, 0x70, 0x77, 0xcb, 0x38, 0x39, 0x4b, 0xf4, - 0xe6, 0xe2, 0x7a, 0xe9, 0xef, 0x4a, 0x2f, 0x7d, 0x17, 0xd5, 0x2f, 0x12, 0xb3, 0xb4, 0xab, 0x82, - 0xfe, 0xb8, 0x45, 0x6f, 0xba, 0x8a, 0x5e, 0x99, 0x46, 0xcb, 0xd7, 0x37, 0x86, 0xe4, 0x14, 0xb6, - 0x6c, 0x14, 0xb3, 0x27, 0x3d, 0xe8, 0x49, 0x63, 0xd2, 0x24, 0xd2, 0xe3, 0x76, 0x7d, 0x92, 0xc1, - 0x43, 0x5a, 0x51, 0x1f, 0x37, 0xe9, 0xd9, 0xca, 0x0a, 0xb6, 0xeb, 0x1f, 0x14, 0x8b, 0x12, 0xb7, - 0x5b, 0xc8, 0x88, 0x0e, 0x1f, 0x36, 0xb8, 0xaf, 0x09, 0xd9, 0xe4, 0xbb, 0x1c, 0x8d, 0x90, 0x10, - 0xfd, 0x36, 0x7e, 0xae, 0x9f, 0x5a, 0xeb, 0xb2, 0xb0, 0x6a, 0x1a, 0x63, 0xad, 0xb0, 0x6a, 0x5a, - 0xab, 0x4c, 0xdb, 0xab, 0x6c, 0x00, 0xdc, 0x34, 0xaa, 0xe5, 0x0e, 0x97, 0x30, 0x83, 0x02, 0xb9, - 0x0a, 0x2f, 0x34, 0xcf, 0xcf, 0xc9, 0xe8, 0xd8, 0xb7, 0x97, 0xcb, 0x72, 0xe9, 0x0a, 0x2b, 0x12, - 0xdd, 0x06, 0x6d, 0x0d, 0xe5, 0x29, 0x78, 0x4c, 0xb3, 0xcf, 0x57, 0xd1, 0xf4, 0x38, 0xae, 0xa3, - 0x23, 0x33, 0xe1, 0x08, 0x12, 0xc4, 0x9f, 0x83, 0xb8, 0x76, 0x97, 0x89, 0x45, 0xd6, 0xcf, 0x45, - 0x73, 0xaf, 0xc1, 0xf5, 0x95, 0xb8, 0x1c, 0x48, 0x17, 0x57, 0xe3, 0x12, 0x84, 0x48, 0x56, 0xcb, - 0xa1, 0x70, 0xd3, 0x94, 0xef, 0x97, 0xb0, 0x3e, 0x77, 0xd4, 0x5b, 0xe6, 0x63, 0x0a, 0xa2, 0x91, - 0xf9, 0x4b, 0x3b, 0xb1, 0x5f, 0xa0, 0x8e, 0x25, 0xf1, 0xfc, 0xd3, 0x98, 0x30, 0xaa, 0x85, 0x9d, - 0xa8, 0x08, 0x88, 0xc0, 0x02, 0x59, 0xc8, 0xd7, 0x36, 0x53, 0x1f, 0x33, 0xfd, 0x77, 0x8e, 0xfe, - 0x3c, 0xd2, 0x9c, 0x12, 0x48, 0xa2, 0xfd, 0xa4, 0xc8, 0x11, 0x5a, 0x33, 0x30, 0x4e, 0xf3, 0x9f, - 0x8b, 0x31, 0x5a, 0xfb, 0x0a, 0x3d, 0x4e, 0xcf, 0xdb, 0x93, 0x4f, 0x94, 0x7b, 0x5e, 0xaf, 0x4f, - 0x8e, 0xaf, 0xbe, 0xb7, 0x62, 0x0f, 0xa1, 0xa7, 0x10, 0x09, 0x1d, 0x08, 0xf3, 0x55, 0x9e, 0xbb, - 0xe6, 0x55, 0xfc, 0x29, 0x47, 0xe3, 0x96, 0x43, 0x6f, 0xcf, 0x4f, 0x29, 0xc2, 0x12, 0xe4, 0xed, - 0x7a, 0xa1, 0x01, 0x39, 0xf9, 0x7c, 0x74, 0x74, 0x12, 0xfa, 0xb0, 0x8e, 0x2a, 0xa0, 0x52, 0x18, - 0xba, 0x9e, 0xff, 0x00, 0xc2, 0x06, 0x2c, 0xb5, 0x49, 0xd2, 0xc3, 0xd7, 0x9e, 0x02, 0x44, 0xc5, - 0xa4, 0xae, 0xd1, 0x5f, 0x90, 0x64, 0x47, 0x84, 0x93, 0xe9, 0x97, 0x6f, 0x8d, 0x9b, 0x39, 0x5d, - 0x7a, 0x45, 0xcb, 0xd8, 0xe2, 0xdb, 0xb8, 0x0f, 0x37, 0x6a, 0x65, 0x64, 0xea, 0x69, 0x13, 0x5a, - 0x7f, 0xaf, 0x3c, 0x97, 0xb8, 0x61, 0x0b, 0x7d, 0x11, 0x68, 0xbb, 0xdf, 0xfb, 0xec, 0xac, 0x5f, - 0x2b, 0xab, 0x5a, 0x6d, 0xda, 0x15, 0xd4, 0x7c, 0x7c, 0xf1, 0x5f, 0x8a, 0x1b, 0x07, 0xb9, 0xd2, - 0x89, 0x41, 0x0d, 0x59, 0x50, 0x18, 0xf7, 0xa1, 0xfa, 0xa0, 0x36, 0x3f, 0xd7, 0xcd, 0xcf, 0x53, - 0xeb, 0xf3, 0x74, 0xfe, 0xc1, 0xf8, 0xec, 0x51, 0x8c, 0x02, 0xf5, 0x39, 0xbb, 0x57, 0x62, 0x24, - 0xa1, 0xa2, 0x8a, 0x47, 0xf2, 0x96, 0xd9, 0x30, 0x72, 0x22, 0x56, 0x85, 0x12, 0xbb, 0x73, 0xa3, - 0xb6, 0x71, 0xa9, 0x8e, 0xb1, 0x21, 0xab, 0x3e, 0x2f, 0x6a, 0x13, 0x0b, 0x30, 0xf7, 0x97, 0xdc, - 0xb1, 0x97, 0x4f, 0x7b, 0x8d, 0x6c, 0x1b, 0xe7, 0x81, 0xc6, 0x00, 0x92, 0x50, 0x61, 0x08, 0xa2, - 0x68, 0x34, 0x8c, 0x4f, 0x40, 0x16, 0x88, 0xba, 0xf7, 0xe2, 0xab, 0xd7, 0xaf, 0x5e, 0xbd, 0x1a, - 0xf6, 0x38, 0xab, 0xf7, 0x48, 0x51, 0xd6, 0xfb, 0x8c, 0x4e, 0xb3, 0xc6, 0xbb, 0x65, 0x8f, 0xac, - 0x83, 0x39, 0x50, 0x80, 0xb1, 0x3c, 0x16, 0x9e, 0x3f, 0xda, 0x1f, 0x6c, 0xdd, 0xd4, 0xe5, 0x67, - 0x38, 0xf9, 0x9f, 0x04, 0x02, 0x54, 0x9a, 0xf7, 0xa6, 0xdc, 0xc7, 0x1b, 0xbb, 0x67, 0x36, 0xca, - 0x9b, 0x23, 0x04, 0xa4, 0xc6, 0x82, 0xfc, 0xd2, 0xee, 0x09, 0x0d, 0x22, 0xf9, 0xbf, 0x96, 0xe3, - 0xbb, 0x04, 0xf8, 0x78, 0x86, 0xe6, 0x4b, 0xf7, 0xc5, 0x6d, 0x3a, 0xfb, 0x8c, 0xab, 0x90, 0x9c, - 0x68, 0xf9, 0x52, 0x04, 0xa1, 0x84, 0xf3, 0x11, 0xfc, 0x53, 0xe2, 0x3a, 0x8b, 0xcb, 0x73, 0x60, - 0x09, 0xb8, 0x81, 0xbd, 0x1d, 0x1a, 0xf7, 0x73, 0xf1, 0x6c, 0xaf, 0x26, 0x2b, 0x33, 0x00, 0x46, - 0x60, 0x66, 0x3e, 0x66, 0x71, 0x66, 0xad, 0xf7, 0xcb, 0x31, 0xc1, 0x89, 0xe2, 0x3a, 0xe7, 0x2b, - 0xbc, 0x3c, 0x6f, 0x2e, 0x71, 0xc4, 0x4e, 0x3c, 0x28, 0xce, 0xb8, 0x2d, 0xfa, 0x55, 0x79, 0x7e, - 0x0d, 0xfb, 0xa3, 0x65, 0xbc, 0x0e, 0x49, 0x9c, 0xa8, 0x66, 0x72, 0xd1, 0x4c, 0xfa, 0xd4, 0x4c, - 0x42, 0xdb, 0x34, 0x58, 0x20, 0xba, 0x81, 0x45, 0x1e, 0x95, 0x6f, 0x03, 0x60, 0xa4, 0xc8, 0xeb, - 0x1a, 0x2d, 0x84, 0x0a, 0x4b, 0x12, 0x3e, 0x46, 0x79, 0xf2, 0x98, 0x7d, 0xa6, 0xed, 0xe7, 0x56, - 0xce, 0xd8, 0x81, 0x07, 0x87, 0x02, 0xb2, 0x22, 0x2e, 0x74, 0xd5, 0x10, 0xb2, 0x26, 0xa5, 0x62, - 0x97, 0x3e, 0x66, 0xd6, 0xb7, 0x8f, 0x18, 0x7c, 0xee, 0x63, 0xe6, 0xeb, 0xc8, 0x24, 0xd2, 0x49, - 0x1e, 0x87, 0x43, 0xeb, 0x5d, 0x03, 0xd7, 0x9f, 0xbe, 0xbc, 0x67, 0x3f, 0xc3, 0x68, 0xc6, 0x61, - 0x60, 0x7a, 0xd6, 0xfb, 0xcb, 0x00, 0x31, 0x1b, 0x4d, 0xc7, 0x76, 0x6e, 0x05, 0x26, 0xf7, 0x47, - 0x8a, 0xec, 0x25, 0x4d, 0xb0, 0xf1, 0x9b, 0x64, 0x24, 0x3b, 0x15, 0xfd, 0x16, 0x4d, 0x2e, 0xda, - 0xdc, 0x6e, 0xcc, 0xe3, 0xb0, 0xa5, 0xa4, 0xa9, 0x43, 0x3f, 0x27, 0xa7, 0xde, 0xc1, 0x36, 0xf5, - 0x1e, 0xbf, 0x9a, 0xf1, 0x57, 0x6b, 0xd4, 0x29, 0xeb, 0x8d, 0x71, 0xe5, 0xc6, 0x67, 0xf3, 0x90, - 0x71, 0x4c, 0x08, 0x82, 0xec, 0x13, 0x54, 0x56, 0x84, 0xc7, 0xb9, 0x63, 0xd0, 0xdd, 0xa6, 0x65, - 0xbd, 0x45, 0x5d, 0xd2, 0xd0, 0x1a, 0xc3, 0x69, 0x3e, 0x3b, 0xeb, 0xdb, 0x75, 0xde, 0xa2, 0x16, - 0x71, 0xe9, 0xdb, 0x1c, 0x07, 0x24, 0x36, 0x66, 0x98, 0xec, 0x86, 0xb9, 0xb2, 0x75, 0xda, 0xc4, - 0xe3, 0xdc, 0x62, 0xa0, 0xec, 0x27, 0xf6, 0x1d, 0x2c, 0x6b, 0xd0, 0x07, 0x92, 0x8c, 0xa5, 0x2e, - 0xd4, 0x48, 0x49, 0x0b, 0x44, 0xac, 0x8a, 0x93, 0xa1, 0xe1, 0x2b, 0xd1, 0x05, 0x92, 0x88, 0xe6, - 0x52, 0xcc, 0x6f, 0x53, 0xd4, 0x3f, 0x3d, 0x11, 0x8a, 0xfa, 0x10, 0x63, 0xb9, 0xb9, 0x2a, 0x7e, - 0xf1, 0x0d, 0xb9, 0xf7, 0x82, 0xc0, 0xe2, 0xfb, 0xd5, 0xdd, 0xe4, 0x92, 0x55, 0x7d, 0x66, 0x40, - 0x20, 0x02, 0xf3, 0xc3, 0x26, 0x37, 0x45, 0x34, 0x79, 0x3e, 0x0e, 0xf2, 0x08, 0x71, 0xf1, 0xd5, - 0x03, 0x1b, 0xc6, 0x5f, 0x78, 0x1b, 0xa8, 0xe3, 0x85, 0x59, 0xb0, 0x8a, 0x9d, 0x71, 0x02, 0x28, - 0x00, 0x80, 0x03, 0x8d, 0x47, 0x1e, 0x38, 0x78, 0x83, 0x99, 0xc7, 0xa1, 0xf6, 0xa3, 0x29, 0xdf, - 0x08, 0x1c, 0x3c, 0xaf, 0x82, 0xdd, 0x18, 0x63, 0xfc, 0x2c, 0x40, 0x2e, 0x5c, 0xcc, 0x23, 0x38, - 0x5f, 0xe1, 0xbf, 0x4f, 0x11, 0x2a, 0xb5, 0xe1, 0xba, 0x69, 0x9a, 0xab, 0x9f, 0x84, 0x76, 0xfc, - 0xb8, 0x3d, 0x90, 0x20, 0x86, 0xb7, 0xc5, 0x22, 0x39, 0x98, 0x9b, 0xd9, 0x8e, 0xbf, 0x75, 0xf2, - 0xf9, 0xcb, 0x47, 0x18, 0xf3, 0xa4, 0x4f, 0x89, 0xe3, 0x49, 0xdd, 0x87, 0x02, 0xfb, 0x44, 0x91, - 0x7f, 0x8a, 0x55, 0x70, 0xe2, 0x20, 0x71, 0xa9, 0xc7, 0x32, 0xe1, 0x70, 0x91, 0x38, 0x64, 0x68, - 0x12, 0xe0, 0x06, 0x03, 0x51, 0xe3, 0x26, 0x7c, 0x91, 0xcd, 0x11, 0x86, 0x69, 0x18, 0xda, 0x31, - 0x17, 0x14, 0xcc, 0x6a, 0x15, 0xd8, 0x01, 0x17, 0xd4, 0x87, 0xbb, 0xc0, 0x8e, 0xb6, 0xa0, 0x81, - 0x59, 0x39, 0x03, 0x81, 0x3c, 0x6c, 0x36, 0x31, 0x4f, 0x9e, 0x2e, 0x09, 0xf2, 0xc6, 0x00, 0xa0, - 0x1a, 0x34, 0xf4, 0x77, 0x0e, 0xc3, 0x5d, 0x21, 0x47, 0x9a, 0xb3, 0x38, 0xcc, 0xf9, 0x31, 0xb2, - 0x07, 0xa7, 0x20, 0x2b, 0x2e, 0x45, 0x35, 0xdf, 0xca, 0x18, 0x0e, 0xd0, 0xc8, 0x54, 0x51, 0x52, - 0xeb, 0xb4, 0x7c, 0xb6, 0x1e, 0x44, 0xe6, 0xd8, 0xf7, 0xe8, 0x9d, 0x2a, 0xb3, 0xc9, 0x7e, 0x48, - 0x82, 0xb1, 0x95, 0x52, 0x8f, 0x99, 0x78, 0x74, 0x0e, 0x8a, 0x26, 0x9b, 0x9a, 0xc3, 0xf8, 0x57, - 0x45, 0x4a, 0x66, 0x61, 0x6e, 0x6a, 0xb8, 0x4b, 0x33, 0xf9, 0x57, 0x95, 0x5c, 0x04, 0x2c, 0x4e, - 0xab, 0xe2, 0xe0, 0x0d, 0xa7, 0xa0, 0xfe, 0xf4, 0xae, 0xf8, 0xe5, 0x6e, 0xd2, 0x07, 0x4e, 0xcb, - 0x80, 0xd3, 0x80, 0xcb, 0x24, 0xaf, 0xb9, 0xb5, 0xe6, 0xc9, 0x93, 0xf4, 0xe4, 0xb9, 0x4c, 0x27, - 0x19, 0x0d, 0x76, 0x6b, 0x80, 0x25, 0xaf, 0x23, 0x68, 0xd3, 0x57, 0xe3, 0xf1, 0xb8, 0xb7, 0x3f, - 0x38, 0xf9, 0x26, 0xe8, 0x61, 0xf0, 0x40, 0x6f, 0x0f, 0xd6, 0xf5, 0x9e, 0x17, 0xe0, 0xbf, 0x77, - 0xe2, 0xdf, 0x09, 0x1c, 0xce, 0xb8, 0x1d, 0xad, 0xa0, 0x70, 0xdc, 0x46, 0xdf, 0xaf, 0x7f, 0x0a, - 0x7d, 0x61, 0x18, 0x6e, 0x46, 0x9f, 0xd1, 0xf2, 0xdf, 0xd4, 0xc0, 0x9a, 0xb3, 0xf5, 0x21, 0xc9, - 0x40, 0xee, 0xd0, 0xab, 0x04, 0xd8, 0x84, 0x7b, 0x6d, 0xfa, 0x8b, 0x01, 0x5c, 0xd3, 0xf8, 0x0b, - 0xd3, 0x87, 0xe4, 0x33, 0x42, 0x87, 0xbf, 0x78, 0x81, 0xe8, 0xe8, 0x04, 0x3a, 0x66, 0x6e, 0x9d, - 0xc2, 0xcd, 0x33, 0x69, 0x2d, 0xa1, 0x14, 0xdc, 0xba, 0x84, 0xaa, 0xc4, 0x0c, 0x56, 0x60, 0xb2, - 0xac, 0x88, 0x16, 0xa6, 0x35, 0x0a, 0xc6, 0x5a, 0xf9, 0xd6, 0x0f, 0x80, 0xcf, 0xb9, 0xe8, 0xab, - 0x96, 0xbc, 0xf7, 0x15, 0x42, 0x82, 0x9a, 0x88, 0x6e, 0xb0, 0x14, 0x84, 0x28, 0x4c, 0xea, 0x52, - 0x9d, 0x71, 0x36, 0x1b, 0x8f, 0xc3, 0xd0, 0xd3, 0x48, 0x78, 0x2b, 0x96, 0x59, 0xcc, 0x41, 0xed, - 0x98, 0x8f, 0x11, 0x9c, 0xf4, 0xa6, 0x72, 0xe4, 0xdc, 0x2d, 0xe5, 0xb6, 0x23, 0x0e, 0x46, 0x44, - 0x74, 0x52, 0x4c, 0x81, 0xea, 0x73, 0xc6, 0x7b, 0x05, 0x37, 0x2a, 0x6b, 0xfd, 0xc0, 0x7d, 0x94, - 0xf9, 0x91, 0x93, 0xf4, 0x66, 0x3e, 0x86, 0xe3, 0x2d, 0x83, 0xf1, 0xa8, 0x3f, 0xc1, 0x44, 0xc2, - 0x7f, 0x61, 0xe7, 0x96, 0xfd, 0x47, 0x42, 0xc2, 0x38, 0xb3, 0x01, 0x73, 0xb1, 0x9a, 0x90, 0xb9, - 0xc5, 0x4a, 0x7f, 0xd5, 0x7a, 0x02, 0xab, 0x9e, 0xcb, 0xb5, 0xf5, 0xd4, 0x5e, 0xeb, 0x16, 0xe0, - 0xd4, 0xf3, 0xeb, 0xda, 0x7a, 0x3e, 0x79, 0xad, 0x7b, 0x86, 0x53, 0xcf, 0xdf, 0x9a, 0xf5, 0xf4, - 0x17, 0x9c, 0xe3, 0xa3, 0xb6, 0x95, 0xb1, 0x74, 0xca, 0xe3, 0x62, 0xb6, 0xb8, 0xd4, 0x39, 0x17, - 0x02, 0x16, 0xb7, 0x9d, 0x0a, 0xb0, 0xe5, 0xb7, 0x9d, 0x09, 0x43, 0xcd, 0x2c, 0x22, 0x26, 0xa9, - 0x34, 0x5f, 0x41, 0xcb, 0x4c, 0xff, 0x86, 0xdb, 0x07, 0xb4, 0xc7, 0x50, 0x75, 0x79, 0xb3, 0x8a, - 0x93, 0xc0, 0x4d, 0xbb, 0x43, 0xb8, 0x6b, 0x27, 0x6d, 0x12, 0xd7, 0x12, 0x3c, 0x59, 0x7c, 0x72, - 0xba, 0xf8, 0xde, 0xb6, 0xd9, 0x53, 0xc2, 0x40, 0xd0, 0x2e, 0xf9, 0xb0, 0xc6, 0x1a, 0x49, 0x64, - 0x9f, 0x79, 0x2b, 0x22, 0x83, 0xcd, 0x7c, 0x89, 0xa3, 0x4c, 0x12, 0x2b, 0x63, 0xd1, 0x2d, 0x61, - 0xd1, 0x9b, 0x30, 0x46, 0x4f, 0x85, 0x53, 0xc7, 0x69, 0x13, 0x8e, 0x9b, 0x10, 0xa5, 0x4d, 0xc2, - 0x2e, 0x83, 0x19, 0xfa, 0xcf, 0x0c, 0x76, 0xcd, 0x3e, 0xe2, 0xef, 0xae, 0x65, 0x19, 0x0a, 0x76, - 0x78, 0xb4, 0x83, 0x45, 0x4d, 0xe0, 0xe9, 0x56, 0x85, 0x95, 0x12, 0xa5, 0x7c, 0x19, 0xb6, 0xcc, - 0x95, 0x14, 0xc6, 0x30, 0x0b, 0xb5, 0x04, 0xb6, 0x4c, 0x0f, 0xaa, 0xa8, 0x08, 0xc6, 0x30, 0x09, - 0xb9, 0x4e, 0xba, 0xa3, 0xa4, 0x49, 0x9c, 0xe9, 0xa4, 0x09, 0x25, 0x3d, 0xc2, 0xe1, 0xe6, 0x0c, - 0xd8, 0x90, 0x23, 0xe1, 0x72, 0x35, 0x1a, 0x34, 0x12, 0x5d, 0x5d, 0x5d, 0x07, 0xf4, 0xbf, 0xeb, - 0xe5, 0x52, 0x3c, 0x3d, 0x22, 0x22, 0x36, 0xe5, 0x8e, 0xaf, 0xf8, 0xe0, 0x14, 0xd7, 0xee, 0xd3, - 0xa2, 0xa5, 0xa0, 0x1c, 0x67, 0x68, 0x23, 0xda, 0xae, 0x2d, 0x9f, 0x4e, 0x99, 0xab, 0xb3, 0x45, - 0x0a, 0xe6, 0x53, 0x53, 0xd6, 0x43, 0x5c, 0xfb, 0xff, 0xc2, 0xdd, 0x41, 0xc4, 0x39, 0xc0, 0xdf, - 0x32, 0x66, 0xc2, 0xe1, 0xe1, 0x5d, 0xca, 0xe6, 0x0f, 0x13, 0x7c, 0x6b, 0x3b, 0xfc, 0x3e, 0xad, - 0xa6, 0x45, 0x51, 0x7c, 0x48, 0x93, 0x43, 0x0c, 0x91, 0x71, 0xf8, 0x98, 0x7e, 0x48, 0xf1, 0xa2, - 0xcc, 0x15, 0x92, 0x15, 0x0c, 0x24, 0xbf, 0xa0, 0x49, 0x78, 0x9b, 0x7e, 0x7f, 0x3e, 0xdd, 0x8b, - 0x07, 0xaf, 0xfc, 0xd1, 0x71, 0x88, 0x92, 0x0c, 0x36, 0xeb, 0x07, 0xf3, 0xe9, 0xe8, 0x48, 0xfe, - 0x3c, 0x0e, 0x71, 0xab, 0x7f, 0xf9, 0x32, 0x8e, 0xe7, 0x53, 0x4a, 0xd9, 0x8b, 0x8f, 0x31, 0x25, - 0x7c, 0x65, 0xa4, 0x40, 0x05, 0x52, 0xba, 0x41, 0x28, 0x16, 0xdf, 0xba, 0x37, 0xdc, 0xcc, 0x6b, - 0x34, 0xd3, 0x9a, 0x4f, 0x97, 0x41, 0x0f, 0x21, 0x6c, 0x82, 0xde, 0x49, 0xf8, 0x0d, 0x86, 0x8f, - 0x0b, 0x5e, 0x0f, 0x44, 0x18, 0x1b, 0x90, 0x88, 0x2a, 0x0b, 0x49, 0x12, 0x12, 0x7e, 0x21, 0x55, - 0x21, 0x57, 0x73, 0xe2, 0x77, 0x6b, 0x03, 0xa0, 0x4b, 0x0a, 0x46, 0x48, 0xf5, 0x87, 0x32, 0x0e, - 0x47, 0xf7, 0x5d, 0xc5, 0xb4, 0xd2, 0x41, 0x3c, 0xc2, 0x59, 0x5a, 0xdd, 0xf7, 0x7e, 0x49, 0x26, - 0x45, 0x21, 0x2e, 0x84, 0x7d, 0xde, 0x3e, 0x48, 0xa9, 0x8d, 0x38, 0x12, 0x70, 0xc9, 0x8e, 0xbd, - 0x43, 0xae, 0x70, 0x58, 0x4a, 0x52, 0x2f, 0x6d, 0xd4, 0x4b, 0x38, 0x58, 0x6b, 0x7b, 0x7f, 0xaa, - 0x6a, 0x4e, 0x9b, 0xa4, 0xfd, 0xd2, 0xff, 0x42, 0x2a, 0x79, 0xc3, 0x9a, 0xc8, 0x4b, 0x8a, 0xfc, - 0x23, 0x69, 0x08, 0x3a, 0xaa, 0x9b, 0xb9, 0xd5, 0xd1, 0x58, 0xaa, 0xe7, 0x47, 0xcf, 0xb2, 0xfe, - 0x58, 0xf0, 0xc7, 0xe3, 0x90, 0x3f, 0x30, 0x4a, 0x70, 0x07, 0x7a, 0xf1, 0xdf, 0x09, 0x97, 0xd7, - 0x4b, 0x19, 0x98, 0x51, 0xe0, 0xc2, 0xd1, 0xeb, 0x6e, 0x7c, 0xff, 0x18, 0x18, 0x09, 0x50, 0xfe, - 0x37, 0xba, 0x94, 0x1b, 0x59, 0x7e, 0x8f, 0xef, 0xe7, 0xbe, 0x81, 0x37, 0x3c, 0x18, 0x26, 0xc2, - 0xae, 0x24, 0x71, 0xec, 0x4a, 0xc4, 0xc3, 0x66, 0xb7, 0x41, 0x0b, 0xe9, 0x10, 0x8c, 0x00, 0xe1, - 0x26, 0xb6, 0xa8, 0x15, 0x4c, 0xdc, 0xc2, 0xf9, 0xa6, 0x58, 0x26, 0x70, 0x39, 0xaf, 0x40, 0x82, - 0x43, 0x9f, 0x72, 0xc4, 0x31, 0xec, 0x7b, 0x8f, 0x19, 0x61, 0x92, 0x3f, 0x79, 0xc2, 0xe1, 0x1e, - 0x05, 0x18, 0x7e, 0x77, 0x37, 0xf4, 0x77, 0x8c, 0x83, 0xdb, 0x23, 0xf2, 0xe2, 0x27, 0x0c, 0x66, - 0x40, 0xff, 0xc8, 0x29, 0x34, 0x5b, 0x84, 0x2f, 0x25, 0x9f, 0x1c, 0xd8, 0xc0, 0x92, 0xbe, 0x29, - 0xec, 0x2c, 0xad, 0x7c, 0x8b, 0x65, 0x70, 0xa7, 0x1e, 0x60, 0x78, 0x27, 0xc2, 0x40, 0x40, 0x0f, - 0x1a, 0x64, 0xd6, 0x0d, 0x32, 0x03, 0x07, 0x9d, 0x73, 0x51, 0x46, 0x66, 0xc5, 0xc1, 0x27, 0x13, - 0xa5, 0x0f, 0xe3, 0xf5, 0x36, 0xaf, 0x8f, 0x01, 0x17, 0xff, 0xa4, 0x82, 0x26, 0x09, 0x5e, 0xbf, - 0xb6, 0x1e, 0x3f, 0x5c, 0xc2, 0x48, 0x1b, 0xb3, 0x59, 0xa4, 0x5c, 0x20, 0xe5, 0xe9, 0xac, 0x24, - 0x11, 0x79, 0x2f, 0xb1, 0x03, 0xe6, 0xfe, 0x01, 0x08, 0xd0, 0xf6, 0x58, 0xbb, 0x2b, 0x01, 0x3d, - 0x6b, 0x54, 0x3a, 0x99, 0x03, 0x6e, 0x3f, 0x06, 0xc0, 0xf0, 0x5b, 0xa3, 0x06, 0xd3, 0x06, 0x75, - 0x9c, 0xd6, 0x07, 0xf7, 0x67, 0xae, 0xea, 0xaa, 0x31, 0x1a, 0x7b, 0x03, 0x18, 0x0f, 0xd4, 0x5c, - 0xf9, 0x11, 0x22, 0xc7, 0x6e, 0x18, 0x89, 0x17, 0xb1, 0x72, 0xff, 0xce, 0xe3, 0x4a, 0x73, 0x50, - 0x07, 0x15, 0xa0, 0xd2, 0x8a, 0x09, 0xb6, 0x06, 0xdb, 0x97, 0x6d, 0x07, 0xeb, 0x9b, 0xf8, 0x04, - 0xeb, 0xc8, 0x3a, 0x82, 0x53, 0x51, 0x60, 0xab, 0x98, 0x3f, 0x9d, 0x72, 0x2a, 0xd2, 0x0c, 0x0e, - 0x85, 0xc1, 0x0f, 0x5e, 0x47, 0x3c, 0xd3, 0xc0, 0xc8, 0x75, 0xd4, 0x99, 0xcb, 0x3a, 0xec, 0xc6, - 0x15, 0x8e, 0x4d, 0xc0, 0xf4, 0x0a, 0x4d, 0xba, 0xef, 0x59, 0xca, 0x5d, 0x1c, 0x35, 0xf5, 0x42, - 0x80, 0x71, 0xad, 0xff, 0x94, 0xc3, 0x38, 0xd2, 0xc2, 0x56, 0x0c, 0x18, 0xed, 0x35, 0x69, 0xec, - 0x95, 0x14, 0x79, 0x2b, 0x46, 0xef, 0xb7, 0x30, 0x1a, 0x0c, 0xd3, 0x53, 0x85, 0x84, 0x91, 0x4a, - 0x4c, 0xf3, 0x3c, 0xae, 0xaf, 0xd2, 0xeb, 0x60, 0xd3, 0x38, 0x63, 0x70, 0xb5, 0xff, 0x67, 0x59, - 0x26, 0xd5, 0x9b, 0x31, 0x82, 0x0a, 0x0f, 0x73, 0x87, 0x7a, 0x1d, 0x93, 0x4b, 0x74, 0xc1, 0xce, - 0xef, 0x63, 0xcc, 0xa3, 0x1d, 0xda, 0x44, 0xe5, 0xb4, 0x23, 0x71, 0x56, 0x2c, 0x2f, 0x1c, 0x5c, - 0x44, 0x63, 0x96, 0xb6, 0x8c, 0xb0, 0x06, 0x8c, 0xe8, 0x53, 0x59, 0x32, 0xce, 0x39, 0x80, 0x70, - 0x2b, 0x74, 0x34, 0xdf, 0xee, 0x12, 0x32, 0x4b, 0x4c, 0x8b, 0x87, 0xda, 0x1e, 0x6a, 0x79, 0xed, - 0x41, 0x20, 0x78, 0x76, 0x30, 0x2b, 0xa6, 0x0f, 0xa8, 0xab, 0x62, 0x54, 0x09, 0x32, 0xf2, 0x8f, - 0x78, 0x4f, 0xec, 0xe3, 0x65, 0x89, 0xff, 0xe5, 0xd1, 0x33, 0x2d, 0x5e, 0x5b, 0x80, 0x5a, 0x32, - 0xa4, 0x45, 0x85, 0x22, 0x0f, 0x3d, 0x2c, 0x6a, 0x3e, 0x40, 0x74, 0x04, 0x83, 0x35, 0xea, 0x56, - 0x3e, 0xe6, 0xcf, 0xbd, 0x64, 0x6b, 0x2e, 0x7d, 0xc1, 0xae, 0x21, 0x23, 0xcc, 0xd2, 0x8f, 0x63, - 0xb1, 0x7e, 0x12, 0xc3, 0x0e, 0xd0, 0x92, 0xf9, 0xa9, 0xda, 0x9f, 0x9e, 0x64, 0xa0, 0x07, 0x27, - 0x7c, 0xb5, 0x58, 0x41, 0xd2, 0xca, 0x57, 0xde, 0x1a, 0xc3, 0x6b, 0xd5, 0x57, 0x55, 0xf1, 0x59, - 0xa2, 0x44, 0xe4, 0x59, 0xc6, 0xa2, 0xad, 0xc7, 0xe0, 0x8f, 0xf6, 0x12, 0x81, 0x86, 0x99, 0xb2, - 0x56, 0xd0, 0xbd, 0xb5, 0xf6, 0x0a, 0x84, 0x00, 0x1c, 0xb3, 0xef, 0x2b, 0x2d, 0x8b, 0x07, 0x18, - 0x20, 0x4d, 0x43, 0xb8, 0xe0, 0x18, 0xd8, 0x8e, 0xab, 0x09, 0x3a, 0x04, 0xf8, 0x92, 0x9b, 0xe9, - 0xd7, 0x90, 0xdf, 0x92, 0x73, 0x9f, 0x10, 0x9b, 0x49, 0xc4, 0xa6, 0xf4, 0xf8, 0x2a, 0xbf, 0x46, - 0xa3, 0xab, 0x3e, 0xe3, 0xf9, 0x64, 0x20, 0x88, 0x53, 0x1d, 0xd0, 0x1e, 0xe3, 0xdc, 0x67, 0xa7, - 0xf5, 0x3e, 0x1b, 0x66, 0xb0, 0x44, 0x78, 0x2e, 0x3a, 0x9b, 0x13, 0xee, 0x77, 0xb0, 0x3f, 0xe0, - 0xe1, 0x5e, 0x1a, 0x44, 0x18, 0xe0, 0xd3, 0xfe, 0x22, 0xb7, 0xd0, 0xa8, 0x6d, 0x72, 0x58, 0x85, - 0xd4, 0x18, 0xd0, 0xd3, 0x26, 0x51, 0x06, 0x82, 0x88, 0x4d, 0x9b, 0x4b, 0x97, 0x91, 0x51, 0x90, - 0x67, 0xba, 0x15, 0x20, 0x95, 0x7a, 0x50, 0x95, 0xd1, 0x9f, 0x71, 0xbb, 0xe1, 0xd6, 0xbf, 0x1c, - 0x6e, 0x26, 0x31, 0x4c, 0x7f, 0x0b, 0x71, 0xe7, 0x13, 0xf7, 0xc5, 0x52, 0xc4, 0xee, 0x53, 0xb7, - 0x20, 0xdc, 0xc5, 0x46, 0x38, 0xa2, 0x96, 0xc2, 0xb9, 0x6e, 0x55, 0x38, 0x9b, 0x01, 0x2a, 0x77, - 0x68, 0x9d, 0xb7, 0xe5, 0x52, 0xd6, 0xf5, 0x5c, 0x0c, 0x69, 0xb1, 0x38, 0xd6, 0x39, 0x82, 0x64, - 0x44, 0xd3, 0x29, 0x27, 0x1b, 0x49, 0x76, 0x4b, 0x69, 0x73, 0x1d, 0x5d, 0x0e, 0x41, 0x2c, 0xd5, - 0xfb, 0x76, 0xee, 0x9f, 0x49, 0x87, 0x82, 0xfc, 0x3a, 0x2e, 0xc5, 0x1f, 0xea, 0xad, 0x22, 0xd0, - 0x3c, 0xa8, 0x72, 0x11, 0xc0, 0x2b, 0x4c, 0xa1, 0x4a, 0x10, 0x48, 0x1c, 0xbe, 0xf6, 0x4d, 0x50, - 0x69, 0xb1, 0xc6, 0xb9, 0xc9, 0x09, 0x05, 0xc3, 0xcc, 0x81, 0xfc, 0xde, 0xa8, 0x0b, 0x41, 0x68, - 0xad, 0x8a, 0x10, 0x79, 0x24, 0x94, 0x3a, 0x3a, 0x9a, 0x21, 0xf3, 0xa9, 0x90, 0xbb, 0x1d, 0xe4, - 0x14, 0x43, 0xc9, 0x70, 0x34, 0x00, 0xbe, 0x8b, 0x56, 0x97, 0x90, 0x21, 0x25, 0xcb, 0x71, 0x99, - 0xfe, 0x0a, 0xd7, 0x9f, 0xdc, 0x57, 0xe6, 0xe7, 0xb9, 0xf9, 0x8a, 0x1b, 0x67, 0xa8, 0xe7, 0xcf, - 0x9a, 0x8f, 0x99, 0xe2, 0xb0, 0xe4, 0x05, 0x9c, 0x97, 0x6e, 0xea, 0x19, 0x37, 0x7b, 0xcf, 0xa5, - 0xf7, 0x82, 0x40, 0x19, 0x5b, 0xe1, 0x8c, 0xc1, 0xd1, 0x0a, 0x8c, 0x50, 0xad, 0x1d, 0x3d, 0x90, - 0xf1, 0x9a, 0x9b, 0x55, 0xda, 0x1e, 0x0a, 0x4b, 0xf6, 0x05, 0xbe, 0x16, 0x86, 0x42, 0x3e, 0xa7, - 0x1d, 0x51, 0x2b, 0xe4, 0x1b, 0x06, 0x33, 0x93, 0xec, 0xa1, 0xea, 0xb7, 0x06, 0x6a, 0x6a, 0x7e, - 0x31, 0x6d, 0x58, 0xf8, 0xd7, 0x25, 0xf7, 0x69, 0xff, 0xd7, 0x9b, 0x66, 0x58, 0x13, 0xc9, 0xb7, - 0x18, 0x6b, 0x32, 0x78, 0x1b, 0xbf, 0xa4, 0x55, 0x98, 0x12, 0x25, 0x70, 0x9f, 0x78, 0x0a, 0x05, - 0x34, 0x3f, 0x75, 0xee, 0x92, 0x5e, 0x13, 0xa5, 0xfd, 0xba, 0x41, 0x3d, 0x07, 0xad, 0x5f, 0xa8, - 0x1b, 0x16, 0xf7, 0xb1, 0xbb, 0x7d, 0x57, 0x3c, 0xc0, 0x2c, 0xd5, 0x67, 0x6e, 0x02, 0x86, 0x8f, - 0x48, 0x0c, 0x41, 0x6d, 0x5c, 0x9f, 0x57, 0x05, 0xc1, 0x4c, 0x49, 0x51, 0x8d, 0x6f, 0x18, 0x18, - 0xf2, 0x2c, 0x31, 0x03, 0x9d, 0x91, 0x30, 0x43, 0xd1, 0xcb, 0xf0, 0xc2, 0x53, 0xbf, 0x87, 0x5b, - 0x77, 0xdf, 0x83, 0xb2, 0xea, 0xbd, 0x1b, 0xae, 0x4b, 0x32, 0x8e, 0x9c, 0x79, 0x79, 0x99, 0x7e, - 0x90, 0xe7, 0x58, 0x39, 0x45, 0x91, 0x50, 0xee, 0x48, 0xb0, 0x7b, 0x8d, 0xab, 0xbb, 0xc4, 0x58, - 0xc6, 0xb4, 0xed, 0x8b, 0x44, 0xfb, 0xc4, 0x55, 0x59, 0x86, 0xe6, 0x5a, 0x97, 0x3e, 0xc1, 0x20, - 0x2c, 0x9a, 0xdd, 0x60, 0xce, 0xef, 0x1a, 0x7e, 0xf7, 0x61, 0x30, 0xe5, 0x50, 0x41, 0x6d, 0xa8, - 0xc5, 0xfe, 0x4d, 0x0d, 0xac, 0x08, 0xa7, 0xce, 0xc6, 0x93, 0x29, 0x17, 0xd5, 0x3d, 0xff, 0x8a, - 0xcf, 0xc2, 0xb5, 0xe0, 0xac, 0x77, 0x45, 0x19, 0xfc, 0xeb, 0x4d, 0x9b, 0x63, 0x84, 0x60, 0xaf, - 0x9d, 0xbe, 0x9c, 0x9b, 0xd0, 0xb7, 0x50, 0xb2, 0x88, 0xf7, 0x79, 0xff, 0x79, 0x8e, 0x17, 0x2f, - 0x9c, 0x71, 0x68, 0x92, 0x15, 0xb3, 0xfd, 0x27, 0x8c, 0x4d, 0x47, 0xcf, 0x4d, 0x24, 0xc0, 0xd7, - 0x08, 0xd7, 0xba, 0xd7, 0xcf, 0xff, 0x52, 0x1f, 0x3e, 0xbe, 0x07, 0x99, 0xbf, 0xf8, 0x29, 0x7d, - 0x4a, 0x6e, 0xfb, 0x47, 0xfe, 0x30, 0xdc, 0xc1, 0x3d, 0xb6, 0xcf, 0xc9, 0x1d, 0x85, 0x84, 0xbf, - 0xe3, 0xab, 0x84, 0x53, 0x8a, 0x83, 0x89, 0x09, 0xd9, 0xe8, 0x60, 0x70, 0x04, 0x62, 0xcb, 0x26, - 0x5d, 0x85, 0x1b, 0x1f, 0x1f, 0x19, 0xa8, 0x07, 0x7a, 0xcd, 0xa5, 0x2e, 0x32, 0x5f, 0x2a, 0x40, - 0xac, 0x63, 0x9f, 0xfb, 0xde, 0xfe, 0x7e, 0xea, 0x05, 0xbc, 0xdc, 0x7e, 0x9c, 0x23, 0x71, 0x83, - 0xfd, 0x4c, 0xea, 0xda, 0xc6, 0x28, 0x78, 0x7d, 0xa8, 0x05, 0x09, 0x20, 0x45, 0x74, 0xd5, 0x31, - 0xf3, 0x82, 0xcc, 0xdf, 0x74, 0x5c, 0x07, 0x50, 0x91, 0x58, 0x11, 0xa6, 0xf1, 0x95, 0x0e, 0xe1, - 0xb8, 0x68, 0x01, 0x06, 0x76, 0x24, 0x55, 0x79, 0x51, 0xcc, 0x6f, 0xa7, 0xf4, 0x70, 0xf5, 0xf8, - 0x7e, 0xf4, 0xdd, 0xeb, 0xef, 0x9e, 0x9f, 0xe1, 0xdf, 0x93, 0xe3, 0xd7, 0x2f, 0x5e, 0x3c, 0xbe, - 0x3f, 0xfd, 0xee, 0x28, 0xf4, 0x3b, 0x03, 0xa1, 0x72, 0x40, 0xe8, 0xc5, 0xe3, 0x7b, 0x19, 0xa6, - 0x93, 0x36, 0x2b, 0x42, 0x83, 0x35, 0x83, 0x49, 0x0e, 0x0d, 0x55, 0x08, 0x79, 0x5c, 0x89, 0xa9, - 0xe5, 0x80, 0x9e, 0xc3, 0xfa, 0x4d, 0x91, 0x61, 0xf7, 0xb1, 0x7f, 0x09, 0x8f, 0x58, 0x14, 0xc8, - 0xb4, 0x89, 0xd4, 0x70, 0xd3, 0xce, 0x66, 0x95, 0x13, 0x39, 0x39, 0x08, 0x73, 0x1f, 0xc6, 0xfd, - 0xa5, 0x2e, 0xc6, 0x4a, 0x5d, 0x95, 0x40, 0xcb, 0x27, 0x1e, 0x6b, 0xa2, 0x57, 0x8b, 0xf4, 0x84, - 0x90, 0x07, 0x51, 0x2c, 0xe3, 0xcc, 0xf8, 0x7d, 0x2c, 0xb8, 0xf2, 0xfb, 0xa0, 0xfd, 0x46, 0x5e, - 0x4e, 0xef, 0xbd, 0x40, 0x64, 0xf1, 0xc5, 0x1f, 0xb1, 0xfa, 0x0d, 0x03, 0x37, 0x38, 0x3a, 0x09, - 0x15, 0x6f, 0x83, 0xc4, 0x9f, 0xd0, 0xf8, 0x8a, 0x64, 0x1c, 0xf9, 0x47, 0xfa, 0x9b, 0x06, 0x3b, - 0x36, 0x52, 0xf9, 0x0f, 0x5c, 0xa2, 0xa8, 0xd5, 0x03, 0xe6, 0xe1, 0xce, 0x75, 0xb2, 0xca, 0x33, - 0xd1, 0xd4, 0xce, 0x20, 0x12, 0xad, 0x61, 0x74, 0x73, 0x45, 0xb7, 0x26, 0xc1, 0x61, 0x3e, 0x79, - 0x94, 0x72, 0x7e, 0xb8, 0x00, 0xea, 0x4d, 0x98, 0x68, 0x5e, 0xca, 0xc2, 0x0b, 0x37, 0x46, 0x9d, - 0x73, 0x0d, 0x0f, 0x47, 0x25, 0xb2, 0x42, 0xa3, 0xca, 0x9e, 0x1f, 0x86, 0x02, 0xf2, 0x9d, 0x79, - 0x21, 0x5e, 0xe6, 0x1f, 0x58, 0xe1, 0x6d, 0x31, 0x7b, 0x6a, 0x29, 0x70, 0x67, 0x55, 0x49, 0x07, - 0xea, 0x05, 0xa1, 0xb6, 0x97, 0xf8, 0x0f, 0xd9, 0xf2, 0x3e, 0xc6, 0xb0, 0xce, 0x8d, 0x5d, 0x24, - 0x81, 0x4d, 0xf1, 0x87, 0x24, 0x29, 0xe1, 0x6e, 0x79, 0x70, 0x70, 0xa0, 0xa2, 0x6b, 0x08, 0x79, - 0x51, 0xee, 0xfd, 0x2a, 0x06, 0x2f, 0x9c, 0x88, 0xf3, 0x74, 0x06, 0xf7, 0x75, 0xee, 0xf3, 0xf0, - 0x8f, 0xc9, 0x7f, 0x93, 0x85, 0x1f, 0xff, 0xab, 0xf6, 0x7d, 0x13, 0x6a, 0x25, 0x05, 0xbe, 0xf6, - 0xc5, 0x17, 0xf4, 0x99, 0x3e, 0xa3, 0x5d, 0xfe, 0xf9, 0xd9, 0x56, 0x21, 0x24, 0xc1, 0x02, 0x52, - 0xc9, 0x14, 0x23, 0x30, 0xa8, 0x81, 0xb4, 0x80, 0x4a, 0xf9, 0x51, 0x6b, 0x7e, 0x72, 0xdd, 0x56, - 0x4a, 0xca, 0x46, 0x37, 0x96, 0x7c, 0x45, 0x75, 0xee, 0x10, 0xb9, 0x17, 0x00, 0x97, 0x8b, 0xc5, - 0x06, 0xa7, 0x3e, 0xdd, 0x4f, 0x70, 0xa3, 0xc0, 0x00, 0x1d, 0xa4, 0x06, 0x85, 0xf2, 0x1e, 0x01, - 0xb5, 0x07, 0x28, 0x8b, 0x40, 0x3d, 0xcd, 0x5c, 0xf7, 0x05, 0x5a, 0x0d, 0x16, 0x8f, 0x50, 0x19, - 0x2e, 0xeb, 0xee, 0x8c, 0x0c, 0x4f, 0x48, 0x8e, 0xa6, 0xbd, 0x26, 0x27, 0x55, 0x59, 0xc0, 0x1d, - 0x29, 0xc0, 0xfd, 0x7d, 0x4d, 0xbe, 0x87, 0x72, 0x5d, 0x36, 0x6a, 0x18, 0x04, 0x40, 0x9d, 0xef, - 0x3f, 0x4e, 0x0f, 0x61, 0x0f, 0x4e, 0x4b, 0x36, 0xea, 0x9d, 0x1e, 0x62, 0x48, 0x18, 0xfc, 0x77, - 0xce, 0xee, 0xb3, 0x51, 0xef, 0x7f, 0x01, 0xa1, 0x76, 0xea, 0xd4, 0x82, 0x6b, 0x01, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdc, 0xbd, 0x59, 0x76, 0xe3, 0xc8, + 0xb2, 0x20, 0xf8, 0xaf, 0x55, 0x20, 0x10, 0x79, 0x23, 0x88, 0x24, 0xc4, 0x99, 0x14, 0x87, 0xa0, + 0x74, 0xa9, 0x79, 0x9e, 0xa8, 0x39, 0x2a, 0xce, 0x0b, 0x90, 0x04, 0x49, 0x48, 0x20, 0x00, 0x01, + 0xe0, 0x24, 0x06, 0xdf, 0x32, 0xea, 0x9c, 0xde, 0x40, 0x7f, 0xf4, 0x02, 0x7a, 0x01, 0xbd, 0x94, + 0x5e, 0x49, 0x9b, 0xb9, 0x3b, 0x00, 0x07, 0x08, 0x52, 0x8a, 0xcc, 0x7c, 0xd5, 0x55, 0x95, 0xf7, + 0x86, 0x08, 0x38, 0x7c, 0x34, 0x33, 0x37, 0x37, 0x33, 0x37, 0x37, 0xff, 0xf6, 0x69, 0xf7, 0x62, + 0xe7, 0xe6, 0xf1, 0x72, 0x4f, 0xe8, 0xbb, 0x03, 0x7d, 0x53, 0xf8, 0x86, 0x3f, 0x82, 0xae, 0x18, + 0xbd, 0xba, 0xa8, 0x1a, 0x22, 0x26, 0xa8, 0x4a, 0x07, 0x7e, 0x06, 0xaa, 0xab, 0x08, 0x86, 0x32, + 0x50, 0xeb, 0xe2, 0x48, 0x53, 0xc7, 0x96, 0x69, 0xbb, 0xa2, 0xb0, 0xd6, 0x36, 0x0d, 0x57, 0x35, + 0xdc, 0xba, 0x38, 0xd6, 0x3a, 0x6e, 0xbf, 0xde, 0x51, 0x47, 0x5a, 0x5b, 0x5d, 0x27, 0x2f, 0xb2, + 0x66, 0x68, 0xae, 0xa6, 0xe8, 0xeb, 0x4e, 0x5b, 0xd1, 0xd5, 0x7a, 0x56, 0x1e, 0x40, 0xc2, 0x60, + 0x38, 0xf0, 0xde, 0x45, 0xaf, 0xd2, 0xb5, 0x76, 0x5f, 0xb1, 0x1d, 0x15, 0x2a, 0x19, 0xba, 0xdd, + 0xf5, 0xb2, 0x18, 0x6e, 0xcc, 0xed, 0xab, 0x03, 0x75, 0xbd, 0x6d, 0xea, 0xa6, 0x2d, 0x0a, 0x7e, + 0x73, 0x9f, 0x73, 0xe4, 0x3f, 0xae, 0x0e, 0xef, 0xcb, 0x54, 0x75, 0x44, 0x56, 0x54, 0xb1, 0x2c, + 0x5d, 0x5d, 0x1f, 0x98, 0x2d, 0x0d, 0x7e, 0xc6, 0x6a, 0x6b, 0x1d, 0x12, 0xd6, 0xdb, 0x8a, 0xa5, + 0xb4, 0x74, 0x15, 0x4b, 0xea, 0x9a, 0xf1, 0x22, 0xd8, 0xaa, 0x5e, 0x17, 0x9d, 0x3e, 0x0c, 0xa7, + 0x3d, 0x74, 0x05, 0x0d, 0xea, 0x81, 0x61, 0xf5, 0x6d, 0xb5, 0x5b, 0x17, 0x3b, 0x8a, 0xab, 0x54, + 0xb5, 0x81, 0xd2, 0x53, 0xd3, 0x93, 0x75, 0xfc, 0x52, 0x6b, 0x29, 0x8e, 0x5a, 0x2a, 0xc8, 0x8d, + 0x46, 0x63, 0xbb, 0xd1, 0xd8, 0x6b, 0xec, 0xc1, 0x5f, 0xfc, 0x3d, 0x68, 0xec, 0x1c, 0xe0, 0xd3, + 0x7e, 0x0f, 0xfe, 0x1c, 0xe9, 0x57, 0x37, 0x2f, 0xed, 0xf3, 0x9d, 0xbe, 0x79, 0x82, 0x69, 0xbb, + 0xb7, 0xfa, 0xd1, 0xf5, 0xfe, 0x11, 0x3e, 0x5e, 0xd1, 0xdc, 0x3d, 0x92, 0xf7, 0x30, 0x7d, 0x99, + 0x7e, 0xc4, 0x94, 0xbd, 0xec, 0xf1, 0xf5, 0xde, 0xfe, 0xed, 0xc5, 0x51, 0xf6, 0x19, 0x92, 0xd2, + 0x97, 0xe3, 0x8b, 0x49, 0xef, 0xfc, 0x40, 0x6d, 0xdc, 0x9e, 0x4d, 0xf6, 0x2a, 0x07, 0xa5, 0xf6, + 0xd5, 0xce, 0xc9, 0xee, 0x7d, 0xa3, 0x6f, 0x35, 0x76, 0x9f, 0x72, 0xdd, 0xf2, 0xe5, 0xd9, 0xf3, + 0x76, 0x33, 0x7f, 0x75, 0x9f, 0x29, 0x5f, 0x9d, 0xe4, 0x32, 0x27, 0xca, 0xd3, 0x4e, 0xae, 0xd7, + 0xdd, 0xa9, 0xf4, 0x77, 0x8c, 0x57, 0x73, 0x68, 0x9e, 0xf7, 0x1a, 0xd7, 0xbd, 0xc7, 0x8d, 0xb7, + 0xb3, 0x49, 0x63, 0x7a, 0xae, 0xdf, 0x76, 0xae, 0x0e, 0xf5, 0x07, 0xad, 0xa1, 0x5f, 0xe4, 0xce, + 0x76, 0x1b, 0xbb, 0xa5, 0xfc, 0xde, 0xdd, 0xeb, 0xf9, 0x61, 0x43, 0xcd, 0x34, 0x48, 0x47, 0xf4, + 0xfd, 0x9b, 0x97, 0xe6, 0xf0, 0x6a, 0xb0, 0xb3, 0x23, 0x6e, 0xae, 0x09, 0xdf, 0x5c, 0xcd, 0xd5, + 0xd5, 0xcd, 0xfb, 0xd3, 0xbd, 0xdd, 0x6f, 0x69, 0xfa, 0x2c, 0x7c, 0x73, 0xda, 0xb6, 0x66, 0xb9, + 0x9b, 0x6b, 0xdd, 0xa1, 0xd1, 0x76, 0x35, 0xd3, 0x10, 0xba, 0xaa, 0xda, 0x69, 0x29, 0xed, 0x97, + 0x84, 0x34, 0x9b, 0x8f, 0x14, 0x5b, 0x00, 0x94, 0x9b, 0xed, 0xe1, 0x00, 0x20, 0x9f, 0xea, 0xa9, + 0xee, 0x9e, 0xae, 0xe2, 0xa3, 0xb3, 0x3d, 0xbd, 0x51, 0x7a, 0xe7, 0x80, 0x83, 0x84, 0x88, 0xd4, + 0x23, 0x4a, 0xdf, 0x33, 0x3f, 0x64, 0x3d, 0xc8, 0xda, 0xb6, 0x55, 0xc5, 0x55, 0x59, 0xee, 0x84, + 0x48, 0x5b, 0x11, 0xa5, 0x9a, 0x9e, 0x72, 0xa7, 0x16, 0x43, 0x9c, 0xd6, 0x56, 0xb0, 0xc5, 0xf4, + 0xb3, 0x32, 0x52, 0x58, 0x06, 0x59, 0x4f, 0x39, 0x76, 0xbb, 0x2e, 0x6a, 0xb6, 0x99, 0x7a, 0x76, + 0xf0, 0x55, 0xe9, 0x74, 0xf6, 0x46, 0x50, 0xc7, 0xa9, 0xe6, 0x00, 0xf6, 0x55, 0x3b, 0x21, 0xea, + 0x26, 0xb4, 0x27, 0xab, 0xf5, 0xcd, 0x59, 0xdb, 0xd2, 0xda, 0x2f, 0x75, 0x43, 0x1d, 0x0b, 0x98, + 0x7f, 0x07, 0x09, 0xe8, 0x12, 0x52, 0x30, 0xd3, 0x67, 0x8b, 0x3c, 0x88, 0xf2, 0x8c, 0x50, 0x6a, + 0x35, 0x57, 0xca, 0xc8, 0xe3, 0xbe, 0xaa, 0xea, 0xa7, 0x5a, 0xaf, 0xef, 0x1a, 0xaa, 0xe3, 0x54, + 0x3f, 0x65, 0x69, 0x4a, 0xc3, 0xe8, 0xe9, 0x6a, 0x35, 0xb7, 0xc1, 0x32, 0xec, 0x6a, 0xb6, 0x4a, + 0x20, 0x51, 0x15, 0xdb, 0xba, 0xd9, 0x7e, 0x19, 0x6b, 0x8e, 0x0a, 0x1d, 0x51, 0xa6, 0xe6, 0xd0, + 0xad, 0x7e, 0x9f, 0xb5, 0xcd, 0x81, 0x65, 0x1a, 0xd0, 0xa1, 0x2a, 0xb6, 0x39, 0xd4, 0x52, 0xf7, + 0x58, 0x48, 0x36, 0x2d, 0x2c, 0xe2, 0x54, 0x67, 0xf3, 0xf9, 0x8f, 0xb9, 0x24, 0x93, 0x9e, 0xa5, + 0x4c, 0x23, 0x21, 0x6a, 0x86, 0x05, 0xe5, 0x54, 0x03, 0xba, 0x9c, 0x90, 0xa0, 0xcf, 0x30, 0x0b, + 0x48, 0x47, 0x13, 0x59, 0x29, 0x94, 0x8f, 0x90, 0x7f, 0x15, 0xe6, 0x89, 0xd1, 0x53, 0x59, 0xd6, + 0xa1, 0x05, 0xe4, 0xa9, 0x5e, 0x36, 0x75, 0xad, 0xa3, 0xda, 0x4e, 0x02, 0xf2, 0xd7, 0x10, 0x21, + 0xee, 0xfb, 0x50, 0x76, 0xdf, 0x81, 0xb2, 0x4b, 0xa1, 0x6c, 0x63, 0x63, 0xae, 0x39, 0x6c, 0xf7, + 0x09, 0xb0, 0xdd, 0x95, 0xc0, 0x26, 0x99, 0x9d, 0xfa, 0x35, 0xfe, 0xdc, 0x90, 0x32, 0x30, 0x94, + 0xa1, 0x95, 0xf8, 0x4a, 0x46, 0xf8, 0x9d, 0x36, 0x48, 0x32, 0x89, 0x3f, 0xbe, 0xca, 0x33, 0xe8, + 0xac, 0xae, 0xba, 0xd0, 0x59, 0xc8, 0x75, 0x04, 0x13, 0xd7, 0x1e, 0x29, 0x7a, 0x82, 0x0c, 0x4b, + 0x44, 0x10, 0xc2, 0x37, 0x55, 0xac, 0xd7, 0x83, 0xa1, 0xc0, 0x48, 0x3a, 0xd3, 0xa6, 0x0b, 0xc3, + 0xf9, 0xf2, 0x25, 0xd1, 0xd6, 0x55, 0xc5, 0xf6, 0x4b, 0xb9, 0x92, 0x6c, 0x1a, 0xa7, 0xd0, 0x91, + 0x84, 0x24, 0xcd, 0xe5, 0x6c, 0x26, 0x83, 0x90, 0x83, 0x6a, 0x6f, 0xb4, 0x81, 0x0a, 0x48, 0xa1, + 0xb5, 0xf6, 0x53, 0x30, 0x58, 0x00, 0xf3, 0x4e, 0x5f, 0xd3, 0x3b, 0x50, 0xe4, 0x83, 0x19, 0x75, + 0x96, 0x71, 0xed, 0x5b, 0x9a, 0xcd, 0x04, 0x98, 0x12, 0xee, 0x14, 0xa6, 0xc6, 0xda, 0xbf, 0xbb, + 0xc0, 0x70, 0xd6, 0xbb, 0x4a, 0x5b, 0x9d, 0xb1, 0xa7, 0x81, 0xa6, 0x4f, 0xab, 0xf7, 0x47, 0xc0, + 0x26, 0x9c, 0x1a, 0x00, 0xb0, 0x3a, 0xb4, 0xf5, 0x04, 0xe1, 0x20, 0xf8, 0x3d, 0x3d, 0x36, 0xbb, + 0xdd, 0x5c, 0xcd, 0xe3, 0x74, 0x84, 0xd1, 0x79, 0xdc, 0xa4, 0x93, 0xa9, 0x1c, 0x9c, 0xf5, 0x1a, + 0x84, 0x97, 0x34, 0x1a, 0xc6, 0x6d, 0xa3, 0xe1, 0xd0, 0x09, 0x9a, 0xc5, 0xbf, 0x83, 0xfd, 0x46, + 0xe3, 0xe0, 0x69, 0xd0, 0x6b, 0x2c, 0xfd, 0x6f, 0x7b, 0xd0, 0x68, 0xf4, 0x1e, 0xc6, 0xd7, 0x3b, + 0x8d, 0xd7, 0xf6, 0xe3, 0xf1, 0xd3, 0x51, 0xe3, 0xe6, 0x71, 0xe7, 0xb8, 0x71, 0x3e, 0xde, 0x79, + 0x33, 0x1b, 0xdb, 0x3b, 0xc0, 0x94, 0xc6, 0x8f, 0x87, 0x47, 0xdb, 0xce, 0xc6, 0x6e, 0x59, 0xbb, + 0x18, 0xbf, 0xf5, 0x06, 0xf9, 0xb3, 0x87, 0x33, 0xe3, 0xed, 0x69, 0xe7, 0xc5, 0x35, 0x9e, 0xdb, + 0xad, 0xf3, 0xe4, 0x95, 0x7e, 0x7c, 0xaa, 0x1c, 0xe7, 0x87, 0xfa, 0xed, 0xa9, 0xa5, 0x5b, 0xf7, + 0xa5, 0xdb, 0xd7, 0x7b, 0xcd, 0x54, 0x9b, 0x95, 0xec, 0xf1, 0x54, 0xcd, 0x3c, 0xdf, 0xea, 0xc7, + 0xe3, 0x27, 0xbb, 0x68, 0xdc, 0x74, 0xf6, 0xf2, 0xa7, 0x86, 0xdb, 0xb9, 0x1c, 0x35, 0x7a, 0xc9, + 0xae, 0x9b, 0xee, 0xb6, 0x9c, 0x53, 0xe7, 0x40, 0x3f, 0x3f, 0x1d, 0xf6, 0xf5, 0xc1, 0xd5, 0xf3, + 0x89, 0xb6, 0x71, 0x7e, 0xb9, 0xbb, 0x77, 0xd4, 0x1b, 0xdf, 0x0c, 0x80, 0x8b, 0x29, 0xa5, 0x41, + 0x47, 0x4f, 0x36, 0x0f, 0x6f, 0xb7, 0xfb, 0x7b, 0x47, 0x9d, 0xc3, 0xfd, 0x89, 0xf2, 0xb2, 0xe1, + 0x14, 0xf6, 0xd2, 0xd3, 0xb7, 0xfe, 0x71, 0xf3, 0x79, 0x67, 0x63, 0xfb, 0xea, 0xea, 0xb4, 0xbb, + 0x3b, 0x36, 0xad, 0xfd, 0xb4, 0x56, 0x52, 0x5e, 0x9b, 0x7b, 0xfa, 0xde, 0xfe, 0xee, 0xc3, 0xa4, + 0xfc, 0x74, 0x77, 0xff, 0x3c, 0xcd, 0xdb, 0xd3, 0x41, 0xe1, 0xbc, 0xb4, 0xaf, 0x3f, 0x5d, 0x15, + 0xfa, 0xc3, 0xa4, 0xf1, 0xe0, 0x1c, 0x1c, 0xed, 0x9e, 0x5d, 0xed, 0xe7, 0x7b, 0x8d, 0x89, 0x92, + 0x2d, 0x34, 0x7a, 0x0d, 0xdb, 0xbd, 0x3b, 0xeb, 0x77, 0x5f, 0x7a, 0xcf, 0xdd, 0xbd, 0x46, 0x4b, + 0xdb, 0xe9, 0x8f, 0x87, 0xcd, 0xa3, 0xf1, 0xde, 0xed, 0xce, 0x60, 0xd8, 0xb9, 0xec, 0x6b, 0x57, + 0x9d, 0x9b, 0x92, 0x3d, 0x3a, 0x7a, 0x3e, 0x6d, 0x5e, 0x3f, 0xed, 0x8d, 0x77, 0xfb, 0xfb, 0x95, + 0xed, 0x23, 0xc7, 0x34, 0x8f, 0x8a, 0xf9, 0x9b, 0xa3, 0xeb, 0x23, 0xf3, 0xe8, 0x76, 0xb7, 0xfc, + 0x32, 0x3d, 0x7f, 0x3a, 0xda, 0xb8, 0x7d, 0x6e, 0x4c, 0xcf, 0xec, 0xeb, 0xb4, 0x72, 0x96, 0xde, + 0x1d, 0x2b, 0x17, 0x96, 0xf9, 0xa6, 0xf4, 0x2b, 0xa7, 0x07, 0x3b, 0xce, 0x63, 0xee, 0xed, 0x3c, + 0xf7, 0x78, 0xf1, 0xe6, 0xe4, 0x4e, 0xf3, 0x93, 0x57, 0xf5, 0xdc, 0x2a, 0xbc, 0x3d, 0x3c, 0xbf, + 0x96, 0x5b, 0x0f, 0x37, 0xe9, 0xfe, 0xd9, 0xf6, 0xe9, 0x73, 0xba, 0x98, 0x7f, 0xdc, 0x6d, 0x1c, + 0x35, 0x93, 0x1b, 0xc3, 0x52, 0xa9, 0x6c, 0xe4, 0x0f, 0x93, 0x87, 0xd7, 0x97, 0x9d, 0xa7, 0x4e, + 0x76, 0x98, 0xbf, 0x79, 0xeb, 0x5c, 0x3f, 0x75, 0xee, 0xce, 0x6e, 0xba, 0x47, 0x7a, 0xf1, 0xb0, + 0x7b, 0xd2, 0xeb, 0x64, 0x5b, 0x1b, 0xcd, 0xd1, 0x6b, 0xa7, 0x72, 0x5f, 0x19, 0x5a, 0x76, 0xe7, + 0xb2, 0x7c, 0x75, 0x73, 0x31, 0x50, 0x95, 0xb7, 0xe2, 0xcd, 0xe5, 0xc5, 0xf5, 0xb1, 0xbe, 0xbb, + 0xfb, 0x7c, 0x78, 0xf7, 0x7c, 0x90, 0x69, 0x9c, 0x9f, 0x5d, 0x3d, 0x3a, 0x83, 0x6b, 0xfb, 0x44, + 0x1f, 0x58, 0xd3, 0xd7, 0xbb, 0x8d, 0x97, 0x61, 0xeb, 0xe8, 0x6a, 0x27, 0x77, 0xd0, 0x3c, 0x7a, + 0xd9, 0x6f, 0x26, 0xcf, 0x0c, 0x75, 0xe7, 0xb8, 0x50, 0x3e, 0x3e, 0xde, 0xbf, 0xdb, 0xe9, 0x5f, + 0x75, 0x87, 0xe3, 0x93, 0x33, 0x2b, 0x37, 0xbd, 0xad, 0x58, 0x83, 0xd7, 0xec, 0xdd, 0xc9, 0xed, + 0x75, 0xc9, 0x56, 0xdd, 0xcc, 0x81, 0x95, 0x69, 0x3e, 0xdf, 0x3d, 0x5e, 0x5f, 0xef, 0x27, 0x1f, + 0x9e, 0x37, 0x92, 0x17, 0xda, 0x6d, 0xf3, 0x25, 0x7d, 0x70, 0xf4, 0x36, 0xcc, 0x0e, 0xb4, 0xc3, + 0xa7, 0xfb, 0x49, 0xb2, 0x57, 0x7e, 0xcc, 0x5e, 0xdf, 0xbe, 0xb8, 0x97, 0x83, 0xd7, 0x23, 0xcd, + 0xbd, 0xbe, 0x79, 0xb8, 0x3b, 0x7f, 0x7b, 0xdb, 0x71, 0x87, 0xfb, 0x97, 0x27, 0xed, 0xc3, 0xcc, + 0xdb, 0xf5, 0xf6, 0x41, 0xf2, 0xb1, 0x92, 0xde, 0x31, 0xfa, 0xdb, 0x4a, 0x2e, 0x33, 0x2a, 0x9a, + 0x87, 0x5d, 0x67, 0xef, 0xf6, 0xac, 0xf7, 0x70, 0x76, 0xb9, 0xd7, 0xbd, 0x28, 0x3e, 0xb5, 0x8f, + 0x27, 0x99, 0xfd, 0xa3, 0x4b, 0xed, 0x6e, 0x3a, 0xee, 0x3d, 0xb7, 0x4a, 0x67, 0x47, 0xc3, 0xbb, + 0xa4, 0xf9, 0x54, 0x18, 0xe5, 0x5e, 0x5e, 0x4a, 0xe9, 0x37, 0xe3, 0x68, 0xb2, 0x7b, 0x62, 0xf7, + 0x86, 0x67, 0xb9, 0xdc, 0x34, 0xd9, 0xba, 0x2f, 0x8f, 0x6f, 0x0f, 0x5e, 0xb5, 0x0d, 0xe5, 0xb4, + 0xdc, 0xbd, 0x3a, 0x7e, 0x1b, 0x1b, 0x3b, 0xcf, 0x65, 0xf7, 0xc8, 0xb2, 0x3a, 0x47, 0x95, 0xd6, + 0xe3, 0x6e, 0xf3, 0xee, 0xf8, 0x6e, 0xe7, 0xea, 0xc8, 0xd0, 0xac, 0xfb, 0xcc, 0x61, 0xcb, 0x6d, + 0xeb, 0xed, 0x9b, 0x8d, 0xd1, 0xce, 0xf4, 0x74, 0xf0, 0xa0, 0x34, 0xef, 0xec, 0xab, 0xe6, 0xf9, + 0xd9, 0xb4, 0xa5, 0x1c, 0x1f, 0x6f, 0xf7, 0x73, 0x97, 0xda, 0x83, 0xfd, 0xd0, 0xea, 0x75, 0x4a, + 0x8d, 0xd6, 0xab, 0xda, 0xee, 0xec, 0xde, 0x5c, 0x54, 0xf6, 0xae, 0xf6, 0x8e, 0xd4, 0xfb, 0xcc, + 0xdd, 0xe5, 0xfd, 0x55, 0xbb, 0x73, 0x55, 0xd6, 0xdd, 0xcb, 0x8b, 0xbd, 0x61, 0x72, 0xa3, 0xf4, + 0x9a, 0x3b, 0x9a, 0xdc, 0xde, 0x98, 0xc7, 0xea, 0xbd, 0xd5, 0x7d, 0xbe, 0xd2, 0x0e, 0x0f, 0x0f, + 0x8b, 0x30, 0x95, 0x76, 0x4f, 0x9f, 0xb3, 0xad, 0xc3, 0xde, 0xd5, 0xe4, 0xc1, 0xb9, 0x85, 0x01, + 0x9d, 0x3c, 0xb6, 0x7a, 0xc9, 0x9d, 0x09, 0xfc, 0xaf, 0x54, 0x51, 0x0f, 0xdb, 0x17, 0x23, 0x60, + 0xd1, 0xc7, 0x59, 0xbd, 0xd4, 0xca, 0x18, 0xbb, 0x1b, 0xcf, 0x07, 0xc9, 0x56, 0xb3, 0x91, 0xed, + 0xec, 0x3c, 0xdd, 0x4d, 0x06, 0xe3, 0xf2, 0xd3, 0x71, 0xfa, 0xe8, 0xd1, 0x9d, 0x5c, 0xba, 0xad, + 0xe3, 0x89, 0x6e, 0x5d, 0xa5, 0x4f, 0x0f, 0x9e, 0x9b, 0xaf, 0x99, 0xcc, 0xcd, 0xa0, 0x73, 0x7e, + 0xf4, 0x34, 0xb1, 0x0f, 0x54, 0x3d, 0x39, 0x4d, 0xda, 0x4f, 0xc7, 0xb6, 0x99, 0x34, 0x6e, 0xfb, + 0xf9, 0x4b, 0xfb, 0xfc, 0xe8, 0x60, 0x7c, 0x52, 0xba, 0xb7, 0x1f, 0xce, 0xcf, 0xee, 0x72, 0x93, + 0x1b, 0xf5, 0xfa, 0xfe, 0xb0, 0xf9, 0xdc, 0x6c, 0xbf, 0xb8, 0xa7, 0xc7, 0x5d, 0x35, 0x6b, 0xb7, + 0x37, 0x1c, 0x6b, 0x3a, 0x7a, 0xc9, 0xb7, 0x4a, 0x77, 0x85, 0x97, 0x42, 0xb9, 0x69, 0xe7, 0x1b, + 0x83, 0xec, 0xe5, 0x28, 0x7d, 0xa5, 0x75, 0xfb, 0xce, 0x51, 0x6e, 0x78, 0x36, 0x6a, 0x97, 0x4b, + 0xf9, 0x0b, 0xed, 0xea, 0xea, 0xfa, 0xdc, 0x54, 0x3b, 0xd6, 0x65, 0xf7, 0xd0, 0x68, 0x8e, 0xdb, + 0xc0, 0x0d, 0x93, 0xca, 0xee, 0xde, 0x5e, 0x69, 0xa3, 0x7d, 0xf2, 0x76, 0xd3, 0xdb, 0xd6, 0xaf, + 0x7a, 0xcf, 0xd6, 0x73, 0xef, 0x66, 0xd7, 0x38, 0x76, 0x0f, 0x8c, 0x87, 0xdc, 0x6b, 0x6b, 0xf0, + 0x70, 0x5c, 0xda, 0xbf, 0xd8, 0x3e, 0x7d, 0xda, 0x18, 0x3b, 0x76, 0xf2, 0xf8, 0xe9, 0xed, 0xd1, + 0x68, 0x3d, 0x77, 0x5a, 0x2f, 0x3b, 0xc3, 0xbd, 0xee, 0x6d, 0xe6, 0x70, 0xa4, 0x8f, 0x5f, 0x5b, + 0xee, 0x6d, 0xef, 0x78, 0xe3, 0xed, 0xfa, 0x61, 0xff, 0xfc, 0xd8, 0x19, 0x35, 0x27, 0xfa, 0xf8, + 0x2d, 0x77, 0xff, 0xe8, 0x2a, 0x85, 0xc9, 0xb3, 0xad, 0xa5, 0xbb, 0xce, 0x50, 0x37, 0x8c, 0xfd, + 0xbb, 0xcb, 0xa9, 0x69, 0x58, 0x97, 0x99, 0xeb, 0xd3, 0xa2, 0x79, 0x77, 0x7e, 0xf2, 0xf2, 0xd2, + 0xdd, 0xd3, 0x0f, 0x0a, 0x6d, 0xe7, 0x66, 0xf7, 0xbc, 0xe1, 0xf4, 0xde, 0x76, 0xf2, 0xe5, 0x83, + 0x8d, 0x5e, 0xf3, 0xe4, 0xae, 0xd7, 0x7c, 0xda, 0x18, 0xa4, 0xdb, 0x7b, 0xa3, 0x93, 0xc6, 0xe9, + 0x60, 0x72, 0xf2, 0x96, 0x4e, 0x0f, 0x37, 0xfa, 0x25, 0xb5, 0x77, 0xb8, 0xbf, 0x71, 0x66, 0x1f, + 0x16, 0x9e, 0x8f, 0xad, 0xf4, 0xd3, 0xa4, 0xf0, 0x9a, 0xcf, 0x29, 0xe5, 0x9b, 0x8d, 0xec, 0xc4, + 0x38, 0xbc, 0xbb, 0xde, 0x39, 0xd0, 0xbb, 0xfb, 0x4f, 0xe7, 0xae, 0xdb, 0xc9, 0xed, 0xb7, 0x6f, + 0x15, 0x65, 0x5a, 0x52, 0x2b, 0x97, 0x2f, 0xfd, 0x61, 0x7b, 0x7a, 0x9d, 0x31, 0x2f, 0x87, 0xd9, + 0xb7, 0xec, 0x5b, 0x7a, 0x77, 0x3b, 0x59, 0x1e, 0x6b, 0x93, 0xc6, 0x7e, 0xe7, 0xec, 0x36, 0xdb, + 0x33, 0x06, 0xdb, 0x85, 0x49, 0x63, 0x5c, 0x2a, 0x5b, 0xe3, 0xc3, 0xf6, 0xfd, 0xb3, 0xbe, 0x6f, + 0x6f, 0x1b, 0x0f, 0x93, 0xd3, 0xe7, 0xe7, 0x52, 0xfe, 0xf6, 0xa0, 0x37, 0x3a, 0x3f, 0xb8, 0x3b, + 0x68, 0x1c, 0xef, 0xbf, 0x4d, 0xf6, 0xc7, 0xc9, 0x7b, 0x73, 0x60, 0x6c, 0x9c, 0x35, 0xb4, 0xd6, + 0x5d, 0x6b, 0x58, 0xd2, 0xd5, 0xc3, 0xeb, 0xed, 0xa2, 0xd3, 0xce, 0x66, 0xba, 0xa7, 0x6e, 0xcb, + 0xee, 0xd8, 0xe9, 0xe3, 0xd7, 0xbb, 0xd2, 0xa3, 0x9d, 0x34, 0x47, 0xe3, 0x7d, 0xf7, 0xfa, 0x70, + 0x6f, 0xe3, 0xac, 0xf0, 0x76, 0x50, 0xc9, 0xbc, 0x9e, 0x6f, 0x97, 0x1e, 0xaf, 0xf7, 0x4c, 0xb3, + 0x98, 0x7d, 0xd9, 0x3f, 0x56, 0x5a, 0xaf, 0xf9, 0x73, 0xf5, 0xf0, 0xee, 0xa4, 0xa3, 0x76, 0xd3, + 0x7d, 0xe7, 0x6c, 0x7f, 0xbf, 0x69, 0xb9, 0xc5, 0x41, 0xf9, 0x61, 0x70, 0xfc, 0xba, 0xbb, 0xdb, + 0x30, 0xae, 0x33, 0xed, 0x42, 0xb6, 0x3c, 0x98, 0x0c, 0x26, 0xf6, 0xd5, 0xdb, 0xd5, 0x70, 0x7a, + 0x69, 0x38, 0xd6, 0xf5, 0xb8, 0xdb, 0x78, 0x7c, 0xb1, 0xdc, 0xfe, 0x9b, 0x0d, 0x60, 0xb9, 0xc9, + 0x4e, 0xce, 0x9b, 0xdd, 0xc2, 0xbd, 0xbb, 0x7d, 0x76, 0x56, 0xd9, 0xbd, 0xba, 0xc9, 0x56, 0x86, + 0xa7, 0xc9, 0x5e, 0xab, 0xb0, 0xd1, 0xdb, 0x3f, 0xbd, 0xcc, 0xb7, 0x6f, 0x32, 0xe5, 0xfd, 0xf2, + 0x51, 0xa1, 0xf3, 0x34, 0x39, 0xd6, 0x0b, 0xd9, 0x03, 0x67, 0x52, 0xb9, 0x3f, 0x7c, 0x3b, 0xdd, + 0xbe, 0x38, 0x7c, 0xbb, 0x7f, 0xbe, 0x6e, 0x56, 0xce, 0x4f, 0x77, 0x2e, 0x6e, 0xb7, 0x77, 0xf6, + 0xaf, 0x92, 0xc3, 0x83, 0xfe, 0x76, 0xfa, 0x6e, 0xe3, 0xe9, 0xed, 0x76, 0x7c, 0xb2, 0xd7, 0xbc, + 0x19, 0xec, 0xda, 0xda, 0x71, 0xf2, 0x16, 0x69, 0x3f, 0xdd, 0xda, 0x7f, 0xd8, 0x3f, 0x3b, 0x3d, + 0x75, 0x9e, 0x7b, 0x5a, 0xc3, 0x2d, 0x58, 0xd6, 0xc6, 0x50, 0xb7, 0x26, 0xad, 0x9c, 0xfb, 0xb6, + 0x57, 0x3e, 0x2a, 0x4f, 0xfa, 0xd3, 0xc3, 0x8b, 0xdd, 0xed, 0x93, 0x7c, 0xf3, 0xa0, 0x57, 0xba, + 0xba, 0xcc, 0xe6, 0xb6, 0xb5, 0xcb, 0xfc, 0xe3, 0xd9, 0x38, 0x67, 0xef, 0xee, 0xbb, 0xf7, 0xb7, + 0xbb, 0x0f, 0xa7, 0x49, 0xd5, 0x31, 0x46, 0xf9, 0xc3, 0xca, 0xd5, 0xe4, 0xb5, 0x3b, 0x68, 0xed, + 0x1a, 0xad, 0xb3, 0xd3, 0xe7, 0x83, 0xdb, 0x7d, 0xeb, 0xf5, 0xf5, 0xa9, 0x65, 0xdc, 0x37, 0x7b, + 0x19, 0xbd, 0x7f, 0x3f, 0xaa, 0x8c, 0x6f, 0xf3, 0xc5, 0xd7, 0x9b, 0xc3, 0xd7, 0xcb, 0xca, 0xdb, + 0xeb, 0xad, 0x7d, 0xba, 0xf1, 0xf2, 0x7a, 0xf2, 0x5c, 0x7e, 0x7c, 0x7e, 0x7a, 0xeb, 0x65, 0xb2, + 0x56, 0xab, 0x92, 0x9c, 0x5e, 0x95, 0x9d, 0x87, 0x27, 0xeb, 0x71, 0x72, 0x72, 0xa0, 0xed, 0x1f, + 0xdf, 0x9c, 0x3b, 0x47, 0xe3, 0xb1, 0x35, 0xbd, 0x2e, 0x14, 0x7a, 0x7b, 0x17, 0xc6, 0x5d, 0x3a, + 0xa9, 0x02, 0x21, 0x75, 0x0e, 0x77, 0xd3, 0x39, 0xfd, 0x2a, 0x3f, 0x6c, 0x16, 0xa7, 0xd9, 0xd7, + 0xb7, 0xa3, 0x37, 0xf7, 0xe1, 0xf6, 0xfc, 0x72, 0xaf, 0x64, 0x76, 0x1e, 0x8f, 0x33, 0x97, 0xaf, + 0xb7, 0xda, 0xfd, 0xb1, 0xdb, 0x3b, 0x39, 0x38, 0x39, 0x3b, 0x3a, 0x7d, 0x2c, 0x65, 0x3a, 0x13, + 0xf5, 0x71, 0x6a, 0xb4, 0x5a, 0x49, 0x67, 0xff, 0xe4, 0xe4, 0xf5, 0xdc, 0xc8, 0xdc, 0xbf, 0xe5, + 0xec, 0x53, 0xf7, 0xac, 0xb5, 0x7d, 0x75, 0x7f, 0x69, 0x3c, 0xba, 0x83, 0x63, 0xa5, 0x70, 0xff, + 0xba, 0x7f, 0x6d, 0xb6, 0xd2, 0x95, 0xc1, 0x60, 0x38, 0x6d, 0x5f, 0xdd, 0x8d, 0x36, 0xb4, 0xee, + 0xce, 0xf9, 0xe8, 0xc1, 0xd6, 0xfb, 0x6f, 0xbd, 0xdd, 0xd3, 0xdd, 0x11, 0x08, 0xe1, 0xc9, 0xf2, + 0x61, 0x71, 0xf2, 0x7c, 0x52, 0x29, 0x94, 0xdb, 0xbb, 0xaa, 0x9b, 0xdc, 0x57, 0x1e, 0xba, 0xcd, + 0xe4, 0xe9, 0x8b, 0x99, 0xbe, 0x77, 0x93, 0xa3, 0x66, 0xfb, 0x55, 0xb1, 0x5f, 0x4b, 0x2f, 0x4f, + 0x37, 0xad, 0x97, 0xc2, 0xb9, 0x72, 0xf2, 0x6a, 0x5d, 0xb4, 0x5e, 0xf6, 0xf6, 0x2c, 0x47, 0x69, + 0x57, 0x4e, 0xb3, 0xf6, 0xf5, 0xf9, 0xc3, 0x71, 0xef, 0xb2, 0x65, 0xdf, 0x4f, 0x77, 0x3b, 0x8f, + 0xcf, 0x6a, 0xc9, 0xdd, 0xbe, 0x6a, 0xbc, 0xb9, 0x2f, 0xad, 0xc7, 0x9d, 0xcc, 0x78, 0x57, 0x2d, + 0xdc, 0x1a, 0xe7, 0x9a, 0x35, 0x30, 0x9e, 0x40, 0x5a, 0x19, 0xa6, 0x87, 0xcf, 0xdd, 0xd2, 0x49, + 0x77, 0x63, 0xa4, 0x66, 0xb3, 0xb9, 0xc3, 0x61, 0xb7, 0x92, 0xdb, 0x1b, 0xa5, 0x37, 0x54, 0x63, + 0x3b, 0x9d, 0x34, 0x2e, 0x37, 0xac, 0x16, 0x88, 0x99, 0x57, 0xc7, 0x4f, 0x2d, 0x2d, 0xf3, 0xbc, + 0xd3, 0xb4, 0xcc, 0xf3, 0x0a, 0x0c, 0xfc, 0xe6, 0xe5, 0x79, 0xe3, 0xf8, 0x6c, 0x6c, 0xb5, 0xee, + 0x7b, 0xa6, 0xd5, 0x68, 0xf5, 0xdd, 0xd6, 0xc5, 0xfd, 0xcb, 0xd4, 0x6d, 0xec, 0xe7, 0x4f, 0x92, + 0xe9, 0x57, 0x33, 0xd3, 0x6c, 0x34, 0xcf, 0xef, 0x73, 0x07, 0xb9, 0xd6, 0x69, 0xd7, 0x70, 0xfa, + 0xd6, 0x76, 0x41, 0xa9, 0x74, 0x06, 0x6f, 0x1b, 0xe9, 0xc3, 0x49, 0x3a, 0xdd, 0x69, 0xe7, 0x2f, + 0x1e, 0xce, 0x9f, 0x0a, 0x40, 0xab, 0xd3, 0x87, 0xdb, 0xbb, 0x5c, 0xe7, 0xf1, 0xda, 0xd9, 0xad, + 0x6c, 0xbc, 0x9e, 0x9c, 0x6e, 0x54, 0x5e, 0x95, 0xb7, 0x21, 0x0c, 0xed, 0x28, 0x3b, 0xba, 0x7c, + 0xb8, 0xd9, 0xc8, 0x6f, 0x14, 0x5b, 0xf7, 0xcd, 0x03, 0xb3, 0xbd, 0x6d, 0x76, 0x77, 0x73, 0xea, + 0xd1, 0xf5, 0xdb, 0x71, 0xa6, 0x7d, 0xb6, 0x93, 0x01, 0x69, 0x6d, 0x7c, 0x95, 0xe9, 0x75, 0x47, + 0xc3, 0x66, 0x67, 0xd4, 0xc9, 0x16, 0xba, 0xd9, 0x21, 0x50, 0xfd, 0xe9, 0xe5, 0x5e, 0xfe, 0xf8, + 0xf8, 0xf0, 0xb4, 0x34, 0xdc, 0xe9, 0xa4, 0x8d, 0xa2, 0x51, 0xee, 0xe4, 0x8b, 0xb7, 0x17, 0x27, + 0x97, 0x46, 0xc9, 0xe8, 0xdb, 0xb0, 0x40, 0xda, 0x77, 0x79, 0xa5, 0x93, 0x37, 0xde, 0x72, 0xda, + 0x8d, 0x76, 0x7e, 0x5a, 0xc8, 0x16, 0xf6, 0x0c, 0xb5, 0x7b, 0x9a, 0x3e, 0x3e, 0x38, 0xd5, 0xef, + 0x9f, 0xdc, 0xa7, 0x7b, 0xe5, 0xd5, 0xdc, 0xeb, 0x17, 0x26, 0xcd, 0xe7, 0x91, 0x73, 0xd0, 0x4a, + 0x97, 0x06, 0x15, 0x5b, 0xd9, 0xd7, 0x9d, 0xd3, 0x41, 0x61, 0x78, 0xf8, 0x72, 0x75, 0xaf, 0x8f, + 0x36, 0x6e, 0xd2, 0x63, 0xf5, 0xe9, 0xed, 0xf9, 0xf0, 0x50, 0xdd, 0x98, 0x3c, 0x69, 0xb7, 0x6f, + 0xd6, 0x71, 0xf1, 0xbe, 0x71, 0xbf, 0x7d, 0xba, 0x7b, 0x3e, 0xbe, 0x3e, 0x99, 0x8c, 0xaf, 0x1f, + 0x8d, 0x7d, 0xf3, 0xe1, 0x60, 0xd2, 0x56, 0x4e, 0x26, 0xe7, 0xa5, 0xdd, 0xeb, 0xf2, 0xf6, 0xb9, + 0x91, 0x33, 0x2b, 0xe7, 0xaf, 0x80, 0x61, 0x77, 0x64, 0x2b, 0xc5, 0x1b, 0xe3, 0xe8, 0xf9, 0xe1, + 0x6c, 0x5b, 0x1f, 0x1c, 0xed, 0x3f, 0xe5, 0xa7, 0x97, 0x8f, 0x0f, 0xf9, 0x33, 0xb7, 0x32, 0x2a, + 0x0e, 0x06, 0x87, 0xc3, 0xf1, 0xe3, 0x68, 0x34, 0xb9, 0x1c, 0xa9, 0xf6, 0x69, 0x45, 0x6d, 0x8e, + 0x9c, 0xb7, 0x87, 0xf3, 0xe7, 0xdb, 0x07, 0xfb, 0xa5, 0xf5, 0xda, 0x3e, 0xb8, 0xb8, 0xbb, 0xcf, + 0xb5, 0xf6, 0x5a, 0xbb, 0x07, 0x27, 0x5a, 0xfe, 0xec, 0xf4, 0xee, 0xe6, 0xfe, 0xed, 0xed, 0xfe, + 0x70, 0xbf, 0x58, 0xd8, 0x1e, 0xa6, 0x73, 0x76, 0x23, 0xfb, 0xfa, 0x62, 0x96, 0xf4, 0x4a, 0x77, + 0xbf, 0x77, 0xd7, 0xda, 0x1e, 0xda, 0xdd, 0xbb, 0xed, 0xfb, 0xfd, 0x7d, 0xfd, 0xee, 0x3e, 0x3b, + 0xec, 0x4d, 0x2e, 0xc6, 0x6d, 0x27, 0x59, 0xbe, 0x4f, 0xa7, 0x81, 0x3f, 0x3d, 0x1d, 0x6b, 0xea, + 0xa9, 0x5e, 0xb9, 0x7f, 0x68, 0x94, 0xd5, 0x83, 0xd3, 0x62, 0xdb, 0xde, 0xde, 0xe8, 0xf6, 0x2f, + 0xce, 0xa6, 0x13, 0xbd, 0xdc, 0x7a, 0xbe, 0xba, 0x3f, 0x78, 0xde, 0xce, 0xb6, 0xee, 0xd3, 0xe6, + 0x4b, 0xe9, 0xb6, 0xfd, 0xaa, 0x1a, 0x8e, 0xbd, 0xb1, 0x5f, 0x3e, 0xdc, 0x18, 0xba, 0xce, 0xa0, + 0xf3, 0x6a, 0x1e, 0x0e, 0xde, 0x2a, 0x15, 0x7b, 0x34, 0x55, 0xf7, 0xd2, 0x97, 0x6f, 0x20, 0x20, + 0x14, 0x06, 0xa3, 0xbb, 0x87, 0xd3, 0xe7, 0xe9, 0x63, 0x79, 0x54, 0x7e, 0x2e, 0x3e, 0xf4, 0x9f, + 0xd4, 0xc3, 0xbc, 0x72, 0xf9, 0xb0, 0x51, 0xec, 0x58, 0xda, 0x45, 0x51, 0x3d, 0x4f, 0x5f, 0xbc, + 0x8d, 0xdb, 0x07, 0x1b, 0x6f, 0x2f, 0x5d, 0xdd, 0x4d, 0x3b, 0x9d, 0xa2, 0xba, 0xf1, 0xd8, 0x7e, + 0x6d, 0x5d, 0x98, 0xe3, 0xee, 0x75, 0x2f, 0x97, 0xbb, 0x2e, 0x16, 0xcb, 0x45, 0xc5, 0xcd, 0x8d, + 0x1e, 0x1e, 0xca, 0x1b, 0xf7, 0xd9, 0xc7, 0x4c, 0xef, 0x2a, 0xb3, 0x51, 0x29, 0x54, 0x36, 0xd4, + 0xc7, 0x9b, 0xec, 0xde, 0xcb, 0xd4, 0xdc, 0x7b, 0x3d, 0x7b, 0x04, 0x19, 0xf0, 0xb0, 0x53, 0xbe, + 0x1a, 0x9d, 0x1c, 0xd8, 0xd7, 0x07, 0xa5, 0xd6, 0xf1, 0xe3, 0xcd, 0xee, 0xce, 0xce, 0xd3, 0xe3, + 0xc1, 0xde, 0x7d, 0x7b, 0x50, 0x3c, 0xc8, 0x02, 0x18, 0x73, 0x5a, 0xb1, 0xf0, 0x58, 0xb9, 0x77, + 0xb5, 0xed, 0xe1, 0x8b, 0x7e, 0x59, 0xdc, 0x78, 0x74, 0xb7, 0x9f, 0xce, 0x1a, 0xf7, 0xfa, 0x30, + 0xd7, 0x7d, 0x7c, 0xdb, 0x3d, 0xdb, 0xb8, 0x4a, 0x16, 0xf7, 0x81, 0x93, 0x37, 0xf3, 0x17, 0x6f, + 0xc5, 0x67, 0x58, 0xc3, 0x8e, 0x94, 0xb6, 0xdb, 0xba, 0xbf, 0x34, 0xc7, 0xc3, 0xab, 0xde, 0xf9, + 0xf4, 0x50, 0x1f, 0x9e, 0xe8, 0xca, 0xb8, 0x32, 0x36, 0x5a, 0x17, 0x03, 0x77, 0xa8, 0x3c, 0x9b, + 0xe9, 0xbb, 0xe6, 0xb8, 0x02, 0x1c, 0xb9, 0x79, 0x3d, 0x3e, 0x6b, 0x0f, 0x81, 0x2c, 0x9f, 0xc6, + 0xfb, 0xfd, 0x7e, 0xc9, 0xd9, 0xe8, 0x3b, 0xaf, 0xb6, 0x76, 0xbf, 0xe3, 0xf4, 0x1a, 0x39, 0x27, + 0x6f, 0xec, 0x83, 0xd8, 0x5c, 0x38, 0xda, 0xb8, 0x48, 0x2a, 0xce, 0x64, 0x3c, 0x79, 0x6a, 0xb9, + 0xa7, 0xa7, 0x99, 0xfc, 0x5e, 0xa5, 0xd5, 0x6f, 0x5f, 0x97, 0x1e, 0xdf, 0x2a, 0x83, 0xa3, 0xd6, + 0x7e, 0xe6, 0xb6, 0x52, 0x3a, 0xc9, 0x4c, 0x0e, 0x1a, 0x1b, 0xad, 0x49, 0x65, 0x9a, 0xd4, 0x73, + 0xe9, 0xf4, 0x46, 0xfe, 0x39, 0x79, 0x98, 0xd3, 0x32, 0x7b, 0x07, 0x9d, 0xdc, 0xc6, 0xb0, 0x71, + 0x77, 0x7e, 0x94, 0xbe, 0xef, 0xef, 0x3c, 0x0e, 0xef, 0x5f, 0x8f, 0x76, 0x95, 0xc7, 0x89, 0xd2, + 0x71, 0x32, 0x7a, 0xfb, 0x6e, 0xff, 0x2e, 0xd9, 0xb9, 0xd0, 0x0f, 0x07, 0xdb, 0x93, 0xf4, 0xeb, + 0xc5, 0x46, 0xbb, 0x94, 0x1e, 0x3e, 0x3d, 0x64, 0xdc, 0x6b, 0xf5, 0xd6, 0x3d, 0xbe, 0x1a, 0x95, + 0x0a, 0x53, 0x20, 0xdf, 0xc6, 0xe8, 0xa1, 0x34, 0xd9, 0x55, 0xdf, 0x1a, 0x0f, 0xe9, 0xf2, 0xfd, + 0xa0, 0xbc, 0xd3, 0xeb, 0xa7, 0x2b, 0xc5, 0x8b, 0xca, 0xc5, 0xc4, 0x39, 0xdf, 0x79, 0x34, 0x9c, + 0x87, 0xfb, 0xab, 0xe4, 0x86, 0xb5, 0xf3, 0x56, 0x4e, 0x9f, 0x9f, 0x3d, 0x15, 0x37, 0x9e, 0x1a, + 0x47, 0x07, 0x7b, 0x9d, 0x9b, 0x71, 0x52, 0xb1, 0xca, 0x77, 0xc9, 0xa3, 0xfc, 0xf9, 0xed, 0x9d, + 0x0a, 0x73, 0x6a, 0xac, 0x8d, 0x92, 0x7a, 0xbb, 0xfd, 0xfa, 0x9c, 0xdd, 0xc8, 0x3d, 0x6c, 0x3c, + 0x8e, 0x8b, 0xbd, 0xe3, 0xc6, 0xed, 0xd5, 0xc1, 0xe3, 0xe5, 0x55, 0xe9, 0x6a, 0x3a, 0xb9, 0xee, + 0xf6, 0xd4, 0x9d, 0xe4, 0x55, 0xbb, 0x78, 0x6f, 0x34, 0xce, 0x76, 0x1a, 0x87, 0xfb, 0xa3, 0xd2, + 0xcd, 0xb1, 0xab, 0xba, 0x79, 0xcb, 0x48, 0x97, 0xf3, 0xad, 0xc2, 0xe3, 0x4e, 0xe3, 0x68, 0x7b, + 0x94, 0x2f, 0x9a, 0x5d, 0xeb, 0xe6, 0x7a, 0xea, 0x16, 0x2f, 0x9f, 0x41, 0x26, 0xbd, 0x29, 0x9f, + 0x3c, 0x36, 0xf6, 0xae, 0x4e, 0xca, 0xc6, 0x7e, 0x6f, 0xbb, 0x0d, 0x62, 0xf1, 0xed, 0x18, 0x68, + 0xff, 0xf5, 0xb0, 0xb9, 0x7d, 0x62, 0xee, 0x1d, 0x6c, 0x9c, 0x3c, 0x5d, 0x9d, 0x9e, 0x59, 0xcf, + 0x66, 0x71, 0xd8, 0x57, 0xd2, 0x97, 0x47, 0xb9, 0xe9, 0x70, 0xfb, 0xfe, 0x62, 0xe7, 0xa6, 0xb9, + 0xfb, 0xa4, 0x3c, 0x5b, 0xaf, 0x57, 0xa5, 0x72, 0xf2, 0x49, 0xc9, 0x96, 0x9f, 0x7b, 0x07, 0xbd, + 0xc7, 0xb3, 0x9b, 0xb2, 0xb1, 0xdd, 0x7f, 0x3e, 0x69, 0xef, 0xdb, 0x27, 0x3b, 0x8f, 0xfb, 0xa5, + 0xe9, 0x49, 0xf3, 0xe9, 0xfa, 0x74, 0xbf, 0xe8, 0x5e, 0x17, 0x1f, 0x4f, 0xfa, 0xb7, 0x6f, 0x6f, + 0xe7, 0xf7, 0x67, 0xc5, 0xdc, 0x60, 0x7b, 0x34, 0xbc, 0x3c, 0xd3, 0x4e, 0x37, 0x26, 0x97, 0x93, + 0xc2, 0xad, 0x72, 0xdd, 0xdb, 0xd7, 0x8e, 0x9f, 0x1a, 0x77, 0xfb, 0x4e, 0xfb, 0x29, 0x77, 0x78, + 0x7b, 0xd4, 0xbf, 0xbd, 0x6c, 0xef, 0x29, 0x87, 0xc5, 0xfb, 0xfb, 0xdd, 0xd1, 0x68, 0x30, 0xea, + 0x5c, 0x76, 0xf5, 0xe2, 0x89, 0xb2, 0x33, 0xba, 0x28, 0x9b, 0xd9, 0x64, 0x77, 0x7f, 0x67, 0xbb, + 0x55, 0xea, 0x8f, 0x86, 0xa7, 0x6f, 0x65, 0xfd, 0xec, 0xfa, 0x62, 0xdc, 0x7d, 0xbe, 0x3c, 0x2f, + 0x6b, 0x8a, 0x5d, 0xc9, 0x5c, 0xef, 0xec, 0x68, 0xd7, 0x3b, 0xc7, 0x76, 0x7e, 0xd8, 0x7b, 0x3d, + 0xec, 0x96, 0x4e, 0x5f, 0x7b, 0xb7, 0x8f, 0x8f, 0x4e, 0xb1, 0xff, 0x36, 0x1a, 0x56, 0xdc, 0xb3, + 0xa3, 0x8b, 0x5b, 0x3b, 0x3d, 0xb1, 0x46, 0xd7, 0xce, 0xf9, 0xdd, 0xa8, 0xf3, 0x94, 0xb6, 0x92, + 0x83, 0xed, 0xb2, 0xb1, 0x71, 0x97, 0x03, 0xae, 0x98, 0xb9, 0x49, 0x2a, 0xd7, 0xfd, 0x4b, 0xeb, + 0xbc, 0xef, 0x9c, 0xef, 0x5f, 0xbc, 0x4e, 0xcc, 0xbd, 0xdc, 0x30, 0xe3, 0x0c, 0x5f, 0x6f, 0x34, + 0xab, 0x37, 0x29, 0x96, 0x8f, 0x8e, 0x1b, 0xc4, 0x48, 0x51, 0x97, 0x84, 0xae, 0x69, 0x0f, 0x14, + 0x37, 0xf1, 0x15, 0x15, 0xa8, 0xaf, 0xd2, 0xbc, 0x6a, 0x9b, 0xa6, 0x3b, 0x5b, 0x5f, 0x6f, 0xaf, + 0x67, 0xab, 0x9f, 0xb3, 0xd9, 0x6c, 0x0d, 0x1f, 0xbb, 0xd5, 0xcf, 0xdd, 0x6e, 0x97, 0x3c, 0xe6, + 0xaa, 0x68, 0x1a, 0x22, 0x8f, 0xf9, 0xea, 0xe7, 0x7c, 0x3e, 0x4f, 0x1e, 0x0b, 0xd5, 0xcf, 0x85, + 0x42, 0x81, 0x3c, 0x16, 0xab, 0x9f, 0x8b, 0xc5, 0x22, 0x79, 0x2c, 0x55, 0x3f, 0x97, 0x4a, 0x25, + 0xf2, 0x58, 0xae, 0x7e, 0x2e, 0x97, 0xcb, 0xe4, 0xb1, 0x55, 0xfd, 0xdc, 0x6a, 0xb5, 0xc8, 0x63, + 0xbb, 0xfa, 0xb9, 0xdd, 0x6e, 0x93, 0x47, 0xb5, 0xfa, 0x59, 0x55, 0x55, 0xf2, 0xd8, 0xa9, 0x7e, + 0xee, 0x74, 0x3a, 0xe4, 0xd1, 0x86, 0x0c, 0x79, 0xda, 0x5a, 0x0f, 0x1a, 0x6e, 0xd3, 0xee, 0xe8, + 0xd0, 0x5a, 0x59, 0x21, 0x8f, 0xd3, 0xea, 0x67, 0xa5, 0x92, 0x81, 0x47, 0x17, 0xea, 0xcd, 0xa4, + 0x68, 0xbb, 0x66, 0xd5, 0xee, 0xb5, 0x94, 0x44, 0xbe, 0x20, 0x0b, 0xde, 0xbf, 0x4c, 0xaa, 0x22, + 0x91, 0x6f, 0x6e, 0x6b, 0xf1, 0x23, 0xe8, 0xf5, 0x09, 0x52, 0x83, 0xe4, 0xe5, 0x51, 0x68, 0xa6, + 0x6c, 0x26, 0x27, 0x0b, 0xc1, 0x9f, 0xc5, 0x7c, 0x7d, 0x9a, 0xaf, 0x98, 0x95, 0x05, 0xef, 0x5f, + 0x38, 0x93, 0xdb, 0xaf, 0x6e, 0x64, 0xac, 0x09, 0x3e, 0x59, 0xde, 0x13, 0x94, 0x2a, 0xe5, 0x69, + 0x5a, 0xcb, 0xaa, 0x66, 0x0b, 0xd6, 0x44, 0xa0, 0x7f, 0x32, 0xec, 0x09, 0xf3, 0xc0, 0x97, 0x0a, + 0xbc, 0x66, 0x84, 0x0d, 0xfc, 0x4b, 0x4a, 0x75, 0xaa, 0x86, 0x69, 0x20, 0x88, 0x9c, 0x9e, 0x55, + 0x15, 0x5b, 0x68, 0x1e, 0x11, 0xf1, 0xc3, 0xc0, 0xad, 0x42, 0xc9, 0x39, 0x1a, 0x16, 0x67, 0xc4, + 0x9e, 0xb0, 0xae, 0x50, 0x13, 0xca, 0x40, 0x01, 0xf9, 0x7f, 0xa8, 0x13, 0x0b, 0xc4, 0xbc, 0x65, + 0x76, 0xa6, 0xb3, 0x81, 0x62, 0xf7, 0x34, 0xa3, 0x9a, 0xa9, 0xa1, 0x8d, 0xa9, 0x67, 0x9b, 0x43, + 0xa3, 0x43, 0x4d, 0x7f, 0x55, 0xda, 0x6d, 0xc0, 0xba, 0x54, 0xe3, 0xf5, 0xed, 0x43, 0x55, 0x1f, + 0xa9, 0xae, 0xd6, 0x56, 0xe4, 0x3b, 0xd5, 0xee, 0x28, 0x86, 0x22, 0x3b, 0x8a, 0xe1, 0xac, 0x3b, + 0xaa, 0xad, 0x75, 0x69, 0x46, 0x47, 0x7b, 0x53, 0xab, 0x59, 0xe8, 0x65, 0x2d, 0x5c, 0x51, 0x57, + 0xaa, 0xb9, 0xea, 0xc4, 0x5d, 0x57, 0x74, 0xad, 0x67, 0x54, 0xdb, 0x2a, 0xda, 0x13, 0x6a, 0x68, + 0x25, 0x7c, 0xd1, 0xdc, 0x75, 0xda, 0xcd, 0xb6, 0xa2, 0xeb, 0x68, 0xd7, 0xa1, 0xc3, 0x62, 0x9f, + 0x86, 0x50, 0x37, 0xd4, 0xaf, 0xab, 0x6d, 0xef, 0xc3, 0xc0, 0x7c, 0x8b, 0x4b, 0x75, 0x16, 0x13, + 0x17, 0x73, 0x79, 0xed, 0x29, 0xd6, 0x7a, 0x5f, 0xeb, 0xf5, 0x75, 0xb4, 0x3f, 0xb1, 0x11, 0xbb, + 0x36, 0x8c, 0xc4, 0x52, 0x6c, 0xe8, 0x59, 0xcd, 0x69, 0xdb, 0xa6, 0xae, 0xb7, 0x14, 0x9b, 0x9a, + 0x56, 0xab, 0x25, 0x18, 0x4e, 0x90, 0x16, 0x1e, 0x98, 0xd3, 0x92, 0x04, 0xae, 0x2c, 0x01, 0xac, + 0x4c, 0x80, 0xdf, 0x57, 0xb1, 0xfa, 0x6a, 0x36, 0x93, 0xf9, 0x57, 0x8d, 0xd6, 0x43, 0x1e, 0x2d, + 0xd3, 0xd1, 0x08, 0x3e, 0xba, 0xda, 0x44, 0xed, 0xd4, 0x4c, 0x58, 0x56, 0x69, 0xdd, 0xeb, 0x2d, + 0xb5, 0xaf, 0x8c, 0x34, 0xa8, 0x1b, 0x3b, 0x3b, 0xff, 0xdc, 0xea, 0x71, 0x55, 0x8c, 0xfa, 0x41, + 0x1d, 0xa3, 0x71, 0xb4, 0x92, 0xb7, 0x75, 0xcd, 0xe8, 0xa8, 0x93, 0xea, 0x7a, 0x36, 0x84, 0x4b, + 0x3f, 0x17, 0x83, 0x37, 0xf7, 0xc9, 0x56, 0x2d, 0x55, 0x41, 0xb0, 0xb0, 0x27, 0xfe, 0x1b, 0xc1, + 0x61, 0x1b, 0x3b, 0x56, 0x33, 0x2d, 0xa5, 0xad, 0xb9, 0x53, 0x20, 0x11, 0x32, 0x46, 0x5a, 0x1b, + 0x4b, 0x14, 0x72, 0xce, 0xdc, 0xf2, 0x68, 0x88, 0x50, 0x6b, 0x46, 0xc8, 0xe1, 0xdf, 0xb9, 0x22, + 0x2b, 0xd5, 0x91, 0x06, 0xb9, 0xd5, 0x8e, 0x6c, 0xcd, 0xc2, 0xf0, 0xea, 0x48, 0xfc, 0xe7, 0x19, + 0x21, 0x8a, 0x8e, 0xda, 0x36, 0x6d, 0x42, 0x97, 0x74, 0xe8, 0xad, 0xa1, 0xeb, 0x9a, 0xc6, 0x0c, + 0x88, 0x41, 0xd7, 0x0c, 0x15, 0x1a, 0x6f, 0x0f, 0x6d, 0x07, 0xea, 0xb0, 0x4c, 0x0d, 0xc7, 0x31, + 0x4f, 0xe9, 0x4a, 0x4b, 0xd5, 0x9d, 0x80, 0x7e, 0x2d, 0xa5, 0xd3, 0xd1, 0x8c, 0x5e, 0xb5, 0xcc, + 0x75, 0xe2, 0x33, 0x5a, 0xa5, 0x49, 0xc6, 0x59, 0x04, 0x5a, 0x2d, 0x13, 0xaa, 0x1f, 0x54, 0x81, + 0xde, 0xda, 0x09, 0xda, 0xad, 0x56, 0x5f, 0x12, 0x92, 0x02, 0xa0, 0x59, 0xaa, 0xd9, 0x04, 0xe2, + 0xa5, 0x05, 0x02, 0xee, 0x48, 0x91, 0x5e, 0xd4, 0xc6, 0x36, 0x54, 0x6a, 0xf4, 0x80, 0x20, 0x3b, + 0x6a, 0x15, 0x80, 0x85, 0xf3, 0x42, 0x5f, 0xb7, 0x75, 0x0a, 0x2a, 0x64, 0xa4, 0xc0, 0x3d, 0xd1, + 0x88, 0x96, 0xc8, 0x96, 0x33, 0x1d, 0xb5, 0x27, 0xcd, 0x53, 0x2d, 0x5b, 0x9b, 0x79, 0x7d, 0x85, + 0x99, 0x3d, 0x4f, 0x8d, 0x6d, 0x34, 0x80, 0xd9, 0xd1, 0x1e, 0xba, 0xa6, 0x05, 0xa3, 0xd2, 0xd5, + 0x2e, 0xcc, 0x65, 0xd6, 0x23, 0x1e, 0xb1, 0x7e, 0xa7, 0xdc, 0x96, 0xe4, 0xe3, 0x3e, 0x3b, 0x4f, + 0xa1, 0xd1, 0xdc, 0x89, 0x33, 0x90, 0xd1, 0xa9, 0x89, 0xa6, 0x34, 0x00, 0x30, 0x30, 0x78, 0x9d, + 0x9b, 0xac, 0x39, 0xe8, 0xc8, 0x27, 0x6d, 0x80, 0x3b, 0x0c, 0x0a, 0xd0, 0x3e, 0x42, 0x7c, 0xdd, + 0xa3, 0x3b, 0x2e, 0xbd, 0xa3, 0x39, 0x96, 0xae, 0x4c, 0xab, 0x9a, 0x41, 0x72, 0x10, 0x7e, 0xc3, + 0x5a, 0x4c, 0x01, 0xae, 0xc2, 0xc0, 0xc2, 0xb1, 0xb2, 0x4f, 0xdd, 0x6e, 0xe4, 0x5b, 0x09, 0xe1, + 0x60, 0xba, 0x02, 0xcd, 0x20, 0xa7, 0x60, 0xac, 0xec, 0xd9, 0xc3, 0xe7, 0x3a, 0x41, 0xa0, 0x50, + 0x20, 0x68, 0x4c, 0xf5, 0x87, 0x3d, 0x66, 0xf4, 0x23, 0xdd, 0x2d, 0xe4, 0x10, 0x6e, 0x96, 0x0e, + 0x14, 0x6d, 0x4f, 0x85, 0x9b, 0xc6, 0xf6, 0xe9, 0x9e, 0x9c, 0x72, 0xd4, 0x9e, 0x3b, 0x73, 0x71, + 0xa3, 0x61, 0x9d, 0x19, 0x87, 0x29, 0x1c, 0x83, 0x69, 0x37, 0x27, 0x79, 0x84, 0x9b, 0x5d, 0x1f, + 0xfe, 0xb9, 0xd0, 0xb0, 0x17, 0x98, 0x13, 0xd7, 0xc6, 0xae, 0xec, 0x17, 0xe6, 0x78, 0x1c, 0xf2, + 0x6c, 0xaf, 0xae, 0x4c, 0xcd, 0xc7, 0x3f, 0xad, 0x63, 0xa0, 0x75, 0x3a, 0xba, 0x3a, 0x4f, 0xbd, + 0xa8, 0x53, 0x97, 0x11, 0x39, 0xfd, 0x80, 0x38, 0x9d, 0xa7, 0x46, 0x8a, 0x1e, 0x4e, 0x26, 0x38, + 0x66, 0xe9, 0x82, 0xc6, 0x35, 0xe3, 0x00, 0xb2, 0x74, 0xe8, 0x3c, 0xb1, 0x3b, 0x93, 0x5d, 0x91, + 0x59, 0x40, 0x5e, 0xe4, 0x49, 0x47, 0x0a, 0x83, 0xce, 0xc8, 0xf0, 0x0f, 0x40, 0xab, 0x2e, 0xcd, + 0xf4, 0x98, 0xa0, 0x39, 0x80, 0x23, 0x2e, 0xcd, 0xf3, 0x90, 0xe0, 0x6b, 0x91, 0xfd, 0xbc, 0x72, + 0xa8, 0x07, 0x91, 0x89, 0xb0, 0x30, 0xc1, 0xa1, 0x98, 0x62, 0x03, 0x47, 0x27, 0x99, 0x7d, 0xd2, + 0x56, 0x5a, 0x8e, 0xa9, 0x0f, 0x5d, 0x95, 0x50, 0x37, 0xcc, 0x54, 0x4a, 0xdf, 0x59, 0xc0, 0x03, + 0xc3, 0x13, 0x52, 0x62, 0x8d, 0x91, 0x5e, 0x8e, 0x4c, 0x0f, 0x62, 0x7b, 0x5e, 0x56, 0x8d, 0x47, + 0x91, 0x84, 0xb5, 0x7b, 0x75, 0xd2, 0xc9, 0x52, 0xc1, 0xe9, 0x1b, 0xe1, 0x19, 0x5d, 0xdd, 0x9e, + 0x2d, 0xae, 0x49, 0xd1, 0xa9, 0x9a, 0x91, 0x78, 0x4e, 0xe7, 0x7f, 0x16, 0x52, 0x79, 0xa7, 0x16, + 0x3f, 0x92, 0x60, 0x82, 0x72, 0x5c, 0x08, 0x20, 0x38, 0xb1, 0x64, 0xfc, 0xa3, 0xc0, 0xe4, 0xec, + 0x08, 0xa4, 0xf5, 0xe5, 0x7c, 0x41, 0xd3, 0x67, 0x71, 0xf3, 0x6b, 0x09, 0x55, 0x7d, 0xd6, 0xb5, + 0x91, 0x8a, 0xbb, 0x82, 0xde, 0xfa, 0x80, 0x70, 0x0b, 0x41, 0x83, 0x5b, 0x6e, 0x5a, 0xa6, 0x0d, + 0x78, 0xab, 0x66, 0x82, 0x52, 0xb9, 0x5d, 0xaf, 0x5c, 0x05, 0xbe, 0xc7, 0x94, 0xab, 0x70, 0xc5, + 0x96, 0x0c, 0xba, 0x08, 0x59, 0x08, 0xfa, 0xf0, 0x21, 0x8e, 0x20, 0xd7, 0xe1, 0x83, 0x8c, 0x7f, + 0x60, 0x74, 0x30, 0x31, 0x67, 0x0b, 0x12, 0x06, 0xbf, 0xde, 0x2e, 0x12, 0x10, 0x30, 0x88, 0x25, + 0x5c, 0xdb, 0x67, 0x8b, 0xfc, 0x18, 0x97, 0x89, 0x2f, 0xc0, 0x1f, 0x49, 0xf3, 0x02, 0x5b, 0x51, + 0x56, 0xf6, 0xa2, 0xab, 0x9b, 0xb0, 0x22, 0x62, 0xed, 0xde, 0xe8, 0x29, 0x65, 0x05, 0xe4, 0x40, + 0xca, 0x20, 0x29, 0xc8, 0xd1, 0x8a, 0x08, 0x7d, 0xac, 0x14, 0x80, 0xda, 0x52, 0x6d, 0xa0, 0x19, + 0x4c, 0xa0, 0x28, 0x10, 0xea, 0x46, 0xce, 0xc7, 0x3a, 0xe6, 0x91, 0x0e, 0x13, 0x17, 0x5b, 0x16, + 0xe4, 0x66, 0x8b, 0x1b, 0xe5, 0x96, 0xb1, 0xf9, 0x5a, 0x98, 0x8f, 0xcd, 0x9d, 0xe2, 0xbf, 0xb8, + 0x12, 0xc1, 0x90, 0xab, 0x7d, 0x5c, 0xc7, 0x67, 0x2b, 0x20, 0xd4, 0x97, 0x22, 0x3d, 0x55, 0x43, + 0x30, 0x4b, 0xa1, 0xf4, 0x38, 0x52, 0x57, 0xd5, 0xa0, 0x48, 0x1c, 0x23, 0x8d, 0x4e, 0xb1, 0xf9, + 0xbb, 0x15, 0x94, 0x56, 0x17, 0xc7, 0xad, 0x66, 0x05, 0xa6, 0x84, 0x0d, 0x6a, 0x08, 0xc8, 0x19, + 0x3c, 0xde, 0xe9, 0x23, 0xb7, 0x8e, 0x1b, 0xd2, 0x9f, 0xf8, 0x41, 0xf2, 0xb8, 0x08, 0xf9, 0x84, + 0x29, 0xc2, 0xba, 0x27, 0x89, 0x5b, 0x92, 0xff, 0x0c, 0x43, 0xf7, 0xc0, 0xbc, 0x8e, 0x44, 0xed, + 0xe7, 0x88, 0xa5, 0x68, 0xae, 0x19, 0x4d, 0xce, 0x48, 0x69, 0xc1, 0x6f, 0x72, 0x9d, 0xb4, 0x29, + 0x2d, 0x17, 0xe5, 0x10, 0x9c, 0x6c, 0xc7, 0x7c, 0xc6, 0x51, 0x99, 0x4f, 0xe0, 0xb6, 0x8a, 0x52, + 0xf9, 0x48, 0x5d, 0x32, 0x36, 0x7c, 0x4f, 0x7b, 0xad, 0x49, 0x40, 0x9c, 0x13, 0xa4, 0x32, 0x24, + 0x03, 0x4a, 0xa7, 0xeb, 0x90, 0x12, 0x4c, 0x58, 0xec, 0x05, 0x34, 0x32, 0xae, 0x2a, 0x43, 0xd7, + 0xac, 0xf1, 0x42, 0xe8, 0x72, 0x51, 0x73, 0xaf, 0xdb, 0x05, 0x21, 0xd9, 0x99, 0x79, 0x02, 0xb2, + 0x57, 0xc7, 0x3a, 0xcd, 0x8e, 0x4d, 0x11, 0x19, 0x7d, 0xfe, 0xd9, 0xc2, 0x71, 0xc8, 0x9f, 0xad, + 0x57, 0x1d, 0xfe, 0x0c, 0x5d, 0x0d, 0x7e, 0x60, 0x6d, 0xa4, 0x89, 0xf0, 0xe0, 0xa7, 0xe0, 0x43, + 0xce, 0xdb, 0xef, 0x2d, 0xa3, 0x42, 0xc2, 0x65, 0x8f, 0xe4, 0xc2, 0x79, 0xe1, 0x71, 0x32, 0x5c, + 0x0d, 0x3c, 0x91, 0x12, 0x96, 0x22, 0x01, 0x07, 0x81, 0xc2, 0x1c, 0xcb, 0x2c, 0xe0, 0x4a, 0xac, + 0xf9, 0xf3, 0x80, 0xa0, 0x0d, 0x57, 0x90, 0x70, 0xc7, 0x58, 0x8f, 0x7c, 0xf9, 0x90, 0xd4, 0xc2, + 0x3a, 0xe0, 0x4f, 0xa1, 0x22, 0x11, 0x32, 0x60, 0xb2, 0x38, 0x03, 0xd0, 0x71, 0xfb, 0xb3, 0x58, + 0xb6, 0xcf, 0x21, 0xbd, 0x2b, 0x67, 0xa5, 0x3f, 0x53, 0x45, 0x47, 0x12, 0x54, 0xc5, 0x51, 0xd7, + 0x41, 0xc8, 0x20, 0x78, 0x5d, 0xa7, 0x22, 0xa6, 0xdf, 0x54, 0x46, 0x58, 0x27, 0x35, 0x7b, 0xab, + 0xc1, 0x3a, 0xe3, 0x5b, 0x3c, 0x8f, 0xf6, 0xc8, 0x0f, 0x39, 0x1d, 0x82, 0x1a, 0xd2, 0xa2, 0xdc, + 0x6e, 0x89, 0xf2, 0x10, 0x12, 0x0c, 0x97, 0xce, 0xa8, 0xbc, 0x14, 0x91, 0xef, 0xfc, 0x96, 0xbb, + 0xba, 0x3a, 0xa9, 0x91, 0xc5, 0x64, 0x1d, 0xc4, 0xef, 0x81, 0xe3, 0x69, 0x06, 0xcf, 0x43, 0xc7, + 0xd5, 0xba, 0xd3, 0x75, 0x46, 0xa5, 0x5e, 0xb2, 0x2f, 0x5b, 0x66, 0x7d, 0x4d, 0x20, 0x55, 0x29, + 0xf2, 0x2c, 0x31, 0xb5, 0x81, 0xeb, 0x22, 0x59, 0x62, 0xd7, 0x55, 0xdc, 0xae, 0x76, 0x18, 0xc9, + 0x3b, 0xae, 0x32, 0x85, 0xa1, 0xcb, 0xe4, 0x01, 0xba, 0xed, 0x2f, 0x70, 0x74, 0x65, 0xf3, 0x87, + 0xeb, 0x91, 0x1c, 0xb4, 0xdf, 0x7e, 0x99, 0x06, 0xe9, 0xf4, 0x9d, 0x97, 0xd0, 0xc8, 0xd0, 0xbd, + 0x1e, 0xe5, 0x6a, 0x21, 0xe4, 0x52, 0x0c, 0x7b, 0x8d, 0xce, 0x18, 0xcc, 0x8b, 0x48, 0x18, 0x54, + 0x70, 0x71, 0x18, 0x2d, 0xe6, 0x33, 0x99, 0x80, 0xc2, 0x68, 0xd9, 0x68, 0x9b, 0xfe, 0x4a, 0xe3, + 0x97, 0x15, 0x3c, 0x85, 0x83, 0x27, 0x3b, 0x94, 0xff, 0x96, 0xc8, 0x69, 0xcb, 0x79, 0x5d, 0x0e, + 0x19, 0xce, 0x64, 0x3d, 0xd4, 0x17, 0x7f, 0x55, 0x20, 0xf3, 0x24, 0xd2, 0x37, 0x36, 0xc3, 0x6d, + 0xa5, 0xa3, 0x0d, 0x1d, 0x8a, 0xcb, 0x05, 0xb6, 0x01, 0xb2, 0x8d, 0xa6, 0xbb, 0xab, 0x9a, 0x2d, + 0x48, 0xd1, 0x8a, 0x4a, 0x9c, 0xa8, 0x55, 0x5a, 0x84, 0x08, 0xa7, 0x4f, 0xe5, 0xe2, 0x9a, 0xe4, + 0xb5, 0x0e, 0x3a, 0x66, 0x01, 0x96, 0x33, 0x53, 0x77, 0x35, 0x0b, 0xa5, 0xda, 0x19, 0xaa, 0x77, + 0x2d, 0x4d, 0x47, 0x82, 0xe9, 0x83, 0xd0, 0xa2, 0x1a, 0xcb, 0x89, 0xb5, 0xc8, 0x38, 0x5a, 0x5f, + 0xe9, 0x00, 0xd3, 0x42, 0xa1, 0xdf, 0xb7, 0x7e, 0xe0, 0x03, 0x67, 0x89, 0xf8, 0x80, 0x45, 0x81, + 0x9f, 0xdc, 0x58, 0x45, 0x64, 0xd8, 0x25, 0x5f, 0xd6, 0xcc, 0x96, 0x32, 0xfc, 0xb8, 0x7c, 0xe1, + 0xc6, 0x1f, 0x97, 0x47, 0x05, 0x64, 0xda, 0xf9, 0xa2, 0x0e, 0x5b, 0x2d, 0xc8, 0xfb, 0x7a, 0x05, + 0x41, 0xb3, 0x52, 0x43, 0x4e, 0x6d, 0x14, 0x9d, 0x58, 0x00, 0x55, 0xab, 0x4a, 0x17, 0x31, 0xe6, + 0xcd, 0x37, 0x51, 0x5c, 0x22, 0x68, 0xad, 0x68, 0xbe, 0x18, 0x0c, 0x8f, 0x8e, 0x89, 0x4b, 0xa0, + 0xba, 0x1e, 0xd4, 0xa3, 0x75, 0xbc, 0xa4, 0x28, 0xd4, 0x79, 0xab, 0xc5, 0xb2, 0x67, 0xaf, 0xef, + 0x54, 0x8a, 0x58, 0x8a, 0x62, 0xf2, 0xa8, 0xab, 0x3e, 0x2c, 0xb2, 0x73, 0xc2, 0x87, 0x53, 0x6a, + 0x07, 0x26, 0x36, 0x91, 0xde, 0x79, 0x29, 0x13, 0x54, 0x3a, 0xa8, 0x33, 0x94, 0x14, 0x4c, 0x73, + 0xa0, 0x65, 0x05, 0x3e, 0x2e, 0xd2, 0x8f, 0x0f, 0x67, 0xa4, 0x76, 0xdb, 0xf1, 0x98, 0x3b, 0x5d, + 0x01, 0xc8, 0xfa, 0xe2, 0x9a, 0x0a, 0x24, 0x07, 0xf8, 0x58, 0x4d, 0x71, 0x64, 0xb5, 0xcc, 0x02, + 0x99, 0x10, 0x20, 0x09, 0xb1, 0x13, 0x14, 0x05, 0xe1, 0x0f, 0x10, 0x5d, 0x98, 0xc6, 0x8a, 0x9c, + 0x5e, 0x98, 0x0b, 0x4d, 0x9e, 0xb0, 0xad, 0xa6, 0xb8, 0x52, 0x80, 0x7e, 0x20, 0x12, 0xb4, 0xb4, + 0xd4, 0x56, 0x81, 0x35, 0x4b, 0x51, 0x89, 0x33, 0x8e, 0x11, 0x53, 0xb0, 0xa4, 0x9c, 0xbe, 0x39, + 0xf6, 0x61, 0x93, 0xad, 0x29, 0x86, 0x36, 0xa0, 0x06, 0x17, 0x04, 0xb7, 0x66, 0x08, 0xb0, 0xb0, + 0xc9, 0xc1, 0xa3, 0x90, 0xc3, 0x3f, 0xb6, 0x8a, 0x02, 0x83, 0x5f, 0x85, 0x6a, 0xdb, 0xa6, 0xcd, + 0xd5, 0xb1, 0x00, 0xdf, 0xcf, 0xad, 0x5c, 0x7c, 0xcd, 0xf3, 0xd4, 0xc0, 0xec, 0x28, 0x0b, 0x76, + 0x18, 0x6f, 0x19, 0xf3, 0x04, 0x7b, 0x4f, 0x8f, 0x42, 0x94, 0x72, 0x03, 0x76, 0xfb, 0x28, 0xb2, + 0x65, 0x71, 0xbc, 0x4b, 0x51, 0x6a, 0xc6, 0xca, 0x6c, 0x8f, 0x09, 0x2a, 0x0d, 0xc6, 0x6b, 0x74, + 0x05, 0x87, 0xe7, 0x73, 0xfc, 0x8a, 0x89, 0xac, 0x21, 0x24, 0x46, 0xa1, 0x26, 0x6a, 0x3a, 0xea, + 0x2c, 0xba, 0x52, 0xd0, 0x35, 0x89, 0x8a, 0x74, 0x54, 0x85, 0xff, 0xac, 0x19, 0x5d, 0x53, 0xfe, + 0x6c, 0x98, 0x1d, 0xd5, 0x99, 0x79, 0xa8, 0x2e, 0xcc, 0x3f, 0xdb, 0x44, 0x0c, 0xf7, 0x12, 0xf2, + 0xf3, 0xcf, 0x46, 0x47, 0xf7, 0x05, 0x94, 0x2c, 0xb3, 0x58, 0x91, 0x4c, 0xb0, 0x86, 0xc5, 0xda, + 0x83, 0x22, 0x10, 0x49, 0x0a, 0x45, 0x84, 0x08, 0xd5, 0xa1, 0xa3, 0xfa, 0x5f, 0x44, 0xf7, 0xfd, + 0x0c, 0x53, 0xd0, 0x80, 0x96, 0x3f, 0x6a, 0x08, 0x0b, 0x6a, 0x2e, 0x70, 0xc4, 0x5c, 0x5c, 0x60, + 0xa7, 0x24, 0x65, 0x81, 0x0a, 0xd0, 0x02, 0xef, 0x1b, 0x24, 0x73, 0x14, 0x22, 0x82, 0xb7, 0x32, + 0x06, 0x93, 0x2b, 0x17, 0x59, 0xfd, 0xb2, 0x05, 0xac, 0x8e, 0x83, 0x65, 0xa0, 0xcf, 0x84, 0xaa, + 0x40, 0x93, 0xd9, 0x8c, 0xab, 0x82, 0x7d, 0x25, 0xd6, 0x1f, 0x06, 0x78, 0xfa, 0xf2, 0x8e, 0x41, + 0x88, 0x15, 0xeb, 0xf8, 0x65, 0x3a, 0xb3, 0x88, 0xc8, 0x56, 0xf6, 0x2b, 0x4f, 0xb5, 0x5c, 0xc3, + 0x43, 0x56, 0x31, 0xdc, 0x24, 0xf9, 0x16, 0x6a, 0x37, 0x94, 0xdb, 0xeb, 0x7c, 0x47, 0x1b, 0x79, + 0x99, 0xe0, 0x91, 0x03, 0x43, 0xa1, 0xb2, 0xb0, 0xe8, 0x43, 0x91, 0x41, 0x6f, 0xec, 0xd5, 0x50, + 0x66, 0x52, 0x30, 0x28, 0xf0, 0x7c, 0xb9, 0x12, 0x01, 0x5f, 0xac, 0x55, 0xee, 0x73, 0x5f, 0x55, + 0x6c, 0x77, 0xb6, 0xa8, 0xb8, 0x56, 0x42, 0x3a, 0x6a, 0x60, 0xe3, 0xb4, 0xd5, 0xce, 0x1c, 0x9a, + 0xe4, 0x6a, 0x27, 0xcb, 0x0e, 0xbe, 0x72, 0x72, 0xe8, 0x3c, 0x35, 0xd6, 0x66, 0xc4, 0x3f, 0x77, + 0x1d, 0xd6, 0x06, 0xc0, 0x04, 0x12, 0x85, 0x05, 0x60, 0xc5, 0xa9, 0xd6, 0xa9, 0x45, 0xbf, 0xb4, + 0x6d, 0xe8, 0xdb, 0xba, 0xda, 0xe9, 0xa9, 0x8e, 0xa7, 0xa3, 0x12, 0x3e, 0xfd, 0xef, 0x17, 0x75, + 0xda, 0xb5, 0x95, 0x01, 0x40, 0x82, 0x72, 0x88, 0x59, 0xd7, 0x36, 0x07, 0x33, 0x9f, 0x0b, 0x04, + 0x8c, 0xde, 0x35, 0x67, 0xab, 0xd9, 0x5f, 0xb0, 0xde, 0x78, 0x0b, 0x15, 0x83, 0x87, 0xbf, 0xae, + 0x7e, 0xfd, 0xba, 0x6c, 0x5d, 0xcd, 0x79, 0x06, 0xa8, 0xc0, 0x6a, 0x54, 0x0e, 0x64, 0xa2, 0x30, + 0x65, 0x2f, 0x97, 0xa3, 0x08, 0x10, 0x63, 0xd8, 0x2e, 0x67, 0x91, 0xc7, 0x3d, 0x99, 0x1e, 0xaf, + 0xd1, 0x7e, 0x26, 0x24, 0x2c, 0x44, 0x7a, 0x4c, 0x72, 0x91, 0xa2, 0x5c, 0xbb, 0x88, 0x54, 0xc5, + 0x5e, 0xef, 0x61, 0x6b, 0xe8, 0x55, 0x5a, 0x41, 0x7b, 0x91, 0xfc, 0x39, 0x93, 0x01, 0x2d, 0x23, + 0x5b, 0xfc, 0x97, 0x0c, 0x88, 0x83, 0xfa, 0x7a, 0xff, 0x58, 0x7d, 0x9f, 0x33, 0xdd, 0x0c, 0x54, + 0xd8, 0xfa, 0x07, 0x2b, 0xcc, 0xe0, 0x88, 0xc7, 0xff, 0x5c, 0x85, 0xdd, 0x2e, 0x56, 0xf8, 0x12, + 0x53, 0xa1, 0xfc, 0x79, 0xdc, 0x52, 0xf4, 0x68, 0x2b, 0xef, 0xd7, 0xdd, 0xed, 0x96, 0xbb, 0xd9, + 0xae, 0x90, 0x21, 0x75, 0x0b, 0x68, 0xb7, 0xfa, 0xdc, 0x6e, 0x75, 0x5a, 0xa4, 0x9d, 0xbe, 0x3a, + 0x19, 0xcb, 0xb4, 0x35, 0xf9, 0xf3, 0x6b, 0xdb, 0x59, 0x87, 0x37, 0xbb, 0xd7, 0xa2, 0xef, 0xd8, + 0x9c, 0x4c, 0xc7, 0x16, 0x11, 0x70, 0x68, 0x17, 0x5a, 0xc3, 0x16, 0xb2, 0x21, 0xce, 0xb8, 0xb9, + 0x28, 0x47, 0xc7, 0x9a, 0xfd, 0x22, 0x34, 0x96, 0x89, 0x27, 0xc6, 0x7c, 0x8c, 0x44, 0xcc, 0x6d, + 0x2e, 0x10, 0xe9, 0x39, 0x17, 0x5a, 0xd8, 0xc8, 0x6e, 0x22, 0xa5, 0x75, 0xd4, 0x5e, 0x38, 0x06, + 0x11, 0xc8, 0x5b, 0x42, 0x2a, 0x07, 0x4b, 0x3f, 0xaa, 0xb8, 0xb2, 0x2f, 0xc5, 0x7a, 0x29, 0x9c, + 0xb0, 0xbb, 0x20, 0xa0, 0xcd, 0x81, 0xc9, 0x82, 0x82, 0x1d, 0x1a, 0x3a, 0x11, 0x3a, 0x56, 0xca, + 0x89, 0x9c, 0xbf, 0x32, 0x71, 0x57, 0xfe, 0xe1, 0x9b, 0x20, 0x70, 0x5f, 0x44, 0x81, 0xb4, 0xb6, + 0xba, 0x60, 0xd2, 0x0c, 0xac, 0xee, 0xcb, 0x37, 0x30, 0x43, 0xe6, 0xc5, 0xf0, 0x6a, 0xb8, 0xd0, + 0x66, 0xb5, 0x6b, 0xb6, 0x87, 0x4e, 0xb0, 0xdd, 0x14, 0x93, 0x23, 0x50, 0x53, 0xa9, 0x19, 0xdc, + 0x1e, 0x1a, 0x06, 0x59, 0x5d, 0xa0, 0x9d, 0xf6, 0xcb, 0x8c, 0xeb, 0x1c, 0x63, 0x20, 0xf9, 0xcc, + 0x82, 0x09, 0x9a, 0xc7, 0x21, 0x1a, 0x1e, 0xde, 0x6f, 0xc5, 0xed, 0x0f, 0x07, 0x2d, 0x7f, 0x13, + 0x90, 0x57, 0x5e, 0x16, 0x97, 0xe2, 0x90, 0x19, 0x94, 0x27, 0x89, 0x48, 0x27, 0x96, 0xc1, 0x97, + 0x13, 0xa7, 0x41, 0x94, 0x8c, 0xed, 0x1c, 0xee, 0xbc, 0x92, 0x97, 0xd5, 0xa3, 0x5e, 0xc0, 0x05, + 0xd9, 0x14, 0xcf, 0xc8, 0xe4, 0x7f, 0xd2, 0x7b, 0x35, 0x93, 0x21, 0x7b, 0xc6, 0x2c, 0x26, 0x9c, + 0xf3, 0xc8, 0xfc, 0x9b, 0xd0, 0x88, 0x95, 0x12, 0x51, 0xde, 0x99, 0x7f, 0x26, 0x47, 0x01, 0x1c, + 0xe1, 0x77, 0xd1, 0x52, 0x0e, 0x3a, 0x52, 0xf6, 0x3b, 0x82, 0xbb, 0x4b, 0x11, 0xcd, 0x22, 0x1b, + 0xb2, 0x35, 0x12, 0x29, 0x62, 0x45, 0x8b, 0x4b, 0x20, 0x12, 0x57, 0xed, 0x9c, 0x17, 0x8c, 0x78, + 0x44, 0x30, 0xc6, 0x93, 0xcf, 0xac, 0xd4, 0xe0, 0x33, 0x7e, 0x3f, 0x62, 0x04, 0xac, 0x12, 0x27, + 0x9c, 0xb0, 0x2d, 0x5e, 0xdc, 0x92, 0xeb, 0xcc, 0x62, 0x4c, 0x59, 0x9f, 0x5b, 0xb6, 0x46, 0xca, + 0x2e, 0xca, 0x70, 0x9c, 0x79, 0xb5, 0x35, 0x70, 0xa3, 0x7c, 0xd5, 0x52, 0x74, 0xb4, 0x26, 0x92, + 0x43, 0x22, 0x8b, 0x5c, 0x76, 0xb4, 0xc8, 0x6c, 0xc3, 0xc6, 0x0a, 0xae, 0xab, 0x73, 0x56, 0xcb, + 0x82, 0x72, 0x48, 0x44, 0x32, 0x5e, 0xda, 0xe7, 0xc7, 0x54, 0x88, 0xc0, 0x8a, 0x63, 0x98, 0x95, + 0x0f, 0xec, 0x03, 0x47, 0x2c, 0x2b, 0xc5, 0x10, 0x67, 0x5d, 0xef, 0x0c, 0xd9, 0xce, 0x36, 0xee, + 0x10, 0x78, 0x84, 0x84, 0xb4, 0x89, 0x87, 0x19, 0xd6, 0x17, 0xf5, 0x5c, 0xdf, 0x47, 0x61, 0x91, + 0x50, 0xf3, 0x1d, 0x3a, 0x8b, 0xa8, 0x1e, 0xb4, 0xa4, 0xfc, 0xca, 0x72, 0xbe, 0x52, 0xd3, 0xd6, + 0x35, 0x8b, 0x6a, 0xb2, 0xe1, 0xa4, 0xa5, 0x7a, 0x71, 0x5e, 0x5a, 0x65, 0x6e, 0x64, 0xb6, 0x55, + 0x22, 0xf9, 0xae, 0x3b, 0xd4, 0x5a, 0x20, 0x07, 0x36, 0xdb, 0xb8, 0xd4, 0x5c, 0x38, 0x19, 0x5f, + 0xbc, 0xbd, 0x8a, 0x65, 0x7d, 0x28, 0x4a, 0xab, 0x74, 0xfa, 0x39, 0xad, 0x6f, 0x16, 0x12, 0x60, + 0xfd, 0x2d, 0x14, 0xf8, 0x44, 0x0c, 0x11, 0xde, 0x16, 0xb3, 0xb7, 0x40, 0x02, 0x3d, 0xc7, 0xef, + 0xb2, 0x2d, 0xd9, 0xf0, 0xc6, 0x8a, 0x8c, 0x19, 0x4f, 0x2d, 0x3e, 0x31, 0x96, 0xbd, 0xe9, 0x81, + 0x79, 0xbc, 0x19, 0x94, 0xcd, 0x71, 0x79, 0x8a, 0x74, 0x47, 0x9b, 0x7c, 0x87, 0xd6, 0x3a, 0x1d, + 0xd9, 0x7b, 0xee, 0xa8, 0x3a, 0x7d, 0x9e, 0x78, 0x03, 0x28, 0x84, 0xf7, 0xa7, 0x39, 0xfb, 0x38, + 0x6f, 0x2c, 0x61, 0x45, 0x58, 0xfd, 0x74, 0xdf, 0x1c, 0xfb, 0xc0, 0xe3, 0x23, 0xf8, 0x9e, 0xe1, + 0xd4, 0x19, 0x4c, 0x5e, 0x0a, 0xe9, 0x42, 0x04, 0xa3, 0xde, 0x60, 0xf2, 0x84, 0x6d, 0x51, 0x35, + 0x26, 0x85, 0x55, 0x85, 0x35, 0x1d, 0xbe, 0x48, 0x14, 0xfd, 0x0b, 0x88, 0x9f, 0xad, 0x32, 0x5f, + 0xaf, 0xa0, 0xc3, 0x65, 0xf0, 0x0b, 0xbc, 0x41, 0xc6, 0x7d, 0xcd, 0x55, 0xd7, 0x61, 0xc1, 0x20, + 0x6b, 0x1b, 0x72, 0x8c, 0x39, 0xe5, 0x2a, 0x8b, 0x6c, 0x01, 0x92, 0x39, 0xe0, 0x45, 0x05, 0xaf, + 0xc2, 0x12, 0x0d, 0xcb, 0xe3, 0x16, 0x9c, 0xc2, 0x40, 0x9e, 0x79, 0xdf, 0x89, 0x5c, 0x99, 0xd5, + 0xdf, 0xf2, 0x79, 0x69, 0xc4, 0xe4, 0x1a, 0xca, 0x1d, 0xac, 0x61, 0xdc, 0xa0, 0x51, 0x20, 0xa5, + 0xbc, 0x72, 0x16, 0x59, 0x3a, 0xa8, 0x57, 0x13, 0xef, 0x4b, 0x22, 0x70, 0x5c, 0x2d, 0x13, 0x65, + 0x61, 0xab, 0x40, 0xfd, 0x31, 0xf6, 0xe6, 0xaf, 0xc5, 0x9c, 0xa1, 0x2c, 0xc2, 0xf8, 0x32, 0xcb, + 0x18, 0x5f, 0xf1, 0x9f, 0x63, 0x7c, 0xcb, 0xa4, 0x17, 0xb2, 0x5e, 0x46, 0x13, 0xff, 0x2a, 0x97, + 0x0c, 0xf3, 0x45, 0x55, 0x07, 0xc6, 0xe8, 0x68, 0xce, 0xfc, 0xb3, 0xeb, 0xce, 0x62, 0xdc, 0x44, + 0xda, 0xfa, 0x22, 0x25, 0xa3, 0xbe, 0xc2, 0x70, 0x44, 0x5c, 0x28, 0x2c, 0x99, 0x7f, 0xd1, 0xc3, + 0x6f, 0xea, 0x8c, 0x67, 0x0f, 0xb5, 0x45, 0xa9, 0xaa, 0x80, 0xa4, 0xda, 0xd1, 0x46, 0x34, 0xff, + 0x6c, 0xd1, 0xfe, 0xef, 0x7f, 0xfb, 0x88, 0x55, 0xd9, 0x66, 0x0a, 0x3d, 0x62, 0x0b, 0xa8, 0x29, + 0x17, 0xf8, 0x5f, 0x64, 0xbc, 0x06, 0x33, 0x1e, 0x6a, 0x3d, 0x05, 0x39, 0x46, 0x0e, 0xf3, 0x90, + 0xef, 0x69, 0xce, 0xcb, 0xb3, 0x30, 0xd7, 0x8c, 0x08, 0xfd, 0x80, 0x76, 0x15, 0x81, 0xc2, 0x22, + 0x6c, 0xe9, 0x41, 0xce, 0xd9, 0xc7, 0xa9, 0xb7, 0x1b, 0x12, 0x2f, 0x0d, 0x10, 0x9c, 0x54, 0xfb, + 0x87, 0xcc, 0x25, 0x61, 0x1b, 0x3f, 0x66, 0x1f, 0x54, 0xa6, 0x3e, 0x4a, 0xf9, 0xbc, 0xc5, 0xb7, + 0xbc, 0x28, 0x3f, 0x70, 0x6a, 0xd6, 0xa2, 0xdb, 0x40, 0xce, 0xa9, 0x05, 0x6e, 0x6e, 0x31, 0xd4, + 0x8d, 0x1d, 0xee, 0x6a, 0xaa, 0xde, 0x59, 0x20, 0xf1, 0xe0, 0x4b, 0x5c, 0x62, 0x0c, 0x1c, 0x16, + 0xfc, 0x8d, 0x18, 0xda, 0x8b, 0x99, 0xb0, 0xbc, 0x4f, 0x61, 0xb4, 0x88, 0x8d, 0xc5, 0x1a, 0xa9, + 0xe2, 0xb4, 0x00, 0x5f, 0xa6, 0x4f, 0xc5, 0x40, 0xb9, 0x14, 0x87, 0x9f, 0x40, 0xbe, 0xd6, 0x0c, + 0x03, 0xf7, 0x2e, 0x2c, 0x60, 0x74, 0xd4, 0xf9, 0x40, 0x5e, 0x95, 0x1b, 0xe0, 0x16, 0xce, 0xbd, + 0x4c, 0x77, 0xa4, 0x2c, 0x54, 0x58, 0x18, 0x22, 0x33, 0xa4, 0xa9, 0x83, 0x85, 0xd1, 0xa7, 0x2c, + 0x77, 0xe2, 0xce, 0x22, 0x5b, 0xf0, 0xc2, 0xba, 0x80, 0x4a, 0xbc, 0x34, 0xc7, 0x2c, 0x40, 0xe1, + 0x4a, 0xdc, 0x08, 0x73, 0x31, 0x74, 0xb4, 0x58, 0x0f, 0xae, 0x2c, 0xbe, 0x93, 0x42, 0x25, 0x13, + 0x6f, 0x58, 0x5d, 0x26, 0xf1, 0x83, 0x18, 0x14, 0x90, 0x8c, 0xad, 0x12, 0x42, 0x23, 0xfc, 0x2e, + 0x42, 0x77, 0x9c, 0xdd, 0x76, 0x9e, 0x52, 0x2c, 0x0d, 0x87, 0xc4, 0x9a, 0xdc, 0x80, 0x31, 0x57, + 0xab, 0x74, 0xfe, 0x85, 0x67, 0x98, 0xdf, 0x6f, 0xf4, 0x9c, 0x21, 0x50, 0xf0, 0xe5, 0x1b, 0x26, + 0x32, 0xc5, 0xf8, 0x04, 0x7a, 0x3b, 0xbe, 0x3e, 0xcc, 0x90, 0xa4, 0x78, 0x31, 0xc5, 0x42, 0x5f, + 0x4c, 0xe2, 0x45, 0x87, 0x0f, 0xb3, 0xc5, 0x05, 0x3a, 0xba, 0xe8, 0x2c, 0x6e, 0xb2, 0xac, 0x12, + 0x5d, 0x3d, 0x16, 0x1d, 0x5e, 0x52, 0x0b, 0xe1, 0x69, 0x49, 0x90, 0xc7, 0x6d, 0xee, 0x64, 0x37, + 0x56, 0xec, 0x04, 0x07, 0x5b, 0xab, 0xa4, 0xeb, 0xc4, 0x7f, 0xcb, 0xef, 0xff, 0x12, 0x6f, 0xae, + 0x8c, 0xe7, 0x3c, 0xba, 0x5e, 0x42, 0x88, 0x3b, 0x2d, 0x27, 0xb4, 0x3e, 0x53, 0x00, 0x96, 0x17, + 0xdc, 0x00, 0x9c, 0x9e, 0x25, 0xb1, 0x66, 0x66, 0x44, 0x30, 0xa1, 0xfe, 0x8d, 0xfe, 0x3b, 0x08, + 0x8c, 0x96, 0xd6, 0xf9, 0x90, 0x1b, 0x5d, 0xc4, 0xb8, 0xbb, 0x08, 0xc4, 0x30, 0x69, 0x22, 0x8a, + 0x0d, 0x75, 0x0c, 0xa3, 0xf2, 0x3c, 0xfa, 0x3a, 0x6a, 0x57, 0x19, 0xea, 0x2e, 0x3a, 0x6f, 0xfa, + 0x7d, 0x2f, 0xf9, 0x42, 0x65, 0x6a, 0x12, 0x48, 0xa7, 0x9c, 0xab, 0x5e, 0xa1, 0x10, 0x92, 0x70, + 0x49, 0x36, 0x5f, 0xd6, 0xaa, 0x06, 0xcb, 0x0b, 0x12, 0x85, 0x6f, 0x5f, 0x25, 0xca, 0x5a, 0xdb, + 0x01, 0xe9, 0x70, 0x12, 0x08, 0xa2, 0x8b, 0xb4, 0xde, 0xe1, 0x7c, 0x83, 0x82, 0xfc, 0x50, 0x7b, + 0x74, 0xe3, 0x93, 0xcf, 0xe6, 0x3b, 0xfe, 0xca, 0x44, 0xbe, 0x23, 0x60, 0x60, 0xdb, 0xcb, 0xeb, + 0x28, 0x5c, 0x91, 0x3f, 0x19, 0x4e, 0xd8, 0x95, 0xe3, 0x53, 0x49, 0x4a, 0x6c, 0xde, 0x68, 0x22, + 0xa0, 0xc8, 0x71, 0x9d, 0x45, 0xf7, 0x42, 0x06, 0x03, 0xe2, 0xed, 0x65, 0x8d, 0xed, 0x05, 0x4f, + 0xd8, 0x58, 0x47, 0x23, 0xa8, 0x5c, 0x26, 0xbb, 0x5d, 0x51, 0x0f, 0x46, 0x05, 0x24, 0xbe, 0x45, + 0xff, 0xa8, 0x0e, 0xef, 0xe0, 0xec, 0x13, 0x47, 0xb0, 0x85, 0x11, 0x18, 0xb7, 0xe7, 0xa9, 0xae, + 0xfd, 0x36, 0x23, 0xe4, 0x92, 0xcf, 0xc5, 0xee, 0x7e, 0x23, 0x49, 0xad, 0xe7, 0x17, 0x2d, 0x57, + 0xfc, 0xea, 0xc6, 0xed, 0xfc, 0x73, 0xee, 0x8d, 0x50, 0x71, 0x98, 0x1b, 0xb4, 0xfb, 0x6a, 0xfb, + 0x45, 0x4e, 0x21, 0x43, 0x33, 0x97, 0xf9, 0x7e, 0xf8, 0xb6, 0x88, 0xe8, 0x48, 0x6d, 0x75, 0xd4, + 0xee, 0xbf, 0xe8, 0x91, 0xf9, 0x93, 0x11, 0x50, 0xff, 0xf0, 0x4c, 0x0a, 0xfe, 0x86, 0x01, 0x27, + 0x1a, 0xe3, 0x20, 0x6f, 0x76, 0x85, 0x85, 0xf2, 0x19, 0x5a, 0x3a, 0x70, 0x2e, 0x5a, 0x67, 0x33, + 0x8b, 0xf4, 0x92, 0xae, 0x0c, 0xac, 0xaf, 0xf4, 0x25, 0x06, 0xa2, 0x81, 0xed, 0x33, 0x02, 0x1c, + 0x5f, 0x68, 0x62, 0x52, 0x14, 0xab, 0x15, 0x1a, 0xf2, 0xc6, 0x8f, 0x8f, 0x31, 0x35, 0xf2, 0x8c, + 0x8a, 0x33, 0x12, 0xd3, 0x4d, 0xc5, 0xa8, 0xbb, 0xe3, 0x5f, 0xd2, 0x96, 0x72, 0x40, 0x1f, 0x41, + 0x0f, 0x42, 0x0c, 0x83, 0xd7, 0x5d, 0x38, 0x17, 0xdc, 0xdc, 0x3b, 0xb6, 0xb4, 0x45, 0xf3, 0x2a, + 0x37, 0xdc, 0xd9, 0xa2, 0xe1, 0x9a, 0x7d, 0x65, 0x0e, 0x04, 0x04, 0xb6, 0xff, 0xb9, 0x00, 0x9f, + 0xf0, 0xd7, 0xa0, 0xc3, 0x2b, 0xb5, 0x7d, 0xbf, 0x12, 0x2a, 0xf4, 0x72, 0xa0, 0xfe, 0x88, 0x14, + 0x1c, 0x43, 0xac, 0x42, 0xb4, 0x4a, 0x3a, 0x55, 0x2a, 0x0c, 0x25, 0x01, 0x96, 0x8a, 0x01, 0xe8, + 0x38, 0x1f, 0x93, 0x6a, 0x54, 0xbe, 0x0d, 0x3b, 0x67, 0x00, 0xf9, 0x01, 0x7a, 0xf2, 0xd4, 0x02, + 0x10, 0xdf, 0x1e, 0x0c, 0xc1, 0x74, 0x0b, 0xc5, 0xd9, 0xa2, 0x26, 0xc4, 0x56, 0x98, 0x42, 0x11, + 0xdd, 0x85, 0xc9, 0x61, 0x97, 0x65, 0xdf, 0x96, 0xa4, 0x33, 0x32, 0x10, 0x16, 0x80, 0xe4, 0xed, + 0xbd, 0x72, 0x43, 0xf2, 0x68, 0xb0, 0xb8, 0xe8, 0x79, 0x52, 0x5d, 0xdf, 0xf8, 0xb8, 0xad, 0x95, + 0xcc, 0xc4, 0x00, 0xd5, 0x64, 0x5e, 0x86, 0x68, 0x91, 0xae, 0x93, 0xfd, 0xa8, 0x53, 0xfd, 0x47, + 0x96, 0xad, 0x96, 0x67, 0x04, 0x5c, 0xe7, 0x5c, 0xbd, 0x52, 0x16, 0x48, 0x43, 0x64, 0x95, 0x5e, + 0xe9, 0x80, 0xf5, 0x51, 0x39, 0x3f, 0xec, 0xeb, 0x41, 0x3c, 0x36, 0x57, 0x8a, 0xf2, 0x45, 0x67, + 0x41, 0xed, 0x0e, 0x2b, 0xc8, 0xd9, 0x45, 0x6f, 0x2f, 0x72, 0x2c, 0x81, 0x00, 0x03, 0xe5, 0x0f, + 0x4e, 0xb4, 0x62, 0xc3, 0x0a, 0xa7, 0x92, 0xdc, 0x42, 0xca, 0xa1, 0xbc, 0x2d, 0x96, 0x7b, 0x6f, + 0x78, 0xf3, 0xbb, 0x42, 0xf8, 0x3d, 0xf1, 0x0b, 0x03, 0xf6, 0x4c, 0x4a, 0xc4, 0x9a, 0x32, 0x82, + 0x0e, 0xa5, 0x40, 0x2a, 0xf4, 0x39, 0x7d, 0x96, 0xd9, 0xc7, 0xf0, 0x1f, 0xe1, 0x9b, 0x51, 0x50, + 0x2c, 0x88, 0x5a, 0xf1, 0x56, 0x34, 0x8f, 0x96, 0x69, 0x4f, 0xaa, 0x3d, 0x5b, 0x99, 0x92, 0x80, + 0x54, 0xcc, 0x33, 0x23, 0x3e, 0x79, 0x9e, 0xd2, 0x5b, 0xfa, 0xba, 0xb3, 0xa4, 0xc3, 0x01, 0x03, + 0x2f, 0x85, 0x65, 0x9e, 0xbc, 0x3f, 0x43, 0x0b, 0xe5, 0x7f, 0xc5, 0x9d, 0xe8, 0xd0, 0x35, 0xc7, + 0x9d, 0x2d, 0xf3, 0xba, 0xa5, 0xde, 0x77, 0xef, 0x61, 0x98, 0xcd, 0x03, 0xdf, 0xe7, 0x50, 0xc8, + 0xc5, 0x58, 0x8c, 0xa3, 0xb0, 0x81, 0x96, 0x1d, 0xf7, 0x68, 0x16, 0xe3, 0x77, 0xb9, 0x74, 0x87, + 0x68, 0x91, 0x6c, 0x7d, 0x69, 0x97, 0x99, 0x30, 0x16, 0xbd, 0x16, 0x17, 0x89, 0x6d, 0xc1, 0x91, + 0xb6, 0xc6, 0xfb, 0xda, 0x66, 0xe2, 0x6c, 0x4e, 0xdc, 0xd2, 0x11, 0x58, 0xf0, 0x48, 0xf7, 0xc3, + 0x2b, 0x27, 0x55, 0x1e, 0xd4, 0xce, 0x2c, 0x76, 0x9b, 0x7c, 0xee, 0xf9, 0xe0, 0x12, 0x87, 0x5d, + 0xca, 0xdf, 0x81, 0xd7, 0xba, 0x89, 0xef, 0x6d, 0x5d, 0x71, 0x9c, 0x3f, 0xeb, 0x9e, 0xe8, 0xf0, + 0x43, 0x92, 0x49, 0xed, 0x2b, 0xb3, 0xc4, 0xb5, 0x51, 0x94, 0x82, 0x3e, 0xf0, 0x6c, 0x86, 0x4b, + 0xf4, 0xb9, 0x0d, 0x97, 0x18, 0x63, 0x1e, 0x88, 0xfd, 0x18, 0x35, 0x14, 0x2c, 0x9a, 0xbc, 0x49, + 0xb7, 0x03, 0x30, 0x84, 0x57, 0xed, 0xc8, 0x57, 0x99, 0xbd, 0x12, 0x4c, 0xcd, 0x78, 0x1f, 0x43, + 0xdf, 0xf1, 0x11, 0x05, 0x94, 0x18, 0xa7, 0x47, 0xe6, 0xd8, 0x2c, 0xf8, 0x55, 0x2d, 0x05, 0x11, + 0xe3, 0x83, 0x39, 0x6f, 0xb9, 0x22, 0x5e, 0xd1, 0xdd, 0x09, 0xd2, 0xbc, 0x10, 0xd3, 0xd7, 0x72, + 0x61, 0xf1, 0x3b, 0xed, 0x5e, 0x50, 0x1a, 0x37, 0x66, 0x56, 0x16, 0x8f, 0x64, 0x88, 0x94, 0x27, + 0xa9, 0x9e, 0xdf, 0xbb, 0xc7, 0x58, 0xfc, 0x63, 0xac, 0x71, 0xca, 0x16, 0x16, 0x58, 0xa6, 0x21, + 0x2e, 0x51, 0xf9, 0xfe, 0x2a, 0x83, 0x81, 0x96, 0x60, 0xb9, 0x18, 0xc5, 0x6c, 0x62, 0x6e, 0xc4, + 0x8a, 0xc6, 0x51, 0x79, 0x2c, 0x70, 0xf0, 0x00, 0x36, 0x6b, 0x74, 0x66, 0xcb, 0x5d, 0x78, 0xe3, + 0xfc, 0x75, 0x8d, 0x18, 0x62, 0x0b, 0x0b, 0xc9, 0xa1, 0x23, 0x3c, 0x71, 0x0e, 0xff, 0xbc, 0x6a, + 0x8b, 0x53, 0x99, 0xec, 0x3f, 0x44, 0x74, 0x31, 0x6f, 0xd6, 0x47, 0x99, 0x77, 0x0c, 0xaf, 0x88, + 0xb7, 0x65, 0xac, 0xda, 0x0f, 0xfa, 0x8b, 0x90, 0x8f, 0x1b, 0xfb, 0x82, 0xc5, 0x68, 0xc1, 0x7f, + 0x79, 0x49, 0x39, 0xb6, 0x79, 0x14, 0xfb, 0x0d, 0x27, 0x4a, 0x15, 0x20, 0xda, 0x56, 0xfb, 0xa6, + 0x4e, 0x9c, 0x62, 0xfb, 0xe6, 0xd8, 0x90, 0x56, 0x4f, 0x6a, 0x14, 0x21, 0x34, 0x72, 0xf0, 0x8d, + 0x3b, 0x66, 0x40, 0x84, 0xe5, 0xa5, 0xeb, 0x46, 0xa9, 0xc0, 0x36, 0x18, 0xd7, 0x0d, 0xd9, 0xdb, + 0xda, 0x58, 0xe1, 0x5e, 0xba, 0x82, 0xc7, 0x33, 0x3f, 0x49, 0x21, 0xd8, 0x0c, 0x63, 0x1d, 0x11, + 0xfe, 0x89, 0xed, 0x31, 0x1c, 0x9a, 0xc0, 0xcf, 0x49, 0x6f, 0x94, 0x71, 0xb2, 0x30, 0x0d, 0x95, + 0x47, 0x9e, 0xd5, 0xce, 0x7f, 0x2e, 0x4a, 0xaa, 0x1e, 0xe7, 0xe1, 0xcf, 0xb8, 0xf9, 0xee, 0xbe, + 0x7c, 0xa2, 0x07, 0xd0, 0x20, 0xc5, 0x69, 0x39, 0xa1, 0x57, 0xec, 0x43, 0x48, 0xf9, 0x0a, 0x9a, + 0x8d, 0x48, 0xab, 0x32, 0x75, 0x63, 0x8d, 0x13, 0x0b, 0x78, 0x21, 0xa9, 0x1d, 0x67, 0xa6, 0xb7, + 0xcc, 0x5c, 0x68, 0xa0, 0x51, 0xb5, 0x11, 0xf4, 0x73, 0xc5, 0xf6, 0xce, 0xb1, 0xa2, 0x43, 0x5c, + 0xaa, 0x0f, 0x3a, 0x2d, 0x45, 0x31, 0x7f, 0x92, 0x26, 0xb7, 0x6a, 0x3b, 0xa5, 0xe5, 0xab, 0xfc, + 0x54, 0xd0, 0xe7, 0x5c, 0x07, 0xbc, 0xe3, 0xe3, 0x33, 0xff, 0x48, 0x79, 0xdc, 0x57, 0xe6, 0x59, + 0x11, 0xf1, 0x14, 0x89, 0xcd, 0x48, 0xdd, 0x02, 0x16, 0x67, 0xad, 0xd3, 0x0a, 0x1c, 0xe3, 0x52, + 0xb9, 0x45, 0xc3, 0xe2, 0xf2, 0xda, 0x16, 0xce, 0x8a, 0x71, 0x75, 0xf6, 0xa5, 0xf9, 0xbf, 0x07, + 0x80, 0x60, 0x45, 0x80, 0x69, 0x25, 0x00, 0xdb, 0x17, 0x00, 0x7d, 0x42, 0xc2, 0x5b, 0xb5, 0x0d, + 0x55, 0x9a, 0x71, 0xee, 0x03, 0xb4, 0xa6, 0x64, 0x8c, 0x4b, 0xd0, 0x6a, 0x77, 0x20, 0xaf, 0x0d, + 0xbf, 0x7e, 0xee, 0xb0, 0x04, 0xea, 0xfe, 0x7e, 0x23, 0xac, 0xb2, 0x10, 0xe5, 0xae, 0x28, 0x5c, + 0x44, 0x7b, 0x93, 0xc4, 0x52, 0x7d, 0x81, 0x37, 0xbf, 0x81, 0x66, 0xd8, 0xd9, 0x07, 0x9c, 0x39, + 0x17, 0xdd, 0x4d, 0xbd, 0xdd, 0x4f, 0x39, 0xba, 0x1b, 0xca, 0x39, 0xb3, 0xbe, 0xe7, 0xfa, 0x99, + 0x47, 0xd9, 0x71, 0x65, 0xb7, 0x91, 0xaf, 0xc3, 0x98, 0xb9, 0x83, 0x82, 0x9e, 0xcb, 0x4b, 0xaa, + 0xf4, 0xaf, 0xc8, 0xa9, 0x77, 0x7a, 0x5c, 0x7a, 0xb1, 0x36, 0x7f, 0xb8, 0xc5, 0x42, 0x36, 0x00, + 0x82, 0xdf, 0xc6, 0x06, 0x4a, 0xac, 0xb1, 0x6d, 0x14, 0x52, 0xb9, 0x8f, 0xb6, 0xb1, 0x50, 0x1b, + 0xe7, 0x21, 0x12, 0xf1, 0xef, 0xf7, 0xbd, 0x44, 0x78, 0x71, 0x92, 0x53, 0x7c, 0xa8, 0xf3, 0xc8, + 0x7b, 0x08, 0xdd, 0xa8, 0x94, 0x09, 0xea, 0x68, 0x8f, 0xcf, 0x89, 0xb7, 0xf5, 0x47, 0x89, 0x21, + 0x9b, 0x2b, 0x54, 0xb8, 0xc2, 0x97, 0xed, 0x41, 0xa4, 0x28, 0xc6, 0x9f, 0x24, 0x61, 0x27, 0x85, + 0x6f, 0x69, 0x16, 0x8e, 0x17, 0xa3, 0x3a, 0xc0, 0x0f, 0xe0, 0x4f, 0xd0, 0x3a, 0x75, 0xb1, 0x3d, + 0x12, 0x05, 0x22, 0x82, 0xd5, 0x45, 0x76, 0x7e, 0x4b, 0xdc, 0xc4, 0xa0, 0x98, 0x00, 0x29, 0x01, + 0x43, 0xba, 0x0a, 0xb7, 0x47, 0xa9, 0x54, 0xea, 0x5b, 0x1a, 0xf2, 0x6f, 0x0a, 0x6b, 0xdf, 0x0c, + 0x93, 0xc5, 0xb3, 0x24, 0x15, 0x44, 0x0a, 0x0a, 0xa4, 0x2d, 0x78, 0xf7, 0x66, 0x81, 0xb8, 0xb9, + 0xd6, 0x34, 0x6d, 0x7b, 0x2a, 0x7b, 0x55, 0x09, 0x86, 0xaa, 0x76, 0x1c, 0xe1, 0x58, 0x19, 0x29, + 0x4d, 0x52, 0xcf, 0x27, 0x5a, 0xf3, 0xb7, 0xb4, 0x5f, 0x71, 0xd0, 0xb5, 0x56, 0x4f, 0xdc, 0x64, + 0x0d, 0x93, 0xb4, 0x35, 0xd6, 0x1c, 0x8b, 0x34, 0x20, 0x92, 0x4c, 0x00, 0x74, 0x91, 0x7d, 0x67, + 0x9f, 0xf1, 0xc0, 0xe7, 0x62, 0x2a, 0x10, 0x34, 0x96, 0xc3, 0x54, 0x0a, 0x2c, 0x61, 0x8d, 0xb4, + 0x41, 0x01, 0x67, 0x8e, 0xb1, 0x3e, 0xd3, 0x68, 0xeb, 0x18, 0xfa, 0x15, 0x2a, 0xed, 0xf5, 0x74, + 0x95, 0xa4, 0x26, 0x24, 0x1f, 0x3e, 0x6e, 0x4f, 0x87, 0x0e, 0x69, 0xde, 0x2b, 0x39, 0xe8, 0x2f, + 0x6e, 0x7e, 0xf9, 0x3c, 0x51, 0x33, 0xe5, 0x6e, 0x0d, 0x40, 0xad, 0x6d, 0x7e, 0xb3, 0xb8, 0x5e, + 0xd0, 0xf3, 0x74, 0xe2, 0x26, 0xa9, 0xe7, 0x5b, 0xda, 0x82, 0xc1, 0xd0, 0xe6, 0x82, 0x3e, 0x04, + 0x5d, 0x38, 0xd7, 0x45, 0x61, 0x2d, 0xd2, 0x81, 0x73, 0x1d, 0x5a, 0x8f, 0x6f, 0x31, 0xa7, 0xe4, + 0x6a, 0x4b, 0x1b, 0xc4, 0xc0, 0xa4, 0xa4, 0xc1, 0xb5, 0x55, 0x2d, 0x36, 0xa7, 0x46, 0x7b, 0x61, + 0xcc, 0x98, 0x18, 0xdb, 0xe8, 0x1a, 0xb6, 0x9a, 0xcd, 0x96, 0x96, 0xb7, 0x8a, 0x45, 0xdf, 0x1b, + 0x65, 0xd3, 0x5e, 0x1c, 0xe5, 0x29, 0x3b, 0xcc, 0xbd, 0x74, 0xac, 0x85, 0x6c, 0x66, 0x79, 0xab, + 0x6b, 0x97, 0xaa, 0xfa, 0xf2, 0x5e, 0xb3, 0x47, 0x0b, 0xe3, 0x3c, 0x02, 0x76, 0xb6, 0x7c, 0x9c, + 0x99, 0xd2, 0x8a, 0x71, 0x62, 0xd1, 0x77, 0xb1, 0x89, 0xd3, 0x38, 0x06, 0xa1, 0x98, 0xbc, 0x1c, + 0xa7, 0xb9, 0xce, 0xf2, 0x56, 0x49, 0xd1, 0xb5, 0xf8, 0x76, 0xbd, 0x56, 0xbe, 0x8e, 0x41, 0x90, + 0x37, 0xc7, 0x29, 0x90, 0x22, 0x88, 0xbf, 0x42, 0x8a, 0x46, 0xa3, 0x4e, 0x3b, 0xaa, 0x8b, 0xe1, + 0x3d, 0x1c, 0xf1, 0x2b, 0x36, 0xbc, 0x16, 0x43, 0xbf, 0xab, 0xa8, 0x69, 0xc7, 0x34, 0xba, 0x5a, + 0x2f, 0xbe, 0x65, 0x7e, 0x0e, 0xb5, 0x07, 0x8b, 0x33, 0xa8, 0x7d, 0x06, 0xdd, 0x4e, 0x7c, 0xca, + 0x2c, 0x1d, 0x72, 0xde, 0x1f, 0xf2, 0x5a, 0xcc, 0xc4, 0xd9, 0x11, 0xb0, 0x7c, 0xa4, 0x69, 0x8e, + 0x23, 0x90, 0xd6, 0x29, 0x13, 0xc6, 0x89, 0xed, 0xf7, 0xbe, 0xdf, 0x01, 0x44, 0x6e, 0xdb, 0x5e, + 0x4c, 0x66, 0xac, 0x20, 0xc4, 0x0c, 0x34, 0x1d, 0xb3, 0x87, 0x3b, 0x24, 0x70, 0x61, 0x21, 0x42, + 0x98, 0xeb, 0xe9, 0x37, 0x18, 0x49, 0x1c, 0xd1, 0x46, 0x67, 0x1e, 0xa5, 0x8d, 0x50, 0x85, 0x81, + 0xbc, 0x20, 0xb0, 0xba, 0x51, 0xfa, 0xa3, 0xe0, 0xa1, 0xdf, 0xa0, 0x37, 0x04, 0x3c, 0x24, 0x12, + 0x33, 0x24, 0xaa, 0x2e, 0xa4, 0x20, 0x73, 0x31, 0x0d, 0x92, 0xb7, 0x2e, 0xd2, 0xb8, 0xcc, 0x37, + 0xb6, 0xa2, 0xe9, 0x09, 0xb7, 0xaf, 0x39, 0xf0, 0x0d, 0x38, 0x7d, 0x5d, 0xcc, 0x15, 0x8b, 0xd0, + 0x1f, 0x58, 0xfc, 0xea, 0x62, 0x56, 0x14, 0xf8, 0x80, 0xc8, 0x20, 0x2f, 0xeb, 0x43, 0x78, 0xcb, + 0xe6, 0xca, 0x62, 0x5c, 0x7f, 0xd8, 0x5a, 0x10, 0x70, 0x51, 0x8f, 0x8b, 0x53, 0x69, 0x26, 0x9c, + 0x99, 0xca, 0x21, 0x98, 0x97, 0x7e, 0x0d, 0x20, 0xcd, 0x7e, 0x34, 0x72, 0xd4, 0x81, 0xc0, 0xdc, + 0x8b, 0xbf, 0x00, 0xfd, 0x22, 0x11, 0x9f, 0x95, 0x16, 0x9e, 0x4b, 0x69, 0xe9, 0x8a, 0xf1, 0x82, + 0x15, 0xd0, 0x9c, 0x0b, 0x15, 0x70, 0xfd, 0xf3, 0x4f, 0xc2, 0x7b, 0xfd, 0x26, 0x90, 0xa2, 0xce, + 0x9b, 0x22, 0x47, 0x83, 0x4c, 0xbc, 0x17, 0x39, 0x7c, 0xb3, 0x08, 0xdc, 0x5e, 0x26, 0x58, 0x37, + 0xb0, 0xfb, 0x91, 0x95, 0x02, 0x33, 0xf6, 0x3d, 0xb2, 0x78, 0x1f, 0x4f, 0x01, 0x9a, 0x0e, 0x17, + 0x2a, 0x46, 0x52, 0x60, 0x18, 0xc2, 0xd3, 0x1d, 0x87, 0x14, 0x67, 0x1c, 0x1e, 0x69, 0xdc, 0xed, + 0x8c, 0x87, 0xae, 0x7c, 0xb1, 0x02, 0x4f, 0x88, 0xad, 0x4c, 0x04, 0x5b, 0x6b, 0x0c, 0x5d, 0x19, + 0x5c, 0x28, 0x55, 0x0b, 0xc0, 0x66, 0x4c, 0x57, 0xe2, 0x0d, 0xa0, 0x4b, 0x17, 0xd4, 0x77, 0x3d, + 0xff, 0x41, 0xca, 0x17, 0x72, 0xe4, 0x48, 0x41, 0x46, 0xc8, 0x56, 0xe8, 0xe9, 0x07, 0x21, 0x4f, + 0x8f, 0x41, 0x74, 0x85, 0x62, 0x8e, 0x1e, 0x5f, 0x10, 0x4a, 0x65, 0xcc, 0x03, 0x0f, 0x65, 0x76, + 0xe2, 0x42, 0xc4, 0x25, 0x82, 0x43, 0xd2, 0xb7, 0x96, 0xbd, 0x38, 0xc3, 0x9c, 0x8f, 0x03, 0x92, + 0x23, 0xf8, 0xe6, 0x22, 0x24, 0x43, 0x80, 0x6c, 0xbe, 0x07, 0x48, 0x50, 0xb2, 0x3d, 0xba, 0xcf, + 0x2c, 0xa1, 0xfb, 0xcc, 0x7f, 0x01, 0x28, 0x3f, 0x2b, 0x8a, 0x22, 0x64, 0x18, 0x74, 0x96, 0x02, + 0x67, 0xcd, 0x87, 0xce, 0xe8, 0xaf, 0x90, 0xd9, 0x9d, 0xe8, 0xf3, 0xbb, 0x78, 0xe8, 0xdc, 0x7d, + 0x08, 0x3a, 0x1e, 0x70, 0xd6, 0xfe, 0x26, 0x74, 0xc2, 0xe3, 0x5c, 0x8b, 0xa5, 0x82, 0x97, 0xbf, + 0x32, 0xce, 0x93, 0xf7, 0xc6, 0x79, 0xf2, 0x81, 0x71, 0x56, 0xb2, 0x6c, 0xa4, 0xd9, 0x4a, 0x66, + 0xd9, 0x60, 0x4b, 0xa0, 0x17, 0xfd, 0x0e, 0x0f, 0x5c, 0xe0, 0x16, 0xcc, 0x49, 0x3b, 0xb4, 0x8c, + 0xd0, 0xa3, 0xf2, 0x02, 0xae, 0x26, 0xd7, 0x07, 0xdb, 0x02, 0x51, 0x90, 0x83, 0xb5, 0x84, 0x94, + 0x22, 0x65, 0x42, 0xcb, 0xca, 0xda, 0x6f, 0x01, 0xe8, 0xfa, 0x3d, 0x7e, 0x73, 0xdd, 0x6b, 0xbd, + 0x07, 0x22, 0xb2, 0x40, 0xac, 0xe4, 0x38, 0xbf, 0xb9, 0x40, 0x44, 0x51, 0xdf, 0xa3, 0xa3, 0x5c, + 0x0b, 0xad, 0x9e, 0xbf, 0x33, 0xca, 0x83, 0xff, 0x15, 0x46, 0xd9, 0xfa, 0xbb, 0xa3, 0xdc, 0xfe, + 0x9f, 0x79, 0x94, 0x51, 0x7a, 0x1f, 0xaf, 0xa2, 0xf6, 0x7b, 0xb4, 0x59, 0x0b, 0xd8, 0x4b, 0x43, + 0xd5, 0xc3, 0x14, 0x3f, 0xee, 0x6b, 0x2d, 0x14, 0x65, 0xd6, 0x3e, 0x0a, 0x95, 0xfb, 0x77, 0xd6, + 0x81, 0x7b, 0x04, 0xc9, 0xda, 0x5f, 0x83, 0xc9, 0x22, 0x48, 0xd6, 0xfe, 0x0a, 0xe6, 0xf1, 0x40, + 0xc6, 0x32, 0x50, 0xac, 0x51, 0x58, 0x40, 0x0e, 0x74, 0xc2, 0x5b, 0x90, 0x24, 0xdf, 0x1d, 0x7e, + 0x23, 0x96, 0x03, 0xf2, 0x62, 0x20, 0xad, 0x99, 0x88, 0x7c, 0x29, 0x32, 0xa0, 0xd8, 0x71, 0xaf, + 0xfd, 0x03, 0x82, 0xdf, 0x02, 0x11, 0x10, 0x57, 0xf2, 0x48, 0x0d, 0x90, 0x16, 0xc8, 0xf1, 0x5f, + 0xad, 0x9d, 0x84, 0x88, 0x52, 0x05, 0xfc, 0x27, 0x4a, 0x5f, 0x05, 0x72, 0xbd, 0x4b, 0x5d, 0xbc, + 0x56, 0x3b, 0x71, 0x2b, 0xea, 0xba, 0x6f, 0x72, 0x0c, 0x8b, 0x63, 0xab, 0x6a, 0x56, 0x58, 0xcd, + 0x6b, 0xac, 0xea, 0x0b, 0x36, 0xc2, 0x65, 0x95, 0x7b, 0x45, 0x96, 0x36, 0xb0, 0x16, 0x6d, 0xa1, + 0x5d, 0x0e, 0xf5, 0xfd, 0x51, 0xd5, 0x75, 0x73, 0xbc, 0xb2, 0x01, 0x52, 0x62, 0x33, 0xb4, 0xd2, + 0xaf, 0x1a, 0x02, 0xa8, 0x4f, 0x7c, 0x03, 0xf7, 0x8a, 0x3d, 0x10, 0x08, 0xd5, 0xac, 0x80, 0x91, + 0x57, 0xec, 0xe3, 0xc3, 0xc0, 0xff, 0xf8, 0x56, 0x68, 0x03, 0x2b, 0xea, 0xef, 0xc6, 0x5b, 0x4f, + 0xa0, 0x76, 0x01, 0x7d, 0xf9, 0xa3, 0xe3, 0xc8, 0x64, 0x22, 0x48, 0xde, 0xd6, 0xa1, 0xd2, 0x55, + 0x43, 0xe0, 0xd0, 0x40, 0x25, 0x86, 0x77, 0xc7, 0x00, 0x32, 0x28, 0x3f, 0x86, 0x4b, 0x0d, 0xf4, + 0x85, 0x15, 0x43, 0xc8, 0x2c, 0x1f, 0x42, 0x5c, 0xef, 0x43, 0x75, 0x6f, 0xc3, 0x04, 0x59, 0x51, + 0x77, 0x06, 0xeb, 0x5e, 0xfb, 0x18, 0x91, 0x62, 0xcd, 0xed, 0x32, 0x57, 0xf7, 0xce, 0x54, 0x31, + 0x56, 0x03, 0x86, 0x14, 0xf8, 0x28, 0x6e, 0x33, 0x65, 0x84, 0x0c, 0x57, 0xff, 0x81, 0xad, 0xaa, + 0xc6, 0xaa, 0xce, 0xd3, 0x02, 0x1f, 0xa4, 0x50, 0xdb, 0xe8, 0xf0, 0x53, 0x57, 0x31, 0x3a, 0xe6, + 0xe0, 0x43, 0xf2, 0xb0, 0x6b, 0x0a, 0x44, 0x85, 0x46, 0x59, 0x58, 0x36, 0xc9, 0xbc, 0x24, 0x1a, + 0x86, 0xdc, 0xc3, 0xfe, 0x11, 0x8d, 0x42, 0xb6, 0x86, 0xb6, 0xa5, 0xab, 0x4b, 0x0e, 0x23, 0xae, + 0x67, 0xd1, 0x4c, 0x0b, 0x70, 0xbe, 0x5e, 0xc2, 0x78, 0xdb, 0x8e, 0x2e, 0x86, 0xcd, 0x27, 0x90, + 0x92, 0x11, 0x39, 0x9b, 0x9d, 0x30, 0x99, 0x38, 0xf0, 0xca, 0x2b, 0xe4, 0x74, 0xf3, 0xb6, 0xa9, + 0x9b, 0x2e, 0x59, 0x22, 0xf0, 0xa6, 0x9c, 0x75, 0x9b, 0xf0, 0x48, 0xf2, 0xd8, 0x0b, 0x1e, 0x5b, + 0xc1, 0xe3, 0x18, 0x1f, 0x37, 0xb3, 0x81, 0x19, 0x61, 0x2d, 0xd2, 0x6a, 0x36, 0xb6, 0xd5, 0xb8, + 0x46, 0xb3, 0xe1, 0x46, 0xd7, 0xde, 0x6d, 0x35, 0x17, 0x6f, 0x29, 0x82, 0x46, 0x73, 0xc1, 0xe2, + 0xf0, 0x5e, 0xab, 0xb9, 0x8f, 0x0c, 0x75, 0x8d, 0x6b, 0x35, 0xbf, 0x68, 0x32, 0x59, 0x58, 0xdf, + 0x44, 0xaf, 0x23, 0xa7, 0xd4, 0xe0, 0x12, 0x2c, 0x6f, 0x54, 0x83, 0x56, 0x27, 0xe3, 0x38, 0x43, + 0x09, 0x8b, 0xa4, 0xc9, 0x9b, 0x7b, 0x7a, 0x3a, 0x15, 0x6e, 0x42, 0x86, 0xac, 0x90, 0x56, 0x08, + 0x95, 0xb5, 0xbd, 0xe5, 0x1b, 0x37, 0xb5, 0xe2, 0xc4, 0x82, 0x17, 0x75, 0xda, 0x31, 0xc7, 0x06, + 0xc9, 0xbc, 0x87, 0x9b, 0x5d, 0x28, 0x1b, 0xe0, 0x96, 0x95, 0x77, 0xb7, 0x53, 0x5d, 0x34, 0x61, + 0x96, 0x83, 0x56, 0xa8, 0x4c, 0x74, 0xd5, 0xe8, 0xb9, 0xfd, 0xba, 0x58, 0x8e, 0x50, 0x10, 0xb6, + 0x63, 0x74, 0x43, 0xd8, 0xa4, 0x67, 0xc4, 0xb8, 0xee, 0x12, 0x45, 0x5e, 0x9d, 0x30, 0x4b, 0x5c, + 0xc8, 0x20, 0x26, 0x78, 0xe7, 0xeb, 0xe8, 0x50, 0xf2, 0x15, 0x66, 0x7b, 0x7c, 0x0f, 0x98, 0x14, + 0x94, 0xe8, 0x45, 0x80, 0x7c, 0xe5, 0x43, 0x10, 0x63, 0x3d, 0x20, 0x10, 0x6b, 0xe5, 0x29, 0xc4, + 0x88, 0xe8, 0x23, 0x40, 0x35, 0xaa, 0xeb, 0x06, 0xd2, 0xc6, 0x9a, 0x57, 0xf9, 0x38, 0xac, 0x6b, + 0x84, 0x56, 0x7e, 0x1a, 0x9c, 0x4c, 0xe8, 0xc2, 0x74, 0xf7, 0x21, 0xcf, 0x83, 0x7b, 0x8d, 0xdb, + 0x40, 0xae, 0x8b, 0x4d, 0x12, 0xd7, 0x34, 0x90, 0xc5, 0xbe, 0xd2, 0x40, 0xa7, 0x44, 0x0c, 0x91, + 0x45, 0xe6, 0x0d, 0x41, 0x16, 0x66, 0xd3, 0x20, 0x5b, 0xda, 0x4b, 0x73, 0x2c, 0x12, 0x48, 0x10, + 0xeb, 0x94, 0x9f, 0xb7, 0x98, 0x6a, 0x30, 0xcb, 0x16, 0x85, 0x6d, 0xb9, 0xeb, 0x91, 0x49, 0x14, + 0x5c, 0x7e, 0xcc, 0x55, 0xcf, 0x3e, 0x99, 0xa5, 0x39, 0xd7, 0xa2, 0x1c, 0xc4, 0xeb, 0x86, 0x8f, + 0x0c, 0x7c, 0x09, 0x03, 0x06, 0xb7, 0x89, 0xc9, 0xa5, 0x7d, 0x88, 0x27, 0x1f, 0xd9, 0x74, 0x93, + 0x96, 0xf8, 0x9f, 0x71, 0x58, 0xc1, 0x7b, 0xc9, 0x2e, 0x29, 0xf0, 0x89, 0x9d, 0x76, 0xa1, 0x22, + 0xce, 0x20, 0xe5, 0x58, 0x8a, 0xe1, 0x57, 0xe7, 0xb9, 0x7b, 0xc0, 0x07, 0xb6, 0x7b, 0x92, 0x4a, + 0xa5, 0x80, 0x56, 0x30, 0x13, 0x27, 0x7f, 0x91, 0x3e, 0x2c, 0x93, 0xcd, 0xa9, 0xf2, 0x1d, 0x8c, + 0x8d, 0x85, 0x32, 0x7c, 0xc7, 0x1e, 0xd6, 0x9d, 0x2c, 0x11, 0x5d, 0xe9, 0xb4, 0xc3, 0x90, 0xce, + 0x6c, 0x76, 0xd3, 0xfa, 0x84, 0x01, 0x33, 0xa9, 0x2e, 0xa5, 0x1e, 0x56, 0xed, 0xbe, 0xc6, 0x53, + 0xd2, 0x1a, 0x4f, 0x4a, 0xbf, 0x41, 0x49, 0xd4, 0x2d, 0x67, 0x05, 0x21, 0xf9, 0x19, 0xfe, 0x6b, + 0xe9, 0x88, 0x5b, 0x74, 0x7b, 0x47, 0x9d, 0x84, 0x48, 0x7d, 0x3a, 0x1c, 0x51, 0x4a, 0x91, 0x22, + 0x78, 0x35, 0x5d, 0x8a, 0x1a, 0xad, 0x13, 0x22, 0x06, 0xf5, 0xc2, 0x1e, 0xb3, 0x25, 0x32, 0xec, + 0xd9, 0xe6, 0x6d, 0x11, 0x78, 0x24, 0x19, 0xa5, 0x48, 0x36, 0x9e, 0x7f, 0x90, 0x20, 0xf7, 0x1f, + 0xfe, 0x87, 0x93, 0xa2, 0xbf, 0x04, 0xb0, 0xb0, 0x81, 0x21, 0x82, 0x63, 0x90, 0xf3, 0xfa, 0x42, + 0xdf, 0x83, 0x01, 0x05, 0x79, 0x60, 0x26, 0x05, 0x0b, 0x1c, 0x75, 0xc6, 0x20, 0xee, 0x9b, 0x04, + 0x6d, 0xd9, 0xfd, 0x7c, 0xa3, 0x5c, 0x0b, 0x33, 0x2a, 0x92, 0xa7, 0x65, 0x4e, 0xd8, 0xa2, 0xd6, + 0xd5, 0x41, 0x47, 0xf4, 0xb3, 0x86, 0xb4, 0x44, 0xda, 0xc0, 0xfe, 0xc4, 0xa3, 0x03, 0x06, 0x03, + 0xbe, 0x2d, 0x74, 0xb6, 0xc0, 0x25, 0xcd, 0x1b, 0xb7, 0x37, 0x60, 0x06, 0xf6, 0xa0, 0x9b, 0xd9, + 0x5d, 0x51, 0x88, 0xef, 0x64, 0xb9, 0x52, 0xc8, 0x2d, 0xed, 0xe2, 0x1a, 0xdf, 0x47, 0x92, 0x93, + 0xd7, 0xec, 0x7e, 0xbb, 0x83, 0x6b, 0xd1, 0x1e, 0x06, 0x1d, 0xcc, 0x2d, 0xed, 0x60, 0xa5, 0x94, + 0x0f, 0x60, 0xb8, 0xb6, 0x0a, 0x88, 0x24, 0xe7, 0x07, 0x3a, 0xb8, 0xf6, 0x71, 0x10, 0x06, 0x1d, + 0xbc, 0x33, 0xf5, 0xf8, 0x1e, 0xc2, 0x54, 0xa9, 0x94, 0xf3, 0x85, 0x0f, 0xa1, 0x99, 0x64, 0x5c, + 0xd9, 0xc3, 0xb5, 0xdf, 0x45, 0x72, 0xd0, 0xc3, 0x7d, 0x5b, 0x7d, 0x5d, 0x4a, 0x8b, 0xd0, 0x72, + 0xf1, 0xa3, 0x5d, 0x2c, 0xfe, 0x63, 0x74, 0x18, 0x3f, 0xd5, 0x02, 0xe9, 0x97, 0xbe, 0xbf, 0xbb, + 0x51, 0x15, 0xcf, 0xa4, 0x42, 0x82, 0x06, 0x0c, 0x5e, 0x7d, 0xf3, 0x37, 0xb0, 0xf2, 0xb9, 0x22, + 0xb7, 0x81, 0xf5, 0x61, 0x3b, 0x4e, 0xd3, 0x52, 0x51, 0xeb, 0x8f, 0xb1, 0x70, 0x71, 0xc6, 0x0c, + 0x92, 0xe9, 0xe3, 0xbb, 0x5a, 0xff, 0xa8, 0x71, 0x83, 0x6d, 0x6a, 0xad, 0xbd, 0xb7, 0xab, 0x45, + 0x10, 0x14, 0x8c, 0x8b, 0x2c, 0x8e, 0x01, 0xd4, 0xb9, 0xb8, 0x90, 0x40, 0xbe, 0x6c, 0xc9, 0x74, + 0x70, 0x58, 0x51, 0x0e, 0xea, 0x6f, 0x8f, 0x90, 0x6a, 0xb2, 0xb1, 0x78, 0x5b, 0x5b, 0x8e, 0xb8, + 0x0f, 0xe0, 0x8d, 0x74, 0xcd, 0xf1, 0xf0, 0x56, 0xc8, 0x54, 0xa8, 0x93, 0xc1, 0xef, 0x19, 0xa0, + 0xf0, 0xbe, 0x53, 0xf4, 0x03, 0x9f, 0xbe, 0x87, 0x3b, 0x3f, 0xe3, 0xff, 0x0a, 0xf8, 0x8b, 0xc1, + 0x56, 0x14, 0xa7, 0xd9, 0x00, 0x7f, 0x9a, 0x37, 0xb4, 0xd5, 0x38, 0xcc, 0x45, 0x70, 0x28, 0x10, + 0x41, 0xe0, 0x1d, 0x44, 0x86, 0x5c, 0x14, 0x7e, 0x73, 0x8f, 0x6c, 0x27, 0x1b, 0xa7, 0x05, 0xf1, + 0x96, 0xd0, 0xa1, 0xe3, 0x9a, 0x03, 0xa2, 0x72, 0xae, 0xfd, 0x1e, 0x4a, 0x62, 0x37, 0x49, 0x7e, + 0xcf, 0x4a, 0xfa, 0xc1, 0x5d, 0x62, 0x84, 0xe8, 0xda, 0x47, 0x10, 0x92, 0x13, 0x37, 0xe9, 0x78, + 0x84, 0xec, 0x6a, 0x3c, 0xe4, 0xa3, 0xe6, 0x65, 0x0e, 0x11, 0xab, 0xf1, 0xe0, 0x39, 0x32, 0xfc, + 0x26, 0x6f, 0xdb, 0xc9, 0xbd, 0x37, 0x39, 0x18, 0x22, 0x72, 0xff, 0xcc, 0xd4, 0x28, 0xfd, 0xff, + 0x3a, 0x31, 0xf2, 0x30, 0x31, 0x18, 0x22, 0x72, 0xab, 0x11, 0x51, 0xf8, 0xcb, 0x13, 0x22, 0xa3, + 0x96, 0xff, 0xd2, 0x84, 0xc8, 0x7f, 0x6c, 0x42, 0xe4, 0xff, 0xb7, 0x98, 0x10, 0x05, 0x7f, 0x42, + 0xe4, 0x17, 0xc4, 0xf3, 0xa8, 0x38, 0x4e, 0x4d, 0x00, 0x4d, 0xb5, 0x47, 0xee, 0x49, 0x7f, 0x47, + 0x27, 0x64, 0x27, 0x56, 0xa2, 0x1a, 0x40, 0x54, 0xe0, 0xa0, 0x67, 0x62, 0x44, 0x5e, 0x07, 0x6c, + 0x99, 0xa4, 0xa2, 0x28, 0x35, 0xb0, 0x78, 0x37, 0xbc, 0xf7, 0x5c, 0xc4, 0xbe, 0xc2, 0x0c, 0x20, + 0xb6, 0x03, 0x2f, 0xdc, 0x2a, 0x66, 0x43, 0x8f, 0xc9, 0x0a, 0x76, 0xad, 0x02, 0xf6, 0x40, 0x23, + 0xa3, 0xfd, 0x5f, 0x30, 0xa7, 0xac, 0x7d, 0xb3, 0x36, 0x6f, 0x82, 0x03, 0x4b, 0xfc, 0x14, 0x75, + 0x63, 0x4c, 0x45, 0x14, 0x99, 0xf4, 0xd8, 0x4b, 0x80, 0x62, 0x82, 0xf4, 0x52, 0x31, 0x55, 0x24, + 0x62, 0x11, 0x6e, 0x7c, 0x67, 0x52, 0x59, 0x1f, 0xd9, 0x99, 0xd4, 0x06, 0xd0, 0xa6, 0xd1, 0x72, + 0xac, 0x1a, 0xf3, 0x08, 0x8a, 0x8c, 0xf2, 0xd2, 0xc6, 0x3e, 0x2e, 0x81, 0x6d, 0xb0, 0xe1, 0x6f, + 0xbd, 0xea, 0xe2, 0x0a, 0x9b, 0x1a, 0xe8, 0xcc, 0xac, 0xa2, 0xd5, 0x4a, 0x36, 0x41, 0x81, 0xe5, + 0x84, 0xb5, 0xec, 0x77, 0x95, 0xec, 0xb5, 0x25, 0xf6, 0x1a, 0x82, 0x6e, 0x50, 0x59, 0x97, 0x18, + 0x6b, 0xd8, 0xe7, 0x98, 0x99, 0xcb, 0xeb, 0xd8, 0x1f, 0x53, 0xb1, 0xd7, 0x3e, 0x68, 0xab, 0x59, + 0x30, 0xd5, 0x90, 0x4e, 0x44, 0xf4, 0x62, 0x26, 0xd2, 0x87, 0x0d, 0x30, 0x14, 0x7c, 0x48, 0x35, + 0x01, 0xf9, 0x2e, 0x63, 0x54, 0x16, 0x25, 0xe1, 0xb5, 0xa5, 0x34, 0xbc, 0xd4, 0x07, 0x89, 0x5c, + 0x0c, 0x62, 0xb2, 0x59, 0xc9, 0xca, 0x44, 0x88, 0x1b, 0xfd, 0xa6, 0x35, 0xe3, 0x85, 0x37, 0x1d, + 0x9a, 0x96, 0x6a, 0xdc, 0x28, 0xad, 0xc4, 0x72, 0x97, 0x36, 0x66, 0xca, 0x8b, 0x77, 0x69, 0xa3, + 0x2e, 0x4e, 0xf1, 0xce, 0x74, 0x0b, 0x8d, 0xae, 0x2d, 0xb4, 0x9a, 0xfd, 0x80, 0x23, 0xdd, 0x62, + 0xa3, 0xcc, 0x90, 0xb4, 0xf6, 0xc1, 0x66, 0x17, 0x5a, 0xcd, 0x2d, 0x75, 0x94, 0xcc, 0x17, 0x5a, + 0x2b, 0x1c, 0x42, 0xfd, 0xc9, 0xfe, 0x17, 0x47, 0x9b, 0x5f, 0x36, 0xda, 0x4c, 0xa1, 0xbd, 0xbc, + 0x59, 0x46, 0x3e, 0x6b, 0xab, 0xdd, 0x06, 0x59, 0x1c, 0xe9, 0xf0, 0x26, 0x0d, 0x75, 0x28, 0x56, + 0xd0, 0x7c, 0x13, 0xb6, 0x37, 0xd9, 0x7b, 0x18, 0x31, 0xfc, 0x06, 0x3f, 0xe1, 0xe1, 0x1f, 0x69, + 0xb1, 0x98, 0x1f, 0xa9, 0x61, 0x95, 0xd7, 0x67, 0xa4, 0x0c, 0xfa, 0xd4, 0xfb, 0x13, 0x82, 0x9c, + 0x97, 0x59, 0xc1, 0x60, 0xc9, 0xde, 0x80, 0xe9, 0xa8, 0x1f, 0x75, 0x65, 0x15, 0xc8, 0x09, 0x6c, + 0x0a, 0xaf, 0x6c, 0x59, 0x61, 0xfe, 0xc9, 0x01, 0x3c, 0xfc, 0x4e, 0x0c, 0x7a, 0xd4, 0xc8, 0x3f, + 0xe8, 0x79, 0xe5, 0xc7, 0x9a, 0x28, 0x28, 0xba, 0xcb, 0x9c, 0xfb, 0x50, 0x01, 0xae, 0x92, 0x90, + 0xc8, 0x69, 0xcb, 0xe8, 0xd5, 0x5a, 0x8a, 0xa3, 0x96, 0x0a, 0xb2, 0x76, 0xb7, 0x7d, 0x71, 0x3d, + 0xce, 0x9c, 0x1c, 0xf4, 0x4c, 0xbc, 0x6f, 0xf3, 0xbc, 0x79, 0xdb, 0xdf, 0xbb, 0xed, 0xc1, 0xd3, + 0x36, 0xb9, 0x7f, 0x73, 0x7f, 0xa7, 0xf1, 0x08, 0x3f, 0x3b, 0xc5, 0xfd, 0x61, 0xb7, 0x88, 0x09, + 0x8d, 0x87, 0xf3, 0xe6, 0x75, 0xe6, 0xa8, 0x61, 0x3b, 0x85, 0x76, 0xe9, 0x0a, 0x13, 0xae, 0x8d, + 0xab, 0xdb, 0xec, 0x36, 0xe4, 0x99, 0x3c, 0x8f, 0x47, 0xe5, 0xc7, 0xab, 0x5b, 0x4c, 0x3c, 0x6e, + 0xef, 0xf5, 0x9f, 0xda, 0xe3, 0x46, 0x63, 0xd7, 0x39, 0x83, 0xd7, 0x8d, 0xdd, 0x46, 0xbb, 0x33, + 0x7a, 0x3d, 0xc0, 0x02, 0xdb, 0xad, 0xe6, 0xed, 0xf5, 0xf6, 0xdd, 0x4e, 0xff, 0x46, 0x7f, 0xac, + 0xb4, 0x76, 0xcd, 0xc6, 0x78, 0xf7, 0xec, 0xfc, 0x7e, 0xc3, 0xa8, 0x18, 0xe3, 0x1d, 0xcd, 0x9a, + 0xba, 0x57, 0xe7, 0x85, 0xa7, 0xb2, 0xdb, 0xb2, 0x6f, 0x0e, 0x07, 0xbb, 0x83, 0xfd, 0x82, 0x79, + 0xf9, 0x36, 0xd5, 0x3b, 0xe3, 0xeb, 0x57, 0x2b, 0xdb, 0x6c, 0x76, 0x8c, 0xbb, 0xf4, 0xf9, 0xf0, + 0x69, 0xf8, 0xf6, 0xaa, 0xda, 0x8d, 0xed, 0xe9, 0xe4, 0xe1, 0xcd, 0xd8, 0x1e, 0xe7, 0xb5, 0xde, + 0x8b, 0xba, 0xbf, 0xd7, 0x7d, 0x98, 0xde, 0x0e, 0xfb, 0x27, 0xe9, 0xe9, 0xfe, 0x59, 0x66, 0x67, + 0x72, 0xdc, 0x9d, 0xbe, 0x3e, 0x3c, 0xed, 0x5d, 0xb4, 0x4b, 0xe9, 0xa6, 0x5d, 0x49, 0xb7, 0xba, + 0x1b, 0xc3, 0xa3, 0x9d, 0xe2, 0xf9, 0xb8, 0xb3, 0x61, 0xda, 0x67, 0xa3, 0xc6, 0x25, 0x19, 0xcb, + 0x9e, 0xbe, 0x7f, 0xf3, 0xd2, 0x1c, 0x5e, 0x0d, 0x76, 0x76, 0x44, 0xb4, 0xd8, 0x46, 0x5d, 0xa5, + 0x46, 0x61, 0xce, 0x15, 0xda, 0x21, 0x5d, 0x98, 0x01, 0x88, 0x60, 0x76, 0xe4, 0x82, 0xa7, 0x1d, + 0x5b, 0x7d, 0x1d, 0xaa, 0x8e, 0x7b, 0xec, 0x98, 0x06, 0x5d, 0x3f, 0xbb, 0x40, 0xd7, 0xfd, 0xa5, + 0xf3, 0x68, 0x49, 0x2d, 0x11, 0x0a, 0x3c, 0x32, 0x80, 0x41, 0x1a, 0x6d, 0x55, 0x40, 0x7b, 0xe7, + 0x6f, 0xd6, 0xe5, 0x79, 0x17, 0xe3, 0xec, 0x4c, 0x88, 0x69, 0x2a, 0x74, 0x89, 0xb2, 0xf8, 0x1f, + 0x8e, 0xaa, 0xe3, 0xce, 0xeb, 0xe6, 0x2d, 0x49, 0x21, 0xae, 0xfe, 0x31, 0x9e, 0xc2, 0x71, 0x75, + 0x13, 0x89, 0x01, 0x67, 0x6b, 0x58, 0x68, 0x68, 0x1b, 0x5d, 0x22, 0x2e, 0xd0, 0x71, 0xb7, 0x4c, + 0xd3, 0x8d, 0x54, 0xea, 0x6f, 0x03, 0x10, 0xa0, 0xf2, 0x72, 0x6f, 0x5f, 0xdc, 0x3c, 0x53, 0x3a, + 0xaa, 0x30, 0xd6, 0xdc, 0x3e, 0xa7, 0xea, 0x93, 0x30, 0xe2, 0x38, 0x17, 0x60, 0xf2, 0x96, 0x0b, + 0x35, 0x98, 0x13, 0xfb, 0x7b, 0x99, 0xbd, 0x1a, 0x5b, 0x54, 0xd6, 0x84, 0xd6, 0x54, 0x68, 0x68, + 0x76, 0xdb, 0x34, 0xcd, 0x17, 0x4d, 0x25, 0xa7, 0x2c, 0xdc, 0xbe, 0x2a, 0x7c, 0x53, 0x04, 0xea, + 0x41, 0xdd, 0x77, 0x5d, 0xcb, 0xa9, 0xa6, 0xd3, 0x63, 0x5d, 0xed, 0xa4, 0x40, 0x3a, 0x6c, 0x9b, + 0xa0, 0xb5, 0xab, 0x29, 0xdc, 0x37, 0xb5, 0xd2, 0x20, 0x8d, 0x28, 0x76, 0x4f, 0x05, 0x39, 0xf4, + 0x3f, 0x98, 0x07, 0xec, 0x1a, 0x39, 0xed, 0xd0, 0x36, 0x07, 0x83, 0xa1, 0x41, 0x94, 0x4e, 0x65, + 0x73, 0xd9, 0xf2, 0x65, 0x50, 0x47, 0xf1, 0xbf, 0xcb, 0x03, 0x96, 0x39, 0x96, 0x7f, 0x94, 0x09, + 0x60, 0x08, 0x7f, 0x71, 0x93, 0x74, 0x5b, 0x63, 0x24, 0xe2, 0x2c, 0x50, 0xb5, 0xb1, 0x48, 0xd5, + 0x4c, 0x2c, 0x62, 0xb6, 0x8c, 0x65, 0xb7, 0xcf, 0x88, 0x1f, 0xa5, 0x56, 0x5c, 0xfd, 0xfd, 0xa1, + 0x2c, 0x52, 0x7c, 0xfc, 0x26, 0xf2, 0x20, 0xb8, 0x0d, 0x2e, 0x90, 0x03, 0x7c, 0x48, 0xfa, 0xbd, + 0xe7, 0x73, 0xb1, 0xfe, 0x2e, 0x1e, 0x98, 0xc5, 0x67, 0x7e, 0x94, 0x6b, 0x2b, 0xdc, 0x62, 0xc9, + 0x15, 0x07, 0x8b, 0xa8, 0x8b, 0x20, 0x00, 0xef, 0x7c, 0x0c, 0x6c, 0x04, 0x14, 0xfe, 0xbe, 0xb3, + 0x04, 0xf1, 0xa5, 0x06, 0x66, 0xb1, 0x15, 0x34, 0x83, 0xff, 0xd6, 0x84, 0x1b, 0x53, 0x18, 0x3a, + 0xaa, 0xd0, 0x1a, 0x6a, 0x3a, 0xc6, 0x12, 0x13, 0x54, 0xba, 0x82, 0xcb, 0x24, 0x15, 0xe5, 0x25, + 0x68, 0xda, 0x06, 0x49, 0x98, 0x9d, 0x73, 0x12, 0x60, 0xdd, 0x81, 0x99, 0x49, 0xcb, 0x3e, 0x9a, + 0x43, 0xa1, 0x0d, 0x79, 0x6c, 0xd5, 0x1d, 0xda, 0x86, 0x80, 0xbb, 0xf8, 0x2a, 0x70, 0x73, 0x6d, + 0xa0, 0x92, 0xad, 0x1f, 0xa4, 0x75, 0x3c, 0xc9, 0xe8, 0xe0, 0x09, 0x1f, 0xa4, 0x72, 0xbc, 0xa5, + 0x01, 0x90, 0x41, 0x9e, 0x51, 0x3a, 0xc5, 0x63, 0xb5, 0x40, 0xbc, 0xb6, 0xa1, 0xda, 0x29, 0xe6, + 0x0a, 0xba, 0x80, 0xbc, 0xd0, 0x1e, 0xb5, 0x7b, 0x6a, 0xda, 0x44, 0x32, 0xb9, 0xf0, 0x7a, 0x65, + 0x12, 0x57, 0xa9, 0x15, 0x2c, 0x60, 0xb1, 0x7c, 0x8e, 0x2f, 0x3f, 0x34, 0xf0, 0xac, 0xbe, 0x4d, + 0xa6, 0xbe, 0x5f, 0x0f, 0x37, 0xd9, 0xd7, 0x82, 0xd9, 0xbe, 0xb6, 0x6f, 0xda, 0x30, 0x7c, 0xc7, + 0x15, 0x2c, 0xd5, 0x26, 0x57, 0x3e, 0x43, 0xdb, 0xb2, 0xa0, 0x81, 0xee, 0x80, 0xd7, 0x7e, 0xe0, + 0x24, 0x54, 0xc9, 0xe9, 0x4c, 0x80, 0x03, 0x81, 0x87, 0xd9, 0xed, 0xb2, 0x61, 0x03, 0x58, 0x06, + 0x08, 0x04, 0x07, 0x66, 0x33, 0xb0, 0xc4, 0x71, 0x5f, 0x35, 0xc8, 0x91, 0x40, 0x80, 0x05, 0x80, + 0x19, 0x71, 0x1f, 0x9e, 0xb3, 0x5a, 0x80, 0x76, 0x84, 0x99, 0x18, 0x83, 0xe8, 0x85, 0x61, 0x65, + 0xa4, 0x58, 0xe4, 0xb3, 0xb3, 0x4e, 0x6b, 0x23, 0x00, 0xbd, 0x6e, 0xb6, 0x35, 0x4b, 0x1e, 0xdf, + 0xcb, 0x6c, 0xd7, 0xd7, 0xd9, 0x85, 0x05, 0x57, 0x1e, 0x3b, 0x72, 0x1b, 0x5d, 0xdd, 0x65, 0xa2, + 0xb1, 0x3a, 0x32, 0xe2, 0x0f, 0x34, 0x4c, 0x19, 0x72, 0xd7, 0x3f, 0x65, 0x65, 0xc3, 0x3c, 0x57, + 0xc7, 0xa8, 0x5b, 0xe1, 0x8b, 0xe6, 0x5c, 0x18, 0x24, 0x51, 0x6f, 0xd0, 0xd7, 0xd3, 0x11, 0xfd, + 0x45, 0xd1, 0x80, 0x3e, 0x91, 0x59, 0x85, 0x8f, 0xce, 0xd4, 0x68, 0x37, 0x01, 0x22, 0xde, 0xf3, + 0x4d, 0x4f, 0xbf, 0x56, 0xdb, 0x90, 0x3f, 0x23, 0xf7, 0x15, 0x87, 0x78, 0x15, 0xe1, 0x27, 0x78, + 0xbe, 0x3e, 0xd8, 0x66, 0x4f, 0x3b, 0x3b, 0x37, 0xb4, 0xfa, 0xdd, 0xa1, 0x5d, 0x2f, 0x65, 0xe0, + 0xe1, 0x46, 0xb1, 0xeb, 0xf8, 0x8b, 0xc7, 0x33, 0x48, 0x4d, 0xec, 0x40, 0xfd, 0xfe, 0x04, 0x92, + 0xbd, 0x97, 0x4b, 0x45, 0x87, 0xb7, 0x36, 0xbc, 0xe2, 0xcf, 0xd0, 0xc6, 0x10, 0x3b, 0x54, 0x38, + 0xab, 0xaf, 0x67, 0x65, 0x80, 0x9d, 0x4b, 0x57, 0x0c, 0x52, 0xa4, 0xb7, 0x63, 0x02, 0xd6, 0xe1, + 0x11, 0x58, 0xac, 0xff, 0x68, 0x8e, 0x01, 0xb1, 0xb7, 0x06, 0x60, 0xa3, 0x03, 0xaf, 0xa0, 0xde, + 0xc1, 0x88, 0x31, 0x9d, 0xfe, 0x58, 0x6d, 0xaf, 0x79, 0xfa, 0x44, 0x06, 0x8f, 0xd5, 0x8e, 0xe1, + 0xa3, 0x6b, 0xd7, 0x37, 0xe4, 0x4e, 0xbd, 0x03, 0xda, 0x10, 0x0a, 0xa1, 0x72, 0x77, 0x82, 0x72, + 0x4c, 0xfd, 0xfb, 0x0f, 0xd9, 0xc2, 0x25, 0xb5, 0x3e, 0x9b, 0xcb, 0xaa, 0xf7, 0xa0, 0x7b, 0x0f, + 0xd6, 0x79, 0x5d, 0x14, 0x65, 0xeb, 0x08, 0x2b, 0x3f, 0x1f, 0x0e, 0xf0, 0x67, 0xe0, 0xd6, 0xb3, + 0xf8, 0xf7, 0xb4, 0x49, 0xdf, 0x4e, 0xa1, 0x7e, 0xec, 0x02, 0xfc, 0x20, 0x03, 0xc3, 0x52, 0x9a, + 0x73, 0x86, 0x2d, 0x0f, 0xb0, 0xd9, 0x41, 0x1f, 0xc7, 0xda, 0xed, 0xd5, 0x67, 0x2e, 0x1e, 0x1a, + 0xa9, 0xce, 0x50, 0x5c, 0xaa, 0x82, 0x0c, 0x65, 0xbf, 0x88, 0x72, 0xab, 0x57, 0x9d, 0x0d, 0x6d, + 0xbd, 0x2a, 0x8a, 0x73, 0x59, 0xd1, 0xad, 0xbe, 0x02, 0x9f, 0x7b, 0xd5, 0x54, 0x49, 0x06, 0xe9, + 0xb5, 0x9a, 0x2a, 0xcf, 0x65, 0xea, 0xdf, 0x83, 0x89, 0x90, 0x05, 0x5f, 0x07, 0x56, 0x95, 0x9e, + 0xe3, 0x75, 0xaa, 0x33, 0x7a, 0xf0, 0xa1, 0x0a, 0x88, 0xb2, 0x7b, 0xad, 0x2a, 0x34, 0xf8, 0x3a, + 0x84, 0x14, 0x7c, 0xef, 0xab, 0x13, 0x78, 0x87, 0x71, 0x10, 0x15, 0x14, 0x53, 0xac, 0xf6, 0x00, + 0x98, 0x2f, 0x66, 0xb2, 0xb4, 0x0e, 0x26, 0x00, 0x80, 0x75, 0xd5, 0xa8, 0x12, 0x54, 0xf5, 0xac, + 0xb1, 0xcd, 0x9e, 0xd4, 0x89, 0x85, 0x4f, 0x6d, 0x87, 0x94, 0xea, 0x77, 0x94, 0xa9, 0x83, 0x35, + 0xcd, 0x65, 0xd0, 0x3b, 0xeb, 0xdf, 0xbf, 0x67, 0xe4, 0x6c, 0x56, 0xce, 0x15, 0xe4, 0x82, 0xec, + 0x2f, 0x81, 0x8a, 0xbf, 0x4c, 0xa6, 0x7a, 0xb0, 0xc6, 0x0e, 0x5b, 0x29, 0xcd, 0x4c, 0x4f, 0x06, + 0x8a, 0x93, 0x02, 0xe1, 0x50, 0xfc, 0x21, 0x43, 0x99, 0x9c, 0x9c, 0xdd, 0x90, 0xb3, 0x41, 0x11, + 0x22, 0x3b, 0x3a, 0x29, 0x32, 0xe2, 0xb6, 0x89, 0xdb, 0x89, 0x29, 0x18, 0x59, 0xba, 0x50, 0xc9, + 0xe2, 0xbf, 0x6c, 0x2e, 0x9f, 0x7a, 0xb6, 0x48, 0xd1, 0x5c, 0x26, 0x57, 0x94, 0xf3, 0x72, 0x0e, + 0xab, 0x58, 0xdd, 0xa0, 0x0a, 0xe0, 0x07, 0xf6, 0xc4, 0x9a, 0x84, 0x72, 0x79, 0x28, 0x57, 0xf9, + 0xfd, 0x62, 0x05, 0x28, 0x92, 0xcf, 0xfe, 0x66, 0xb9, 0x8c, 0x5c, 0x02, 0x88, 0xf0, 0x03, 0x84, + 0x55, 0x5e, 0x03, 0x42, 0x5e, 0x18, 0x22, 0x3a, 0xb3, 0xe0, 0x9a, 0x96, 0x1e, 0x2b, 0xba, 0x6e, + 0x29, 0xc0, 0xa1, 0xd2, 0xc5, 0x6c, 0x69, 0xa3, 0x92, 0x63, 0x30, 0x49, 0xc3, 0xc0, 0x21, 0x25, + 0x53, 0xc9, 0x65, 0xf3, 0xa5, 0x7c, 0xae, 0x92, 0x2b, 0xe6, 0x4b, 0xb4, 0x05, 0x80, 0xfc, 0x5f, + 0x6d, 0x21, 0x9b, 0xad, 0x94, 0xcb, 0x99, 0x0c, 0xdf, 0x44, 0xae, 0x98, 0xcb, 0x95, 0x33, 0x1b, + 0x85, 0x72, 0xb6, 0x58, 0x2e, 0x96, 0x32, 0x19, 0xf1, 0xc7, 0x8f, 0x5a, 0x77, 0x68, 0x90, 0x88, + 0x89, 0x42, 0x1f, 0xc4, 0x1d, 0x5d, 0xbd, 0xf3, 0x0f, 0x33, 0xef, 0x10, 0x6b, 0x5b, 0x42, 0x9a, + 0x7d, 0xea, 0xa4, 0x68, 0x80, 0x96, 0x2f, 0x5f, 0x0c, 0x75, 0x2c, 0x00, 0x5b, 0xc2, 0x2b, 0x68, + 0xbc, 0x59, 0xbb, 0x99, 0x57, 0xf3, 0x5f, 0xbe, 0x84, 0xa4, 0xd4, 0xb9, 0x5f, 0xa7, 0x03, 0x7a, + 0x6e, 0x42, 0x95, 0x5d, 0x69, 0x06, 0xf2, 0x12, 0x9b, 0x82, 0x7b, 0xba, 0x8a, 0x3f, 0x29, 0xb2, + 0xf8, 0xa6, 0x80, 0x0b, 0x5c, 0xda, 0x20, 0x4a, 0xda, 0xee, 0x94, 0x64, 0x0c, 0xca, 0xe2, 0xf6, + 0xbc, 0x2a, 0xcd, 0xd8, 0xf2, 0xd5, 0x49, 0x81, 0x68, 0xc5, 0x8a, 0x6e, 0x4f, 0xc9, 0x27, 0x2e, + 0xeb, 0xde, 0xf6, 0xce, 0xf9, 0x92, 0xcc, 0xce, 0xf6, 0x74, 0x07, 0xf9, 0xf3, 0x39, 0x28, 0x66, + 0xa1, 0x42, 0x9a, 0xb3, 0x37, 0xb0, 0xb0, 0x55, 0xbf, 0x58, 0xa6, 0x5e, 0xaf, 0x5f, 0xb4, 0x9e, + 0x31, 0x82, 0xeb, 0x8b, 0x3a, 0x75, 0xe0, 0x4b, 0x8a, 0x7a, 0x17, 0xf1, 0x85, 0x20, 0x03, 0x57, + 0x44, 0xfd, 0xf2, 0x45, 0x34, 0x49, 0x11, 0xb1, 0x5e, 0x47, 0xab, 0x8d, 0xd9, 0xc5, 0xb4, 0x4f, + 0x0d, 0xdb, 0x56, 0xa6, 0x29, 0xcd, 0x21, 0xbf, 0x91, 0x66, 0x81, 0xa3, 0xa8, 0xb6, 0xd6, 0x0e, + 0x6a, 0xf9, 0x04, 0x69, 0xca, 0x79, 0xc2, 0x52, 0x40, 0x98, 0xdc, 0xc7, 0xc3, 0xc2, 0xf0, 0x49, + 0xfa, 0xf2, 0x45, 0x43, 0xa3, 0x10, 0xf0, 0xe1, 0x48, 0xf1, 0xeb, 0x5e, 0x8b, 0xb8, 0x64, 0x86, + 0x3b, 0x4e, 0x0a, 0x1f, 0x19, 0x50, 0x34, 0x65, 0x43, 0xd9, 0x70, 0x4a, 0x6f, 0x21, 0xa5, 0xc5, + 0x55, 0x09, 0x6c, 0xa4, 0xe9, 0xda, 0x41, 0x75, 0x78, 0x06, 0x22, 0x21, 0x26, 0xa1, 0xa2, 0x24, + 0x88, 0xf5, 0xf0, 0xdb, 0x63, 0xbf, 0xad, 0xa4, 0x28, 0x89, 0xa1, 0x72, 0x78, 0x76, 0xcd, 0x2f, + 0x97, 0xca, 0x65, 0x73, 0xa5, 0x3f, 0x43, 0x1d, 0x49, 0xa6, 0x36, 0xb2, 0xc5, 0xdc, 0x9f, 0xa1, + 0xae, 0x24, 0x53, 0x99, 0x8d, 0x5c, 0x28, 0x8d, 0xef, 0x0c, 0xda, 0x76, 0x9b, 0xa7, 0x58, 0x29, + 0x2c, 0x82, 0x82, 0x5b, 0x57, 0x53, 0xc8, 0xaf, 0x21, 0x35, 0x35, 0xde, 0xe2, 0x8a, 0xf8, 0x89, + 0x52, 0x15, 0x98, 0x1a, 0xca, 0xcf, 0x86, 0x2a, 0x7e, 0xaa, 0xd7, 0x7b, 0xe8, 0x35, 0x3e, 0xb0, + 0x86, 0xb0, 0xec, 0x34, 0x91, 0xbe, 0x10, 0x87, 0x68, 0x46, 0x6b, 0x92, 0x90, 0x34, 0x35, 0xba, + 0x9c, 0x01, 0x7e, 0x78, 0x30, 0x7a, 0x95, 0x49, 0x5b, 0xf0, 0x4c, 0xa9, 0x32, 0xf0, 0x86, 0x24, + 0x86, 0x9a, 0xba, 0x07, 0x22, 0x3f, 0xab, 0xec, 0xfc, 0xfa, 0xe5, 0xe7, 0x6e, 0x7b, 0x79, 0x08, + 0x38, 0xfc, 0x3c, 0x9b, 0xd9, 0xdc, 0xc6, 0x16, 0x71, 0x49, 0x15, 0xab, 0xc4, 0x73, 0x57, 0x94, + 0xfc, 0xb5, 0xf5, 0xcb, 0x17, 0x77, 0x33, 0xf3, 0xe5, 0x4b, 0x4c, 0x83, 0xf5, 0x9f, 0x51, 0xff, + 0x4b, 0x7a, 0xa7, 0xb2, 0x2c, 0xfc, 0x31, 0x5b, 0xe8, 0xc6, 0x5c, 0xc8, 0x67, 0xfe, 0x25, 0x23, + 0x26, 0x12, 0x7f, 0xcc, 0xdc, 0xb9, 0xec, 0xff, 0x91, 0xa4, 0x9f, 0x92, 0x54, 0x4d, 0x78, 0xcd, + 0x41, 0x67, 0x61, 0xb5, 0x92, 0xe4, 0xb8, 0xe6, 0x62, 0x0a, 0xff, 0x8c, 0x19, 0x9e, 0x1b, 0x33, + 0x1c, 0x0e, 0x6f, 0x8a, 0x65, 0xe9, 0xd3, 0x9d, 0x6e, 0x0f, 0xf8, 0x45, 0x9b, 0x9e, 0x93, 0x14, + 0x75, 0x14, 0xa5, 0x61, 0x5a, 0xd4, 0x61, 0x1d, 0x4c, 0x91, 0x65, 0x30, 0x85, 0xab, 0xa0, 0x54, + 0x43, 0x69, 0x47, 0xe5, 0x52, 0x49, 0x03, 0xa9, 0x56, 0xaf, 0x06, 0x60, 0x21, 0x1c, 0x43, 0x24, + 0x91, 0x82, 0x44, 0x99, 0xe5, 0x75, 0x49, 0x5e, 0x5c, 0x05, 0xd9, 0xad, 0x95, 0x35, 0x2f, 0x97, + 0xdb, 0xb2, 0x44, 0xd9, 0xdd, 0x12, 0xb3, 0xe4, 0x82, 0x45, 0xff, 0x96, 0x45, 0x7c, 0x82, 0x4e, + 0x92, 0x67, 0x8c, 0xff, 0x47, 0x2f, 0x8e, 0x81, 0x07, 0xc0, 0x80, 0x57, 0xb4, 0xc5, 0x8a, 0xfa, + 0xd1, 0x7b, 0x84, 0x8c, 0x57, 0x84, 0x45, 0x05, 0xe0, 0x33, 0xf7, 0x3b, 0x24, 0x33, 0x09, 0xcc, + 0x01, 0xd9, 0x08, 0xb9, 0x71, 0x9f, 0x07, 0x2e, 0xf9, 0x9c, 0x21, 0xcd, 0x16, 0x43, 0xed, 0xb8, + 0xeb, 0x2d, 0x51, 0x0e, 0xc6, 0x4a, 0x18, 0x37, 0xde, 0xb2, 0x1a, 0xe4, 0x70, 0x7a, 0x16, 0xcd, + 0x41, 0x46, 0x48, 0xd7, 0xe5, 0x2d, 0xda, 0x44, 0x95, 0xb5, 0x08, 0x99, 0x35, 0xdc, 0xb9, 0x47, + 0xb1, 0x4f, 0xd1, 0x9b, 0xae, 0x69, 0x03, 0x4f, 0x47, 0xde, 0x79, 0xe4, 0xaa, 0x83, 0x84, 0x88, + 0xfa, 0xe8, 0xad, 0x06, 0xd0, 0x17, 0xe5, 0xe3, 0xe6, 0xc5, 0x39, 0xe0, 0x0d, 0xef, 0xab, 0xd2, + 0xba, 0xd3, 0x04, 0x54, 0x2b, 0x49, 0xbe, 0x94, 0x02, 0xec, 0xac, 0xe3, 0x7c, 0xf9, 0x42, 0x55, + 0xf6, 0xdb, 0x23, 0x9e, 0x53, 0x7b, 0x7e, 0x88, 0x33, 0xbf, 0x23, 0x54, 0xde, 0x48, 0x81, 0x50, + 0x51, 0xff, 0x14, 0x93, 0x28, 0x07, 0x18, 0x0f, 0xd5, 0xc2, 0x0e, 0xc9, 0xce, 0xc2, 0x48, 0xaf, + 0x2f, 0xa3, 0x86, 0x2d, 0x2a, 0x13, 0x55, 0xd9, 0xf7, 0x65, 0xb5, 0x7a, 0x5b, 0xe0, 0xb3, 0x08, + 0x25, 0x70, 0x5d, 0xa3, 0x09, 0xcb, 0x2a, 0x20, 0x6e, 0xa9, 0x0b, 0x83, 0x03, 0xda, 0x5f, 0x1c, + 0x1c, 0x24, 0xc6, 0xd6, 0xc2, 0xe8, 0x1a, 0x58, 0x93, 0xba, 0x95, 0x08, 0xd1, 0xa9, 0xf8, 0x59, + 0x55, 0x79, 0x7a, 0x68, 0xaf, 0x77, 0x31, 0x91, 0xf8, 0xd1, 0x73, 0x89, 0x39, 0x4c, 0xec, 0x74, + 0x3a, 0xa1, 0xc4, 0x3c, 0x26, 0xb6, 0x5a, 0xad, 0x50, 0x62, 0x01, 0x13, 0x15, 0x45, 0x09, 0x25, + 0x16, 0x31, 0xb1, 0x52, 0xa9, 0x84, 0x12, 0x4b, 0x71, 0x89, 0x65, 0x4c, 0x2c, 0x97, 0xcb, 0xa1, + 0xc4, 0x16, 0x26, 0x16, 0x0a, 0x85, 0x50, 0x62, 0x1b, 0x13, 0xf3, 0xf9, 0x7c, 0x28, 0x11, 0xad, + 0x39, 0x9f, 0xb3, 0xd9, 0x6c, 0x28, 0xb1, 0x83, 0x89, 0xb9, 0x5c, 0x2e, 0x94, 0x68, 0x93, 0x7e, + 0xe6, 0xc2, 0x39, 0x7b, 0x24, 0xa7, 0x12, 0x4e, 0xd4, 0x49, 0x62, 0xa9, 0x1d, 0x4a, 0x34, 0x21, + 0x91, 0x5c, 0xa5, 0x93, 0xcb, 0x14, 0x64, 0x21, 0xf8, 0x93, 0x49, 0x55, 0xa4, 0x50, 0x46, 0xa7, + 0xc5, 0xe0, 0x99, 0x8f, 0x24, 0xf7, 0x59, 0x7a, 0x29, 0x94, 0xee, 0xb6, 0x96, 0x54, 0xcc, 0x2e, + 0x1b, 0x5c, 0x6f, 0x49, 0x52, 0xa4, 0x80, 0xe2, 0x95, 0xc8, 0x6e, 0x64, 0x64, 0x21, 0xf8, 0xb3, + 0xbc, 0x44, 0xff, 0x43, 0x6d, 0x10, 0x27, 0x43, 0x62, 0x5b, 0x95, 0x18, 0x3b, 0xa5, 0xae, 0x42, + 0x68, 0xf5, 0xc5, 0xf8, 0x82, 0x89, 0x4c, 0xaa, 0x0c, 0xf9, 0xaa, 0x51, 0x82, 0x8a, 0x82, 0x9f, + 0x10, 0x14, 0x5d, 0x43, 0x22, 0x04, 0x15, 0xc5, 0x49, 0x3e, 0x0e, 0xa5, 0x85, 0x38, 0xe4, 0x13, + 0x82, 0x2a, 0x16, 0x8b, 0x8b, 0x04, 0x55, 0x2a, 0x95, 0x3e, 0x48, 0x50, 0x51, 0xca, 0x25, 0x04, + 0xd5, 0x6e, 0xb7, 0x17, 0x09, 0x2a, 0x3a, 0x45, 0x3a, 0x71, 0xb3, 0x81, 0x10, 0x94, 0x5a, 0xc8, + 0x2d, 0x12, 0x54, 0x41, 0xcd, 0x2d, 0x12, 0x54, 0xa1, 0xac, 0xc4, 0x13, 0x54, 0x1e, 0x10, 0xe1, + 0xfd, 0x5b, 0x42, 0x4d, 0x00, 0xcc, 0x58, 0x6a, 0x82, 0xf4, 0xe2, 0x12, 0x6a, 0xe2, 0x6b, 0xfd, + 0x08, 0x29, 0x65, 0x72, 0x40, 0x45, 0xfe, 0x9f, 0x0f, 0x90, 0x52, 0x31, 0x2b, 0x0b, 0xde, 0xbf, + 0x8f, 0xd2, 0xd1, 0xd0, 0x80, 0x75, 0x40, 0xe4, 0xf8, 0x14, 0xea, 0x01, 0xdb, 0xbd, 0x40, 0x84, + 0x22, 0x45, 0x5b, 0x3d, 0x6c, 0xb3, 0xde, 0x49, 0xb5, 0x6d, 0x15, 0x98, 0x3f, 0x13, 0x8e, 0x49, + 0x95, 0xa2, 0x54, 0xd3, 0xba, 0x09, 0x27, 0x85, 0x56, 0x7e, 0x55, 0x16, 0x81, 0x47, 0x83, 0xbc, + 0xe0, 0xab, 0x1c, 0xa0, 0x6e, 0x3a, 0xc3, 0x41, 0xca, 0xea, 0x9b, 0xae, 0xe9, 0xa4, 0xb3, 0x95, + 0x5c, 0x26, 0x9d, 0xcd, 0x94, 0x33, 0xc8, 0xc9, 0xa1, 0x05, 0x5c, 0x9e, 0x8d, 0xba, 0xa7, 0x16, + 0xd4, 0xba, 0xa6, 0x9d, 0x20, 0xb6, 0x0c, 0x01, 0xe4, 0x60, 0xd0, 0x1d, 0x7f, 0xfd, 0xfa, 0xfe, + 0x83, 0x66, 0x52, 0xea, 0x20, 0x80, 0xea, 0xdf, 0x33, 0x3f, 0xb6, 0x0c, 0x14, 0xce, 0xf7, 0x87, + 0xba, 0xfe, 0x08, 0x52, 0x4e, 0x42, 0xaa, 0x62, 0xa2, 0x6c, 0xfa, 0x75, 0x24, 0x14, 0x59, 0xff, + 0x9e, 0xfd, 0x01, 0x7f, 0x72, 0x3f, 0x24, 0x59, 0x0b, 0xd2, 0x4d, 0xe8, 0x26, 0x2e, 0x79, 0xe4, + 0x45, 0xc3, 0x4a, 0xc8, 0x93, 0x94, 0xd4, 0xbf, 0xe7, 0x21, 0xa7, 0xb1, 0x59, 0x37, 0x41, 0x41, + 0xf9, 0x56, 0xd7, 0x40, 0xac, 0xa2, 0x83, 0xd1, 0xbf, 0x17, 0x7e, 0x48, 0xf3, 0x39, 0xa8, 0x9c, + 0x9d, 0xce, 0x1e, 0xde, 0x64, 0x88, 0xd6, 0x6e, 0xd5, 0x50, 0xed, 0x04, 0xb1, 0x30, 0x82, 0x7c, + 0x51, 0xdf, 0x64, 0x23, 0xe0, 0x64, 0xef, 0xe8, 0x5a, 0xdd, 0xea, 0x41, 0xc3, 0x44, 0x40, 0x37, + 0x40, 0x8c, 0x4e, 0x18, 0xf5, 0x54, 0x49, 0x92, 0x3d, 0xf5, 0x85, 0x85, 0xb8, 0xa9, 0x1b, 0x7e, + 0x4a, 0x20, 0x5a, 0x1d, 0xa1, 0xe2, 0x55, 0xff, 0x09, 0x9a, 0x3e, 0xc8, 0x57, 0xa4, 0x47, 0x44, + 0xb2, 0xaa, 0x1b, 0x30, 0xf6, 0x79, 0x04, 0x5f, 0xcd, 0x17, 0xcd, 0xd8, 0x69, 0x36, 0x11, 0x69, + 0x80, 0x8b, 0x4f, 0x54, 0xf7, 0xa1, 0x90, 0x73, 0xeb, 0x11, 0x75, 0xe6, 0x46, 0xe9, 0x11, 0x65, + 0x06, 0xad, 0xd9, 0x30, 0x7b, 0x10, 0x7c, 0x31, 0x88, 0xc5, 0xdd, 0x34, 0xc0, 0xac, 0x93, 0xd2, + 0x3a, 0x80, 0x55, 0x58, 0xd5, 0x54, 0x1d, 0xb7, 0x45, 0xa7, 0x78, 0x87, 0x9d, 0x0a, 0x04, 0x03, + 0x49, 0xc1, 0x2e, 0x73, 0x1a, 0x34, 0x7f, 0x4c, 0x21, 0x66, 0xee, 0x04, 0x08, 0x19, 0x5b, 0x04, + 0xff, 0x80, 0x7e, 0x31, 0x49, 0xec, 0x52, 0x55, 0x31, 0x25, 0x4a, 0x49, 0x31, 0xed, 0x40, 0x3f, + 0x53, 0x2c, 0x33, 0x09, 0x47, 0x54, 0x17, 0xf1, 0xa8, 0x03, 0x8c, 0x1e, 0x63, 0xf1, 0x80, 0xb8, + 0xdc, 0xd7, 0xf4, 0x4e, 0xc2, 0x01, 0xa8, 0xfb, 0xc3, 0x33, 0x0d, 0xb4, 0xa3, 0xc2, 0xe2, 0x8b, + 0x4e, 0x92, 0x6a, 0x15, 0x08, 0x27, 0x1a, 0x9e, 0xc4, 0xb2, 0x4d, 0x3c, 0xda, 0xa1, 0x03, 0x74, + 0x89, 0x59, 0x2b, 0x23, 0x27, 0x48, 0xa3, 0xf5, 0x90, 0xb4, 0xd3, 0xf3, 0xa4, 0x1d, 0x48, 0x3d, + 0xb2, 0x40, 0xf8, 0x04, 0x11, 0x95, 0x66, 0x83, 0xf2, 0xa0, 0xc9, 0x25, 0xc4, 0x7d, 0xa8, 0x9f, + 0x44, 0x0a, 0x49, 0x09, 0x97, 0x3a, 0xde, 0xee, 0x27, 0x90, 0x48, 0x69, 0x34, 0xe8, 0xd0, 0xd1, + 0xe5, 0x27, 0x71, 0x99, 0xfc, 0x44, 0x6b, 0x94, 0x49, 0x6d, 0x92, 0xe4, 0x09, 0xa8, 0xf1, 0xad, + 0x07, 0xb2, 0x96, 0x84, 0xf2, 0x2a, 0x92, 0x4b, 0x1d, 0xf4, 0xb9, 0x9e, 0xba, 0xab, 0xaa, 0x16, + 0xbe, 0x51, 0x11, 0x8c, 0x10, 0x14, 0xe2, 0x50, 0x92, 0x89, 0xa9, 0xeb, 0xf2, 0xd6, 0xd5, 0x74, + 0x10, 0xe0, 0x02, 0xc1, 0x22, 0x10, 0xf9, 0x88, 0xbd, 0x65, 0xab, 0xab, 0xba, 0xed, 0x7e, 0x62, + 0x15, 0xf0, 0xfb, 0x18, 0x1c, 0x0f, 0xb2, 0xa6, 0x9e, 0x41, 0xcd, 0x16, 0xe5, 0xd9, 0x40, 0x75, + 0xfb, 0x66, 0xa7, 0x2a, 0x42, 0xdf, 0xc4, 0xb9, 0x84, 0x44, 0x6b, 0x24, 0x80, 0xa4, 0x55, 0xf2, + 0x3d, 0x21, 0x05, 0x29, 0xb3, 0xa8, 0x3a, 0x0a, 0xfd, 0x46, 0xcb, 0x0e, 0x28, 0x96, 0x52, 0x0a, + 0x90, 0x00, 0xed, 0x62, 0x2e, 0xb4, 0x5f, 0x9a, 0x40, 0xc2, 0xba, 0xd9, 0x4b, 0x88, 0xe7, 0xa6, + 0xa0, 0x60, 0x6e, 0x36, 0x93, 0x49, 0xc3, 0x68, 0x12, 0x0d, 0x75, 0x22, 0x25, 0xec, 0xd2, 0xf8, + 0xfa, 0x0e, 0xa1, 0x62, 0xb5, 0x03, 0x1d, 0x85, 0x2a, 0xbb, 0x9a, 0x01, 0x54, 0x31, 0x4d, 0x24, + 0x24, 0xa8, 0x95, 0xb1, 0x23, 0x4e, 0xec, 0xeb, 0xa5, 0x60, 0x4e, 0x40, 0xbe, 0xea, 0xb2, 0x4f, + 0x01, 0x68, 0x80, 0xd4, 0xbe, 0x7c, 0xe1, 0x27, 0x88, 0x88, 0x14, 0xb8, 0x03, 0x04, 0x28, 0xc9, + 0xa1, 0x03, 0x60, 0x32, 0x73, 0xfe, 0x61, 0xdb, 0xc8, 0x98, 0x42, 0xad, 0x75, 0xcb, 0xb1, 0x78, + 0x09, 0x52, 0x3b, 0x52, 0x04, 0x77, 0xd4, 0xc3, 0xef, 0xf0, 0xfe, 0x03, 0x5a, 0x5f, 0xf9, 0x77, + 0xfa, 0x0c, 0x98, 0xbc, 0xa1, 0x16, 0xd8, 0xe0, 0xdb, 0x25, 0x67, 0xaf, 0xa5, 0xa9, 0x61, 0x6b, + 0x88, 0x34, 0x97, 0x71, 0xaf, 0x78, 0x4e, 0xfe, 0x47, 0xa9, 0x81, 0x11, 0x43, 0x27, 0x86, 0x33, + 0x05, 0xd1, 0xe4, 0xa8, 0xbb, 0x93, 0x28, 0xc7, 0x1b, 0x66, 0xe4, 0x4f, 0x59, 0x5f, 0x2b, 0x20, + 0x1c, 0xbe, 0x3d, 0xf2, 0x97, 0x06, 0x8f, 0x2b, 0x65, 0x64, 0xd1, 0xb5, 0x87, 0x2a, 0x4c, 0xb9, + 0x78, 0x28, 0x58, 0xed, 0x81, 0x08, 0xb4, 0x10, 0x0d, 0xd2, 0x53, 0xf3, 0xd8, 0x0e, 0x8c, 0xc2, + 0x9e, 0x36, 0x09, 0x98, 0x4d, 0xbb, 0xa1, 0xeb, 0x89, 0xaf, 0x5c, 0x48, 0x4a, 0xe6, 0x43, 0xf5, + 0xe3, 0xab, 0xe4, 0xb3, 0x7d, 0x07, 0x89, 0xc5, 0x95, 0xe2, 0x18, 0xae, 0x6b, 0x0e, 0xdb, 0x7d, + 0x34, 0x97, 0xa3, 0xa6, 0x44, 0xda, 0xdb, 0x26, 0x1e, 0x53, 0x30, 0x86, 0x65, 0xb9, 0x81, 0x9d, + 0x44, 0xf2, 0x06, 0x4c, 0x25, 0x82, 0x6d, 0xd5, 0x63, 0x95, 0xd4, 0x12, 0x14, 0x78, 0x13, 0xc4, + 0xf4, 0x2d, 0x38, 0xe7, 0x61, 0xab, 0x03, 0x73, 0x04, 0x7c, 0x54, 0x69, 0x63, 0xf0, 0x4b, 0xc8, + 0x4b, 0xed, 0xc7, 0xbf, 0x7e, 0xb9, 0xdf, 0xd5, 0x1f, 0x5c, 0x3e, 0xe8, 0x5f, 0x90, 0x89, 0x63, + 0x6c, 0xcc, 0x3d, 0x41, 0x95, 0xdd, 0x3a, 0x20, 0x63, 0x46, 0x4b, 0x7f, 0xf9, 0xf2, 0xc9, 0x05, + 0xce, 0xa4, 0x35, 0xd1, 0x43, 0x09, 0x38, 0xef, 0x7f, 0xec, 0xc4, 0x9c, 0x2c, 0x71, 0x06, 0xa6, + 0xe9, 0xc2, 0xaa, 0x8f, 0x38, 0x84, 0x0c, 0x8b, 0xa6, 0x30, 0x10, 0x0c, 0x34, 0x51, 0xa6, 0x95, + 0x2c, 0xd0, 0xb6, 0xca, 0x2b, 0xde, 0x18, 0x3f, 0x92, 0x3a, 0x24, 0x78, 0xfd, 0x70, 0x61, 0x76, + 0x53, 0x8a, 0x60, 0xbe, 0x0d, 0xd2, 0x12, 0xab, 0x86, 0xe8, 0x05, 0x43, 0xb4, 0x41, 0xc2, 0x20, + 0x48, 0x77, 0xa8, 0xb0, 0x40, 0x7d, 0x1f, 0xc8, 0xe2, 0x81, 0xf7, 0xd7, 0x1c, 0xde, 0x9c, 0x9d, + 0x92, 0x35, 0x24, 0x0c, 0x12, 0x50, 0x78, 0xc9, 0x05, 0xea, 0xa0, 0xbc, 0x61, 0x27, 0x60, 0x2e, + 0x11, 0x17, 0x09, 0x6f, 0x7e, 0xb0, 0x9d, 0x0a, 0x44, 0x30, 0x6d, 0xde, 0xbf, 0x47, 0x9d, 0x99, + 0x6b, 0xbc, 0xbd, 0x8c, 0x7a, 0x74, 0x52, 0xc5, 0xe1, 0x88, 0xb6, 0x30, 0x97, 0x73, 0x15, 0x98, + 0x4a, 0x32, 0x0c, 0x91, 0x67, 0x56, 0x6a, 0x04, 0x1e, 0x9c, 0x97, 0x86, 0x34, 0x0b, 0x00, 0x24, + 0xee, 0x00, 0x40, 0x54, 0xa6, 0x12, 0x9a, 0x02, 0xd1, 0x38, 0x85, 0xae, 0x02, 0xab, 0x46, 0xe7, + 0x13, 0xe0, 0x22, 0xc3, 0xeb, 0x7a, 0x11, 0x67, 0x0f, 0xb5, 0x5e, 0x54, 0xf3, 0x3e, 0x91, 0xf1, + 0x30, 0x72, 0xb9, 0xce, 0xb2, 0x70, 0x46, 0x4e, 0x82, 0x01, 0x06, 0xf9, 0x6c, 0x3c, 0x4c, 0x96, + 0x0d, 0xdd, 0x5d, 0x3a, 0x74, 0x39, 0xee, 0x13, 0x6b, 0x66, 0x2e, 0x87, 0x48, 0x02, 0xe6, 0xf7, + 0x35, 0x6e, 0x9d, 0x0d, 0x54, 0x66, 0xd7, 0xa3, 0xdd, 0x0e, 0xcc, 0x67, 0x28, 0x09, 0x9e, 0x29, + 0x6e, 0x3f, 0xd5, 0xd5, 0x4d, 0x98, 0x1e, 0x6e, 0xba, 0x5c, 0x2a, 0x20, 0x58, 0x0d, 0x3e, 0x35, + 0xe1, 0xae, 0x93, 0xe4, 0x3f, 0x1d, 0x29, 0x9d, 0x2f, 0xe1, 0x67, 0x3d, 0xfe, 0xf3, 0x3a, 0x7e, + 0xfd, 0xd3, 0x90, 0xd2, 0x25, 0xc8, 0xa3, 0xd4, 0x9d, 0x2d, 0x27, 0x29, 0x0a, 0x62, 0x32, 0x91, + 0xad, 0xc3, 0x33, 0xa8, 0xf7, 0x53, 0x11, 0x37, 0x3e, 0xa6, 0x0e, 0xae, 0x61, 0xb2, 0x20, 0xe2, + 0xed, 0x05, 0xcc, 0x6e, 0xa9, 0x24, 0xeb, 0xc6, 0xaf, 0x5f, 0xce, 0x96, 0xe1, 0x17, 0x30, 0x60, + 0xed, 0x33, 0x87, 0x48, 0x52, 0xf8, 0x03, 0x45, 0x20, 0xb7, 0xfc, 0x09, 0xd6, 0x00, 0x03, 0x40, + 0x09, 0xd9, 0xb1, 0x02, 0x00, 0xc5, 0x66, 0xb1, 0x02, 0xf3, 0xcc, 0xa1, 0x69, 0x7a, 0x92, 0xb8, + 0xfe, 0x61, 0xfa, 0x37, 0xec, 0x0a, 0xda, 0xd6, 0xf0, 0x3b, 0x97, 0x9f, 0xa5, 0x63, 0x8a, 0xbb, + 0x5e, 0xca, 0xfc, 0x89, 0x45, 0x1c, 0x15, 0x95, 0x14, 0x85, 0x33, 0xad, 0x1a, 0xc0, 0x2b, 0xcc, + 0x31, 0xce, 0x23, 0x34, 0x29, 0x8a, 0x9e, 0x5d, 0xf3, 0xe7, 0x37, 0xd7, 0xde, 0xfc, 0xe6, 0x76, + 0xbc, 0x7d, 0xbe, 0x17, 0x75, 0xea, 0x76, 0xc4, 0xcd, 0x3f, 0x66, 0xea, 0xfc, 0x5b, 0xda, 0xed, + 0xf0, 0x9f, 0x46, 0x8a, 0x4e, 0x3f, 0xb9, 0x73, 0x10, 0xf9, 0xd8, 0xe7, 0x34, 0x14, 0xff, 0x19, + 0xc2, 0xce, 0x29, 0xb7, 0xa1, 0x75, 0x99, 0xa0, 0xf8, 0x51, 0xeb, 0x59, 0x9f, 0x57, 0x91, 0xbd, + 0x47, 0xb2, 0x3f, 0x25, 0xb9, 0x20, 0x66, 0x7f, 0xf9, 0xa2, 0x26, 0x93, 0x1e, 0xcc, 0xd4, 0xcd, + 0x5c, 0x91, 0x58, 0x0e, 0xeb, 0xf0, 0x2b, 0xc9, 0x2a, 0x47, 0xb3, 0x78, 0xca, 0xe4, 0x16, 0xaa, + 0xe4, 0xd8, 0x21, 0x50, 0xea, 0x4f, 0x0b, 0x7b, 0xaa, 0x75, 0x7e, 0x4a, 0x34, 0xac, 0x44, 0xed, + 0x13, 0xa9, 0xf9, 0xbb, 0xfb, 0xe3, 0xd7, 0xaf, 0xcc, 0x27, 0xac, 0x1d, 0xdb, 0xd8, 0x0a, 0xb2, + 0x62, 0xd4, 0x58, 0xc8, 0x1c, 0x4c, 0x7d, 0x17, 0x9b, 0xdc, 0x22, 0xe7, 0x5e, 0xca, 0xe5, 0x9a, + 0x70, 0xb4, 0x2b, 0x0c, 0x86, 0x8e, 0x2b, 0xb4, 0x54, 0x01, 0xd2, 0x05, 0x13, 0xc4, 0x7d, 0xd5, + 0x71, 0x52, 0x88, 0xd8, 0xea, 0x8a, 0x5a, 0x7e, 0x7a, 0xe5, 0x71, 0x7b, 0x77, 0x6c, 0x6b, 0x18, + 0x8a, 0x4e, 0xf8, 0x63, 0x66, 0x11, 0x59, 0xd6, 0x95, 0xe6, 0x9f, 0x38, 0x18, 0x59, 0xcc, 0x5a, + 0xcf, 0x86, 0xc1, 0x5c, 0x32, 0x81, 0x46, 0x54, 0x0f, 0x0c, 0x64, 0x0c, 0x5f, 0xbe, 0xd0, 0xa1, + 0xa8, 0x3f, 0x82, 0xa7, 0x14, 0x52, 0x0a, 0x10, 0xbb, 0xff, 0x0a, 0xe8, 0xe7, 0xcd, 0xe7, 0x97, + 0xba, 0x32, 0x45, 0xa7, 0x43, 0xce, 0x7c, 0xee, 0xe7, 0xb5, 0xd8, 0x37, 0xae, 0x36, 0x2f, 0x29, + 0x65, 0x39, 0x5c, 0xf7, 0x14, 0x4b, 0xbb, 0x53, 0x74, 0x4f, 0x5a, 0x27, 0x99, 0x7f, 0xfd, 0xfa, + 0xe4, 0x15, 0x92, 0x98, 0x1d, 0x5d, 0x64, 0x0b, 0x29, 0xdb, 0x53, 0x00, 0x0a, 0xd1, 0x7a, 0x46, + 0x02, 0xf7, 0x17, 0xbd, 0x8c, 0xde, 0x68, 0xdc, 0x14, 0xc8, 0xc4, 0x5b, 0xe4, 0x6f, 0x35, 0xd1, + 0x51, 0xf1, 0x88, 0x33, 0xa4, 0x19, 0xb2, 0xff, 0x68, 0x05, 0x8f, 0xaf, 0x7a, 0xd4, 0xc8, 0xe7, + 0xf2, 0x93, 0xff, 0x55, 0xf7, 0x60, 0xf7, 0x2e, 0xa4, 0x5e, 0xf5, 0x2d, 0xee, 0x19, 0xf7, 0x1a, + 0x03, 0x5a, 0xb2, 0xb6, 0xdb, 0x2f, 0x3e, 0x65, 0x52, 0x0d, 0x12, 0xed, 0x90, 0x35, 0x95, 0x05, + 0x4d, 0x4f, 0x10, 0x63, 0xb2, 0xea, 0x36, 0xbd, 0x1b, 0xb7, 0xae, 0xc9, 0x6e, 0x51, 0x46, 0xae, + 0x90, 0xff, 0x50, 0xb6, 0x51, 0x27, 0x6a, 0x7b, 0xc7, 0x1c, 0x0c, 0x40, 0x7c, 0xc1, 0xb5, 0xc8, + 0x9a, 0xa2, 0xcc, 0xc6, 0x33, 0x63, 0x4b, 0xa3, 0xfb, 0xf1, 0x78, 0xff, 0x55, 0xcb, 0x54, 0x6c, + 0xe0, 0xc2, 0xdc, 0x40, 0x2c, 0x82, 0x73, 0xc2, 0x83, 0x03, 0x4a, 0xc0, 0xed, 0x4a, 0x98, 0x9a, + 0x35, 0xd7, 0x9e, 0xce, 0x12, 0xce, 0x2a, 0xe1, 0x0e, 0x14, 0x04, 0xb6, 0x7b, 0xb3, 0x99, 0xcd, + 0x10, 0x92, 0x40, 0x06, 0xcf, 0x84, 0x5d, 0x69, 0x36, 0xa7, 0x7a, 0xdf, 0x4f, 0xde, 0x13, 0x94, + 0x84, 0x93, 0x6e, 0x8b, 0x40, 0x94, 0xea, 0xd6, 0x57, 0xcf, 0x97, 0x85, 0x8f, 0x16, 0xcb, 0x47, + 0x58, 0x16, 0xb2, 0x78, 0x69, 0x8a, 0xf8, 0xb5, 0xfa, 0x75, 0x89, 0xd3, 0x6a, 0xfc, 0xc9, 0x9e, + 0x70, 0xf8, 0x59, 0x28, 0x3f, 0xdf, 0xfc, 0x59, 0x33, 0x92, 0x30, 0x01, 0x45, 0x74, 0xd8, 0xe8, + 0x2b, 0x23, 0x55, 0x30, 0x4c, 0x36, 0x78, 0x47, 0x98, 0xaa, 0xee, 0x27, 0x98, 0x58, 0x2c, 0x7a, + 0x2a, 0x08, 0xc9, 0xb6, 0x2a, 0x8c, 0x15, 0x07, 0x7d, 0x3f, 0x34, 0xc7, 0x19, 0xaa, 0x44, 0xec, + 0xc6, 0x89, 0x34, 0x05, 0x76, 0xe9, 0x95, 0x82, 0xc5, 0x0c, 0x65, 0x00, 0xa8, 0x55, 0xf4, 0x5c, + 0x49, 0x44, 0x99, 0xb6, 0x71, 0x08, 0x9c, 0x07, 0x83, 0x70, 0xb3, 0xaa, 0x34, 0x47, 0x40, 0xa1, + 0x60, 0x68, 0xb1, 0xa2, 0xe4, 0x94, 0x1b, 0x0a, 0x4a, 0x0a, 0x26, 0x8c, 0x34, 0x73, 0xe8, 0x50, + 0x47, 0x20, 0x5d, 0x57, 0xa8, 0x99, 0x7f, 0x04, 0xcb, 0x25, 0x46, 0x11, 0x26, 0x4e, 0x26, 0xff, + 0xcd, 0x10, 0x04, 0x21, 0xd1, 0x54, 0x46, 0xd8, 0x03, 0xc5, 0xab, 0x63, 0xac, 0xe9, 0x3a, 0x39, + 0x21, 0x20, 0xa0, 0xe7, 0x30, 0xf1, 0xa2, 0x32, 0xd9, 0x94, 0x57, 0x89, 0xcb, 0x05, 0x6d, 0x52, + 0x82, 0x71, 0x1d, 0xb2, 0x4e, 0x28, 0x5e, 0x37, 0x4c, 0xea, 0x94, 0x81, 0x06, 0x6b, 0xe1, 0xc5, + 0x30, 0xc7, 0xc0, 0x2e, 0x4d, 0xb3, 0x83, 0xbe, 0x29, 0x2e, 0xa8, 0x8e, 0x38, 0x88, 0xaf, 0xdf, + 0xbc, 0xcb, 0xea, 0xa8, 0xc3, 0x6e, 0x9b, 0x1c, 0xaa, 0xf3, 0xd2, 0x36, 0xfd, 0x6e, 0xc5, 0x78, + 0x1a, 0x91, 0x9b, 0x55, 0x79, 0xff, 0x32, 0x4a, 0xe4, 0xe8, 0x8d, 0x6b, 0x4d, 0x43, 0x84, 0xe8, + 0x3b, 0x9b, 0x7c, 0x95, 0x64, 0x02, 0x46, 0xe2, 0xfa, 0x21, 0x52, 0x41, 0x9b, 0x79, 0x51, 0x73, + 0xac, 0xcd, 0x90, 0x7d, 0x99, 0x8b, 0xcc, 0x12, 0xca, 0x68, 0xeb, 0x4e, 0x44, 0xc9, 0xf7, 0x68, + 0x43, 0x25, 0x26, 0x00, 0xc2, 0x3b, 0x80, 0xfb, 0xa2, 0x6b, 0x41, 0x9d, 0xe8, 0x2a, 0xe4, 0x79, + 0x33, 0x23, 0x79, 0x13, 0xd7, 0xb4, 0x86, 0x18, 0x40, 0xc3, 0x2b, 0xf6, 0x89, 0xe9, 0x34, 0xe8, + 0x79, 0x00, 0xbf, 0xf2, 0xc8, 0xd4, 0x3a, 0x02, 0x88, 0xff, 0xb5, 0x04, 0x88, 0xac, 0x90, 0xf0, + 0xa9, 0xce, 0xbe, 0x82, 0xd8, 0xb1, 0x4a, 0x99, 0x24, 0xba, 0x24, 0x23, 0x95, 0x77, 0x54, 0xc9, + 0x04, 0xe8, 0x12, 0x2f, 0xb0, 0x42, 0x47, 0x64, 0x2a, 0xd9, 0x57, 0x31, 0x39, 0x1d, 0x93, 0xfa, + 0x53, 0xa8, 0xa1, 0x2e, 0x46, 0x87, 0x10, 0xd6, 0x37, 0x79, 0xd1, 0x95, 0x0c, 0x8e, 0x9b, 0xf1, + 0x20, 0xc8, 0x46, 0x15, 0x49, 0xdc, 0x1d, 0x0a, 0xc4, 0x25, 0x15, 0x38, 0x8d, 0x14, 0x35, 0xa3, + 0xf8, 0x8a, 0x9c, 0x07, 0xe2, 0x77, 0xe1, 0x80, 0xe3, 0x48, 0x7b, 0x1e, 0x37, 0xff, 0x0c, 0x20, + 0xa8, 0x1b, 0x09, 0x63, 0xfa, 0xa0, 0xd6, 0xd8, 0x1a, 0x76, 0x48, 0x0a, 0x80, 0xe1, 0x07, 0x16, + 0x58, 0x05, 0x8d, 0x98, 0xd1, 0xa3, 0xaa, 0xc7, 0xed, 0xdd, 0x44, 0xc6, 0x0e, 0x2a, 0xea, 0xef, + 0x8d, 0x9a, 0x39, 0x93, 0xfd, 0x33, 0x83, 0x56, 0xdf, 0x19, 0x34, 0xf3, 0x3d, 0xff, 0xc7, 0xc7, + 0x4c, 0x94, 0xee, 0xdf, 0x1b, 0x37, 0x75, 0x01, 0xfa, 0x67, 0x86, 0x9d, 0x60, 0xfe, 0x44, 0x2a, + 0xb1, 0x74, 0xa6, 0x9c, 0xbe, 0xd6, 0xc5, 0xac, 0x34, 0x35, 0x35, 0x34, 0x68, 0x82, 0xf8, 0xef, + 0xda, 0xa7, 0x5a, 0x46, 0x0c, 0x8f, 0x3d, 0xf0, 0x44, 0xfa, 0x0b, 0x50, 0xc0, 0xd5, 0x0b, 0x7b, + 0xc3, 0x66, 0x83, 0x6c, 0x5d, 0x9d, 0x42, 0x4d, 0x81, 0x33, 0x87, 0x07, 0xf6, 0xab, 0x53, 0x7f, + 0x11, 0x87, 0x55, 0x13, 0x18, 0x0e, 0x64, 0xf4, 0x96, 0xc5, 0x0c, 0x00, 0xcc, 0x17, 0x38, 0x4d, + 0xfa, 0x09, 0x56, 0x2a, 0xd0, 0x44, 0xd0, 0x11, 0xa3, 0xbe, 0xa9, 0x7e, 0xcf, 0xfc, 0xd8, 0x74, + 0xe1, 0x0f, 0x0c, 0x1d, 0xf9, 0x6e, 0xdc, 0x11, 0x97, 0x2b, 0xf4, 0x3d, 0x22, 0xa8, 0x40, 0x37, + 0xfb, 0xaf, 0xd8, 0x0f, 0x02, 0x09, 0x09, 0x4a, 0xfc, 0x5c, 0xc2, 0x82, 0x27, 0x8e, 0x80, 0x77, + 0x0b, 0xb2, 0x48, 0x29, 0x20, 0x2b, 0x43, 0x13, 0xf3, 0x57, 0xbd, 0x25, 0x7a, 0xb1, 0x89, 0x30, + 0x29, 0xf7, 0x63, 0x0b, 0xff, 0xa0, 0x50, 0x12, 0xf6, 0xa6, 0xa3, 0xac, 0x24, 0xc1, 0x8a, 0x49, + 0x35, 0x22, 0x6d, 0x7f, 0xcf, 0xfe, 0x98, 0xfb, 0x3c, 0xfb, 0x67, 0x8d, 0xb2, 0xe9, 0x57, 0x3d, + 0x14, 0xd5, 0x81, 0x68, 0xf1, 0xde, 0x25, 0x0d, 0x80, 0x0b, 0x18, 0x82, 0x2a, 0xc4, 0xe6, 0xf4, + 0xb5, 0x2b, 0x3f, 0x33, 0x5f, 0x23, 0xa7, 0x12, 0xcf, 0x17, 0xe0, 0xed, 0xb3, 0x78, 0x8f, 0xbb, + 0x27, 0x28, 0x5b, 0xe4, 0x6c, 0x82, 0xab, 0x65, 0x16, 0x89, 0x0a, 0x87, 0xd2, 0x8c, 0xc9, 0x7b, + 0x54, 0x40, 0xcb, 0xfc, 0x60, 0xa2, 0x24, 0x68, 0x43, 0x4e, 0x74, 0x96, 0xd1, 0x02, 0xa0, 0xac, + 0x13, 0xe4, 0xb5, 0x07, 0xd6, 0xa5, 0xe4, 0xd1, 0x03, 0x15, 0x72, 0x90, 0x30, 0x38, 0xc3, 0x7c, + 0x82, 0xf9, 0xb4, 0x39, 0x14, 0x53, 0x44, 0x84, 0xa5, 0x7e, 0x2d, 0x68, 0x78, 0x97, 0x24, 0x5c, + 0xde, 0x34, 0x03, 0x14, 0x05, 0xdc, 0x3e, 0x50, 0x03, 0xb5, 0x11, 0x0d, 0xf5, 0xd4, 0x4c, 0xa0, + 0xd4, 0x31, 0x27, 0xc8, 0x8c, 0x35, 0x05, 0xd6, 0x2c, 0x20, 0x1b, 0x6b, 0xe8, 0xf4, 0x13, 0xdf, + 0x55, 0x59, 0x91, 0x3d, 0xc9, 0x1d, 0x2d, 0xf2, 0x34, 0x19, 0x98, 0x80, 0x9b, 0x8c, 0x11, 0xb4, + 0x48, 0xf8, 0x0b, 0x8f, 0x06, 0xd4, 0xb9, 0x29, 0x6e, 0xfe, 0x0c, 0xec, 0x7e, 0x96, 0xd6, 0x41, + 0x99, 0x2d, 0x5a, 0x4e, 0xf3, 0xf5, 0x2e, 0x5c, 0x8f, 0x7f, 0xc6, 0xd4, 0x4c, 0x6e, 0x33, 0xf5, + 0x43, 0x5f, 0xc4, 0x53, 0x8e, 0x3a, 0x97, 0xb0, 0x9a, 0x90, 0x2e, 0xb0, 0x25, 0xfa, 0x1e, 0xbb, + 0x5f, 0xc3, 0x01, 0x80, 0xbe, 0x52, 0xaf, 0xe9, 0x7c, 0x85, 0x1c, 0x35, 0x41, 0x2d, 0x67, 0xee, + 0x69, 0x2d, 0xaa, 0x34, 0x07, 0x59, 0x23, 0xea, 0xea, 0xeb, 0x5f, 0x1a, 0x22, 0x74, 0x75, 0x9b, + 0x1b, 0xa1, 0x81, 0x1f, 0xc2, 0x27, 0xbb, 0x9b, 0x2a, 0x28, 0x04, 0xf0, 0x2d, 0x99, 0xcd, 0x64, + 0xe6, 0x5e, 0x0c, 0xa0, 0x36, 0x0b, 0x3a, 0x4e, 0xc6, 0x18, 0x57, 0x7f, 0xa4, 0x72, 0xf4, 0xdf, + 0xf3, 0xea, 0xe0, 0xaa, 0xa7, 0xd4, 0x1b, 0xad, 0x3d, 0x5f, 0xa1, 0xa7, 0xfe, 0xb1, 0xde, 0x08, + 0x46, 0x40, 0xe7, 0xe4, 0xe3, 0x89, 0x78, 0x75, 0xfb, 0x55, 0xfb, 0x3d, 0x62, 0xd0, 0x27, 0xbe, + 0x91, 0xc9, 0xe4, 0x7c, 0x89, 0x50, 0xe4, 0x92, 0xef, 0x9b, 0x99, 0xad, 0x04, 0x11, 0x6e, 0x88, + 0x74, 0xf2, 0xe5, 0x4b, 0x86, 0xfd, 0x26, 0x96, 0x7b, 0x32, 0xa0, 0x5d, 0x16, 0xa5, 0x08, 0x36, + 0x15, 0x80, 0xea, 0x88, 0x73, 0xe6, 0xf2, 0xfc, 0x0b, 0x5e, 0x0f, 0x74, 0x46, 0x48, 0x9e, 0x09, + 0x18, 0xeb, 0xaa, 0x86, 0x84, 0x0b, 0xdf, 0x5e, 0x7c, 0xd9, 0x48, 0x04, 0x6b, 0x14, 0x32, 0x4b, + 0xca, 0x16, 0x38, 0x39, 0x83, 0x13, 0xdc, 0x64, 0xd4, 0xb8, 0x79, 0x2d, 0x90, 0x4c, 0x8c, 0xae, + 0x49, 0xb6, 0xda, 0x3c, 0x47, 0x50, 0x95, 0xcd, 0x54, 0x35, 0x85, 0x14, 0x48, 0x19, 0x47, 0x70, + 0x28, 0x28, 0x0c, 0x20, 0x35, 0x85, 0xde, 0xe8, 0x44, 0x39, 0x11, 0x13, 0x18, 0xff, 0x5e, 0x02, + 0x15, 0xd7, 0x25, 0xbb, 0x14, 0x5e, 0x22, 0x4b, 0xe9, 0xa4, 0x28, 0x6f, 0x74, 0x03, 0xbf, 0x58, + 0x95, 0x78, 0x73, 0xc0, 0x74, 0x81, 0x97, 0x90, 0x0b, 0x2f, 0xfa, 0xed, 0xd8, 0x9e, 0x97, 0x2c, + 0xcb, 0x05, 0x6f, 0x80, 0x4a, 0xe2, 0xc6, 0xaa, 0xa6, 0xba, 0x4e, 0x0a, 0x85, 0xb3, 0xc1, 0x38, + 0xf8, 0x0a, 0xa0, 0x9b, 0x6c, 0x85, 0xde, 0x52, 0xe3, 0x2a, 0x71, 0x63, 0x5d, 0x95, 0xa5, 0x0f, + 0x59, 0x12, 0xe8, 0xf6, 0x3a, 0x18, 0xa3, 0x37, 0xd3, 0x00, 0xd7, 0x94, 0x5f, 0xbf, 0x12, 0x5c, + 0x60, 0x9d, 0xec, 0xee, 0x22, 0x0f, 0xa6, 0x61, 0x75, 0x64, 0xfc, 0x39, 0x23, 0x4e, 0xfe, 0x62, + 0x0e, 0x72, 0xe1, 0xfa, 0x6a, 0x98, 0xca, 0xb0, 0xa3, 0x99, 0x9e, 0x2c, 0x1d, 0x04, 0x15, 0x59, + 0x56, 0x07, 0x97, 0x8d, 0x44, 0xf6, 0x58, 0x92, 0x4f, 0x5a, 0x64, 0xd4, 0x1e, 0xde, 0x38, 0xb6, + 0x0a, 0x80, 0xb1, 0x55, 0xb5, 0xaf, 0x2a, 0x56, 0x3a, 0xab, 0xe6, 0x6b, 0x4e, 0xdd, 0x49, 0xb9, + 0xe6, 0xbe, 0x36, 0x51, 0x3b, 0x89, 0xac, 0xc4, 0x58, 0x29, 0x1b, 0xbf, 0x35, 0xb6, 0x65, 0xbd, + 0x2e, 0x9e, 0x9b, 0xae, 0x80, 0x97, 0x60, 0x93, 0x1a, 0x3b, 0x62, 0xcd, 0xd8, 0x84, 0x82, 0x5b, + 0x7a, 0x3d, 0x61, 0xc0, 0xff, 0xd3, 0x75, 0x78, 0x91, 0xfc, 0x2a, 0xe0, 0x5b, 0x66, 0x2b, 0x53, + 0xcd, 0x4a, 0x20, 0x87, 0x08, 0x0d, 0xb1, 0x6a, 0x10, 0xff, 0x2f, 0x92, 0xb7, 0x98, 0xf9, 0x93, + 0x18, 0xd6, 0x88, 0x69, 0x16, 0x0a, 0x02, 0x95, 0x61, 0xa6, 0x41, 0x43, 0xf4, 0xd8, 0x2d, 0x5d, + 0xbb, 0xd5, 0xd4, 0x50, 0x42, 0x46, 0x8e, 0x5c, 0xc0, 0xfd, 0x0e, 0x48, 0xff, 0x01, 0xea, 0x52, + 0x54, 0xe4, 0x82, 0x3c, 0x92, 0x03, 0xdc, 0x79, 0x4b, 0x49, 0xd6, 0x3d, 0x8b, 0x16, 0x64, 0x25, + 0xbb, 0x84, 0xc8, 0xde, 0xab, 0xe1, 0x74, 0xda, 0x82, 0x59, 0x17, 0x4f, 0x86, 0xc3, 0xbe, 0xf2, + 0x32, 0x14, 0x41, 0xc3, 0x07, 0x65, 0x2d, 0x45, 0x4c, 0xf5, 0xce, 0xbd, 0xe6, 0xf6, 0x13, 0x78, + 0x7a, 0x36, 0x9f, 0x22, 0xc6, 0x4c, 0xc8, 0x77, 0x63, 0xbe, 0x68, 0x22, 0x22, 0x0b, 0x73, 0x69, + 0xc0, 0x6c, 0x86, 0x04, 0x85, 0xeb, 0x2d, 0xdd, 0xcb, 0x71, 0x3d, 0x1d, 0x3e, 0x13, 0x73, 0x9c, + 0x9a, 0x6a, 0x1b, 0x24, 0x09, 0x1f, 0x28, 0xaf, 0x1e, 0x01, 0x37, 0xc1, 0x92, 0x73, 0x01, 0x56, + 0x79, 0x73, 0xee, 0xeb, 0xa7, 0xdf, 0xc8, 0xd5, 0x34, 0xc0, 0x5b, 0xfe, 0x98, 0x29, 0x73, 0xfc, + 0xeb, 0x75, 0x51, 0xdc, 0x1e, 0x6a, 0x3a, 0x6e, 0xd5, 0xa6, 0x46, 0x5a, 0x47, 0x0a, 0x7f, 0x6a, + 0x6a, 0x3d, 0x10, 0x93, 0x88, 0x07, 0x3f, 0x0a, 0x34, 0x98, 0x69, 0xac, 0x75, 0xb5, 0x94, 0x43, + 0xd2, 0x93, 0xe2, 0xbf, 0x04, 0xe2, 0xc6, 0x48, 0xd2, 0x6c, 0xc7, 0xd1, 0x64, 0x51, 0xe8, 0x6c, + 0x0f, 0x24, 0x31, 0x52, 0xcd, 0xad, 0x85, 0xa6, 0x52, 0x50, 0xee, 0xc2, 0x66, 0xd3, 0xd4, 0x90, + 0xa4, 0x4b, 0x91, 0xdc, 0x18, 0x44, 0x45, 0x40, 0x22, 0x01, 0x92, 0x81, 0x0a, 0x5f, 0xb6, 0x59, + 0x75, 0x6a, 0xca, 0x72, 0x6c, 0x65, 0xb0, 0x15, 0xce, 0x78, 0xd9, 0xbc, 0x6e, 0x9c, 0x89, 0x72, + 0x82, 0x7d, 0x4d, 0x67, 0x33, 0xb9, 0x82, 0xc4, 0x91, 0x15, 0xab, 0x01, 0x17, 0x95, 0x50, 0x2b, + 0x7b, 0xc0, 0x4d, 0x06, 0x48, 0x54, 0x02, 0x73, 0x98, 0x17, 0x65, 0x3d, 0xd2, 0x91, 0x06, 0x80, + 0x11, 0x78, 0xa1, 0xb0, 0x7f, 0xd9, 0xc4, 0x91, 0x13, 0xba, 0xec, 0x5a, 0x4e, 0x24, 0xd7, 0x59, + 0x63, 0x47, 0x80, 0x99, 0x80, 0x07, 0x3d, 0x30, 0xd7, 0x40, 0x69, 0x47, 0xc7, 0xa3, 0xe9, 0xaa, + 0x33, 0x75, 0x80, 0x9b, 0xe2, 0x77, 0x60, 0x0d, 0x43, 0x90, 0x93, 0x11, 0x6c, 0xf0, 0xe8, 0x26, + 0xb1, 0x7b, 0x08, 0x45, 0x8e, 0x3e, 0x61, 0x2d, 0xf8, 0x93, 0x66, 0x4c, 0xd3, 0x4c, 0x40, 0xab, + 0xff, 0x5a, 0x00, 0xea, 0x9e, 0x31, 0xd2, 0x6c, 0xd3, 0x18, 0x90, 0xae, 0xab, 0x29, 0x3c, 0x1c, + 0x4c, 0x8c, 0xbc, 0xe8, 0xed, 0x67, 0xab, 0xf0, 0x48, 0x50, 0xa3, 0x8f, 0x35, 0x0b, 0x9d, 0x4a, + 0xb1, 0x30, 0x28, 0xf1, 0x84, 0x06, 0x7e, 0xd2, 0x59, 0xfd, 0x32, 0x0a, 0x33, 0x4b, 0x22, 0xc2, + 0x10, 0x89, 0x04, 0x8d, 0x04, 0x41, 0x96, 0x25, 0x9e, 0xbe, 0x91, 0x23, 0xfc, 0x12, 0xf5, 0x44, + 0xf0, 0x7c, 0x4a, 0x3d, 0xe3, 0x06, 0x2b, 0xd9, 0xd4, 0x70, 0x67, 0xa5, 0x57, 0x73, 0x3d, 0xdf, + 0x38, 0x16, 0x43, 0x80, 0xdf, 0xc6, 0xf6, 0x18, 0x87, 0x77, 0x9a, 0x95, 0x67, 0x1e, 0x44, 0x52, + 0x72, 0xea, 0xde, 0x1a, 0xe0, 0x4b, 0x5b, 0x78, 0xca, 0x24, 0xc1, 0x9f, 0x69, 0x08, 0x1f, 0x64, + 0x60, 0xe7, 0x17, 0x70, 0x39, 0xeb, 0x31, 0x59, 0xcc, 0xcb, 0x9c, 0x4c, 0x92, 0x3a, 0xf5, 0x40, + 0xfa, 0x32, 0x52, 0x40, 0xff, 0x35, 0x1d, 0xb7, 0xf2, 0x82, 0x4a, 0xc8, 0x3a, 0xca, 0xd5, 0xa9, + 0x27, 0x81, 0xa4, 0xf4, 0x4d, 0xac, 0x18, 0x3f, 0x61, 0xfd, 0xba, 0x44, 0x6a, 0x52, 0xa8, 0x11, + 0x0f, 0xea, 0x07, 0x8d, 0x48, 0x92, 0xcd, 0xfa, 0xa7, 0x4f, 0x0a, 0x1a, 0xc4, 0xe3, 0x77, 0x2f, + 0x7c, 0xc1, 0xf7, 0xd7, 0x2f, 0x74, 0x8a, 0xd6, 0xbf, 0x7c, 0xe1, 0xfd, 0x13, 0xe1, 0x33, 0x7a, + 0x66, 0xfc, 0xe4, 0xe3, 0x02, 0x80, 0x84, 0xa3, 0xcf, 0x83, 0x10, 0x02, 0x2d, 0x47, 0x24, 0x66, + 0x98, 0x25, 0xb2, 0x0b, 0xf0, 0x4f, 0xe1, 0x8f, 0x99, 0x91, 0x32, 0x8d, 0x2d, 0xdc, 0x58, 0x13, + 0xa9, 0x98, 0xef, 0x0b, 0x1c, 0xfa, 0x1c, 0x32, 0x84, 0x85, 0x37, 0x18, 0xca, 0xe5, 0xd8, 0x4e, + 0xe0, 0x37, 0x29, 0xb8, 0x6c, 0x87, 0x49, 0x32, 0xab, 0xa2, 0x4b, 0x50, 0x63, 0x10, 0x17, 0xe9, + 0x83, 0x36, 0x40, 0x82, 0x57, 0xaf, 0x0c, 0x31, 0x01, 0x2d, 0xa2, 0x3f, 0x2f, 0x6d, 0xf1, 0x77, + 0xa2, 0x7d, 0x2c, 0xb9, 0x9d, 0x03, 0xc7, 0x0b, 0xad, 0xc2, 0x38, 0xd3, 0xac, 0x53, 0xef, 0x45, + 0xfe, 0x20, 0x23, 0xf3, 0xa5, 0x40, 0x26, 0x74, 0xd9, 0x00, 0x77, 0x1a, 0xd5, 0x2a, 0x14, 0xc4, + 0x8a, 0xdd, 0x0f, 0x8e, 0xc7, 0xe5, 0xf0, 0x5c, 0x92, 0x2a, 0xa0, 0x7c, 0x7b, 0xb6, 0x25, 0xe2, + 0xde, 0x8b, 0x66, 0x53, 0x13, 0xad, 0x38, 0x5f, 0x12, 0xdb, 0x8a, 0x83, 0x0b, 0xd4, 0x13, 0x81, + 0x03, 0x54, 0xe8, 0x01, 0x01, 0x87, 0x00, 0x19, 0xb6, 0x44, 0x76, 0x9d, 0x1d, 0xc1, 0xdb, 0xe6, + 0x3b, 0xa1, 0xae, 0xbc, 0x48, 0x57, 0x20, 0xdd, 0xbf, 0xd3, 0xf5, 0x33, 0x0d, 0xa5, 0xb3, 0xf7, + 0xfb, 0x38, 0x88, 0x5e, 0xa1, 0x72, 0xa6, 0xf1, 0x3d, 0x1c, 0x68, 0x7f, 0xb5, 0x83, 0x1d, 0x72, + 0xec, 0x87, 0xac, 0xb6, 0xce, 0x19, 0xcc, 0x8e, 0xce, 0xc7, 0x60, 0xfd, 0x01, 0xa8, 0x3e, 0x2e, + 0x02, 0xf5, 0x31, 0x04, 0xd5, 0xc7, 0xbf, 0xda, 0x67, 0xeb, 0x9f, 0x02, 0xea, 0xe3, 0x02, 0x50, + 0x43, 0x3d, 0x1c, 0xfc, 0xd5, 0x1e, 0x52, 0xfe, 0xd3, 0x0b, 0xb3, 0x0b, 0xd2, 0xa2, 0x62, 0xe1, + 0x21, 0x4c, 0x12, 0x58, 0x0d, 0x9e, 0xeb, 0x22, 0x4b, 0xf0, 0xac, 0x0c, 0x78, 0x61, 0x32, 0x8b, + 0x34, 0xb3, 0x47, 0x18, 0x92, 0x90, 0xdd, 0x15, 0xf6, 0x1f, 0x02, 0x0b, 0x2f, 0x3f, 0x7f, 0x54, + 0x7d, 0xdd, 0x82, 0xb6, 0xe9, 0xe6, 0x44, 0x38, 0x35, 0xd4, 0xa6, 0x95, 0xcd, 0x45, 0xc7, 0x09, + 0x49, 0x1e, 0x5f, 0x21, 0xf5, 0x0a, 0xdf, 0x4c, 0x8b, 0xb0, 0xfc, 0xe0, 0x9e, 0x96, 0x3f, 0x66, + 0xc0, 0x06, 0x01, 0x06, 0x90, 0x75, 0x0b, 0x77, 0x0e, 0xe9, 0xc1, 0x36, 0x0a, 0x87, 0x73, 0xd3, + 0x50, 0xbf, 0xa5, 0x69, 0x91, 0xf8, 0x0a, 0xb2, 0x58, 0x41, 0x76, 0x69, 0x05, 0xdb, 0x8a, 0xbd, + 0xba, 0x7c, 0x0e, 0xcb, 0xe7, 0x96, 0x96, 0x6f, 0xd8, 0xed, 0xd5, 0xe5, 0xf3, 0x58, 0x3e, 0xbf, + 0xb4, 0xfc, 0x0e, 0x39, 0xe3, 0x19, 0xae, 0x02, 0x90, 0x48, 0xf2, 0x2c, 0x70, 0xa2, 0x9f, 0xf2, + 0x90, 0x61, 0x92, 0xe0, 0xcd, 0x31, 0x10, 0xb6, 0x8e, 0x36, 0x88, 0x45, 0x5b, 0x13, 0x05, 0x06, + 0x01, 0xbe, 0xfe, 0x2d, 0x9c, 0xd1, 0xea, 0xc3, 0xbc, 0xb9, 0xa9, 0x0d, 0x3e, 0x88, 0x33, 0x2c, + 0xbd, 0x08, 0x72, 0x55, 0x81, 0x45, 0xdf, 0xf8, 0x28, 0xda, 0x62, 0xeb, 0xb8, 0x57, 0xef, 0x35, + 0x5d, 0xbf, 0x36, 0xdb, 0x2f, 0x8f, 0xe6, 0xf0, 0xa3, 0x08, 0x8c, 0xad, 0xe9, 0x36, 0x9b, 0xf9, + 0x8f, 0xfc, 0x47, 0x51, 0xb8, 0xa4, 0x86, 0x42, 0xb4, 0x86, 0xe5, 0x18, 0xac, 0x45, 0x8d, 0x26, + 0x78, 0x05, 0x3b, 0x6a, 0xfe, 0xd0, 0x04, 0xc8, 0x17, 0x28, 0x24, 0x82, 0x14, 0xa0, 0xf6, 0xb6, + 0xc4, 0x50, 0x23, 0xf0, 0xd5, 0xdc, 0x0a, 0x44, 0x83, 0x85, 0x25, 0x9b, 0x60, 0x22, 0x8e, 0x15, + 0xd1, 0x58, 0xa6, 0x4c, 0x1c, 0x78, 0x8f, 0x0d, 0x39, 0xaa, 0x1e, 0xc6, 0x35, 0x0a, 0x31, 0x3c, + 0x1f, 0x82, 0x94, 0x08, 0x23, 0x22, 0x15, 0xaf, 0x66, 0x46, 0x64, 0xfd, 0xa4, 0xfc, 0x68, 0x85, + 0x41, 0xc5, 0x7e, 0x0b, 0x75, 0x85, 0xbc, 0x07, 0xe6, 0x14, 0xf4, 0x50, 0x22, 0x82, 0x23, 0xfc, + 0x32, 0xaf, 0xb7, 0x84, 0x54, 0x0b, 0xc2, 0x2a, 0x92, 0x3e, 0xd6, 0x88, 0x6c, 0x82, 0xfd, 0x84, + 0xd2, 0x5b, 0x0e, 0xd3, 0xef, 0xe9, 0x2f, 0x54, 0x0b, 0xa2, 0x14, 0x80, 0xb0, 0x90, 0xc5, 0xa3, + 0x26, 0x18, 0x1b, 0x0b, 0x7f, 0xf2, 0xb9, 0xa2, 0x38, 0x8f, 0xb3, 0xc9, 0x40, 0xfe, 0x05, 0x23, + 0x16, 0x42, 0x63, 0x6f, 0xc2, 0x93, 0x3e, 0xb6, 0x65, 0x6c, 0xc1, 0xbf, 0xaa, 0x17, 0x15, 0x0a, + 0xa4, 0x6c, 0x7d, 0x1e, 0x2b, 0x7c, 0x2d, 0x1a, 0xa6, 0xd8, 0x50, 0x97, 0x9b, 0xa6, 0xf4, 0xa8, + 0x59, 0xca, 0x17, 0x45, 0x3e, 0x6c, 0x99, 0xd2, 0x63, 0xad, 0x52, 0x7a, 0x8c, 0x45, 0xea, 0x8f, + 0x59, 0xf4, 0x18, 0x8c, 0x46, 0x35, 0xa3, 0x28, 0x5c, 0x34, 0x23, 0xd4, 0x7d, 0x78, 0x5d, 0x24, + 0xaf, 0x50, 0x70, 0x71, 0xcb, 0x9d, 0xb8, 0x82, 0x2f, 0xe7, 0x71, 0x45, 0xdd, 0xd8, 0xc0, 0xe2, + 0x41, 0x5c, 0xf1, 0x7c, 0x8e, 0x97, 0xdf, 0x18, 0xa0, 0x91, 0xf2, 0x43, 0x61, 0x99, 0x48, 0x90, + 0x72, 0x01, 0xb1, 0x95, 0x4a, 0xa5, 0x44, 0x2a, 0xdf, 0x51, 0x95, 0xd6, 0x07, 0x10, 0xe8, 0x05, + 0x24, 0xee, 0x95, 0xcb, 0xba, 0xea, 0x7a, 0x1c, 0xd1, 0xed, 0x6c, 0x32, 0x59, 0xad, 0x89, 0x3a, + 0xb7, 0xf0, 0x80, 0xfb, 0xbd, 0xe4, 0xe9, 0x74, 0x6f, 0x57, 0xa4, 0x3e, 0x24, 0x91, 0x9c, 0x3c, + 0x94, 0xa0, 0x9f, 0x5b, 0xe2, 0x3d, 0x46, 0x30, 0x20, 0xe5, 0x4c, 0x0b, 0x2b, 0x58, 0xc8, 0x40, + 0x03, 0x51, 0x80, 0x62, 0xe1, 0x65, 0x5a, 0x5a, 0x37, 0x4a, 0x8c, 0x17, 0xdd, 0x2e, 0xfa, 0x94, + 0x07, 0xdf, 0x89, 0x0f, 0xcb, 0x42, 0xb7, 0x19, 0xb8, 0xc3, 0x52, 0x34, 0x8e, 0x31, 0x8c, 0x1d, + 0x67, 0x65, 0x9c, 0xae, 0x3f, 0x66, 0x68, 0x41, 0xda, 0x1a, 0x8c, 0xab, 0x9e, 0x65, 0x4b, 0x5a, + 0xcf, 0xce, 0x43, 0x52, 0x33, 0xb1, 0x45, 0xcc, 0x17, 0x64, 0xf0, 0x53, 0xd5, 0x08, 0xa4, 0x73, + 0x3f, 0x64, 0x3c, 0x34, 0x4a, 0x43, 0xc6, 0x33, 0x12, 0x0b, 0x8f, 0xf1, 0x83, 0x5d, 0x56, 0x7f, + 0xbb, 0xcb, 0x89, 0x28, 0xc8, 0x59, 0xb7, 0xab, 0x19, 0x29, 0x3a, 0x18, 0xd3, 0x7a, 0x27, 0xf7, + 0xdf, 0x1f, 0xa7, 0xe7, 0x7b, 0xc0, 0xdd, 0x1a, 0x8d, 0x8c, 0xcb, 0x76, 0x6b, 0xa2, 0x47, 0x42, + 0x49, 0x62, 0x7b, 0x11, 0x93, 0x36, 0x92, 0xf3, 0x72, 0xb0, 0x78, 0x7a, 0x04, 0x59, 0xd0, 0x17, + 0x78, 0xbe, 0xd9, 0x8d, 0x02, 0x8a, 0x1b, 0xa9, 0xd9, 0x5d, 0x35, 0x96, 0xcd, 0x45, 0xe2, 0x62, + 0x4d, 0x31, 0x77, 0xab, 0x4d, 0x3a, 0x09, 0x1e, 0x3d, 0x1f, 0x2b, 0xe8, 0xeb, 0x02, 0xd8, 0xc4, + 0x43, 0x12, 0xaf, 0xc3, 0x23, 0xea, 0x47, 0x51, 0x4a, 0x7e, 0xf5, 0xf3, 0x07, 0xde, 0x57, 0x5e, + 0x8d, 0x1f, 0xc0, 0xfe, 0xd7, 0xa4, 0x9e, 0xfc, 0xea, 0x3c, 0xae, 0xc4, 0xff, 0xd7, 0x64, 0x62, + 0xd0, 0x5f, 0xcf, 0x42, 0x5b, 0xfe, 0x78, 0xbf, 0x26, 0x19, 0x06, 0x1f, 0x31, 0x31, 0x66, 0xd0, + 0xa4, 0xde, 0x25, 0x18, 0x64, 0xdf, 0x36, 0x83, 0x9e, 0x7f, 0xb0, 0x9f, 0xea, 0x47, 0xfa, 0xb9, + 0x8c, 0xd6, 0x1e, 0xab, 0x68, 0x66, 0xe4, 0x87, 0x90, 0xa0, 0xd4, 0xf9, 0xf8, 0x7e, 0x91, 0xbf, + 0x39, 0xc0, 0x55, 0xe4, 0xf9, 0x35, 0x69, 0x79, 0xa4, 0xd9, 0x81, 0x07, 0x1f, 0x87, 0x22, 0x5b, + 0x09, 0xc2, 0x2c, 0xe8, 0x00, 0x43, 0xef, 0x68, 0x46, 0x2f, 0x3c, 0xcb, 0x9b, 0xe8, 0xff, 0x1c, + 0x4d, 0xfc, 0x6f, 0x93, 0x7c, 0xfb, 0xd3, 0xfa, 0x7a, 0x03, 0x1d, 0xf0, 0xd7, 0xd7, 0xe1, 0x4d, + 0xfd, 0x67, 0xd8, 0x5b, 0xcf, 0xb6, 0x62, 0xb1, 0x90, 0xe5, 0x0d, 0x03, 0xdc, 0xb4, 0x80, 0xfc, + 0xff, 0x43, 0x79, 0x99, 0x63, 0xb5, 0x57, 0x52, 0x49, 0xb4, 0x7f, 0x90, 0xff, 0x1f, 0xea, 0xdf, + 0xb2, 0xed, 0xdf, 0x05, 0xcb, 0x8e, 0x5f, 0x3e, 0x22, 0x4f, 0xf8, 0x77, 0x70, 0xf8, 0xd1, 0x2c, + 0xa9, 0xa0, 0x19, 0x7b, 0x23, 0x47, 0x0c, 0x36, 0xd3, 0x9e, 0x55, 0x39, 0xac, 0x78, 0xf4, 0x85, + 0x56, 0x58, 0xc3, 0x00, 0x12, 0xe7, 0x6d, 0x2e, 0xfe, 0x42, 0x68, 0xcf, 0x83, 0xd7, 0x9e, 0x47, + 0x7f, 0x68, 0xea, 0x6d, 0xe0, 0x36, 0xc5, 0xb5, 0x4a, 0x7d, 0xc2, 0xbf, 0x7c, 0x89, 0x24, 0x10, + 0xb3, 0x96, 0x58, 0x1d, 0x52, 0x72, 0x5d, 0xa5, 0x9c, 0x13, 0x58, 0xb1, 0xe6, 0x48, 0xd8, 0x4b, + 0x0b, 0xa3, 0x3a, 0x55, 0x45, 0xaa, 0xb4, 0xb3, 0x70, 0x3f, 0xb4, 0xd9, 0x0f, 0xc8, 0xce, 0xac, + 0x22, 0xd7, 0x82, 0x1a, 0x06, 0x1a, 0xdb, 0x38, 0x67, 0x82, 0x34, 0x5b, 0xb3, 0x10, 0xe0, 0x37, + 0x56, 0x02, 0x5d, 0xb6, 0x89, 0xd9, 0x04, 0x18, 0x26, 0x93, 0xac, 0xf1, 0xab, 0x91, 0x72, 0xad, + 0x90, 0x70, 0x5d, 0x8d, 0xb1, 0xa6, 0xd0, 0xce, 0xbc, 0x2b, 0x6f, 0xf3, 0x02, 0x77, 0x08, 0xfa, + 0x1d, 0xd5, 0xb7, 0xca, 0x2d, 0x27, 0x10, 0x36, 0x2a, 0x9b, 0x4a, 0x8f, 0xfe, 0x75, 0x63, 0x16, + 0xe8, 0x6d, 0x2c, 0x2a, 0x10, 0x9e, 0x0e, 0xe0, 0xe2, 0x8b, 0x5a, 0x1f, 0xa2, 0xa3, 0xf0, 0xfd, + 0xca, 0x1e, 0xe5, 0x7c, 0xb0, 0x33, 0x9d, 0x50, 0x67, 0x76, 0xc9, 0xfe, 0x3c, 0xd7, 0x85, 0x0e, + 0xaf, 0xaa, 0xbc, 0xd3, 0x85, 0x4c, 0x7e, 0x63, 0xb1, 0x0b, 0x11, 0x53, 0x5f, 0xac, 0x3c, 0x0c, + 0x28, 0xd1, 0xe6, 0xfe, 0x0e, 0xec, 0xdc, 0xb3, 0xe9, 0xc6, 0x6c, 0xbe, 0xf2, 0x76, 0xe1, 0xcd, + 0x3a, 0xdd, 0x0d, 0xdc, 0x4a, 0x78, 0x05, 0x48, 0xb4, 0x4c, 0xbe, 0xc0, 0xd7, 0xc5, 0xf0, 0x69, + 0x13, 0x6d, 0x30, 0x1c, 0x08, 0x94, 0x67, 0xa0, 0xcd, 0xdd, 0x0b, 0xda, 0x8a, 0x71, 0xa4, 0x00, + 0xe5, 0x1d, 0x2f, 0x16, 0xe7, 0x57, 0x3e, 0x0a, 0x51, 0x46, 0xaa, 0xfa, 0x6f, 0x5f, 0xbe, 0x24, + 0xf8, 0xd3, 0x2e, 0x7c, 0xac, 0xa2, 0xe0, 0x5c, 0x86, 0x5e, 0xcf, 0xd4, 0xf4, 0x6f, 0x75, 0x84, + 0x5d, 0x4d, 0x4f, 0x26, 0xa5, 0x80, 0xdf, 0xe8, 0xfe, 0xc1, 0x07, 0x62, 0x6c, 0x25, 0xae, 0xc5, + 0x81, 0xf5, 0xf6, 0xa7, 0xc4, 0xb6, 0xff, 0x90, 0x4c, 0xd0, 0xa6, 0xcd, 0x4e, 0x19, 0x30, 0x1b, + 0xaa, 0x77, 0xc6, 0x80, 0x2f, 0x05, 0xea, 0xd3, 0x4f, 0x29, 0xc5, 0x88, 0xd9, 0xdb, 0xa7, 0x84, + 0x44, 0x3c, 0xc1, 0xe6, 0xa7, 0x93, 0xce, 0x79, 0x66, 0xf8, 0x6f, 0x39, 0x6f, 0x2f, 0x12, 0xf1, + 0x0f, 0xad, 0x40, 0x2f, 0xe3, 0x1b, 0x92, 0xe4, 0x4f, 0xc4, 0x66, 0xf8, 0x89, 0x1f, 0x7d, 0x74, + 0x19, 0xf5, 0x8d, 0xf9, 0x5c, 0xaf, 0x20, 0xeb, 0xdc, 0xf1, 0x7c, 0xb3, 0x25, 0x58, 0x60, 0x93, + 0xcb, 0x72, 0xa9, 0x7e, 0xae, 0x6f, 0x9e, 0xdc, 0xc9, 0xf5, 0xce, 0x5e, 0xd2, 0x3b, 0xcd, 0xc0, + 0x78, 0x12, 0x62, 0x00, 0x2c, 0x1a, 0xc1, 0x37, 0x9a, 0xcf, 0x1b, 0xf1, 0x66, 0x36, 0x12, 0xe5, + 0x60, 0x71, 0x07, 0xc4, 0x77, 0xe5, 0x62, 0x8e, 0x45, 0xc4, 0xf5, 0x4b, 0x26, 0xfb, 0x20, 0xaa, + 0xe7, 0x01, 0xe5, 0xef, 0xd6, 0xb8, 0x80, 0x5e, 0xf7, 0x9b, 0xca, 0x7c, 0x8e, 0x6a, 0x2e, 0x60, + 0x58, 0xfd, 0xee, 0xfe, 0xa8, 0xcf, 0xb4, 0x4e, 0x15, 0x1f, 0x70, 0x5f, 0x12, 0xf5, 0x26, 0xfa, + 0x92, 0xfd, 0x31, 0xc7, 0x3a, 0x78, 0x27, 0x24, 0xb2, 0x8d, 0x4e, 0xce, 0x0a, 0xea, 0x2a, 0x86, + 0xf6, 0x50, 0x6c, 0x35, 0xe1, 0x92, 0x44, 0xb2, 0x65, 0xec, 0xb9, 0x58, 0x61, 0x7d, 0x19, 0x5a, + 0x93, 0xd8, 0xc4, 0x23, 0x6a, 0xe2, 0x3c, 0xe8, 0x04, 0x39, 0xfb, 0xc3, 0xce, 0xc3, 0xaa, 0x75, + 0x3c, 0x12, 0x29, 0x1b, 0xf0, 0x83, 0xb9, 0x71, 0x53, 0x0a, 0xb7, 0x72, 0x45, 0x7a, 0x06, 0x96, + 0x34, 0xa6, 0x19, 0x1d, 0x75, 0x72, 0xd1, 0x4d, 0x88, 0xd7, 0xcd, 0xbb, 0x5d, 0x51, 0xfa, 0x96, + 0x21, 0x3e, 0x32, 0xe1, 0x33, 0x74, 0xd4, 0x7b, 0x0b, 0x3d, 0x2d, 0xa9, 0xab, 0x17, 0xf3, 0xa9, + 0xc2, 0x46, 0xf0, 0xa4, 0x2b, 0x4d, 0x45, 0xc7, 0x6a, 0xfa, 0x61, 0x4b, 0xac, 0xd5, 0x3e, 0xd5, + 0xb2, 0xc0, 0x42, 0x83, 0x2f, 0xce, 0xb0, 0xe5, 0xb8, 0x18, 0x31, 0xad, 0x46, 0x01, 0x85, 0x27, + 0x6f, 0xf5, 0xad, 0xef, 0x3f, 0xaa, 0x3a, 0xac, 0xc1, 0xba, 0xe6, 0x26, 0xc4, 0x1a, 0x39, 0xb3, + 0xeb, 0xb2, 0x3a, 0xbe, 0xe5, 0x7f, 0xfd, 0xc2, 0x3c, 0x75, 0xe2, 0x1d, 0x05, 0xf9, 0xf0, 0xd7, + 0xcb, 0x2a, 0x93, 0xe3, 0x3a, 0x9e, 0x67, 0xd7, 0x97, 0x2f, 0x22, 0x46, 0x43, 0xc1, 0x5d, 0x5f, + 0x12, 0xec, 0xc4, 0x0b, 0x39, 0x83, 0x09, 0x12, 0x73, 0x0d, 0x0e, 0x2e, 0x54, 0xf1, 0x76, 0x88, + 0xfc, 0x86, 0x0a, 0x7e, 0x43, 0x79, 0xd6, 0x50, 0x3e, 0xd4, 0x10, 0x40, 0x43, 0x09, 0xbc, 0xc8, + 0x42, 0x1b, 0x73, 0x8a, 0x24, 0xc2, 0x28, 0xd1, 0x8a, 0x44, 0x87, 0x07, 0x62, 0x58, 0x22, 0x23, + 0xe7, 0x82, 0x46, 0xe9, 0x0d, 0x29, 0x92, 0x2c, 0xe6, 0x56, 0x66, 0xa3, 0xf7, 0x94, 0x40, 0xb6, + 0x91, 0xb9, 0x32, 0x1b, 0xb9, 0x2c, 0x04, 0xb2, 0x75, 0xed, 0x77, 0xb2, 0x15, 0x21, 0xdb, 0xdc, + 0x4d, 0xd6, 0x7b, 0x78, 0xc2, 0x0c, 0x39, 0x8c, 0xe6, 0x10, 0x1f, 0x92, 0x43, 0x77, 0xa0, 0x27, + 0xf0, 0xf6, 0x24, 0x59, 0x95, 0x0d, 0x19, 0x97, 0xc5, 0x07, 0x18, 0x23, 0xd9, 0x6e, 0xa5, 0xec, + 0xd5, 0xbb, 0x98, 0x88, 0xe7, 0xae, 0x31, 0x8e, 0x5f, 0xbe, 0x53, 0x27, 0xf5, 0xff, 0xf4, 0x5d, + 0x01, 0xd9, 0x5b, 0xc8, 0xaf, 0x2e, 0xfb, 0x23, 0x4a, 0xd0, 0xc4, 0xf1, 0x8a, 0xe5, 0xf5, 0x48, + 0xfa, 0x7b, 0x46, 0x16, 0x99, 0xa1, 0x49, 0xfc, 0xe1, 0x1d, 0x4a, 0x05, 0x42, 0xf5, 0xa7, 0x16, + 0xc2, 0x9b, 0x14, 0x41, 0x6f, 0xbb, 0xf8, 0x71, 0x31, 0xcf, 0x56, 0x51, 0x46, 0x6f, 0x39, 0x19, + 0x9b, 0x21, 0x43, 0xbc, 0xf4, 0x92, 0x7f, 0x46, 0x6f, 0x13, 0xb2, 0xc8, 0x06, 0x10, 0x93, 0xcf, + 0xff, 0x98, 0x41, 0xad, 0x90, 0xf7, 0x12, 0x12, 0x77, 0x1c, 0x27, 0x41, 0x9c, 0x01, 0x7d, 0x47, + 0xa0, 0x9f, 0x9e, 0x5b, 0x9c, 0x77, 0x05, 0x58, 0xbc, 0x6b, 0x9c, 0xad, 0x76, 0x6c, 0x65, 0xcc, + 0x6a, 0x49, 0x78, 0x93, 0x30, 0xe6, 0x70, 0xa1, 0xf8, 0x99, 0xd5, 0x24, 0xa4, 0x88, 0x6f, 0x98, + 0x54, 0xe3, 0xdd, 0x13, 0x05, 0x35, 0xd8, 0xc2, 0x55, 0x81, 0x54, 0x43, 0xc5, 0x13, 0x62, 0xca, + 0xef, 0x3c, 0x3d, 0x96, 0xcb, 0x82, 0xd7, 0xd4, 0x23, 0x03, 0xf0, 0x03, 0x07, 0x69, 0x1d, 0x89, + 0xdf, 0xdd, 0x0d, 0x67, 0xa3, 0xde, 0x7b, 0x7c, 0x1c, 0xbe, 0xe0, 0x0c, 0x55, 0x90, 0x06, 0x73, + 0x18, 0x67, 0xc2, 0x27, 0xd7, 0x3b, 0xef, 0xc1, 0x78, 0x69, 0x55, 0x20, 0x8c, 0xb3, 0x96, 0xad, + 0xfb, 0x33, 0x0a, 0xbd, 0x79, 0x00, 0xf6, 0x75, 0x82, 0x85, 0x30, 0x23, 0x21, 0xa8, 0x67, 0xdf, + 0xd1, 0xd5, 0x09, 0xc4, 0x71, 0xc9, 0x3b, 0x8c, 0xc7, 0x1c, 0xf7, 0xe8, 0x90, 0x33, 0x35, 0xf5, + 0x9b, 0x57, 0x5f, 0x4d, 0x05, 0x3e, 0x4a, 0xce, 0xeb, 0xe2, 0x1e, 0x31, 0x1e, 0x57, 0xa4, 0x53, + 0x58, 0x36, 0x65, 0x4d, 0xb6, 0x61, 0x09, 0xab, 0x2d, 0x30, 0x2c, 0x5d, 0x92, 0xec, 0x3a, 0xb7, + 0x8d, 0x8f, 0xde, 0x7c, 0x69, 0x68, 0xec, 0x4f, 0x3c, 0x9b, 0x2a, 0x53, 0x8f, 0x3e, 0xd9, 0xac, + 0xe3, 0xb1, 0x7b, 0x59, 0xab, 0xe3, 0x99, 0xfa, 0x1a, 0x71, 0x85, 0x82, 0x8a, 0x44, 0x9c, 0x5b, + 0xba, 0xa4, 0x60, 0xdf, 0x98, 0xa7, 0x0a, 0xb9, 0x3d, 0x32, 0x81, 0xfb, 0xc8, 0x8b, 0x69, 0xda, + 0x62, 0x1a, 0xa9, 0x8a, 0xa1, 0x0e, 0x1b, 0x5a, 0xcf, 0x32, 0x7f, 0x1a, 0x7a, 0x4e, 0xd1, 0xa1, + 0xeb, 0xaf, 0xa6, 0x77, 0x6c, 0xd5, 0xa8, 0x29, 0xdc, 0xa6, 0x37, 0xf2, 0x49, 0x0f, 0x65, 0x36, + 0x36, 0x17, 0xff, 0xa9, 0x87, 0xad, 0xc6, 0x7f, 0x6a, 0x49, 0xf3, 0x4f, 0x80, 0x89, 0xba, 0x8d, + 0xd2, 0x08, 0x0f, 0x00, 0x35, 0xed, 0x41, 0x93, 0x80, 0x00, 0xcf, 0x29, 0x12, 0x7f, 0x45, 0x16, + 0x10, 0x49, 0xc1, 0x58, 0x48, 0x26, 0xfe, 0xd1, 0xe6, 0x12, 0xc6, 0x5e, 0x9a, 0xff, 0xeb, 0xa7, + 0x34, 0x67, 0x27, 0xc2, 0xb8, 0xdb, 0x32, 0x85, 0xa5, 0xd7, 0x65, 0xe2, 0xa1, 0xff, 0x67, 0x53, + 0x23, 0x47, 0x80, 0x6b, 0x3f, 0xc3, 0xc4, 0xb6, 0x38, 0x55, 0xc9, 0xa9, 0x33, 0xe0, 0x40, 0xb8, + 0x16, 0xc9, 0x4a, 0xe8, 0xf8, 0x59, 0x64, 0x8a, 0x92, 0x8d, 0x0d, 0x17, 0xf7, 0x00, 0x48, 0x78, + 0x55, 0x66, 0x95, 0x21, 0xdb, 0x31, 0x28, 0xa9, 0xe2, 0xe1, 0x33, 0x14, 0xe8, 0x09, 0x07, 0x57, + 0x50, 0x62, 0xfc, 0x4a, 0xbe, 0x99, 0x96, 0x8b, 0x4a, 0xbe, 0x02, 0xfa, 0xfb, 0xd7, 0xb9, 0x69, + 0xec, 0x50, 0xa9, 0x15, 0x34, 0xbe, 0x39, 0x09, 0xff, 0x24, 0xc5, 0xd8, 0xef, 0xe3, 0xef, 0x22, + 0x8b, 0xb7, 0x84, 0xc7, 0x58, 0x60, 0x49, 0x71, 0x4e, 0xb7, 0xc4, 0x7e, 0xe1, 0x02, 0x8b, 0xcf, + 0xea, 0x5c, 0x5c, 0x34, 0xdc, 0x93, 0x02, 0x8b, 0x8a, 0xc4, 0xb2, 0x0b, 0xcf, 0x16, 0x35, 0x91, + 0xe0, 0xce, 0x33, 0xba, 0x8b, 0x82, 0x87, 0xf0, 0xbc, 0xdd, 0x90, 0x40, 0x2f, 0xf1, 0xc5, 0x6c, + 0x5f, 0x41, 0x41, 0xe9, 0x30, 0x90, 0xaa, 0x7d, 0x44, 0xb5, 0x70, 0x1c, 0xc8, 0x0d, 0x9c, 0xb1, + 0xc6, 0xce, 0x0d, 0xb5, 0x31, 0xac, 0x40, 0x3e, 0x57, 0x65, 0x53, 0x7e, 0xaf, 0x79, 0x99, 0xcf, + 0x89, 0x35, 0x92, 0x5a, 0xe6, 0x53, 0xcb, 0xb9, 0x52, 0x49, 0x64, 0xe4, 0x22, 0x6e, 0x71, 0x52, + 0x54, 0xcb, 0x08, 0x1d, 0xcf, 0x12, 0x31, 0x38, 0x01, 0x59, 0xba, 0x30, 0x7d, 0x0b, 0x84, 0x0f, + 0xab, 0x4a, 0x9f, 0x17, 0xd7, 0x18, 0x1a, 0x12, 0x97, 0x84, 0xd3, 0xa3, 0xfc, 0x01, 0x28, 0xc5, + 0xc0, 0x3f, 0x28, 0x43, 0xc3, 0x3c, 0x05, 0xb1, 0x08, 0x73, 0x48, 0x1e, 0xdb, 0xc4, 0x93, 0x3c, + 0x5e, 0xe2, 0x6f, 0x08, 0x55, 0x5e, 0x35, 0x84, 0x09, 0x2a, 0x34, 0xd5, 0x08, 0x9c, 0xc6, 0x7e, + 0xc6, 0x85, 0x81, 0xf5, 0x3d, 0xb7, 0x15, 0x18, 0xc0, 0x3c, 0x74, 0x71, 0x1d, 0x0b, 0xf2, 0xc0, + 0x4e, 0xbf, 0x7d, 0x65, 0x7e, 0xf9, 0x2c, 0xe7, 0x57, 0xea, 0xc0, 0x4d, 0x81, 0xa2, 0x48, 0x9c, + 0x13, 0xb7, 0xfc, 0x13, 0x92, 0x09, 0xfc, 0x15, 0x12, 0xa8, 0x02, 0xbe, 0xa1, 0x9f, 0x98, 0xb6, + 0x49, 0xc8, 0x5f, 0x41, 0x77, 0xb0, 0x2d, 0xf1, 0x3c, 0xdd, 0x10, 0xab, 0xe4, 0x79, 0x8e, 0xea, + 0xd4, 0x4f, 0x58, 0x42, 0x93, 0xc9, 0x39, 0x0c, 0xaf, 0xd3, 0xfe, 0x96, 0xd9, 0x72, 0x60, 0xed, + 0x0f, 0x45, 0xba, 0xc6, 0xa3, 0x46, 0xc0, 0xa4, 0xd1, 0x28, 0xd0, 0x49, 0x89, 0xd5, 0x0c, 0xf1, + 0x6c, 0x49, 0x60, 0xb6, 0x73, 0x53, 0x30, 0xf1, 0x48, 0x54, 0x10, 0xf6, 0x58, 0xe8, 0xe2, 0xf4, + 0x4e, 0xa1, 0x04, 0x86, 0xdb, 0x65, 0xbe, 0x25, 0x81, 0xf3, 0x71, 0xda, 0xa1, 0xae, 0x59, 0x7e, + 0x99, 0x2a, 0x7a, 0x3a, 0x11, 0x70, 0xcd, 0x49, 0x46, 0x83, 0xec, 0x5c, 0x44, 0xdc, 0x9a, 0x8c, + 0xd0, 0x3a, 0xe9, 0x84, 0xcf, 0x33, 0xb0, 0xa0, 0xc7, 0x1f, 0x3c, 0xc8, 0x40, 0x83, 0x46, 0x7f, + 0xe4, 0x1c, 0x83, 0x7f, 0xe4, 0x6e, 0xa8, 0x77, 0x48, 0x6c, 0x5b, 0x6c, 0x4c, 0xc0, 0xd6, 0x04, + 0x5c, 0x70, 0xe9, 0xe9, 0xe7, 0xd8, 0x03, 0x0e, 0x71, 0x51, 0xef, 0xe5, 0x30, 0x41, 0x7a, 0x6e, + 0x4f, 0xb2, 0xfa, 0xce, 0xe1, 0x8e, 0x85, 0xe3, 0xfb, 0x44, 0xaf, 0xa3, 0x8b, 0x2d, 0x1e, 0xe0, + 0xc0, 0x88, 0x32, 0x74, 0x56, 0xd4, 0x7c, 0x47, 0x2d, 0x05, 0x21, 0x8c, 0xed, 0x7c, 0xd4, 0xd1, + 0x0b, 0x7d, 0xe5, 0x71, 0x2e, 0x80, 0x08, 0xbc, 0x34, 0x28, 0xa0, 0x4b, 0xdc, 0xc6, 0xbc, 0xc3, + 0xf6, 0x77, 0xc8, 0x9f, 0x48, 0x18, 0xb7, 0x9e, 0x28, 0x79, 0x53, 0x4b, 0x4d, 0xf5, 0x15, 0xa7, + 0xe1, 0x82, 0x2c, 0x09, 0x04, 0x09, 0x5f, 0x41, 0x81, 0x16, 0x25, 0x98, 0x9e, 0x8a, 0x97, 0x44, + 0x7c, 0x6a, 0xa9, 0x3e, 0x56, 0x85, 0xf5, 0xce, 0x3b, 0x3b, 0xcd, 0xfb, 0xc8, 0x91, 0x8f, 0x69, + 0x47, 0xaa, 0x19, 0xdf, 0xc8, 0x91, 0x5d, 0x98, 0x44, 0x39, 0xba, 0xb4, 0xeb, 0x8b, 0x51, 0xfe, + 0x2a, 0x34, 0xc8, 0x1f, 0x3d, 0x92, 0xdf, 0xea, 0x49, 0x84, 0x7e, 0xfe, 0xe5, 0x25, 0xb4, 0xd7, + 0x4b, 0x2c, 0x45, 0xfa, 0x59, 0x5b, 0x16, 0x6a, 0x46, 0x9f, 0x53, 0x6f, 0xd1, 0x10, 0xd8, 0x96, + 0x41, 0xd0, 0x8f, 0x22, 0x43, 0xef, 0xab, 0xa1, 0x80, 0xa3, 0x2e, 0x61, 0x9c, 0x18, 0xc7, 0x14, + 0x4e, 0x2e, 0x94, 0x1a, 0x17, 0x8f, 0x81, 0x84, 0x42, 0x4b, 0xd1, 0xa8, 0xe7, 0x7f, 0xb5, 0xc9, + 0xb8, 0xe0, 0x08, 0xdc, 0x85, 0x3a, 0xec, 0xd8, 0x7f, 0x84, 0x70, 0xd0, 0x3a, 0x40, 0xc9, 0x26, + 0x50, 0x91, 0x55, 0xd4, 0xa2, 0x17, 0x8e, 0xba, 0x47, 0xbe, 0xb3, 0xe1, 0x80, 0x52, 0x15, 0x9b, + 0x23, 0xd0, 0xb0, 0x51, 0x3f, 0x5c, 0x34, 0x83, 0x67, 0xaa, 0xae, 0xc4, 0x5c, 0x83, 0x96, 0xb5, + 0xf1, 0xc8, 0x55, 0xf1, 0x67, 0x3d, 0xb1, 0xac, 0xa1, 0x20, 0x9b, 0x14, 0xdf, 0x8c, 0xec, 0xac, + 0xa3, 0x2e, 0xce, 0x17, 0x22, 0xee, 0x31, 0x3f, 0xe3, 0x0e, 0xaa, 0x50, 0x2f, 0xe7, 0xea, 0xea, + 0xcc, 0xbc, 0x3f, 0x34, 0x23, 0x42, 0x91, 0x9d, 0x35, 0x96, 0x88, 0xf6, 0x6b, 0x40, 0x7b, 0x7a, + 0x1d, 0xcf, 0xe2, 0xc3, 0x92, 0xe4, 0x88, 0x55, 0x74, 0x7d, 0x20, 0x2e, 0xca, 0x62, 0x96, 0x6c, + 0x17, 0xc2, 0x88, 0x60, 0x92, 0x7e, 0xaa, 0xf3, 0xcd, 0xf4, 0x6c, 0xcb, 0x83, 0xba, 0x12, 0x3f, + 0x54, 0x92, 0xc3, 0x03, 0x89, 0xb9, 0x04, 0x6a, 0x56, 0xdb, 0xcf, 0x53, 0x43, 0xee, 0x8e, 0x64, + 0x58, 0x67, 0x4e, 0xd7, 0x1a, 0x9d, 0x58, 0x6d, 0x15, 0x78, 0x85, 0x91, 0x4e, 0x28, 0x49, 0x13, + 0xfa, 0xcf, 0x42, 0xa6, 0x6a, 0x28, 0x39, 0x2b, 0x9b, 0xd9, 0x5f, 0xbf, 0x4c, 0x50, 0x44, 0xb1, + 0xb3, 0xc0, 0xab, 0x85, 0x04, 0xca, 0x6c, 0xc2, 0x48, 0xb3, 0xdd, 0xa1, 0xa2, 0x4b, 0x20, 0xb5, + 0xf1, 0x6d, 0x01, 0x80, 0x43, 0xc7, 0xd2, 0xf5, 0x79, 0x94, 0xba, 0xf0, 0x4c, 0x00, 0x95, 0x55, + 0x6b, 0xaa, 0x17, 0x50, 0x04, 0x4f, 0x0f, 0x88, 0x52, 0x58, 0xf5, 0x52, 0xa5, 0xd8, 0x68, 0x0d, + 0x9e, 0xcf, 0x84, 0xc4, 0x95, 0xc6, 0xe3, 0x4e, 0xbf, 0x5b, 0x1a, 0x30, 0x12, 0x0a, 0x96, 0x8d, + 0xe7, 0xb5, 0xc2, 0xa7, 0xfa, 0x43, 0x9f, 0xe7, 0x26, 0xe8, 0x63, 0xc0, 0xf5, 0xdc, 0x28, 0xca, + 0x83, 0x2a, 0xe5, 0xc4, 0xb2, 0xb2, 0xaf, 0x7a, 0xeb, 0x27, 0x86, 0x9c, 0x5d, 0x51, 0x78, 0x01, + 0x4c, 0x78, 0x12, 0x6d, 0x46, 0xcf, 0xbc, 0x92, 0x25, 0xfb, 0xd2, 0x1c, 0xab, 0xb6, 0xe7, 0x81, + 0x8f, 0xf3, 0xbc, 0x8e, 0xf1, 0xc8, 0xb7, 0xbc, 0xc0, 0x29, 0x18, 0xc8, 0x81, 0xcb, 0x7d, 0xae, + 0x87, 0xb2, 0x1a, 0x7a, 0x63, 0x59, 0xce, 0xe6, 0xd4, 0x68, 0x87, 0xf2, 0x7a, 0xa1, 0xcb, 0x43, + 0x05, 0x90, 0x51, 0xb0, 0xd5, 0x93, 0x59, 0x0d, 0x9b, 0x41, 0xf8, 0x71, 0x54, 0xd9, 0x16, 0xd2, + 0xf7, 0x27, 0x89, 0x45, 0x03, 0x23, 0x63, 0x3e, 0xdb, 0xb6, 0x86, 0x27, 0x12, 0x96, 0x7c, 0xa5, + 0x57, 0x60, 0x2e, 0xff, 0x1e, 0x5c, 0xb5, 0xb8, 0x3c, 0xcf, 0x4e, 0x76, 0xd5, 0xc7, 0xdc, 0xaa, + 0x8f, 0x79, 0xfc, 0xe8, 0x45, 0xb2, 0x4d, 0x2c, 0xc9, 0x75, 0xbd, 0xa2, 0x86, 0x83, 0x15, 0xdf, + 0xb6, 0xc9, 0x19, 0xb4, 0x20, 0x4c, 0xed, 0x92, 0x6c, 0xf7, 0xa2, 0x67, 0x7e, 0x1d, 0xa3, 0xa7, + 0xed, 0x82, 0x39, 0xd1, 0xab, 0x20, 0x62, 0x4c, 0x64, 0x45, 0x5a, 0x8a, 0x1e, 0x57, 0x62, 0x67, + 0xe7, 0x26, 0x92, 0x9f, 0x0b, 0x15, 0xcb, 0x45, 0xe8, 0xa4, 0x66, 0x07, 0x72, 0x2b, 0x7d, 0xb4, + 0x16, 0x15, 0x43, 0x93, 0xc6, 0x36, 0x4a, 0xc3, 0xa6, 0xc7, 0x35, 0x4b, 0xe0, 0x08, 0xab, 0x16, + 0xc9, 0x10, 0x5b, 0xb6, 0xbf, 0x6c, 0x8c, 0x34, 0x98, 0xf0, 0xca, 0xb2, 0xce, 0xdf, 0x28, 0x3b, + 0x5a, 0x51, 0x36, 0xb6, 0xc0, 0xcb, 0xea, 0xc6, 0x62, 0x61, 0x4c, 0x4b, 0x82, 0xd2, 0xbb, 0xb2, + 0xac, 0x8a, 0x61, 0x51, 0x63, 0x4b, 0xbe, 0xb6, 0x9d, 0xf5, 0xf1, 0x8a, 0x72, 0x24, 0x3c, 0x7d, + 0xb4, 0x24, 0x77, 0xfa, 0x8a, 0x3d, 0x36, 0xe9, 0x0d, 0xd3, 0x89, 0x85, 0xc5, 0x7e, 0x61, 0x1e, + 0xf3, 0x41, 0x29, 0x7c, 0xdb, 0x93, 0x8c, 0xd2, 0x62, 0xd8, 0x26, 0xf4, 0x93, 0x06, 0xab, 0xa2, + 0x1a, 0xa7, 0x67, 0x08, 0xfb, 0xf1, 0xdd, 0x57, 0x47, 0xb9, 0xfb, 0x09, 0xe6, 0xe2, 0x0f, 0xca, + 0x3d, 0x41, 0x0b, 0xf2, 0xf7, 0x01, 0x32, 0x9e, 0x19, 0x46, 0x5d, 0x30, 0x36, 0x71, 0x6c, 0xda, + 0x41, 0xf7, 0xae, 0x55, 0x8c, 0x5c, 0x5e, 0xe8, 0x17, 0xb1, 0x55, 0x7d, 0xe7, 0x14, 0xf6, 0x68, + 0x4f, 0x28, 0xd8, 0x7e, 0xaf, 0xcc, 0x0a, 0xce, 0xbd, 0x04, 0xa0, 0xc8, 0x00, 0x79, 0x58, 0x7a, + 0x86, 0xce, 0xf7, 0x40, 0xd9, 0x9d, 0xc4, 0x41, 0x71, 0x7f, 0xf2, 0xf7, 0x80, 0x98, 0x78, 0x07, + 0x8a, 0x5e, 0x14, 0x29, 0x7a, 0x99, 0x0c, 0x3d, 0xf0, 0xed, 0x1f, 0xca, 0xfa, 0x28, 0xb0, 0xbc, + 0x4e, 0xa2, 0xb4, 0x23, 0xcd, 0x8c, 0x15, 0x4b, 0x25, 0x9e, 0x15, 0x24, 0xfb, 0x1c, 0x97, 0x8a, + 0x0d, 0xa3, 0xc6, 0x9b, 0xce, 0x13, 0x41, 0x2d, 0x9e, 0x00, 0x65, 0xc4, 0x9a, 0x21, 0x89, 0x05, + 0x82, 0xc9, 0x18, 0x37, 0xea, 0xc4, 0x95, 0x83, 0xc3, 0x17, 0x6c, 0xa3, 0x6e, 0x31, 0xb0, 0x5a, + 0x47, 0x1b, 0x7d, 0x8f, 0x7a, 0x42, 0x7b, 0xa1, 0xd5, 0xa8, 0x9d, 0x8f, 0x99, 0xd7, 0xf5, 0x60, + 0x7b, 0xe2, 0xff, 0xfd, 0xef, 0xff, 0x27, 0xee, 0x4e, 0x80, 0x56, 0xb2, 0x54, 0x24, 0x54, 0xe3, + 0x05, 0xc0, 0xda, 0xef, 0xf4, 0x28, 0xf0, 0xf1, 0x7d, 0xb7, 0x43, 0xff, 0xc7, 0xff, 0x85, 0x1d, + 0xfa, 0xf2, 0x85, 0x4b, 0xfb, 0x7f, 0xfe, 0xef, 0xed, 0x85, 0x4e, 0x72, 0x3d, 0xa9, 0x2e, 0xef, + 0x3c, 0x27, 0x71, 0x30, 0xae, 0x72, 0x8d, 0x71, 0x44, 0xa8, 0x01, 0x84, 0x32, 0x2d, 0x72, 0xf5, + 0x8e, 0xc7, 0x7a, 0x5c, 0xdc, 0x40, 0xc7, 0xab, 0x5f, 0xea, 0xde, 0xb9, 0xca, 0x0c, 0xb1, 0xc0, + 0x9a, 0x36, 0xce, 0x27, 0xe6, 0x81, 0x09, 0x3d, 0x11, 0x49, 0x46, 0xd4, 0x5f, 0x1f, 0x13, 0x19, + 0x6b, 0x82, 0x71, 0x48, 0xb8, 0x14, 0xbc, 0xfa, 0x47, 0x12, 0x7d, 0xa2, 0xd5, 0x35, 0x6b, 0x8b, + 0xfc, 0xc5, 0xb0, 0x55, 0xfe, 0x06, 0x0b, 0x6e, 0x0b, 0x3a, 0x75, 0x51, 0xe8, 0xda, 0xe6, 0x40, + 0x10, 0x93, 0x0e, 0x5b, 0x0b, 0xf5, 0xf0, 0x99, 0xa5, 0x9f, 0xf4, 0x22, 0x25, 0x72, 0xff, 0x8c, + 0xaa, 0x91, 0x20, 0x29, 0xd8, 0x0b, 0xe2, 0x41, 0xa0, 0x0f, 0xe6, 0xc4, 0x64, 0x87, 0x16, 0x2a, + 0x66, 0x1a, 0x08, 0x6e, 0x94, 0x59, 0x5c, 0xd5, 0xe8, 0x78, 0xc8, 0x60, 0x96, 0xee, 0xcf, 0xe1, + 0xc9, 0x6f, 0x0a, 0x1c, 0xb4, 0x4a, 0x93, 0x5d, 0x06, 0xc3, 0x8b, 0x25, 0xe2, 0x9f, 0xe5, 0xaf, + 0x51, 0xdc, 0xc1, 0xd0, 0xc8, 0x77, 0x98, 0xa8, 0x8a, 0xbd, 0x83, 0x97, 0xa6, 0x90, 0x20, 0x8a, + 0x46, 0xdd, 0x8d, 0x49, 0xae, 0x4d, 0xea, 0xce, 0x66, 0x61, 0x03, 0x18, 0xdd, 0xb7, 0x62, 0xf9, + 0xd7, 0x2f, 0x67, 0xb3, 0x54, 0xc0, 0xe7, 0x4a, 0x16, 0x9f, 0x2b, 0x25, 0x7c, 0xce, 0xe6, 0xf2, + 0xf8, 0x02, 0x8a, 0xf0, 0x96, 0x58, 0x87, 0xae, 0x6d, 0x8a, 0xf2, 0xb4, 0x6e, 0x90, 0x42, 0x06, + 0x29, 0x64, 0x90, 0x42, 0x06, 0x29, 0x64, 0x90, 0x42, 0x06, 0x2d, 0x64, 0xf0, 0x85, 0x58, 0x3c, + 0xa4, 0x44, 0x82, 0xf4, 0xce, 0x8b, 0xbd, 0xb4, 0x25, 0x7e, 0x13, 0xab, 0x13, 0x29, 0xc9, 0x86, + 0x14, 0xb1, 0x5b, 0x11, 0xcb, 0x79, 0x38, 0xef, 0x54, 0x4a, 0xd2, 0x71, 0xd0, 0x18, 0x29, 0x19, + 0x79, 0x66, 0xd0, 0x0d, 0xb0, 0xea, 0xa7, 0x0c, 0x6f, 0x86, 0x18, 0x28, 0x2f, 0xea, 0x7d, 0x13, + 0xb8, 0xe0, 0xd8, 0xf9, 0xf5, 0xcb, 0x0f, 0x92, 0x3e, 0x76, 0xbe, 0x65, 0x7e, 0xfd, 0x4a, 0x24, + 0xc6, 0x0e, 0x09, 0x3e, 0x7b, 0xaf, 0xb6, 0x9a, 0x00, 0x6f, 0xd5, 0x4d, 0x24, 0x58, 0x50, 0xdc, + 0x15, 0x21, 0x4c, 0xb7, 0xc4, 0xb1, 0x03, 0xaa, 0x13, 0xfc, 0x45, 0x33, 0x0d, 0x31, 0xdb, 0x10, + 0x2b, 0x0e, 0xb5, 0xdd, 0x44, 0x4b, 0xf5, 0x4d, 0xc7, 0x25, 0xf6, 0xa2, 0xa4, 0x98, 0xc6, 0x12, + 0x52, 0xaa, 0xa5, 0x19, 0x8a, 0x3d, 0xbd, 0x21, 0xe6, 0x53, 0x12, 0x7e, 0xb3, 0x35, 0x04, 0x2e, + 0x64, 0x8b, 0xf2, 0xd8, 0x49, 0xe1, 0x69, 0x3a, 0xc7, 0x41, 0x45, 0x1f, 0xad, 0x2b, 0x88, 0x63, + 0x76, 0x13, 0x80, 0x6f, 0x80, 0x82, 0xf9, 0x48, 0x8c, 0xfd, 0xdb, 0xa4, 0x90, 0xaf, 0x0d, 0xf3, + 0x01, 0x49, 0x49, 0x01, 0x89, 0xee, 0x5b, 0x90, 0x33, 0x83, 0xd2, 0x2c, 0x14, 0xa1, 0x8e, 0x0b, + 0x2a, 0x21, 0xc9, 0xdc, 0x0b, 0x61, 0xb8, 0xfc, 0x65, 0x3d, 0x5e, 0x5c, 0x5e, 0x39, 0x6a, 0x21, + 0xf2, 0xc2, 0x51, 0x7e, 0x34, 0xf8, 0xa0, 0xee, 0xcf, 0x36, 0x37, 0x45, 0x4e, 0xcf, 0x39, 0x5b, + 0x89, 0xe0, 0x68, 0xb5, 0x23, 0x85, 0x44, 0x7b, 0x7a, 0x97, 0xd1, 0x97, 0x2f, 0xa1, 0x63, 0xbc, + 0x8e, 0x24, 0x55, 0xb9, 0xd3, 0x77, 0x74, 0x51, 0x40, 0x23, 0x09, 0x64, 0xd8, 0x62, 0xbf, 0x55, + 0xb7, 0x16, 0x62, 0x22, 0x8e, 0x6c, 0x60, 0x2c, 0x4e, 0xa5, 0xd3, 0xc4, 0xaf, 0xb0, 0x1a, 0xcc, + 0xe7, 0x73, 0x0a, 0x64, 0x72, 0xb3, 0x1a, 0x01, 0xf1, 0x6f, 0x07, 0x51, 0x94, 0xb9, 0x73, 0xe3, + 0x94, 0xb6, 0xe4, 0x6c, 0x11, 0x0d, 0x66, 0x63, 0x16, 0xf5, 0x97, 0xb6, 0x80, 0x81, 0x23, 0x49, + 0x03, 0xb6, 0xfa, 0xea, 0x9c, 0xaa, 0x3d, 0x45, 0xaf, 0x87, 0xe9, 0x32, 0xe8, 0x97, 0x17, 0xd3, + 0x91, 0xcc, 0x68, 0x36, 0x99, 0xe9, 0xee, 0x0e, 0xee, 0x75, 0xb6, 0xdb, 0x40, 0x10, 0x5e, 0x6a, + 0xa6, 0x46, 0xee, 0x7f, 0x42, 0xef, 0x23, 0x39, 0xaa, 0xca, 0xb0, 0x80, 0x44, 0x2a, 0x1e, 0x40, + 0x23, 0xd7, 0x43, 0xa9, 0x29, 0x43, 0xc7, 0x8c, 0xf4, 0x2e, 0x27, 0xf2, 0xd6, 0x19, 0xda, 0xec, + 0x46, 0x27, 0xf2, 0xea, 0xd2, 0xac, 0xfb, 0x0a, 0x46, 0xb1, 0xc4, 0x84, 0x2e, 0x3c, 0x05, 0xd7, + 0x46, 0xa9, 0xa9, 0x61, 0xc7, 0x42, 0x6f, 0x7c, 0xa3, 0x13, 0xb9, 0xd3, 0x09, 0x24, 0x5a, 0x9d, + 0xf0, 0x7b, 0x98, 0x29, 0xf8, 0x8c, 0x57, 0x30, 0x31, 0xe6, 0x4c, 0x6e, 0x85, 0xa3, 0x9d, 0x73, + 0x5d, 0xbf, 0x57, 0xae, 0x9d, 0xce, 0x66, 0xe4, 0x98, 0xf3, 0x95, 0x8c, 0x2c, 0x32, 0xc0, 0x96, + 0x32, 0xec, 0xea, 0x0e, 0x5f, 0xb1, 0xa8, 0xfb, 0xf7, 0x51, 0x45, 0x5c, 0x0d, 0x12, 0xc1, 0x71, + 0x4a, 0xde, 0xe9, 0x00, 0x20, 0x96, 0x21, 0xf6, 0x0c, 0xf2, 0xf9, 0xbb, 0xfb, 0x03, 0xe3, 0x22, + 0x07, 0x67, 0x1d, 0x08, 0x3f, 0x77, 0xa1, 0xa1, 0x2c, 0x8d, 0x6b, 0x46, 0x72, 0xc0, 0x7a, 0x0f, + 0x42, 0xc2, 0x37, 0xca, 0xec, 0x5d, 0xe4, 0x8e, 0x39, 0xb6, 0xee, 0x87, 0x2e, 0x54, 0x20, 0x66, + 0x9b, 0xf6, 0x77, 0xae, 0xe2, 0x1f, 0xac, 0xb7, 0xbf, 0xea, 0x9f, 0x3e, 0x25, 0xb2, 0x5f, 0xf4, + 0x40, 0xa1, 0x22, 0x29, 0x65, 0x96, 0x02, 0xfd, 0x27, 0xef, 0x05, 0x78, 0xf7, 0x4d, 0x77, 0x58, + 0x89, 0x43, 0x4c, 0x98, 0x68, 0x7f, 0x41, 0x77, 0x82, 0xb8, 0xc6, 0x14, 0xae, 0x95, 0x85, 0x46, + 0x22, 0x6d, 0xf8, 0x4d, 0x20, 0x11, 0x29, 0xde, 0x8a, 0xc0, 0x99, 0x85, 0xcf, 0x4d, 0xc1, 0x83, + 0x3a, 0xb3, 0x04, 0x07, 0x1a, 0x3e, 0xbc, 0xb2, 0x13, 0xe2, 0x71, 0x5b, 0x75, 0xc1, 0xee, 0xa4, + 0xc9, 0x80, 0xbd, 0x9e, 0xad, 0xa9, 0x9b, 0xb8, 0x57, 0xb9, 0xbe, 0x2e, 0x99, 0xa1, 0xdd, 0xbb, + 0xba, 0x82, 0xea, 0x1b, 0x24, 0x91, 0x78, 0xdf, 0xa1, 0xdd, 0xbb, 0xe0, 0x53, 0x36, 0xf2, 0xa9, + 0x15, 0x7c, 0xca, 0xfd, 0xe0, 0xd4, 0xd2, 0x44, 0x28, 0xd7, 0x38, 0xc8, 0x85, 0xa1, 0xc0, 0xd9, + 0x1d, 0x32, 0x26, 0x89, 0xb0, 0x87, 0x6e, 0x1d, 0x41, 0xa0, 0x60, 0xbc, 0x85, 0xcc, 0xb3, 0x63, + 0x41, 0x99, 0x36, 0x48, 0xab, 0xe4, 0x07, 0xba, 0xec, 0xfb, 0xd2, 0x90, 0x69, 0xd3, 0xf0, 0xc9, + 0x93, 0x7c, 0x97, 0xe4, 0x45, 0xfd, 0xdf, 0xff, 0xee, 0x4c, 0xe4, 0x78, 0xed, 0xdf, 0xcf, 0xa1, + 0x85, 0x72, 0xa0, 0xee, 0x1f, 0x54, 0x9e, 0xdd, 0xc2, 0x3f, 0xd5, 0x8c, 0x1c, 0x31, 0x00, 0x04, + 0x39, 0x72, 0x98, 0x23, 0x17, 0xc9, 0x91, 0xe7, 0x73, 0xe4, 0x31, 0x47, 0xbe, 0x8a, 0x67, 0x89, + 0x49, 0x48, 0x50, 0x12, 0x67, 0x83, 0x3d, 0xd3, 0x55, 0x40, 0x43, 0xcf, 0x01, 0x6f, 0x1b, 0xcb, + 0xfb, 0x40, 0xb6, 0xad, 0xb2, 0x99, 0x2a, 0x7c, 0x0c, 0xb6, 0x06, 0x06, 0xe8, 0x06, 0x24, 0x74, + 0xfd, 0x63, 0xe1, 0x9f, 0xc4, 0x5a, 0x0b, 0x18, 0xd2, 0x0b, 0xdd, 0xe4, 0xca, 0x66, 0x31, 0x37, + 0x06, 0x3e, 0x50, 0x0d, 0x73, 0xd8, 0xeb, 0x0b, 0x8e, 0xa5, 0xb4, 0xf1, 0xc2, 0x40, 0xc1, 0xc1, + 0xd0, 0x75, 0x34, 0xca, 0x46, 0xa4, 0x48, 0x0e, 0x8b, 0xb0, 0x10, 0x8e, 0xd8, 0x02, 0xdb, 0x59, + 0x09, 0xe5, 0xc9, 0x63, 0x9e, 0x33, 0x8d, 0x5e, 0x47, 0xa8, 0xd9, 0x34, 0xba, 0x74, 0x38, 0x4b, + 0x05, 0xb3, 0x34, 0xb8, 0x9e, 0x09, 0x64, 0x18, 0x02, 0x50, 0x85, 0x60, 0xb6, 0x81, 0x09, 0xe1, + 0xa6, 0xce, 0x9c, 0xa3, 0x6b, 0xb2, 0x28, 0x91, 0x33, 0xe7, 0x24, 0x23, 0xac, 0xc7, 0xf0, 0xa2, + 0x91, 0xbd, 0x08, 0x6f, 0x12, 0x70, 0x57, 0xd4, 0x29, 0xb0, 0x44, 0xea, 0xfc, 0x0d, 0x76, 0x4a, + 0xaa, 0x3b, 0x91, 0x23, 0xde, 0x0b, 0xe1, 0x99, 0x11, 0xba, 0xb6, 0x68, 0x41, 0x5d, 0x60, 0xd1, + 0x21, 0x3f, 0xea, 0x38, 0xe4, 0x6d, 0x7d, 0xb0, 0x43, 0xe5, 0xff, 0x16, 0x79, 0x2f, 0x22, 0xe6, + 0x2b, 0x94, 0x91, 0x31, 0xe8, 0x73, 0x3d, 0xc6, 0x87, 0x88, 0x6c, 0x04, 0x62, 0xc0, 0xd5, 0xef, + 0x3f, 0xaa, 0x0e, 0xef, 0x3f, 0x44, 0xdc, 0x91, 0x0c, 0xd6, 0x0c, 0xf5, 0xeb, 0xc1, 0x90, 0x2a, + 0x98, 0x0f, 0x7f, 0x39, 0xb7, 0x1e, 0x50, 0x53, 0xbc, 0x7c, 0xdf, 0x72, 0x5e, 0xce, 0x2c, 0xcb, + 0x99, 0x0d, 0xe5, 0x34, 0x83, 0x9c, 0x79, 0x2f, 0x67, 0x8e, 0xe5, 0x0c, 0xf9, 0x24, 0xc9, 0xcc, + 0x7a, 0x3b, 0xd0, 0x8c, 0x44, 0x51, 0xe6, 0xc2, 0xc7, 0x72, 0xa4, 0xec, 0x70, 0x1c, 0x85, 0xd5, + 0x2a, 0x71, 0xbe, 0x5b, 0xc0, 0x4c, 0x9c, 0x6f, 0x5a, 0xcd, 0x41, 0x8f, 0x07, 0x84, 0x8d, 0x5d, + 0xe7, 0xca, 0x12, 0xd9, 0xbb, 0xcd, 0xa7, 0x90, 0x9b, 0x62, 0x30, 0x99, 0xca, 0x38, 0x28, 0x9c, + 0x26, 0x54, 0x10, 0x35, 0xcb, 0x5b, 0x40, 0x86, 0x12, 0x88, 0x79, 0x1e, 0xc4, 0x1d, 0xea, 0x24, + 0xa5, 0x03, 0xb7, 0x25, 0x88, 0xe2, 0x3f, 0x60, 0x62, 0xa0, 0xc2, 0xd4, 0x45, 0xc9, 0x33, 0xbe, + 0x5a, 0xf5, 0x85, 0x4f, 0x35, 0x4c, 0xa1, 0xc9, 0xbc, 0xf7, 0x91, 0x25, 0xcd, 0x43, 0x4d, 0x7d, + 0x62, 0x6d, 0x6d, 0xb5, 0x79, 0xe3, 0x33, 0x24, 0x54, 0xf9, 0x84, 0x0c, 0x89, 0x99, 0x4b, 0x49, + 0x09, 0xa6, 0x16, 0xf2, 0x99, 0x6a, 0x96, 0x4f, 0xd3, 0x7c, 0xee, 0x52, 0x15, 0x77, 0x86, 0x0e, + 0xa8, 0xc2, 0x20, 0x61, 0x3a, 0xeb, 0x40, 0x00, 0xf6, 0x72, 0x45, 0x8a, 0x38, 0x72, 0xd8, 0xf1, + 0x0a, 0xd8, 0x9c, 0x9e, 0xce, 0x0d, 0xec, 0xf2, 0xd1, 0xcd, 0xb2, 0x30, 0xa6, 0xa4, 0x14, 0xbd, + 0x22, 0x15, 0x66, 0x42, 0xd4, 0x87, 0x27, 0x21, 0x7e, 0xa6, 0x26, 0x04, 0x81, 0x57, 0xed, 0x87, + 0x68, 0xa3, 0x0c, 0xeb, 0xee, 0xbd, 0xa4, 0x88, 0x57, 0x24, 0x11, 0x4a, 0xef, 0xe2, 0xfe, 0xf5, + 0x08, 0xff, 0xe0, 0x8d, 0x89, 0x83, 0x3a, 0x32, 0xe8, 0x88, 0xd3, 0x4b, 0xcc, 0xc2, 0x13, 0x72, + 0x83, 0xc1, 0x6a, 0x5a, 0xc1, 0xf2, 0x94, 0x54, 0xc3, 0x0e, 0x6a, 0x2a, 0xc5, 0x33, 0x4e, 0x17, + 0x82, 0xe7, 0xd6, 0x12, 0x0f, 0x49, 0x39, 0x54, 0xe2, 0x93, 0x5f, 0x04, 0xab, 0x3f, 0xaa, 0x87, + 0x67, 0x61, 0x4e, 0xaa, 0xb5, 0x38, 0xac, 0x1d, 0xc9, 0x47, 0x34, 0x37, 0x8c, 0xb5, 0x9b, 0xac, + 0x8f, 0x92, 0x47, 0x49, 0xa0, 0x8c, 0x24, 0xa6, 0xe0, 0xd8, 0x30, 0x06, 0x31, 0xc5, 0x41, 0x2b, + 0x8c, 0x6a, 0x75, 0x4b, 0xdc, 0x9f, 0x10, 0x04, 0xc3, 0xd3, 0x76, 0x0f, 0x51, 0xea, 0x88, 0x35, + 0xbc, 0x6c, 0xf3, 0xcb, 0x97, 0xc1, 0x27, 0x0c, 0x2a, 0xc7, 0x2d, 0x5d, 0x2a, 0xac, 0xe7, 0xb8, + 0xb9, 0x8d, 0xf5, 0xb8, 0x5b, 0xad, 0x58, 0x2f, 0xd4, 0xea, 0xf2, 0xd1, 0xf1, 0x4d, 0x8b, 0x40, + 0x33, 0x2a, 0x86, 0x8a, 0x58, 0xd9, 0x14, 0xdd, 0x37, 0x41, 0x98, 0x9e, 0x2e, 0xc4, 0x2e, 0xea, + 0x12, 0xe4, 0x4d, 0x7d, 0x23, 0x1c, 0x06, 0xa8, 0xfe, 0x23, 0x30, 0xc9, 0x89, 0x6c, 0xf6, 0xfd, + 0xfa, 0x65, 0x46, 0x7c, 0x12, 0x4d, 0xe2, 0x92, 0x48, 0x77, 0x6f, 0xf0, 0x99, 0x7a, 0x19, 0x4c, + 0x97, 0x98, 0x38, 0x69, 0xe7, 0xd7, 0xc3, 0xb6, 0x43, 0xbe, 0x4a, 0xac, 0x62, 0x61, 0xa2, 0x5a, + 0xf5, 0x85, 0x64, 0xca, 0x7a, 0x06, 0xca, 0x04, 0x90, 0xe7, 0x33, 0x24, 0xdc, 0xb6, 0xf5, 0xe9, + 0x9e, 0x14, 0x61, 0x08, 0xb6, 0x00, 0x36, 0x78, 0x0f, 0x04, 0xa6, 0xd5, 0xb9, 0x0f, 0xfe, 0xcc, + 0x0e, 0x8d, 0xea, 0x13, 0x1b, 0xd6, 0xd6, 0x1f, 0x1c, 0x80, 0x30, 0xa1, 0xfa, 0x47, 0xc8, 0xc1, + 0x3a, 0xe2, 0x11, 0x8e, 0x07, 0x9d, 0xe9, 0xe1, 0x06, 0xfe, 0xd8, 0x25, 0xb9, 0x84, 0x8b, 0xf9, + 0xa9, 0xb7, 0xf2, 0xc4, 0x49, 0x5c, 0x20, 0x8a, 0x86, 0xc0, 0x2c, 0x98, 0x5f, 0x29, 0x05, 0xfc, + 0x57, 0x54, 0x4d, 0x16, 0x67, 0xf4, 0x17, 0xff, 0x2a, 0x4f, 0x63, 0xc9, 0x2b, 0x26, 0x06, 0x4b, + 0xe0, 0xfc, 0xb7, 0xe8, 0xcf, 0xc7, 0xdc, 0xf8, 0x88, 0x2c, 0x0e, 0x0b, 0xc5, 0xa2, 0x55, 0x33, + 0xde, 0x5c, 0x16, 0x20, 0xee, 0x4f, 0x61, 0x07, 0x30, 0x5a, 0xff, 0x4b, 0xc6, 0x23, 0xb2, 0x54, + 0x04, 0xfa, 0x55, 0xb6, 0xc6, 0x69, 0x57, 0xc1, 0xed, 0x0c, 0x5c, 0x28, 0xd6, 0xdf, 0xd3, 0xf6, + 0xa6, 0xa0, 0xed, 0x7d, 0x82, 0x59, 0xe3, 0x37, 0x21, 0xcd, 0x38, 0x6d, 0xf9, 0xd7, 0x2f, 0x5e, + 0x91, 0x5e, 0x88, 0xf2, 0x3e, 0x86, 0x05, 0x61, 0x8c, 0xf6, 0x4e, 0xd0, 0x34, 0x13, 0xbe, 0x76, + 0x28, 0x47, 0x23, 0x4e, 0xce, 0xe5, 0xbc, 0x9a, 0x97, 0xbc, 0xeb, 0x18, 0x68, 0x96, 0xfa, 0x7b, + 0x4e, 0x21, 0x8e, 0x86, 0x4e, 0x41, 0xac, 0x05, 0x54, 0x24, 0xa7, 0x44, 0x93, 0xac, 0xd7, 0xeb, + 0xbe, 0x21, 0x23, 0x75, 0x71, 0xb9, 0x77, 0x0e, 0x82, 0x01, 0x30, 0x1d, 0xcb, 0x74, 0xf0, 0xf4, + 0x1c, 0x7a, 0x8e, 0x10, 0xa5, 0x12, 0x37, 0xf4, 0xc9, 0x25, 0xc0, 0xa0, 0xb1, 0x41, 0x8f, 0xf9, + 0x80, 0xef, 0xa8, 0xec, 0xa7, 0x0c, 0x73, 0x9c, 0x90, 0x30, 0x3c, 0x96, 0x17, 0x99, 0xca, 0x57, + 0xe6, 0x28, 0xcf, 0x05, 0x89, 0x54, 0xeb, 0xc0, 0xea, 0x44, 0x1f, 0xbe, 0x7c, 0x61, 0x6e, 0x1d, + 0x9c, 0xfa, 0x47, 0x19, 0x2a, 0xb7, 0x11, 0x9c, 0xcd, 0xfc, 0xa9, 0x78, 0x7b, 0xbf, 0xe6, 0x27, + 0xd0, 0x06, 0x89, 0xf7, 0x66, 0x50, 0xa0, 0x6e, 0x4a, 0xf3, 0x04, 0x33, 0x62, 0x04, 0x21, 0xde, + 0x54, 0x2e, 0xbc, 0x73, 0x21, 0x4f, 0xbc, 0x2b, 0x50, 0x51, 0x9e, 0x1b, 0x5b, 0x63, 0x87, 0x68, + 0xa5, 0x09, 0x40, 0xc2, 0xd7, 0x99, 0x38, 0x12, 0xab, 0x78, 0x05, 0xc6, 0xfc, 0xab, 0x54, 0xa5, + 0x4e, 0x35, 0x8e, 0xef, 0x2f, 0xa3, 0xcb, 0x78, 0x81, 0x8e, 0x8a, 0x77, 0xea, 0xe2, 0xcd, 0x00, + 0xe8, 0x53, 0xb6, 0x8e, 0x9e, 0x46, 0x00, 0x0f, 0xbc, 0xa5, 0x45, 0xa3, 0x46, 0x1a, 0x02, 0xd5, + 0x9a, 0x80, 0x06, 0x31, 0xd4, 0x6e, 0x6f, 0x6f, 0xf6, 0xd7, 0xcb, 0xe2, 0x5c, 0x6e, 0x99, 0x9d, + 0x69, 0xd5, 0xe5, 0xbd, 0x6d, 0x7e, 0xc3, 0x8c, 0xf2, 0xc1, 0x00, 0xa3, 0x2e, 0x35, 0xf3, 0x7c, + 0xc4, 0xe8, 0x82, 0x84, 0xf2, 0x9b, 0x76, 0x97, 0x1e, 0x50, 0x30, 0xb3, 0x15, 0xba, 0xbe, 0x2d, + 0x61, 0x46, 0xdc, 0xc8, 0x50, 0xdb, 0xa4, 0x5b, 0xe0, 0xbe, 0x51, 0x86, 0x18, 0x20, 0x90, 0x71, + 0xd3, 0x4b, 0x53, 0x3d, 0x9d, 0x54, 0x22, 0x87, 0xdb, 0xc9, 0xad, 0x82, 0x0e, 0x8b, 0x47, 0x07, + 0x1c, 0x41, 0x0a, 0x2f, 0xe0, 0xdc, 0x17, 0xba, 0x62, 0x53, 0x6d, 0x7d, 0xe1, 0xca, 0xa2, 0x8e, + 0x36, 0x12, 0x17, 0x7c, 0x8a, 0xf9, 0x7b, 0x85, 0xf0, 0xe2, 0x84, 0x14, 0x40, 0x91, 0xf1, 0xbd, + 0x77, 0x5c, 0x9e, 0x81, 0xbd, 0xaf, 0xab, 0xb2, 0xf8, 0x9f, 0x02, 0x95, 0x93, 0x50, 0x11, 0x48, + 0x8a, 0x59, 0xe1, 0x3f, 0xc5, 0xbf, 0xe3, 0x02, 0x4d, 0x2a, 0xe5, 0x7d, 0xa0, 0xe7, 0x21, 0x5b, + 0xd5, 0x12, 0xfb, 0xd4, 0x3c, 0xb0, 0xe8, 0x2c, 0xd8, 0xa5, 0x58, 0x98, 0x43, 0xe2, 0xa7, 0x4f, + 0x81, 0x4b, 0xc3, 0x17, 0xe2, 0x8a, 0x1c, 0x73, 0xd9, 0x0c, 0x0b, 0x30, 0xca, 0xf3, 0x91, 0x15, + 0xb3, 0xfc, 0xd7, 0x2f, 0xcf, 0xc6, 0x89, 0xd7, 0xd0, 0xe4, 0x8a, 0x68, 0xf3, 0xe2, 0x6c, 0x4e, + 0x2c, 0xda, 0x21, 0xa7, 0x32, 0x61, 0x07, 0x80, 0x43, 0x3a, 0x16, 0xac, 0x23, 0xaa, 0xc8, 0xc2, + 0xd1, 0xae, 0xf2, 0xe9, 0x8a, 0xba, 0x06, 0x11, 0x37, 0x00, 0x7f, 0x63, 0x69, 0x66, 0x1a, 0x55, + 0x7a, 0x2d, 0x39, 0xfe, 0x9d, 0x13, 0x13, 0x15, 0x88, 0xd7, 0x8c, 0x7a, 0x82, 0x27, 0x66, 0xe0, + 0x0e, 0xbd, 0x3a, 0x6a, 0x8f, 0xaa, 0xe5, 0xd4, 0xfc, 0x8d, 0xb1, 0xdf, 0x89, 0x79, 0x04, 0x43, + 0xe6, 0x52, 0x3b, 0x49, 0x86, 0x9e, 0x23, 0x89, 0x96, 0x92, 0xbb, 0xf6, 0x1b, 0x5e, 0x5f, 0x4d, + 0x06, 0x1b, 0xb0, 0xfa, 0x05, 0x2f, 0xa6, 0x73, 0x3d, 0x74, 0x3d, 0x48, 0x82, 0xdc, 0x9b, 0x0e, + 0x7f, 0xa4, 0xad, 0x9f, 0x08, 0x77, 0x60, 0x6f, 0xf4, 0x38, 0x9f, 0xf0, 0x88, 0xc1, 0xd5, 0xe9, + 0x75, 0x21, 0x24, 0xb8, 0x39, 0xd1, 0x1d, 0xff, 0x98, 0x11, 0x6b, 0xd9, 0x66, 0x66, 0x4b, 0x84, + 0x95, 0xb6, 0x4a, 0x02, 0x07, 0xcc, 0x49, 0x2a, 0x46, 0x35, 0x84, 0x44, 0xdc, 0x9b, 0x00, 0x56, + 0xd2, 0x05, 0x72, 0x65, 0x1f, 0x76, 0x87, 0xf6, 0x1c, 0x0f, 0x5f, 0x12, 0xf7, 0xb1, 0x9f, 0x55, + 0x91, 0xb6, 0xd2, 0xa1, 0xc7, 0x06, 0x31, 0xda, 0x1b, 0xba, 0x1b, 0xf2, 0x7d, 0x86, 0x32, 0x55, + 0x04, 0x21, 0x74, 0x6a, 0x3e, 0x5f, 0xe8, 0x3f, 0x7a, 0x46, 0x84, 0x47, 0x10, 0xdc, 0xea, 0xee, + 0x3d, 0x49, 0x5b, 0xe2, 0x05, 0x71, 0x6c, 0x24, 0xdd, 0x27, 0x37, 0x38, 0x61, 0x80, 0x75, 0x43, + 0x75, 0xc7, 0xa6, 0xfd, 0x42, 0x87, 0x03, 0x4c, 0x5d, 0xc0, 0xfc, 0xa8, 0xc5, 0x93, 0x90, 0xed, + 0xb0, 0xd6, 0xe3, 0x75, 0x0e, 0x37, 0xf8, 0x4c, 0x87, 0x4d, 0x82, 0xb8, 0xbf, 0x5f, 0x8f, 0xa0, + 0x9b, 0x46, 0x0f, 0x32, 0x61, 0x6d, 0x29, 0xd1, 0x3b, 0xb3, 0x30, 0x43, 0x53, 0x61, 0x75, 0x86, + 0x5c, 0xb9, 0xea, 0xf5, 0x6b, 0x3e, 0xaf, 0x71, 0x31, 0x2b, 0x09, 0x92, 0x89, 0x41, 0xd1, 0xc6, + 0x08, 0x96, 0x7e, 0xe7, 0xdf, 0x41, 0x20, 0x86, 0xcc, 0x1c, 0x69, 0x2a, 0x2c, 0x49, 0x33, 0x6f, + 0xe2, 0x11, 0xef, 0x2c, 0xfa, 0x95, 0xcc, 0x3d, 0xc9, 0xbb, 0xf4, 0x3e, 0xf4, 0xe9, 0xff, 0x2b, + 0xee, 0xea, 0x97, 0xdb, 0x36, 0x92, 0xfc, 0xff, 0xf7, 0x14, 0x14, 0x92, 0x58, 0xc4, 0x0a, 0x92, + 0x40, 0xc9, 0x4a, 0x1c, 0x50, 0xa0, 0x2a, 0x67, 0x27, 0xb7, 0xaa, 0xf5, 0xfa, 0x54, 0x91, 0x37, + 0x4e, 0x4a, 0xa5, 0x5a, 0x91, 0x14, 0x28, 0xb2, 0x0c, 0x01, 0x08, 0x01, 0x7d, 0xf8, 0x28, 0x3e, + 0xc1, 0xbd, 0xcb, 0x3d, 0xe3, 0x75, 0xf7, 0x7c, 0xf5, 0x0c, 0x00, 0x92, 0xb2, 0x7d, 0x7b, 0x55, + 0x9b, 0xb5, 0x38, 0x98, 0x8f, 0x9e, 0x99, 0x9e, 0x99, 0x9e, 0x9e, 0xee, 0x5f, 0x1b, 0x75, 0xf2, + 0xdb, 0x7b, 0x64, 0xcd, 0xb7, 0xf7, 0xca, 0xbd, 0x22, 0x95, 0x55, 0xd2, 0x71, 0x08, 0x25, 0x04, + 0x8e, 0xaf, 0x49, 0x3f, 0x78, 0xe3, 0x51, 0x29, 0x8c, 0x68, 0xed, 0x44, 0xa4, 0xf6, 0x3e, 0xb2, + 0x4c, 0xb6, 0x6f, 0xdd, 0x6c, 0x82, 0x5a, 0x01, 0x72, 0x24, 0x64, 0x79, 0x3a, 0x18, 0xa4, 0xce, + 0x1b, 0x8e, 0x60, 0x81, 0x47, 0xa3, 0x74, 0x98, 0x91, 0xd9, 0xb3, 0xc8, 0x3a, 0xd8, 0x16, 0xc2, + 0xf7, 0xad, 0x55, 0xa5, 0xfb, 0xce, 0x85, 0x84, 0x6c, 0xf4, 0x9c, 0xb5, 0x14, 0x01, 0xe5, 0x1c, + 0xa1, 0x4e, 0x14, 0xaf, 0x1b, 0x5c, 0x54, 0xab, 0x84, 0x0c, 0x8c, 0xc1, 0xa1, 0x6a, 0x03, 0xf2, + 0xa9, 0x8e, 0x2a, 0xb2, 0x7a, 0x61, 0x59, 0xef, 0xb8, 0x26, 0x41, 0xd8, 0x24, 0xb3, 0xdb, 0xa1, + 0xc1, 0xc7, 0x5d, 0x6c, 0xdd, 0x4e, 0x46, 0xdf, 0xe9, 0x60, 0x87, 0x53, 0x3d, 0x85, 0x63, 0x7d, + 0x32, 0x84, 0xbd, 0x0b, 0xce, 0x75, 0x19, 0x04, 0xcb, 0xe5, 0x0d, 0x31, 0xfb, 0x0b, 0x3d, 0xfb, + 0xf5, 0x89, 0xb7, 0x38, 0xc2, 0xb0, 0x12, 0x22, 0x9a, 0x62, 0x61, 0xe4, 0x8b, 0x53, 0x71, 0xc4, + 0x59, 0xf1, 0xbc, 0x64, 0x28, 0x46, 0xf8, 0xd2, 0x38, 0x23, 0x58, 0x64, 0xa3, 0x39, 0xe1, 0xa3, + 0x74, 0xea, 0x0c, 0x92, 0xa8, 0xc4, 0x0c, 0x53, 0x6d, 0xe7, 0x92, 0x76, 0xc2, 0x8a, 0xeb, 0x1d, + 0x86, 0x5f, 0xd9, 0x37, 0x2a, 0x8b, 0x9d, 0xa3, 0x3f, 0x7c, 0x11, 0x5e, 0x4d, 0x8d, 0x8b, 0x80, + 0xab, 0x25, 0xbb, 0xe2, 0xa6, 0xce, 0x51, 0xb6, 0x67, 0xf7, 0xee, 0x9d, 0xac, 0x8f, 0xf7, 0x50, + 0xd6, 0xd4, 0xd4, 0x45, 0x3c, 0xb1, 0xd0, 0x93, 0x56, 0x9d, 0x21, 0x61, 0x50, 0x59, 0xa0, 0x87, + 0x64, 0xde, 0xab, 0x14, 0x32, 0x8d, 0x06, 0x96, 0xd5, 0x6e, 0xcf, 0xd8, 0x72, 0x06, 0xbd, 0xd0, + 0xdf, 0xd9, 0xc4, 0x15, 0x13, 0x4b, 0x95, 0xbc, 0x54, 0x14, 0xfa, 0xfd, 0x92, 0xfb, 0x5a, 0x52, + 0x48, 0x07, 0xc7, 0x85, 0xb6, 0x1c, 0xcf, 0xf3, 0x34, 0x85, 0x9a, 0xf2, 0xdf, 0x70, 0x88, 0x17, + 0xa3, 0x64, 0x3a, 0xbc, 0x9f, 0xe5, 0xf3, 0x48, 0x07, 0xf9, 0xa2, 0x05, 0x06, 0x3f, 0x29, 0xf8, + 0xd9, 0x52, 0x19, 0x2d, 0x6c, 0x00, 0x21, 0x92, 0x44, 0x14, 0x74, 0xa9, 0x19, 0xab, 0x49, 0x03, + 0x31, 0x0d, 0x1a, 0xe1, 0x71, 0xd6, 0xe0, 0xe1, 0xd4, 0xa1, 0x70, 0xaa, 0x67, 0x40, 0xe1, 0x38, + 0xe8, 0x37, 0xef, 0x40, 0x2a, 0x95, 0xce, 0xc1, 0x1d, 0xf2, 0xf2, 0x68, 0x02, 0xc0, 0x31, 0xd0, + 0x37, 0x06, 0x65, 0x81, 0xa0, 0x4a, 0x1e, 0x10, 0xbb, 0x26, 0xf6, 0x0e, 0x5f, 0x7d, 0xe7, 0x6d, + 0x08, 0x84, 0xd3, 0x52, 0xec, 0xff, 0x00, 0x15, 0x67, 0xdf, 0xe0, 0x41, 0x30, 0x92, 0x37, 0x43, + 0x5e, 0xa8, 0xd6, 0x02, 0xdf, 0x08, 0x0e, 0xd8, 0xed, 0x69, 0x1e, 0xb0, 0x81, 0x6f, 0x92, 0x36, + 0x18, 0x86, 0xaa, 0x1d, 0x86, 0xa1, 0xb2, 0x61, 0x18, 0x9e, 0x43, 0xed, 0x3a, 0xcc, 0x9b, 0xcc, + 0xc2, 0xb1, 0xf9, 0x5a, 0xb4, 0x3d, 0x07, 0x23, 0x02, 0x2a, 0xe8, 0x33, 0x87, 0xf2, 0x7e, 0x93, + 0x97, 0xfd, 0xb4, 0x06, 0x18, 0x51, 0xad, 0x05, 0x8c, 0x60, 0xf3, 0xfc, 0x35, 0x21, 0x68, 0x9e, + 0x8d, 0x3c, 0x53, 0x7d, 0x0e, 0xf2, 0x4c, 0xd8, 0x82, 0xc6, 0x52, 0xad, 0x40, 0x63, 0xa9, 0x3e, + 0x03, 0x6e, 0xa6, 0xda, 0x00, 0x6e, 0xe6, 0x76, 0x6a, 0xe1, 0xc9, 0x88, 0x9f, 0x5f, 0x44, 0x1d, + 0x8e, 0xe1, 0xb6, 0x46, 0x7e, 0x69, 0xc3, 0xf3, 0xb0, 0xf8, 0x98, 0xc0, 0x3c, 0xbe, 0x5d, 0xe8, + 0x35, 0x95, 0x2c, 0xc9, 0x9e, 0x9d, 0xc1, 0xe0, 0xb1, 0xa2, 0x63, 0x6f, 0xb0, 0x41, 0xa0, 0x20, + 0xc6, 0x74, 0xde, 0xe0, 0x35, 0x5a, 0x5a, 0xa4, 0x8c, 0x8b, 0x1c, 0xd4, 0x06, 0x85, 0xb2, 0xd7, + 0x0a, 0xb5, 0x90, 0xf2, 0x87, 0x7e, 0x5d, 0xf1, 0x62, 0x05, 0x34, 0x83, 0xb3, 0xff, 0x2b, 0x12, + 0x4b, 0x7d, 0x4b, 0x1d, 0xe5, 0x73, 0xd8, 0x89, 0x77, 0xd1, 0x97, 0xe4, 0xae, 0x8c, 0x0e, 0x5e, + 0x16, 0x8f, 0x3a, 0xce, 0x54, 0x88, 0xcb, 0xa4, 0x1d, 0x95, 0x6f, 0x25, 0xaa, 0x08, 0x21, 0x23, + 0xd4, 0xd0, 0xf8, 0x50, 0xb7, 0x27, 0x90, 0x6f, 0x37, 0xc5, 0x00, 0x5d, 0x8d, 0x6a, 0xa7, 0xcf, + 0xfb, 0x75, 0xa8, 0x19, 0xbd, 0x57, 0x43, 0x5a, 0xc1, 0xf2, 0xac, 0x11, 0x03, 0x2d, 0xfe, 0x7f, + 0x9b, 0xf4, 0x7d, 0x85, 0x08, 0xbd, 0xb3, 0x08, 0xa3, 0x45, 0x51, 0x46, 0xf8, 0xce, 0x7c, 0x7d, + 0x37, 0x8f, 0x2e, 0x40, 0x22, 0xb9, 0x0c, 0x8c, 0x42, 0x29, 0xba, 0xd8, 0xed, 0x5d, 0xc2, 0xcd, + 0x02, 0xc1, 0x44, 0xa2, 0x30, 0x98, 0x47, 0x78, 0xb1, 0x84, 0xab, 0x09, 0x5c, 0x87, 0xfb, 0x96, + 0x10, 0x72, 0x06, 0xbd, 0x4d, 0xb5, 0x09, 0x86, 0x72, 0xb9, 0xeb, 0x37, 0x45, 0xe6, 0xc8, 0x5a, + 0x82, 0x72, 0x58, 0x01, 0xb1, 0x33, 0xe5, 0x28, 0x41, 0xd1, 0x33, 0xb2, 0x13, 0xf1, 0x4f, 0x64, + 0xa2, 0xdb, 0xa1, 0x4f, 0x6e, 0x1f, 0xdf, 0xac, 0x52, 0x6e, 0xd2, 0xe4, 0xfc, 0xdc, 0x2b, 0xca, + 0xa7, 0xa7, 0x2e, 0x39, 0xa5, 0xd9, 0x18, 0x91, 0xc0, 0xf3, 0x18, 0x12, 0x05, 0x7d, 0x3f, 0xf1, + 0x0f, 0x7a, 0x54, 0xb0, 0x61, 0x22, 0xd1, 0xab, 0x55, 0xa3, 0x44, 0x5e, 0x99, 0x57, 0x50, 0xce, + 0x90, 0x13, 0x20, 0x66, 0x7a, 0x96, 0xfe, 0x6c, 0x07, 0x11, 0xf4, 0x40, 0x24, 0x50, 0x2f, 0x2b, + 0x95, 0x89, 0x1b, 0x53, 0xda, 0xcc, 0x39, 0x99, 0xcd, 0x4b, 0xd8, 0x47, 0xbc, 0x81, 0x0a, 0xac, + 0xd1, 0x91, 0xc3, 0x21, 0x27, 0x89, 0x0c, 0x39, 0xb2, 0x63, 0x31, 0x4d, 0x14, 0x5d, 0x4f, 0x59, + 0xd4, 0xf5, 0xb3, 0x9d, 0x1d, 0x1f, 0xfa, 0x24, 0x86, 0x1d, 0x76, 0x82, 0xf9, 0x27, 0x18, 0x78, + 0x8c, 0x6a, 0xb2, 0x63, 0x37, 0x31, 0x9d, 0xff, 0x97, 0xd2, 0xbd, 0x6c, 0x07, 0x15, 0xf7, 0xa4, + 0x93, 0xa6, 0x19, 0x55, 0xab, 0xa3, 0x18, 0xad, 0xea, 0x74, 0x17, 0xf1, 0x67, 0xfc, 0x7e, 0xaa, + 0x5f, 0x3a, 0xd1, 0x6b, 0x84, 0x54, 0xfc, 0x4d, 0xa8, 0x1e, 0x5c, 0xcb, 0x49, 0xd8, 0xd9, 0x5d, + 0x0a, 0x86, 0xe1, 0xaf, 0xc0, 0x1d, 0xa7, 0xea, 0x39, 0x02, 0x78, 0x67, 0xe8, 0x67, 0xda, 0x54, + 0x01, 0xe6, 0x0a, 0x83, 0xc2, 0x18, 0x54, 0x6f, 0xf6, 0xc1, 0x1f, 0x84, 0x27, 0x99, 0x7c, 0xd4, + 0xb7, 0x3e, 0x44, 0x7c, 0xc4, 0x2e, 0xcc, 0x27, 0x52, 0x94, 0x5f, 0x72, 0x8c, 0x70, 0xe9, 0x53, + 0xc4, 0xb4, 0x32, 0xb0, 0x0d, 0x9c, 0xa5, 0xc2, 0x2c, 0xd0, 0x1a, 0x77, 0x7c, 0xa3, 0x1d, 0x27, + 0xdd, 0x6a, 0xa7, 0x17, 0x84, 0x01, 0xfa, 0xf4, 0xe9, 0x8f, 0xb0, 0x66, 0xec, 0xaf, 0xd6, 0xa7, + 0x8b, 0xea, 0x92, 0x67, 0x36, 0xcb, 0xaa, 0xad, 0x8c, 0xc9, 0x41, 0x45, 0x2d, 0x0e, 0x63, 0x16, + 0x9e, 0x49, 0xda, 0x48, 0xa6, 0x79, 0x8f, 0xee, 0x36, 0x92, 0x8f, 0x0f, 0xe2, 0xcd, 0xa4, 0xdb, + 0x5f, 0x1a, 0xe8, 0xc4, 0x0c, 0x16, 0x35, 0x3c, 0x4c, 0x44, 0x9a, 0x9c, 0x95, 0xc2, 0x27, 0xdb, + 0x26, 0x08, 0xb1, 0x4b, 0xf4, 0x78, 0x97, 0x35, 0xf7, 0x38, 0x28, 0xf7, 0xe6, 0x6e, 0xae, 0x0a, + 0x96, 0x35, 0x7d, 0x78, 0xd7, 0x1d, 0x4b, 0xae, 0x61, 0xef, 0x85, 0x7f, 0x29, 0xf5, 0x0c, 0xf2, + 0x2a, 0xdf, 0x6f, 0x56, 0xa3, 0x35, 0xd2, 0x9b, 0x54, 0xfc, 0x2b, 0x0b, 0x0e, 0xab, 0x6a, 0xe9, + 0xa3, 0xa9, 0x8e, 0xf0, 0x12, 0x4a, 0x51, 0x06, 0x9d, 0x57, 0x37, 0x0c, 0x35, 0x27, 0xe0, 0x5f, + 0x0a, 0xeb, 0xd3, 0x49, 0x17, 0xdf, 0x60, 0x70, 0x53, 0x85, 0x1b, 0x9b, 0x8e, 0x56, 0x89, 0xf6, + 0x61, 0xac, 0x4c, 0xde, 0xbb, 0x6a, 0xc1, 0xcf, 0x89, 0x4c, 0x71, 0xfb, 0x6e, 0xa6, 0x1a, 0x33, + 0x5e, 0x64, 0x54, 0x6b, 0x63, 0x2e, 0x58, 0x7c, 0x3f, 0x67, 0xd7, 0x26, 0xe7, 0x9a, 0x96, 0x85, + 0xea, 0xc3, 0x31, 0x08, 0x3d, 0xb3, 0x3d, 0xac, 0xe5, 0x8e, 0x27, 0x36, 0x79, 0x33, 0xd6, 0x82, + 0xd4, 0x13, 0x37, 0x01, 0x8e, 0xdb, 0x92, 0x21, 0x5d, 0xc3, 0xdc, 0x09, 0x39, 0x5e, 0x9e, 0xd3, + 0x2c, 0x7e, 0x64, 0x2f, 0xc4, 0xf0, 0x91, 0x72, 0x2b, 0x5b, 0x09, 0x12, 0x76, 0x3e, 0xbd, 0x9b, + 0x4c, 0xd2, 0x84, 0xf0, 0x56, 0x5b, 0x0f, 0x6b, 0x33, 0x59, 0xfc, 0xc0, 0xc6, 0x29, 0x16, 0xf1, + 0x8e, 0x30, 0xd2, 0xaa, 0xa1, 0xf5, 0xe9, 0x29, 0x43, 0x43, 0x68, 0x17, 0xd7, 0x6b, 0x2d, 0xaa, + 0x97, 0x71, 0x99, 0x5f, 0x83, 0x8b, 0x4e, 0x40, 0x5d, 0xb8, 0x3d, 0x4d, 0x66, 0xd9, 0xac, 0x4a, + 0xd2, 0x4f, 0x1b, 0x51, 0x5f, 0xac, 0x22, 0x3f, 0x43, 0x4d, 0x2b, 0x90, 0xaa, 0x88, 0x7e, 0x36, + 0xc5, 0x66, 0x52, 0x04, 0x3f, 0xe8, 0x59, 0x51, 0xb8, 0x1d, 0xb2, 0x0d, 0xdb, 0xbc, 0xda, 0x53, + 0x45, 0x8d, 0xc4, 0x28, 0xbb, 0xd7, 0x28, 0x36, 0xbb, 0x12, 0x32, 0xef, 0x1d, 0x93, 0x85, 0x59, + 0xcf, 0x50, 0x76, 0xee, 0x1d, 0xfc, 0x40, 0xb2, 0x74, 0x28, 0xcf, 0x72, 0x41, 0x49, 0x16, 0xf5, + 0x96, 0x83, 0x0e, 0xbe, 0xc3, 0x69, 0xe9, 0xd5, 0xc1, 0xcf, 0xf6, 0x06, 0xc0, 0xee, 0xd2, 0xe8, + 0x2a, 0x12, 0x20, 0xdb, 0x1b, 0x22, 0x6c, 0xa7, 0x09, 0xa7, 0x4d, 0xac, 0x9b, 0x96, 0xa1, 0x27, + 0x27, 0x00, 0xa0, 0x2b, 0xe6, 0x2c, 0x84, 0xfe, 0x77, 0xd6, 0x2f, 0x10, 0x9f, 0xb0, 0x75, 0x17, + 0x86, 0xdb, 0x85, 0x47, 0x77, 0x91, 0xb1, 0x8f, 0x8e, 0x70, 0x3c, 0xcb, 0x2a, 0x9f, 0x2b, 0xe3, + 0x31, 0x96, 0xf9, 0xdb, 0x85, 0x11, 0xc3, 0x56, 0x36, 0x4d, 0x6f, 0x11, 0x38, 0xd9, 0x16, 0xe6, + 0xb5, 0x2d, 0x91, 0xd7, 0xa6, 0x71, 0x03, 0xc1, 0xbf, 0x02, 0xca, 0xe0, 0x58, 0xc2, 0x81, 0x08, + 0x3a, 0x4a, 0xe6, 0xdd, 0x28, 0x4e, 0xd8, 0x7b, 0x28, 0xe9, 0xdc, 0x11, 0xae, 0x96, 0x0a, 0x50, + 0xa5, 0x5c, 0x83, 0xd9, 0xef, 0x32, 0xb6, 0x05, 0x6b, 0x71, 0x2a, 0x62, 0xee, 0x74, 0x46, 0x84, + 0x32, 0x92, 0x25, 0x65, 0x49, 0x97, 0x0f, 0x8d, 0x73, 0xbd, 0x62, 0x95, 0x51, 0x20, 0xe8, 0x11, + 0x2d, 0x32, 0xb9, 0x8a, 0xbe, 0xe6, 0xaa, 0x5f, 0x49, 0xf5, 0x39, 0x5a, 0x07, 0x2a, 0x25, 0xd1, + 0x08, 0x9f, 0x23, 0x9f, 0x47, 0x76, 0xf9, 0xff, 0x43, 0xf6, 0x6b, 0xd1, 0x9e, 0xc1, 0xbe, 0xcb, + 0x33, 0xb1, 0x97, 0x3d, 0x83, 0x70, 0x68, 0xc6, 0x7b, 0x16, 0xc1, 0x57, 0x0e, 0x44, 0x90, 0x7e, + 0xdf, 0xba, 0x1d, 0x16, 0xa4, 0xb0, 0xe5, 0xbf, 0x59, 0x34, 0xc7, 0xb2, 0x86, 0xeb, 0x0e, 0xdd, + 0x7b, 0x9b, 0x5c, 0x43, 0xb6, 0xe8, 0x45, 0x36, 0x2a, 0x8b, 0x7e, 0x3b, 0xd6, 0x3e, 0xd1, 0x9a, + 0xde, 0xe2, 0x6e, 0x61, 0xaf, 0x50, 0x67, 0x05, 0x5f, 0x31, 0x07, 0x20, 0x01, 0x40, 0xc5, 0x89, + 0x21, 0x53, 0x8f, 0xc6, 0xab, 0x49, 0xb5, 0x44, 0x8d, 0x16, 0xda, 0xcb, 0xe8, 0x90, 0xd3, 0x29, + 0x51, 0x26, 0xa1, 0x6c, 0x9c, 0x7b, 0x4a, 0xc5, 0xee, 0x29, 0x78, 0x07, 0xf0, 0x9c, 0xa5, 0xad, + 0xa0, 0x55, 0xae, 0x36, 0x83, 0xfc, 0x16, 0xc1, 0x00, 0xf0, 0x3e, 0x84, 0x78, 0x02, 0x06, 0xc6, + 0x98, 0x7a, 0x5d, 0x3d, 0x3e, 0x07, 0x04, 0x1c, 0xfa, 0x70, 0xa2, 0xa2, 0xff, 0x6d, 0x84, 0x04, + 0xee, 0xec, 0x3a, 0x26, 0x62, 0x66, 0x87, 0x66, 0x3b, 0x5a, 0xa1, 0xa5, 0x2d, 0x2d, 0xd4, 0x72, + 0x43, 0x0f, 0x23, 0x47, 0x87, 0xfb, 0xe6, 0x3d, 0xfa, 0x33, 0x6d, 0xea, 0xd0, 0xfe, 0xa0, 0x69, + 0x23, 0x9c, 0x7a, 0x83, 0x6e, 0x9a, 0xe0, 0xea, 0x4c, 0xe8, 0xed, 0x17, 0xa6, 0x17, 0x1f, 0xf2, + 0x18, 0x99, 0x62, 0x13, 0xf3, 0xad, 0xc2, 0x30, 0x43, 0xe4, 0x5e, 0x85, 0x43, 0x4a, 0x87, 0xe8, + 0xb6, 0x3a, 0x44, 0xf1, 0xd4, 0xdc, 0x56, 0x12, 0xc5, 0xe7, 0x2f, 0x3c, 0x68, 0xe0, 0xc4, 0x3b, + 0x87, 0xd9, 0xea, 0x14, 0xfa, 0x2e, 0x09, 0x62, 0x6f, 0x3e, 0xf7, 0x22, 0x9c, 0x01, 0xef, 0x3f, + 0x75, 0x44, 0xe9, 0x87, 0x59, 0x35, 0x15, 0x01, 0xa2, 0xa1, 0xd5, 0x7f, 0xc0, 0x06, 0x2b, 0xdd, + 0x11, 0x64, 0xda, 0xd2, 0x5a, 0xad, 0xab, 0x71, 0x54, 0x69, 0xf0, 0xc6, 0xa5, 0x23, 0x85, 0xc0, + 0xcf, 0xd7, 0xa5, 0x91, 0x43, 0xb0, 0xd7, 0x4f, 0x4f, 0x55, 0x13, 0x2a, 0xea, 0xf3, 0x60, 0x51, + 0x9b, 0x66, 0xa3, 0xc8, 0x0f, 0x78, 0x4c, 0xcc, 0x03, 0x05, 0x64, 0xf4, 0xd3, 0xd9, 0x69, 0x67, + 0x2c, 0x62, 0xa9, 0xeb, 0x58, 0x1a, 0x1d, 0x13, 0x09, 0x5b, 0x96, 0x1e, 0x16, 0x33, 0x62, 0x66, + 0x5d, 0x01, 0x24, 0x58, 0xd1, 0xb1, 0xdb, 0x1a, 0xed, 0xf1, 0x46, 0x7b, 0x72, 0x02, 0xca, 0x65, + 0xeb, 0xd1, 0x49, 0xbb, 0x79, 0x95, 0x77, 0x4e, 0xdf, 0xb4, 0x49, 0x41, 0xe6, 0xbc, 0xb9, 0x76, + 0x45, 0x22, 0x2d, 0x04, 0xd1, 0x00, 0xc1, 0x8c, 0x5d, 0x73, 0x51, 0xe8, 0xe0, 0x28, 0x24, 0x51, + 0xa8, 0xa7, 0x45, 0x21, 0x9c, 0xef, 0x24, 0x82, 0xfb, 0xf6, 0x5b, 0xf6, 0x08, 0x74, 0xd6, 0xf5, + 0x97, 0x83, 0x16, 0xea, 0x70, 0xc6, 0xd7, 0x9f, 0xed, 0x68, 0xaf, 0x7e, 0x26, 0x8e, 0x76, 0xa5, + 0x9b, 0x5e, 0xa9, 0x7d, 0x52, 0xfa, 0x63, 0xec, 0x3b, 0xc7, 0x6d, 0x15, 0x04, 0x6e, 0xb7, 0xb7, + 0x48, 0x43, 0xb1, 0xbd, 0x93, 0xec, 0x6c, 0x5f, 0x27, 0xa9, 0x0d, 0x18, 0x7b, 0xd6, 0xa5, 0xf4, + 0x8d, 0xf1, 0x62, 0x05, 0xe8, 0xec, 0x76, 0xb4, 0xbd, 0xa9, 0xd2, 0xf2, 0xcc, 0xd6, 0x5a, 0x6e, + 0x2f, 0x19, 0xe5, 0x8d, 0xac, 0xf0, 0x30, 0x9c, 0xab, 0x2e, 0x79, 0xa3, 0x42, 0x04, 0xfe, 0x18, + 0xb3, 0xe9, 0xc4, 0xef, 0x06, 0x2b, 0x59, 0xf5, 0xdd, 0xde, 0x4f, 0x80, 0x2b, 0xb0, 0x5b, 0x2a, + 0x6a, 0x3a, 0xd6, 0x71, 0xe5, 0xdc, 0xb1, 0xa4, 0xce, 0x53, 0xd8, 0x08, 0x09, 0x05, 0x93, 0xd0, + 0x7b, 0xf6, 0x9b, 0x4c, 0xfa, 0x60, 0x25, 0x7f, 0x1a, 0xe5, 0x95, 0x08, 0x29, 0x68, 0x1b, 0x02, + 0x0a, 0x60, 0x8e, 0x20, 0xe1, 0x6e, 0x97, 0x0d, 0x81, 0x4d, 0xcd, 0x6b, 0x99, 0x94, 0x29, 0xbb, + 0xa1, 0xaf, 0xa2, 0xc8, 0xa2, 0x31, 0xc9, 0xa6, 0x8f, 0x78, 0xe3, 0x24, 0x23, 0x73, 0x0e, 0xf9, + 0x52, 0x5a, 0x94, 0xbf, 0x08, 0x5b, 0xab, 0x66, 0x9a, 0xe1, 0x9e, 0x57, 0xbb, 0x5d, 0x6a, 0xe5, + 0x56, 0xd5, 0x08, 0xf0, 0x06, 0xfb, 0x35, 0x7e, 0xf7, 0xea, 0xe1, 0x72, 0x98, 0xe6, 0x0b, 0x19, + 0x5c, 0xab, 0xc2, 0x8f, 0x35, 0x76, 0xb9, 0x7e, 0x14, 0x7b, 0x15, 0x7e, 0x07, 0x67, 0x48, 0x9e, + 0xe2, 0xa6, 0x13, 0x1f, 0x3c, 0x2b, 0xf2, 0x8e, 0x73, 0xff, 0x42, 0x2d, 0x88, 0x5e, 0x22, 0x81, + 0x8c, 0x77, 0xa6, 0x2f, 0x04, 0xde, 0xb7, 0xae, 0x6e, 0x44, 0x03, 0xd1, 0xa1, 0x66, 0x4a, 0x9e, + 0xfb, 0xea, 0x65, 0xa5, 0x49, 0x96, 0xa7, 0x42, 0xfe, 0xb2, 0x3d, 0x62, 0x8d, 0xc2, 0xf4, 0x86, + 0xce, 0xad, 0x97, 0xdc, 0xd3, 0x5d, 0xe0, 0x09, 0xb6, 0x04, 0x84, 0xee, 0x6b, 0xf3, 0x25, 0xae, + 0x14, 0xcc, 0xb5, 0x27, 0x22, 0xf5, 0x40, 0xc4, 0xc7, 0xda, 0x90, 0xf3, 0xe6, 0x6e, 0x4e, 0xa6, + 0x82, 0x2d, 0xd4, 0xbe, 0xd7, 0x6a, 0x99, 0x96, 0x0c, 0xdf, 0x00, 0x71, 0x3b, 0xbd, 0xe5, 0x46, + 0x8d, 0xa9, 0x29, 0x7e, 0x09, 0x53, 0xbc, 0xf2, 0xe1, 0xc6, 0xde, 0x73, 0x2d, 0x19, 0x45, 0xd1, + 0x2b, 0x36, 0xdc, 0xef, 0x8f, 0x8e, 0x0e, 0xf7, 0xc4, 0x9e, 0x1b, 0xee, 0x1d, 0xc0, 0xa9, 0x99, + 0x14, 0xf0, 0x47, 0x8f, 0xdf, 0x55, 0x49, 0xa7, 0x55, 0x63, 0x03, 0x2d, 0x83, 0xb8, 0x3a, 0xad, + 0xfd, 0x1e, 0x46, 0x0b, 0x2e, 0x9b, 0x7b, 0xfb, 0x35, 0x3a, 0x60, 0x46, 0x54, 0x75, 0x41, 0x77, + 0x20, 0x6c, 0xee, 0xc0, 0xfb, 0xcd, 0xe8, 0xb7, 0x34, 0x68, 0x2b, 0xbb, 0xb1, 0x82, 0x07, 0xeb, + 0xbb, 0xfc, 0x73, 0x78, 0xb0, 0x06, 0x0d, 0xae, 0xee, 0xb2, 0x0e, 0x73, 0xe8, 0xb7, 0xb0, 0x1a, + 0x6a, 0xa1, 0x58, 0x67, 0x72, 0x87, 0xc5, 0x18, 0xcc, 0xa8, 0xe3, 0x66, 0x36, 0x7e, 0x7f, 0xe4, + 0x77, 0x9d, 0x2c, 0x81, 0x4b, 0xcd, 0xb0, 0xea, 0x80, 0xe4, 0x07, 0x92, 0xd5, 0x81, 0xbc, 0x7a, + 0x97, 0x78, 0xa6, 0x63, 0xf1, 0xce, 0x50, 0x8b, 0x5d, 0x5b, 0x9e, 0x56, 0xa3, 0x86, 0xd6, 0x00, + 0x85, 0x97, 0xe8, 0xe9, 0xdf, 0x6d, 0xf9, 0x16, 0x57, 0x73, 0xbf, 0xff, 0x19, 0xdb, 0xfb, 0x8a, + 0x6d, 0xdc, 0x1b, 0xd4, 0xcc, 0x1c, 0xcc, 0xbe, 0xae, 0x5e, 0x00, 0x7b, 0x61, 0xc8, 0xf6, 0x78, + 0xd2, 0x0b, 0x70, 0x65, 0xc0, 0x15, 0xd7, 0xf8, 0x12, 0xe4, 0xdd, 0xbf, 0x66, 0xeb, 0xe7, 0x87, + 0xf1, 0xa2, 0xad, 0xbc, 0xc0, 0xa0, 0x50, 0x85, 0xd7, 0x8d, 0x9e, 0xce, 0x5d, 0x3f, 0x19, 0x15, + 0x21, 0x0d, 0x87, 0x63, 0x9b, 0xe4, 0x50, 0x3a, 0x0f, 0x72, 0x4a, 0x70, 0x50, 0x3a, 0xb2, 0x09, + 0x5c, 0x05, 0xaa, 0x28, 0x4d, 0x26, 0x55, 0x7f, 0xd3, 0x5d, 0x54, 0xa9, 0x73, 0x14, 0x1f, 0x6f, + 0xd8, 0x70, 0xda, 0xd8, 0x32, 0x29, 0x3b, 0x36, 0x6f, 0x5a, 0x32, 0xaf, 0x6e, 0x7c, 0x9b, 0x59, + 0x50, 0x91, 0x38, 0x9f, 0xb8, 0x60, 0x5a, 0x52, 0xf0, 0x37, 0xfa, 0xec, 0xbe, 0xf9, 0xd2, 0xa0, + 0x3b, 0xae, 0x9a, 0xb0, 0x70, 0x64, 0xee, 0x83, 0xa6, 0xdc, 0xc2, 0x3f, 0x47, 0x16, 0xb2, 0xa8, + 0xa1, 0x48, 0x5b, 0x89, 0xb2, 0x8a, 0x26, 0xdb, 0xba, 0x63, 0x60, 0xe3, 0x13, 0x85, 0x58, 0x56, + 0x5d, 0x45, 0x54, 0xf1, 0x2e, 0x46, 0x61, 0x07, 0xf9, 0xbe, 0x8e, 0xf3, 0xa5, 0x91, 0xf3, 0x08, + 0x2d, 0x2f, 0x68, 0x06, 0x68, 0x95, 0xc9, 0x18, 0xe1, 0x05, 0x91, 0x0f, 0x87, 0x37, 0x74, 0x06, + 0x70, 0xc3, 0x39, 0xf3, 0xbc, 0xab, 0x47, 0x07, 0x03, 0xd2, 0x46, 0x17, 0x97, 0x4b, 0xc7, 0x1d, + 0x4f, 0xc0, 0xf5, 0xa3, 0x4b, 0x5e, 0x85, 0x76, 0x10, 0x02, 0x38, 0x17, 0x4d, 0x71, 0x4b, 0x74, + 0xa0, 0x44, 0xb7, 0x0c, 0x31, 0x86, 0x64, 0xb0, 0x61, 0x6c, 0xe7, 0xaa, 0x5a, 0x63, 0x3f, 0x3f, + 0x62, 0x5b, 0x6d, 0x40, 0xfc, 0xfd, 0x2f, 0x21, 0xa2, 0x84, 0x7b, 0x1a, 0xb4, 0x5f, 0x29, 0x17, + 0xef, 0x38, 0x09, 0x56, 0xd3, 0xb2, 0x8a, 0x12, 0xdb, 0x2a, 0x17, 0xe9, 0x21, 0x00, 0x7b, 0x6a, + 0xc8, 0x42, 0xb2, 0xe3, 0x21, 0x06, 0x2c, 0x93, 0x5d, 0x19, 0xa1, 0xc2, 0xe6, 0x3b, 0x3d, 0xc3, + 0xca, 0xea, 0xac, 0x5c, 0x0b, 0x5d, 0x98, 0xad, 0x83, 0x2e, 0xc4, 0x07, 0x8b, 0x70, 0x2b, 0x96, + 0x8f, 0xcd, 0xa9, 0xd5, 0x10, 0xb0, 0x04, 0x7b, 0xcb, 0x19, 0x5a, 0xdf, 0x6e, 0x67, 0xec, 0x53, + 0x1e, 0xb7, 0xf6, 0x2a, 0x98, 0x59, 0xdf, 0x8a, 0x87, 0xb9, 0x05, 0x3e, 0x64, 0xa2, 0x08, 0x63, + 0x60, 0x5f, 0x3f, 0x98, 0xc7, 0x6c, 0xb8, 0xb2, 0xa8, 0x0a, 0x44, 0xa0, 0x2b, 0x98, 0x23, 0x7c, + 0x05, 0xa9, 0x99, 0xd3, 0x94, 0x18, 0x01, 0x21, 0x83, 0xe1, 0xbe, 0x8f, 0xd2, 0xe0, 0x76, 0x16, + 0x0d, 0x03, 0xb4, 0x20, 0x0f, 0x46, 0xf3, 0x59, 0xd4, 0xd8, 0x6f, 0x8a, 0x04, 0xa1, 0x61, 0x1d, + 0x61, 0x36, 0xf2, 0xe5, 0xb2, 0xef, 0x00, 0x43, 0x32, 0x90, 0xc2, 0xf1, 0x06, 0x20, 0x85, 0xd7, + 0xeb, 0x41, 0x0a, 0x83, 0xa2, 0x39, 0x4f, 0x3e, 0x31, 0xd3, 0x30, 0x27, 0xa6, 0x84, 0x9a, 0xe3, + 0x71, 0x20, 0xfe, 0x86, 0x1a, 0xe2, 0x6b, 0xf9, 0x77, 0x3e, 0x89, 0x8b, 0xa5, 0xf8, 0x13, 0x38, + 0x83, 0x3c, 0x6e, 0x44, 0x64, 0xbc, 0xc4, 0x36, 0x7a, 0x9e, 0xf3, 0xb7, 0x5c, 0x69, 0x09, 0xf5, + 0xaf, 0xe1, 0x21, 0x67, 0x66, 0x48, 0xdd, 0x93, 0x3d, 0x3d, 0x6d, 0xd5, 0xd2, 0xb3, 0xe3, 0xb8, + 0xf4, 0xaf, 0xd5, 0x12, 0x12, 0x50, 0xdf, 0x82, 0xf5, 0x3e, 0x63, 0xe6, 0xc5, 0xec, 0x91, 0xe1, + 0xf5, 0x0a, 0x50, 0x49, 0x0e, 0xb3, 0x99, 0xaf, 0x85, 0xd8, 0xec, 0xa7, 0x62, 0xf8, 0x29, 0x84, + 0x55, 0x3c, 0x0c, 0xd4, 0xcf, 0xbc, 0xf8, 0x23, 0xae, 0x91, 0x31, 0x44, 0x32, 0xf2, 0x65, 0x3b, + 0x0b, 0xcd, 0x36, 0x60, 0xa1, 0xf9, 0x06, 0x2c, 0x34, 0x5e, 0xcf, 0x42, 0xa9, 0x66, 0xa1, 0x99, + 0x22, 0x1a, 0x58, 0x68, 0x2e, 0xff, 0x06, 0x16, 0x1a, 0x2f, 0x39, 0xaf, 0xa4, 0x16, 0x64, 0x92, + 0xde, 0xd3, 0x4c, 0x30, 0x93, 0x93, 0x26, 0x29, 0x10, 0x44, 0xbe, 0x29, 0xaa, 0x73, 0x6e, 0xe1, + 0x94, 0x98, 0x81, 0xa8, 0x6c, 0x74, 0xdd, 0xf0, 0x45, 0xbe, 0xe3, 0xc2, 0xd9, 0xb5, 0x85, 0x4f, + 0xb4, 0xaa, 0xaa, 0xdd, 0xdd, 0xd6, 0x0d, 0x11, 0xe7, 0x36, 0x84, 0x9d, 0xcf, 0xda, 0x5e, 0x29, + 0x88, 0x34, 0x61, 0x5e, 0x37, 0x16, 0xc2, 0xd5, 0xde, 0xba, 0x4d, 0x59, 0xbb, 0xa8, 0x0a, 0x9d, + 0xbc, 0xa2, 0xae, 0x3f, 0xec, 0xaa, 0xfe, 0x68, 0xaf, 0xe9, 0xef, 0xb3, 0x15, 0xf5, 0xc0, 0xde, + 0xd3, 0xb6, 0x3b, 0xd6, 0xeb, 0x59, 0x45, 0xd0, 0xad, 0x4d, 0xd0, 0xed, 0x2a, 0x82, 0x30, 0x14, + 0xf1, 0x8a, 0x9a, 0xe0, 0xb3, 0x5d, 0x17, 0x24, 0xa0, 0xac, 0x21, 0x95, 0xe7, 0xa7, 0x78, 0xe9, + 0x76, 0xeb, 0xa4, 0x50, 0xb9, 0xed, 0x75, 0x22, 0xae, 0x97, 0x7d, 0x82, 0x41, 0xc2, 0xba, 0x3a, + 0xdf, 0x17, 0x2b, 0x6a, 0xac, 0x0a, 0xab, 0xbe, 0xaa, 0x68, 0xef, 0xaf, 0x0c, 0xea, 0xde, 0x5e, + 0x17, 0xec, 0xfd, 0x5b, 0xcf, 0x38, 0x6c, 0x1a, 0xea, 0xc7, 0x10, 0xee, 0xed, 0xf5, 0x6f, 0x74, + 0xac, 0xd8, 0x9e, 0x37, 0x3a, 0xde, 0xab, 0x72, 0x1d, 0x65, 0x32, 0xca, 0x02, 0x1d, 0x8f, 0xbc, + 0xca, 0x83, 0x4d, 0x4c, 0x40, 0x8c, 0xc4, 0x09, 0xa1, 0xe1, 0xe1, 0x6a, 0x85, 0xfb, 0x49, 0x12, + 0x18, 0xc7, 0xa7, 0x24, 0x8e, 0x5d, 0xb7, 0xa5, 0x9a, 0x37, 0x54, 0x17, 0xaa, 0x4d, 0xe1, 0x26, + 0xd2, 0x83, 0xd5, 0xb4, 0x42, 0x76, 0xa9, 0x7e, 0xd7, 0xb4, 0x08, 0x77, 0xcb, 0x38, 0x39, 0x49, + 0xcc, 0xe6, 0xe2, 0x7a, 0xe9, 0x6f, 0x2b, 0x2f, 0x7d, 0x17, 0xd3, 0x2f, 0x92, 0xb3, 0xb4, 0xad, + 0x83, 0x11, 0xb9, 0x45, 0xaf, 0xda, 0x8a, 0x5e, 0x70, 0xa3, 0xe5, 0xcb, 0x2b, 0x26, 0x39, 0x85, + 0x0d, 0x1b, 0xc5, 0xe4, 0xd1, 0x0c, 0x7a, 0x52, 0x9b, 0x34, 0x85, 0xf3, 0xf8, 0xbc, 0x3e, 0xa9, + 0xd0, 0x21, 0x8d, 0x98, 0x8f, 0x9b, 0xf4, 0x6c, 0x65, 0x05, 0xcf, 0xeb, 0x1f, 0x14, 0x8b, 0x12, + 0xb7, 0x5b, 0xc8, 0x88, 0x0e, 0x1f, 0xd6, 0xb8, 0xaf, 0x0e, 0xd9, 0xe4, 0xbb, 0x1c, 0x8d, 0x90, + 0x10, 0xdd, 0x26, 0x7e, 0x2e, 0x1f, 0x1b, 0xeb, 0xb2, 0xb0, 0x6a, 0x6a, 0x63, 0xad, 0xb1, 0x6a, + 0x1a, 0xab, 0x9c, 0x35, 0x57, 0x59, 0x03, 0xb8, 0xa9, 0x55, 0x2b, 0x1c, 0x2e, 0x61, 0x06, 0x25, + 0x72, 0x15, 0x5e, 0x68, 0x9e, 0x9e, 0x92, 0xc1, 0xa1, 0x6f, 0x2f, 0x97, 0xe5, 0xd2, 0x15, 0x56, + 0x14, 0xba, 0x0d, 0xda, 0x1a, 0xaa, 0x53, 0xf0, 0x90, 0x66, 0x5f, 0xac, 0xa2, 0xf1, 0x61, 0x5c, + 0x46, 0x07, 0x3c, 0xe1, 0x00, 0x12, 0xe4, 0x9f, 0xbd, 0xb8, 0x74, 0x97, 0x89, 0x45, 0xd6, 0xdb, + 0xbc, 0xbe, 0xd7, 0xe0, 0xfa, 0x4a, 0x5c, 0x0e, 0xa4, 0x8b, 0x2b, 0xbb, 0x04, 0x21, 0x92, 0xd5, + 0xb2, 0x2f, 0xdd, 0x34, 0xd5, 0xfb, 0x25, 0xac, 0xcf, 0x2d, 0xfd, 0x96, 0xf9, 0x30, 0x03, 0xd1, + 0x88, 0xff, 0x32, 0x4e, 0xec, 0x67, 0xa8, 0x63, 0x49, 0x3c, 0xff, 0x38, 0x26, 0x84, 0x6a, 0x69, + 0x27, 0x2a, 0xc3, 0x21, 0x54, 0x81, 0x2a, 0xe4, 0x1b, 0x9b, 0xa9, 0x3f, 0x53, 0xf3, 0x77, 0x86, + 0xfe, 0x3c, 0xca, 0x9c, 0x12, 0x48, 0xa2, 0xfd, 0x24, 0xcf, 0x10, 0x58, 0x33, 0x60, 0xa7, 0xf9, + 0xdb, 0x7c, 0x88, 0xd6, 0xbe, 0x52, 0x8f, 0xd3, 0xf1, 0x76, 0xd4, 0x13, 0xe5, 0x8e, 0xd7, 0xe9, + 0x92, 0xe3, 0xab, 0xef, 0xad, 0xd8, 0x43, 0xe8, 0x29, 0x44, 0x41, 0x07, 0xc2, 0x7c, 0x15, 0xa7, + 0xae, 0x79, 0x95, 0x78, 0xca, 0x31, 0xa8, 0xe5, 0xd0, 0xdb, 0xd3, 0xe3, 0x1e, 0x92, 0x03, 0x79, + 0xdb, 0x5e, 0x68, 0x40, 0x4e, 0x3e, 0x1d, 0x1c, 0x1c, 0x85, 0x3e, 0xac, 0xa3, 0x39, 0x50, 0x29, + 0x0d, 0x5d, 0x4f, 0xdf, 0x80, 0xb0, 0x01, 0x4b, 0x6d, 0x94, 0x74, 0xf0, 0xb5, 0x27, 0x07, 0x51, + 0x31, 0x29, 0x4b, 0xf4, 0x17, 0x24, 0xd9, 0x11, 0xe1, 0x64, 0xba, 0xc5, 0x3b, 0x76, 0x33, 0xa7, + 0x4b, 0xaf, 0x6c, 0x19, 0x5b, 0x7c, 0x17, 0x77, 0xe1, 0x46, 0xad, 0x8d, 0x4c, 0x3d, 0x63, 0x42, + 0xeb, 0xef, 0x14, 0xa7, 0x0a, 0x37, 0x6c, 0x61, 0x2e, 0x02, 0x4d, 0xf7, 0x7b, 0xbf, 0x3a, 0xe9, + 0x96, 0xda, 0xaa, 0xd6, 0x98, 0x76, 0x05, 0xa5, 0x18, 0x5f, 0xfc, 0x97, 0xe2, 0xd9, 0x41, 0xae, + 0xd9, 0x88, 0x51, 0x43, 0x16, 0x14, 0xec, 0x3e, 0x54, 0xee, 0x95, 0xfc, 0x73, 0x59, 0xff, 0x3c, + 0xb6, 0x3e, 0x8f, 0xa7, 0x1f, 0xd9, 0x67, 0x0a, 0xd4, 0x65, 0x3e, 0xa7, 0xb7, 0x5a, 0x8c, 0x24, + 0x4c, 0x54, 0xf9, 0x48, 0xde, 0x30, 0x1b, 0x2c, 0x27, 0x62, 0x55, 0x68, 0xb1, 0x3b, 0x63, 0xb5, + 0x0d, 0x0b, 0x7d, 0x8c, 0xf5, 0xab, 0xf9, 0xa7, 0x45, 0xc9, 0xb1, 0x00, 0x33, 0x7f, 0x29, 0x1c, + 0x7b, 0xc5, 0xb4, 0x97, 0xc8, 0xb6, 0x71, 0x16, 0x18, 0x0c, 0x20, 0x05, 0x15, 0x86, 0x20, 0x8a, + 0xac, 0x61, 0x7c, 0x02, 0xb2, 0x20, 0xd4, 0x29, 0xc0, 0xd6, 0xab, 0x57, 0xfd, 0x8e, 0x60, 0xf5, + 0x0e, 0x29, 0xca, 0x3a, 0x9f, 0xd0, 0x69, 0x96, 0xbd, 0x5b, 0x76, 0xc8, 0x3a, 0x58, 0x00, 0x05, + 0xb0, 0xe5, 0xb1, 0xf0, 0xfc, 0xc1, 0x6e, 0xef, 0xd9, 0x4d, 0x9d, 0x7f, 0x82, 0x93, 0xff, 0x51, + 0x22, 0x40, 0xcd, 0xb2, 0xce, 0x58, 0xf8, 0x78, 0x63, 0xf7, 0x78, 0xa3, 0xa2, 0x39, 0x42, 0x40, + 0xaa, 0x2d, 0xc8, 0xcf, 0xed, 0x9e, 0xd4, 0x20, 0x92, 0xff, 0x6b, 0x31, 0xbc, 0x49, 0x80, 0x8f, + 0x27, 0x68, 0xbe, 0x74, 0x9b, 0x5f, 0xcf, 0x26, 0x9f, 0x70, 0x15, 0x92, 0x13, 0xad, 0x58, 0x8a, + 0x20, 0x94, 0x08, 0x3e, 0x82, 0x7f, 0x0a, 0x5c, 0x67, 0x71, 0x71, 0x0a, 0x2c, 0x01, 0x37, 0xb0, + 0x77, 0x7d, 0x76, 0x3f, 0x97, 0xcf, 0xf6, 0x7a, 0xb2, 0x52, 0x06, 0x30, 0x02, 0x33, 0xf3, 0x67, + 0x1a, 0xa7, 0xd6, 0x7a, 0x3f, 0x1f, 0x12, 0x9c, 0x28, 0xae, 0x73, 0xb1, 0xc2, 0x8b, 0xd3, 0xfa, + 0x12, 0x47, 0xec, 0xc4, 0xbd, 0xfc, 0x44, 0xd8, 0xa2, 0x5f, 0x14, 0xa7, 0x97, 0xb0, 0x3f, 0x5a, + 0xc6, 0xeb, 0x90, 0x24, 0x88, 0xaa, 0x27, 0xe7, 0xf5, 0xa4, 0xfb, 0x7a, 0x12, 0xda, 0xa6, 0xc1, + 0x02, 0x31, 0x0d, 0x2c, 0xb2, 0xa8, 0x78, 0x17, 0x00, 0x23, 0x45, 0x5e, 0xdb, 0x68, 0x21, 0x54, + 0x58, 0x92, 0x88, 0x31, 0xca, 0x92, 0x87, 0xf4, 0x13, 0x6d, 0x3f, 0xd7, 0x6a, 0xc6, 0xf6, 0x3c, + 0x38, 0x14, 0x90, 0x15, 0x71, 0xa1, 0xeb, 0x86, 0x90, 0x35, 0x29, 0x15, 0xbb, 0xf4, 0x67, 0x6a, + 0x7d, 0x83, 0xc1, 0xc1, 0x34, 0xdf, 0xc4, 0x25, 0x51, 0x4e, 0xf2, 0x38, 0x1c, 0x46, 0xef, 0x1a, + 0xb8, 0xfe, 0xf4, 0xc5, 0x6d, 0xf5, 0x16, 0x46, 0x33, 0x0e, 0x03, 0xee, 0x59, 0xef, 0x2f, 0x03, + 0xc4, 0x6c, 0xe4, 0x8e, 0xed, 0xc2, 0x0a, 0x4c, 0xed, 0x8f, 0x14, 0xd7, 0x4b, 0x99, 0x60, 0xe3, + 0x37, 0xc5, 0x48, 0x76, 0x2a, 0xfa, 0x2d, 0x72, 0x2e, 0xda, 0xdc, 0x6e, 0xcc, 0x13, 0xb0, 0xa5, + 0xa4, 0xa9, 0x43, 0x3f, 0x27, 0xa7, 0xde, 0xde, 0x73, 0xea, 0x3d, 0x7c, 0x35, 0x11, 0xaf, 0xd6, + 0xa8, 0x53, 0x36, 0x1b, 0xe3, 0xca, 0x8d, 0xcf, 0xe6, 0x21, 0x76, 0x4c, 0x48, 0x82, 0xec, 0x13, + 0x54, 0x55, 0x84, 0xc7, 0xb9, 0x63, 0xd0, 0xdd, 0xa4, 0x65, 0xbd, 0x46, 0x5d, 0x52, 0xdf, 0x1a, + 0xc3, 0x71, 0x36, 0x39, 0xe9, 0xda, 0x75, 0x5e, 0xa3, 0x16, 0x71, 0xe9, 0xdb, 0x1c, 0x07, 0x24, + 0xd6, 0x66, 0x98, 0xec, 0x86, 0x85, 0xb2, 0x75, 0x5c, 0xc7, 0xe3, 0x7c, 0xc6, 0x40, 0xd9, 0x4f, + 0xec, 0x5b, 0x58, 0x96, 0xd1, 0x07, 0x92, 0x8c, 0xa5, 0x2e, 0x34, 0x48, 0x49, 0x0b, 0x44, 0xac, + 0x8a, 0x93, 0x3e, 0xf3, 0x95, 0x68, 0x03, 0x49, 0x44, 0x73, 0xa9, 0xca, 0x6f, 0x52, 0xd4, 0x3f, + 0x3e, 0x12, 0x86, 0x7a, 0x1f, 0x23, 0xb9, 0xb9, 0x2a, 0x7e, 0xf9, 0x0d, 0xb9, 0xf7, 0x8c, 0xa0, + 0xe2, 0xbb, 0xf3, 0x9b, 0xd1, 0x79, 0x35, 0xef, 0x56, 0x0c, 0x02, 0x11, 0x98, 0x1f, 0x36, 0xb9, + 0x31, 0x62, 0xc9, 0x8b, 0x71, 0x50, 0x47, 0x88, 0x8b, 0xae, 0x1e, 0xd8, 0x20, 0xfe, 0xd2, 0xdb, + 0x40, 0x1f, 0x2f, 0x95, 0x05, 0xab, 0xd8, 0x1a, 0x25, 0x80, 0xe0, 0xff, 0x1d, 0x68, 0x3c, 0xf2, + 0xc0, 0xc1, 0x1b, 0xcc, 0x34, 0x0e, 0x8d, 0x1f, 0x4d, 0xf1, 0x5a, 0xe2, 0xe0, 0x79, 0xf3, 0x8c, + 0x02, 0x3e, 0xfa, 0x0b, 0x90, 0x0b, 0x17, 0xd3, 0x08, 0xce, 0x57, 0xf8, 0xef, 0x3e, 0x42, 0xa5, + 0x36, 0x5c, 0x37, 0xb9, 0xb9, 0xfa, 0x51, 0x68, 0x47, 0x8f, 0xdb, 0x01, 0x09, 0xa2, 0x7f, 0x9d, + 0x2f, 0x92, 0xbd, 0x29, 0xcf, 0x76, 0xf8, 0xbd, 0x93, 0xcf, 0x5f, 0x3e, 0xc0, 0x98, 0x27, 0x5d, + 0x4a, 0x1c, 0x8e, 0xca, 0x2e, 0x14, 0xd8, 0x25, 0x8a, 0xfc, 0x63, 0xac, 0x42, 0x10, 0x07, 0x89, + 0x4b, 0x33, 0x96, 0x89, 0x80, 0x8b, 0xc4, 0x21, 0x43, 0x93, 0x00, 0x37, 0x14, 0x88, 0x1e, 0x37, + 0xe9, 0x8b, 0xcc, 0x47, 0x18, 0xa6, 0xa1, 0x6f, 0x47, 0x5c, 0xd0, 0x30, 0xab, 0xf3, 0xc0, 0x0e, + 0xb7, 0xa0, 0x3f, 0xdc, 0x04, 0x76, 0xac, 0x05, 0x03, 0xcc, 0x2a, 0x18, 0x08, 0xe4, 0x61, 0xde, + 0xc4, 0x34, 0x79, 0x3c, 0x27, 0xc8, 0x1b, 0x06, 0x40, 0xd5, 0xab, 0xe9, 0xef, 0x1c, 0x86, 0xbb, + 0x40, 0x8e, 0xe4, 0xb3, 0xd8, 0xcf, 0xc4, 0x31, 0xb2, 0x03, 0xa7, 0x60, 0x95, 0x9f, 0xcb, 0x6a, + 0xbe, 0x57, 0x11, 0x1c, 0xa0, 0x91, 0xb1, 0xa6, 0xa4, 0x34, 0x69, 0xd9, 0x64, 0x3d, 0x88, 0xcc, + 0xa1, 0xef, 0xd1, 0x3b, 0x55, 0x6a, 0x93, 0x7d, 0x97, 0x04, 0x43, 0x2b, 0xa5, 0x1c, 0x56, 0xf2, + 0xd1, 0x39, 0xc8, 0xeb, 0x6c, 0xca, 0x87, 0xf1, 0xaf, 0x9a, 0x94, 0xd4, 0xc2, 0xdc, 0x34, 0x70, + 0x97, 0x3c, 0xf9, 0x37, 0x9d, 0x9c, 0x07, 0x55, 0x3c, 0x9b, 0xe7, 0x7b, 0xaf, 0x05, 0x05, 0xe5, + 0xfd, 0xfb, 0xfc, 0xd7, 0x9b, 0x51, 0x17, 0x38, 0x2d, 0x05, 0x4e, 0x03, 0x2e, 0x53, 0xbc, 0xe6, + 0xd6, 0x9a, 0x25, 0x8f, 0xca, 0x93, 0xe7, 0x7c, 0x36, 0x4a, 0x69, 0xb0, 0x1b, 0xc3, 0x2b, 0x79, + 0x2d, 0x21, 0x9b, 0xbe, 0x19, 0x0e, 0x87, 0x9d, 0xdd, 0xde, 0xd1, 0x77, 0x41, 0x07, 0x43, 0x07, + 0x7a, 0x3b, 0xb0, 0xae, 0x77, 0xbc, 0x00, 0xff, 0xbd, 0x91, 0xff, 0x8e, 0xe0, 0x70, 0xc6, 0xed, + 0x68, 0x05, 0x85, 0xc3, 0x26, 0xfa, 0x7e, 0xfb, 0x2a, 0xf4, 0x85, 0x61, 0xb8, 0x19, 0x7d, 0xac, + 0xe5, 0xbf, 0xe9, 0x81, 0xe5, 0xb3, 0xf5, 0x31, 0x49, 0x41, 0xee, 0x30, 0xab, 0x04, 0xd8, 0x44, + 0x78, 0x6d, 0xfa, 0x8b, 0x1e, 0x5c, 0xd3, 0xc4, 0x0b, 0xd3, 0xc7, 0xe4, 0x13, 0x42, 0x87, 0xbf, + 0x78, 0x81, 0xe8, 0xe8, 0x04, 0x3a, 0xc6, 0xb7, 0x4e, 0xe9, 0xe6, 0x99, 0x34, 0x96, 0xd0, 0x0a, + 0x6e, 0x53, 0x42, 0x57, 0xc2, 0x43, 0x15, 0x70, 0x96, 0x95, 0xb1, 0xc2, 0x8c, 0x46, 0x81, 0xad, + 0x95, 0xef, 0xfd, 0x00, 0xf8, 0x5c, 0x88, 0xbe, 0x7a, 0xc9, 0x7b, 0xdf, 0x20, 0x24, 0x28, 0x47, + 0x74, 0x83, 0xa5, 0x20, 0x45, 0x61, 0x52, 0x97, 0x9a, 0x8c, 0x93, 0xc9, 0x70, 0x18, 0x86, 0x9e, + 0x41, 0xc2, 0x5b, 0xb1, 0xcc, 0x62, 0x01, 0x6a, 0x57, 0xf9, 0x18, 0xbf, 0xc9, 0x6c, 0x2a, 0x07, + 0xce, 0xdd, 0x52, 0x6d, 0x3b, 0xf2, 0x60, 0x44, 0x44, 0x27, 0xcd, 0x14, 0xa8, 0x3e, 0xaf, 0x44, + 0xaf, 0xe0, 0x46, 0x65, 0xad, 0x1f, 0xb8, 0x8f, 0x56, 0x7e, 0xe4, 0x24, 0xbd, 0x9e, 0x0e, 0xe1, + 0x78, 0x4b, 0x61, 0x3c, 0xca, 0x7b, 0x98, 0x48, 0xf8, 0x2f, 0x6c, 0xdd, 0xb2, 0xbf, 0x24, 0x20, + 0x8c, 0x33, 0x1b, 0x30, 0x17, 0xab, 0x09, 0x99, 0x5a, 0xac, 0xf4, 0x57, 0xa3, 0x27, 0xb0, 0xea, + 0x39, 0x5f, 0x5b, 0x4f, 0xe9, 0x35, 0x6e, 0x01, 0x4e, 0x3d, 0xbf, 0xad, 0xad, 0xe7, 0xde, 0x6b, + 0xdc, 0x33, 0x9c, 0x7a, 0xfe, 0x56, 0xaf, 0xa7, 0xbb, 0x10, 0x1c, 0x1f, 0x35, 0xad, 0x8c, 0xa5, + 0x53, 0x1e, 0x17, 0xb3, 0xc5, 0xa5, 0xce, 0xb9, 0x10, 0x54, 0x71, 0xd3, 0xa9, 0x00, 0x5b, 0x7e, + 0xd3, 0x99, 0xd0, 0x37, 0xcc, 0x22, 0x23, 0x92, 0x2a, 0xf3, 0x15, 0xb4, 0xcc, 0xf4, 0xaf, 0x84, + 0x7d, 0x40, 0x73, 0x04, 0x55, 0x97, 0x37, 0xe7, 0x71, 0x12, 0xb8, 0x69, 0x37, 0x08, 0x77, 0xed, + 0xa4, 0x8d, 0xe2, 0x52, 0x81, 0x27, 0xcb, 0x4f, 0x4e, 0x17, 0x3f, 0xd8, 0x36, 0x7b, 0x5a, 0x18, + 0x08, 0x9a, 0x25, 0x9f, 0xaa, 0xb6, 0x46, 0x12, 0xd5, 0x67, 0xd1, 0x8a, 0xcc, 0x60, 0x33, 0x5f, + 0xe2, 0x28, 0x93, 0xe4, 0xca, 0x58, 0xb4, 0x4b, 0x58, 0xf4, 0x26, 0x8c, 0xb1, 0x53, 0xe1, 0xd4, + 0x71, 0xda, 0x84, 0xe3, 0x26, 0x44, 0x69, 0x93, 0xb0, 0xcb, 0x60, 0x86, 0xfe, 0x3d, 0x85, 0x5d, + 0xb3, 0x8b, 0xf8, 0xbb, 0x6b, 0x59, 0x86, 0x42, 0x1d, 0x1e, 0x6c, 0x61, 0x51, 0x0e, 0x3c, 0xdd, + 0xa8, 0xb0, 0xd2, 0xa2, 0x94, 0xaf, 0x82, 0x96, 0xb9, 0x92, 0xc2, 0x10, 0x66, 0xa1, 0x54, 0xc0, + 0x96, 0xb3, 0xbd, 0x79, 0x94, 0x07, 0x43, 0x98, 0x84, 0xcc, 0x24, 0xdd, 0x50, 0xd2, 0x28, 0x4e, + 0x4d, 0xd2, 0x88, 0x92, 0x1e, 0xe0, 0x70, 0x73, 0x06, 0xac, 0x2f, 0x90, 0x70, 0x85, 0x1a, 0x0d, + 0x1a, 0x89, 0x2e, 0x2e, 0x2e, 0x03, 0xfa, 0xdf, 0xe5, 0x72, 0x29, 0x9f, 0x1e, 0x11, 0x11, 0x9b, + 0x72, 0xc7, 0x17, 0x62, 0x70, 0xf2, 0x4b, 0xf7, 0x69, 0xd1, 0x52, 0x50, 0x0e, 0x53, 0xb4, 0x11, + 0x6d, 0xd6, 0x96, 0x8f, 0xc7, 0x95, 0xab, 0xb3, 0x45, 0x0a, 0xa6, 0x63, 0x2e, 0xeb, 0x21, 0xae, + 0xfd, 0x7f, 0xe0, 0xee, 0x20, 0xe3, 0x1c, 0xe0, 0x6f, 0x15, 0x33, 0x61, 0x7f, 0xff, 0x66, 0x56, + 0x4d, 0xef, 0x46, 0xf8, 0xd6, 0xb6, 0xff, 0xd3, 0x6c, 0x3e, 0xce, 0xf3, 0xfc, 0xe3, 0x2c, 0xd9, + 0xc7, 0x10, 0x19, 0xfb, 0x0f, 0xb3, 0x8f, 0x33, 0xbc, 0x28, 0x0b, 0x85, 0xe4, 0x1c, 0x06, 0x52, + 0x5c, 0xd0, 0x14, 0xbc, 0x4d, 0xb7, 0x3b, 0x1d, 0xef, 0xc4, 0xbd, 0x57, 0xfe, 0xe0, 0x30, 0x44, + 0x49, 0x06, 0x9b, 0xf5, 0x83, 0xe9, 0x78, 0x70, 0xa0, 0x7e, 0x1e, 0x86, 0xb8, 0xd5, 0xbf, 0x7c, + 0x19, 0xc7, 0xd3, 0x31, 0xa5, 0xec, 0xc4, 0x87, 0x98, 0x12, 0xbe, 0x62, 0x29, 0x50, 0x81, 0x92, + 0x6e, 0x10, 0x8a, 0xc5, 0xb7, 0xee, 0x0d, 0x57, 0xd3, 0x12, 0xcd, 0xb4, 0xa6, 0xe3, 0x65, 0xd0, + 0x41, 0x08, 0x9b, 0xa0, 0x73, 0x14, 0x7e, 0x87, 0xc1, 0xe3, 0x82, 0x1f, 0x7b, 0x32, 0x88, 0x0d, + 0x48, 0x44, 0x73, 0x0b, 0x49, 0x12, 0x12, 0x7e, 0x25, 0x55, 0xa1, 0x50, 0x73, 0xe2, 0x77, 0x6b, + 0x03, 0xa0, 0x4b, 0x0a, 0xc6, 0x47, 0xf5, 0xfb, 0x2a, 0x0e, 0x47, 0xfb, 0x5d, 0x85, 0x5b, 0xe9, + 0x20, 0x1e, 0xe1, 0x64, 0x36, 0xbf, 0xed, 0xfc, 0x9a, 0x8c, 0xf2, 0x5c, 0x5e, 0x08, 0xbb, 0xa2, + 0x7d, 0x90, 0x52, 0x6b, 0x71, 0x24, 0xe0, 0x92, 0x1d, 0x7b, 0xfb, 0x42, 0xe1, 0xb0, 0x54, 0xa4, + 0x9e, 0xdb, 0xa8, 0x97, 0x70, 0xb0, 0x96, 0xf6, 0xfe, 0x34, 0x2f, 0x05, 0x6d, 0x8a, 0xf6, 0x73, + 0xff, 0x33, 0xa9, 0x14, 0x0d, 0x1b, 0x22, 0xcf, 0x29, 0xee, 0x8f, 0xa2, 0x21, 0x68, 0xa9, 0x6e, + 0xe2, 0x56, 0x47, 0x63, 0xa9, 0x9f, 0x1f, 0x3d, 0xcb, 0xfa, 0x63, 0x21, 0x1e, 0x8f, 0x43, 0xf1, + 0xc0, 0xa8, 0xc0, 0x1d, 0xe8, 0xc5, 0x7f, 0x2b, 0x5c, 0x5e, 0x2e, 0x55, 0x58, 0x46, 0x89, 0x0b, + 0x47, 0xaf, 0xbb, 0xf1, 0xed, 0x43, 0xc0, 0x12, 0xa0, 0xfc, 0xef, 0x74, 0x29, 0x67, 0x59, 0xfe, + 0x88, 0x6f, 0xa7, 0x3e, 0xc3, 0x1b, 0xee, 0xf5, 0x13, 0x69, 0x57, 0x92, 0x38, 0x76, 0x25, 0xf2, + 0x61, 0xb3, 0xdd, 0xa0, 0x85, 0x74, 0x08, 0x2c, 0x3c, 0x38, 0xc7, 0x16, 0xb5, 0x42, 0x89, 0x5b, + 0x38, 0xdf, 0x14, 0xcb, 0x04, 0x2e, 0xe7, 0x73, 0x90, 0xe0, 0xd0, 0xa7, 0x1c, 0x71, 0x0c, 0xbb, + 0xde, 0x43, 0x4a, 0x98, 0xe4, 0x8f, 0x9e, 0x74, 0xb8, 0x47, 0x01, 0x46, 0xdc, 0xdd, 0x99, 0xfe, + 0xae, 0x12, 0xe0, 0xf6, 0x88, 0xbc, 0x78, 0x8f, 0xc1, 0x0c, 0xe8, 0x1f, 0x35, 0x85, 0xbc, 0x45, + 0xf8, 0x52, 0x88, 0xc9, 0x81, 0x0d, 0x2c, 0xe9, 0x72, 0x61, 0x67, 0x69, 0xe5, 0x5b, 0x2c, 0x83, + 0x1b, 0xfd, 0x00, 0x23, 0x3a, 0x11, 0x06, 0x12, 0x7a, 0x90, 0x91, 0x59, 0xd6, 0xc8, 0x0c, 0x1c, + 0x74, 0xce, 0x45, 0x11, 0xf1, 0x8a, 0x83, 0x7b, 0x8e, 0xd2, 0x87, 0xd1, 0x7a, 0xeb, 0xd7, 0xc7, + 0x40, 0x88, 0x7f, 0x4a, 0x41, 0x93, 0x04, 0x3f, 0xfe, 0x68, 0x3d, 0x7e, 0xb8, 0x84, 0x91, 0x36, + 0x66, 0xb3, 0x38, 0xb9, 0x40, 0xca, 0xe3, 0x49, 0x41, 0x22, 0xf2, 0x4e, 0x62, 0x87, 0xcb, 0xfd, + 0x02, 0x08, 0xd0, 0xe6, 0x48, 0xbb, 0x2b, 0x01, 0x3d, 0x4b, 0x54, 0x3a, 0xf1, 0x01, 0xb7, 0x1f, + 0x03, 0x60, 0xf8, 0xad, 0x51, 0x83, 0x69, 0x83, 0x3a, 0x8e, 0xcb, 0xbd, 0xdb, 0x13, 0x57, 0x75, + 0x55, 0x1b, 0x8d, 0x9d, 0x1e, 0x8c, 0x07, 0x6a, 0xae, 0xfc, 0x08, 0x91, 0x63, 0x37, 0x8c, 0xc3, + 0x8b, 0x58, 0xb9, 0x7f, 0x17, 0x51, 0xa5, 0x05, 0xa8, 0x83, 0x0e, 0x4f, 0x69, 0x45, 0x04, 0x5b, + 0x83, 0xed, 0xab, 0x91, 0x42, 0x37, 0x0a, 0x86, 0x85, 0x38, 0xad, 0xfd, 0x2c, 0xf6, 0x0e, 0x30, + 0xec, 0x75, 0x9c, 0x9c, 0x94, 0x4e, 0x40, 0x2b, 0xc2, 0x7c, 0xe4, 0x89, 0xff, 0xfd, 0x3f, 0x18, + 0x40, 0x2a, 0x32, 0x49, 0x09, 0xe6, 0x09, 0xb2, 0x86, 0x70, 0x95, 0xb5, 0xc0, 0x51, 0x25, 0xec, + 0xf4, 0x38, 0x0c, 0x41, 0x65, 0x16, 0x63, 0xd2, 0x7e, 0xa5, 0xd2, 0x9e, 0xe1, 0xa8, 0x94, 0x97, + 0xb2, 0x8a, 0x6b, 0xe8, 0xa7, 0x7d, 0xc3, 0x71, 0x88, 0xaa, 0x15, 0x63, 0x43, 0xdb, 0xca, 0x2c, + 0xf6, 0x0a, 0x0a, 0xb1, 0x15, 0xa3, 0xa3, 0x5b, 0x18, 0xf5, 0xfa, 0xb3, 0x63, 0x0d, 0x7a, 0x31, + 0x53, 0xf0, 0xe5, 0x59, 0x5c, 0x5e, 0xcc, 0x2e, 0x83, 0x4d, 0x03, 0x8a, 0xc1, 0x2d, 0xfe, 0x1f, + 0x45, 0x91, 0xcc, 0x5f, 0x0f, 0x11, 0x3f, 0xb8, 0x9f, 0x39, 0xd4, 0x9b, 0xe8, 0x5b, 0xb2, 0x0b, + 0x76, 0x7e, 0x8c, 0xc6, 0xa5, 0xcc, 0x11, 0x81, 0x8d, 0x59, 0x00, 0xa9, 0x34, 0x19, 0x66, 0x02, + 0x03, 0xb8, 0x11, 0xfd, 0x59, 0xec, 0x58, 0x09, 0x59, 0x16, 0xce, 0xf2, 0xbb, 0xd2, 0x1e, 0x42, + 0x75, 0x73, 0x41, 0x2c, 0xf7, 0x6a, 0x6f, 0x92, 0x8f, 0xef, 0x50, 0xdd, 0x54, 0x51, 0x25, 0xc8, + 0x8b, 0x3f, 0xe3, 0x55, 0xaf, 0x8b, 0xf7, 0x1d, 0xf1, 0x97, 0x47, 0x2f, 0xad, 0x78, 0xf3, 0x00, + 0x3e, 0x23, 0x5b, 0x58, 0xd4, 0x09, 0x8a, 0xd8, 0xc1, 0xb2, 0xe6, 0x3d, 0x04, 0x38, 0x10, 0x9c, + 0x38, 0x4b, 0x2b, 0x11, 0x29, 0xa0, 0x3e, 0xdc, 0xe2, 0xc5, 0x96, 0xcc, 0xc5, 0x95, 0x3b, 0xd7, + 0x25, 0x64, 0x84, 0xd1, 0xff, 0x79, 0x28, 0x97, 0x40, 0xc2, 0x4c, 0xf9, 0x2c, 0xb1, 0x9d, 0xaa, + 0xfd, 0xe5, 0x51, 0xc5, 0x6a, 0x70, 0xe2, 0x4f, 0xcb, 0x45, 0xa0, 0x0c, 0x75, 0xd5, 0xc5, 0x2f, + 0xbc, 0xd4, 0x7d, 0xd5, 0x15, 0x9f, 0x24, 0x5a, 0xca, 0x9d, 0xa4, 0x55, 0xf4, 0xec, 0x31, 0xf8, + 0xd2, 0x5e, 0x22, 0x56, 0x70, 0xa5, 0x0d, 0x0e, 0x4c, 0x6f, 0xad, 0xe5, 0x8e, 0x28, 0x7e, 0xc3, + 0xea, 0xa7, 0xb9, 0x11, 0xa7, 0x03, 0x8c, 0x71, 0x66, 0x50, 0x58, 0x70, 0x0c, 0x6c, 0xdf, 0xd3, + 0x04, 0x6d, 0xfa, 0x7d, 0xc5, 0xa5, 0xf4, 0xab, 0x2f, 0x2e, 0xba, 0x99, 0x4f, 0xa0, 0xcb, 0x24, + 0x25, 0x53, 0x7a, 0x7c, 0x91, 0x5d, 0xa2, 0xdd, 0x54, 0xb7, 0x12, 0xf9, 0x54, 0x2c, 0x87, 0x63, + 0x13, 0x91, 0x1e, 0x03, 0xd5, 0xa7, 0xc7, 0xe5, 0x6e, 0xd5, 0x4f, 0x81, 0xf5, 0x45, 0x2e, 0x3a, + 0x5e, 0x13, 0xe1, 0x3a, 0xb0, 0xdb, 0x13, 0x11, 0x5b, 0x6a, 0x44, 0x30, 0xfc, 0x68, 0x7f, 0x91, + 0x59, 0x80, 0xd2, 0x36, 0x39, 0xd5, 0x1c, 0xa9, 0x61, 0xe8, 0xd1, 0x9c, 0x28, 0x06, 0x02, 0x62, + 0xd3, 0xe6, 0xd2, 0xc5, 0x32, 0x4a, 0xf2, 0xb8, 0x67, 0x00, 0x52, 0x69, 0x06, 0x55, 0xdb, 0xed, + 0xb1, 0x0b, 0x8a, 0x30, 0xe0, 0x15, 0x88, 0x31, 0x09, 0xb3, 0xde, 0xcd, 0xe5, 0xb5, 0x4d, 0x5e, + 0xf9, 0x0a, 0x19, 0x7c, 0x4f, 0x5f, 0x64, 0x70, 0x77, 0x1a, 0xe0, 0x88, 0x5a, 0x3a, 0xe3, 0xb2, + 0x51, 0x67, 0xcc, 0x23, 0x4c, 0xc2, 0xc4, 0x57, 0x08, 0xaf, 0x5e, 0xcf, 0xa5, 0x0d, 0xe4, 0x85, + 0x24, 0xd1, 0x60, 0x34, 0x6c, 0x72, 0x04, 0xc9, 0x80, 0xa6, 0x53, 0x4d, 0x36, 0x92, 0xec, 0x96, + 0x32, 0x16, 0x37, 0xa6, 0x1c, 0xe2, 0x50, 0xea, 0x27, 0xea, 0xcc, 0x3f, 0x51, 0x3e, 0x01, 0xd9, + 0x65, 0x5c, 0xc8, 0x3f, 0xf4, 0x73, 0x43, 0x60, 0x78, 0x50, 0xe7, 0x22, 0x8c, 0x56, 0x98, 0x42, + 0x9d, 0x20, 0xc1, 0x34, 0x7c, 0xe3, 0x5e, 0xa0, 0xd3, 0x62, 0x03, 0x55, 0x93, 0x11, 0x90, 0x05, + 0xcf, 0x81, 0xfc, 0x5e, 0xab, 0x0b, 0x71, 0x64, 0xad, 0x8a, 0x10, 0x3c, 0x24, 0x54, 0x6a, 0x36, + 0x9a, 0x21, 0xfe, 0xda, 0x27, 0x3c, 0x07, 0x32, 0x0a, 0x83, 0xc4, 0x7c, 0x05, 0x80, 0xef, 0xa2, + 0xd5, 0x25, 0x54, 0x4c, 0xc8, 0x62, 0x58, 0xcc, 0x7e, 0x83, 0x1b, 0x4c, 0xe6, 0x6b, 0x0b, 0xf2, + 0x8c, 0x3f, 0xc4, 0xc6, 0x29, 0xaa, 0xea, 0xd3, 0xfa, 0x7b, 0xa4, 0x0c, 0x40, 0x24, 0x0a, 0x38, + 0x8f, 0xd5, 0xd4, 0x33, 0x61, 0xb9, 0x9e, 0x29, 0x07, 0x04, 0x09, 0x14, 0xb6, 0xc2, 0x9f, 0x42, + 0x00, 0x0e, 0xb0, 0x58, 0xab, 0x2d, 0x3d, 0x50, 0x01, 0x97, 0xeb, 0x55, 0xda, 0x4e, 0x06, 0xcb, + 0xea, 0x33, 0xdc, 0x25, 0x98, 0x4e, 0x3d, 0xa3, 0x1d, 0xd1, 0xe8, 0xd4, 0x6b, 0x36, 0x2f, 0xa3, + 0xf4, 0x6e, 0xde, 0x6d, 0x8c, 0xb5, 0x54, 0xff, 0xc2, 0xcd, 0x50, 0xc4, 0xd7, 0xa5, 0x70, 0x4b, + 0xff, 0xe7, 0xeb, 0x7a, 0x64, 0x12, 0xc5, 0xb7, 0x18, 0x2e, 0x32, 0x78, 0x17, 0xbf, 0xa4, 0x55, + 0x38, 0x23, 0x4a, 0x40, 0x94, 0x78, 0x0c, 0x25, 0xba, 0x3e, 0x75, 0xee, 0x9c, 0x1e, 0x04, 0x95, + 0x09, 0x3a, 0xa3, 0x5e, 0xe0, 0xce, 0x2f, 0xf4, 0x25, 0x49, 0xb8, 0xc9, 0x5d, 0xbf, 0xcf, 0xef, + 0x60, 0x96, 0xca, 0x13, 0x37, 0x01, 0x23, 0x40, 0x24, 0x4c, 0xd6, 0x1a, 0x96, 0xa7, 0xf3, 0x9c, + 0x90, 0xa2, 0x94, 0xb4, 0x25, 0x36, 0x0c, 0x8c, 0x5a, 0x96, 0xf0, 0x58, 0x65, 0x24, 0xa4, 0x50, + 0x00, 0x32, 0xbc, 0xb3, 0x94, 0x1f, 0xe0, 0xe2, 0xdc, 0xf5, 0xa0, 0xac, 0x7e, 0xb2, 0x86, 0x1b, + 0x8f, 0x0a, 0x05, 0xc7, 0xef, 0x1f, 0xe3, 0x8f, 0xea, 0x1c, 0x2b, 0xc6, 0x28, 0xd5, 0xa9, 0x1d, + 0x09, 0x76, 0xaf, 0xe1, 0xfc, 0x26, 0x61, 0xcb, 0x98, 0xb6, 0x7d, 0x99, 0x68, 0x9f, 0xb8, 0x3a, + 0x4b, 0x9f, 0xaf, 0x75, 0xe5, 0xd6, 0x0b, 0xf2, 0x1e, 0xef, 0x46, 0xe5, 0xfc, 0x2e, 0xe1, 0x77, + 0x17, 0x06, 0x53, 0x0d, 0x15, 0xd4, 0x86, 0x8a, 0xe8, 0xdf, 0xf5, 0xc0, 0xca, 0x78, 0xe8, 0xd5, + 0x70, 0x34, 0x16, 0xd2, 0xb6, 0xe7, 0x5f, 0x88, 0x59, 0xb8, 0x94, 0x9c, 0xf5, 0x3e, 0x2f, 0x82, + 0x7f, 0xbe, 0x6e, 0xf2, 0x6d, 0x90, 0xec, 0xb5, 0xd5, 0x55, 0x73, 0x13, 0xfa, 0x16, 0xd0, 0x15, + 0xf1, 0xbe, 0xe8, 0xbf, 0xc8, 0xf1, 0xe2, 0x85, 0x33, 0x0e, 0x75, 0xb2, 0xe2, 0x6a, 0xf7, 0x11, + 0xc3, 0xcb, 0xd1, 0x8b, 0x11, 0xc9, 0xe0, 0x25, 0x22, 0xae, 0xee, 0x74, 0xb3, 0xbf, 0x94, 0xfb, + 0x0f, 0x1f, 0x40, 0x6c, 0xcf, 0x7f, 0x99, 0x3d, 0x26, 0xd7, 0xdd, 0x03, 0xbf, 0x1f, 0x6e, 0xe1, + 0x1e, 0xdb, 0x15, 0xe4, 0x0e, 0x42, 0x82, 0xd0, 0xf1, 0x75, 0xc2, 0x31, 0x85, 0xb2, 0xc4, 0x84, + 0x74, 0xb0, 0xd7, 0x3b, 0x00, 0xb1, 0x65, 0x93, 0xae, 0xc2, 0xa5, 0x4d, 0x8c, 0x0c, 0xd4, 0x03, + 0xbd, 0x16, 0x52, 0x17, 0x59, 0x20, 0xe5, 0x20, 0xae, 0x55, 0x9f, 0xba, 0xde, 0xee, 0xee, 0xcc, + 0x0b, 0x44, 0xb9, 0xdd, 0x38, 0x43, 0xe2, 0x7a, 0xbb, 0xa9, 0x52, 0x97, 0x0d, 0x51, 0xf0, 0xfa, + 0x58, 0x4a, 0x12, 0x40, 0x8a, 0x68, 0xab, 0x63, 0xe2, 0x05, 0xa9, 0xbf, 0xe9, 0xb8, 0xf6, 0xa0, + 0x22, 0xb9, 0x22, 0xb8, 0x24, 0x6d, 0xa2, 0x30, 0x2e, 0x1a, 0xb0, 0x7d, 0x1d, 0x09, 0x54, 0xdd, + 0xf5, 0xb2, 0xeb, 0x31, 0xbd, 0x3d, 0x3d, 0x7c, 0x18, 0xfc, 0xf0, 0xe3, 0x0f, 0x4f, 0x4f, 0xf0, + 0xef, 0xd1, 0xe1, 0x8f, 0x2f, 0x5e, 0x3c, 0x7c, 0x38, 0xfe, 0xe1, 0x20, 0xf4, 0x5b, 0x63, 0x99, + 0x0a, 0x4c, 0xe7, 0xc5, 0xc3, 0x07, 0x15, 0x69, 0x93, 0x36, 0x2b, 0x02, 0x74, 0xe5, 0xf1, 0x20, + 0xfb, 0x4c, 0x9b, 0x41, 0x4e, 0x53, 0x72, 0x6a, 0x05, 0x26, 0x67, 0xbf, 0x7c, 0x9d, 0xa7, 0xd8, + 0x7d, 0xec, 0x5f, 0x22, 0x82, 0x0e, 0x05, 0x2a, 0x6d, 0xa4, 0x94, 0xd4, 0xb4, 0xb3, 0x59, 0xe5, + 0x64, 0x4e, 0x81, 0xa3, 0xdc, 0x85, 0x71, 0x7f, 0x69, 0x8a, 0x55, 0x85, 0xa9, 0x4a, 0x02, 0xde, + 0x13, 0x8f, 0xd5, 0x01, 0xa8, 0x65, 0x7a, 0x42, 0xe0, 0x81, 0x28, 0x96, 0x09, 0x66, 0xfc, 0x29, + 0x96, 0x5c, 0xf9, 0x53, 0xd0, 0x7c, 0xa9, 0x2e, 0xc6, 0xb7, 0x5e, 0x20, 0xb3, 0xf8, 0xf2, 0x8f, + 0x58, 0xff, 0x86, 0x81, 0xeb, 0x1d, 0x1c, 0x85, 0x9a, 0xb7, 0x9f, 0x9e, 0x30, 0x2c, 0x43, 0x57, + 0x27, 0xe3, 0xc8, 0x3f, 0xd0, 0xdf, 0x34, 0xd8, 0x31, 0x4b, 0x15, 0x3f, 0x70, 0x89, 0xa2, 0x62, + 0x0e, 0x98, 0x47, 0xf8, 0xc7, 0xa9, 0x2a, 0x4f, 0x64, 0x53, 0x5b, 0xbd, 0x48, 0xb6, 0x86, 0xe1, + 0xc9, 0x35, 0xdd, 0x86, 0x04, 0x87, 0xf9, 0xd4, 0x51, 0x2a, 0xf8, 0xe1, 0x0c, 0xa8, 0xe7, 0x48, + 0xcf, 0xa2, 0x94, 0x05, 0xf9, 0xcd, 0x46, 0x5d, 0x70, 0x8d, 0x88, 0x28, 0x25, 0xb3, 0x42, 0xa3, + 0xda, 0x24, 0x1f, 0x86, 0x02, 0xf2, 0x9d, 0x78, 0x21, 0xde, 0xc7, 0xef, 0xaa, 0xdc, 0x7b, 0xc6, + 0xec, 0xe9, 0xa5, 0x20, 0xfc, 0x4d, 0x15, 0x1d, 0xa8, 0xda, 0x83, 0xda, 0x5e, 0xe2, 0x3f, 0x64, + 0x8e, 0xfb, 0x10, 0xc3, 0x3a, 0x67, 0xbb, 0x48, 0x02, 0x9b, 0xe2, 0x9b, 0x24, 0x29, 0xe0, 0xce, + 0xb8, 0xb7, 0xb7, 0xa7, 0x03, 0x64, 0x48, 0x79, 0x51, 0xed, 0xfd, 0x3a, 0x8c, 0x2e, 0x9c, 0x88, + 0xd3, 0xd9, 0x04, 0xae, 0xdc, 0xc2, 0x6d, 0x01, 0x2e, 0xf4, 0x64, 0xa4, 0x27, 0xfe, 0x2a, 0x7d, + 0x9f, 0xa3, 0xa5, 0xcc, 0x80, 0xaf, 0x7d, 0xf9, 0x05, 0xdd, 0x9e, 0x4f, 0x68, 0x97, 0x7f, 0x7a, + 0xb2, 0xb5, 0x00, 0x49, 0xb0, 0x80, 0x54, 0xb2, 0xa6, 0x08, 0x18, 0x35, 0x90, 0x16, 0x50, 0x29, + 0x3f, 0x6a, 0xcc, 0x4f, 0xde, 0xd7, 0x5a, 0xcf, 0x58, 0xeb, 0xc6, 0x52, 0xac, 0xa8, 0xd6, 0x1d, + 0x22, 0xf3, 0x02, 0xe0, 0x72, 0xb9, 0xd8, 0xe0, 0xd4, 0xa7, 0xfb, 0x09, 0x6e, 0x14, 0x18, 0x63, + 0x83, 0x34, 0x99, 0x50, 0xde, 0x23, 0xac, 0xf5, 0x00, 0x65, 0x11, 0xa8, 0xa7, 0x9e, 0xeb, 0x36, + 0x47, 0xc3, 0xbf, 0xfc, 0x01, 0x2a, 0xc3, 0x65, 0xdd, 0x9e, 0xb1, 0xc2, 0x13, 0x52, 0x00, 0x62, + 0xaf, 0xc9, 0x49, 0x55, 0xe6, 0x70, 0x47, 0x0a, 0x70, 0x7f, 0x5f, 0x93, 0xef, 0xae, 0x58, 0x97, + 0x8d, 0x1a, 0x06, 0x01, 0xd0, 0xe4, 0xfb, 0xb7, 0xe3, 0x7d, 0xd8, 0x83, 0x67, 0x45, 0x35, 0xe8, + 0x1c, 0xef, 0x63, 0x54, 0x17, 0xfc, 0x77, 0x5a, 0xdd, 0xa6, 0x83, 0xce, 0xff, 0x02, 0xc7, 0xcb, + 0xb5, 0xba, 0xdb, 0x6c, 0x01, 0x00 }; diff --git a/wled00/ir.cpp b/wled00/ir.cpp index 3efb7545..35464cac 100644 --- a/wled00/ir.cpp +++ b/wled00/ir.cpp @@ -1,5 +1,7 @@ #include "wled.h" +#include "ir_codes.h" + /* * Infrared sensor support for generic 24/40/44 key RGB remotes */ diff --git a/wled00/json.cpp b/wled00/json.cpp index 1eeebe70..8d5b7978 100644 --- a/wled00/json.cpp +++ b/wled00/json.cpp @@ -175,8 +175,8 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) if (getVal(elem["fx"], &fx, 0, strip.getModeCount())) { //load effect ('r' random, '~' inc/dec, 0-255 exact value) if (!presetId && currentPlaylist>=0) unloadPlaylist(); if (fx != seg.mode) { - //seg.startTransition(strip.getTransition()); // set effect transitions - seg.markForReset(); + seg.startTransition(strip.getTransition()); // set effect transitions + //seg.markForReset(); seg.mode = fx; // load default values from effect string if effect is selected without // any other effect parameter (i.e. effect clicked in UI) @@ -187,34 +187,25 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) && elem[F("c2")].isNull() && elem[F("c3")].isNull() ) { - // compatibility mode begin - char buf[5]; // dummy buffer - for (int i=0; i<5; i++) { - uint8_t *var; - switch (i) { - case 0: var = &seg.speed; break; - case 1: var = &seg.intensity; break; - case 2: var = &seg.custom1; break; - case 3: var = &seg.custom2; break; - case 4: var = &seg.custom3; break; - } - extractModeSlider(fx, i, buf, 4, var); - } - extractModeSlider(fx, 255, buf, 4, &seg.palette); - //end compatibility mode int16_t sOpt; sOpt = extractModeDefaults(fx, SET_F("sx")); if (sOpt >= 0) seg.speed = sOpt; sOpt = extractModeDefaults(fx, SET_F("ix")); if (sOpt >= 0) seg.intensity = sOpt; sOpt = extractModeDefaults(fx, SET_F("c1")); if (sOpt >= 0) seg.custom1 = sOpt; sOpt = extractModeDefaults(fx, SET_F("c2")); if (sOpt >= 0) seg.custom2 = sOpt; sOpt = extractModeDefaults(fx, SET_F("c3")); if (sOpt >= 0) seg.custom3 = sOpt; - sOpt = extractModeDefaults(fx, "pal"); if (sOpt >= 0 && sOpt < strip.getPaletteCount()) seg.palette = sOpt; sOpt = extractModeDefaults(fx, SET_F("mp12")); if (sOpt >= 0) seg.map1D2D = sOpt & 0x03; sOpt = extractModeDefaults(fx, SET_F("ssim")); if (sOpt >= 0) seg.soundSim = sOpt & 0x07; - sOpt = extractModeDefaults(fx, "rev"); if (sOpt >= 0) seg.reverse = (bool)sOpt; // setOption(SEG_OPTION_REVERSED, (bool)sOpt); // NOTE: setting this option is a risky business - sOpt = extractModeDefaults(fx, SET_F("mi")); if (sOpt >= 0) seg.mirror = (bool)sOpt; // setOption(SEG_OPTION_MIRROR, (bool)sOpt); // NOTE: setting this option is a risky business - sOpt = extractModeDefaults(fx, SET_F("rY")); if (sOpt >= 0) seg.reverse_y = (bool)sOpt; // setOption(SEG_OPTION_REVERSED_Y, (bool)sOpt); // NOTE: setting this option is a risky business - sOpt = extractModeDefaults(fx, SET_F("mY")); if (sOpt >= 0) seg.mirror_y = (bool)sOpt; // setOption(SEG_OPTION_MIRROR_Y, (bool)sOpt); // NOTE: setting this option is a risky business + sOpt = extractModeDefaults(fx, "rev"); if (sOpt >= 0) seg.reverse = (bool)sOpt; + sOpt = extractModeDefaults(fx, SET_F("mi")); if (sOpt >= 0) seg.mirror = (bool)sOpt; // NOTE: setting this option is a risky business + sOpt = extractModeDefaults(fx, SET_F("rY")); if (sOpt >= 0) seg.reverse_y = (bool)sOpt; + sOpt = extractModeDefaults(fx, SET_F("mY")); if (sOpt >= 0) seg.mirror_y = (bool)sOpt; // NOTE: setting this option is a risky business + sOpt = extractModeDefaults(fx, "pal"); + if (sOpt >= 0 && sOpt < strip.getPaletteCount() + strip.customPalettes.size()) { + if (sOpt != seg.palette) { + if (strip.paletteFade && !seg.transitional) seg.startTransition(strip.getTransition()); + seg.palette = sOpt; + } + } } } } @@ -225,7 +216,7 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) uint8_t pal = seg.palette; if (getVal(elem["pal"], &pal, 1, strip.getPaletteCount())) { if (pal != seg.palette) { - if (strip.paletteBlend) seg.startTransition(strip.getTransition()); + if (strip.paletteFade && !seg.transitional) seg.startTransition(strip.getTransition()); seg.palette = pal; } } @@ -235,8 +226,6 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) JsonArray iarr = elem[F("i")]; //set individual LEDs if (!iarr.isNull()) { - //uint8_t oldSegId = strip.setPixelSegment(id); - // set brightness immediately and disable transition transitionDelayTemp = 0; jsonTransitionOnce = true; @@ -277,7 +266,7 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) if (set < 2) stop = start + 1; for (int i = start; i < stop; i++) { if (strip.gammaCorrectCol) { - seg.setPixelColor(i, strip.gamma8(rgbw[0]), strip.gamma8(rgbw[1]), strip.gamma8(rgbw[2]), strip.gamma8(rgbw[3])); + seg.setPixelColor(i, gamma8(rgbw[0]), gamma8(rgbw[1]), gamma8(rgbw[2]), gamma8(rgbw[3])); } else { seg.setPixelColor(i, rgbw[0], rgbw[1], rgbw[2], rgbw[3]); } @@ -286,7 +275,6 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) set = 0; } } - //strip.setPixelSegment(oldSegId); strip.trigger(); } // send UDP if not in preset and something changed that is not just selection @@ -301,12 +289,23 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId) bool stateResponse = root[F("v")] | false; bool onBefore = bri; - getVal(root["bri"], &bri); + uint8_t tmpBri = bri; + getVal(root["bri"], &tmpBri); - bool on = root["on"] | (bri > 0); - if (!on != !bri) toggleOnOff(); - - if (root["on"].is() && root["on"].as()[0] == 't') toggleOnOff(); + if (root["on"].isNull()) { + if ((onBefore && tmpBri==0) || (!onBefore && tmpBri>0)) toggleOnOff(); + bri = tmpBri; + } else { + bool on = root["on"] | onBefore; + if (on != onBefore || (root["on"].is() && root["on"].as()[0] == 't')) { + toggleOnOff(); + // a hack is needed after toggleOnOf() + if (!root["bri"].isNull()) { + if (bri==0) briLast = tmpBri; + else bri = tmpBri; + } + } + } if (bri && !onBefore) { // unfreeze all segments when turning on for (size_t s=0; s < strip.getSegmentsNum(); s++) { @@ -588,7 +587,7 @@ void serializeInfo(JsonObject root) leds[F("maxseg")] = strip.getMaxSegments(); //leds[F("actseg")] = strip.getActiveSegmentsNum(); //leds[F("seglock")] = false; //might be used in the future to prevent modifications to segment config - leds[F("cpal")] = strip.customPalettes.size(); + leds[F("cpal")] = strip.customPalettes.size(); //number of custom palettes #ifndef WLED_DISABLE_2D if (strip.isMatrix) { @@ -614,6 +613,10 @@ void serializeInfo(JsonObject root) leds[F("wv")] = totalLC & 0x02; // deprecated, true if white slider should be displayed for any segment leds["cct"] = totalLC & 0x04; // deprecated, use info.leds.lc + #ifdef WLED_DISABLE_AUDIO + root[F("noaudio")] = true; + #endif + root[F("str")] = syncToggleReceive; root[F("name")] = serverDescription; @@ -651,12 +654,7 @@ void serializeInfo(JsonObject root) JsonArray ledmaps = root.createNestedArray(F("maps")); for (size_t i=0; i<10; i++) { - char fileName[16]; - strcpy_P(fileName, PSTR("/ledmap")); - if (i) sprintf(fileName +7, "%d", i); - strcat_P(fileName, PSTR(".json")); - bool isFile = WLED_FS.exists(fileName); - if (isFile || i==0) ledmaps.add(i); + if ((ledMaps>>i) & 0x0001) ledmaps.add(i); } JsonObject wifi_info = root.createNestedObject("wifi"); @@ -910,8 +908,7 @@ void serializeNodes(JsonObject root) void serializeModeData(JsonArray fxdata) { for (size_t i = 0; i < strip.getModeCount(); i++) { - //String lineBuffer = (const char*)pgm_read_dword(&(WS2812FX::_modeData[i])); - String lineBuffer = strip.getModeData(i); + String lineBuffer = FPSTR(strip.getModeData(i)); if (lineBuffer.length() > 0) { uint8_t endPos = lineBuffer.indexOf('@'); if (endPos>0) fxdata.add(lineBuffer.substring(endPos)); @@ -924,8 +921,7 @@ void serializeModeData(JsonArray fxdata) // also removes WLED-SR extensions (@...) from deserialised names void serializeModeNames(JsonArray arr) { for (size_t i = 0; i < strip.getModeCount(); i++) { - //String lineBuffer = (const char*)pgm_read_dword(&(WS2812FX::_modeData[i])); - String lineBuffer = strip.getModeData(i); + String lineBuffer = FPSTR(strip.getModeData(i)); if (lineBuffer.length() > 0) { uint8_t endPos = lineBuffer.indexOf('@'); if (endPos>0) arr.add(lineBuffer.substring(0, endPos)); @@ -951,7 +947,7 @@ void serveJson(AsyncWebServerRequest* request) } #endif else if (url.indexOf(F("eff")) > 0) { - // this is going to serve raw effect names which will include WLED-SR extensions in names + // this serves just effect names without FX data extensions in names if (requestJSONBufferLock(19)) { AsyncJsonResponse* response = new AsyncJsonResponse(&doc, true); // array document JsonArray lDoc = response->getRoot(); @@ -960,7 +956,8 @@ void serveJson(AsyncWebServerRequest* request) request->send(response); releaseJSONBufferLock(); } else { - request->send_P(200, "application/json", JSON_mode_names); + //request->send_P(200, "application/json", JSON_mode_names); + request->send(503, "application/json", F("{\"error\":3}")); } return; } @@ -972,11 +969,14 @@ void serveJson(AsyncWebServerRequest* request) return; } else if (url.length() > 6) { //not just /json - request->send( 501, "application/json", F("{\"error\":\"Not implemented\"}")); + request->send(501, "application/json", F("{\"error\":\"Not implemented\"}")); return; } - if (!requestJSONBufferLock(17)) return; + if (!requestJSONBufferLock(17)) { + request->send(503, "application/json", F("{\"error\":3}")); + return; + } AsyncJsonResponse *response = new AsyncJsonResponse(&doc, subJson==6); JsonVariant lDoc = response->getRoot(); diff --git a/wled00/pin_manager.h b/wled00/pin_manager.h index 9b5005b2..d6a4ca57 100644 --- a/wled00/pin_manager.h +++ b/wled00/pin_manager.h @@ -34,8 +34,7 @@ enum struct PinOwner : uint8_t { DebugOut = 0x89, // 'Dbg' == debug output always IO1 DMX = 0x8A, // 'DMX' == hard-coded to IO2 HW_I2C = 0x8B, // 'I2C' == hardware I2C pins (4&5 on ESP8266, 21&22 on ESP32) - AnalogMic = 0x8C, // WLEDSR - DigitalMic = 0x8D, // WLEDSR + HW_SPI = 0x8C, // 'SPI' == hardware SPI pins (13,14&15 on ESP8266, 5,18&23 on ESP32) // Use UserMod IDs from const.h here UM_Unspecified = USERMOD_ID_UNSPECIFIED, // 0x01 UM_Example = USERMOD_ID_EXAMPLE, // 0x02 // Usermod "usermod_v2_example.h" diff --git a/wled00/set.cpp b/wled00/set.cpp index f53a07b5..e3fc507f 100644 --- a/wled00/set.cpp +++ b/wled00/set.cpp @@ -85,6 +85,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) Bus::setCCTBlend(strip.cctBlending); Bus::setAutoWhiteMode(request->arg(F("AW")).toInt()); strip.setTargetFps(request->arg(F("FR")).toInt()); + strip.useLedsArray = request->hasArg(F("LD")); bool busesChanged = false; for (uint8_t s = 0; s < WLED_MAX_BUSSES; s++) { @@ -398,7 +399,9 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) if (request->hasArg(F("RS"))) //complete factory reset { WLED_FS.format(); + #ifdef WLED_ADD_EEPROM_SUPPORT clearEEPROM(); + #endif serveMessage(request, 200, F("All Settings erased."), F("Connect to WLED-AP to setup again"),255); doReboot = true; } @@ -474,6 +477,57 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) { if (!requestJSONBufferLock(5)) return; + // global I2C & SPI pins + uint8_t oldpins[3]; + int8_t hw_sda_pin = max(-1,min(33,(int)request->arg(F("SDA")).toInt())); + int8_t hw_scl_pin = max(-1,min(33,(int)request->arg(F("SCL")).toInt())); + oldpins[0] = i2c_sda; + oldpins[1] = i2c_scl; + pinManager.deallocateMultiplePins(oldpins, 2, PinOwner::HW_I2C); + #ifdef ESP8266 + // cannot change pins on ESP8266 + if (hw_sda_pin != HW_PIN_SDA) hw_sda_pin = -1; + if (hw_scl_pin != HW_PIN_SCL) hw_scl_pin = -1; + #endif + PinManagerPinType i2c[2] = { { hw_sda_pin, true }, { hw_scl_pin, true } }; + if (pinManager.allocateMultiplePins(i2c, 2, PinOwner::HW_I2C)) { + i2c_sda = hw_sda_pin; + i2c_scl = hw_scl_pin; + #ifdef ESP32 + Wire.setPins(i2c_sda, i2c_scl); // this will fail if Wire is initilised (Wire.begin() called) + uint8_t i2c[2] = {i2c_sda, i2c_scl}; + pinManager.deallocateMultiplePins(i2c, 2, PinOwner::HW_I2C); + #endif + } else { + i2c_sda = -1; + i2c_scl = -1; + } + int8_t hw_mosi_pin = max(-1,min(33,(int)request->arg(F("MOSI")).toInt())); + int8_t hw_sclk_pin = max(-1,min(33,(int)request->arg(F("SCLK")).toInt())); + int8_t hw_cs_pin = max(-1,min(33,(int)request->arg(F("CS")).toInt())); + oldpins[0] = spi_mosi; + oldpins[1] = spi_sclk; + oldpins[2] = spi_cs; + pinManager.deallocateMultiplePins(oldpins, 3, PinOwner::HW_SPI); + #ifdef ESP8266 + // cannot change pins on ESP8266 + if (hw_mosi_pin != HW_PIN_DATASPI) hw_mosi_pin = -1; + if (hw_sclk_pin != HW_PIN_CLOCKSPI) hw_sclk_pin = -1; + if (hw_cs_pin != HW_PIN_CSSPI) hw_cs_pin = -1; + #endif + PinManagerPinType spi[3] = { { hw_mosi_pin, true }, { hw_sclk_pin, true }, { hw_cs_pin, true } }; + if (pinManager.allocateMultiplePins(spi, 3, PinOwner::HW_SPI)) { + spi_mosi = hw_mosi_pin; + spi_sclk = hw_sclk_pin; + spi_cs = hw_cs_pin; + uint8_t spi[3] = { hw_mosi_pin, hw_sclk_pin, hw_cs_pin }; + pinManager.deallocateMultiplePins(spi, 3, PinOwner::HW_SPI); + } else { + spi_mosi = -1; + spi_sclk = -1; + spi_cs = -1; + } + JsonObject um = doc.createNestedObject("um"); size_t args = request->args(); @@ -826,7 +880,11 @@ bool handleSet(AsyncWebServerRequest *request, const String& req, bool apply) for (uint8_t i = 0; i < strip.getSegmentsNum(); i++) { Segment& seg = strip.getSegment(i); if (i != selectedSeg && (singleSegment || !seg.isActive() || !seg.isSelected())) continue; // skip non main segments if not applying to all - if (fxModeChanged) { seg.mode = effectIn; seg.markForReset(); } + if (fxModeChanged) { + seg.startTransition(strip.getTransition()); + seg.mode = effectIn; + // TODO: we should load defaults here as well + } if (speedChanged) seg.speed = speedIn; if (intensityChanged) seg.intensity = intensityIn; if (paletteChanged) { diff --git a/wled00/src/dependencies/time/DS1307RTC.cpp b/wled00/src/dependencies/time/DS1307RTC.cpp index 2c16a8a3..95518ad0 100644 --- a/wled00/src/dependencies/time/DS1307RTC.cpp +++ b/wled00/src/dependencies/time/DS1307RTC.cpp @@ -33,11 +33,6 @@ #define DS1307_CTRL_ID 0x68 -DS1307RTC::DS1307RTC() -{ - Wire.begin(); -} - // PUBLIC FUNCTIONS time_t DS1307RTC::get() // Aquire data from buffer and convert to time_t { diff --git a/wled00/src/dependencies/time/DS1307RTC.h b/wled00/src/dependencies/time/DS1307RTC.h index 2f318163..551ae996 100644 --- a/wled00/src/dependencies/time/DS1307RTC.h +++ b/wled00/src/dependencies/time/DS1307RTC.h @@ -13,7 +13,8 @@ class DS1307RTC { // user-accessible "public" interface public: - DS1307RTC(); + DS1307RTC() {} + static void begin() { Wire.begin(); } static time_t get(); static bool set(time_t t); static bool read(tmElements_t &tm); diff --git a/wled00/udp.cpp b/wled00/udp.cpp index 7d7bc8d7..aeef791c 100644 --- a/wled00/udp.cpp +++ b/wled00/udp.cpp @@ -155,7 +155,7 @@ void realtimeLock(uint32_t timeoutMs, byte md) stop = strip.getLengthTotal(); } // clear strip/segment - for (size_t i = start; i < stop; i++) strip.setPixelColor(i,0,0,0,0); + for (size_t i = start; i < stop; i++) strip.setPixelColor(i,BLACK); // if WLED was off and using main segment only, freeze non-main segments so they stay off if (useMainSegmentOnly && bri == 0) { for (size_t s=0; s < strip.getSegmentsNum(); s++) { @@ -563,11 +563,16 @@ void handleNotifications() void setRealtimePixel(uint16_t i, byte r, byte g, byte b, byte w) { uint16_t pix = i + arlsOffset; - if (pix < strip.getLengthTotal()) - { - if (!arlsDisableGammaCorrection && strip.gammaCorrectCol) - { - strip.setPixelColor(pix, strip.gamma8(r), strip.gamma8(g), strip.gamma8(b), strip.gamma8(w)); + if (pix < strip.getLengthTotal()) { + if (!arlsDisableGammaCorrection && strip.gammaCorrectCol) { + r = gamma8(r); + g = gamma8(g); + b = gamma8(b); + w = gamma8(w); + } + if (useMainSegmentOnly) { + Segment &seg = strip.getMainSegment(); + if (pix 0) { int16_t start = lineBuffer.indexOf('@'); int16_t stop = lineBuffer.indexOf(';', start); @@ -313,11 +313,13 @@ uint8_t extractModeSlider(uint8_t mode, uint8_t slider, char *dest, uint8_t maxL case 4: tmpstr = PSTR("FX Custom 3"); break; default: tmpstr = PSTR("FX Custom"); break; } + strncpy_P(dest, tmpstr, maxLen); // copy the name into buffer (replacing previous) + dest[maxLen-1] = '\0'; } else { if (nameEnd<0) tmpstr = names.substring(nameBegin).c_str(); // did not find ",", last name? else tmpstr = names.substring(nameBegin, nameEnd).c_str(); + strlcpy(dest, tmpstr, maxLen); // copy the name into buffer (replacing previous) } - strlcpy(dest, tmpstr, maxLen); // copy the name into buffer (replacing previous) } nameBegin = nameEnd+1; // next name (if "," is not found it will be 0) } // next slider @@ -356,7 +358,7 @@ uint8_t extractModeSlider(uint8_t mode, uint8_t slider, char *dest, uint8_t maxL int16_t extractModeDefaults(uint8_t mode, const char *segVar) { if (mode < strip.getModeCount()) { - String lineBuffer = strip.getModeData(mode); + String lineBuffer = FPSTR(strip.getModeData(mode)); if (lineBuffer.length() > 0) { int16_t start = lineBuffer.lastIndexOf(';'); if (start<0) return -1; @@ -383,6 +385,7 @@ uint16_t crc16(const unsigned char* data_p, size_t length) { } +#ifndef WLED_DISABLE_AUDIO /////////////////////////////////////////////////////////////////////////////// // Begin simulateSound (to enable audio enhanced effects to display something) /////////////////////////////////////////////////////////////////////////////// @@ -499,3 +502,15 @@ um_data_t* simulateSound(uint8_t simulationId) return um_data; } +#endif + + +void enumerateLedmaps() { + ledMaps = 1; + for (size_t i=1; i<10; i++) { + char fileName[16]; + sprintf_P(fileName, PSTR("/ledmap%d.json"), i); + bool isFile = WLED_FS.exists(fileName); + if (isFile) ledMaps |= 1 << i; + } +} \ No newline at end of file diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 3e63c28e..65e093f5 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -205,6 +205,7 @@ void WLED::loop() DEBUG_PRINT(F("Loops/sec: ")); DEBUG_PRINTLN(loops / 30); DEBUG_PRINT(F("UM time[ms]: ")); DEBUG_PRINT(avgUsermodMillis/loops); DEBUG_PRINT("/");DEBUG_PRINTLN(maxUsermodMillis); DEBUG_PRINT(F("Strip time[ms]: ")); DEBUG_PRINT(avgStripMillis/loops); DEBUG_PRINT("/"); DEBUG_PRINTLN(maxStripMillis); + strip.printSize(); loops = 0; maxUsermodMillis = 0; maxStripMillis = 0; @@ -314,7 +315,10 @@ void WLED::setup() if (!fsinit) { DEBUGFS_PRINTLN(F("FS failed!")); errorFlag = ERR_FS_BEGIN; - } else deEEP(); + } +#ifdef WLED_ADD_EEPROM_SUPPORT + else deEEP(); +#endif updateFSInfo(); DEBUG_PRINTLN(F("Reading config")); @@ -694,7 +698,7 @@ void WLED::handleConnection() DEBUG_PRINT(F("Heap too low! ")); DEBUG_PRINTLN(heap); forceReconnect = true; - strip.purgeSegments(); // remove inactive segments from memory + strip.purgeSegments(true); // remove all but one segments from memory } lastHeap = heap; heapTime = now; diff --git a/wled00/wled.h b/wled00/wled.h index 228fec29..52ef652b 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -8,7 +8,7 @@ */ // version code in format yymmddb (b = daily build) -#define VERSION 2207293 +#define VERSION 2208111 //uncomment this if you have a "my_config.h" file you'd like to use //#define WLED_USE_MY_CONFIG @@ -86,6 +86,8 @@ #endif #include "esp_task_wdt.h" #endif +#include +#include #include "src/dependencies/network/Network.h" @@ -94,7 +96,9 @@ #endif #include -#include +#ifdef WLED_ADD_EEPROM_SUPPORT + #include +#endif #include #include #ifndef WLED_DISABLE_OTA @@ -154,13 +158,6 @@ using PSRAMDynamicJsonDocument = BasicJsonDocument; #include "const.h" #include "fcn_declare.h" -#include "html_ui.h" -#ifdef WLED_ENABLE_SIMPLE_UI - #include "html_simple.h" -#endif -#include "html_settings.h" -#include "html_other.h" -#include "ir_codes.h" #include "NodeStruct.h" #include "pin_manager.h" #include "bus_manager.h" @@ -642,10 +639,17 @@ WLED_GLOBAL WS2812FX strip _INIT(WS2812FX()); WLED_GLOBAL BusConfig* busConfigs[WLED_MAX_BUSSES] _INIT({nullptr}); //temporary, to remember values from network callback until after WLED_GLOBAL bool doInitBusses _INIT(false); WLED_GLOBAL int8_t loadLedmap _INIT(-1); +WLED_GLOBAL uint16_t ledMaps _INIT(0); // bitfield representation of available ledmaps // Usermod manager WLED_GLOBAL UsermodManager usermods _INIT(UsermodManager()); +WLED_GLOBAL int8_t i2c_sda _INIT(HW_PIN_SDA); // global I2C SDA pin (used for usermods) +WLED_GLOBAL int8_t i2c_scl _INIT(HW_PIN_SCL); // global I2C SDA pin (used for usermods) +WLED_GLOBAL int8_t spi_mosi _INIT(HW_PIN_DATASPI); // global I2C SDA pin (used for usermods) +WLED_GLOBAL int8_t spi_sclk _INIT(HW_PIN_CLOCKSPI); // global I2C SDA pin (used for usermods) +WLED_GLOBAL int8_t spi_cs _INIT(HW_PIN_CSSPI); // global I2C SDA pin (used for usermods) + // global ArduinoJson buffer WLED_GLOBAL StaticJsonDocument doc; WLED_GLOBAL volatile uint8_t jsonBufferLock _INIT(0); diff --git a/wled00/wled_eeprom.cpp b/wled00/wled_eeprom.cpp index 32ba9f50..1fec4e8a 100644 --- a/wled00/wled_eeprom.cpp +++ b/wled00/wled_eeprom.cpp @@ -1,3 +1,4 @@ +#ifdef WLED_ADD_EEPROM_SUPPORT #include #include "wled.h" @@ -472,4 +473,5 @@ void deEEPSettings() { usermods.readFromConfig(empty); serializeConfig(); -} \ No newline at end of file +} +#endif diff --git a/wled00/wled_server.cpp b/wled00/wled_server.cpp index 6a131f92..da2aadb3 100644 --- a/wled00/wled_server.cpp +++ b/wled00/wled_server.cpp @@ -1,5 +1,12 @@ #include "wled.h" +#include "html_ui.h" +#ifdef WLED_ENABLE_SIMPLE_UI + #include "html_simple.h" +#endif +#include "html_settings.h" +#include "html_other.h" + /* * Integrated HTTP web server page declarations */ @@ -103,6 +110,7 @@ void initServer() request->send(response); //request->send_P(200, "text/html", PAGE_liveviewws); }); + #ifndef WLED_DISABLE_2D server.on("/liveview2D", HTTP_GET, [](AsyncWebServerRequest *request){ if (handleIfNoneMatchCacheHeader(request)) return; AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_liveviewws2D, PAGE_liveviewws2D_length); @@ -111,6 +119,7 @@ void initServer() request->send(response); //request->send_P(200, "text/html", PAGE_liveviewws); }); + #endif #else server.on("/liveview", HTTP_GET, [](AsyncWebServerRequest *request){ if (handleIfNoneMatchCacheHeader(request)) return; diff --git a/wled00/ws.cpp b/wled00/ws.cpp index fd8174ef..0f3cbabe 100644 --- a/wled00/ws.cpp +++ b/wled00/ws.cpp @@ -138,26 +138,30 @@ void sendDataWs(AsyncWebSocketClient * client) releaseJSONBufferLock(); } -#define MAX_LIVE_LEDS_WS 1024 - bool sendLiveLedsWs(uint32_t wsClient) { AsyncWebSocketClient * wsc = ws.client(wsClient); if (!wsc || wsc->queueLength() > 0) return false; //only send if queue free uint16_t used = strip.getLengthTotal(); + const uint16_t MAX_LIVE_LEDS_WS = strip.isMatrix ? 1024 : 256; uint16_t n = ((used -1)/MAX_LIVE_LEDS_WS) +1; //only serve every n'th LED if count over MAX_LIVE_LEDS_WS - uint16_t bufSize = 2 + (used/n)*3; + uint16_t pos = (strip.isMatrix ? 4 : 2); + uint16_t bufSize = pos + (used/n)*3; AsyncWebSocketMessageBuffer * wsBuf = ws.makeBuffer(bufSize); if (!wsBuf) return false; //out of memory uint8_t* buffer = wsBuf->get(); buffer[0] = 'L'; buffer[1] = 1; //version - buffer[2] = strip.matrixWidth; - buffer[3] = strip.matrixHeight; +#ifndef WLED_DISABLE_2D + if (strip.isMatrix) { + buffer[1] = 2; //version + buffer[2] = strip.matrixWidth; + buffer[3] = strip.matrixHeight; + } +#endif - uint16_t pos = 4; - for (uint16_t i= 0; pos < bufSize -2; i += n) + for (uint16_t i = 0; pos < bufSize -2; i += n) { uint32_t c = strip.getPixelColor(i); buffer[pos++] = qadd8(W(c), R(c)); //R, add white channel to RGB channels as a simple RGBW -> RGB map diff --git a/wled00/xml.cpp b/wled00/xml.cpp index 17726632..8e3a4f26 100644 --- a/wled00/xml.cpp +++ b/wled00/xml.cpp @@ -261,6 +261,16 @@ void getSettingsJS(byte subPage, char* dest) // add reserved and usermod pins as d.um_p array oappend(SET_F("d.um_p=[6,7,8,9,10,11")); + if (i2c_sda > -1 && i2c_scl > -1) { + oappend(","); oappend(itoa(i2c_sda,nS,10)); + oappend(","); oappend(itoa(i2c_scl,nS,10)); + } + if (spi_mosi > -1 && spi_sclk > -1 && spi_cs > -1) { + oappend(","); oappend(itoa(spi_mosi,nS,10)); + oappend(","); oappend(itoa(spi_sclk,nS,10)); + oappend(","); oappend(itoa(spi_cs,nS,10)); + } + if (requestJSONBufferLock(6)) { // if we can't allocate JSON buffer ignore usermod pins JsonObject mods = doc.createNestedObject(F("um")); @@ -308,13 +318,12 @@ void getSettingsJS(byte subPage, char* dest) // set limits oappend(SET_F("bLimits(")); - #ifdef ESP32 + #if defined(ESP32) && defined(USERMOD_AUDIOREACTIVE) // requested by @softhack007 https://github.com/blazoncek/WLED/issues/33 - if (usermods.lookup(USERMOD_ID_AUDIOREACTIVE)) - oappend(itoa(WLED_MAX_BUSSES-2,nS,10)); // prevent use of I2S buses if audio installed - else - #endif + oappend(itoa(WLED_MAX_BUSSES-2,nS,10)); oappend(","); // prevent use of I2S buses if audio installed + #else oappend(itoa(WLED_MAX_BUSSES,nS,10)); oappend(","); + #endif oappend(itoa(MAX_LEDS_PER_BUS,nS,10)); oappend(","); oappend(itoa(MAX_LED_MEMORY,nS,10)); oappend(","); oappend(itoa(MAX_LEDS,nS,10)); @@ -326,6 +335,7 @@ void getSettingsJS(byte subPage, char* dest) sappend('v',SET_F("CB"),strip.cctBlending); sappend('v',SET_F("FR"),strip.getTargetFps()); sappend('v',SET_F("AW"),Bus::getAutoWhiteMode()); + sappend('v',SET_F("LD"),strip.useLedsArray); for (uint8_t s=0; s < busses.getNumBusses(); s++) { Bus* bus = busses.getBus(s); @@ -586,6 +596,9 @@ void getSettingsJS(byte subPage, char* dest) oappend(SET_F(" (build ")); oappendi(VERSION); oappend(SET_F(")\";")); + oappend(SET_F("sd=\"")); + oappend(serverDescription); + oappend(SET_F("\";")); } #ifdef WLED_ENABLE_DMX // include only if DMX is enabled @@ -621,6 +634,11 @@ void getSettingsJS(byte subPage, char* dest) oappend(SET_F("numM=")); oappendi(usermods.getModCount()); oappend(";"); + sappend('v',SET_F("SDA"),i2c_sda); + sappend('v',SET_F("SCL"),i2c_scl); + sappend('v',SET_F("MOSI"),spi_mosi); + sappend('v',SET_F("SCLK"),spi_sclk); + sappend('v',SET_F("CS"),spi_cs); usermods.appendConfigData(); }