From cb43f9ed7fb70b0769cb04140cdb13932538ef1f Mon Sep 17 00:00:00 2001 From: Electric Diversions <209417629+Electric-Diversions@users.noreply.github.com> Date: Sun, 11 May 2025 23:28:21 -0500 Subject: [PATCH 01/15] Initial commit for V2.0.0 --- .gitignore | 1 + boards/custom_esp-wrover-kit.json | 54 + data/DefaultCoverArt.jpg | Bin 0 -> 14563 bytes documentation/SCDesign-v2-20250511.drawio | 311 +++ documentation/SCDesign.jpg | Bin 0 -> 157508 bytes generate_compile_time.py | 61 + partitions/custom_no_ota.csv | 17 + platformio.ini | 98 +- src/DisplayUI.cpp | 1879 +++++++++++++++++ src/DisplayUI.h | 217 ++ src/{ => FT6236TouchController}/FT6236.cpp | 0 src/{ => FT6236TouchController}/FT6236.h | 0 src/GfxUi.cpp | 121 -- src/GfxUi.h | 35 - src/Monitor.cpp | 441 ++++ src/Monitor.h | 147 ++ src/PlayingMetadata.cpp | 123 ++ src/PlayingMetadata.h | 76 + src/Point.cpp | 31 + src/Point.h | 36 + src/SCFileIO.cpp | 473 +++++ src/SCFileIO.h | 78 + src/SCLogger.cpp | 166 ++ src/SCLogger.h | 106 + src/SpotifyArtMgr.cpp | 899 ++++++++ src/SpotifyArtMgr.h | 116 + src/SpotifyCertWrapper.cpp | 53 + src/SpotifyPlayer.cpp | 843 ++++++++ src/SpotifyPlayer.h | 87 + src/ThingPulse/connectivity.cpp | 52 + src/ThingPulse/connectivity.h | 24 + src/{ => ThingPulse}/display.h | 43 +- src/{ => ThingPulse}/spotify.h | 72 +- src/ThingPulse/util.cpp | 185 ++ src/ThingPulse/util.h | 102 + src/UIViews/ClockView.cpp | 411 ++++ src/UIViews/ClockView.h | 61 + src/UIViews/CoverView.cpp | 126 ++ src/UIViews/CoverView.h | 43 + src/UIViews/DiagnosticsView.cpp | 436 ++++ src/UIViews/DiagnosticsView.h | 62 + src/UIViews/HomeView.cpp | 469 ++++ src/UIViews/HomeView.h | 58 + src/UIViews/Renderers/BackButtonRenderer.cpp | 57 + src/UIViews/Renderers/BackButtonRenderer.h | 52 + src/UIViews/Renderers/ButtonRenderer.cpp | 79 + src/UIViews/Renderers/ButtonRenderer.h | 100 + src/UIViews/Renderers/IUIRenderer.h | 53 + .../Renderers/NextTrackButtonRenderer.cpp | 55 + .../Renderers/NextTrackButtonRenderer.h | 52 + .../Renderers/PlayPauseButtonRenderer.cpp | 65 + .../Renderers/PlayPauseButtonRenderer.h | 53 + .../Renderers/PreviousTrackButtonRenderer.cpp | 54 + .../Renderers/PreviousTrackButtonRenderer.h | 51 + src/UIViews/UIElement.cpp | 78 + src/UIViews/UIElement.h | 76 + src/UIViews/UIView.cpp | 395 ++++ src/UIViews/UIView.h | 96 + src/UIViews/UIViewManager.cpp | 208 ++ src/UIViews/UIViewManager.h | 92 + src/connectivity.h | 18 - src/fonts/cousine-bold.h | 1049 +++++++++ src/fonts/jost.h | 1869 ---------------- src/fonts/noto-sans.h | 1797 ---------------- src/fonts/open-sans.h | 14 +- src/logTags.h | 46 + src/main.cpp | 774 +++++-- src/persistence.h | 57 - src/scui.h | 45 + src/settings.h | 96 +- src/util.h | 85 - 71 files changed, 11790 insertions(+), 4289 deletions(-) create mode 100644 boards/custom_esp-wrover-kit.json create mode 100644 data/DefaultCoverArt.jpg create mode 100644 documentation/SCDesign-v2-20250511.drawio create mode 100644 documentation/SCDesign.jpg create mode 100644 generate_compile_time.py create mode 100644 partitions/custom_no_ota.csv create mode 100644 src/DisplayUI.cpp create mode 100644 src/DisplayUI.h rename src/{ => FT6236TouchController}/FT6236.cpp (100%) rename src/{ => FT6236TouchController}/FT6236.h (100%) delete mode 100644 src/GfxUi.cpp delete mode 100644 src/GfxUi.h create mode 100644 src/Monitor.cpp create mode 100644 src/Monitor.h create mode 100644 src/PlayingMetadata.cpp create mode 100644 src/PlayingMetadata.h create mode 100644 src/Point.cpp create mode 100644 src/Point.h create mode 100644 src/SCFileIO.cpp create mode 100644 src/SCFileIO.h create mode 100644 src/SCLogger.cpp create mode 100644 src/SCLogger.h create mode 100644 src/SpotifyArtMgr.cpp create mode 100644 src/SpotifyArtMgr.h create mode 100644 src/SpotifyCertWrapper.cpp create mode 100644 src/SpotifyPlayer.cpp create mode 100644 src/SpotifyPlayer.h create mode 100644 src/ThingPulse/connectivity.cpp create mode 100644 src/ThingPulse/connectivity.h rename src/{ => ThingPulse}/display.h (64%) rename src/{ => ThingPulse}/spotify.h (51%) create mode 100644 src/ThingPulse/util.cpp create mode 100644 src/ThingPulse/util.h create mode 100644 src/UIViews/ClockView.cpp create mode 100644 src/UIViews/ClockView.h create mode 100644 src/UIViews/CoverView.cpp create mode 100644 src/UIViews/CoverView.h create mode 100644 src/UIViews/DiagnosticsView.cpp create mode 100644 src/UIViews/DiagnosticsView.h create mode 100644 src/UIViews/HomeView.cpp create mode 100644 src/UIViews/HomeView.h create mode 100644 src/UIViews/Renderers/BackButtonRenderer.cpp create mode 100644 src/UIViews/Renderers/BackButtonRenderer.h create mode 100644 src/UIViews/Renderers/ButtonRenderer.cpp create mode 100644 src/UIViews/Renderers/ButtonRenderer.h create mode 100644 src/UIViews/Renderers/IUIRenderer.h create mode 100644 src/UIViews/Renderers/NextTrackButtonRenderer.cpp create mode 100644 src/UIViews/Renderers/NextTrackButtonRenderer.h create mode 100644 src/UIViews/Renderers/PlayPauseButtonRenderer.cpp create mode 100644 src/UIViews/Renderers/PlayPauseButtonRenderer.h create mode 100644 src/UIViews/Renderers/PreviousTrackButtonRenderer.cpp create mode 100644 src/UIViews/Renderers/PreviousTrackButtonRenderer.h create mode 100644 src/UIViews/UIElement.cpp create mode 100644 src/UIViews/UIElement.h create mode 100644 src/UIViews/UIView.cpp create mode 100644 src/UIViews/UIView.h create mode 100644 src/UIViews/UIViewManager.cpp create mode 100644 src/UIViews/UIViewManager.h delete mode 100644 src/connectivity.h create mode 100644 src/fonts/cousine-bold.h delete mode 100644 src/fonts/jost.h delete mode 100644 src/fonts/noto-sans.h create mode 100644 src/logTags.h delete mode 100644 src/persistence.h create mode 100644 src/scui.h delete mode 100644 src/util.h diff --git a/.gitignore b/.gitignore index b9f3806..17e2129 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .pio .vscode +src/compile_time.h diff --git a/boards/custom_esp-wrover-kit.json b/boards/custom_esp-wrover-kit.json new file mode 100644 index 0000000..bdea426 --- /dev/null +++ b/boards/custom_esp-wrover-kit.json @@ -0,0 +1,54 @@ +{ + "_comment": "This is a custom board configuration for an ESP32 with 8MB Flash. - Jan 8, 2025.", + "build": { + "arduino":{ + "ldscript": "esp32_out.ld" + }, + "core": "esp32", + "extra_flags": "-DARDUINO_ESP32_DEV", + "f_cpu": "240000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "hwids": [ + [ + "0x0403", + "0x6010" + ] + ], + "mcu": "esp32", + "variant": "esp32" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "debug": { + "default_tool": "ftdi", + "onboard_tools": [ + "ftdi" + ], + "openocd_board": "esp32-wrover.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "Espressif ESP-WROVER-KIT", + "upload": { + "flash_size": "8MB", + "maximum_ram_size": 327680, + "maximum_size": 8388608, + "protocols": [ + "esptool", + "espota", + "ftdi" + ], + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://espressif.com/en/products/hardware/esp-wrover-kit/overview", + "vendor": "Espressif" + } + \ No newline at end of file diff --git a/data/DefaultCoverArt.jpg b/data/DefaultCoverArt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..82d3a2c46837ac408ce798bff83c80dcc4102901 GIT binary patch literal 14563 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 literal 0 HcmV?d00001 diff --git a/documentation/SCDesign-v2-20250511.drawio b/documentation/SCDesign-v2-20250511.drawio new file mode 100644 index 0000000..ee0ea4f --- /dev/null +++ b/documentation/SCDesign-v2-20250511.drawio @@ -0,0 +1,311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/SCDesign.jpg b/documentation/SCDesign.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0f5fc20beabd5b613955e873abbe2167d7bd0af GIT binary patch literal 157508 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 z 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 literal 0 HcmV?d00001 diff --git a/generate_compile_time.py b/generate_compile_time.py new file mode 100644 index 0000000..6510713 --- /dev/null +++ b/generate_compile_time.py @@ -0,0 +1,61 @@ +import datetime +""" +======================================================================== +File: generate_compile_time.py + +Description: + This script generates a compile-time timestamp and writes it to a + header file (`compile_time.h`). The timestamp is formatted in + 12-hour time with an AM/PM indicator. + +Usage in PlatformIO: + - This script is executed as a pre-build step in PlatformIO. + - It is referenced in the `platformio.ini` file under `extra_scripts`: + ``` + extra_scripts = pre:generate_compile_time.py + ``` + - This ensures that every build updates the compile timestamp. + +Generated Output: + - The script writes a `#define` statement to `src/compile_time.h`: + ``` + #define SC_COMPILE_TIME "MM-DD-YYYY HH:MM:SS AM/PM" + ``` + - Example output: + ``` + #define SC_COMPILE_TIME "03-02-2025 12:15:00 AM" + ``` + +How to Use in Code: + - Include the generated `compile_time.h` in your source files: + ```c + #include "compile_time.h" + ``` + - Print or log the compile time: + ```c + Serial.println(SC_COMPILE_TIME); + ``` + +Notes: + - The timestamp is dynamically updated at each build. + - The script must be located in the root project directory for + PlatformIO to execute it correctly. +======================================================================== +""" + +# Generate the current timestamp +compile_time = datetime.datetime.now().strftime("%m-%d-%Y %I:%M:%S %p") + +# Write it to a header file with a warning comment +with open("src/compile_time.h", "w") as f: + f.write("""/* + * DO NOT EDIT THIS FILE MANUALLY. + * This file is automatically generated by generate_compile_time.py + * and will be overwritten during each build. + * + * SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com + * SPDX-License-Identifier: MIT + */ + +""") + f.write(f'#define SC_COMPILE_TIME "{compile_time}"\n') \ No newline at end of file diff --git a/partitions/custom_no_ota.csv b/partitions/custom_no_ota.csv new file mode 100644 index 0000000..1a56b99 --- /dev/null +++ b/partitions/custom_no_ota.csv @@ -0,0 +1,17 @@ +# This is a custom partition table for this ESP32 project. +# The custom partition is used to get access to all 8 MB +# of the available flash memory. +# Created 1/8/2025 +# +# Name, Type, SubType, Offset, Size, Flags +# Name, Type, SubType, Offset, Size, Flags +# Non-volatile storage +nvs, data, nvs, 0x9000, 0x5000, +# OTA metadata (not used in no_ota) +otadata, data, ota, 0xe000, 0x2000, +# Application (4MB) +app0, app, factory, 0x10000, 0x400000, +# Filesystem (3.8125MB) +spiffs, data, spiffs, 0x410000,0x3D0000, +# Core dump (128KB) +coredump, data, coredump,0x7E0000,0x20000, \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index b1b8041..f7635c4 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1,58 +1,56 @@ -; PlatformIO Project Configuration File for ThingPulse Color Kit Grande +; PlatformIO Project Configuration File ; -; Documentation: https://docs.thingpulse.com/guides/esp32-color-kit-grande/ +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting ; -; Additional PlatformIO options and examples: https://docs.platformio.org/page/projectconf.html +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html [env:thingpulse-color-kit-grande] -platform = espressif32@~6.4.0 -board = esp-wrover-kit +platform = espressif32 +;board = esp-wrover-kit +board = custom_esp-wrover-kit framework = arduino -; Adjust port and speed to your system and its capabilities e.g. "upload_port = COM3" on Windows. -; To list all availble ports you may also run 'pio device list' in the Visual Studio Code terminal window. -; In most cases you should be able to leave this commented out and thus rely on the auto-detect mode. -; upload_port = /dev/tty.wchusbserial54790238451 -; monitor_port = /dev/tty.wchusbserial54790238451 monitor_speed = 115200 -; For your OS & driver combination you might have to lower this to 921600 or even 460800. upload_speed = 1500000 -monitor_filters = esp32_exception_decoder, time -build_flags = - ; core flags - -DCORE_DEBUG_LEVEL=5 - -DBOARD_HAS_PSRAM - -mfix-esp32-psram-cache-issue - ; TFT_eSPI flags - ; Below we replicate the flags from TFT_eSPI/User_Setups/Setup21_ILI9488.h. - ; You can't mix'n match from their .h and -D here. - -D USER_SETUP_LOADED=1 # 1 => will not load User_Setup.h from TFT_eSPI but rely on the flags defined here - -D ILI9488_DRIVER=1 - -D TFT_MISO=19 - -D TFT_MOSI=18 - -D TFT_SCLK=05 - -D TFT_CS=15 - -D TFT_DC=2 - -D TFT_RST=4 - -D TFT_BL=32 - ; As we're using OpenFontRender we don't need any of the TFT_eSPI built-in fonts. - ; Font descriptions at TFT_eSPI/User_Setups/Setup21_ILI9488.h - -D LOAD_GLCD=0 - -D LOAD_FONT2=0 - -D LOAD_FONT4=0 - -D LOAD_FONT6=0 - -D LOAD_FONT7=0 - -D LOAD_FONT8=0 - -D LOAD_GFXFF=0 - -D SMOOTH_FONT=1 - -D SPI_FREQUENCY=27000000 - ; required if you include OpenFontRender and build on macOS - -I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/** -board_build.partitions = no_ota.csv +monitor_filters = + esp32_exception_decoder + time +build_unflags = -std=gnu++11 ; Enable C++ 14 added 1/25/2025 +build_flags = + -std=gnu++14 ; Enable C++ 14 to pick up std::make_unique added 1/25/2025 + -DCORE_DEBUG_LEVEL=3 ; was 5 1/2/2025 + -DBOARD_HAS_PSRAM + -mfix-esp32-psram-cache-issue + -D USER_SETUP_LOADED=1 + -D ILI9488_DRIVER=1 + -D TFT_MISO=19 + -D TFT_MOSI=18 + -D TFT_SCLK=05 + -D TFT_CS=15 + -D TFT_DC=2 + -D TFT_RST=4 + -D TFT_BL=32 + -D LOAD_GLCD=0 + -D LOAD_FONT2=0 + -D LOAD_FONT4=0 + -D LOAD_FONT6=0 + -D LOAD_FONT7=0 + -D LOAD_FONT8=0 + -D LOAD_GFXFF=0 + -D SMOOTH_FONT=1 + -D SPI_FREQUENCY=27000000 + -I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/** +extra_scripts = pre:generate_compile_time.py +;board_build.partitions = no_ota.csv +board_build.partitions = partitions/custom_no_ota.csv board_build.filesystem = littlefs -lib_deps = - arkhipenko/TaskScheduler@~3.7.0 - bodmer/TFT_eSPI@~2.5.30 - bodmer/TJpg_Decoder@~1.0.8 - https://github.com/Bodmer/OpenFontRender#f163cc6 ; no tags or releases to reference :( -> pin to Git revision - bblanchon/ArduinoJson@~6.21.3 - https://github.com/witnessmenow/spotify-api-arduino#899502c ; https://github.com/witnessmenow/spotify-api-arduino/issues/61 +lib_deps = + arkhipenko/TaskScheduler @ ^3.8.5 + bodmer/TFT_eSPI @ ^2.5.43 + bodmer/TJpg_Decoder @ ^1.1.0 + bblanchon/ArduinoJson @ ^7.2.1 + https://github.com/Bodmer/OpenFontRender#5e0ec22eef4bc93f963360438a9eb8e5407ef1c4 + https://github.com/witnessmenow/spotify-api-arduino#62612780f40521e9833353eeefcaa0c5d16a97a5 diff --git a/src/DisplayUI.cpp b/src/DisplayUI.cpp new file mode 100644 index 0000000..35728f7 --- /dev/null +++ b/src/DisplayUI.cpp @@ -0,0 +1,1879 @@ +/*------------------------------------------------------------------- +** +** DisplayUI.cpp +** +** Provides methods for drawing UI elements including album art, buttons, +** progress indicators, and text, using the TFT_eSPI and OpenFontRender libraries. +** +** Originally based on https://github.com/Bodmer/OpenWeather/blob/main/examples/TFT_eSPI_OpenWeather_LittleFS/GfxUi.h +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-26 - Electric Diversions - Renamed from GfxUI.h.h to tpGfxUi.h +** 2024-12-27 - Electric Diversions - Renamed to DisplayUI and promoted to base class +** ------------------------------------------------------------------------------------------------ +** +*/ + +/* +** ------------------------------------------------------------------------------------------------ +** +** NOTE: DMA (Direct Memory Access) is *not* enabled for ILI9488. +** +** The ILI9488 display controller requires 24-bit (RGB888) color +** over SPI, while the ESP32's SPI DMA engine only supports 8-bit +** and 16-bit transfers. Because of this, the TFT_eSPI library +** disables DMA support for ILI9488 by default. +** +** Enabling DMA would require additional processing to convert +** 16-bit (RGB565) color data into the 24-bit format, eliminating +** any potential performance benefits. It could also introduce +** graphical artifacts or instability. +** +** For this project, standard SPI transfers are used instead. +** +** 02/15/2025 - Documented DMA decision +** +** ------------------------------------------------------------------------------------------------ +*/ + +#include // for fmod, fabs +#include // for std::min, std::max +#include + +#include "DisplayUI.h" +#include "settings.h" +#include "logTags.h" +#include "SCLogger.h" +#include "Monitor.h" +#include "ThingPulse/util.h" + +#define FS_TP_LOGO "/ThingPulse-logo-260.jpeg" + +/* +** =================================================================== +** toValue() +** Helper function to convert TFTColor to standard color value +** =================================================================== +*/ +constexpr uint16_t toValue(TFTColor color) +{ + return static_cast(color); +} + +/* +** =================================================================== +** toRGB565() +** Converts a color from RGB565 (16-bit) or RGB888 (24-bit) to +** 16-bit RGB565 format. +** +** Parameters: +** color - Can be either: +** - A 16-bit RGB565 color (TFTColor enum) +** - A 24-bit RGB888 color (0xRRGGBB) +** +** Returns: +** A 16-bit RGB565 color. +** +** Notes: +** - If the input is already RGB565 (16-bit), it is returned as-is. +** - If the input is RGB888 (24-bit), it is converted to RGB565. +** - This function is useful for converting colors for TFT displays. +** +** Example Usage: +** uint16_t red565 = toRGB565(TFTColor::Red); +** uint16_t customBlue = toRGB565(0x0067B0); // Custom RGB888 color +** +** _ofr->cdrawString("RED", posX, posY, red565, toRGB565(TFTColor::Black)); +** =================================================================== +*/ +uint16_t toRGB565(TFTColor tftColor) +{ + + // Convert to unsigned int + uint32_t color = toValue(tftColor); + + // If color is 16-bit (RGB565), return it as-is + if (color <= 0xFFFF) { + return static_cast(color); + } + + // If color is 24-bit (RGB888), convert it to RGB565 + uint8_t r = (color >> 16) & 0xFF; // Extract Red (8-bit) + uint8_t g = (color >> 8) & 0xFF; // Extract Green (8-bit) + uint8_t b = color & 0xFF; // Extract Blue (8-bit) + + // Convert 8-bit RGB888 to 5-6-5 RGB565 format + return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); +} + +// TODO: Standardize singleton instantiation across the project. +static DisplayUI *pInstance = nullptr; + +/* +** =================================================================== +** DisplayUI() Constructor +** =================================================================== +*/ +DisplayUI::DisplayUI(TFT_eSPI *tft, OpenFontRender *ofr, OpenFontRender *clockFont) +{ + _tft = tft; + _ofr = ofr; + _clockFont = clockFont; + + TJpgDec.setJpgScale(1); + TJpgDec.setCallback(DisplayUI::jpgCallback); +} + +/* +** =================================================================== +** init() +** Initialize the singleton. +** =================================================================== +*/ +void DisplayUI::init() +{ + pInstance = this; +} + +/* +** =================================================================== +** isUIDirty() +** Determines if the UI needs to be updated. Returns true if the +** UI is marked as dirty, false otherwise. +** =================================================================== +*/ +bool DisplayUI::isUIDirty() +{ + bool answer = false; + + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + answer = _isUIDirty; + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"DisplayUI::isUIDirty - Unable to take xSemaphoreDisplay."); + } + + return answer; +} + +/* +** =================================================================== +** markUIDirty() +** Marks the UI as dirty or not dirty, based on the value of +** the isDirty parameter. +** =================================================================== +*/ +void DisplayUI::markUIDirty(bool isDirty) +{ + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + _isUIDirty = isDirty; + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"DisplayUI::markUIDirty - Unable to take xSemaphoreDisplay."); + } +} + +/* +** =================================================================== +** getCenterWidth() +** =================================================================== +*/ +int16_t DisplayUI::getCenterWidth() +{ + return _tft->width() / 2; +} + +/* +** =================================================================== +** getCenterHeight() +** =================================================================== +*/ +int16_t DisplayUI::getCenterHeight() +{ + return _tft->height() / 2; +} + +/* +** =================================================================== +** getWidth() +** =================================================================== +*/ +int16_t DisplayUI::getWidth() +{ + return _tft->width(); +} + +/* +** =================================================================== +** getHeight() +** =================================================================== +*/ +int16_t DisplayUI::getHeight() +{ + return _tft->height(); +} + +/* +** =================================================================== +** drawBmp() +** Renders a 24-bit BMP image from the LittleFS filesystem onto +** the display at the specified (x, y) position. Optimized for +** performance using a no-seek buffer and direct line decoding. +** +** Parameters: +** filename - Path to the BMP file in the LittleFS filesystem. +** x - X-coordinate for the top-left corner of the image. +** y - Y-coordinate for the top-left corner of the image. +** +** Notes: +** - Only uncompressed 24-bit BMP files are supported. +** - Image is drawn bottom-up as per BMP specification. +** - Invalid formats or missing files will generate log errors. +** +** Example Usage: +** drawBmp("/splash.bmp", 10, 20); +** =================================================================== +*/ + +// Bodmer's streamlined x2 faster "no seek" version +void DisplayUI::drawBmp(String filename, uint16_t x, uint16_t y) { + + if ((x >= _tft->width()) || (y >= _tft->height())) + return; + + fs::File bmpFS; + + // Note: ESP32 passes "open" test even if file does not exist, whereas ESP8266 + // returns NULL + if (!LittleFS.exists(filename)) { + spLogE(LOGTAG_GUI, " File not found"); + return; + } + + // Open requested file + bmpFS = LittleFS.open(filename, "r"); + + uint32_t seekOffset; + uint16_t w, h, row; + uint8_t r, g, b; + bool oldSwap = false; + + if (read16(bmpFS) == 0x4D42) { + read32(bmpFS); + read32(bmpFS); + seekOffset = read32(bmpFS); + read32(bmpFS); + w = read32(bmpFS); + h = read32(bmpFS); + + if ((read16(bmpFS) == 1) && (read16(bmpFS) == 24) && (read32(bmpFS) == 0)) { + y += h - 1; + + oldSwap = _tft->getSwapBytes(); + _tft->setSwapBytes(true); + bmpFS.seek(seekOffset); + + // Calculate padding to avoid seek + uint16_t padding = (4 - ((w * 3) & 3)) & 3; + uint8_t lineBuffer[w * 3 + padding]; + + for (row = 0; row < h; row++) { + + bmpFS.read(lineBuffer, sizeof(lineBuffer)); + uint8_t *bptr = lineBuffer; + uint16_t *tptr = (uint16_t *)lineBuffer; + // Convert 24 to 16 bit colours using the same line buffer for results + for (uint16_t col = 0; col < w; col++) { + b = *bptr++; + g = *bptr++; + r = *bptr++; + *tptr++ = ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); + } + + // Push the pixel row to screen, pushImage will crop the line if needed + // y is decremented as the BMP image is drawn bottom up + _tft->pushImage(x, y--, w, 1, (uint16_t *)lineBuffer); + } + } else + spLogE(LOGTAG_GUI, "BMP format not recognized."); + } + _tft->setSwapBytes(oldSwap); + bmpFS.close(); +} + +/* +** =================================================================== +** drawLogo() +** =================================================================== +*/ +void DisplayUI::drawLogo() { + if (LittleFS.exists(FS_TP_LOGO)) { + uint16_t w = 0, h = 0; + TJpgDec.getFsJpgSize(&w, &h, FS_TP_LOGO, LittleFS); + TJpgDec.drawFsJpg((_tft->width() - w) / 2, 30, FS_TP_LOGO, LittleFS); + } +} + +/* +** =================================================================== +** drawAppInfo() +** =================================================================== +*/ +void DisplayUI::drawAppInfo() { + _ofr->setFontSize(16); + _ofr->cdrawString(APP_NAME, getCenterWidth(), _tft->height() - 50); + _ofr->cdrawString(VERSION, getCenterWidth(), _tft->height() - 30); +} + +/* +** =================================================================== +** drawAlbumArt() +** =================================================================== +*/ +void DisplayUI::drawAlbumArt(int32_t x, int32_t y, String filename) +{ + spLogI(LOGTAG_GUI, "Entering drawAlbumArt. ttf width is %d. filename is %s.", _tft->width(), filename.c_str()); + + if (LittleFS.exists(filename)) + { + uint16_t w = 0, h = 0; + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + TJpgDec.getFsJpgSize(&w, &h, filename, LittleFS); + spLogI(LOGTAG_GUI, "After getFsJpgSize(). ttf width is %d. w is %d. filename is %s.", _tft->width(), w, filename.c_str()); + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } + + Monitor::start(MONITOR_ID_SPOTIFY_IMAGE_FILE_LOAD, LOGTAG_METRICS, "drawFsJpg(...)"); + drawFsJpg(x, y, filename.c_str(), LittleFS); + //drawFsJpg((_tft->width() - w) / 2, 10, filename.c_str(), LittleFS); + Monitor::stop(MONITOR_ID_SPOTIFY_IMAGE_FILE_LOAD); + + } + +} + +/* +** =================================================================== +** drawProgressBar() +** =================================================================== +*/ +void DisplayUI::drawProgressBar(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, + uint8_t percentage, TFTColor frameColor, + TFTColor barColor) +{ + if (percentage == 0) + { + _tft->fillRoundRect(x0, y0, w, h, 3, TFT_BLACK); + } + uint8_t margin = 2; + uint16_t barHeight = h - 2 * margin; + uint16_t barWidth = w - 2 * margin; + + _tft->drawRoundRect(x0, y0, w, h, 3, toValue(frameColor)); + + _tft->fillRect(x0 + margin, y0 + margin, barWidth * percentage / 100.0, + barHeight, toValue(barColor)); +} + +/* +** =================================================================== +** drawStatusBox() +** This call should be thread safe. +** =================================================================== +*/ +void DisplayUI::drawStatusBox(TFTColor statusColor) +{ + uint8_t margin = 2; + int32_t boxX = 450; //460; //10; + int32_t boxY = 290; //300; + + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + _tft->drawRoundRect(boxX, boxY, 20, 20, 3, toValue(TFTColor::DarkGrey)); + _tft->fillRect(boxX + margin, boxY + margin, 16, 16, toValue(statusColor)); + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay in drawStatusBox()."); + } + } + +/* +** =================================================================== +** drawDownloadIndicator() +** This call should be thread safe. +** =================================================================== +*/ +void DisplayUI::drawDownloadIndicator(bool bDownloadComplete) +{ + uint8_t margin = 2; + int32_t boxX = 425; //460; //10; + int32_t boxY = 290; //300; + + TFTColor lineColor = TFTColor::Black; + TFTColor fillColor = TFTColor::Black; + + if (!isSplitBackground()) + { + lineColor = getBackground(); + fillColor = getBackground(); + } + + if (!bDownloadComplete) + { + lineColor = TFTColor::White; + fillColor = TFTColor::SkyBlue; + } + + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + _tft->drawRoundRect(boxX, boxY, 20, 20, 3, toValue(lineColor)); + _tft->fillRect(boxX + margin, boxY + margin, 16, 16, toValue(fillColor)); + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay in drawStatusBox()."); + } + } + +/* +** =================================================================== +** drawButton() +** This call should be thread safe. +** =================================================================== +*/ +void DisplayUI::drawButton(int32_t x, int32_t y, bool isPressed) +{ + const uint8_t margin = 2; + const int32_t width = 90; + const int32_t height = 90; + + drawBlankButton(x,y,width,height,margin,TFTColor::White,isPressed); + + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + // Draw rewind symbol (|<) + const int32_t centerX = x + width / 2; + const int32_t centerY = y + height / 2; + const int32_t triangleSize = 20; + const int32_t lineThickness = 5; // Adjust thickness of vertical line + const int32_t lineX = centerX - 20; // Shifted left for proper placement + const int32_t triangleX = lineX + lineThickness + 20;//2; // Right next to the line + const int32_t triangleY = centerY - 15; + const TFTColor symbolColor = TFTColor::White; + + // Draw vertical line '|' using a filled rectangle for thickness + _tft->fillRect(lineX, centerY - 15, lineThickness, 30, toValue(symbolColor)); + + // Draw left-facing triangle '<' + _tft->fillTriangle( + triangleX + 15, triangleY, // Top point + triangleX + 15, triangleY + 30, // Bottom point + triangleX - triangleSize, centerY, // Leftmost point + toValue(symbolColor) + ); + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay in drawStatusBox()."); + } + } + + +/* +** =================================================================== +** drawBlankButton() +** Draws a blank button with optional pressed effect and specified border color. +** Thread-safe via xSemaphoreDisplay. +** =================================================================== +*/ +void DisplayUI::drawBlankButton(int32_t x, int32_t y, int32_t width, int32_t height, uint8_t margin, TFTColor borderColor, bool isPressed) +{ + + // const TFTColor borderColor = TFTColor::White; + TFTColor bodyColor = getBackground(); + // Invert the color + TFTColor pressColor = static_cast(~static_cast(bodyColor)); + + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + _tft->drawRoundRect(x, y, width, height, 3, toValue(borderColor)); + + if (isPressed) + { + _tft->fillRect(x + margin, y + margin, width - margin * 2, height - margin * 2, toValue(pressColor)); + } + else + { + _tft->fillRect(x + margin, y + margin, width - margin * 2, height - margin * 2, toValue(bodyColor)); + } + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay in drawStatusBox()."); + } +} + +/* +** =================================================================== +** drawSkipTrackIcon() +** Draws a skip track icon. Direction is determined by isReversed flag. +** Thread-safe via xSemaphoreDisplay. +** =================================================================== +*/ +void DisplayUI::drawSkipTrackIcon(int32_t x, int32_t y, int32_t width, int32_t height, bool isReversed) +{ + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + // Define basic geometry + const int32_t centerX = x + width / 2; + const int32_t centerY = y + height / 2; + const int32_t triangleSize = 20; + const int32_t lineThickness = 5; // Thickness of the vertical line + const int32_t offsetX = 20; // Offset to adjust positioning + + // Determine positions based on isReversed + const int32_t lineX = isReversed ? centerX - offsetX : centerX + offsetX - lineThickness; + const int32_t triangleX = isReversed ? (lineX + lineThickness + 20) : (lineX - 20); + const int32_t triangleY = centerY - 15; + const TFTColor symbolColor = TFTColor::White; + + // Draw vertical line '|' + _tft->fillRect(lineX, centerY - 15, lineThickness, 30, toValue(symbolColor)); + + // Draw triangle '<' or '>' + if (isReversed) + { + // Left-facing triangle '<' + _tft->fillTriangle( + triangleX + 15, triangleY, // Top point + triangleX + 15, triangleY + 30, // Bottom point + triangleX - triangleSize, centerY, // Leftmost point + toValue(symbolColor) + ); + } + else + { + // Right-facing triangle '>' + _tft->fillTriangle( + triangleX - 15, triangleY, // Top point + triangleX - 15, triangleY + 30, // Bottom point + triangleX + triangleSize, centerY, // Rightmost point + toValue(symbolColor) + ); + } + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay in drawSkipTrackIcon()."); + } +} + +/* +** =================================================================== +** drawPlayTrackIcon() +** Draws a right-facing triangle icon for the "play" action. +** =================================================================== +*/ +void DisplayUI::drawPlayTrackIcon(int32_t x, int32_t y, int32_t width, int32_t height) +{ + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + // Define basic geometry + const int32_t centerX = x + width / 2; + const int32_t centerY = y + height / 2; + const int32_t triangleSize = 20; + const int32_t lineThickness = 0; // Thickness of the vertical line + const int32_t offsetX = 20; // Offset to adjust positioning + + // Determine positions based on isReversed + const int32_t lineX = centerX + offsetX - lineThickness; + const int32_t triangleX = lineX - 20; + const int32_t triangleY = centerY - 15; + const TFTColor symbolColor = TFTColor::White; + + // Right-facing triangle '>' + _tft->fillTriangle( + triangleX - 15, triangleY, // Top point + triangleX - 15, triangleY + 30, // Bottom point + triangleX + triangleSize, centerY, // Rightmost point + toValue(symbolColor) + ); + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay in drawSkipTrackIcon()."); + } +} + +/* +** =================================================================== +** drawPauseTrackIcon() +** Draws two vertical bars to represent the "pause" icon. +** =================================================================== +*/ +void DisplayUI::drawPauseTrackIcon(int32_t x, int32_t y, int32_t width, int32_t height) +{ + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + // Define basic geometry + const int32_t centerX = x + width / 2; + const int32_t centerY = y + height / 2; + const int32_t lineThickness = 5; // Thickness of the vertical line + const TFTColor symbolColor = TFTColor::White; + + // Draw vertical line '|' + _tft->fillRect(centerX - lineThickness * 2, centerY - 15, lineThickness, 30, toValue(symbolColor)); + _tft->fillRect(centerX + lineThickness * 2, centerY - 15, lineThickness, 30, toValue(symbolColor)); + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay in drawSkipTrackIcon()."); + } +} + +/* +** =================================================================== +** drawBackIcon() +** Draws a back arrow icon pointing to the left. +** =================================================================== +*/ +void DisplayUI::drawBackIcon(int32_t x, int32_t y, int32_t width, int32_t height) +{ + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + // Define basic geometry + const int32_t centerX = x + width / 2; + const int32_t centerY = y + height / 2; + const int32_t arrowWidth = 20; + const int32_t arrowHeight = 10; + const int32_t lineThickness = 5; + const TFTColor symbolColor = TFTColor::SC_NetworkSuccess; //::White; + + // Draw left-facing arrow '<-' + // Draw the line part of the arrow + _tft->fillRect(centerX - lineThickness, centerY - lineThickness / 2, arrowWidth, lineThickness, toValue(symbolColor)); + + // Draw the triangular tip of the arrow + _tft->fillTriangle( + centerX - arrowWidth, centerY, // Tip of the arrow + centerX, centerY - arrowHeight, // Top point of triangle + centerX, centerY + arrowHeight, // Bottom point of triangle + toValue(symbolColor) + ); + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay in drawBackTrackIcon()."); + } +} + +/* +** =================================================================== +** read16() +** =================================================================== +*/ + +// These read 16- and 32-bit types from the SD card file. +// BMP data is stored little-endian, Arduino is little-endian too. +// May need to reverse subscript order if porting elsewhere. + +uint16_t DisplayUI::read16(fs::File &f) +{ + uint16_t result; + ((uint8_t *)&result)[0] = f.read(); // LSB + ((uint8_t *)&result)[1] = f.read(); // MSB + return result; +} + +/* +** =================================================================== +** draw32() +** =================================================================== +*/ +uint32_t DisplayUI::read32(fs::File &f) +{ + uint32_t result; + ((uint8_t *)&result)[0] = f.read(); // LSB + ((uint8_t *)&result)[1] = f.read(); + ((uint8_t *)&result)[2] = f.read(); + ((uint8_t *)&result)[3] = f.read(); // MSB + return result; +} + +/* +** =================================================================== +** drawProgress() +** =================================================================== +*/ +void DisplayUI::drawProgress(const char *text, int8_t percentage) { + _ofr->setFontSize(24); + int pbWidth = _tft->width() - 100; + int pbX = (_tft->width() - pbWidth)/2; + int pbY = 210; //260; + int progressTextY = 160; //210; + + _tft->fillRect(0, progressTextY, _tft->width(), 40, TFT_BLACK); + _ofr->cdrawString(text, getCenterWidth(), progressTextY); + drawProgressBar(pbX, pbY, pbWidth, 15, percentage, TFTColor::White, TFTColor::BlueThinkPulse); +} + +/* +** =================================================================== +** drawSeparator() +** =================================================================== +*/ +void DisplayUI::drawSeparator(uint16_t y) +{ + _tft->drawFastHLine(10, y, _tft->width() - 2 * 15, 0x4228); +} + +/* +** =================================================================== +** clearScreen() +** =================================================================== +*/ +void DisplayUI::clearScreen() +{ + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + + _tft->fillScreen(toValue(getBackground())); + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } + +} + +/* +** =================================================================== +** clearScreenKeepArt() - clear area around art +** =================================================================== +*/ +void DisplayUI::clearScreenKeepArt() +{ + const int32_t lineSize = 10; + const int32_t borderSize = (_tft->width() - 300) / 2; // 300 is cover art size + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + // Top + _tft->fillRect(0, 0, _tft->width() , lineSize, toValue(getBackground())); + + // Left + _tft->fillRect(0, 0, borderSize, _tft->height(), toValue(getBackground())); + + // Right + _tft->fillRect(_tft->width() - borderSize, 0, borderSize, _tft->height(), toValue(getBackground())); + + // Bottom + _tft->fillRect(0, _tft->height() - lineSize, _tft->width() , lineSize, toValue(getBackground())); + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } + +} + +/* +** =================================================================== +** clearScreenKeepArt() - clear area around art +** =================================================================== +*/ +void DisplayUI::clearScreenHome() +{ + + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + // Top + _tft->fillRect(0, 0, _tft->width() , 200, toValue(getBackground())); + + // Bottom + _tft->fillRect(0,200, _tft->width() , 320, toValue(TFTColor::Black)); + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } + +} + +/* +** =================================================================== +** getBackground() +** Returns the current background color of the UI. +** =================================================================== +*/ +TFTColor DisplayUI::getBackground() const +{ + return _bgColor; +} + + +/* +** =================================================================== +** isSplitBackground() +** =================================================================== +*/ +bool DisplayUI::isSplitBackground() const +{ + // spLogI(LOGTAG_GENERAL,"isSplitBackground() returning %u", _isSplitBackground); + return _isSplitBackground; +} + +/* +** =================================================================== +** setSplitBackground() +** =================================================================== +*/ +void DisplayUI::setSplitBackground(bool isSplitBackground) +{ + // spLogI(LOGTAG_GENERAL,"setting _isSplitBackground to %u", isSplitBackground); + _isSplitBackground = isSplitBackground; +} + +/* +** =================================================================== +** setBackground() +** =================================================================== +*/ +void DisplayUI::setBackground(TFTColor color, bool bRepaint) +{ + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + _bgColor = color; + if (bRepaint) + { + _tft->fillScreen(toValue(color)); + } + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } + +} + +/* +** =================================================================== +** drawTextToLCD() +** Displays text on the LCD at the specified vertical position, +** using a default font size. +** =================================================================== +*/ +void DisplayUI::drawTextToLCD(const char *text, int posY) +{ + + int pbWidth = _tft->width() - 100; + int pbX = (_tft->width() - pbWidth)/2; + int pbY = 260; + int textY = posY; + + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + _ofr->setFontSize(24); + _tft->fillRect(0, textY, _tft->width(), 40, toValue(TFTColor::Black)); + _ofr->cdrawString(text, getCenterWidth(), textY); + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } + +} + +/* +** =================================================================== +** drawTextToLCD() +** Overloaded version of drawTextToLCD that allows specifying +** font size and whether to ignore rendering the text. +** =================================================================== +*/ +void DisplayUI::drawTextToLCD(const char *text, int posY, int fontSize, bool ignoreText) +{ + + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + _ofr->setFontSize(fontSize); + + //_tft->setTextDatum(TL_DATUM); + //_ofr->setAlignment(Align::BottomLeft); + if (ignoreText) + { + _tft->fillRect(0, posY, _tft->width(), fontSize + 10, toValue(getBackground())); + } + else + { + _tft->fillRect(0, posY, _tft->width(), fontSize + 10, toValue(TFTColor::Black)); + _ofr->cdrawString(text, getCenterWidth(), posY); + } + + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } + +} + +/* +** =================================================================== +** rgb565() +** Converts 24-bit RGB888 color to 16-bit RGB565 format. +** =================================================================== +*/ +uint16_t rgb565(uint32_t color) { + uint8_t r = (color >> 16) & 0xFF; // Extract Red + uint8_t g = (color >> 8) & 0xFF; // Extract Green + uint8_t b = color & 0xFF; // Extract Blue + return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); +} + +/* +** =================================================================== +** bgr565() +** Converts 24-bit RGB888 color to 16-bit RGB565 with red and blue swapped. +** =================================================================== +*/ +uint16_t bgr565(uint32_t color) { + uint8_t r = (color >> 16) & 0xFF; // Extract Red + uint8_t g = (color >> 8) & 0xFF; // Extract Green + uint8_t b = color & 0xFF; // Extract Blue + return ((b & 0xF8) << 8) | ((g & 0xFC) << 3) | (r >> 3); // Swap Red and Blue +} + +/* +** =================================================================== +** grb565() +** Converts 24-bit RGB888 color to 16-bit RGB565 with red and green swapped. +** =================================================================== +*/ +uint16_t grb565(uint32_t color) { + uint8_t r = (color >> 16) & 0xFF; // Extract Red + uint8_t g = (color >> 8) & 0xFF; // Extract Green + uint8_t b = color & 0xFF; // Extract Blue + return ((g & 0xF8) << 8) | ((r & 0xFC) << 3) | (b >> 3); // Swap Red and Green +} + +/* +** =================================================================== +** brg565() +** Converts 24-bit RGB888 color to 16-bit RGB565 with blue and green swapped. +** =================================================================== +*/ +uint16_t brg565(uint32_t color) { + uint8_t r = (color >> 16) & 0xFF; // Extract Red + uint8_t g = (color >> 8) & 0xFF; // Extract Green + uint8_t b = color & 0xFF; // Extract Blue + return ((b & 0xF8) << 8) | ((r & 0xFC) << 3) | (g >> 3); // Swap Blue and Green +} + +/* +** =================================================================== +** rgb888_to_rgb565() +** Converts a 24-bit RGB888 color value to 16-bit RGB565 format. +** =================================================================== +*/ +uint16_t rgb888_to_rgb565(uint32_t color) { + uint8_t r = (color >> 16) & 0xFF; // Extract Red (8-bit) + uint8_t g = (color >> 8) & 0xFF; // Extract Green (8-bit) + uint8_t b = color & 0xFF; // Extract Blue (8-bit) + + // Convert 8-bit RGB888 to 5-6-5 RGB565 format + return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); +} + +/* +** =================================================================== +** convertColorForILI9488() +** Converts a color from RGB565 (16-bit) or RGB888 (24-bit) to +** the correct format for the ILI9488 display. Ensures that colors +** defined in the TFTColor enum render correctly. +** +** Parameters: +** color - Can be either: +** - A 16-bit RGB565 color (from TFTColor enum) +** - A 24-bit RGB888 color (0xRRGGBB) +** +** Returns: +** 16-bit RGB565 color, correctly formatted for the ILI9488. +** +** Notes: +** - If the input is already RGB565 (16-bit), it is returned as-is. +** - If the input is RGB888 (24-bit), it is converted to RGB565. +** - This ensures that colors from the TFTColor enum render correctly. +** +** Example Usage: +** uint16_t red565 = convertColorForILI9488(TFTColor::Red); +** uint16_t customBlue = convertColorForILI9488(0x0067B0); // Custom RGB888 color +** +** _ofr->cdrawString("RED", posX, posY, red565, convertColorForILI9488(TFTColor::Black)); +** =================================================================== +*/ +uint16_t convertColorForILI9488(uint32_t color) { + // If color is 16-bit (RGB565), return it as-is + if (color <= 0xFFFF) { + return static_cast(color); + } + + // If color is 24-bit (RGB888), convert it to RGB565 + uint8_t r = (color >> 16) & 0xFF; // Extract Red (8-bit) + uint8_t g = (color >> 8) & 0xFF; // Extract Green (8-bit) + uint8_t b = color & 0xFF; // Extract Blue (8-bit) + + // Convert 8-bit RGB888 to 5-6-5 RGB565 format + return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); +} + +/* +** =================================================================== +** drawText() +** Draws text on the display at a given position and font size. +** =================================================================== +*/ +void DisplayUI::drawText(const char *text, int posX, int posY, int fontSize, TFTColor color) +{ + + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + _ofr->setFontSize(fontSize); + _ofr->setAlignment(Align::BottomLeft); + + // strlen(text) * 16 + // _tft->fillRect(posX, posY, 100, fontSize + 10, toValue(TFTColor::Black)); // toValue(getBackground())); + // _ofr->cdrawString(text, posX, posY, toValue(getBackground()), toValue(color)); + + _tft->fillRect(posX - 70, posY, 140, fontSize + 10, toValue(TFTColor::Black)); // //toValue(getBackground())); // toValue(TFTColor::Black)); // + // _ofr->setFontColor(toValue(color)); + // _ofr->cdrawString(text, posX, posY, rgb565(0xFF0000), rgb565(0x000000)); //, toValue(color), toValue(color)); + // _ofr->cdrawString(text, posX, posY, rgb888_to_rgb565(toValue(color)), rgb888_to_rgb565(toValue(getBackground()))); //, toValue(color), toValue(color)); + // _ofr->cdrawString(text, posX, posY, convertColorForILI9488(toValue(color)), convertColorForILI9488(toValue(TFTColor::Black))); //, toValue(color), toValue(color)); + _ofr->cdrawString(text, posX, posY, toRGB565(color), toRGB565(TFTColor::Black)); + + // _tft->fillRect(10, posY, 270, fontSize + 10, toValue(TFTColor::Black)); + // _ofr->cdrawString("RED", 50, posY, rgb888_to_rgb565(0xFF0000), rgb888_to_rgb565(0x000000)); // Red on Black + // _ofr->cdrawString("GREEN", 125, posY, rgb888_to_rgb565(0x00FF00), rgb888_to_rgb565(0x000000)); // Green on Black + // _ofr->cdrawString("BLUE", 200, posY, rgb888_to_rgb565(0x0000FF), rgb888_to_rgb565(0x000000)); // Blue on Black + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } + + + +} + +/* +** =================================================================== +** drawString() +** Draws a string at the specified location with the given font, +** foreground and background colors, alignment, and optional clear mask. +** =================================================================== +*/ +void DisplayUI::drawString(const char *str, + int32_t x, + int32_t y, + unsigned int fontSize, + TFTColor fg, + TFTColor bg, + Align alignment, + const char *clearMask) +{ + // _tft->fillRect(0, _tft->height() - 10, _tft->width() , 10, toValue(TFTColor::DarkGrey)); + + _ofr->setAlignment(alignment); + _ofr->setFontSize(fontSize); + uint16_t fgColor = toRGB565(fg); + uint16_t bgColor = toRGB565(bg); + + // figure out what to clear + FT_BBox bbox; + if (strlen(clearMask) > 0) + { + // clear just the mask + bbox = _ofr->calculateBoundingBox(x, y, _ofr->getFontSize(), Align::Left, Layout::Horizontal, clearMask); + int width = bbox.xMax - bbox.xMin; + int height = bbox.yMax - bbox.yMin; + _tft->fillRect(x, bbox.yMin, width, height, toValue(bg)); + } + else + { + // clear entire line + bbox = _ofr->calculateBoundingBox(x, y, _ofr->getFontSize(), Align::Left, Layout::Horizontal, "AG123jt"); + int width = bbox.xMax - bbox.xMin; + int height = bbox.yMax - bbox.yMin; + _tft->fillRect(0, y, _tft->width(), height, toValue(bg)); + } + + _ofr->drawString(str, x, y, fgColor, bgColor, Layout::Horizontal); +} + +/* +** =================================================================== +** cDrawString() +** Draws a centered string with foreground and background color. +** =================================================================== +*/ +void DisplayUI::cDrawString( const char *str, + int32_t x, + int32_t y, + unsigned int fontSize, + TFTColor fg, + TFTColor bg, + const char *clearMask) +{ + drawString(str, x, y, fontSize, fg, bg, Align::Center, clearMask); +} + +/* +** =================================================================== +** lDrawString() +** Draws a left-aligned string with foreground and background color. +** =================================================================== +*/ +void DisplayUI::lDrawString( const char *str, + int32_t x, + int32_t y, + unsigned int fontSize, + TFTColor fg, + TFTColor bg, + const char *clearMask) +{ + drawString(str, x, y, fontSize, fg, bg, Align::Left, clearMask); +} + +/* +** =================================================================== +** rDrawString() +** Draws a right-aligned string with foreground and background color. +** =================================================================== +*/ +void DisplayUI::rDrawString( const char *str, + int32_t x, + int32_t y, + unsigned int fontSize, + TFTColor fg, + TFTColor bg, + const char *clearMask) +{ + // _tft->fillRect(0, _tft->height() - 10, _tft->width() , 10, toValue(TFTColor::DarkGrey)); + + // drawString(str, x, y, fontSize, fg, bg, Align::Right, clearMask); + + _ofr->setAlignment(Align::Right); + _ofr->setFontSize(fontSize); + uint16_t fgColor = toRGB565(fg); + uint16_t bgColor = toRGB565(bg); + + // figure out what to clear + FT_BBox bbox = _ofr->calculateBoundingBox(x, y, _ofr->getFontSize(), Align::Right, Layout::Horizontal, clearMask); + int width = bbox.xMax - bbox.xMin; + int height = bbox.yMax - bbox.yMin; + _tft->fillRect(x - width, bbox.yMin, width, height, toValue(bg)); + + _ofr->drawString(str, x, y, fgColor, bgColor, Layout::Horizontal); +} + +/* +** =================================================================== +** drawClockTime() +** Draws the current time using clock font and updates only when values change. +** =================================================================== +*/ +void DisplayUI::drawClockTime(bool isForceRepaint) +{ + + std::string hours = getCurrentTimestamp("%l").c_str(); + std::string minutes = getCurrentTimestamp("%M").c_str(); + std::string ampm = getCurrentTimestamp("%p").c_str(); + std::string seconds = getCurrentTimestamp("%S").c_str(); + + static std::string lastHours = ""; + static std::string lastMinutes = ""; + static std::string lastAmpm = ""; + + const int fontSize = 128; + const int fontWidth = 76; + + if ((lastHours != hours) + || isForceRepaint) + { + _tft->fillRect(20, 35, fontWidth * 2, 100, toValue(getBackground())); + drawClockString(hours.c_str(), 20, 25, fontSize, TFTColor::White, getBackground()); + lastHours = hours; + } + + static bool isLastColonVisible = true; + int iSeconds = std::stoi(seconds); + bool isCurrentColonVisible = (iSeconds % 2 == 0); + if (isCurrentColonVisible != isLastColonVisible + || isForceRepaint) + { + _tft->fillRect(180, 53, 35, 84, toValue(getBackground())); + const char* colonChar = isCurrentColonVisible ? ":" : " "; + drawClockString(colonChar, 160, 20, fontSize, TFTColor::Yellow, getBackground()); + isLastColonVisible = isCurrentColonVisible; + } + + if ((lastMinutes != minutes) + || isForceRepaint) + { + _tft->fillRect(225, 35, fontWidth * 2, 100, toValue(getBackground())); + drawClockString(minutes.c_str(), 220, 25, fontSize, TFTColor::White, getBackground()); + lastMinutes = minutes; + } + + if ((lastAmpm != ampm) + || isForceRepaint) + { + _tft->fillRect(380, 40, fontWidth, 100, toValue(getBackground())); //toValue(getBackground())); + if (ampm == "AM") + { + drawClockString(ampm.c_str(), 380, 35, fontSize / 2, TFTColor::Yellow, getBackground()); + } + else + { + drawClockString(ampm.c_str(), 380, 80, fontSize / 2, TFTColor::Yellow, getBackground()); + } + + lastAmpm = ampm; + } +} + +/* +** =================================================================== +** drawClockString() +** Draws a string using the clock font renderer with a specified +** foreground and background color at a given position. +** +** Parameters: +** str - The string to draw. +** x - X-coordinate on the screen. +** y - Y-coordinate on the screen. +** fontSize - Font size to use for rendering. +** fg - Foreground color (text color). +** bg - Background color. +** +** Notes: +** - This method does not clear the area before drawing. The caller +** must clear the area manually if needed. +** - Intended for use in clock display rendering. +** +** Example Usage: +** drawClockString("12", 30, 30, 96, TFTColor::Yellow, TFTColor::Black); +** =================================================================== +*/ +void DisplayUI::drawClockString( + const char *str, + int32_t x, + int32_t y, + unsigned int fontSize, + TFTColor fg, + TFTColor bg) +{ + _clockFont->setAlignment(Align::Left); + _clockFont->setFontSize(fontSize); + _clockFont->drawString(str, x, y, toRGB565(fg), toRGB565(bg), Layout::Horizontal); +} + +/* +** =================================================================== +** formatTime() +** Converts a time duration from milliseconds to a string in the +** format HH:MM:SS or MM:SS if hours are zero. +** +** Parameters: +** millis - Time duration in milliseconds. +** +** Returns: +** A string representing the time: +** - "H:MM:SS" if hours > 0 +** - "M:SS" if hours == 0 +** +** Notes: +** - Removes leading zeros (e.g., "1:05" instead of "01:05"). +** - Skips hours if they are zero (e.g., "5:30" instead of "00:05:30"). +** +** Example Usage: +** Serial.println(formatTime(3661000)); // Output: "1:01:01" +** Serial.println(formatTime(59000)); // Output: "59" +** Serial.println(formatTime(3600000)); // Output: "1:00:00" +** Serial.println(formatTime(300000)); // Output: "5:00" +** =================================================================== +*/ +std::string DisplayUI::formatTime(long millis) { + long totalSeconds = millis / 1000; + int hours = totalSeconds / 3600; + int minutes = (totalSeconds % 3600) / 60; + int seconds = totalSeconds % 60; + + std::string result; + + if (hours > 0) + { + result += std::to_string(hours) + ":"; + } + + result += std::to_string(minutes) + ":"; // No leading zero for minutes + if (seconds < 10) + { + result += "0"; // Ensure seconds always have two digits + } + result += std::to_string(seconds); + + return result; +} + + +/* +** =================================================================== +** showTouchDown() +** Highlights UI borders in the specified color to indicate a touch-down event. +** =================================================================== +*/ +void DisplayUI::showTouchDown(TFTColor color) +{ + paintTouch(true, color); +} + +/* +** =================================================================== +** showTouchUp() +** Clears UI border highlights to indicate a touch-up event. +** =================================================================== +*/ +void DisplayUI::showTouchUp() +{ + paintTouch(false, getBackground()); +} + +/* +** =================================================================== +** paintTouch() +** Helper method to paint or clear UI border highlights based on touch state. +** =================================================================== +*/ +void DisplayUI::paintTouch(bool isPress, TFTColor color) +{ + const int32_t lineSize = 10; + + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + // Top + _tft->fillRect(0, 0, _tft->width() , lineSize, toValue(color)); + + if (!isSplitBackground()) + { + // Left + _tft->fillRect(0, lineSize, lineSize, _tft->height(), toValue(color)); + + // Right + _tft->fillRect(_tft->width() - lineSize, lineSize, lineSize, _tft->height(), toValue(color)); + + // Bottom + _tft->fillRect(0, _tft->height() - lineSize, _tft->width() , lineSize, toValue(color)); + } + + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } + +} + +/* +** =================================================================== +** getPreviousActionPoint() +** top third of the display, left of the cover art +** =================================================================== +*/ +Point DisplayUI::getPreviousActionPoint() +{ + // top third of the display, left of the cover art + int x = (_tft->width() - COVER_ART_SIZE) / 2; + int y = (_tft->height()) / 3; + return Point(x,y); +} + +/* +** =================================================================== +** getNextActionPoint() +** top third of the display, right of the cover art +** =================================================================== +*/ +Point DisplayUI::getNextActionPoint() +{ + int x = _tft->width() - ((_tft->width() - COVER_ART_SIZE) / 2); + int y = (_tft->height()) / 3; + return Point(x,y); +} + +/* +** =================================================================== +** pushImageToTft() +** +** Function will be called as a callback during decoding of a JPEG file to +** render each block to the TFT. +** =================================================================== +*/ + +bool DisplayUI::pushImageToTft(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap) { + // Stop further decoding as image is running off bottom of screen + if (y >= _tft->height()) { + return 0; + } + + // Automatically clips the image block rendering at the TFT boundaries. + _tft->pushImage(x, y, w, h, bitmap); + + // Return 1 to decode next block + return 1; +} + +/* +** =================================================================== +** setJpgScaleToSmall() +** +** Adjusts the JPEG decoder scaling factor to either full scale (1:1) +** or half scale (1/2) based on the provided flag. Ensures thread +** safety by using a semaphore to coordinate access to the display. +** +** Parameters: +** isSmall - If true, sets the decoder to half scale (80x80 resolution). +** If false, sets the decoder to full scale (160x160 resolution). +** +** Notes: +** - Uses `xSemaphoreDisplay` to ensure exclusive access to the display. +** - If the semaphore cannot be acquired, a log message is generated. +** - JPEG scaling is controlled using `TJpgDec.setJpgScale()`. +** +** =================================================================== +*/ +void DisplayUI::setJpgScaleToSmall(bool isSmall) +{ + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + if (isSmall) + { + TJpgDec.setJpgScale(2); // half scale + } + else + { + TJpgDec.setJpgScale(1); // full scale + } + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } +} + +/* +** =================================================================== +** setJpgScaleToTiny() +** Sets the JPEG decoder to use 1/8th scaling for rendering. +** =================================================================== +*/ +void DisplayUI::setJpgScaleToTiny() +{ + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + TJpgDec.setJpgScale(8); // 1/8th scale + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } +} + +/* +** =================================================================== +** drawFsJpg() +** +** Draws a JPEG image from the filesystem to the display at a +** specified location. Ensures thread safety by using a semaphore +** to coordinate access to the display. Returns a result code +** indicating success or failure. +** +** Parameters: +** x - X-coordinate on the display where the image will be drawn. +** y - Y-coordinate on the display where the image will be drawn. +** pFilename - Path to the JPEG file in the filesystem. +** fs - Filesystem instance (e.g., LittleFS, SPIFFS) containing +** the image file. +** +** Returns: +** JRESULT - JPEG decoding result code (e.g., JDR_OK for success). +** +** Notes: +** - If the file does not exist, the method logs an error and returns +** a parameter error code (JDR_PAR). +** - If the semaphore cannot be taken, the method logs a message and +** skips the drawing operation. +** - The method is thread-safe due to semaphore protection. +** +** =================================================================== +*/ + +JRESULT DisplayUI::drawFsJpg(int32_t x, int32_t y, const char *pFilename, fs::FS &fs) +{ + JRESULT result = JDR_PAR; // Default to parametere error + + if (LittleFS.exists(pFilename)) + { + if (xSemaphoreTake(xSemaphoreDisplay, portMAX_DELAY)) + { + result = TJpgDec.drawFsJpg(x, y, pFilename, fs); + xSemaphoreGive(xSemaphoreDisplay); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreDisplay."); + } + } + else + { + spLogE(LOGTAG_MULTITASK,"Filename does not exist."); + } + + return result; + +} + +/* +** =================================================================== +** jpgCallback() +** JPEG decoder callback to render or analyze JPEG pixels. +** =================================================================== +*/ +bool DisplayUI::jpgCallback(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap) +{ + // Implementation for handling the callback + bool result = false; + if (pInstance->_isPainting) + { + result = pInstance->pushImageToTft(x, y, w, h, bitmap); + } + else + { + result = pInstance->jpgCalculateAverageColorCallback(x, y, w, h, bitmap); + } + + return result; // Placeholder +} + + +/* +** =================================================================== +** Helper Function: fromRGB() +** Converts 8-bit R, G, B values to a 16-bit RGB565 TFTColor. +** =================================================================== +*/ +constexpr TFTColor fromRGB(uint8_t red, uint8_t green, uint8_t blue) { + return static_cast(((red & 0xF8) << 8) | ((green & 0xFC) << 3) | (blue >> 3)); +} + +// Globals for color calculation +static uint32_t totalR = 0, totalG = 0, totalB = 0; +static uint32_t pixelCount = 0; + +/* +** =================================================================== +** jpgCalculateAverageColorCallback() +** Callback used during JPEG decoding to compute the average color +** of the image for background styling or theme adaptation. +** =================================================================== +*/ + +// Callback function for pixel processing +bool DisplayUI::jpgCalculateAverageColorCallback(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t* bitmap) +{ + + // Sampling factor (e.g., process every 4th pixel) + + const uint16_t samplingFactor = 4; // 16; //4; + + for (uint16_t i = 0; i < w * h; i += samplingFactor) + { + uint16_t pixel = bitmap[i]; + + uint8_t r8 = (pixel >> 11) & 0x1F; // 5-bit R + uint8_t g8 = (pixel >> 5) & 0x3F; // 6-bit G + uint8_t b8 = pixel & 0x1F; // 5-bit B + + // Scale up to 8-bit + uint8_t r = r8 << 3; + uint8_t g = g8 << 2; + uint8_t b = b8 << 3; + + int brightness = (r + g + b) / 3; + + // Skip extremely bright or extremely dark + if (brightness < 240 + && brightness > 20) + { + + totalR += r; + totalG += g; + totalB += b; + pixelCount++; + } + } + + return true; // Continue processing + +} + +/* +** =================================================================== +** calculateAverageColor() +** =================================================================== +*/ +// Calculate average color of JPEG file +TFTColor DisplayUI::calculateAverageColor(const char* filename) +{ + totalR = totalG = totalB = pixelCount = 0; + + spLogV(LOGTAG_PLAYER, "Entering calculateAverageColor(%s)", filename); + + Monitor::start(MONITOR_ID_CALCULATE_AVG_BACKGROUND_COLOR, LOGTAG_METRICS, "- drawFsJpg(0, 0, filename, LittleFS)"); + _isPainting = false; // TODO: wrap to make thread safe... maybe this block until it is reset. + drawFsJpg(0, 0, filename, LittleFS); + _isPainting = true; + spLogV(LOGTAG_PLAYER,"decoder.drawFsJpg() result is %d",filename); + Monitor::stop(MONITOR_ID_CALCULATE_AVG_BACKGROUND_COLOR); + + if (pixelCount == 0) { + spLogE(LOGTAG_SONG_DATA, "No pixels processed from the image."); + return TFTColor::Black; + } + + uint8_t avgR = totalR / pixelCount; + uint8_t avgG = totalG / pixelCount; + uint8_t avgB = totalB / pixelCount; + + spLogV(LOGTAG_PLAYER, "Average color: R=%d, G=%d, B=%d", avgR, avgG, avgB); + spLogV(LOGTAG_PLAYER, "pixelCount = %d", pixelCount); + + // Convert to HSV, boost saturation, convert back --- + float h, s, v; + DisplayUI::rgbToHsv(avgR, avgG, avgB, h, s, v); + + // Increase saturation (example: 1.5x) + s = std::min(s * 1.5f, 1.0f); // clamp at 1.0 + + // Convert back to RGB + uint8_t finalR, finalG, finalB; + DisplayUI::hsvToRgb(h, s, v, finalR, finalG, finalB); + + spLogV(LOGTAG_PLAYER, "Boosted color: R=%d, G=%d, B=%d", finalR, finalG, finalB); + + // Convert to 565 + TFTColor answer = fromRGB(finalR, finalG, finalB); + + return answer; +} + +/* +** =================================================================== +** rgbToHsv() +** Converts an RGB color value to HSV (Hue, Saturation, Value). +** This function modifies the hue, saturation, and value floats +** passed in by reference. +** +** Parameters: +** r - The red component in [0..255]. +** g - The green component in [0..255]. +** b - The blue component in [0..255]. +** h - Output for hue in degrees [0..360). +** s - Output for saturation in [0..1]. +** v - Output for value (brightness) in [0..1]. +** +** Returns: +** None. The results are written to h, s, and v by reference. +** =================================================================== +*/ +void DisplayUI::rgbToHsv(uint8_t r, uint8_t g, uint8_t b, float& h, float& s, float& v) +{ + // Convert from 8-bit [0..255] to floating-point [0..1] + float fr = r / 255.0f; + float fg = g / 255.0f; + float fb = b / 255.0f; + + // Find the maximum and minimum among R, G, B + float maxVal = std::max({fr, fg, fb}); + float minVal = std::min({fr, fg, fb}); + float delta = maxVal - minVal; // Range between max and min + + // "Value" (brightness) in HSV is simply the maximum component + v = maxVal; + + // If delta is extremely small, color is essentially grayscale + if (delta < 0.00001f) + { + s = 0.0f; // No saturation + h = 0.0f; // Hue is undefined, treat as 0 + return; + } + + // Saturation is the ratio of the color range to the brightness + s = (maxVal > 0.0f) ? (delta / maxVal) : 0.0f; + + // Determine hue based on which channel is the maximum + if (maxVal == fr) + { + // If red is max, hue depends on (green - blue) relative to delta + h = 60.0f * fmod(((fg - fb) / delta), 6.0f); + // Wrap negative angles into the [0..360) range + if (h < 0.0f) + { + h += 360.0f; + } + } + else if (maxVal == fg) + { + // If green is max, hue is in the 120..180 range + h = 60.0f * (((fb - fr) / delta) + 2.0f); + } + else // maxVal == fb + { + // If blue is max, hue is in the 240..300 range + h = 60.0f * (((fr - fg) / delta) + 4.0f); + } +} + +/* +** =================================================================== +** hsvToRgb() +** Converts an HSV (Hue, Saturation, Value) color value to RGB. +** This function modifies the red, green, and blue bytes passed +** in by reference. +** +** Parameters: +** h - The hue in degrees [0..360). +** s - The saturation in [0..1]. +** v - The value (brightness) in [0..1]. +** r - Output for red in [0..255]. +** g - Output for green in [0..255]. +** b - Output for blue in [0..255]. +** +** Returns: +** None. The results are written to r, g, and b by reference. +** =================================================================== +*/ +void DisplayUI::hsvToRgb(float h, float s, float v, uint8_t& r, uint8_t& g, uint8_t& b) +{ + // c is the "chroma"—the intensity of the color (range [0..v]) + float c = v * s; + + // x is an intermediate value used to spread out the color + // based on how far H is into each 60-degree segment + float x = c * (1.0f - fabs(fmod(h / 60.0f, 2.0f) - 1.0f)); + + // m adjusts the final values to match the requested Value (v) + float m = v - c; + + // Temporary floats for the "pure" R, G, B before adding m + float fr = 0; + float fg = 0; + float fb = 0; + + // Determine which 60-degree segment of the 360-degree Hue range we're in + if (h < 60) + { + // Segment 0: Red is at full chroma, green is partial, blue is 0 + fr = c; + fg = x; + fb = 0; + } + else if (h < 120) + { + // Segment 1: Green is at full chroma, red is partial, blue is 0 + fr = x; + fg = c; + fb = 0; + } + else if (h < 180) + { + // Segment 2: Green is at full chroma, blue is partial, red is 0 + fr = 0; + fg = c; + fb = x; + } + else if (h < 240) + { + // Segment 3: Blue is at full chroma, green is partial, red is 0 + fr = 0; + fg = x; + fb = c; + } + else if (h < 300) + { + // Segment 4: Blue is at full chroma, red is partial, green is 0 + fr = x; + fg = 0; + fb = c; + } + else + { + // Segment 5: Red is at full chroma, blue is partial, green is 0 + fr = c; + fg = 0; + fb = x; + } + + // Convert the float values [0..1] into 8-bit [0..255] range + // and add m to each channel to match the intended brightness (Value) + r = static_cast((fr + m) * 255); + g = static_cast((fg + m) * 255); + b = static_cast((fb + m) * 255); +} diff --git a/src/DisplayUI.h b/src/DisplayUI.h new file mode 100644 index 0000000..ef52cf5 --- /dev/null +++ b/src/DisplayUI.h @@ -0,0 +1,217 @@ +/*------------------------------------------------------------------------------------------------- +** +** DisplayUI.h +** +** Provides methods for drawing UI elements including album art, buttons, +** progress indicators, and text, using the TFT_eSPI and OpenFontRender libraries. +** +** Originally based on https://github.com/Bodmer/OpenWeather/blob/main/examples/TFT_eSPI_OpenWeather_LittleFS/GfxUi.h +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-26 - Electric Diversions - Renamed from GfxUI.h.h to tpGfxUi.h +** 2024-12-27 - Electric Diversions - Renamed to DisplayUI and promoted to base class +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include +// #include +#include +#include + +// JPEG decoder library +#include + +#include + +#include "Point.h" + + +// Maximum of 85 for BUFFPIXEL as 3 x this value is stored in an 8 bit variable! +// 32 is an efficient size for LittleFS due to SPI hardware pipeline buffer size +// A larger value of 80 is better for SD cards +#define BUFFPIXEL 32 + +// Size of cover art square side. +#define COVER_ART_SIZE 300 + +/* +** =================================================================== +** Predefined colors to use on the UI +** =================================================================== +*/ +enum class TFTColor : uint16_t +{ + Black = 0x0000, // 0, 0, 0 + Blue = 0x001F, // 0, 0, 255 + BlueThinkPulse = 0x0336, // The medium blue in the TP logo is 0x0067B0 which converts to 0x0336 in 16bit RGB565 + Brown = 0x9A60, // 150, 75, 0 + Cyan = 0x07FF, // 0, 255, 255 + DarkCyan = 0x03EF, // 0, 128, 128 + DarkGreen = 0x03E0, // 0, 128, 0 + DarkestGreen = 0x0280, + DarkGrey = 0x7BEF, // 128, 128, 128 + Gold = 0xFEA0, // 255, 215, 0 + Green = 0x07E0, // 0, 255, 0 + GreenYellow = 0xB7E0, // 180, 255, 0 + LightGrey = 0xD69A, // 211, 211, 211 + LightPink = 0xFC9F, // + Magenta = 0xF81F, // 255, 0, 255 + Maroon = 0x7800, // 128, 0, 0 + Navy = 0x000F, // 0, 0, 128 + Olive = 0x7BE0, // 128, 128, 0 + Orange = 0xFDA0, // 255, 180, 0 + Pink = 0xFE19, // 255, 192, 203 + Purple = 0x780F, // 128, 0, 128 + Red = 0xF800, // 255, 0, 0 + Silver = 0xC618, // 192, 192, 192 + SkyBlue = 0x867D, // 135, 206, 235 + Violet = 0x915C, // 180, 46, 226 + White = 0xFFFF, // 255, 255, 255 + Yellow = 0xFFE0, // 255, 255, 0 + + SC_LowHeap = 0xAB04, // 174, 98, 37 + SC_DJX_BG = 0x22D6, // 39, 88, 178 + SC_DJX_FG = 0x6F11, // 108, 227, 148 + SC_PreviousTrack = 0xFEA0, // 255, 215, 0 + SC_NextTrack = 0xB7E0, // 180, 255, 0 + SC_PauseTrack = 0x780F, // 128, 0, 128 + SC_CacheSave = 0x867D, // 135, 206, 235 + SC_TouchDown = 0x867D, // 135, 206, 235 + SC_AlertStatus = 0xFFE0, // 255, 255, 0 + SC_NetworkInProgress = 0x7BEF, // 128, 128, 128 + SC_NetworkSuccess = 0x03E0, // 0, 128, 0 + SC_NetworkFailure = 0xF800 // 255, 0, 0 +}; + +class DisplayUI { +public: + DisplayUI(TFT_eSPI *tft, OpenFontRender *render, OpenFontRender *clockFont); + void init(); + + // Original Thing Pulse methods + void drawBmp(String filename, uint16_t x, uint16_t y); + void drawLogo(); + void drawAppInfo(); + void drawProgressBar(uint16_t x, uint16_t y, uint16_t w, uint16_t h, + uint8_t percentage, TFTColor frameColor, + TFTColor barColor); + // Added 12/2024: + void drawAlbumArt(int32_t x, int32_t y, String filename); + void setJpgScaleToSmall(bool isSmall); + void setJpgScaleToTiny(); + void drawStatusBox(TFTColor statusColor); + void drawDownloadIndicator(bool bDownloadComplate); + void drawProgress(const char *text, int8_t percentage); + void drawSeparator(uint16_t y); + void drawButton(int32_t x, int32_t y, bool isPressed); + void drawBlankButton(int32_t x, int32_t y, int32_t width, int32_t height, uint8_t margin, TFTColor borderColor, bool isPressed); + void drawSkipTrackIcon(int32_t x, int32_t y, int32_t width, int32_t height, bool isReversed); + void drawPlayTrackIcon(int32_t x, int32_t y, int32_t width, int32_t height); + void drawPauseTrackIcon(int32_t x, int32_t y, int32_t width, int32_t height); + void drawBackIcon(int32_t x, int32_t y, int32_t width, int32_t height); + + void setBackground(TFTColor color, bool bRepaint=true); + TFTColor getBackground() const; + bool isSplitBackground() const; + void setSplitBackground(bool isSplitBackground = false); + void clearScreen(); + void clearScreenKeepArt(); + void clearScreenHome(); + std::string formatTime(long millis); + + void drawTextToLCD(const char *text, int posY); + void drawTextToLCD(const char *text, int posY, int fontSize, bool ignoreText); + void drawText(const char *text, int posX, int posY, int fontSize, TFTColor color); + + void drawString(const char *str, + int32_t x, + int32_t y, + unsigned int fontSize, + TFTColor fg, + TFTColor bg, + Align alignment, + const char *clearMask); + + void cDrawString(const char *str, + int32_t x, + int32_t y, + unsigned int fontSize, + TFTColor fg, + TFTColor bg, + const char *clearMask); + + void lDrawString(const char *str, + int32_t x, + int32_t y, + unsigned int fontSize, + TFTColor fg, + TFTColor bg, + const char *clearMask); + + void rDrawString(const char *str, + int32_t x, + int32_t y, + unsigned int fontSize, + TFTColor fg, + TFTColor bg, + const char *clearMask); + + void drawClockTime(bool isForceRepaint); + + void showTouchDown(TFTColor color = TFTColor::SC_TouchDown); + void showTouchUp(); + + bool pushImageToTft(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap); + + // display properties + int16_t getCenterWidth(); + int16_t getCenterHeight(); + int16_t getWidth(); + int16_t getHeight(); + Point getPreviousActionPoint(); + Point getNextActionPoint(); + + bool isUIDirty(); + void markUIDirty(bool isDirty); + + JRESULT drawFsJpg(int32_t x, int32_t y, const char *pFilename, fs::FS &fs); + TFTColor calculateAverageColor(const char* filename); + + // utility methods + static void rgbToHsv(uint8_t r, uint8_t g, uint8_t b, float& h, float& s, float& v); + static void hsvToRgb(float h, float s, float v, uint8_t& r, uint8_t& g, uint8_t& b); + + +private: + // Member variables + TFT_eSPI *_tft; + OpenFontRender *_ofr; + OpenFontRender *_clockFont; + TFTColor _bgColor = TFTColor::BlueThinkPulse; + bool _isSplitBackground = false; + // ViewID _viewID = ViewID::Home; + bool _isUIDirty = false; + bool _isPainting = true; + SemaphoreHandle_t xSemaphoreDisplay = xSemaphoreCreateMutex(); + + // Methods + uint16_t read16(fs::File &f); + uint32_t read32(fs::File &f); + void paintTouch(bool isPress, TFTColor color); + static bool jpgCallback(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap); + bool jpgCalculateAverageColorCallback(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t* bitmap); + void drawClockString( + const char *str, + int32_t x, + int32_t y, + unsigned int fontSize, + TFTColor fg, + TFTColor bg); + +}; diff --git a/src/FT6236.cpp b/src/FT6236TouchController/FT6236.cpp similarity index 100% rename from src/FT6236.cpp rename to src/FT6236TouchController/FT6236.cpp diff --git a/src/FT6236.h b/src/FT6236TouchController/FT6236.h similarity index 100% rename from src/FT6236.h rename to src/FT6236TouchController/FT6236.h diff --git a/src/GfxUi.cpp b/src/GfxUi.cpp deleted file mode 100644 index 4b4618d..0000000 --- a/src/GfxUi.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT - -// Based on https://github.com/Bodmer/OpenWeather/blob/main/examples/TFT_eSPI_OpenWeather_LittleFS/GfxUi.cpp - -#include "GfxUi.h" - -#define FS_TP_LOGO "/ThingPulse-logo-260.jpeg" - -GfxUi::GfxUi(TFT_eSPI *tft, OpenFontRender *ofr) { - _tft = tft; - _ofr = ofr; -} - -// Bodmer's streamlined x2 faster "no seek" version -void GfxUi::drawBmp(String filename, uint16_t x, uint16_t y) { - - if ((x >= _tft->width()) || (y >= _tft->height())) - return; - - fs::File bmpFS; - - // Note: ESP32 passes "open" test even if file does not exist, whereas ESP8266 - // returns NULL - if (!LittleFS.exists(filename)) { - log_e(" File not found"); - return; - } - - // Open requested file - bmpFS = LittleFS.open(filename, "r"); - - uint32_t seekOffset; - uint16_t w, h, row; - uint8_t r, g, b; - bool oldSwap = false; - - if (read16(bmpFS) == 0x4D42) { - read32(bmpFS); - read32(bmpFS); - seekOffset = read32(bmpFS); - read32(bmpFS); - w = read32(bmpFS); - h = read32(bmpFS); - - if ((read16(bmpFS) == 1) && (read16(bmpFS) == 24) && (read32(bmpFS) == 0)) { - y += h - 1; - - oldSwap = _tft->getSwapBytes(); - _tft->setSwapBytes(true); - bmpFS.seek(seekOffset); - - // Calculate padding to avoid seek - uint16_t padding = (4 - ((w * 3) & 3)) & 3; - uint8_t lineBuffer[w * 3 + padding]; - - for (row = 0; row < h; row++) { - - bmpFS.read(lineBuffer, sizeof(lineBuffer)); - uint8_t *bptr = lineBuffer; - uint16_t *tptr = (uint16_t *)lineBuffer; - // Convert 24 to 16 bit colours using the same line buffer for results - for (uint16_t col = 0; col < w; col++) { - b = *bptr++; - g = *bptr++; - r = *bptr++; - *tptr++ = ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); - } - - // Push the pixel row to screen, pushImage will crop the line if needed - // y is decremented as the BMP image is drawn bottom up - _tft->pushImage(x, y--, w, 1, (uint16_t *)lineBuffer); - } - } else - log_e("BMP format not recognized."); - } - _tft->setSwapBytes(oldSwap); - bmpFS.close(); -} - -void GfxUi::drawLogo() { - if (LittleFS.exists(FS_TP_LOGO)) { - uint16_t w = 0, h = 0; - TJpgDec.getFsJpgSize(&w, &h, FS_TP_LOGO, LittleFS); - TJpgDec.drawFsJpg((_tft->width() - w) / 2, 30, FS_TP_LOGO, LittleFS); - } -} - -void GfxUi::drawProgressBar(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, - uint8_t percentage, uint16_t frameColor, - uint16_t barColor) { - if (percentage == 0) { - _tft->fillRoundRect(x0, y0, w, h, 3, TFT_BLACK); - } - uint8_t margin = 2; - uint16_t barHeight = h - 2 * margin; - uint16_t barWidth = w - 2 * margin; - _tft->drawRoundRect(x0, y0, w, h, 3, frameColor); - _tft->fillRect(x0 + margin, y0 + margin, barWidth * percentage / 100.0, - barHeight, barColor); -} - -// These read 16- and 32-bit types from the SD card file. -// BMP data is stored little-endian, Arduino is little-endian too. -// May need to reverse subscript order if porting elsewhere. - -uint16_t GfxUi::read16(fs::File &f) { - uint16_t result; - ((uint8_t *)&result)[0] = f.read(); // LSB - ((uint8_t *)&result)[1] = f.read(); // MSB - return result; -} - -uint32_t GfxUi::read32(fs::File &f) { - uint32_t result; - ((uint8_t *)&result)[0] = f.read(); // LSB - ((uint8_t *)&result)[1] = f.read(); - ((uint8_t *)&result)[2] = f.read(); - ((uint8_t *)&result)[3] = f.read(); // MSB - return result; -} diff --git a/src/GfxUi.h b/src/GfxUi.h deleted file mode 100644 index ef86b30..0000000 --- a/src/GfxUi.h +++ /dev/null @@ -1,35 +0,0 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT - -// Based on https://github.com/Bodmer/OpenWeather/blob/main/examples/TFT_eSPI_OpenWeather_LittleFS/GfxUi.h - -#pragma once - -#include -#include -#include -#include - -// JPEG decoder library -#include - -// Maximum of 85 for BUFFPIXEL as 3 x this value is stored in an 8 bit variable! -// 32 is an efficient size for LittleFS due to SPI hardware pipeline buffer size -// A larger value of 80 is better for SD cards -#define BUFFPIXEL 32 - -class GfxUi { -public: - GfxUi(TFT_eSPI *tft, OpenFontRender *render); - void drawBmp(String filename, uint16_t x, uint16_t y); - void drawLogo(); - void drawProgressBar(uint16_t x, uint16_t y, uint16_t w, uint16_t h, - uint8_t percentage, uint16_t frameColor, - uint16_t barColor); - -private: - TFT_eSPI *_tft; - OpenFontRender *_ofr; - uint16_t read16(fs::File &f); - uint32_t read32(fs::File &f); -}; diff --git a/src/Monitor.cpp b/src/Monitor.cpp new file mode 100644 index 0000000..0782d53 --- /dev/null +++ b/src/Monitor.cpp @@ -0,0 +1,441 @@ +/*------------------------------------------------------------------------------------------------- +** +** Monitor.cpp +** +** Utility class for performance and resource monitoring. Provides timing +** instrumentation, heap tracking, and queue depth monitoring using static +** methods and internal tracking structures. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-07 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "Monitor.h" +#include "SCLogger.h" +#include "logTags.h" +#include + +// Initialize the static timers map +std::map Monitor::timers; + +// Initialize id descriptors +std::map Monitor::idDescriptions; + +// Initialize the static HeapStats struct +Monitor::HeapStats Monitor::heapStats; + + +uint32_t Monitor::maxQueueDepth = 0; // Max queue depth + +/* +** =================================================================== +** registerDescription() +** Associates a human-readable description with a monitor ID. +** This description is included in the statistics dump for better +** clarity and context. +** +** Parameters: +** id - Unique identifier for the timer. +** description - A human-readable string describing the purpose +** or context of the timer. +** +** Example Usage: +** Monitor::registerDescription(MONITOR_ID_SPOTIFY_GET_CURRENTLY_PLAYING, +** "Spotify: Get Currently Playing"); +** +** Notes: +** - Descriptions should be registered early in the application's +** lifecycle, such as during initialization. +** - If a description is not registered for an ID, "Unknown" will +** appear in the statistics dump for that ID. +** +** =================================================================== +*/ +void Monitor::registerDescription(int id, const std::string& description) +{ + idDescriptions[id] = description; +} + +/* +** =================================================================== +** start() +** Starts the monitor for a given timer ID. +** +** Parameters: +** id - Unique identifier for the timer +** tag - Logging tag for the timer +** msg - Message to log when starting the timer +** +** =================================================================== +*/ +void Monitor::start(int id, const char* tag, const char* msg) +{ + TimerInfo& info = timers[id]; + info.startTime = std::chrono::steady_clock::now(); + info.tag = tag; + + spLogV(tag, "Monitor started (ID: %d). %s", id, msg); +} + +/* +** =================================================================== +** stop() +** Stops the monitor for a given timer ID and logs the elapsed time. +** +** Parameters: +** id - Unique identifier for the timer +** +** =================================================================== +*/ +void Monitor::stop(int id) +{ + auto it = timers.find(id); + if (it != timers.end()) + { + // Extract tag and start time + TimerInfo& info = it->second; + const std::string& tag = info.tag; + auto startTime = info.startTime; + + // Calculate the elapsed time + auto endTime = std::chrono::steady_clock::now(); + auto elapsed = std::chrono::duration_cast(endTime - startTime).count(); + + // Update statistics + info.totalDuration += elapsed; + info.stopCount++; + if (elapsed < info.minDuration) info.minDuration = elapsed; + if (elapsed > info.maxDuration) info.maxDuration = elapsed; + + // Calculate the average duration + long long avgDuration = info.totalDuration / info.stopCount; + + // Log the results + spLogV(tag.c_str(), "Monitor stopped (ID: %d). Elapsed: %lld ms. Avg: %lld ms. Min: %lld ms. Max: %lld ms.", + id, elapsed, avgDuration, info.minDuration, info.maxDuration); + } + else + { + spLogW(LOGTAG_GENERAL, "Monitor stop called for an unknown ID: %d", id); + } +} + +/* +** =================================================================== +** dumpStats() +** Logs a table of statistics for all currently tracked timers. +** +** Parameters: +** tag - Logging tag for the summary log entry +** +** =================================================================== +*/ +void Monitor::dumpStats(const char* tag) +{ + // Define column widths for alignment + constexpr int idWidth = 6; // ID column width + constexpr int descWidth = 20; // Description column width + constexpr int countWidth = 12; // Stop Count column width + constexpr int avgWidth = 10; // Avg(ms) column width + constexpr int minWidth = 7; // Min column width + constexpr int maxWidth = 7; // Max column width + + spLogI(tag, "Monitor Statistics Dump:"); + spLogI(tag, "---------------------------------------------------------------------------------"); + spLogI(tag, "| %*s | %-*s | %*s | %*s | %*s | %*s |", + idWidth, "ID", + descWidth, "Description", + countWidth, "Stop Count", + avgWidth, "Avg(ms)", + minWidth, "Min", + maxWidth, "Max"); + spLogI(tag, "---------------------------------------------------------------------------------"); + + for (const auto& entry : timers) + { + const int id = entry.first; + const TimerInfo& info = entry.second; + + // Get the description from idDescriptions, or use "Unknown ID" if not found + const std::string& description = idDescriptions.count(id) ? idDescriptions.at(id) : "Unknown ID"; + + if (info.stopCount > 0) + { + long long avgDuration = info.totalDuration / info.stopCount; + + spLogI(tag, "| %*d | %-*s | %*d | %*lld | %*lld | %*lld |", + idWidth, id, + descWidth, description.c_str(), + countWidth, info.stopCount, + avgWidth, avgDuration, + minWidth, info.minDuration, + maxWidth, info.maxDuration); + } + else + { + spLogI(tag, "| %*d | %-*s | %*d | %*s | %*s | %*s |", + idWidth, id, + descWidth, description.c_str(), + countWidth, info.stopCount, + avgWidth, "N/A", + minWidth, "N/A", + maxWidth, "N/A"); + } + } + + spLogI(tag, "---------------------------------------------------------------------------------"); +} + +/* +** =================================================================== +** getStats() +** Retrieves statistics for a specific monitor ID. +** +** Parameters: +** monitorID - The unique ID of the monitor. +** +** Returns: +** MonitorStats struct containing: +** - ID +** - Description (if registered, otherwise "Unknown ID") +** - Stop count +** - Average duration (ms) +** - Min duration (ms) +** - Max duration (ms) +** +** Notes: +** - If the monitor ID is not found, it returns default values. +** +** =================================================================== +*/ +MonitorStats Monitor::getStats(int monitorID) +{ + MonitorStats stats = {monitorID, "Unknown ID", 0, 0, LLONG_MAX, 0}; + + auto it = timers.find(monitorID); + if (it != timers.end()) + { + const TimerInfo& info = it->second; + + stats.description = idDescriptions.count(monitorID) ? idDescriptions.at(monitorID) : "Unknown ID"; + stats.stopCount = info.stopCount; + stats.minMs = info.minDuration; + stats.maxMs = info.maxDuration; + + // Calculate the average only if stopCount > 0 to avoid division by zero + stats.averageMs = (info.stopCount > 0) ? (info.totalDuration / info.stopCount) : 0; + } + + spLogV(LOGTAG_METRICS, "Returned ID: %s Avg: %lld", stats.description.c_str(),stats.averageMs); + return stats; +} + + +/* +** =================================================================== +** watchHeap() +** Logs the heap size and alerts if it falls below a threshold. +** +** Parameters: +** threshold - The heap size threshold to warn about +** +** Returns: +** true if over the heap threshold, false is under it +** +** =================================================================== +*/ +bool Monitor::watchHeap(uint32_t threshold) +{ + // Get the current heap size + uint32_t currentHeap = ESP.getFreeHeap(); + bool bAnswer = true; + + // Update stats + if (currentHeap < heapStats.minHeap) + { + heapStats.minHeap = currentHeap; + } + + if (currentHeap > heapStats.maxHeap) + { + heapStats.maxHeap = currentHeap; + } + + heapStats.totalHeap += currentHeap; + heapStats.sampleCount++; + + uint32_t avgHeap = heapStats.sampleCount > 0 ? heapStats.totalHeap / heapStats.sampleCount : 0; + + // Log the current heap size + spLogV(LOGTAG_HEAP," "); + spLogI(LOGTAG_HEAP, "Heap size: %u bytes. Avg: %u bytes. Min: %u bytes. Max: %u bytes.", + currentHeap, avgHeap, heapStats.minHeap, heapStats.maxHeap); + spLogV(LOGTAG_HEAP," "); + + // Warn if the heap size is below the threshold + if (currentHeap < threshold) + { + spLogW(LOGTAG_HEAP, "Heap size below threshold! Current: %u bytes, Threshold: %u bytes.", + currentHeap, threshold); + bAnswer = false; + } + return bAnswer; +} + +/* +** =================================================================== +** watchHeap() +** Logs the heap size and alerts if it falls below a threshold. +** +** Parameters: +** threshold - The heap size threshold to warn about +** +** Returns: +** true if over the heap threshold, false is under it +** +** =================================================================== +*/ +bool Monitor::watchQueue(QueueHandle_t queueHandle, uint32_t threshold) +{ + // Get the current queue depth + UBaseType_t messagesInQueue = uxQueueMessagesWaiting(queueHandle); + bool bAnswer = false; + + if (messagesInQueue > threshold) + { + spLogV(LOGTAG_GENERAL, "*** queue count over threshold of %u. count: %u", threshold, messagesInQueue); + bAnswer = true; + } + + if (messagesInQueue > maxQueueDepth) + { + maxQueueDepth = messagesInQueue; + } + + return bAnswer; +} + +uint32_t Monitor::getMaxQueueDepth() +{ + return maxQueueDepth; +} + +/* +** ------------------------------------------------------------------- +** getFreeHeap +** +** Returns the current heap size and remember the minimum heap. +** +** ------------------------------------------------------------------- +*/ +uint32_t Monitor::getFreeHeap() +{ + // Get the current heap size + uint32_t currentHeap = ESP.getFreeHeap(); + + // Update stats + if (currentHeap < heapStats.minHeap) + { + heapStats.minHeap = currentHeap; + } + + return currentHeap; +} + +/* +** ------------------------------------------------------------------- +** getHeapStatus +** +** Returns a copy of the current heap statistics. +** +** Returns: +** HeapStats - A struct containing heap information. +** +** ------------------------------------------------------------------- +*/ +Monitor::HeapStats Monitor::getHeapStats() +{ + return heapStats; +} + +/* +/* +** ------------------------------------------------------------------- +** getFormattedUptime +** +** Returns the system uptime as a formatted string based on the +** provided format string. +** +** Parameters: +** formatStr - A C-style format string that specifies the output +** format. Must contain four unsigned long format +** specifiers (e.g., "%lu") for days, hours, minutes, +** and seconds. +** +** Format Example: +** "System Uptime: %lu days, %lu hours, %lu minutes, %lu seconds." +** "Uptime: %luD %luH %luM %luS" +** +** Returns: +** std::string - A human-readable string representation of uptime. +** +** Notes: +** - The caller must ensure `formatStr` is a valid null-terminated +** format string with appropriate placeholders. +** - If `formatStr` is null, a default format will be used. +** +** ------------------------------------------------------------------- +*/ +std::string Monitor::getFormattedUptime(const char *pszFormatStr) +{ + + // Get the current uptime in milliseconds + unsigned long uptimeMillis = millis(); + + // Calculate days, hours, minutes, and seconds + unsigned long seconds = (uptimeMillis / 1000) % 60; + unsigned long minutes = (uptimeMillis / (1000 * 60)) % 60; + unsigned long hours = (uptimeMillis / (1000 * 60 * 60)) % 24; + unsigned long days = (uptimeMillis / (1000 * 60 * 60 * 24)); + + char buffer[100] = {0}; + snprintf(buffer, sizeof(buffer), pszFormatStr, + static_cast(days), + static_cast(hours), + static_cast(minutes), + static_cast(seconds)); + + return std::string(buffer); + +} + +/* +** =================================================================== +** logUptime() +** Logs the system uptime in a human-readable format (days, hours, +** minutes, and seconds). +** +** Parameters: +** tag - Logging tag for the uptime log entry +** +** Notes: +** - Uses millis() to calculate the system uptime. +** - Wraps around after approximately 49.7 days due to the size of +** the unsigned long returned by millis(). +** +** Example Output: +** [General] System Uptime: 3 days, 4 hours, 23 minutes, 15 seconds. +** +** =================================================================== +*/ +void Monitor::logUptime(const char* tag) +{ + // Log the uptime + spLogI(tag, "%s", Monitor::getFormattedUptime("System Uptime: %lu days, %lu hours, %lu minutes, %lu seconds.").c_str()); + +} \ No newline at end of file diff --git a/src/Monitor.h b/src/Monitor.h new file mode 100644 index 0000000..fed0ca5 --- /dev/null +++ b/src/Monitor.h @@ -0,0 +1,147 @@ +/*------------------------------------------------------------------------------------------------- +** +** Monitor.h +** +** Utility class for performance and resource monitoring. Provides timing +** instrumentation, heap tracking, and queue depth monitoring using static +** methods and internal tracking structures. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-07 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/queue.h" + +#include "SCLogger.h" + +#define MONITOR_ID_CALCULATE_AVG_BACKGROUND_COLOR 100 +#define MONITOR_ID_SPOTIFY_GET_CURRENTLY_PLAYING 200 +#define MONITOR_ID_SPOTIFY_IMAGE_HTTP_GET 300 +#define MONITOR_ID_SPOTIFY_IMAGE_FILE_SAVE 310 +#define MONITOR_ID_SPOTIFY_IMAGE_FILE_LOAD 320 +#define MONITOR_ID_SPOTIFY_IMAGE_CACHE_LOAD 390 +#define MONITOR_ID_SPOTIFY_IMAGE_CACHE_SAVE 391 +#define MONITOR_ID_FETCH_ALBUM_ART 399 +#define MONITOR_ID_SCUI_QUEUE_DELAY 500 + +// Value was picked after after running multi-hour +// duration test and heap not going lower than +// 64304. - 1/19/2025 +// 51048. - 2/14/2025 (after swapping cores, etc.) +#define HEAP_LOW_THRESHOLD 50000 +#define HEAP_WATCH_SIZE_BASE 60000 + +// TODO: clean this up... +#define LLONG_MAX 9223372036854775807LL + +/* +** =================================================================== +** MonitorStats +** +** A struct to encapsulate statistics for a specific monitored event. +** +** Fields: +** id - The unique monitor ID +** description - A readable description of the monitor +** stopCount - The number of times the event has been stopped +** averageMs - The average duration in milliseconds +** minMs - The minimum recorded duration in milliseconds +** maxMs - The maximum recorded duration in milliseconds +** +** =================================================================== +*/ +struct MonitorStats +{ + int id; + std::string description; + int stopCount; + long long averageMs; + long long minMs; + long long maxMs; +}; + +/* +** =================================================================== +** Monitor +** +** A utility class to measure time intervals with support for +** multiple active timers. Each timer is identified by a unique ID. +** Methods are static for utility-style usage. +** +** =================================================================== +*/ +class Monitor +{ +public: + // Starts the monitor for a given timer ID + static void start(int id, const char* tag, const char* msg); + + // Stops the monitor for a given timer ID and logs the elapsed time + static void stop(int id); + + // Dumps the current stats for all timers to the log + static void dumpStats(const char* tag); + + // Retrieves statistics for a specific monitor ID. + static MonitorStats getStats(int monitorID); + + // Monitors and logs heap size stats + static bool watchHeap(uint32_t threshold); + + // Answer the current heap size and remember the lowest value + static uint32_t getFreeHeap(); + + // Monitors and logs heap size stats + static bool watchQueue(QueueHandle_t queueHandle, uint32_t threshold); + + // Answer the max monitored queue depth + static uint32_t getMaxQueueDepth(); + + // Register an ID description + static void registerDescription(int id, const std::string& description); + + // Answers the system uptime in a human-readable format + static std::string getFormattedUptime(const char *pszFormatStr); + + // Logs the system uptime in a human-readable format + static void logUptime(const char* tag); + + // Struct defining what is tracked for the heap + struct HeapStats + { + uint32_t minHeap = UINT32_MAX; + uint32_t maxHeap = 0; + uint64_t totalHeap = 0; + uint32_t sampleCount = 0; + }; + + // Return the current Heap Stats + static Monitor::HeapStats getHeapStats(); + +private: + struct TimerInfo + { + std::chrono::steady_clock::time_point startTime; + std::string tag; + long long totalDuration = 0; // Total time in milliseconds + int stopCount = 0; // Number of times stop() was called + long long minDuration = LLONG_MAX; // Minimum elapsed time + long long maxDuration = 0; // Maximum elapsed time + }; + + static std::map timers; // Active timers + static std::map idDescriptions; // Readabile descriptions + static HeapStats heapStats; // Heap stats tracker + static uint32_t maxQueueDepth; +}; diff --git a/src/PlayingMetadata.cpp b/src/PlayingMetadata.cpp new file mode 100644 index 0000000..074b243 --- /dev/null +++ b/src/PlayingMetadata.cpp @@ -0,0 +1,123 @@ +/*------------------------------------------------------------------------------------------------- +** +** PlayingMetadata.cpp +** +** Defines the PlayingMetadata structure used to represent Spotify playback data. +** Includes song, artist, album, and playback timing metadata. Supports copying +** from Spotify API responses and formatting artist display strings. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-02 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "PlayingMetadata.h" +#include +#include +#include "SpotifyArduino.h" + +/* +** =================================================================== +** copyFrom() +** Copies data from a CurrentlyPlaying instance into a +** PlayingMetadata instance. lastRefreshMs set to time +** of operation. +** =================================================================== +*/ +void PlayingMetadata::copyFrom(const CurrentlyPlaying &source) +{ + numArtists = source.numArtists; + numImages = source.numImages; + isPlaying = source.isPlaying; + progressMs = source.progressMs; + durationMs = source.durationMs; + lastRefreshMs = millis(); + currentlyPlayingType = static_cast(source.currentlyPlayingType); + + strncpy(albumName, source.albumName ? source.albumName : "", PLAYING_NAME_CHAR_LENGTH); + strncpy(albumUri, source.albumUri ? source.albumUri : "", PLAYING_URI_CHAR_LENGTH); + strncpy(trackName, source.trackName ? source.trackName : "", PLAYING_NAME_CHAR_LENGTH); + strncpy(trackUri, source.trackUri ? source.trackUri : "", PLAYING_URI_CHAR_LENGTH); + strncpy(contextUri, source.contextUri ? source.contextUri : "", PLAYING_URI_CHAR_LENGTH); + + for (int i = 0; i < numArtists; i++) + { + strncpy(artists[i].artistName, source.artists[i].artistName ? source.artists[i].artistName : "", PLAYING_NAME_CHAR_LENGTH); + strncpy(artists[i].artistUri, source.artists[i].artistUri ? source.artists[i].artistUri : "", PLAYING_URI_CHAR_LENGTH); + } + + for (int i = 0; i < numImages; i++) + { + albumImages[i].height = source.albumImages[i].height; + albumImages[i].width = source.albumImages[i].width; + strncpy(albumImages[i].url, source.albumImages[i].url ? source.albumImages[i].url : "", PLAYING_URL_CHAR_LENGTH); + } +} + +/* +** =================================================================== +** copyFrom() +** Copies data from one PlayingMetadata instance to another. +** =================================================================== +*/ +void PlayingMetadata::copyFrom(const PlayingMetadata &source) +{ + numArtists = source.numArtists; + numImages = source.numImages; + isPlaying = source.isPlaying; + progressMs = source.progressMs; + durationMs = source.durationMs; + lastRefreshMs = source.lastRefreshMs; + currentlyPlayingType = source.currentlyPlayingType; + + strncpy(albumName, source.albumName, PLAYING_NAME_CHAR_LENGTH); + strncpy(albumUri, source.albumUri, PLAYING_URI_CHAR_LENGTH); + strncpy(trackName, source.trackName, PLAYING_NAME_CHAR_LENGTH); + strncpy(trackUri, source.trackUri, PLAYING_URI_CHAR_LENGTH); + strncpy(contextUri, source.contextUri, PLAYING_URI_CHAR_LENGTH); + + for (int i = 0; i < numArtists; i++) + { + strncpy(artists[i].artistName, source.artists[i].artistName, PLAYING_NAME_CHAR_LENGTH); + strncpy(artists[i].artistUri, source.artists[i].artistUri, PLAYING_URI_CHAR_LENGTH); + } + + for (int i = 0; i < numImages; i++) + { + albumImages[i].height = source.albumImages[i].height; + albumImages[i].width = source.albumImages[i].width; + strncpy(albumImages[i].url, source.albumImages[i].url, PLAYING_URL_CHAR_LENGTH); + } +} + +/* +** =================================================================== +** getArtistsList() +** Returns a String of all the artists for the track, adding an +** ellipsis ("...") if the length exceeds maxLength. +** =================================================================== +*/ +String PlayingMetadata::getArtistsList(size_t maxLength) +{ + String result = ""; + for (int i = 0; i < numArtists; i++) + { + if (!result.isEmpty()) + { + result += ", "; // Add a comma and space before each artist after the first + } + result += artists[i].artistName; + + // Check if the current result exceeds the max length + if (result.length() > maxLength) + { + result = result.substring(0, maxLength - 3) + "..."; // Add ellipsis + break; + } + } + return result; +} \ No newline at end of file diff --git a/src/PlayingMetadata.h b/src/PlayingMetadata.h new file mode 100644 index 0000000..886b5fe --- /dev/null +++ b/src/PlayingMetadata.h @@ -0,0 +1,76 @@ +/*------------------------------------------------------------------------------------------------- +** +** PlayingMetadata.h +** +** Defines the PlayingMetadata structure used to represent Spotify playback data. +** Includes song, artist, album, and playback timing metadata. Supports copying +** from Spotify API responses and formatting artist display strings. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-02 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include + +// Forward declaration (so we don't include SpotifyArduino.h here) +struct CurrentlyPlaying; + +// These need to stay in sync with what is defined in SpotifyArduino.h +#define PLAYING_NAME_CHAR_LENGTH 100 +#define PLAYING_URI_CHAR_LENGTH 40 +#define PLAYING_URL_CHAR_LENGTH 70 +#define PLAYING_MAX_NUM_ARTISTS 5 +#define PLAYING_NUM_ALBUM_IMAGES 3 + + +// Define PlayingMetaData struct with nested types +struct PlayingMetadata +{ + struct SongArtist + { + char artistName[PLAYING_NAME_CHAR_LENGTH]; + char artistUri[PLAYING_URI_CHAR_LENGTH]; + }; + + struct AlbumImage + { + int height; + int width; + char url[PLAYING_URL_CHAR_LENGTH]; + }; + + enum PlayingType + { + track, + episode, + other + }; + + SongArtist artists[PLAYING_MAX_NUM_ARTISTS]; + int numArtists; + char albumName[PLAYING_NAME_CHAR_LENGTH]; + char albumUri[PLAYING_URI_CHAR_LENGTH]; + char trackName[PLAYING_NAME_CHAR_LENGTH]; + char trackUri[PLAYING_URI_CHAR_LENGTH]; + AlbumImage albumImages[PLAYING_NUM_ALBUM_IMAGES]; + int numImages; + bool isPlaying; + long progressMs; + long durationMs; + long lastRefreshMs; + char contextUri[PLAYING_URI_CHAR_LENGTH]; + PlayingType currentlyPlayingType; + + String getArtistsList(size_t maxLength); + +private: + friend class SpotifyPlayer; + void copyFrom(const CurrentlyPlaying &source); + void copyFrom(const PlayingMetadata &source); + +}; diff --git a/src/Point.cpp b/src/Point.cpp new file mode 100644 index 0000000..3667c25 --- /dev/null +++ b/src/Point.cpp @@ -0,0 +1,31 @@ +/*------------------------------------------------------------------------------------------------- +** +** Point.cpp +** +** Defines a simple 2D Point class with integer coordinates. +** Provides methods for displaying the point and computing the +** Euclidean distance to another point. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-31 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "Point.h" + +// Constructor implementation +Point::Point(int x, int y) : x(x), y(y) {} + +// Display the point +void Point::display() const { + std::cout << "(" << x << ", " << y << ")" << std::endl; +} + +// Calculate the distance to another point +double Point::distanceTo(const Point& other) const { + return std::sqrt(std::pow(x - other.x, 2) + std::pow(y - other.y, 2)); +} \ No newline at end of file diff --git a/src/Point.h b/src/Point.h new file mode 100644 index 0000000..8fac8d5 --- /dev/null +++ b/src/Point.h @@ -0,0 +1,36 @@ +/*------------------------------------------------------------------------------------------------- +** +** Point.h +** +** Defines a simple 2D Point class with integer coordinates. +** Provides methods for displaying the point and computing the +** Euclidean distance to another point. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-31 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include +#include // For std::sqrt and std::pow + +class Point { +public: + int x; // X-coordinate + int y; // Y-coordinate + + // Constructor + Point(int x = 0, int y = 0); + + // Method to display the point + void display() const; + + // Method to calculate the distance to another point + double distanceTo(const Point& other) const; +}; \ No newline at end of file diff --git a/src/SCFileIO.cpp b/src/SCFileIO.cpp new file mode 100644 index 0000000..76315f7 --- /dev/null +++ b/src/SCFileIO.cpp @@ -0,0 +1,473 @@ +/*------------------------------------------------------------------------------------------------- +** +** SCFileIO.cpp +** +** A singleton class to manage file I/O operations safely using semaphores. +** Wraps LittleFS to provide thread-safe access to the file system, offering +** methods for reading, writing, and managing files on the ESP32. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-12 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "SCFileIO.h" +#include "SCLogger.h" +#include "logTags.h" + +/* +** =================================================================== +** getInstance() +** Returns the singleton instance of the SCFileIO class. +** +** =================================================================== +*/ +SCFileIO& SCFileIO::getInstance() +{ + static SCFileIO instance; + return instance; +} + +/* +** =================================================================== +** SCFileIO Constructor +** =================================================================== +*/ +SCFileIO::SCFileIO() +{ + xSemaphoreFileIO = nullptr; +} + +/* +** =================================================================== +** SCFileIO Destructor +** =================================================================== +*/ +SCFileIO::~SCFileIO() +{ + if (xSemaphoreFileIO) + { + vSemaphoreDelete(xSemaphoreFileIO); + } +} + +/* +** =================================================================== +** initialize() +** Initializes the semaphore and the LittleFS file system. +** Lists all files in the file system after initialization. +** +** =================================================================== +*/ +void SCFileIO::initialize() +{ + if (!xSemaphoreFileIO) + { + xSemaphoreFileIO = xSemaphoreCreateMutex(); + if (!xSemaphoreFileIO) + { + spLogE(LOGTAG_FILEIO, "Failed to create semaphore!"); + return; + } + } + + if (!takeSemaphore()) + { + spLogE(LOGTAG_FILEIO, "Failed to acquire semaphore for initialize()."); + return; + } + + if (LittleFS.begin()) + { + spLogI(LOGTAG_FILEIO, "Flash FS available!"); + giveSemaphore(); + listFiles(); + } + else + { + giveSemaphore(); + spLogE(LOGTAG_FILEIO, "Flash FS initialization failed!"); + } + + +} + +/* +** =================================================================== +** open() +** Opens a file safely using LittleFS. +** +** Parameters: +** path - Path to the file +** mode - File mode (e.g., "r", "w", etc.) +** +** Returns: +** File object, or an invalid file if the operation fails. +** =================================================================== +*/ +File SCFileIO::open(const char *path, const char *mode) +{ + if (!takeSemaphore()) + { + spLogE(LOGTAG_FILEIO, "Failed to acquire semaphore for open()."); + return File(); + } + + File file = LittleFS.open(path, mode); + giveSemaphore(); + + if (!file) + { + spLogE(LOGTAG_FILEIO, "Failed to open file: %s", path); + } + return file; +} + +/* +** =================================================================== +** write() +** Writes data to a file safely. +** +** Parameters: +** file - File object +** buffer - Data buffer +** size - Size of data to write +** +** Returns: +** Number of bytes written +** =================================================================== +*/ +size_t SCFileIO::write(File &file, const uint8_t *buffer, size_t size) +{ + if (!file) + { + spLogE(LOGTAG_FILEIO, "Invalid file object."); + return 0; + } + + if (!takeSemaphore()) + { + spLogE(LOGTAG_FILEIO, "Failed to acquire semaphore for write()."); + return 0; + } + + size_t bytesWritten = file.write(buffer, size); + giveSemaphore(); + return bytesWritten; +} + +/* +** =================================================================== +** read() +** Reads data from a file safely. +** +** Parameters: +** file - File object +** buffer - Buffer to read data into +** size - Size of data to read +** +** Returns: +** Number of bytes read +** =================================================================== +*/ +size_t SCFileIO::read(File &file, uint8_t *buffer, size_t size) +{ + if (!file) + { + spLogE(LOGTAG_FILEIO, "Invalid file object."); + return 0; + } + + if (!takeSemaphore()) + { + spLogE(LOGTAG_FILEIO, "Failed to acquire semaphore for read()."); + return 0; + } + + size_t bytesRead = file.read(buffer, size); + giveSemaphore(); + return bytesRead; +} + +/* +** =================================================================== +** close() +** Closes a file safely. +** +** Parameters: +** file - File object +** =================================================================== +*/ +void SCFileIO::close(File &file) +{ + if (!file) + { + spLogE(LOGTAG_FILEIO, "Invalid file object."); + return; + } + + if (!takeSemaphore()) + { + spLogE(LOGTAG_FILEIO, "Failed to acquire semaphore for close()."); + return; + } + + file.close(); + giveSemaphore(); +} + +/* +** =================================================================== +** remove() +** Deletes a file safely. +** +** Parameters: +** path - Path to the file +** +** Returns: +** True if the file was deleted, false otherwise +** =================================================================== +*/ +bool SCFileIO::remove(const char *path) +{ + if (!takeSemaphore()) + { + spLogE(LOGTAG_FILEIO, "Failed to acquire semaphore for remove()."); + return false; + } + + bool result = LittleFS.remove(path); + giveSemaphore(); + return result; +} + +/* +** =================================================================== +** exists() +** Checks if a file exists. +** +** Parameters: +** path - Path to the file +** +** Returns: +** True if the file exists, false otherwise +** =================================================================== +*/ +bool SCFileIO::exists(const char *path) +{ + if (!takeSemaphore()) + { + spLogE(LOGTAG_FILEIO, "Failed to acquire semaphore for exists()."); + return false; + } + + bool result = LittleFS.exists(path); + giveSemaphore(); + return result; +} + +/* +** =================================================================== +** listFiles() +** Lists all files in the LittleFS file system. +** =================================================================== +*/ +void SCFileIO::listFiles() +{ + spLogI(LOGTAG_FILEIO, "Flash FS files found:"); + + if (!takeSemaphore()) + { + spLogE(LOGTAG_FILEIO, "Failed to acquire semaphore for listFiles()."); + return; + } + + File root = LittleFS.open("/"); + while (true) + { + File entry = root.openNextFile(); + if (!entry) + { + break; + } + spLogI(LOGTAG_FILEIO, "- %s, %d bytes", entry.name(), entry.size()); + entry.close(); + } + + giveSemaphore(); +} + +/* +** =================================================================== +** readFsString() +** Reads a string from the specified file path in LittleFS. +** +** Parameters: +** path - The file path to read from. +** +** Returns: +** String - The string read from the file. Empty if read fails. +** =================================================================== +*/ +String SCFileIO::readFsString(const char *path) +{ + String token = ""; + spLogI(LOGTAG_FILEIO, "Loading string from '%s'.", path); + + if (!takeSemaphore()) + { + spLogE(LOGTAG_FILEIO, "Failed to acquire semaphore for readFsString()."); + return token; + } + + File f = LittleFS.open(path, "r"); + if (f) + { + token = f.readString(); + spLogD(LOGTAG_FILEIO, "Persisted string: %s", token.c_str()); + f.close(); + } + else + { + spLogE(LOGTAG_FILEIO, "Failed to load string from file system, returning empty."); + } + + giveSemaphore(); + return token; +} + +/* +** =================================================================== +** saveFsString() +** Saves a string to the specified file path in LittleFS. +** +** Parameters: +** path - The file path to save to. +** string - The string to save. +** =================================================================== +*/ +void SCFileIO::saveFsString(const char *path, String string) +{ + spLogI(LOGTAG_FILEIO, "Saving string to '%s'.", path); + + if (!takeSemaphore()) + { + spLogE(LOGTAG_FILEIO, "Failed to acquire semaphore for saveFsString()."); + return; + } + + File f = LittleFS.open(path, "w+"); + if (f) + { + f.print(string); + f.close(); + } + else + { + spLogE(LOGTAG_FILEIO, "Failed to open file."); + } + + giveSemaphore(); +} + + +/* +** =================================================================== +** takeSemaphore() +** Acquires the semaphore for file I/O operations. +** +** Returns: +** True if the semaphore was successfully taken, false otherwise +** =================================================================== +*/ +bool SCFileIO::takeSemaphore() +{ + return xSemaphoreTake(xSemaphoreFileIO, portMAX_DELAY) == pdTRUE; +} + +/* +** =================================================================== +** giveSemaphore() +** Releases the semaphore for file I/O operations. +** =================================================================== +*/ +void SCFileIO::giveSemaphore() +{ + xSemaphoreGive(xSemaphoreFileIO); +} + +/* +** =================================================================== +** hexDump() +** +** Outputs a formatted hexadecimal and ASCII dump of a file's contents +** to the serial console for inspection. The dump includes offsets, hex +** values, and printable ASCII characters. Intended for debugging file +** contents stored in LittleFS. +** +** Parameters: +** tag - Logging tag used for context and log filtering. +** filePath - Path to the file to be dumped. +** +** Notes: +** - Only runs if the logger's verbosity level for the tag is set to verbose. +** - Skips execution if the file cannot be opened or is empty. +** =================================================================== +*/ +void SCFileIO::hexDump(const char* tag, const char* filePath) +{ + + spLogI(tag, "attempting hexDump in SCFileIO::hexDump()... "); + // Check if logging level is at least verbose + if (SCLogger::getInstance().getLogLevel(tag) < ESP_LOG_VERBOSE) + { + return; // Skip if the log level is less than verbose + } + + // Open the file + File file = SCFileIO::getInstance().open(filePath, "r"); + if (!file || file.size() == 0) + { + spLogE(tag, "Failed to open file: %s or file is empty.", filePath); + return; + } + + // Start hex dump + Serial.printf("Hex Dump of file: %s\n", filePath); + Serial.printf("-----------------------------------------------------------------------------\n"); + + uint8_t buffer[16]; // Buffer to hold 16 bytes per line + size_t fileOffset = 0; // Tracks current offset in the file + + char hexLine[50]; // 16 bytes * 3 chars (hex) + 1 space after 8th byte + null terminator + char asciiLine[17]; // 16 bytes + null terminator + + while (file.available()) + { + size_t bytesRead = file.read(buffer, sizeof(buffer)); // Read up to 16 bytes + memset(hexLine, ' ', sizeof(hexLine)); // Initialize with spaces for alignment + memset(asciiLine, '\0', sizeof(asciiLine)); // Null-terminate ASCII buffer + + for (size_t i = 0; i < bytesRead; ++i) + { + // Append hex value to the line + // snprintf(hexLine + (i * 3) + (i >= 8 ? 1 : 0), 4, "%02X ", buffer[i]); + snprintf(hexLine + (i * 3), 4, "%02X ", buffer[i]); + + // Append ASCII representation to the line + asciiLine[i] = isprint(buffer[i]) ? buffer[i] : '.'; + } + + // Log the formatted hex dump line + Serial.printf("%08X %s |%s|\n", fileOffset, hexLine, asciiLine); + + fileOffset += bytesRead; // Increment file offset + } + + Serial.printf("-----------------------------------------------------------------------------\n"); + file.close(); +} \ No newline at end of file diff --git a/src/SCFileIO.h b/src/SCFileIO.h new file mode 100644 index 0000000..cf01899 --- /dev/null +++ b/src/SCFileIO.h @@ -0,0 +1,78 @@ +/*------------------------------------------------------------------------------------------------- +** +** SCFileIO.h +** +** A singleton class to manage file I/O operations safely using semaphores. +** Wraps LittleFS to provide thread-safe access to the file system, offering +** methods for reading, writing, and managing files on the ESP32. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-12 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ +#pragma once + +#include +#include +#include + +/* +** =================================================================== +** SCFileIO +** =================================================================== +*/ +class SCFileIO +{ +public: + // Access the singleton instance + static SCFileIO& getInstance(); + + // Initializes the semaphore. Must be called before using the class. + void initialize(); + + // Opens a file safely using LittleFS + File open(const char *path, const char *mode); + + // Writes data to a file safely + size_t write(File &file, const uint8_t *buffer, size_t size); + + // Reads data from a file safely + size_t read(File &file, uint8_t *buffer, size_t size); + + // Closes a file safely + void close(File &file); + + // Deletes a file safely + bool remove(const char *path); + + // Returns true if a file exists + bool exists(const char *path); + + // String read/write methods + String readFsString(const char *path); + void saveFsString(const char *path, String string); + void listFiles(); + void hexDump(const char* tag, const char* filePath); + + // Public semaphore for external use if needed + SemaphoreHandle_t xSemaphoreFileIO; + +private: + // Private constructor and destructor to enforce singleton pattern + SCFileIO(); + ~SCFileIO(); + + // Deleted copy constructor and assignment operator + SCFileIO(const SCFileIO&) = delete; + SCFileIO& operator=(const SCFileIO&) = delete; + + // Acquires the semaphore + bool takeSemaphore(); + + // Releases the semaphore + void giveSemaphore(); +}; \ No newline at end of file diff --git a/src/SCLogger.cpp b/src/SCLogger.cpp new file mode 100644 index 0000000..9929415 --- /dev/null +++ b/src/SCLogger.cpp @@ -0,0 +1,166 @@ +/*------------------------------------------------------------------------------------------------- +** +** SCLogger.h +** +** A singleton logging utility that wraps ESP_LOGx macros. Allows dynamic +** log level configuration per tag and provides formatted output with +** file and line references. Intended as a tactical workaround for tag-based +** log filtering issues. Created due to not being able to get log_x and ESP_LOGx +** macros to respect the tags and levels. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-03 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "SCLogger.h" +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" + +/* +** =================================================================== +** getInstance() +** Returns the singleton instance of the SCLogger class. +** =================================================================== +*/ +SCLogger& SCLogger::getInstance() { + static SCLogger instance; + return instance; +} + +/* +** =================================================================== +** setLogLevel() +** Sets the log level for a specific tag. +** =================================================================== +*/ +void SCLogger::setLogLevel(const char* tag, esp_log_level_t level) { + std::lock_guard lock(mutex); + tagLevels[tag] = level; +} + +/* +** =================================================================== +** getLogLevel() +** Gets the current log level for a specific tag. +** =================================================================== +*/ +esp_log_level_t SCLogger::getLogLevel(const char* tag) { + std::lock_guard lock(mutex); + auto it = tagLevels.find(tag); + if (it != tagLevels.end()) { + return it->second; + } + return ESP_LOG_NONE; // Default to no logging if not set +} + +/* +** =================================================================== +** Helper Method: logMessage() +** Logs a message at the specified log level if enabled. +** =================================================================== +*/ +void SCLogger::logMessage(esp_log_level_t level, const char* tag, const char* format, va_list args) +{ + // For debugging + // Serial.printf("SCLogger::logMessage called with level: %d (%d), tag: %s\n", level, getLogLevel(tag), tag); + + // Switched VERBOSE and DEBUG to really use ESP_LOGI + // so global setting can be raised to 3 and it + // will still honor SCLogger settings. + + if (level <= getLogLevel(tag)) { + char buffer[256]; // Adjust size as needed + vsnprintf(buffer, sizeof(buffer), format, args); + + // Log the message at the appropriate ESP_LOG level + // Have Verbose and Debug at I so that they will + // show if enabled and system logging is surpressed + // at that level. + switch (level) { + case ESP_LOG_VERBOSE: + ESP_LOGI(tag, "%s[V] (%s)", buffer, pcTaskGetTaskName(nullptr)); + break; + case ESP_LOG_DEBUG: + ESP_LOGI(tag, "%s[D] (%s)", buffer, pcTaskGetTaskName(nullptr)); + break; + case ESP_LOG_INFO: + ESP_LOGI(tag, "%s[I] (%s)", buffer, pcTaskGetTaskName(nullptr)); + break; + case ESP_LOG_WARN: + ESP_LOGW(tag, "***>> %s[W] (%s)", buffer, pcTaskGetTaskName(nullptr)); + break; + case ESP_LOG_ERROR: + ESP_LOGE(tag, "***>> %s[E] (%s)", buffer, pcTaskGetTaskName(nullptr)); + break; + default: + break; + } + } +} + +/* +** =================================================================== +** logVerbose() +** =================================================================== +*/ +void SCLogger::logVerbose(const char* tag, const char* format, ...) { + va_list args; + va_start(args, format); + logMessage(ESP_LOG_VERBOSE, tag, format, args); + va_end(args); +} + +/* +** =================================================================== +** logDebug() +** =================================================================== +*/ +void SCLogger::logDebug(const char* tag, const char* format, ...) { + va_list args; + va_start(args, format); + logMessage(ESP_LOG_DEBUG, tag, format, args); + va_end(args); +} + +/* +** =================================================================== +** logInfo() +** =================================================================== +*/ +void SCLogger::logInfo(const char* tag, const char* format, ...) { + va_list args; + va_start(args, format); + logMessage(ESP_LOG_INFO, tag, format, args); + va_end(args); +} + +/* +** =================================================================== +** logWarn() +** =================================================================== +*/ +void SCLogger::logWarn(const char* tag, const char* format, ...) { + va_list args; + va_start(args, format); + logMessage(ESP_LOG_WARN, tag, format, args); + va_end(args); +} + +/* +** =================================================================== +** logError() +** =================================================================== +*/ +void SCLogger::logError(const char* tag, const char* format, ...) { + va_list args; + va_start(args, format); + logMessage(ESP_LOG_ERROR, tag, format, args); + va_end(args); +} \ No newline at end of file diff --git a/src/SCLogger.h b/src/SCLogger.h new file mode 100644 index 0000000..6f165e4 --- /dev/null +++ b/src/SCLogger.h @@ -0,0 +1,106 @@ +/*------------------------------------------------------------------------------------------------- +** +** SCLogger.h +** +** A singleton logging utility that wraps ESP_LOGx macros. Allows dynamic +** log level configuration per tag and provides formatted output with +** file and line references. Intended as a tactical workaround for tag-based +** log filtering issues. Created due to not being able to get log_x and ESP_LOGx +** macros to respect the tags and levels. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-03 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include +#include +#include +#include + +/* +** =================================================================== +** SCLogger +** =================================================================== +*/ +class SCLogger { +public: + /* + ** =================================================================== + ** getInstance() + ** Returns the singleton instance of the SCLogger class. + ** =================================================================== + */ + static SCLogger& getInstance(); + + /* + ** =================================================================== + ** setLogLevel() + ** Sets the log level for a specific tag. + ** Parameters: + ** tag - The tag for which the log level is being set. + ** level - The log level to set (ESP_LOG_VERBOSE, ESP_LOG_INFO, etc.). + ** =================================================================== + */ + void setLogLevel(const char* tag, esp_log_level_t level); + + /* + ** =================================================================== + ** getLogLevel() + ** Gets the current log level for a specific tag. + ** Parameters: + ** tag - The tag for which to get the log level. + ** Returns: + ** The current log level for the specified tag. + ** =================================================================== + */ + esp_log_level_t getLogLevel(const char* tag); + + /* + ** =================================================================== + ** Logging Methods + ** Logs a message at the specified log level if the level is enabled + ** for the given tag. + ** =================================================================== + */ + void logVerbose(const char* tag, const char* format, ...); + void logDebug(const char* tag, const char* format, ...); + void logInfo(const char* tag, const char* format, ...); + void logWarn(const char* tag, const char* format, ...); + void logError(const char* tag, const char* format, ...); + +private: + SCLogger() = default; // Private constructor + SCLogger(const SCLogger&) = delete; // Prevent copy + SCLogger& operator=(const SCLogger&) = delete; // Prevent assignment + void logMessage(esp_log_level_t level, const char* tag, const char* format, va_list args); + std::map tagLevels; // Map to store log levels per tag + std::mutex mutex; // Mutex to protect the map +}; +// Define this to enable logging; comment out to disable +#define ENABLE_SCLOGGING + +// Define macros for logging +#ifdef ENABLE_SCLOGGING + +#define spLogV(tag, format, ...) SCLogger::getInstance().logVerbose(tag, format " [%s:%d]", ##__VA_ARGS__, __FILE__, __LINE__) +#define spLogD(tag, format, ...) SCLogger::getInstance().logDebug(tag, format " [%s:%d]", ##__VA_ARGS__, __FILE__, __LINE__) +#define spLogI(tag, format, ...) SCLogger::getInstance().logInfo(tag, format " [%s:%d]", ##__VA_ARGS__, __FILE__, __LINE__) +#define spLogW(tag, format, ...) SCLogger::getInstance().logWarn(tag, format " [%s:%d]", ##__VA_ARGS__, __FILE__, __LINE__) +#define spLogE(tag, format, ...) SCLogger::getInstance().logError(tag, format " [%s:%d]", ##__VA_ARGS__, __FILE__, __LINE__) + +#else // If logging is disabled + +#define spLogV(tag, ...) (void)0 +#define spLogD(tag, ...) (void)0 +#define spLogI(tag, ...) (void)0 +#define spLogW(tag, ...) (void)0 +#define spLogE(tag, ...) (void)0 + +#endif // ENABLE_SCLOGGING \ No newline at end of file diff --git a/src/SpotifyArtMgr.cpp b/src/SpotifyArtMgr.cpp new file mode 100644 index 0000000..4c24c21 --- /dev/null +++ b/src/SpotifyArtMgr.cpp @@ -0,0 +1,899 @@ +/*------------------------------------------------------------------------------------------------- +** +** SpotifyArtMgr.cpp +** +** Handles downloading and caching of Spotify album art. Ensures reliable +** display by managing secure certificate validation and efficient image +** caching with LRU eviction. Designed as a Singleton for global access. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-11 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "SpotifyArtMgr.h" +#include "SCLogger.h" +#include "logTags.h" +#include "Monitor.h" +#include "SCFileIO.h" +#include + +/* +** =================================================================== +** Certificates for Secure Spotify Image Downloads +** +** DigiCert Global Root G2 Certificate: +** Source: https://www.digicert.com/kb/digicert-root-certificates.htm +** +** GlobalSign Root R2 Certificate: +** Source: https://www.globalsign.com/en/repository +** Command to convert the downloaded CRT file to PEM format: +** zsh> openssl x509 -inform DER -in Root-R3.crt -out GlobalSignRoot.pem +** +** Context: +** Spotify's image server (i.scdn.co) occasionally returns certificates +** signed by either the DigiCert Global Root G2 or the GlobalSign Root R2 +** certificate authorities. Previously, the system was configured to trust +** only the DigiCert Global Root G2 certificate. When the server returned +** a GlobalSign certificate, the connection would fail due to an +** unrecognized CA. +** +** Purpose: +** This implementation includes both the DigiCert Global Root G2 and +** GlobalSign Root R2 certificates to ensure compatibility with the +** Spotify image server, regardless of which CA is used for signing. The +** certificates are programmatically combined and passed to WiFiClientSecure +** for validation. +** +** Notes: +** - The certificates were last pulled and verified on 1/12/2025. +** - If future errors arise, verify both certificates for validity and +** ensure they are updated as needed. +** - Use `WiFiClientSecure::setCACert()` to set the combined certificates +** for secure HTTPS connections. +** +** Maintenance: +** 1. Regularly check the above URLs for updated root certificates. +** 2. Use the OpenSSL command provided above to convert new certificates +** to PEM format. +** 3. Update this code with any new certificates and adjust their +** combination logic if necessary. +** +** SPDX-License-Identifier: MIT +** =================================================================== +*/ +const char* gCombinedCerts = R"EOF( +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH +MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI +2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx +1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ +q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz +tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ +vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV +5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY +1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 +NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG +Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 +8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe +pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- +)EOF"; + +// Initialize the singleton instance +SpotifyArtMgr* SpotifyArtMgr::gInstance = nullptr; + +const char* gCacheFileroot = "/cache_index_v5"; +// const size_t gJSONDocSize = 16384; //8192; + +/* +** =================================================================== +** Constructor +** Initializes the SpotifyArtMgr object. +** =================================================================== +*/ +SpotifyArtMgr::SpotifyArtMgr() +{ + // Initialize anything as needed (currently empty) +} + +/* +** =================================================================== +** getInstance() +** Returns the singleton instance of the SpotifyArtMgr class. +** =================================================================== +*/ +SpotifyArtMgr* SpotifyArtMgr::getInstance() +{ + + if (gInstance == nullptr) + { + gInstance = new SpotifyArtMgr(); + // populate the index to last run + String filePath = String(gCacheFileroot) + ".txt"; + SCFileIO::getInstance().hexDump(LOGTAG_CACHE, filePath.c_str()); + Monitor::start(MONITOR_ID_SPOTIFY_IMAGE_CACHE_LOAD, LOGTAG_CACHE, "loadCacheIndex()"); + gInstance->loadCacheIndex(); + Monitor::stop(MONITOR_ID_SPOTIFY_IMAGE_CACHE_LOAD); + } + return gInstance; +} + + + +/* +** =================================================================== +** getLocalFileName() +** Retrieves the local file name for a given URL. Checks an internal +** cache to see if the URL is already known. If found, returns the +** cached file name; otherwise returns a fallback image name. +** +** Parameters: +** url - The URL whose corresponding file name should be looked up. +** +** Returns: +** String containing the cached file name if available, or a fallback +** image file name if not found in the cache. +** =================================================================== +*/ + +String SpotifyArtMgr::getLocalFileName(const String& url) +{ + spLogD(LOGTAG_CACHE, "getLocalFileName() for URL: %s", url.c_str()); + + // ------------------------------------------------------------------- + // If a download is pending, delay in small increments until either + // it clears or 3 seconds have elapsed. + // ------------------------------------------------------------------- + if (_isDownloadPending) + { + // const int totalWaitMs = 3000; + // const int stepMs = 100; + // int waitedMs = 0; + + // while (_isDownloadPending && waitedMs < totalWaitMs) + // { + // vTaskDelay(pdMS_TO_TICKS(stepMs)); + // waitedMs += stepMs; + // } + } + + auto it = _urlToFileMap.find(url); + if (it != _urlToFileMap.end()) + { + // The iterator points to an entry in _cacheList; access the actual value + String fileName = it->second; // Dereference the iterator to get the cached URL + spLogD(LOGTAG_CACHE, "Returning cached file name: %s", fileName.c_str()); + return fileName; // Return the cached file name + } + + spLogD(LOGTAG_CACHE, "URL not found in cache. Returning fallback image: %s", SP_NO_COVER_JPG_FILENAME); + return SP_NO_COVER_JPG_FILENAME; // Return fallback image +} + +/* +** =================================================================== +** acquireAlbumArt() +** Retrieves album art for the specified URL. Checks whether the URL +** is already cached; if so, moves it to the front of the cache and +** returns the existing file name. Otherwise, downloads the file, +** adds it to the cache, and evicts the oldest entry if necessary. +** +** Parameters: +** url - The URL of the album art to retrieve. +** +** Returns: +** A String representing the local file name of the album art, or +** a fallback file name (SP_NO_COVER_JPG_FILENAME) if the download +** fails. +** =================================================================== +*/ + +String SpotifyArtMgr::acquireAlbumArt(const String& url) +{ + spLogD(LOGTAG_CACHE, "acquireAlbumArt() for URL: %s", url.c_str()); + + _stats.totalFetches++; + + auto it = _urlToFileMap.find(url); + + // If the URL is already cached, move it to the front of the cache list + bool isCacheHit = false; + if (it != _urlToFileMap.end()) + { + isCacheHit = true; + _cacheList.remove(url); // Remove from current position + _cacheList.push_front(url); // Move to the front + _isDirty = true; // Write the updated cache index + _stats.cacheHits++; + _stats.currentHitStreak++; + spLogD(LOGTAG_CACHE, "Cache hit. Moved URL to the front: %s", url.c_str()); + } + _stats.averageHitRate = (_stats.totalFetches > 0) ? ((static_cast(_stats.cacheHits) / _stats.totalFetches) * 100.0) : 0; + if (_stats.currentHitStreak > _stats.longestHitStreak) + { + _stats.longestHitStreak = _stats.currentHitStreak; + } + + if (isCacheHit) + { + return it->second; // Return the cached file name associated with the URL + } + + _stats.currentHitStreak = 0; + + // Generate local file name and download + String localFileName = generateLocalFileName(); + + if (!downloadFile(url, localFileName)) + { + spLogE(LOGTAG_GENERAL, "Failed to download album art for URL: %s", url.c_str()); + return SP_NO_COVER_JPG_FILENAME; // Return fallback image + } + + // Add the URL and local file name to the cache + if (_cacheList.size() >= _maxCacheSize) + { + evictOldestFile(); // Evict if necessary + } + + _cacheList.push_front(url); + _urlToFileMap[url] = localFileName; + _isDirty = true; + + spLogD(LOGTAG_CACHE, "Returning downloaded file name: %s", localFileName.c_str()); + return localFileName; +} + +/* +** =================================================================== +** setMaxCacheSize() +** Sets the maximum size of the cache. +** +** Parameters: +** maxSize - The maximum number of cached items +** =================================================================== +*/ +void SpotifyArtMgr::setMaxCacheSize(size_t maxSize) +{ + _maxCacheSize = maxSize; +} + +/* +** =================================================================== +** generateLocalFileName() +** Generates a local file name for storing album art. If the cache +** is full, it reuses the file name from the oldest cached entry. +** Otherwise, it creates a new file name based on an internal counter. +** +** Parameters: +** None. +** +** Returns: +** A String containing the reused or newly generated local file name. +** =================================================================== +*/ +String SpotifyArtMgr::generateLocalFileName() +{ + char buffer[32]; + + // Check if the cache is full + if (_cacheList.size() >= _maxCacheSize) + { + // Use the file name of the oldest (to be evicted) item in the list + String oldestUrl = _cacheList.back(); // Back because LRU is the least recently used + auto it = _urlToFileMap.find(oldestUrl); + if (it != _urlToFileMap.end()) + { + String fileName = it->second; + spLogD(LOGTAG_CACHE, "Reusing file name of oldest cache entry: %s", fileName.c_str()); + return fileName; // Return the file name associated with the oldest URL + } + } + + // If the cache is not full, generate a new file name + snprintf(buffer, sizeof(buffer), "/sc_album_art_%03zu.dat", _nextFileId++); + spLogD(LOGTAG_CACHE, "Generated new file name: %s", buffer); + return String(buffer); +} + + +/* +** =================================================================== +** evictOldestFile() +** Removes the least recently used (LRU) entry from the cache. This +** involves popping the oldest URL from the back of the cache list +** and removing its corresponding file entry from the map. +** +** Parameters: +** None. +** +** Returns: +** None. +** =================================================================== +*/ +void SpotifyArtMgr::evictOldestFile() +{ + if (_cacheList.empty()) + { + spLogW(LOGTAG_CACHE, "Eviction attempted but cache list is empty."); + return; + } + + // Get the oldest URL (back of the list) + String oldestUrl = _cacheList.back(); + _cacheList.pop_back(); // Remove from the back of the list + + // Find and remove the URL in the map + auto it = _urlToFileMap.find(oldestUrl); + if (it != _urlToFileMap.end()) + { + spLogD(LOGTAG_CACHE, "Evicting URL: %s associated with file: %s", + oldestUrl.c_str(), it->second.c_str()); + _urlToFileMap.erase(it); // Remove from the map + } + else + { + spLogW(LOGTAG_CACHE, "Attempted to evict a URL not found in _urlToFileMap."); + } +} + +/* +** =================================================================== +** downloadFile() +** Downloads a file from the given URL and saves it locally. +** +** Parameters: +** url - The URL of the file to download +** filename - The local file name to save the file as +** +** Returns: +** True if the file was successfully downloaded, false otherwise. +** =================================================================== +*/ +bool SpotifyArtMgr::downloadFile(String url, String filename) +{ + _isDownloadPending = true; + + // Placeholder for actual implementation + spLogD(LOGTAG_GENERAL, "Downloading file: %s -> %s", url.c_str(), filename.c_str()); + + // Was MAX_RETRIES = 2; however, retries seemed to fail + // plus current code will try to refetch art anyway + // during next refresh cycle + constexpr int MAX_RETRIES = 0; + constexpr int RETRY_DELAY_MS = 500; + int retryCount = 0; + + spLogI(LOGTAG_SONG_DATA, "Downloading %s and saving as %s", url.c_str(), filename.c_str()); + + while (retryCount <= MAX_RETRIES) { + spLogD(LOGTAG_SONG_DATA, "Attempt %d of %d", retryCount + 1, MAX_RETRIES + 1); + spLogD(LOGTAG_SONG_DATA, "Free heap before request: %d", Monitor::getFreeHeap()); + + HTTPClient http; + WiFiClientSecure wifiClient; + + spLogV(LOGTAG_SONG_DATA, "[HTTP] begin..."); + wifiClient.setCACert(gCombinedCerts); //(spotify_image_server_cert); + //http.setTimeout(10000); // 5 seconds is the default + http.begin(wifiClient, url); + //http.setReuse(false); + + spLogV(LOGTAG_SONG_DATA, "[HTTP] GET..."); + Monitor::start(MONITOR_ID_SPOTIFY_IMAGE_HTTP_GET, LOGTAG_METRICS, "int httpCode = http.GET();"); + int httpCode = http.GET(); + Monitor::stop(MONITOR_ID_SPOTIFY_IMAGE_HTTP_GET); + spLogD(LOGTAG_SONG_DATA, "Free heap before request: %d", Monitor::getFreeHeap()); + + if (httpCode == HTTP_CODE_OK) { + spLogV(LOGTAG_SONG_DATA, "[HTTP] GET succeeded with code: %d", httpCode); + Monitor::start(MONITOR_ID_SPOTIFY_IMAGE_FILE_SAVE, LOGTAG_METRICS, "saveFileFromHTTPResponse(filename, &http);"); + + // Wrap call that is going to use the file system + spLogD(LOGTAG_MULTITASK,"Taking xSemaphoreFileIO."); + if (xSemaphoreTake(SCFileIO::getInstance().xSemaphoreFileIO, portMAX_DELAY)) + { + saveFileFromHTTPResponse(filename, &http); + _isDirty = true; + xSemaphoreGive(SCFileIO::getInstance().xSemaphoreFileIO); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take xSemaphoreFileIO."); + } + Monitor::stop(MONITOR_ID_SPOTIFY_IMAGE_FILE_SAVE); + http.end(); + wifiClient.stop(); + return true; // Exit on success + } else { + spLogE(LOGTAG_SONG_DATA, "[HTTP] GET failed. Code: %d, Error: %s", httpCode, http.errorToString(httpCode).c_str()); + } + + http.end(); + wifiClient.stop(); + + retryCount++; + if (retryCount <= MAX_RETRIES) { + spLogD(LOGTAG_SONG_DATA, "Retrying after %d ms...", RETRY_DELAY_MS); + delay(RETRY_DELAY_MS); + } + } + + spLogE(LOGTAG_SONG_DATA, "Download failed after %d attempts. _isCoverArtAvailable = %", MAX_RETRIES + 1); + + _isDownloadPending = false; + + return false; +} + +/* +** =================================================================== +** saveFileFromHTTPResponse() +** Helper method that saves the file. Put in own method to allow +** for retry logic. +** +** NOTE: This method is not thread safe and needs to be called +** called by something that wraps the call. +** =================================================================== +*/ +void SpotifyArtMgr::saveFileFromHTTPResponse(String filename, HTTPClient *pHttp ) +{ + fs::File f = LittleFS.open(filename, "w+"); + if (!f) + { + spLogE(LOGTAG_SONG_DATA, "file open failed in SpotifyPlayer::downloadFile"); + return; + } + + // get lenght of document (is -1 when Server sends no Content-Length + // header) + int total = pHttp->getSize(); + int len = total; + + // create buffer for read + uint8_t buff[128] = {0}; + + // get tcp stream + WiFiClient *stream = pHttp->getStreamPtr(); + + // read all data from server + while (pHttp->connected() && (len > 0 || len == -1)) + { + // get available data size + size_t size = stream->available(); + + if (size) + { + // read up to 128 byte + int c = stream->readBytes(buff, ((size > sizeof(buff)) ? sizeof(buff) : size)); + + // write it to Serial + f.write(buff, c); + + if (len > 0) + { + len -= c; + } + } + delay(1); + } + spLogI(LOGTAG_SONG_DATA, "\n[HTTP] connection closed or file end.\n"); + + f.close(); + +} + +/* +** =================================================================== +** isCacheDirty() +** Answers whether the cache index file has been changed +** since the last save. Value can be used to assist with UI indicators. +** =================================================================== +*/ +bool SpotifyArtMgr::isCacheDirty() +{ + return _isDirty; +} + +/* +** =================================================================== +** getStats() +** Retrieves a copy of the current SpotifyArtMgr statistics. +** +** Returns: +** ArtMgrStats - A struct containing various statistics related to +** album art fetches, cache hits, and hit streaks. +** +** Notes: +** - This method returns a copy of the statistics, ensuring the +** original data remains unchanged. +** - The returned struct includes total fetches, cache hit count, +** current and longest hit streaks, and the average hit rate. +** +** Example Usage: +** ArtMgrStats stats = SpotifyArtMgr::getInstance().getStats(); +** spLogI(LOGTAG_GENERAL, "Cache Hits: %u", stats.cacheHits); +** =================================================================== +*/ +ArtMgrStats SpotifyArtMgr::getStats() +{ + ArtMgrStats answerStats; + + answerStats.totalFetches = _stats.totalFetches; + answerStats.cacheHits = _stats.cacheHits; + answerStats.currentHitStreak = _stats.currentHitStreak; + answerStats.longestHitStreak = _stats.longestHitStreak; + answerStats.averageHitRate = _stats.averageHitRate; + + return answerStats; +} + +/* +** =================================================================== +** saveCacheIndex() +** Saves the current cache state to a file in a simple text format. +** This includes the mapping of URLs to file names and the order of +** cached items for proper eviction handling. +** +** Format: +** Each line of the file contains a URL and its associated local +** file name, separated by a '|'. The final line contains a checksum +** in the format "CHECKSUM:". +** +** Notes: +** - The cache state is saved to the file "/cache_index.txt". +** - This method calculates a checksum of the serialized cache +** data to validate file integrity during loading. +** - A temporary file "/cache_index.tmp" is used to ensure atomic +** updates, and the original file is replaced only if the +** operation succeeds. +** +** Integrity: +** - The checksum is written as the last line of the file. +** - Any changes to the file format should account for checksum +** validation logic. +** +** Preconditions: +** - The `_urlToFileMap` and `_cacheList` structures must be in sync. +** - The `SCFileIO` singleton handles thread-safe file operations. +** +** =================================================================== +*/ +void SpotifyArtMgr::saveCacheIndex() +{ + spLogV(LOGTAG_CACHE, "Saving cache index to a simple text format with checksum."); + + if (!_isDirty) + { + spLogV(LOGTAG_CACHE, "No changes to save. Returning."); + return; + } + + Monitor::start(MONITOR_ID_SPOTIFY_IMAGE_CACHE_SAVE, LOGTAG_CACHE, "saveCacheIndex()"); + + String tempFilePath = String(gCacheFileroot) + ".tmp"; + String finalFilePath = String(gCacheFileroot) + ".txt"; + + // Write to a temporary file + File tempFile = SCFileIO::getInstance().open(tempFilePath.c_str(), "w+"); + if (!tempFile) + { + spLogE(LOGTAG_CACHE, "Failed to open temporary file for cache index."); + Monitor::stop(MONITOR_ID_SPOTIFY_IMAGE_CACHE_SAVE); + return; + } + + String serializedData; + + // Write cache entries and construct serialized data for checksum calculation + for (const auto& entry : _urlToFileMap) + { + serializedData += entry.first + "|" + entry.second + "\n"; + tempFile.printf("%s|%s\n", entry.first.c_str(), entry.second.c_str()); + } + + // Calculate checksum + uint32_t checksum = calculateChecksum(serializedData.c_str(), serializedData.length()); + + // Write checksum as the last line + tempFile.printf("CHECKSUM:%u\n", checksum); + tempFile.close(); + spLogI(LOGTAG_CACHE, "Temporary cache index saved successfully."); + + // Rename the temporary file to the final file + if (SCFileIO::getInstance().exists(finalFilePath.c_str())) + { + SCFileIO::getInstance().remove(finalFilePath.c_str()); + } + + if (LittleFS.rename(tempFilePath, finalFilePath)) + { + _isDirty = false; + spLogI(LOGTAG_CACHE, "Cache index successfully updated."); + } + else + { + spLogE(LOGTAG_CACHE, "Failed to rename temporary file to final file."); + } + + Monitor::stop(MONITOR_ID_SPOTIFY_IMAGE_CACHE_SAVE); + + printCacheIndex(LOGTAG_CACHE); + //SCFileIO::getInstance().listFiles(); +} + +/* +** =================================================================== +** loadCacheIndex() +** Loads the cache state from a previously saved file in a simple +** text format. This method restores the mapping of URLs to file +** names and the order of cached items. +** +** Format: +** Each line of the file contains a URL and its associated local +** file name, separated by a '|'. The final line contains a checksum +** in the format "CHECKSUM:". +** +** Validation: +** - The checksum stored in the file is compared with a calculated +** checksum of the serialized data to ensure integrity. +** - If the checksum validation fails, the file is removed, and the +** cache state is reset. +** +** Notes: +** - The cache state is read from the file "/cache_index.txt". +** - If the file is missing, empty, or invalid, the cache is started fresh. +** - This method clears and repopulates `_urlToFileMap` and `_cacheList`. +** +** Preconditions: +** - The `SCFileIO` singleton handles thread-safe file operations. +** +** Error Handling: +** - Logs warnings for invalid or missing entries in the file. +** - Removes the cache file if checksum validation fails or +** deserialization encounters an error. +** +** =================================================================== +*/ +void SpotifyArtMgr::loadCacheIndex() +{ + spLogI(LOGTAG_CACHE, "Loading cache index from a simple text file with checksum."); + + String finalFilePath = String(gCacheFileroot) + ".txt"; + + if (!SCFileIO::getInstance().exists(finalFilePath.c_str())) + { + spLogW(LOGTAG_CACHE, "Cache index file not found. Starting fresh."); + return; + } + + File file = SCFileIO::getInstance().open(finalFilePath.c_str(), "r"); + if (!file || file.size() == 0) + { + spLogE(LOGTAG_CACHE, "Cache index file is empty or inaccessible. Removing it and starting fresh."); + SCFileIO::getInstance().remove(finalFilePath.c_str()); + return; + } + + String serializedData; + uint32_t storedChecksum = 0; + uint32_t maxFileId = 0; // Track the highest file ID + + _cacheList.clear(); + _urlToFileMap.clear(); + + // Read file line by line + while (file.available()) + { + String line = file.readStringUntil('\n'); + line.trim(); + + // Check for checksum line + if (line.startsWith("CHECKSUM:")) + { + storedChecksum = line.substring(9).toInt(); // Extract checksum value + continue; + } + + // Parse URL and file name + int separatorIndex = line.indexOf('|'); + if (separatorIndex != -1) + { + String url = line.substring(0, separatorIndex); + String localFile = line.substring(separatorIndex + 1); + _urlToFileMap[url] = localFile; + _cacheList.push_back(url); + + // Extract numeric part of file name (e.g., "003" from "/sc_album_art_003") + int startIdx = localFile.lastIndexOf('_') + 1; + int endIdx = localFile.lastIndexOf('.'); + + // Log the start and end indexes before any logic + spLogD(LOGTAG_CACHE, "Parsing file name: %s", localFile.c_str()); + spLogD(LOGTAG_CACHE, "Initial startIdx: %d, endIdx: %d (before adjustments)", startIdx, endIdx); + + // Check if there's a period after the underscore + if (localFile.lastIndexOf('.') > startIdx) { + endIdx = localFile.lastIndexOf('.'); + spLogD(LOGTAG_CACHE, "Adjusted endIdx to: %d (period found after underscore)", endIdx); + } + + // Log indexes before the substring operation + spLogD(LOGTAG_CACHE, "Final startIdx: %d, endIdx: %d", startIdx, endIdx); + + if (startIdx > 0 && endIdx > startIdx) + { + String fileIdStr = localFile.substring(startIdx, endIdx); + uint32_t fileId = fileIdStr.toInt(); + + // Update maxFileId + if (fileId > maxFileId) + { + maxFileId = fileId; + } + + spLogD(LOGTAG_CACHE, "Parsed file ID: %u from localFile: %s", fileId, localFile.c_str()); + } + + serializedData += line + "\n"; // Accumulate serialized data + } + } + file.close(); + + // Validate checksum + uint32_t calculatedChecksum = calculateChecksum(serializedData.c_str(), serializedData.length()); + if (storedChecksum != calculatedChecksum) + { + spLogE(LOGTAG_CACHE, "Checksum mismatch! Stored: %u, Calculated: %u", storedChecksum, calculatedChecksum); + SCFileIO::getInstance().remove(finalFilePath.c_str()); + return; + } + + // Update _nextFileId + _nextFileId = maxFileId + 1; + spLogI(LOGTAG_CACHE, "Next file ID set to: %u", _nextFileId); + + spLogI(LOGTAG_CACHE, "Checksum validation passed. Cache index loaded successfully."); + + printCacheIndex(LOGTAG_CACHE); +} + +/* +** =================================================================== +** printCacheIndex() +** Logs the current cache state in a formatted and readable format. +** The log includes: +** - List of URLs and their associated file names in the LRU order. +** - The calculated checksum for the cache state. +** +** Parameters: +** tag - The logging tag to identify the context of the log. +** +** Format: +** Cache: +** "URL1": "FileName1" +** "URL2": "FileName2" +** ... +** Checksum: +** +** Example Output: +** Cache: +** "https://i.scdn.co/image/ab67616d00001e02203e4c6a048df02a21cdd813": "/sc_album_art_002" +** "https://i.scdn.co/image/ab67616d00001e02ccdddd46119a4ff53eaf1f5d": "/sc_album_art_003" +** "https://i.scdn.co/image/ab67616d00001e02e85259a1cae29a8d91f2093d": "/sc_album_art_001" +** Checksum: 61 +** +** Notes: +** - The checksum is recalculated for the current cache state to +** ensure data integrity and consistency. +** +** =================================================================== +*/ +void SpotifyArtMgr::printCacheIndex(const char* tag) +{ + spLogD(tag, "------------------------------------------------------------------------------------------"); + spLogI(tag, "Cache:"); + + // If the cache is empty, indicate that + if (_cacheList.empty()) + { + spLogI(tag, " [Cache is empty]"); + return; + } + + // Prepare a string to calculate the checksum + String serializedData; + + // Print and serialize the cache data + for (const auto& url : _cacheList) + { + auto it = _urlToFileMap.find(url); + if (it != _urlToFileMap.end()) + { + spLogI(tag, " \"%s\": \"%s\"", url.c_str(), it->second.c_str()); + serializedData += url + ":" + it->second + "\n"; + } + else + { + spLogW(tag, " \"%s\": [No associated file found]", url.c_str()); + } + } + + // Calculate and print the checksum + // uint32_t checksum = calculateChecksum(serializedData.c_str(), serializedData.length()); + // spLogI(tag, "Checksum: %u", checksum); + spLogD(tag, "------------------------------------------------------------------------------------------"); + + String filePath = String(gCacheFileroot) + ".txt"; + SCFileIO::getInstance().hexDump(LOGTAG_CACHE, filePath.c_str()); +} + +/* +** =================================================================== +** calculateChecksum() +** Calculates a simple XOR-based checksum for a given data buffer. +** +** Parameters: +** data - Pointer to the data buffer to calculate the checksum for +** length - The length of the data buffer +** +** Returns: +** The calculated checksum as a 32-bit unsigned integer. +** +** Notes: +** - This checksum is based on a simple XOR operation, where each +** byte in the data buffer is XORed with the checksum value. +** - This method is lightweight and suitable for basic integrity +** checks, but it is not cryptographically secure. +** - Ensure that the checksum field itself is excluded from the data +** buffer being validated to avoid circular dependency issues. +** +** Example Usage: +** const char* data = "example data"; +** size_t length = strlen(data); +** uint32_t checksum = calculateChecksum(data, length); +** +** =================================================================== +*/ +uint32_t SpotifyArtMgr::calculateChecksum(const char* data, size_t length) +{ + uint32_t checksum = 0; + for (size_t i = 0; i < length; ++i) + { + checksum ^= data[i]; + } + return checksum; +} \ No newline at end of file diff --git a/src/SpotifyArtMgr.h b/src/SpotifyArtMgr.h new file mode 100644 index 0000000..f2cbe0a --- /dev/null +++ b/src/SpotifyArtMgr.h @@ -0,0 +1,116 @@ +/*------------------------------------------------------------------------------------------------- +** +** SpotifyArtMgr.h +** +** Handles downloading and caching of Spotify album art. Ensures reliable +** display by managing secure certificate validation and efficient image +** caching with LRU eviction. Designed as a Singleton for global access. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-11 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include +#include +#include +#include +#include + +#define SP_NO_COVER_JPG_FILENAME "/NoArtAvailablejpeg.jpg" + +/* +** =================================================================== +** ArtMgrStats +** +** A struct to encapsulate statistics related to album art fetching +** and cache performance. +** +** Fields: +** totalFetches - The total number of album art fetch attempts +** cacheHits - The number of successful cache hits +** currentHitStreak - The current streak of consecutive cache hits +** longestHitStreak - The longest recorded streak of cache hits +** averageHitRate - The average cache hit rate over time +** +** Notes: +** - This struct is used to track the effectiveness of caching +** and provide insights into network requests vs. local cache use. +** - `cacheHits` should always be ≤ `totalFetches`. +** - The hit streak fields help identify caching efficiency trends. +** +** Example Usage: +** ArtMgrStats stats = SpotifyArtMgr::getInstance().getStats(); +** spLogI(LOGTAG_GENERAL, "Cache Hit Rate: %lld%%", stats.averageHitRate); +** +** =================================================================== +*/ +struct ArtMgrStats +{ + long long totalFetches = 0; + long long cacheHits = 0; + long long currentHitStreak = 0; + long long longestHitStreak = 0; + long long averageHitRate = 0; +}; + +/* +** =================================================================== +** SpotifyArtMgr +** +** Singleton class to manage downloading and caching of album art. +** Maintains a mapping of URLs to local file names. The cache has a +** configurable maximum size and follows a FIFO replacement policy +** when full. +** =================================================================== +*/ +class SpotifyArtMgr +{ +public: + static SpotifyArtMgr* getInstance(); + + void setMaxCacheSize(size_t maxSize); + void saveCacheIndex(); + bool isCacheDirty(); + + ArtMgrStats getStats(); + + String acquireAlbumArt(const String& url); + String getLocalFileName(const String& url); + +private: + // Constructor (private for Singleton pattern) + SpotifyArtMgr(); + + // Private methods + void loadCacheIndex(); + bool downloadFile(String url, String filename); + String generateLocalFileName(); + void evictOldestFile(); + void saveFileFromHTTPResponse(String filename, HTTPClient *pHttp ); + void printCacheIndex(const char* tag); + uint32_t calculateChecksum(const char* data, size_t length); + + // Singleton instance + static SpotifyArtMgr* gInstance; + + // Cache configuration + size_t _maxCacheSize = 60; // Default maximum cache size + + SemaphoreHandle_t xSemaphoreArtFetchCompleted = xSemaphoreCreateMutex();; + bool _isDownloadPending = false; + + // Data structures for caching + std::list _cacheList; // Maintain LRU order + std::map _urlToFileMap; // Map URLs to list iterators + size_t _nextFileId = 1; // Counter for generating file names + bool _isDirty = false; // Indicate whether there is something new to save + ArtMgrStats _stats; + bool _isHitStreakInProgress = false; +}; \ No newline at end of file diff --git a/src/SpotifyCertWrapper.cpp b/src/SpotifyCertWrapper.cpp new file mode 100644 index 0000000..292cbf8 --- /dev/null +++ b/src/SpotifyCertWrapper.cpp @@ -0,0 +1,53 @@ +/* +** =================================================================== +** SpotifyCertWrapper.cpp +** +** Purpose: +** This file is created to resolve multiple definition errors +** arising from the inclusion of `SpotifyArduinoCert.h` in +** multiple source files. The header file defines symbols +** (`spotify_server_cert` and `spotify_image_server_cert`) +** directly, which leads to multiple definitions at the linking +** stage when the header is included in more than one source file. +** +** Resolution: +** To avoid this issue, this wrapper file includes +** `SpotifyArduinoCert.h` in a single compilation unit. This +** ensures that the symbols are defined exactly once in the +** compiled output. +** +** Usage: +** - Include this file in the build system as part of the +** project compilation. +** - In other source files that need access to these symbols, +** use `extern` declarations instead of including +** `SpotifyArduinoCert.h` directly. +** +** Example: +** Instead of including `SpotifyArduinoCert.h`: +** #include "SpotifyArduinoCert.h" +** +** Use the following `extern` declarations: +** extern const char *spotify_server_cert; +** extern const char *spotify_image_server_cert; +** +** Rationale: +** By limiting the inclusion of `SpotifyArduinoCert.h` to this +** file, the project adheres to the "One Definition Rule" (ODR), +** a key principle in C++ that ensures symbols are defined +** exactly once. +** +** Notes: +** Failure to follow these guidelines will reintroduce the +** multiple definition errors during the linking stage. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-11 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "SpotifyArduinoCert.h" \ No newline at end of file diff --git a/src/SpotifyPlayer.cpp b/src/SpotifyPlayer.cpp new file mode 100644 index 0000000..e781e36 --- /dev/null +++ b/src/SpotifyPlayer.cpp @@ -0,0 +1,843 @@ +/*------------------------------------------------------------------------------------------------- +** +** SpotifyPlayer.cpp +** +** Instances of this class control Spotify once it has started. +** This includes UI interactions. Due to dependencies used by +** this class it should be treated as a Singleton. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-28 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include +#include +#include +#include "esp_task_wdt.h" +#include "SpotifyPlayer.h" +#include "logTags.h" +#include "SCLogger.h" +#include "ThingPulse/spotify.h" +#include "Monitor.h" +#include "SpotifyArtMgr.h" +#include "SCFileIO.h" + +#include // Ensure you include the required decoder library + +// HTTP client setup remains as is in your project + +int SpotifyPlayer::getAlbumReleaseYear() +{ + // // if (!_pCurrentTrack->albumUri || strlen(_pCurrentTrack->albumUri) == 0) + // if (_currentlyPlayingMetadata.albumUri == nullptr) + // { + // spLogE(LOGTAG_PLAYER, "Album URI is empty."); + // return -1; // Indicate error + // } + + // // Extract album ID from albumUri (typically of the form spotify:album:) + // String albumId = String(_currentlyPlayingMetadata.albumUri).substring(14); // Skip "spotify:album:" + + // String url = "https://api.spotify.com/v1/albums/" + albumId + "?market=US"; + + // HTTPClient http; + // WiFiClientSecure wifiClient; + // //wifiClient.setInsecure(); // TODO: Remove... just debugging... + // wifiClient.setCACert(spotify_server_cert); // Ensure proper certificate + + // http.begin(wifiClient, url); + // http.addHeader("Authorization", "Bearer " + _spotifyRefreshToken); // Use your Spotify token + + // int httpCode = http.GET(); + // if (httpCode != 200) + // { + // spLogE(LOGTAG_PLAYER, "Failed to get album details, HTTP code: %d", httpCode); + // http.end(); + // return -1; + // } + + // // Parse JSON response + // String payload = http.getString(); + // http.end(); + + // DynamicJsonDocument doc(1024); + // deserializeJson(doc, payload); + + // // Get release_date (e.g., "2020-05-01") + // const char* releaseDate = doc["release_date"]; + // if (releaseDate && strlen(releaseDate) >= 4) + // { + // String year = String(releaseDate).substring(0, 4); + // return year.toInt(); + // } + + // // spLogE(LOGTAG_PLAYER, "Release date not found in album details."); + return -1; // Indicate error +} + +// Spotify related +#define SP_SPOTIFY_MARKET "IE" +#define SP_COVER_JPG_FILENAME "/cover.jpg" +// #define SP_NO_COVER_JPG_FILENAME "/NoArtAvailablejpeg.jpg" + +/* +** =================================================================== +** Callback routine for spotify.getCurrentlyPlaying() method. +** =================================================================== +*/ +void SpotifyPlayer::getCurrentlyPlayingCallback(CurrentlyPlaying currentlyPlaying) +{ + spLogD(LOGTAG_PLAYER, "getCurrentlyPlayingCallback - callback routine for spotify.getCurrentlyPlaying() method."); + SpotifyPlayer::getInstance().refreshCurrentSong(currentlyPlaying); +} + +/* +** =================================================================== +** Constructor and Destructor +** =================================================================== +*/ +SpotifyPlayer::SpotifyPlayer() +{ + // Initialization code (if needed) +} + +SpotifyPlayer::~SpotifyPlayer() +{ +} + +/* +** =================================================================== +** getInstance() +** =================================================================== +*/ +SpotifyPlayer& SpotifyPlayer::getInstance() +{ + static SpotifyPlayer instance; // Guaranteed to be thread-safe in C++11 and later + return instance; +} + +/* +** =================================================================== +** initialize() +** =================================================================== +*/ + +void SpotifyPlayer::initialize(QueueHandle_t *pScuiQueue) +{ + // _pUI = pUI; + _pScuiQueue = pScuiQueue; + initSpotify(); +} + +/* +** =================================================================== +** startBackgroundRefreshes() +** =================================================================== +*/ + +void SpotifyPlayer::startBackgroundRefreshes() +{ + + // The ESP32 is a dual-core processor with two Xtensa LX6 cores: + // + // - **Core 0 (PRO CPU)** → Handles system tasks (Wi-Fi, Bluetooth, FreeRTOS) + // - **Core 1 (APP CPU)** → Runs the Arduino framework (`setup()` and `loop()`) + // + // By default, all Arduino code executes on **Core 1**. + + // Create task to refresh song information + spLogI(LOGTAG_MULTITASK, "creating background task - pinned to core 1"); + + // Note: Core 0 had stability issues despite best attempts + // to address. Moved UI loop which doesn't block the way + // that the song refresh logic does to run on Core 0. + xTaskCreatePinnedToCore( + SpotifyPlayer::refreshCurrentSongTask, // Task function + "SongRefresh", // Task name + 8192, // Stack size + NULL, // Task parameter + 1, // Task priority + &_refreshTaskHandle, // Task handle + 1 // Core ID + ); + + spLogI(LOGTAG_MULTITASK, "background task created"); + +} + +/* +** =================================================================== +** verifyRefreshToken() +** +** Returns true if previously saved token found; false otherwise. +** =================================================================== +*/ +bool SpotifyPlayer::verifyRefreshToken() +{ + _spotifyRefreshToken = SCFileIO::getInstance().readFsString(SPOTIFY_REFRESH_TOKEN_FILE_NAME); + if (_spotifyRefreshToken == "") + { + spLogI(LOGTAG_PLAYER, "No Spotify refresh token found. Requesting one through the browser via auth code."); + + String spotifyAuthCode = fetchSpotifyAuthCode(); + _spotifyRefreshToken = spotify.requestAccessTokens(spotifyAuthCode.c_str(), SPOTIFY_REDIRECT_URI); + SCFileIO::getInstance().saveFsString(SPOTIFY_REFRESH_TOKEN_FILE_NAME, _spotifyRefreshToken); + + return false; + + } + else + { + spLogI(LOGTAG_PLAYER, "Using previously saved Spotify refresh token."); + return true; + } +} + +/* +** =================================================================== +** getNodeName() +** =================================================================== +*/ +String SpotifyPlayer::getNodeName() +{ + return SPOTIFY_ESPOTIFIER_NODE_NAME; +} + +/* +** =================================================================== +** login() +** =================================================================== +*/ +void SpotifyPlayer::login() +{ + // The Spotify library + // - keeps track of the refresh token and its TTL internally + // - automatically renews the actual access token using the refresh token + // -> see SpotifyArduino.h#autoTokenRefresh and SpotifyArduino::checkAndRefreshAccessToken() (called before every API function) + spotify.setRefreshToken(_spotifyRefreshToken.c_str()); + spotify.refreshAccessToken(); + spLogI(LOGTAG_PLAYER, "Authentication against Spotify done. Refresh token: %s", _spotifyRefreshToken.c_str()); +} + +/* +** =================================================================== +** postScuiMessage() +** +** Sends a message to the SCUI queue with a specified type, +** string data, and an integer value. The integer is appended +** to the message data. +** +** Parameters: +** type - The type of SCUI message. +** str - The string data to send. +** num - The integer value to append to the message. +** +** Returns: +** None +** =================================================================== +*/ +void SpotifyPlayer::postScuiMessage(SCUIMessageType type, const String& str, int num) +{ + if (_pScuiQueue != NULL) + { + SCUIMessage msg; + msg.type = type; + msg.str = str; + msg.num = num; + + Monitor::start(MONITOR_ID_SCUI_QUEUE_DELAY, LOGTAG_MULTITASK, "postScuiMessage()"); + if (xQueueSend(*_pScuiQueue, &msg, pdMS_TO_TICKS(10)) != pdPASS) + { + spLogE(LOGTAG_PLAYER, "Failed to send SCUI message to queue"); + } + } +} + +/* +** =================================================================== +** nextSong() +** =================================================================== +*/ +void SpotifyPlayer::nextSong() +{ + // Code to skip to the next song using Spotify's API + // Example: Sending an API request or invoking a method in the client + spLogI(LOGTAG_PLAYER, "Skipping to the next song."); + + // _pUI->drawStatusBox(TFTColor::SC_NetworkInProgress); // Making call + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "Making Call", + static_cast(TFTColor::SC_NetworkInProgress)); + if (xSemaphoreTake(_xSemaphoreNetwork, portMAX_DELAY)) + { + if (spotify.nextTrack()) + { + //_pUI->drawStatusBox(TFTColor::SC_NetworkSuccess); + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "", + static_cast(TFTColor::SC_NetworkSuccess)); + spLogD(LOGTAG_PLAYER, "next track call succesful"); + } + else + { + // _pUI->drawStatusBox(TFTColor::SC_NetworkFailure); + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "", + static_cast(TFTColor::SC_NetworkFailure)); + spLogD(LOGTAG_PLAYER, "next track call failed"); // + } + xSemaphoreGive(_xSemaphoreNetwork); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take _xSemaphoreNetwork."); + } + +} + +/* +** =================================================================== +** previousSong() +** =================================================================== +*/ +void SpotifyPlayer::previousSong() +{ + // Code to go back to the previous song using Spotify's API + // Example: Sending an API request or invoking a method in the client + spLogI(LOGTAG_PLAYER, "Going back to the previous song."); + + // _pUI->drawStatusBox(TFTColor::SC_NetworkInProgress); // Making call + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "Making Call", + static_cast(TFTColor::SC_NetworkInProgress)); + + if (xSemaphoreTake(_xSemaphoreNetwork, portMAX_DELAY)) + { + if (spotify.previousTrack()) + { + // _pUI->drawStatusBox(TFTColor::SC_NetworkSuccess); + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "", + static_cast(TFTColor::SC_NetworkSuccess)); + spLogD(LOGTAG_PLAYER, "previous track call succesful"); + } + else + { + // _pUI->drawStatusBox(TFTColor::SC_NetworkFailure); + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "", + static_cast(TFTColor::SC_NetworkFailure)); + spLogD(LOGTAG_PLAYER, "previous track call failed"); + } + xSemaphoreGive(_xSemaphoreNetwork); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take _xSemaphoreNetwork."); + } + + +} + +/* +** =================================================================== +** pauseSong() +** =================================================================== +*/ +void SpotifyPlayer::pauseSong() +{ + // Code to pause playback using Spotify's API + // Example: Sending an API request or invoking a method in the client + spLogI(LOGTAG_PLAYER, "Pausing the current song."); + + if (xSemaphoreTake(_xSemaphoreNetwork, portMAX_DELAY)) + { + if (_isPlaying) + { + //_pUI->setBackground(TFTColor::Pink); + // _pUI->drawStatusBox(TFTColor::SC_NetworkInProgress); // Making call + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "Making Call", + static_cast(TFTColor::SC_NetworkInProgress)); + if (spotify.pause()) + { + // _pUI->drawStatusBox(TFTColor::SC_NetworkSuccess); + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "", + static_cast(TFTColor::SC_NetworkSuccess)); + spLogD(LOGTAG_PLAYER, "pause track call succesful"); + } + else + { + // _pUI->drawStatusBox(TFTColor::SC_NetworkFailure); + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "", + static_cast(TFTColor::SC_NetworkFailure)); + spLogD(LOGTAG_PLAYER, "pause track call failed"); // + } + } + else + { + // _pUI->drawStatusBox(TFTColor::SC_NetworkInProgress); // Making call + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "Making Call", + static_cast(TFTColor::SC_NetworkInProgress)); + if (spotify.play()) + { + // _pUI->drawStatusBox(TFTColor::SC_NetworkSuccess); + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "", + static_cast(TFTColor::SC_NetworkSuccess)); + spLogD(LOGTAG_PLAYER, "pause track call succesful"); + } + else + { + // _pUI->drawStatusBox(TFTColor::SC_NetworkFailure); + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "", + static_cast(TFTColor::SC_NetworkFailure)); + spLogD(LOGTAG_PLAYER, "pause track call failed"); // + } + } + xSemaphoreGive(_xSemaphoreNetwork); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take _xSemaphoreNetwork."); + } +} + +/* +** =================================================================== +** refreshCurrentTrack() +** =================================================================== +*/ + +void SpotifyPlayer::refreshCurrentTrack() +{ + spLogD(LOGTAG_MULTITASK, "Free Heap: "); + spLogD(LOGTAG_MULTITASK, "%d", ESP.getFreeHeap()); + + // _pUI->drawStatusBox(TFTColor::SC_NetworkInProgress); // Making call + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "Making Call", + static_cast(TFTColor::SC_NetworkInProgress)); + + spLogI(LOGTAG_MULTITASK, "getting currently playing song:"); + // Market can be excluded if you want e.g. spotify.getCurrentlyPlaying() + int status = -777; + + if (xSemaphoreTake(_xSemaphoreNetwork, portMAX_DELAY)) + { + spLogI(LOGTAG_MULTITASK, "Invoking spotify.getCurrentlyPlaying(...)"); + // vTaskDelay(pdMS_TO_TICKS(200)); + Monitor::start(MONITOR_ID_SPOTIFY_GET_CURRENTLY_PLAYING, LOGTAG_METRICS, "spotify.getCurrentlyPlaying(...)"); + status = spotify.getCurrentlyPlaying(SpotifyPlayer::getCurrentlyPlayingCallback, SP_SPOTIFY_MARKET); + Monitor::stop(MONITOR_ID_SPOTIFY_GET_CURRENTLY_PLAYING); + xSemaphoreGive(_xSemaphoreNetwork); + } + else + { + spLogI(LOGTAG_MULTITASK,"Unable to take _xSemaphoreNetwork."); + } + + + if (status == 200) + { + spLogI(LOGTAG_MULTITASK, "Successfully refreshed current song."); + // _pUI->drawStatusBox(TFTColor::SC_NetworkSuccess); // Successful + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "Successful", + static_cast(TFTColor::SC_NetworkSuccess)); + } + else if (status == 204) + { + spLogI(LOGTAG_MULTITASK, "Doesn't seem to be anything playing"); + // _pUI->drawStatusBox(TFTColor::SC_AlertStatus); // Nothing playing + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "Nothing playing", + static_cast(TFTColor::SC_AlertStatus)); + + } + else if (status == -777) + { + spLogI(LOGTAG_MULTITASK, "No, really, unable to get semaphore. status still -777"); + // _pUI->drawStatusBox(TFTColor::SC_AlertStatus); // Unable to get semaphore + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "Unable to get semaphore", + static_cast(TFTColor::SC_AlertStatus)); + } + else + { + spLogE(LOGTAG_MULTITASK, "Error: "); + spLogE(LOGTAG_MULTITASK, "Status: %d", status); + // _pUI->drawStatusBox(TFTColor::SC_NetworkFailure); // Failure + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "Failure", + static_cast(TFTColor::SC_NetworkFailure)); + } + + refreshCoverArt(); + + if (_isNewTrack) + { + // Track is loaded and copied. + // At least one pass made at downloading the art. + _isNewTrackReady = true; + } + + postScuiMessage(SCUIMessageType::UM_PLAYER_REFRESH, + "Refresh", + _isNewTrackReady); + + // spLogI(LOGTAG_GENERAL,"trying to get release year..."); + // int releaseYear = getAlbumReleaseYear(); + // if (releaseYear > 0) + // { + // spLogI(LOGTAG_GENERAL,"Release Year: %d", releaseYear); + // } + // else + // { + // spLogE(LOGTAG_GENERAL,"Failed to retrieve release year."); + // } +} + +/* +** =================================================================== +** refreshCoverArt() +** +** This method handles refreshing the cover art for the currently +** playing track. It checks if a new track is detected or if cover +** art is unavailable and downloads the appropriate album art. If +** the download is successful, it updates the background color to +** match the average color of the album art. It also ensures the +** UI is marked dirty to trigger a repaint. +** +** Parameters: +** None +** +** Returns: +** None +** +** Notes: +** - The method determines if the currently playing track has +** changed by comparing track URIs. +** - If cover art is downloaded successfully, the background +** color is updated based on the average color of the image. +** - UI is marked dirty whenever the cover art is refreshed. +** +** =================================================================== +*/ + +void SpotifyPlayer::refreshCoverArt() +{ + bool bNewTrack = false; + + if (_currentTrackUri != _currentlyPlayingMetadata.trackUri) + { + spLogI(LOGTAG_GENERAL, "New song detected: %s", _currentlyPlayingMetadata.trackName); + bNewTrack = true; + _isCoverArtAvailable = false; + _currentTrackUri = _currentlyPlayingMetadata.trackUri; + } + + // if new track, download and draw it + spLogD(LOGTAG_GENERAL, "if (bNewTrack || !_isCoverArtAvailable)... bNewTrack=%d, _isCoverArtAvailable=%d", (int)bNewTrack, (int)_isCoverArtAvailable); + if (bNewTrack + || !_isCoverArtAvailable) + { + const int TARGET_IMAGE_SIZE = 300; + String filePath; + + for (int i = 0; i < _currentlyPlayingMetadata.numImages; i++) + { + if ((_currentlyPlayingMetadata.albumImages[i].height == TARGET_IMAGE_SIZE) + && (_currentlyPlayingMetadata.albumImages[i].width == TARGET_IMAGE_SIZE)) + { + spLogV(LOGTAG_GENERAL, "*** Attempting image download ***"); + + postScuiMessage(SCUIMessageType::UM_DOWNLOAD_BOX,"",false); + Monitor::start(MONITOR_ID_FETCH_ALBUM_ART, LOGTAG_METRICS, "Download Art If Needed."); + filePath = SpotifyArtMgr::getInstance()->acquireAlbumArt(_currentlyPlayingMetadata.albumImages[i].url); + Monitor::stop(MONITOR_ID_FETCH_ALBUM_ART); + postScuiMessage(SCUIMessageType::UM_DOWNLOAD_BOX,"",true); + + // Check if the acquired file is valid + if (filePath != SP_NO_COVER_JPG_FILENAME + && !filePath.isEmpty()) + { + _isCoverArtAvailable = true; + spLogV(LOGTAG_GENERAL, "*** Cover art is available: %s ***", filePath.c_str()); + } + else + { + _isCoverArtAvailable = false; + spLogW(LOGTAG_GENERAL, "*** Cover art is unavailable ***"); + } + + spLogV(LOGTAG_GENERAL, "*** downloadFile() finished executing ***"); + break; + } + } + if (_isCoverArtAvailable) + { + + // TFTColor c = _pUI->calculateAverageColor(filePath.c_str()); + // _pUI->setBackground(c, false); + } + else + { + spLogI(LOGTAG_MULTITASK, "*** %dx%d image not found to download. ***",TARGET_IMAGE_SIZE,TARGET_IMAGE_SIZE); + } + + // request updated UI + // _pUI->markUIDirty(true); + postScuiMessage(SCUIMessageType::UM_MARK_DIRTY, + "", + true); + + } + +} + +/* +** =================================================================== +** refreshCurrentSong() +** +** This is the callback for what is playing from the Spotify API. +** =================================================================== +*/ +void SpotifyPlayer::refreshCurrentSong(CurrentlyPlaying currentlyPlaying) +{ + // Use the details in this method or if you want to store them + // make sure you copy them (using something like strncpy) + // const char* artist = + spLogI(LOGTAG_MULTITASK, "Refreshing current song. SpotifyPlayer::refreshCurrentSong(CurrentlyPlaying currentlyPlaying)"); + + if (xSemaphoreTake(_xSemaphoreDataCopy, portMAX_DELAY)) + { + // copy currentlyPlaying over for use + if (currentlyPlaying.trackUri == nullptr) + { + spLogV(LOGTAG_GENERAL, "currentlyPlaying.trackUri == nullptr. skipping new track ready logic."); + } + else + { + if (strcmp(currentlyPlaying.trackUri, _currentlyPlayingMetadata.trackUri) != 0) + { + // New track has just been loaded + _isNewTrack = true; + spLogV(LOGTAG_GENERAL, "New Track!!! _isNewTrack = true"); + } + else + { + _isNewTrack = false; + } + } + _currentlyPlayingMetadata.copyFrom(currentlyPlaying); + xSemaphoreGive(_xSemaphoreDataCopy); + } + else + { + spLogI(LOGTAG_MULTITASK, "Unable to take _xSemaphoreDataCopy."); + } + + _isPlaying = currentlyPlaying.isPlaying; + + if (currentlyPlaying.trackName == nullptr) + { + spLogI(LOGTAG_MULTITASK, "refreshCurrentSong() - Empty track detected"); + _isMusicAvailable = false; + // _pUI->markUIDirty(true); + // force a refresh to get the waiting message + postScuiMessage(SCUIMessageType::UM_MARK_DIRTY, + "", + true); + return; + } + else + { + // spLogI(LOGTAG_GENERAL, " _isMusicAvailable = true; currentlyPlaying.trackName ='%s' with length = %u", currentlyPlaying.trackName, strlen(currentlyPlaying.trackName) ); + _isMusicAvailable = true; + printCurrentlyPlayingToSerial(currentlyPlaying); + } + +} + +/* +** =================================================================== +** isMusicAvailable() +** Answer whether music is currently available to display. +** =================================================================== +*/ +bool SpotifyPlayer::isMusicAvailable() +{ + return _isMusicAvailable; +} + +/* +** =================================================================== +** printCurrentlyPlayingToSerial() +** Prints the currently playing track details to serial output. +** =================================================================== +*/ +void SpotifyPlayer::printCurrentlyPlayingToSerial(CurrentlyPlaying currentlyPlaying) +{ + + spLogI(LOGTAG_SONG_DATA, "--------- Currently Playing ---------"); + + spLogI(LOGTAG_SONG_DATA, "Track: %s", currentlyPlaying.trackName); + spLogV(LOGTAG_SONG_DATA, ""); + + spLogV(LOGTAG_SONG_DATA, "Artists: "); + for (int i = 0; i < currentlyPlaying.numArtists; i++) + { + spLogV(LOGTAG_SONG_DATA, " Name: %s", currentlyPlaying.artists[i].artistName); + spLogV(LOGTAG_SONG_DATA, ""); + } + + spLogV(LOGTAG_SONG_DATA, "Album: %s", currentlyPlaying.albumName); + spLogV(LOGTAG_SONG_DATA, ""); + + spLogI(LOGTAG_SONG_DATA, "------------------------"); + +} + +/* +** =================================================================== +** getCurrentlyPlayingMetadata() +** Returns a stable copy of the currently playing metadata. +** This method ensures that the returned data does not change +** unexpectedly while in use. It will have the side effect +** of reseting isNewTrackReady() to false. +** +** Returns: +** A reference to the stable DTO copy of PlayingMetadata. +** =================================================================== +*/ +const PlayingMetadata &SpotifyPlayer::getCurrentlyPlayingMetadata() +{ + copyMetadataToDTO(); + return _currentlyPlayingMetadataDTO; +} + +/* +** =================================================================== +** copyMetadataToDTO() +** Copies the currently playing metadata into a stable DTO. +** This method ensures thread safety by using a semaphore +** to prevent data races. +** +** Locks: +** - _xSemaphoreDataCopy: Ensures safe access to shared data. +** +** Behavior: +** - If the semaphore is available, it performs a deep copy. +** - If the semaphore is not available, logs an informational message. +** =================================================================== +*/ +void SpotifyPlayer::copyMetadataToDTO() +{ + if (xSemaphoreTake(_xSemaphoreDataCopy, portMAX_DELAY)) + { + // copy currentlyPlaying over for use + _currentlyPlayingMetadataDTO.copyFrom(_currentlyPlayingMetadata); + _isNewTrackReady = false; + xSemaphoreGive(_xSemaphoreDataCopy); + } + else + { + spLogI(LOGTAG_MULTITASK, "Unable to take _xSemaphoreDataCopy."); + } + +} + +/* +** =================================================================== +** isNewTrackReady() +** Answers whether a new track has become ready and +** getCurrentlyPlayingMetadata() should be called to populdate +** the DTO. +** +** =================================================================== +*/ +const bool SpotifyPlayer::isNewTrackReady() +{ + return _isNewTrackReady; +} + +void SpotifyPlayer::saveCache() +{ + + SpotifyArtMgr *pSAM = SpotifyArtMgr::getInstance(); + + if (pSAM->isCacheDirty()) + { + // _pUI->drawStatusBox(TFTColor::SC_CacheSave); + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "", + static_cast(TFTColor::SC_CacheSave)); + // vTaskDelay(pdMS_TO_TICKS(200)); // 200 ms delay.. give time to see + pSAM->saveCacheIndex(); // persist the updated file index + // _pUI->drawStatusBox(_pUI->getBackground()); + } + + // clear status. this assumes that this is the last + // update which slightly breaks encapsulation and + // is also brittle; however, not sure there is a cleaner + // approach that isn't worse. + postScuiMessage(SCUIMessageType::UM_STATUS_BOX, + "", + -1); // -1 will use background color + +} + +/* +** =================================================================== +** refreshCurrentSongTask() +** Background task responsible for periodically refreshing the +** currently playing song information from Spotify. The task +** includes a blocking HTTP call to fetch data and resets the +** Task Watchdog Timer to prevent timeout. +** +** Parameters: +** pvParameters - Pointer to task parameters (not used in this task). +** +** Notes: +** - Executes in an infinite loop with a specified delay between +** iterations to avoid overloading the system. +** - Calls the refreshCurrentTrack() method of SpotifyPlayer to +** perform the actual data retrieval. +** - Resets the Task Watchdog Timer on each iteration. +** =================================================================== +*/ + +void SpotifyPlayer::refreshCurrentSongTask(void *pvParameters) +{ + spLogI(LOGTAG_MULTITASK, "background task executing. about to enter loop."); + // TODO: work this out better so it just simply starts when ready + vTaskDelay(pdMS_TO_TICKS(2000)); // 2000 ms delay to get started and wait for everything to process + while (true) { + spLogI(LOGTAG_MULTITASK, "refreshCurrentSongTask is running"); + + // Feed the Task Watchdog to avoid timeout + esp_task_wdt_reset(); + + // Perform the task (blocking HTTP call) + SpotifyPlayer::getInstance().refreshCurrentTrack(); + + // Give the UI time to refresh since might be marked dirty + // Also give time for other tasks to do work. + vTaskDelay(pdMS_TO_TICKS(1500)); + + SpotifyPlayer::getInstance().saveCache(); + + // Allow other tasks to execute + vTaskDelay(pdMS_TO_TICKS(500)); + } +} \ No newline at end of file diff --git a/src/SpotifyPlayer.h b/src/SpotifyPlayer.h new file mode 100644 index 0000000..4c53bd4 --- /dev/null +++ b/src/SpotifyPlayer.h @@ -0,0 +1,87 @@ +/*------------------------------------------------------------------------------------------------- +** +** SpotifyPlayer.cpp +** +** Instances of this class control Spotify once it has started. +** This includes UI interactions. Due to dependencies used by +** this class it should be treated as a Singleton. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-28 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ +#pragma once + +#include +#include "DisplayUI.h" +#include "PlayingMetadata.h" +#include "scui.h" + +class SpotifyPlayer { +public: + // Public method to access the singleton instance + static SpotifyPlayer& getInstance(); + + // initialization related + void initialize(QueueHandle_t *pScuiQueue); + bool verifyRefreshToken(); + String getNodeName(); + void login(); + void startBackgroundRefreshes(); + + + // controls + void nextSong(); + void previousSong(); + void pauseSong(); + + // status + bool isMusicAvailable(); + + // Call this to get the stable DTO copy + const PlayingMetadata &getCurrentlyPlayingMetadata(); + + const bool isNewTrackReady(); + +private: + // Member variables + String _spotifyRefreshToken = ""; + // DisplayUI *_pUI; + QueueHandle_t *_pScuiQueue; + String _currentTrackUri = ""; // Tracks the currently playing song + bool _isPlaying = false; + bool _isCoverArtAvailable = false; + bool _isMusicAvailable = false; + bool _isNewTrackReady = false; + bool _isNewTrack = false; + PlayingMetadata _currentlyPlayingMetadata; // Frequently updated instance + PlayingMetadata _currentlyPlayingMetadataDTO; // Stable DTO instance + SemaphoreHandle_t _xSemaphoreNetwork = xSemaphoreCreateMutex(); + SemaphoreHandle_t _xSemaphoreDataCopy = xSemaphoreCreateMutex(); + TaskHandle_t _refreshTaskHandle; + + // Methods + + // Private constructor and destructor + SpotifyPlayer(); + ~SpotifyPlayer(); + + static void getCurrentlyPlayingCallback(CurrentlyPlaying currentlyPlaying); + static void refreshCurrentSongTask(void *pvParameters); + + void copyMetadataToDTO(); + void printCurrentlyPlayingToSerial(CurrentlyPlaying currentlyPlaying); + void refreshCurrentTrack(); + void refreshCurrentSong(CurrentlyPlaying currentlyPlaying); // Call back + void refreshCoverArt(); + + void postScuiMessage(SCUIMessageType type, const String& str, int num); + + void saveCache(); + int getAlbumReleaseYear(); + +}; diff --git a/src/ThingPulse/connectivity.cpp b/src/ThingPulse/connectivity.cpp new file mode 100644 index 0000000..7fa11b9 --- /dev/null +++ b/src/ThingPulse/connectivity.cpp @@ -0,0 +1,52 @@ +/*------------------------------------------------------------------------------------------------- +** +** connectivity.cpp +** +** Provides connectivity routines for initializing Wi-Fi with encrypted +** credentials. Ensures safe access to network parameters and reports +** connection status for the ESP32 Spotify Remote. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-26 - Electric Diversions - Copied and renamed to tpConnectivity.h from connectivity.h +** 2024-12-27 - Electric Diversions - Reintroduced connectivity.cpp from separated header. +** 2025-05-04 - Electric Diversions - Moved to ThingPulse folder. +** ------------------------------------------------------------------------------------------------ +*/ + +#include + +#include "connectivity.h" +#include "../settings.h" +#include "ThingPulse/util.h" + +/* +** =================================================================== +** WiFi settings +** =================================================================== +*/ +const char *SSIDEnc = "SSID Goes Here"; +const char *WIFI_PWD_Enc = "WiFi Password Goes Here"; + + +// Updated to use encrypted network credentials +void startWiFi() { + static const char k[] = "42"; + char decryptedSSID[50]; + char decryptedWIFI_PWD[50]; + simpleDecrypt(SSIDEnc, k, decryptedSSID); + simpleDecrypt(WIFI_PWD_Enc, k , decryptedWIFI_PWD); + WiFi.begin(decryptedSSID, decryptedWIFI_PWD); + log_i("Connecting to WiFi '%s'...", decryptedSSID); + while (WiFi.status() != WL_CONNECTED) { + //log_i("."); + Serial.print("."); + delay(200); + } + log_i(""); + log_i("...done. IP: %s, WiFi RSSI: %d.", WiFi.localIP().toString().c_str(), WiFi.RSSI()); +} + diff --git a/src/ThingPulse/connectivity.h b/src/ThingPulse/connectivity.h new file mode 100644 index 0000000..7c72290 --- /dev/null +++ b/src/ThingPulse/connectivity.h @@ -0,0 +1,24 @@ +/*------------------------------------------------------------------------------------------------- +** +** connectivity.h +** +** Provides connectivity routines for initializing Wi-Fi with encrypted +** credentials. Ensures safe access to network parameters and reports +** connection status for the ESP32 Spotify Remote. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-26 - Electric Diversions - Copied and renamed to tpConnectivity.h from connectivity.h +** 2024-12-27 - Electric Diversions - Reintroduced connectivity.cpp from separated header. +** 2025-05-04 - Electric Diversions - Moved to ThingPulse folder. +** ------------------------------------------------------------------------------------------------ +*/ + + +#pragma once + +// Start the WiFi +void startWiFi(); \ No newline at end of file diff --git a/src/display.h b/src/ThingPulse/display.h similarity index 64% rename from src/display.h rename to src/ThingPulse/display.h index 06802d2..87a7d06 100644 --- a/src/display.h +++ b/src/ThingPulse/display.h @@ -1,9 +1,24 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT +/*------------------------------------------------------------------------------------------------- +** +** display.h +** +** Display routines provided by the original ThingPulse project. +** Includes TFT and touch screen initialization, backlight control, +** and display diagnostics for the ESP32 Spotify Remote. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-26 - Electric Diversions - Copied and renamed to tpDisplay.h from display.h +** 2025-05-04 - Electric Diversions - Renamed back to display.h and moved to ThingPulse folder +** ------------------------------------------------------------------------------------------------ +*/ #pragma once -#include +#include "FT6236TouchController/FT6236.h" #include #include "settings.h" @@ -12,8 +27,14 @@ // Calling tft.getSetup(user) populates it with the settings setup_t user; +// declare function prototype uint8_t readRegister8(uint8_t reg); +/* +** =================================================================== +** initTft - Initialize the TFT display +** =================================================================== +*/ void initTft(TFT_eSPI *tft) { tft->init(); tft->setRotation(TFT_ROTATION); @@ -34,7 +55,13 @@ void initTft(TFT_eSPI *tft) { tft->fillScreen(TFT_BLACK); } +/* +** =================================================================== +** initTouchScreen - Initialize the touch screen +** =================================================================== +*/ void initTouchScreen(FT6236 *ts) { + log_i("***** Entered... initTouchScreen()"); if (ts->begin(TOUCH_SENSITIVITY, TOUCH_SDA, TOUCH_SCL)) { log_i("Capacitive touch started."); } else { @@ -43,6 +70,11 @@ void initTouchScreen(FT6236 *ts) { ts->setRotation(TOUCH_ROTATION); } +/* +** =================================================================== +** logDisplayDebugInfo - dump what we know about the TFT display +** =================================================================== +*/ void logDisplayDebugInfo(TFT_eSPI *tft) { tft->getSetup(user); @@ -77,6 +109,11 @@ void logDisplayDebugInfo(TFT_eSPI *tft) { log_i("Sensitivity: %d (threshold)", readRegister8(FT6236_REG_THRESHHOLD)); } +/* +** =================================================================== +** readRegister8 - +** =================================================================== +*/ uint8_t readRegister8(uint8_t reg) { uint8_t x; diff --git a/src/spotify.h b/src/ThingPulse/spotify.h similarity index 51% rename from src/spotify.h rename to src/ThingPulse/spotify.h index 648ee04..e9a123c 100644 --- a/src/spotify.h +++ b/src/ThingPulse/spotify.h @@ -1,12 +1,27 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT +/*------------------------------------------------------------------------------------------------- +** +** spotify.h +** +** Utility routines from ThingPulse for Spotify integration. This includes +** OAuth authentication, certificate setup, and serving a local web +** interface to acquire an auth code via redirect URI. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-27 - Electric Diversions - Copied and renamed to tpSpotify.h from spotify.h +** 2025-05-04 - Electric Diversions - Renamed back to spotify.h and moved to ThingPulse folder +** ------------------------------------------------------------------------------------------------ +*/ #pragma once #include #include #include -#include +// #include #include #include #include @@ -14,8 +29,39 @@ #include "settings.h" +extern const char *spotify_server_cert; +extern const char *spotify_image_server_cert; + +/* +** =================================================================== +** Spotify Settings +** =================================================================== +*/ +const char *SPOTIFY_CLIENT_ID = "SPOTIFY_CLIENT_ID goes here"; +const char *SPOTIFY_CLIENT_SECRET = "SPOTIFY_CLIENT_SECRET goes here"; +// Use http://.local/callback/ as the redirect URI for the app on Spotify. +// Hence, the default URI is http://tp-spotify.local/callback/. +// If you change the value here, you need to modify the redirect URI on Spotify as well. +#define SPOTIFY_ESPOTIFIER_NODE_NAME "tp-spotify" + +// the spotify-api-arduino library sets this to 1 (i.e. enabled) by default +#define SPOTIFY_DEBUG 0 +//#define SPOTIFY_DEBUG 1 + +// 1/2/2025: +#define SPOTIFY_SERIAL_OUTPUT 0 +// 1/2/2025: +#define SPOTIFY_PRINT_JSON_PARSE 0 + +#define SPOTIFY_REFRESH_TOKEN_FILE_NAME "/refresh-token.txt" +// the '/callback/' path is essential as spotify.h#fetchSpotifyAuthCode() registers a handler for it +#define SPOTIFY_REDIRECT_URI "http%3A%2F%2F" SPOTIFY_ESPOTIFIER_NODE_NAME ".local%2Fcallback%2F" + + String authCode = ""; -String scope = "user-read-playback-state%20user-modify-playback-state"; +//String scope = "user-read-playback-state%20user-modify-playback-state"; +String scope = "user-read-playback-state%20user-modify-playback-state%20user-library-read"; +//user-read-playback-state and user-library-read scopes WebServer server(80); WiFiClientSecure client; SpotifyArduino spotify(client, SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET); @@ -37,11 +83,14 @@ const char *webpageTemplate = )"; -void initSpotifiy() { + +void initSpotify() { + log_i("*** Entering initSpotify() !!!!"); client.setCACert(spotify_server_cert); } void handleCallback() { + log_i("###### handleCallback()."); String code = ""; for (uint8_t i = 0; i < server.args(); i++) { if (server.argName(i) == "code") { @@ -57,10 +106,12 @@ void handleCallback() { } void handleFavicon() { + log_i("*** Entering handleFavicon()"); server.send(200, "image/vnd.microsoft.icon", "00000100"); } void handleNotFound() { + log_i("*** Entering handleNotFound()"); String message = "File Not Found\n\n"; message += "URI: "; message += server.uri(); @@ -78,18 +129,28 @@ void handleNotFound() { server.send(404, "text/plain", message); } +void printRootWebpage() { + char webpage[800]; + sprintf(webpage, webpageTemplate, SPOTIFY_CLIENT_ID, SPOTIFY_REDIRECT_URI, scope.c_str()); + log_i("webpage: '%s",webpage); +} + void handleRoot() { + log_i("*** Entering handleRoot()"); char webpage[800]; sprintf(webpage, webpageTemplate, SPOTIFY_CLIENT_ID, SPOTIFY_REDIRECT_URI, scope.c_str()); server.send(200, "text/html", webpage); } String fetchSpotifyAuthCode() { + log_i("*** Entering fetchSpotifyAuthCode()"); if (MDNS.begin(SPOTIFY_ESPOTIFIER_NODE_NAME)) { log_i("MDNS responder started for node name '%s'.", SPOTIFY_ESPOTIFIER_NODE_NAME); log_i("Open browser at http://%s.local", SPOTIFY_ESPOTIFIER_NODE_NAME); } + //printRootWebpage(); + server.on("/", handleRoot); server.on("/callback/", handleCallback); server.on("/favicon.ico", handleFavicon); @@ -98,6 +159,7 @@ String fetchSpotifyAuthCode() { log_i("HTTP server started"); while (authCode == "") { + //log_i("--- calling server.handleClient()."); server.handleClient(); yield(); } diff --git a/src/ThingPulse/util.cpp b/src/ThingPulse/util.cpp new file mode 100644 index 0000000..35d8914 --- /dev/null +++ b/src/ThingPulse/util.cpp @@ -0,0 +1,185 @@ +/*------------------------------------------------------------------------------------------------- +** +** util.cpp +** +** Utility routines from ThingPulse. Includes time synchronization, logging, +** timezone handling, memory diagnostics, and general-purpose helpers for +** the ESP32 Spotify Remote. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-26 - Electric Diversions - Copied and renamed to tpUtil.h from util.h +** 2024-12-27 - Electric Diversions - Added source file and split out function declarations +** 2025-05-04 - Electric Diversions - Renamed back to util and moved to ThingPulse folder +** ------------------------------------------------------------------------------------------------ +*/ + +#include // Brings in ESP32 logging and standard C library includes + +#include "util.h" +#include "time.h" +#include "settings.h" + +// Buffer to hold timestamp +char timestampBuffer[26]; + +/* +** =================================================================== +** getCurrentTimestamp() - Answer the current timestamp as a String +** =================================================================== +*/ +String getCurrentTimestamp(const char* format) { + struct tm timeinfo; + if (!getLocalTime(&timeinfo)) { + log_e("Failed to obtain time."); + return ""; + } + strftime(timestampBuffer, sizeof(timestampBuffer), format, &timeinfo); + return String(timestampBuffer); +} + +/* +** =================================================================== +** initTime() - initialize time from pool.ntp.org +** =================================================================== +*/ +boolean initTime() { + struct tm timeinfo; + + log_i("Synchronizing time."); + // Connect to NTP server with 0 TZ offset, call setTimezone() later + configTime(0, 0, "pool.ntp.org"); + // getLocalTime() uses a default timeout of 5s -> the loop takes at most 3*5s to + for (int i = 0; i < 3; i++) { + if (getLocalTime(&timeinfo)) { + log_i("UTC time: %s.", getCurrentTimestamp(SYSTEM_TIMESTAMP_FORMAT).c_str()); + return true; + } + } + + log_e("Failed to obtain time."); + return false; +} + +/* +** =================================================================== +** logBanner() - log the app and version in the log as info entries +** =================================================================== +*/ +void logBanner() { + log_i("=============================================="); + log_i("* Spotify Companion v%s *", VERSION); + log_i("* settings.h compile time: %s", COMPILE_TIME); + log_i("=============================================="); +} + +/* +** =================================================================== +** logMemoryStats() - log memory stats as info entries +** =================================================================== +*/ +void logMemoryStats() { + log_i("Total heap: %d", ESP.getHeapSize()); + log_i("Free heap: %d", ESP.getFreeHeap()); + log_i("Total PSRAM: %d", ESP.getPsramSize()); + log_i("Free PSRAM: %d", ESP.getFreePsram()); +} + +/* +** =================================================================== +** setTimezone() - set timezone +** =================================================================== +*/ +void setTimezone(const char* timezone) { + log_i("Setting timezone to '%s'.", timezone); + // Clock settings are adjusted to show the new local time + setenv("TZ", timezone, 1); + tzset(); +} + +/* +** =================================================================== +** setTimezone() - Answer days from epoch +** Algorithm: http://howardhinnant.github.io/date_algorithms.html +** =================================================================== +*/ +int days_from_epoch(int y, int m, int d) { + y -= m <= 2; + int era = y / 400; + int yoe = y - era * 400; // [0, 399] + int doy = (153 * (m + (m > 2 ? -3 : 9)) + 2) / 5 + d - 1; // [0, 365] + int doe = yoe * 365 + yoe / 4 - yoe / 100 + doy; // [0, 146096] + return era * 146097 + doe - 719468; +} + +/* +** =================================================================== +** mkgmtime() - Not sure... +** https://stackoverflow.com/a/58037981/131929 +** aka timegm() but that's already defined in the Weather Station +** lib but not accessible +** =================================================================== +*/ + +time_t mkgmtime(struct tm const *t) { + int year = t->tm_year + 1900; + int month = t->tm_mon; // 0-11 + if (month > 11) { + year += month / 12; + month %= 12; + } else if (month < 0) { + int years_diff = (11 - month) / 12; + year -= years_diff; + month += 12 * years_diff; + } + int days_since_epoch = days_from_epoch(year, month + 1, t->tm_mday); + + return 60 * (60 * (24L * days_since_epoch + t->tm_hour) + t->tm_min) + t->tm_sec; +} + +// ================== Electric Diversions added functons =========================== + +/* +** =================================================================== +** simpleDecrypt - Performs a simple decryption of provided string +** and key. +** +** Replace logic with decryption routing of choice. By default, +** this will just return back the same value that was passed +** in unmodified. +** +** =================================================================== +*/ + +void simpleDecrypt(const char *hex, const char *key, char *output) { + (void)key; // Mark key as unused to avoid compiler warnings + strcpy(output, hex); +} + +/* +** =================================================================== +** truncateString() +** Ensures a string isn't too long to display. This probably +** could go to something more general, but leaving it here for now. +** =================================================================== +*/ +String truncateString(const char* psz, size_t maxLength) +{ + // Check if the input string is shorter than or equal to maxLength + size_t inputLength = strlen(psz); + if (inputLength <= maxLength) { + return String(psz); // No truncation needed + } + + // Calculate the maximum length for characters before adding "..." + size_t truncatedLength = maxLength > 3 ? maxLength - 3 : 0; + + // Create a new String object with the truncated content and append "..." + String result = String(psz).substring(0, truncatedLength); + result += "..."; + + return result; // Return the truncated string +} \ No newline at end of file diff --git a/src/ThingPulse/util.h b/src/ThingPulse/util.h new file mode 100644 index 0000000..537e358 --- /dev/null +++ b/src/ThingPulse/util.h @@ -0,0 +1,102 @@ +/*------------------------------------------------------------------------------------------------- +** +** util.h +** +** Utility routines from ThingPulse. Includes time synchronization, logging, +** timezone handling, memory diagnostics, and general-purpose helpers for +** the ESP32 Spotify Remote. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-26 - Electric Diversions - Copied and renamed to tpUtil.h from util.h +** 2024-12-27 - Electric Diversions - Added source file and split out function declarations +** 2025-05-04 - Electric Diversions - Renamed back to util and moved to ThingPulse folder +** ------------------------------------------------------------------------------------------------ +*/ + + +#pragma once + +#include "ThingPulse/util.h" +#include "time.h" +#include "settings.h" + +/* +** =================================================================== +** getCurrentTimestamp() - Answer the current timestamp as a String +** =================================================================== +*/ +String getCurrentTimestamp(const char* format); + +/* +** =================================================================== +** initTime() - initialize time from pool.ntp.org +** =================================================================== +*/ +boolean initTime(); + +/* +** =================================================================== +** logBanner() - log the app and version in the log as info entries +** =================================================================== +*/ +void logBanner(); +/* +** =================================================================== +** logMemoryStats() - log memory stats as info entries +** =================================================================== +*/ +void logMemoryStats(); + +/* +** =================================================================== +** setTimezone() - set timezone +** =================================================================== +*/ +void setTimezone(const char* timezone); + +/* +** =================================================================== +** setTimezone() - Answer days from epoch +** Algorithm: http://howardhinnant.github.io/date_algorithms.html +** =================================================================== +*/ +int days_from_epoch(int y, int m, int d); + +/* +** =================================================================== +** mkgmtime() - Not sure... +** https://stackoverflow.com/a/58037981/131929 +** aka timegm() but that's already defined in the Weather Station +** lib but not accessible +** =================================================================== +*/ + +time_t mkgmtime(struct tm const *t); + +// ================== Electric Diversions added functons =========================== + +/* +** =================================================================== +** simpleDecrypt - Performs a simple decryption of provided string +** and key. +** +** Decryption portion of command line routine used to do simple encryption +** Note: This is largely Gen AI generated code. In the event of any weird +** point/memory/crash behavior dig deeper here. +** =================================================================== +*/ + +void simpleDecrypt(const char *hex, const char *key, char *output); + +/* +** =================================================================== +** truncateString() +** Ensures a string isn't too long to display. This probably +** could go to something more general, but leaving it here for now. +** =================================================================== +*/ +String truncateString(const char* psz, size_t maxLength); \ No newline at end of file diff --git a/src/UIViews/ClockView.cpp b/src/UIViews/ClockView.cpp new file mode 100644 index 0000000..53f80e9 --- /dev/null +++ b/src/UIViews/ClockView.cpp @@ -0,0 +1,411 @@ +/*------------------------------------------------------------------------------------------------- +** +** ClockView.cpp +** +** Declares the ClockView class, a UIView subclass that displays the +** current time and date alongside minimal Spotify playback information. +** Includes progress bar handling, play status indication, and a return +** button for navigation. Intended as an idle display mode. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-12 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "ClockView.h" +#include "SCLogger.h" +#include "logTags.h" +#include "ThingPulse/util.h" +#include "SpotifyArtMgr.h" +#include "Renderers/BackButtonRenderer.h" + +/* +** =================================================================== +** Constructor +** Initializes the CoverView with the provided DisplayUI instance. +** +** Parameters: +** pUI - Pointer to the DisplayUI instance. +** =================================================================== +*/ +ClockView::ClockView(DisplayUI *pUI) + : UIView(pUI) // Pass the DisplayUI pointer to the base class constructor +{ + // Initialization specific to CoverView, if any +} + +/* +** =================================================================== +** initializeUIElements() +** +** Initializes the interactive UI elements used in the ClockView, +** including the return button and album art tap zone. Enlarges the +** touch area of the back button to improve tap reliability. Also calls +** the base UIView initializer to set up any shared UI elements. +** +** Notes: +** - `_pReturnViewElement` uses BackButtonRenderer and a padded touch zone. +** - `_pGotoCoverArtElement` is a simple zone intended for tapping the album art. +** - Be sure to call this during view setup before rendering. +** =================================================================== +*/ +void ClockView::initializeUIElements() +{ + + std::shared_ptr backButtonRenderer = std::make_shared(_pUI); + // Make the touch rectangle 10 pixels larger on all sides. The renderer will take off the 10 pixels when rendering + // Doing to make a bigger, more forgiving touch target. + const int MARGIN = 10; + _pReturnViewElement = std::make_unique( 10 - MARGIN, 276 - MARGIN, 70 + (MARGIN * 2), 34 + (MARGIN * 2), backButtonRenderer); + _pGotoCoverArtElement = std::make_unique( 0, 160, 40, 40); + + // initialize other elements not set above + UIView::initializeUIElements(); + +} + +/* +** =================================================================== +** drawUI() +** Renders the UI for the default mode. +** =================================================================== +*/ +void ClockView::drawUI() +{ + + SpotifyPlayer *pSP = &SpotifyPlayer::getInstance(); + bool isNewTrack = pSP->isNewTrackReady(); // copy this before resetting it with getCurrentlyPlayingMetadata() + PlayingMetadata playing = pSP->getCurrentlyPlayingMetadata(); + bool isDisplayPercentageUpdated = false; + static TFTColor progressBarColor = TFTColor::DarkGreen; + + // Update clock + if (millis() > _requestDueTime) + { + handleDate(false); + _pUI->drawClockTime(false); + char s[50]; + snprintf(s, sizeof(s), "%s", getCurrentTimestamp("%Y-%m-%d %H:%M:%S").c_str()); + } + + isDisplayPercentageUpdated = refreshPlayingProgress(); + + static bool isNoMusicMsgShown = false; + if ((pSP->isMusicAvailable() == false) + && !isNoMusicMsgShown) + { + _pUI->drawTextToLCD("No Music Playing...", 200, 24, false); + _pUI->drawTextToLCD("", 230, 18, false); + _pUI->drawTextToLCD("", 254, 18, false); + isNoMusicMsgShown = true; + + // Render back button + TFTColor c = _pUI->getBackground(); + _pUI->setBackground(TFTColor::Black,false); + _pReturnViewElement->render(false); + _pUI->setBackground(c,false); + handlePlayStatus(true); + + return; + } + + isNoMusicMsgShown = false; + + if (isNewTrack + || _pUI->isUIDirty()) + { + + handleDate(true); + + _pUI->drawTextToLCD(truncateString(playing.trackName, 36).c_str(), 200, 24, false); + _pUI->drawTextToLCD(truncateString(playing.albumName, 50).c_str(),230, 18, false); + _pUI->drawTextToLCD(truncateString(playing.getArtistsList(800).c_str(), 50).c_str(),254, 18, false); + + // Render back button + TFTColor c = _pUI->getBackground(); + _pUI->setBackground(TFTColor::Black,false); + _pReturnViewElement->render(false); + _pUI->setBackground(c,false); + + String filePath = SP_NO_COVER_JPG_FILENAME; + + const int TARGET_IMAGE_SIZE = 300; + + for (int i = 0; i < playing.numImages; i++) + { + if ((playing.albumImages[i].height == TARGET_IMAGE_SIZE) + && (playing.albumImages[i].width == TARGET_IMAGE_SIZE)) + { + filePath = SpotifyArtMgr::getInstance()->getLocalFileName(playing.albumImages[i].url); + break; + } + } + + ///// Draw album art + progressBarColor = _pUI->calculateAverageColor(filePath.c_str()); + + _pUI->drawProgressBar(60, 170, 410, 20, 0, TFTColor::White, TFTColor::Black); + _pUI->drawProgressBar(60, 170, 410, 20, _displayPercentage, TFTColor::White, progressBarColor); + + _pUI->setJpgScaleToTiny(); + // _pUI->drawAlbumArt(230, 280, filePath); + _pUI->drawAlbumArt(10, 160, filePath); + + ///// Draw play duration + _pUI->rDrawString("-:--", 330, 287, 20, TFTColor::DarkGreen, TFTColor::Black,"XX:XX:XX"); + std::string duration = "/"+_pUI->formatTime(playing.durationMs); + _pUI->lDrawString(duration.c_str(), 333, 287, 20, TFTColor::DarkGreen, TFTColor::Black,"XX:XX:XX"); + + handlePlayStatus(true); + + _pUI->markUIDirty(false); + } + + handleProgressBar(progressBarColor); + handlePlayStatus(false); + +} + +/* +** =================================================================== +** handleProgressBar() +** +** Updates the visual progress bar on the ClockView screen to reflect +** the current playback position. Uses `_displayPercentage` to determine +** how much of the bar to fill and updates the on-screen timestamp if it +** has changed since the last frame. +** +** Parameters: +** progressBarColor - The color to use for the filled portion of the bar. +** +** Notes: +** - Uses a cached `lastProgress` string to avoid unnecessary redraws. +** - The timestamp is displayed to the right of the progress bar. +** =================================================================== +*/ +void ClockView::handleProgressBar(TFTColor progressBarColor) +{ + // spLogI(LOGTAG_GENERAL, " ==== ENTERING HomeView::handleProgressBar() ==="); + spLogV(LOGTAG_GUI, "Updating progress bar with percentage: %u", _displayPercentage); + _pUI->drawProgressBar(60, 170, 410, 20, _displayPercentage, TFTColor::White, progressBarColor); + + std::string progress = _pUI->formatTime(_forecastedProgressMS); + + static std::string lastProgress = "X:XX/X:XX"; + if (lastProgress != progress) + { + _pUI->rDrawString(progress.c_str(), 330, 287, 20, TFTColor::DarkGreen, TFTColor::Black,"XX:XX:XX"); + lastProgress = progress; + } + + // spLogI(LOGTAG_GENERAL, " ==== EXITING HomeView::handleProgressBar() ==="); +} + +/* +** =================================================================== +** handlePlayStatus() +** Handles the logic for updating the UI based on the current +** playback status of the Spotify player, including whether a track +** is playing, paused, or stopped. It also updates the play/pause +** button icon when the playback state changes. +** +** Parameters: +** None +** +** Returns: +** None +** +** Notes: +** - This method updates the UI text to display the current playback +** status (e.g., "Track Playing", "Paused", or "Stopped"). +** - It ensures that the play/pause button icon is refreshed whenever +** the playback status changes. +** =================================================================== +*/ +void ClockView::handlePlayStatus(bool isForcedUpdate) +{ + static bool lastIsPlaying = false; + SpotifyPlayer *pSP = &SpotifyPlayer::getInstance(); + PlayingMetadata playing = pSP->getCurrentlyPlayingMetadata(); + const int32_t posX = 100; + + if ((lastIsPlaying != playing.isPlaying) + || (isForcedUpdate)) + { + if (playing.isPlaying) + { + std::string label; + switch (playing.currentlyPlayingType) + { + case PlayingMetadata::PlayingType::track: + label = "Track Playing"; + break; + case PlayingMetadata::PlayingType::episode: + label = "Ep. Playing"; + break; + default: + label = "Other Playing"; + break; + } + + _pUI->lDrawString(label.c_str(), posX, 287, 20, TFTColor::DarkGreen, TFTColor::Black,"Track Playing"); + + } + else + { + + if (playing.progressMs > 0) + { + _pUI->lDrawString("Paused", posX, 287, 20, TFTColor::Red, TFTColor::Black,"Track Playing"); + } + else + { + _pUI->lDrawString("Stopped", posX, 287, 20, TFTColor::Red, TFTColor::Black,"Track Playing"); + } + } + + } + + if (lastIsPlaying != playing.isPlaying) + { + _pPauseElement->render(false); // refresh button icon + } + + lastIsPlaying = playing.isPlaying; +} + +/* +** =================================================================== +** handleDate() +** Draws the current date centered above the clock time. Only +** updates the display if the date string has changed or if +** forced refresh logic is added later. +** +** Notes: +** - Uses the format: "Saturday March 30 2025" +** =================================================================== +*/ +void ClockView::handleDate(bool isForceRefresh) +{ + std::string dateStr = getCurrentTimestamp("%A %B %d %Y").c_str(); + static std::string lastDate = ""; + + if ((lastDate != dateStr) + || isForceRefresh) + { + _pUI->cDrawString(dateStr.c_str(), 240, 8, 24, TFTColor::Yellow, _pUI->getBackground(), ""); + lastDate = dateStr; + } +} + +/* +** =================================================================== +** refreshPlayingProgress() +** Updates the current progress of the playing media, calculating +** the forecasted progress and updating the display percentage. +** The _forecastedProgressMS member variable will be updated +** during the execution of this method. +** +** Returns: +** A boolean indicating whether the display percentage has been +** updated. +** +** Notes: +** - The progress is only updated if the media is currently playing. +** - This method skips progress updates if called too frequently +** (within a 100 ms threshold). +** - The updated forecasted progress is used to calculate the +** display percentage based on the media's total duration. +** =================================================================== +*/ +bool ClockView::refreshPlayingProgress() +{ + SpotifyPlayer *pSP = &SpotifyPlayer::getInstance(); + bool isNewTrack = pSP->isNewTrackReady(); + PlayingMetadata playing = pSP->getCurrentlyPlayingMetadata(); + + + static long lastInvokeMs = 0; + bool isDisplayPercentageUpdated = false; + long currentMs = millis(); + + if (isNewTrack) + { + // Reset back to zero + lastInvokeMs = 0; + _forecastedProgressMS = playing.progressMs; + } + + if (currentMs < (lastInvokeMs + 25)) + { + // Not ready to update yet + isDisplayPercentageUpdated = false; + spLogV(LOGTAG_GUI, "bSkipProgressBarRefresh = true. currentMS: %u lastInvokeMs: %u", currentMs, lastInvokeMs); + } + else if (playing.isPlaying) // 🔹 Only update if song is actually playing + { + // Song is playing, so update forecasted progress normally + if (playing.lastRefreshMs < lastInvokeMs) + { + long difference = currentMs - lastInvokeMs; + _forecastedProgressMS += difference; + if (_forecastedProgressMS > playing.durationMs) + { + _forecastedProgressMS = playing.durationMs; + } + spLogV(LOGTAG_GUI, "Updating forecastedProgressMS. prev forecastedProgressMS: %u difference: %u", _forecastedProgressMS, difference); + } + else + { + // Song progress has changed naturally (not paused), so trust new progressMs + _forecastedProgressMS = playing.progressMs; + } + _displayPercentage = (playing.durationMs > 0) ? (_forecastedProgressMS * 100) / playing.durationMs : 0; + _displayPercentage = (_displayPercentage > 100) ? 100 : _displayPercentage; + isDisplayPercentageUpdated = true; + } + + // Update tracking variables + + lastInvokeMs = millis(); + + return isDisplayPercentageUpdated; +} + +/* +** =================================================================== +** enteringView() +** =================================================================== +*/ +void ClockView::enteringView() +{ + _pUI->setSplitBackground(true); + // Make sure the UI is painted fresh + _pUI->setBackground(TFTColor::DarkestGreen, false); //true); + _pUI->clearScreenHome(); + _pUI->drawClockTime(true); + _pUI->markUIDirty(true); // force refresh to get album details + +} + +/* +** =================================================================== +** handle_UUM_IDLE() +** =================================================================== +*/ +void ClockView::handle_UM_IDLE(SCUIMessage *pMessage) +{ + const unsigned long delayBetweenRequests = 50; + + // Every period refresh the display + if (millis() > _requestDueTime) + { + drawUI(); + _requestDueTime = millis() + delayBetweenRequests; + } + +} \ No newline at end of file diff --git a/src/UIViews/ClockView.h b/src/UIViews/ClockView.h new file mode 100644 index 0000000..068c425 --- /dev/null +++ b/src/UIViews/ClockView.h @@ -0,0 +1,61 @@ +/*------------------------------------------------------------------------------------------------- +** +** ClockView.h +** +** Declares the ClockView class, a UIView subclass that displays the +** current time and date alongside minimal Spotify playback information. +** Includes progress bar handling, play status indication, and a return +** button for navigation. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-12 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once +#include "UIView.h" + +/* +** =================================================================== +** Class: ClockView +** +** Purpose: +** Implements the "Clock" display mode for the Spotify controller UI. +** Displays the current time and date alongside minimal Spotify playback +** information such as progress and playback status. +** =================================================================== +*/ + +class ClockView : public UIView +{ +public: + explicit ClockView(DisplayUI *pUI); // Constructor + virtual void initializeUIElements() override; + + /* + ** =================================================================== + ** drawUI() + ** Renders the UI for the art-only mode. + ** =================================================================== + */ + void drawUI() override; + +protected: + // Transitions + virtual void enteringView() override; + virtual void handle_UM_IDLE(SCUIMessage *pMessage) override; + +private: + void handleProgressBar(TFTColor progressBarColor); + void handlePlayStatus(bool isForcedUpdate); + void handleDate(bool isForceRefresh); + bool refreshPlayingProgress(); + // Time management variables + unsigned long _requestDueTime = 0; // time when request due + uint8_t _displayPercentage = 0; // what is being displayed as the percentage + long _forecastedProgressMS = 0; // forcasted progress into the song +}; \ No newline at end of file diff --git a/src/UIViews/CoverView.cpp b/src/UIViews/CoverView.cpp new file mode 100644 index 0000000..c91850d --- /dev/null +++ b/src/UIViews/CoverView.cpp @@ -0,0 +1,126 @@ +/*------------------------------------------------------------------------------------------------- +** +** CoverView.h +** +** Declares the CoverView class, a UIView subclass that implements the +** "Art Only" display mode for the Spotify controller. It shows only the +** album cover art along with minimal track information and a return button. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-21 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "CoverView.h" +#include "SCLogger.h" +#include "logTags.h" +#include "ThingPulse/util.h" +#include "SpotifyArtMgr.h" +#include "Renderers/BackButtonRenderer.h" + +/* +** =================================================================== +** Constructor +** Initializes the CoverView with the provided DisplayUI instance. +** +** Parameters: +** pUI - Pointer to the DisplayUI instance. +** =================================================================== +*/ +CoverView::CoverView(DisplayUI *pUI) + : UIView(pUI) // Pass the DisplayUI pointer to the base class constructor +{ + // Initialization specific to CoverView, if any +} + +void CoverView::initializeUIElements() +{ + + std::shared_ptr backButtonRenderer = std::make_shared(_pUI); + // Make the touch rectangle 10 pixels larger on all sides. The renderer will take off the 10 pixels when rendering + // Doing to make a bigger, more forgiving touch target. + const int MARGIN = 10; + _pReturnViewElement = std::make_unique( 10 - MARGIN, 270 - MARGIN, 70 + (MARGIN * 2), 40 + (MARGIN * 2), backButtonRenderer); + + // initialize other elements not set above + UIView::initializeUIElements(); + +} + +/* +** =================================================================== +** drawUI() +** Renders the UI for the default mode. +** =================================================================== +*/ +void CoverView::drawUI() +{ + SpotifyPlayer *pSP = &SpotifyPlayer::getInstance(); + bool isNewTrack = pSP->isNewTrackReady(); + PlayingMetadata playing = pSP->getCurrentlyPlayingMetadata(); + + // _pUI->setBackground(TFTColor::DarkGreen); + + // Render back button + _pReturnViewElement->render(false); + + const int trackY = 110; + const int albumY = 150; + const int artistY = 190; + + static bool isWaitingShowing = false; + if (pSP->isMusicAvailable() == false) + { + if (!isWaitingShowing) + { + spLogI(LOGTAG_GUI, "drawCurrentlyPlayingToLCD() - Empty track. Draw Waiting for song..."); + _pUI->setBackground(TFTColor::SC_DJX_BG, true); + _pUI->drawTextToLCD("Music is unavailable",trackY); + _pUI->drawTextToLCD("Waiting for song...",albumY); + isWaitingShowing = true; + } + return; + } + isWaitingShowing = false; + + // If this isn't a new song and the UI + // isn't dirty, nothing to do so leave. + if ((isNewTrack == false) + && (_pUI->isUIDirty() == false)) + { + spLogI(LOGTAG_GUI, "Song has not changed and the UI is not dirty. Leaving drawUI() method."); + return; + } + + //start repaintCoverArt(); + String filePath = SP_NO_COVER_JPG_FILENAME; + + const int TARGET_IMAGE_SIZE = 300; + + for (int i = 0; i < playing.numImages; i++) + { + if ((playing.albumImages[i].height == TARGET_IMAGE_SIZE) + && (playing.albumImages[i].width == TARGET_IMAGE_SIZE)) + { + filePath = SpotifyArtMgr::getInstance()->getLocalFileName(playing.albumImages[i].url); + break; + } + } + TFTColor c = _pUI->calculateAverageColor(filePath.c_str()); + _pUI->setBackground(c, false); + _pUI->clearScreenKeepArt(); // Clear any left over text + _pUI->drawTextToLCD("Uno", 200, 20, true); + _pUI->drawTextToLCD("Dos", 230, 14, true); + _pUI->drawTextToLCD("Tres", 254, 14, true); + + _pUI->setJpgScaleToSmall(false); + _pUI->drawAlbumArt(90, 10, filePath); + + _pUI->markUIDirty(false); + + +} \ No newline at end of file diff --git a/src/UIViews/CoverView.h b/src/UIViews/CoverView.h new file mode 100644 index 0000000..11889f7 --- /dev/null +++ b/src/UIViews/CoverView.h @@ -0,0 +1,43 @@ +/*------------------------------------------------------------------------------------------------- +** +** CoverView.h +** +** Declares the CoverView class, a UIView subclass that implements the +** "Art Only" display mode for the Spotify controller. It shows only the +** album cover art along with minimal track information and a return button. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-21 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once +#include "UIView.h" + +/* +** =================================================================== +** Class: CoverView +** +** Purpose: +** Implements the "Art Only" display mode, showing only the album +** cover art. +** =================================================================== +*/ +class CoverView : public UIView +{ +public: + explicit CoverView(DisplayUI *pUI); // Constructor + virtual void initializeUIElements() override; + + /* + ** =================================================================== + ** drawUI() + ** Renders the UI for the art-only mode. + ** =================================================================== + */ + void drawUI() override; +}; \ No newline at end of file diff --git a/src/UIViews/DiagnosticsView.cpp b/src/UIViews/DiagnosticsView.cpp new file mode 100644 index 0000000..873aade --- /dev/null +++ b/src/UIViews/DiagnosticsView.cpp @@ -0,0 +1,436 @@ +/*------------------------------------------------------------------------------------------------- +** +** DiagnosticsView.h +** +** Declares the DiagnosticsView class, a UIView subclass that provides a +** diagnostics interface for the Spotify controller. Displays metadata, +** system status, and playback diagnostics, primarily for debugging purposes. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-21 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "DiagnosticsView.h" +#include "SCLogger.h" +#include "logTags.h" +#include "ThingPulse/util.h" +#include "Monitor.h" +#include "SpotifyArtMgr.h" +#include "settings.h" +#include "Renderers/BackButtonRenderer.h" +#include "esp_heap_caps.h" + +/* +** =================================================================== +** Constructor +** Initializes the CoverView with the provided DisplayUI instance. +** +** Parameters: +** pUI - Pointer to the DisplayUI instance. +** =================================================================== +*/ +DiagnosticsView::DiagnosticsView(DisplayUI *pUI) + : UIView(pUI) // Pass the DisplayUI pointer to the base class constructor +{ + // Initialization specific to CoverView, if any +} + +void DiagnosticsView::initializeUIElements() +{ + + std::shared_ptr backButtonRenderer = std::make_shared(_pUI); + + // Make the touch rectangle 10 pixels larger on all sides. The renderer will take off the 10 pixels when rendering + // Doing to make a bigger, more forgiving touch target. + const int MARGIN = 10; + _pReturnViewElement = std::make_unique( 10 - MARGIN, 270 - MARGIN, 70 + (MARGIN * 2), 40 + (MARGIN * 2), backButtonRenderer); + + // initialize other elements not set above + UIView::initializeUIElements(); + +} + +/* +** =================================================================== +** drawUI() +** Renders the UI for the default mode. +** =================================================================== +*/ +void DiagnosticsView::drawUI() +{ + + SpotifyPlayer *pSP = &SpotifyPlayer::getInstance(); + bool isNewTrack = pSP->isNewTrackReady(); // copy this before resetting it with getCurrentlyPlayingMetadata() + PlayingMetadata playing = pSP->getCurrentlyPlayingMetadata(); + + if ((isNewTrack) + || _pUI->isUIDirty()) + { + clearAndPaintScreen(playing); + refreshScreen(playing, true); + } + else if (millis() > _requestDueTime) + { + refreshScreen(playing, false); + } + + _pUI->markUIDirty(false); + +} + +/* +** =================================================================== +** clearAndPaintScreen() +** Clears the screen and repaints the UI with the provided track +** metadata. This method is responsible for drawing album details, +** compile time, and version information. +** +** Parameters: +** playing - The metadata of the currently playing track. +** +** Returns: +** None. +** =================================================================== +*/ +void DiagnosticsView::clearAndPaintScreen(PlayingMetadata playing) +{ + // #define APP_NAME "Spotify Companion - Feb 2025" + // #define VERSION "0.5.19" + // #define COMPILE_TIME (__DATE__ " " __TIME__) + + const int fontSize = 18; + const int32_t xStart = 240; + char s[100]; + + spLogV(LOGTAG_GUI, "==== ENTERING clearAndPaintScreen ==="); + + // Clear screen + _pUI->clearScreen(); + + // **** Back Button ***** + _pReturnViewElement->render(false); + + // **** Album Information ***** + _pUI->cDrawString(truncateString(playing.trackName, 50).c_str(), xStart, rowToY(0), fontSize, TFTColor::Green, TFTColor::Black,"."); + _pUI->cDrawString(truncateString(playing.albumName, 50).c_str(), xStart, rowToY(1), fontSize, TFTColor::Green, TFTColor::Black,"."); + _pUI->cDrawString(truncateString(playing.getArtistsList(800).c_str(), 50).c_str(), xStart, rowToY(2), fontSize, TFTColor::Green, TFTColor::Black,"."); + + // **** Track Progress Header *****= + _pUI->lDrawString("progressMs / durationMs :: lastRefreshMs (Pct)", 10, rowToY(4), fontSize, TFTColor::DarkGreen, TFTColor::Black,""); + + // **** Compile / Version Information ***** + std::string versionStr = std::string("Version: ") + VERSION; + _pUI->lDrawString(versionStr.c_str(), 90, rowToY(12), fontSize, TFTColor::DarkGrey, TFTColor::Black,"#### ################## ####"); + versionStr = std::string("Compile: ") + COMPILE_TIME; + _pUI->lDrawString(versionStr.c_str(), 90, rowToY(13), fontSize, TFTColor::DarkGrey, TFTColor::Black,"#### ################## ####"); + +} + +/* +** =================================================================== +** refreshScreen() +** Updates the diagnostics screen with the latest track metadata +** and system statistics. This method ensures only changed values +** are redrawn to optimize performance and minimize flicker. +** +** Parameters: +** playing - The metadata of the currently playing track. +** isForcedRefresh - If true, forces a full repaint regardless +** of whether values have changed. +** +** Returns: +** None. +** =================================================================== +*/ +void DiagnosticsView::refreshScreen(PlayingMetadata playing, bool isForcedRefresh) +{ + const int fontSize = 18; + char s[100]; + std::string label; + std::string label2; + MonitorStats stats; + TFTColor newColor = TFTColor::Purple; + + // **** Remaining Track Information ***** + + static std::string trackInfoLine = ""; + if ((playing.isPlaying) || isForcedRefresh) + { + label = "Y"; + newColor = TFTColor::DarkGreen; + } + else + { + label = "N"; + newColor = TFTColor::Red; + } + switch (playing.currentlyPlayingType) + { + case PlayingMetadata::PlayingType::track: + label2 = "track"; + break; + case PlayingMetadata::PlayingType::episode: + label2 = "episode"; + break; + default: + label2 = "other"; + break; + } + + snprintf(s, sizeof(s), "# Artist: %u # Images: %u isPlaying: %s type: %s", playing.numArtists, playing.numImages, label.c_str(), label2.c_str()); + if ((trackInfoLine != s) || isForcedRefresh) + { + _pUI->lDrawString(s, 10, rowToY(3), fontSize, newColor, TFTColor::Black,""); + trackInfoLine = s; + } + + static std::string playingTypeLine = ""; + uint8_t percentPlayed = (playing.durationMs > 0) ? (playing.progressMs * 100) / playing.durationMs : 0; + percentPlayed = (percentPlayed > 100) ? 100 : percentPlayed; + snprintf(s, sizeof(s), "%u / %u :: %u (%u%%)", playing.progressMs, playing.durationMs, playing.lastRefreshMs, percentPlayed); + if ((playingTypeLine != s) || isForcedRefresh) + { + _pUI->lDrawString(s, 10, rowToY(5), fontSize, TFTColor::Cyan, TFTColor::Black,"lastRefreshMs: ##### playingType: episode"); + playingTypeLine = s; + } + + // **** Metrics on Getting Song Information ***** + static std::string statsLine200 = ""; + stats = Monitor::getStats(MONITOR_ID_SPOTIFY_GET_CURRENTLY_PLAYING); + if (stats.maxMs > 2500) + { + newColor = TFTColor::Yellow; + } + else + { + newColor = TFTColor::DarkGreen; + } + if (stats.averageMs > 2500) + { + newColor = TFTColor::Red; + } + if (stats.minMs == LLONG_MAX) + { + snprintf(s, sizeof(s), "%u: A:%lld M:--- X:%lld C:%d", stats.id, stats.averageMs, stats.maxMs, stats.stopCount); + } + else + { + snprintf(s, sizeof(s), "%u: A:%lld M:%lld X:%lld C:%d", stats.id, stats.averageMs, stats.minMs, stats.maxMs, stats.stopCount); + } + if ((statsLine200 != s) || isForcedRefresh) + { + _pUI->lDrawString(s, 10, rowToY(6), fontSize, newColor, TFTColor::Black,""); + statsLine200 = s; + } + + // **** Metrics on Fetching Album Art ***** + static std::string statsLine300 = ""; + stats = Monitor::getStats(MONITOR_ID_SPOTIFY_IMAGE_HTTP_GET); + + if (stats.minMs == LLONG_MAX) + { + snprintf(s, sizeof(s), "%u: A:%lld M:--- X:%lld C:%d", stats.id, stats.averageMs, stats.maxMs, stats.stopCount); + } + else + { + snprintf(s, sizeof(s), "%u: A:%lld M:%lld X:%lld C:%d", stats.id, stats.averageMs, stats.minMs, stats.maxMs, stats.stopCount); + } + if ((statsLine300 != s) || isForcedRefresh) + { + if (stats.maxMs > 2500) + { + newColor = TFTColor::Yellow; + } + else + { + newColor = TFTColor::DarkGreen; + } + if (stats.averageMs > 2500) + { + newColor = TFTColor::Red; + } + _pUI->lDrawString(s, 10, rowToY(7), fontSize, newColor, TFTColor::Black,""); + statsLine300 = s; + } + + // **** Art Cache Hits Metrics ***** + static std::string artCacheLine = ""; + ArtMgrStats artMgrStats = SpotifyArtMgr::getInstance()->getStats(); + snprintf(s, sizeof(s), "AHR: %lld LHS: %lld CHS: %lld Hits: %lld TF: %lld", + artMgrStats.averageHitRate, + artMgrStats.longestHitStreak, + artMgrStats.currentHitStreak, + artMgrStats.cacheHits, + artMgrStats.totalFetches); + if ((artCacheLine != s) || isForcedRefresh) + { + _pUI->lDrawString(s, 10, rowToY(8), fontSize, TFTColor::DarkGreen, TFTColor::Black,"Heap: ####### Low: #######"); + artCacheLine = s; + } + + // **** Heap Stats ***** + static std::string heapLine = ""; + uint32_t heapSize = Monitor::getFreeHeap(); + Monitor::HeapStats heapStats = Monitor::getHeapStats(); + // multi_heap_info_t heapInfo; + + // heap_caps_get_info(&heapInfo, MALLOC_CAP_8BIT); + + // size_t totalHeap = heapInfo.total_free_bytes + heapInfo.total_allocated_bytes; + // spLogI(LOGTAG_GENERAL,"th: %u tfb: %u tab: %u hs: %u", totalHeap, heapInfo.total_free_bytes, heapInfo.total_allocated_bytes, heapSize ); + // Approximate percentage remaining based on max we've seen + float remainingPercentage = (float)heapSize / (float)heapStats.maxHeap * 100.0f; + + + snprintf(s, sizeof(s), "Heap: %u Low: %u Hi: %u (%.0f%%)", heapSize, heapStats.minHeap, heapStats.maxHeap, remainingPercentage); + if ((heapLine != s) || isForcedRefresh) + { + if (heapSize < HEAP_LOW_THRESHOLD) + { + newColor = TFTColor::Red; + } + else if (heapSize < HEAP_WATCH_SIZE_BASE) + { + newColor = TFTColor::Yellow; + } + else + { + if (heapStats.minHeap < HEAP_LOW_THRESHOLD) + { + newColor = TFTColor::Pink; + } + else if ((heapStats.minHeap < HEAP_WATCH_SIZE_BASE)) + { + newColor = TFTColor::SC_LowHeap; + } + else + { + newColor = TFTColor::Cyan; + } + + } + _pUI->lDrawString(s, 10, rowToY(9), fontSize, newColor, TFTColor::Black,"Heap: ####### Low: ####### High: #######"); + heapLine = s; + } + + // **** Message Queue Stats ***** + static std::string mqLine = ""; + uint32_t depth = Monitor::getMaxQueueDepth(); + snprintf(s, sizeof(s), "MQD: %u%", depth); + + if ((mqLine != s) || isForcedRefresh) + { + if (depth > 5) + { + if (depth >= 7) + { + newColor = TFTColor::Red; + } + else + { + newColor = TFTColor::Yellow; + } + } + else + { + newColor = TFTColor::DarkGreen; + } + _pUI->lDrawString(s, 10, rowToY(10), fontSize, newColor, TFTColor::Black,"MQD: ##"); + mqLine = s; + } + + static std::string queueDelayLine = ""; + stats = Monitor::getStats(MONITOR_ID_SCUI_QUEUE_DELAY); + + snprintf(s, sizeof(s), "A: %lld M: %lld X: %lld", stats.averageMs, stats.minMs, stats.maxMs); + if ((queueDelayLine != s) || isForcedRefresh) + { + if (stats.maxMs > 2000) + { + newColor = TFTColor::Yellow; + } + else + { + newColor = TFTColor::DarkGreen; + } + _pUI->lDrawString(s, 100, rowToY(10), fontSize, newColor, TFTColor::Black,"Avg(ms): ##### Max(ms) #####"); + queueDelayLine = s; + } + + // **** Uptime Stats ***** + static std::string uptimeLine = ""; + snprintf(s, sizeof(s), "%s", Monitor::getFormattedUptime("Up %lu days, %lu hrs, %lu mins, %lu secs").c_str()); + if ((uptimeLine != s) || isForcedRefresh) + { + _pUI->lDrawString(s, 90, rowToY(11), fontSize, TFTColor::DarkGreen, TFTColor::Black,"#### ################## ####"); + uptimeLine = s; + } +} + +/* +** =================================================================== +** rowToY() +** Calculates the Y pixel position based on the given row index. +** The calculation considers the default font size and spacing rules. +** +** Parameters: +** row - The row index for which to calculate the Y position. +** +** Returns: +** The Y pixel coordinate corresponding to the given row index. +** =================================================================== +*/ +constexpr int DiagnosticsView::rowToY(int row) +{ + const int fontSize = 18; + const int rowSpacing = 22; + const int margin = 10; + + return margin + row * rowSpacing; + +} + +/* +** =================================================================== +** enteringView() +** =================================================================== +*/ +void DiagnosticsView::enteringView() +{ + // spLogI(LOGTAG_GENERAL, "*** ENTERING DiagnosticsView::enteringView() ==="); + _pUI->setSplitBackground(false); + // Make sure the UI is painted fresh + // _pUI->setBackground(TFTColor::SC_LowHeap, true); + _pUI->setBackground(TFTColor::Black, false); + + // force repaint to get latest album details and to get background updates + _pUI->markUIDirty(true); + + drawUI(); + + // spLogI(LOGTAG_GENERAL, "*** EXITING DiagnosticsView::enteringView() ==="); +} + +/* +** =================================================================== +** handle_UUM_IDLE() +** =================================================================== +*/ +void DiagnosticsView::handle_UM_IDLE(SCUIMessage *pMessage) +{ + const unsigned long delayBetweenRequests = 3000; + + // Every period refresh the display + if (millis() > _requestDueTime) + { + drawUI(); + _requestDueTime = millis() + delayBetweenRequests; + } + +} + diff --git a/src/UIViews/DiagnosticsView.h b/src/UIViews/DiagnosticsView.h new file mode 100644 index 0000000..75c3371 --- /dev/null +++ b/src/UIViews/DiagnosticsView.h @@ -0,0 +1,62 @@ +/*------------------------------------------------------------------------------------------------- +** +** DiagnosticsView.h +** +** Declares the DiagnosticsView class, a UIView subclass that provides a +** diagnostics interface for the Spotify controller. Displays metadata, +** system status, and playback diagnostics, primarily for debugging purposes. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-21 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once +#include "UIView.h" + +/* +** =================================================================== +** Class: DiagnosticsView +** +** Purpose: +** Provides a diagnostics screen for the Spotify controller UI. +** Displays system status information such as network status, +** current track data, playback state, and performance metrics. +** +** This view is accessible via the HomeView and is intended +** primarily for debugging or advanced user feedback. It inherits +** from UIView and implements methods for initialization, UI +** rendering, and message handling during idle time. +** =================================================================== +*/ +class DiagnosticsView : public UIView +{ +public: + explicit DiagnosticsView(DisplayUI *pUI); // Constructor + virtual void initializeUIElements() override; + + /* + ** =================================================================== + ** drawUI() + ** Renders the UI for the art-only mode. + ** =================================================================== + */ + void drawUI() override; + +protected: + // Transitions + virtual void enteringView() override; + virtual void handle_UM_IDLE(SCUIMessage *pMessage) override; + +private: + // Time management variables + unsigned long _requestDueTime = 0; // time when request due + + void clearAndPaintScreen(PlayingMetadata playing); + void refreshScreen(PlayingMetadata playing, bool isForcedRefresh); + constexpr int rowToY(int row); +}; \ No newline at end of file diff --git a/src/UIViews/HomeView.cpp b/src/UIViews/HomeView.cpp new file mode 100644 index 0000000..20996d0 --- /dev/null +++ b/src/UIViews/HomeView.cpp @@ -0,0 +1,469 @@ +/*------------------------------------------------------------------------------------------------- +** +** HomeView.cpp +** +** Implements the default HomeView for the Spotify controller UI, displaying +** track metadata, album art, control buttons, and current playback progress. +** Inherits from UIView and handles rendering and touch interactions for the +** main screen. Includes methods for managing UI refresh cycles and state. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-21 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "HomeView.h" +#include "SCLogger.h" +#include "logTags.h" +#include "ThingPulse/util.h" +#include "SpotifyArtMgr.h" +#include "Renderers/PreviousTrackButtonRenderer.h" +#include "Renderers/PlayPauseButtonRenderer.h" +#include "Renderers/NextTrackButtonRenderer.h" + +/* +** =================================================================== +** Constructor +** Initializes the HomeView class. +** +** Parameters: +** pUI - Pointer to the DisplayUI instance. +** =================================================================== +*/ +HomeView::HomeView(DisplayUI *pUI) + : UIView(pUI) // Call the base class constructor +{ + // Additional initialization (if needed) + _pUI->setBackground(TFTColor::Navy, true); +} + +/* +** =================================================================== +** initializeUIElements() +** +** Sets up and positions all interactive UIElements used in the HomeView, +** including media control buttons, navigation targets, and cover art tap zones. +** +** Notes: +** - Creates shared_ptr instances of IUIRenderer for each control. +** - Defines specific coordinates and dimensions for button layout. +** - This method is called during the initial view setup. +** =================================================================== +*/ +void HomeView::initializeUIElements() +{ + + // spLogI(LOGTAG_GENERAL,"HomeView::initializeUIElements() "); + + const int32_t buttonSize = 90; + const int32_t spacer = 11; + const int32_t buttonStartX = 170; + const int32_t buttonStartY = 40; + const int32_t coverArtSize = COVER_ART_SIZE / 2; + + std::shared_ptr previousButtonRenderer = std::make_shared(_pUI); + _pPreviousElement = std::make_unique(buttonStartX, buttonStartY, buttonSize, buttonSize, previousButtonRenderer); + + std::shared_ptr playPauseButtonRenderer = std::make_shared(_pUI); + _pPauseElement = std::make_unique(buttonStartX + spacer + buttonSize, buttonStartY, buttonSize, buttonSize, playPauseButtonRenderer); + + std::shared_ptr nextButtonRenderer = std::make_shared(_pUI); + _pNextElement = std::make_unique(buttonStartX + (spacer + buttonSize) * 2, buttonStartY, buttonSize, buttonSize, nextButtonRenderer); + + _pGotoCoverArtElement = std::make_unique(10, 10, coverArtSize, coverArtSize); + + + _pReturnViewElement = std::make_unique( 0, 121, 119, 200); + _pGotoClockElement = std::make_unique(300, 221, 100, 200); + _pGotoDiagnosticElement = std::make_unique(400, 221, 80, 200); + + +} + + +/* +** =================================================================== +** enteringView() +** =================================================================== +*/ +void HomeView::enteringView() +{ + + // spLogI(LOGTAG_GENERAL, "*** ENTERING HomeView::enteringView() ==="); + + _pUI->setSplitBackground(true); + + // Make sure the UI is painted fresh + _pUI->markUIDirty(true); + + drawUI(); + + // spLogI(LOGTAG_GENERAL, "*** EXITING HomeView::enteringView() ==="); +} + +/* +** =================================================================== +** drawUI() +** Renders the UI for the default mode. +** =================================================================== +*/ +void HomeView::drawUI() +{ + // spLogI(LOGTAG_GENERAL, "==== ENTERING drawUI for HomeView ==="); + + SpotifyPlayer *pSP = &SpotifyPlayer::getInstance(); + bool isNewTrack = pSP->isNewTrackReady(); + bool isDisplayPercentageUpdated = false; + + // Check if music is playing and if not + // display message and exit + if (checkAndHandleNoMusicAvailable()) + { + return; + } + + isDisplayPercentageUpdated = refreshPlayingProgress(); + + // If this isn't a new song and the UI + // isn't dirty, nothing to do so leave. + if (isNewTrack + || _pUI->isUIDirty()) + { + clearAndPaintScreen(); + _pUI->markUIDirty(false); + } + else + { + if (isDisplayPercentageUpdated) + { + // handleProgressBar(); + } + handleProgressBar(); + handleClock(false); + handlePlayStatus(); + } + + // spLogI(LOGTAG_GENERAL, "==== EXITING drawUI for HomeView ==="); + +} + +/* +** =================================================================== +** refreshPlayingProgress() +** Updates the current progress of the playing media, calculating +** the forecasted progress and updating the display percentage. +** The _forecastedProgressMS member variable will be updated +** during the execution of this method. +** +** Returns: +** A boolean indicating whether the display percentage has been +** updated. +** +** Notes: +** - The progress is only updated if the media is currently playing. +** - This method skips progress updates if called too frequently +** (within a 100 ms threshold). +** - The updated forecasted progress is used to calculate the +** display percentage based on the media's total duration. +** =================================================================== +*/ +bool HomeView::refreshPlayingProgress() +{ + SpotifyPlayer *pSP = &SpotifyPlayer::getInstance(); + bool isNewTrack = pSP->isNewTrackReady(); + PlayingMetadata playing = pSP->getCurrentlyPlayingMetadata(); + + + static long lastInvokeMs = 0; + bool isDisplayPercentageUpdated = false; + long currentMs = millis(); + + if (isNewTrack) + { + // Reset back to zero + lastInvokeMs = 0; + _forecastedProgressMS = playing.progressMs; + } + + if (currentMs < (lastInvokeMs + 100)) + { + // Not ready to update yet + isDisplayPercentageUpdated = false; + spLogV(LOGTAG_GUI, "bSkipProgressBarRefresh = true. currentMS: %u lastInvokeMs: %u", currentMs, lastInvokeMs); + } + else if (playing.isPlaying) // 🔹 Only update if song is actually playing + { + // Song is playing, so update forecasted progress normally + if (playing.lastRefreshMs < lastInvokeMs) + { + long difference = currentMs - lastInvokeMs; + _forecastedProgressMS += difference; + if (_forecastedProgressMS > playing.durationMs) + { + _forecastedProgressMS = playing.durationMs; + } + spLogV(LOGTAG_GUI, "Updating forecastedProgressMS. prev forecastedProgressMS: %u difference: %u", _forecastedProgressMS, difference); + } + else + { + // Song progress has changed naturally (not paused), so trust new progressMs + _forecastedProgressMS = playing.progressMs; + } + _displayPercentage = (playing.durationMs > 0) ? (_forecastedProgressMS * 100) / playing.durationMs : 0; + _displayPercentage = (_displayPercentage > 100) ? 100 : _displayPercentage; + isDisplayPercentageUpdated = true; + } + + // Update tracking variables + + lastInvokeMs = millis(); + + return isDisplayPercentageUpdated; +} + +/* +** =================================================================== +** handleProgressBar() +** Updates the progress bar on the screen based on the current +** display percentage. Additionally, updates and displays the +** current progress time if it has changed. +** +** Notes: +** - The progress bar is updated with the current display percentage. +** - If the progress time has changed, the new progress time is +** drawn on the screen. +** =================================================================== +*/ +void HomeView::handleProgressBar() +{ + // spLogI(LOGTAG_GENERAL, " ==== ENTERING HomeView::handleProgressBar() ==="); + spLogV(LOGTAG_GUI, "Updating progress bar with percentage: %u", _displayPercentage); + _pUI->drawProgressBar(10, 170, 460, 20, _displayPercentage, TFTColor::White, TFTColor::DarkGreen); + + std::string progress = _pUI->formatTime(_forecastedProgressMS); + + static std::string lastProgress = "X:XX/X:XX"; + if (lastProgress != progress) + { + _pUI->rDrawString(progress.c_str(), 220, 287, 20, TFTColor::DarkGreen, TFTColor::Black,"XX:XX:XX"); + lastProgress = progress; + } + // spLogI(LOGTAG_GENERAL, " ==== EXITING HomeView::handleProgressBar() ==="); +} + +/* +** =================================================================== +** handlePlayStatus() +** Handles the logic for updating the UI based on the current +** playback status of the Spotify player, including whether a track +** is playing, paused, or stopped. It also updates the play/pause +** button icon when the playback state changes. +** +** Parameters: +** None +** +** Returns: +** None +** +** Notes: +** - This method updates the UI text to display the current playback +** status (e.g., "Track Playing", "Paused", or "Stopped"). +** - It ensures that the play/pause button icon is refreshed whenever +** the playback status changes. +** =================================================================== +*/ +void HomeView::handlePlayStatus() +{ + static bool lastIsPlaying = false; + SpotifyPlayer *pSP = &SpotifyPlayer::getInstance(); + PlayingMetadata playing = pSP->getCurrentlyPlayingMetadata(); + + if ((lastIsPlaying != playing.isPlaying) + || (_forceUpdate)) + { + if (playing.isPlaying) + { + std::string label; + switch (playing.currentlyPlayingType) + { + case PlayingMetadata::PlayingType::track: + label = "Track Playing"; + break; + case PlayingMetadata::PlayingType::episode: + label = "Ep. Playing"; + break; + default: + label = "Other Playing"; + break; + } + + //_pUI->drawText(label.c_str(), 100, 290, 22, TFTColor::DarkGreen); + _pUI->lDrawString(label.c_str(), 10, 287, 20, TFTColor::DarkGreen, TFTColor::Black,"Track Playing"); + + } + else + { + //_pUI->drawText("Not Playing", 100, 290, 22, TFTColor::Red); + if (playing.progressMs > 0) + { + _pUI->lDrawString("Paused", 10, 287, 20, TFTColor::Red, TFTColor::Black,"Track Playing"); + } + else + { + _pUI->lDrawString("Stopped", 10, 287, 20, TFTColor::Red, TFTColor::Black,"Track Playing"); + } + } + _forceUpdate = false; + } + + if (lastIsPlaying != playing.isPlaying) + { + _pPauseElement->render(false); // refresh button icon + } + + lastIsPlaying = playing.isPlaying; +} + +/* +** =================================================================== +** handleClock() +** Updates and displays the current time on the screen. If the +** time has changed or a repaint is explicitly requested, the +** time is redrawn on the display. +** +** Parameters: +** isPaintForced - A boolean flag indicating whether a forced repaint +** should occur, regardless of whether the time has +** changed. +** +** Notes: +** - The time is displayed in the format "XX:XX PM". +** - If the current time differs from the last displayed time or +** if a forced repaint is requested, the time is redrawn. +** =================================================================== +*/ +void HomeView::handleClock(bool isPaintForced) +{ + std::string timeStr = getCurrentTimestamp("%l:%M %p").c_str(); + static std::string lastTime = "X:XX/X:XX"; + if ((lastTime != timeStr) + || (isPaintForced)) + { + _pUI->lDrawString(timeStr.c_str(), 310, 287, 20, TFTColor::DarkGreen, TFTColor::Black,"XX:XX PM"); + lastTime = timeStr; + } +} + +/* +** =================================================================== +** clearAndPaintScreen() +** Clears the screen and paints the current playback information. +** +** Description: +** This method clears the display and updates it with the currently +** playing track's metadata, including album art, control buttons, +** progress bar, track details, duration, and the current clock time. +** It retrieves the album art file path, calculates the average +** background color, and paints the UI elements to display a fresh +** view of the current playback state. +** +** Notes: +** - This method forces a UI update even if the content has not changed. +** - Progress bar is drawn twice to ensure proper clearing of the previous state. +** - The background color is dynamically calculated based on the album art. +** +** Parameters: +** None +** +** Returns: +** void +** =================================================================== +*/ +void HomeView::clearAndPaintScreen() +{ + SpotifyPlayer *pSP = &SpotifyPlayer::getInstance(); + PlayingMetadata playing = pSP->getCurrentlyPlayingMetadata(); + + spLogV(LOGTAG_GUI, "Song has changed or the UI is dirty. Painting."); + + _forceUpdate = true; + + ///// Get cover art file path + + String filePath = SP_NO_COVER_JPG_FILENAME; + + const int TARGET_IMAGE_SIZE = 300; + + for (int i = 0; i < playing.numImages; i++) + { + if ((playing.albumImages[i].height == TARGET_IMAGE_SIZE) + && (playing.albumImages[i].width == TARGET_IMAGE_SIZE)) + { + filePath = SpotifyArtMgr::getInstance()->getLocalFileName(playing.albumImages[i].url); + break; + } + } + + ///// Calculate background color and clear screen + + TFTColor c = _pUI->calculateAverageColor(filePath.c_str()); + _pUI->setBackground(c, false); //true); + _pUI->clearScreenHome(); + + + ///// Draw album art + + _pUI->setJpgScaleToSmall(true); + _pUI->drawAlbumArt(10, 10, filePath); + + ///// Draw control buttons + + _pPreviousElement->render(false); + _pPauseElement->render(false); + _pNextElement->render(false); + + ///// Draw progress bar. Draw 0 percent one to force bar to be fully cleared + ///// otherwise the black will be erased by the screen clear + spLogV(LOGTAG_GUI, "Updating progress bar with percentage: %u", _displayPercentage); + _pUI->drawProgressBar(10, 170, 460, 20, 0, TFTColor::White, TFTColor::DarkGreen); + + ///// Draw album details + _pUI->drawTextToLCD(truncateString(playing.trackName, 36).c_str(), 200, 24, false); + _pUI->drawTextToLCD(truncateString(playing.albumName, 50).c_str(),230, 18, false); + _pUI->drawTextToLCD(truncateString(playing.getArtistsList(800).c_str(), 50).c_str(),254, 18, false); + + ///// Draw play duration + _pUI->rDrawString("-:--", 220, 287, 20, TFTColor::DarkGreen, TFTColor::Black,"XX:XX:XX"); + std::string duration = "/"+_pUI->formatTime(playing.durationMs); + _pUI->lDrawString(duration.c_str(), 223, 287, 20, TFTColor::DarkGreen, TFTColor::Black,"XX:XX:XX"); + handleProgressBar(); + + ///// Draw play status + _pUI->lDrawString("Refreshing", 10, 287, 20, TFTColor::DarkGreen, TFTColor::Black,"Track Playing"); + + ///// Draw clock + handleClock(true); + +} + +/* +** =================================================================== +** handle_UUM_IDLE() +** =================================================================== +*/ +void HomeView::handle_UM_IDLE(SCUIMessage *pMessage) +{ + const unsigned long delayBetweenRequests = 500; + + // Every period refresh the display + if (millis() > _requestDueTime) + { + drawUI(); + _requestDueTime = millis() + delayBetweenRequests; + } + +} \ No newline at end of file diff --git a/src/UIViews/HomeView.h b/src/UIViews/HomeView.h new file mode 100644 index 0000000..cc5e7fe --- /dev/null +++ b/src/UIViews/HomeView.h @@ -0,0 +1,58 @@ +/*------------------------------------------------------------------------------------------------- +** +** HomeView.h +** +** Implements the default HomeView for the Spotify controller UI, displaying +** track metadata, album art, control buttons, and current playback progress. +** Inherits from UIView and handles rendering and touch interactions for the +** main screen. Includes methods for managing UI refresh cycles and state. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-21 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once +#include "UIView.h" + +/* +** =================================================================== +** Class: HomeView +** +** Purpose: +** Implements the default display mode, showing song, album, and +** artist details over cover art. +** =================================================================== +*/ +class HomeView : public UIView +{ +public: + explicit HomeView(DisplayUI *pUI); // Constructor + virtual void initializeUIElements() override; + void drawUI() override; + virtual void handle_UM_IDLE(SCUIMessage *pMessage) override; + +protected: + void enteringView() override; + +private: + // Time management variables + unsigned long _requestDueTime = 0; // time when request due + bool _forceUpdate = false; // should an UI refresh be forced? + uint8_t _displayPercentage = 0; // what is being displayed as the percentage + long _forecastedProgressMS = 0; // forcasted progress into the song + + bool refreshPlayingProgress(); + void handleProgressBar(); + void handlePlayStatus(); + void handleClock(bool isPaintForced); + void clearAndPaintScreen(); + + + + +}; \ No newline at end of file diff --git a/src/UIViews/Renderers/BackButtonRenderer.cpp b/src/UIViews/Renderers/BackButtonRenderer.cpp new file mode 100644 index 0000000..e9562ba --- /dev/null +++ b/src/UIViews/Renderers/BackButtonRenderer.cpp @@ -0,0 +1,57 @@ +/*------------------------------------------------------------------------------------------------- +** +** BackButtonRenderer.cpp +** +** Renders a "Back" or "Previous Track" UI button for the Spotify controller interface. +** Changes its appearance when pressed and draws a corresponding back arrow icon. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + + +#include "BackButtonRenderer.h" +#include "../UIElement.h" + +/* +** =================================================================== +** render() +** Renders the "Previous Track" button. +** +** Parameters: +** element - Reference to the UI element being rendered. +** isPressed - Indicates whether the button is pressed. +** +** Notes: +** - Uses TFT_eSPI to draw a "Previous Track" icon. +** - Changes appearance when pressed. +** =================================================================== +*/ +void BackButtonRenderer::render(const UIElement& element, bool isPressed) +{ + // MARGIN is used here and in the including view to provide a larger touch target + const int MARGIN = 10; + _pUI->drawBlankButton(element.getX() + MARGIN, element.getY() + MARGIN, element.getWidth() - (MARGIN * 2), element.getHeight() - (MARGIN * 2), 2, TFTColor::SC_NetworkSuccess, isPressed); + _pUI->drawBackIcon(element.getX() + MARGIN, element.getY() + MARGIN, element.getWidth() - (MARGIN * 2), element.getHeight() - (MARGIN * 2)); +} + +/* +** =================================================================== +** drawIcon() +** Abstract method for rendering a button's unique icon. +** +** Parameters: +** x, y - Top-left coordinates for the icon. +** width, height - Dimensions for the icon. +** color - Color to use for the icon. +** =================================================================== +*/ +void BackButtonRenderer::drawIcon(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t color) +{ + _pUI->drawSkipTrackIcon(x, y, width, height, false); +} diff --git a/src/UIViews/Renderers/BackButtonRenderer.h b/src/UIViews/Renderers/BackButtonRenderer.h new file mode 100644 index 0000000..fd22420 --- /dev/null +++ b/src/UIViews/Renderers/BackButtonRenderer.h @@ -0,0 +1,52 @@ +/*------------------------------------------------------------------------------------------------- +** +** BackButtonRenderer.cpp +** +** Renders a "Back" or "Previous Track" UI button for the Spotify controller interface. +** Changes its appearance when pressed and draws a corresponding back arrow icon. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include "IUIRenderer.h" +#include "ButtonRenderer.h" + +/* +** =================================================================== +** BackButtonRenderer.h +** +** Handles rendering of the "Previous Track" button in the UI. +** +** Responsibilities: +** - Draws the button on the screen. +** - Adjusts appearance based on its pressed state. +** =================================================================== +*/ +class BackButtonRenderer : public ButtonRenderer +{ +public: + using ButtonRenderer::ButtonRenderer; + + /* + ** =================================================================== + ** render() + ** Renders the "Previous Track" button. + ** + ** Parameters: + ** element - Reference to the UI element being rendered. + ** isPressed - Indicates whether the button is pressed. + ** =================================================================== + */ + void render(const UIElement& element, bool isPressed) override; + +protected: + void drawIcon(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t color) override; +}; \ No newline at end of file diff --git a/src/UIViews/Renderers/ButtonRenderer.cpp b/src/UIViews/Renderers/ButtonRenderer.cpp new file mode 100644 index 0000000..5318c7d --- /dev/null +++ b/src/UIViews/Renderers/ButtonRenderer.cpp @@ -0,0 +1,79 @@ +/*------------------------------------------------------------------------------------------------- +** +** ButtonRenderer.cpp +** +** Base renderer for generic UI buttons. Handles button background and border +** drawing based on press state, and delegates icon rendering to derived classes. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "ButtonRenderer.h" +#include "../UIElement.h" +#include "TFT_eSPI.h" + +extern TFT_eSPI tft; // Assume an external TFT instance is used + +/* +** =================================================================== +** Constructor (default) +** Initializes the ButtonRenderer without a UI reference. +** =================================================================== +*/ +ButtonRenderer::ButtonRenderer() : _pUI(nullptr) +{ +} + +/* +** =================================================================== +** Constructor (with DisplayUI) +** Initializes the ButtonRenderer with a reference to DisplayUI. +** +** Parameters: +** pUI - Pointer to the DisplayUI instance. +** =================================================================== +*/ +ButtonRenderer::ButtonRenderer(DisplayUI* pUI) : _pUI(pUI) +{ +} + +/* +** =================================================================== +** render() +** Renders a button with a customizable icon. +** +** Parameters: +** element - Reference to the UI element being rendered. +** isPressed - Indicates whether the button is pressed. +** +** Notes: +** - Draws a button with a rounded rectangle. +** - Calls `drawIcon()` to render the specific button symbol. +** =================================================================== +*/ +void ButtonRenderer::render(const UIElement& element, bool isPressed) +{ + int16_t x = element.getX(); + int16_t y = element.getY(); + int16_t width = element.getWidth(); + int16_t height = element.getHeight(); + + // Define colors based on button state + uint16_t bgColor = isPressed ? TFT_DARKGREY : TFT_BLACK; + uint16_t borderColor = isPressed ? TFT_WHITE : TFT_LIGHTGREY; + + // Draw button background + tft.fillRoundRect(x, y, width, height, 5, bgColor); + + // Draw button border + tft.drawRoundRect(x, y, width, height, 5, borderColor); + + // Draw the icon (specific to the derived class) + drawIcon(x + width / 4, y + height / 4, width / 2, height / 2, borderColor); +} \ No newline at end of file diff --git a/src/UIViews/Renderers/ButtonRenderer.h b/src/UIViews/Renderers/ButtonRenderer.h new file mode 100644 index 0000000..a6fe6e6 --- /dev/null +++ b/src/UIViews/Renderers/ButtonRenderer.h @@ -0,0 +1,100 @@ +/*------------------------------------------------------------------------------------------------- +** +** ButtonRenderer.h +** +** Base renderer for generic UI buttons. Handles button background and border +** drawing based on press state, and delegates icon rendering to derived classes. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include "IUIRenderer.h" +#include "../../DisplayUI.h" + +/* +** =================================================================== +** ButtonRenderer +** Base class for all button renderers. +** +** Responsibilities: +** - Provides common rendering logic for UI buttons. +** - Handles default button drawing, including borders and backgrounds. +** - Allows derived classes to customize icons. +** =================================================================== +*/ +class ButtonRenderer : public IUIRenderer +{ +public: + /* + ** =================================================================== + ** Constructor (default) + ** Initializes the ButtonRenderer without a UI reference. + ** =================================================================== + */ + ButtonRenderer(); + + /* + ** =================================================================== + ** Constructor (with DisplayUI) + ** Initializes the ButtonRenderer with a reference to DisplayUI. + ** + ** Parameters: + ** pUI - Pointer to the DisplayUI instance. + ** =================================================================== + */ + explicit ButtonRenderer(DisplayUI* pUI); + + /* + ** =================================================================== + ** Destructor + ** Cleans up any allocated resources. + ** =================================================================== + */ + virtual ~ButtonRenderer() = default; + + /* + ** =================================================================== + ** render() + ** Renders a button with a customizable icon. + ** + ** Parameters: + ** element - Reference to the UI element being rendered. + ** isPressed - Indicates whether the button is pressed. + ** + ** Notes: + ** - Draws a button with a rounded rectangle. + ** - Calls `drawIcon()` to render the specific button symbol. + ** =================================================================== + */ + void render(const UIElement& element, bool isPressed) override; + +protected: + /* + ** =================================================================== + ** drawIcon() + ** Abstract method for rendering a button's unique icon. + ** + ** Parameters: + ** x, y - Top-left coordinates for the icon. + ** width, height - Dimensions for the icon. + ** color - Color to use for the icon. + ** =================================================================== + */ + virtual void drawIcon(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t color) = 0; + + /* + ** =================================================================== + ** Protected Members + ** _pUI - Pointer to the DisplayUI instance. + ** =================================================================== + */ + DisplayUI* _pUI; +}; \ No newline at end of file diff --git a/src/UIViews/Renderers/IUIRenderer.h b/src/UIViews/Renderers/IUIRenderer.h new file mode 100644 index 0000000..1ccab1f --- /dev/null +++ b/src/UIViews/Renderers/IUIRenderer.h @@ -0,0 +1,53 @@ +/*------------------------------------------------------------------------------------------------- +** +** IUIRenderer.h +** +** Interface for rendering UI elements on the display. Classes implementing +** this interface must define a `render` method to draw a UIElement, either +** in its normal or pressed state. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +/* +** =================================================================== +** Interface: IUIRenderer +** +** Purpose: +** Provides an interface for rendering UI elements. +** =================================================================== +*/ +class UIElement; // Forward declaration + +class IUIRenderer +{ +public: + /* + ** =================================================================== + ** Destructor + ** Ensures proper cleanup of derived classes. + ** =================================================================== + */ + virtual ~IUIRenderer() = default; + + /* + ** =================================================================== + ** Method: render + ** Renders a UIElement. + ** + ** Parameters: + ** element - Reference to the UIElement to render. + ** isPressed - Indicates whether the element is in a pressed state. + ** =================================================================== + */ + virtual void render(const UIElement& element, bool isPressed) = 0; +}; + diff --git a/src/UIViews/Renderers/NextTrackButtonRenderer.cpp b/src/UIViews/Renderers/NextTrackButtonRenderer.cpp new file mode 100644 index 0000000..a957ea4 --- /dev/null +++ b/src/UIViews/Renderers/NextTrackButtonRenderer.cpp @@ -0,0 +1,55 @@ +/*------------------------------------------------------------------------------------------------- +** +** NextTrackButtonRenderer.cpp +** +** Renders the "Next Track" button in the Spotify controller UI. Draws a forward-skip +** icon and adjusts visual state when pressed, using the DisplayUI drawing helpers. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "NextTrackButtonRenderer.h" +#include "../UIElement.h" + +/* +** =================================================================== +** render() +** Renders the "Previous Track" button. +** +** Parameters: +** element - Reference to the UI element being rendered. +** isPressed - Indicates whether the button is pressed. +** +** Notes: +** - Uses TFT_eSPI to draw a "Previous Track" icon. +** - Changes appearance when pressed. +** =================================================================== +*/ +void NextTrackButtonRenderer::render(const UIElement& element, bool isPressed) +{ + // _pUI->drawButton(element.getX(), element.getY(), isPressed); + _pUI->drawBlankButton(element.getX(), element.getY(), element.getWidth(), element.getHeight(), 2, TFTColor::White, isPressed); + _pUI->drawSkipTrackIcon(element.getX(), element.getY(), element.getWidth(), element.getHeight(), false); +} + +/* +** =================================================================== +** drawIcon() +** Abstract method for rendering a button's unique icon. +** +** Parameters: +** x, y - Top-left coordinates for the icon. +** width, height - Dimensions for the icon. +** color - Color to use for the icon. +** =================================================================== +*/ +void NextTrackButtonRenderer::drawIcon(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t color) +{ + _pUI->drawSkipTrackIcon(x, y, width, height, false); +} diff --git a/src/UIViews/Renderers/NextTrackButtonRenderer.h b/src/UIViews/Renderers/NextTrackButtonRenderer.h new file mode 100644 index 0000000..b513f39 --- /dev/null +++ b/src/UIViews/Renderers/NextTrackButtonRenderer.h @@ -0,0 +1,52 @@ +/*------------------------------------------------------------------------------------------------- +** +** NextTrackButtonRenderer.h +** +** Renders the "Next Track" button in the Spotify controller UI. Draws a forward-skip +** icon and adjusts visual state when pressed, using the DisplayUI drawing helpers. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include "IUIRenderer.h" +#include "ButtonRenderer.h" + +/* +** =================================================================== +** NextTrackButtonRenderer.h +** +** Handles rendering of the "Previous Track" button in the UI. +** +** Responsibilities: +** - Draws the button on the screen. +** - Adjusts appearance based on its pressed state. +** =================================================================== +*/ +class NextTrackButtonRenderer : public ButtonRenderer +{ +public: + using ButtonRenderer::ButtonRenderer; + + /* + ** =================================================================== + ** render() + ** Renders the "Previous Track" button. + ** + ** Parameters: + ** element - Reference to the UI element being rendered. + ** isPressed - Indicates whether the button is pressed. + ** =================================================================== + */ + void render(const UIElement& element, bool isPressed) override; + +protected: + void drawIcon(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t color) override; +}; \ No newline at end of file diff --git a/src/UIViews/Renderers/PlayPauseButtonRenderer.cpp b/src/UIViews/Renderers/PlayPauseButtonRenderer.cpp new file mode 100644 index 0000000..22c0e51 --- /dev/null +++ b/src/UIViews/Renderers/PlayPauseButtonRenderer.cpp @@ -0,0 +1,65 @@ +/*------------------------------------------------------------------------------------------------- +** +** PlayPauseButtonRenderer.cpp +** +** Renders the play/pause toggle button in the Spotify controller UI. +** Displays either a play or pause icon based on the playback state +** retrieved from the SpotifyPlayer singleton. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "PlayPauseButtonRenderer.h" +#include "SpotifyPlayer.h" +#include "../UIElement.h" + +/* +** =================================================================== +** render() +** Renders the "Previous Track" button. +** +** Parameters: +** element - Reference to the UI element being rendered. +** isPressed - Indicates whether the button is pressed. +** +** Notes: +** - Uses TFT_eSPI to draw a "Previous Track" icon. +** - Changes appearance when pressed. +** =================================================================== +*/ +void PlayPauseButtonRenderer::render(const UIElement& element, bool isPressed) +{ + // _pUI->drawButton(element.getX(), element.getY(), isPressed); + _pUI->drawBlankButton(element.getX(), element.getY(), element.getWidth(), element.getHeight(), 2, TFTColor::White, isPressed); + + if (SpotifyPlayer::getInstance().getCurrentlyPlayingMetadata().isPlaying) + { + _pUI->drawPauseTrackIcon(element.getX(), element.getY(), element.getWidth(), element.getHeight()); + } + else + { + _pUI->drawPlayTrackIcon(element.getX(), element.getY(), element.getWidth(), element.getHeight()); + } + +} + +/* +** =================================================================== +** drawIcon() +** Abstract method for rendering a button's unique icon. +** +** Parameters: +** x, y - Top-left coordinates for the icon. +** width, height - Dimensions for the icon. +** color - Color to use for the icon. +** =================================================================== +*/ +void PlayPauseButtonRenderer::drawIcon(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t color) +{ +} diff --git a/src/UIViews/Renderers/PlayPauseButtonRenderer.h b/src/UIViews/Renderers/PlayPauseButtonRenderer.h new file mode 100644 index 0000000..c28fc92 --- /dev/null +++ b/src/UIViews/Renderers/PlayPauseButtonRenderer.h @@ -0,0 +1,53 @@ +/*------------------------------------------------------------------------------------------------- +** +** PlayPauseButtonRenderer.h +** +** Renders the play/pause toggle button in the Spotify controller UI. +** Displays either a play or pause icon based on the playback state +** retrieved from the SpotifyPlayer singleton. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include "IUIRenderer.h" +#include "ButtonRenderer.h" + +/* +** =================================================================== +** PlayPauseButtonRenderer +** +** Handles rendering of the "Previous Track" button in the UI. +** +** Responsibilities: +** - Draws the button on the screen. +** - Adjusts appearance based on its pressed state. +** =================================================================== +*/ +class PlayPauseButtonRenderer : public ButtonRenderer +{ +public: + using ButtonRenderer::ButtonRenderer; + + /* + ** =================================================================== + ** render() + ** Renders the "Previous Track" button. + ** + ** Parameters: + ** element - Reference to the UI element being rendered. + ** isPressed - Indicates whether the button is pressed. + ** =================================================================== + */ + void render(const UIElement& element, bool isPressed) override; + +protected: + void drawIcon(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t color) override; +}; \ No newline at end of file diff --git a/src/UIViews/Renderers/PreviousTrackButtonRenderer.cpp b/src/UIViews/Renderers/PreviousTrackButtonRenderer.cpp new file mode 100644 index 0000000..227fa91 --- /dev/null +++ b/src/UIViews/Renderers/PreviousTrackButtonRenderer.cpp @@ -0,0 +1,54 @@ +/*------------------------------------------------------------------------------------------------- +** +** PreviousTrackButtonRenderer.cpp +** +** Renders the "Previous Track" button in the Spotify controller UI. Draws a back-skip +** icon and adjusts visual state when pressed, using the DisplayUI drawing helpers. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "PreviousTrackButtonRenderer.h" +#include "../UIElement.h" + +/* +** =================================================================== +** render() +** Renders the "Previous Track" button. +** +** Parameters: +** element - Reference to the UI element being rendered. +** isPressed - Indicates whether the button is pressed. +** +** Notes: +** - Uses TFT_eSPI to draw a "Previous Track" icon. +** - Changes appearance when pressed. +** =================================================================== +*/ +void PreviousTrackButtonRenderer::render(const UIElement& element, bool isPressed) +{ + // _pUI->drawButton(element.getX(), element.getY(), isPressed); + _pUI->drawBlankButton(element.getX(), element.getY(), element.getWidth(), element.getHeight(), 2, TFTColor::White, isPressed); + _pUI->drawSkipTrackIcon(element.getX(), element.getY(), element.getWidth(), element.getHeight(), true); +} + +/* +** =================================================================== +** drawIcon() +** Abstract method for rendering a button's unique icon. +** +** Parameters: +** x, y - Top-left coordinates for the icon. +** width, height - Dimensions for the icon. +** color - Color to use for the icon. +** =================================================================== +*/ +void PreviousTrackButtonRenderer::drawIcon(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t color) +{ +} diff --git a/src/UIViews/Renderers/PreviousTrackButtonRenderer.h b/src/UIViews/Renderers/PreviousTrackButtonRenderer.h new file mode 100644 index 0000000..03ecc97 --- /dev/null +++ b/src/UIViews/Renderers/PreviousTrackButtonRenderer.h @@ -0,0 +1,51 @@ +/*------------------------------------------------------------------------------------------------- +** +** PreviousTrackButtonRenderer.h +** +** Renders the "Previous Track" button in the Spotify controller UI. Draws a back-skip +** icon and adjusts visual state when pressed, using the DisplayUI drawing helpers. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-22 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ +#pragma once + +#include "IUIRenderer.h" +#include "ButtonRenderer.h" + +/* +** =================================================================== +** PreviousTrackButtonRenderer +** +** Handles rendering of the "Previous Track" button in the UI. +** +** Responsibilities: +** - Draws the button on the screen. +** - Adjusts appearance based on its pressed state. +** =================================================================== +*/ +class PreviousTrackButtonRenderer : public ButtonRenderer +{ +public: + using ButtonRenderer::ButtonRenderer; + + /* + ** =================================================================== + ** render() + ** Renders the "Previous Track" button. + ** + ** Parameters: + ** element - Reference to the UI element being rendered. + ** isPressed - Indicates whether the button is pressed. + ** =================================================================== + */ + void render(const UIElement& element, bool isPressed) override; + +protected: + void drawIcon(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t color) override; +}; \ No newline at end of file diff --git a/src/UIViews/UIElement.cpp b/src/UIViews/UIElement.cpp new file mode 100644 index 0000000..a09c733 --- /dev/null +++ b/src/UIViews/UIElement.cpp @@ -0,0 +1,78 @@ +/*------------------------------------------------------------------------------------------------- +** +** UIElement.cpp +** +** Represents a rectangular UI element on the display, providing basic +** hit testing and rendering capabilities. Can be used as a pressable +** touch zone or paired with a renderer to draw visual elements. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-26 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "UIElement.h" + +/* +** Constructor +** Initializes the UI element with its position and dimensions. +*/ +UIElement::UIElement(int16_t x, int16_t y, int16_t width, int16_t height, std::shared_ptr renderer) + : _x(x), + _y(y), + _width(width), + _height(height), + _renderer(std::move(renderer)) +{ +} + +/* +** Constructor (touch zone only, no renderer) +** Initializes the UI element as a non-rendering touch zone. +*/ +UIElement::UIElement(int16_t x, int16_t y, int16_t width, int16_t height) + : _x(x), + _y(y), + _width(width), + _height(height), + _renderer(nullptr) +{ +} + +/* +** isPressed() +** Determines if a touch point is within the bounds of this UI element. +** +** Returns: +** True if the point lies within the rectangle, otherwise false. +*/ +bool UIElement::isPressed(const TS_Point& point) const +{ + return (point.x >= _x + && point.x <= (_x + _width) + && point.y >= _y + && point.y <= (_y + _height)); +} + +/* +** render() +** Calls the assigned renderer to render this UIElement. +** +** Parameters: +** isPressed - Indicates whether the element is in a pressed state. +** +** Notes: +** If a renderer is assigned, it will be invoked to draw the element. +** Otherwise, this function does nothing. +*/ +void UIElement::render(bool isPressed) const +{ + if (_renderer) + { + _renderer->render(*this, isPressed); + } +} diff --git a/src/UIViews/UIElement.h b/src/UIViews/UIElement.h new file mode 100644 index 0000000..8d28828 --- /dev/null +++ b/src/UIViews/UIElement.h @@ -0,0 +1,76 @@ +/*------------------------------------------------------------------------------------------------- +** +** UIElement.h +** +** Represents a rectangular UI element on the display, providing basic +** hit testing and rendering capabilities. Can be used as a pressable +** touch zone or paired with a renderer to draw visual elements. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-26 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once +#include +#include "FT6236TouchController/FT6236.h" +#include "Renderers/IUIRenderer.h" + +/* +** =================================================================== +** UIElement +** Represents a rectangular UI element on the display. +** =================================================================== +*/ +class UIElement +{ +public: + // Constructor to define the UI element's position and dimensions + UIElement(int16_t x, int16_t y, int16_t width, int16_t height, std::shared_ptr renderer); + UIElement(int16_t x, int16_t y, int16_t width, int16_t height); + + /* + ** isPressed() + ** Checks if a given point is within the bounds of this UI element. + ** + ** Parameters: + ** point - The touch point to check. + ** + ** Returns: + ** True if the point is within the bounds, otherwise false. + */ + bool isPressed(const TS_Point& point) const; + + /* + ** =================================================================== + ** render() + ** Calls the assigned renderer to render this UIElement. + ** + ** Parameters: + ** isPressed - Indicates whether the element is in a pressed state. + ** =================================================================== + */ + void render(bool isPressed) const; + + /* + ** =================================================================== + ** Accessors + ** Provides read-only access to UIElement properties. + ** =================================================================== + */ + int16_t getX() const { return _x; } + int16_t getY() const { return _y; } + int16_t getWidth() const { return _width; } + int16_t getHeight() const { return _height; } + +private: + int16_t _x; // X-coordinate of the top-left corner + int16_t _y; // Y-coordinate of the top-left corner + int16_t _width; // Width of the element + int16_t _height; // Height of the element + std::shared_ptr _renderer; ///< Renderer instance for drawing the element. +}; \ No newline at end of file diff --git a/src/UIViews/UIView.cpp b/src/UIViews/UIView.cpp new file mode 100644 index 0000000..8a162e5 --- /dev/null +++ b/src/UIViews/UIView.cpp @@ -0,0 +1,395 @@ +/*------------------------------------------------------------------------------------------------- +** +** UIView.cpp +** +** Abstract base class for UI views in the Spotify controller. Each view defines +** its own rendering behavior and touch handling logic. Provides shared logic +** for message handling, initialization, and screen transitions. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-21 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#include "UIView.h" +#include "DisplayUI.h" +#include "SCLogger.h" +#include "logTags.h" +#include "UIViewManager.h" + +#include // Assuming Arduino framework for Serial.print +#include // Required for std::make_unique and std::unique_ptr + +/* +** =================================================================== +** initialize() +** Prepares the display mode by displaying a setup message. +** =================================================================== +*/ +void UIView::initialize() +{ + initializeUIElements(); +} + +/* +** =================================================================== +** UIView Constructor +** Initializes the UIView object with the provided DisplayUI +** object and sets up default UI elements. +** +** Parameters: +** pUI - Pointer to the DisplayUI object, which provides rendering +** capabilities and access to the display context. +** +** Purpose: +** - Store the reference to the DisplayUI object for use in UI +** rendering and interaction. +** - Call the initializeUIElements() method to set up default +** positions and sizes for the UI elements. +** +** Notes: +** - This constructor assumes that the DisplayUI object passed in +** has been properly initialized by the caller. +** - The initializeUIElements() method can be overridden in +** subclasses to customize the UI layout for specific display modes. +** +** =================================================================== +*/ +UIView::UIView(DisplayUI *pUI) +{ + _pUI = pUI; +} + +/* +** =================================================================== +** initializeUIElements +** Initializes the UI elements with default positions and sizes. +** +** Purpose: +** - Assign default values to the UI elements (e.g., pause, previous, +** next, and toggle art buttons). +** - This method can be overridden or extended by subclasses to +** provide a custom layout specific to the display mode. +** +** Notes: +** - Default values are provided as placeholders; real positions +** and dimensions should be adjusted as needed. +** - Uses std::unique_ptr to manage the UIElement objects, ensuring +** proper memory management and avoiding manual cleanup. +** +** =================================================================== +*/ +void UIView::initializeUIElements() +{ + + // spLogI(LOGTAG_GENERAL,"UIView::initializeUIElements() "); + + // Assign default positions and sizes for UI elements + // 480x320 + + if (!_pPauseElement) + { + _pPauseElement = std::make_unique(101, 0, 259, 120); + } + + if (!_pPreviousElement) + { + _pPreviousElement = std::make_unique( 0, 0, 100, 120); + } + + if (!_pNextElement) + { + _pNextElement = std::make_unique(360, 0, 100, 120); + } + + if (!_pGotoCoverArtElement) + { + _pGotoCoverArtElement = std::make_unique(120, 121, 160, 200); + } + + if (!_pGotoClockElement) + { + _pGotoClockElement = std::make_unique(280, 121, 200, 100); + } + + if (!_pGotoDiagnosticElement) + { + _pGotoDiagnosticElement = std::make_unique(280, 221, 200, 100); + } + + if (!_pReturnViewElement) + { + _pReturnViewElement = std::make_unique( 0, 121, 119, 200); + } + +} + +/* +** =================================================================== +** enteringView() +** =================================================================== +*/ +void UIView::enteringView() +{ + + _pUI->setSplitBackground(false); + + // Make sure the UI is painted fresh + _pUI->markUIDirty(true); + + drawUI(); +} + +/* +** =================================================================== +** leavingView() +** =================================================================== +*/ +void UIView::leavingView() +{ + // _pUI->setBackground(TFTColor::Black, true); + // spLogI(LOGTAG_GENERAL, "*** ENTERING UIView::leavingView() ==="); + _pUI->clearScreen(); + // spLogI(LOGTAG_GENERAL, "*** EXITING UIView::leavingView() ==="); + +} + +/* +** =================================================================== +** onTouchDown() +** Handles the event when the screen is touched (press event). +** +** Parameters: +** point - The touch point representing the coordinates of the press +** event on the screen. +** +** Notes: +** - Default implementation logs the touch-down event. Derived classes +** can override this to provide specific behavior. +** =================================================================== +*/ +void UIView::onTouchDown(const TS_Point& point) +{ + spLogD(LOGTAG_DISPLAY_MODE, "Default onTouchDown at (%d, %d)", point.x, point.y); + + // Spotify Player + SpotifyPlayer& spotifyPlayer = SpotifyPlayer::getInstance(); + + if (_pPauseElement + && _pPauseElement->isPressed(point)) + { + _pUI->showTouchDown(TFTColor::SC_PauseTrack); + _pPauseElement->render(true); + spotifyPlayer.pauseSong(); + } + else if (_pPreviousElement + && _pPreviousElement->isPressed(point)) + { + _pUI->showTouchDown(TFTColor::SC_PreviousTrack); + _pPreviousElement->render(true); + spotifyPlayer.previousSong(); + // spotifyPlayer.refreshCurrentTrack(); + } + else if (_pNextElement + && _pNextElement->isPressed(point)) + { + _pUI->showTouchDown(TFTColor::SC_NextTrack); + _pNextElement->render(true); + spotifyPlayer.nextSong(); + // spotifyPlayer.refreshCurrentTrack(); + } + else if (_pGotoCoverArtElement + && _pGotoCoverArtElement->isPressed(point)) + { + // Handle art button press + // UIViewManager::getInstance().advanceView(); + UIViewManager::getInstance().gotoView(UIViewManager::ViewID::Cover); + } + else if (_pGotoDiagnosticElement + && _pGotoDiagnosticElement->isPressed(point)) + { + // Handle goto Diagnostic view + UIViewManager::getInstance().gotoView(UIViewManager::ViewID::Diagnostics); + } + else if (_pReturnViewElement + && _pReturnViewElement->isPressed(point)) + { + // Handle return view + _pReturnViewElement->render(true); + if (!UIViewManager::getInstance().exitView()) + { + // if top view, simply force a refresh + UIViewManager::getInstance().getActiveView()->drawUI(); + } + } + else if (_pGotoClockElement + && _pGotoClockElement->isPressed(point)) + { + // Handle got Clock view + UIViewManager::getInstance().gotoView(UIViewManager::ViewID::Clock); + } +} + +/* +** =================================================================== +** onTouchUp() +** Handles the event when the screen touch is lifted (release event). +** +** Parameters: +** point - The touch point representing the coordinates of the release +** event on the screen. +** +** Notes: +** - Default implementation logs the touch-up event. Derived classes +** can override this to provide specific behavior. +** =================================================================== +*/ +void UIView::onTouchUp() +{ + spLogD(LOGTAG_DISPLAY_MODE, "Default onTouchUp()"); + _pUI->showTouchUp(); + _pPreviousElement->render(false); + _pPauseElement->render(false); + _pNextElement->render(false); + _pReturnViewElement->render(false); +} + +/* +** =================================================================== +** handleMessage() +** =================================================================== +*/ +void UIView::handleMessage(SCUIMessage *pMessage) +{ + switch (pMessage->type) + { + case SCUIMessageType::UM_IDLE: + handle_UM_IDLE(pMessage); + break; + case SCUIMessageType::UM_STATUS_BOX: + handle_UM_STATUS_BOX(pMessage); + break; + case SCUIMessageType::UM_DOWNLOAD_BOX: + handle_UM_DOWNLOAD_BOX(pMessage); + break; + case SCUIMessageType::UM_MARK_DIRTY: + handle_UM_MARK_DIRTY(pMessage); + break; + case SCUIMessageType::UM_PLAYER_REFRESH: + handle_UM_PLAYER_REFRESH(pMessage); + break; + default: + spLogW(LOGTAG_GUI, "Unknown message type received."); + break; + } +} + +/* +** =================================================================== +** handle_UM_STATUS_BOX() +** is the provided color is negative, use the existing background +** color. +** =================================================================== +*/ +void UIView::handle_UM_STATUS_BOX(SCUIMessage *pMessage) +{ + TFTColor c = TFTColor::Black; + + if (!_pUI->isSplitBackground()) + { + c = _pUI->getBackground(); + } + + if (pMessage->num > 0) + { + c = static_cast(pMessage->num); + } + _pUI->drawStatusBox(c); +} + +/* +** =================================================================== +** handle_UM_DOWNLOAD_BOX() +** =================================================================== +*/ +void UIView::handle_UM_DOWNLOAD_BOX(SCUIMessage *pMessage) +{ + bool isDownloadComplete = pMessage->num; // Get the status + _pUI->drawDownloadIndicator(isDownloadComplete); +} + +/* +** =================================================================== +** handle_UM_MARK_DIRTY() +** =================================================================== +*/ +void UIView::handle_UM_MARK_DIRTY(SCUIMessage *pMessage) +{ + bool isDirty = pMessage->num; // Get the status + _pUI->markUIDirty(isDirty); +} + +/* +** =================================================================== +** handle_UM_PLAYER_REFRESH() +** =================================================================== +*/ +void UIView::handle_UM_PLAYER_REFRESH(SCUIMessage *pMessage) +{ + bool isNewTrackReady = pMessage->num; // Get whether this is a new track + + drawUI(); + +} + +/* +** =================================================================== +** checkAndHandleNoMusicAvailable() +** Checks if music is available and handles the "Waiting for song" +** message if necessary. +** +** Description: +** This method checks if music is currently available through the +** SpotifyPlayer instance. If no music is available, it updates the +** UI to display a "Waiting for song..." message, sets the background, +** and logs the event. +** +** Returns: +** true - If the "Waiting for song" message was shown. +** false - If music is available, or no action was taken. +** =================================================================== +*/ +bool UIView::checkAndHandleNoMusicAvailable() +{ + SpotifyPlayer *pSP = &SpotifyPlayer::getInstance(); + + if (pSP->isMusicAvailable() == false) + { + if (!_isWaitingMessageShowing) + { + spLogI(LOGTAG_GUI, "drawCurrentlyPlayingToLCD() - Empty track. Draw Waiting for song..."); + _pUI->setBackground(TFTColor::SC_DJX_BG, true); + _pUI->drawTextToLCD("Music is unavailable",110); + _pUI->drawTextToLCD("Waiting for song...",150); + _isWaitingMessageShowing = true; + } + return _isWaitingMessageShowing; + } + _isWaitingMessageShowing = false; + + return _isWaitingMessageShowing; +} + +/* +** =================================================================== +** handle_UUM_IDLE() +** =================================================================== +*/ +void UIView::handle_UM_IDLE(SCUIMessage *pMessage) +{ + +} \ No newline at end of file diff --git a/src/UIViews/UIView.h b/src/UIViews/UIView.h new file mode 100644 index 0000000..4186ac5 --- /dev/null +++ b/src/UIViews/UIView.h @@ -0,0 +1,96 @@ +/*------------------------------------------------------------------------------------------------- +** +** UIView.h +** +** Abstract base class for UI views in the Spotify controller. Each view defines +** its own rendering behavior and touch handling logic. Provides shared logic +** for message handling, initialization, and screen transitions. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-21 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include +#include "FT6236TouchController/FT6236.h" +#include "SpotifyPlayer.h" +#include "UIElement.h" + +/* +** =================================================================== +** Abstract Base Class: UIView +** +** Purpose: +** Provides an interface for defining display modes in the UI. Each +** display mode defines specific rendering behavior and may include +** common setup logic shared across modes. +** +** Notes: +** - Derived classes must implement the `drawUI` method. +** - Includes a concrete utility method for displaying messages. +** =================================================================== +*/ +class UIView +{ +public: + + UIView(DisplayUI *pUI); + virtual ~UIView() = default; + + // =================================================================== + virtual void drawUI() = 0; + virtual void handleMessage(SCUIMessage *pMessage); + + // =================================================================== + virtual void onTouchDown(const TS_Point& point); + virtual void onTouchUp(); + + // =================================================================== + void initialize(); + +protected: + + // Player + SpotifyPlayer& _spotifyPlayer = SpotifyPlayer::getInstance(); + + // UI Elements + std::unique_ptr _pPauseElement; + std::unique_ptr _pPreviousElement; + std::unique_ptr _pNextElement; + std::unique_ptr _pGotoCoverArtElement; + std::unique_ptr _pGotoDiagnosticElement; + std::unique_ptr _pGotoClockElement; + std::unique_ptr _pReturnViewElement; + + // UI + DisplayUI *_pUI; + bool _isWaitingMessageShowing = false; + + // Protected method to initialize UI elements + virtual void initializeUIElements(); + + // Transitions + virtual void enteringView(); + virtual void leavingView(); + + // UI Messages to support + virtual void handle_UM_IDLE(SCUIMessage *pMessage); // UM_IDLE + virtual void handle_UM_STATUS_BOX(SCUIMessage *pMessage); // UM_STATUS_BOX + virtual void handle_UM_DOWNLOAD_BOX(SCUIMessage *pMessage); // UM_DOWNLOAD_BOX + virtual void handle_UM_MARK_DIRTY(SCUIMessage *pMessage); // UM_MAKE_DIRTY + virtual void handle_UM_PLAYER_REFRESH(SCUIMessage *pMessage); // UM_PLAYER_REFRESH + + // UI Refresh methods + virtual bool checkAndHandleNoMusicAvailable(); + + // Let the UIViewManager to call the transition methods. + friend class UIViewManager; + + +}; diff --git a/src/UIViews/UIViewManager.cpp b/src/UIViews/UIViewManager.cpp new file mode 100644 index 0000000..952c32d --- /dev/null +++ b/src/UIViews/UIViewManager.cpp @@ -0,0 +1,208 @@ +/*------------------------------------------------------------------------------------------------- +** +** UIViewManager.cpp +** +** Manages display modes for the Spotify controller UI. Implements a singleton +** that lazily initializes and switches between different UIView screens using +** a stack to track navigation history and enable return functionality. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-26 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + + +#include "UIViewManager.h" +#include "CoverView.h" +#include "HomeView.h" +#include "DiagnosticsView.h" +#include "ClockView.h" + +/* +** =================================================================== +** UIViewManager::UIViewManager() +** Constructor initializes the display manager. +** =================================================================== +*/ +UIViewManager::UIViewManager() +{ +} + +/* +** =================================================================== +** getInstance() +** Returns the singleton instance of UIViewManager. +** =================================================================== +*/ +UIViewManager& UIViewManager::getInstance() +{ + static UIViewManager instance; + return instance; +} + +/* +** =================================================================== +** setDisplayUI() +** Sets the DisplayUI instance to be used by the display modes and +** initializes the display modes if they haven't been initialized. +** +** Parameters: +** pUI - Pointer to the DisplayUI instance. +** =================================================================== +*/ +void UIViewManager::setDisplayUI(DisplayUI *pUI) +{ + if (!_isInitialized + && pUI != nullptr) + { + initializeViews(pUI); + _isInitialized = true; + } +} + +/* +** =================================================================== +** getActiveView() +** Returns the current display mode. +** +** Returns: +** The currently active display mode as a UIView pointer. +** =================================================================== +*/ +UIView* UIViewManager::getActiveView() const +{ + return _pCurrentView; +} + +/* +** =================================================================== +** setViewID() +** Changes the active display mode. +** +** Parameters: +** id - ViewID representing the new display mode. +** =================================================================== +*/ +void UIViewManager::setViewID(ViewID id) +{ + if (_pCurrentView) + { + _pCurrentView->leavingView(); + } + + _pCurrentView = _views[static_cast(id)].get(); + _currentViewID = id; + + if (_pCurrentView) + { + _pCurrentView->enteringView(); + } +} + +/* +** =================================================================== +** advanceView() +** Advances to the next display mode in sequence. +** =================================================================== +*/ +void UIViewManager::advanceView() +{ + if (!_isInitialized) + { + return; // Do nothing if not initialized + } + + // Determine the next view in the sequence + ViewID nextView = static_cast((static_cast(_currentViewID) + 1) % NUM_DISPLAY_MODES); + + // Switch to the next view + setViewID(nextView); +} + +/* +** =================================================================== +** gotoView() +** Sets the active view to the given view ID, pushing the current +** view onto the stack before switching. +** +** Parameters: +** id - ViewID representing the new view to switch to. +** =================================================================== +*/ +void UIViewManager::gotoView(ViewID id) +{ + if (_currentViewID == id) + { + return; // Already in the requested view + } + + if (static_cast(id) < NUM_DISPLAY_MODES) + { + // Push current view onto stack + _viewStack.push(_currentViewID); + + // Set new active view + setViewID(id); + } +} + +/* +** =================================================================== +** exitView() +** Returns to the previous view if possible. If the stack is empty, +** no action is taken and false is returned. +** +** Returns: +** true - If successfully switched to a previous view. +** false - If already at the root view. +** =================================================================== +*/ +bool UIViewManager::exitView() +{ + if (!_viewStack.empty()) + { + // Get the last view from the stack + ViewID previousView = _viewStack.top(); + _viewStack.pop(); + + // Set the active view to the previous view + setViewID(previousView); + return true; + } + + return false; // No previous view to return to +} + +/* +** =================================================================== +** initializeViews() +** Initializes the display modes using the provided DisplayUI +** instance. +** +** Parameters: +** pUI - Pointer to the DisplayUI instance. +** =================================================================== +*/ +void UIViewManager::initializeViews(DisplayUI *pUI) +{ + _views = { + std::make_unique(pUI), + std::make_unique(pUI), + std::make_unique(pUI), + std::make_unique(pUI) + }; + + // Call initialize() on each view to ensure UI elements are properly set up + for (auto& view : _views) { + view->initialize(); + } + + // Set the initial mode to Home + _currentViewID = ViewID::Home; + _pCurrentView = _views[static_cast(_currentViewID)].get(); + _pCurrentView->enteringView(); +} \ No newline at end of file diff --git a/src/UIViews/UIViewManager.h b/src/UIViews/UIViewManager.h new file mode 100644 index 0000000..2d57067 --- /dev/null +++ b/src/UIViews/UIViewManager.h @@ -0,0 +1,92 @@ +/*------------------------------------------------------------------------------------------------- +** +** UIViewManager.h +** +** Manages display modes for the Spotify controller UI. Implements a singleton +** that lazily initializes and switches between different UIView screens using +** a stack to track navigation history and enable return functionality. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-26 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#include "UIView.h" +#include +#include +#include + +/* +** =================================================================== +** UIViewManager +** +** Manages the different display modes for the UI. This class is +** implemented as a singleton and lazily initializes its display +** modes when `setDisplayUI()` is called with a valid DisplayUI +** instance. +** +** Responsibilities: +** - Manages and switches between different display modes. +** - Lazily initializes modes based on the provided DisplayUI. +** - Supports navigation history with a stack for returning to +** the previous view. +** =================================================================== +*/ +class UIViewManager +{ +public: + // Enum representing supported display modes + enum class ViewID : uint8_t + { + Home, // Show Song, Album, and Artist(s) over cover art + Cover, // Show only the cover art + Diagnostics, // System Stats + Clock // Clock View + }; + + // Returns the singleton instance of UIViewManager + static UIViewManager &getInstance(); + + // Sets the DisplayUI instance to be used by the display modes and + // initializes the display modes if they haven’t been initialized. + void setDisplayUI(DisplayUI *pUI); + + // Retrieves the current display mode + UIView *getActiveView() const; + + // Sets the current display mode + void setViewID(ViewID id); + + // Advances to the next display mode + void advanceView(); + + // Sets the active view to the given view ID, pushing the current + // view onto the stack before switching. + void gotoView(ViewID id); + + // Returns to the previous view if possible. Returns false if + // already at the root view. + bool exitView(); + +private: + // Private constructor to enforce singleton pattern + UIViewManager(); + + // Initializes all display modes + void initializeViews(DisplayUI *pUI); + + // Number of display modes (static constexpr to avoid compile errors) + static constexpr uint8_t NUM_DISPLAY_MODES = static_cast(ViewID::Clock) + 1; + + std::array, NUM_DISPLAY_MODES> _views; // List of all display modes + UIView * _pCurrentView = nullptr; // Active display mode + ViewID _currentViewID = ViewID::Home; // Tracks current ViewID + bool _isInitialized = false; // Initialization flag + std::stack _viewStack; // Stack for tracking navigation history +}; \ No newline at end of file diff --git a/src/connectivity.h b/src/connectivity.h deleted file mode 100644 index c9cddf7..0000000 --- a/src/connectivity.h +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT - -#pragma once - -#include - -#include "settings.h" - -void startWiFi() { - WiFi.begin(SSID, WIFI_PWD); - log_i("Connecting to WiFi '%s'...", SSID); - while (WiFi.status() != WL_CONNECTED) { - log_i("."); - delay(200); - } - log_i("...done. IP: %s, WiFi RSSI: %d.", WiFi.localIP().toString().c_str(), WiFi.RSSI()); -} diff --git a/src/fonts/cousine-bold.h b/src/fonts/cousine-bold.h new file mode 100644 index 0000000..62dd22b --- /dev/null +++ b/src/fonts/cousine-bold.h @@ -0,0 +1,1049 @@ +/*------------------------------------------------------------------------------------------------- +** +** cousine-bold.h +** +** Contains the binary font data for the Cousine Bold typeface used in the Spotify display UI. +** This header defines the glyph data for rendering fixed-width bold text on screen. +** +** SPDX-FileCopyrightText: 2025 Electric Diversions +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-03-21 - Electric Diversions - Initial version extracted from font resources +** ------------------------------------------------------------------------------------------------ +*/ + + +/* + * This file contains a C array representation of the binary file 'Cousine-Bold-subset.ttf'. + * Generated on: 2025-03-21 23:06:58 + * + * Usage: + * 1. Include this header file in your C project. + * 2. Access the binary data via the array: 'Cousine-Bold-subset[]'. + * 3. The total size of the data is stored in 'Cousine-Bold-subset_len'. + * + * Characters 'AMP1234567890 :' + * + * This file includes data from the Cousine font, which is licensed under the Apache License, Version 2.0. + * + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * This file contains a binary representation of the Cousine font, + * suitable for embedded use in C projects. + */ + + #ifndef COUSINEBOLDSUBSET_H + #define COUSINEBOLDSUBSET_H + + const unsigned char cousineBold[9928] = { + 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x04, + 0x00, 0x20, 0x46, 0x46, 0x54, 0x4D, 0x86, 0x87, 0x97, 0x7C, + 0x00, 0x00, 0x26, 0xAC, 0x00, 0x00, 0x00, 0x1C, 0x47, 0x44, + 0x45, 0x46, 0x00, 0x29, 0x00, 0x18, 0x00, 0x00, 0x21, 0x04, + 0x00, 0x00, 0x00, 0x1E, 0x47, 0x50, 0x4F, 0x53, 0x0E, 0x3F, + 0x08, 0xE2, 0x00, 0x00, 0x21, 0x78, 0x00, 0x00, 0x05, 0x34, + 0x47, 0x53, 0x55, 0x42, 0xCC, 0x4B, 0xD0, 0x25, 0x00, 0x00, + 0x21, 0x24, 0x00, 0x00, 0x00, 0x54, 0x4F, 0x53, 0x2F, 0x32, + 0xFC, 0xCF, 0xDB, 0x6D, 0x00, 0x00, 0x01, 0xA8, 0x00, 0x00, + 0x00, 0x60, 0x63, 0x6D, 0x61, 0x70, 0x21, 0xD2, 0x30, 0xF3, + 0x00, 0x00, 0x02, 0x34, 0x00, 0x00, 0x01, 0x62, 0x63, 0x76, + 0x74, 0x20, 0x8E, 0x54, 0x7C, 0x7B, 0x00, 0x00, 0x11, 0x48, + 0x00, 0x00, 0x02, 0xB2, 0x66, 0x70, 0x67, 0x6D, 0x36, 0x0B, + 0x16, 0x0C, 0x00, 0x00, 0x03, 0x98, 0x00, 0x00, 0x07, 0xB4, + 0x67, 0x61, 0x73, 0x70, 0x00, 0x16, 0x00, 0x23, 0x00, 0x00, + 0x20, 0xF4, 0x00, 0x00, 0x00, 0x10, 0x67, 0x6C, 0x79, 0x66, + 0xAB, 0xE9, 0xAD, 0xBE, 0x00, 0x00, 0x14, 0x24, 0x00, 0x00, + 0x05, 0xF4, 0x68, 0x65, 0x61, 0x64, 0x10, 0x42, 0x27, 0x3B, + 0x00, 0x00, 0x01, 0x2C, 0x00, 0x00, 0x00, 0x36, 0x68, 0x68, + 0x65, 0x61, 0x0B, 0x78, 0x02, 0x6B, 0x00, 0x00, 0x01, 0x64, + 0x00, 0x00, 0x00, 0x24, 0x68, 0x6D, 0x74, 0x78, 0x12, 0xC1, + 0x03, 0x10, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x2C, + 0x6C, 0x6F, 0x63, 0x61, 0x0D, 0x26, 0x0B, 0xD4, 0x00, 0x00, + 0x13, 0xFC, 0x00, 0x00, 0x00, 0x26, 0x6D, 0x61, 0x78, 0x70, + 0x04, 0x5B, 0x00, 0x96, 0x00, 0x00, 0x01, 0x88, 0x00, 0x00, + 0x00, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x59, 0x8D, 0xD5, 0x9F, + 0x00, 0x00, 0x1A, 0x18, 0x00, 0x00, 0x06, 0x93, 0x70, 0x6F, + 0x73, 0x74, 0xFF, 0x0B, 0x01, 0x90, 0x00, 0x00, 0x20, 0xAC, + 0x00, 0x00, 0x00, 0x46, 0x70, 0x72, 0x65, 0x70, 0x0F, 0x27, + 0xA4, 0x89, 0x00, 0x00, 0x0B, 0x4C, 0x00, 0x00, 0x05, 0xFA, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x36, 0x04, 0xB7, 0xB2, + 0x77, 0xC7, 0x5F, 0x0F, 0x3C, 0xF5, 0x00, 0x0B, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xC8, 0x50, 0xBF, 0x5E, 0x00, 0x00, + 0x00, 0x00, 0xE4, 0x03, 0xE7, 0x99, 0x00, 0x00, 0xFF, 0xE9, + 0x04, 0xCD, 0x05, 0x5A, 0x00, 0x01, 0x00, 0x08, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x06, 0xA9, 0xFD, 0x99, 0x00, 0x00, 0x04, 0xCD, 0x00, 0x00, + 0x00, 0x00, 0x04, 0xCD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x37, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, + 0x00, 0x2F, 0x00, 0x5C, 0x00, 0x00, 0x03, 0xD9, 0x00, 0x2E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0xCD, 0x02, 0xBC, + 0x00, 0x05, 0x00, 0x00, 0x05, 0x9A, 0x05, 0x33, 0x00, 0x00, + 0x01, 0x1D, 0x05, 0x9A, 0x05, 0x33, 0x00, 0x00, 0x03, 0x61, + 0x00, 0x66, 0x02, 0x12, 0x08, 0x05, 0x02, 0x07, 0x07, 0x09, + 0x02, 0x02, 0x05, 0x02, 0x04, 0x04, 0xE0, 0x00, 0x0A, 0xFF, + 0x40, 0x00, 0x78, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x4D, 0x4F, 0x4E, 0x4F, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x50, 0x05, 0x11, 0xFE, 0x54, 0x00, 0x00, 0x06, 0xA9, + 0x02, 0x67, 0x60, 0x00, 0x01, 0xBF, 0xDF, 0xF7, 0x00, 0x00, + 0x04, 0x3A, 0x05, 0x45, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, + 0x04, 0xCD, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x04, 0xCD, + 0x00, 0x00, 0x04, 0xCD, 0x00, 0x00, 0x00, 0x75, 0x00, 0x8A, + 0x00, 0x7B, 0x00, 0x5D, 0x00, 0x47, 0x00, 0x68, 0x00, 0x7D, + 0x00, 0x83, 0x00, 0x6D, 0x00, 0x72, 0x01, 0xD6, 0x00, 0x00, + 0x00, 0x63, 0x00, 0x88, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x5C, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x1C, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0C, + 0x00, 0x08, 0x00, 0x02, 0x00, 0x04, 0x00, 0x20, 0x00, 0x3A, + 0x00, 0x41, 0x00, 0x4D, 0x00, 0x50, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x30, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x50, + 0xFF, 0xFF, 0xFF, 0xE3, 0xFF, 0xD4, 0xFF, 0xCE, 0xFF, 0xC3, + 0xFF, 0xC1, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, + 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x47, 0x5B, 0x5A, 0x59, 0x58, 0x55, 0x54, 0x53, 0x52, + 0x51, 0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49, 0x48, + 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x3F, 0x3E, + 0x3D, 0x3C, 0x3B, 0x3A, 0x39, 0x38, 0x37, 0x36, 0x35, 0x31, + 0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x28, 0x27, 0x26, 0x25, 0x24, + 0x23, 0x22, 0x21, 0x1F, 0x18, 0x14, 0x11, 0x10, 0x0F, 0x0E, + 0x0D, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, + 0x02, 0x01, 0x00, 0x2C, 0x20, 0xB0, 0x01, 0x60, 0x45, 0xB0, + 0x03, 0x25, 0x20, 0x11, 0x46, 0x61, 0x23, 0x45, 0x23, 0x61, + 0x48, 0x2D, 0x2C, 0x20, 0x45, 0x18, 0x68, 0x44, 0x2D, 0x2C, + 0x45, 0x23, 0x46, 0x60, 0xB0, 0x20, 0x61, 0x20, 0xB0, 0x46, + 0x60, 0xB0, 0x04, 0x26, 0x23, 0x48, 0x48, 0x2D, 0x2C, 0x45, + 0x23, 0x46, 0x23, 0x61, 0xB0, 0x20, 0x60, 0x20, 0xB0, 0x26, + 0x61, 0xB0, 0x20, 0x61, 0xB0, 0x04, 0x26, 0x23, 0x48, 0x48, + 0x2D, 0x2C, 0x45, 0x23, 0x46, 0x60, 0xB0, 0x40, 0x61, 0x20, + 0xB0, 0x66, 0x60, 0xB0, 0x04, 0x26, 0x23, 0x48, 0x48, 0x2D, + 0x2C, 0x45, 0x23, 0x46, 0x23, 0x61, 0xB0, 0x40, 0x60, 0x20, + 0xB0, 0x26, 0x61, 0xB0, 0x40, 0x61, 0xB0, 0x04, 0x26, 0x23, + 0x48, 0x48, 0x2D, 0x2C, 0x01, 0x10, 0x20, 0x3C, 0x00, 0x3C, + 0x2D, 0x2C, 0x20, 0x45, 0x23, 0x20, 0xB0, 0xCD, 0x44, 0x23, + 0x20, 0xB8, 0x01, 0x5A, 0x51, 0x58, 0x23, 0x20, 0xB0, 0x8D, + 0x44, 0x23, 0x59, 0x20, 0xB0, 0xED, 0x51, 0x58, 0x23, 0x20, + 0xB0, 0x4D, 0x44, 0x23, 0x59, 0x20, 0xB0, 0x04, 0x26, 0x51, + 0x58, 0x23, 0x20, 0xB0, 0x0D, 0x44, 0x23, 0x59, 0x21, 0x21, + 0x2D, 0x2C, 0x20, 0x20, 0x45, 0x18, 0x68, 0x44, 0x20, 0xB0, + 0x01, 0x60, 0x20, 0x45, 0xB0, 0x46, 0x76, 0x68, 0x8A, 0x45, + 0x60, 0x44, 0x2D, 0x2C, 0x01, 0xB1, 0x0B, 0x0A, 0x43, 0x23, + 0x43, 0x65, 0x0A, 0x2D, 0x2C, 0x00, 0xB1, 0x0A, 0x0B, 0x43, + 0x23, 0x43, 0x0B, 0x2D, 0x2C, 0x00, 0xB0, 0x28, 0x23, 0x70, + 0xB1, 0x01, 0x28, 0x3E, 0x01, 0xB0, 0x28, 0x23, 0x70, 0xB1, + 0x02, 0x28, 0x45, 0x3A, 0xB1, 0x02, 0x00, 0x08, 0x0D, 0x2D, + 0x2C, 0x20, 0x45, 0xB0, 0x03, 0x25, 0x45, 0x61, 0x64, 0xB0, + 0x50, 0x51, 0x58, 0x45, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, + 0x2C, 0x49, 0xB0, 0x0E, 0x23, 0x44, 0x2D, 0x2C, 0x20, 0x45, + 0xB0, 0x00, 0x43, 0x60, 0x44, 0x2D, 0x2C, 0x01, 0xB0, 0x06, + 0x43, 0xB0, 0x07, 0x43, 0x65, 0x0A, 0x2D, 0x2C, 0x20, 0x69, + 0xB0, 0x40, 0x61, 0xB0, 0x00, 0x8B, 0x20, 0xB1, 0x2C, 0xC0, + 0x8A, 0x8C, 0xB8, 0x10, 0x00, 0x62, 0x60, 0x2B, 0x0C, 0x64, + 0x23, 0x64, 0x61, 0x5C, 0x58, 0xB0, 0x03, 0x61, 0x59, 0x2D, + 0x2C, 0x8A, 0x03, 0x45, 0x8A, 0x8A, 0x87, 0xB0, 0x11, 0x2B, + 0xB0, 0x29, 0x23, 0x44, 0xB0, 0x29, 0x7A, 0xE4, 0x18, 0x2D, + 0x2C, 0x45, 0x65, 0xB0, 0x2C, 0x23, 0x44, 0x45, 0xB0, 0x2B, + 0x23, 0x44, 0x2D, 0x2C, 0x4B, 0x52, 0x58, 0x45, 0x44, 0x1B, + 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x51, 0x58, 0x45, 0x44, + 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x01, 0xB0, 0x05, 0x25, + 0x10, 0x23, 0x20, 0x8A, 0xF5, 0x00, 0xB0, 0x01, 0x60, 0x23, + 0xED, 0xEC, 0x2D, 0x2C, 0x01, 0xB0, 0x05, 0x25, 0x10, 0x23, + 0x20, 0x8A, 0xF5, 0x00, 0xB0, 0x01, 0x61, 0x23, 0xED, 0xEC, + 0x2D, 0x2C, 0x01, 0xB0, 0x06, 0x25, 0x10, 0xF5, 0x00, 0xED, + 0xEC, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0xB0, 0x01, 0x52, 0x58, + 0x21, 0x21, 0x21, 0x21, 0x21, 0x1B, 0x46, 0x23, 0x46, 0x60, + 0x8A, 0x8A, 0x46, 0x23, 0x20, 0x46, 0x8A, 0x60, 0x8A, 0x61, + 0xB8, 0xFF, 0x80, 0x62, 0x23, 0x20, 0x10, 0x23, 0x8A, 0xB1, + 0x0C, 0x0C, 0x8A, 0x70, 0x45, 0x60, 0x20, 0xB0, 0x00, 0x50, + 0x58, 0xB0, 0x01, 0x61, 0xB8, 0xFF, 0xBA, 0x8B, 0x1B, 0xB0, + 0x46, 0x8C, 0x59, 0xB0, 0x10, 0x60, 0x68, 0x01, 0x3A, 0x59, + 0x2D, 0x2C, 0x20, 0x45, 0xB0, 0x03, 0x25, 0x46, 0x52, 0x4B, + 0xB0, 0x13, 0x51, 0x5B, 0x58, 0xB0, 0x02, 0x25, 0x46, 0x20, + 0x68, 0x61, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x3F, 0x23, + 0x21, 0x38, 0x1B, 0x21, 0x11, 0x59, 0x2D, 0x2C, 0x20, 0x45, + 0xB0, 0x03, 0x25, 0x46, 0x50, 0x58, 0xB0, 0x02, 0x25, 0x46, + 0x20, 0x68, 0x61, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x3F, + 0x23, 0x21, 0x38, 0x1B, 0x21, 0x11, 0x59, 0x2D, 0x2C, 0x00, + 0xB0, 0x07, 0x43, 0xB0, 0x06, 0x43, 0x0B, 0x2D, 0x2C, 0x20, + 0xB0, 0x03, 0x25, 0x45, 0x50, 0x58, 0x8A, 0x20, 0x45, 0x8A, + 0x8B, 0x44, 0x21, 0x1B, 0x21, 0x45, 0x44, 0x59, 0x2D, 0x2C, + 0x21, 0xB0, 0x80, 0x51, 0x58, 0x0C, 0x64, 0x23, 0x64, 0x8B, + 0xB8, 0x20, 0x00, 0x62, 0x1B, 0xB2, 0x00, 0x40, 0x2F, 0x2B, + 0x59, 0xB0, 0x02, 0x60, 0x2D, 0x2C, 0x21, 0xB0, 0xC0, 0x51, + 0x58, 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x15, 0x55, 0x62, + 0x1B, 0xB2, 0x00, 0x80, 0x2F, 0x2B, 0x59, 0xB0, 0x02, 0x60, + 0x2D, 0x2C, 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x40, 0x00, + 0x62, 0x60, 0x23, 0x21, 0x2D, 0x2C, 0x4B, 0x53, 0x58, 0x8A, + 0xB0, 0x04, 0x25, 0x49, 0x64, 0x23, 0x45, 0x69, 0xB0, 0x40, + 0x8B, 0x61, 0xB0, 0x80, 0x62, 0xB0, 0x20, 0x61, 0x6A, 0xB0, + 0x0E, 0x23, 0x44, 0x23, 0x10, 0xB0, 0x0E, 0xF6, 0x1B, 0x21, + 0x23, 0x8A, 0x12, 0x11, 0x20, 0x39, 0x2F, 0x59, 0x2D, 0x2C, + 0x4B, 0x53, 0x58, 0x20, 0xB0, 0x03, 0x25, 0x49, 0x64, 0x69, + 0x20, 0xB0, 0x05, 0x26, 0xB0, 0x06, 0x25, 0x49, 0x64, 0x23, + 0x61, 0xB0, 0x80, 0x62, 0xB0, 0x20, 0x61, 0x6A, 0xB0, 0x0E, + 0x23, 0x44, 0xB0, 0x04, 0x26, 0x10, 0xB0, 0x0E, 0xF6, 0x8A, + 0x10, 0xB0, 0x0E, 0x23, 0x44, 0xB0, 0x0E, 0xF6, 0xB0, 0x0E, + 0x23, 0x44, 0xB0, 0x0E, 0xED, 0x1B, 0x8A, 0xB0, 0x04, 0x26, + 0x11, 0x12, 0x20, 0x39, 0x23, 0x20, 0x39, 0x2F, 0x2F, 0x59, + 0x2D, 0x2C, 0x45, 0x23, 0x45, 0x60, 0x23, 0x45, 0x60, 0x23, + 0x45, 0x60, 0x23, 0x76, 0x68, 0x18, 0xB0, 0x80, 0x62, 0x20, + 0x2D, 0x2C, 0xB0, 0x48, 0x2B, 0x2D, 0x2C, 0x20, 0x45, 0xB0, + 0x00, 0x54, 0x58, 0xB0, 0x40, 0x44, 0x20, 0x45, 0xB0, 0x40, + 0x61, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x45, 0xB1, + 0x30, 0x2F, 0x45, 0x23, 0x45, 0x61, 0x60, 0xB0, 0x01, 0x60, + 0x69, 0x44, 0x2D, 0x2C, 0x4B, 0x51, 0x58, 0xB0, 0x2F, 0x23, + 0x70, 0xB0, 0x14, 0x23, 0x42, 0x1B, 0x21, 0x21, 0x59, 0x2D, + 0x2C, 0x4B, 0x51, 0x58, 0x20, 0xB0, 0x03, 0x25, 0x45, 0x69, + 0x53, 0x58, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x1B, 0x21, 0x21, + 0x59, 0x2D, 0x2C, 0x45, 0xB0, 0x14, 0x43, 0xB0, 0x00, 0x60, + 0x63, 0xB0, 0x01, 0x60, 0x69, 0x44, 0x2D, 0x2C, 0xB0, 0x2F, + 0x45, 0x44, 0x2D, 0x2C, 0x45, 0x23, 0x20, 0x45, 0x8A, 0x60, + 0x44, 0x2D, 0x2C, 0x45, 0x23, 0x45, 0x60, 0x44, 0x2D, 0x2C, + 0x4B, 0x23, 0x51, 0x58, 0xB9, 0x00, 0x33, 0xFF, 0xE0, 0xB1, + 0x34, 0x20, 0x1B, 0xB3, 0x33, 0x00, 0x34, 0x00, 0x59, 0x44, + 0x44, 0x2D, 0x2C, 0xB0, 0x16, 0x43, 0x58, 0xB0, 0x03, 0x26, + 0x45, 0x8A, 0x58, 0x64, 0x66, 0xB0, 0x1F, 0x60, 0x1B, 0x64, + 0xB0, 0x20, 0x60, 0x66, 0x20, 0x58, 0x1B, 0x21, 0xB0, 0x40, + 0x59, 0xB0, 0x01, 0x61, 0x59, 0x23, 0x58, 0x65, 0x59, 0xB0, + 0x29, 0x23, 0x44, 0x23, 0x10, 0xB0, 0x29, 0xE0, 0x1B, 0x21, + 0x21, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, + 0x54, 0x58, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x38, + 0x1B, 0x21, 0x21, 0x59, 0x1B, 0x21, 0x21, 0x21, 0x21, 0x59, + 0x2D, 0x2C, 0xB0, 0x16, 0x43, 0x58, 0xB0, 0x04, 0x25, 0x45, + 0x64, 0xB0, 0x20, 0x60, 0x66, 0x20, 0x58, 0x1B, 0x21, 0xB0, + 0x40, 0x59, 0xB0, 0x01, 0x61, 0x23, 0x58, 0x1B, 0x65, 0x59, + 0xB0, 0x29, 0x23, 0x44, 0xB0, 0x05, 0x25, 0xB0, 0x08, 0x25, + 0x08, 0x20, 0x58, 0x02, 0x1B, 0x03, 0x59, 0xB0, 0x04, 0x25, + 0x10, 0xB0, 0x05, 0x25, 0x20, 0x46, 0xB0, 0x04, 0x25, 0x23, + 0x42, 0x3C, 0xB0, 0x04, 0x25, 0xB0, 0x07, 0x25, 0x08, 0xB0, + 0x07, 0x25, 0x10, 0xB0, 0x06, 0x25, 0x20, 0x46, 0xB0, 0x04, + 0x25, 0xB0, 0x01, 0x60, 0x23, 0x42, 0x3C, 0x20, 0x58, 0x01, + 0x1B, 0x00, 0x59, 0xB0, 0x04, 0x25, 0x10, 0xB0, 0x05, 0x25, + 0xB0, 0x29, 0xE0, 0xB0, 0x29, 0x20, 0x45, 0x65, 0x44, 0xB0, + 0x07, 0x25, 0x10, 0xB0, 0x06, 0x25, 0xB0, 0x29, 0xE0, 0xB0, + 0x05, 0x25, 0xB0, 0x08, 0x25, 0x08, 0x20, 0x58, 0x02, 0x1B, + 0x03, 0x59, 0xB0, 0x05, 0x25, 0xB0, 0x03, 0x25, 0x43, 0x48, + 0xB0, 0x04, 0x25, 0xB0, 0x07, 0x25, 0x08, 0xB0, 0x06, 0x25, + 0xB0, 0x03, 0x25, 0xB0, 0x01, 0x60, 0x43, 0x48, 0x1B, 0x21, + 0x59, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x2D, 0x2C, + 0x02, 0xB0, 0x04, 0x25, 0x20, 0x20, 0x46, 0xB0, 0x04, 0x25, + 0x23, 0x42, 0xB0, 0x05, 0x25, 0x08, 0xB0, 0x03, 0x25, 0x45, + 0x48, 0x21, 0x21, 0x21, 0x21, 0x2D, 0x2C, 0x02, 0xB0, 0x03, + 0x25, 0x20, 0xB0, 0x04, 0x25, 0x08, 0xB0, 0x02, 0x25, 0x43, + 0x48, 0x21, 0x21, 0x21, 0x2D, 0x2C, 0x45, 0x23, 0x20, 0x45, + 0x18, 0x20, 0xB0, 0x00, 0x50, 0x20, 0x58, 0x23, 0x65, 0x23, + 0x59, 0x23, 0x68, 0x20, 0xB0, 0x40, 0x50, 0x58, 0x21, 0xB0, + 0x40, 0x59, 0x23, 0x58, 0x65, 0x59, 0x8A, 0x60, 0x44, 0x2D, + 0x2C, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x20, 0x45, + 0x8A, 0x60, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, + 0x54, 0x58, 0x20, 0x45, 0x8A, 0x60, 0x44, 0x1B, 0x21, 0x21, + 0x59, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, + 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x00, 0x21, + 0x4B, 0x54, 0x58, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, + 0xB0, 0x02, 0x43, 0x54, 0x58, 0xB0, 0x46, 0x2B, 0x1B, 0x21, + 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x54, + 0x58, 0xB0, 0x47, 0x2B, 0x1B, 0x21, 0x21, 0x21, 0x59, 0x2D, + 0x2C, 0x20, 0xB0, 0x02, 0x54, 0x23, 0xB0, 0x00, 0x54, 0x5B, + 0x58, 0xB0, 0x80, 0xB0, 0x02, 0x43, 0x50, 0xB0, 0x01, 0xB0, + 0x02, 0x43, 0x54, 0x5B, 0x58, 0x21, 0x21, 0x21, 0x21, 0x1B, + 0xB0, 0x48, 0x2B, 0x59, 0x1B, 0xB0, 0x80, 0xB0, 0x02, 0x43, + 0x50, 0xB0, 0x01, 0xB0, 0x02, 0x43, 0x54, 0x5B, 0x58, 0xB0, + 0x48, 0x2B, 0x1B, 0x21, 0x21, 0x21, 0x21, 0x59, 0x59, 0x2D, + 0x2C, 0x20, 0xB0, 0x02, 0x54, 0x23, 0xB0, 0x00, 0x54, 0x5B, + 0x58, 0xB0, 0x80, 0xB0, 0x02, 0x43, 0x50, 0xB0, 0x01, 0xB0, + 0x02, 0x43, 0x54, 0x5B, 0x58, 0x21, 0x21, 0x21, 0x1B, 0xB0, + 0x49, 0x2B, 0x59, 0x1B, 0xB0, 0x80, 0xB0, 0x02, 0x43, 0x50, + 0xB0, 0x01, 0xB0, 0x02, 0x43, 0x54, 0x5B, 0x58, 0xB0, 0x49, + 0x2B, 0x1B, 0x21, 0x21, 0x21, 0x59, 0x59, 0x2D, 0x2C, 0x20, + 0x8A, 0x08, 0x23, 0x4B, 0x53, 0x8A, 0x4B, 0x51, 0x5A, 0x58, + 0x23, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x00, 0xB0, + 0x02, 0x25, 0x11, 0xB0, 0x02, 0x25, 0x49, 0x6A, 0x20, 0xB0, + 0x00, 0x53, 0x58, 0xB0, 0x40, 0x60, 0x38, 0x1B, 0x21, 0x21, + 0x59, 0x2D, 0x2C, 0x00, 0xB0, 0x02, 0x25, 0x11, 0xB0, 0x02, + 0x25, 0x49, 0x6A, 0x20, 0xB0, 0x00, 0x51, 0x58, 0xB0, 0x40, + 0x61, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x20, 0x8A, + 0x23, 0x49, 0x64, 0x8A, 0x23, 0x53, 0x58, 0x3C, 0x1B, 0x21, + 0x59, 0x2D, 0x2C, 0x4B, 0x52, 0x58, 0x7D, 0x1B, 0x7A, 0x59, + 0x2D, 0x2C, 0xB0, 0x12, 0x00, 0x4B, 0x01, 0x4B, 0x54, 0x42, + 0x2D, 0x2C, 0xB1, 0x02, 0x01, 0x42, 0xB1, 0x23, 0x01, 0x88, + 0x51, 0xB1, 0x40, 0x01, 0x88, 0x53, 0x5A, 0x58, 0xB1, 0x02, + 0x00, 0x42, 0xB9, 0x10, 0x00, 0x00, 0x20, 0x88, 0x54, 0x58, + 0xB2, 0x02, 0x01, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB1, 0x24, + 0x01, 0x88, 0x51, 0x58, 0xB9, 0x20, 0x00, 0x00, 0x40, 0x88, + 0x54, 0x58, 0xB2, 0x02, 0x02, 0x02, 0x43, 0x60, 0x42, 0xB1, + 0x24, 0x01, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x20, 0x02, 0x43, + 0x60, 0x42, 0x00, 0x4B, 0x01, 0x4B, 0x52, 0x58, 0xB2, 0x02, + 0x08, 0x02, 0x43, 0x60, 0x42, 0x59, 0x1B, 0xB9, 0x40, 0x00, + 0x00, 0x80, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x04, 0x02, 0x43, + 0x60, 0x42, 0x59, 0xB9, 0x40, 0x00, 0x00, 0x80, 0x63, 0xB8, + 0x01, 0x00, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x08, 0x02, 0x43, + 0x60, 0x42, 0x59, 0xB9, 0x40, 0x00, 0x01, 0x00, 0x63, 0xB8, + 0x02, 0x00, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x10, 0x02, 0x43, + 0x60, 0x42, 0x59, 0xB1, 0x26, 0x01, 0x88, 0x51, 0x58, 0xB9, + 0x40, 0x00, 0x02, 0x00, 0x63, 0xB8, 0x04, 0x00, 0x88, 0x54, + 0x58, 0xB2, 0x02, 0x40, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB9, + 0x40, 0x00, 0x04, 0x00, 0x63, 0xB8, 0x08, 0x00, 0x88, 0x54, + 0x58, 0xB2, 0x02, 0x80, 0x02, 0x43, 0x60, 0x42, 0x59, 0x59, + 0x59, 0x59, 0x59, 0x59, 0xB1, 0x00, 0x02, 0x43, 0x54, 0x58, + 0xB1, 0x02, 0x01, 0x42, 0x59, 0x2D, 0x2C, 0x45, 0x18, 0x68, + 0x23, 0x4B, 0x51, 0x58, 0x23, 0x20, 0x45, 0x20, 0x64, 0xB0, + 0x40, 0x50, 0x58, 0x7C, 0x59, 0x68, 0x8A, 0x60, 0x59, 0x44, + 0x2D, 0x2C, 0xB0, 0x00, 0x16, 0xB0, 0x02, 0x25, 0xB0, 0x02, + 0x25, 0x01, 0xB0, 0x01, 0x23, 0x3E, 0x00, 0xB0, 0x02, 0x23, + 0x3E, 0xB1, 0x01, 0x02, 0x06, 0x0C, 0xB0, 0x0A, 0x23, 0x65, + 0x42, 0xB0, 0x0B, 0x23, 0x42, 0x01, 0xB0, 0x01, 0x23, 0x3F, + 0x00, 0xB0, 0x02, 0x23, 0x3F, 0xB1, 0x01, 0x02, 0x06, 0x0C, + 0xB0, 0x06, 0x23, 0x65, 0x42, 0xB0, 0x07, 0x23, 0x42, 0xB0, + 0x01, 0x16, 0x01, 0x2D, 0x2C, 0xB0, 0x80, 0xB0, 0x02, 0x43, + 0x50, 0xB0, 0x01, 0xB0, 0x02, 0x43, 0x54, 0x5B, 0x58, 0x21, + 0x23, 0x10, 0xB0, 0x20, 0x1A, 0xC9, 0x1B, 0x8A, 0x10, 0xED, + 0x59, 0x2D, 0x2C, 0xB0, 0x59, 0x2B, 0x2D, 0x2C, 0x8A, 0x10, + 0xE5, 0x2D, 0x41, 0x2B, 0x01, 0x53, 0x00, 0x01, 0x01, 0x4D, + 0x00, 0x55, 0x01, 0x52, 0x00, 0x01, 0x01, 0x4D, 0x00, 0x55, + 0x01, 0x56, 0x01, 0x54, 0x00, 0x14, 0x00, 0x1F, 0x01, 0x55, + 0x01, 0x54, 0x00, 0x1F, 0x00, 0x1F, 0x01, 0x4F, 0x00, 0x33, + 0x01, 0x4E, 0x00, 0x55, 0x01, 0x4C, 0x00, 0x33, 0x01, 0x4D, + 0x00, 0x55, 0x00, 0xA4, 0x01, 0x4D, 0x00, 0xF4, 0x01, 0x4D, + 0x00, 0x02, 0x01, 0x3D, 0x00, 0x3D, 0x01, 0x3C, 0x00, 0x55, + 0x01, 0x3C, 0x00, 0x01, 0x01, 0x3A, 0x00, 0x55, 0x01, 0x3B, + 0x00, 0x3D, 0x01, 0x3A, 0x00, 0x55, 0x01, 0x35, 0x01, 0x34, + 0xB2, 0x80, 0x1F, 0x00, 0x41, 0x2D, 0x01, 0x34, 0x00, 0x10, + 0x01, 0x34, 0x00, 0x02, 0x01, 0x34, 0x00, 0x02, 0x01, 0x2E, + 0x00, 0x55, 0x01, 0x33, 0x00, 0x48, 0x01, 0x32, 0x00, 0x55, + 0x00, 0x80, 0x01, 0x32, 0x00, 0x01, 0x01, 0x32, 0x00, 0x02, + 0x01, 0x2E, 0x00, 0x55, 0x01, 0x31, 0x00, 0x3D, 0x01, 0x30, + 0x00, 0x55, 0x00, 0x0F, 0x01, 0x30, 0x00, 0x01, 0x01, 0x30, + 0x00, 0x02, 0x01, 0x2E, 0x00, 0x55, 0x01, 0x2F, 0x00, 0x3D, + 0x01, 0x2E, 0x00, 0x55, 0x00, 0x20, 0x01, 0x2E, 0x00, 0x60, + 0x01, 0x2E, 0x00, 0x02, 0x00, 0x00, 0x01, 0x2E, 0x00, 0x20, + 0x01, 0x2E, 0x00, 0x02, 0x01, 0x2E, 0xB2, 0x01, 0x00, 0x55, + 0xB8, 0x01, 0x2D, 0xB2, 0x3D, 0x00, 0x55, 0xB8, 0x01, 0x2C, + 0xB3, 0x00, 0x80, 0x1F, 0x80, 0x41, 0x19, 0x01, 0x44, 0x00, + 0x01, 0x01, 0x44, 0x00, 0x01, 0x01, 0x3E, 0x00, 0x55, 0x01, + 0x43, 0x01, 0x42, 0x00, 0xFF, 0x00, 0x1F, 0x01, 0x42, 0x00, + 0x01, 0x01, 0x3E, 0x00, 0x55, 0x01, 0x41, 0x00, 0x02, 0x01, + 0x40, 0x00, 0x55, 0x01, 0x40, 0x00, 0x01, 0x01, 0x3E, 0x00, + 0x55, 0x01, 0x3F, 0x00, 0x3D, 0x01, 0x3E, 0x40, 0x1B, 0x55, + 0x10, 0xFD, 0x01, 0xF1, 0x46, 0x3C, 0x1F, 0xF0, 0x46, 0xFF, + 0x1F, 0x3F, 0xEF, 0x6F, 0xEF, 0x02, 0x4F, 0xEC, 0x5F, 0xEC, + 0x02, 0x2F, 0xEB, 0x3F, 0xEB, 0x02, 0xBA, 0x01, 0x2B, 0x00, + 0x3D, 0x01, 0x2A, 0xB6, 0x55, 0xEA, 0x3D, 0xE9, 0x55, 0xE8, + 0x01, 0x41, 0x11, 0x01, 0x29, 0x00, 0x55, 0x00, 0x00, 0x01, + 0x29, 0x00, 0x01, 0x00, 0xAF, 0x01, 0x29, 0x00, 0x01, 0x00, + 0x20, 0x01, 0x29, 0x00, 0x50, 0x01, 0x29, 0x00, 0x60, 0x01, + 0x29, 0x00, 0x03, 0x00, 0x0F, 0x01, 0x29, 0x40, 0x16, 0x01, + 0xB0, 0xE7, 0x01, 0x7F, 0xE6, 0x8F, 0xE6, 0x9F, 0xE6, 0x03, + 0xCF, 0xE5, 0x01, 0x40, 0xE5, 0x20, 0x24, 0x46, 0xEF, 0xE4, + 0x01, 0xB8, 0x01, 0x28, 0x40, 0x18, 0xE3, 0x10, 0x1F, 0x60, + 0xE3, 0x01, 0xE2, 0xE0, 0x1A, 0x1F, 0xE1, 0xE0, 0x28, 0x1F, + 0xDF, 0x3D, 0xDE, 0x55, 0xDD, 0x3D, 0x03, 0x55, 0xE9, 0x01, + 0x41, 0x0D, 0x01, 0x2A, 0x00, 0x55, 0x00, 0x20, 0x01, 0x2A, + 0x00, 0x50, 0x01, 0x2A, 0x00, 0x80, 0x01, 0x2A, 0x00, 0xB0, + 0x01, 0x2A, 0x00, 0x04, 0x00, 0x0F, 0x01, 0x2A, 0x40, 0x1F, + 0x01, 0xAF, 0xDE, 0x01, 0xDC, 0x03, 0xFF, 0x1F, 0x9F, 0xD3, + 0xAF, 0xD3, 0x02, 0xC9, 0xC8, 0x3C, 0x1F, 0x0F, 0xC8, 0x1F, + 0xC8, 0x02, 0xC4, 0xC3, 0x1A, 0x1F, 0x40, 0xC3, 0x13, 0x18, + 0x46, 0xB8, 0x01, 0x21, 0xB2, 0xC2, 0x3C, 0x1F, 0xB8, 0x01, + 0x20, 0x40, 0x09, 0xC0, 0x3C, 0x1F, 0x0F, 0xBF, 0x01, 0x60, + 0xBF, 0x01, 0xB8, 0x01, 0x06, 0x40, 0x1D, 0xBE, 0x28, 0x1F, + 0x2F, 0xBE, 0x01, 0xBD, 0xBC, 0x1A, 0x1F, 0x0F, 0xBC, 0x1F, + 0xBC, 0x7F, 0xBC, 0x8F, 0xBC, 0x04, 0xBA, 0xB9, 0x1A, 0x1F, + 0x4F, 0xB7, 0x7F, 0xB7, 0x02, 0x0F, 0xBE, 0x01, 0x05, 0x00, + 0x1F, 0x01, 0x05, 0x00, 0x9F, 0x01, 0x05, 0x00, 0xAF, 0x01, + 0x05, 0x40, 0x0B, 0x04, 0xD0, 0xB3, 0x01, 0x0F, 0xB3, 0x01, + 0xB2, 0x03, 0x32, 0x1F, 0xB8, 0x01, 0x1B, 0xB3, 0xAA, 0x48, + 0x1F, 0x1F, 0x41, 0x17, 0x01, 0x1C, 0x00, 0x2F, 0x01, 0x1C, + 0x00, 0x02, 0x00, 0x4F, 0x01, 0x1C, 0x00, 0x5F, 0x01, 0x1C, + 0x00, 0x6F, 0x01, 0x1C, 0x00, 0xAF, 0x01, 0x1C, 0x00, 0xBF, + 0x01, 0x1C, 0x00, 0xCF, 0x01, 0x1C, 0x00, 0xEF, 0x01, 0x1C, + 0x00, 0xFF, 0x01, 0x1C, 0x00, 0x08, 0x00, 0x40, 0x01, 0x1C, + 0x40, 0x11, 0x1D, 0x27, 0x46, 0xB0, 0xAD, 0x3C, 0x1F, 0x50, + 0xAD, 0x60, 0xAD, 0xE0, 0xAD, 0xF0, 0xAD, 0x04, 0x40, 0xB8, + 0x01, 0x1E, 0xB2, 0x10, 0x13, 0x46, 0xB9, 0xFF, 0xC0, 0x01, + 0x1D, 0x40, 0x15, 0x0C, 0x0F, 0x46, 0xAB, 0xAA, 0x3C, 0x1F, + 0x50, 0xAA, 0x60, 0xAA, 0xE0, 0xAA, 0xF0, 0xAA, 0x04, 0xA9, + 0x32, 0xA8, 0x55, 0x2F, 0xBE, 0x01, 0x27, 0x00, 0x8F, 0x01, + 0x27, 0x00, 0x9F, 0x01, 0x27, 0x00, 0xAF, 0x01, 0x27, 0x40, + 0x22, 0x04, 0x00, 0xA8, 0x10, 0xA8, 0x20, 0xA8, 0x03, 0xA0, + 0x9C, 0x28, 0x1F, 0x50, 0x9F, 0x60, 0x9F, 0x02, 0x9E, 0x9B, + 0x18, 0x1F, 0x20, 0x9C, 0x50, 0x9C, 0x02, 0x80, 0x9B, 0x90, + 0x9B, 0xF0, 0x9B, 0x03, 0x30, 0x41, 0x0E, 0x01, 0x24, 0x00, + 0x40, 0x01, 0x24, 0x00, 0x50, 0x01, 0x24, 0x00, 0x03, 0x00, + 0x5F, 0x01, 0x23, 0x00, 0x01, 0x00, 0x7F, 0x01, 0x23, 0x00, + 0x01, 0x00, 0xAF, 0x01, 0x23, 0x40, 0x1C, 0x01, 0x10, 0x9A, + 0x80, 0x9A, 0x90, 0x9A, 0x03, 0x90, 0x99, 0x01, 0x98, 0x97, + 0x28, 0x1F, 0x60, 0x97, 0x01, 0x6F, 0x96, 0xCF, 0x96, 0xDF, + 0x96, 0x03, 0x90, 0x96, 0x01, 0xBD, 0x01, 0x47, 0x01, 0x45, + 0x00, 0x3C, 0x00, 0x1F, 0x01, 0x46, 0x01, 0x45, 0xB2, 0x64, + 0x1F, 0x80, 0x41, 0x1B, 0x01, 0x10, 0x00, 0x01, 0x00, 0x4F, + 0x01, 0x10, 0x00, 0x7F, 0x01, 0x10, 0x00, 0x02, 0x00, 0x30, + 0x01, 0x10, 0x00, 0x01, 0x00, 0xBF, 0x01, 0x10, 0x00, 0x01, + 0x00, 0x70, 0x01, 0x10, 0x00, 0x90, 0x01, 0x10, 0x00, 0x02, + 0x00, 0xD0, 0x01, 0x10, 0x00, 0x01, 0x00, 0x0F, 0x01, 0x10, + 0x00, 0x7F, 0x01, 0x10, 0x00, 0xAF, 0x01, 0x10, 0x40, 0x16, + 0x03, 0x0F, 0x95, 0x3F, 0x95, 0x02, 0x0F, 0x94, 0x01, 0x0F, + 0x94, 0x2F, 0x94, 0x3F, 0x94, 0x7F, 0x94, 0x9F, 0x94, 0xEF, + 0x94, 0x06, 0xB8, 0x01, 0x12, 0x40, 0x1D, 0x8C, 0x27, 0x1F, + 0x93, 0x92, 0x27, 0x1F, 0x90, 0x8C, 0x27, 0x1F, 0xEF, 0x8D, + 0x01, 0x0F, 0x8C, 0x1F, 0x8C, 0x02, 0x0F, 0x8C, 0x1F, 0x8C, + 0x2F, 0x8C, 0x9F, 0x8C, 0x04, 0x0F, 0xBC, 0x01, 0x11, 0x00, + 0x1F, 0x01, 0x11, 0x00, 0x02, 0xFF, 0xC0, 0x40, 0x0A, 0x8A, + 0x0F, 0x12, 0x46, 0x4F, 0x87, 0x01, 0x5F, 0x82, 0x01, 0xB8, + 0x01, 0x1A, 0x40, 0x13, 0x77, 0x2C, 0x1F, 0x76, 0x73, 0x28, + 0x1F, 0x75, 0x73, 0x19, 0x1F, 0x74, 0x73, 0x19, 0x1F, 0x73, + 0x50, 0x12, 0x1F, 0xBD, 0x01, 0x19, 0x01, 0x16, 0x00, 0x2C, + 0x00, 0x1F, 0x01, 0x18, 0x01, 0x16, 0xB2, 0x2C, 0x1F, 0x7F, + 0xBF, 0x01, 0x16, 0x00, 0x8F, 0x01, 0x16, 0x00, 0x9F, 0x01, + 0x16, 0x00, 0x03, 0x00, 0x40, 0x01, 0x15, 0xB2, 0x19, 0x1C, + 0x46, 0xB8, 0x01, 0x14, 0x40, 0x30, 0x46, 0x2C, 0x1F, 0x70, + 0x46, 0x32, 0x1F, 0x6F, 0x46, 0x32, 0x1F, 0x6E, 0x46, 0xFF, + 0x1F, 0x1A, 0x01, 0x18, 0x55, 0x19, 0x33, 0x18, 0x55, 0x07, + 0x33, 0x03, 0x55, 0x06, 0x03, 0xFF, 0x1F, 0x62, 0x5F, 0x24, + 0x1F, 0x61, 0x5F, 0x24, 0x1F, 0x60, 0x5F, 0x24, 0x1F, 0x5F, + 0x50, 0x19, 0x1F, 0x70, 0xBA, 0x01, 0x0A, 0x00, 0x80, 0x01, + 0x0A, 0xB5, 0x02, 0x5E, 0x46, 0x24, 0x1F, 0x4F, 0xB8, 0x01, + 0x13, 0x40, 0x19, 0x01, 0x5C, 0x46, 0x19, 0x1F, 0x5B, 0x5A, + 0x32, 0x1F, 0x5A, 0x46, 0x1A, 0x1F, 0x13, 0x32, 0x12, 0x55, + 0x05, 0x01, 0x03, 0x55, 0x04, 0x32, 0x03, 0x55, 0xB8, 0x01, + 0x08, 0x40, 0x21, 0x1B, 0x20, 0x1F, 0x0F, 0x03, 0x01, 0x53, + 0x50, 0x12, 0x1F, 0x52, 0x50, 0x12, 0x1F, 0x51, 0x50, 0x1E, + 0x1F, 0x4E, 0x46, 0x1E, 0x1F, 0x4C, 0x46, 0x2E, 0x1F, 0x7F, + 0x4B, 0x01, 0x4B, 0x46, 0x19, 0x1F, 0xB8, 0x01, 0x0E, 0xB3, + 0x46, 0x28, 0x1F, 0x40, 0xB8, 0x01, 0x0C, 0x40, 0x6F, 0x0B, + 0x0E, 0x46, 0x4A, 0x46, 0x1C, 0x1F, 0xEF, 0x49, 0xFF, 0x49, + 0x02, 0x50, 0x49, 0x01, 0x49, 0x46, 0x0B, 0x1F, 0x3F, 0x48, + 0x4F, 0x48, 0x02, 0x48, 0x46, 0x16, 0x1F, 0x47, 0x46, 0x13, + 0x1F, 0x0F, 0x46, 0x7F, 0x46, 0xEF, 0x46, 0xFF, 0x46, 0x04, + 0x1C, 0x64, 0x1B, 0x55, 0x17, 0x01, 0x15, 0x55, 0x16, 0x32, + 0x15, 0x55, 0x11, 0x01, 0x0F, 0x55, 0x10, 0x32, 0x0F, 0x55, + 0x02, 0x01, 0x00, 0x55, 0x01, 0x32, 0x00, 0x55, 0x1F, 0x0F, + 0x3F, 0x0F, 0x5F, 0x0F, 0x7F, 0x0F, 0x04, 0x0F, 0x0F, 0x2F, + 0x0F, 0x4F, 0x0F, 0x6F, 0x0F, 0x8F, 0x0F, 0xDF, 0x0F, 0xFF, + 0x0F, 0x07, 0x3F, 0x0F, 0x7F, 0x0F, 0xEF, 0x0F, 0x03, 0x6F, + 0x00, 0x01, 0x4F, 0x00, 0x01, 0x80, 0x16, 0x01, 0x05, 0x01, + 0xB8, 0x01, 0x90, 0xB1, 0x54, 0x53, 0x2B, 0x2B, 0x4B, 0xB8, + 0x07, 0xFF, 0x52, 0x4B, 0xB0, 0x09, 0x50, 0x5B, 0xB0, 0x01, + 0x88, 0xB0, 0x25, 0x53, 0xB0, 0x01, 0x88, 0xB0, 0x40, 0x51, + 0x5A, 0xB0, 0x06, 0x88, 0xB0, 0x00, 0x55, 0x5A, 0x5B, 0x58, + 0xB1, 0x01, 0x01, 0x8E, 0x59, 0x85, 0x8D, 0x8D, 0x00, 0x42, + 0x1D, 0x4B, 0xB0, 0x32, 0x53, 0x58, 0xB0, 0x60, 0x1D, 0x59, + 0x4B, 0xB0, 0x64, 0x53, 0x58, 0xB0, 0x40, 0x1D, 0x59, 0x4B, + 0xB0, 0x80, 0x53, 0x58, 0xB0, 0x10, 0x1D, 0xB1, 0x16, 0x00, + 0x42, 0x59, 0x73, 0x74, 0x73, 0x74, 0x75, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x01, 0x74, 0x2B, 0x2B, 0x74, 0x2B, + 0x73, 0x74, 0x2B, 0x2B, 0x2B, 0x00, 0x2B, 0x74, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x73, 0x2B, 0x2B, 0x2B, 0x2B, 0x01, 0x2B, + 0x2B, 0x2B, 0x73, 0x00, 0x2B, 0x73, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x01, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x73, 0x2B, 0x2B, 0x00, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x01, + 0x73, 0x73, 0x2B, 0x73, 0x00, 0x73, 0x74, 0x73, 0x2B, 0x2B, + 0x2B, 0x73, 0x74, 0x73, 0x73, 0x73, 0x74, 0x74, 0x75, 0x75, + 0x75, 0x2B, 0x2B, 0x01, 0x73, 0x74, 0x73, 0x2B, 0x73, 0x73, + 0x73, 0x74, 0x75, 0x73, 0x00, 0x73, 0x73, 0x2B, 0x73, 0x2B, + 0x73, 0x73, 0x2B, 0x01, 0x73, 0x2B, 0x2B, 0x2B, 0x00, 0x73, + 0x2B, 0x2B, 0x73, 0x74, 0x2B, 0x2B, 0x73, 0x73, 0x01, 0x73, + 0x00, 0x73, 0x2B, 0x73, 0x2B, 0x01, 0x73, 0x2B, 0x00, 0x73, + 0x74, 0x01, 0x2B, 0x00, 0x2B, 0x01, 0x2B, 0x2B, 0x00, 0x74, + 0x2B, 0x01, 0x73, 0x00, 0x2B, 0x73, 0x73, 0x73, 0x2B, 0x2B, + 0x2B, 0x01, 0x2B, 0x2B, 0x73, 0x2B, 0x00, 0x73, 0x2B, 0x73, + 0x74, 0x73, 0x73, 0x73, 0x73, 0x74, 0x2B, 0x2B, 0x2B, 0x01, + 0x73, 0x73, 0x00, 0x73, 0x01, 0x2B, 0x2B, 0x00, 0x73, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x73, 0x2B, 0x2B, 0x2B, 0x73, + 0x74, 0x2B, 0x2B, 0x73, 0x2B, 0x2B, 0x73, 0x2B, 0x2B, 0x73, + 0x2B, 0x2B, 0x2B, 0x2B, 0x73, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x18, 0x00, 0x00, 0x05, 0xCC, 0x00, 0x1E, 0x00, 0x7D, + 0x05, 0x45, 0x00, 0x15, 0x00, 0x4E, 0x05, 0x45, 0x00, 0x15, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x3A, 0x00, 0x14, 0x00, 0x77, + 0x00, 0x00, 0xFF, 0xEC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEC, + 0xFF, 0x62, 0x00, 0x00, 0xFF, 0xEC, 0x00, 0x00, 0xFE, 0x57, + 0xFF, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x19, 0x01, 0x26, 0x00, 0xF1, + 0x00, 0xDE, 0x01, 0x02, 0x00, 0xDC, 0x01, 0x04, 0x00, 0xAC, + 0x00, 0xF0, 0x00, 0xF8, 0x00, 0xC1, 0x00, 0xAD, 0x00, 0xD3, + 0x00, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x27, 0x01, 0x1F, 0x01, 0x01, + 0x00, 0xF0, 0x01, 0x04, 0x00, 0xE4, 0x00, 0xF4, 0x00, 0xDC, + 0x00, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x19, 0x01, 0x0C, 0x01, 0x25, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x00, 0xDE, 0x00, 0xE7, + 0x00, 0xC6, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0xFE, 0x00, 0xA4, 0x01, 0x02, + 0x00, 0xE1, 0x00, 0x88, 0x01, 0x84, 0x00, 0xB6, 0x01, 0x94, + 0x01, 0x5A, 0x00, 0x73, 0x01, 0x14, 0x00, 0xDB, 0x00, 0x90, + 0x00, 0xAA, 0x01, 0x1B, 0x00, 0x9E, 0x00, 0x80, 0x00, 0x75, + 0x04, 0xA0, 0x04, 0xC3, 0x01, 0x21, 0x01, 0xE4, 0x01, 0xEE, + 0x00, 0xAD, 0x01, 0x3B, 0x01, 0x31, 0x02, 0x96, 0x02, 0x6E, + 0x01, 0x0E, 0x00, 0xE2, 0x02, 0x81, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xF2, 0xFF, 0xEE, 0x00, 0xE1, 0x00, 0xEE, 0x01, 0x90, + 0x00, 0xE1, 0x00, 0xE9, 0x01, 0x98, 0x00, 0xCF, 0x00, 0x00, + 0x05, 0x81, 0x03, 0x19, 0x00, 0xB0, 0x02, 0x3E, 0x00, 0x87, + 0x02, 0xA5, 0x02, 0x55, 0x00, 0xCB, 0x00, 0xF4, 0x00, 0x60, + 0x02, 0x8D, 0x02, 0x6D, 0x00, 0xFF, 0x00, 0xCC, 0x01, 0x3A, + 0x00, 0x00, 0x01, 0x5B, 0x00, 0x7F, 0x00, 0x97, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x7D, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x26, 0x00, 0x85, 0x00, 0x9B, 0x00, 0x65, + 0x00, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x45, 0x00, 0x0C, 0x02, 0x4D, + 0xFF, 0xF3, 0x00, 0xB6, 0x00, 0xC0, 0x00, 0xCA, 0x00, 0xDA, + 0x00, 0x82, 0x00, 0x8C, 0x00, 0x96, 0x00, 0xA0, 0xFC, 0xE2, + 0xFC, 0xB1, 0xFF, 0xF4, 0x00, 0xEE, 0x01, 0xEF, 0x01, 0x90, + 0x00, 0x00, 0x02, 0x19, 0x01, 0x15, 0x01, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0xA9, 0x03, 0x70, 0x02, 0xBC, + 0x02, 0x08, 0xFD, 0x99, 0x00, 0x91, 0x00, 0x91, 0x00, 0x4D, + 0x00, 0x4D, 0x00, 0x64, 0x00, 0x64, 0x01, 0xD0, 0x00, 0xD7, + 0x01, 0x20, 0xFE, 0x6D, 0x00, 0xF4, 0x00, 0xC0, 0x00, 0x95, + 0x00, 0xD0, 0x00, 0x79, 0x01, 0x0D, 0x01, 0x63, 0x04, 0xB1, + 0x01, 0x28, 0x01, 0x23, 0x00, 0xDF, 0x01, 0x02, 0x00, 0x6D, + 0x00, 0xA2, 0x00, 0x6C, 0x00, 0x92, 0x00, 0xB5, 0x00, 0xAA, + 0x00, 0xD8, 0x01, 0x54, 0x01, 0x06, 0x00, 0x9A, 0x00, 0x94, + 0x01, 0x44, 0x01, 0x45, 0xFF, 0x2C, 0x00, 0x9B, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0xE6, 0x05, 0xA1, + 0x05, 0x82, 0x00, 0x0C, 0x05, 0xCB, 0x00, 0x10, 0xFC, 0x1E, + 0xFF, 0xF3, 0x02, 0xFB, 0x00, 0x0F, 0x04, 0x16, 0x00, 0x07, + 0xFE, 0xD3, 0x00, 0xBF, 0xFE, 0x68, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x63, 0x00, 0x0B, 0xFD, 0x0F, 0xFF, 0xF5, + 0xFF, 0x78, 0xFF, 0xF0, 0xFE, 0xF6, 0xFF, 0xE2, 0x03, 0x03, + 0x02, 0x7B, 0x04, 0x19, 0x05, 0xA5, 0x05, 0xB2, 0x05, 0xC3, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x81, 0x04, 0x77, 0x00, 0x15, + 0x04, 0xD9, 0x00, 0x00, 0xFF, 0xEC, 0xFF, 0xC5, 0xFE, 0x7F, + 0x00, 0x83, 0x00, 0xDB, 0x00, 0xF2, 0x01, 0x02, 0x00, 0xD5, + 0x00, 0x44, 0x05, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, + 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x6C, 0x00, 0x8A, + 0x00, 0xC2, 0x01, 0x0C, 0x01, 0x34, 0x01, 0x6C, 0x01, 0xB0, + 0x01, 0xCE, 0x02, 0x20, 0x02, 0x64, 0x02, 0x7A, 0x02, 0xA0, + 0x02, 0xD0, 0x02, 0xFA, 0x00, 0x00, 0x00, 0x02, 0x00, 0x44, + 0x00, 0x00, 0x02, 0x64, 0x05, 0x55, 0x00, 0x03, 0x00, 0x07, + 0x00, 0x2E, 0xB1, 0x01, 0x00, 0x2F, 0x3C, 0xB2, 0x07, 0x04, + 0x57, 0xED, 0x32, 0xB1, 0x06, 0x05, 0xDC, 0x3C, 0xB2, 0x03, + 0x02, 0x57, 0xED, 0x32, 0x00, 0xB1, 0x03, 0x00, 0x2F, 0x3C, + 0xB2, 0x05, 0x04, 0x57, 0xED, 0x32, 0xB2, 0x07, 0x06, 0x58, + 0xFC, 0x3C, 0xB2, 0x01, 0x02, 0x57, 0xED, 0x32, 0x33, 0x11, + 0x21, 0x11, 0x25, 0x21, 0x11, 0x21, 0x44, 0x02, 0x20, 0xFE, + 0x24, 0x01, 0x98, 0xFE, 0x68, 0x05, 0x55, 0xFA, 0xAB, 0x44, + 0x04, 0xCD, 0x00, 0x00, 0x00, 0x03, 0x00, 0x75, 0xFF, 0xEC, + 0x04, 0x57, 0x05, 0x5A, 0x00, 0x0E, 0x00, 0x22, 0x00, 0x26, + 0x00, 0x00, 0x01, 0x10, 0x07, 0x06, 0x23, 0x22, 0x02, 0x11, + 0x10, 0x37, 0x36, 0x21, 0x32, 0x17, 0x16, 0x01, 0x34, 0x2E, + 0x01, 0x23, 0x22, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, + 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x25, 0x35, 0x33, + 0x15, 0x04, 0x57, 0x80, 0x7F, 0xF5, 0xF4, 0xFA, 0x79, 0x7A, + 0x01, 0x03, 0xF9, 0x7A, 0x79, 0xFE, 0xE6, 0x2A, 0x58, 0x52, + 0x55, 0x2F, 0x2E, 0x15, 0x14, 0x16, 0x15, 0x2D, 0x2D, 0x52, + 0x75, 0x31, 0x32, 0xFE, 0xBD, 0xD7, 0x02, 0xA3, 0xFE, 0xAE, + 0xB3, 0xB2, 0x01, 0x64, 0x01, 0x53, 0x01, 0x61, 0xAA, 0xAC, + 0xAE, 0xAD, 0xFE, 0xA4, 0xB1, 0xCC, 0x5E, 0x2F, 0x2E, 0x67, + 0x61, 0xB6, 0xA9, 0x6C, 0x68, 0x2E, 0x2F, 0x6D, 0x6F, 0x86, + 0xF9, 0xF9, 0x00, 0x01, 0x00, 0x8A, 0x00, 0x00, 0x04, 0x76, + 0x05, 0x45, 0x00, 0x10, 0x00, 0x00, 0x33, 0x35, 0x21, 0x11, + 0x06, 0x07, 0x06, 0x23, 0x35, 0x32, 0x37, 0x36, 0x37, 0x21, + 0x11, 0x21, 0x15, 0x95, 0x01, 0x85, 0x27, 0x75, 0x76, 0x7E, + 0x8C, 0x6D, 0x6F, 0x37, 0x01, 0x0A, 0x01, 0x43, 0xD1, 0x03, + 0x7B, 0x52, 0x38, 0x38, 0xD6, 0x3D, 0x3E, 0x6A, 0xFB, 0x8C, + 0xD1, 0x00, 0x00, 0x01, 0x00, 0x7B, 0x00, 0x00, 0x04, 0x55, + 0x05, 0x5A, 0x00, 0x23, 0x00, 0x00, 0x33, 0x35, 0x36, 0x37, + 0x36, 0x37, 0x3E, 0x01, 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, + 0x22, 0x06, 0x07, 0x25, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, + 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, + 0x21, 0x15, 0x7B, 0x31, 0x5E, 0x5D, 0xB0, 0x8C, 0x4E, 0x19, + 0x18, 0x5E, 0x5B, 0x59, 0x60, 0x0E, 0xFE, 0xE5, 0x18, 0x7B, + 0x7A, 0xD3, 0xD8, 0x81, 0x7F, 0x45, 0x47, 0x86, 0xC1, 0x44, + 0x42, 0x1F, 0x02, 0x8E, 0xC3, 0x6D, 0x70, 0x6E, 0x90, 0x72, + 0x54, 0x2A, 0x28, 0x2A, 0x48, 0x52, 0x60, 0x62, 0x10, 0xC3, + 0x68, 0x67, 0x64, 0x63, 0xA7, 0x6C, 0x68, 0x6A, 0x69, 0x96, + 0x42, 0x41, 0x45, 0xE7, 0x00, 0x01, 0x00, 0x5D, 0xFF, 0xE9, + 0x04, 0x65, 0x05, 0x5A, 0x00, 0x30, 0x00, 0x00, 0x01, 0x14, + 0x04, 0x23, 0x22, 0x27, 0x26, 0x27, 0x25, 0x16, 0x33, 0x32, + 0x37, 0x36, 0x34, 0x27, 0x26, 0x2B, 0x01, 0x35, 0x33, 0x32, + 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, + 0x25, 0x36, 0x24, 0x33, 0x32, 0x16, 0x17, 0x16, 0x15, 0x14, + 0x07, 0x06, 0x07, 0x15, 0x16, 0x17, 0x16, 0x04, 0x65, 0xFE, + 0xF2, 0xF0, 0xE5, 0x88, 0x87, 0x16, 0x01, 0x1E, 0x1A, 0xD1, + 0x6A, 0x3A, 0x3B, 0x49, 0x47, 0x88, 0x62, 0x5C, 0x78, 0x43, + 0x42, 0x6C, 0x5C, 0x57, 0x37, 0x39, 0x07, 0xFE, 0xE7, 0x17, + 0x01, 0x00, 0xD5, 0x95, 0xD8, 0x3A, 0x39, 0x4E, 0x4D, 0x92, + 0x9C, 0x5B, 0x5A, 0x01, 0x78, 0xBD, 0xD2, 0x65, 0x64, 0xBE, + 0x19, 0xBC, 0x33, 0x33, 0xAC, 0x2F, 0x2E, 0xE3, 0x2F, 0x2E, + 0x53, 0x4B, 0x60, 0x28, 0x29, 0x58, 0x14, 0xB3, 0xC2, 0x5A, + 0x52, 0x51, 0x6B, 0x7A, 0x53, 0x51, 0x1D, 0x04, 0x12, 0x55, + 0x54, 0x00, 0x00, 0x02, 0x00, 0x47, 0x00, 0x00, 0x04, 0x90, + 0x05, 0x45, 0x00, 0x0A, 0x00, 0x13, 0x00, 0x00, 0x01, 0x11, + 0x21, 0x11, 0x21, 0x35, 0x01, 0x21, 0x11, 0x33, 0x15, 0x01, + 0x34, 0x37, 0x36, 0x37, 0x06, 0x07, 0x01, 0x21, 0x03, 0xD4, + 0xFE, 0xF4, 0xFD, 0x7F, 0x02, 0x53, 0x01, 0x3A, 0xBC, 0xFE, + 0x38, 0x04, 0x02, 0x03, 0x17, 0x47, 0xFE, 0xC0, 0x01, 0x95, + 0x01, 0x1F, 0xFE, 0xE1, 0x01, 0x1F, 0xD3, 0x03, 0x53, 0xFC, + 0xAB, 0xD1, 0x02, 0x6C, 0x21, 0x54, 0x31, 0x20, 0x32, 0x70, + 0xFE, 0x41, 0x00, 0x01, 0x00, 0x68, 0xFF, 0xEC, 0x04, 0x63, + 0x05, 0x45, 0x00, 0x22, 0x00, 0x00, 0x01, 0x14, 0x07, 0x06, + 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x25, 0x16, 0x17, + 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, + 0x07, 0x21, 0x13, 0x21, 0x15, 0x21, 0x03, 0x36, 0x33, 0x32, + 0x16, 0x04, 0x63, 0x3F, 0x3E, 0x76, 0x76, 0xA1, 0xD3, 0x80, + 0x80, 0x1E, 0x01, 0x19, 0x17, 0x37, 0x38, 0x55, 0x6C, 0x7A, + 0x3B, 0x3B, 0x6A, 0x76, 0x49, 0xFE, 0xEE, 0x31, 0x03, 0x4F, + 0xFD, 0xB0, 0x17, 0x66, 0x99, 0xC8, 0xF2, 0x01, 0xC6, 0x8C, + 0x6C, 0x6A, 0x3C, 0x3C, 0x60, 0x61, 0xB3, 0x17, 0x5B, 0x28, + 0x29, 0x80, 0x75, 0x66, 0x40, 0x3F, 0x5B, 0x02, 0xFB, 0xD1, + 0xFE, 0xBA, 0x5A, 0xF8, 0x00, 0x02, 0x00, 0x7D, 0xFF, 0xEC, + 0x04, 0x5B, 0x05, 0x5A, 0x00, 0x1C, 0x00, 0x2A, 0x00, 0x00, + 0x01, 0x14, 0x06, 0x23, 0x22, 0x27, 0x26, 0x11, 0x10, 0x00, + 0x33, 0x32, 0x17, 0x16, 0x17, 0x05, 0x26, 0x23, 0x22, 0x07, + 0x06, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x05, + 0x34, 0x27, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, + 0x33, 0x32, 0x36, 0x04, 0x5B, 0xFE, 0xDC, 0xF5, 0x88, 0x87, + 0x01, 0x0E, 0xFD, 0xB3, 0x67, 0x68, 0x2B, 0xFE, 0xF7, 0x25, + 0x85, 0x72, 0x40, 0x40, 0x2C, 0x51, 0x4F, 0x66, 0xB8, 0x71, + 0x70, 0xFE, 0xE6, 0x37, 0x38, 0x61, 0x59, 0x74, 0x3B, 0x3B, + 0x5E, 0x5D, 0x6C, 0x01, 0xBE, 0xDA, 0xF8, 0xB8, 0xB7, 0x01, + 0x45, 0x01, 0x62, 0x01, 0x58, 0x4F, 0x50, 0xA5, 0x25, 0x8B, + 0x6C, 0x6B, 0xD3, 0x4A, 0x29, 0x28, 0x75, 0x74, 0xCE, 0x6D, + 0x3D, 0x3E, 0x70, 0x5A, 0x70, 0x4F, 0x4E, 0x80, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x83, 0x00, 0x00, 0x04, 0x44, 0x05, 0x45, + 0x00, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x03, 0x02, 0x15, 0x21, + 0x10, 0x13, 0x12, 0x13, 0x21, 0x35, 0x21, 0x04, 0x44, 0xFF, + 0x00, 0x67, 0x68, 0xFE, 0xDB, 0x78, 0x7A, 0xFD, 0xFD, 0x44, + 0x03, 0xC1, 0x04, 0x66, 0xFE, 0xA3, 0xFE, 0xFC, 0xFE, 0xFA, + 0xFF, 0x01, 0x05, 0x01, 0x11, 0x01, 0x16, 0x01, 0x32, 0xE7, + 0x00, 0x03, 0x00, 0x6D, 0xFF, 0xEC, 0x04, 0x60, 0x05, 0x5A, + 0x00, 0x1F, 0x00, 0x29, 0x00, 0x36, 0x00, 0x00, 0x01, 0x14, + 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, + 0x37, 0x35, 0x2E, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, + 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x15, 0x16, 0x17, 0x16, + 0x01, 0x34, 0x23, 0x22, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, + 0x13, 0x34, 0x27, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x33, + 0x32, 0x37, 0x36, 0x04, 0x60, 0x85, 0x86, 0xEE, 0xED, 0x86, + 0x87, 0x4F, 0x50, 0x80, 0x72, 0x8C, 0xF8, 0xDD, 0xE5, 0x7A, + 0x7B, 0x47, 0x47, 0x72, 0x88, 0x4D, 0x4E, 0xFE, 0xBC, 0xB9, + 0xB6, 0x2F, 0x30, 0x59, 0xB7, 0x21, 0x37, 0x38, 0x6D, 0x65, + 0x6E, 0xDB, 0x6B, 0x34, 0x35, 0x01, 0x7E, 0xBD, 0x6A, 0x6B, + 0x6A, 0x6A, 0xBC, 0x81, 0x58, 0x59, 0x15, 0x04, 0x1A, 0xA4, + 0x6F, 0xA4, 0xC2, 0x5E, 0x5F, 0xAB, 0x69, 0x55, 0x54, 0x17, + 0x04, 0x17, 0x56, 0x57, 0x01, 0xE2, 0xB2, 0xB2, 0x5C, 0x2F, + 0x30, 0xFE, 0x6D, 0x65, 0x34, 0x35, 0x6E, 0x64, 0xDF, 0x36, + 0x37, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x72, 0xFF, 0xEC, + 0x04, 0x52, 0x05, 0x5A, 0x00, 0x1C, 0x00, 0x2B, 0x00, 0x00, + 0x01, 0x10, 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x25, 0x16, + 0x33, 0x32, 0x37, 0x36, 0x37, 0x06, 0x07, 0x06, 0x23, 0x22, + 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x05, + 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, + 0x16, 0x32, 0x37, 0x36, 0x04, 0x52, 0x88, 0x87, 0xFF, 0xBA, + 0xD4, 0x2B, 0x01, 0x08, 0x27, 0x8D, 0x71, 0x42, 0x43, 0x01, + 0x26, 0x56, 0x59, 0x62, 0xB7, 0xDE, 0x82, 0x83, 0xE7, 0xF5, + 0x7F, 0x80, 0xFE, 0xD7, 0x3B, 0x3A, 0x5D, 0x5B, 0x36, 0x37, + 0x37, 0x36, 0xB8, 0x3A, 0x3B, 0x02, 0xB9, 0xFE, 0xA6, 0xBA, + 0xB9, 0xA0, 0xAB, 0x25, 0x93, 0x69, 0x6A, 0xCF, 0x4B, 0x2A, + 0x2B, 0xF6, 0xD0, 0xD6, 0x79, 0x7A, 0xA6, 0xA7, 0x9E, 0x79, + 0x4C, 0x4A, 0x40, 0x42, 0x6D, 0x6A, 0x45, 0x44, 0x3A, 0x3B, + 0x00, 0x02, 0x01, 0xD6, 0x00, 0x00, 0x02, 0xF7, 0x04, 0x3D, + 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x21, 0x11, 0x21, 0x11, + 0x01, 0x11, 0x21, 0x11, 0x01, 0xD6, 0x01, 0x21, 0xFE, 0xDF, + 0x01, 0x21, 0x01, 0x31, 0xFE, 0xCF, 0x03, 0x0C, 0x01, 0x31, + 0xFE, 0xCF, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x04, 0xCD, 0x05, 0x45, 0x00, 0x07, 0x00, 0x10, 0x00, 0x00, + 0x29, 0x01, 0x03, 0x21, 0x03, 0x21, 0x01, 0x21, 0x07, 0x06, + 0x07, 0x06, 0x03, 0x21, 0x02, 0x27, 0x26, 0x04, 0xCD, 0xFE, + 0xDA, 0x5C, 0xFE, 0x38, 0x5C, 0xFE, 0xD9, 0x01, 0xBB, 0x01, + 0x58, 0xAC, 0x06, 0x17, 0x10, 0x79, 0x01, 0x4C, 0x6B, 0x1E, + 0x16, 0x01, 0x4A, 0xFE, 0xB6, 0x05, 0x45, 0xB6, 0x1F, 0x5E, + 0x41, 0xFE, 0x57, 0x01, 0x79, 0x74, 0x56, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x63, 0x00, 0x00, 0x04, 0x6A, 0x05, 0x45, + 0x00, 0x19, 0x00, 0x00, 0x21, 0x11, 0x34, 0x37, 0x02, 0x07, + 0x03, 0x23, 0x03, 0x26, 0x27, 0x17, 0x16, 0x15, 0x11, 0x23, + 0x11, 0x21, 0x13, 0x16, 0x17, 0x36, 0x37, 0x13, 0x21, 0x11, + 0x03, 0x8C, 0x10, 0x3B, 0x10, 0x7C, 0xDA, 0x7E, 0x20, 0x2C, + 0x07, 0x07, 0xDC, 0x01, 0x5B, 0x87, 0x10, 0x16, 0x13, 0x15, + 0x88, 0x01, 0x4F, 0x03, 0x64, 0x6E, 0xBF, 0xFE, 0xDD, 0x32, + 0xFE, 0x2C, 0x01, 0xD4, 0x7A, 0xDB, 0x64, 0x62, 0x67, 0xFC, + 0x9C, 0x05, 0x45, 0xFE, 0x0D, 0x31, 0xB6, 0x94, 0x52, 0x01, + 0xF4, 0xFA, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88, + 0x00, 0x00, 0x04, 0x76, 0x05, 0x45, 0x00, 0x0D, 0x00, 0x17, + 0x00, 0x00, 0x01, 0x14, 0x06, 0x07, 0x06, 0x2B, 0x01, 0x11, + 0x21, 0x11, 0x21, 0x20, 0x17, 0x16, 0x05, 0x34, 0x26, 0x2B, + 0x01, 0x11, 0x33, 0x32, 0x37, 0x36, 0x04, 0x76, 0x7A, 0x74, + 0x72, 0xA2, 0xC5, 0xFE, 0xD9, 0x01, 0xE0, 0x01, 0x00, 0x88, + 0x86, 0xFE, 0xD7, 0x82, 0x84, 0x98, 0xA0, 0x82, 0x3F, 0x3D, + 0x03, 0x9B, 0x86, 0xCA, 0x38, 0x37, 0xFE, 0x24, 0x05, 0x45, + 0x6D, 0x6B, 0xD7, 0x6E, 0x5C, 0xFE, 0x5F, 0x37, 0x36, 0x00, + 0x00, 0x00, 0x00, 0x1C, 0x01, 0x56, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x76, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0xC1, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, + 0x00, 0xD3, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x16, 0x01, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x0C, 0x01, 0x37, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x05, 0x00, 0x0C, 0x01, 0x5E, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0C, 0x01, 0x85, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x55, + 0x02, 0x3E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x15, 0x02, 0xC0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x09, 0x00, 0x0E, 0x02, 0xF4, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0B, 0x00, 0x1E, 0x03, 0x41, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x44, 0x03, 0xEA, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x2E, + 0x04, 0x8D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, + 0x00, 0x2A, 0x05, 0x12, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, + 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, + 0x04, 0x09, 0x00, 0x01, 0x00, 0x0E, 0x00, 0xB1, 0x00, 0x03, + 0x00, 0x01, 0x04, 0x09, 0x00, 0x02, 0x00, 0x08, 0x00, 0xC9, + 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x03, 0x00, 0x2C, + 0x00, 0xD8, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x04, + 0x00, 0x18, 0x01, 0x1D, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, + 0x00, 0x05, 0x00, 0x18, 0x01, 0x44, 0x00, 0x03, 0x00, 0x01, + 0x04, 0x09, 0x00, 0x06, 0x00, 0x18, 0x01, 0x6B, 0x00, 0x03, + 0x00, 0x01, 0x04, 0x09, 0x00, 0x07, 0x00, 0xAA, 0x01, 0x92, + 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x08, 0x00, 0x2A, + 0x02, 0x94, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x09, + 0x00, 0x1C, 0x02, 0xD6, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, + 0x00, 0x0B, 0x00, 0x3C, 0x03, 0x03, 0x00, 0x03, 0x00, 0x01, + 0x04, 0x09, 0x00, 0x0C, 0x00, 0x88, 0x03, 0x60, 0x00, 0x03, + 0x00, 0x01, 0x04, 0x09, 0x00, 0x0D, 0x00, 0x5C, 0x04, 0x2F, + 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x0E, 0x00, 0x54, + 0x04, 0xBC, 0x00, 0x44, 0x00, 0x69, 0x00, 0x67, 0x00, 0x69, + 0x00, 0x74, 0x00, 0x69, 0x00, 0x7A, 0x00, 0x65, 0x00, 0x64, + 0x00, 0x20, 0x00, 0x64, 0x00, 0x61, 0x00, 0x74, 0x00, 0x61, + 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x79, + 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, + 0x00, 0x20, 0x00, 0x28, 0x00, 0x63, 0x00, 0x29, 0x00, 0x20, + 0x00, 0x32, 0x00, 0x30, 0x00, 0x31, 0x00, 0x30, 0x00, 0x2D, + 0x00, 0x32, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x20, + 0x00, 0x47, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x67, 0x00, 0x6C, + 0x00, 0x65, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x72, + 0x00, 0x70, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, + 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x2E, 0x00, 0x00, + 0x44, 0x69, 0x67, 0x69, 0x74, 0x69, 0x7A, 0x65, 0x64, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x63, 0x6F, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, + 0x30, 0x31, 0x30, 0x2D, 0x32, 0x30, 0x31, 0x32, 0x20, 0x47, + 0x6F, 0x6F, 0x67, 0x6C, 0x65, 0x20, 0x43, 0x6F, 0x72, 0x70, + 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x00, 0x00, + 0x43, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x73, 0x00, 0x69, 0x00, + 0x6E, 0x00, 0x65, 0x00, 0x00, 0x43, 0x6F, 0x75, 0x73, 0x69, + 0x6E, 0x65, 0x00, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6C, 0x00, + 0x64, 0x00, 0x00, 0x42, 0x6F, 0x6C, 0x64, 0x00, 0x00, 0x31, + 0x00, 0x2E, 0x00, 0x32, 0x00, 0x31, 0x00, 0x3B, 0x00, 0x4D, + 0x00, 0x4F, 0x00, 0x4E, 0x00, 0x4F, 0x00, 0x3B, 0x00, 0x43, + 0x00, 0x6F, 0x00, 0x75, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, + 0x00, 0x65, 0x00, 0x2D, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6C, + 0x00, 0x64, 0x00, 0x00, 0x31, 0x2E, 0x32, 0x31, 0x3B, 0x4D, + 0x4F, 0x4E, 0x4F, 0x3B, 0x43, 0x6F, 0x75, 0x73, 0x69, 0x6E, + 0x65, 0x2D, 0x42, 0x6F, 0x6C, 0x64, 0x00, 0x00, 0x43, 0x00, + 0x6F, 0x00, 0x75, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, + 0x65, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6C, 0x00, + 0x64, 0x00, 0x00, 0x43, 0x6F, 0x75, 0x73, 0x69, 0x6E, 0x65, + 0x20, 0x42, 0x6F, 0x6C, 0x64, 0x00, 0x00, 0x56, 0x00, 0x65, + 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, + 0x00, 0x20, 0x00, 0x31, 0x00, 0x2E, 0x00, 0x32, 0x00, 0x31, + 0x00, 0x00, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, + 0x31, 0x2E, 0x32, 0x31, 0x00, 0x00, 0x43, 0x00, 0x6F, 0x00, + 0x75, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x65, 0x00, + 0x2D, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x64, 0x00, + 0x00, 0x43, 0x6F, 0x75, 0x73, 0x69, 0x6E, 0x65, 0x2D, 0x42, + 0x6F, 0x6C, 0x64, 0x00, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x75, + 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x20, + 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, + 0x00, 0x74, 0x00, 0x72, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, + 0x00, 0x6D, 0x00, 0x61, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20, + 0x00, 0x6F, 0x00, 0x66, 0x00, 0x20, 0x00, 0x47, 0x00, 0x6F, + 0x00, 0x6F, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, + 0x00, 0x49, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x2E, 0x00, 0x20, + 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x6D, + 0x00, 0x61, 0x00, 0x79, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, + 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x67, 0x00, 0x69, + 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x65, + 0x00, 0x64, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, + 0x00, 0x63, 0x00, 0x65, 0x00, 0x72, 0x00, 0x74, 0x00, 0x61, + 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x6A, 0x00, 0x75, + 0x00, 0x72, 0x00, 0x69, 0x00, 0x73, 0x00, 0x64, 0x00, 0x69, + 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, + 0x00, 0x73, 0x00, 0x2E, 0x00, 0x00, 0x43, 0x6F, 0x75, 0x73, + 0x69, 0x6E, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x6D, 0x61, 0x72, 0x6B, 0x20, 0x6F, + 0x66, 0x20, 0x47, 0x6F, 0x6F, 0x67, 0x6C, 0x65, 0x20, 0x49, + 0x6E, 0x63, 0x2E, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x6D, 0x61, + 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6E, 0x20, 0x63, + 0x65, 0x72, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x6A, 0x75, 0x72, + 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x73, + 0x2E, 0x00, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x6F, + 0x00, 0x74, 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x20, + 0x00, 0x49, 0x00, 0x6D, 0x00, 0x61, 0x00, 0x67, 0x00, 0x69, + 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20, 0x00, 0x49, 0x00, 0x6E, + 0x00, 0x63, 0x00, 0x2E, 0x00, 0x00, 0x4D, 0x6F, 0x6E, 0x6F, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x49, 0x6D, 0x61, 0x67, 0x69, + 0x6E, 0x67, 0x20, 0x49, 0x6E, 0x63, 0x2E, 0x00, 0x00, 0x53, + 0x00, 0x74, 0x00, 0x65, 0x00, 0x76, 0x00, 0x65, 0x00, 0x20, + 0x00, 0x4D, 0x00, 0x61, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, + 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x53, 0x74, + 0x65, 0x76, 0x65, 0x20, 0x4D, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x6F, 0x6E, 0x00, 0x00, 0x68, 0x00, 0x74, 0x00, 0x74, 0x00, + 0x70, 0x00, 0x3A, 0x00, 0x2F, 0x00, 0x2F, 0x00, 0x77, 0x00, + 0x77, 0x00, 0x77, 0x00, 0x2E, 0x00, 0x6D, 0x00, 0x6F, 0x00, + 0x6E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x79, 0x00, 0x70, 0x00, + 0x65, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x61, 0x00, 0x67, 0x00, + 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x2E, 0x00, 0x63, 0x00, + 0x6F, 0x00, 0x6D, 0x00, 0x00, 0x68, 0x74, 0x74, 0x70, 0x3A, + 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x6D, 0x6F, 0x6E, 0x6F, + 0x74, 0x79, 0x70, 0x65, 0x69, 0x6D, 0x61, 0x67, 0x69, 0x6E, + 0x67, 0x2E, 0x63, 0x6F, 0x6D, 0x00, 0x00, 0x68, 0x00, 0x74, + 0x00, 0x74, 0x00, 0x70, 0x00, 0x3A, 0x00, 0x2F, 0x00, 0x2F, + 0x00, 0x77, 0x00, 0x77, 0x00, 0x77, 0x00, 0x2E, 0x00, 0x6D, + 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x79, + 0x00, 0x70, 0x00, 0x65, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x61, + 0x00, 0x67, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x2E, + 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x2F, 0x00, 0x50, + 0x00, 0x72, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x75, 0x00, 0x63, + 0x00, 0x74, 0x00, 0x73, 0x00, 0x53, 0x00, 0x65, 0x00, 0x72, + 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x73, + 0x00, 0x2F, 0x00, 0x54, 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, + 0x00, 0x44, 0x00, 0x65, 0x00, 0x73, 0x00, 0x69, 0x00, 0x67, + 0x00, 0x6E, 0x00, 0x65, 0x00, 0x72, 0x00, 0x53, 0x00, 0x68, + 0x00, 0x6F, 0x00, 0x77, 0x00, 0x63, 0x00, 0x61, 0x00, 0x73, + 0x00, 0x65, 0x00, 0x00, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, + 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x6D, 0x6F, 0x6E, 0x6F, 0x74, + 0x79, 0x70, 0x65, 0x69, 0x6D, 0x61, 0x67, 0x69, 0x6E, 0x67, + 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x50, 0x72, 0x6F, 0x64, 0x75, + 0x63, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x2F, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x73, 0x69, + 0x67, 0x6E, 0x65, 0x72, 0x53, 0x68, 0x6F, 0x77, 0x63, 0x61, + 0x73, 0x65, 0x00, 0x00, 0x4C, 0x00, 0x69, 0x00, 0x63, 0x00, + 0x65, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x65, 0x00, 0x64, 0x00, + 0x20, 0x00, 0x75, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x65, 0x00, + 0x72, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, + 0x20, 0x00, 0x41, 0x00, 0x70, 0x00, 0x61, 0x00, 0x63, 0x00, + 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4C, 0x00, 0x69, 0x00, + 0x63, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x65, 0x00, + 0x2C, 0x00, 0x20, 0x00, 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, + 0x73, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, + 0x32, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x00, 0x4C, 0x69, 0x63, + 0x65, 0x6E, 0x73, 0x65, 0x64, 0x20, 0x75, 0x6E, 0x64, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x70, 0x61, 0x63, + 0x68, 0x65, 0x20, 0x4C, 0x69, 0x63, 0x65, 0x6E, 0x73, 0x65, + 0x2C, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, + 0x32, 0x2E, 0x30, 0x00, 0x00, 0x68, 0x00, 0x74, 0x00, 0x74, + 0x00, 0x70, 0x00, 0x3A, 0x00, 0x2F, 0x00, 0x2F, 0x00, 0x77, + 0x00, 0x77, 0x00, 0x77, 0x00, 0x2E, 0x00, 0x61, 0x00, 0x70, + 0x00, 0x61, 0x00, 0x63, 0x00, 0x68, 0x00, 0x65, 0x00, 0x2E, + 0x00, 0x6F, 0x00, 0x72, 0x00, 0x67, 0x00, 0x2F, 0x00, 0x6C, + 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x73, + 0x00, 0x65, 0x00, 0x73, 0x00, 0x2F, 0x00, 0x4C, 0x00, 0x49, + 0x00, 0x43, 0x00, 0x45, 0x00, 0x4E, 0x00, 0x53, 0x00, 0x45, + 0x00, 0x2D, 0x00, 0x32, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x00, + 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x77, 0x77, + 0x2E, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2E, 0x6F, 0x72, + 0x67, 0x2F, 0x6C, 0x69, 0x63, 0x65, 0x6E, 0x73, 0x65, 0x73, + 0x2F, 0x4C, 0x49, 0x43, 0x45, 0x4E, 0x53, 0x45, 0x2D, 0x32, + 0x2E, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0x24, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x13, 0x00, 0x14, + 0x00, 0x15, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, + 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x24, + 0x00, 0x30, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x00, 0x08, 0x00, 0x0A, 0x00, 0x0E, 0x00, 0x07, 0xFF, 0xFF, + 0x00, 0x0F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, + 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, + 0x00, 0x11, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, + 0x00, 0x1E, 0x00, 0x2C, 0x00, 0x01, 0x68, 0x65, 0x62, 0x72, + 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x63, 0x63, 0x6D, 0x70, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x04, 0x00, 0x06, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x14, + 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x0A, 0x00, 0x1E, 0x00, 0x38, 0x00, 0x01, + 0x68, 0x65, 0x62, 0x72, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, + 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x10, 0x00, 0x1E, + 0x00, 0x2C, 0x00, 0x3A, 0x00, 0x48, 0x00, 0x5E, 0x00, 0x7E, + 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, 0x00, 0x78, 0x00, 0x94, + 0x00, 0xB0, 0x00, 0xCC, 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, + 0x00, 0xDA, 0x00, 0xF6, 0x01, 0x12, 0x01, 0x2E, 0x00, 0x08, + 0x00, 0x01, 0x00, 0x04, 0x01, 0x3C, 0x01, 0x58, 0x01, 0x74, + 0x01, 0x90, 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, 0x01, 0x9E, + 0x01, 0xBA, 0x01, 0xD6, 0x01, 0xF2, 0x00, 0x08, 0x00, 0x01, + 0x00, 0x08, 0x02, 0x00, 0x02, 0x1C, 0x02, 0x3E, 0x02, 0x60, + 0x02, 0x82, 0x02, 0xA4, 0x02, 0xC6, 0x02, 0xE8, 0x00, 0x08, + 0x00, 0x01, 0x00, 0x0D, 0x02, 0xEE, 0x03, 0x0A, 0x03, 0x26, + 0x03, 0x42, 0x03, 0x5E, 0x03, 0x7A, 0x03, 0x96, 0x03, 0xB2, + 0x03, 0xCE, 0x03, 0xEA, 0x04, 0x06, 0x04, 0x22, 0x04, 0x3E, + 0x00, 0x08, 0x00, 0x01, 0x00, 0x02, 0x04, 0x3A, 0x04, 0x5C, + 0x00, 0x03, 0x00, 0x01, 0x00, 0x14, 0x00, 0x01, 0x00, 0x10, + 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, + 0x00, 0x14, 0x00, 0x01, 0x00, 0x10, 0x00, 0x01, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, + 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x14, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x01, 0x00, 0x14, 0x00, 0x01, 0x00, 0x10, + 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x01, 0x00, 0x14, 0x00, 0x01, 0x00, 0x10, 0x00, 0x01, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, + 0x00, 0x14, 0x00, 0x01, 0x00, 0x10, 0x00, 0x01, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, + 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x14, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x01, 0x00, 0x14, 0x00, 0x01, 0x00, 0x10, 0x00, 0x01, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, + 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, + 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, + 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x16, 0x00, 0x1A, 0x00, 0x1E, 0x00, 0x01, 0x00, 0x12, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x16, 0x00, 0x1A, 0x00, 0x1E, + 0x00, 0x01, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x16, + 0x00, 0x1A, 0x00, 0x1E, 0x00, 0x01, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x16, 0x00, 0x1A, 0x00, 0x1E, 0x00, 0x01, + 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x16, 0x00, 0x1A, + 0x00, 0x1E, 0x00, 0x01, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x16, 0x00, 0x1A, 0x00, 0x1E, 0x00, 0x01, 0x00, 0x12, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, + 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, + 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, + 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, + 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, + 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, + 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, + 0x00, 0x14, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x14, + 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x1A, 0x00, 0x1E, + 0x00, 0x02, 0x00, 0x12, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, + 0x00, 0x1A, 0x00, 0x1E, 0x00, 0x02, 0x00, 0x12, 0x00, 0x16, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xDA, 0x32, + 0xF0, 0x84, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x50, 0xBF, 0x5E, + 0x00, 0x00, 0x00, 0x00, 0xE4, 0x03, 0xE7, 0x99, + }; + + #endif // COUSINEBOLDSUBSET_H + \ No newline at end of file diff --git a/src/fonts/jost.h b/src/fonts/jost.h deleted file mode 100644 index 037f7fc..0000000 --- a/src/fonts/jost.h +++ /dev/null @@ -1,1869 +0,0 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT - -// This was created as per https://github.com/takkaO/OpenFontRender/blob/master/examples/TFT_eSPI/load_from_binary/load_from_binary.ino#L1 -// The generated font supports the following characters; basic ASCII, accented chars from extended ASCII plus €: -// !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€ÇüéâäàåçêëèïîìÄÅɧÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѰ∞ - -#ifndef _JOSTTTF_H_ -#define _JOSTTTF_H_ - -const unsigned char jost[18556] = { -0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x80, 0x00, 0x03, -0x00, 0x30, 0x63, 0x6D, 0x61, 0x70, 0xF8, 0xC0, 0x18, 0x8E, -0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x10, 0x3C, 0x67, 0x6C, -0x79, 0x66, 0xA5, 0x7E, 0x96, 0xCB, 0x00, 0x00, 0x10, 0xF8, -0x00, 0x00, 0x30, 0xB0, 0x68, 0x65, 0x61, 0x64, 0x25, 0x6B, -0x73, 0xE2, 0x00, 0x00, 0x41, 0xA8, 0x00, 0x00, 0x00, 0x36, -0x68, 0x68, 0x65, 0x61, 0x03, 0x67, 0x04, 0x48, 0x00, 0x00, -0x41, 0xE0, 0x00, 0x00, 0x00, 0x24, 0x68, 0x6D, 0x74, 0x78, -0x13, 0xA1, 0x17, 0x4B, 0x00, 0x00, 0x42, 0x04, 0x00, 0x00, -0x02, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x00, 0x0B, 0xD2, 0x6D, -0x00, 0x00, 0x44, 0x24, 0x00, 0x00, 0x02, 0x24, 0x6D, 0x61, -0x78, 0x70, 0x07, 0x86, 0x11, 0x1F, 0x00, 0x00, 0x46, 0x48, -0x00, 0x00, 0x00, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x7B, 0xB1, -0x4F, 0xE5, 0x00, 0x00, 0x46, 0x68, 0x00, 0x00, 0x01, 0x8C, -0x4F, 0x53, 0x2F, 0x32, 0x5F, 0x7E, 0x35, 0x3F, 0x00, 0x00, -0x47, 0xF4, 0x00, 0x00, 0x00, 0x60, 0x70, 0x6F, 0x73, 0x74, -0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x48, 0x54, 0x00, 0x00, -0x00, 0x20, 0x70, 0x72, 0x65, 0x70, 0x68, 0x06, 0x8C, 0x85, -0x00, 0x00, 0x48, 0x74, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, -0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1C, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x05, 0x7C, 0x00, 0x03, -0x00, 0x01, 0x00, 0x00, 0x0A, 0xDC, 0x00, 0x04, 0x05, 0x60, -0x00, 0x00, 0x01, 0x10, 0x01, 0x00, 0x00, 0x07, 0x00, 0x10, -0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, -0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, -0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, -0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, -0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, -0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, -0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, -0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, -0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, -0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x51, 0x00, 0x52, -0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, -0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, -0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, -0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, -0x00, 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, -0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, -0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, 0x00, 0x75, -0x00, 0x76, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, -0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0xA2, -0x00, 0xA3, 0x00, 0xA5, 0x00, 0xA7, 0x00, 0xB0, 0x00, 0xC4, -0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC9, 0x00, 0xD1, -0x00, 0xD6, 0x00, 0xDC, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, -0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE9, -0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0xED, 0x00, 0xEE, -0x00, 0xEF, 0x00, 0xF1, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, -0x00, 0xF6, 0x00, 0xF9, 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFC, -0x00, 0xFF, 0x01, 0x92, 0x20, 0xA7, 0x20, 0xAC, 0x22, 0x1E, -0xFF, 0xFF, 0x00, 0x00, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, -0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, -0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, -0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, -0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, -0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, -0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, -0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00, 0x46, -0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, -0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, -0x00, 0x51, 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, -0x00, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, -0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, -0x00, 0x60, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x64, -0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, 0x00, 0x69, -0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, -0x00, 0x6F, 0x00, 0x70, 0x00, 0x71, 0x00, 0x72, 0x00, 0x73, -0x00, 0x74, 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, 0x00, 0x78, -0x00, 0x79, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, -0x00, 0x7E, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA5, 0x00, 0xA7, -0x00, 0xB0, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC7, -0x00, 0xC9, 0x00, 0xD1, 0x00, 0xD6, 0x00, 0xDC, 0x00, 0xE0, -0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE7, -0x00, 0xE8, 0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, -0x00, 0xED, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xF1, 0x00, 0xF2, -0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF6, 0x00, 0xF9, 0x00, 0xFA, -0x00, 0xFB, 0x00, 0xFC, 0x00, 0xFF, 0x01, 0x92, 0x20, 0xA7, -0x20, 0xAC, 0x22, 0x1E, 0xFF, 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, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, -0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, -0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, -0x00, 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, -0x00, 0x15, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, -0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, -0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, -0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, -0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, -0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, -0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, -0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, -0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, -0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00, 0x46, -0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, -0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, -0x00, 0x51, 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, -0x00, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, -0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, -0x00, 0x60, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x64, -0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, 0x00, 0x69, -0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, -0x00, 0x6F, 0x00, 0x70, 0x00, 0x71, 0x00, 0x72, 0x00, 0x73, -0x00, 0x74, 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, 0x00, 0x78, -0x00, 0x79, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, -0x00, 0x7E, 0x00, 0x7F, 0x00, 0x80, 0x00, 0x81, 0x00, 0x82, -0x00, 0x83, 0x00, 0x84, 0x00, 0x85, 0x00, 0x86, 0x00, 0x87, -0x00, 0x00, 0x00, 0x04, 0x05, 0x60, 0x00, 0x00, 0x01, 0x10, -0x01, 0x00, 0x00, 0x07, 0x00, 0x10, 0x00, 0x21, 0x00, 0x22, -0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, -0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, -0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, -0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, -0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, -0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, -0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, -0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, -0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, -0x00, 0x50, 0x00, 0x51, 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, -0x00, 0x55, 0x00, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, -0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, -0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, -0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, -0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, -0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x71, 0x00, 0x72, -0x00, 0x73, 0x00, 0x74, 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, -0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, -0x00, 0x7D, 0x00, 0x7E, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA5, -0x00, 0xA7, 0x00, 0xB0, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC6, -0x00, 0xC7, 0x00, 0xC9, 0x00, 0xD1, 0x00, 0xD6, 0x00, 0xDC, -0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE4, 0x00, 0xE5, -0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, -0x00, 0xEC, 0x00, 0xED, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xF1, -0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF6, 0x00, 0xF9, -0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0xFF, 0x01, 0x92, -0x20, 0xA7, 0x20, 0xAC, 0x22, 0x1E, 0xFF, 0xFF, 0x00, 0x00, -0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, -0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, -0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, -0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, -0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, -0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, -0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, -0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, -0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, -0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x51, 0x00, 0x52, -0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, -0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, -0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, -0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, -0x00, 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, -0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, -0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, 0x00, 0x75, -0x00, 0x76, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, -0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0xA2, -0x00, 0xA3, 0x00, 0xA5, 0x00, 0xA7, 0x00, 0xB0, 0x00, 0xC4, -0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC9, 0x00, 0xD1, -0x00, 0xD6, 0x00, 0xDC, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, -0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE9, -0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0xED, 0x00, 0xEE, -0x00, 0xEF, 0x00, 0xF1, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, -0x00, 0xF6, 0x00, 0xF9, 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFC, -0x00, 0xFF, 0x01, 0x92, 0x20, 0xA7, 0x20, 0xAC, 0x22, 0x1E, -0xFF, 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, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x00, 0x01, 0x00, 0x02, -0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, -0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, -0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x11, -0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16, -0x00, 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, -0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, -0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, -0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, -0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, -0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, -0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, -0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, -0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, -0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, -0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, -0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x51, 0x00, 0x52, -0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, -0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, -0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, -0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, -0x00, 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, -0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, -0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, 0x00, 0x75, -0x00, 0x76, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, -0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0x7F, -0x00, 0x80, 0x00, 0x81, 0x00, 0x82, 0x00, 0x83, 0x00, 0x84, -0x00, 0x85, 0x00, 0x86, 0x00, 0x87, 0x00, 0x00, 0x00, 0x04, -0x05, 0x60, 0x00, 0x00, 0x01, 0x10, 0x01, 0x00, 0x00, 0x07, -0x00, 0x10, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, -0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, -0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, -0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, -0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, -0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, -0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, -0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, -0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, -0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x51, -0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, -0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, -0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x60, -0x00, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, -0x00, 0x66, 0x00, 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, -0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, -0x00, 0x70, 0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, -0x00, 0x75, 0x00, 0x76, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, -0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, -0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA5, 0x00, 0xA7, 0x00, 0xB0, -0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC9, -0x00, 0xD1, 0x00, 0xD6, 0x00, 0xDC, 0x00, 0xE0, 0x00, 0xE1, -0x00, 0xE2, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE7, 0x00, 0xE8, -0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0xED, -0x00, 0xEE, 0x00, 0xEF, 0x00, 0xF1, 0x00, 0xF2, 0x00, 0xF3, -0x00, 0xF4, 0x00, 0xF6, 0x00, 0xF9, 0x00, 0xFA, 0x00, 0xFB, -0x00, 0xFC, 0x00, 0xFF, 0x01, 0x92, 0x20, 0xA7, 0x20, 0xAC, -0x22, 0x1E, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x21, 0x00, 0x22, -0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, -0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, -0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, -0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, -0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, -0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, -0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, -0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, -0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, -0x00, 0x50, 0x00, 0x51, 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, -0x00, 0x55, 0x00, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, -0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, -0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, -0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, -0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, -0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x71, 0x00, 0x72, -0x00, 0x73, 0x00, 0x74, 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, -0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, -0x00, 0x7D, 0x00, 0x7E, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA5, -0x00, 0xA7, 0x00, 0xB0, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC6, -0x00, 0xC7, 0x00, 0xC9, 0x00, 0xD1, 0x00, 0xD6, 0x00, 0xDC, -0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE4, 0x00, 0xE5, -0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, -0x00, 0xEC, 0x00, 0xED, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xF1, -0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF6, 0x00, 0xF9, -0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0xFF, 0x01, 0x92, -0x20, 0xA7, 0x20, 0xAC, 0x22, 0x1E, 0xFF, 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, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, -0x01, 0x10, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, -0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, -0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, -0x00, 0x0F, 0x00, 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, -0x00, 0x14, 0x00, 0x15, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, -0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, -0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, 0x22, -0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, -0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, -0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, -0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, -0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, -0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, -0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, -0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, -0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, -0x00, 0x50, 0x00, 0x51, 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, -0x00, 0x55, 0x00, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, -0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, -0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, -0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, -0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, -0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x71, 0x00, 0x72, -0x00, 0x73, 0x00, 0x74, 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, -0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, -0x00, 0x7D, 0x00, 0x7E, 0x00, 0x7F, 0x00, 0x80, 0x00, 0x81, -0x00, 0x82, 0x00, 0x83, 0x00, 0x84, 0x00, 0x85, 0x00, 0x86, -0x00, 0x87, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x02, 0x58, 0x08, 0x00, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, -0x00, 0x00, 0x02, 0x58, 0x00, 0x00, 0xFD, 0xAD, 0x02, 0x4E, -0x00, 0x00, 0xFD, 0xB2, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, -0xF8, 0x00, 0x00, 0x05, 0x00, 0x00, 0x07, 0xF6, 0x00, 0x00, -0x00, 0x02, 0x00, 0x5F, 0xFF, 0xF1, 0x00, 0xCD, 0x02, 0xBC, -0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x13, 0x13, 0x33, 0x13, -0x03, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, -0x22, 0x06, 0x64, 0x14, 0x3C, 0x14, 0x69, 0x21, 0x16, 0x17, -0x20, 0x20, 0x17, 0x16, 0x21, 0x02, 0xBC, 0xFE, 0x0C, 0x01, -0xF4, 0xFD, 0x6C, 0x16, 0x21, 0x21, 0x16, 0x17, 0x20, 0x20, -0x00, 0x02, 0x00, 0x50, 0x01, 0x90, 0x01, 0x95, 0x02, 0xBC, -0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x13, 0x03, 0x33, 0x13, -0x33, 0x03, 0x33, 0x13, 0x82, 0x32, 0x37, 0x5A, 0x55, 0x32, -0x37, 0x5A, 0x02, 0xBC, 0xFE, 0xD4, 0x01, 0x2C, 0xFE, 0xD4, -0x01, 0x2C, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x02, 0x3A, -0x02, 0xBC, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x17, 0x00, 0x1F, -0x00, 0x00, 0x13, 0x3B, 0x04, 0x35, 0x21, 0x03, 0x21, 0x35, -0x2B, 0x04, 0x01, 0x0F, 0x04, 0x33, 0x13, 0x21, 0x03, 0x33, -0x3F, 0x04, 0x4B, 0x87, 0x0E, 0xC0, 0x0E, 0x8C, 0xFE, 0x11, -0x28, 0x01, 0xEF, 0x80, 0x14, 0xC8, 0x10, 0x83, 0x01, 0xA4, -0x36, 0x04, 0x34, 0x05, 0x37, 0x4B, 0xAA, 0xFE, 0xE3, 0xAA, -0x4B, 0x37, 0x04, 0x36, 0x04, 0x35, 0x01, 0xB8, 0x41, 0xFE, -0xCF, 0x41, 0x01, 0xB3, 0xDE, 0x10, 0xD8, 0x12, 0xE4, 0x02, -0xBC, 0xFD, 0x44, 0xE2, 0x12, 0xDE, 0x10, 0xDA, 0x00, 0x03, -0x00, 0x37, 0xFF, 0x90, 0x02, 0x06, 0x03, 0x32, 0x00, 0x03, -0x00, 0x07, 0x00, 0x3B, 0x00, 0x00, 0x01, 0x15, 0x33, 0x35, -0x03, 0x15, 0x33, 0x35, 0x13, 0x37, 0x2E, 0x02, 0x23, 0x22, -0x06, 0x06, 0x15, 0x14, 0x1E, 0x02, 0x17, 0x1E, 0x02, 0x15, -0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x27, 0x07, 0x1E, -0x02, 0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x2E, 0x02, 0x27, -0x2E, 0x02, 0x35, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, -0x01, 0x03, 0x4A, 0x4A, 0x4A, 0x6B, 0x45, 0x0E, 0x3B, 0x56, -0x39, 0x39, 0x5C, 0x36, 0x23, 0x36, 0x3D, 0x1A, 0x28, 0x4B, -0x31, 0x1B, 0x35, 0x28, 0x2B, 0x43, 0x34, 0x15, 0x48, 0x16, -0x49, 0x62, 0x39, 0x46, 0x5E, 0x31, 0x22, 0x36, 0x3E, 0x1B, -0x2A, 0x4A, 0x2E, 0x18, 0x33, 0x28, 0x27, 0x36, 0x26, 0x03, -0x32, 0x96, 0x96, 0xFC, 0xFE, 0xA0, 0xA0, 0x01, 0xD2, 0x2E, -0x24, 0x45, 0x2D, 0x2D, 0x4D, 0x30, 0x30, 0x44, 0x2F, 0x1E, -0x09, 0x0E, 0x26, 0x3A, 0x2D, 0x23, 0x33, 0x1B, 0x26, 0x46, -0x30, 0x2B, 0x3A, 0x56, 0x31, 0x32, 0x5B, 0x3B, 0x30, 0x45, -0x2F, 0x20, 0x0A, 0x10, 0x23, 0x31, 0x26, 0x1F, 0x2A, 0x16, -0x21, 0x35, 0x00, 0x05, 0x00, 0x23, 0xFF, 0xF6, 0x02, 0xCC, -0x02, 0xC6, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x3F, -0x00, 0x43, 0x00, 0x00, 0x13, 0x14, 0x16, 0x16, 0x33, 0x32, -0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, -0x17, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x15, 0x14, -0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x01, 0x14, 0x16, 0x16, -0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, -0x06, 0x06, 0x17, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, -0x15, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x13, 0x01, -0x33, 0x01, 0x23, 0x27, 0x48, 0x2F, 0x30, 0x47, 0x27, 0x27, -0x47, 0x30, 0x2F, 0x48, 0x27, 0x47, 0x15, 0x27, 0x1B, 0x1C, -0x26, 0x15, 0x15, 0x26, 0x1C, 0x1B, 0x27, 0x15, 0x01, 0x26, -0x27, 0x48, 0x2F, 0x30, 0x47, 0x27, 0x27, 0x47, 0x30, 0x2F, -0x48, 0x27, 0x47, 0x15, 0x27, 0x1B, 0x1C, 0x26, 0x15, 0x15, -0x26, 0x1C, 0x1B, 0x27, 0x15, 0x5C, 0xFE, 0x3E, 0x4B, 0x01, -0xC2, 0x02, 0x26, 0x2C, 0x49, 0x2B, 0x2B, 0x49, 0x2C, 0x2D, -0x48, 0x2B, 0x2B, 0x48, 0x2D, 0x1A, 0x2B, 0x1A, 0x1A, 0x2B, -0x1A, 0x19, 0x2C, 0x1A, 0x1A, 0x2C, 0xFE, 0x89, 0x2C, 0x49, -0x2B, 0x2B, 0x49, 0x2C, 0x2D, 0x48, 0x2B, 0x2B, 0x48, 0x2D, -0x1A, 0x2B, 0x1A, 0x1A, 0x2B, 0x1A, 0x19, 0x2C, 0x1A, 0x1A, -0x2C, 0x02, 0x3F, 0xFD, 0x44, 0x02, 0xBC, 0x00, 0x01, 0x00, -0x28, 0xFF, 0xF6, 0x02, 0x98, 0x02, 0xC7, 0x00, 0x3E, 0x00, -0x00, 0x13, 0x01, 0x33, 0x01, 0x26, 0x26, 0x35, 0x34, 0x36, -0x33, 0x32, 0x16, 0x16, 0x15, 0x14, 0x06, 0x07, 0x0E, 0x04, -0x15, 0x14, 0x16, 0x16, 0x33, 0x32, 0x3E, 0x02, 0x37, 0x27, -0x0E, 0x03, 0x23, 0x22, 0x26, 0x26, 0x35, 0x34, 0x3E, 0x02, -0x37, 0x3E, 0x03, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, -0x06, 0x15, 0x14, 0x16, 0x16, 0xDF, 0x01, 0x50, 0x60, 0xFE, -0x8E, 0x1E, 0x36, 0x2E, 0x29, 0x1C, 0x26, 0x15, 0x41, 0x38, -0x14, 0x38, 0x3A, 0x31, 0x1F, 0x41, 0x67, 0x39, 0x43, 0x70, -0x60, 0x54, 0x28, 0x3E, 0x24, 0x4D, 0x52, 0x59, 0x30, 0x28, -0x42, 0x27, 0x24, 0x39, 0x40, 0x1B, 0x23, 0x36, 0x26, 0x14, -0x28, 0x4B, 0x35, 0x32, 0x4D, 0x2C, 0x27, 0x33, 0x01, 0x80, -0xFE, 0x80, 0x01, 0xA9, 0x23, 0x3E, 0x22, 0x26, 0x2E, 0x16, -0x26, 0x1A, 0x22, 0x47, 0x20, 0x0B, 0x1B, 0x24, 0x32, 0x42, -0x2C, 0x3B, 0x57, 0x2F, 0x32, 0x52, 0x67, 0x34, 0x27, 0x31, -0x5A, 0x47, 0x2A, 0x1E, 0x38, 0x26, 0x26, 0x36, 0x29, 0x21, -0x10, 0x15, 0x2B, 0x2F, 0x30, 0x19, 0x2A, 0x47, 0x2C, 0x26, -0x46, 0x2F, 0x26, 0x40, 0x33, 0x00, 0x01, 0x00, 0x50, 0x01, -0x90, 0x00, 0xE1, 0x02, 0xBC, 0x00, 0x03, 0x00, 0x00, 0x13, -0x03, 0x33, 0x13, 0x82, 0x32, 0x37, 0x5A, 0x02, 0xBC, 0xFE, -0xD4, 0x01, 0x2C, 0x00, 0x01, 0x00, 0x5A, 0xFF, 0x38, 0x01, -0x18, 0x03, 0x0C, 0x00, 0x0D, 0x00, 0x00, 0x13, 0x06, 0x06, -0x15, 0x14, 0x16, 0x17, 0x33, 0x26, 0x26, 0x35, 0x34, 0x36, -0x37, 0xCD, 0x3C, 0x37, 0x37, 0x3C, 0x4B, 0x34, 0x30, 0x30, -0x34, 0x03, 0x0C, 0x70, 0xFA, 0x80, 0x7F, 0xFA, 0x71, 0x71, -0xFA, 0x7F, 0x80, 0xFA, 0x70, 0x00, 0x01, 0x00, 0x1E, 0xFF, -0x38, 0x00, 0xDC, 0x03, 0x0C, 0x00, 0x0D, 0x00, 0x00, 0x17, -0x36, 0x36, 0x35, 0x34, 0x26, 0x27, 0x23, 0x16, 0x16, 0x15, -0x14, 0x06, 0x07, 0x69, 0x3C, 0x37, 0x37, 0x3C, 0x4B, 0x35, -0x2F, 0x2F, 0x35, 0xC8, 0x71, 0xFA, 0x7F, 0x80, 0xFA, 0x70, -0x70, 0xFA, 0x80, 0x7F, 0xFA, 0x71, 0x00, 0x05, 0x00, 0x64, -0x01, 0x47, 0x01, 0xEC, 0x02, 0xBC, 0x00, 0x03, 0x00, 0x07, -0x00, 0x0B, 0x00, 0x0F, 0x00, 0x13, 0x00, 0x00, 0x01, 0x07, -0x17, 0x37, 0x07, 0x27, 0x07, 0x17, 0x23, 0x37, 0x27, 0x07, -0x27, 0x17, 0x37, 0x27, 0x37, 0x17, 0x33, 0x37, 0x01, 0xD7, -0xB7, 0x10, 0xBC, 0x35, 0x7B, 0x28, 0x6A, 0xAC, 0x6A, 0x28, -0x7B, 0x35, 0xBC, 0x10, 0xB7, 0x8C, 0x0A, 0x32, 0x0A, 0x02, -0x57, 0x46, 0x30, 0x33, 0xA4, 0x98, 0x1E, 0xA3, 0xA3, 0x1E, -0x98, 0xA4, 0x33, 0x30, 0x46, 0x65, 0xC3, 0xC3, 0x00, 0x02, -0x00, 0x41, 0x00, 0x0A, 0x02, 0x26, 0x01, 0xF4, 0x00, 0x03, -0x00, 0x07, 0x00, 0x00, 0x37, 0x21, 0x35, 0x21, 0x37, 0x11, -0x33, 0x11, 0x41, 0x01, 0xE5, 0xFE, 0x1B, 0xC8, 0x55, 0xD7, -0x50, 0xCD, 0xFE, 0x16, 0x01, 0xEA, 0x00, 0x01, 0x00, 0x3C, -0xFF, 0x56, 0x00, 0xE4, 0x00, 0x6E, 0x00, 0x03, 0x00, 0x00, -0x37, 0x03, 0x17, 0x37, 0x94, 0x58, 0x3A, 0x6E, 0x6E, 0xFE, -0xFD, 0x15, 0xFA, 0x00, 0x01, 0x00, 0x05, 0x00, 0xC8, 0x00, -0xCD, 0x01, 0x13, 0x00, 0x03, 0x00, 0x00, 0x37, 0x33, 0x35, -0x23, 0x05, 0xC8, 0xC8, 0xC8, 0x4B, 0x00, 0x01, 0x00, 0x5F, -0xFF, 0xF1, 0x00, 0xCD, 0x00, 0x5F, 0x00, 0x0B, 0x00, 0x00, -0x37, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, -0x22, 0x06, 0x5F, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, 0x16, -0x21, 0x28, 0x16, 0x21, 0x21, 0x16, 0x17, 0x20, 0x20, 0x00, -0x01, 0x00, 0x0F, 0xFF, 0x6A, 0x01, 0xF4, 0x02, 0xBC, 0x00, -0x03, 0x00, 0x00, 0x01, 0x01, 0x33, 0x01, 0x01, 0xA4, 0xFE, -0x6B, 0x50, 0x01, 0x95, 0x02, 0xBC, 0xFC, 0xAE, 0x03, 0x52, -0x00, 0x02, 0x00, 0x28, 0xFF, 0xF6, 0x02, 0x30, 0x02, 0xC6, -0x00, 0x13, 0x00, 0x23, 0x00, 0x00, 0x13, 0x34, 0x3E, 0x02, -0x33, 0x32, 0x1E, 0x02, 0x15, 0x14, 0x0E, 0x02, 0x23, 0x22, -0x2E, 0x02, 0x27, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, -0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x7D, 0x18, -0x2E, 0x41, 0x28, 0x29, 0x40, 0x2E, 0x18, 0x18, 0x2E, 0x40, -0x29, 0x28, 0x41, 0x2E, 0x18, 0x55, 0x42, 0x75, 0x4D, 0x4D, -0x75, 0x42, 0x42, 0x75, 0x4D, 0x4D, 0x75, 0x42, 0x01, 0x5E, -0x3D, 0x67, 0x4B, 0x29, 0x29, 0x4B, 0x67, 0x3D, 0x3D, 0x67, -0x4B, 0x29, 0x29, 0x4B, 0x67, 0x3D, 0x69, 0xA2, 0x5D, 0x5D, -0xA2, 0x69, 0x69, 0xA2, 0x5D, 0x5D, 0xA2, 0x00, 0x01, 0x00, -0x50, 0x00, 0x00, 0x01, 0x40, 0x02, 0xC6, 0x00, 0x05, 0x00, -0x00, 0x13, 0x37, 0x11, 0x33, 0x11, 0x07, 0x50, 0x9B, 0x55, -0xF0, 0x02, 0x32, 0x2E, 0xFD, 0xA0, 0x02, 0xC6, 0x3C, 0x00, -0x01, 0x00, 0x14, 0x00, 0x00, 0x02, 0x02, 0x02, 0xC7, 0x00, -0x1E, 0x00, 0x00, 0x33, 0x21, 0x35, 0x21, 0x37, 0x36, 0x36, -0x35, 0x34, 0x2E, 0x02, 0x23, 0x22, 0x06, 0x06, 0x15, 0x33, -0x34, 0x36, 0x36, 0x33, 0x32, 0x1E, 0x02, 0x15, 0x14, 0x06, -0x06, 0x07, 0x14, 0x01, 0xEE, 0xFE, 0xC1, 0xDF, 0x29, 0x34, -0x1A, 0x36, 0x54, 0x3A, 0x48, 0x67, 0x36, 0x55, 0x22, 0x41, -0x2D, 0x20, 0x32, 0x23, 0x12, 0x11, 0x21, 0x17, 0x50, 0xE3, -0x2A, 0x6A, 0x36, 0x20, 0x46, 0x3D, 0x27, 0x3F, 0x71, 0x4B, -0x35, 0x4D, 0x29, 0x16, 0x24, 0x2C, 0x17, 0x1C, 0x33, 0x31, -0x19, 0x00, 0x02, 0x00, 0x3C, 0xFF, 0xF6, 0x01, 0xF5, 0x02, -0xC6, 0x00, 0x19, 0x00, 0x36, 0x00, 0x00, 0x13, 0x32, 0x36, -0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x15, -0x33, 0x34, 0x36, 0x33, 0x32, 0x16, 0x16, 0x15, 0x14, 0x0E, -0x02, 0x23, 0x13, 0x32, 0x36, 0x36, 0x35, 0x34, 0x2E, 0x02, -0x23, 0x15, 0x32, 0x1E, 0x02, 0x15, 0x14, 0x06, 0x06, 0x23, -0x22, 0x26, 0x26, 0x35, 0x23, 0x14, 0x1E, 0x02, 0xFD, 0x44, -0x66, 0x3A, 0x2F, 0x57, 0x3C, 0x39, 0x59, 0x33, 0x51, 0x44, -0x31, 0x23, 0x2F, 0x18, 0x13, 0x24, 0x34, 0x22, 0x1E, 0x3F, -0x62, 0x39, 0x27, 0x45, 0x59, 0x33, 0x22, 0x3A, 0x2C, 0x19, -0x20, 0x3B, 0x28, 0x28, 0x3E, 0x23, 0x56, 0x20, 0x3A, 0x52, -0x01, 0x59, 0x30, 0x52, 0x31, 0x32, 0x54, 0x34, 0x2F, 0x52, -0x37, 0x2E, 0x3D, 0x1C, 0x33, 0x21, 0x19, 0x2C, 0x21, 0x13, -0xFE, 0x66, 0x30, 0x58, 0x3B, 0x34, 0x4A, 0x2F, 0x16, 0x37, -0x10, 0x21, 0x31, 0x20, 0x26, 0x38, 0x1F, 0x1E, 0x34, 0x21, -0x29, 0x47, 0x35, 0x1E, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, -0x02, 0x29, 0x02, 0xBC, 0x00, 0x0C, 0x00, 0x00, 0x37, 0x21, -0x35, 0x2B, 0x02, 0x13, 0x11, 0x15, 0x15, 0x33, 0x11, 0x23, -0x14, 0x02, 0x15, 0x8F, 0x11, 0xE9, 0xC6, 0x55, 0x23, 0x8C, -0x4B, 0x01, 0x28, 0xFE, 0xBC, 0x0B, 0xB0, 0x02, 0xBC, 0x00, -0x01, 0x00, 0x1E, 0xFF, 0xF6, 0x02, 0x0C, 0x02, 0xBC, 0x00, -0x25, 0x00, 0x00, 0x25, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, -0x07, 0x37, 0x21, 0x35, 0x21, 0x03, 0x3E, 0x02, 0x33, 0x32, -0x16, 0x16, 0x15, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, -0x27, 0x07, 0x1E, 0x02, 0x33, 0x32, 0x3E, 0x02, 0x02, 0x0C, -0x36, 0x5F, 0x3C, 0x1A, 0x35, 0x19, 0x2F, 0x01, 0x08, 0xFE, -0xB6, 0x5C, 0x24, 0x37, 0x37, 0x21, 0x2D, 0x47, 0x29, 0x25, -0x46, 0x32, 0x26, 0x46, 0x35, 0x10, 0x48, 0x17, 0x43, 0x5F, -0x40, 0x33, 0x58, 0x44, 0x26, 0xE6, 0x46, 0x6A, 0x3C, 0x0D, -0x0D, 0xB9, 0x4B, 0xFE, 0x8B, 0x19, 0x1B, 0x0B, 0x28, 0x48, -0x30, 0x30, 0x48, 0x28, 0x21, 0x35, 0x1E, 0x31, 0x28, 0x43, -0x28, 0x1E, 0x3C, 0x5A, 0x00, 0x02, 0x00, 0x32, 0xFF, 0xF6, -0x02, 0x0E, 0x02, 0xBC, 0x00, 0x0F, 0x00, 0x26, 0x00, 0x00, -0x37, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x15, 0x14, -0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x13, 0x03, 0x06, 0x06, -0x15, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x34, -0x2E, 0x02, 0x23, 0x22, 0x06, 0x07, 0x17, 0x13, 0x83, 0x29, -0x47, 0x2D, 0x2D, 0x47, 0x29, 0x29, 0x47, 0x2D, 0x2D, 0x47, -0x29, 0xC7, 0xEC, 0x14, 0x18, 0x3F, 0x6C, 0x43, 0x44, 0x6B, -0x3F, 0x20, 0x39, 0x4B, 0x2B, 0x22, 0x35, 0x14, 0x06, 0xDB, -0xE6, 0x30, 0x4B, 0x2A, 0x2A, 0x4B, 0x30, 0x30, 0x49, 0x2A, -0x2A, 0x49, 0x02, 0x06, 0xFE, 0xBB, 0x1C, 0x4A, 0x2B, 0x48, -0x6C, 0x3C, 0x3C, 0x6C, 0x48, 0x30, 0x53, 0x3E, 0x22, 0x10, -0x19, 0x05, 0x01, 0x21, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x00, -0x02, 0x08, 0x02, 0xBC, 0x00, 0x05, 0x00, 0x00, 0x13, 0x21, -0x01, 0x33, 0x01, 0x21, 0x1E, 0x01, 0x6B, 0xFE, 0xD7, 0x59, -0x01, 0x4F, 0xFE, 0x16, 0x02, 0x6C, 0xFD, 0x94, 0x02, 0xBC, -0x00, 0x04, 0x00, 0x37, 0xFF, 0xF6, 0x01, 0xEB, 0x02, 0xC6, -0x00, 0x11, 0x00, 0x21, 0x00, 0x35, 0x00, 0x45, 0x00, 0x00, -0x13, 0x14, 0x1E, 0x02, 0x33, 0x32, 0x3E, 0x02, 0x35, 0x34, -0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x17, 0x34, 0x36, 0x36, -0x33, 0x32, 0x16, 0x16, 0x15, 0x14, 0x06, 0x06, 0x23, 0x22, -0x26, 0x26, 0x03, 0x14, 0x1E, 0x02, 0x33, 0x32, 0x3E, 0x02, -0x35, 0x34, 0x2E, 0x02, 0x23, 0x22, 0x0E, 0x02, 0x17, 0x34, -0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x15, 0x14, 0x06, 0x06, -0x23, 0x22, 0x26, 0x26, 0x50, 0x1C, 0x33, 0x47, 0x2B, 0x2B, -0x47, 0x33, 0x1C, 0x33, 0x57, 0x37, 0x37, 0x57, 0x33, 0x51, -0x1D, 0x33, 0x20, 0x21, 0x32, 0x1D, 0x1F, 0x33, 0x1E, 0x1E, -0x33, 0x1F, 0x6A, 0x21, 0x3B, 0x4F, 0x2F, 0x2F, 0x4F, 0x3B, -0x21, 0x23, 0x3D, 0x4F, 0x2B, 0x2B, 0x4F, 0x3D, 0x23, 0x51, -0x27, 0x3F, 0x23, 0x23, 0x3F, 0x27, 0x27, 0x3F, 0x23, 0x23, -0x3F, 0x27, 0x02, 0x13, 0x29, 0x41, 0x2E, 0x18, 0x18, 0x2E, -0x41, 0x29, 0x32, 0x51, 0x30, 0x30, 0x51, 0x3C, 0x21, 0x34, -0x1D, 0x1D, 0x34, 0x21, 0x21, 0x32, 0x1C, 0x1C, 0x32, 0xFE, -0xD6, 0x29, 0x48, 0x38, 0x1F, 0x1F, 0x38, 0x48, 0x29, 0x30, -0x4B, 0x33, 0x1A, 0x1A, 0x33, 0x4B, 0x26, 0x26, 0x3D, 0x24, -0x24, 0x3D, 0x26, 0x2B, 0x3C, 0x20, 0x20, 0x3C, 0x00, 0x02, -0x00, 0x32, 0x00, 0x00, 0x02, 0x0E, 0x02, 0xC6, 0x00, 0x0F, -0x00, 0x26, 0x00, 0x00, 0x01, 0x14, 0x06, 0x06, 0x23, 0x22, -0x26, 0x26, 0x35, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, -0x03, 0x13, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, -0x06, 0x06, 0x15, 0x14, 0x1E, 0x02, 0x33, 0x32, 0x36, 0x37, -0x27, 0x03, 0x01, 0xBD, 0x29, 0x47, 0x2D, 0x2D, 0x47, 0x29, -0x29, 0x47, 0x2D, 0x2D, 0x47, 0x29, 0xC7, 0xEC, 0x14, 0x18, -0x3F, 0x6B, 0x44, 0x43, 0x6C, 0x3F, 0x20, 0x39, 0x4B, 0x2B, -0x22, 0x35, 0x14, 0x06, 0xDB, 0x01, 0xD6, 0x30, 0x4A, 0x2B, -0x2B, 0x4A, 0x30, 0x30, 0x49, 0x2A, 0x2A, 0x49, 0xFD, 0xFA, -0x01, 0x45, 0x1C, 0x4A, 0x2B, 0x48, 0x6C, 0x3C, 0x3C, 0x6C, -0x48, 0x30, 0x53, 0x3E, 0x22, 0x10, 0x19, 0x05, 0xFE, 0xDF, -0x00, 0x02, 0x00, 0x5F, 0xFF, 0xF1, 0x00, 0xCD, 0x01, 0xDB, -0x00, 0x0B, 0x00, 0x17, 0x00, 0x00, 0x37, 0x14, 0x16, 0x33, -0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x11, 0x14, -0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, -0x5F, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0x21, -0x16, 0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0x28, 0x16, 0x21, -0x21, 0x16, 0x17, 0x20, 0x20, 0x01, 0x65, 0x16, 0x21, 0x21, -0x16, 0x17, 0x20, 0x20, 0x00, 0x02, 0x00, 0x3C, 0xFF, 0x56, -0x00, 0xEB, 0x01, 0xDB, 0x00, 0x0B, 0x00, 0x0F, 0x00, 0x00, -0x13, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, -0x22, 0x06, 0x13, 0x03, 0x17, 0x37, 0x7D, 0x21, 0x16, 0x17, -0x20, 0x20, 0x17, 0x16, 0x21, 0x17, 0x58, 0x3A, 0x6E, 0x01, -0xA4, 0x16, 0x21, 0x21, 0x16, 0x17, 0x20, 0x20, 0xFE, 0xB3, -0xFE, 0xFD, 0x15, 0xFA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x0F, -0x02, 0x3F, 0x01, 0xF4, 0x00, 0x06, 0x00, 0x00, 0x13, 0x25, -0x35, 0x05, 0x15, 0x05, 0x35, 0xC5, 0x01, 0x7A, 0xFE, 0x02, -0x01, 0xFE, 0x01, 0x06, 0x9E, 0x50, 0xDC, 0x2D, 0xDC, 0x50, -0x00, 0x02, 0x00, 0x41, 0x00, 0x8C, 0x02, 0x26, 0x01, 0x6D, -0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x37, 0x21, 0x35, 0x21, -0x35, 0x21, 0x35, 0x21, 0x41, 0x01, 0xE5, 0xFE, 0x1B, 0x01, -0xE5, 0xFE, 0x1B, 0x8C, 0x4B, 0x4B, 0x4B, 0x00, 0x01, 0x00, -0x41, 0x00, 0x0F, 0x02, 0x3F, 0x01, 0xF4, 0x00, 0x06, 0x00, -0x00, 0x25, 0x05, 0x15, 0x25, 0x35, 0x25, 0x15, 0x01, 0xBB, -0xFE, 0x86, 0x01, 0xFE, 0xFE, 0x02, 0xFD, 0x9E, 0x50, 0xDC, -0x2D, 0xDC, 0x50, 0x00, 0x02, 0x00, 0x3C, 0xFF, 0xF1, 0x01, -0xF1, 0x02, 0xC6, 0x00, 0x1C, 0x00, 0x28, 0x00, 0x00, 0x01, -0x14, 0x06, 0x06, 0x23, 0x23, 0x17, 0x33, 0x37, 0x3E, 0x02, -0x35, 0x34, 0x2E, 0x02, 0x23, 0x22, 0x06, 0x06, 0x07, 0x17, -0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x03, 0x14, 0x16, 0x33, -0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x01, 0xA0, -0x2E, 0x56, 0x3C, 0x1A, 0x14, 0x3C, 0x07, 0x38, 0x60, 0x3C, -0x21, 0x3B, 0x4F, 0x2F, 0x3B, 0x51, 0x38, 0x17, 0x41, 0x17, -0x47, 0x32, 0x2D, 0x42, 0x24, 0xDD, 0x21, 0x16, 0x17, 0x20, -0x20, 0x17, 0x16, 0x21, 0x01, 0xF4, 0x26, 0x47, 0x2E, 0xAF, -0x78, 0x03, 0x39, 0x5D, 0x39, 0x2D, 0x4C, 0x39, 0x20, 0x1D, -0x35, 0x23, 0x29, 0x26, 0x2D, 0x20, 0x3C, 0xFE, 0x09, 0x16, -0x21, 0x21, 0x16, 0x17, 0x20, 0x20, 0x00, 0x03, 0x00, 0x23, -0xFF, 0xF6, 0x02, 0xDF, 0x02, 0xC6, 0x00, 0x0E, 0x00, 0x1E, -0x00, 0x59, 0x00, 0x00, 0x01, 0x34, 0x36, 0x36, 0x33, 0x32, -0x16, 0x16, 0x15, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x27, -0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x26, -0x26, 0x23, 0x22, 0x06, 0x06, 0x07, 0x14, 0x16, 0x16, 0x33, -0x32, 0x36, 0x37, 0x27, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, -0x35, 0x34, 0x3E, 0x02, 0x33, 0x32, 0x1E, 0x02, 0x15, 0x14, -0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x35, 0x34, 0x36, 0x37, -0x37, 0x23, 0x07, 0x33, 0x06, 0x16, 0x16, 0x33, 0x32, 0x3E, -0x02, 0x35, 0x34, 0x2E, 0x02, 0x23, 0x22, 0x0E, 0x02, 0x01, -0x0A, 0x21, 0x34, 0x1B, 0x19, 0x27, 0x17, 0x26, 0x36, 0x19, -0x29, 0x29, 0x4C, 0x27, 0x3F, 0x24, 0x30, 0x4E, 0x2F, 0x1A, -0x36, 0x2B, 0x2A, 0x57, 0x3B, 0x9B, 0x4C, 0x93, 0x6B, 0x56, -0x69, 0x2D, 0x23, 0x31, 0x63, 0x35, 0x4F, 0x75, 0x40, 0x2C, -0x51, 0x73, 0x46, 0x3F, 0x5E, 0x3E, 0x1F, 0x25, 0x2F, 0x0F, -0x10, 0x11, 0x06, 0x01, 0x01, 0x29, 0x4B, 0x24, 0x07, 0x05, -0x14, 0x2D, 0x1E, 0x1C, 0x3E, 0x37, 0x22, 0x28, 0x50, 0x78, -0x50, 0x54, 0x8B, 0x66, 0x37, 0x01, 0x40, 0x2B, 0x3F, 0x22, -0x16, 0x28, 0x1C, 0x35, 0x3D, 0x1A, 0x30, 0x27, 0x31, 0x47, -0x25, 0x2F, 0x5E, 0x45, 0x28, 0x49, 0x2F, 0x31, 0x5E, 0x43, -0x63, 0x95, 0x52, 0x21, 0x1B, 0x39, 0x1F, 0x15, 0x41, 0x77, -0x51, 0x45, 0x76, 0x58, 0x32, 0x2A, 0x48, 0x5B, 0x32, 0x3F, -0x4D, 0x22, 0x0D, 0x15, 0x0C, 0x06, 0x10, 0x05, 0xE7, 0xFA, -0x21, 0x36, 0x21, 0x1A, 0x38, 0x5C, 0x42, 0x3C, 0x72, 0x5C, -0x36, 0x3C, 0x6A, 0x8E, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, -0x02, 0x8F, 0x02, 0xDF, 0x00, 0x03, 0x00, 0x0D, 0x00, 0x00, -0x37, 0x21, 0x27, 0x21, 0x37, 0x13, 0x17, 0x17, 0x33, 0x01, -0x01, 0x33, 0x37, 0x37, 0x93, 0x01, 0x72, 0x1E, 0xFE, 0xCA, -0x99, 0x78, 0x08, 0x66, 0x5F, 0xFE, 0xBB, 0xFE, 0xBB, 0x5F, -0x68, 0x08, 0xD2, 0x50, 0xFC, 0xFE, 0xE6, 0x14, 0xF0, 0x02, -0xDF, 0xFD, 0x21, 0xF6, 0x12, 0x00, 0x01, 0x00, 0x50, 0x00, -0x00, 0x01, 0xFC, 0x02, 0xBC, 0x00, 0x2C, 0x00, 0x00, 0x13, -0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x23, -0x11, 0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x2E, 0x02, 0x23, -0x23, 0x15, 0x33, 0x32, 0x1E, 0x02, 0x15, 0x14, 0x06, 0x06, -0x23, 0x23, 0x11, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x06, -0x23, 0x23, 0x93, 0x71, 0x3F, 0x5D, 0x34, 0x34, 0x5D, 0x3F, -0xB4, 0xBE, 0x44, 0x6B, 0x3F, 0x24, 0x41, 0x56, 0x33, 0x7B, -0x7B, 0x22, 0x38, 0x29, 0x16, 0x27, 0x45, 0x2D, 0x69, 0x5F, -0x35, 0x46, 0x20, 0x38, 0x23, 0x71, 0x01, 0x72, 0x24, 0x46, -0x31, 0x3C, 0x4D, 0x26, 0xFD, 0x44, 0x2D, 0x5B, 0x45, 0x30, -0x46, 0x2D, 0x16, 0x2F, 0x11, 0x22, 0x32, 0x20, 0x2B, 0x3C, -0x20, 0x02, 0x26, 0x37, 0x32, 0x21, 0x2E, 0x18, 0x00, 0x01, -0x00, 0x28, 0xFF, 0xF6, 0x02, 0x67, 0x02, 0xC6, 0x00, 0x21, -0x00, 0x00, 0x13, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, -0x17, 0x35, 0x26, 0x26, 0x23, 0x22, 0x0E, 0x02, 0x15, 0x14, -0x1E, 0x02, 0x33, 0x32, 0x36, 0x37, 0x35, 0x0E, 0x02, 0x23, -0x22, 0x26, 0x26, 0x82, 0x49, 0x76, 0x45, 0x32, 0x53, 0x44, -0x18, 0x2C, 0x68, 0x4D, 0x49, 0x7F, 0x60, 0x36, 0x36, 0x60, -0x7F, 0x49, 0x4D, 0x68, 0x2C, 0x18, 0x44, 0x53, 0x32, 0x45, -0x76, 0x49, 0x01, 0x5E, 0x52, 0x7B, 0x46, 0x1A, 0x2F, 0x1F, -0x70, 0x27, 0x26, 0x35, 0x61, 0x84, 0x4E, 0x4E, 0x84, 0x61, -0x35, 0x26, 0x27, 0x70, 0x1F, 0x2F, 0x1A, 0x46, 0x7C, 0x00, -0x02, 0x00, 0x50, 0x00, 0x00, 0x02, 0x80, 0x02, 0xBC, 0x00, -0x03, 0x00, 0x1B, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x13, -0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x23, 0x15, -0x33, 0x32, 0x1E, 0x02, 0x15, 0x14, 0x0E, 0x02, 0x23, 0x23, -0x15, 0x50, 0x55, 0x7D, 0x66, 0x9E, 0x5A, 0x5A, 0x9E, 0x66, -0xA3, 0xA3, 0x3B, 0x62, 0x46, 0x26, 0x26, 0x46, 0x62, 0x3B, -0xA3, 0x02, 0xBC, 0xFD, 0x44, 0x02, 0xBC, 0xFD, 0x44, 0x58, -0x9D, 0x69, 0x69, 0x9D, 0x58, 0x55, 0x25, 0x45, 0x62, 0x3D, -0x3D, 0x62, 0x45, 0x25, 0x55, 0x00, 0x04, 0x00, 0x50, 0x00, -0x00, 0x01, 0xE0, 0x02, 0xBC, 0x00, 0x03, 0x00, 0x07, 0x00, -0x0B, 0x00, 0x0F, 0x00, 0x00, 0x33, 0x21, 0x35, 0x21, 0x11, -0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x03, 0x11, 0x33, -0x11, 0x7F, 0x01, 0x61, 0xFE, 0x9F, 0x01, 0x61, 0xFE, 0x9F, -0x01, 0x4D, 0xFE, 0xB3, 0x2F, 0x55, 0x50, 0x02, 0x1C, 0x50, -0xFE, 0x98, 0x50, 0x01, 0x18, 0xFD, 0x44, 0x02, 0xBC, 0x00, -0x03, 0x00, 0x50, 0x00, 0x00, 0x01, 0xB8, 0x02, 0xBC, 0x00, -0x03, 0x00, 0x07, 0x00, 0x0B, 0x00, 0x00, 0x13, 0x21, 0x35, -0x21, 0x11, 0x21, 0x35, 0x21, 0x03, 0x11, 0x33, 0x11, 0x7F, -0x01, 0x39, 0xFE, 0xC7, 0x01, 0x2F, 0xFE, 0xD1, 0x2F, 0x55, -0x02, 0x6C, 0x50, 0xFE, 0x98, 0x50, 0x01, 0x18, 0xFD, 0x44, -0x02, 0xBC, 0x00, 0x01, 0x00, 0x28, 0xFF, 0xF6, 0x02, 0xDA, -0x02, 0xC6, 0x00, 0x26, 0x00, 0x00, 0x01, 0x33, 0x0E, 0x03, -0x23, 0x22, 0x26, 0x26, 0x35, 0x34, 0x36, 0x36, 0x33, 0x32, -0x16, 0x17, 0x37, 0x2E, 0x02, 0x23, 0x22, 0x0E, 0x02, 0x15, -0x14, 0x1E, 0x02, 0x33, 0x32, 0x3E, 0x02, 0x35, 0x21, 0x01, -0x95, 0xE9, 0x09, 0x27, 0x3C, 0x53, 0x34, 0x4A, 0x78, 0x47, -0x47, 0x78, 0x4A, 0x50, 0x76, 0x21, 0x3C, 0x1E, 0x57, 0x6D, -0x41, 0x4C, 0x82, 0x60, 0x35, 0x35, 0x60, 0x82, 0x4C, 0x50, -0x7D, 0x56, 0x2C, 0xFE, 0xBB, 0x01, 0x13, 0x29, 0x48, 0x38, -0x1F, 0x46, 0x7C, 0x51, 0x52, 0x7B, 0x46, 0x3F, 0x38, 0x37, -0x31, 0x42, 0x22, 0x35, 0x61, 0x84, 0x4E, 0x4E, 0x84, 0x61, -0x35, 0x3B, 0x66, 0x83, 0x49, 0x00, 0x03, 0x00, 0x50, 0x00, -0x00, 0x02, 0x7B, 0x02, 0xBC, 0x00, 0x03, 0x00, 0x07, 0x00, -0x0B, 0x00, 0x00, 0x13, 0x21, 0x35, 0x21, 0x01, 0x11, 0x33, -0x11, 0x21, 0x11, 0x33, 0x11, 0x7F, 0x01, 0xE0, 0xFE, 0x20, -0x01, 0xA7, 0x55, 0xFD, 0xD5, 0x55, 0x01, 0x54, 0x50, 0x01, -0x18, 0xFD, 0x44, 0x02, 0xBC, 0xFD, 0x44, 0x02, 0xBC, 0x00, -0x01, 0x00, 0x50, 0x00, 0x00, 0x00, 0xA5, 0x02, 0xBC, 0x00, -0x03, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x50, 0x55, 0x02, -0xBC, 0xFD, 0x44, 0x02, 0xBC, 0x00, 0x01, 0xFF, 0x91, 0xFF, -0x24, 0x00, 0xA0, 0x02, 0xBC, 0x00, 0x12, 0x00, 0x00, 0x07, -0x07, 0x1E, 0x02, 0x33, 0x32, 0x3E, 0x02, 0x35, 0x11, 0x23, -0x11, 0x14, 0x06, 0x23, 0x22, 0x26, 0x43, 0x2C, 0x08, 0x23, -0x31, 0x1A, 0x23, 0x39, 0x28, 0x15, 0x50, 0x2D, 0x17, 0x1B, -0x29, 0x68, 0x42, 0x0A, 0x17, 0x11, 0x13, 0x28, 0x3C, 0x29, -0x02, 0xF8, 0xFD, 0x12, 0x31, 0x29, 0x13, 0x00, 0x02, 0x00, -0x50, 0x00, 0x00, 0x02, 0x30, 0x02, 0xBC, 0x00, 0x03, 0x00, -0x09, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x21, 0x01, 0x01, -0x33, 0x01, 0x01, 0x50, 0x55, 0x01, 0x13, 0xFE, 0xD3, 0x01, -0x3C, 0x69, 0xFE, 0xC2, 0x01, 0x2F, 0x02, 0xBC, 0xFD, 0x44, -0x02, 0xBC, 0xFE, 0xB6, 0xFE, 0x8E, 0x01, 0x74, 0x01, 0x48, -0x00, 0x01, 0x00, 0x50, 0x00, 0x00, 0x01, 0xB8, 0x02, 0xBC, -0x00, 0x05, 0x00, 0x00, 0x13, 0x11, 0x21, 0x35, 0x21, 0x11, -0x50, 0x01, 0x68, 0xFE, 0xED, 0x02, 0xBC, 0xFD, 0x44, 0x50, -0x02, 0x6C, 0x00, 0x01, 0x00, 0x28, 0x00, 0x00, 0x03, 0x02, -0x02, 0xDF, 0x00, 0x09, 0x00, 0x00, 0x1B, 0x03, 0x33, 0x03, -0x01, 0x01, 0x03, 0x33, 0xB1, 0xE4, 0xE4, 0x34, 0x55, 0x55, -0xFE, 0xE8, 0xFE, 0xE8, 0x55, 0x55, 0x01, 0xD9, 0xFE, 0x68, -0x01, 0x98, 0xFE, 0x27, 0x02, 0xDF, 0xFE, 0x05, 0x01, 0xFB, -0xFD, 0x21, 0x00, 0x01, 0x00, 0x50, 0xFF, 0xDD, 0x02, 0xB7, -0x02, 0xDF, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x01, 0x11, -0x33, 0x11, 0x01, 0x11, 0x02, 0x62, 0xFD, 0xEE, 0x55, 0x02, -0x12, 0x02, 0xBC, 0xFD, 0xF7, 0x02, 0x2C, 0xFD, 0x21, 0x02, -0x09, 0xFD, 0xD4, 0x02, 0xDF, 0x00, 0x02, 0x00, 0x28, 0xFF, -0xF6, 0x02, 0xEE, 0x02, 0xC6, 0x00, 0x0F, 0x00, 0x23, 0x00, -0x00, 0x13, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x15, -0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x27, 0x14, 0x1E, -0x02, 0x33, 0x32, 0x3E, 0x02, 0x35, 0x34, 0x2E, 0x02, 0x23, -0x22, 0x0E, 0x02, 0x82, 0x45, 0x78, 0x4C, 0x4D, 0x77, 0x45, -0x45, 0x77, 0x4D, 0x4C, 0x78, 0x45, 0x5A, 0x35, 0x60, 0x82, -0x4C, 0x4D, 0x81, 0x60, 0x35, 0x35, 0x60, 0x81, 0x4D, 0x4C, -0x82, 0x60, 0x35, 0x01, 0x5E, 0x4F, 0x7C, 0x48, 0x48, 0x7C, -0x4F, 0x4F, 0x7C, 0x48, 0x48, 0x7C, 0x4F, 0x4C, 0x84, 0x61, -0x37, 0x37, 0x61, 0x84, 0x4C, 0x4D, 0x83, 0x61, 0x37, 0x37, -0x61, 0x83, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x01, 0xFC, -0x02, 0xBC, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x13, 0x11, -0x33, 0x11, 0x07, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, -0x23, 0x15, 0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, -0x23, 0x23, 0x50, 0x55, 0x26, 0x8F, 0x44, 0x55, 0x55, 0x44, -0x8F, 0x8F, 0x44, 0x6B, 0x3F, 0x3F, 0x6B, 0x44, 0x8F, 0x02, -0xBC, 0xFD, 0x44, 0x02, 0xBC, 0x50, 0x41, 0x41, 0x40, 0x42, -0x50, 0x33, 0x5F, 0x40, 0x41, 0x5E, 0x33, 0x00, 0x03, 0x00, -0x28, 0xFF, 0xF6, 0x03, 0x15, 0x02, 0xC6, 0x00, 0x0F, 0x00, -0x23, 0x00, 0x27, 0x00, 0x00, 0x13, 0x34, 0x36, 0x36, 0x33, -0x32, 0x16, 0x16, 0x15, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, -0x26, 0x27, 0x14, 0x1E, 0x02, 0x33, 0x32, 0x3E, 0x02, 0x35, -0x34, 0x2E, 0x02, 0x23, 0x22, 0x0E, 0x02, 0x05, 0x01, 0x33, -0x01, 0x82, 0x45, 0x78, 0x4C, 0x4D, 0x77, 0x45, 0x45, 0x77, -0x4D, 0x4C, 0x78, 0x45, 0x5A, 0x35, 0x60, 0x82, 0x4C, 0x4D, -0x81, 0x60, 0x35, 0x35, 0x60, 0x81, 0x4D, 0x4C, 0x82, 0x60, -0x35, 0x01, 0x53, 0x01, 0x2C, 0x6E, 0xFE, 0xD4, 0x01, 0x5E, -0x4F, 0x7C, 0x48, 0x48, 0x7C, 0x4F, 0x4F, 0x7C, 0x48, 0x48, -0x7C, 0x4F, 0x4C, 0x84, 0x61, 0x37, 0x37, 0x61, 0x84, 0x4C, -0x4D, 0x83, 0x61, 0x37, 0x37, 0x61, 0x83, 0x7F, 0xFE, 0xD4, -0x01, 0x2C, 0x00, 0x03, 0x00, 0x50, 0x00, 0x00, 0x02, 0x26, -0x02, 0xBC, 0x00, 0x03, 0x00, 0x07, 0x00, 0x1D, 0x00, 0x00, -0x13, 0x13, 0x33, 0x03, 0x03, 0x11, 0x33, 0x11, 0x07, 0x33, -0x32, 0x16, 0x16, 0x15, 0x14, 0x06, 0x06, 0x23, 0x23, 0x15, -0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x23, -0xCD, 0xF0, 0x69, 0xFA, 0xDC, 0x55, 0x26, 0x8F, 0x2D, 0x45, -0x27, 0x27, 0x45, 0x2D, 0x8F, 0x8F, 0x44, 0x6B, 0x3F, 0x3F, -0x6B, 0x44, 0x8F, 0x01, 0x59, 0xFE, 0xA7, 0x01, 0x59, 0x01, -0x63, 0xFD, 0x44, 0x02, 0xBC, 0x4B, 0x20, 0x3C, 0x2B, 0x2B, -0x3C, 0x20, 0x4B, 0x33, 0x5F, 0x40, 0x41, 0x5E, 0x33, 0x00, -0x01, 0x00, 0x26, 0xFF, 0xF6, 0x01, 0xF7, 0x02, 0xC6, 0x00, -0x32, 0x00, 0x00, 0x37, 0x07, 0x1E, 0x02, 0x33, 0x32, 0x3E, -0x02, 0x35, 0x34, 0x2E, 0x02, 0x27, 0x2E, 0x02, 0x35, 0x34, -0x36, 0x33, 0x32, 0x16, 0x16, 0x17, 0x37, 0x2E, 0x02, 0x23, -0x22, 0x06, 0x06, 0x15, 0x14, 0x1E, 0x02, 0x17, 0x1E, 0x02, -0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x26, 0x6A, 0x44, 0x17, -0x49, 0x61, 0x39, 0x2A, 0x4D, 0x3D, 0x23, 0x22, 0x35, 0x3E, -0x1C, 0x3D, 0x47, 0x1E, 0x34, 0x39, 0x29, 0x39, 0x28, 0x0D, -0x49, 0x11, 0x3C, 0x55, 0x39, 0x3B, 0x5C, 0x34, 0x25, 0x3A, -0x40, 0x1A, 0x28, 0x47, 0x2C, 0x44, 0x38, 0x2A, 0x42, 0x35, -0xD4, 0x2E, 0x2E, 0x51, 0x31, 0x1C, 0x34, 0x4A, 0x2E, 0x30, -0x45, 0x31, 0x20, 0x0A, 0x15, 0x2B, 0x31, 0x1D, 0x22, 0x37, -0x20, 0x32, 0x1A, 0x2A, 0x25, 0x43, 0x2B, 0x2F, 0x52, 0x34, -0x30, 0x42, 0x2D, 0x1D, 0x09, 0x0E, 0x23, 0x38, 0x2F, 0x30, -0x3E, 0x24, 0x40, 0x00, 0x01, 0x00, 0x0A, 0x00, 0x00, 0x01, -0xC7, 0x02, 0xBC, 0x00, 0x07, 0x00, 0x00, 0x13, 0x33, 0x11, -0x33, 0x11, 0x33, 0x35, 0x21, 0x0A, 0xB4, 0x55, 0xB4, 0xFE, -0x43, 0x02, 0x6C, 0xFD, 0x94, 0x02, 0x6C, 0x50, 0x00, 0x01, -0x00, 0x4B, 0xFF, 0xF6, 0x02, 0x27, 0x02, 0xBC, 0x00, 0x15, -0x00, 0x00, 0x13, 0x11, 0x14, 0x1E, 0x02, 0x33, 0x32, 0x3E, -0x02, 0x35, 0x11, 0x23, 0x11, 0x14, 0x06, 0x23, 0x22, 0x26, -0x35, 0x11, 0x4B, 0x21, 0x3F, 0x58, 0x36, 0x36, 0x58, 0x3F, -0x21, 0x55, 0x4E, 0x4B, 0x4B, 0x4E, 0x02, 0xBC, 0xFE, 0x2A, -0x34, 0x58, 0x40, 0x24, 0x24, 0x40, 0x58, 0x34, 0x01, 0xD6, -0xFE, 0x2A, 0x48, 0x58, 0x58, 0x48, 0x01, 0xD6, 0x00, 0x01, -0x00, 0x05, 0xFF, 0xDD, 0x02, 0x8F, 0x02, 0xBC, 0x00, 0x05, -0x00, 0x00, 0x25, 0x03, 0x23, 0x01, 0x01, 0x23, 0x01, 0x4A, -0xE6, 0x5F, 0x01, 0x45, 0x01, 0x45, 0x5F, 0x9E, 0x02, 0x1E, -0xFD, 0x21, 0x02, 0xDF, 0x00, 0x01, 0x00, 0x0A, 0xFF, 0xDD, -0x03, 0xD4, 0x02, 0xDF, 0x00, 0x09, 0x00, 0x00, 0x25, 0x0B, -0x02, 0x23, 0x01, 0x13, 0x13, 0x01, 0x23, 0x02, 0xBF, 0xD0, -0xCC, 0xBA, 0x5F, 0x01, 0x13, 0xD2, 0xD2, 0x01, 0x13, 0x5F, -0xB9, 0x02, 0x26, 0xFD, 0xDA, 0x02, 0x03, 0xFD, 0x21, 0x02, -0x20, 0xFD, 0xE0, 0x02, 0xDF, 0x00, 0x01, 0x00, 0x0A, 0x00, -0x00, 0x02, 0x21, 0x02, 0xBC, 0x00, 0x0B, 0x00, 0x00, 0x01, -0x03, 0x03, 0x23, 0x13, 0x03, 0x33, 0x13, 0x13, 0x33, 0x03, -0x13, 0x01, 0xAE, 0x95, 0x92, 0x64, 0xCB, 0xE4, 0x64, 0xAA, -0xA5, 0x64, 0xDE, 0xCF, 0x02, 0xBC, 0xFE, 0xFD, 0x01, 0x03, -0xFE, 0xB3, 0xFE, 0x91, 0x01, 0x25, 0xFE, 0xDB, 0x01, 0x6F, -0x01, 0x4D, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x02, 0x2C, -0x02, 0xBC, 0x00, 0x08, 0x00, 0x00, 0x01, 0x03, 0x03, 0x23, -0x13, 0x11, 0x33, 0x11, 0x13, 0x01, 0xCD, 0xB5, 0xB4, 0x5F, -0xE9, 0x55, 0xE9, 0x02, 0xBC, 0xFE, 0xBC, 0x01, 0x44, 0xFE, -0x71, 0xFE, 0xD3, 0x01, 0x2E, 0x01, 0x8E, 0x00, 0x01, 0x00, -0x0F, 0x00, 0x00, 0x02, 0x0D, 0x02, 0xBC, 0x00, 0x07, 0x00, -0x00, 0x13, 0x21, 0x01, 0x21, 0x35, 0x21, 0x01, 0x21, 0x23, -0x01, 0x5C, 0xFE, 0x90, 0x01, 0xEA, 0xFE, 0xA4, 0x01, 0x70, -0xFE, 0x16, 0x02, 0x6C, 0xFD, 0x94, 0x50, 0x02, 0x6C, 0x00, -0x01, 0x00, 0x64, 0xFF, 0x24, 0x01, 0x18, 0x03, 0x0C, 0x00, -0x07, 0x00, 0x00, 0x13, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, -0x23, 0xB3, 0x65, 0xB4, 0xB4, 0x65, 0x02, 0xC1, 0x4B, 0xFC, -0x18, 0x4B, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xF4, -0x02, 0xBC, 0x00, 0x03, 0x00, 0x00, 0x13, 0x01, 0x33, 0x01, -0x0F, 0x01, 0x90, 0x55, 0xFE, 0x70, 0x02, 0xBC, 0xFD, 0x44, -0x02, 0xBC, 0x00, 0x01, 0x00, 0x14, 0xFF, 0x24, 0x00, 0xC8, -0x03, 0x0C, 0x00, 0x07, 0x00, 0x00, 0x17, 0x23, 0x15, 0x33, -0x11, 0x23, 0x15, 0x33, 0x79, 0x65, 0xB4, 0xB4, 0x65, 0x91, -0x4B, 0x03, 0xE8, 0x4B, 0x00, 0x01, 0x00, 0x41, 0x01, 0xCC, -0x01, 0xBD, 0x02, 0xC6, 0x00, 0x06, 0x00, 0x00, 0x13, 0x17, -0x33, 0x27, 0x23, 0x07, 0x33, 0xFF, 0x6E, 0x50, 0xAA, 0x28, -0xAA, 0x50, 0x02, 0x6D, 0xA1, 0xFA, 0xFA, 0x00, 0x01, 0x00, -0x00, 0xFF, 0x7B, 0x01, 0xF4, 0xFF, 0xB2, 0x00, 0x03, 0x00, -0x00, 0x15, 0x21, 0x35, 0x21, 0x01, 0xF4, 0xFE, 0x0C, 0x85, -0x37, 0x00, 0x01, 0x00, 0x4B, 0x01, 0xFE, 0x01, 0x2C, 0x02, -0xBC, 0x00, 0x03, 0x00, 0x00, 0x13, 0x17, 0x37, 0x27, 0x4B, -0xB4, 0x2D, 0x96, 0x02, 0x94, 0x96, 0x1E, 0xA0, 0x00, 0x02, -0x00, 0x1E, 0xFF, 0xF6, 0x01, 0xA5, 0x01, 0xD6, 0x00, 0x1F, -0x00, 0x33, 0x00, 0x00, 0x37, 0x34, 0x36, 0x36, 0x33, 0x32, -0x16, 0x17, 0x35, 0x2E, 0x02, 0x23, 0x22, 0x06, 0x15, 0x14, -0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x27, 0x14, 0x06, -0x06, 0x23, 0x22, 0x26, 0x26, 0x27, 0x3E, 0x02, 0x33, 0x32, -0x1E, 0x02, 0x15, 0x11, 0x33, 0x11, 0x34, 0x26, 0x26, 0x23, -0x22, 0x06, 0x07, 0x6F, 0x18, 0x31, 0x27, 0x2A, 0x4A, 0x23, -0x07, 0x28, 0x43, 0x32, 0x55, 0x5F, 0x2C, 0x49, 0x2A, 0x26, -0x4D, 0x35, 0x10, 0x23, 0x3B, 0x25, 0x1D, 0x2D, 0x19, 0x0C, -0x0B, 0x26, 0x37, 0x22, 0x15, 0x26, 0x1D, 0x10, 0x50, 0x2D, -0x51, 0x36, 0x40, 0x5B, 0x1A, 0x8E, 0x19, 0x24, 0x14, 0x15, -0x18, 0x2F, 0x09, 0x1D, 0x17, 0x51, 0x43, 0x2F, 0x42, 0x23, -0x1C, 0x3A, 0x2C, 0x3C, 0x24, 0x37, 0x1E, 0x13, 0x26, 0xEE, -0x08, 0x16, 0x10, 0x08, 0x12, 0x1F, 0x18, 0xFE, 0xC1, 0x01, -0x4A, 0x2D, 0x3E, 0x21, 0x26, 0x13, 0x00, 0x03, 0x00, 0x46, -0xFF, 0xF6, 0x02, 0x17, 0x03, 0x0C, 0x00, 0x03, 0x00, 0x13, -0x00, 0x23, 0x00, 0x00, 0x13, 0x23, 0x11, 0x33, 0x25, 0x34, -0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x15, 0x14, 0x16, 0x16, -0x33, 0x32, 0x36, 0x36, 0x27, 0x14, 0x06, 0x06, 0x23, 0x22, -0x26, 0x26, 0x35, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, -0x96, 0x50, 0x50, 0x01, 0x81, 0x3E, 0x67, 0x3F, 0x39, 0x57, -0x31, 0x31, 0x57, 0x39, 0x3F, 0x67, 0x3E, 0x51, 0x2B, 0x47, -0x2B, 0x23, 0x44, 0x2C, 0x2C, 0x44, 0x23, 0x2B, 0x47, 0x2B, -0x03, 0x0C, 0xFC, 0xF4, 0xE6, 0x4B, 0x6B, 0x3A, 0x3A, 0x6B, -0x4B, 0x4A, 0x6C, 0x3A, 0x3A, 0x6C, 0x4A, 0x35, 0x4A, 0x26, -0x26, 0x4A, 0x35, 0x35, 0x4A, 0x26, 0x26, 0x4A, 0x00, 0x01, -0x00, 0x1E, 0xFF, 0xF6, 0x01, 0xAC, 0x01, 0xD6, 0x00, 0x1F, -0x00, 0x00, 0x37, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, -0x17, 0x35, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x15, 0x14, -0x16, 0x16, 0x33, 0x32, 0x36, 0x37, 0x35, 0x0E, 0x02, 0x23, -0x22, 0x26, 0x26, 0x6F, 0x29, 0x47, 0x2D, 0x25, 0x41, 0x30, -0x0A, 0x18, 0x59, 0x2F, 0x43, 0x6C, 0x3F, 0x3F, 0x6C, 0x43, -0x2F, 0x59, 0x18, 0x0A, 0x30, 0x41, 0x25, 0x2D, 0x47, 0x29, -0xE6, 0x30, 0x4B, 0x2A, 0x17, 0x26, 0x17, 0x64, 0x1C, 0x1F, -0x3E, 0x6C, 0x46, 0x45, 0x6D, 0x3E, 0x1F, 0x1C, 0x64, 0x16, -0x27, 0x17, 0x2B, 0x4A, 0x00, 0x03, 0x00, 0x23, 0xFF, 0xF6, -0x01, 0xF4, 0x03, 0x0C, 0x00, 0x03, 0x00, 0x13, 0x00, 0x23, -0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x01, 0x14, 0x16, 0x16, -0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, -0x06, 0x06, 0x17, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, -0x15, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x01, 0xA4, -0x50, 0xFE, 0x2F, 0x3E, 0x68, 0x3E, 0x3A, 0x56, 0x31, 0x31, -0x56, 0x3A, 0x3E, 0x68, 0x3E, 0x51, 0x2B, 0x48, 0x2A, 0x23, -0x44, 0x2C, 0x2C, 0x44, 0x23, 0x2A, 0x48, 0x2B, 0x03, 0x0C, -0xFC, 0xF4, 0x03, 0x0C, 0xFD, 0xDA, 0x4A, 0x6C, 0x3A, 0x3A, -0x6C, 0x4A, 0x4B, 0x6B, 0x3A, 0x3A, 0x6B, 0x4B, 0x35, 0x4A, -0x26, 0x26, 0x4A, 0x35, 0x35, 0x4A, 0x26, 0x26, 0x4A, 0x00, -0x01, 0x00, 0x23, 0xFF, 0xF6, 0x01, 0xE0, 0x01, 0xD6, 0x00, -0x28, 0x00, 0x00, 0x17, 0x32, 0x36, 0x37, 0x27, 0x06, 0x06, -0x23, 0x22, 0x26, 0x26, 0x35, 0x3E, 0x02, 0x33, 0x32, 0x16, -0x16, 0x15, 0x14, 0x06, 0x07, 0x37, 0x21, 0x15, 0x21, 0x34, -0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x15, -0x14, 0x16, 0x16, 0xFD, 0x4A, 0x6D, 0x24, 0x41, 0x19, 0x48, -0x2F, 0x2F, 0x42, 0x22, 0x01, 0x23, 0x41, 0x2E, 0x27, 0x3A, -0x21, 0x06, 0x03, 0x20, 0xFE, 0xB6, 0x01, 0x89, 0x01, 0x34, -0x61, 0x44, 0x44, 0x67, 0x39, 0x37, 0x63, 0x0A, 0x3B, 0x3A, -0x29, 0x2A, 0x29, 0x28, 0x4C, 0x36, 0x35, 0x49, 0x27, 0x22, -0x3C, 0x29, 0x07, 0x15, 0x05, 0x2E, 0x44, 0x02, 0x0F, 0x07, -0x49, 0x6A, 0x39, 0x3C, 0x6C, 0x48, 0x47, 0x6C, 0x3D, 0x00, -0x02, 0x00, 0x28, 0x00, 0x00, 0x01, 0x32, 0x03, 0x16, 0x00, -0x03, 0x00, 0x16, 0x00, 0x00, 0x13, 0x15, 0x33, 0x35, 0x27, -0x37, 0x2E, 0x02, 0x23, 0x22, 0x06, 0x06, 0x15, 0x11, 0x33, -0x11, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x28, 0xE6, 0x08, -0x2C, 0x07, 0x19, 0x22, 0x16, 0x2A, 0x3B, 0x20, 0x50, 0x0C, -0x15, 0x0F, 0x0C, 0x1B, 0x01, 0xCC, 0x4B, 0x4B, 0xE0, 0x42, -0x0A, 0x12, 0x0C, 0x23, 0x46, 0x37, 0xFD, 0x8A, 0x02, 0x6C, -0x21, 0x28, 0x11, 0x09, 0x00, 0x03, 0x00, 0x23, 0xFF, 0x1A, -0x01, 0xF4, 0x01, 0xD6, 0x00, 0x13, 0x00, 0x23, 0x00, 0x34, -0x00, 0x00, 0x17, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, -0x35, 0x11, 0x23, 0x11, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, -0x26, 0x35, 0x03, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, -0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x17, 0x34, -0x36, 0x36, 0x33, 0x32, 0x1E, 0x02, 0x15, 0x14, 0x06, 0x06, -0x23, 0x22, 0x26, 0x26, 0x2C, 0x3A, 0x67, 0x43, 0x3A, 0x68, -0x42, 0x50, 0x2D, 0x44, 0x23, 0x2D, 0x42, 0x24, 0x5A, 0x3E, -0x68, 0x3E, 0x3A, 0x56, 0x31, 0x31, 0x56, 0x3A, 0x3E, 0x68, -0x3E, 0x51, 0x2B, 0x48, 0x2A, 0x1A, 0x34, 0x2B, 0x1A, 0x2C, -0x44, 0x23, 0x2A, 0x48, 0x2B, 0x1E, 0x3B, 0x5B, 0x32, 0x36, -0x6B, 0x4F, 0x01, 0xC2, 0xFE, 0x3E, 0x3A, 0x49, 0x22, 0x23, -0x39, 0x21, 0x01, 0x04, 0x4A, 0x6C, 0x3A, 0x3A, 0x6C, 0x4A, -0x4B, 0x6B, 0x3A, 0x3A, 0x6B, 0x4B, 0x35, 0x4A, 0x26, 0x16, -0x2A, 0x3D, 0x28, 0x35, 0x4A, 0x26, 0x26, 0x4A, 0x00, 0x02, -0x00, 0x4B, 0x00, 0x00, 0x01, 0xC2, 0x03, 0x0C, 0x00, 0x03, -0x00, 0x16, 0x00, 0x00, 0x13, 0x23, 0x11, 0x33, 0x13, 0x11, -0x33, 0x11, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x15, -0x33, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x9B, 0x50, 0x50, -0xD7, 0x50, 0x27, 0x47, 0x30, 0x30, 0x49, 0x2A, 0x1A, 0x1D, -0x35, 0x23, 0x31, 0x31, 0x03, 0x0C, 0xFC, 0xF4, 0x01, 0x18, -0xFE, 0xE8, 0x01, 0x22, 0x3C, 0x50, 0x28, 0x32, 0x55, 0x37, -0x21, 0x34, 0x1E, 0x3A, 0x00, 0x02, 0x00, 0x4B, 0x00, 0x00, -0x00, 0xB9, 0x02, 0xC1, 0x00, 0x0B, 0x00, 0x0F, 0x00, 0x00, -0x13, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, -0x22, 0x06, 0x17, 0x11, 0x33, 0x11, 0x4B, 0x21, 0x16, 0x17, -0x20, 0x20, 0x17, 0x16, 0x21, 0x0F, 0x50, 0x02, 0x8A, 0x16, -0x21, 0x21, 0x16, 0x17, 0x20, 0x20, 0xD5, 0xFE, 0x34, 0x01, -0xCC, 0x00, 0x02, 0xFF, 0xC3, 0xFF, 0x24, 0x00, 0xAA, 0x02, -0xC0, 0x00, 0x0B, 0x00, 0x1E, 0x00, 0x00, 0x13, 0x14, 0x16, -0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x03, -0x07, 0x1E, 0x02, 0x33, 0x32, 0x36, 0x36, 0x35, 0x11, 0x23, -0x11, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x3E, 0x20, 0x16, -0x17, 0x1F, 0x1F, 0x17, 0x16, 0x20, 0x4F, 0x2C, 0x0A, 0x1A, -0x20, 0x14, 0x2A, 0x3C, 0x1F, 0x50, 0x0A, 0x15, 0x11, 0x10, -0x19, 0x02, 0x8A, 0x16, 0x20, 0x20, 0x16, 0x17, 0x1F, 0x1F, -0xFC, 0xED, 0x42, 0x0D, 0x12, 0x09, 0x26, 0x48, 0x32, 0x02, -0x08, 0xFE, 0x02, 0x20, 0x28, 0x12, 0x0E, 0x00, 0x02, 0x00, -0x46, 0x00, 0x00, 0x01, 0xB8, 0x03, 0x0C, 0x00, 0x03, 0x00, -0x09, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x13, 0x07, 0x13, -0x33, 0x03, 0x37, 0x46, 0x50, 0xAA, 0xC8, 0xDC, 0x64, 0xDC, -0xC8, 0x03, 0x0C, 0xFC, 0xF4, 0x03, 0x0C, 0xFE, 0xC0, 0xBE, -0xFE, 0xF2, 0x01, 0x0E, 0xBE, 0x00, 0x01, 0x00, 0x4B, 0x00, -0x00, 0x00, 0x9B, 0x03, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x13, -0x11, 0x33, 0x11, 0x4B, 0x50, 0x03, 0x0C, 0xFC, 0xF4, 0x03, -0x0C, 0x00, 0x01, 0x00, 0x4B, 0x00, 0x00, 0x02, 0xC1, 0x01, -0xD6, 0x00, 0x25, 0x00, 0x00, 0x01, 0x34, 0x26, 0x26, 0x23, -0x22, 0x06, 0x07, 0x26, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, -0x23, 0x11, 0x33, 0x11, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, -0x15, 0x11, 0x33, 0x11, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, -0x15, 0x11, 0x33, 0x02, 0xC1, 0x23, 0x42, 0x2F, 0x2E, 0x48, -0x18, 0x10, 0x45, 0x30, 0x2B, 0x3F, 0x15, 0x50, 0x50, 0x1A, -0x30, 0x21, 0x2D, 0x2B, 0x50, 0x1A, 0x30, 0x21, 0x2D, 0x2B, -0x50, 0x01, 0x22, 0x39, 0x51, 0x2A, 0x2B, 0x2B, 0x29, 0x2D, -0x26, 0x27, 0x43, 0xFE, 0x34, 0x01, 0x18, 0x24, 0x34, 0x1B, -0x38, 0x3B, 0xFE, 0xE8, 0x01, 0x18, 0x24, 0x34, 0x1B, 0x38, -0x3B, 0xFE, 0xE8, 0x00, 0x01, 0x00, 0x4B, 0x00, 0x00, 0x01, -0xC2, 0x01, 0xD6, 0x00, 0x14, 0x00, 0x00, 0x01, 0x11, 0x33, -0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x23, 0x11, -0x33, 0x11, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x01, 0x72, -0x50, 0x55, 0x49, 0x2D, 0x45, 0x17, 0x50, 0x50, 0x1D, 0x35, -0x23, 0x30, 0x32, 0x01, 0x18, 0xFE, 0xE8, 0x01, 0x22, 0x53, -0x61, 0x28, 0x2A, 0x48, 0xFE, 0x34, 0x01, 0x18, 0x22, 0x34, -0x1D, 0x3A, 0x00, 0x02, 0x00, 0x23, 0xFF, 0xF6, 0x01, 0xFF, -0x01, 0xD6, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x00, 0x37, 0x14, -0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, -0x23, 0x22, 0x06, 0x06, 0x17, 0x34, 0x36, 0x36, 0x33, 0x32, -0x16, 0x16, 0x15, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, -0x23, 0x3F, 0x6C, 0x43, 0x44, 0x6B, 0x3F, 0x3F, 0x6B, 0x44, -0x43, 0x6C, 0x3F, 0x51, 0x29, 0x47, 0x2D, 0x2D, 0x47, 0x29, -0x29, 0x47, 0x2D, 0x2D, 0x47, 0x29, 0xE6, 0x45, 0x6D, 0x3E, -0x3E, 0x6D, 0x45, 0x46, 0x6C, 0x3E, 0x3E, 0x6C, 0x46, 0x30, -0x4B, 0x2A, 0x2A, 0x4B, 0x30, 0x30, 0x4A, 0x2B, 0x2B, 0x4A, -0x00, 0x03, 0x00, 0x46, 0xFF, 0x24, 0x02, 0x17, 0x01, 0xD6, -0x00, 0x03, 0x00, 0x13, 0x00, 0x23, 0x00, 0x00, 0x17, 0x11, -0x23, 0x11, 0x01, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, -0x15, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x27, 0x14, -0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x35, 0x34, 0x36, 0x36, -0x33, 0x32, 0x16, 0x16, 0x96, 0x50, 0x01, 0xD1, 0x3E, 0x67, -0x3F, 0x39, 0x57, 0x31, 0x31, 0x57, 0x39, 0x3F, 0x67, 0x3E, -0x51, 0x2B, 0x47, 0x2B, 0x23, 0x44, 0x2C, 0x2C, 0x44, 0x23, -0x2B, 0x47, 0x2B, 0xDC, 0x02, 0xA8, 0xFD, 0x58, 0x01, 0xC2, -0x4B, 0x6B, 0x3A, 0x3A, 0x6B, 0x4B, 0x4A, 0x6C, 0x3A, 0x3A, -0x6C, 0x4A, 0x35, 0x4A, 0x26, 0x26, 0x4A, 0x35, 0x35, 0x4A, -0x26, 0x26, 0x4A, 0x00, 0x03, 0x00, 0x23, 0xFF, 0x24, 0x01, -0xF4, 0x01, 0xD6, 0x00, 0x03, 0x00, 0x13, 0x00, 0x23, 0x00, -0x00, 0x05, 0x33, 0x11, 0x23, 0x05, 0x14, 0x16, 0x16, 0x33, -0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, -0x06, 0x17, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x15, -0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x01, 0xA4, 0x50, -0x50, 0xFE, 0x7F, 0x3E, 0x68, 0x3E, 0x3A, 0x56, 0x31, 0x31, -0x56, 0x3A, 0x3E, 0x68, 0x3E, 0x51, 0x2B, 0x48, 0x2A, 0x23, -0x44, 0x2C, 0x2C, 0x44, 0x23, 0x2A, 0x48, 0x2B, 0xDC, 0x02, -0xA8, 0xE6, 0x4A, 0x6C, 0x3A, 0x3A, 0x6C, 0x4A, 0x4B, 0x6B, -0x3A, 0x3A, 0x6B, 0x4B, 0x35, 0x4A, 0x26, 0x26, 0x4A, 0x35, -0x35, 0x4A, 0x26, 0x26, 0x4A, 0x00, 0x02, 0x00, 0x4B, 0x00, -0x00, 0x01, 0x52, 0x01, 0xD6, 0x00, 0x03, 0x00, 0x13, 0x00, -0x00, 0x13, 0x23, 0x11, 0x33, 0x13, 0x37, 0x26, 0x26, 0x23, -0x22, 0x06, 0x06, 0x15, 0x33, 0x34, 0x36, 0x36, 0x33, 0x32, -0x16, 0x9B, 0x50, 0x50, 0x8B, 0x2C, 0x12, 0x2B, 0x19, 0x20, -0x3E, 0x27, 0x24, 0x0D, 0x22, 0x1E, 0x14, 0x1A, 0x01, 0xCC, -0xFE, 0x34, 0x01, 0x74, 0x42, 0x13, 0x0D, 0x32, 0x55, 0x37, -0x21, 0x34, 0x1E, 0x0B, 0x00, 0x01, 0x00, 0x1F, 0xFF, 0xF6, -0x01, 0x75, 0x01, 0xD6, 0x00, 0x2D, 0x00, 0x00, 0x37, 0x07, -0x1E, 0x02, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x26, 0x27, -0x2E, 0x02, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x37, -0x2E, 0x02, 0x23, 0x22, 0x06, 0x06, 0x15, 0x14, 0x16, 0x16, -0x17, 0x1E, 0x02, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x26, -0x5E, 0x3F, 0x0D, 0x33, 0x4A, 0x2E, 0x47, 0x57, 0x27, 0x42, -0x28, 0x18, 0x2C, 0x1C, 0x24, 0x19, 0x24, 0x39, 0x13, 0x40, -0x0E, 0x32, 0x41, 0x25, 0x25, 0x45, 0x2B, 0x29, 0x3D, 0x1E, -0x1B, 0x30, 0x1F, 0x27, 0x22, 0x1C, 0x2F, 0x24, 0x8D, 0x27, -0x1B, 0x34, 0x21, 0x50, 0x3C, 0x29, 0x34, 0x25, 0x10, 0x0A, -0x16, 0x1C, 0x12, 0x17, 0x16, 0x22, 0x1A, 0x29, 0x1A, 0x28, -0x18, 0x1A, 0x36, 0x29, 0x28, 0x35, 0x21, 0x0C, 0x0A, 0x17, -0x21, 0x18, 0x1B, 0x1F, 0x15, 0x24, 0x00, 0x02, 0x00, 0x05, -0x00, 0x00, 0x00, 0xEB, 0x02, 0x6C, 0x00, 0x03, 0x00, 0x07, -0x00, 0x00, 0x13, 0x15, 0x33, 0x35, 0x27, 0x11, 0x33, 0x11, -0x05, 0xE6, 0x9B, 0x50, 0x01, 0xCC, 0x4B, 0x4B, 0xA0, 0xFD, -0x94, 0x02, 0x6C, 0x00, 0x01, 0x00, 0x4B, 0xFF, 0xF6, 0x01, -0xC2, 0x01, 0xCC, 0x00, 0x14, 0x00, 0x00, 0x37, 0x11, 0x23, -0x11, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x33, 0x11, -0x23, 0x11, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x9B, 0x50, -0x56, 0x48, 0x2E, 0x44, 0x17, 0x50, 0x50, 0x1D, 0x35, 0x23, -0x30, 0x32, 0xB4, 0x01, 0x18, 0xFE, 0xDE, 0x52, 0x62, 0x29, -0x29, 0x48, 0x01, 0xCC, 0xFE, 0xE8, 0x22, 0x34, 0x1D, 0x3C, -0x00, 0x01, 0x00, 0x00, 0xFF, 0xDD, 0x01, 0xB8, 0x01, 0xCC, -0x00, 0x05, 0x00, 0x00, 0x11, 0x13, 0x13, 0x23, 0x03, 0x03, -0xDC, 0xDC, 0x5A, 0x82, 0x82, 0x01, 0xCC, 0xFE, 0x11, 0x01, -0xEF, 0xFE, 0xBB, 0x01, 0x45, 0x00, 0x01, 0x00, 0x05, 0xFF, -0xDD, 0x02, 0xA3, 0x01, 0xEF, 0x00, 0x09, 0x00, 0x00, 0x1B, -0x04, 0x23, 0x0B, 0x03, 0x05, 0xC8, 0x83, 0x8B, 0xC8, 0x5A, -0x74, 0x86, 0x7D, 0x73, 0x01, 0xCC, 0xFE, 0x11, 0x01, 0x4F, -0xFE, 0xB1, 0x01, 0xEF, 0xFE, 0xD3, 0x01, 0x50, 0xFE, 0xB2, -0x01, 0x2B, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA4, -0x01, 0xCC, 0x00, 0x0B, 0x00, 0x00, 0x01, 0x07, 0x27, 0x23, -0x17, 0x07, 0x33, 0x37, 0x17, 0x33, 0x27, 0x37, 0x01, 0x40, -0x6E, 0x6E, 0x5A, 0x9D, 0xA7, 0x5A, 0x78, 0x78, 0x5A, 0xA7, -0x9D, 0x01, 0xCC, 0xA0, 0xA0, 0xDF, 0xED, 0xAE, 0xAE, 0xED, -0xDF, 0x00, 0x01, 0x00, 0x00, 0xFF, 0x24, 0x01, 0xB8, 0x01, -0xCC, 0x00, 0x08, 0x00, 0x00, 0x01, 0x23, 0x03, 0x17, 0x03, -0x23, 0x13, 0x03, 0x33, 0x01, 0xB8, 0x5A, 0x8E, 0x21, 0x92, -0x5F, 0xB0, 0x7E, 0x5A, 0x01, 0xCC, 0xFE, 0x9C, 0x04, 0x01, -0x68, 0xFE, 0x75, 0xFE, 0xE3, 0x00, 0x01, 0x00, 0x0F, 0x00, -0x00, 0x01, 0xBD, 0x01, 0xCC, 0x00, 0x07, 0x00, 0x00, 0x01, -0x01, 0x21, 0x35, 0x21, 0x01, 0x21, 0x15, 0x01, 0x2C, 0xFE, -0xE3, 0x01, 0x9A, 0xFE, 0xF7, 0x01, 0x1D, 0xFE, 0x70, 0x01, -0x81, 0xFE, 0x7F, 0x4B, 0x01, 0x81, 0x4B, 0x00, 0x01, 0x00, -0x32, 0xFF, 0x38, 0x01, 0x05, 0x03, 0x0C, 0x00, 0x29, 0x00, -0x00, 0x13, 0x34, 0x36, 0x33, 0x33, 0x35, 0x23, 0x22, 0x06, -0x06, 0x15, 0x15, 0x14, 0x06, 0x07, 0x15, 0x16, 0x16, 0x15, -0x15, 0x14, 0x16, 0x16, 0x33, 0x33, 0x35, 0x23, 0x22, 0x26, -0x35, 0x35, 0x34, 0x2E, 0x02, 0x23, 0x15, 0x32, 0x3E, 0x02, -0x35, 0xB2, 0x1A, 0x16, 0x23, 0x3C, 0x16, 0x30, 0x21, 0x19, -0x17, 0x17, 0x19, 0x21, 0x30, 0x16, 0x3C, 0x23, 0x16, 0x1A, -0x05, 0x15, 0x2E, 0x29, 0x29, 0x2E, 0x15, 0x05, 0x02, 0x94, -0x14, 0x1E, 0x46, 0x1D, 0x3D, 0x32, 0xD2, 0x39, 0x2D, 0x08, -0x3C, 0x07, 0x2E, 0x39, 0xD2, 0x31, 0x3E, 0x1D, 0x46, 0x1F, -0x13, 0xAA, 0x21, 0x4A, 0x3F, 0x28, 0x14, 0x28, 0x3F, 0x4A, -0x21, 0x00, 0x01, 0x00, 0x64, 0xFF, 0x29, 0x00, 0xAE, 0x03, -0x11, 0x00, 0x03, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x64, -0x4A, 0x03, 0x11, 0xFC, 0x18, 0x03, 0xE8, 0x00, 0x01, 0x00, -0x3B, 0xFF, 0x38, 0x01, 0x0E, 0x03, 0x0C, 0x00, 0x29, 0x00, -0x00, 0x17, 0x14, 0x06, 0x23, 0x23, 0x15, 0x33, 0x32, 0x36, -0x36, 0x35, 0x35, 0x34, 0x36, 0x37, 0x35, 0x26, 0x26, 0x35, -0x35, 0x34, 0x26, 0x26, 0x23, 0x23, 0x15, 0x33, 0x32, 0x16, -0x15, 0x15, 0x14, 0x1E, 0x02, 0x33, 0x35, 0x22, 0x0E, 0x02, -0x15, 0x8E, 0x19, 0x17, 0x23, 0x3C, 0x16, 0x30, 0x21, 0x1A, -0x16, 0x16, 0x1A, 0x21, 0x30, 0x16, 0x3C, 0x23, 0x17, 0x19, -0x05, 0x15, 0x2E, 0x29, 0x29, 0x2E, 0x15, 0x05, 0x50, 0x13, -0x1F, 0x46, 0x1D, 0x3E, 0x31, 0xD2, 0x39, 0x2E, 0x07, 0x3C, -0x08, 0x2D, 0x39, 0xD2, 0x32, 0x3D, 0x1D, 0x46, 0x1E, 0x14, -0xAA, 0x21, 0x4A, 0x3F, 0x28, 0x14, 0x28, 0x3F, 0x4A, 0x21, -0x00, 0x01, 0x00, 0x41, 0x00, 0xAC, 0x01, 0xFE, 0x01, 0x47, -0x00, 0x2C, 0x00, 0x00, 0x37, 0x26, 0x26, 0x35, 0x34, 0x36, -0x33, 0x32, 0x16, 0x16, 0x17, 0x16, 0x16, 0x33, 0x32, 0x36, -0x37, 0x36, 0x36, 0x35, 0x34, 0x26, 0x27, 0x27, 0x16, 0x16, -0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x2E, 0x02, 0x23, -0x22, 0x06, 0x07, 0x06, 0x06, 0x15, 0x14, 0x17, 0x8E, 0x02, -0x02, 0x1C, 0x1B, 0x0D, 0x1C, 0x1E, 0x0F, 0x20, 0x3A, 0x19, -0x1B, 0x30, 0x13, 0x0D, 0x09, 0x02, 0x02, 0x4F, 0x03, 0x02, -0x14, 0x16, 0x0D, 0x25, 0x17, 0x15, 0x2A, 0x28, 0x14, 0x1F, -0x36, 0x14, 0x0D, 0x0B, 0x03, 0xB0, 0x06, 0x0B, 0x05, 0x1A, -0x1D, 0x07, 0x0E, 0x0C, 0x18, 0x18, 0x16, 0x19, 0x11, 0x27, -0x0F, 0x08, 0x0E, 0x06, 0x05, 0x07, 0x0E, 0x06, 0x18, 0x19, -0x0F, 0x11, 0x10, 0x15, 0x0B, 0x1A, 0x1A, 0x12, 0x24, 0x10, -0x0D, 0x0B, 0x00, 0x03, 0x00, 0x51, 0xFF, 0x90, 0x01, 0xDF, -0x02, 0x42, 0x00, 0x03, 0x00, 0x21, 0x00, 0x25, 0x00, 0x00, -0x25, 0x15, 0x33, 0x35, 0x27, 0x34, 0x36, 0x36, 0x33, 0x32, -0x16, 0x17, 0x35, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x15, -0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x37, 0x35, 0x06, 0x06, -0x23, 0x22, 0x26, 0x26, 0x13, 0x15, 0x33, 0x35, 0x01, 0x18, -0x40, 0xB6, 0x29, 0x47, 0x2D, 0x38, 0x58, 0x10, 0x18, 0x59, -0x2F, 0x43, 0x6C, 0x3F, 0x3F, 0x6C, 0x43, 0x2F, 0x59, 0x18, -0x10, 0x58, 0x38, 0x2D, 0x47, 0x29, 0x76, 0x40, 0x26, 0x96, -0x96, 0xC0, 0x30, 0x4B, 0x2A, 0x32, 0x22, 0x64, 0x1C, 0x1F, -0x3E, 0x6C, 0x46, 0x45, 0x6D, 0x3E, 0x1F, 0x1C, 0x64, 0x22, -0x32, 0x2B, 0x4A, 0x01, 0x8C, 0x96, 0x96, 0x00, 0x02, 0x00, -0x40, 0x00, 0x00, 0x02, 0x09, 0x02, 0xC6, 0x00, 0x03, 0x00, -0x2F, 0x00, 0x00, 0x13, 0x15, 0x21, 0x35, 0x37, 0x37, 0x2E, -0x03, 0x23, 0x22, 0x06, 0x06, 0x15, 0x14, 0x1E, 0x03, 0x15, -0x14, 0x06, 0x06, 0x07, 0x21, 0x35, 0x21, 0x07, 0x3E, 0x03, -0x35, 0x34, 0x2E, 0x03, 0x35, 0x34, 0x36, 0x36, 0x33, 0x32, -0x1E, 0x02, 0x43, 0x01, 0x68, 0x17, 0x47, 0x02, 0x1A, 0x30, -0x4A, 0x32, 0x3B, 0x5D, 0x35, 0x14, 0x1F, 0x1E, 0x14, 0x24, -0x44, 0x31, 0x01, 0xC5, 0xFE, 0x95, 0x02, 0x1C, 0x34, 0x2A, -0x18, 0x13, 0x1C, 0x1D, 0x13, 0x22, 0x36, 0x1E, 0x20, 0x30, -0x1F, 0x11, 0x01, 0x72, 0x4B, 0x4B, 0x6D, 0x1D, 0x1E, 0x46, -0x3E, 0x28, 0x2E, 0x56, 0x3C, 0x29, 0x3D, 0x31, 0x2C, 0x2E, -0x1C, 0x2C, 0x4B, 0x4F, 0x33, 0x50, 0x1E, 0x08, 0x26, 0x39, -0x47, 0x28, 0x22, 0x32, 0x2A, 0x2B, 0x34, 0x23, 0x26, 0x2F, -0x15, 0x19, 0x2A, 0x35, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, -0x02, 0x35, 0x02, 0xBC, 0x00, 0x03, 0x00, 0x07, 0x00, 0x10, -0x00, 0x00, 0x13, 0x21, 0x35, 0x21, 0x15, 0x21, 0x35, 0x21, -0x01, 0x03, 0x03, 0x23, 0x13, 0x11, 0x33, 0x11, 0x13, 0x2D, -0x01, 0xE5, 0xFE, 0x1B, 0x01, 0xE5, 0xFE, 0x1B, 0x01, 0xAA, -0xB5, 0xB4, 0x5F, 0xE9, 0x56, 0xE7, 0x01, 0x22, 0x4B, 0xE1, -0x4B, 0x01, 0xE5, 0xFE, 0xBC, 0x01, 0x44, 0xFE, 0x73, 0xFE, -0xD1, 0x01, 0x32, 0x01, 0x8A, 0x00, 0x02, 0x00, 0x1E, 0xFF, -0xF6, 0x01, 0x7A, 0x02, 0xC6, 0x00, 0x2C, 0x00, 0x59, 0x00, -0x00, 0x01, 0x37, 0x2E, 0x02, 0x23, 0x22, 0x06, 0x06, 0x15, -0x14, 0x1E, 0x02, 0x17, 0x1E, 0x02, 0x15, 0x14, 0x06, 0x06, -0x23, 0x15, 0x32, 0x3E, 0x02, 0x35, 0x34, 0x26, 0x26, 0x27, -0x2E, 0x03, 0x35, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, -0x03, 0x07, 0x1E, 0x02, 0x33, 0x32, 0x3E, 0x02, 0x35, 0x34, -0x26, 0x26, 0x27, 0x2E, 0x03, 0x35, 0x34, 0x36, 0x36, 0x37, -0x35, 0x22, 0x0E, 0x02, 0x15, 0x14, 0x16, 0x16, 0x17, 0x1E, -0x02, 0x15, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x01, -0x36, 0x40, 0x09, 0x33, 0x45, 0x25, 0x25, 0x44, 0x2C, 0x17, -0x27, 0x2E, 0x18, 0x1B, 0x2F, 0x1E, 0x16, 0x26, 0x19, 0x25, -0x3E, 0x2D, 0x18, 0x24, 0x3A, 0x21, 0x13, 0x28, 0x21, 0x14, -0x12, 0x20, 0x14, 0x13, 0x27, 0x21, 0xCC, 0x42, 0x07, 0x35, -0x4E, 0x2A, 0x25, 0x3E, 0x2D, 0x18, 0x24, 0x3A, 0x21, 0x13, -0x28, 0x21, 0x14, 0x13, 0x28, 0x1E, 0x2B, 0x3F, 0x2A, 0x15, -0x28, 0x3D, 0x1F, 0x1B, 0x2F, 0x1E, 0x13, 0x24, 0x19, 0x1C, -0x32, 0x23, 0x02, 0x43, 0x29, 0x1A, 0x28, 0x18, 0x1D, 0x36, -0x26, 0x1D, 0x2A, 0x1F, 0x17, 0x09, 0x0A, 0x18, 0x21, 0x19, -0x14, 0x29, 0x1B, 0x23, 0x0D, 0x1E, 0x32, 0x25, 0x22, 0x33, -0x26, 0x0D, 0x08, 0x12, 0x14, 0x18, 0x0D, 0x10, 0x13, 0x0A, -0x0C, 0x18, 0xFE, 0x4B, 0x26, 0x25, 0x3D, 0x23, 0x10, 0x22, -0x35, 0x25, 0x22, 0x33, 0x26, 0x0D, 0x08, 0x10, 0x15, 0x21, -0x19, 0x15, 0x1E, 0x18, 0x0A, 0x1A, 0x10, 0x20, 0x2C, 0x1D, -0x26, 0x38, 0x25, 0x0D, 0x0A, 0x18, 0x21, 0x19, 0x14, 0x1A, -0x0C, 0x19, 0x2B, 0x00, 0x02, 0x00, 0x14, 0x01, 0xE0, 0x01, -0x02, 0x02, 0xD0, 0x00, 0x0B, 0x00, 0x17, 0x00, 0x00, 0x13, -0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, -0x06, 0x17, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, -0x23, 0x22, 0x26, 0x14, 0x44, 0x33, 0x33, 0x44, 0x44, 0x33, -0x33, 0x44, 0x28, 0x2D, 0x22, 0x22, 0x2D, 0x2D, 0x22, 0x22, -0x2D, 0x02, 0x58, 0x34, 0x44, 0x44, 0x34, 0x35, 0x43, 0x43, -0x35, 0x24, 0x2E, 0x2E, 0x24, 0x24, 0x2E, 0x2E, 0x00, 0x04, -0x00, 0x05, 0x00, 0x00, 0x02, 0x8F, 0x03, 0x89, 0x00, 0x03, -0x00, 0x0D, 0x00, 0x19, 0x00, 0x25, 0x00, 0x00, 0x37, 0x21, -0x27, 0x21, 0x37, 0x13, 0x17, 0x17, 0x33, 0x01, 0x01, 0x33, -0x37, 0x37, 0x13, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, -0x26, 0x23, 0x22, 0x06, 0x07, 0x14, 0x16, 0x33, 0x32, 0x36, -0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x93, 0x01, 0x72, 0x1E, -0xFE, 0xCA, 0x99, 0x78, 0x08, 0x66, 0x5F, 0xFE, 0xBB, 0xFE, -0xBB, 0x5F, 0x68, 0x08, 0xA3, 0x21, 0x16, 0x17, 0x20, 0x20, -0x17, 0x16, 0x21, 0xC8, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, -0x16, 0x21, 0xD2, 0x50, 0xFC, 0xFE, 0xE6, 0x14, 0xF0, 0x02, -0xDF, 0xFD, 0x21, 0xF6, 0x12, 0x02, 0x4A, 0x16, 0x21, 0x21, -0x16, 0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0x21, 0x16, 0x17, -0x20, 0x20, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x02, 0x8F, -0x03, 0x82, 0x00, 0x03, 0x00, 0x0D, 0x00, 0x19, 0x00, 0x25, -0x00, 0x00, 0x37, 0x21, 0x27, 0x21, 0x37, 0x13, 0x17, 0x17, -0x33, 0x01, 0x01, 0x33, 0x37, 0x37, 0x13, 0x14, 0x16, 0x33, -0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x17, 0x34, -0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, -0x93, 0x01, 0x72, 0x1E, 0xFE, 0xCA, 0x99, 0x78, 0x08, 0x66, -0x5F, 0xFE, 0xBB, 0xFE, 0xBB, 0x5F, 0x68, 0x08, 0x10, 0x3F, -0x27, 0x27, 0x3F, 0x3F, 0x27, 0x27, 0x3F, 0x33, 0x20, 0x13, -0x13, 0x20, 0x20, 0x13, 0x13, 0x20, 0xD2, 0x50, 0xFC, 0xFE, -0xE6, 0x14, 0xF0, 0x02, 0xDF, 0xFD, 0x21, 0xF6, 0x12, 0x02, -0x16, 0x2D, 0x37, 0x37, 0x2D, 0x2D, 0x37, 0x37, 0x2D, 0x19, -0x1C, 0x1C, 0x19, 0x19, 0x1C, 0x1C, 0x00, 0x06, 0x00, 0x05, -0x00, 0x00, 0x03, 0x7A, 0x02, 0xBC, 0x00, 0x03, 0x00, 0x07, -0x00, 0x0B, 0x00, 0x0F, 0x00, 0x13, 0x00, 0x17, 0x00, 0x00, -0x37, 0x21, 0x35, 0x21, 0x13, 0x01, 0x33, 0x01, 0x13, 0x21, -0x35, 0x21, 0x13, 0x21, 0x35, 0x21, 0x13, 0x21, 0x35, 0x21, -0x03, 0x11, 0x33, 0x11, 0xD9, 0x01, 0x2C, 0xFE, 0xD4, 0xDA, -0xFE, 0x52, 0x5F, 0x01, 0x94, 0x21, 0x01, 0x61, 0xFE, 0x9F, -0x08, 0x01, 0x59, 0xFE, 0x39, 0x66, 0x01, 0x4D, 0xFE, 0xB3, -0x2F, 0x55, 0xD2, 0x50, 0x01, 0x9A, 0xFD, 0x44, 0x02, 0x94, -0xFD, 0x6C, 0x50, 0x02, 0x1C, 0x50, 0xFE, 0x98, 0x50, 0x01, -0x18, 0xFD, 0x44, 0x02, 0xBC, 0x00, 0x02, 0x00, 0x28, 0xFF, -0x23, 0x02, 0x67, 0x02, 0xC6, 0x00, 0x21, 0x00, 0x3F, 0x00, -0x00, 0x13, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x17, -0x35, 0x26, 0x26, 0x23, 0x22, 0x0E, 0x02, 0x15, 0x14, 0x1E, -0x02, 0x33, 0x32, 0x36, 0x37, 0x35, 0x0E, 0x02, 0x23, 0x22, -0x26, 0x26, 0x17, 0x07, 0x36, 0x36, 0x33, 0x32, 0x16, 0x15, -0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x07, 0x16, 0x16, 0x33, -0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x22, -0x23, 0x37, 0x82, 0x49, 0x76, 0x45, 0x32, 0x53, 0x44, 0x18, -0x2C, 0x68, 0x4D, 0x49, 0x7F, 0x60, 0x36, 0x36, 0x60, 0x7F, -0x49, 0x4D, 0x68, 0x2C, 0x18, 0x44, 0x53, 0x32, 0x45, 0x76, -0x49, 0xFA, 0x56, 0x10, 0x23, 0x07, 0x1A, 0x18, 0x18, 0x1A, -0x13, 0x17, 0x0E, 0x22, 0x15, 0x29, 0x1C, 0x1C, 0x30, 0x1E, -0x16, 0x21, 0x11, 0x02, 0x05, 0x02, 0x3F, 0x01, 0x5E, 0x52, -0x7B, 0x46, 0x1A, 0x2F, 0x1F, 0x70, 0x27, 0x26, 0x35, 0x61, -0x84, 0x4E, 0x4E, 0x84, 0x61, 0x35, 0x26, 0x27, 0x70, 0x1F, -0x2F, 0x1A, 0x46, 0x7C, 0xD2, 0xA8, 0x0B, 0x07, 0x12, 0x12, -0x12, 0x16, 0x0C, 0x0C, 0x28, 0x15, 0x11, 0x16, 0x2A, 0x1E, -0x19, 0x20, 0x11, 0x70, 0x00, 0x05, 0x00, 0x50, 0x00, 0x00, -0x01, 0xE0, 0x03, 0xC0, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0B, -0x00, 0x0F, 0x00, 0x13, 0x00, 0x00, 0x33, 0x21, 0x35, 0x21, -0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x03, 0x11, -0x33, 0x11, 0x37, 0x27, 0x07, 0x17, 0x7F, 0x01, 0x61, 0xFE, -0x9F, 0x01, 0x61, 0xFE, 0x9F, 0x01, 0x4D, 0xFE, 0xB3, 0x2F, -0x55, 0xF5, 0x4B, 0x96, 0x2D, 0x50, 0x02, 0x1C, 0x50, 0xFE, -0x98, 0x50, 0x01, 0x18, 0xFD, 0x44, 0x02, 0xBC, 0xDC, 0x28, -0xA0, 0x1E, 0x00, 0x02, 0x00, 0x50, 0xFF, 0xDD, 0x02, 0xB7, -0x03, 0x6B, 0x00, 0x07, 0x00, 0x21, 0x00, 0x00, 0x01, 0x11, -0x01, 0x11, 0x33, 0x11, 0x01, 0x11, 0x25, 0x17, 0x34, 0x36, -0x36, 0x33, 0x32, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x37, -0x27, 0x06, 0x06, 0x23, 0x22, 0x2E, 0x02, 0x23, 0x22, 0x06, -0x06, 0x02, 0x62, 0xFD, 0xEE, 0x55, 0x02, 0x12, 0xFE, 0x20, -0x35, 0x08, 0x16, 0x14, 0x17, 0x21, 0x26, 0x1B, 0x19, 0x2A, -0x1F, 0x08, 0x2E, 0x0F, 0x1B, 0x0E, 0x14, 0x1A, 0x17, 0x1F, -0x18, 0x16, 0x2D, 0x20, 0x02, 0xBC, 0xFD, 0xF7, 0x02, 0x2C, -0xFD, 0x21, 0x02, 0x09, 0xFD, 0xD4, 0x02, 0xDF, 0x5C, 0x25, -0x08, 0x18, 0x13, 0x17, 0x18, 0x15, 0x22, 0x12, 0x2B, 0x18, -0x18, 0x0E, 0x13, 0x0E, 0x15, 0x24, 0x00, 0x04, 0x00, 0x28, -0xFF, 0xF6, 0x02, 0xEE, 0x03, 0x70, 0x00, 0x0F, 0x00, 0x23, -0x00, 0x2F, 0x00, 0x3B, 0x00, 0x00, 0x13, 0x34, 0x36, 0x36, -0x33, 0x32, 0x16, 0x16, 0x15, 0x14, 0x06, 0x06, 0x23, 0x22, -0x26, 0x26, 0x27, 0x14, 0x1E, 0x02, 0x33, 0x32, 0x3E, 0x02, -0x35, 0x34, 0x2E, 0x02, 0x23, 0x22, 0x0E, 0x02, 0x01, 0x14, -0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, -0x07, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, -0x22, 0x06, 0x82, 0x45, 0x78, 0x4C, 0x4D, 0x77, 0x45, 0x45, -0x77, 0x4D, 0x4C, 0x78, 0x45, 0x5A, 0x35, 0x60, 0x82, 0x4C, -0x4D, 0x81, 0x60, 0x35, 0x35, 0x60, 0x81, 0x4D, 0x4C, 0x82, -0x60, 0x35, 0x01, 0x90, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, -0x16, 0x21, 0xC8, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, 0x16, -0x21, 0x01, 0x5E, 0x4F, 0x7C, 0x48, 0x48, 0x7C, 0x4F, 0x4F, -0x7C, 0x48, 0x48, 0x7C, 0x4F, 0x4C, 0x84, 0x61, 0x37, 0x37, -0x61, 0x84, 0x4C, 0x4D, 0x83, 0x61, 0x37, 0x37, 0x61, 0x83, -0x01, 0x8E, 0x16, 0x21, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, -0x16, 0x21, 0x21, 0x16, 0x17, 0x20, 0x20, 0x00, 0x03, 0x00, -0x4B, 0xFF, 0xF6, 0x02, 0x27, 0x03, 0x70, 0x00, 0x15, 0x00, -0x21, 0x00, 0x2D, 0x00, 0x00, 0x13, 0x11, 0x14, 0x1E, 0x02, -0x33, 0x32, 0x3E, 0x02, 0x35, 0x11, 0x23, 0x11, 0x14, 0x06, -0x23, 0x22, 0x26, 0x35, 0x11, 0x37, 0x14, 0x16, 0x33, 0x32, -0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x14, 0x16, -0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x4B, -0x21, 0x3F, 0x58, 0x36, 0x36, 0x58, 0x3F, 0x21, 0x55, 0x4E, -0x4B, 0x4B, 0x4E, 0xC6, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, -0x16, 0x21, 0xC8, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, 0x16, -0x21, 0x02, 0xBC, 0xFE, 0x2A, 0x34, 0x58, 0x40, 0x24, 0x24, -0x40, 0x58, 0x34, 0x01, 0xD6, 0xFE, 0x2A, 0x48, 0x58, 0x58, -0x48, 0x01, 0xD6, 0x7D, 0x16, 0x21, 0x21, 0x16, 0x17, 0x20, -0x20, 0x17, 0x16, 0x21, 0x21, 0x16, 0x17, 0x20, 0x20, 0x00, -0x03, 0x00, 0x1E, 0xFF, 0xF6, 0x01, 0xA9, 0x02, 0xD0, 0x00, -0x20, 0x00, 0x32, 0x00, 0x36, 0x00, 0x00, 0x37, 0x34, 0x36, -0x36, 0x33, 0x32, 0x16, 0x17, 0x35, 0x2E, 0x02, 0x23, 0x22, -0x06, 0x06, 0x15, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, -0x35, 0x27, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x35, -0x3E, 0x02, 0x33, 0x32, 0x16, 0x15, 0x11, 0x33, 0x11, 0x34, -0x26, 0x26, 0x23, 0x22, 0x06, 0x07, 0x13, 0x17, 0x37, 0x27, -0x6F, 0x1A, 0x35, 0x28, 0x2C, 0x46, 0x22, 0x07, 0x26, 0x3F, -0x2C, 0x37, 0x59, 0x34, 0x27, 0x48, 0x2F, 0x30, 0x4E, 0x2F, -0x10, 0x23, 0x3E, 0x28, 0x20, 0x2B, 0x16, 0x0B, 0x27, 0x36, -0x21, 0x26, 0x3B, 0x50, 0x2D, 0x4F, 0x35, 0x3E, 0x58, 0x1A, -0x10, 0xB4, 0x2D, 0x96, 0x87, 0x1C, 0x28, 0x16, 0x17, 0x18, -0x2F, 0x09, 0x1D, 0x17, 0x24, 0x47, 0x36, 0x2A, 0x3C, 0x21, -0x21, 0x3F, 0x2C, 0x32, 0x2B, 0x34, 0x18, 0x11, 0x21, 0xF1, -0x08, 0x17, 0x11, 0x23, 0x23, 0xFE, 0xB6, 0x01, 0x4A, 0x2D, -0x3E, 0x21, 0x26, 0x13, 0x01, 0x0B, 0x96, 0x1E, 0xA0, 0x00, -0x03, 0x00, 0x1E, 0xFF, 0xF6, 0x01, 0xA9, 0x02, 0xD0, 0x00, -0x20, 0x00, 0x32, 0x00, 0x36, 0x00, 0x00, 0x37, 0x34, 0x36, -0x36, 0x33, 0x32, 0x16, 0x17, 0x35, 0x2E, 0x02, 0x23, 0x22, -0x06, 0x06, 0x15, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, -0x35, 0x27, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x35, -0x3E, 0x02, 0x33, 0x32, 0x16, 0x15, 0x11, 0x33, 0x11, 0x34, -0x26, 0x26, 0x23, 0x22, 0x06, 0x07, 0x01, 0x27, 0x07, 0x17, -0x6F, 0x1A, 0x35, 0x28, 0x2C, 0x46, 0x22, 0x07, 0x26, 0x3F, -0x2C, 0x37, 0x59, 0x34, 0x27, 0x48, 0x2F, 0x30, 0x4E, 0x2F, -0x10, 0x23, 0x3E, 0x28, 0x20, 0x2B, 0x16, 0x0B, 0x27, 0x36, -0x21, 0x26, 0x3B, 0x50, 0x2D, 0x4F, 0x35, 0x3E, 0x58, 0x1A, -0x01, 0x50, 0x4B, 0x96, 0x2D, 0x87, 0x1C, 0x28, 0x16, 0x17, -0x18, 0x2F, 0x09, 0x1D, 0x17, 0x24, 0x47, 0x36, 0x2A, 0x3C, -0x21, 0x21, 0x3F, 0x2C, 0x32, 0x2B, 0x34, 0x18, 0x11, 0x21, -0xF1, 0x08, 0x17, 0x11, 0x23, 0x23, 0xFE, 0xB6, 0x01, 0x4A, -0x2D, 0x3E, 0x21, 0x26, 0x13, 0x01, 0x0B, 0x28, 0xA0, 0x1E, -0x00, 0x03, 0x00, 0x1E, 0xFF, 0xF6, 0x01, 0xA9, 0x02, 0xC6, -0x00, 0x20, 0x00, 0x32, 0x00, 0x38, 0x00, 0x00, 0x37, 0x34, -0x36, 0x36, 0x33, 0x32, 0x16, 0x17, 0x35, 0x2E, 0x02, 0x23, -0x22, 0x06, 0x06, 0x15, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, -0x36, 0x35, 0x27, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, -0x35, 0x3E, 0x02, 0x33, 0x32, 0x16, 0x15, 0x11, 0x33, 0x11, -0x34, 0x26, 0x26, 0x23, 0x22, 0x06, 0x07, 0x37, 0x17, 0x37, -0x27, 0x07, 0x17, 0x6F, 0x1A, 0x35, 0x28, 0x2C, 0x46, 0x22, -0x07, 0x26, 0x3F, 0x2C, 0x37, 0x59, 0x34, 0x27, 0x48, 0x2F, -0x30, 0x4E, 0x2F, 0x10, 0x23, 0x3E, 0x28, 0x20, 0x2B, 0x16, -0x0B, 0x27, 0x36, 0x21, 0x26, 0x3B, 0x50, 0x2D, 0x4F, 0x35, -0x3E, 0x58, 0x1A, 0xB0, 0x6E, 0x32, 0xA0, 0xA0, 0x32, 0x87, -0x1C, 0x28, 0x16, 0x17, 0x18, 0x2F, 0x09, 0x1D, 0x17, 0x24, -0x47, 0x36, 0x2A, 0x3C, 0x21, 0x21, 0x3F, 0x2C, 0x32, 0x2B, -0x34, 0x18, 0x11, 0x21, 0xF1, 0x08, 0x17, 0x11, 0x23, 0x23, -0xFE, 0xB6, 0x01, 0x4A, 0x2D, 0x3E, 0x21, 0x26, 0x13, 0xD4, -0x5F, 0x28, 0x8C, 0x8C, 0x28, 0x00, 0x04, 0x00, 0x1E, 0xFF, -0xF6, 0x01, 0xA9, 0x02, 0x80, 0x00, 0x20, 0x00, 0x32, 0x00, -0x3E, 0x00, 0x4A, 0x00, 0x00, 0x37, 0x34, 0x36, 0x36, 0x33, -0x32, 0x16, 0x17, 0x35, 0x2E, 0x02, 0x23, 0x22, 0x06, 0x06, -0x15, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x27, -0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x35, 0x3E, 0x02, -0x33, 0x32, 0x16, 0x15, 0x11, 0x33, 0x11, 0x34, 0x26, 0x26, -0x23, 0x22, 0x06, 0x07, 0x37, 0x14, 0x16, 0x33, 0x32, 0x36, -0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x14, 0x16, 0x33, -0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x6F, 0x1A, -0x35, 0x28, 0x2C, 0x46, 0x22, 0x07, 0x26, 0x3F, 0x2C, 0x37, -0x59, 0x34, 0x27, 0x48, 0x2F, 0x30, 0x4E, 0x2F, 0x10, 0x23, -0x3E, 0x28, 0x20, 0x2B, 0x16, 0x0B, 0x27, 0x36, 0x21, 0x26, -0x3B, 0x50, 0x2D, 0x4F, 0x35, 0x3E, 0x58, 0x1A, 0xDD, 0x21, -0x16, 0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0xC8, 0x21, 0x16, -0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0x87, 0x1C, 0x28, 0x16, -0x17, 0x18, 0x2F, 0x09, 0x1D, 0x17, 0x24, 0x47, 0x36, 0x2A, -0x3C, 0x21, 0x21, 0x3F, 0x2C, 0x32, 0x2B, 0x34, 0x18, 0x11, -0x21, 0xF1, 0x08, 0x17, 0x11, 0x23, 0x23, 0xFE, 0xB6, 0x01, -0x4A, 0x2D, 0x3E, 0x21, 0x26, 0x13, 0xAC, 0x16, 0x21, 0x21, -0x16, 0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0x21, 0x16, 0x17, -0x20, 0x20, 0x00, 0x04, 0x00, 0x1E, 0xFF, 0xF6, 0x01, 0xA9, -0x02, 0xDA, 0x00, 0x20, 0x00, 0x32, 0x00, 0x3E, 0x00, 0x4A, -0x00, 0x00, 0x37, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x17, -0x35, 0x2E, 0x02, 0x23, 0x22, 0x06, 0x06, 0x15, 0x14, 0x16, -0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x27, 0x14, 0x06, 0x06, -0x23, 0x22, 0x26, 0x26, 0x35, 0x3E, 0x02, 0x33, 0x32, 0x16, -0x15, 0x11, 0x33, 0x11, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, -0x07, 0x37, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, -0x23, 0x22, 0x06, 0x17, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, -0x14, 0x06, 0x23, 0x22, 0x26, 0x6F, 0x1A, 0x35, 0x28, 0x2C, -0x46, 0x22, 0x07, 0x26, 0x3F, 0x2C, 0x37, 0x59, 0x34, 0x27, -0x48, 0x2F, 0x30, 0x4E, 0x2F, 0x10, 0x23, 0x3E, 0x28, 0x20, -0x2B, 0x16, 0x0B, 0x27, 0x36, 0x21, 0x26, 0x3B, 0x50, 0x2D, -0x4F, 0x35, 0x3E, 0x58, 0x1A, 0x4A, 0x3F, 0x27, 0x27, 0x3F, -0x3F, 0x27, 0x27, 0x3F, 0x33, 0x20, 0x13, 0x13, 0x20, 0x20, -0x13, 0x13, 0x20, 0x87, 0x1C, 0x28, 0x16, 0x17, 0x18, 0x2F, -0x09, 0x1D, 0x17, 0x24, 0x47, 0x36, 0x2A, 0x3C, 0x21, 0x21, -0x3F, 0x2C, 0x32, 0x2B, 0x34, 0x18, 0x11, 0x21, 0xF1, 0x08, -0x17, 0x11, 0x23, 0x23, 0xFE, 0xB6, 0x01, 0x4A, 0x2D, 0x3E, -0x21, 0x26, 0x13, 0xD9, 0x2D, 0x37, 0x37, 0x2D, 0x2D, 0x37, -0x37, 0x2D, 0x19, 0x1C, 0x1C, 0x19, 0x19, 0x1C, 0x1C, 0x00, -0x02, 0x00, 0x1E, 0xFF, 0x23, 0x01, 0xAC, 0x01, 0xD6, 0x00, -0x1F, 0x00, 0x3D, 0x00, 0x00, 0x37, 0x34, 0x36, 0x36, 0x33, -0x32, 0x16, 0x16, 0x17, 0x35, 0x26, 0x26, 0x23, 0x22, 0x06, -0x06, 0x15, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x37, 0x35, -0x0E, 0x02, 0x23, 0x22, 0x26, 0x26, 0x17, 0x07, 0x36, 0x36, -0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, -0x07, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x26, -0x26, 0x23, 0x22, 0x22, 0x23, 0x37, 0x6F, 0x29, 0x47, 0x2D, -0x25, 0x41, 0x30, 0x0A, 0x18, 0x59, 0x2F, 0x43, 0x6C, 0x3F, -0x3F, 0x6C, 0x43, 0x2F, 0x59, 0x18, 0x0A, 0x30, 0x41, 0x25, -0x2D, 0x47, 0x29, 0x93, 0x56, 0x10, 0x23, 0x07, 0x1A, 0x18, -0x18, 0x1A, 0x13, 0x17, 0x0E, 0x22, 0x15, 0x29, 0x1C, 0x1C, -0x30, 0x1E, 0x16, 0x21, 0x11, 0x02, 0x05, 0x02, 0x3F, 0xE6, -0x30, 0x4B, 0x2A, 0x17, 0x26, 0x17, 0x64, 0x1C, 0x1F, 0x3E, -0x6C, 0x46, 0x45, 0x6D, 0x3E, 0x1F, 0x1C, 0x64, 0x16, 0x27, -0x17, 0x2B, 0x4A, 0x7B, 0xA8, 0x0B, 0x07, 0x12, 0x12, 0x12, -0x16, 0x0C, 0x0C, 0x28, 0x15, 0x11, 0x16, 0x2A, 0x1E, 0x19, -0x20, 0x11, 0x70, 0x00, 0x02, 0x00, 0x23, 0xFF, 0xF6, 0x01, -0xE0, 0x02, 0xDA, 0x00, 0x2A, 0x00, 0x2E, 0x00, 0x00, 0x37, -0x21, 0x36, 0x34, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, -0x06, 0x07, 0x06, 0x06, 0x15, 0x14, 0x16, 0x16, 0x33, 0x32, -0x36, 0x36, 0x37, 0x27, 0x0E, 0x02, 0x23, 0x22, 0x26, 0x26, -0x35, 0x37, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x17, -0x21, 0x13, 0x17, 0x37, 0x27, 0x56, 0x01, 0x89, 0x01, 0x36, -0x62, 0x41, 0x3B, 0x5F, 0x3C, 0x0A, 0x02, 0x02, 0x39, 0x63, -0x3E, 0x3C, 0x50, 0x38, 0x17, 0x41, 0x0F, 0x2A, 0x35, 0x22, -0x2D, 0x42, 0x24, 0x02, 0x27, 0x42, 0x28, 0x28, 0x37, 0x1F, -0x04, 0xFE, 0xCD, 0x25, 0xB4, 0x2D, 0x96, 0xD2, 0x06, 0x0C, -0x06, 0x49, 0x69, 0x3A, 0x30, 0x56, 0x39, 0x0C, 0x18, 0x0D, -0x45, 0x6D, 0x3E, 0x1D, 0x35, 0x23, 0x29, 0x19, 0x25, 0x15, -0x26, 0x4A, 0x35, 0x1E, 0x2B, 0x3F, 0x22, 0x1F, 0x37, 0x24, -0x01, 0x9C, 0x96, 0x1E, 0xA0, 0x00, 0x02, 0x00, 0x23, 0xFF, -0xF6, 0x01, 0xE0, 0x02, 0xDA, 0x00, 0x2A, 0x00, 0x2E, 0x00, -0x00, 0x37, 0x21, 0x36, 0x34, 0x35, 0x34, 0x26, 0x26, 0x23, -0x22, 0x06, 0x06, 0x07, 0x06, 0x06, 0x15, 0x14, 0x16, 0x16, -0x33, 0x32, 0x36, 0x36, 0x37, 0x27, 0x0E, 0x02, 0x23, 0x22, -0x26, 0x26, 0x35, 0x37, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, -0x16, 0x17, 0x21, 0x01, 0x27, 0x07, 0x17, 0x56, 0x01, 0x89, -0x01, 0x36, 0x62, 0x41, 0x3B, 0x5F, 0x3C, 0x0A, 0x02, 0x02, -0x39, 0x63, 0x3E, 0x3C, 0x50, 0x38, 0x17, 0x41, 0x0F, 0x2A, -0x35, 0x22, 0x2D, 0x42, 0x24, 0x02, 0x27, 0x42, 0x28, 0x28, -0x37, 0x1F, 0x04, 0xFE, 0xCD, 0x01, 0x51, 0x4B, 0x96, 0x2D, -0xD2, 0x06, 0x0C, 0x06, 0x49, 0x69, 0x3A, 0x30, 0x56, 0x39, -0x0C, 0x18, 0x0D, 0x45, 0x6D, 0x3E, 0x1D, 0x35, 0x23, 0x29, -0x19, 0x25, 0x15, 0x26, 0x4A, 0x35, 0x1E, 0x2B, 0x3F, 0x22, -0x1F, 0x37, 0x24, 0x01, 0x9C, 0x28, 0xA0, 0x1E, 0x00, 0x02, -0x00, 0x23, 0xFF, 0xF6, 0x01, 0xE0, 0x02, 0xC6, 0x00, 0x2A, -0x00, 0x30, 0x00, 0x00, 0x37, 0x21, 0x36, 0x34, 0x35, 0x34, -0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x07, 0x06, 0x06, 0x15, -0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x37, 0x27, 0x0E, -0x02, 0x23, 0x22, 0x26, 0x26, 0x35, 0x37, 0x34, 0x36, 0x36, -0x33, 0x32, 0x16, 0x16, 0x17, 0x21, 0x13, 0x17, 0x37, 0x27, -0x07, 0x17, 0x56, 0x01, 0x89, 0x01, 0x36, 0x62, 0x41, 0x3B, -0x5F, 0x3C, 0x0A, 0x02, 0x02, 0x39, 0x63, 0x3E, 0x3C, 0x50, -0x38, 0x17, 0x41, 0x0F, 0x2A, 0x35, 0x22, 0x2D, 0x42, 0x24, -0x02, 0x27, 0x42, 0x28, 0x28, 0x37, 0x1F, 0x04, 0xFE, 0xCD, -0xB1, 0x6E, 0x32, 0xA0, 0xA0, 0x32, 0xD2, 0x06, 0x0C, 0x06, -0x49, 0x69, 0x3A, 0x30, 0x56, 0x39, 0x0C, 0x18, 0x0D, 0x45, -0x6D, 0x3E, 0x1D, 0x35, 0x23, 0x29, 0x19, 0x25, 0x15, 0x26, -0x4A, 0x35, 0x1E, 0x2B, 0x3F, 0x22, 0x1F, 0x37, 0x24, 0x01, -0x5B, 0x5F, 0x28, 0x8C, 0x8C, 0x28, 0x00, 0x03, 0x00, 0x23, -0xFF, 0xF6, 0x01, 0xE0, 0x02, 0x80, 0x00, 0x2A, 0x00, 0x36, -0x00, 0x42, 0x00, 0x00, 0x37, 0x21, 0x36, 0x34, 0x35, 0x34, -0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x07, 0x06, 0x06, 0x15, -0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x37, 0x27, 0x0E, -0x02, 0x23, 0x22, 0x26, 0x26, 0x35, 0x37, 0x34, 0x36, 0x36, -0x33, 0x32, 0x16, 0x16, 0x17, 0x21, 0x13, 0x14, 0x16, 0x33, -0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x14, -0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, -0x56, 0x01, 0x89, 0x01, 0x36, 0x62, 0x41, 0x3B, 0x5F, 0x3C, -0x0A, 0x02, 0x02, 0x39, 0x63, 0x3E, 0x3C, 0x50, 0x38, 0x17, -0x41, 0x0F, 0x2A, 0x35, 0x22, 0x2D, 0x42, 0x24, 0x02, 0x27, -0x42, 0x28, 0x28, 0x37, 0x1F, 0x04, 0xFE, 0xCD, 0xDE, 0x21, -0x16, 0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0xC8, 0x21, 0x16, -0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0xD2, 0x06, 0x0C, 0x06, -0x49, 0x69, 0x3A, 0x30, 0x56, 0x39, 0x0C, 0x18, 0x0D, 0x45, -0x6D, 0x3E, 0x1D, 0x35, 0x23, 0x29, 0x19, 0x25, 0x15, 0x26, -0x4A, 0x35, 0x1E, 0x2B, 0x3F, 0x22, 0x1F, 0x37, 0x24, 0x01, -0x33, 0x16, 0x21, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, 0x16, -0x21, 0x21, 0x16, 0x17, 0x20, 0x20, 0x00, 0x02, 0xFF, 0xE2, -0x00, 0x00, 0x00, 0xC3, 0x02, 0xE4, 0x00, 0x03, 0x00, 0x07, -0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x27, 0x17, 0x37, 0x27, -0x5A, 0x50, 0xC8, 0xB4, 0x2D, 0x96, 0x01, 0xCC, 0xFE, 0x34, -0x01, 0xCC, 0xF0, 0x96, 0x1E, 0xA0, 0x00, 0x02, 0x00, 0x41, -0x00, 0x00, 0x01, 0x22, 0x02, 0xE4, 0x00, 0x03, 0x00, 0x07, -0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x37, 0x27, 0x07, 0x17, -0x5A, 0x50, 0x78, 0x4B, 0x96, 0x2D, 0x01, 0xCC, 0xFE, 0x34, -0x01, 0xCC, 0xF0, 0x28, 0xA0, 0x1E, 0x00, 0x02, 0xFF, 0xE2, -0x00, 0x00, 0x01, 0x22, 0x02, 0xD0, 0x00, 0x03, 0x00, 0x09, -0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x27, 0x17, 0x37, 0x27, -0x07, 0x17, 0x5A, 0x50, 0x28, 0x6E, 0x32, 0xA0, 0xA0, 0x32, -0x01, 0xCC, 0xFE, 0x34, 0x01, 0xCC, 0xAF, 0x5F, 0x28, 0x8C, -0x8C, 0x28, 0x00, 0x03, 0xFF, 0xE7, 0x00, 0x00, 0x01, 0x1D, -0x02, 0x9E, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x00, -0x13, 0x11, 0x33, 0x11, 0x37, 0x14, 0x16, 0x33, 0x32, 0x36, -0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x14, 0x16, 0x33, -0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x5A, 0x50, -0x05, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0xC8, -0x21, 0x16, 0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0x01, 0xCC, -0xFE, 0x34, 0x01, 0xCC, 0x9B, 0x16, 0x21, 0x21, 0x16, 0x17, -0x20, 0x20, 0x17, 0x16, 0x21, 0x21, 0x16, 0x17, 0x20, 0x20, -0x00, 0x03, 0x00, 0x4B, 0x00, 0x00, 0x01, 0xC2, 0x02, 0x8A, -0x00, 0x03, 0x00, 0x15, 0x00, 0x2F, 0x00, 0x00, 0x13, 0x23, -0x11, 0x33, 0x13, 0x11, 0x33, 0x11, 0x34, 0x26, 0x23, 0x22, -0x06, 0x06, 0x15, 0x33, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, -0x25, 0x17, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x33, -0x32, 0x36, 0x36, 0x37, 0x27, 0x06, 0x06, 0x23, 0x22, 0x2E, -0x02, 0x23, 0x22, 0x06, 0x06, 0x9B, 0x50, 0x50, 0xD7, 0x50, -0x57, 0x47, 0x30, 0x4E, 0x2F, 0x24, 0x1D, 0x35, 0x23, 0x31, -0x31, 0xFE, 0xF0, 0x35, 0x08, 0x16, 0x14, 0x17, 0x21, 0x26, -0x1B, 0x19, 0x2A, 0x1F, 0x08, 0x2E, 0x0F, 0x1B, 0x0E, 0x14, -0x1A, 0x17, 0x1F, 0x18, 0x16, 0x2D, 0x20, 0x01, 0xCC, 0xFE, -0x34, 0x01, 0x18, 0xFE, 0xE8, 0x01, 0x22, 0x59, 0x5B, 0x32, -0x55, 0x37, 0x21, 0x34, 0x1E, 0x3A, 0xE6, 0x25, 0x08, 0x18, -0x13, 0x17, 0x18, 0x15, 0x22, 0x12, 0x2B, 0x18, 0x18, 0x0E, -0x13, 0x0E, 0x15, 0x24, 0x00, 0x03, 0x00, 0x23, 0xFF, 0xF6, -0x01, 0xFF, 0x02, 0xE4, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x23, -0x00, 0x00, 0x37, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, -0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x17, 0x34, -0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x15, 0x14, 0x06, 0x06, -0x23, 0x22, 0x26, 0x26, 0x03, 0x17, 0x37, 0x27, 0x23, 0x3F, -0x6C, 0x43, 0x44, 0x6B, 0x3F, 0x3F, 0x6B, 0x44, 0x43, 0x6C, -0x3F, 0x51, 0x29, 0x47, 0x2D, 0x2D, 0x47, 0x29, 0x29, 0x47, -0x2D, 0x2D, 0x47, 0x29, 0x03, 0xB4, 0x2D, 0x96, 0xE6, 0x45, -0x6D, 0x3E, 0x3E, 0x6D, 0x45, 0x46, 0x6C, 0x3E, 0x3E, 0x6C, -0x46, 0x30, 0x4B, 0x2A, 0x2A, 0x4B, 0x30, 0x30, 0x4A, 0x2B, -0x2B, 0x4A, 0x02, 0x06, 0x96, 0x1E, 0xA0, 0x00, 0x03, 0x00, -0x23, 0xFF, 0xF6, 0x01, 0xFF, 0x02, 0xE4, 0x00, 0x0F, 0x00, -0x1F, 0x00, 0x23, 0x00, 0x00, 0x37, 0x14, 0x16, 0x16, 0x33, -0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, 0x22, 0x06, -0x06, 0x17, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x15, -0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x01, 0x27, 0x07, -0x17, 0x23, 0x3F, 0x6C, 0x43, 0x44, 0x6B, 0x3F, 0x3F, 0x6B, -0x44, 0x43, 0x6C, 0x3F, 0x51, 0x29, 0x47, 0x2D, 0x2D, 0x47, -0x29, 0x29, 0x47, 0x2D, 0x2D, 0x47, 0x29, 0x01, 0x3D, 0x4B, -0x96, 0x2D, 0xE6, 0x45, 0x6D, 0x3E, 0x3E, 0x6D, 0x45, 0x46, -0x6C, 0x3E, 0x3E, 0x6C, 0x46, 0x30, 0x4B, 0x2A, 0x2A, 0x4B, -0x30, 0x30, 0x4A, 0x2B, 0x2B, 0x4A, 0x02, 0x06, 0x28, 0xA0, -0x1E, 0x00, 0x03, 0x00, 0x23, 0xFF, 0xF6, 0x01, 0xFF, 0x02, -0xDA, 0x00, 0x0F, 0x00, 0x1F, 0x00, 0x25, 0x00, 0x00, 0x37, -0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x26, -0x26, 0x23, 0x22, 0x06, 0x06, 0x17, 0x34, 0x36, 0x36, 0x33, -0x32, 0x16, 0x16, 0x15, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, -0x26, 0x13, 0x17, 0x37, 0x27, 0x07, 0x17, 0x23, 0x3F, 0x6C, -0x43, 0x44, 0x6B, 0x3F, 0x3F, 0x6B, 0x44, 0x43, 0x6C, 0x3F, -0x51, 0x29, 0x47, 0x2D, 0x2D, 0x47, 0x29, 0x29, 0x47, 0x2D, -0x2D, 0x47, 0x29, 0x9D, 0x6E, 0x32, 0xA0, 0xA0, 0x32, 0xE6, -0x45, 0x6D, 0x3E, 0x3E, 0x6D, 0x45, 0x46, 0x6C, 0x3E, 0x3E, -0x6C, 0x46, 0x30, 0x4B, 0x2A, 0x2A, 0x4B, 0x30, 0x30, 0x4A, -0x2B, 0x2B, 0x4A, 0x01, 0xCF, 0x5F, 0x28, 0x8C, 0x8C, 0x28, -0x00, 0x04, 0x00, 0x23, 0xFF, 0xF6, 0x01, 0xFF, 0x02, 0x9E, -0x00, 0x0F, 0x00, 0x1F, 0x00, 0x2B, 0x00, 0x37, 0x00, 0x00, -0x37, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x34, -0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x17, 0x34, 0x36, 0x36, -0x33, 0x32, 0x16, 0x16, 0x15, 0x14, 0x06, 0x06, 0x23, 0x22, -0x26, 0x26, 0x13, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, -0x26, 0x23, 0x22, 0x06, 0x07, 0x14, 0x16, 0x33, 0x32, 0x36, -0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x23, 0x3F, 0x6C, 0x43, -0x44, 0x6B, 0x3F, 0x3F, 0x6B, 0x44, 0x43, 0x6C, 0x3F, 0x51, -0x29, 0x47, 0x2D, 0x2D, 0x47, 0x29, 0x29, 0x47, 0x2D, 0x2D, -0x47, 0x29, 0xCA, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, 0x16, -0x21, 0xC8, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, 0x16, 0x21, -0xE6, 0x45, 0x6D, 0x3E, 0x3E, 0x6D, 0x45, 0x46, 0x6C, 0x3E, -0x3E, 0x6C, 0x46, 0x30, 0x4B, 0x2A, 0x2A, 0x4B, 0x30, 0x30, -0x4A, 0x2B, 0x2B, 0x4A, 0x01, 0xB1, 0x16, 0x21, 0x21, 0x16, -0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0x21, 0x16, 0x17, 0x20, -0x20, 0x00, 0x03, 0x00, 0x4B, 0xFF, 0xF6, 0x01, 0xC2, 0x02, -0xE4, 0x00, 0x03, 0x00, 0x15, 0x00, 0x19, 0x00, 0x00, 0x21, -0x33, 0x11, 0x23, 0x03, 0x11, 0x23, 0x11, 0x14, 0x16, 0x33, -0x32, 0x36, 0x36, 0x35, 0x23, 0x14, 0x06, 0x06, 0x23, 0x22, -0x26, 0x03, 0x17, 0x37, 0x27, 0x01, 0x72, 0x50, 0x50, 0xD7, -0x50, 0x57, 0x47, 0x30, 0x4E, 0x2F, 0x24, 0x1D, 0x35, 0x23, -0x31, 0x31, 0x0D, 0xB4, 0x2E, 0x96, 0x01, 0xCC, 0xFE, 0xE8, -0x01, 0x18, 0xFE, 0xDE, 0x59, 0x5B, 0x32, 0x55, 0x37, 0x21, -0x34, 0x1E, 0x3A, 0x02, 0x41, 0x96, 0x1E, 0xA0, 0x00, 0x03, -0x00, 0x4B, 0xFF, 0xF6, 0x01, 0xC2, 0x02, 0xE4, 0x00, 0x03, -0x00, 0x15, 0x00, 0x19, 0x00, 0x00, 0x21, 0x33, 0x11, 0x23, -0x03, 0x11, 0x23, 0x11, 0x14, 0x16, 0x33, 0x32, 0x36, 0x36, -0x35, 0x23, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x13, 0x27, -0x07, 0x17, 0x01, 0x72, 0x50, 0x50, 0xD7, 0x50, 0x57, 0x47, -0x30, 0x4E, 0x2F, 0x24, 0x1D, 0x35, 0x23, 0x31, 0x31, 0xE3, -0x4A, 0x96, 0x2C, 0x01, 0xCC, 0xFE, 0xE8, 0x01, 0x18, 0xFE, -0xDE, 0x59, 0x5B, 0x32, 0x55, 0x37, 0x21, 0x34, 0x1E, 0x3A, -0x02, 0x41, 0x28, 0xA0, 0x1E, 0x00, 0x03, 0x00, 0x4B, 0xFF, -0xF6, 0x01, 0xC2, 0x02, 0xDA, 0x00, 0x03, 0x00, 0x15, 0x00, -0x1B, 0x00, 0x00, 0x21, 0x33, 0x11, 0x23, 0x03, 0x11, 0x23, -0x11, 0x14, 0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x23, 0x14, -0x06, 0x06, 0x23, 0x22, 0x26, 0x13, 0x17, 0x37, 0x27, 0x07, -0x17, 0x01, 0x72, 0x50, 0x50, 0xD7, 0x50, 0x57, 0x47, 0x30, -0x4E, 0x2F, 0x24, 0x1D, 0x35, 0x23, 0x31, 0x31, 0x6B, 0x6E, -0x32, 0xA0, 0xA0, 0x32, 0x01, 0xCC, 0xFE, 0xE8, 0x01, 0x18, -0xFE, 0xDE, 0x59, 0x5B, 0x32, 0x55, 0x37, 0x21, 0x34, 0x1E, -0x3A, 0x02, 0x0A, 0x5F, 0x28, 0x8C, 0x8C, 0x28, 0x00, 0x04, -0x00, 0x4B, 0xFF, 0xF6, 0x01, 0xC2, 0x02, 0x94, 0x00, 0x03, -0x00, 0x15, 0x00, 0x21, 0x00, 0x2D, 0x00, 0x00, 0x21, 0x33, -0x11, 0x23, 0x03, 0x11, 0x23, 0x11, 0x14, 0x16, 0x33, 0x32, -0x36, 0x36, 0x35, 0x23, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, -0x13, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, -0x22, 0x06, 0x07, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, -0x26, 0x23, 0x22, 0x06, 0x01, 0x72, 0x50, 0x50, 0xD7, 0x50, -0x57, 0x47, 0x30, 0x4E, 0x2F, 0x24, 0x1D, 0x35, 0x23, 0x31, -0x31, 0x99, 0x20, 0x16, 0x17, 0x21, 0x21, 0x17, 0x16, 0x20, -0xC8, 0x20, 0x16, 0x17, 0x21, 0x21, 0x17, 0x16, 0x20, 0x01, -0xCC, 0xFE, 0xE8, 0x01, 0x18, 0xFE, 0xDE, 0x59, 0x5B, 0x32, -0x55, 0x37, 0x21, 0x34, 0x1E, 0x3A, 0x01, 0xE2, 0x16, 0x21, -0x21, 0x16, 0x17, 0x20, 0x20, 0x17, 0x16, 0x21, 0x21, 0x16, -0x17, 0x20, 0x20, 0x00, 0x03, 0x00, 0x00, 0xFF, 0x24, 0x01, -0xB8, 0x02, 0x80, 0x00, 0x08, 0x00, 0x14, 0x00, 0x20, 0x00, -0x00, 0x01, 0x23, 0x03, 0x17, 0x03, 0x23, 0x13, 0x03, 0x33, -0x13, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, -0x22, 0x06, 0x07, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, -0x26, 0x23, 0x22, 0x06, 0x01, 0xB8, 0x5A, 0x8E, 0x21, 0x92, -0x5F, 0xB0, 0x7E, 0x5A, 0x7D, 0x21, 0x16, 0x17, 0x20, 0x20, -0x17, 0x16, 0x21, 0xC8, 0x21, 0x16, 0x17, 0x20, 0x20, 0x17, -0x16, 0x21, 0x01, 0xCC, 0xFE, 0x9C, 0x04, 0x01, 0x68, 0xFE, -0x75, 0xFE, 0xE3, 0x03, 0x25, 0x16, 0x21, 0x21, 0x16, 0x17, -0x20, 0x20, 0x17, 0x16, 0x21, 0x21, 0x16, 0x17, 0x20, 0x20, -0x00, 0x01, 0x00, 0x73, 0xFF, 0x37, 0x01, 0xFF, 0x03, 0x17, -0x00, 0x24, 0x00, 0x00, 0x17, 0x16, 0x36, 0x36, 0x37, 0x13, -0x33, 0x37, 0x23, 0x37, 0x36, 0x36, 0x33, 0x32, 0x16, 0x17, -0x37, 0x26, 0x26, 0x27, 0x26, 0x06, 0x07, 0x07, 0x23, 0x07, -0x33, 0x03, 0x06, 0x06, 0x23, 0x22, 0x26, 0x27, 0x07, 0x16, -0x16, 0xCC, 0x25, 0x39, 0x22, 0x03, 0x17, 0x4E, 0x06, 0x50, -0x0A, 0x03, 0x1B, 0x16, 0x09, 0x13, 0x10, 0x2B, 0x19, 0x29, -0x17, 0x38, 0x46, 0x05, 0x09, 0x3C, 0x06, 0x3E, 0x18, 0x03, -0x1A, 0x17, 0x09, 0x13, 0x10, 0x2B, 0x1A, 0x29, 0xC8, 0x01, -0x27, 0x49, 0x33, 0x01, 0xA7, 0x4B, 0xA0, 0x2C, 0x2F, 0x0B, -0x0F, 0x3E, 0x17, 0x12, 0x01, 0x02, 0x58, 0x4D, 0xA6, 0x4B, -0xFE, 0x5F, 0x2B, 0x2F, 0x0B, 0x0F, 0x3E, 0x16, 0x13, 0x00, -0x03, 0x00, 0x0F, 0xFF, 0xF6, 0x02, 0x08, 0x02, 0xC6, 0x00, -0x03, 0x00, 0x07, 0x00, 0x24, 0x00, 0x00, 0x13, 0x21, 0x35, -0x21, 0x15, 0x21, 0x35, 0x21, 0x37, 0x34, 0x36, 0x36, 0x33, -0x32, 0x17, 0x35, 0x26, 0x26, 0x23, 0x22, 0x0E, 0x02, 0x15, -0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x37, 0x35, 0x06, 0x23, -0x22, 0x26, 0x26, 0x0F, 0x01, 0xF5, 0xFE, 0x0B, 0x01, 0xDB, -0xFE, 0x25, 0x8C, 0x36, 0x61, 0x40, 0x56, 0x40, 0x22, 0x4B, -0x29, 0x41, 0x6E, 0x51, 0x2C, 0x4E, 0x87, 0x57, 0x29, 0x4B, -0x22, 0x40, 0x56, 0x40, 0x61, 0x36, 0x01, 0x97, 0x30, 0xA8, -0x30, 0x0F, 0x52, 0x7E, 0x48, 0x3E, 0x65, 0x14, 0x15, 0x35, -0x61, 0x84, 0x4E, 0x69, 0xA2, 0x5D, 0x16, 0x13, 0x65, 0x3E, -0x48, 0x7F, 0x00, 0x03, 0x00, 0x16, 0x00, 0x30, 0x02, 0xD8, -0x01, 0x9A, 0x00, 0x18, 0x00, 0x26, 0x00, 0x34, 0x00, 0x00, -0x37, 0x32, 0x37, 0x16, 0x16, 0x33, 0x32, 0x36, 0x36, 0x35, -0x34, 0x26, 0x26, 0x23, 0x22, 0x07, 0x26, 0x23, 0x22, 0x06, -0x06, 0x15, 0x14, 0x16, 0x16, 0x37, 0x22, 0x26, 0x26, 0x35, -0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x17, 0x06, 0x06, 0x21, -0x22, 0x26, 0x27, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x15, -0x14, 0x06, 0x06, 0xBF, 0x5B, 0x5E, 0x2F, 0x5B, 0x2E, 0x2D, -0x4D, 0x2E, 0x2E, 0x4D, 0x2D, 0x5B, 0x5D, 0x5D, 0x5C, 0x2D, -0x4D, 0x2F, 0x2F, 0x4D, 0x38, 0x19, 0x2C, 0x1B, 0x1B, 0x2C, -0x19, 0x21, 0x44, 0x1E, 0x1F, 0x43, 0x01, 0x3A, 0x21, 0x44, -0x1E, 0x1E, 0x44, 0x21, 0x19, 0x2B, 0x1B, 0x1B, 0x2B, 0x30, -0x78, 0x3C, 0x3C, 0x33, 0x53, 0x30, 0x31, 0x51, 0x32, 0x78, -0x78, 0x32, 0x51, 0x31, 0x30, 0x53, 0x33, 0x4E, 0x1E, 0x2F, -0x1B, 0x1C, 0x2E, 0x1D, 0x35, 0x32, 0x32, 0x36, 0x37, 0x31, -0x32, 0x35, 0x1D, 0x2E, 0x1C, 0x1B, 0x2F, 0x1E, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x28, 0x17, 0x17, -0x5F, 0x0F, 0x3C, 0xF5, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, -0x00, 0x00, 0xE0, 0x80, 0x16, 0x1F, 0x00, 0x00, 0x00, 0x00, -0xE0, 0x80, 0x16, 0x1F, 0xFF, 0x91, 0xFE, 0xA2, 0x05, 0xC4, -0x04, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x03, 0xDE, 0xFF, 0x91, 0xFF, 0xE2, -0x03, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, -0x02, 0x58, 0x00, 0x00, 0x01, 0x2C, 0x00, 0x5F, 0x01, 0xD1, -0x00, 0x50, 0x02, 0x5D, 0x00, 0x23, 0x02, 0x44, 0x00, 0x37, -0x02, 0xEF, 0x00, 0x23, 0x02, 0xA3, 0x00, 0x28, 0x01, 0x1D, -0x00, 0x50, 0x01, 0x36, 0x00, 0x5A, 0x01, 0x36, 0x00, 0x1E, -0x02, 0x50, 0x00, 0x64, 0x02, 0x67, 0x00, 0x41, 0x01, 0x34, -0x00, 0x3C, 0x00, 0xD2, 0x00, 0x05, 0x01, 0x2C, 0x00, 0x5F, -0x02, 0x03, 0x00, 0x0F, 0x02, 0x58, 0x00, 0x28, 0x01, 0xC2, -0x00, 0x50, 0x02, 0x39, 0x00, 0x14, 0x02, 0x22, 0x00, 0x3C, -0x02, 0x47, 0x00, 0x14, 0x02, 0x34, 0x00, 0x1E, 0x02, 0x40, -0x00, 0x32, 0x02, 0x0D, 0x00, 0x1E, 0x02, 0x22, 0x00, 0x37, -0x02, 0x40, 0x00, 0x32, 0x01, 0x2C, 0x00, 0x5F, 0x01, 0x4A, -0x00, 0x3C, 0x02, 0x80, 0x00, 0x41, 0x02, 0x67, 0x00, 0x41, -0x02, 0x80, 0x00, 0x41, 0x02, 0x2D, 0x00, 0x3C, 0x03, 0x02, -0x00, 0x23, 0x02, 0x94, 0x00, 0x05, 0x02, 0x2E, 0x00, 0x50, -0x02, 0xAD, 0x00, 0x28, 0x02, 0xA8, 0x00, 0x50, 0x02, 0x26, -0x00, 0x50, 0x01, 0xF4, 0x00, 0x50, 0x03, 0x07, 0x00, 0x28, -0x02, 0xCB, 0x00, 0x50, 0x00, 0xF5, 0x00, 0x50, 0x00, 0xF0, -0xFF, 0x91, 0x02, 0x35, 0x00, 0x50, 0x01, 0xC2, 0x00, 0x50, -0x03, 0x2A, 0x00, 0x28, 0x03, 0x07, 0x00, 0x50, 0x03, 0x16, -0x00, 0x28, 0x02, 0x24, 0x00, 0x50, 0x03, 0x16, 0x00, 0x28, -0x02, 0x30, 0x00, 0x50, 0x02, 0x24, 0x00, 0x26, 0x01, 0xD1, -0x00, 0x0A, 0x02, 0x72, 0x00, 0x4B, 0x02, 0x94, 0x00, 0x05, -0x03, 0xDE, 0x00, 0x0A, 0x02, 0x2B, 0x00, 0x0A, 0x02, 0x31, -0x00, 0x05, 0x02, 0x21, 0x00, 0x0F, 0x01, 0x2C, 0x00, 0x64, -0x02, 0x03, 0x00, 0x0F, 0x01, 0x2C, 0x00, 0x14, 0x01, 0xFE, -0x00, 0x41, 0x01, 0xF4, 0x00, 0x00, 0x01, 0x77, 0x00, 0x4B, -0x01, 0xE1, 0x00, 0x1E, 0x02, 0x3A, 0x00, 0x46, 0x01, 0xDE, -0x00, 0x1E, 0x02, 0x3A, 0x00, 0x23, 0x02, 0x03, 0x00, 0x23, -0x01, 0x1E, 0x00, 0x28, 0x02, 0x3A, 0x00, 0x23, 0x02, 0x0D, -0x00, 0x4B, 0x01, 0x04, 0x00, 0x4B, 0x00, 0xFA, 0xFF, 0xC3, -0x01, 0xB8, 0x00, 0x46, 0x00, 0xE6, 0x00, 0x4B, 0x03, 0x0C, -0x00, 0x4B, 0x02, 0x0D, 0x00, 0x4B, 0x02, 0x22, 0x00, 0x23, -0x02, 0x3A, 0x00, 0x46, 0x02, 0x3A, 0x00, 0x23, 0x01, 0x57, -0x00, 0x4B, 0x01, 0x93, 0x00, 0x1F, 0x00, 0xF0, 0x00, 0x05, -0x02, 0x0D, 0x00, 0x4B, 0x01, 0xB8, 0x00, 0x00, 0x02, 0xA8, -0x00, 0x05, 0x01, 0xA4, 0x00, 0x00, 0x01, 0xB8, 0x00, 0x00, -0x01, 0xCC, 0x00, 0x0F, 0x01, 0x37, 0x00, 0x32, 0x01, 0x12, -0x00, 0x64, 0x01, 0x37, 0x00, 0x3B, 0x02, 0x3F, 0x00, 0x41, -0x02, 0x44, 0x00, 0x51, 0x02, 0x44, 0x00, 0x40, 0x02, 0x44, -0x00, 0x0F, 0x01, 0x98, 0x00, 0x1E, 0x01, 0x16, 0x00, 0x14, -0x02, 0x94, 0x00, 0x05, 0x02, 0x94, 0x00, 0x05, 0x03, 0xC0, -0x00, 0x05, 0x02, 0xAD, 0x00, 0x28, 0x02, 0x26, 0x00, 0x50, -0x03, 0x07, 0x00, 0x50, 0x03, 0x16, 0x00, 0x28, 0x02, 0x72, -0x00, 0x4B, 0x01, 0xE5, 0x00, 0x1E, 0x01, 0xE5, 0x00, 0x1E, -0x01, 0xE5, 0x00, 0x1E, 0x01, 0xE5, 0x00, 0x1E, 0x01, 0xE5, -0x00, 0x1E, 0x01, 0xDE, 0x00, 0x1E, 0x02, 0x03, 0x00, 0x23, -0x02, 0x03, 0x00, 0x23, 0x02, 0x03, 0x00, 0x23, 0x02, 0x03, -0x00, 0x23, 0x01, 0x04, 0xFF, 0xE2, 0x01, 0x04, 0x00, 0x41, -0x01, 0x04, 0xFF, 0xE2, 0x01, 0x04, 0xFF, 0xE7, 0x02, 0x0D, -0x00, 0x4B, 0x02, 0x22, 0x00, 0x23, 0x02, 0x22, 0x00, 0x23, -0x02, 0x22, 0x00, 0x23, 0x02, 0x22, 0x00, 0x23, 0x02, 0x0D, -0x00, 0x4B, 0x02, 0x0D, 0x00, 0x4B, 0x02, 0x0D, 0x00, 0x4B, -0x02, 0x0D, 0x00, 0x4B, 0x01, 0xB8, 0x00, 0x00, 0x02, 0x58, -0x00, 0x73, 0x01, 0xF4, 0x00, 0x00, 0x02, 0x44, 0x00, 0x0F, -0x02, 0xEE, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x38, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x9E, -0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x01, 0xAC, 0x00, 0x00, -0x02, 0x79, 0x00, 0x00, 0x03, 0x2B, 0x00, 0x00, 0x03, 0x47, -0x00, 0x00, 0x03, 0x7B, 0x00, 0x00, 0x03, 0xAE, 0x00, 0x00, -0x04, 0x00, 0x00, 0x00, 0x04, 0x26, 0x00, 0x00, 0x04, 0x41, -0x00, 0x00, 0x04, 0x58, 0x00, 0x00, 0x04, 0x83, 0x00, 0x00, -0x04, 0xA2, 0x00, 0x00, 0x05, 0x0D, 0x00, 0x00, 0x05, 0x2D, -0x00, 0x00, 0x05, 0x89, 0x00, 0x00, 0x06, 0x22, 0x00, 0x00, -0x06, 0x4F, 0x00, 0x00, 0x06, 0xC2, 0x00, 0x00, 0x07, 0x3A, -0x00, 0x00, 0x07, 0x5E, 0x00, 0x00, 0x08, 0x24, 0x00, 0x00, -0x08, 0x9E, 0x00, 0x00, 0x08, 0xE8, 0x00, 0x00, 0x09, 0x24, -0x00, 0x00, 0x09, 0x48, 0x00, 0x00, 0x09, 0x6D, 0x00, 0x00, -0x09, 0x91, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0x00, 0x0B, 0x04, -0x00, 0x00, 0x0B, 0x41, 0x00, 0x00, 0x0B, 0xBC, 0x00, 0x00, -0x0C, 0x21, 0x00, 0x00, 0x0C, 0x77, 0x00, 0x00, 0x0C, 0xB7, -0x00, 0x00, 0x0C, 0xEC, 0x00, 0x00, 0x0D, 0x5D, 0x00, 0x00, -0x0D, 0x93, 0x00, 0x00, 0x0D, 0xAD, 0x00, 0x00, 0x0D, 0xEB, -0x00, 0x00, 0x0E, 0x20, 0x00, 0x00, 0x0E, 0x40, 0x00, 0x00, -0x0E, 0x72, 0x00, 0x00, 0x0E, 0x9D, 0x00, 0x00, 0x0F, 0x08, -0x00, 0x00, 0x0F, 0x53, 0x00, 0x00, 0x0F, 0xD0, 0x00, 0x00, -0x10, 0x31, 0x00, 0x00, 0x10, 0xC1, 0x00, 0x00, 0x10, 0xE4, -0x00, 0x00, 0x11, 0x2A, 0x00, 0x00, 0x11, 0x4E, 0x00, 0x00, -0x11, 0x81, 0x00, 0x00, 0x11, 0xBA, 0x00, 0x00, 0x11, 0xE7, -0x00, 0x00, 0x12, 0x11, 0x00, 0x00, 0x12, 0x32, 0x00, 0x00, -0x12, 0x50, 0x00, 0x00, 0x12, 0x70, 0x00, 0x00, 0x12, 0x91, -0x00, 0x00, 0x12, 0xA9, 0x00, 0x00, 0x12, 0xC4, 0x00, 0x00, -0x13, 0x58, 0x00, 0x00, 0x13, 0xC8, 0x00, 0x00, 0x14, 0x28, -0x00, 0x00, 0x14, 0x9B, 0x00, 0x00, 0x15, 0x13, 0x00, 0x00, -0x15, 0x5E, 0x00, 0x00, 0x15, 0xF8, 0x00, 0x00, 0x16, 0x44, -0x00, 0x00, 0x16, 0x7D, 0x00, 0x00, 0x16, 0xDD, 0x00, 0x00, -0x17, 0x0D, 0x00, 0x00, 0x17, 0x27, 0x00, 0x00, 0x17, 0x97, -0x00, 0x00, 0x17, 0xDC, 0x00, 0x00, 0x18, 0x3E, 0x00, 0x00, -0x18, 0xAF, 0x00, 0x00, 0x19, 0x1F, 0x00, 0x00, 0x19, 0x64, -0x00, 0x00, 0x19, 0xE8, 0x00, 0x00, 0x1A, 0x0D, 0x00, 0x00, -0x1A, 0x50, 0x00, 0x00, 0x1A, 0x73, 0x00, 0x00, 0x1A, 0xA2, -0x00, 0x00, 0x1A, 0xD3, 0x00, 0x00, 0x1A, 0xFF, 0x00, 0x00, -0x1B, 0x29, 0x00, 0x00, 0x1B, 0x9B, 0x00, 0x00, 0x1B, 0xB5, -0x00, 0x00, 0x1C, 0x26, 0x00, 0x00, 0x1C, 0xAA, 0x00, 0x00, -0x1D, 0x1D, 0x00, 0x00, 0x1D, 0xA6, 0x00, 0x00, 0x1D, 0xED, -0x00, 0x00, 0x1E, 0xE5, 0x00, 0x00, 0x1F, 0x30, 0x00, 0x00, -0x1F, 0xAC, 0x00, 0x00, 0x20, 0x28, 0x00, 0x00, 0x20, 0x8B, -0x00, 0x00, 0x21, 0x3E, 0x00, 0x00, 0x21, 0x8C, 0x00, 0x00, -0x21, 0xFE, 0x00, 0x00, 0x22, 0xA9, 0x00, 0x00, 0x23, 0x2D, -0x00, 0x00, 0x23, 0xCD, 0x00, 0x00, 0x24, 0x6E, 0x00, 0x00, -0x25, 0x13, 0x00, 0x00, 0x25, 0xE2, 0x00, 0x00, 0x26, 0xB1, -0x00, 0x00, 0x27, 0x5F, 0x00, 0x00, 0x27, 0xED, 0x00, 0x00, -0x28, 0x7C, 0x00, 0x00, 0x29, 0x10, 0x00, 0x00, 0x29, 0xCE, -0x00, 0x00, 0x29, 0xF6, 0x00, 0x00, 0x2A, 0x1E, 0x00, 0x00, -0x2A, 0x4C, 0x00, 0x00, 0x2A, 0xA4, 0x00, 0x00, 0x2B, 0x34, -0x00, 0x00, 0x2B, 0xA5, 0x00, 0x00, 0x2C, 0x17, 0x00, 0x00, -0x2C, 0x8E, 0x00, 0x00, 0x2D, 0x2F, 0x00, 0x00, 0x2D, 0x86, -0x00, 0x00, 0x2D, 0xDD, 0x00, 0x00, 0x2E, 0x3A, 0x00, 0x00, -0x2E, 0xC1, 0x00, 0x00, 0x2F, 0x2C, 0x00, 0x00, 0x2F, 0xA3, -0x00, 0x00, 0x2F, 0xA3, 0x00, 0x00, 0x30, 0x14, 0x00, 0x00, -0x30, 0xB0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x88, 0x10, 0x00, -0x04, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x02, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x96, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0D, -0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, -0x00, 0x07, 0x00, 0x0D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x03, 0x00, 0x21, 0x00, 0x14, 0x00, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x35, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x42, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0D, -0x00, 0x45, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x01, -0x00, 0x1A, 0x00, 0x52, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, -0x00, 0x02, 0x00, 0x0E, 0x00, 0x6C, 0x00, 0x03, 0x00, 0x01, -0x04, 0x09, 0x00, 0x03, 0x00, 0x42, 0x00, 0x7A, 0x00, 0x03, -0x00, 0x01, 0x04, 0x09, 0x00, 0x04, 0x00, 0x1A, 0x00, 0xBC, -0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x05, 0x00, 0x06, -0x00, 0xD6, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x06, -0x00, 0x1A, 0x00, 0xDC, 0x47, 0x65, 0x6E, 0x65, 0x72, 0x61, -0x74, 0x65, 0x64, 0x46, 0x6F, 0x6E, 0x74, 0x52, 0x65, 0x67, -0x75, 0x6C, 0x61, 0x72, 0x47, 0x65, 0x6E, 0x65, 0x72, 0x61, -0x74, 0x65, 0x64, 0x46, 0x6F, 0x6E, 0x74, 0x20, 0x52, 0x65, -0x67, 0x75, 0x6C, 0x61, 0x72, 0x3A, 0x56, 0x65, 0x72, 0x73, -0x69, 0x6F, 0x6E, 0x20, 0x31, 0x2E, 0x30, 0x47, 0x65, 0x6E, -0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6F, 0x6E, 0x74, -0x31, 0x2E, 0x30, 0x47, 0x65, 0x6E, 0x65, 0x72, 0x61, 0x74, -0x65, 0x64, 0x46, 0x6F, 0x6E, 0x74, 0x00, 0x47, 0x00, 0x65, -0x00, 0x6E, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, -0x00, 0x65, 0x00, 0x64, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, -0x00, 0x74, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, 0x00, 0x75, -0x00, 0x6C, 0x00, 0x61, 0x00, 0x72, 0x00, 0x47, 0x00, 0x65, -0x00, 0x6E, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, -0x00, 0x65, 0x00, 0x64, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, -0x00, 0x74, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, -0x00, 0x75, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x72, 0x00, 0x3A, -0x00, 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, -0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x31, 0x00, 0x2E, -0x00, 0x30, 0x00, 0x47, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x65, -0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, -0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x31, -0x00, 0x2E, 0x00, 0x30, 0x00, 0x47, 0x00, 0x65, 0x00, 0x6E, -0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, -0x00, 0x64, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, -0x00, 0x04, 0x02, 0x22, 0x01, 0x90, 0x00, 0x05, 0x00, 0x08, -0x02, 0x8A, 0x02, 0x58, 0x00, 0x00, 0x00, 0x4B, 0x02, 0x8A, -0x02, 0x58, 0x00, 0x00, 0x01, 0x5E, 0x00, 0x32, 0x01, 0x14, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0xA0, 0x00, 0x02, 0xEF, 0x00, 0x00, 0x20, 0x5B, -0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x69, 0x74, -0x2A, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xFF, 0x19, 0x04, 0x2E, -0xFE, 0x89, 0x00, 0x00, 0x04, 0x2E, 0x01, 0x77, 0x20, 0x00, -0x00, 0x97, 0x00, 0x00, 0x00, 0x00, 0x01, 0xCC, 0x02, 0xBC, -0x00, 0x00, 0x00, 0x20, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x01, -0xFF, 0x85, 0xB0, 0x04, 0x8D, 0x00, }; - -#endif diff --git a/src/fonts/noto-sans.h b/src/fonts/noto-sans.h deleted file mode 100644 index d5b16e3..0000000 --- a/src/fonts/noto-sans.h +++ /dev/null @@ -1,1797 +0,0 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT - -// This was created as per https://github.com/takkaO/OpenFontRender/blob/master/examples/TFT_eSPI/load_from_binary/load_from_binary.ino#L1 -// The generated font supports the following characters; basic ASCII, accented chars from extended ASCII plus €: -// !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€ÇüéâäàåçêëèïîìÄÅɧÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѰ∞ - -#ifndef _NOTOSANSTTF_H_ -#define _NOTOSANSTTF_H_ - -const unsigned char notosans[17836] = { -0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x80, 0x00, 0x03, -0x00, 0x30, 0x63, 0x6D, 0x61, 0x70, 0x7C, 0xEA, 0x97, 0x47, -0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x12, 0xEE, 0x67, 0x6C, -0x79, 0x66, 0x3C, 0xA3, 0xF9, 0x63, 0x00, 0x00, 0x13, 0xAC, -0x00, 0x00, 0x2A, 0x3A, 0x68, 0x65, 0x61, 0x64, 0x28, 0x97, -0x68, 0xCF, 0x00, 0x00, 0x3D, 0xE8, 0x00, 0x00, 0x00, 0x36, -0x68, 0x68, 0x65, 0x61, 0x03, 0x49, 0x04, 0x22, 0x00, 0x00, -0x3E, 0x20, 0x00, 0x00, 0x00, 0x24, 0x68, 0x6D, 0x74, 0x78, -0x65, 0x54, 0x21, 0x2E, 0x00, 0x00, 0x3E, 0x44, 0x00, 0x00, -0x02, 0x98, 0x6C, 0x6F, 0x63, 0x61, 0x00, 0x0E, 0xE4, 0x47, -0x00, 0x00, 0x40, 0xDC, 0x00, 0x00, 0x02, 0x9C, 0x6D, 0x61, -0x78, 0x70, 0x07, 0xA4, 0x11, 0x1F, 0x00, 0x00, 0x43, 0x78, -0x00, 0x00, 0x00, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x7B, 0xB1, -0x4F, 0xE5, 0x00, 0x00, 0x43, 0x98, 0x00, 0x00, 0x01, 0x8C, -0x4F, 0x53, 0x2F, 0x32, 0x0E, 0x5D, 0x86, 0xE0, 0x00, 0x00, -0x45, 0x24, 0x00, 0x00, 0x00, 0x60, 0x70, 0x6F, 0x73, 0x74, -0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x45, 0x84, 0x00, 0x00, -0x00, 0x20, 0x70, 0x72, 0x65, 0x70, 0x68, 0x06, 0x8C, 0x85, -0x00, 0x00, 0x45, 0xA4, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, -0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1C, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x06, 0x62, 0x00, 0x03, -0x00, 0x01, 0x00, 0x00, 0x0C, 0xA8, 0x00, 0x04, 0x06, 0x46, -0x00, 0x00, 0x01, 0x3E, 0x01, 0x00, 0x00, 0x07, 0x00, 0x3E, -0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, -0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, -0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, -0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, -0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, -0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, -0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, -0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, -0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, -0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x51, 0x00, 0x52, -0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, -0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, -0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, -0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, -0x00, 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, -0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, -0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, 0x00, 0x75, -0x00, 0x76, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, -0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0xC0, -0x00, 0xC1, 0x00, 0xC2, 0x00, 0xC3, 0x00, 0xC4, 0x00, 0xC5, -0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0xCA, -0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xCE, 0x00, 0xCF, -0x00, 0xD0, 0x00, 0xD1, 0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD4, -0x00, 0xD5, 0x00, 0xD6, 0x00, 0xD7, 0x00, 0xD8, 0x00, 0xD9, -0x00, 0xDA, 0x00, 0xDB, 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xDE, -0x00, 0xDF, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE3, -0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE6, 0x00, 0xE7, 0x00, 0xE8, -0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0xED, -0x00, 0xEE, 0x00, 0xEF, 0x00, 0xF0, 0x00, 0xF1, 0x00, 0xF2, -0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF5, 0x00, 0xF6, 0x00, 0xF7, -0x00, 0xF8, 0x00, 0xF9, 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFC, -0x00, 0xFD, 0x00, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, -0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, -0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, -0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, -0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, -0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, -0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, -0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, -0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, -0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, -0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x51, 0x00, 0x52, -0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, -0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, -0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, -0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, -0x00, 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, -0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, -0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, 0x00, 0x75, -0x00, 0x76, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, -0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0xC0, -0x00, 0xC1, 0x00, 0xC2, 0x00, 0xC3, 0x00, 0xC4, 0x00, 0xC5, -0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0xCA, -0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xCE, 0x00, 0xCF, -0x00, 0xD0, 0x00, 0xD1, 0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD4, -0x00, 0xD5, 0x00, 0xD6, 0x00, 0xD7, 0x00, 0xD8, 0x00, 0xD9, -0x00, 0xDA, 0x00, 0xDB, 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xDE, -0x00, 0xDF, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE3, -0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE6, 0x00, 0xE7, 0x00, 0xE8, -0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0xED, -0x00, 0xEE, 0x00, 0xEF, 0x00, 0xF0, 0x00, 0xF1, 0x00, 0xF2, -0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF5, 0x00, 0xF6, 0x00, 0xF7, -0x00, 0xF8, 0x00, 0xF9, 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFC, -0x00, 0xFD, 0x00, 0xFE, 0x00, 0xFF, 0xFF, 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, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, -0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, -0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, -0x00, 0x0E, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x11, 0x00, 0x12, -0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16, 0x00, 0x17, -0x00, 0x18, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, -0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, -0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, -0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, -0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, -0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, -0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, -0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, -0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, -0x00, 0x45, 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x49, -0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, -0x00, 0x4F, 0x00, 0x50, 0x00, 0x51, 0x00, 0x52, 0x00, 0x53, -0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, 0x00, 0x58, -0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, -0x00, 0x5E, 0x00, 0x5F, 0x00, 0x61, 0x00, 0x63, 0x00, 0x65, -0x00, 0x67, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6C, 0x00, 0x6D, -0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x71, 0x00, 0x72, -0x00, 0x73, 0x00, 0x74, 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, -0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, -0x00, 0x7D, 0x00, 0x7E, 0x00, 0x7F, 0x00, 0x80, 0x00, 0x81, -0x00, 0x82, 0x00, 0x83, 0x00, 0x84, 0x00, 0x85, 0x00, 0x86, -0x00, 0x87, 0x00, 0x88, 0x00, 0x89, 0x00, 0x8A, 0x00, 0x8B, -0x00, 0x8C, 0x00, 0x8D, 0x00, 0x8E, 0x00, 0x8F, 0x00, 0x90, -0x00, 0x92, 0x00, 0x93, 0x00, 0x94, 0x00, 0x95, 0x00, 0x96, -0x00, 0x97, 0x00, 0x98, 0x00, 0x99, 0x00, 0x9A, 0x00, 0x9B, -0x00, 0x9C, 0x00, 0x9D, 0x00, 0x9E, 0x00, 0x9F, 0x00, 0xA0, -0x00, 0xA1, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA4, 0x00, 0xA5, -0x00, 0x00, 0x00, 0x04, 0x06, 0x46, 0x00, 0x00, 0x01, 0x3E, -0x01, 0x00, 0x00, 0x07, 0x00, 0x3E, 0x00, 0x21, 0x00, 0x22, -0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, -0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, -0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, -0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, -0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, -0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, -0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, -0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, -0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, -0x00, 0x50, 0x00, 0x51, 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, -0x00, 0x55, 0x00, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, -0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, -0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, -0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, -0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, -0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x71, 0x00, 0x72, -0x00, 0x73, 0x00, 0x74, 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, -0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, -0x00, 0x7D, 0x00, 0x7E, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC2, -0x00, 0xC3, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC7, -0x00, 0xC8, 0x00, 0xC9, 0x00, 0xCA, 0x00, 0xCB, 0x00, 0xCC, -0x00, 0xCD, 0x00, 0xCE, 0x00, 0xCF, 0x00, 0xD0, 0x00, 0xD1, -0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD6, -0x00, 0xD7, 0x00, 0xD8, 0x00, 0xD9, 0x00, 0xDA, 0x00, 0xDB, -0x00, 0xDC, 0x00, 0xDD, 0x00, 0xDE, 0x00, 0xDF, 0x00, 0xE0, -0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE3, 0x00, 0xE4, 0x00, 0xE5, -0x00, 0xE6, 0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xEA, -0x00, 0xEB, 0x00, 0xEC, 0x00, 0xED, 0x00, 0xEE, 0x00, 0xEF, -0x00, 0xF0, 0x00, 0xF1, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, -0x00, 0xF5, 0x00, 0xF6, 0x00, 0xF7, 0x00, 0xF8, 0x00, 0xF9, -0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0xFD, 0x00, 0xFE, -0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x21, 0x00, 0x22, -0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, -0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, -0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, -0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, -0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, -0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, -0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, -0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, -0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, -0x00, 0x50, 0x00, 0x51, 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, -0x00, 0x55, 0x00, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, -0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, -0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, -0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, -0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, -0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x71, 0x00, 0x72, -0x00, 0x73, 0x00, 0x74, 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, -0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, -0x00, 0x7D, 0x00, 0x7E, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC2, -0x00, 0xC3, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC7, -0x00, 0xC8, 0x00, 0xC9, 0x00, 0xCA, 0x00, 0xCB, 0x00, 0xCC, -0x00, 0xCD, 0x00, 0xCE, 0x00, 0xCF, 0x00, 0xD0, 0x00, 0xD1, -0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD6, -0x00, 0xD7, 0x00, 0xD8, 0x00, 0xD9, 0x00, 0xDA, 0x00, 0xDB, -0x00, 0xDC, 0x00, 0xDD, 0x00, 0xDE, 0x00, 0xDF, 0x00, 0xE0, -0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE3, 0x00, 0xE4, 0x00, 0xE5, -0x00, 0xE6, 0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xEA, -0x00, 0xEB, 0x00, 0xEC, 0x00, 0xED, 0x00, 0xEE, 0x00, 0xEF, -0x00, 0xF0, 0x00, 0xF1, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, -0x00, 0xF5, 0x00, 0xF6, 0x00, 0xF7, 0x00, 0xF8, 0x00, 0xF9, -0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0xFD, 0x00, 0xFE, -0x00, 0xFF, 0xFF, 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, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, -0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, -0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, -0x00, 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, -0x00, 0x15, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, -0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, -0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, -0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, -0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, -0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, -0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, -0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, -0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, -0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00, 0x46, -0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, -0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, -0x00, 0x51, 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, -0x00, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, -0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, -0x00, 0x61, 0x00, 0x63, 0x00, 0x65, 0x00, 0x67, 0x00, 0x69, -0x00, 0x6A, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, -0x00, 0x70, 0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, -0x00, 0x75, 0x00, 0x76, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, -0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, -0x00, 0x7F, 0x00, 0x80, 0x00, 0x81, 0x00, 0x82, 0x00, 0x83, -0x00, 0x84, 0x00, 0x85, 0x00, 0x86, 0x00, 0x87, 0x00, 0x88, -0x00, 0x89, 0x00, 0x8A, 0x00, 0x8B, 0x00, 0x8C, 0x00, 0x8D, -0x00, 0x8E, 0x00, 0x8F, 0x00, 0x90, 0x00, 0x92, 0x00, 0x93, -0x00, 0x94, 0x00, 0x95, 0x00, 0x96, 0x00, 0x97, 0x00, 0x98, -0x00, 0x99, 0x00, 0x9A, 0x00, 0x9B, 0x00, 0x9C, 0x00, 0x9D, -0x00, 0x9E, 0x00, 0x9F, 0x00, 0xA0, 0x00, 0xA1, 0x00, 0xA2, -0x00, 0xA3, 0x00, 0xA4, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x04, -0x06, 0x46, 0x00, 0x00, 0x01, 0x3E, 0x01, 0x00, 0x00, 0x07, -0x00, 0x3E, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, -0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, -0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, -0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, -0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, -0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, -0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, -0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, -0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, -0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x51, -0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, -0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, -0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x60, -0x00, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, -0x00, 0x66, 0x00, 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, -0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, -0x00, 0x70, 0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, -0x00, 0x75, 0x00, 0x76, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, -0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, -0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC2, 0x00, 0xC3, 0x00, 0xC4, -0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC9, -0x00, 0xCA, 0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xCE, -0x00, 0xCF, 0x00, 0xD0, 0x00, 0xD1, 0x00, 0xD2, 0x00, 0xD3, -0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD6, 0x00, 0xD7, 0x00, 0xD8, -0x00, 0xD9, 0x00, 0xDA, 0x00, 0xDB, 0x00, 0xDC, 0x00, 0xDD, -0x00, 0xDE, 0x00, 0xDF, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, -0x00, 0xE3, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE6, 0x00, 0xE7, -0x00, 0xE8, 0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, -0x00, 0xED, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xF0, 0x00, 0xF1, -0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF5, 0x00, 0xF6, -0x00, 0xF7, 0x00, 0xF8, 0x00, 0xF9, 0x00, 0xFA, 0x00, 0xFB, -0x00, 0xFC, 0x00, 0xFD, 0x00, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, -0x00, 0x00, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, -0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, -0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, -0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, -0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, -0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, -0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, -0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, -0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, -0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x51, -0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, -0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, -0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x60, -0x00, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, -0x00, 0x66, 0x00, 0x67, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, -0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, -0x00, 0x70, 0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, -0x00, 0x75, 0x00, 0x76, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, -0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, -0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC2, 0x00, 0xC3, 0x00, 0xC4, -0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC9, -0x00, 0xCA, 0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xCE, -0x00, 0xCF, 0x00, 0xD0, 0x00, 0xD1, 0x00, 0xD2, 0x00, 0xD3, -0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD6, 0x00, 0xD7, 0x00, 0xD8, -0x00, 0xD9, 0x00, 0xDA, 0x00, 0xDB, 0x00, 0xDC, 0x00, 0xDD, -0x00, 0xDE, 0x00, 0xDF, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, -0x00, 0xE3, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE6, 0x00, 0xE7, -0x00, 0xE8, 0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, -0x00, 0xED, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xF0, 0x00, 0xF1, -0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF5, 0x00, 0xF6, -0x00, 0xF7, 0x00, 0xF8, 0x00, 0xF9, 0x00, 0xFA, 0x00, 0xFB, -0x00, 0xFC, 0x00, 0xFD, 0x00, 0xFE, 0x00, 0xFF, 0xFF, 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, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, -0x01, 0x3E, 0x01, 0x3E, 0x01, 0x3E, 0x00, 0x01, 0x00, 0x02, -0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, -0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, -0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x11, -0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16, -0x00, 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, -0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, -0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, -0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, -0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, -0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, -0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, -0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, -0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, -0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, -0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, -0x00, 0x4E, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x51, 0x00, 0x52, -0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, -0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, -0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x61, 0x00, 0x63, -0x00, 0x65, 0x00, 0x67, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6C, -0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x71, -0x00, 0x72, 0x00, 0x73, 0x00, 0x74, 0x00, 0x75, 0x00, 0x76, -0x00, 0x77, 0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x7B, -0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0x7F, 0x00, 0x80, -0x00, 0x81, 0x00, 0x82, 0x00, 0x83, 0x00, 0x84, 0x00, 0x85, -0x00, 0x86, 0x00, 0x87, 0x00, 0x88, 0x00, 0x89, 0x00, 0x8A, -0x00, 0x8B, 0x00, 0x8C, 0x00, 0x8D, 0x00, 0x8E, 0x00, 0x8F, -0x00, 0x90, 0x00, 0x92, 0x00, 0x93, 0x00, 0x94, 0x00, 0x95, -0x00, 0x96, 0x00, 0x97, 0x00, 0x98, 0x00, 0x99, 0x00, 0x9A, -0x00, 0x9B, 0x00, 0x9C, 0x00, 0x9D, 0x00, 0x9E, 0x00, 0x9F, -0x00, 0xA0, 0x00, 0xA1, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA4, -0x00, 0xA5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, -0x00, 0x00, 0x02, 0x58, 0x08, 0x00, 0x00, 0x03, 0x00, 0x07, -0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x00, 0x00, 0x00, 0x00, 0x02, 0x58, 0x00, 0x00, 0xFD, 0xAD, -0x02, 0x4E, 0x00, 0x00, 0xFD, 0xB2, 0x00, 0x00, 0x08, 0x00, -0x00, 0x00, 0xF8, 0x00, 0x00, 0x05, 0x00, 0x00, 0x07, 0xF6, -0x00, 0x00, 0x00, 0x02, 0x00, 0x48, 0xFF, 0xF2, 0x00, 0xC4, -0x02, 0xCA, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x37, 0x23, -0x03, 0x33, 0x03, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, -0x06, 0x23, 0x22, 0x26, 0xA3, 0x39, 0x19, 0x6B, 0x74, 0x24, -0x1A, 0x19, 0x25, 0x25, 0x19, 0x1A, 0x24, 0xC9, 0x02, 0x01, -0xFD, 0x6C, 0x25, 0x1E, 0x1E, 0x25, 0x24, 0x20, 0x20, 0x00, -0x02, 0x00, 0x41, 0x01, 0xC8, 0x01, 0x57, 0x02, 0xCA, 0x00, -0x03, 0x00, 0x07, 0x00, 0x00, 0x13, 0x03, 0x23, 0x03, 0x21, -0x03, 0x23, 0x03, 0xA0, 0x14, 0x37, 0x14, 0x01, 0x16, 0x14, -0x37, 0x14, 0x02, 0xCA, 0xFE, 0xFE, 0x01, 0x02, 0xFE, 0xFE, -0x01, 0x02, 0x00, 0x02, 0x00, 0x19, 0x00, 0x00, 0x02, 0x6C, -0x02, 0xCA, 0x00, 0x1B, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x07, -0x33, 0x15, 0x23, 0x07, 0x23, 0x37, 0x23, 0x07, 0x23, 0x37, -0x23, 0x35, 0x33, 0x37, 0x23, 0x35, 0x33, 0x37, 0x33, 0x07, -0x33, 0x37, 0x33, 0x07, 0x33, 0x15, 0x05, 0x33, 0x37, 0x23, -0x01, 0xE0, 0x1F, 0x89, 0x96, 0x29, 0x47, 0x29, 0x8F, 0x27, -0x46, 0x26, 0x7E, 0x8B, 0x20, 0x86, 0x92, 0x28, 0x48, 0x28, -0x90, 0x28, 0x45, 0x28, 0x7F, 0xFE, 0x7F, 0x8F, 0x1F, 0x8F, -0x01, 0xB4, 0xA0, 0x43, 0xD1, 0xD1, 0xD1, 0xD1, 0x43, 0xA0, -0x42, 0xD4, 0xD4, 0xD4, 0xD4, 0x42, 0xA0, 0xA0, 0x00, 0x03, -0x00, 0x3E, 0xFF, 0xC6, 0x02, 0x04, 0x02, 0xF7, 0x00, 0x22, -0x00, 0x29, 0x00, 0x30, 0x00, 0x00, 0x37, 0x26, 0x26, 0x27, -0x35, 0x16, 0x16, 0x17, 0x35, 0x26, 0x26, 0x35, 0x34, 0x36, -0x37, 0x35, 0x33, 0x15, 0x16, 0x16, 0x17, 0x07, 0x26, 0x26, -0x27, 0x15, 0x1E, 0x02, 0x15, 0x14, 0x06, 0x07, 0x15, 0x23, -0x11, 0x06, 0x06, 0x15, 0x14, 0x16, 0x17, 0x13, 0x36, 0x36, -0x35, 0x34, 0x26, 0x27, 0xFD, 0x37, 0x68, 0x20, 0x22, 0x6A, -0x33, 0x63, 0x5C, 0x67, 0x58, 0x40, 0x35, 0x57, 0x24, 0x1B, -0x20, 0x4D, 0x28, 0x42, 0x58, 0x2D, 0x68, 0x5F, 0x40, 0x36, -0x33, 0x2D, 0x3C, 0x40, 0x3B, 0x36, 0x30, 0x41, 0x31, 0x01, -0x11, 0x0F, 0x55, 0x10, 0x18, 0x01, 0xCA, 0x1B, 0x52, 0x47, -0x4A, 0x54, 0x05, 0x58, 0x57, 0x01, 0x15, 0x0F, 0x4A, 0x0D, -0x13, 0x03, 0xC9, 0x13, 0x2B, 0x3F, 0x32, 0x46, 0x57, 0x0A, -0x6F, 0x02, 0x8C, 0x04, 0x2A, 0x21, 0x28, 0x2B, 0x0F, 0xFE, -0xE2, 0x06, 0x2B, 0x22, 0x26, 0x27, 0x10, 0x00, 0x05, 0x00, -0x31, 0xFF, 0xF6, 0x03, 0x0E, 0x02, 0xD4, 0x00, 0x0B, 0x00, -0x0F, 0x00, 0x19, 0x00, 0x25, 0x00, 0x2F, 0x00, 0x00, 0x13, -0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, -0x36, 0x05, 0x01, 0x23, 0x01, 0x05, 0x22, 0x06, 0x15, 0x14, -0x16, 0x33, 0x32, 0x35, 0x34, 0x05, 0x32, 0x16, 0x15, 0x14, -0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x17, 0x22, 0x06, -0x15, 0x14, 0x16, 0x33, 0x32, 0x35, 0x34, 0xC3, 0x4A, 0x4C, -0x49, 0x4D, 0x47, 0x4B, 0x46, 0x02, 0x15, 0xFE, 0x74, 0x4D, -0x01, 0x8C, 0xFE, 0x84, 0x26, 0x23, 0x23, 0x26, 0x4D, 0x01, -0x68, 0x49, 0x4D, 0x49, 0x4D, 0x47, 0x4B, 0x46, 0x4C, 0x26, -0x23, 0x23, 0x26, 0x4D, 0x02, 0xD4, 0x75, 0x6A, 0x6A, 0x77, -0x77, 0x6A, 0x6A, 0x75, 0x0A, 0xFD, 0x36, 0x02, 0xCA, 0x34, -0x51, 0x50, 0x50, 0x52, 0xA2, 0xA1, 0xE0, 0x75, 0x6A, 0x6A, -0x77, 0x77, 0x6A, 0x6A, 0x75, 0x3F, 0x50, 0x50, 0x51, 0x51, -0xA2, 0xA0, 0x00, 0x03, 0x00, 0x35, 0xFF, 0xF6, 0x02, 0xDA, -0x02, 0xD5, 0x00, 0x1F, 0x00, 0x2B, 0x00, 0x35, 0x00, 0x00, -0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x17, 0x36, 0x36, -0x37, 0x33, 0x06, 0x06, 0x07, 0x17, 0x23, 0x27, 0x06, 0x06, -0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x26, 0x26, 0x35, -0x34, 0x36, 0x17, 0x22, 0x06, 0x15, 0x14, 0x16, 0x17, 0x36, -0x36, 0x35, 0x34, 0x26, 0x03, 0x06, 0x06, 0x15, 0x14, 0x16, -0x33, 0x32, 0x36, 0x37, 0x01, 0x30, 0x50, 0x5D, 0x51, 0x3E, -0xC1, 0x1A, 0x21, 0x0B, 0x59, 0x10, 0x30, 0x26, 0x92, 0x77, -0x57, 0x2F, 0x74, 0x53, 0x67, 0x7A, 0x53, 0x47, 0x20, 0x37, -0x63, 0x52, 0x2A, 0x35, 0x26, 0x24, 0x3B, 0x33, 0x30, 0x52, -0x36, 0x3D, 0x4A, 0x3E, 0x40, 0x5C, 0x1F, 0x02, 0xD5, 0x51, -0x49, 0x3F, 0x58, 0x24, 0xBA, 0x1F, 0x51, 0x2F, 0x40, 0x6E, -0x29, 0x8E, 0x54, 0x2A, 0x34, 0x66, 0x5E, 0x4D, 0x5D, 0x28, -0x24, 0x52, 0x37, 0x4A, 0x52, 0x48, 0x2C, 0x27, 0x24, 0x3D, -0x25, 0x22, 0x3D, 0x28, 0x24, 0x2E, 0xFE, 0xC8, 0x20, 0x42, -0x36, 0x37, 0x42, 0x2A, 0x1D, 0x00, 0x01, 0x00, 0x41, 0x01, -0xC8, 0x00, 0xA0, 0x02, 0xCA, 0x00, 0x03, 0x00, 0x00, 0x13, -0x03, 0x23, 0x03, 0xA0, 0x14, 0x37, 0x14, 0x02, 0xCA, 0xFE, -0xFE, 0x01, 0x02, 0x00, 0x01, 0x00, 0x28, 0xFF, 0x62, 0x01, -0x0E, 0x02, 0xCA, 0x00, 0x0D, 0x00, 0x00, 0x13, 0x34, 0x36, -0x37, 0x33, 0x06, 0x06, 0x15, 0x14, 0x16, 0x17, 0x23, 0x26, -0x26, 0x28, 0x47, 0x4C, 0x53, 0x46, 0x47, 0x47, 0x45, 0x52, -0x4C, 0x47, 0x01, 0x12, 0x7A, 0xE3, 0x5B, 0x5E, 0xE2, 0x77, -0x74, 0xDF, 0x5E, 0x58, 0xDF, 0x00, 0x01, 0x00, 0x1E, 0xFF, -0x62, 0x01, 0x04, 0x02, 0xCA, 0x00, 0x0D, 0x00, 0x00, 0x01, -0x14, 0x06, 0x07, 0x23, 0x36, 0x36, 0x35, 0x34, 0x26, 0x27, -0x33, 0x16, 0x16, 0x01, 0x04, 0x47, 0x4C, 0x52, 0x45, 0x47, -0x47, 0x46, 0x53, 0x4C, 0x47, 0x01, 0x12, 0x79, 0xDF, 0x58, -0x5E, 0xDF, 0x74, 0x77, 0xE2, 0x5E, 0x5B, 0xE3, 0x00, 0x01, -0x00, 0x29, 0x01, 0x36, 0x01, 0xFC, 0x02, 0xF8, 0x00, 0x0E, -0x00, 0x00, 0x01, 0x07, 0x37, 0x17, 0x07, 0x17, 0x07, 0x27, -0x07, 0x27, 0x37, 0x27, 0x37, 0x17, 0x27, 0x01, 0x42, 0x14, -0xC0, 0x0E, 0xB8, 0x77, 0x56, 0x55, 0x4D, 0x59, 0x75, 0xB6, -0x0E, 0xBE, 0x15, 0x02, 0xF8, 0xC0, 0x36, 0x5C, 0x0F, 0x9E, -0x2F, 0xAF, 0xAF, 0x2F, 0x9E, 0x0F, 0x5C, 0x36, 0xC0, 0x00, -0x01, 0x00, 0x32, 0x00, 0x6F, 0x02, 0x08, 0x02, 0x53, 0x00, -0x0B, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35, -0x23, 0x35, 0x33, 0x35, 0x33, 0x01, 0x41, 0xC7, 0xC7, 0x48, -0xC7, 0xC7, 0x48, 0x01, 0x84, 0x47, 0xCE, 0xCE, 0x47, 0xCF, -0x00, 0x01, 0x00, 0x29, 0xFF, 0x7F, 0x00, 0xC0, 0x00, 0x74, -0x00, 0x08, 0x00, 0x00, 0x37, 0x06, 0x06, 0x07, 0x23, 0x36, -0x36, 0x37, 0x33, 0xC0, 0x0D, 0x31, 0x18, 0x41, 0x0E, 0x1D, -0x07, 0x5E, 0x69, 0x35, 0x7F, 0x36, 0x39, 0x88, 0x34, 0x00, -0x01, 0x00, 0x28, 0x00, 0xE5, 0x01, 0x1A, 0x01, 0x33, 0x00, -0x03, 0x00, 0x00, 0x37, 0x35, 0x33, 0x15, 0x28, 0xF2, 0xE5, -0x4E, 0x4E, 0x00, 0x01, 0x00, 0x48, 0xFF, 0xF2, 0x00, 0xC4, -0x00, 0x79, 0x00, 0x0B, 0x00, 0x00, 0x37, 0x34, 0x36, 0x33, -0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x48, 0x24, -0x19, 0x1A, 0x25, 0x25, 0x1A, 0x19, 0x24, 0x36, 0x25, 0x1E, -0x1E, 0x25, 0x24, 0x20, 0x20, 0x00, 0x01, 0x00, 0x0A, 0x00, -0x00, 0x01, 0x6A, 0x02, 0xCA, 0x00, 0x03, 0x00, 0x00, 0x01, -0x01, 0x23, 0x01, 0x01, 0x6A, 0xFE, 0xF6, 0x56, 0x01, 0x0A, -0x02, 0xCA, 0xFD, 0x36, 0x02, 0xCA, 0x00, 0x02, 0x00, 0x31, -0xFF, 0xF6, 0x02, 0x0B, 0x02, 0xD5, 0x00, 0x0D, 0x00, 0x19, -0x00, 0x00, 0x01, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x35, -0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x05, 0x14, 0x16, 0x33, -0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x02, 0x0B, -0x30, 0x68, 0x56, 0x79, 0x73, 0x2F, 0x68, 0x55, 0x78, 0x76, -0xFE, 0x7E, 0x43, 0x51, 0x50, 0x45, 0x45, 0x50, 0x51, 0x43, -0x01, 0x66, 0x73, 0xA5, 0x58, 0xC3, 0xAD, 0x74, 0xA4, 0x57, -0xC1, 0xAE, 0x93, 0x92, 0x91, 0x94, 0x92, 0x92, 0x92, 0x00, -0x01, 0x00, 0x59, 0x00, 0x00, 0x01, 0x63, 0x02, 0xCA, 0x00, -0x0C, 0x00, 0x00, 0x21, 0x23, 0x11, 0x34, 0x36, 0x37, 0x06, -0x06, 0x07, 0x07, 0x27, 0x37, 0x33, 0x01, 0x63, 0x56, 0x02, -0x02, 0x10, 0x1A, 0x14, 0x4C, 0x2E, 0xC1, 0x49, 0x01, 0xF3, -0x2B, 0x34, 0x1C, 0x10, 0x16, 0x11, 0x3E, 0x3B, 0x96, 0x00, -0x01, 0x00, 0x30, 0x00, 0x00, 0x02, 0x08, 0x02, 0xD4, 0x00, -0x1B, 0x00, 0x00, 0x21, 0x21, 0x35, 0x37, 0x3E, 0x02, 0x35, -0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x27, 0x36, 0x36, 0x33, -0x32, 0x16, 0x15, 0x14, 0x06, 0x06, 0x07, 0x07, 0x15, 0x21, -0x02, 0x08, 0xFE, 0x28, 0xBB, 0x36, 0x4A, 0x26, 0x46, 0x38, -0x34, 0x4F, 0x29, 0x2F, 0x2A, 0x6D, 0x44, 0x64, 0x74, 0x2E, -0x52, 0x37, 0x95, 0x01, 0x69, 0x49, 0xBD, 0x36, 0x54, 0x51, -0x30, 0x3B, 0x3D, 0x24, 0x20, 0x3B, 0x23, 0x31, 0x65, 0x59, -0x38, 0x62, 0x5F, 0x36, 0x93, 0x04, 0x00, 0x01, 0x00, 0x2D, -0xFF, 0xF6, 0x02, 0x03, 0x02, 0xD4, 0x00, 0x2A, 0x00, 0x00, -0x01, 0x14, 0x06, 0x07, 0x15, 0x16, 0x16, 0x15, 0x14, 0x06, -0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x16, 0x16, 0x33, 0x32, -0x36, 0x35, 0x34, 0x26, 0x23, 0x23, 0x35, 0x33, 0x32, 0x36, -0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x27, 0x36, 0x36, -0x33, 0x32, 0x16, 0x01, 0xED, 0x50, 0x44, 0x56, 0x54, 0x3A, -0x79, 0x5F, 0x38, 0x60, 0x2C, 0x2D, 0x68, 0x30, 0x60, 0x55, -0x69, 0x5F, 0x45, 0x46, 0x58, 0x5B, 0x46, 0x3C, 0x3A, 0x52, -0x28, 0x2C, 0x26, 0x71, 0x48, 0x70, 0x6D, 0x02, 0x23, 0x48, -0x55, 0x0E, 0x04, 0x0A, 0x58, 0x47, 0x3E, 0x61, 0x36, 0x11, -0x16, 0x52, 0x16, 0x19, 0x4B, 0x42, 0x43, 0x3B, 0x4B, 0x4A, -0x3D, 0x34, 0x39, 0x22, 0x1A, 0x3C, 0x1E, 0x2C, 0x64, 0x00, -0x02, 0x00, 0x15, 0x00, 0x00, 0x02, 0x28, 0x02, 0xCE, 0x00, -0x0A, 0x00, 0x14, 0x00, 0x00, 0x25, 0x23, 0x15, 0x23, 0x35, -0x21, 0x35, 0x01, 0x33, 0x11, 0x33, 0x27, 0x34, 0x36, 0x37, -0x23, 0x06, 0x06, 0x07, 0x03, 0x21, 0x02, 0x28, 0x68, 0x55, -0xFE, 0xAA, 0x01, 0x50, 0x5B, 0x68, 0xBD, 0x04, 0x01, 0x04, -0x08, 0x18, 0x0B, 0xD6, 0x01, 0x00, 0xA2, 0xA2, 0xA2, 0x4B, -0x01, 0xE1, 0xFE, 0x23, 0xE1, 0x34, 0x49, 0x21, 0x13, 0x2C, -0x0F, 0xFE, 0xCF, 0x00, 0x01, 0x00, 0x3F, 0xFF, 0xF6, 0x02, -0x03, 0x02, 0xCA, 0x00, 0x1E, 0x00, 0x00, 0x01, 0x32, 0x16, -0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x16, 0x16, -0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, -0x27, 0x13, 0x21, 0x15, 0x21, 0x07, 0x36, 0x36, 0x01, 0x13, -0x6E, 0x82, 0x8D, 0x7E, 0x37, 0x61, 0x21, 0x24, 0x67, 0x2F, -0x4F, 0x61, 0x56, 0x5D, 0x1C, 0x48, 0x16, 0x2C, 0x1B, 0x01, -0x66, 0xFE, 0xE5, 0x11, 0x11, 0x3A, 0x01, 0xB6, 0x6E, 0x64, -0x6F, 0x7F, 0x14, 0x13, 0x53, 0x16, 0x19, 0x4B, 0x4F, 0x46, -0x4B, 0x0A, 0x05, 0x1C, 0x01, 0x51, 0x50, 0xCF, 0x03, 0x08, -0x00, 0x02, 0x00, 0x37, 0xFF, 0xF6, 0x02, 0x0D, 0x02, 0xD4, -0x00, 0x1E, 0x00, 0x2C, 0x00, 0x00, 0x13, 0x34, 0x3E, 0x02, -0x33, 0x32, 0x16, 0x17, 0x15, 0x26, 0x26, 0x23, 0x22, 0x0E, -0x02, 0x07, 0x33, 0x36, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, -0x06, 0x23, 0x22, 0x26, 0x26, 0x17, 0x32, 0x36, 0x35, 0x34, -0x26, 0x23, 0x22, 0x06, 0x06, 0x15, 0x14, 0x16, 0x16, 0x37, -0x1B, 0x47, 0x80, 0x65, 0x15, 0x33, 0x10, 0x12, 0x2D, 0x17, -0x45, 0x5C, 0x35, 0x18, 0x03, 0x06, 0x17, 0x52, 0x40, 0x5D, -0x72, 0x7B, 0x68, 0x44, 0x6E, 0x41, 0xF2, 0x3F, 0x4E, 0x45, -0x45, 0x2F, 0x46, 0x27, 0x22, 0x44, 0x01, 0x31, 0x4D, 0x95, -0x79, 0x48, 0x04, 0x05, 0x4B, 0x06, 0x06, 0x2E, 0x50, 0x68, -0x3B, 0x23, 0x31, 0x71, 0x68, 0x70, 0x80, 0x44, 0x8C, 0x86, -0x51, 0x55, 0x44, 0x50, 0x27, 0x3C, 0x20, 0x2B, 0x55, 0x37, -0x00, 0x01, 0x00, 0x2C, 0x00, 0x00, 0x02, 0x0B, 0x02, 0xCA, -0x00, 0x06, 0x00, 0x00, 0x33, 0x01, 0x21, 0x35, 0x21, 0x15, -0x01, 0x88, 0x01, 0x25, 0xFE, 0x7F, 0x01, 0xDF, 0xFE, 0xDE, -0x02, 0x7A, 0x50, 0x44, 0xFD, 0x7A, 0x00, 0x03, 0x00, 0x31, -0xFF, 0xF6, 0x02, 0x0A, 0x02, 0xD4, 0x00, 0x1B, 0x00, 0x28, -0x00, 0x35, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, -0x06, 0x07, 0x1E, 0x02, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, -0x35, 0x34, 0x36, 0x36, 0x37, 0x26, 0x26, 0x35, 0x34, 0x36, -0x36, 0x17, 0x22, 0x06, 0x15, 0x14, 0x16, 0x16, 0x17, 0x36, -0x36, 0x35, 0x34, 0x26, 0x03, 0x14, 0x16, 0x33, 0x32, 0x36, -0x35, 0x34, 0x26, 0x27, 0x27, 0x06, 0x06, 0x01, 0x1D, 0x5E, -0x78, 0x25, 0x3E, 0x25, 0x2C, 0x48, 0x2B, 0x7F, 0x6B, 0x73, -0x7C, 0x29, 0x44, 0x27, 0x34, 0x49, 0x38, 0x60, 0x3C, 0x37, -0x47, 0x23, 0x3C, 0x24, 0x34, 0x47, 0x46, 0xCF, 0x4A, 0x4D, -0x49, 0x4D, 0x52, 0x44, 0x10, 0x42, 0x45, 0x02, 0xD4, 0x58, -0x53, 0x2B, 0x40, 0x31, 0x13, 0x15, 0x35, 0x46, 0x31, 0x5A, -0x69, 0x65, 0x5B, 0x31, 0x48, 0x34, 0x12, 0x1E, 0x55, 0x42, -0x37, 0x4B, 0x28, 0x47, 0x35, 0x32, 0x25, 0x32, 0x23, 0x10, -0x16, 0x3E, 0x36, 0x32, 0x35, 0xFE, 0x28, 0x34, 0x45, 0x45, -0x37, 0x34, 0x45, 0x1A, 0x06, 0x1C, 0x49, 0x00, 0x02, 0x00, -0x32, 0xFF, 0xF6, 0x02, 0x08, 0x02, 0xD4, 0x00, 0x1E, 0x00, -0x2C, 0x00, 0x00, 0x01, 0x14, 0x0E, 0x02, 0x23, 0x22, 0x26, -0x27, 0x35, 0x16, 0x33, 0x32, 0x3E, 0x02, 0x37, 0x23, 0x06, -0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x36, 0x33, 0x32, -0x16, 0x16, 0x27, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, -0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x02, 0x08, 0x1B, 0x47, -0x81, 0x65, 0x14, 0x35, 0x11, 0x27, 0x31, 0x46, 0x5B, 0x36, -0x18, 0x02, 0x06, 0x16, 0x53, 0x41, 0x5C, 0x71, 0x39, 0x66, -0x45, 0x44, 0x6E, 0x40, 0xF2, 0x3E, 0x4F, 0x43, 0x46, 0x30, -0x46, 0x27, 0x22, 0x44, 0x01, 0x99, 0x4D, 0x95, 0x79, 0x48, -0x05, 0x05, 0x4B, 0x0D, 0x2E, 0x4F, 0x69, 0x3A, 0x22, 0x31, -0x71, 0x67, 0x4B, 0x6C, 0x3A, 0x45, 0x8B, 0x86, 0x52, 0x54, -0x45, 0x4F, 0x27, 0x3C, 0x20, 0x2B, 0x54, 0x38, 0x00, 0x02, -0x00, 0x48, 0xFF, 0xF2, 0x00, 0xC4, 0x02, 0x26, 0x00, 0x0B, -0x00, 0x17, 0x00, 0x00, 0x13, 0x34, 0x36, 0x33, 0x32, 0x16, -0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x11, 0x34, 0x36, 0x33, -0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x48, 0x24, -0x19, 0x1A, 0x25, 0x25, 0x1A, 0x19, 0x24, 0x24, 0x19, 0x1A, -0x25, 0x25, 0x1A, 0x19, 0x24, 0x01, 0xE2, 0x26, 0x1E, 0x1E, -0x26, 0x24, 0x20, 0x20, 0xFE, 0x78, 0x25, 0x1E, 0x1E, 0x25, -0x24, 0x20, 0x20, 0x00, 0x02, 0x00, 0x1F, 0xFF, 0x7F, 0x00, -0xC2, 0x02, 0x26, 0x00, 0x0B, 0x00, 0x15, 0x00, 0x00, 0x13, -0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, -0x26, 0x13, 0x06, 0x06, 0x07, 0x23, 0x3E, 0x02, 0x37, 0x33, -0x46, 0x24, 0x19, 0x1A, 0x25, 0x25, 0x1A, 0x19, 0x24, 0x71, -0x0D, 0x31, 0x18, 0x42, 0x0A, 0x13, 0x11, 0x05, 0x5E, 0x01, -0xE2, 0x26, 0x1E, 0x1E, 0x26, 0x24, 0x20, 0x20, 0xFE, 0xAB, -0x34, 0x81, 0x35, 0x26, 0x57, 0x55, 0x23, 0x00, 0x01, 0x00, -0x32, 0x00, 0x74, 0x02, 0x09, 0x02, 0x60, 0x00, 0x06, 0x00, -0x00, 0x25, 0x25, 0x35, 0x25, 0x15, 0x05, 0x05, 0x02, 0x09, -0xFE, 0x29, 0x01, 0xD7, 0xFE, 0x87, 0x01, 0x79, 0x74, 0xCF, -0x32, 0xEB, 0x4E, 0xB2, 0x9E, 0x00, 0x02, 0x00, 0x38, 0x00, -0xD9, 0x02, 0x02, 0x01, 0xE7, 0x00, 0x03, 0x00, 0x07, 0x00, -0x00, 0x13, 0x35, 0x21, 0x15, 0x05, 0x35, 0x21, 0x15, 0x38, -0x01, 0xCA, 0xFE, 0x36, 0x01, 0xCA, 0x01, 0xA0, 0x47, 0x47, -0xC7, 0x47, 0x47, 0x00, 0x01, 0x00, 0x32, 0x00, 0x74, 0x02, -0x09, 0x02, 0x60, 0x00, 0x06, 0x00, 0x00, 0x37, 0x25, 0x25, -0x35, 0x05, 0x15, 0x05, 0x32, 0x01, 0x79, 0xFE, 0x87, 0x01, -0xD7, 0xFE, 0x29, 0xC2, 0x9D, 0xB3, 0x4E, 0xEB, 0x32, 0xCF, -0x00, 0x02, 0x00, 0x0C, 0xFF, 0xF2, 0x01, 0x98, 0x02, 0xD4, -0x00, 0x1F, 0x00, 0x2B, 0x00, 0x00, 0x37, 0x34, 0x36, 0x36, -0x37, 0x3E, 0x02, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, -0x27, 0x36, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x06, -0x07, 0x0E, 0x02, 0x15, 0x15, 0x23, 0x07, 0x34, 0x36, 0x33, -0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x8C, 0x0F, -0x25, 0x20, 0x27, 0x2B, 0x12, 0x3E, 0x3B, 0x31, 0x4C, 0x23, -0x1F, 0x28, 0x61, 0x3C, 0x5F, 0x68, 0x1D, 0x35, 0x24, 0x21, -0x23, 0x0C, 0x46, 0x17, 0x23, 0x1B, 0x19, 0x24, 0x24, 0x19, -0x1B, 0x23, 0xE4, 0x26, 0x37, 0x32, 0x1B, 0x21, 0x2C, 0x2A, -0x1E, 0x30, 0x34, 0x19, 0x11, 0x46, 0x15, 0x1C, 0x5E, 0x51, -0x2D, 0x3F, 0x35, 0x1E, 0x1C, 0x2A, 0x29, 0x1D, 0x11, 0x93, -0x25, 0x1E, 0x1E, 0x25, 0x24, 0x20, 0x20, 0x00, 0x02, 0x00, -0x3A, 0xFF, 0xA7, 0x03, 0x49, 0x02, 0xCA, 0x00, 0x3F, 0x00, -0x4D, 0x00, 0x00, 0x01, 0x14, 0x0E, 0x02, 0x23, 0x22, 0x26, -0x27, 0x23, 0x06, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, -0x36, 0x33, 0x32, 0x16, 0x17, 0x07, 0x06, 0x14, 0x15, 0x14, -0x16, 0x33, 0x32, 0x36, 0x36, 0x35, 0x34, 0x26, 0x26, 0x23, -0x22, 0x06, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, -0x15, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x35, 0x34, 0x3E, -0x02, 0x33, 0x32, 0x16, 0x16, 0x05, 0x14, 0x16, 0x33, 0x32, -0x36, 0x37, 0x37, 0x26, 0x26, 0x23, 0x22, 0x06, 0x06, 0x03, -0x49, 0x15, 0x2C, 0x40, 0x2C, 0x2E, 0x35, 0x06, 0x05, 0x12, -0x46, 0x35, 0x4C, 0x53, 0x34, 0x5F, 0x41, 0x2C, 0x55, 0x18, -0x0A, 0x01, 0x25, 0x19, 0x1F, 0x2B, 0x17, 0x4B, 0x83, 0x53, -0x72, 0x9D, 0x51, 0x9C, 0x93, 0x3D, 0x6F, 0x2B, 0x2B, 0x6B, -0x41, 0x76, 0xA8, 0x59, 0x3A, 0x6E, 0x9D, 0x63, 0x68, 0xA2, -0x5D, 0xFE, 0x07, 0x33, 0x2B, 0x38, 0x31, 0x04, 0x06, 0x0D, -0x28, 0x15, 0x31, 0x3C, 0x1A, 0x01, 0x65, 0x2E, 0x58, 0x47, -0x2B, 0x35, 0x22, 0x25, 0x32, 0x66, 0x54, 0x42, 0x65, 0x3A, -0x0F, 0x09, 0xCB, 0x12, 0x0F, 0x03, 0x34, 0x22, 0x33, 0x55, -0x33, 0x5D, 0x81, 0x44, 0x5E, 0xA5, 0x6A, 0x94, 0x9E, 0x1B, -0x10, 0x44, 0x12, 0x17, 0x58, 0xA5, 0x74, 0x5D, 0x9F, 0x75, -0x41, 0x56, 0xA0, 0xAF, 0x40, 0x3A, 0x54, 0x43, 0x7D, 0x04, -0x06, 0x30, 0x4B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, -0x7E, 0x02, 0xCD, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x21, -0x27, 0x21, 0x07, 0x23, 0x01, 0x33, 0x01, 0x01, 0x2E, 0x02, -0x27, 0x06, 0x06, 0x07, 0x07, 0x33, 0x02, 0x21, 0x56, 0xFE, -0xE5, 0x55, 0x5B, 0x01, 0x17, 0x51, 0x01, 0x16, 0xFE, 0xE2, -0x03, 0x0E, 0x0D, 0x04, 0x07, 0x12, 0x06, 0x51, 0xE2, 0xDD, -0xDD, 0x02, 0xCD, 0xFD, 0x33, 0x02, 0x05, 0x08, 0x2A, 0x2D, -0x0C, 0x1F, 0x3B, 0x11, 0xD8, 0x00, 0x03, 0x00, 0x61, 0x00, -0x00, 0x02, 0x54, 0x02, 0xCA, 0x00, 0x10, 0x00, 0x19, 0x00, -0x22, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, -0x15, 0x1E, 0x02, 0x15, 0x14, 0x06, 0x23, 0x23, 0x11, 0x13, -0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x23, 0x15, 0x15, 0x11, -0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x01, 0x2D, 0x86, -0x89, 0x46, 0x42, 0x2D, 0x49, 0x2A, 0x85, 0x73, 0xFB, 0xDE, -0x5C, 0x44, 0x53, 0x5B, 0x76, 0x90, 0x5F, 0x4A, 0x4D, 0x63, -0x02, 0xCA, 0x4F, 0x62, 0x3F, 0x53, 0x0C, 0x05, 0x07, 0x26, -0x46, 0x38, 0x61, 0x6A, 0x02, 0xCA, 0xFE, 0xD0, 0x3B, 0x3A, -0x3B, 0x33, 0xE3, 0x4B, 0xFE, 0xFD, 0x4A, 0x3C, 0x38, 0x45, -0x00, 0x01, 0x00, 0x3D, 0xFF, 0xF6, 0x02, 0x59, 0x02, 0xD4, -0x00, 0x1A, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, -0x33, 0x32, 0x36, 0x37, 0x15, 0x06, 0x06, 0x23, 0x22, 0x26, -0x26, 0x35, 0x34, 0x36, 0x36, 0x33, 0x32, 0x17, 0x07, 0x26, -0x26, 0x01, 0x93, 0x73, 0x84, 0x7B, 0x7B, 0x2F, 0x54, 0x28, -0x28, 0x55, 0x3B, 0x6D, 0x92, 0x49, 0x4F, 0x9A, 0x6E, 0x71, -0x54, 0x24, 0x21, 0x51, 0x02, 0x85, 0x9A, 0x86, 0x85, 0x9B, -0x10, 0x0C, 0x4E, 0x0F, 0x0E, 0x5A, 0xA6, 0x70, 0x6C, 0xA5, -0x5D, 0x2A, 0x4C, 0x0F, 0x18, 0x00, 0x02, 0x00, 0x61, 0x00, -0x00, 0x02, 0x9D, 0x02, 0xCA, 0x00, 0x09, 0x00, 0x11, 0x00, -0x00, 0x01, 0x14, 0x06, 0x23, 0x23, 0x11, 0x33, 0x32, 0x16, -0x16, 0x07, 0x34, 0x26, 0x23, 0x23, 0x11, 0x33, 0x20, 0x02, -0x9D, 0xC5, 0xB0, 0xC7, 0xDC, 0x6C, 0x9E, 0x56, 0x5F, 0x8D, -0x81, 0x75, 0x61, 0x01, 0x22, 0x01, 0x6C, 0xB5, 0xB7, 0x02, -0xCA, 0x50, 0x9B, 0x76, 0x8F, 0x85, 0xFD, 0xD0, 0x00, 0x01, -0x00, 0x61, 0x00, 0x00, 0x01, 0xF0, 0x02, 0xCA, 0x00, 0x0B, -0x00, 0x00, 0x21, 0x21, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, -0x15, 0x21, 0x15, 0x21, 0x01, 0xF0, 0xFE, 0x71, 0x01, 0x8F, -0xFE, 0xCB, 0x01, 0x23, 0xFE, 0xDD, 0x01, 0x35, 0x02, 0xCA, -0x4F, 0xDF, 0x4E, 0xFF, 0x00, 0x01, 0x00, 0x61, 0x00, 0x00, -0x01, 0xF0, 0x02, 0xCA, 0x00, 0x09, 0x00, 0x00, 0x33, 0x23, -0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0xBB, 0x5A, -0x01, 0x8F, 0xFE, 0xCB, 0x01, 0x22, 0xFE, 0xDE, 0x02, 0xCA, -0x4F, 0xFD, 0x4F, 0x00, 0x01, 0x00, 0x3D, 0xFF, 0xF6, 0x02, -0x8E, 0x02, 0xD4, 0x00, 0x20, 0x00, 0x00, 0x01, 0x33, 0x11, -0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x35, 0x34, 0x36, 0x36, -0x33, 0x32, 0x16, 0x17, 0x07, 0x26, 0x26, 0x23, 0x22, 0x06, -0x15, 0x14, 0x16, 0x16, 0x33, 0x32, 0x36, 0x37, 0x35, 0x23, -0x01, 0x97, 0xF7, 0x3A, 0x76, 0x4B, 0x6F, 0x98, 0x4F, 0x58, -0xA5, 0x75, 0x3C, 0x6B, 0x2E, 0x22, 0x26, 0x5F, 0x33, 0x80, -0x8F, 0x37, 0x76, 0x60, 0x2F, 0x42, 0x1B, 0x9D, 0x01, 0x79, -0xFE, 0xA2, 0x13, 0x12, 0x59, 0xA5, 0x71, 0x70, 0xA4, 0x5B, -0x16, 0x14, 0x4E, 0x11, 0x18, 0x9A, 0x86, 0x55, 0x83, 0x49, -0x0A, 0x07, 0xD4, 0x00, 0x01, 0x00, 0x61, 0x00, 0x00, 0x02, -0x83, 0x02, 0xCA, 0x00, 0x0B, 0x00, 0x00, 0x21, 0x23, 0x11, -0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x02, -0x83, 0x5A, 0xFE, 0x92, 0x5A, 0x5A, 0x01, 0x6E, 0x5A, 0x01, -0x4D, 0xFE, 0xB3, 0x02, 0xCA, 0xFE, 0xD2, 0x01, 0x2E, 0x00, -0x01, 0x00, 0x28, 0x00, 0x00, 0x01, 0x2A, 0x02, 0xCA, 0x00, -0x0B, 0x00, 0x00, 0x21, 0x21, 0x35, 0x37, 0x11, 0x27, 0x35, -0x21, 0x15, 0x07, 0x11, 0x17, 0x01, 0x2A, 0xFE, 0xFE, 0x54, -0x54, 0x01, 0x02, 0x54, 0x54, 0x34, 0x13, 0x02, 0x3B, 0x14, -0x34, 0x34, 0x14, 0xFD, 0xC5, 0x13, 0x00, 0x01, 0xFF, 0xB2, -0xFF, 0x42, 0x00, 0xB6, 0x02, 0xCA, 0x00, 0x10, 0x00, 0x00, -0x07, 0x22, 0x26, 0x27, 0x35, 0x16, 0x16, 0x33, 0x32, 0x36, -0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x06, 0x04, 0x18, 0x24, -0x0E, 0x10, 0x24, 0x14, 0x19, 0x2D, 0x1C, 0x5A, 0x66, 0xBE, -0x07, 0x06, 0x4C, 0x04, 0x06, 0x14, 0x32, 0x2D, 0x02, 0xC6, -0xFD, 0x41, 0x67, 0x62, 0x00, 0x01, 0x00, 0x61, 0x00, 0x00, -0x02, 0x6B, 0x02, 0xCA, 0x00, 0x0E, 0x00, 0x00, 0x21, 0x23, -0x03, 0x07, 0x11, 0x23, 0x11, 0x33, 0x11, 0x36, 0x36, 0x37, -0x37, 0x33, 0x01, 0x02, 0x6B, 0x6A, 0xFD, 0x49, 0x5A, 0x5A, -0x1E, 0x3E, 0x1F, 0xC1, 0x69, 0xFE, 0xE5, 0x01, 0x55, 0x40, -0xFE, 0xEB, 0x02, 0xCA, 0xFE, 0xA0, 0x22, 0x44, 0x22, 0xD8, -0xFE, 0xC9, 0x00, 0x01, 0x00, 0x61, 0x00, 0x00, 0x01, 0xF3, -0x02, 0xCA, 0x00, 0x05, 0x00, 0x00, 0x33, 0x11, 0x33, 0x11, -0x21, 0x15, 0x61, 0x5A, 0x01, 0x38, 0x02, 0xCA, 0xFD, 0x86, -0x50, 0x00, 0x01, 0x00, 0x61, 0x00, 0x00, 0x03, 0x2A, 0x02, -0xCA, 0x00, 0x15, 0x00, 0x00, 0x21, 0x03, 0x23, 0x16, 0x16, -0x15, 0x11, 0x23, 0x11, 0x33, 0x13, 0x33, 0x13, 0x33, 0x11, -0x23, 0x11, 0x34, 0x36, 0x37, 0x23, 0x03, 0x01, 0x9C, 0xEB, -0x04, 0x03, 0x04, 0x53, 0x85, 0xDC, 0x04, 0xE0, 0x84, 0x59, -0x05, 0x02, 0x04, 0xEE, 0x02, 0x72, 0x1F, 0x69, 0x39, 0xFE, -0x4F, 0x02, 0xCA, 0xFD, 0xB7, 0x02, 0x49, 0xFD, 0x36, 0x01, -0xB7, 0x34, 0x66, 0x20, 0xFD, 0x8F, 0x00, 0x01, 0x00, 0x61, -0x00, 0x00, 0x02, 0x97, 0x02, 0xCA, 0x00, 0x12, 0x00, 0x00, -0x21, 0x23, 0x01, 0x23, 0x16, 0x16, 0x15, 0x11, 0x23, 0x11, -0x33, 0x01, 0x33, 0x2E, 0x02, 0x35, 0x11, 0x33, 0x02, 0x97, -0x69, 0xFE, 0x82, 0x04, 0x02, 0x06, 0x53, 0x68, 0x01, 0x7D, -0x04, 0x01, 0x03, 0x03, 0x54, 0x02, 0x51, 0x23, 0x68, 0x37, -0xFE, 0x71, 0x02, 0xCA, 0xFD, 0xB1, 0x10, 0x40, 0x4C, 0x20, -0x01, 0x93, 0x00, 0x02, 0x00, 0x3D, 0xFF, 0xF6, 0x02, 0xD0, -0x02, 0xD5, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x00, 0x01, 0x14, -0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x35, 0x34, 0x36, 0x36, -0x33, 0x32, 0x16, 0x16, 0x05, 0x14, 0x16, 0x33, 0x32, 0x36, -0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x02, 0xD0, 0x4B, 0x92, -0x6C, 0x6F, 0x93, 0x48, 0x48, 0x93, 0x70, 0x6B, 0x92, 0x4B, -0xFD, 0xCC, 0x72, 0x79, 0x7A, 0x70, 0x70, 0x79, 0x79, 0x73, -0x01, 0x66, 0x6F, 0xA5, 0x5C, 0x5C, 0xA6, 0x6F, 0x6E, 0xA4, -0x5C, 0x5B, 0xA5, 0x6F, 0x87, 0x9B, 0x9B, 0x87, 0x87, 0x99, -0x99, 0x00, 0x02, 0x00, 0x61, 0x00, 0x00, 0x02, 0x2A, 0x02, -0xCA, 0x00, 0x0B, 0x00, 0x14, 0x00, 0x00, 0x01, 0x32, 0x16, -0x15, 0x14, 0x06, 0x06, 0x23, 0x23, 0x11, 0x23, 0x11, 0x17, -0x23, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x01, 0x1E, -0x8C, 0x80, 0x35, 0x7D, 0x6B, 0x52, 0x5A, 0xB5, 0x5B, 0x48, -0x66, 0x64, 0x58, 0x02, 0xCA, 0x6E, 0x64, 0x3B, 0x67, 0x40, -0xFE, 0xEA, 0x02, 0xCA, 0x4D, 0xFE, 0xE6, 0x42, 0x4F, 0x45, -0x44, 0x00, 0x02, 0x00, 0x3D, 0xFF, 0x56, 0x02, 0xD0, 0x02, -0xD5, 0x00, 0x14, 0x00, 0x20, 0x00, 0x00, 0x01, 0x14, 0x06, -0x07, 0x17, 0x23, 0x27, 0x22, 0x06, 0x23, 0x22, 0x26, 0x26, -0x35, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x05, 0x14, -0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, -0x02, 0xD0, 0x69, 0x67, 0xAB, 0x81, 0x8A, 0x06, 0x0D, 0x06, -0x6F, 0x93, 0x48, 0x48, 0x93, 0x70, 0x6B, 0x92, 0x4B, 0xFD, -0xCC, 0x72, 0x79, 0x7A, 0x70, 0x70, 0x79, 0x79, 0x73, 0x01, -0x66, 0x83, 0xB8, 0x23, 0xB2, 0xA1, 0x01, 0x5C, 0xA6, 0x6F, -0x6E, 0xA4, 0x5C, 0x5B, 0xA5, 0x6F, 0x87, 0x9B, 0x9B, 0x87, -0x87, 0x99, 0x99, 0x00, 0x02, 0x00, 0x61, 0x00, 0x00, 0x02, -0x5F, 0x02, 0xCA, 0x00, 0x0E, 0x00, 0x17, 0x00, 0x00, 0x01, -0x32, 0x16, 0x15, 0x14, 0x06, 0x06, 0x07, 0x13, 0x23, 0x03, -0x23, 0x11, 0x23, 0x11, 0x17, 0x23, 0x11, 0x33, 0x32, 0x36, -0x35, 0x34, 0x26, 0x01, 0x26, 0x85, 0x7F, 0x2A, 0x41, 0x24, -0xC4, 0x69, 0xAD, 0x8E, 0x5A, 0xC0, 0x66, 0x6B, 0x57, 0x50, -0x54, 0x02, 0xCA, 0x65, 0x66, 0x39, 0x4C, 0x2D, 0x0D, 0xFE, -0xC0, 0x01, 0x27, 0xFE, 0xD9, 0x02, 0xCA, 0x4E, 0xFE, 0xF7, -0x45, 0x43, 0x46, 0x3B, 0x00, 0x01, 0x00, 0x33, 0xFF, 0xF6, -0x01, 0xF6, 0x02, 0xD4, 0x00, 0x29, 0x00, 0x00, 0x25, 0x14, -0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x16, 0x16, 0x33, 0x32, -0x36, 0x35, 0x34, 0x26, 0x26, 0x27, 0x26, 0x26, 0x35, 0x34, -0x36, 0x36, 0x33, 0x32, 0x16, 0x17, 0x07, 0x26, 0x26, 0x23, -0x22, 0x06, 0x15, 0x14, 0x16, 0x16, 0x17, 0x1E, 0x02, 0x01, -0xF6, 0x8A, 0x75, 0x3C, 0x66, 0x22, 0x24, 0x6B, 0x39, 0x50, -0x51, 0x1E, 0x49, 0x41, 0x5B, 0x5D, 0x3A, 0x67, 0x43, 0x3B, -0x62, 0x28, 0x1C, 0x25, 0x57, 0x2F, 0x43, 0x44, 0x1E, 0x44, -0x3A, 0x3F, 0x57, 0x2D, 0xBF, 0x5F, 0x6A, 0x12, 0x10, 0x56, -0x10, 0x1A, 0x3E, 0x35, 0x23, 0x30, 0x29, 0x17, 0x21, 0x60, -0x53, 0x39, 0x51, 0x2C, 0x16, 0x12, 0x4D, 0x10, 0x16, 0x39, -0x2F, 0x24, 0x30, 0x26, 0x16, 0x17, 0x35, 0x4A, 0x00, 0x01, -0x00, 0x0A, 0x00, 0x00, 0x02, 0x21, 0x02, 0xCA, 0x00, 0x07, -0x00, 0x00, 0x21, 0x23, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, -0x01, 0x43, 0x5A, 0xDF, 0x02, 0x17, 0xDE, 0x02, 0x7B, 0x4F, -0x4F, 0x00, 0x01, 0x00, 0x5A, 0xFF, 0xF6, 0x02, 0x80, 0x02, -0xCA, 0x00, 0x12, 0x00, 0x00, 0x25, 0x14, 0x06, 0x06, 0x23, -0x22, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x16, 0x33, 0x32, -0x36, 0x35, 0x11, 0x33, 0x02, 0x80, 0x3C, 0x7B, 0x5F, 0x85, -0x8B, 0x5A, 0x5D, 0x5E, 0x61, 0x57, 0x59, 0xFC, 0x4A, 0x77, -0x45, 0x91, 0x77, 0x01, 0xCC, 0xFE, 0x31, 0x57, 0x60, 0x67, -0x51, 0x01, 0xCE, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, -0x58, 0x02, 0xCA, 0x00, 0x0C, 0x00, 0x00, 0x01, 0x03, 0x23, -0x03, 0x33, 0x13, 0x16, 0x16, 0x17, 0x36, 0x36, 0x37, 0x13, -0x02, 0x58, 0xFF, 0x5A, 0xFF, 0x5E, 0xA1, 0x10, 0x16, 0x07, -0x07, 0x16, 0x10, 0xA0, 0x02, 0xCA, 0xFD, 0x36, 0x02, 0xCA, -0xFE, 0x36, 0x2C, 0x4D, 0x23, 0x23, 0x4E, 0x2D, 0x01, 0xC8, -0x00, 0x01, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x95, 0x02, 0xCA, -0x00, 0x1F, 0x00, 0x00, 0x01, 0x03, 0x23, 0x03, 0x2E, 0x02, -0x27, 0x06, 0x06, 0x07, 0x03, 0x23, 0x03, 0x33, 0x13, 0x16, -0x16, 0x17, 0x36, 0x36, 0x37, 0x13, 0x33, 0x13, 0x16, 0x16, -0x17, 0x36, 0x36, 0x37, 0x13, 0x03, 0x95, 0xBE, 0x5B, 0x8B, -0x08, 0x10, 0x0A, 0x02, 0x01, 0x13, 0x0E, 0x87, 0x5B, 0xBD, -0x5E, 0x6F, 0x0C, 0x11, 0x05, 0x05, 0x14, 0x0D, 0x7E, 0x5D, -0x83, 0x0E, 0x14, 0x05, 0x05, 0x12, 0x0C, 0x6E, 0x02, 0xCA, -0xFD, 0x36, 0x01, 0xD4, 0x1D, 0x3A, 0x2D, 0x09, 0x0D, 0x55, -0x2E, 0xFE, 0x2F, 0x02, 0xCA, 0xFE, 0x4C, 0x2E, 0x56, 0x26, -0x27, 0x5C, 0x2C, 0x01, 0xAF, 0xFE, 0x4E, 0x2E, 0x5B, 0x23, -0x25, 0x57, 0x2F, 0x01, 0xB3, 0x00, 0x01, 0x00, 0x04, 0x00, -0x00, 0x02, 0x46, 0x02, 0xCA, 0x00, 0x0B, 0x00, 0x00, 0x21, -0x23, 0x03, 0x03, 0x23, 0x13, 0x03, 0x33, 0x13, 0x13, 0x33, -0x03, 0x02, 0x46, 0x66, 0xBD, 0xC0, 0x5F, 0xED, 0xDE, 0x64, -0xAF, 0xB0, 0x5F, 0xDD, 0x01, 0x36, 0xFE, 0xCA, 0x01, 0x74, -0x01, 0x56, 0xFE, 0xE8, 0x01, 0x18, 0xFE, 0xAC, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x02, 0x36, 0x02, 0xCA, 0x00, 0x08, -0x00, 0x00, 0x01, 0x13, 0x33, 0x03, 0x11, 0x23, 0x11, 0x03, -0x33, 0x01, 0x1B, 0xBA, 0x61, 0xEE, 0x5A, 0xEE, 0x62, 0x01, -0x6B, 0x01, 0x5F, 0xFE, 0x4B, 0xFE, 0xEB, 0x01, 0x11, 0x01, -0xB9, 0x00, 0x01, 0x00, 0x26, 0x00, 0x00, 0x02, 0x15, 0x02, -0xCA, 0x00, 0x09, 0x00, 0x00, 0x21, 0x21, 0x35, 0x01, 0x21, -0x35, 0x21, 0x15, 0x01, 0x21, 0x02, 0x15, 0xFE, 0x11, 0x01, -0x78, 0xFE, 0x94, 0x01, 0xD9, 0xFE, 0x88, 0x01, 0x82, 0x44, -0x02, 0x36, 0x50, 0x44, 0xFD, 0xCA, 0x00, 0x01, 0x00, 0x50, -0xFF, 0x62, 0x01, 0x30, 0x02, 0xCA, 0x00, 0x07, 0x00, 0x00, -0x05, 0x23, 0x11, 0x33, 0x15, 0x23, 0x11, 0x33, 0x01, 0x30, -0xE0, 0xE0, 0x8A, 0x8A, 0x9E, 0x03, 0x68, 0x48, 0xFD, 0x28, -0x00, 0x01, 0x00, 0x0A, 0x00, 0x00, 0x01, 0x6B, 0x02, 0xCA, -0x00, 0x03, 0x00, 0x00, 0x13, 0x01, 0x23, 0x01, 0x60, 0x01, -0x0B, 0x57, 0xFE, 0xF6, 0x02, 0xCA, 0xFD, 0x36, 0x02, 0xCA, -0x00, 0x01, 0x00, 0x19, 0xFF, 0x62, 0x00, 0xF9, 0x02, 0xCA, -0x00, 0x07, 0x00, 0x00, 0x17, 0x33, 0x11, 0x23, 0x35, 0x33, -0x11, 0x23, 0x19, 0x8A, 0x8A, 0xE0, 0xE0, 0x56, 0x02, 0xD8, -0x48, 0xFC, 0x98, 0x00, 0x01, 0x00, 0x26, 0x01, 0x0B, 0x02, -0x16, 0x02, 0xCF, 0x00, 0x06, 0x00, 0x00, 0x13, 0x13, 0x33, -0x13, 0x23, 0x03, 0x03, 0x26, 0xD4, 0x32, 0xEA, 0x4E, 0xB4, -0xA0, 0x01, 0x0B, 0x01, 0xC4, 0xFE, 0x3C, 0x01, 0x67, 0xFE, -0x99, 0x00, 0x01, 0xFF, 0xFE, 0xFF, 0x66, 0x01, 0xBE, 0xFF, -0xA6, 0x00, 0x03, 0x00, 0x00, 0x05, 0x21, 0x35, 0x21, 0x01, -0xBE, 0xFE, 0x40, 0x01, 0xC0, 0x9A, 0x40, 0x00, 0x01, 0x00, -0x28, 0x02, 0x5E, 0x00, 0xF1, 0x02, 0xFE, 0x00, 0x0B, 0x00, -0x00, 0x13, 0x1E, 0x02, 0x17, 0x15, 0x23, 0x2E, 0x02, 0x27, -0x35, 0x91, 0x0B, 0x21, 0x25, 0x0F, 0x3B, 0x17, 0x3A, 0x31, -0x0C, 0x02, 0xFE, 0x16, 0x37, 0x34, 0x13, 0x0C, 0x12, 0x39, -0x39, 0x12, 0x0A, 0x00, 0x02, 0x00, 0x2E, 0xFF, 0xF6, 0x01, -0xE0, 0x02, 0x21, 0x00, 0x1B, 0x00, 0x26, 0x00, 0x00, 0x01, -0x32, 0x16, 0x15, 0x11, 0x23, 0x27, 0x23, 0x06, 0x06, 0x23, -0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x37, 0x35, 0x34, 0x26, -0x23, 0x22, 0x06, 0x07, 0x27, 0x36, 0x36, 0x13, 0x06, 0x06, -0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x35, 0x01, 0x20, -0x62, 0x5E, 0x40, 0x11, 0x04, 0x23, 0x4D, 0x44, 0x49, 0x60, -0x7E, 0x83, 0x5B, 0x3A, 0x35, 0x2A, 0x4C, 0x21, 0x1B, 0x23, -0x60, 0x4E, 0x64, 0x4D, 0x37, 0x2B, 0x44, 0x5A, 0x02, 0x21, -0x56, 0x5E, 0xFE, 0x93, 0x4C, 0x2C, 0x2A, 0x4D, 0x52, 0x50, -0x57, 0x04, 0x03, 0x20, 0x43, 0x34, 0x19, 0x10, 0x42, 0x13, -0x1B, 0xFE, 0xE2, 0x04, 0x38, 0x33, 0x2D, 0x2A, 0x4B, 0x4E, -0x30, 0x00, 0x02, 0x00, 0x55, 0xFF, 0xF6, 0x02, 0x30, 0x02, -0xF8, 0x00, 0x15, 0x00, 0x21, 0x00, 0x00, 0x13, 0x14, 0x06, -0x07, 0x33, 0x36, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, -0x23, 0x22, 0x26, 0x27, 0x23, 0x07, 0x23, 0x11, 0x33, 0x13, -0x22, 0x06, 0x15, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, -0x34, 0xAD, 0x03, 0x02, 0x05, 0x17, 0x50, 0x3F, 0x64, 0x79, -0x7A, 0x63, 0x3F, 0x50, 0x17, 0x07, 0x12, 0x3F, 0x58, 0x97, -0x55, 0x42, 0x41, 0x58, 0x48, 0x47, 0x02, 0x3F, 0x22, 0x3B, -0x11, 0x22, 0x2E, 0x8B, 0x8A, 0x8A, 0x8C, 0x2E, 0x20, 0x44, -0x02, 0xF8, 0xFE, 0xE0, 0x62, 0x67, 0x04, 0x63, 0x69, 0x6A, -0x64, 0xCB, 0x00, 0x01, 0x00, 0x37, 0xFF, 0xF6, 0x01, 0xBF, -0x02, 0x22, 0x00, 0x1A, 0x00, 0x00, 0x05, 0x22, 0x26, 0x26, -0x35, 0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x17, 0x07, 0x26, -0x26, 0x23, 0x22, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, -0x15, 0x06, 0x06, 0x01, 0x2C, 0x47, 0x6F, 0x3F, 0x42, 0x71, -0x48, 0x29, 0x4C, 0x18, 0x1B, 0x18, 0x40, 0x1C, 0x9E, 0x4D, -0x4C, 0x2C, 0x43, 0x1C, 0x1B, 0x41, 0x0A, 0x3A, 0x7A, 0x5F, -0x63, 0x7C, 0x3A, 0x11, 0x0C, 0x49, 0x09, 0x10, 0xCB, 0x61, -0x67, 0x12, 0x0D, 0x4E, 0x0E, 0x0F, 0x00, 0x02, 0x00, 0x37, -0xFF, 0xF6, 0x02, 0x12, 0x02, 0xF8, 0x00, 0x15, 0x00, 0x22, -0x00, 0x00, 0x05, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, -0x16, 0x17, 0x33, 0x26, 0x26, 0x35, 0x35, 0x33, 0x11, 0x23, -0x27, 0x23, 0x06, 0x06, 0x27, 0x32, 0x36, 0x35, 0x35, 0x34, -0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x01, 0x13, 0x64, -0x78, 0x79, 0x64, 0x3E, 0x4F, 0x19, 0x06, 0x01, 0x05, 0x58, -0x47, 0x0D, 0x04, 0x18, 0x50, 0x31, 0x55, 0x45, 0x42, 0x59, -0x47, 0x47, 0x47, 0x0A, 0x8B, 0x8A, 0x8A, 0x8D, 0x2E, 0x21, -0x0D, 0x33, 0x0F, 0xD6, 0xFD, 0x08, 0x48, 0x22, 0x30, 0x49, -0x5D, 0x5E, 0x10, 0x64, 0x6B, 0x71, 0x5F, 0x60, 0x6A, 0x00, -0x02, 0x00, 0x37, 0xFF, 0xF6, 0x02, 0x01, 0x02, 0x22, 0x00, -0x17, 0x00, 0x1E, 0x00, 0x00, 0x01, 0x32, 0x16, 0x16, 0x15, -0x15, 0x21, 0x16, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x06, -0x06, 0x23, 0x22, 0x26, 0x26, 0x35, 0x34, 0x36, 0x36, 0x17, -0x22, 0x06, 0x07, 0x21, 0x26, 0x26, 0x01, 0x24, 0x45, 0x63, -0x35, 0xFE, 0x91, 0x02, 0x59, 0x50, 0x33, 0x4F, 0x2A, 0x29, -0x50, 0x37, 0x4C, 0x75, 0x41, 0x3B, 0x6B, 0x46, 0x3F, 0x49, -0x07, 0x01, 0x11, 0x01, 0x3E, 0x02, 0x22, 0x3C, 0x6D, 0x49, -0x35, 0x5B, 0x5F, 0x13, 0x12, 0x4D, 0x12, 0x11, 0x3E, 0x7B, -0x59, 0x58, 0x7E, 0x44, 0x48, 0x51, 0x48, 0x44, 0x55, 0x00, -0x01, 0x00, 0x0F, 0x00, 0x00, 0x01, 0x83, 0x02, 0xFD, 0x00, -0x17, 0x00, 0x00, 0x01, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, -0x37, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x07, 0x26, -0x26, 0x23, 0x22, 0x06, 0x15, 0x15, 0x33, 0x01, 0x4C, 0x87, -0x58, 0x5E, 0x5E, 0x5C, 0x52, 0x20, 0x35, 0x13, 0x17, 0x10, -0x2A, 0x16, 0x2C, 0x2B, 0x87, 0x01, 0xD4, 0xFE, 0x2C, 0x01, -0xD4, 0x29, 0x1E, 0x1F, 0x68, 0x5B, 0x0B, 0x07, 0x45, 0x05, -0x0A, 0x3B, 0x3F, 0x23, 0x00, 0x02, 0x00, 0x37, 0xFF, 0x10, -0x02, 0x12, 0x02, 0x22, 0x00, 0x1E, 0x00, 0x2B, 0x00, 0x00, -0x01, 0x32, 0x16, 0x17, 0x33, 0x37, 0x33, 0x11, 0x14, 0x06, -0x23, 0x22, 0x27, 0x35, 0x16, 0x33, 0x32, 0x36, 0x35, 0x35, -0x34, 0x36, 0x37, 0x23, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, -0x36, 0x17, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, -0x35, 0x35, 0x34, 0x26, 0x01, 0x13, 0x35, 0x55, 0x1E, 0x05, -0x0C, 0x46, 0x75, 0x7B, 0x76, 0x4B, 0x4F, 0x77, 0x45, 0x4F, -0x02, 0x01, 0x04, 0x36, 0x70, 0x68, 0x75, 0x75, 0x73, 0x43, -0x4A, 0x49, 0x46, 0x51, 0x4A, 0x4C, 0x02, 0x22, 0x28, 0x29, -0x47, 0xFD, 0xDF, 0x73, 0x74, 0x22, 0x51, 0x2A, 0x51, 0x46, -0x15, 0x0C, 0x2D, 0x09, 0x51, 0x92, 0x83, 0x80, 0x97, 0x4A, -0x6B, 0x63, 0x63, 0x69, 0x57, 0x61, 0x15, 0x6E, 0x5F, 0x00, -0x01, 0x00, 0x55, 0x00, 0x00, 0x02, 0x19, 0x02, 0xF8, 0x00, -0x15, 0x00, 0x00, 0x13, 0x14, 0x07, 0x33, 0x36, 0x36, 0x33, -0x32, 0x16, 0x15, 0x11, 0x23, 0x11, 0x34, 0x23, 0x22, 0x06, -0x15, 0x11, 0x23, 0x11, 0x33, 0xAD, 0x05, 0x06, 0x1A, 0x59, -0x34, 0x62, 0x62, 0x57, 0x78, 0x5A, 0x43, 0x58, 0x58, 0x02, -0x19, 0x28, 0x23, 0x29, 0x2A, 0x5D, 0x67, 0xFE, 0xA3, 0x01, -0x57, 0x81, 0x65, 0x5E, 0xFE, 0xEB, 0x02, 0xF8, 0x00, 0x02, -0x00, 0x4E, 0x00, 0x00, 0x00, 0xB5, 0x02, 0xE1, 0x00, 0x0B, -0x00, 0x0F, 0x00, 0x00, 0x13, 0x32, 0x16, 0x15, 0x14, 0x06, -0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x17, 0x11, 0x23, 0x11, -0x82, 0x14, 0x1F, 0x1F, 0x14, 0x16, 0x1E, 0x1E, 0x41, 0x58, -0x02, 0xE1, 0x1B, 0x1D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1B, -0xC9, 0xFD, 0xE8, 0x02, 0x18, 0x00, 0x02, 0xFF, 0xC9, 0xFF, -0x10, 0x00, 0xB5, 0x02, 0xE1, 0x00, 0x0B, 0x00, 0x1B, 0x00, -0x00, 0x13, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, -0x23, 0x22, 0x26, 0x03, 0x22, 0x26, 0x27, 0x35, 0x16, 0x16, -0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x06, 0x4E, -0x1E, 0x16, 0x14, 0x1F, 0x1F, 0x14, 0x16, 0x1E, 0x38, 0x19, -0x26, 0x0E, 0x0F, 0x20, 0x13, 0x20, 0x2A, 0x58, 0x48, 0x02, -0xA9, 0x1D, 0x1B, 0x1B, 0x1D, 0x1C, 0x1C, 0x1C, 0xFC, 0x83, -0x07, 0x05, 0x47, 0x04, 0x06, 0x23, 0x31, 0x02, 0x6B, 0xFD, -0x98, 0x4B, 0x55, 0x00, 0x01, 0x00, 0x55, 0x00, 0x00, 0x02, -0x0D, 0x02, 0xF8, 0x00, 0x13, 0x00, 0x00, 0x13, 0x14, 0x06, -0x07, 0x33, 0x3E, 0x02, 0x37, 0x37, 0x33, 0x07, 0x13, 0x23, -0x27, 0x07, 0x15, 0x23, 0x11, 0x33, 0xAC, 0x03, 0x01, 0x04, -0x06, 0x18, 0x19, 0x09, 0xAB, 0x67, 0xD9, 0xE8, 0x6A, 0xBA, -0x3D, 0x57, 0x57, 0x01, 0x6B, 0x10, 0x34, 0x13, 0x08, 0x1E, -0x1F, 0x0A, 0xB5, 0xE5, 0xFE, 0xCD, 0xFA, 0x35, 0xC5, 0x02, -0xF8, 0x00, 0x01, 0x00, 0x55, 0x00, 0x00, 0x00, 0xAD, 0x02, -0xF8, 0x00, 0x03, 0x00, 0x00, 0x33, 0x23, 0x11, 0x33, 0xAD, -0x58, 0x58, 0x02, 0xF8, 0x00, 0x01, 0x00, 0x55, 0x00, 0x00, -0x03, 0x56, 0x02, 0x22, 0x00, 0x21, 0x00, 0x00, 0x01, 0x32, -0x16, 0x15, 0x11, 0x23, 0x11, 0x34, 0x23, 0x22, 0x06, 0x15, -0x11, 0x23, 0x11, 0x34, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, -0x11, 0x33, 0x17, 0x33, 0x36, 0x36, 0x33, 0x32, 0x17, 0x33, -0x36, 0x36, 0x02, 0xA1, 0x5B, 0x5A, 0x57, 0x6D, 0x4E, 0x43, -0x57, 0x6E, 0x51, 0x3E, 0x58, 0x47, 0x0D, 0x05, 0x19, 0x55, -0x30, 0x7E, 0x26, 0x05, 0x1B, 0x5D, 0x02, 0x22, 0x5D, 0x68, -0xFE, 0xA3, 0x01, 0x59, 0x7F, 0x5A, 0x56, 0xFE, 0xD8, 0x01, -0x59, 0x7F, 0x64, 0x5E, 0xFE, 0xEA, 0x02, 0x18, 0x49, 0x2A, -0x29, 0x5A, 0x2E, 0x2C, 0x00, 0x01, 0x00, 0x55, 0x00, 0x00, -0x02, 0x19, 0x02, 0x22, 0x00, 0x13, 0x00, 0x00, 0x01, 0x32, -0x16, 0x15, 0x11, 0x23, 0x11, 0x34, 0x23, 0x22, 0x06, 0x15, -0x11, 0x23, 0x11, 0x33, 0x17, 0x33, 0x36, 0x36, 0x01, 0x57, -0x60, 0x62, 0x57, 0x78, 0x59, 0x44, 0x58, 0x47, 0x0D, 0x05, -0x1A, 0x5C, 0x02, 0x22, 0x5D, 0x68, 0xFE, 0xA3, 0x01, 0x57, -0x81, 0x64, 0x5E, 0xFE, 0xEA, 0x02, 0x18, 0x49, 0x2A, 0x29, -0x00, 0x02, 0x00, 0x37, 0xFF, 0xF6, 0x02, 0x27, 0x02, 0x22, -0x00, 0x0D, 0x00, 0x19, 0x00, 0x00, 0x01, 0x14, 0x06, 0x23, -0x22, 0x26, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x16, -0x05, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, -0x22, 0x06, 0x02, 0x27, 0x87, 0x73, 0x47, 0x6F, 0x40, 0x86, -0x73, 0x49, 0x6F, 0x3F, 0xFE, 0x6B, 0x4B, 0x52, 0x51, 0x4C, -0x4C, 0x52, 0x52, 0x4A, 0x01, 0x0D, 0x85, 0x92, 0x41, 0x7D, -0x59, 0x85, 0x90, 0x41, 0x7B, 0x59, 0x5F, 0x6F, 0x6F, 0x5F, -0x5F, 0x6C, 0x6C, 0x00, 0x02, 0x00, 0x55, 0xFF, 0x10, 0x02, -0x30, 0x02, 0x22, 0x00, 0x15, 0x00, 0x23, 0x00, 0x00, 0x01, -0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x23, -0x16, 0x16, 0x15, 0x15, 0x23, 0x11, 0x33, 0x17, 0x33, 0x36, -0x36, 0x17, 0x22, 0x06, 0x07, 0x15, 0x14, 0x16, 0x33, 0x32, -0x36, 0x36, 0x35, 0x34, 0x26, 0x01, 0x54, 0x63, 0x79, 0x79, -0x64, 0x3E, 0x51, 0x17, 0x06, 0x02, 0x04, 0x58, 0x48, 0x0C, -0x04, 0x18, 0x4E, 0x31, 0x52, 0x43, 0x02, 0x41, 0x58, 0x31, -0x3F, 0x1F, 0x47, 0x02, 0x22, 0x8A, 0x8B, 0x89, 0x8E, 0x2F, -0x1F, 0x11, 0x34, 0x13, 0xDC, 0x03, 0x08, 0x49, 0x23, 0x30, -0x4A, 0x5C, 0x5E, 0x11, 0x63, 0x6B, 0x36, 0x5D, 0x3C, 0x5C, -0x6E, 0x00, 0x02, 0x00, 0x37, 0xFF, 0x10, 0x02, 0x12, 0x02, -0x22, 0x00, 0x15, 0x00, 0x22, 0x00, 0x00, 0x05, 0x34, 0x36, -0x37, 0x23, 0x06, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, -0x33, 0x32, 0x16, 0x17, 0x33, 0x37, 0x33, 0x11, 0x23, 0x03, -0x32, 0x36, 0x37, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, -0x14, 0x16, 0x01, 0xBA, 0x02, 0x03, 0x06, 0x17, 0x51, 0x40, -0x61, 0x79, 0x7B, 0x62, 0x3F, 0x50, 0x18, 0x04, 0x0D, 0x46, -0x58, 0x98, 0x53, 0x45, 0x01, 0x44, 0x57, 0x48, 0x46, 0x47, -0x0B, 0x12, 0x30, 0x11, 0x22, 0x30, 0x8B, 0x8A, 0x8A, 0x8D, -0x30, 0x23, 0x49, 0xFC, 0xF8, 0x01, 0x2F, 0x5B, 0x5E, 0x12, -0x66, 0x69, 0x71, 0x5F, 0x5F, 0x6B, 0x00, 0x01, 0x00, 0x55, -0x00, 0x00, 0x01, 0x8E, 0x02, 0x22, 0x00, 0x13, 0x00, 0x00, -0x01, 0x32, 0x16, 0x17, 0x07, 0x26, 0x26, 0x23, 0x22, 0x06, -0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x17, 0x33, 0x36, 0x36, -0x01, 0x4F, 0x0F, 0x23, 0x0D, 0x0B, 0x0D, 0x1F, 0x0E, 0x29, -0x48, 0x2B, 0x58, 0x48, 0x0A, 0x04, 0x1A, 0x52, 0x02, 0x22, -0x03, 0x03, 0x51, 0x03, 0x04, 0x2D, 0x51, 0x36, 0xFE, 0xE2, -0x02, 0x18, 0x62, 0x2C, 0x40, 0x00, 0x01, 0x00, 0x33, 0xFF, -0xF6, 0x01, 0xB2, 0x02, 0x22, 0x00, 0x29, 0x00, 0x00, 0x25, -0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x16, 0x16, 0x33, -0x32, 0x36, 0x35, 0x34, 0x26, 0x26, 0x27, 0x2E, 0x02, 0x35, -0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x07, 0x26, 0x26, 0x23, -0x22, 0x06, 0x15, 0x14, 0x16, 0x16, 0x17, 0x1E, 0x02, 0x01, -0xB2, 0x74, 0x62, 0x38, 0x51, 0x1F, 0x20, 0x5B, 0x2F, 0x43, -0x3C, 0x16, 0x39, 0x35, 0x34, 0x4A, 0x28, 0x6F, 0x5A, 0x31, -0x55, 0x25, 0x1E, 0x22, 0x4A, 0x27, 0x36, 0x39, 0x1A, 0x3D, -0x33, 0x33, 0x48, 0x26, 0x94, 0x4E, 0x50, 0x12, 0x10, 0x50, -0x10, 0x1B, 0x2B, 0x24, 0x14, 0x20, 0x20, 0x14, 0x14, 0x28, -0x38, 0x2C, 0x44, 0x4A, 0x13, 0x11, 0x46, 0x0E, 0x14, 0x23, -0x1E, 0x16, 0x1F, 0x1D, 0x14, 0x13, 0x28, 0x39, 0x00, 0x01, -0x00, 0x10, 0xFF, 0xF6, 0x01, 0x53, 0x02, 0x93, 0x00, 0x18, -0x00, 0x00, 0x25, 0x32, 0x36, 0x37, 0x15, 0x06, 0x06, 0x23, -0x22, 0x26, 0x26, 0x35, 0x11, 0x23, 0x35, 0x37, 0x37, 0x33, -0x15, 0x33, 0x15, 0x23, 0x11, 0x14, 0x16, 0x01, 0x08, 0x14, -0x2A, 0x0D, 0x0E, 0x34, 0x18, 0x2A, 0x47, 0x2C, 0x4C, 0x4D, -0x23, 0x34, 0x9B, 0x9B, 0x2F, 0x3E, 0x07, 0x04, 0x43, 0x07, -0x09, 0x1D, 0x48, 0x41, 0x01, 0x38, 0x2A, 0x23, 0x72, 0x7B, -0x44, 0xFE, 0xCA, 0x31, 0x2F, 0x00, 0x01, 0x00, 0x4F, 0xFF, -0xF6, 0x02, 0x15, 0x02, 0x18, 0x00, 0x13, 0x00, 0x00, 0x01, -0x11, 0x23, 0x27, 0x23, 0x06, 0x06, 0x23, 0x22, 0x26, 0x35, -0x11, 0x33, 0x11, 0x14, 0x33, 0x32, 0x36, 0x35, 0x11, 0x02, -0x15, 0x48, 0x0D, 0x04, 0x1A, 0x5C, 0x34, 0x61, 0x62, 0x59, -0x77, 0x59, 0x45, 0x02, 0x18, 0xFD, 0xE8, 0x47, 0x2A, 0x27, -0x5D, 0x66, 0x01, 0x5F, 0xFE, 0xA7, 0x80, 0x64, 0x5E, 0x01, -0x17, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x02, -0x18, 0x00, 0x0F, 0x00, 0x00, 0x33, 0x03, 0x33, 0x13, 0x1E, -0x02, 0x17, 0x33, 0x3E, 0x02, 0x37, 0x13, 0x33, 0x03, 0xCB, -0xCB, 0x5E, 0x72, 0x08, 0x12, 0x0E, 0x03, 0x04, 0x04, 0x0F, -0x13, 0x07, 0x72, 0x5E, 0xCC, 0x02, 0x18, 0xFE, 0xC4, 0x16, -0x36, 0x31, 0x11, 0x11, 0x32, 0x36, 0x15, 0x01, 0x3C, 0xFD, -0xE8, 0x00, 0x01, 0x00, 0x0B, 0x00, 0x01, 0x03, 0x07, 0x02, -0x19, 0x00, 0x22, 0x00, 0x00, 0x01, 0x26, 0x26, 0x27, 0x23, -0x06, 0x06, 0x07, 0x03, 0x23, 0x03, 0x33, 0x13, 0x16, 0x16, -0x17, 0x33, 0x3E, 0x02, 0x37, 0x13, 0x33, 0x13, 0x16, 0x16, -0x17, 0x33, 0x36, 0x36, 0x37, 0x13, 0x33, 0x03, 0x23, 0x01, -0xAF, 0x0D, 0x13, 0x05, 0x04, 0x04, 0x12, 0x0E, 0x60, 0x64, -0x93, 0x5B, 0x4A, 0x0B, 0x14, 0x04, 0x04, 0x04, 0x0B, 0x0E, -0x07, 0x5F, 0x60, 0x5C, 0x0B, 0x15, 0x04, 0x04, 0x03, 0x15, -0x0C, 0x4B, 0x5A, 0x95, 0x67, 0x01, 0x2F, 0x29, 0x4F, 0x16, -0x16, 0x4F, 0x2A, 0xFE, 0xD3, 0x02, 0x18, 0xFE, 0xE2, 0x2B, -0x58, 0x1D, 0x11, 0x32, 0x37, 0x16, 0x01, 0x2E, 0xFE, 0xD2, -0x22, 0x50, 0x1D, 0x19, 0x58, 0x2E, 0x01, 0x1E, 0xFD, 0xE8, -0x00, 0x01, 0x00, 0x12, 0x00, 0x00, 0x01, 0xFF, 0x02, 0x18, -0x00, 0x0B, 0x00, 0x00, 0x13, 0x03, 0x33, 0x17, 0x37, 0x33, -0x03, 0x13, 0x23, 0x27, 0x07, 0x23, 0xD4, 0xB9, 0x64, 0x8A, -0x89, 0x63, 0xB9, 0xC3, 0x64, 0x92, 0x94, 0x63, 0x01, 0x12, -0x01, 0x06, 0xCA, 0xCA, 0xFE, 0xFA, 0xFE, 0xEE, 0xD6, 0xD6, -0x00, 0x01, 0x00, 0x01, 0xFF, 0x10, 0x01, 0xFE, 0x02, 0x18, -0x00, 0x1A, 0x00, 0x00, 0x13, 0x33, 0x13, 0x16, 0x16, 0x17, -0x33, 0x36, 0x36, 0x37, 0x13, 0x33, 0x03, 0x06, 0x06, 0x23, -0x22, 0x26, 0x27, 0x35, 0x16, 0x16, 0x33, 0x32, 0x36, 0x37, -0x37, 0x01, 0x5E, 0x74, 0x0F, 0x18, 0x06, 0x04, 0x06, 0x1A, -0x0E, 0x6D, 0x5F, 0xE7, 0x1C, 0x59, 0x4E, 0x18, 0x24, 0x0D, -0x0B, 0x1F, 0x11, 0x2E, 0x39, 0x10, 0x1C, 0x02, 0x18, 0xFE, -0xCF, 0x28, 0x49, 0x21, 0x19, 0x51, 0x29, 0x01, 0x30, 0xFD, -0x9E, 0x4C, 0x5A, 0x05, 0x03, 0x46, 0x02, 0x04, 0x34, 0x2B, -0x47, 0x00, 0x01, 0x00, 0x27, 0x00, 0x00, 0x01, 0xAF, 0x02, -0x18, 0x00, 0x09, 0x00, 0x00, 0x21, 0x21, 0x35, 0x01, 0x21, -0x35, 0x21, 0x15, 0x01, 0x21, 0x01, 0xAF, 0xFE, 0x78, 0x01, -0x20, 0xFE, 0xF1, 0x01, 0x70, 0xFE, 0xE4, 0x01, 0x23, 0x3A, -0x01, 0x9A, 0x44, 0x42, 0xFE, 0x6E, 0x00, 0x01, 0x00, 0x1C, -0xFF, 0x62, 0x01, 0x5C, 0x02, 0xCA, 0x00, 0x1D, 0x00, 0x00, -0x05, 0x26, 0x26, 0x35, 0x35, 0x34, 0x26, 0x23, 0x35, 0x36, -0x36, 0x35, 0x35, 0x34, 0x36, 0x33, 0x15, 0x06, 0x06, 0x15, -0x15, 0x14, 0x07, 0x15, 0x16, 0x15, 0x15, 0x14, 0x16, 0x17, -0x01, 0x5C, 0x5C, 0x6A, 0x3F, 0x3B, 0x3B, 0x3F, 0x6E, 0x58, -0x34, 0x3B, 0x6D, 0x6D, 0x3A, 0x35, 0x9E, 0x01, 0x4E, 0x50, -0x93, 0x33, 0x2B, 0x49, 0x01, 0x2A, 0x32, 0x94, 0x50, 0x4E, -0x48, 0x01, 0x2C, 0x31, 0x90, 0x67, 0x13, 0x06, 0x13, 0x67, -0x93, 0x31, 0x2B, 0x01, 0x00, 0x01, 0x00, 0xEF, 0xFF, 0x0F, -0x01, 0x38, 0x02, 0xF8, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33, -0x11, 0x23, 0xEF, 0x49, 0x49, 0x02, 0xF8, 0xFC, 0x17, 0x00, -0x01, 0x00, 0x20, 0xFF, 0x62, 0x01, 0x60, 0x02, 0xCA, 0x00, -0x1D, 0x00, 0x00, 0x17, 0x36, 0x36, 0x35, 0x35, 0x34, 0x37, -0x35, 0x26, 0x35, 0x35, 0x34, 0x26, 0x27, 0x35, 0x16, 0x16, -0x15, 0x15, 0x14, 0x16, 0x33, 0x15, 0x06, 0x06, 0x15, 0x15, -0x14, 0x06, 0x23, 0x20, 0x34, 0x3B, 0x6D, 0x6D, 0x3A, 0x35, -0x5C, 0x6A, 0x3F, 0x3B, 0x3B, 0x3F, 0x6E, 0x58, 0x56, 0x02, -0x2B, 0x31, 0x91, 0x67, 0x13, 0x06, 0x13, 0x67, 0x92, 0x31, -0x2B, 0x01, 0x48, 0x01, 0x4E, 0x50, 0x92, 0x33, 0x2B, 0x49, -0x01, 0x2A, 0x32, 0x95, 0x4F, 0x4F, 0x00, 0x01, 0x00, 0x32, -0x01, 0x1F, 0x02, 0x09, 0x01, 0xA2, 0x00, 0x17, 0x00, 0x00, -0x01, 0x26, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x36, 0x33, -0x32, 0x16, 0x17, 0x16, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, -0x06, 0x23, 0x22, 0x26, 0x01, 0x0D, 0x24, 0x2F, 0x16, 0x1C, -0x3E, 0x18, 0x30, 0x48, 0x1D, 0x39, 0x2E, 0x24, 0x2F, 0x15, -0x1D, 0x3E, 0x18, 0x31, 0x47, 0x1C, 0x3B, 0x01, 0x3F, 0x10, -0x0B, 0x22, 0x19, 0x4E, 0x35, 0x0C, 0x14, 0x10, 0x0B, 0x22, -0x19, 0x4D, 0x36, 0x0D, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x02, 0x7E, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x21, 0x00, 0x00, -0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x83, -0x00, 0x40, 0x00, 0x94, 0x00, 0xB2, 0x40, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x28, 0x02, 0x5E, -0x00, 0xF1, 0x02, 0xFE, 0x00, 0x0B, 0x00, 0x00, 0x13, 0x0E, -0x02, 0x07, 0x23, 0x35, 0x3E, 0x02, 0x37, 0x33, 0xF1, 0x0C, -0x32, 0x39, 0x18, 0x3A, 0x0F, 0x23, 0x22, 0x0B, 0x6A, 0x02, -0xF4, 0x12, 0x39, 0x39, 0x12, 0x0C, 0x13, 0x34, 0x37, 0x16, -0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x02, 0x7E, 0x03, 0xB0, -0x00, 0xA2, 0x00, 0x21, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x00, 0x00, 0x83, 0x00, 0x60, 0x00, 0xE1, -0x00, 0xB2, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x01, 0x00, 0x28, 0x02, 0x5E, 0x01, 0x7A, 0x02, 0xFE, -0x00, 0x12, 0x00, 0x00, 0x13, 0x1E, 0x02, 0x17, 0x15, 0x23, -0x26, 0x26, 0x27, 0x06, 0x06, 0x07, 0x23, 0x35, 0x3E, 0x02, -0x37, 0xFD, 0x0C, 0x2D, 0x31, 0x13, 0x3E, 0x1A, 0x38, 0x1B, -0x1B, 0x36, 0x1A, 0x3C, 0x13, 0x2F, 0x2C, 0x0D, 0x02, 0xFE, -0x16, 0x37, 0x35, 0x13, 0x0B, 0x10, 0x2F, 0x1B, 0x1B, 0x2E, -0x11, 0x0B, 0x14, 0x34, 0x37, 0x16, 0xFF, 0xFF, 0x00, 0x00, -0x00, 0x00, 0x02, 0x7E, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x21, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x62, 0x00, 0x6D, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x28, -0x02, 0x5E, 0x01, 0x97, 0x02, 0xDF, 0x00, 0x15, 0x00, 0x00, -0x13, 0x36, 0x36, 0x33, 0x32, 0x16, 0x16, 0x33, 0x32, 0x36, -0x37, 0x33, 0x06, 0x06, 0x23, 0x22, 0x26, 0x26, 0x23, 0x22, -0x06, 0x07, 0x28, 0x06, 0x39, 0x2F, 0x1E, 0x35, 0x30, 0x15, -0x17, 0x19, 0x07, 0x32, 0x06, 0x38, 0x2F, 0x1C, 0x35, 0x31, -0x16, 0x18, 0x18, 0x07, 0x02, 0x5E, 0x3B, 0x45, 0x1D, 0x1C, -0x1D, 0x1D, 0x3A, 0x46, 0x1C, 0x1D, 0x1D, 0x1D, 0xFF, 0xFF, -0x00, 0x00, 0x00, 0x00, 0x02, 0x7E, 0x03, 0x91, 0x00, 0xA2, -0x00, 0x21, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -0x40, 0x00, 0x00, 0x83, 0x00, 0x64, 0x00, 0x5F, 0x00, 0xB2, -0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, -0x00, 0x95, 0x02, 0x77, 0x01, 0xAE, 0x02, 0xDA, 0x00, 0x0B, -0x00, 0x17, 0x00, 0x00, 0x13, 0x34, 0x36, 0x33, 0x32, 0x16, -0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x37, 0x34, 0x36, 0x33, -0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x95, 0x1C, -0x13, 0x13, 0x1C, 0x1C, 0x13, 0x13, 0x1C, 0xBC, 0x1B, 0x13, -0x13, 0x1C, 0x1C, 0x13, 0x13, 0x1B, 0x02, 0xA9, 0x1A, 0x17, -0x17, 0x1A, 0x19, 0x19, 0x19, 0x19, 0x1A, 0x17, 0x17, 0x1A, -0x19, 0x19, 0x19, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x02, -0x7E, 0x03, 0x8C, 0x00, 0xA2, 0x00, 0x21, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x83, 0x00, -0x66, 0x00, 0x1D, 0x00, 0xB2, 0x40, 0x00, 0x00, 0x00, 0x00, -0x00, 0x40, 0x00, 0x00, 0x02, 0x00, 0x28, 0x02, 0x5E, 0x01, -0x04, 0x03, 0x31, 0x00, 0x0B, 0x00, 0x17, 0x00, 0x00, 0x13, -0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, -0x06, 0x27, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, -0x15, 0x14, 0x16, 0x95, 0x31, 0x3C, 0x3C, 0x31, 0x2F, 0x40, -0x3F, 0x30, 0x19, 0x1F, 0x20, 0x18, 0x18, 0x20, 0x1D, 0x02, -0x5E, 0x38, 0x32, 0x32, 0x37, 0x37, 0x31, 0x33, 0x38, 0x32, -0x1E, 0x1A, 0x1A, 0x1E, 0x1E, 0x1A, 0x1A, 0x1E, 0xFF, 0xFF, -0x00, 0x00, 0x00, 0x00, 0x02, 0x7E, 0x03, 0x6E, 0x00, 0xA2, -0x00, 0x21, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -0x40, 0x00, 0x00, 0x83, 0x00, 0x68, 0x00, 0xA8, 0x00, 0x3D, -0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, -0xFF, 0xFF, 0x00, 0x00, 0x03, 0x35, 0x02, 0xCA, 0x00, 0x0F, -0x00, 0x13, 0x00, 0x00, 0x21, 0x21, 0x35, 0x23, 0x07, 0x23, -0x01, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, -0x25, 0x33, 0x11, 0x23, 0x03, 0x35, 0xFE, 0x8C, 0xFA, 0x6B, -0x5D, 0x01, 0x53, 0x01, 0xE3, 0xFE, 0xE6, 0x01, 0x07, 0xFE, -0xF9, 0x01, 0x1A, 0xFD, 0xB5, 0xD7, 0x3A, 0xDD, 0xDD, 0x02, -0xCA, 0x4F, 0xDF, 0x4E, 0xFF, 0xDE, 0x01, 0x4D, 0x00, 0x01, -0x00, 0x0E, 0xFF, 0x10, 0x00, 0xD4, 0x00, 0x00, 0x00, 0x14, -0x00, 0x00, 0x17, 0x14, 0x06, 0x23, 0x22, 0x27, 0x35, 0x16, -0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x37, 0x33, -0x07, 0x16, 0x16, 0xD4, 0x4A, 0x4A, 0x20, 0x12, 0x09, 0x1E, -0x0E, 0x24, 0x26, 0x35, 0x26, 0x2B, 0x3A, 0x1A, 0x24, 0x33, -0x8B, 0x30, 0x35, 0x05, 0x37, 0x02, 0x03, 0x13, 0x19, 0x1A, -0x18, 0x05, 0x56, 0x35, 0x08, 0x28, 0xFF, 0xFF, 0x00, 0x3D, -0xFF, 0x10, 0x02, 0x59, 0x02, 0xD4, 0x00, 0xA2, 0x00, 0x23, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x6B, 0x01, 0x05, 0x00, 0x00, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x61, -0x00, 0x00, 0x01, 0xF0, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x25, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x40, 0x00, 0x87, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x61, -0x00, 0x00, 0x01, 0xF0, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x25, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x60, 0x00, 0xD4, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x61, -0x00, 0x00, 0x01, 0xF0, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x25, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x62, 0x00, 0x60, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x61, -0x00, 0x00, 0x01, 0xF0, 0x03, 0x8C, 0x00, 0xA2, 0x00, 0x25, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x66, 0x00, 0x10, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x28, -0x00, 0x00, 0x01, 0x2A, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x29, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x40, 0x00, 0x00, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x28, -0x00, 0x00, 0x01, 0x3E, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x29, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x60, 0x00, 0x4D, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x01, -0x00, 0x00, 0x01, 0x53, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x29, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x62, 0xFF, 0xD9, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x1E, -0x00, 0x00, 0x01, 0x37, 0x03, 0x8C, 0x00, 0xA2, 0x00, 0x29, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x66, 0xFF, 0x89, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x00, 0x1E, -0x00, 0x00, 0x02, 0x9D, 0x02, 0xCA, 0x00, 0x0D, 0x00, 0x19, -0x00, 0x00, 0x01, 0x32, 0x16, 0x16, 0x15, 0x14, 0x06, 0x23, -0x23, 0x11, 0x23, 0x35, 0x33, 0x11, 0x17, 0x23, 0x15, 0x33, -0x15, 0x23, 0x15, 0x33, 0x20, 0x11, 0x34, 0x26, 0x01, 0x3D, -0x6B, 0x9E, 0x57, 0xC5, 0xB1, 0xBF, 0x4A, 0x4A, 0xC8, 0x6E, -0xB2, 0xB2, 0x5A, 0x01, 0x22, 0x8E, 0x02, 0xCA, 0x50, 0x9B, -0x73, 0xB5, 0xB7, 0x01, 0x3A, 0x4E, 0x01, 0x42, 0x4D, 0xF5, -0x4E, 0xED, 0x01, 0x1C, 0x8F, 0x85, 0xFF, 0xFF, 0x00, 0x61, -0x00, 0x00, 0x02, 0x97, 0x03, 0x91, 0x00, 0xA2, 0x00, 0x2E, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x64, 0x00, 0x9D, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x3D, -0xFF, 0xF6, 0x02, 0xD0, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x2F, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x40, 0x00, 0xDD, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x3D, -0xFF, 0xF6, 0x02, 0xD0, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x2F, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x60, 0x01, 0x2A, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x3D, -0xFF, 0xF6, 0x02, 0xD0, 0x03, 0xB0, 0x00, 0xA2, 0x00, 0x2F, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x62, 0x00, 0xB6, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x3D, -0xFF, 0xF6, 0x02, 0xD0, 0x03, 0x91, 0x00, 0xA2, 0x00, 0x2F, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x64, 0x00, 0xA8, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x3D, -0xFF, 0xF6, 0x02, 0xD0, 0x03, 0x8C, 0x00, 0xA2, 0x00, 0x2F, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x83, 0x00, 0x66, 0x00, 0x66, 0x00, 0xB2, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x40, -0x00, 0x84, 0x01, 0xFA, 0x02, 0x3E, 0x00, 0x0B, 0x00, 0x00, -0x01, 0x17, 0x07, 0x17, 0x07, 0x27, 0x07, 0x27, 0x37, 0x27, -0x37, 0x17, 0x01, 0xC8, 0x32, 0xAA, 0xA9, 0x32, 0xAB, 0xA7, -0x34, 0xA9, 0xAA, 0x34, 0xA9, 0x02, 0x3E, 0x33, 0xAA, 0xAA, -0x33, 0xA9, 0xA9, 0x33, 0xAA, 0xA9, 0x34, 0xAB, 0x00, 0x03, -0x00, 0x3D, 0xFF, 0xE1, 0x02, 0xD0, 0x02, 0xEA, 0x00, 0x17, -0x00, 0x20, 0x00, 0x29, 0x00, 0x00, 0x01, 0x14, 0x06, 0x06, -0x23, 0x22, 0x27, 0x07, 0x27, 0x37, 0x26, 0x26, 0x35, 0x34, -0x36, 0x36, 0x33, 0x32, 0x16, 0x17, 0x37, 0x17, 0x07, 0x16, -0x05, 0x14, 0x16, 0x17, 0x01, 0x26, 0x23, 0x22, 0x06, 0x05, -0x34, 0x27, 0x01, 0x16, 0x16, 0x33, 0x32, 0x36, 0x02, 0xD0, -0x4B, 0x92, 0x6C, 0x70, 0x49, 0x30, 0x3D, 0x34, 0x2C, 0x2C, -0x48, 0x93, 0x70, 0x34, 0x59, 0x25, 0x2E, 0x3D, 0x33, 0x5E, -0xFD, 0xCC, 0x17, 0x18, 0x01, 0x3F, 0x34, 0x4E, 0x79, 0x73, -0x01, 0xD5, 0x33, 0xFE, 0xC0, 0x1A, 0x45, 0x2A, 0x7A, 0x70, -0x01, 0x66, 0x6F, 0xA5, 0x5C, 0x2F, 0x44, 0x28, 0x4A, 0x31, -0x8C, 0x57, 0x6E, 0xA4, 0x5C, 0x18, 0x15, 0x42, 0x29, 0x47, -0x63, 0xB1, 0x3D, 0x64, 0x25, 0x01, 0xC3, 0x23, 0x99, 0x87, -0x81, 0x49, 0xFE, 0x3A, 0x12, 0x14, 0x9B, 0xFF, 0xFF, 0x00, -0x5A, 0xFF, 0xF6, 0x02, 0x80, 0x03, 0xB0, 0x00, 0xA2, 0x00, -0x35, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x83, 0x00, 0x40, 0x00, 0xC4, 0x00, 0xB2, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, -0x5A, 0xFF, 0xF6, 0x02, 0x80, 0x03, 0xB0, 0x00, 0xA2, 0x00, -0x35, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x83, 0x00, 0x60, 0x01, 0x11, 0x00, 0xB2, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, -0x5A, 0xFF, 0xF6, 0x02, 0x80, 0x03, 0xB0, 0x00, 0xA2, 0x00, -0x35, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x83, 0x00, 0x62, 0x00, 0x9D, 0x00, 0xB2, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, -0x5A, 0xFF, 0xF6, 0x02, 0x80, 0x03, 0x8C, 0x00, 0xA2, 0x00, -0x35, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x83, 0x00, 0x66, 0x00, 0x4D, 0x00, 0xB2, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, -0x00, 0x00, 0x00, 0x02, 0x36, 0x03, 0xB0, 0x00, 0xA2, 0x00, -0x39, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x83, 0x00, 0x60, 0x00, 0xBE, 0x00, 0xB2, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x00, -0x61, 0x00, 0x00, 0x02, 0x2A, 0x02, 0xCA, 0x00, 0x0D, 0x00, -0x16, 0x00, 0x00, 0x01, 0x14, 0x06, 0x06, 0x23, 0x23, 0x15, -0x23, 0x11, 0x33, 0x15, 0x33, 0x32, 0x16, 0x05, 0x32, 0x36, -0x35, 0x34, 0x26, 0x23, 0x23, 0x11, 0x02, 0x2A, 0x34, 0x7D, -0x6D, 0x51, 0x5A, 0x5A, 0x60, 0x91, 0x7E, 0xFE, 0xD9, 0x69, -0x61, 0x57, 0x62, 0x59, 0x01, 0x7E, 0x3C, 0x67, 0x40, 0x9B, -0x02, 0xCA, 0x7C, 0x6E, 0xF9, 0x43, 0x4F, 0x45, 0x43, 0xFE, -0xE6, 0x00, 0x01, 0x00, 0x55, 0xFF, 0xF6, 0x02, 0x4A, 0x02, -0xFD, 0x00, 0x36, 0x00, 0x00, 0x01, 0x14, 0x0E, 0x03, 0x15, -0x14, 0x16, 0x16, 0x17, 0x16, 0x16, 0x15, 0x14, 0x06, 0x23, -0x22, 0x26, 0x27, 0x35, 0x16, 0x16, 0x33, 0x32, 0x36, 0x35, -0x34, 0x26, 0x27, 0x26, 0x26, 0x35, 0x34, 0x3E, 0x03, 0x35, -0x34, 0x26, 0x23, 0x22, 0x06, 0x06, 0x15, 0x11, 0x23, 0x11, -0x34, 0x36, 0x36, 0x33, 0x32, 0x16, 0x02, 0x0A, 0x1C, 0x2A, -0x2A, 0x1C, 0x0D, 0x26, 0x25, 0x36, 0x3E, 0x67, 0x53, 0x2F, -0x48, 0x1A, 0x1A, 0x4C, 0x28, 0x37, 0x30, 0x29, 0x35, 0x3F, -0x2E, 0x1B, 0x29, 0x29, 0x1B, 0x47, 0x38, 0x23, 0x3D, 0x25, -0x58, 0x3A, 0x64, 0x3F, 0x61, 0x77, 0x02, 0x69, 0x22, 0x33, -0x27, 0x20, 0x1F, 0x12, 0x0D, 0x16, 0x1D, 0x19, 0x24, 0x4B, -0x3B, 0x55, 0x4E, 0x12, 0x10, 0x4F, 0x10, 0x1A, 0x2E, 0x28, -0x24, 0x32, 0x22, 0x29, 0x3B, 0x28, 0x1F, 0x2C, 0x21, 0x20, -0x26, 0x1B, 0x2A, 0x26, 0x13, 0x2E, 0x2B, 0xFD, 0xB8, 0x02, -0x48, 0x43, 0x4F, 0x23, 0x4A, 0xFF, 0xFF, 0x00, 0x2E, 0xFF, -0xF6, 0x01, 0xE0, 0x02, 0xFE, 0x00, 0xA2, 0x00, 0x41, 0x00, -0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, -0x82, 0x00, 0x40, 0x6F, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, -0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x2E, 0xFF, 0xF6, 0x01, -0xE0, 0x02, 0xFE, 0x00, 0xA2, 0x00, 0x41, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x83, 0x00, -0x60, 0x00, 0xBC, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, -0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x2E, 0xFF, 0xF6, 0x01, -0xE0, 0x02, 0xFE, 0x00, 0xA2, 0x00, 0x41, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x82, 0x00, -0x62, 0x48, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0xFF, 0xFF, 0x00, 0x2E, 0xFF, 0xF6, 0x01, 0xE0, 0x02, -0xDF, 0x00, 0xA2, 0x00, 0x41, 0x00, 0x00, 0x40, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x82, 0x00, 0x64, 0x3A, -0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, -0xFF, 0x00, 0x2E, 0xFF, 0xF6, 0x01, 0xE0, 0x02, 0xDA, 0x00, -0xA2, 0x00, 0x41, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, -0x00, 0x40, 0x00, 0x00, 0x82, 0x00, 0x66, 0xF8, 0x00, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, -0x2E, 0xFF, 0xF6, 0x01, 0xE0, 0x03, 0x31, 0x00, 0xA2, 0x00, -0x41, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x83, 0x00, 0x68, 0x00, 0x83, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x03, 0x00, -0x2E, 0xFF, 0xF6, 0x03, 0x2D, 0x02, 0x22, 0x00, 0x2C, 0x00, -0x33, 0x00, 0x3E, 0x00, 0x00, 0x01, 0x32, 0x16, 0x16, 0x15, -0x15, 0x21, 0x16, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x06, -0x06, 0x23, 0x22, 0x27, 0x06, 0x06, 0x23, 0x22, 0x26, 0x35, -0x34, 0x36, 0x37, 0x37, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, -0x07, 0x27, 0x36, 0x36, 0x33, 0x32, 0x16, 0x17, 0x36, 0x36, -0x17, 0x22, 0x06, 0x07, 0x33, 0x34, 0x26, 0x05, 0x06, 0x06, -0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x35, 0x02, 0x5B, -0x41, 0x5E, 0x33, 0xFE, 0xA9, 0x02, 0x4F, 0x4A, 0x32, 0x4C, -0x26, 0x28, 0x4D, 0x32, 0x8D, 0x3E, 0x22, 0x5C, 0x4D, 0x49, -0x61, 0x78, 0x7C, 0x5A, 0x3D, 0x33, 0x28, 0x4D, 0x21, 0x1B, -0x23, 0x64, 0x31, 0x3E, 0x51, 0x15, 0x1A, 0x54, 0x35, 0x3A, -0x43, 0x05, 0xF8, 0x39, 0xFE, 0x98, 0x5E, 0x48, 0x33, 0x2A, -0x3F, 0x55, 0x02, 0x22, 0x3C, 0x6C, 0x48, 0x36, 0x60, 0x5B, -0x13, 0x12, 0x4D, 0x12, 0x11, 0x71, 0x34, 0x3D, 0x4D, 0x52, -0x50, 0x57, 0x04, 0x03, 0x22, 0x41, 0x34, 0x18, 0x11, 0x42, -0x14, 0x1A, 0x29, 0x2D, 0x29, 0x2E, 0x48, 0x4F, 0x4A, 0x45, -0x54, 0xD7, 0x04, 0x38, 0x33, 0x2D, 0x2A, 0x4B, 0x4E, 0x30, -0xFF, 0xFF, 0x00, 0x37, 0xFF, 0x10, 0x01, 0xBF, 0x02, 0x22, -0x00, 0xA2, 0x00, 0x43, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x00, 0x00, 0x83, 0x00, 0x6B, 0x00, 0xAA, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0xFF, 0xFF, 0x00, 0x37, 0xFF, 0xF6, 0x02, 0x01, 0x02, 0xFE, -0x00, 0xA2, 0x00, 0x45, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x00, 0x00, 0x82, 0x00, 0x40, 0x73, 0x00, -0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, -0x00, 0x37, 0xFF, 0xF6, 0x02, 0x01, 0x02, 0xFE, 0x00, 0xA2, -0x00, 0x45, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -0x40, 0x00, 0x00, 0x83, 0x00, 0x60, 0x00, 0xC0, 0x00, 0x00, -0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, -0x00, 0x37, 0xFF, 0xF6, 0x02, 0x01, 0x02, 0xFE, 0x00, 0xA2, -0x00, 0x45, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -0x40, 0x00, 0x00, 0x82, 0x00, 0x62, 0x4C, 0x00, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x37, -0xFF, 0xF6, 0x02, 0x01, 0x02, 0xDA, 0x00, 0xA2, 0x00, 0x45, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x82, 0x00, 0x66, 0xFC, 0x00, 0x40, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x55, 0x00, 0x00, -0x00, 0xAD, 0x02, 0x18, 0x00, 0x03, 0x00, 0x00, 0x33, 0x23, -0x11, 0x33, 0xAD, 0x58, 0x58, 0x02, 0x18, 0xFF, 0xFF, 0xFF, -0xFF, 0x00, 0x00, 0x00, 0xC8, 0x02, 0xFE, 0x00, 0xA2, 0x00, -0x91, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x82, 0x00, 0x40, 0xD7, 0x00, 0x40, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x4C, 0x00, -0x00, 0x01, 0x15, 0x02, 0xFE, 0x00, 0xA2, 0x00, 0x91, 0x00, -0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, -0x82, 0x00, 0x60, 0x24, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, -0x00, 0x40, 0x00, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x00, 0x01, -0x2A, 0x02, 0xFE, 0x00, 0xA2, 0x00, 0x91, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x82, 0x00, -0x62, 0xB0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0xFF, 0xFF, 0xFF, 0xF5, 0x00, 0x00, 0x01, 0x0E, 0x02, -0xDA, 0x00, 0xA2, 0x00, 0x91, 0x00, 0x00, 0x40, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x83, 0x00, 0x66, 0xFF, -0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x02, 0x00, 0x37, 0xFF, 0xF6, 0x02, 0x27, 0x02, -0xFD, 0x00, 0x20, 0x00, 0x2C, 0x00, 0x00, 0x13, 0x16, 0x16, -0x17, 0x37, 0x17, 0x07, 0x16, 0x16, 0x15, 0x14, 0x06, 0x23, -0x22, 0x26, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, -0x37, 0x26, 0x26, 0x27, 0x07, 0x27, 0x37, 0x26, 0x26, 0x27, -0x13, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, -0x34, 0x26, 0xD8, 0x20, 0x41, 0x1D, 0x73, 0x26, 0x63, 0x44, -0x57, 0x86, 0x74, 0x48, 0x6F, 0x3F, 0x7F, 0x6C, 0x35, 0x4F, -0x18, 0x04, 0x10, 0x42, 0x2A, 0x82, 0x26, 0x70, 0x15, 0x2E, -0x17, 0x7B, 0x54, 0x4B, 0x4C, 0x53, 0x53, 0x4C, 0x4E, 0x02, -0xFD, 0x0F, 0x24, 0x15, 0x43, 0x36, 0x39, 0x40, 0xBC, 0x7A, -0x8E, 0x8F, 0x3B, 0x6D, 0x4B, 0x70, 0x80, 0x1C, 0x1E, 0x02, -0x39, 0x60, 0x26, 0x4B, 0x37, 0x40, 0x0E, 0x1B, 0x0C, 0xFE, -0xD1, 0x59, 0x53, 0x49, 0x5F, 0x61, 0x5C, 0x3E, 0x59, 0xFF, -0xFF, 0x00, 0x55, 0x00, 0x00, 0x02, 0x19, 0x02, 0xDF, 0x00, -0xA2, 0x00, 0x4E, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, -0x00, 0x40, 0x00, 0x00, 0x82, 0x00, 0x64, 0x56, 0x00, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, -0x37, 0xFF, 0xF6, 0x02, 0x27, 0x02, 0xFE, 0x00, 0xA2, 0x00, -0x4F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x83, 0x00, 0x40, 0x00, 0x85, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, -0x37, 0xFF, 0xF6, 0x02, 0x27, 0x02, 0xFE, 0x00, 0xA2, 0x00, -0x4F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x83, 0x00, 0x60, 0x00, 0xD2, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, -0x37, 0xFF, 0xF6, 0x02, 0x27, 0x02, 0xFE, 0x00, 0xA2, 0x00, -0x4F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x82, 0x00, 0x62, 0x5E, 0x00, 0x40, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x37, 0xFF, -0xF6, 0x02, 0x27, 0x02, 0xDF, 0x00, 0xA2, 0x00, 0x4F, 0x00, -0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, -0x82, 0x00, 0x64, 0x50, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, -0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x37, 0xFF, 0xF6, 0x02, -0x27, 0x02, 0xDA, 0x00, 0xA2, 0x00, 0x4F, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x82, 0x00, -0x66, 0x0E, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x03, 0x00, 0x32, 0x00, 0x79, 0x02, 0x09, 0x02, -0x47, 0x00, 0x0B, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x00, 0x01, -0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, -0x06, 0x05, 0x35, 0x21, 0x15, 0x07, 0x22, 0x26, 0x35, 0x34, -0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x01, 0x1D, 0x17, -0x21, 0x21, 0x17, 0x17, 0x20, 0x20, 0xFE, 0xFE, 0x01, 0xD7, -0xEC, 0x17, 0x21, 0x21, 0x17, 0x17, 0x20, 0x20, 0x01, 0xCE, -0x1D, 0x20, 0x22, 0x1A, 0x1A, 0x22, 0x20, 0x1D, 0x91, 0x47, -0x47, 0xC4, 0x1D, 0x20, 0x22, 0x1A, 0x1A, 0x22, 0x20, 0x1D, -0x00, 0x03, 0x00, 0x37, 0xFF, 0xDF, 0x02, 0x27, 0x02, 0x36, -0x00, 0x15, 0x00, 0x1E, 0x00, 0x26, 0x00, 0x00, 0x01, 0x14, -0x06, 0x23, 0x22, 0x27, 0x07, 0x27, 0x37, 0x26, 0x26, 0x35, -0x34, 0x36, 0x33, 0x32, 0x17, 0x37, 0x17, 0x07, 0x16, 0x16, -0x05, 0x14, 0x16, 0x17, 0x13, 0x26, 0x23, 0x22, 0x06, 0x05, -0x34, 0x27, 0x03, 0x16, 0x33, 0x32, 0x36, 0x02, 0x27, 0x87, -0x73, 0x49, 0x38, 0x28, 0x3A, 0x2D, 0x1F, 0x21, 0x86, 0x73, -0x49, 0x3A, 0x27, 0x3B, 0x2D, 0x1D, 0x22, 0xFE, 0x6B, 0x0B, -0x0D, 0xDC, 0x24, 0x34, 0x52, 0x4A, 0x01, 0x3A, 0x17, 0xDC, -0x22, 0x34, 0x51, 0x4C, 0x01, 0x0D, 0x85, 0x92, 0x21, 0x38, -0x27, 0x3E, 0x24, 0x65, 0x40, 0x85, 0x90, 0x24, 0x38, 0x26, -0x3F, 0x23, 0x63, 0x3E, 0x26, 0x41, 0x19, 0x01, 0x32, 0x19, -0x6C, 0x5F, 0x4A, 0x31, 0xFE, 0xCE, 0x17, 0x6F, 0xFF, 0xFF, -0x00, 0x4F, 0xFF, 0xF6, 0x02, 0x15, 0x02, 0xFE, 0x00, 0xA2, -0x00, 0x55, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -0x40, 0x00, 0x00, 0x83, 0x00, 0x40, 0x00, 0x8B, 0x00, 0x00, -0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, -0x00, 0x4F, 0xFF, 0xF6, 0x02, 0x15, 0x02, 0xFE, 0x00, 0xA2, -0x00, 0x55, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -0x40, 0x00, 0x00, 0x83, 0x00, 0x60, 0x00, 0xD8, 0x00, 0x00, -0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, -0x00, 0x4F, 0xFF, 0xF6, 0x02, 0x15, 0x02, 0xFE, 0x00, 0xA2, -0x00, 0x55, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -0x40, 0x00, 0x00, 0x82, 0x00, 0x62, 0x64, 0x00, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x4F, -0xFF, 0xF6, 0x02, 0x15, 0x02, 0xDA, 0x00, 0xA2, 0x00, 0x55, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0x82, 0x00, 0x66, 0x14, 0x00, 0x40, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0x10, -0x01, 0xFE, 0x02, 0xFE, 0x00, 0xA2, 0x00, 0x59, 0x00, 0x00, -0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x83, -0x00, 0x60, 0x00, 0xA2, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x00, 0x55, 0xFF, 0x10, -0x02, 0x30, 0x02, 0xF8, 0x00, 0x19, 0x00, 0x26, 0x00, 0x00, -0x01, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x23, 0x1E, 0x02, -0x15, 0x15, 0x23, 0x11, 0x33, 0x15, 0x14, 0x06, 0x07, 0x33, -0x36, 0x36, 0x33, 0x32, 0x16, 0x07, 0x34, 0x26, 0x23, 0x22, -0x06, 0x07, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x02, 0x30, -0x79, 0x63, 0x3F, 0x50, 0x18, 0x06, 0x01, 0x03, 0x02, 0x58, -0x58, 0x02, 0x01, 0x04, 0x18, 0x4E, 0x40, 0x63, 0x79, 0x5B, -0x46, 0x4A, 0x52, 0x44, 0x02, 0x41, 0x58, 0x4A, 0x45, 0x01, -0x0D, 0x89, 0x8E, 0x2E, 0x20, 0x07, 0x20, 0x22, 0x0B, 0xE0, -0x03, 0xE8, 0xE0, 0x0E, 0x2D, 0x0D, 0x22, 0x30, 0x8C, 0x88, -0x65, 0x65, 0x5C, 0x5C, 0x13, 0x63, 0x6B, 0x6B, 0xFF, 0xFF, -0x00, 0x01, 0xFF, 0x10, 0x01, 0xFE, 0x02, 0xDA, 0x00, 0xA2, -0x00, 0x59, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -0x40, 0x00, 0x00, 0x82, 0x00, 0x66, 0xDE, 0x00, 0x40, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x05, 0xAC, 0xE3, -0x5F, 0x0F, 0x3C, 0xF5, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, -0x00, 0x00, 0xE0, 0x7F, 0x10, 0x0D, 0x00, 0x00, 0x00, 0x00, -0xE0, 0x7F, 0x10, 0x0D, 0xFD, 0x93, 0xFE, 0x76, 0x0A, 0xF0, -0x05, 0x43, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x03, 0xA7, 0xFF, 0xB2, 0xFF, 0xD5, -0x03, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, -0x02, 0x58, 0x00, 0x00, 0x01, 0x0D, 0x00, 0x48, 0x01, 0x98, -0x00, 0x41, 0x02, 0x86, 0x00, 0x19, 0x02, 0x3C, 0x00, 0x3E, -0x03, 0x3F, 0x00, 0x31, 0x02, 0xDC, 0x00, 0x35, 0x00, 0xE1, -0x00, 0x41, 0x01, 0x2C, 0x00, 0x28, 0x01, 0x2C, 0x00, 0x1E, -0x02, 0x27, 0x00, 0x29, 0x02, 0x3C, 0x00, 0x32, 0x01, 0x0C, -0x00, 0x29, 0x01, 0x42, 0x00, 0x28, 0x01, 0x0C, 0x00, 0x48, -0x01, 0x74, 0x00, 0x0A, 0x02, 0x3C, 0x00, 0x31, 0x02, 0x3C, -0x00, 0x59, 0x02, 0x3C, 0x00, 0x30, 0x02, 0x3C, 0x00, 0x2D, -0x02, 0x3C, 0x00, 0x15, 0x02, 0x3C, 0x00, 0x3F, 0x02, 0x3C, -0x00, 0x37, 0x02, 0x3C, 0x00, 0x2C, 0x02, 0x3C, 0x00, 0x31, -0x02, 0x3C, 0x00, 0x32, 0x01, 0x0C, 0x00, 0x48, 0x01, 0x0C, -0x00, 0x1F, 0x02, 0x3C, 0x00, 0x32, 0x02, 0x3C, 0x00, 0x38, -0x02, 0x3C, 0x00, 0x32, 0x01, 0xB2, 0x00, 0x0C, 0x03, 0x83, -0x00, 0x3A, 0x02, 0x7F, 0x00, 0x00, 0x02, 0x8A, 0x00, 0x61, -0x02, 0x78, 0x00, 0x3D, 0x02, 0xDA, 0x00, 0x61, 0x02, 0x2C, -0x00, 0x61, 0x02, 0x07, 0x00, 0x61, 0x02, 0xD8, 0x00, 0x3D, -0x02, 0xE5, 0x00, 0x61, 0x01, 0x53, 0x00, 0x28, 0x01, 0x11, -0xFF, 0xB2, 0x02, 0x6B, 0x00, 0x61, 0x02, 0x0C, 0x00, 0x61, -0x03, 0x8B, 0x00, 0x61, 0x02, 0xF8, 0x00, 0x61, 0x03, 0x0D, -0x00, 0x3D, 0x02, 0x5D, 0x00, 0x61, 0x03, 0x0D, 0x00, 0x3D, -0x02, 0x6E, 0x00, 0x61, 0x02, 0x25, 0x00, 0x33, 0x02, 0x2C, -0x00, 0x0A, 0x02, 0xDB, 0x00, 0x5A, 0x02, 0x58, 0x00, 0x00, -0x03, 0xA2, 0x00, 0x0C, 0x02, 0x4A, 0x00, 0x04, 0x02, 0x36, -0x00, 0x00, 0x02, 0x3C, 0x00, 0x26, 0x01, 0x49, 0x00, 0x50, -0x01, 0x74, 0x00, 0x0A, 0x01, 0x49, 0x00, 0x19, 0x02, 0x3C, -0x00, 0x26, 0x01, 0xBC, 0xFF, 0xFE, 0x01, 0x19, 0x00, 0x28, -0x02, 0x31, 0x00, 0x2E, 0x02, 0x67, 0x00, 0x55, 0x01, 0xE0, -0x00, 0x37, 0x02, 0x67, 0x00, 0x37, 0x02, 0x34, 0x00, 0x37, -0x01, 0x58, 0x00, 0x0F, 0x02, 0x67, 0x00, 0x37, 0x02, 0x6A, -0x00, 0x55, 0x01, 0x02, 0x00, 0x4E, 0x01, 0x02, 0xFF, 0xC9, -0x02, 0x16, 0x00, 0x55, 0x01, 0x02, 0x00, 0x55, 0x03, 0xA7, -0x00, 0x55, 0x02, 0x6A, 0x00, 0x55, 0x02, 0x5D, 0x00, 0x37, -0x02, 0x67, 0x00, 0x55, 0x02, 0x67, 0x00, 0x37, 0x01, 0x9D, -0x00, 0x55, 0x01, 0xDF, 0x00, 0x33, 0x01, 0x69, 0x00, 0x10, -0x02, 0x6A, 0x00, 0x4F, 0x01, 0xFC, 0x00, 0x00, 0x03, 0x12, -0x00, 0x0B, 0x02, 0x11, 0x00, 0x12, 0x01, 0xFE, 0x00, 0x01, -0x01, 0xD6, 0x00, 0x27, 0x01, 0x7C, 0x00, 0x1C, 0x02, 0x27, -0x00, 0xEF, 0x01, 0x7C, 0x00, 0x20, 0x02, 0x3C, 0x00, 0x32, -0x02, 0x7F, 0x00, 0x00, 0x01, 0x19, 0x00, 0x28, 0x02, 0x7F, -0x00, 0x00, 0x01, 0xA2, 0x00, 0x28, 0x02, 0x7F, 0x00, 0x00, -0x01, 0xBF, 0x00, 0x28, 0x02, 0x7F, 0x00, 0x00, 0x02, 0x44, -0x00, 0x95, 0x02, 0x7F, 0x00, 0x00, 0x01, 0x2C, 0x00, 0x28, -0x02, 0x7F, 0x00, 0x00, 0x03, 0x71, 0xFF, 0xFF, 0x00, 0xE1, -0x00, 0x0E, 0x02, 0x78, 0x00, 0x3D, 0x02, 0x2C, 0x00, 0x61, -0x02, 0x2C, 0x00, 0x61, 0x02, 0x2C, 0x00, 0x61, 0x02, 0x2C, -0x00, 0x61, 0x01, 0x53, 0x00, 0x28, 0x01, 0x53, 0x00, 0x28, -0x01, 0x53, 0x00, 0x01, 0x01, 0x53, 0x00, 0x1E, 0x02, 0xDA, -0x00, 0x1E, 0x02, 0xF8, 0x00, 0x61, 0x03, 0x0D, 0x00, 0x3D, -0x03, 0x0D, 0x00, 0x3D, 0x03, 0x0D, 0x00, 0x3D, 0x03, 0x0D, -0x00, 0x3D, 0x03, 0x0D, 0x00, 0x3D, 0x02, 0x3C, 0x00, 0x40, -0x03, 0x0D, 0x00, 0x3D, 0x02, 0xDB, 0x00, 0x5A, 0x02, 0xDB, -0x00, 0x5A, 0x02, 0xDB, 0x00, 0x5A, 0x02, 0xDB, 0x00, 0x5A, -0x02, 0x36, 0x00, 0x00, 0x02, 0x5D, 0x00, 0x61, 0x02, 0x77, -0x00, 0x55, 0x02, 0x31, 0x00, 0x2E, 0x02, 0x31, 0x00, 0x2E, -0x02, 0x31, 0x00, 0x2E, 0x02, 0x31, 0x00, 0x2E, 0x02, 0x31, -0x00, 0x2E, 0x02, 0x31, 0x00, 0x2E, 0x03, 0x60, 0x00, 0x2E, -0x01, 0xE0, 0x00, 0x37, 0x02, 0x34, 0x00, 0x37, 0x02, 0x34, -0x00, 0x37, 0x02, 0x34, 0x00, 0x37, 0x02, 0x34, 0x00, 0x37, -0x01, 0x02, 0x00, 0x55, 0x01, 0x02, 0xFF, 0xFF, 0x01, 0x02, -0x00, 0x4C, 0x01, 0x02, 0xFF, 0xD8, 0x01, 0x02, 0xFF, 0xF5, -0x02, 0x5D, 0x00, 0x37, 0x02, 0x6A, 0x00, 0x55, 0x02, 0x5D, -0x00, 0x37, 0x02, 0x5D, 0x00, 0x37, 0x02, 0x5D, 0x00, 0x37, -0x02, 0x5D, 0x00, 0x37, 0x02, 0x5D, 0x00, 0x37, 0x02, 0x3C, -0x00, 0x32, 0x02, 0x5D, 0x00, 0x37, 0x02, 0x6A, 0x00, 0x4F, -0x02, 0x6A, 0x00, 0x4F, 0x02, 0x6A, 0x00, 0x4F, 0x02, 0x6A, -0x00, 0x4F, 0x01, 0xFE, 0x00, 0x01, 0x02, 0x67, 0x00, 0x55, -0x01, 0xFE, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x38, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x9C, -0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0x91, 0x00, 0x00, -0x02, 0x22, 0x00, 0x00, 0x02, 0xC5, 0x00, 0x00, 0x02, 0xE1, -0x00, 0x00, 0x03, 0x15, 0x00, 0x00, 0x03, 0x4A, 0x00, 0x00, -0x03, 0x87, 0x00, 0x00, 0x03, 0xB0, 0x00, 0x00, 0x03, 0xD7, -0x00, 0x00, 0x03, 0xEE, 0x00, 0x00, 0x04, 0x19, 0x00, 0x00, -0x04, 0x38, 0x00, 0x00, 0x04, 0x8B, 0x00, 0x00, 0x04, 0xBD, -0x00, 0x00, 0x05, 0x14, 0x00, 0x00, 0x05, 0x8F, 0x00, 0x00, -0x05, 0xD9, 0x00, 0x00, 0x06, 0x3A, 0x00, 0x00, 0x06, 0xBC, -0x00, 0x00, 0x06, 0xE0, 0x00, 0x00, 0x07, 0x81, 0x00, 0x00, -0x08, 0x04, 0x00, 0x00, 0x08, 0x4F, 0x00, 0x00, 0x08, 0x99, -0x00, 0x00, 0x08, 0xBF, 0x00, 0x00, 0x08, 0xE5, 0x00, 0x00, -0x09, 0x0A, 0x00, 0x00, 0x09, 0x89, 0x00, 0x00, 0x0A, 0x61, -0x00, 0x00, 0x0A, 0xA9, 0x00, 0x00, 0x0B, 0x12, 0x00, 0x00, -0x0B, 0x67, 0x00, 0x00, 0x0B, 0xA6, 0x00, 0x00, 0x0B, 0xD4, -0x00, 0x00, 0x0B, 0xFB, 0x00, 0x00, 0x0C, 0x5F, 0x00, 0x00, -0x0C, 0x8D, 0x00, 0x00, 0x0C, 0xBC, 0x00, 0x00, 0x0C, 0xF6, -0x00, 0x00, 0x0D, 0x30, 0x00, 0x00, 0x0D, 0x4D, 0x00, 0x00, -0x0D, 0x98, 0x00, 0x00, 0x0D, 0xDA, 0x00, 0x00, 0x0E, 0x33, -0x00, 0x00, 0x0E, 0x79, 0x00, 0x00, 0x0E, 0xDF, 0x00, 0x00, -0x0F, 0x30, 0x00, 0x00, 0x0F, 0xAC, 0x00, 0x00, 0x0F, 0xCD, -0x00, 0x00, 0x10, 0x0B, 0x00, 0x00, 0x10, 0x44, 0x00, 0x00, -0x10, 0xB7, 0x00, 0x00, 0x10, 0xEC, 0x00, 0x00, 0x11, 0x17, -0x00, 0x00, 0x11, 0x44, 0x00, 0x00, 0x11, 0x66, 0x00, 0x00, -0x11, 0x84, 0x00, 0x00, 0x11, 0xA5, 0x00, 0x00, 0x11, 0xCB, -0x00, 0x00, 0x11, 0xE5, 0x00, 0x00, 0x12, 0x13, 0x00, 0x00, -0x12, 0x89, 0x00, 0x00, 0x12, 0xEE, 0x00, 0x00, 0x13, 0x42, -0x00, 0x00, 0x13, 0xA9, 0x00, 0x00, 0x14, 0x0D, 0x00, 0x00, -0x14, 0x58, 0x00, 0x00, 0x14, 0xD5, 0x00, 0x00, 0x15, 0x1A, -0x00, 0x00, 0x15, 0x53, 0x00, 0x00, 0x15, 0xAB, 0x00, 0x00, -0x15, 0xEF, 0x00, 0x00, 0x16, 0x06, 0x00, 0x00, 0x16, 0x6A, -0x00, 0x00, 0x16, 0xAC, 0x00, 0x00, 0x16, 0xFF, 0x00, 0x00, -0x17, 0x6B, 0x00, 0x00, 0x17, 0xD4, 0x00, 0x00, 0x18, 0x19, -0x00, 0x00, 0x18, 0x94, 0x00, 0x00, 0x18, 0xE1, 0x00, 0x00, -0x19, 0x23, 0x00, 0x00, 0x19, 0x5F, 0x00, 0x00, 0x19, 0xD6, -0x00, 0x00, 0x1A, 0x08, 0x00, 0x00, 0x1A, 0x63, 0x00, 0x00, -0x1A, 0x90, 0x00, 0x00, 0x1A, 0xE8, 0x00, 0x00, 0x1B, 0x01, -0x00, 0x00, 0x1B, 0x58, 0x00, 0x00, 0x1B, 0xA6, 0x00, 0x00, -0x1B, 0xCE, 0x00, 0x00, 0x1B, 0xFC, 0x00, 0x00, 0x1C, 0x24, -0x00, 0x00, 0x1C, 0x66, 0x00, 0x00, 0x1C, 0x8E, 0x00, 0x00, -0x1C, 0xD6, 0x00, 0x00, 0x1C, 0xFE, 0x00, 0x00, 0x1D, 0x49, -0x00, 0x00, 0x1D, 0x71, 0x00, 0x00, 0x1D, 0xBC, 0x00, 0x00, -0x1D, 0xE4, 0x00, 0x00, 0x1E, 0x2A, 0x00, 0x00, 0x1E, 0x6E, -0x00, 0x00, 0x1E, 0x96, 0x00, 0x00, 0x1E, 0xBE, 0x00, 0x00, -0x1E, 0xE6, 0x00, 0x00, 0x1F, 0x0E, 0x00, 0x00, 0x1F, 0x36, -0x00, 0x00, 0x1F, 0x5E, 0x00, 0x00, 0x1F, 0x86, 0x00, 0x00, -0x1F, 0xAE, 0x00, 0x00, 0x1F, 0xD6, 0x00, 0x00, 0x20, 0x26, -0x00, 0x00, 0x20, 0x4E, 0x00, 0x00, 0x20, 0x76, 0x00, 0x00, -0x20, 0x9E, 0x00, 0x00, 0x20, 0xC6, 0x00, 0x00, 0x20, 0xEE, -0x00, 0x00, 0x21, 0x16, 0x00, 0x00, 0x21, 0x4A, 0x00, 0x00, -0x21, 0xD5, 0x00, 0x00, 0x21, 0xFD, 0x00, 0x00, 0x22, 0x25, -0x00, 0x00, 0x22, 0x4D, 0x00, 0x00, 0x22, 0x75, 0x00, 0x00, -0x22, 0x9D, 0x00, 0x00, 0x22, 0xE7, 0x00, 0x00, 0x23, 0x81, -0x00, 0x00, 0x23, 0xA7, 0x00, 0x00, 0x23, 0xCF, 0x00, 0x00, -0x23, 0xF5, 0x00, 0x00, 0x24, 0x1B, 0x00, 0x00, 0x24, 0x41, -0x00, 0x00, 0x24, 0x69, 0x00, 0x00, 0x25, 0x20, 0x00, 0x00, -0x25, 0x48, 0x00, 0x00, 0x25, 0x6E, 0x00, 0x00, 0x25, 0x96, -0x00, 0x00, 0x25, 0xBC, 0x00, 0x00, 0x25, 0xE2, 0x00, 0x00, -0x25, 0xF9, 0x00, 0x00, 0x26, 0x1F, 0x00, 0x00, 0x26, 0x45, -0x00, 0x00, 0x26, 0x6B, 0x00, 0x00, 0x26, 0x93, 0x00, 0x00, -0x27, 0x1D, 0x00, 0x00, 0x27, 0x43, 0x00, 0x00, 0x27, 0x6B, -0x00, 0x00, 0x27, 0x93, 0x00, 0x00, 0x27, 0xB9, 0x00, 0x00, -0x27, 0xDF, 0x00, 0x00, 0x28, 0x05, 0x00, 0x00, 0x28, 0x5E, -0x00, 0x00, 0x28, 0xDE, 0x00, 0x00, 0x29, 0x06, 0x00, 0x00, -0x29, 0x2E, 0x00, 0x00, 0x29, 0x54, 0x00, 0x00, 0x29, 0x7A, -0x00, 0x00, 0x29, 0xA2, 0x00, 0x00, 0x2A, 0x14, 0x00, 0x00, -0x2A, 0x3A, 0x00, 0x01, 0x00, 0x00, 0x00, 0xA6, 0x10, 0x00, -0x04, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x02, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x96, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0D, -0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, -0x00, 0x07, 0x00, 0x0D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x03, 0x00, 0x21, 0x00, 0x14, 0x00, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x35, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x42, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0D, -0x00, 0x45, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x01, -0x00, 0x1A, 0x00, 0x52, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, -0x00, 0x02, 0x00, 0x0E, 0x00, 0x6C, 0x00, 0x03, 0x00, 0x01, -0x04, 0x09, 0x00, 0x03, 0x00, 0x42, 0x00, 0x7A, 0x00, 0x03, -0x00, 0x01, 0x04, 0x09, 0x00, 0x04, 0x00, 0x1A, 0x00, 0xBC, -0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x05, 0x00, 0x06, -0x00, 0xD6, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x06, -0x00, 0x1A, 0x00, 0xDC, 0x47, 0x65, 0x6E, 0x65, 0x72, 0x61, -0x74, 0x65, 0x64, 0x46, 0x6F, 0x6E, 0x74, 0x52, 0x65, 0x67, -0x75, 0x6C, 0x61, 0x72, 0x47, 0x65, 0x6E, 0x65, 0x72, 0x61, -0x74, 0x65, 0x64, 0x46, 0x6F, 0x6E, 0x74, 0x20, 0x52, 0x65, -0x67, 0x75, 0x6C, 0x61, 0x72, 0x3A, 0x56, 0x65, 0x72, 0x73, -0x69, 0x6F, 0x6E, 0x20, 0x31, 0x2E, 0x30, 0x47, 0x65, 0x6E, -0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6F, 0x6E, 0x74, -0x31, 0x2E, 0x30, 0x47, 0x65, 0x6E, 0x65, 0x72, 0x61, 0x74, -0x65, 0x64, 0x46, 0x6F, 0x6E, 0x74, 0x00, 0x47, 0x00, 0x65, -0x00, 0x6E, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, -0x00, 0x65, 0x00, 0x64, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, -0x00, 0x74, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, 0x00, 0x75, -0x00, 0x6C, 0x00, 0x61, 0x00, 0x72, 0x00, 0x47, 0x00, 0x65, -0x00, 0x6E, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, -0x00, 0x65, 0x00, 0x64, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, -0x00, 0x74, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, -0x00, 0x75, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x72, 0x00, 0x3A, -0x00, 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, -0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x31, 0x00, 0x2E, -0x00, 0x30, 0x00, 0x47, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x65, -0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, -0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x31, -0x00, 0x2E, 0x00, 0x30, 0x00, 0x47, 0x00, 0x65, 0x00, 0x6E, -0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, -0x00, 0x64, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, -0x00, 0x04, 0x02, 0x3B, 0x01, 0x90, 0x00, 0x05, 0x00, 0x08, -0x02, 0x8A, 0x02, 0x58, 0x00, 0x00, 0x00, 0x4B, 0x02, 0x8A, -0x02, 0x58, 0x00, 0x00, 0x01, 0x5E, 0x00, 0x32, 0x01, 0x42, -0x00, 0x00, 0x02, 0x0B, 0x05, 0x02, 0x04, 0x05, 0x04, 0x02, -0x02, 0x04, 0xE0, 0x00, 0x82, 0xFF, 0x40, 0x00, 0x20, 0x5F, -0x08, 0x00, 0x00, 0x29, 0x00, 0x10, 0x00, 0x00, 0x47, 0x4F, -0x4F, 0x47, 0x00, 0xC0, 0x00, 0x00, 0xFF, 0xFD, 0x04, 0x2D, -0xFE, 0xDB, 0x00, 0x00, 0x05, 0x43, 0x01, 0x8B, 0x00, 0x00, -0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x18, 0x02, 0xCA, -0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x01, -0xFF, 0x85, 0xB0, 0x04, 0x8D, 0x00, }; - -#endif diff --git a/src/fonts/open-sans.h b/src/fonts/open-sans.h index df95f21..1b0869f 100644 --- a/src/fonts/open-sans.h +++ b/src/fonts/open-sans.h @@ -1,5 +1,15 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT +/*------------------------------------------------------------------------------------------------- +** +** open-sans.h +** +** Contains the binary font data for the Open Sans typeface used in the Spotify display UI. +** This header defines the glyph data for rendering fixed-width bold text on screen. +** +** SPDX-FileCopyrightText: 2025 Electric Diversions +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +*/ // This was created as per https://github.com/takkaO/OpenFontRender/blob/master/examples/TFT_eSPI/load_from_binary/load_from_binary.ino#L1 // The generated font supports the following characters; basic ASCII, accented chars from extended ASCII plus €: diff --git a/src/logTags.h b/src/logTags.h new file mode 100644 index 0000000..0515cf0 --- /dev/null +++ b/src/logTags.h @@ -0,0 +1,46 @@ +/*------------------------------------------------------------------------------------------------- +** +** logTags.h +** +** Defines logging tags for various modules in the project. Centralizing +** logging tags ensures consistency and supports structured log filtering +** during development and diagnostics. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-01-03 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#pragma once + +#define LOGTAG_GENERAL "General" // General logging +#define LOGTAG_GUI "GUI" // Logging info +#define LOGTAG_INPUT "Input" // Input related +#define LOGTAG_MULTITASK "Multitask" // General logging +#define LOGTAG_PLAYER "Player" // Spotify playing +#define LOGTAG_SONG_DATA "SongData" // Current song data +#define LOGTAG_METRICS "Metrics" // Timings +#define LOGTAG_HEAP "Heap" // Heap +#define LOGTAG_TRACE "Trace" // Explicit tracing for troubleshooting +#define LOGTAG_FILEIO "FileIO" // File IO Library +#define LOGTAG_CACHE "Cache" // Album Cache Logging +#define LOGTAG_DISPLAY_MODE "DispMode" // Display Modes + +/* +** =================================================================== +** ESP-IDF Log Macros +** These macros are used to log messages at different severity levels. +** Each macro allows for formatted output and optionally supports tags +** for categorizing log messages. +** +** log_e: Error level, used for serious issues or failures. +** log_w: Warning level, used for recoverable issues or potential problems. +** log_i: Info level, used for general informational messages. +** log_d: Debug level, used for detailed debug information during development. +** log_v: Verbose level, used for very detailed and granular debug information. +** =================================================================== +*/ diff --git a/src/main.cpp b/src/main.cpp index def29bb..e06622b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,202 +1,409 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT - -#include - +/*------------------------------------------------------------------------------------------------- +** +** main.cpp +** +** Main entry point for the Spotify Companion application. Initializes system +** components, configures logging, synchronizes time, handles Wi-Fi and Spotify +** authentication, and launches UI and background tasks on the ESP32. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-09 - Electric Diversions - Major update with refined UI task, touch input, and queue handling. +** ------------------------------------------------------------------------------------------------ +*/ + +/* +** =================================================================== +** Include main library dependencies +** =================================================================== +*/ + +// +// *** Little Fail-safe Filesystem Include *** +// +// #include + +// +// *** Task Scheduler Include *** +// Cooperative multitasking for Arduino, ESPx, STM32 +// and other microcontrollers +// https://github.com/arkhipenko/TaskScheduler +// // Specify all #define statements for task scheduler first #define _TASK_SCHEDULING_OPTIONS //#define _TASK_TIMECRITICAL //#define _TASK_SLEEP_ON_IDLE_RUN #include +// +// *** Open Font Render Include *** +// TTF font render support library for microcomputer using Arduino IDE. +// This library can render TTF font files in the SD card or TTF font files +// embedded in the program. +// https://github.com/takkaO/OpenFontRender +// #include -#include - -#include "fonts/open-sans.h" -#include "GfxUi.h" - -#include "connectivity.h" -#include "display.h" -#include "persistence.h" -#include "settings.h" -#include "util.h" -#include "spotify.h" - - - -// ---------------------------------------------------------------------------- -// Function prototypes (declarations) -// ---------------------------------------------------------------------------- -void drawProgress(const char *text, int8_t percentage); -void initJpegDecoder(); -void initOpenFontRender(); -void initScheduler(); -bool pushImageToTft(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap); -void syncTime(); -void repaint(); - - - -// ---------------------------------------------------------------------------- -// Globals -// ---------------------------------------------------------------------------- -OpenFontRender ofr; -FT6236 ts = FT6236(TFT_HEIGHT, TFT_WIDTH); -TFT_eSPI tft = TFT_eSPI(); -TFT_eSprite timeSprite = TFT_eSprite(&tft); -GfxUi ui = GfxUi(&tft, &ofr); - -Scheduler schedule; -// Create a task to run every hour to update the 'clock' -Task clockTask(CLOCK_TASK_INTERVAL_MILLIS, TASK_FOREVER, &syncTime); - -// time management variables -unsigned long lastTimeSyncMillis = 0; - -const int16_t centerWidth = tft.width() / 2; - -String spotifyRefreshToken = ""; - - - -// ---------------------------------------------------------------------------- -// setup() & loop() -// ---------------------------------------------------------------------------- -void setup(void) { - Serial.begin(115200); - delay(1000); - - logBanner(); - logMemoryStats(); - - initJpegDecoder(); - initTouchScreen(&ts); - initTft(&tft); - logDisplayDebugInfo(&tft); - - initFileSystem(); - initOpenFontRender(); - - initSpotifiy(); - - initScheduler(); - - tft.fillScreen(TFT_BLACK); - ui.drawLogo(); - - ofr.setFontSize(16); - ofr.cdrawString(APP_NAME, centerWidth, tft.height() - 50); - ofr.cdrawString(VERSION, centerWidth, tft.height() - 30); - - drawProgress("Starting WiFi...", 10); - if (WiFi.status() != WL_CONNECTED) { - startWiFi(); - } - - drawProgress("Synchronizing time...", 40); - syncTime(); - - drawProgress("Checking Spotify status...", 60); - spotifyRefreshToken = readFsString(SPOTIFY_REFRESH_TOKEN_FILE_NAME); - if (spotifyRefreshToken == "") { - log_i("No Spotify refresh token found. Requesting one through the browser via auth code."); - - drawProgress("Getting Spotify token...", 70); - ofr.cdrawString(String("Open browser at\nhttp://" SPOTIFY_ESPOTIFIER_NODE_NAME ".local").c_str(), centerWidth, 280); - String spotifyAuthCode = fetchSpotifyAuthCode(); - spotifyRefreshToken = spotify.requestAccessTokens(spotifyAuthCode.c_str(), SPOTIFY_REDIRECT_URI); - saveFsString(SPOTIFY_REFRESH_TOKEN_FILE_NAME, spotifyRefreshToken); - - // clear text beneath the progress bar - tft.fillRect(0, 290, tft.width(), 80, TFT_BLACK); - } else { - log_i("Using previously saved Spotify refresh token."); - } - - drawProgress("Logging into Spotify...", 90); - // The Spotify library - // - keeps track of the refresh token and its TTL internally - // - automatically renews the actual access token using the refresh token - // -> see SpotifyArduino.h#autoTokenRefresh and SpotifyArduino::checkAndRefreshAccessToken() (called before every API function) - spotify.setRefreshToken(spotifyRefreshToken.c_str()); - spotify.refreshAccessToken(); - log_i("Authentication against Spotify done. Refresh token: %s", spotifyRefreshToken.c_str()); - - drawProgress("Startup completed!", 100); +// +// *** WiFi Include *** +// esp32 Wifi support. Based on WiFi.h from Arduino WiFi shield library. +// Modified by Ivan Grokhotkov, December 2014 +// +#include + +// +// *** WiFi Secure Client Include *** +// Base class that provides Client SSL to ESP32 +// Additions Copyright (C) 2017 Evandro Luis Copercini. +// +#include + +// +// *** HTTP Client Include *** +// 2015 Markus Sattler. This file is part of the HTTPClient for Arduino. +// Port to ESP32 by Evandro Luis Copercini (2017) changed fingerprints to CA verification. +#include + +/* +** =================================================================== +** Local Includes +** =================================================================== +*/ + +#include "esp_task_wdt.h" + +#include "settings.h" // Global settings to configure app +#include "DisplayUI.h" // Base class for the UI +#include "ThingPulse/connectivity.h" // Connectivity support +#include "SpotifyPlayer.h" // Spotify Player for all the controls +#include "logTags.h" // Tags for logging +#include "SCLogger.h" // Logging framework +#include "Monitor.h" // Monitoring + +#include "ThingPulse/display.h" // ThingPulse display routines +#include "ThingPulse/util.h" // ThingPulse utility routines +#include "SCFileIO.h" // File IO routines - thread safe +#include "SpotifyArtMgr.h" +#include "UIViews/UIViewManager.h" +#include "scui.h" + + +// Enables DMA (Direct Memory Access) for high-speed, low-CPU-overhead data transfers. +// Useful for tasks like display updates or SPI communication. +#define USE_DMA + +/* +** =================================================================== +** Used Fonts +** =================================================================== +*/ +#include "Fonts/open-sans.h" +// #include "fonts/audiowide.h" +#include "Fonts/cousine-bold.h" + +/* +** =================================================================== +** Local function prototypes +** =================================================================== +*/ +void syncTime(); // syncs the sytem time +void setupLogging(); // set up logging +void initOpenFontRender(); // initialize the font renderer +void initScheduler(); // Initialize the task scheduler +void registerMonitorDescriptions(); // Initialize the monitor descriptions +void processPerformanceMetrics(); // Show metrics on schedule +void handleTouchInput(); // Check if LCD pressed +void dispatchSCUIQueueMessages(); // Dispatch messages to active view +// void ui_loop(SCUIMessage *pMessage); // Main UI loop handler + +// void handle_UM_IDLE(SCUIMessage *pMessage); // UM_IDLE + +// Task handles +TaskHandle_t UITaskHandle; +void uiHandlerTask(void *pvParameters); +QueueHandle_t scuiQueue; + +unsigned long delayBetweenRequests = 60000; // Time between requests (1 minute) +unsigned long requestDueTime; // time when request due + + +bool bIsInitialPress = false; +bool bIsInitialLift = false; + +/* +** =================================================================== +** Globals +** =================================================================== +*/ +OpenFontRender ofr; +OpenFontRender clockFont; +FT6236 ts = FT6236(TFT_HEIGHT, TFT_WIDTH); // Touch Controller +TFT_eSPI tft = TFT_eSPI(); // LCD display +DisplayUI ui = DisplayUI(&tft, &ofr, &clockFont); // Routines to update UI +SpotifyPlayer& spotifyPlayer = SpotifyPlayer::getInstance(); // Spotify Player + + +// Task Scheduler to use for time sync. clockTask runs every hour to update +// the 'clock'. +Scheduler schedule; +Task clockTask(CLOCK_TASK_INTERVAL_MILLIS, TASK_FOREVER, &syncTime); + +// Time management variables +unsigned long lastTimeSyncMillis = 0; // last time was synced + +/* +** =================================================================== +** setup() - called before the loop. runs just once. +** =================================================================== +*/ + +void setup() +{ + // Initialize serial output + Serial.begin(115200); + delay(3000); //(1000); ... extended due to early logging being clipped or missing + + // Set up logging levels + setupLogging(); + registerMonitorDescriptions(); + + // TODO: clean up the way this is working + ui.init(); + + // Log the banner and memory stats + logBanner(); + logMemoryStats(); + + // Initialize everything + initTouchScreen(&ts); + initTft(&tft); + logDisplayDebugInfo(&tft); + SCFileIO::getInstance().initialize(); + initOpenFontRender(); + spotifyPlayer.initialize(&scuiQueue); + initScheduler(); + + // Draw logo and app info to screen + ui.setBackground(TFTColor::Black); + ui.drawLogo(); + ui.drawAppInfo(); + + // === Start the start up sequence === + + // Connect WiFi + ui.drawProgress("Starting WiFi...", 10); + if (WiFi.status() != WL_CONNECTED) { + startWiFi(); + } + + // Sync Time + ui.drawProgress("Synchronizing time...", 40); + syncTime(); + + // Prep to log into Spotify + ui.drawProgress("Checking Spotify status...", 60); + if (spotifyPlayer.verifyRefreshToken()) + { + // token found + } + else + { + // token not found + ui.drawProgress("Getting Spotify token...", 70); + // clear text beneath the progress bar + tft.fillRect(0, 290, tft.width(), 80, TFT_BLACK); + String msg; + msg += "Open browser at\nhttp://"; + msg += spotifyPlayer.getNodeName(); + msg += ".local"; + ofr.cdrawString(msg.c_str(), ui.getCenterWidth(), 100); + } + + // Log into Spotify + ui.drawProgress("Logging into Spotify...", 90); + spotifyPlayer.login(); + + // Update to show complete + ui.drawProgress("Startup completed!", 100); + + delay(1000); + + // Initialize Display Modes + UIViewManager& dm = UIViewManager::getInstance(); + dm.setDisplayUI(&ui); + + spotifyPlayer.startBackgroundRefreshes(); + + // Create task and queue to process the UI + + // Initialize queue + scuiQueue = xQueueCreate(10, sizeof(SCUIMessage)); + if (scuiQueue == NULL) + { + spLogE(LOGTAG_MULTITASK, "Failed to create scuiQueue!"); + } + + spLogI(LOGTAG_MULTITASK, "creating background task - pinned to core 0"); + xTaskCreatePinnedToCore( + uiHandlerTask, // Task function + "UIHandler", // Task name + 8192, // Stack size + NULL, // Task parameter + 2, // Task priority + &UITaskHandle, // Task handle + 0 // Core ID + ); + spLogI(LOGTAG_MULTITASK, "background uiHandlerTask task created"); } -void loop(void) { - // Task execution - schedule.execute(); - - // if (ts.touched()) { - // TS_Point p = ts.getPoint(); - - // uint16_t touchX = p.x; - // uint16_t touchY = p.y; - - // log_d("Touch coordinates: x=%d, y=%d", touchX, touchY); - // // Debouncing; avoid returning the same touch multiple times. - // delay(50); - // } -} - - - -// ---------------------------------------------------------------------------- -// Functions -// ---------------------------------------------------------------------------- - -// void drawProgress(const char *text, int8_t percentage) { -// int numberOfLinebreaks = 0; -// int numberOfChars = strlen(text); -// for (int i = 0; i < numberOfChars; i++) { -// if (text[i] == '\n') { -// numberOfLinebreaks++; -// } -// } - -// ofr.setFontSize(24); -// int pbWidth = tft.width() - 100; -// int pbX = (tft.width() - pbWidth)/2; -// int pbY = 260; -// int progressTextY = 210; - -// tft.fillRect(0, progressTextY, tft.width(), 40, TFT_BLACK); -// ofr.cdrawString(text, centerWidth, progressTextY - (numberOfLinebreaks * 26)); -// ui.drawProgressBar(pbX, pbY, pbWidth, 15, percentage, TFT_WHITE, TFT_TP_BLUE); -// } -void drawProgress(const char *text, int8_t percentage) { - ofr.setFontSize(24); - int pbWidth = tft.width() - 100; - int pbX = (tft.width() - pbWidth)/2; - int pbY = 260; - int progressTextY = 210; - - tft.fillRect(0, progressTextY, tft.width(), 40, TFT_BLACK); - ofr.cdrawString(text, centerWidth, progressTextY); - ui.drawProgressBar(pbX, pbY, pbWidth, 15, percentage, TFT_WHITE, TFT_TP_BLUE); +/* +** =================================================================== +** syncTime() - Call back routine to sync the time and keep it +** accurate. +** =================================================================== +*/ +void syncTime() { + if (initTime()) + { + lastTimeSyncMillis = millis(); + setTimezone(TIMEZONE); + spLogI(LOGTAG_GENERAL, "Current local time: %s", getCurrentTimestamp(SYSTEM_TIMESTAMP_FORMAT).c_str()); + } } -void drawSeparator(uint16_t y) { - tft.drawFastHLine(10, y, tft.width() - 2 * 15, 0x4228); +/* +** =================================================================== +** setupLogging() +** Configures the logging levels for various tags using SCLogger. +** +** =================================================================== +*/ +void setupLogging() +{ + + Serial.printf("Entering setupLogging()\n"); + // Create the logger instance + SCLogger& logger = SCLogger::getInstance(); + + // Set default logging level globally (optional) + logger.setLogLevel("*", ESP_LOG_VERBOSE); //logger.setLogLevel("*", ESP_LOG_WARN); // Suppresses all logs by default + + // logger.setLogLevel("*", ESP_LOG_WARN); // Suppresses all logs by default + + // // Configure specific logging levels for each tag + // logger.setLogLevel(LOGTAG_INPUT, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_SONG_DATA, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_PLAYER, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_GUI, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_GENERAL, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_MULTITASK, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_METRICS, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_HEAP, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_TRACE, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_FILEIO, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_CACHE, ESP_LOG_WARN); + + + + logger.setLogLevel("*", ESP_LOG_WARN); // Suppresses all logs by default + + // Configure specific logging levels for each tag + logger.setLogLevel(LOGTAG_INPUT, ESP_LOG_VERBOSE); + // logger.setLogLevel(LOGTAG_SONG_DATA, ESP_LOG_ERROR); + logger.setLogLevel(LOGTAG_PLAYER, ESP_LOG_INFO); + // logger.setLogLevel(LOGTAG_GUI, ESP_LOG_INFO); + logger.setLogLevel(LOGTAG_GENERAL, ESP_LOG_INFO); + // logger.setLogLevel(LOGTAG_MULTITASK, ESP_LOG_VERBOSE); + logger.setLogLevel(LOGTAG_METRICS, ESP_LOG_INFO); + logger.setLogLevel(LOGTAG_HEAP, ESP_LOG_INFO); + //logger.setLogLevel(LOGTAG_TRACE, ESP_LOG_INFO); + // logger.setLogLevel(LOGTAG_FILEIO, ESP_LOG_INFO); + // logger.setLogLevel(LOGTAG_CACHE, ESP_LOG_DEBUG); + + + // Supress logs for ESP32 components + logger.setLogLevel("ssl_client", ESP_LOG_NONE); + + // Print log levels to serial for verification + Serial.printf("Log level for General: %d\n", logger.getLogLevel(LOGTAG_GENERAL)); + Serial.printf("Log level for GUI: %d\n", logger.getLogLevel(LOGTAG_GUI)); + Serial.printf("Log level for Input: %d\n", logger.getLogLevel(LOGTAG_INPUT)); + Serial.printf("Log level for Multitask: %d\n", logger.getLogLevel(LOGTAG_MULTITASK)); + Serial.printf("Log level for Player: %d\n", logger.getLogLevel(LOGTAG_PLAYER)); + Serial.printf("Log level for SongData: %d\n", logger.getLogLevel(LOGTAG_SONG_DATA)); + Serial.printf("Log level for Metrics: %d\n", logger.getLogLevel(LOGTAG_METRICS)); + Serial.printf("Log level for Heap: %d\n", logger.getLogLevel(LOGTAG_HEAP)); + Serial.printf("Log level for Trace: %d\n", logger.getLogLevel(LOGTAG_TRACE)); + Serial.printf("Log level for File IO: %d\n", logger.getLogLevel(LOGTAG_FILEIO)); + Serial.printf("Log level for Cache: %d\n", logger.getLogLevel(LOGTAG_CACHE)); + + // Example of logging initialization completion + spLogI(LOGTAG_GENERAL, "Logging levels initialized."); + + // + // ESP_LOG_NONE - 0: No log output. Suppresses all log messages for the tag. + // ESP_LOG_ERROR - 1: Errors only. Outputs critical errors that might require immediate attention. + // ESP_LOG_WARN - 2: Warnings and Errors. Includes non-critical issues and potential problems. + // ESP_LOG_INFO - 3: Informational logs. General information about application flow. + // ESP_LOG_DEBUG - 4: Debugging logs. Detailed information useful for debugging during development. + // ESP_LOG_VERBOSE - 5: All logs. Includes extremely detailed and low-level messages. + // + // Note: + // Default level for all tags can be set using: + // esp_log_level_set("*", ); + // Individual tags override the default level. } -void initJpegDecoder() { - // The JPEG image can be scaled by a factor of 1, 2, 4, or 8 (default: 0) - TJpgDec.setJpgScale(1); - // The decoder must be given the exact name of the rendering function - TJpgDec.setCallback(pushImageToTft); +/* +** =================================================================== +** Register Monitor Descriptions +** This function registers human-readable descriptions for all +** monitor IDs defined in the application. Call this function +** during application initialization. +** =================================================================== +*/ +void registerMonitorDescriptions() +{ + Monitor::registerDescription(MONITOR_ID_CALCULATE_AVG_BACKGROUND_COLOR, "Calc Color Avg"); + Monitor::registerDescription(MONITOR_ID_SPOTIFY_GET_CURRENTLY_PLAYING, "Curr Playing REST"); + Monitor::registerDescription(MONITOR_ID_SPOTIFY_IMAGE_HTTP_GET, "Art http get"); + Monitor::registerDescription(MONITOR_ID_SPOTIFY_IMAGE_FILE_SAVE, "Art file save"); + Monitor::registerDescription(MONITOR_ID_SPOTIFY_IMAGE_FILE_LOAD, "Art file load"); + Monitor::registerDescription(MONITOR_ID_SPOTIFY_IMAGE_CACHE_LOAD, "Art index load"); + Monitor::registerDescription(MONITOR_ID_SPOTIFY_IMAGE_CACHE_SAVE, "Art index save"); + Monitor::registerDescription(MONITOR_ID_FETCH_ALBUM_ART, "Total art fetch"); + Monitor::registerDescription(MONITOR_ID_SCUI_QUEUE_DELAY, "SCUI Queue Delay"); } +/* +** =================================================================== +** initOpenFontRender() +** +** initialize open font render +** =================================================================== +*/ void initOpenFontRender() { ofr.loadFont(opensans, sizeof(opensans)); ofr.setDrawer(tft); ofr.setFontColor(TFT_WHITE); ofr.setBackgroundColor(TFT_BLACK); + + clockFont.loadFont(cousineBold, sizeof(cousineBold)); + clockFont.setDrawer(tft); + clockFont.setFontColor(TFT_WHITE); + clockFont.setBackgroundColor(TFT_BLACK); } +/* +** =================================================================== +** initScheduler() +** +** initialize the scheduler to update the clock +** =================================================================== +*/ void initScheduler() { // Set the options for the task so that it "catches up" if there is a delay clockTask.setSchedulingOption(TASK_SCHEDULE); @@ -207,25 +414,206 @@ void initScheduler() { clockTask.enable(); } -// Function will be called as a callback during decoding of a JPEG file to -// render each block to the TFT. -bool pushImageToTft(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap) { - // Stop further decoding as image is running off bottom of screen - if (y >= tft.height()) { - return 0; - } +/* +** =================================================================== +** loop() +** The main application loop. This function runs continuously +** but is designed to yield execution to FreeRTOS tasks. +** +** - Delays execution to prevent excessive CPU usage. +** - Executes scheduled tasks using the TaskScheduler. +** +** Since FreeRTOS tasks handle most functionality, this loop +** primarily serves as a placeholder. +** =================================================================== +*/ + +void loop() +{ + vTaskDelay(pdMS_TO_TICKS(1000)); // Keep loop from consuming resources + + schedule.execute(); - // Automatically clips the image block rendering at the TFT boundaries. - tft.pushImage(x, y, w, h, bitmap); +} - // Return 1 to decode next block - return 1; +/* +** =================================================================== +** UI Handler Task +** This task is responsible for managing UI updates and input +** processing in a continuous loop. It performs the following: +** +** - Retrieves the currently active UI view from UIViewManager. +** - Processes system performance metrics. +** - Handles touch input events. +** - Dispatches messages from the SCUI queue. +** - Delays execution to maintain a 60 FPS refresh rate and +** allow other tasks to execute. +** +** Since vTaskDelay() is used, the Task Watchdog does not require +** manual resets. +** +** This task runs indefinitely. +** +** Parameters: +** pvParameters - Unused parameter required by FreeRTOS. +** =================================================================== +*/ +UIView *pActiveView = nullptr; +void uiHandlerTask(void *pvParameters) +{ + spLogI(LOGTAG_MULTITASK, "uiHandlerTask task executing. about to enter loop."); + + while (true) + { + // Feed the Task Watchdog to avoid timeout (not needed with vTaskDelay below) + // esp_task_wdt_reset(); + + processPerformanceMetrics(); + + pActiveView = UIViewManager::getInstance().getActiveView(); + + handleTouchInput(); + + // Reset pActiveView in case it changed after handling input + // (if you don't do this, messages will go to the wrong + // view.) + pActiveView = UIViewManager::getInstance().getActiveView(); + + dispatchSCUIQueueMessages(); + + // Allow other tasks to execute + vTaskDelay(pdMS_TO_TICKS(16)); // 60 fps refresh rate + } } -void syncTime() { - if (initTime()) { - lastTimeSyncMillis = millis(); - setTimezone(TIMEZONE); - log_i("Current local time: %s", getCurrentTimestamp(SYSTEM_TIMESTAMP_FORMAT).c_str()); - } +/* +** =================================================================== +** processPerformanceMetrics() +** =================================================================== +*/ +void processPerformanceMetrics() +{ + + if (millis() > requestDueTime) + { + bool heapWarning = !(Monitor::watchHeap(HEAP_LOW_THRESHOLD)); + if (heapWarning) + { + // ui.setBackground(TFTColor::SC_LowHeap, true); + // char s[50]; + // snprintf(s, sizeof(s), "Low Heap: %u", Monitor::getFreeHeap()); + // ui.drawTextToLCD(s, (ui.getCenterHeight() - 10)); + // vTaskDelay(pdMS_TO_TICKS(3000)); // 3 second delay to keep msg up + } + Monitor::dumpStats(LOGTAG_METRICS); + Monitor::logUptime(LOGTAG_METRICS); + requestDueTime = millis() + delayBetweenRequests; + + } + +} + + +/* +** =================================================================== +** handleTouchInput() +** =================================================================== +*/ +void handleTouchInput() +{ + static bool isTouchInProgress = false; + if (ts.touched()) + { + // track touch has started + isTouchInProgress = true; + + // x and y are the portrait coordinates. + // not sure why... + TS_Point p = ts.getPoint(); + + // flip the cooridnates to be landscape + uint16_t touchX = p.y; + uint16_t touchY = tft.height() - p.x; + + p.x = touchX; + p.y = touchY; + + bIsInitialLift = false; + if (!bIsInitialPress) + { + + spLogI(LOGTAG_INPUT, "Initial Press Detected x=%d, y=%d", touchX, touchY); + bIsInitialPress = true; + + UBaseType_t messagesInQueue = uxQueueMessagesWaiting(scuiQueue); + + pActiveView->onTouchDown(p); + + // if there was a message in the queue when the press took place, + // there is a good chance that the UI is being updated and the onTouchDown() + // event which happens immediately will act in the middle of something. Leaving + // this for now since responding immediately can be a good thing but let's + // at least clean up afterwards if something paints on top of the resulting + // action. TODO: Consider putting user input on the queue instead of letting it + // interrupt whatever is going on; however, if this works reasonably well + // it might be worth leaving as is since it provides a bit of responsiveness. + if (messagesInQueue > 1) + { + spLogI(LOGTAG_GENERAL, "Pending messages in queue when processing touch. count: %u", messagesInQueue); + SCUIMessage msg; + msg.type = SCUIMessageType::UM_MARK_DIRTY; + msg.str = ""; + msg.num = true; + + Monitor::start(MONITOR_ID_SCUI_QUEUE_DELAY, LOGTAG_MULTITASK, "handleTouchInput()"); + if (xQueueSend(scuiQueue, &msg, pdMS_TO_TICKS(10)) != pdPASS) + { + spLogE(LOGTAG_PLAYER, "Failed to send SCUI message to queue"); + } + } + + } + } + else + { + if (isTouchInProgress) + { + bIsInitialPress = false; + if (!bIsInitialLift) + { + bIsInitialLift = true; + isTouchInProgress = false; + pActiveView->onTouchUp(); + } + } + } } + +/* +** =================================================================== +** dispatchSCUIQueueMessages() +** =================================================================== +*/ +void dispatchSCUIQueueMessages() +{ + // make static to avoid reallocations + static SCUIMessage message; + + // watch the size + Monitor::watchQueue(scuiQueue, 1); + + if (xQueueReceive(scuiQueue, &message, 0) != pdPASS) + { + // Send in IDLE if nothing in the queue + message.type = SCUIMessageType::UM_IDLE; + message.str = ""; + message.num = 0; + } + else + { + // Track how long these messages are taking + Monitor::stop(MONITOR_ID_SCUI_QUEUE_DELAY); + } + pActiveView->handleMessage(&message); +} + diff --git a/src/persistence.h b/src/persistence.h deleted file mode 100644 index 7b16308..0000000 --- a/src/persistence.h +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT - -#pragma once - -#include - -void listFiles(); - -void initFileSystem() { - if (LittleFS.begin()) { - log_i("Flash FS available!"); - } else { - log_e("Flash FS initialisation failed!"); - } - - listFiles(); -} - -void listFiles() { - log_i("Flash FS files found:"); - - File root = LittleFS.open("/"); - while (true) { - File entry = root.openNextFile(); - if (!entry) { - break; - } - log_i("- %s, %d bytes", entry.name(), entry.size()); - entry.close(); - } -} - -String readFsString(const char *path) { - String token = ""; - log_i("Loading string from '%s'.", path); - File f = LittleFS.open(path, "r"); - if (f) { - token = f.readString(); - log_d("Persisted string: %s", token.c_str()); - f.close(); - } else { - log_e("Failed to load string from file system, returning empty."); - } - return token; -} - -void saveFsString(const char *path, String string) { - log_i("Saving string to '%s'.", path); - File f = LittleFS.open(path, "w+"); - if (f) { - f.print(string); - f.close(); - } else { - log_e("Failed to open file."); - } -} diff --git a/src/scui.h b/src/scui.h new file mode 100644 index 0000000..08960a0 --- /dev/null +++ b/src/scui.h @@ -0,0 +1,45 @@ +/*------------------------------------------------------------------------------------------------- +** +** scui.h +** +** Defines Spotify Companion User Interface (SCUI) messaging. This includes +** message types and structures used for asynchronous, thread-safe +** communication between tasks via FreeRTOS queues. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2025-02-08 - Electric Diversions - Initial creation. +** ------------------------------------------------------------------------------------------------ +*/ + +#ifndef SCUI_H +#define SCUI_H + +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/queue.h" + +// Enum for supported message types +enum class SCUIMessageType +{ + UM_STATUS_BOX, + UM_DOWNLOAD_BOX, + UM_MARK_DIRTY, + UM_IDLE, + UM_PLAYER_REFRESH +}; + +// Structure for a UI message +struct SCUIMessage +{ + SCUIMessageType type; + String str; // Generic data payload (e.g., track name, status update) + int num; // Generic payload +}; + +#endif // SCUI_H + diff --git a/src/settings.h b/src/settings.h index 1d5b590..107ab6e 100644 --- a/src/settings.h +++ b/src/settings.h @@ -1,42 +1,57 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT +/*------------------------------------------------------------------------------------------------- +** +** settings.h +** +** Main constants used by the application, including versioning, +** compile-time info, time zone, display rotation, and system behavior +** for the ESP32 Spotify Remote. +** +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com +** SPDX-License-Identifier: MIT +** +** ------------------------------------------------------------------------------------------------ +** Change Log: +** 2024-12-26 - Electric Diversions - Copied from ThingPulse Spotify Remote. +** 2024-12-27 - Electric Diversions - Removed blocking declarations and dead code. +** ------------------------------------------------------------------------------------------------ +*/ #pragma once +#include "compile_time.h" // **************************************************************************** // User settings // **************************************************************************** -// WiFi -const char *SSID = ""; -const char *WIFI_PWD = ""; -// timezone Europe/Zurich as per https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv -#define TIMEZONE "CET-1CEST,M3.5.0,M10.5.0/3" +/* +** =================================================================== +** Version and Name Information +** =================================================================== +*/ +constexpr const char* APP_NAME = "ESP32 Spotify Remote"; +constexpr const char* VERSION = "2.0.0"; +constexpr const char* COMPILE_TIME = SC_COMPILE_TIME; -// Spotify settings -const char *SPOTIFY_CLIENT_ID = ""; -const char *SPOTIFY_CLIENT_SECRET = ""; -// Use http://.local/callback/ as the redirect URI for the app on Spotify. -// Hence, the default URI is http://tp-spotify.local/callback/. -// If you change the value here, you need to modify the redirect URI on Spotify as well. -#define SPOTIFY_ESPOTIFIER_NODE_NAME "tp-spotify" +/* +** =================================================================== +** Time Zone to use +** =================================================================== +** +** timezone Europe/Zurich as per +** https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv +*/ +#define TIMEZONE "CST6CDT,M3.2.0,M11.1.0" - -// **************************************************************************** -// System settings - do not modify unless you understand what you are doing! -// **************************************************************************** -typedef struct RectangleDef { - uint16_t x; - uint16_t y; - uint16_t width; - uint16_t height; -} RectangleDef; - -RectangleDef timeSpritePos = {0, 0, 320, 88}; +/* +** =================================================================== +** System Settings - Per ThingPulse, do not modify unless you +** understand what you are doing! +** =================================================================== +*/ // 2: portrait, on/off switch right side -> 0/0 top left // 3: landscape, on/off switch at the top -> 0/0 top left -#define TFT_ROTATION 2 +#define TFT_ROTATION 3 //2 // all other TFT_xyz flags are defined in platformio.ini as PIO build flags // 0: portrait, on/off switch right side -> 0/0 top left @@ -48,33 +63,6 @@ RectangleDef timeSpritePos = {0, 0, 320, 88}; // Initial LCD Backlight brightness #define TFT_LED_BRIGHTNESS 200 -// the medium blue in the TP logo is 0x0067B0 which converts to 0x0336 in 16bit RGB565 -#define TFT_TP_BLUE 0x0336 - -// format specifiers: https://cplusplus.com/reference/ctime/strftime/ -#ifdef DATE_TIME_FORMAT_US - int timePosX = 29; - #define UI_DATE_FORMAT "%m/%d/%Y" - #define UI_TIME_FORMAT "%I:%M:%S %P" - #define UI_TIME_FORMAT_NO_SECONDS "%I:%M %P" - #define UI_TIMESTAMP_FORMAT (UI_DATE_FORMAT + " " + UI_TIME_FORMAT) -#else - int timePosX = 68; - #define UI_DATE_FORMAT "%d.%m.%Y" - #define UI_TIME_FORMAT "%H:%M:%S" - #define UI_TIME_FORMAT_NO_SECONDS "%H:%M" - #define UI_TIMESTAMP_FORMAT (UI_DATE_FORMAT + " " + UI_TIME_FORMAT) -#endif - #define SYSTEM_TIMESTAMP_FORMAT "%Y-%m-%d %H:%M:%S" #define CLOCK_TASK_INTERVAL_MILLIS 3600000 -// the spotify-api-arduino library sets this to 1 (i.e. enabled) by default -// #define SPOTIFY_DEBUG 0 - -#define SPOTIFY_REFRESH_TOKEN_FILE_NAME "/refresh-token.txt" -// the '/callback/' path is essential as spotify.h#fetchSpotifyAuthCode() registers a handler for it -#define SPOTIFY_REDIRECT_URI "http%3A%2F%2F" SPOTIFY_ESPOTIFIER_NODE_NAME ".local%2Fcallback%2F" - -#define APP_NAME "ESP32 Spotify Remote" -#define VERSION "1.0.0" diff --git a/src/util.h b/src/util.h deleted file mode 100644 index 976d9cf..0000000 --- a/src/util.h +++ /dev/null @@ -1,85 +0,0 @@ -// SPDX-FileCopyrightText: 2023 ThingPulse Ltd., https://thingpulse.com -// SPDX-License-Identifier: MIT - -#pragma once - -#include "time.h" -#include "settings.h" - -char timestampBuffer[26]; - - -String getCurrentTimestamp(const char* format) { - struct tm timeinfo; - if (!getLocalTime(&timeinfo)) { - log_e("Failed to obtain time."); - return ""; - } - strftime(timestampBuffer, sizeof(timestampBuffer), format, &timeinfo); - return String(timestampBuffer); -} - -boolean initTime() { - struct tm timeinfo; - - log_i("Synchronizing time."); - // Connect to NTP server with 0 TZ offset, call setTimezone() later - configTime(0, 0, "pool.ntp.org"); - // getLocalTime() uses a default timeout of 5s -> the loop takes at most 3*5s to - for (int i = 0; i < 3; i++) { - if (getLocalTime(&timeinfo)) { - log_i("UTC time: %s.", getCurrentTimestamp(SYSTEM_TIMESTAMP_FORMAT).c_str()); - return true; - } - } - - log_e("Failed to obtain time."); - return false; -} - -void logBanner() { - log_i("**********************************************"); - log_i("* ThingPulse Spotify Controller v%s *", VERSION); - log_i("**********************************************"); -} - -void logMemoryStats() { - log_i("Total heap: %d", ESP.getHeapSize()); - log_i("Free heap: %d", ESP.getFreeHeap()); - log_i("Total PSRAM: %d", ESP.getPsramSize()); - log_i("Free PSRAM: %d", ESP.getFreePsram()); -} - -void setTimezone(const char* timezone) { - log_i("Setting timezone to '%s'.", timezone); - // Clock settings are adjusted to show the new local time - setenv("TZ", timezone, 1); - tzset(); -} - -// Algorithm: http://howardhinnant.github.io/date_algorithms.html -int days_from_epoch(int y, int m, int d) { - y -= m <= 2; - int era = y / 400; - int yoe = y - era * 400; // [0, 399] - int doy = (153 * (m + (m > 2 ? -3 : 9)) + 2) / 5 + d - 1; // [0, 365] - int doe = yoe * 365 + yoe / 4 - yoe / 100 + doy; // [0, 146096] - return era * 146097 + doe - 719468; -} -// https://stackoverflow.com/a/58037981/131929 -// aka timegm() but that's already defined in the Weather Station lib but not accessible -time_t mkgmtime(struct tm const *t) { - int year = t->tm_year + 1900; - int month = t->tm_mon; // 0-11 - if (month > 11) { - year += month / 12; - month %= 12; - } else if (month < 0) { - int years_diff = (11 - month) / 12; - year -= years_diff; - month += 12 * years_diff; - } - int days_since_epoch = days_from_epoch(year, month + 1, t->tm_mday); - - return 60 * (60 * (24L * days_since_epoch + t->tm_hour) + t->tm_min) + t->tm_sec; -} From 0c61d889773be94daea2ab172fc8e89089a8f3e6 Mon Sep 17 00:00:00 2001 From: Electric Diversions <209417629+Electric-Diversions@users.noreply.github.com> Date: Mon, 12 May 2025 22:55:18 -0500 Subject: [PATCH 02/15] Correct default cover art filename and clean up unused #defines for v2.0.0 release --- src/SpotifyArtMgr.h | 2 +- src/SpotifyPlayer.cpp | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/SpotifyArtMgr.h b/src/SpotifyArtMgr.h index f2cbe0a..96d3a32 100644 --- a/src/SpotifyArtMgr.h +++ b/src/SpotifyArtMgr.h @@ -23,7 +23,7 @@ #include #include -#define SP_NO_COVER_JPG_FILENAME "/NoArtAvailablejpeg.jpg" +#define SP_NO_COVER_JPG_FILENAME "/DefaultCoverArt.jpg" /* ** =================================================================== diff --git a/src/SpotifyPlayer.cpp b/src/SpotifyPlayer.cpp index e781e36..17d46b4 100644 --- a/src/SpotifyPlayer.cpp +++ b/src/SpotifyPlayer.cpp @@ -82,8 +82,6 @@ int SpotifyPlayer::getAlbumReleaseYear() // Spotify related #define SP_SPOTIFY_MARKET "IE" -#define SP_COVER_JPG_FILENAME "/cover.jpg" -// #define SP_NO_COVER_JPG_FILENAME "/NoArtAvailablejpeg.jpg" /* ** =================================================================== From c9df5757684fa75df04ae0bddb37c731853acd56 Mon Sep 17 00:00:00 2001 From: Electric Diversions <209417629+Electric-Diversions@users.noreply.github.com> Date: Thu, 15 May 2025 00:01:23 -0500 Subject: [PATCH 03/15] Correct SPDX-FileCopyrightText name. --- src/fonts/cousine-bold.h | 2 +- src/fonts/open-sans.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fonts/cousine-bold.h b/src/fonts/cousine-bold.h index 62dd22b..fee3652 100644 --- a/src/fonts/cousine-bold.h +++ b/src/fonts/cousine-bold.h @@ -5,7 +5,7 @@ ** Contains the binary font data for the Cousine Bold typeface used in the Spotify display UI. ** This header defines the glyph data for rendering fixed-width bold text on screen. ** -** SPDX-FileCopyrightText: 2025 Electric Diversions +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com ** SPDX-License-Identifier: MIT ** ** ------------------------------------------------------------------------------------------------ diff --git a/src/fonts/open-sans.h b/src/fonts/open-sans.h index 1b0869f..87f6ca1 100644 --- a/src/fonts/open-sans.h +++ b/src/fonts/open-sans.h @@ -5,7 +5,7 @@ ** Contains the binary font data for the Open Sans typeface used in the Spotify display UI. ** This header defines the glyph data for rendering fixed-width bold text on screen. ** -** SPDX-FileCopyrightText: 2025 Electric Diversions +** SPDX-FileCopyrightText: 2025 ThingPulse Ltd., https://thingpulse.com ** SPDX-License-Identifier: MIT ** ** ------------------------------------------------------------------------------------------------ From d9e255a6f1bb3cdc1a11028509d13a9b33cf94d2 Mon Sep 17 00:00:00 2001 From: Electric Diversions <209417629+Electric-Diversions@users.noreply.github.com> Date: Thu, 15 May 2025 22:28:26 -0500 Subject: [PATCH 04/15] Update readme and supporting files for 2.0.0 release. --- README.md | 84 ++++++++++++++++++++++------ images/ClockView.jpg | Bin 0 -> 979964 bytes images/CoverArtView.jpg | Bin 0 -> 767741 bytes images/DiagnosticView.jpg | Bin 0 -> 727322 bytes images/HomeView.jpg | Bin 0 -> 717383 bytes images/SpotifyAppSettings.png | Bin 152567 -> 0 bytes images/SpotifyAppSettingsSave.png | Bin 23772 -> 0 bytes images/SpotifyAppSignUp1.png | Bin 152241 -> 0 bytes images/SpotifyClientId.png | Bin 0 -> 134440 bytes images/SpotifyClientId.png_original | Bin 0 -> 139919 bytes images/SpotifyConnectScreen.png | Bin 195327 -> 0 bytes images/SpotifyCreateApp.png | Bin 0 -> 272038 bytes images/SpotifyCredentials.png | Bin 196982 -> 0 bytes images/SpotifyDashboard.png | Bin 210192 -> 379992 bytes images/SpotifyppSignUp3.png | Bin 116952 -> 0 bytes 15 files changed, 66 insertions(+), 18 deletions(-) create mode 100644 images/ClockView.jpg create mode 100644 images/CoverArtView.jpg create mode 100644 images/DiagnosticView.jpg create mode 100644 images/HomeView.jpg delete mode 100644 images/SpotifyAppSettings.png delete mode 100644 images/SpotifyAppSettingsSave.png delete mode 100644 images/SpotifyAppSignUp1.png create mode 100644 images/SpotifyClientId.png create mode 100644 images/SpotifyClientId.png_original delete mode 100644 images/SpotifyConnectScreen.png create mode 100644 images/SpotifyCreateApp.png delete mode 100644 images/SpotifyCredentials.png delete mode 100644 images/SpotifyppSignUp3.png diff --git a/README.md b/README.md index 4427c08..0214b3d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,23 @@ Spotify controller application for the [ThingPulse Color Kit Grande](https://thingpulse.com/product/esp32-wifi-color-display-kit-grande/). -[![Color Kit Grande with sample application: weather station](https://thingpulse.com/wp-content/uploads/2022/10/ThingPulse-Color-Kit-Grand-with-sample-application.jpg)](https://thingpulse.com/product/esp32-wifi-color-display-kit-grande/) + + + HomeView UI Example + + + +

+ + Cover View + + + Clock View + + + Diagnostic View + +

## Purpose of this project @@ -15,11 +31,49 @@ The currently playing song can be paused, resumed and skipped to the next or pre A full OAuth 2.0 web flow is used to acquire the necessary access and refresh tokens to permit the user to control the player. In order to run this project on your device, you will need to setup an application on your Spotify dashboard (instructions below). -## Features + ## Features - - Artwork download - - Control player on touch screen: play, Pause, next, prev - - Authentication and authorization (OAuth 2.0 flow) on device. +- **Spotify Playback Control** + - Play, pause, skip to next/previous track from the touch screen + - Control playback on any active Spotify Connect device linked to your account (e.g., phone, browser, smart speaker) + +- **Album Art Display** + - Downloads and displays album artwork via Spotify Web API + - Caches artwork locally for performance + +- **Multiple UI Modes** + - Home view with track metadata and album art + - Cover Art only view + - Clock view with time and playback progress + - Diagnostics view with system stats and Spotify state + +- **OAuth 2.0 Authorization Flow** + - Authentication and authorization (OAuth 2.0 flow) on device + +- **Designed for ESP32 + TFT Touch** + - Built using PlatformIO and Arduino + - Touch event handling for UI buttons and screen navigation + - Takes advantage of ESP32 dual-core architecture: UI logic runs on one core, while background tasks (e.g., album art refresh) run on the other + +- **Extensible Design** + - Modular architecture allows easy addition of new Views (UI screens) + - Built-in monitoring tools for measuring system performance and UI responsiveness + - Structured and tag-based logging system for easier debugging and analysis + + + + + Design + + +## Using the Spotify Controller + +- Tap the **Prev**, **Pause/Play**, and **Next** buttons to control music playback. +- Tap the **album art** on the Home view to switch to the **Cover Art view**. +- Tap the **clock** to switch to the **Clock view**. +- Tap the **network status box** in the lower-right corner to open the **Diagnostics view**. + +> For detailed display logic and diagnostics layout, see `DiagnosticsView.cpp`. ## Service level promise @@ -37,28 +91,22 @@ See our [instructions](https://docs.thingpulse.com/guides/esp32-color-kit-grande 1. Go to [https://developer.spotify.com/dashboard/login](https://developer.spotify.com/dashboard/login) and login to or sign up for the Spotify Developer Dashboard -2. Select "My New App" +2. Select "Create app" 3. Fill out the form. Give your new app a name you can attribute to this project. It's safe to select "I don't know" for the type of application. +Add "http://tp-spotify.local/callback/" to the Redirect URIs section. - - -4. At the end of the 3 steps click "Submit" - - + **NOTE** If you are running more than ThingPulse Spotify Remote in the same WiFi network, you should choose a unique name rather than "tp-spotify". Regardless of what you choose it has to reflect what you set for `SPOTIFY_ESPOTIFIER_NODE_NAME` in `spotify.h` in the project. -5. Set the unique Client ID and Client Secret as values for the respective variables in `settings.h`. + - + **Don't forget to save your settings.** -6. Click on "Edit Settings". Add "http://tp-spotify.local/callback/" to the Redirect URIs section. +4. Set the unique Client ID and Client Secret as values for the respective variables in `spotify.h`. - **NOTE** If you are running more than ThingPulse Spotify Remote in the same WiFi network, you should choose a unique name rather than "tp-spotify". Regardless of what you choose it has to reflect what you set for `SPOTIFY_ESPOTIFIER_NODE_NAME` in `settings.h` in the project. + - -7. Don't forget to save your settings. - diff --git a/images/ClockView.jpg b/images/ClockView.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3401aa1542cc259278531a9f91c786ab65fd4a78 GIT binary patch literal 979964 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 )(l1O3m5Br$^te~(wwA+Iu)+wm3{%c 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 z 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

x10t~K_Dq2 za5n>)i9)pU=mpFsDA#aiDl_E;%y zfaR5@7GHFAx4nGvj+w+{i$t&3lUmOWU%lrTPa1Y5F8;d8!HW%bbd!VbO6#FnW2b)delSrbnesAe^l8PN8?_cttkn9 z^(o3@ESy75tgr9ndHac?-kUb&+27#ETsr7+H(Cx0oQrPf_Hg=sK(}8j$YXO@3OHzD zT^Ms+1tW*u9M}D;|Kz_^VOpub0_gd36HC0Tgf3)7Io0Su_**Wd0O3S4*B)-}RA^L#4Z?egq#?kcc-_+g6U+#sp(qaAgWQjKRk z+1QqOLR8k1)TSv{8NJtA;l5N4abw378(L!`AS3Lr>FY*%UnB750aH7)vdA6m^vd41#t)}`GfBxvD zoB5$+=EIp@Lq3zjc@Eo1-Mhz(v*?)qf^P1yan<0Tc@l$y{aNn1YWjI3G4;>cOUu6P z5|b*+mbYGurP^IIyZd3X-2(k8EGo_Sa#TA=C0PY6#r4C!cy9d1xLyO^A^EE5^Pe=L z9aK$$9jVgt+itLqO73@`wH7jshnQxfsz%9~ApU5L#-R5lW)w&Nf&9=ay)aShzh?bV z{jDh|UCgx?5ga}&r9MoSH2Lvm#z6MYY^C*XvIA-5W0ca&XPT=*`ZH4xyZA2+%a({B z2a)KhDqsEfXX^{=k_y9d8*U`#<)+VM@%)IXAm5;t>Bd;(pOky`E;W@t&@WZ>ob@`J zwc{3lUwoZ6BT4;vg@c99t4oA>61K7IE{C4&tQ-dJM18$XP) zS^312KCGhm1?f?(ezRh`{|5gLOekXX%>nb~MVHy_sV87ZPmt<1>3#EQ4 zg$4?m50S?zQ~3tL*ItgUNSJwe4*4^a_`mE1b3ao^hvd9pkvG}r@-kHm%9GG2>-yW> zSxfj6OHV5`JOQ+9>C5jCPm_MOjt-!~8(9`zEtISeXIMZdq8oF+!lC zEvPbG^|d1{3oQZ0PdGX*S4#&mHsXyDWjlWvQo?wC3EQFjyRsl#{(7I| zj?M8u$YH~m{{UmwX=U=LjF;TGZ1oYgbFs#< zM-9M-*33w{@y`j%+U8T2A6;3p5?O%v_rKYC?=w zQST`)94LAe$zk36SxZ2#Nv#K7W4GHWhoGMNsj2X8@3rEp@%jh>$ov6tidJSizMt7| z-h^5<8(Rq1*ET*2^xOy^IK*``Cy#;LajGf9?tA#XX4wn-)&x(Q zwD{e3m7fS^UQjddbE=D@Wj8!H*Y{_qES~>RnkNy&;u#h|Z}H~f%oEnr0KfXJFu-ixXyeMoXg#Yew zr&QvKX2op4R&ru?o8>Q5u)%?9iDq6q;b;P8Zm=m!?`Zja&|@xQw*E4?me{zG1DXv~ zBF;ZxhJ~+#5~lBE)esa`V|#)=o>aFl*8B^3985dg`{k38hKSfsQix3afmvD)-OR9J zhHCPxdKy0M4z*BsM~DKk4>C-Aata=O52aP{`iBVTztP9LdLt$7m4|R_ z8^`dnEVwq-e181Xt22@mrn`;RK|!?T;PU}CZnq#?AZS)&!`X)Dbj~~JwMan>+cn!h zE%ovbY)`1g64A^1UBWicKWbmFb)`tp+}JW%c2e?!n3!R^pcHU`cOU(53*oD;QU6lm zRaEg^5deLeyIrlJ%oM>vz1(%wzI-XY;f@$gelz=56{LH zsL1xnta|?<^h^ZFJFT=OEV4evT;DvJ-(e66DI|vnOdHd%=_mb>r*=dC2V%uWl3;R< zI~)CpC1QYE{OrT2AyKWw7u~(l{WDYTPUSmi_uPLNDB)$=hc<^rzyjzrH}lhBM4j5| zas=#nSwMWh?DDAn3$>)tkC?yieC=CUjpJ?Pc1lt|1zy0XO5OyB6v4Gnlk}mtZ-AGL zGOISG3K?O1?Q?(0_o>p0?SK1U7>D_T8CHhVo+qoEBe{)N;P{LcVcq6(GAPr2xX{#| zQJ%fXgH@dS8IaLeJ{=`QUVh&xe%2HQ-54 z7hRm<#_0JdW}^Mcq%Zfo6qJX&)1bnABFbE(pHxBi_qWqK&UfRu%#A__E{C;(4~WUV zt%-2u36DD}R$h>y1JGeJ(9?)1k(1>mw`;C1{+e!N;@0FV_qV2vEeV#V{FAMGGa`jJ z*|U77Oz}i@t+7SED$`jO4&z@6kQmD=K<7K8-C{h1H-m}B#}tH*W|h^1Rmt}I@&}

e6G3TBjwrciH+bNbxC{tHIN;P2 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

_@7kb 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

Ew}PGd&`OLLsZObz29hm56t-F=pbn) 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

?q{+#yWdg z)Afn0?Jw-KEl%G>(x+Bdx4OEFO8dr0hkPV$+EjOMewg}i_80w@bzj=g;{$vw_+PF? z;Pl^aE^jr7WML(3G5wm2Pft0fYk?wtgNBgsrV*%t!?-1bE>Ven=7>DKbO$s zsK$C%^_SuQ0Qev`zz-2!NZN0St#s{Z$-GXw;Z|w0yFOR;MZN$$s)oS##TTFOKtI{y z-&i(YH}N)?tKVdu)A)g{!snpaG`TtU^A^1&!+6)Hvk29u)$V^Lum1oD{Mw|0!%;}u zjmA~x)gIPZBMLK>Dy_~q>5Nrb^?waT;x+#OgpkLn>r04j<+p2e(?H{Caur9)7={H% z#eZB9f58L32(%*G#Qrd{)bx1H63sPPE#nRbcy!aB@$1EC>i+=nK);0+{sq;wUjz8K zSm~BJe9}jzL8;AqZe}P-26nPW!#)E5pyI9Y&Mw~pDs=a`{FmSA+9mS|{x4k(MP)l} zS4Q$5$~ha0Zcx3z1h=+5KKB0rf>ijJcyIRD@XT7Z&6DZ3`gWsfY$KA~PYJuUdszI* z6;KVIYWa^tgWOld+SZK+gM4ABXdVau0E#*bNu3}2Lh0Qmk|`ZOcE%u*>;oCvyR(p^ zoO}NO>^d|}5B8tYHLFFEJG*G_&AzcaZ?>BA>~pQQ6s8MLfA(n8k}_*7lK6bWmDbFP z{{X|6q5Y{}cxO+)x6^!2sQsQh<8K>F37$BNO(KV7z+ygDV}h*8MhIr>R*sjWTj{gi z+TB>qD{pTu8;IS9807x|ky>6T(|kRrL2akl>L={t($vA_xOQmTB`dX*5zveg)O77s zY#_N&EcWYkZKGDifSO1>{jB`me`EXG$bJCagLpTO2?KBave;;r~d$Hn|YDvSH~k)4|?+yR94@9SHqSDRaE9NT{6&sZ&VtHu(~Zy>u< z3{zWqGI?y^g4?#_70CXe=D(f~_$_{gZJ~Tu@U6v*A{|#x#ENiBxeX`ENWfJ|VNQph z)%_5*o#w`id2-WvVGMkj@CiPt&V4$5mH37K00qSG9B4c>;+S-Q?HMerEm+U?lLp0< zNx%xqNgrp8h7_Ndwt4w}GKKQGyxonkEBDFrSpIo@DShGp01s;K{{RRKms%CX>S2;i zNXNCf-N4%F2*=Bu4&8B7ZZznB;Uo{LyW8r9H+VHxl@`o8w(ZIl00a1To>XZe6H@=G%rHPCIw1_p>B=GU+#0 z5bK(0g?z0x-PLYlU889qChwQNPC)7^E6C&1=9Q$opTa?iGL(6p=RBOQarbtPgmxTO zoZ4J6IcrOKyfXv~hSeFRkUva;;*PY$#M$<}p z1c7x)jOxB(czpe#7D36`xUk3=`@_(2Nezvv+la2Nr0{?!#q{{2xRgk&P7X`p9@|G; zPy^%9WYnXY#Wg7WM+&QLv4TRAE(UXzk8@xQV2`Ndi%)Z^SSskcF07hmutKe+T#}4O zJCtr57Uw)?o@$F}*P1L6&bH6tSXM#i>JYrFSz921l3NZ(7|Gyt9b~$S`tI1v_Br(n zNXc`l?vY!Je8m`-W&j~U-o72i2dVDV0R(oJ7DO1OJ`e{4`O>oqo2Gdx4l&tC{Dnx% zpuB?O8*vokH4m-%(nbl}$qK2BxBzv>=T;4_qbi^57rF66!oo>}s_+;A;1AxhCnRxz zN99$c(&M{#`z`dcTqAt?OT{kClgg4Eep~`h-aj!w7loyksHL>+HM~w?Oq=*#SXMb4 zeb6FC2LrQUdkU){i6m<=eFunbqgHRRE3^_X_qQ0sWT`!K_zH^lS@fvV&s4s;@To@g zBeS#fjB@tfklVS&F~%y}>DriSZne81;fQw^S?!WnX$NrOU7II^kaO=@niM3shT2E7 zw7y$Abr>2uOCT{ZCybT!$>N-;J)!d9xqk^EU7k^%P}c`I00O+=^V7Xa9-FLR*qu(x zOnaMX!@u^4jENmrBRe;iBoA)YV@kBL)sWk1Qpw^BKIvZYJ``hxUH<@&Q9+qXTM=%d z^!sC^v`e~OU`a3U0qU%wa7$yjIP{>P)LuB27S^F<4=u!AVz&VCj9?srgPeNevh1|U zj-vX0l{}Xh(Xaf2rb4kCbOA~GxEaXWSGlbVs8#MvzAc>T_txM^_FFibNQz*6;;cpv zFnS6AREA5a)ij++{8J*2-djft!{v-|w2|`xoCA#2@APvTTiR+f!*H1=Lw`CF2|Onl zS;;5pc)}+q-cs z_;F37HxoMc-r_igyw@}MOvJ00hnNJ#v-fg%E7R1|ZZvy)S6S6YkrJoRsH4ivl0gPL+v-IoY=|xQ9@Q1)oz!+po-bK+*%v2ugj<-72RMG6_{BR!MAtS= zbuZZ>x}Hxj=l;r&$dTjwq%TkisihuOvAmssu@2FTdwAp`PTb`Cbr`8cUL(EJZEhs8 zg=`~W7VmEBmQZ-y3+`S%wKQLDnlX8!ExqFh3Rd+u`FI`4a7P`oew2W#XQt{&bXw}o zG^Rf?&u)%<+zy8=_|NyO}nPK}{8&3+OYo15U zM6t;WMUX)Y<`I#B%`)E0P@K2eB)DnSytmV&NkmPbynbVj6l0ERrn?-PyeoC$*oA{B zAtchHSKKqtne&phyK$&o$!i>1jjS?hcFD%rStGw5qP+ zF~}Z=uccMf(jj+&7tF(IBY`3ggmoin^z1td0Mms$$d!;b&Dr0yg3HinpKg_&<))Tt z0-q@e46F|$@idL7D@eB5m8-{ihab5}!g`OHm<)6D@AS2GC)vESsm7f2F>USKg*;|} zJkR4I#@`Gz2-R94kj$ld9-Vp${GZep7iX&T(AVof#u*LI!rfX_kw|eEJ3!rl!?@@0 z>0gtYsdm2ki7SDM`wWNpO#8kT{tSwAQsa!$4tiJ6A5s}7BxH0PQJzCL1E)$j9G=vw zfPBmP)_^r|FguR9rvNtWzz5s4HyyYc^`HQ8=|B(pFhCtRr1?VNQe%vchLGSW$3s95 zz}x^l3PKpBantam>-XshT;=$n2_HScG}D~%%^?`z<35AXQ?`X1aqcJpQ_!y)dS;Mq zz}?UeX>;qq9@O0b0C;oIVt_1+eVy@J-wlw@<6S;6{7<*@7_0^V0FP&_--plT_@dVx zcMM{tTNM-Zx^P=bw#O`p1`lD-*B^J2CgoCsOmzKgw7Lq~a$G24vs?8Y0XVKQNJ!fn zec{GWO64ew#QE|<6;X^FkMoME8f*J4BcZ$6QrN-JML5g&mlY zoDu0wZUw!iWeTJ_9&wI?oz1kOp$Sy(xpu*waAR5wAcx zXSnpB33neWb1BQ<`mY{`+*28x%33lMp}@e(ocex)9jP{?P3EeC8yN$I&$swgs8N;7 zZ^HqCM?z2e^q>m&8-=-I+nDVNF^X)MUzKnejQufE%F-_mcqj{J?(x>4xN^ItkM6i0 z|2zZqOCa9ZA7{g}yxR#dF5Q0K3SB`ZB&}j_}tq$gcq`=&kFI4-Nn@M76Af`a@q75 zCcHaVOx*cjF5!|v>A8I?*>$k{NmL{R#xOCCF~{_;BG%$2;p7BABo4=qYWmnyP)Q_w zO-jye=Gn5%)p7TS{{ULD?~yr_sLBtgU;edhvb@gTc6U19`;q?u)~uV-C5TBfgwJK< zel?(=dHwj{0t*r_t$|)^uEYYEf~Y6&1M6O&s3g&=F3^Nv0o#tX`)$)Ss}KNl$gd;5M=&$L?#^;C z$l|#wqtu{aBQT5iojEuZ_%XRd{KKE6S5SoFH7ZES^yZ!lv}_%MfAy;w8?DaIOH+-E zPd{`gKZScnhcwbQ;EsM!IBuJLtH88dl(uA1^5J@Vn)Tlg&m?xyvmCJ_-!-ib(ang7 z^sbQX{!wMz6AVKf5`Kcczd*a2$c8sRH=C6sj4#r@dC_KHvX=l2xEblvy_3T1kNe3V z?kEeMK(Buc^ge4CkE1l!bdzt+*ueJ&y;{m$&X1h#1COP6r-yE&cM-d8?skj{_01|o zkgx9nVmg1GmF{7WpTw=tL9z-`IG2)x__!zQithBpGoq7%0r^nz)4oM{rKHNLrTIh7 z0O)JBw3bAhhh$ks)c|qRlaAHz;r2WXLDQcsH_P(vCnL8MJ4Yk~aN&kX`g&CG50h~_ z&mfOar7$-2J6n$9zALQbfQ%KlNch??eX=QBGe$$U?gs;mf00vQERPzFF|>b&(x8=P zR52(Bybga+L7`FOQs_U0bB{yo>Drl(FKmF7$n@uF6>seb07M(cHjcoI4wapzjua1X!m|KvrX*|}H_Q$w-Hw3mZZHP`bf>c_kP9y2pnhMaM>$o(qUCrT@C^Vl ziNr{!5%qCf-7>I0L7*(xuzvqce~&a(e~#_x}JqRaaz|Mhx6YSJ(_5 zlmMtgTbP^om@1=pAZOImyvZ57z%V_z80m_=0y_f1&|{Ii?%;Q-Q^_Gl+yh_^J8|59 zg#c8M!m>ixD5GfuD}uh26p<-xNrm$V0E5%~YQ&)yO{&<*199Mt_x_a-Z!A1-CRpTx zK4HiI09t?%nZ8-oKy%ygXZ$#-spTVi$Ulgc&mb@O)!~+aG)s^dfzTXPWMHv*SyIi< z0~ya+09en>h=$>`x28|hk~|od`2|KX*NM3%N-MvwD*d)3h-1Ol(T@Yv0Km*ZcG8b5_&H(G_qm5lBAxIaqp zyU*H3U9iRNu$Dx~Dm#!pE5kiQ?_Flv;L7u3j2ih9njqs+?}mmHFP6q>z#tICl1Ho(LO zA-ZO$3v;tTRwzyr9OsIb8=H85w|o*guMqJ^jx02YB%e{a^7fCs{0jM^=k}13O`ORP zH&I4%T0cqv{R6m_C5VBaz*o#)7_|4)yfb^Fz|9j}Czd4xB{SS~{HxQx6?{?f=fs^S z?K(V}kv{q!2(7(mNs3FY^5K;AQaCgL`RDNe0A28x?D^pr(zQm8=U>zt2^ko71Ym9U z&0=f61~2?opj`O-$J2e4q((OIM1E!GaNX~omD7A^_%{}%}$omQR8Uz&zj<2Eyy?^axsqGI#-NZe$m=~mw4Z7 zpUjMLf8q=05-gFo_ekUNu7*Dl*~G>> zrV4(&zx`AJH381l6ao2#@DIZNDe(UQ#RGkJ9%Q*Vmm>h5TKmgb_*vooYf@X?RwOb< z^8!wJuS3v$AE4+rKiW+i`KRSm)YnsaG;D?_<4hhpbgcl&vDP$uay0u_T&@vQrZM?a zUu!LI8lSpxfHTf3;@=+Jc-O=JIzA$?1uTPP?;kD)TJC&D;|pINd^@<*d>c5L@*j{0 z&)sSa&F>z3Nz?p07`eN-`Pl6NPk!Ai=cfIs6G`zDT6c({WV4mFi-I`Ccu&EbyPq5U zVgAGTuXO0qe33@qbh!2v_MgU2fnFciygb$s!m1bU$r6l%?LndQH|-VStyVu0X#W5g zd?cT3v4Ejsqd&#FoD5*}HTH*remZzR#eNQgE8s102>Dod$0ORlH~1TW;*AqgxcE)t z@xI$>G4ACtoxF76w+ih3Bzz2$!M3ZY+1|8pOa|ps^7Db))`K(WkB(YXc&p-5YCZxR z=CzOazEbiwob?`^J--V2-{IM^_}lQtZx8sk6q0*X3fuaU1$o|p`X7ZnJN=d6$j#27 zDg?rEOCFf^AC-MO@F&2s_)EhDwM6pnZh3r;-M>yK1Ia!DcrQ`-YvSw87fw?po49ar zaD%rbp5My8-MN#^!RTu$J3Bjae#(lQxx%O!KD+^1s5k&n15oWDLG4!6_JLJn03XJz zi165~z_$Z!IUQ?q+dMZllWz`ODCt|M7BCcapbN>?r3?V}s-y23Qowbfo>D8>L`oF( zHOk&f@;AxA6|t$wg&6Hz^rg1|d(&H#R`Xmb`FDRjS1qo}SO!o+tE+Pa00WD$@L%lE#Wr~>Gc7ur#>dJk-RRDk(qfE%|CxTw6hL{>ZuaHFWrOgDxR zso;zrIiLh$QL>pFVDZ=JJ5nm(mILMBWlcP888NE#{HeHNq$=>ofH@!iY52Lpb?QJW{U!unY2@GshIW zJhs7)W--R>{{Z@_!ZqW6%eV2!r1k=MoseZQ`H(+K<-QYnQGU@{4XkM2@$ff(D&ON> zYY9A$CNJ~Faz762W757m_+wrdW?8PUl?*uHR~&Qe$4^S?z<(JSVtM?~z|OWSJEHb+#+`j8y&zjv;tI z&XIQ$kU{nX6yK9*3b^Nrmt&~F>6{MLfuP}xf3uF1#^>kzqo*Bd+kd<;p#B_GWF5mi z&;wYIFf*Kk>BSiviRcX~vwdjJ2*=WZBP8wTzv)O1AdYGKij1!q{3*OC+t`1eC;>S* z9WzJ{eo^|;_2Fm)91qff4C5c?6q|5Al|G{&0g@;ITd1V}018voeiWbKKo(P_dRK*j z7K{h2d8%};O7O77qkU^SyBSvg8Pg2zFV7%wdS|t124#qnO16Gj{YS29qVJ6Z$&fmX zW2Z{97zBvoQS~GAu2~*Ip#)09%|rH8$KOzM=~m+Ml@UNstu^Vlxpt25<75Z`PB|IJ7{y=I6}+r!ShME{u`c!`_QriE5hxcoTcEhPl6}fs z?4TbkAMX2lj8nJIX=&w3PMpPlSWx6QYys+OQ5D2?tk9X+yO=b3FJY;-x#AcJ2}*m#FqwwY(WnVkXUMaH1aKLE?e zwS1rd00hgowz~a_G`Q}h5-hXZ=0{&W-r!rr9iQh?OB7<;o0|GwTMIj_dRrE?GCW{> zv0IFR>;>RZJ+oiY849NGQTB_W`DQ=(()X-Qtay`9yoi>vLkT!gvEK&#cd!P5sQt4~ ziYT5)U2+U!JFu<(_SPTHq||&fq+Q-yz1_9UL2wp7vqGwVqwR$Lw9CCW!xpF(M4x{k z1+!K^n%?nV%Bx4TzY~Vv^z?LIB-auTv%rrkXKJKrspB75<^T`C*UaCy!gz|$_9yYi zr6ix(=wh^WSj?fASh>1>Ci#mprqDC`SJE=+ngsSs0D?`N75@N6hyVw%y~cjE;2*bB z*e~og<4b$Ua|MiAZPtu-!Ui73OB@A62U9r?*o|4XUtQ_gWvo zvS~|Wb0NNn*hOiT`&?`DmP3zj;Nbl!nkCeidYeV2 z=HpS7o=1xBn||zY1_0u$Y9%f;Lv^YvM|POPTPSN_Lf~~KzniM=eyX+?Pibx(e`Bj_ zEHUQ8cnd_NcNyvQsO6QKe=N@+yiyO?Kw)hQ4mNe@SEe&od_i(#gg1y|@&e#1Y5Q1= za5rU!20CJr86}rbX1ZisDSqhzeB-np>cgB?BPv{5@U5zD)BJ)&OJ^A>{{Ziu+3Qy& z(`CDXE;SIAHt0CHizZXk8Ovs%(+XV1ZuFhIc9mwiP|tum@Oa{#Yx8QUZ>Gj>wO&pn z+vJ2%!B!w}cv}dwfBUw-J=`kzOSJ>m7}bIv+~ezDt7E=f^Rj8O(oRSmcm) zIm-czdr)RnNo1b-M%AAel6p1fx#F&RU0Rk7-Vk`<`q21ZwfPQPK0Fqy?c%*0_?F% zc@dXYhSyBDKpX8gXxq*gfr3vT%i62QJ>BeIZMA|KtmAf5JfL~SRDqtphm4x3Zt}@? zMXj<8O}6c3+HJrblbqwH7qcJ!&@vXQQ0hVl!D?_n(7N}&*pV~yMR9;2WY1?xtU@9|HO zG)miH7D5*>jyY~|j>F!g3bI?H>LM?&?kgN|`CfShC$l zA1QJB;}GNcn0^&rAF?YMtx=z5JlL*NU@_;Bw`-&wh!GP6ONUnGz0r}{{VtLS>IiL#(&y+)HhN*#?~ZA zp?QmW2&%h4;bRk}(JC-9Sd0>L_U5ssD4ZqzrPIkFU){;3UC4)Ez}#B(Fr(Rc&3s$` z00flP6I1<<&X1@h3o=@1nrt(~BQr8QZL4jVmjvyTSDH2GpbkD@#QlY+cvDT)A&%2h zy0Vs7Vi7|ml4*uOsv8l5CE);Nv%==Tf8oims8jZnbh=@niMxbVV*UM_|25;h_8$W{{V@D9+(_A;aGC` z4?)&+`+GfVTLxYESsGm}feJZZFIWNYrBAg<;=c#PG;4O!XR)3T-eHA?moz9-&>NNm z(}vw%+$zz!P{cEheQ)0QOD!&$uBupHSjiZ1w3}TnW*b2DZ9#hu$kpLrwh*wF-{CXDG)HRxqo~?8}ROy3P#xx*{Vp`+Bq%1<-z*&^u=w-dkX89GudCorVFVV_R5i;k&8Nkk;lqF^!KVU z-`Lw9EFI~;#Nm%7fIeu$DXyz>DZcBH`|3O?=_F5Wl;cW+v4l*wyr7M~z^ zl1|&8k(oR4v3&<8+uDFELvs|6Ms<0TRh8TKF~JPmM{UQ<`F%d=r%0=M&ElAPzC*fJb_LzP$p^9P!SQux~0$k1_xw zC;gqJ3f5pnb3MU`*<9?figswpkrj&&dvlI6in`X3n4veZ!vyo=7Y!UDH41u<-WAF8 zE8mK>s_MEt)1rvs)Zv;vp)+izHw=1tQ2;Z?IQr5-2ZpX7TUcj~>Pe9Sw`pNe9QGR{ z3QyF1C^IWfByrnF=Gxx&Tb3S7>lLv`+rCJ0zf6(!szT$g7t4gXnQe+PcXsFifyq%*-LTf>`Y3OtTI$ ziWPkc#}w=9%UwEcmxV2azj8}^glTt%++XF44tVT1t&3A`2mDJfmF=0qJLN+;Ds%S| z6~<3?CZ^1G=yT1fY0O2f(p%a|ak*5&EQrQ9`J+|a)P3gWn9{{>rO3LqotP3SSf+s5 zmK#S0a)MVpbDk@AMUP9fv2mf!R@@QheWvaxwy_`GYh%=4Wlt3CE`1gfEUfNUCL9Ek z>=fL?s6S(1dk?)$AsG#Mq}wcaTFtyuwaClNscQQGY!(clscdw}HM1_E{{RULuO^9f zx2k?jT?>CPJu&jA!yYk=4?|f#MvY~tO97Sb%*>`LrU=6xwG z=J3iSaCm|QHxqon=#pvjjkx~+Wf&>R1LoVuL&hs|?^4rk>|nmIyoT-@c*4U0xnXy> z@xTxO-3J)pj0_Sdnqwn%V4@MZm~cK}(xs~bovCX{adO(1 ziq&MYl(ccl1KAsuAPu=_lK^7?o_6ujVyKWx z9{Ke+;;3nQgwQmxXhdmp0PbhHxIS4>Ks!{#%6jqN`XrjppA^4kT}ntVUP8}vZ#;qq zVg2Ruf}8*b0Pjc*L9N?gY6t!inbqPbBY(C1nOy@h$xw^;2L~H}161L;@Zhwr2hZ}L)WKFGFaTn;ERE#T4d(S?GrPD zfEc2f$@zzV#*1^Q+pMrLpPYg*3-sE%zg>Jue{12Z zX7Y}ec=w4pw)-iwmNj4bW+f<_7DNXGAz_h`#eO{h0KvcdRlT3WjdNUWS{ZHZEpKI# zC78iCnRJKERaS_DBu7ot3}Gt0N%Oc&+ev#u908*_LU$Gban~ZPX}a~@_ri}FYDRbaKAELzcksq!lYH`9+GRGO zQW!oF_&dIJ13hcc##58R^HhRfhebHj_VZDtWB4EV)310^)Aoz;O~#%8lJ`@+p2GAv z@)0g2X(MGDUNXK*#Cwcmr&HyAH`c6XxlLbIyE^9I-7L2E>l(%s{{VI?RZv@loS&%` z>c1B}9erW(tHjG%`1GAZ;?_Mge4%9fD}9@0zkc7&8L#`*PgZ?gJ{9O&zLL*P@YvIDbt^0D9jfr! zTiznvN4$KvA_7Zf#~8R6wXyld~AdxB%l?PwksK5o@R2+<2xK82zRXBIezLU=_)bF+R9leK2^cG>^8! z6|RqeIJ$=qCW9xuxkXXb*Ix(1}0 zMX+s+qswzN69yUI9z3QbzeA3-4cR&ko!+6~iH?Uf5&7eN%&q3S=WKDTv8iuC_qp_> ziqlrNiYu3~n*RVx`J`P$dGNC`44F^Pt&qc}Mro#Nn=ucHH2GV^Hu`j;>SUE?LXpOI z^qJc^Rcw&8R6aBZ_jUUkLcRh_kC*ec(fLt_ffk^VUK0BcJ1ay`@tV6F=LORz~l_#zF+;1G%aJoU$a+&A=PD; zDYSh9M7NUNnbme$*!`A4vz((FJ^3Fibrtl!lXa@e;pz1YxUH=%t(SVoE8nI{qca3o zxljNJo&v5<033n+H?(YuEPnLlwgUTBm8Xs_EX0~k!+C876Dm!pgi(wyOP#0RwBkqiC?~dZWR{sEkig=#ne!{*tYaMOU z;s`9{h_sSqh+XDBSYo&g(MEs{0X;ej`v%j*7BOn$`$8>?0|p_I?-?2C=E}(6W3b2J zUnKtk!9;v1azA759QcKy{lqZZOZHEiHQ1LcG`}kx0AYe&gmmd#xsr#lo#D#upzx}i zm$@gaKZ|`A!?QH7L!{e2wiQf&ZGuavQ3?Ps%8E}+5HZm6iv3Lg0D>}jM_-%vn!DC~ zF{(?eCXF4O_YvC(Ae2?!qyGQ|WNZC5_O6L_3uMqzzh||( zUAzK};{+amp0ddDe#*;;JI;$bb{{WVI zLvpyt2d}kpI*zI0?=WhMd3!C&oC7Sfmfi`+Dm!D_rFZ&$()e@5_trX{q_Vsdu#u#- zxRCDz0-@I8HOB`ZBM;7|xYTs(oA0#hS|z&1N6WuWxR+=d;{xCSeuKS#Mo_6rDSqbq zEp*pIJQb&KsvGZ)=cCDXp_db@O8oa3;sK>q-Qi^U_udc;>+ zl=LY_?F)^P?z*pp(L6FQZDKdb zNV%HLq*RrP`HtI+8_5{R1lRM9E!#1bznJ=oTiGS#e|B>CQ^Z~qwD9(itT~En9V*TV zqun{3O*Y{V&N5^wtuCQ6fajbo)2?^R4bEJ4G4+Du9 zV?U*SS^ogRV;cGog|I~gR`dO*>~TDIku0&0k;@9OEy`?;>g#UOzc)Qac$`^HOD>)J zGp2+TYDM#0{#dRw{aPC))x1j@cuca7F6&Ru>4^Rbc1YW^+owaG)k=FW72nx^Y3iC^ z+HGK8EA8eoE@egeRkjz&AP%H`L8vqMAzE;3tYa;pKe)-yfZC-jD_ZT0_)xI`;K>a&IyVuk09vL6-knMk+ z?&Dx1QUCxMoOJ^^9^QhJPSf?RM(#UH4BcPG3rC||sY`Ph`F5Pj7v&fuIXqQeeKhv9 z7T*vpmfm}&D`xs)Ta*|%Z!`Cb-0`$F7q0}0(Y3k1y3>*TW2f5O=xCdK>tD0A;0g}X zaUlZ$9FD`^8NxtU)PB#V>(S{t?BCdWg0e8Rvx%PFgLKZ<$31WW6)vse&38pG>mD$+ zJ{f?n&DL(arR039h}j36<84C@p?QC#lcQT&4IJ-`HS|$E(1WH>w6II+o(IT3mqf82SanwmJ`&=EghK3;T;*KU(`YiRGHdS1LE! zTcR62N6Uuuzq{+e>?>OPT=6aboUwTN-p=z&WZNIuWwn~=2p=nLN9qS`0q81iKU(n| zx;eMduI*DwQRS>xzDd1~JYWyQu_|`@()O_KSJmovGyF#0RlIX}+Beap8SoPLQEdC*ODHYt!1K4kGM%#^~a0UpbsxE@|O%r%-+r)aM ziN5fhQEGM(pDs!7fZhS@H;_nQYHhSOk9bo_Q8oJg%Ukc>LNV2qO8|${IjMDPjSfrC zKjK8O>sNCrSldcyRUyIPN&o=({+`55A)&^7a6ZuVXTk#wfH1uh>@ zWq*}E;E1RoW1sb%c;`G2%*4OAyt1?VPP1oasA=SdNv+Cx=dM0=V9Ss`=Wdm1&i?@W zN-sN17WW!{?X!KY5vEXm3lZBmIO3qu^*t)nTqjMB%GAIy$EjTGHfq>BqNR91(inM2#j?Cv?X z^Sdka0tW}RRgYKJPKw$VoqV?15s1LrZN|^F1?MS~5ZYUyIjoj8n^#5sT4`)hp5j^M zMDf&W?)Zu))7mzS4sxUe`kacku*hs)oJy-urSu0FRU|dXBXon>K|PiA~mtAk%JCWBX27(l~)1duV0B1n>=7mCSi; z?O=tjEbYdhphFwm?J?r;MDyTv`GLoNDz=?{5sUjzMcz_F7}qXF-}LKAQZ!TiKXh&5jP1|TqSWMj`zU0+E3d|b=8E06>~1i2qHn+)e@arH zF6_QZ6-($%sJ+aqEzYMo*e5L?*iT%RU-(L){?VFM0y*r~DI;I^ zwvYk(_U&7ims*v+oVq2Pr~4o#KETTH$eHRmh_~i{D$3F0)wI}}KMcUyF6ISexbp(Z zp13U@2SNTdlf=_sY(1Qdcdc^P(fUc7e{eX~iIReObwf40ZB zWZ8{iX6w5FamG5Db*-(-qofYLB~?~$Cf-*^UPcKU4tnF93bkzWq@G=)ytZL?{{Uwa z%F3J)G8E+G5hYi9X<0)_PsX5Hhj(OKn%|tZu(&d@~O>@nl2rdR>uDT zI6DMCp#HU8?QJKVT*WMRAg2LCFPHiX0Q299b7_n4&sj@EnajhEH0{9WIN$?{{E^j0 z`-N@T;=f&fBiO<|8Tf$OxdAPAv}2HdU^@B^-j(?!sX-){Eg=C&IL95nmG&72@Y(l# zE&Lf7yK&!|LWk@6RiPVW9X*8sKQB&|^as?HMtgSRniMcq$E{r`2mb(Ckfu2LVw!dW zp4Q_S98s|E!hmtp6=|bhdUH%8j-9vz6<}Ax6Zf&6oKwDTKp%xn2e&xIN9FUeKZbxA zfCgN3=|}(s=K~&;{eW_x%cUmA{vkjOP*h-aJ*fF{#yO{B1LWtPzTZkgj<^6V02w*M zpH3+oE6eumC_gU;nsST`D8bGs0@AWIvtV{Lr{HE}@lBUM#w#`!X0?6895qehA{WHg zT;unPQ!R#%)Qfr5JS}Pn+viBb%8N5XU(5#dOd)N?F z$CgU$&u!k7%2`8skSKiQWbXd&_|q8-(U{n7861uUTrsg9ARwNj*m~79@-llOuN!lY zc*o~WZUVXe;>5y}hJ9|FQtrs$TqZVQ#_RC-mdfZ}df zEfiZlw%7HU{{RHi@qdVI{{Y~fejm~_*^iYC?c!{HQFk*Ff!iE@C+T0wL4PAsNu}(5 zp4I(h{{X=)Eq}DX;GOzui>6%m02$w0YFp;> zGbt+>Bc=fcz0Xa){?YKgrRe}|k8XaQtHpd(rz8=C2W}7_#N(RuFNb#vbKv%a{&}}g zt$wcvDAP$J@##&r?qm-?uN%NakXN?jB+;mRtBXJ>JEIrM2xG@1IN92Hny$yoG&f+KA!dK`jWoaUwn*uSC{MYyFM5kgN~iM zRxYPjE>pGGt81R&R^6QrP}HkU{N=^o=4yzFxuRWA6;{ z(zT(wGp@8ggV1E&7!R8`>D>PSO7|ZP++kNNer$gZFg+{hZwyL`z`G8d0oJ|$0K=j; zg-iU(2*~uWcMq}ic*vha=vOOkYQA^gQ-C@g9+m7mLxBo>fJnoi{{UThUX^!mv_miO zk%3;xqdWYOJYb*i4mdULVVU#zsP1|Vy6;tvTrl?k06pus(HI$F^P7@(uWTs(AI7+N zb}!AhjDo(~d)HBGx(AKA=jQwy)6%`VGdvpT@9m~$gK~n*S0MBpb*pl3eat@KV8_4L z^sKx(s+o=@8E!cr{;JYMDmS8MBPX}{;=L2kO3Yw5`F68*80>m;Rta}GTo9uNKX)TN zKb=R&`LmIN$G0M&niOUx=jI3adJV^ckEH`35@FaN9I?l?ILGv=QEj!2B7qkq0g~MR z0KjU~ti=p+l8wN?9R)=+T%0b@I81i`01Wi3z>;ztC{3i~25x{4rAM%-%$Xz)ZJ_oT z_NM}?8lsbctF)YR{xu#al$anu5qh>jImbgl82Yq~0(nftD~$1hl6#uUg7L(_r{(B> zrYoS9Ic_5Jkjb#)!R z=*|j`gVLjtE$GTe%9sPxgWK??lO!ABQWs|+e<}bZk|~OI@O7Zh>p#K1O9kEcXt!(~lCN_?H^X)(g2c0siGZ1hOIPK65!`7<)@aA4H z><_5)2nWgmLno6rP*2 zUODO=m&1sU!jBrk;axW6XOdP6Ha<|Jw&Cqxp^*7^5G<1578UZx!ViO*+&Zc8zmAoD z*C^a0z#DV@e=7H#e_J*Ym@J6gszm^FQt38;=5^roHIu4pmiAGIAzl}ye7&Il(;6PR z<9R+GTuLIlw{spFkDOzV<&M?X{6O*bhlOA>YEG(KqVP!`-7!srpALrV1#}?lhJ{vGLGGU!!`=B?|hC;tD(;bHt23N(u7hG%q0JMZY z2k~v$wb5Yv@qNPC{w{jsjkWC_B8S5I#Bq2};dQUtoZ(D}2T%u7(*RKQ)?V_GS_cuf4hp_ys^j_ZP9a6?Sk1Q{l7$9{S#e9YE@8L&@{9)pj@#l_X@|2Cy zq38vDl>~O$eXy}ie(iYlpbV>x4@Qs+iKA1s2OW)N-(T73cIySOC`k<4csQ*MTJ|+n zg$M+WaoW6V#v01$T7252^qV75j5i7~??4_6@$2Gdzu`r<*8D7?(iuUUCnPBJuWk5u z@gq+7kKl#Ybg8z<<%VTUV?FERJG-rW;~;V2yD}^`ylXkn?>l6VOpJSe72$e5sqqi? zUh$kl@l3i^%k09R-L`tKZKu=JeFy*^gX2FK>wgozJI(ONQ@CwEPt)coT^ng~7d#(- zx;pdgUXA0;3&RpDdMAX`+};DQjox7#W1pvTdCB~_e~$kEv(3N6(`)gw;bx*@lI}GU zZ9jQOIrbp*IUHnq8tXn4c)5NbS*5i0tu^8O*>?To$Q3~3@^Sdk2TAaDZA;;9u$~&% zB;0P7TlJH#Y1Jxc2`53i+GipX~=@<7cJqz9dE3S~>5i2va6JRVUm5&A@uyC>@N~pmT!2Q`!WQkvy?l%R02NOF z4ngt0?6L77EbsF^iG2M?KX=gf`Ff6@m3oiIAAR}7@Ow?Id6gZWjNoX5rQhc+HCw6yr8;3-jWQxY=Af#xcV z;{&4s)7y_seGTxV#`iun@PuorF5BC1qCkHt<9-kPH`R1qKJQ7pnWV8-3ky2rfCpjU z^sl0HjT21LP>UrwW(>st04kYEz;VCut#qliMb)K=5_ry3D9=jT*Ss8_C4sFq726qo z<6*`)#y+0a)`NqQR|KpEDJcQxx(CCL4)}S5_IB&$j*>UbN7Fq&3h$)^C|^NJSe~^t zK420w0~!3is&m4UJu0znq%)j$;-&Kj(fMMe2~-#Phdfo-j~O3@QbU{;Tzb^$g~N29 z4aiEa9Z!1EM;Yf8%tdlgjGi-B5??eF0)RJK=V;ov9@O8oN3&~jSgRn73pRd~@iI=M z9D8@53pYSAXF04_1BDo?k0VA-0O?s5mn{l%*ukI-ZA|$nc7GOgit_Dx=tmJ>;T^hH zRjliNT9$U&y*C>1zZ2@dR-Gl?j&tieo~Q7_$jKe7F+bWI3?U63Kmd&M!*=9*SGiyK$5-)x#)$;)n7sB+mm}rl zZ`Y?itK=WsJHwYg82GWPD2sZ}rpF*+K26~n2tWAkda=RsE1Ytx(Edq&C8UsRw_tQv zaEJYn*aEzD2kw!G1G0~CjEeS8i7`ht?60`14Z!*Xy1a%a9ICQ`k-_`{HH+v$r=-Ht z?vdDGMnZwm{{Wsnv0Xiskxd%1rU(OYQaD_6tlcO<1@VRBW3!SYz{nkX@tW+l%|pUB zw}R)vc2^b_iyzM&&kkiLu-^Ot2XR0ZRL;w?Rl*P#1Fk9ROE^4$IOEl6V_Tduxnf(7 zf0x>#5*!Y4M;P>=3w!=uixw31$she{iCmJ$%Q-m44k(R7zmU1-BLlYDM_1gQW>7EV z)6?3345sXr;B@DV{eP7R6L#qr1MhHssdn#R=jYx0{{WRD93L|rbRS9pk((eV0Y^Lv zktTKloEPeL;}u_pJ3+@iKiR1j8~tDed4I*8arB@G0_Ap?_9Ek8Cp|f-RD#EE1oY#l zwN%1+fdMKpka5%h0IgOJl&sI5G63}gfHds?0M;Kn`@gMx-{RjHTzCh^+CPcsL5nMo zw19`6J%1rzML<|dhV>Qk@5fIl>#<@Xvv)r9(`lxF@;{3{HgAbP5Ooh9PnDZfkj(LI zz>hoy9=s1~^SZIA5A@gCFf-Dt*2+!l$ZEs$7S-T~JxS?GqvqM)ILM|4EHRI-&{75f z^dgvvNaU!%?Vgm^QP+$QN;iKG8*xr%8?%Z4hy#oT|=ZXLb zY;rTue}y5zewiYMUU1zy{uHs1xberO05!wamE|H04{!G zj)IxEZQR)Qr!#H$?UCAo2;({W&;&<4DJY_VEN=4s{mXu|`UMkJK%F84csNwGR{G_Uw z`eP0FRg25Jxm^DMYI!$eKm>kE00w{E1fO2D8^&a@TXvNVz85he8;0-0Ap2C1_9C5v zUbVKR9{G4*+yS$Ub*&i;qY-LR#~dxfc>#AR_X4U}Npi6?I&+I?F^!TC82g-$!mQi< zk~vITS~at?Wu=jU1RlfGcA$b}mr@8G%)~9&W99>U0rcc?(xQrZp*~lK14O`l{{U%4 z$F2n^NMyKUEIxh4-J;?$JhARb$4a|=*%{VjI*u@^@UYkq(S0j0A%bXRylD)kOVf}` zf#l@LR!Uqs<1;%?-Sgs(mMz*nGXP%+) zxA3O7GcMfS>Nf$GUsz_hd<1Af^OW@)g8o#ZZAv>ui%gXxf~eoDwN}}* z=x<~i3~i@M;|+5=e(lNZJ9Xev?$c7{OE_TrT+PDXBkYY&bH^M|w<<(-7hyqtD43>` z3hi*9<7mMsPx;MUh8W*fOGrfj0NR%hv3Z0jgzq6nImhEu&bNsp!K>}o(`t|{m?1zp z>^goFrDt*W8++usiHa&(XEG~i?)}{Raaz;((VX@_zn|DPc(qU1%SqC_K|D<}$!T^D z)CiJa*+qS`j*I@3agccWSG{OjeWGOCJ)5$pm;1Ral}+KBo_BYquZQEaSWXO0sua>{T0K_ z{YE^EBl5h{_|i!ob>*#-S@1OW-be`}*gnziiH<)KYngbgEFljJmQV9wZ2J+60oj>k zxkhF07prp&$ddAJ@RXizO{nuM!K@o^qeU!hD(y`OD>)CD0_ZnZ%kpBR@u{r!Cb^SA55B~rK4U%`#Z$QUih_;BW6IynUV#1g{9uPV7B&lw+_>>Rh5MCKmk2UmWjp(whejL?ek>T zzp$^2p4$9HBU?m|aXi=|fNvplwQ^0zmN^US)Bt?U@jt88=4#gHYlnoRQZJXPKY+bL zHcNSKH8qNB8RT~nTH)r5OY@JHf}n6Z@lr!Cnu{H?q!6$Qu}T-s$K(D*M3+lvH`+90 zZ8^a5e%i&nw*&ovxIAOMHc=ds87F}1bGaw&u@JZ|&NkrmKBB*w>OXm(t1XN0+_O)! zN0L1_x|Q=Uup?vNZwH>*M=!SpmeB zn@EpuvJ4&#Ub}hjA!XK@JDVm|-)Rd*vw_)$-k2a~G({n>wKn=)$6ak}Ub$g`9%c3NDOyLmu*DS5M032|ndK_{pIOem4_s@bjjr%$O0EwjU zvIS;2&J}U&IiN-M$lf?_B=HP!oUl;w>;t&@bI0LVQaS9Sk{b(|+sPRI&WdRiIPL() zuQUM$p?;D|@%Vxmb-9^F%ZMaJiZa|Ex|uzWNv43SZ}xk(w$xQrGF!&#tTBw|3UQB2 zb3$Att)p1MGk9>uq0%Dqt2k_f)F~wKnv%-H$tL#NFYGHtj5L=?ET~u*AY zZMU~Nh}_Ngr)d);aClyN1wI#8g;@2NE~14ke5ZN7SAEv3@L*>rY*`&K)~Wd0U!THSR8!9)YOr1K zyCs51;R6J@DH`m4Ffwb^ZoF~gR-JV{F7@M%-ajy->e`|=@{zMy}X_5eq$4p6H)GAl!kNZ0QzDFD>QTM&s4Dk1f@9bfkYng&s zWGWWCfgxZq$o<&PGw)tS`&d4sb^8>2Qq=s}Ofp%UOK&n%XvEVvj@6?n1b8hujBUvn z=QZ>cUM0A=(GY1`z8yaB{?ODRP=g$>MJ!M0UJ3ha&*E6WV-FweHy7`A`aYQ!sU^4D zF6KuT(>>hmDa#Sj>WR{=TLtH&Nahw!l{%7!DY;-fK&v~R; z8|YP0iy$m%Pu=qp~uV8(RyBbmhB>)O0q!bKppQc0|F?U^y13Je^2rpA zski&%5%Q<$jBqOC78>=WM$=AM%q5JuDL0x=0lroolY!6zeL3c=mb$*3aAeXg<+wlV z2$DO586JS`$4UggJk4mtj z$4u9XXt%9o+qXP6?;=LTkT8Bh(X4R*Ub=|bl#HVR1718-dK33kvwjV)? z(~iqsy(OB*?D}P{@=VDwZ!aoNJjTKMqwf0DHDD@BWd)PU@?9H!@)kh>mC?7H^zwqY zJaO8VYdtpJ-7i{bA(!vBl|90eNZ^$FJ8d}k&mT%)vD7W3`(BJDi#c}lA(LkObWOx$ zudwIx#YVEew~*>FX@9;SedbH0@6(A?WaEGa2el(IeJ;jbLc({_E+A`I+Y%Ecz-`~c zKh%tXy|GNup_VyaH2c{KL_@eT&k~S&1DLvg6)nncu||71#E453f;r4&w?fQh9D)AT zHqPHux>DMLZMRHj2v%hbN8Ka|Gg*MQOEXU#23eLtxRCSQtZt`{n-zfe+B#LMf%YaM z>S<%xyj$DLKEe;uJY&D!3s0KgTAtP^?S;fvvA5ic8H=+K_dsW2K*oCFs_7bjtEOK4 zqfUg)DTQ|-YDT*&2DF8SiXYi$; zPt^5=l6_ZAxD$sm23X|s4^BStJ%IU524%IAU7r5{&hV}4Tg3+Hlz)!ji2_Ph-_a?yx)YD-Y+#Ba5jy;e+SvO-4r5ZH)#sIixApZC}tSJ+&cWU2$ssvRMFsThe>=su^c-;+Et}u2*=J> zIL1H#;;BIvrExQA7dGPs!nyZ^jMAamP!u^Kk-Wj1!_Cqw|8%II33INNp(=Md~8%-VVAP!Zo zETg?Y>j&|I+p-2Yt=s5zm~Fnp5xCVhZY^%nT%%`<5V;TX3&E#@vTMswbsrRkcx*`&rfba4^dmhr)LBocsewoTJWin$oa z8LF?PUursKsMT#_TR2W3zls=(mB-7!_oo17o+@1tC5<*|mNvTWzRiy$@WAFSGxB`< zm#?6$4A1G~{s<$ZYr6M`Z*3b(pHH*WZG1r`{je;NO)ca)I#`AQgD_*GYB(K$^?aY( z+kJOS)NC$7>CdN>c8OuLwZ91~ZCq|xy7z+YHH%AwY%XnPb!ge+j?`~S zA`uNRI&eJ%e00Qvk{wQ8KM#fw|rFGG+02hKaXk1J6} zL?;J&Jm~5MG8Mk?!Cor_YBpBhCG(nX&k07`_I*ZJ`9H=U;dsFOMQZ#u_+zG7#|-+X z+HOP0UMU(2Wk<^vB!scTx!=h*Y4g}2^1D_#&#FLV7DiO z=06zdYwjac2BhGsOK&rRF{{Z3?NTN2D7V*E#_Hb19Sd}|u+%)XRlvzqx+9EW06+q| zD;-}(*1R9AEU=4J(JgPTZc!~RAc>OR5@mTErjWi-HURzbF^)$u;xC6yT>jX z+U3as8*vUXy9{{%R~{-7MokmoZ)A;=#t2|2D3$3xX`Ci0S7pA$sV#AT9r%7j<+GE2|PoM3eWIIiFJ zhQHE$Me)M>#l9t37g*M=9{j|xMz%|Fs1&;>UFG>v4aU||xKY)QZz;N)!#25t#PGvz zX9$V*0c9@TgygtMK0reNzRSlWBl+Jm{{VTZ>d&Qz@Z;!eXnI0l`FDCMjYCtm3lH`^ z^bIArb{k~I`9k4vO5pzh02u0P8&b2?G<{vIHRuM0^RXt{+7fN12mN0BTooBP`9b5} zrjJva>rR5xTC=f}PrQ*MXSNp2cBBo+cn50?;gpUBK?682KE0&hS{*+^w1RkGQyQH@ z-qcFJNe3qx;9~#*US;pHDCqU;ty07Q^K=^ve-XuylD?sB zy`aZMLp0;D&&!NfSA}Gb{{UEzP|%=FUhN|RbldxQm+CmNDkYy{y{s>XnS5#*`u$4a_i#6ynf_b2-qUR-#G_IUVfulSf; zPRZd<4R3YCo@-C1!zTF)$}kL)Tq`ygc3FSFpQ^PTGeXqnR=5+g3TKVt(3H9S`55%9c=Yw?npCN9qv`rdYi6IaqG0P-E^8p%7;x&%-Ay5>s5$BPD zeY3_|5WT$`fA)@o&2GR6O~#)gSpNWdmBq@EptC1HF|)5V{V|o|Wh^~3>T>(5@;+X= zsqG&sM(&}dcuw0$`x3<^s1dp!E(>HVrZN~e`g;%cYDO|R6~)Ej&kRd1+nMhJ&Nmhj z+5GCoO9D;tW1jdq!9BB5U1*T_dq)>B>KZhjW>d+upHGk`Kp!~3U&A=3w}K+NwQY9V z+S=JJ7C~xI*fc0tqURk`JdBch^cCw;Zr50iK40WS-DN&oEr&ti{{RVI>Yr@Yq|_xc zlq2_6h`V#Q`2t5B~~g8rEBy*g|xr8 z)U2nz(d;azGCYmu>IoB18n6IuEPhZ1F`hlE^z;4*+u|<=X&WScr7{i&;^{v(GGcizJ&65whau&6^`Q zT!3&Ezn^mN`4~sk`bA@N-CMRj*{?o!+AF>J|P2lM8I+Zox9 zn*d1@Y)}5?tI*z}g-$8o@ zqjBfK46|E@0!J(sIKmfY3dl((BONix$?&I#uFcGvatmvG{ntJ~L$qLpAptlgcq5Pv ze?-u&`@UsWEf$(+e6=`M<>iGW(a-AE+FypP77ae;+E%(ac;Pm?ODG@`M6HAKanE6% zn68t;QE3)F6x6i)$l{joT(!HjMpG1v8p{b%9iwcH3I6Z|435M9C+4R|;|zZWzJqRDK!T zX#OVnv7~6W6aN6j`&ylJqjxlx%VM9}EVg9s4Yd(Opl{$Rf_jcSKiUS`HTZ+AS;;(F z_LBFvlUv$aP362od6~m7MLZB!Zd+~-8OIU)1GT>K55=zz_%Kc{?QSHUt#o-DMR6VF zx;(b(NL}asB@s6F2OYTnYR7-b%1wVU^om!cy$|lcU)S`X8u)v|o+{BMP`aj*VRD9P zU}A}X63?@S3xzY_6)ZM|<+_}t(KLHF48r2hJ^2J%Tw6H79XM}ZoKtVK1EyVgV#mRE z@C_X_i&eFb6%3$E8STtuD*zT3gk&5Q8RD5fjp7xwYyDp4Ig(ry61yaW1NfI==b*;} z-oK_YsmWmIr6usA=A-b+@JzX?*jU|YPpI8o>C#UiDuE}1_e%J|$=Y{gf(Ck5Ght_C z;yIdKV&>i#Qp5L;Ylh?>ynbwjkC`_lGzgJ*)D+{tG&6uRaq;re0frXgpRHtdqd~(WirGRZy*&Z{uP|-4Sj6D*Z## z^+R!Zu%li^>mm#bjky_qapi&lz|XGbugo9#EY0cAz7S~^P->Cs(%xA>zC?vglC+ZC z&e-qry{)Qr{{WWAdsl(QO~(OKoB3blUK$eTQsuU%^9|z5>nn>)6p7%i+! ze`rP^XK6+Iqxgn;V~R_CW=mZQ>{=E5m-YqZDvhMwJY!HP{n6#2JrBxUk~?ejsYYC#sIaxOS7oHu6l7NOye4 zX^1P}^&E5{V!xE?JIS-^hv=6vSxa+m@apgW5s5Aw2maM4sVe-~5RHVEQ`?X;>P11L zM_{`9uAeM+H`9Wj+c%dBZ)>_Soc{o;AeJkP4mx_$OQG4`Ms-*N_|`Q?3-)Oq2_eB7 zvVa0X1##4ln8pn|KnZ<3`cRd%7|}O2gCoxs&h*P*uw1v6dUigUtj1{B*=V}Q#CJ(%*}<(&u}c<5`pA~n zBp`8sLFegQhlT$DVt?5?!*Mau{551l^be}sWpU`sY*>2?*S^nlgNze!V) zQsq3$PyLa9Wz8F0I`)g^&k?l!bjR5)hm&}t_Cx)bJaeNig{k-lNW6m6 zCNH#VS6GdkX*gB3Wn6+f4xKCJ-yZ(}!885`_`^c~0EAvETMZvZAf(o7f2d6n48VZf zZK5lKfC~~cjANnu?fh5qHrhiOw!DTlE}z8v_M;U9>k(6y}!ZwYGA0<&FRNblyha7GFgD(pV+$m4)3 z{QzwIW8&MJh6{N%P>hJ;)SPD-!Og};81&=tubV$0cH^KRF(v1gl8 zjokvA{KSBm!hz3h_N^t6^$`Ah4->%=&y^T;Yko%uvzpKq+ahNojNwz>O4 z%MaU9<}(wR{XWMWibmsx!Nq>?+k7tYAwSuAM}(k2c`9x-V7ztUL=ym~*3E;UQ5pR+`5=1<-- z7;hptJwN5;Jvsr3{$cS`6N!1W<4(UVlG66*eMVbOo1-3MjDLoo4>Vmzb%%njVwu%L zNP|>e$NQrZ9M+Dp@MGac{{V+|ZARz9Hg;D+#^yx2lHTnkjglrS{=HW?ARm5)XT4MH53k~ZNp z^AbyEzcu}z!da)+vdT5NucE)H@%Wm2wHh;KwX}xrEk8&}G-Q+~`WKlanNCjRQaLQx zDlkW025bA6{h5DezlR^Qufy@+T@%1sW}B+o+yQ?)7P^u1-6M_`JKjSiqkIhNaIuAO zLWXx|{yjfqe}oqwAO1b~d%=1|g6imQqr8$=$DAU8mPvS-$H*;~XTa;X+P}Liy+-28 zM6^CC(c?Ol@Y}W1#~71!(1kbc0_HFPaB+rjUZPmmIraH0e==;+H@#C*y-lMg!p5}FXIVEYpJFLHXg~wcEgUSB@J*%O; z(<8O=(_L4zbw4lJm0NQ0_m1vB{HoLGx{SJUZF&fQv)klZ;0n@hZ@ZkFsO)eB9O3Md z%Z(rG$Qu0(yz%nTs3d41QFLC9(`}V4_W< zjCJkpO|h1$s|w;}csj0|9L#ePBROiN7}RWXu&_kYU1yN7>;BkcHP zd$KuoOodfA9XR!;vJf{o+nzY>QX#`e$O+iEB8340D&b3U&r14Z>PGEVW(OEhKO;>L zpdkkbr(EKuUCQ{004g^8-D$vMm{CgOgWP}ms52q**FP^QlheLBij3RtjSQbFG3(e0 zxa_-jN02{;jdJ*;!t+yfu5%yO73k8kZ2a|CgFtJ{qBGI)xb{@d7IFU zr{*M9C6a9{;x#Ac$RmQ>{{V$nJAf}KDxiQnfmTbXURMKd><}_XzB*JJ%xWLdc7dhv>4lM-!S*(>enDasmL2=?tbI0XP2Vp|$JL5gRr_zvZE0!R(2Q9{bDgcvW2@KqV z$DsSG-l~;23`Xo6bHO5}z+tee;Nv85(~6DCkl}{a0I2Uk9Gae_;7EaB|V=cSPf$^EdJOezp9WN(_@cySfjSzp4-TBCeute`TFdL^#@S<&lX$ zQH*^n*UB`+#>dO?BEAux+wmI7;%OsegS%+R?SW4CMY>rhu$1nN*ML9S#dSVEwuox8 zE1k-Pm!D!QhxmPe{hQ*bt@E{JJ-(v9S*NTK_~lJ19ao98G?9!_Lx`n7% z2|zG#a7RO4nR#ZQ7maw_NGFqu<25LhMk8iyv*RRUxy@jCKD7dwivTwfk};pwyvJO% zNE?0%m*)n(Pg;nw<|W~>0nexMuP@hnDcG6>9Uq^h?d9-vo_ zYIghC#GG##!+xAsxocptWs8B1_^%Vy%xe39+ydaYf5N#co~;&emjou|kZl7ak3m^z zr*KEeCmV6-YhvL-UbmwR;~4;sqw%cA0!xLHW&*C=Aj2!D9y*0D;Ff>KX|` z9w$~IN6I=LmF5v)m?EhdKgH13Z=sf1cHnLMtLwP%D2C+B_dgEE5P}B|pyYM>SJ7S` zpUNCy1p$qG&!RCa9K!%EIQ1B>p*%e98YA~r*XAC=y{t60JWNzk@49T_X(N)|dHGl7 zKc#z?mA%xLP6A+kYrs4|Kici%W&7hU7x;2ISGVXgoFua#+@NP^;8(wfk@Hx{o|$1Q z$(6{*12xxa+)KHz?8R`c$ic2c3y7ito9>(y^sb%>URDz1gOH#vA4>NqpE-%#^ebmb z;~T(II<7d|>08e0l~6}L2;++6B4^qHw&_0RG5jXFD4%30yCvcqeL3~7QG6$yNRkEl z*!;Y1$8Y|%EQFDXfPJT&^!EP%>r`?qB(_FCOn^NSVxS7rv{?+> zpEyzd(e5cCj@jab&QsU!pKaAj^N0^tWxy)D;~g{YKo&oC z@@-PQbI9rKS?bJ~k`f1ycz)PF=M)rFc`*Ajz=At*)PI~)rEu|ic~%G1703hp^q>MM zt|MO}*s34^g(Dk){{RX}e8evK4A0J6sK=+ZOXf2Ip?zwI}X59X!9!VUNAQ{e<6=*o^>&nf^Hn(XC1x1w1;*GAL|1A zg@+*eP%?zp{&MXd`24%mLEOQLZZD8K00$i^#IdPgDfk1PJ^lSE6t-Y?k<*n6(ts_7 zY*OW^qoAd(b3^~q{+@mU{3^QeWzFTXd7oiye3uD^$n^E?&lUB?k>Twk#zTHB<449b zv}YAz(mQDPH}1f!TkUe-$F|&LC*fW>>Kpo{;n*4NI&Z~&J5$%B@Y56*iU?S;GEO^m^sg%T;qdzB;!lJg$1QE;ra0uQ=PGmPdLL@e z)&u3Q+Ed`OMDYA;_-=gZ*XNz1IZ2g3DoGtN*!0H-0|a0FlQbPGh>C>}%cKorR9`*Z2{?C3M)U*fGw3}3ddrZj`r~;lprDOii7N78%{584o zSBgK3hS7QUlc>JsBe}NwgAHbd%+o&>&iLlMU z+&}u%0peccei)fCfenrbT_5W8ohU!z_1iXuH#rc8-4_ zE2L|ST|V2*nZ8llxqU~*+Eu(qe}0G4=|CIWuB8pCf1;opM^3<3mw1Q7w|3Bm5`3+k zZ6N%=hv`wzuW6UtmI-{vbt7(jo|XBL@ps~1j&#o-N#L9IlFG(e5G1Yg?ueW)>CkjO z)B*Izj6Z33yf=32jU3RU9&x|}jQZCzxZD|wDE$nMBghbE)EXS{9U-m zy?6RIz@GxQf+MvME#pfWCGrkQ{{THWuZnc<4*0+JWcZ!^rJyq%0`%>cBkA37+uPIW zKpwsODSTDXEPN`y0oLIACGD#e0#Sm*^M(Wr5Kb$*{i3wL32XicmdfX2O(HW#$U9&7 zNctY1;aVE6!QDUN8b#vY4nUFITrTF=GH`llrEhpY_Gh`czKD3nR+`=ezsVZ7}{)FN5zq~44;;{&CBXa3TD zBfix%NCt@FD~oAFp!(;xZV&XX$M$Ua)u{OHSiC2FUAjmo+$8a(|GU0avUt4V@8ALE8liH?f(D@{gb_xCV)pc+}_+* zoa_2tiG0su*pND8p#B8()fsZt*2$VRY?6=>a4ixdQ^dyTaZ#vGFdJb-gBF9AQoe zPo;hxSl(aw=i_zGg{)4*OK{MRaD9e)SLxrvUkPfz3_jMHt9jP$xkW9{PAl83mBtj* zy0e?xUPsV6uZvSkExmwIl1_VyOX8mzzk_@rLjuJa zlzrpqJ-c=P01EK0h?-Bt?}oaio~Nr^%7S(USTXq+5y$@kTl|GXD7yEVPZbn>Is04u zV%B^cEsleu0={8pk%#*|hqt{@)qHJtYx_D&;+f{(e>PPa@OOFvj0*AJjn*C@@&5qA zy)(zq#kktANyy3I;5G->pP;WVo5Y%zi2Ma>@b&~HQdA@Xf;6)iuR&qK~}`d6=h+}{pi@qfZwuZY@G541sJGn4)0RnPJj_N|BP z+o%5k!Wm%NwYW3J0}?wQO5#6i9S+|_{gu2`XrQl=rp~$a$`#}AYV&c}i0GhgPM21H zo`;TnySuVUU?o1CxUVS|-(zWmliOnBxUWa?czNUzMcsHFm}B0!*07Rh4*|?z^V^~S z0P9y0=w@5DSYF%Bf*c0>#m{ltv@C)xv3S>RTjd}Qc=hz{Sn*rknUOCQ_J$jj;4Tku zt#?vrw$?g)O>J_H#0(<*$MWnb138W#d`x~&8zPl9lq}ql_kpDwkM8rc7|Hgg#&`Uq zE&cbP2{#f^9}U@f=~9Py#u#n(=}-->g*I(1!vn`1zt7U80kEh^;~45_0zs1(k_O`6 z#pu6JT5`oBMx}WjGCPWir%=CpZVyaCHkiM%CaBqtdM+e4(7-bHd}L07mY|EW;pn?TWn|Xzj3oxLgbmYR?&5kQ*lOnzYDFpQ5kmF|W(xl}6 zT`Ap;F`Rx?M2sOreBXr`&kNV5PSqv=#~JoC+#VH<2WkLraNjqrCOQB+^NLZBM>xd; zr_03v803DGgOktVI%b!r8T#URJ*hA{arn~z0JO9L4HV+7-jk6)7NP6@73qEyAZhRQuQi9S_*bTQQ~o?3Z?AgJ zuEsUK1F426hS49$NbCN6t4=VUUIPq#-{%#ctt5%RJ$T#ntL02+r=jVzcdl6;NjyQ> zQrJ64y~qCmU$!e#_lmh$^Ar50*k^IUQW{{^;y+^r<224QZxJ3wf?}J~QTJfLx4l2N=kx zqP0N-hJUq(A0!bTKp)*6-6?H#N-aXq}usP|#^r=j3kF~r%*=mCZR5^CQ z3D0h$ao8W*bL6Gr_^9hJ|DiTHURbdrAJyUBf&MGv75^?5ze(>Hf}ysM#PGVtvnI zD!^G<1-nRA;vPd?Fg|Y8{J#%s7Uf9LQ5}>lv9a*-t_I@782}gqj=xGR*cu=~^(~NgUXg`HaMmGQ;K& z{HzEZ=k%><{AkX5AKyRx6Sl_hNd1ZQR`Bki(nOP}X(2OPDOlB!05Oce%8KJ}8(-SK zl$%)8?Bz>_oEIzRjrVt%A-{|6_s6ApSL^^U8}=sAKGSB_mgQ`1Hel zocYj6{usu6fwfH`ZyQf#5zG+Dk|srds|rIHEleAc%L zia0G5@KOH&eO%!EX)Nwm^m#@(&Kswbs6Kmfi?S=)_H@_$yZnzne$W1X9WIUH&3YN* zOIyp8U=%t_cXuA+?4X`8iuqIi3L&cMkNX&S(^0!ocCo#?O9ZzQOeb4LH%P7<8CQ}u zQ;Zx}(Jggr4BJ}L@RjI(#eT#8083WBdi}eWHT{abXxf@d1+vGd%d|x6C|hf^nsO3Z z8L{?tkbUExoDA2MnZ_Sit0=K z+EEen1*Ox;rrjwY=n6>*-2tu5WBU z+XN!=B1*N){{S?qgA6&~j0*m1mhAmmY>V<(UqGhkP>N3s!UxSfWWL~f3}<)Y)Kzu0 zy2-t@v{)?qwxB~2>N>U$KZmtb)1!S-Lb`taQy(_l!<8f0lgaj_j#w^rwv|>_)PN+} z?O(EjKZhiYElA68B$D0k@Yd~W-aO}T?$t>9qiYTi(xzxZLk62H*K;Ys)2H9J^B4nf zKJ}mC4kn2Bqy8l>oUB&6S#igsjQ;@j>uXyY$h{_$@R6$2-s4Z#^d zr%DXT#lEk%?Lrn?B>w}w{AC&-G7PCpYEgD<9gv0%h z4zYT5-M5Y~MJsHy20cP~wE2b^wD=2%PBGN;!Nv#%o2%(^+FG&kdPi><2)k`nB$SRY z+k;?n{Hi-R7E4epZIVlP*n#INd5WhUGqjBQb3hYZe`?yuCDsS_6jtDcYjEdzZU#Ug zk@Yn!cAC^teXdlJ8xXu-kp6Sz9)PxexLT{H#V^||%u^``l@ z&#D=(4&6~o!mNuQkO<*(gR}xVp40)k1RAB?sMPdWW7SeNVs3Q-CSxO?m*yP@d{qQV zu4XXD9_xtmR?*d(6Vrstbk8+b`W3kH&x)0#ed@t%);3L`dgN!mMP1iVn*#p;Z`(kY z((On-&XGOGL4m>J)QZdr*m<~)`!+YN_w6H&O_BuwuOduiIs3f+6{D(X+OCxex$$kV z(%}n}C8T?ds16QEkdA{RfPK1W8paFn?Dn_QL^jYnGRCq9-gv+n`Aay%V?KpPBbtUQ zEh$o1Y&Y9T&9MZCn;R#EILOb}y;NgxKe}J|Bh32Ze#WtVst>Y5HNKeE#w3~ESfhd~ z7jNCVb-J;7P_DeFmr(StZ)e#;C97+d4Itcwb*s9 z*!0`#kjZm#ZY}JgFvl5>%YE0`Q1eHH^KYk6I0FZs)%WB4I?|@SmiF@6R-ewukXhIn z0SA@&wE%l^G4I!!{o98fIN)jX$*nqH^glbyul0#I%|yb|^$09A&$Q2_&TgVRSIN`$ zc~=9rP3wc6+*ZD;qv?9Rgnw?+CxYJFGG;v&Q^Fi_Nn4Od^z^P}{2OVk_?aivp=mb6 z(INXSlQKkuI4m!iC_TYDYiWEjePLxZUKR-)SCLB$?ADrk0~CV{K21eek8nV*er}Xp zc`D2CIX$IcX8CHX{ES;x@Ze`ei@tzq0(5ox#M&mN7Nu=w-`pJ7}N?U8Ar zkJ!)RE|juf#{?EObIc8-@UgSEyoO7REyRVG`6%2M+m1M|Nwn~#m6SIy**xoUbd47L zX(cv30{}m?MtB`MSDOCU9v!qFvFDGhFKz_adbO>NmT#v^RD#mp`tmDTT}{051S=fn zP6+u2BN@*oWnPoR)a0n!w^FFix3s4j)J-42K9n`xH(R`p-qj>2aAT0&Chy*;+b404 zpLgY1`d^#&#Eu(D#p)*2-l3IS7{K{}Jvtn5>@iw5+MTYetW11EY$lrRvP@oB*w+o_ zzS7=}FSkEKRb;)I&gvnn$#1B^BY975f(MZcebe%{-sA5a0r^++wMg1b{Q(S_8f{n1 z*5j2fl&JmOV8j@7AM3C<9+ftEN)Nid~OUQ!SL~xPC2r?B1 zBXKeed-GG;29nL}H04x^cidy1H3d!wIWjTFrUf;pw3gwczmnKo=(~ z=9>4>$s<@zZEdK{EA5I+*6QIv?A))@6_^H-40hKIZ>K}{Yr*@Rgc7T!2N*5XX0+D9 zr`3hdua~{ufXNI~K!9+$Qy|-qOj5nfQ0ePoES8#ym=%KFFSANxWB%gcar|AeRj;)R zXe~UQ_OZf20^j`>eXZ9cU_5YWy5}_F_;`^)AGYQ7uPBB*kqcyZw zmXJ2lwQb^!Bw`0oou zjKk%+X0~v+&Kv@`AA7w>#q#VeAp3oeZ60L-QI<7(r9*EP3iE}deH_ScI~xOLj* z87wk!*9x%*?NTz0q^Y^A^;m6WXWo&QRn!_h1K(`OQghd2erS*7k8)-rBb@wd29^ zOUWz;mJ1I|5kZ}ZC%Ly++AGUDYbI$KQdPILl@|m8t+~kHFzuRx(^R)62=1&c7T!ig z`%>CL8B$Kt*~S8l_v4DQX>$&ta=Lz%H`!BTl42s46620r+yH7#3DT~(}f`K6M1 zonwt7nga_f+dgkwIK z(H2}ixU((@AYcSwK<2dKx_vgzcrEX(+ev-H21wEKj&ei|k`4z!R5XkDjo;b4F?6Qp z>@Ux8DB2JAQGU+3&mF1RfqLsw(Z0|2J$p@w;Vrfc%YU-G%%t!eZr*T5pfy6$IkgFv z+fBB!zUW#<7A+orJ1_RxfuS#sUT4Yyn zTI&}u&2sC*+s>GbuK`Go00I0@N^AXVU)&a7B5$*7MHt5cLWbuHR<&t# zx46csAWcT)RaQUrQ*N0#P1{uPGxKrHS-P^1PmXByso}e^mukiKX#{hQ0R(M`kIeoQ z>+Mw8Y0znUKB};2@50PuaQ8Y_JQ!&sIb7H5L-P^q8oOfBPf;DEnm<#X>q5L!f#%?6#LeVSWC zl1eQ@V=%7MxRoI`4!jT2sA?BFEtodf zGMl%L_lrHf%f_pmWpI!>XWf9{*1PG_MQb!yvyEB_SV_Lh>DpEKvGWy$fWXIKIG|5q z_Z}he$dVZ@<^KSQs{)aEi)3w7usAtH8$bjcoKr5fjTH=5o+1|4Qp~#q&`ECUoDqzH zu|0vu9E|j>7%sIfD#>HeHFSqewGt1oE$pz)=Q-QOylhWEGCvxjq)i=$nQ;e(=Q>oE zimY1d=55A68wGP}p#K21^JAwGG$QwLi0= zg&CaXR2=w*5%S~|kB*8P_K(L`F?cggxRIf^yScyf{DSe?%^XaK01n)YZX>_9*YQ{W z4gHHteG|p{^~@53psm@kji*TEoN5;99n27t6$=?`bj2NZu#Dhu=l8xp6KSyNx~0VT zn-VByXwo~>7ZOa#wGm@B0`pm_IJv9>W-+}y!z;Nm-ru@RB;!X1`ONyl$3x^OuavElC%-CRA%(&aHN zt9jD~)I7MDO6|Sl#j0b(B2IU0a(0i95}~q2IpEh#{iAtn;ay)wkL)+Ic!I+I#@_2s7Hu7zw>GjQ zd6F@eb16-n6(|o=v{cRU4rwn|&qCC$oUB2zC*KfryDPWJ4ql)y`$r%g5DGO)34|r8CkAZPP(~@El%9Xh#`UA1Z}9S zOnV|% zDDgbjW9`CMaKC$)_8yq}SDADH;ukYP=J=-e(_h0O4PkVtBt=FEZz|uBhQ>Q|sV=p9 zy*ERK4F^>6G-3)qn({B(RkvlMTtKXOz+QgurApdlR(1-S40nDN2_bUMZx%TK&KC!- zX21jSs*q^1S=)W83tQ)ChUxW%7g7G?kau}xAY~a`s5#oX=8K_;quu`iWqHte16N%a z?MQ{jr#F!0iEL~iXE_5Kat?l#W5beYb~jC__+7uUo>UROrKnt(t)z2;#Ru8g6O|Z0 z<5gnQ{QLN)fvz?5P^@K!JEV9Nlfw;!kZ^YM&JAg{k9~D)V$ts=)*!WDB+_B~TqL6p zmnE370OM%D#ya+*=nPFk?IG17wVE-j%<=i3Y_q*0IJ5r%Ej~y;<(~wSq+oI?-;1?$ zO9wig#6BQ9a}<_0f4qUyq4_P9dX>gUZfTKehRW5M-hU270|^eCP0(2bU}2q^cybtJ ze+sh(hj$AZt-jUaK$3|Iz;9e!73Fi1zjytNpGrB9Ezj)}{t0`o=pG^clQf+x;cl-r z)t#-5iD^B&PKJ9+pxTN{48%moKV=pLhTLq}!wPHd3!PT#)=6~xYy0T$(+eCH*UChJ z!QIPSWD$Y=EAl7)2m|7IY(HjCAI+&-v@q#@B-7=zxn-I!w?{3f*vSeMl03~l{!lZy zm>$*o$8qBwPfs%5rYvHPU5gBtTD`oATO?vGxWGKBn@{Nv&3+94YI@D}%G;IQ?qHR148&9-oB*s|; z+JrHjbR!b3NdV^pzP6k_-fv^CYn;58Shw+PWT%R5d^dX5ei)MW>NsU8aVb(tv0SN0 zcDkHoboBag{{Xf87rN){Y2({}53R-h(rK{Wi)nW=W(gi)7*#}&lQb}4M<;mVy^!mg zow4(sCXKr7Q>cN*sb|O2z zbu1Z8dY8d}i+>QmXCH`>c;Dei+WZKy?ca9h>NT9BEQ+LUV~xqs4w?JID%@9%{2k)G zGsn8ug)a18_()$vyPCzWE+d$d*2iOQ!whACJy_)T#bQSo*C1x_{p)zD=G1R}Hf6Xf zsyenNlWURv&_7E4YOPXud`pyfO#046QkN{YXYGrB!EL{33tKh3(qq>pvjch57gxBB z-Mbc0x@-}J><5-xjB;wUpYU6c+F`?A*bRHcts%m;pQ_!(9BMjwn{?O<=bT~d@m|i# zOUTB?2H}P}XO4hXJ6$a_8-p*3C?=-~I zH0HpERe}dwiIZsv*b^6DFml6;RGKA}`pPz|qv^KV>~TDab9FL5o`?YF_p%fBdSFz4 zteEfSAJi#-Otaz(y+c{Nxz!+Bp9#tULv(!f7gzyGs^hQApS;=Z2SM~V>^<=NRM-Ci zYF~%i&Vy|zgGh z7m;s-BCpB;mP8mC91l=93twvg0KqUVE_Kh_)4-Z;sU^f(u+*V4X_2nmNbMHl0emvg zk1XlN=tvb#P!XJ0CJu6~jDw!-qj^OtZru_6miRlv=fZv%@W+GgHCfEw8qsWYxl}d9 zn7M5>AF_#rV-6BQ0AZd=^f(~Y`o^*1OY0YgO-6Y{D$k#_-nnpyPBy#k>Ia~%Y*^0P z)xGzMBbV(K_R+;MLv1UBXp|`o%IbT2b^Nq-4-)uN<`bn`+5MZ6yM~_XNyZP&CDV4} z?$`9*9)&t^q?~W3+hi^!^l4w9^(zS~hs)MV{!OF}Xv+xbCN~+{{Vv9Ytm{reiP8VSv}Q&785*a6nV=TBUM&YAOH;9 z56-+^FMsfzQ^_6JSx1>JYwCU!HlIA!52a|=ZQ>V!gGr`K4AH6v&nvi)cAu&DqVrAG z?%quTO+w>Mx;tb#3z^!^K-+Mq_keuuoblH+XT(=Jrlp__Z^v3yo|mUa%87Mmu|4BC zA1asgT#w?<%088tm%5eagK2+dr`u|l19F+JVu;;{l=Ka|?*Yi;IqzS~HFrLQ(zNiO ziQ^{CjNTDxu)%cLCz4By1D)8FcuaIrj(XJ_n+;~>LwTv$N2Xa?M$$#ES;Huq<2eD` z`HaNAa>_{~JaJpU4ZLY{p3f3;kezvE#SgS8!BPqMYQlFk); z+}X~NU@#4l73pT$yNCgWX^1=ntH{vmQrLwXhs!RTFka*2c}Cn0xXm}mF?>9-_*1Ou zS}Zzc#qGj*EUoqgh{ZIk8@XiL8sa7-ZZ-VTm(W!)O-j$m_UrpdQeO8%@DJjr{1-3d zpTZv<>Y7fU@bkl0wwf%mTSut1wcu=ICkk(O4p=F{>t20t{{RK){h}}JkBBTj7kFk! zTOi8uULz8{M%L6b`d8%l?Gdd{bMfoOGD!-rh_5vZqdGKke`ZE^7GMLNs=KqXMnD}o z#dvej@A8bmGCx6JS8bl2^+M(Bj@Fh zuKv;eEBqe+0D|azC-H>#$?-nM+QR4$^qYM%K%BZ`A96`GcHRKVAG*&2AP#Hwui*FX zDe#};#*n@t@I92xZ8NY*FEo(>m&+wi&~JMcE6xT~=eB=>tEqhZCy&RUXS=tI7}cx< zO*$3EFvvo#Ju!@SuhHN5Ca>)S<8Ox_w6BIfADLjf@ZXQGY&2Gq?X6oerfak}UK7 ziE1|wuiDN(D$cjoyfoLs_8l@W-s2lBZCGp|^Pjbm$j(oNk;z#x&>ui}>C&Km1L5|cd^HQ}>oK$#l||*2#a7P&aq54cKuAB#^=Q??R^+V} zb>w{%e|rThpOb&^SZ~?qMDh2+Hu$}#>99wr+gzk7K)1|ED2x-8cKNU;e0|U`daC33 zDYlN<>r#?02q@It0Jj5Ej58{KvI}(Yzyqa!eZRCP!!L#YJNPAe;D@_ck6DsL9#ppS zc~W_1Byr^`ugcR5uLO=VGhf2j#MtduRJnu3?`d-cuPC-%Ghmhy7@UPf8v}I!@CG=> zEBa@`eA=~a45-!nFHb|~b6RRMNgvQB{16uZ0K;}VFT}|8_nFsH)NGbZKe9mZMlDC~ z^3qJDOB>1Xs}|fLJGX6C{(-Hg_<3P+<3`h=ic&`JE-gF)JAwt#BR$6)eJk)c{tfkA z4_5Gh#C!2Q6#!YlWmMbY$K7go8kx}MH9 zlz^;nEaP#W!F;g2J7YEZw~Fy!+SO#Ct(W9_d1IQSl028i`k#aJj~81_d1-F8>+&>f z_7xlCBMen;jyv_>V0+`%Ev^0^->g@#v{8waFf09-Fh~cl+P86ED1O(v+`kX}Gjrly z4BOq^t3w23{xwwYGm6vzz!0B{0iCzsj}r&|6%t*`Ag&00$>PA{};!0beIjjZBa=O{P}g#3uW z^{?;Wyvf?AeIQlFzk$#eW5V6tv~=-l=`2YQZh6 zVv&>VZopr}`->GnAt9F_Hh!4SMSn|pN0_-_XNKjqj|()5=S`olzwks4hWb_K?GrD? z&lpc>B=9R~5kRIHJfn3Lyh|oq?w3o(!BLPRkulEN{-+~@z_&K3eRUO=l_)0@wSaC% zPo7Soo_l^6ugK5%BHw|Z!v6rWrmr@GbuN{rYI=+paa!Nbu}GIE?F%a%&;gGi+5o^D zlm`G~ck04;e^<1bry8_3aWqasLok@Lu;ZjCI^!6}rYrNG6*2U&*|UPA`J?XN(Dbsn zxKVOx92K^&;aI$Pb>aJ%Y!co$9#vS<&Nf^XSpI0X-~jxbUlTxoNpvfNpt{jgjkM(OhW(d>+=#`Iiu7##Mm zs;o3^Th0+%YhVR93NE7`nk}*I?_ZkYC@M`fm`=>%_+tQY54C?H?{Q=`b^hJ??zRZf+B{8e6?n_K4DO} zuRr)I-}*1?*#vKK9n#7rh1o_kwnER5wR%60Iu6FalY3Q5Xbd_ev1wM$2l_SCiq9b& z62C5a`@Q+}>0i>G5Zn7Tq^x*3h5fFlIW6Vk8+=*iUO<=-n=dT7x2eWg9+lI^_kspV zr;ORm6$}oswZ_x*2a#0m-$AgI?X;cRQveBjmtC3mUAV_;(~WesyfRu_d9o_xU5EYA zW7Md|4SvFKlUkOtOlVRivVG6=otZr_0orOGKS$GU1aU$Q)ZZyCLqpC6?u2�P9uB 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

h9K?S$~o7lK~ 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�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%0AO|lWN_hcI;h1Rl;WbCdiVC7=xrk^$ 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 literal 0 HcmV?d00001 diff --git a/images/CoverArtView.jpg b/images/CoverArtView.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c5aa02b6370a8171ad654b12f0a78c7316611ec GIT binary patch literal 767741 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