From 2a7687e623c9ae868a147954ed6d272756324ebc Mon Sep 17 00:00:00 2001 From: jgauchia Date: Thu, 15 Aug 2024 19:03:44 +0200 Subject: [PATCH 01/11] Chang revision --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index abbd4456..41c21218 100644 --- a/platformio.ini +++ b/platformio.ini @@ -16,7 +16,7 @@ default_envs = ESP32_N16R4 platform = espressif32 framework = arduino version = 0.1.8_dev -revision = 69 +revision = 70 monitor_speed = 115200 ;monitor_rts = 0 ;monitor_dtr = 0 From 0d62228c18fc0238ef1960889b5d16d038fd69a1 Mon Sep 17 00:00:00 2001 From: jgauchia Date: Thu, 15 Aug 2024 20:21:36 +0200 Subject: [PATCH 02/11] Create 2 Maps sizes (full/normal) --- lib/gui/src/mainScr.cpp | 31 ++++++++++++++++++++++++------- lib/gui/src/notifyBar.cpp | 4 ++-- lib/maps/src/globalMapsDef.h | 10 ++++++---- lib/maps/src/mapsDrawFunc.h | 33 +++++++++++++++++++++++---------- lib/settings/settings.cpp | 35 ++++++++++++++++++----------------- lib/settings/settings.hpp | 1 + 6 files changed, 74 insertions(+), 40 deletions(-) diff --git a/lib/gui/src/mainScr.cpp b/lib/gui/src/mainScr.cpp index dee81342..2a685fc8 100644 --- a/lib/gui/src/mainScr.cpp +++ b/lib/gui/src/mainScr.cpp @@ -7,14 +7,15 @@ */ #include "mainScr.hpp" +#include "globalGuiDef.h" #include "tft.hpp" -bool isMainScreen = false; // Flag to indicate main screen is selected -bool isScrolled = true; // Flag to indicate when tileview was scrolled -bool isReady = false; // Flag to indicate when tileview scroll was finished -bool redrawMap = true; // Flag to indicate when needs to redraw Map -uint8_t activeTile = 0; // Current active tile +bool isMainScreen = false; // Flag to indicate main screen is selected +bool isScrolled = true; // Flag to indicate when tileview was scrolled +bool isReady = false; // Flag to indicate when tileview scroll was finished +bool redrawMap = true; // Flag to indicate when needs to redraw Map +uint8_t activeTile = 0; // Current active tile lv_obj_t *compassHeading; lv_obj_t *compassImg; @@ -154,13 +155,23 @@ void getActTile(lv_event_t *event) if (activeTile == MAP) { createMapScrSprites(); - lv_obj_add_flag(buttonBar,LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(menuBtn,LV_OBJ_FLAG_HIDDEN); + if (isMapFullScreen) + { + lv_obj_add_flag(buttonBar,LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(menuBtn,LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(notifyBarHour, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(notifyBarIcons, LV_OBJ_FLAG_HIDDEN); + } } else { lv_obj_clear_flag(buttonBar,LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(menuBtn,LV_OBJ_FLAG_HIDDEN); + if (isMapFullScreen) + { + lv_obj_clear_flag(notifyBarHour,LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(notifyBarIcons, LV_OBJ_FLAG_HIDDEN); + } } } else @@ -184,6 +195,12 @@ void scrollTile(lv_event_t *event) isReady = false; redrawMap = false; + if (isMapFullScreen) + { + lv_obj_clear_flag(notifyBarHour,LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(notifyBarIcons, LV_OBJ_FLAG_HIDDEN); + } + deleteMapScrSprites(); deleteSatInfoSprites(); } diff --git a/lib/gui/src/notifyBar.cpp b/lib/gui/src/notifyBar.cpp index dd85781e..11ec48ac 100644 --- a/lib/gui/src/notifyBar.cpp +++ b/lib/gui/src/notifyBar.cpp @@ -152,14 +152,14 @@ void updateNotifyBarTimer(lv_timer_t *t) void createNotifyBar() { notifyBarIcons = lv_obj_create(mainScreen); - lv_obj_set_size(notifyBarIcons, (TFT_WIDTH / 3) * 2 , 22); + lv_obj_set_size(notifyBarIcons, (TFT_WIDTH / 3) * 2 , 24); lv_obj_set_pos(notifyBarIcons, TFT_WIDTH / 3, 0); lv_obj_set_flex_flow(notifyBarIcons, LV_FLEX_FLOW_ROW); lv_obj_set_flex_align(notifyBarIcons, LV_FLEX_ALIGN_END, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); lv_obj_clear_flag(notifyBarIcons, LV_OBJ_FLAG_SCROLLABLE); notifyBarHour = lv_obj_create(mainScreen); - lv_obj_set_size(notifyBarHour, TFT_WIDTH / 3 , 22); + lv_obj_set_size(notifyBarHour, TFT_WIDTH / 3 , 24); lv_obj_set_pos(notifyBarHour, 0, 0); lv_obj_set_flex_flow(notifyBarHour, LV_FLEX_FLOW_ROW); lv_obj_set_flex_align(notifyBarHour, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); diff --git a/lib/maps/src/globalMapsDef.h b/lib/maps/src/globalMapsDef.h index 87b0e904..9c7a26b5 100644 --- a/lib/maps/src/globalMapsDef.h +++ b/lib/maps/src/globalMapsDef.h @@ -12,11 +12,13 @@ #include "tft.hpp" #ifdef LARGE_SCREEN -#define MAP_HEIGHT 440 //374 // Map Height Size -#define MAP_WIDTH 320 // Map Width Size +#define MAP_HEIGHT 380 // Map Height Size +#define MAP_WIDTH 320 // Map Width Size +#define MAP_HEIGHT_FULL 480 // Map Height Full Screen #else -#define MAP_HEIGHT 280 // Map Height Size -#define MAP_WIDTH 240 // Map Width Size +#define MAP_HEIGHT 220 // Map Height Size +#define MAP_WIDTH 240 // Map Width Size +#define MAP_HEIGHT_FULL 320 // Map Height Full Screen #endif #define TILE_HEIGHT 768 // Tile 9x9 Height Size diff --git a/lib/maps/src/mapsDrawFunc.h b/lib/maps/src/mapsDrawFunc.h index ebc7047b..0151fdd0 100644 --- a/lib/maps/src/mapsDrawFunc.h +++ b/lib/maps/src/mapsDrawFunc.h @@ -43,7 +43,10 @@ static void deleteMapScrSprites() static void createMapScrSprites() { // Map Sprite - mapSprite.createSprite(MAP_WIDTH, MAP_HEIGHT); + if (!isMapFullScreen) + mapSprite.createSprite(MAP_WIDTH, MAP_HEIGHT); + else + mapSprite.createSprite(MAP_WIDTH, MAP_HEIGHT_FULL); // Arrow Sprite sprArrow.createSprite(16, 16); sprArrow.setColorDepth(16); @@ -73,26 +76,33 @@ static void drawMapWidgets() } #endif + int mapHeight = 0; + + if (isMapFullScreen) + mapHeight = MAP_HEIGHT_FULL; + else + mapHeight = MAP_HEIGHT; + mapSprite.fillRectAlpha(0, 0, 50, 32, 95, TFT_BLACK); mapSprite.pushImage(0, 4, 24, 24, (uint16_t *)zoom_ico, TFT_BLACK); mapSprite.drawNumber(zoom, 26, 8, &fonts::FreeSansBold9pt7b); if (showMapSpeed) { - mapSprite.fillRectAlpha(0, MAP_HEIGHT - 32, 70, 32, 95, TFT_BLACK); - mapSprite.pushImage(0, MAP_HEIGHT - 28, 24, 24, (uint16_t *)speed_ico, TFT_BLACK); - mapSprite.drawNumber((uint16_t)GPS.speed.kmph(), 26, MAP_HEIGHT - 24 , &fonts::FreeSansBold9pt7b); + mapSprite.fillRectAlpha(0, mapHeight - 32, 70, 32, 95, TFT_BLACK); + mapSprite.pushImage(0, mapHeight - 28, 24, 24, (uint16_t *)speed_ico, TFT_BLACK); + mapSprite.drawNumber((uint16_t)GPS.speed.kmph(), 26, mapHeight - 24 , &fonts::FreeSansBold9pt7b); } if (!isVectorMap) if (showMapScale) { - mapSprite.fillRectAlpha(MAP_WIDTH - 70, MAP_HEIGHT - 32 , 70, MAP_WIDTH - 75, 95, TFT_BLACK); + mapSprite.fillRectAlpha(MAP_WIDTH - 70, mapHeight - 32 , 70, MAP_WIDTH - 75, 95, TFT_BLACK); mapSprite.setTextSize(1); - mapSprite.drawFastHLine(MAP_WIDTH - 65 , MAP_HEIGHT - 14 , 60); - mapSprite.drawFastVLine(MAP_WIDTH - 65 , MAP_HEIGHT - 19 , 10); - mapSprite.drawFastVLine(MAP_WIDTH - 5, MAP_HEIGHT - 19 , 10); - mapSprite.drawCenterString(map_scale[zoom], MAP_WIDTH - 35 , MAP_HEIGHT - 24); + mapSprite.drawFastHLine(MAP_WIDTH - 65 , mapHeight - 14 , 60); + mapSprite.drawFastVLine(MAP_WIDTH - 65 , mapHeight - 19 , 10); + mapSprite.drawFastVLine(MAP_WIDTH - 5, mapHeight - 19 , 10); + mapSprite.drawCenterString(map_scale[zoom], MAP_WIDTH - 35 , mapHeight - 24); } } @@ -109,7 +119,10 @@ static void displayMap(uint16_t tileSize) } tft.waitDMA(); - mapSprite.pushSprite(0, 27); + if (!isMapFullScreen) + mapSprite.pushSprite(0, 27); + else + mapSprite.pushSprite(0,0); if (isMapFound) { diff --git a/lib/settings/settings.cpp b/lib/settings/settings.cpp index e877f824..801bb984 100644 --- a/lib/settings/settings.cpp +++ b/lib/settings/settings.cpp @@ -21,23 +21,24 @@ uint8_t zoom = 0; // Actual Zoom Level * @brief Global Variables definition for device preferences & config. * */ -bool isMapRotation = true; // Map Compass Rotation -uint8_t defaultZoom = 0; // Default Zoom Value -bool showMapCompass = true; // Compass in map screen -bool isCompassRot = true; // Compass rotation in map screen -bool showMapSpeed = true; // Speed in map screen -bool showMapScale = true; // Scale in map screen -bool isVectorMap = false; // Map Type -uint16_t gpsBaud = 0; // GPS Speed -uint16_t gpsUpdate = 0; // GPS Update rate -uint16_t compassPosX = 0; // Compass widget position X -uint16_t compassPosY = 0; // Compass widget position Y -uint16_t coordPosX = 0; // Coordinates widget position X -uint16_t coordPosY = 0; // Coordinates widget position Y -uint16_t altitudePosX = 0; // Altitude widget position X -uint16_t altitudePosY = 0; // Altitude widget position Y -uint16_t speedPosX = 0; // Speed widget position X -uint16_t speedPosY = 0; // Speed widget position Y +bool isMapRotation = true; // Map Compass Rotation +uint8_t defaultZoom = 0; // Default Zoom Value +bool showMapCompass = true; // Compass in map screen +bool isCompassRot = true; // Compass rotation in map screen +bool showMapSpeed = true; // Speed in map screen +bool showMapScale = true; // Scale in map screen +bool isVectorMap = false; // Map Type +bool isMapFullScreen = false; // Is Map Full Screen +uint16_t gpsBaud = 0; // GPS Speed +uint16_t gpsUpdate = 0; // GPS Update rate +uint16_t compassPosX = 0; // Compass widget position X +uint16_t compassPosY = 0; // Compass widget position Y +uint16_t coordPosX = 0; // Coordinates widget position X +uint16_t coordPosY = 0; // Coordinates widget position Y +uint16_t altitudePosX = 0; // Altitude widget position X +uint16_t altitudePosY = 0; // Altitude widget position Y +uint16_t speedPosX = 0; // Speed widget position X +uint16_t speedPosY = 0; // Speed widget position Y /** * @brief Load stored preferences diff --git a/lib/settings/settings.hpp b/lib/settings/settings.hpp index 14a3c914..af3a9586 100644 --- a/lib/settings/settings.hpp +++ b/lib/settings/settings.hpp @@ -26,6 +26,7 @@ extern bool isCompassRot; // Compass rotation in map screen extern bool showMapSpeed; // Speed in map screen extern bool showMapScale; // Scale in map screen extern bool isVectorMap; // Map type +extern bool isMapFullScreen; // Is Map Full Screen extern uint16_t gpsBaud; // GPS Speed extern uint16_t gpsUpdate; // GPS Update rate extern uint16_t compassPosX; // Compass widget position X From 3cdc8efb9215a3359ede57a2ba0108bd738e00c2 Mon Sep 17 00:00:00 2001 From: jgauchia Date: Thu, 15 Aug 2024 20:43:00 +0200 Subject: [PATCH 03/11] Add Map Mode in Map Settings --- lib/gui/src/mapSettingsScr.cpp | 20 +++++++++++++++++++- lib/gui/src/mapSettingsScr.hpp | 1 + lib/preferences/preferences-keys.h | 1 + lib/settings/settings.cpp | 11 +++++++++++ lib/settings/settings.hpp | 1 + 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/lib/gui/src/mapSettingsScr.cpp b/lib/gui/src/mapSettingsScr.cpp index 99efaffe..07cf226d 100644 --- a/lib/gui/src/mapSettingsScr.cpp +++ b/lib/gui/src/mapSettingsScr.cpp @@ -7,6 +7,8 @@ */ #include "mapSettingsScr.hpp" +#include "core/lv_obj.h" +#include "settings.hpp" lv_obj_t *mapSettingsScreen; // Map Settings Screen @@ -105,6 +107,12 @@ static void mapSettingsEvents(lv_event_t *event) showMapScale = lv_obj_has_state(obj, LV_STATE_CHECKED); saveShowScale(showMapScale); } + + if (obj == checkFullScreen) + { + isMapFullScreen = lv_obj_has_state(obj, LV_STATE_CHECKED); + saveShowMap(isMapFullScreen); + } } /** @@ -180,12 +188,22 @@ void createMapSettingsScr() lv_obj_set_style_bg_image_src(zoomBtnDown, LV_SYMBOL_MINUS, 0); lv_obj_add_event_cb(zoomBtnDown, mapSettingsEvents, LV_EVENT_ALL, NULL); + // Show Full Screen Map + list = lv_list_add_btn(mapSettingsOptions, NULL, "Show Fullscreen Map"); + lv_obj_set_style_text_font(list, fontOptions, 0); + lv_obj_clear_flag(list, LV_OBJ_FLAG_CLICKABLE); + lv_obj_set_align(list, LV_ALIGN_LEFT_MID); + checkFullScreen = lv_checkbox_create(list); + lv_obj_align_to(checkFullScreen, list, LV_ALIGN_RIGHT_MID, 0, 0); + lv_checkbox_set_text(checkFullScreen, " "); + lv_obj_add_state(checkFullScreen, isMapFullScreen); + lv_obj_add_event_cb(checkFullScreen, mapSettingsEvents, LV_EVENT_VALUE_CHANGED, NULL); + // Show Compass list = lv_list_add_btn(mapSettingsOptions, NULL, "Show Compass"); lv_obj_set_style_text_font(list, fontOptions, 0); lv_obj_clear_flag(list, LV_OBJ_FLAG_CLICKABLE); lv_obj_set_align(list, LV_ALIGN_LEFT_MID); - checkCompass = lv_checkbox_create(list); lv_obj_align_to(checkCompass, list, LV_ALIGN_RIGHT_MID, 0, 0); lv_checkbox_set_text(checkCompass, " "); diff --git a/lib/gui/src/mapSettingsScr.hpp b/lib/gui/src/mapSettingsScr.hpp index 39162b70..d0bef755 100644 --- a/lib/gui/src/mapSettingsScr.hpp +++ b/lib/gui/src/mapSettingsScr.hpp @@ -27,6 +27,7 @@ static lv_obj_t *checkCompass; static lv_obj_t *checkCompassRot; static lv_obj_t *checkSpeed; static lv_obj_t *checkScale; +static lv_obj_t *checkFullScreen; static void mapSettingsEvents(lv_event_t *event); void createMapSettingsScr(); diff --git a/lib/preferences/preferences-keys.h b/lib/preferences/preferences-keys.h index 0838403a..ecba32f4 100644 --- a/lib/preferences/preferences-keys.h +++ b/lib/preferences/preferences-keys.h @@ -4,6 +4,7 @@ X(KMAP_SCALE, "Map_scale", BOOL) \ X(KMAP_COMPASS, "Map_compass", BOOL) \ X(KMAP_VECTOR, "Map_vector", BOOL) \ + X(KMAP_MODE, "Map_mode", BOOL) \ X(KCOMP_X, "Compass_X", INT) \ X(KCOMP_Y, "Compass_Y", INT) \ X(KCOORD_X, "Coords_X", INT) \ diff --git a/lib/settings/settings.cpp b/lib/settings/settings.cpp index 801bb984..13a3bb3f 100644 --- a/lib/settings/settings.cpp +++ b/lib/settings/settings.cpp @@ -86,6 +86,7 @@ void loadPreferences() minZoom = 6; maxZoom = 17; } + isMapFullScreen = cfg.getBool(PKEYS::KMAP_MODE, false); // // Default Widgets positions // compassPosX = 60; @@ -260,6 +261,16 @@ void saveMapType(bool vector) cfg.saveBool(PKEYS::KMAP_VECTOR, vector); } +/** + * @brief Save Map Mode + * + * @param mapMOde + */ +void saveShowMap(bool mapMode) +{ + cfg.saveBool(PKEYS::KMAP_MODE, mapMode); +} + /** * @brief Utility to show all settings */ diff --git a/lib/settings/settings.hpp b/lib/settings/settings.hpp index af3a9586..32f30088 100644 --- a/lib/settings/settings.hpp +++ b/lib/settings/settings.hpp @@ -50,6 +50,7 @@ void saveGPSBaud(uint16_t gpsBaud); void saveGPSUpdateRate(uint16_t gpsUpdateRate); void saveWidgetPos(char *widget, uint16_t posX, uint16_t posY); void saveMapType(bool vector); +void saveShowMap(bool mapMode); void printSettings(); #endif From ce953ab8ef25f7a7f37a41e7639d524816f919b9 Mon Sep 17 00:00:00 2001 From: jgauchia Date: Thu, 15 Aug 2024 21:20:59 +0200 Subject: [PATCH 04/11] Add Rebbot when Map mode changes in settings --- lib/gui/src/mapSettingsScr.cpp | 1 + lib/lvgl/src/lvglSetup.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/gui/src/mapSettingsScr.cpp b/lib/gui/src/mapSettingsScr.cpp index 07cf226d..0a927c1f 100644 --- a/lib/gui/src/mapSettingsScr.cpp +++ b/lib/gui/src/mapSettingsScr.cpp @@ -112,6 +112,7 @@ static void mapSettingsEvents(lv_event_t *event) { isMapFullScreen = lv_obj_has_state(obj, LV_STATE_CHECKED); saveShowMap(isMapFullScreen); + needReboot = true; } } diff --git a/lib/lvgl/src/lvglSetup.cpp b/lib/lvgl/src/lvglSetup.cpp index 6045f39e..faa2897c 100644 --- a/lib/lvgl/src/lvglSetup.cpp +++ b/lib/lvgl/src/lvglSetup.cpp @@ -7,6 +7,7 @@ */ #include "lvglSetup.hpp" +#include "core/lv_obj_event.h" #include "globalGuiDef.h" ViewPort viewPort; // Vector map viewport From 34b8ef4144e48535650ebb5b1f06a4c6f671d7a5 Mon Sep 17 00:00:00 2001 From: jgauchia Date: Thu, 15 Aug 2024 23:27:15 +0200 Subject: [PATCH 05/11] Add Map Screen Toolbar --- lib/images/src/collapse.c | 102 ++++++++++++++++++++++++++++++++++++ lib/images/src/expand.c | 102 ++++++++++++++++++++++++++++++++++++ lib/maps/src/mapsDrawFunc.h | 19 ++++++- lib/settings/settings.cpp | 2 + lib/settings/settings.hpp | 1 + 5 files changed, 225 insertions(+), 1 deletion(-) create mode 100644 lib/images/src/collapse.c create mode 100644 lib/images/src/expand.c diff --git a/lib/images/src/collapse.c b/lib/images/src/collapse.c new file mode 100644 index 00000000..a6c1dd25 --- /dev/null +++ b/lib/images/src/collapse.c @@ -0,0 +1,102 @@ +#include + +// array size is 4608 +static const unsigned char collapse[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, 0x63, 0xf3, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, 0x42, 0xad, 0x3a, 0xad, 0x63, 0xf3, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x6c, 0x33, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x95, 0xb9, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x95, 0xb9, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xa6, 0x3d, + 0xb6, 0xbd, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x95, 0xb9, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, + 0x53, 0x71, 0xae, 0xbd, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x95, 0xb9, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, + 0x3a, 0xad, 0x53, 0x71, 0xae, 0xbd, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x95, 0xb9, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, + 0x3a, 0xad, 0x3a, 0xad, 0x53, 0x71, 0xae, 0xbd, 0x95, 0xb9, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x95, 0xb9, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, + 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x4b, 0x2f, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x95, 0xb9, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, + 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x95, 0xb9, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, + 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x95, 0xb9, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, + 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x4b, 0x2f, 0xae, 0xbd, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, + 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x53, 0x71, 0xae, 0xbd, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, + 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x53, 0x71, 0xae, 0xbd, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x95, 0xb9, + 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x53, 0x71, 0xae, 0xbd, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xae, 0x7d, + 0x95, 0x79, 0x95, 0x79, 0x95, 0x79, 0x95, 0x79, 0x95, 0x79, 0x95, 0x79, 0x95, 0x79, 0x95, 0x79, 0x95, 0x79, 0x95, 0x79, 0xa6, 0x3b, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + diff --git a/lib/images/src/expand.c b/lib/images/src/expand.c new file mode 100644 index 00000000..7fc67823 --- /dev/null +++ b/lib/images/src/expand.c @@ -0,0 +1,102 @@ +#include + +// array size is 4608 +static const unsigned char expand[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x84, 0xf7, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x84, 0xf7, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x84, 0xf7, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x84, 0xf7, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x9d, 0xb9, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x9d, 0xb9, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x9d, 0xbb, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x9d, 0xbb, 0x42, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x8d, 0x79, 0x84, 0xf7, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x9d, 0xfb, 0x42, 0xaf, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x8d, 0x79, 0xbe, 0xff, 0xbe, 0xff, 0x84, 0xf7, 0x3a, 0xad, 0x3a, 0xad, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x9d, 0xfb, 0x42, 0xef, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x8d, 0x79, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x84, 0xf7, 0x3a, 0xad, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0x9d, 0xfb, 0x42, 0xef, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x8d, 0x79, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x7c, 0xf7, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0x9d, 0xfb, 0x42, 0xaf, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x8d, 0x79, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0x9d, 0xfb, 0x42, 0xaf, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x8d, 0x37, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xb6, 0xff, + 0x4a, 0xef, 0x3a, 0xad, 0x3a, 0xad, 0x3a, 0xad, 0x42, 0xad, 0x8d, 0x79, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0x9d, 0xfb, 0x42, 0xef, 0x3a, 0xad, 0x42, 0xad, 0x8d, 0x37, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0x9d, 0xfb, 0x42, 0xef, 0x85, 0x37, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xb6, 0xbd, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0x1b, 0xb5, 0xbe, 0xff, 0xbe, 0xff, + 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0xbe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + diff --git a/lib/maps/src/mapsDrawFunc.h b/lib/maps/src/mapsDrawFunc.h index 0151fdd0..2d0c2d4a 100644 --- a/lib/maps/src/mapsDrawFunc.h +++ b/lib/maps/src/mapsDrawFunc.h @@ -16,6 +16,9 @@ #include "compass.c" #include "zoom.c" #include "speed.c" +#include "expand.c" +#include "collapse.c" +#include // Scale for map static const char *map_scale[] PROGMEM = {"5000 Km", "2500 Km", "1500 Km", @@ -79,10 +82,24 @@ static void drawMapWidgets() int mapHeight = 0; if (isMapFullScreen) - mapHeight = MAP_HEIGHT_FULL; + mapHeight = MAP_HEIGHT_FULL; else mapHeight = MAP_HEIGHT; + if (showToolBar) + { + if (isMapFullScreen) + { + mapSprite.pushImage(10,mapHeight - 100, 48, 48,(uint16_t*)collapse,TFT_BLACK); + } + else + { + mapSprite.pushImage(10,mapHeight - 100, 48 ,48 ,(uint16_t*)expand,TFT_BLACK); + } + mapSprite.fillRectAlpha(10, mapHeight - 100, 48, 48, 95, TFT_BLACK); + + } + mapSprite.fillRectAlpha(0, 0, 50, 32, 95, TFT_BLACK); mapSprite.pushImage(0, 4, 24, 24, (uint16_t *)zoom_ico, TFT_BLACK); mapSprite.drawNumber(zoom, 26, 8, &fonts::FreeSansBold9pt7b); diff --git a/lib/settings/settings.cpp b/lib/settings/settings.cpp index 13a3bb3f..12b8e9cd 100644 --- a/lib/settings/settings.cpp +++ b/lib/settings/settings.cpp @@ -40,6 +40,8 @@ uint16_t altitudePosY = 0; // Altitude widget position Y uint16_t speedPosX = 0; // Speed widget position X uint16_t speedPosY = 0; // Speed widget position Y +bool showToolBar = false; // Show Map Toolbar + /** * @brief Load stored preferences * diff --git a/lib/settings/settings.hpp b/lib/settings/settings.hpp index 32f30088..b2a74286 100644 --- a/lib/settings/settings.hpp +++ b/lib/settings/settings.hpp @@ -27,6 +27,7 @@ extern bool showMapSpeed; // Speed in map screen extern bool showMapScale; // Scale in map screen extern bool isVectorMap; // Map type extern bool isMapFullScreen; // Is Map Full Screen +extern bool showToolBar; // Show Map Toolbar extern uint16_t gpsBaud; // GPS Speed extern uint16_t gpsUpdate; // GPS Update rate extern uint16_t compassPosX; // Compass widget position X From c13cd042b7419cc71b0c13ba9d79ff56fc03d3d9 Mon Sep 17 00:00:00 2001 From: jgauchia Date: Fri, 16 Aug 2024 00:13:12 +0200 Subject: [PATCH 06/11] Show Toolbar when touch Map Screen --- lib/gui/src/mainScr.cpp | 13 +++++++++++++ lib/gui/src/mainScr.hpp | 1 + 2 files changed, 14 insertions(+) diff --git a/lib/gui/src/mainScr.cpp b/lib/gui/src/mainScr.cpp index 2a685fc8..aa02366e 100644 --- a/lib/gui/src/mainScr.cpp +++ b/lib/gui/src/mainScr.cpp @@ -8,6 +8,7 @@ #include "mainScr.hpp" #include "globalGuiDef.h" +#include "settings.hpp" #include "tft.hpp" @@ -419,6 +420,17 @@ void updateSatTrack(lv_event_t *event) #endif } +/** + * @brief Tool Bar Event + * + * @param event + */ +void toolBarEvent(lv_event_t *event) +{ + showToolBar = !showToolBar; + lv_obj_send_event(mapTile, LV_EVENT_REFRESH, NULL); +} + /** * @brief Create Main Screen * @@ -566,6 +578,7 @@ void createMainScr() // Map Tile Events lv_obj_add_event_cb(mapTile, updateMap, LV_EVENT_VALUE_CHANGED, NULL); lv_obj_add_event_cb(mainScreen, getZoomValue, LV_EVENT_GESTURE, NULL); + lv_obj_add_event_cb(mapTile, toolBarEvent, LV_EVENT_CLICKED, NULL); // Navigation Tile // TODO diff --git a/lib/gui/src/mainScr.hpp b/lib/gui/src/mainScr.hpp index d1a49f5d..155e1b43 100644 --- a/lib/gui/src/mainScr.hpp +++ b/lib/gui/src/mainScr.hpp @@ -97,6 +97,7 @@ void drawMapWidgets(); void updateMap(lv_event_t *event); void activeGnssEvent(lv_event_t *event); void updateSatTrack(lv_event_t *event); +void toolBarEvent(lv_event_t *event); void createMainScr(); From 5d45fb2b03af95c7932a41ffeeb1727af98a1c74 Mon Sep 17 00:00:00 2001 From: jgauchia Date: Fri, 16 Aug 2024 01:22:16 +0200 Subject: [PATCH 07/11] Add Full Screen toolbar feature --- lib/gui/src/mainScr.cpp | 63 ++++++++++++++++++++++++++++++++++++++++- lib/gui/src/mainScr.hpp | 7 +++++ 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/lib/gui/src/mainScr.cpp b/lib/gui/src/mainScr.cpp index aa02366e..7048069c 100644 --- a/lib/gui/src/mainScr.cpp +++ b/lib/gui/src/mainScr.cpp @@ -8,6 +8,7 @@ #include "mainScr.hpp" #include "globalGuiDef.h" +#include "globalMapsDef.h" #include "settings.hpp" #include "tft.hpp" @@ -28,6 +29,7 @@ lv_obj_t *compassTile; lv_obj_t *navTile; lv_obj_t *mapTile; lv_obj_t *satTrackTile; +lv_obj_t *btnFullScreen; /** * @brief Update compass screen event @@ -428,6 +430,51 @@ void updateSatTrack(lv_event_t *event) void toolBarEvent(lv_event_t *event) { showToolBar = !showToolBar; + + if (!isMapFullScreen) + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - 100); + else + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - 124); + + if (!showToolBar) + lv_obj_add_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); + else + lv_obj_clear_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); + + lv_obj_send_event(mapTile, LV_EVENT_REFRESH, NULL); +} + +/** + * @brief Full Screen Event Toolbar + * + * @param event + */ +void fullScreenEvent(lv_event_t *event) +{ + isMapFullScreen = !isMapFullScreen; + + if (!isMapFullScreen) + { + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - 100); + lv_obj_clear_flag(buttonBar,LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(menuBtn,LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(notifyBarHour, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(notifyBarIcons, LV_OBJ_FLAG_HIDDEN); + lv_obj_invalidate(tilesScreen); + } + else + { + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - 124); + lv_obj_add_flag(buttonBar,LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(menuBtn,LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(notifyBarHour, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(notifyBarIcons, LV_OBJ_FLAG_HIDDEN); + } + + deleteMapScrSprites(); + createMapScrSprites(); + + redrawMap = true; lv_obj_send_event(mapTile, LV_EVENT_REFRESH, NULL); } @@ -573,7 +620,21 @@ void createMainScr() lv_obj_add_event_cb(speedLabel, updateCompassScr, LV_EVENT_VALUE_CHANGED, NULL); lv_obj_add_event_cb(editScreenBtn, editScreen, LV_EVENT_ALL, NULL); - // Map Tile + // Map Tile Toolbar + btnFullScreen = lv_btn_create(mapTile); + lv_obj_remove_style_all(btnFullScreen); + lv_obj_set_size(btnFullScreen, 48, 48); + if (!isMapFullScreen) + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - 100); + else + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - 124); + + if (!showToolBar) + lv_obj_add_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); + else + lv_obj_clear_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_event_cb(btnFullScreen, fullScreenEvent, LV_EVENT_CLICKED, NULL); + // Map Tile Events lv_obj_add_event_cb(mapTile, updateMap, LV_EVENT_VALUE_CHANGED, NULL); diff --git a/lib/gui/src/mainScr.hpp b/lib/gui/src/mainScr.hpp index 155e1b43..0a2b1cff 100644 --- a/lib/gui/src/mainScr.hpp +++ b/lib/gui/src/mainScr.hpp @@ -53,6 +53,12 @@ extern lv_obj_t *navTile; extern lv_obj_t *mapTile; extern lv_obj_t *satTrackTile; +/** + * @brief Map Toolbar Buttons + * + */ +extern lv_obj_t *btnFullScreen; + /** * @brief Compass Tile screen objects * @@ -98,6 +104,7 @@ void updateMap(lv_event_t *event); void activeGnssEvent(lv_event_t *event); void updateSatTrack(lv_event_t *event); void toolBarEvent(lv_event_t *event); +void fullScreenEvent(lv_event_t *event); void createMainScr(); From 6814f0a41368ddde13f6e4b21bec2e2b5ddcd8b5 Mon Sep 17 00:00:00 2001 From: jgauchia Date: Fri, 16 Aug 2024 13:06:45 +0200 Subject: [PATCH 08/11] Fix Toolbar Position for small screens --- lib/gui/src/mainScr.cpp | 28 +++++++++++++++++++--------- lib/gui/src/mainScr.hpp | 1 + lib/maps/src/globalMapsDef.h | 3 ++- lib/maps/src/mapsDrawFunc.h | 15 ++++++++++++--- 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/lib/gui/src/mainScr.cpp b/lib/gui/src/mainScr.cpp index 7048069c..b509ebe0 100644 --- a/lib/gui/src/mainScr.cpp +++ b/lib/gui/src/mainScr.cpp @@ -7,6 +7,7 @@ */ #include "mainScr.hpp" +#include "core/lv_obj_pos.h" #include "globalGuiDef.h" #include "globalMapsDef.h" #include "settings.hpp" @@ -19,6 +20,13 @@ bool isReady = false; // Flag to indicate when tileview scroll was finis bool redrawMap = true; // Flag to indicate when needs to redraw Map uint8_t activeTile = 0; // Current active tile +#ifdef LARGE_SCREEN + int toolBarOffset = 100; +#endif +#ifndef LARGE_SCREEN + int toolBarOffset = 80; +#endif + lv_obj_t *compassHeading; lv_obj_t *compassImg; lv_obj_t *latitude; @@ -432,16 +440,15 @@ void toolBarEvent(lv_event_t *event) showToolBar = !showToolBar; if (!isMapFullScreen) - lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - 100); + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - toolBarOffset); else - lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - 124); + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - (toolBarOffset+24)); if (!showToolBar) lv_obj_add_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); else lv_obj_clear_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); - - lv_obj_send_event(mapTile, LV_EVENT_REFRESH, NULL); + lv_obj_invalidate(btnFullScreen); } /** @@ -455,16 +462,15 @@ void fullScreenEvent(lv_event_t *event) if (!isMapFullScreen) { - lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - 100); + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - toolBarOffset); lv_obj_clear_flag(buttonBar,LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(menuBtn,LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(notifyBarHour, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(notifyBarIcons, LV_OBJ_FLAG_HIDDEN); - lv_obj_invalidate(tilesScreen); } else { - lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - 124); + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - (toolBarOffset+24)); lv_obj_add_flag(buttonBar,LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(menuBtn,LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(notifyBarHour, LV_OBJ_FLAG_HIDDEN); @@ -475,6 +481,8 @@ void fullScreenEvent(lv_event_t *event) createMapScrSprites(); redrawMap = true; + + lv_obj_invalidate(tilesScreen); lv_obj_send_event(mapTile, LV_EVENT_REFRESH, NULL); } @@ -624,10 +632,12 @@ void createMainScr() btnFullScreen = lv_btn_create(mapTile); lv_obj_remove_style_all(btnFullScreen); lv_obj_set_size(btnFullScreen, 48, 48); + //lv_obj_set_style_bg_color(btnFullScreen, lv_color_white(), 0); + //lv_obj_set_style_bg_opa(btnFullScreen, 1, 0); if (!isMapFullScreen) - lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - 100); + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - toolBarOffset); else - lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - 124); + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - (toolBarOffset+24)); if (!showToolBar) lv_obj_add_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); diff --git a/lib/gui/src/mainScr.hpp b/lib/gui/src/mainScr.hpp index 0a2b1cff..a6b36684 100644 --- a/lib/gui/src/mainScr.hpp +++ b/lib/gui/src/mainScr.hpp @@ -58,6 +58,7 @@ extern lv_obj_t *satTrackTile; * */ extern lv_obj_t *btnFullScreen; +extern int toolBarOffset; /** * @brief Compass Tile screen objects diff --git a/lib/maps/src/globalMapsDef.h b/lib/maps/src/globalMapsDef.h index 9c7a26b5..7d599156 100644 --- a/lib/maps/src/globalMapsDef.h +++ b/lib/maps/src/globalMapsDef.h @@ -12,7 +12,7 @@ #include "tft.hpp" #ifdef LARGE_SCREEN -#define MAP_HEIGHT 380 // Map Height Size +#define MAP_HEIGHT 380 // Map Height Size 380 #define MAP_WIDTH 320 // Map Width Size #define MAP_HEIGHT_FULL 480 // Map Height Full Screen #else @@ -31,6 +31,7 @@ extern bool isMapFound; // Flag to indicate when tile map is found extern bool isScrolled; // Flag to indicate when tileview was scrolled extern bool redrawMap; // Flag to indicate need redraw Map + extern TFT_eSprite sprArrow; // Sprite for Navigation Arrow in map tile extern TFT_eSprite mapTempSprite; // Double Buffering Sprites for Map Tile extern TFT_eSprite mapSprite; // Double Buffering Sprites for Map Tile diff --git a/lib/maps/src/mapsDrawFunc.h b/lib/maps/src/mapsDrawFunc.h index 2d0c2d4a..f9c94da9 100644 --- a/lib/maps/src/mapsDrawFunc.h +++ b/lib/maps/src/mapsDrawFunc.h @@ -86,17 +86,26 @@ static void drawMapWidgets() else mapHeight = MAP_HEIGHT; + + int toolBarOffset = 0; + #ifdef LARGE_SCREEN + toolBarOffset = 100; + #endif + #ifndef LARGE_SCREEN + toolBarOffset = 80; + #endif + if (showToolBar) { if (isMapFullScreen) { - mapSprite.pushImage(10,mapHeight - 100, 48, 48,(uint16_t*)collapse,TFT_BLACK); + mapSprite.pushImage(10,mapHeight - toolBarOffset, 48, 48,(uint16_t*)collapse,TFT_BLACK); } else { - mapSprite.pushImage(10,mapHeight - 100, 48 ,48 ,(uint16_t*)expand,TFT_BLACK); + mapSprite.pushImage(10,mapHeight - toolBarOffset, 48 ,48 ,(uint16_t*)expand,TFT_BLACK); } - mapSprite.fillRectAlpha(10, mapHeight - 100, 48, 48, 95, TFT_BLACK); + mapSprite.fillRectAlpha(10, mapHeight - toolBarOffset, 48, 48, 95, TFT_BLACK); } From 86887d49422218d4c384b3c0bcca9f66a0b0c8d6 Mon Sep 17 00:00:00 2001 From: jgauchia Date: Fri, 16 Aug 2024 14:08:31 +0200 Subject: [PATCH 09/11] Add Zoom Icons to Map Toolbar --- lib/gui/src/mainScr.cpp | 4 +- lib/gui/src/mainScr.hpp | 1 + lib/images/src/zoomin.c | 101 ++++++++++++++++++++++++++++++++++++ lib/images/src/zoomout.c | 101 ++++++++++++++++++++++++++++++++++++ lib/maps/src/mapsDrawFunc.h | 12 ++++- 5 files changed, 216 insertions(+), 3 deletions(-) create mode 100644 lib/images/src/zoomin.c create mode 100644 lib/images/src/zoomout.c diff --git a/lib/gui/src/mainScr.cpp b/lib/gui/src/mainScr.cpp index b509ebe0..3e156234 100644 --- a/lib/gui/src/mainScr.cpp +++ b/lib/gui/src/mainScr.cpp @@ -22,9 +22,11 @@ uint8_t activeTile = 0; // Current active tile #ifdef LARGE_SCREEN int toolBarOffset = 100; + int toolBarSpace = 60; #endif #ifndef LARGE_SCREEN int toolBarOffset = 80; + int toolBarSpace = 50; #endif lv_obj_t *compassHeading; @@ -632,8 +634,6 @@ void createMainScr() btnFullScreen = lv_btn_create(mapTile); lv_obj_remove_style_all(btnFullScreen); lv_obj_set_size(btnFullScreen, 48, 48); - //lv_obj_set_style_bg_color(btnFullScreen, lv_color_white(), 0); - //lv_obj_set_style_bg_opa(btnFullScreen, 1, 0); if (!isMapFullScreen) lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - toolBarOffset); else diff --git a/lib/gui/src/mainScr.hpp b/lib/gui/src/mainScr.hpp index a6b36684..a185e6c5 100644 --- a/lib/gui/src/mainScr.hpp +++ b/lib/gui/src/mainScr.hpp @@ -59,6 +59,7 @@ extern lv_obj_t *satTrackTile; */ extern lv_obj_t *btnFullScreen; extern int toolBarOffset; +extern int toolBarSpace; /** * @brief Compass Tile screen objects diff --git a/lib/images/src/zoomin.c b/lib/images/src/zoomin.c new file mode 100644 index 00000000..08959771 --- /dev/null +++ b/lib/images/src/zoomin.c @@ -0,0 +1,101 @@ + #include + +// array size is 4608 +static const unsigned char zoomin[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x5a, 0xd7, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x95, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x5f, 0x64, 0x69, 0x64, 0xf3, 0x65, 0x77, 0x65, 0xbb, 0x65, 0xbb, 0x65, 0x77, 0x64, 0xf3, 0x64, 0x69, + 0x63, 0x5f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x9f, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0x35, 0x63, 0xa1, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xaf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xaf, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x1b, 0x65, 0x35, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0x35, 0x63, 0x1b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x52, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0x35, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0x35, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xaf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xad, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0xa1, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x63, 0x9f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0x35, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x5f, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x63, 0x5f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0x69, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0x29, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0x79, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, + 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0x77, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0xbb, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, + 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbb, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0xbb, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, + 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbb, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0x77, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, + 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0x77, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0x69, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0x29, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x5d, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x63, 0x5f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x5b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x6b, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x9f, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x63, 0x9f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xaf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xad, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0x35, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x1b, 0x65, 0x35, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x1b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x6b, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xad, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xad, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x5f, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x9f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x5d, 0x64, 0x29, 0x64, 0xf3, 0x65, 0x77, 0x65, 0xbb, 0x65, 0xbb, 0x65, 0x77, 0x64, 0xf3, 0x64, 0x29, + 0x63, 0x5d, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x4a, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x5b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x6b, 0x5b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x42, 0x55, 0x32, 0x13, 0x4a, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x5b, 0x19, 0x42, 0x55, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x4a, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x5b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x63, 0x19, 0x6b, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x97, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x3a, 0x55, 0x4a, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x42, 0x55, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x95, 0x42, 0x55, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; diff --git a/lib/images/src/zoomout.c b/lib/images/src/zoomout.c new file mode 100644 index 00000000..f609918c --- /dev/null +++ b/lib/images/src/zoomout.c @@ -0,0 +1,101 @@ + #include + +// array size is 4608 +static const unsigned char zoomout[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x5a, 0xd7, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x95, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x5f, 0x64, 0x69, 0x64, 0xf3, 0x65, 0x77, 0x65, 0xbb, 0x65, 0xbb, 0x65, 0x77, 0x64, 0xf3, 0x64, 0x69, + 0x63, 0x5f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x9f, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0x35, 0x63, 0xa1, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xaf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xaf, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x1b, 0x65, 0x35, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0x35, 0x63, 0x1b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x52, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0x35, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0x35, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xaf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xad, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0xa1, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x63, 0x9f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0x35, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x5f, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x63, 0x5f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0x69, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0x29, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0x79, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, + 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0x77, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0xbb, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, + 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbb, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0xbb, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, + 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbb, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x65, 0x77, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, + 0xe7, 0xbf, 0xe7, 0xbf, 0xe7, 0xbf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0x77, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0x69, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0x29, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x5d, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x63, 0x5f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x5b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x6b, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x9f, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x63, 0x9f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xaf, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xad, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0x35, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x1b, 0x65, 0x35, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x1b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x6b, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x64, 0xad, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x64, 0xad, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x5f, 0x64, 0xf3, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, 0x65, 0xbd, + 0x65, 0xbd, 0x64, 0xf3, 0x63, 0x9f, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x5d, 0x64, 0x29, 0x64, 0xf3, 0x65, 0x77, 0x65, 0xbb, 0x65, 0xbb, 0x65, 0x77, 0x64, 0xf3, 0x64, 0x29, + 0x63, 0x5d, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x4a, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x5b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x6b, 0x5b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x42, 0x55, 0x32, 0x13, 0x4a, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd7, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x19, 0x5b, 0x19, 0x42, 0x55, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x4a, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x5b, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, 0x63, 0x19, + 0x63, 0x19, 0x6b, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x97, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x3a, 0x55, 0x4a, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x95, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x32, 0x13, 0x42, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x95, 0x32, 0x13, 0x32, 0x13, 0x42, 0x55, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x95, 0x42, 0x55, 0x5a, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; diff --git a/lib/maps/src/mapsDrawFunc.h b/lib/maps/src/mapsDrawFunc.h index f9c94da9..e84e001a 100644 --- a/lib/maps/src/mapsDrawFunc.h +++ b/lib/maps/src/mapsDrawFunc.h @@ -18,6 +18,8 @@ #include "speed.c" #include "expand.c" #include "collapse.c" +#include "zoomin.c" +#include "zoomout.c" #include // Scale for map @@ -88,11 +90,14 @@ static void drawMapWidgets() int toolBarOffset = 0; + int toolBarSpace = 0; #ifdef LARGE_SCREEN toolBarOffset = 100; + toolBarSpace = 60; #endif #ifndef LARGE_SCREEN toolBarOffset = 80; + toolBarSpace = 50; #endif if (showToolBar) @@ -105,8 +110,13 @@ static void drawMapWidgets() { mapSprite.pushImage(10,mapHeight - toolBarOffset, 48 ,48 ,(uint16_t*)expand,TFT_BLACK); } - mapSprite.fillRectAlpha(10, mapHeight - toolBarOffset, 48, 48, 95, TFT_BLACK); + mapSprite.fillRectAlpha(10, mapHeight - toolBarOffset, 48, 48, 50, TFT_BLACK); + mapSprite.pushImage(10, mapHeight - (toolBarOffset + toolBarSpace), 48,48,(uint16_t*)zoomout,TFT_BLACK); + mapSprite.fillRectAlpha(10, mapHeight - (toolBarOffset + toolBarSpace), 48, 48, 50, TFT_BLACK); + + mapSprite.pushImage(10, mapHeight - (toolBarOffset + (2 * toolBarSpace)), 48,48,(uint16_t*)zoomin,TFT_BLACK); + mapSprite.fillRectAlpha(10, mapHeight - (toolBarOffset + (2 * toolBarSpace)), 48, 48, 50, TFT_BLACK); } mapSprite.fillRectAlpha(0, 0, 50, 32, 95, TFT_BLACK); From b9a3daaa48ce5073e3d06831edad5ef320b84836 Mon Sep 17 00:00:00 2001 From: jgauchia Date: Fri, 16 Aug 2024 16:16:49 +0200 Subject: [PATCH 10/11] Add Zooming Feature in toolbar --- lib/gui/src/mainScr.cpp | 152 +++++++++++++++++++++++++++++----------- lib/gui/src/mainScr.hpp | 6 +- 2 files changed, 115 insertions(+), 43 deletions(-) diff --git a/lib/gui/src/mainScr.cpp b/lib/gui/src/mainScr.cpp index 3e156234..292f415c 100644 --- a/lib/gui/src/mainScr.cpp +++ b/lib/gui/src/mainScr.cpp @@ -7,6 +7,7 @@ */ #include "mainScr.hpp" +#include "core/lv_obj.h" #include "core/lv_obj_pos.h" #include "globalGuiDef.h" #include "globalMapsDef.h" @@ -40,6 +41,8 @@ lv_obj_t *navTile; lv_obj_t *mapTile; lv_obj_t *satTrackTile; lv_obj_t *btnFullScreen; +lv_obj_t *btnZoomIn; +lv_obj_t *btnZoomOut; /** * @brief Update compass screen event @@ -273,11 +276,11 @@ void updateMainScreen(lv_timer_t *t) } /** - * @brief Update zoom value + * @brief Map Gesture Event * * @param event */ -void getZoomValue(lv_event_t *event) +void gestureEvent(lv_event_t *event) { lv_obj_t *screen = (lv_obj_t *)lv_event_get_current_target(event); lv_dir_t dir = lv_indev_get_gesture_dir(lv_indev_get_act()); @@ -290,40 +293,8 @@ void getZoomValue(lv_event_t *event) case LV_DIR_RIGHT: break; case LV_DIR_TOP: - if (!isVectorMap) - { - if (zoom >= minZoom && zoom < maxZoom) - zoom++; - } - else - { - zoom--; - isPosMoved = true; - if (zoom < 1) - { - zoom = 1; - isPosMoved = false; - } - } - lv_obj_send_event(mapTile, LV_EVENT_REFRESH, NULL); break; case LV_DIR_BOTTOM: - if (!isVectorMap) - { - if (zoom <= maxZoom && zoom > minZoom) - zoom--; - } - else - { - zoom++; - isPosMoved = true; - if (zoom > MAX_ZOOM) - { - zoom = MAX_ZOOM; - isPosMoved = false; - } - } - lv_obj_send_event(mapTile, LV_EVENT_REFRESH, NULL); break; } } @@ -442,15 +413,31 @@ void toolBarEvent(lv_event_t *event) showToolBar = !showToolBar; if (!isMapFullScreen) + { lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - toolBarOffset); + lv_obj_set_pos(btnZoomOut, 10 , MAP_HEIGHT - (toolBarOffset + toolBarSpace)); + lv_obj_set_pos(btnZoomIn, 10, MAP_HEIGHT - (toolBarOffset + (2 * toolBarSpace))); + } else - lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - (toolBarOffset+24)); + { + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - (toolBarOffset + 24)); + lv_obj_set_pos(btnZoomOut, 10, MAP_HEIGHT_FULL - (toolBarOffset + toolBarSpace + 24)); + lv_obj_set_pos(btnZoomIn,10, MAP_HEIGHT_FULL - (toolBarOffset + (2 * toolBarSpace) + 24)); + } if (!showToolBar) + { lv_obj_add_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(btnZoomOut, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(btnZoomIn, LV_OBJ_FLAG_HIDDEN); + } else + { lv_obj_clear_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); - lv_obj_invalidate(btnFullScreen); + lv_obj_clear_flag(btnZoomOut, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(btnZoomIn, LV_OBJ_FLAG_HIDDEN); + } + //lv_obj_invalidate(btnFullScreen); } /** @@ -465,6 +452,8 @@ void fullScreenEvent(lv_event_t *event) if (!isMapFullScreen) { lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - toolBarOffset); + lv_obj_set_pos(btnZoomOut, 10, MAP_HEIGHT - (toolBarOffset + toolBarSpace)); + lv_obj_set_pos(btnZoomIn, 10, MAP_HEIGHT - (toolBarOffset + (2 * toolBarSpace))); lv_obj_clear_flag(buttonBar,LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(menuBtn,LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(notifyBarHour, LV_OBJ_FLAG_HIDDEN); @@ -472,7 +461,9 @@ void fullScreenEvent(lv_event_t *event) } else { - lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - (toolBarOffset+24)); + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - (toolBarOffset + 24)); + lv_obj_set_pos(btnZoomOut, 10, MAP_HEIGHT_FULL - (toolBarOffset + toolBarSpace + 24)); + lv_obj_set_pos(btnZoomIn, 10, MAP_HEIGHT_FULL - (toolBarOffset + (2 * toolBarSpace) + 24)); lv_obj_add_flag(buttonBar,LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(menuBtn,LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(notifyBarHour, LV_OBJ_FLAG_HIDDEN); @@ -488,6 +479,56 @@ void fullScreenEvent(lv_event_t *event) lv_obj_send_event(mapTile, LV_EVENT_REFRESH, NULL); } +/** + * @brief Zoom In Event Toolbar + * + * @param event + */ +void zoomInEvent(lv_event_t *event) +{ + if (!isVectorMap) + { + if (zoom >= minZoom && zoom < maxZoom) + zoom++; + } + else + { + zoom--; + isPosMoved = true; + if (zoom < 1) + { + zoom = 1; + isPosMoved = false; + } + } + lv_obj_send_event(mapTile, LV_EVENT_REFRESH, NULL); +} + +/** + * @brief Zoom Out Event Toolbar + * + * @param event + */ +void zoomOutEvent(lv_event_t *event) +{ + if (!isVectorMap) + { + if (zoom <= maxZoom && zoom > minZoom) + zoom--; + } + else + { + zoom++; + isPosMoved = true; + if (zoom > MAX_ZOOM) + { + zoom = MAX_ZOOM; + isPosMoved = false; + } + } + lv_obj_send_event(mapTile, LV_EVENT_REFRESH, NULL); +} + /** * @brief Create Main Screen * @@ -634,22 +675,49 @@ void createMainScr() btnFullScreen = lv_btn_create(mapTile); lv_obj_remove_style_all(btnFullScreen); lv_obj_set_size(btnFullScreen, 48, 48); + lv_obj_add_event_cb(btnFullScreen, fullScreenEvent, LV_EVENT_CLICKED, NULL); + + btnZoomOut = lv_btn_create(mapTile); + lv_obj_remove_style_all(btnZoomOut); + lv_obj_set_size(btnZoomOut, 48, 48); + lv_obj_add_event_cb(btnZoomOut, zoomOutEvent, LV_EVENT_CLICKED, NULL); + + + btnZoomIn = lv_btn_create(mapTile); + lv_obj_remove_style_all(btnZoomIn); + lv_obj_set_size(btnZoomIn, 48, 48); + lv_obj_add_event_cb(btnZoomIn, zoomInEvent, LV_EVENT_CLICKED, NULL); + if (!isMapFullScreen) + { lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT - toolBarOffset); + lv_obj_set_pos(btnZoomOut, 10, MAP_HEIGHT - (toolBarOffset + toolBarSpace)); + lv_obj_set_pos(btnZoomIn, 10, MAP_HEIGHT - ( toolBarOffset + (2 * toolBarSpace))); + } else - lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - (toolBarOffset+24)); + { + lv_obj_set_pos(btnFullScreen, 10, MAP_HEIGHT_FULL - (toolBarOffset + 24)); + lv_obj_set_pos(btnZoomOut, 10, MAP_HEIGHT_FULL - (toolBarOffset + toolBarSpace + 24)); + lv_obj_set_pos(btnZoomIn, 10, MAP_HEIGHT_FULL - (toolBarOffset + (2 * toolBarSpace) + 24)); + } if (!showToolBar) + { lv_obj_add_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(btnZoomOut, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(btnZoomIn, LV_OBJ_FLAG_HIDDEN); + } else + { lv_obj_clear_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_event_cb(btnFullScreen, fullScreenEvent, LV_EVENT_CLICKED, NULL); - + lv_obj_clear_flag(btnZoomOut, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(btnZoomIn, LV_OBJ_FLAG_HIDDEN); + } // Map Tile Events lv_obj_add_event_cb(mapTile, updateMap, LV_EVENT_VALUE_CHANGED, NULL); - lv_obj_add_event_cb(mainScreen, getZoomValue, LV_EVENT_GESTURE, NULL); - lv_obj_add_event_cb(mapTile, toolBarEvent, LV_EVENT_CLICKED, NULL); + lv_obj_add_event_cb(mapTile, gestureEvent, LV_EVENT_GESTURE, NULL); + lv_obj_add_event_cb(mapTile, toolBarEvent, LV_EVENT_LONG_PRESSED, NULL); // Navigation Tile // TODO diff --git a/lib/gui/src/mainScr.hpp b/lib/gui/src/mainScr.hpp index a185e6c5..b06444ed 100644 --- a/lib/gui/src/mainScr.hpp +++ b/lib/gui/src/mainScr.hpp @@ -58,6 +58,8 @@ extern lv_obj_t *satTrackTile; * */ extern lv_obj_t *btnFullScreen; +extern lv_obj_t *btnZoomIn; +extern lv_obj_t *btnZoomOut; extern int toolBarOffset; extern int toolBarSpace; @@ -98,7 +100,7 @@ void scrollTile(lv_event_t *event); void generateRenderMap(); void generateVectorMap(); void updateMainScreen(lv_timer_t *t); -void getZoomValue(lv_event_t *event); +void gestureEvent(lv_event_t *event); void deleteMapScrSprites(); void createMapScrSprites(); void drawMapWidgets(); @@ -107,6 +109,8 @@ void activeGnssEvent(lv_event_t *event); void updateSatTrack(lv_event_t *event); void toolBarEvent(lv_event_t *event); void fullScreenEvent(lv_event_t *event); +void zoomOutEvent(lv_event_t *event); +void zoomInEvent(lv_event_t *event); void createMainScr(); From 96c4ed7aee9003d3bc687ea81349a8a36b572b60 Mon Sep 17 00:00:00 2001 From: jgauchia Date: Fri, 16 Aug 2024 16:32:57 +0200 Subject: [PATCH 11/11] Fix Toolbar background flickering --- lib/gui/src/mainScr.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/gui/src/mainScr.cpp b/lib/gui/src/mainScr.cpp index 292f415c..50a525ce 100644 --- a/lib/gui/src/mainScr.cpp +++ b/lib/gui/src/mainScr.cpp @@ -427,17 +427,16 @@ void toolBarEvent(lv_event_t *event) if (!showToolBar) { - lv_obj_add_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(btnZoomOut, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(btnZoomIn, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(btnFullScreen, LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(btnZoomOut, LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(btnZoomIn, LV_OBJ_FLAG_CLICKABLE); } else { - lv_obj_clear_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(btnZoomOut, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(btnZoomIn, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(btnFullScreen, LV_OBJ_FLAG_CLICKABLE); + lv_obj_add_flag(btnZoomOut, LV_OBJ_FLAG_CLICKABLE); + lv_obj_add_flag(btnZoomIn, LV_OBJ_FLAG_CLICKABLE); } - //lv_obj_invalidate(btnFullScreen); } /** @@ -703,15 +702,15 @@ void createMainScr() if (!showToolBar) { - lv_obj_add_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(btnZoomOut, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(btnZoomIn, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(btnFullScreen, LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(btnZoomOut, LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(btnZoomIn, LV_OBJ_FLAG_CLICKABLE); } else { - lv_obj_clear_flag(btnFullScreen, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(btnZoomOut, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(btnZoomIn, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(btnFullScreen, LV_OBJ_FLAG_CLICKABLE); + lv_obj_add_flag(btnZoomOut, LV_OBJ_FLAG_CLICKABLE); + lv_obj_add_flag(btnZoomIn, LV_OBJ_FLAG_CLICKABLE); } // Map Tile Events