From 9b62c2d9c3718909567bf1ef41b57fb3d7062a81 Mon Sep 17 00:00:00 2001 From: RudolphRiedel <31180093+RudolphRiedel@users.noreply.github.com> Date: Sun, 8 Jan 2023 14:15:16 +0100 Subject: [PATCH] - updated all the examples and checked that everything still compiles --- README.md | 96 +- .../EVE_Test_Arduino_PlatformIO/src/tft.c | 71 +- .../src/tft_data.c | 110 +- .../src/tft_data.h | 2 +- .../EVE_Test_ESP32_PlatformIO/CMakeLists.txt | 3 - .../EVE_Test_ESP32_PlatformIO/platformio.ini | 5 +- examples/EVE_Test_ESP32_PlatformIO/src/tft.c | 71 +- .../EVE_Test_ESP32_PlatformIO/src/tft_data.c | 110 +- .../EVE_Test_ESP32_PlatformIO/src/tft_data.h | 2 +- .../platformio.ini | 4 + .../src/tft.c | 71 +- .../src/tft_data.c | 110 +- .../src/tft_data.h | 2 +- .../EVE_Test_SAMC21_EVE2-50G/EVE_Test.cproj | 17 +- .../EmbeddedVideoEngine/EVE.h | 4 +- .../EmbeddedVideoEngine/EVE_commands.c | 1144 +++++++---------- .../EmbeddedVideoEngine/EVE_commands.h | 44 +- .../EmbeddedVideoEngine/README.md | 96 +- examples/EVE_Test_SAMC21_EVE2-50G/tft.c | 71 +- examples/EVE_Test_SAMC21_EVE2-50G/tft_data.c | 110 +- examples/EVE_Test_SAMC21_EVE2-50G/tft_data.h | 2 +- .../platformio.ini | 4 + .../src/tft.c | 71 +- .../src/tft_data.c | 110 +- .../src/tft_data.h | 2 +- .../EVE_Test_SAME51_EVE3-43G/EVE_Test.cproj | 10 +- .../EmbeddedVideoEngine/EVE.h | 4 +- .../EmbeddedVideoEngine/EVE_commands.c | 1144 +++++++---------- .../EmbeddedVideoEngine/EVE_commands.h | 44 +- .../EmbeddedVideoEngine/README.md | 96 +- examples/EVE_Test_SAME51_EVE3-43G/tft.c | 71 +- examples/EVE_Test_SAME51_EVE3-43G/tft_data.c | 110 +- examples/EVE_Test_SAME51_EVE3-43G/tft_data.h | 2 +- .../platformio.ini | 2 + .../src/tft.c | 71 +- .../src/tft_data.c | 110 +- .../src/tft_data.h | 2 +- .../.vs/Display_Test1/v14/.atsuo | Bin 15360 -> 0 bytes .../Display_Test1/EmbeddedVideoEngine/EVE.h | 4 +- .../EmbeddedVideoEngine/EVE_commands.c | 1144 +++++++---------- .../EmbeddedVideoEngine/EVE_commands.h | 44 +- .../EmbeddedVideoEngine/README.md | 96 +- .../Display_Test1/tft.c | 71 +- .../Display_Test1/tft_data.c | 110 +- .../Display_Test1/tft_data.h | 2 +- examples/README.md | 57 +- 46 files changed, 2402 insertions(+), 3124 deletions(-) delete mode 100644 examples/EVE_Test_ESP32_PlatformIO/CMakeLists.txt delete mode 100644 examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/.vs/Display_Test1/v14/.atsuo diff --git a/README.md b/README.md index 6f87675..6f68da0 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,7 @@ It contains code for and has been used with various micro-controllers and displa ## Controllers -I have used it so far with: - +I have used it so far with: - 8-Bit AVR, specifically the 90CAN series - Arduino: Uno, mini-pro, ESP8266, ESP32 (DMA), Metro-M4 (DMA), STM32 Nucleo_F446RE (DMA), XMC1100 - Renesas F1L RH850 @@ -23,8 +22,7 @@ I have used it so far with: - S32K144 (DMA) - GD32C103CBT6 (DMA) -I have reports of successfully using it with: - +I have reports of successfully using it with: - ATSAMV70 - ATSAMD20 - ATSAME4 @@ -36,8 +34,7 @@ I have reports of successfully using it with: ## Displays -The TFTs tested so far: - +The TFTs tested so far: - FT810CB-HY50HD http://www.hotmcu.com/5-graphical-lcd-touchscreen-800x480-spi-ft810-p-286.html - FT811CB-HY50HD http://www.hotmcu.com/5-graphical-lcd-capacitive-touch-screen-800x480-spi-ft811-p-301.html - RVT70UQFNWC0x https://riverdi.com/product/rvt70uqfnwc0x/ @@ -68,28 +65,26 @@ The TFTs tested so far: This is version 5 of this code library and there are a couple of changes from V4. -First of all, support for FT80x is gone. The main reason is that this allowed a nice speed improvement modification that only works with FT81x and beyond. +First of all, support for FT80x is gone. +The main reason is that this allowed a nice speed improvement modification that only works with FT81x and beyond. Then there is a hard break from FT80x to FT81x with ony 256k of memory in FT80x but 1MB in FT81x. The memory map is different and all the registers are located elsewhere. -FT810, FT811, FT812, FT813, BT815, BT816, BT817 and BT818 can use the exact same code as long none of the new features of BT81x are used - and there are plenty of modules with these available to choose from - -As a side effect all commands are automatically started now. - -Second is that there are two sets of display-list building command functions now: EVE_cmd_xxx() and EVE_cmd_xxx_burst(). +FT810, FT811, FT812, FT813, BT815, BT816, BT817 and BT818 can use the exact same code as long none of the new features of BT81x are used - and there are plenty of modules with these available to choose from. +As a side effect all commands are automatically started now. +Second is that there are two sets of display-list building command functions now: EVE_cmd_xxx() and EVE_cmd_xxx_burst(). The EVE_cmd_xxx_burst() functions are optimized for speed, these are pure data transfer functions and do not even check anymore if burst mode is active. ## Structure -This library currently has nine files that I hope are named to make clear what these do: - -- EVE.h - this has all defines for FT81x / BT81x itself, so here are options, registers, commands and macros defined -- EVE_commands.c - this has all the API functions that are to be called from an application -- EVE_commands.h - this contains the prototypes for the functions in EVE_commands.c -- EVE_config.h - this has all the parameters for the numerous supported display modules, here is definded which set of parameters is to be used -- EVE_target.c - this has non-portable specific code for a number of supported controllers, mostly to support DMA -- EVE_target.h - this has non-portable pin defines and code as "static inline" functions for all supported controllers -- EVE_target.cpp - this is for Arduino C++ targets -- EVE_cpp_wrapper.cpp - this is for Arduino C++ targets -- EVE_cpp_wrapper.h - this is for Arduino C++ targets +This library currently has nine files that I hope are named to make clear what these do: +- EVE.h - this has all defines for FT81x / BT81x itself, so here are options, registers, commands and macros defined +- EVE_commands.c - this has all the API functions that are to be called from an application +- EVE_commands.h - this contains the prototypes for the functions in EVE_commands.c +- EVE_config.h - this has all the parameters for the numerous supported display modules, here is definded which set of parameters is to be used +- EVE_target.c - this has non-portable specific code for a number of supported controllers, mostly to support DMA +- EVE_target.h - this has non-portable pin defines and code as "static inline" functions for all supported controllers +- EVE_target.cpp - this is for Arduino C++ targets +- EVE_cpp_wrapper.cpp - this is for Arduino C++ targets +- EVE_cpp_wrapper.h - this is for Arduino C++ targets ## Examples @@ -100,7 +95,7 @@ EVE_cmd_dl(DL_CLEAR_COLOR_RGB | WHITE); // sets the background color EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); EVE_color_rgb(BLACK); EVE_cmd_text(5, 15, 28, 0, "Hello there!"); -EVE_cmd_dl(DL_DISPLAY); // put in the display list to mark its end +EVE_cmd_dl(DL_DISPLAY); // put in the display list to mark the end EVE_cmd_dl(CMD_SWAP); // tell EVE to use the new display list while (EVE_busy()); ```` @@ -121,11 +116,11 @@ EVE_end_cmd_burst(); while (EVE_busy()); ```` -This does the same as the first example but faster. +This does the same as the first example but faster. The preceding EVE_start_cmd_burst() either sets chip-select to low and sends out the three byte address. -Or if DMA is available for the target you are compiling for with support code in EVE_target.c / EVE_target.cpp and EVE_target.h, it writes the address to EVE_dma_buffer and sets EVE_dma_buffer_index to 1. +Or if DMA is available for the target you are compiling for with support code in EVE_target.c / EVE_target.cpp and EVE_target.h, it writes the address to EVE_dma_buffer[] and sets EVE_dma_buffer_index to 1. -Note the trailing "_burst" in the following functions, these are special versions of these commands that can only be used within an EVE_start_cmd_burst()/EVE_end_cmd_bust() pair. +Note the trailing "_burst" in the following functions, these are special versions of these commands that can only be used within an EVE_start_cmd_burst()/EVE_end_cmd_bust() pair. These functions are optimized to push out data and nothing else. The final EVE_end_cmd_burst() either pulls back the chip-select to high. @@ -134,7 +129,7 @@ Or if we have DMA it calls EVE_start_dma_transfer() to start pushing out the buf As we have 7 commands for EVE in these simple examples, the second one has the address overhead removed from six commands and therefore needs to transfer 18 bytes less over SPI. So even with a small 8-bit controller that does not support DMA this is a usefull optimization for building display lists. -Using DMA has one caveat: we need to limit the transfer to <4k as we are writing to the FIFO of EVEs command co-processor. This is usually not an issue though as we can shorten the display list generation with previously generated snippets that we attach to the current list with CMD_APPEND. And when we use widgets like CMD_BUTTON or CMD_CLOCK the generated display list grows by a larger amount than what we need to put into the command-FIFO so we likely reach the 8k limit of the display-list before we hit the 4k limit of the command-FIFO. +Using DMA has one caveat: we need to limit the transfer to <4k as we are writing to the FIFO of EVEs command co-processor. This is usually not an issue though as we can shorten the display list generation with previously generated snippets that we attach to the current list with CMD_APPEND. And when we use widgets like CMD_BUTTON or CMD_CLOCK the generated display list grows by a larger amount than what we need to put into the command-FIFO so we likely reach the 8k limit of the display-list before we hit the 4k limit of the command-FIFO. It is possible to use two or more DMA transfers to the FIFO to build a single display list, either to get around the 4k limit of the FIFO or in order to distribute the workload better of the time necessary between two display renewals. You could for example do this, spread over three consecutive calls: @@ -160,9 +155,9 @@ EVE_cmd_dl_burst(CMD_SWAP); EVE_end_cmd_burst(); ```` -But you need to check with EVE_busy() before each of these blocks. -Maybe similar like this never compiled pseudo-code: - +But you need to check with EVE_busy() before each of these blocks. +Maybe similar like this never compiled pseudo-code: +```` thread_1ms_update_display() { static uint8_t state = 0; @@ -193,32 +188,39 @@ thread_1ms_update_display() } } } - +```` ## Remarks -The examples in the "example_projects" drawer are for use with AtmelStudio7. +The examples in the "example_projects" drawer are for use with AtmelStudio7. For Arduino I am using PlatformIO with Visual Studio Code. -The platform the code is compiled for is automatically detected thru compiler flags in EVE_target.h. - -The desired TFT is selected by adding a define for it to the build-environment, e.g. -DEVE_EVE3_50G -There is a list of available options at the start of EVE_config.h sorted by chipset. - -- Provide the pins used for Chip-Select and Power-Down in EVE_target.h for the target configuration you are using +The platform the code is compiled for is automatically detected thru compiler flags in EVE_target.h. +The desired TFT is selected by adding a define for it to the build-environment, for example: "-DEVE_EVE3_50G" +There is a list of available options at the start of EVE_config.h sorted by chipset. +The pins used for Chip-Select and Power-Down are configured in the EVE_target/EVE_target_xxxx.h files like this: +```` +#if !defined(EVE_CS) +#define EVE_CS 10 +#endif -When compiling for AVR you need to provide the clock it is running at in order to make the _delay_ms() calls used to initialize the TFT work with the intended timing. -For other plattforms you need to provide a DELAY_MS(ms) function that works at least between 1ms and 56ms and is not performing these delays shorter than requested. +#if !defined(EVE_PDN) +#define EVE_PDN 8 +#endif +```` +So you can override the default settings by adding your own defines to your build-environment, for example: "-DEVE_CS=9" +When compiling for AVR you need to provide the clock it is running at in order to make the _delay_ms() calls used to initialize the TFT work with the intended timing. +For other plattforms you need to provide a DELAY_MS(ms) function that works at least between 1ms and 56ms and is not performing these delays shorter than requested. The DELAY_MS(ms) is only used during initialization of the FT8xx/BT8xx. -See EVE_target.h for examples. +See EVE_target.h for examples. -In Addition you need to initialize the pins used for Chip-Select and Power-Down in your hardware correctly to output. -Plus setup the SPI accordingly, mode-0, 8-bit, MSB-first, not more than 11MHz for the init. -A couple of targets already have a function EVE_init_spi() in EVE_target.c. +In Addition you need to initialize the pins used for Chip-Select and Power-Down in your hardware correctly to output. +Plus setup the SPI accordingly, mode-0, 8-bit, MSB-first, not more than 11MHz for the init. +A couple of targets already have a function EVE_init_spi() in EVE_target.c or EVE_cpp_target.cpp. A word of "warning", you have to take a little care yourself to for example not send more than 4kB at once to the command co-processor -or to not generate display lists that are longer than 8kB. -My library does not check and re-check the command-FIFO on every step. +or to not generate display lists that are longer than 8kB. +My library does not check and re-check the command-FIFO on every step. This is optimized for speed, so the training wheels are off. ## Post questions here diff --git a/examples/EVE_Test_Arduino_PlatformIO/src/tft.c b/examples/EVE_Test_Arduino_PlatformIO/src/tft.c index 75784b0..f5f932e 100644 --- a/examples/EVE_Test_Arduino_PlatformIO/src/tft.c +++ b/examples/EVE_Test_Arduino_PlatformIO/src/tft.c @@ -1,8 +1,8 @@ /* -@file tft.c / tft.cpp +@file tft.c @brief TFT handling functions for EVE_Test project -@version 1.20 -@date 2022-12-10 +@version 1.21 +@date 2023-01-08 @author Rudolph Riedel @section History @@ -19,12 +19,16 @@ - renamed PINK to MAGENTA 1.20 +- several minor changes + +1.21 - several minor changes */ #include "EVE.h" #include "tft_data.h" +#include "tft.h" #define TEST_UTF8 0 @@ -47,16 +51,20 @@ #define MEM_LOGO 0x000f8000 /* start-address of logo, needs 6272 bytes of memory */ #define MEM_PIC1 0x000fa000 /* start of 100x100 pixel test image, ARGB565, needs 20000 bytes of memory */ - #define MEM_DL_STATIC (EVE_RAM_G_SIZE - 4096) /* 0xff000 - start-address of the static part of the display-list, upper 4k of gfx-mem */ -uint32_t num_dl_static; /* amount of bytes in the static part of our display-list */ +uint32_t num_dl_static = 0; /* amount of bytes in the static part of our display-list */ uint8_t tft_active = 0; -uint16_t num_profile_a, num_profile_b; +uint16_t num_profile_a = 0; +uint16_t num_profile_b = 0; #define LAYOUT_Y1 66 +void touch_calibrate(void); +void initStaticBackground(void); + + void touch_calibrate(void) { @@ -210,6 +218,8 @@ void touch_calibrate(void) /* write down the numbers on the screen and either place them in one of the pre-defined blocks above or make a new block */ #if 0 /* calibrate touch and displays values to screen */ + +#if 1 EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); @@ -218,15 +228,16 @@ void touch_calibrate(void) EVE_cmd_dl(DL_DISPLAY); EVE_cmd_dl(CMD_SWAP); EVE_execute_cmd(); +#else + EVE_calibrate_manual(EVE_HSIZE, EVE_VSIZE); +#endif - uint32_t touch_a, touch_b, touch_c, touch_d, touch_e, touch_f; - - touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); - touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); - touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); - touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); - touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); - touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); + uint32_t touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); + uint32_t touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); + uint32_t touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); + uint32_t touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); + uint32_t touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); + uint32_t touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); @@ -260,25 +271,25 @@ void touch_calibrate(void) void initStaticBackground(void) { EVE_cmd_dl(CMD_DLSTART); /* Start the display list */ - EVE_cmd_dl(TAG(0)); /* do not use the following objects for touch-detection */ + EVE_cmd_dl(DL_TAG); /* no tag = 0 - do not use the following objects for touch-detection */ - EVE_cmd_bgcolor(0x00c0c0c0); /* light grey */ + EVE_cmd_bgcolor(0x00c0c0c0UL); /* light grey */ - EVE_cmd_dl(VERTEX_FORMAT(0)); /* reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ + EVE_cmd_dl(DL_VERTEX_FORMAT); /* set to 0 - reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ /* draw a rectangle on top */ EVE_cmd_dl(DL_BEGIN | EVE_RECTS); - EVE_cmd_dl(LINE_WIDTH(1*16)); /* size is in 1/16 pixel */ + EVE_cmd_dl(LINE_WIDTH(1U*16U)); /* size is in 1/16 pixel */ EVE_color_rgb(BLUE_1); - EVE_cmd_dl(VERTEX2F(0,0)); + EVE_cmd_dl(DL_VERTEX2F); /* set to 0 / 0 */ EVE_cmd_dl(VERTEX2F(EVE_HSIZE,LAYOUT_Y1-2)); EVE_cmd_dl(DL_END); /* display the logo */ EVE_color_rgb(WHITE); EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS); - EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56, 56); + EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56U, 56U); EVE_cmd_dl(VERTEX2F(EVE_HSIZE - 58, 5)); EVE_cmd_dl(DL_END); @@ -341,7 +352,7 @@ void TFT_init(void) if (E_OK == EVE_init_flash()) { - EVE_cmd_flashread(MEM_FONT, 84928, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ + EVE_cmd_flashread(MEM_FONT, 61376, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ } #endif /* TEST_UTF8 */ @@ -353,7 +364,6 @@ void TFT_init(void) } } - uint16_t toggle_state = 0; uint16_t display_list_size = 0; @@ -394,11 +404,12 @@ void TFT_touch(void) } } break; + default: + break; } } } - /* dynamic portion of display-handling, meant to be called every 20ms or more */ @@ -406,7 +417,7 @@ void TFT_display(void) { static int32_t rotate = 0; - if(tft_active != 0) + if(tft_active != 0U) { #if defined (EVE_DMA) uint16_t cmd_fifo_size; @@ -418,18 +429,18 @@ void TFT_display(void) EVE_cmd_dl_burst(CMD_DLSTART); /* start the display list */ EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | WHITE); /* set the default clear color to white */ EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); /* clear the screen - this and the previous prevent artifacts between lists, Attributes are the color, stencil and tag buffers */ - EVE_cmd_dl_burst(TAG(0)); + EVE_cmd_dl_burst(DL_TAG); EVE_cmd_append_burst(MEM_DL_STATIC, num_dl_static); /* insert static part of display-list from copy in gfx-mem */ /* display a button */ EVE_color_rgb_burst(WHITE); - EVE_cmd_fgcolor_burst(0x00c0c0c0); /* some grey */ - EVE_cmd_dl_burst(TAG(10)); /* assign tag-value '10' to the button that follows */ + EVE_cmd_fgcolor_burst(0x00c0c0c0UL); /* some grey */ + EVE_cmd_dl_burst(DL_TAG+10U); /* assign tag-value '10' to the button that follows */ EVE_cmd_button_burst(20,20,80,30, 28, toggle_state,"Touch!"); - EVE_cmd_dl_burst(TAG(0)); /* no touch */ + EVE_cmd_dl_burst(DL_TAG); /* no touch */ /* display a picture and rotate it when the button on top is activated */ - EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100, 100); + EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100U, 100U); EVE_cmd_dl_burst(DL_SAVE_CONTEXT); EVE_cmd_dl_burst(CMD_LOADIDENTITY); @@ -438,7 +449,7 @@ void TFT_display(void) EVE_cmd_translate_burst(65536 * -70, 65536 * -50); /* shift back */ EVE_cmd_dl_burst(CMD_SETMATRIX); - if(toggle_state != 0) + if(toggle_state != 0U) { rotate += 256; } diff --git a/examples/EVE_Test_Arduino_PlatformIO/src/tft_data.c b/examples/EVE_Test_Arduino_PlatformIO/src/tft_data.c index b274913..2d47234 100644 --- a/examples/EVE_Test_Arduino_PlatformIO/src/tft_data.c +++ b/examples/EVE_Test_Arduino_PlatformIO/src/tft_data.c @@ -86,69 +86,57 @@ const /*__flash*/ uint8_t pic[3844] PROGMEM = /* Source File: Funtype.zlib unified.blob : 0 : 4096 -Funtype_24_ASTC.glyph : 4096 : 80832 -Funtype_24_ASTC.xfont : 84928 : 320 -z-lib compressed, unpacked size is 85248 +Funtype_24_ASTC.glyph : 4096 : 57280 +Funtype_24_ASTC.xfont : 61376 : 320 +z-lib compressed, unpacked size is 61952 The font is this one: https://fontlibrary.org/de/font/funtype -Converted with EAB using an ASCII map file to reduce the number of glyphs from 364 to 187. -This is only included for the purpose to demonstrate how to handle UTF-8 fonts with BT81x. +Converted with EAB 2.7.1 using an ASCII map file to reduce the number of glyphs to 119. +Glyphs are ASCII plus a select few from "Latin 1 Supplement" : ©«°±²³´µ¹»¼½¾ÄÖ×Üßäëö÷øü +This is only included to demonstrate how to handle UTF-8 fonts with BT81x. */ -const uint8_t flash[12753] PROGMEM = +const uint8_t flash[8199] PROGMEM = { - 0x78, 0x9c, 0xed, 0x7d, 0xd, 0x7c, 0x14, 0xd5, 0xb9, 0xfe, 0x33, 0x33, 0x9b, 0x99, 0x49, 0x76, 0x93, 0x5d, 0x64, 0x81, 0x5, 0x36, 0xd9, 0x55, 0xd7, 0x12, 0x5, 0xcc, 0x0, 0x11, 0x26, 0x12, 0xc8, 0x9, 0xac, 0xb9, 0x1, 0xb1, 0x5d, 0x34, 0x62, 0xd0, 0x2a, 0x83, 0xd5, 0x18, 0xb0, 0xf6, 0x6e, 0x20, 0x41, 0x82, 0xc1, 0x4c, 0xc4, 0x2b, 0xc1, 0x4a, 0x8d, 0x1f, 0xb7, 0x37, 0xfe, 0xb4, 0xed, 0xf6, 0xe3, 0x5f, 0x69, 0x6f, 0xed, 0x8d, 0xd4, 0xb6, 0xb4, 0xf5, 0x63, 0x48, 0xa8, 0x8d, 0x11, 0xed, 0xf6, 0xeb, 0x96, 0xeb, 0xad, 0xb7, 0xeb, 0xc5, 0x5b, 0xb1, 0xd5, 0x76, 0x10, 0x6c, 0x17, 0xd, 0xe4, 0x7f, 0xce, 0xcc, 0x6, 0x68, 0xe2, 0xed, 0xe2, 0xcd, 0x86, 0x60, 0xd9, 0x13, 0xd8, 0xdd, 0x77, 0xe6, 0xec, 0xce, 0x99, 0x67, 0xde, 0xf3, 0x7e, 0x9c, 0xf3, 0x9e, 0xf7, 0x44, 0x7f, 0xfb, 0xfe, 0x83, 0x45, 0x1c, 0x70, 0xe0, 0xeb, 0xa, 0x7c, 0x9c, 0x7, 0x40, 0xf2, 0x95, 0xa5, 0x8f, 0x5f, 0x34, 0x70, 0xa2, 0x10, 0x7d, 0xfb, 0xba, 0x1b, 0xd7, 0x5d, 0x37, 0xb7, 0x9e, 0x3c, 0x3c, 0xfb, 0xe0, 0x9c, 0xf7, 0xe7, 0x6c, 0x9d, 0xa3, 0xce, 0xbd, 0xb3, 0x42, 0x5f, 0x17, 0xea, 0xc0, 0x7f, 0x46, 0xd, 0xec, 0xd5, 0xf5, 0x69, 0x24, 0x36, 0x30, 0x48, 0x41, 0x1f, 0x67, 0x78, 0x75, 0xe1, 0x67, 0xf, 0x6c, 0x20, 0xba, 0xd0, 0x3d, 0xee, 0x27, 0x9f, 0x1f, 0xf0, 0x90, 0xaf, 0x54, 0xfc, 0x44, 0xdf, 0xba, 0x6e, 0x79, 0xe3, 0x5d, 0xb3, 0xeb, 0xc9, 0xf2, 0xd2, 0x6d, 0x15, 0xec, 0x37, 0xda, 0xe6, 0x36, 0xcd, 0x9d, 0x42, 0xaf, 0x36, 0xab, 0xca, 0x77, 0xfe, 0xdd, - 0x97, 0xee, 0xbf, 0x75, 0xfa, 0x17, 0xec, 0xab, 0x55, 0xad, 0xfb, 0xf1, 0xac, 0x13, 0x57, 0x72, 0xe2, 0xbb, 0x15, 0x7f, 0x58, 0xdf, 0xab, 0xe3, 0x27, 0x7d, 0x3, 0x9c, 0xfe, 0xf4, 0xb7, 0x84, 0x97, 0x67, 0xd1, 0x5f, 0xe2, 0xf5, 0xff, 0x68, 0xa8, 0x9b, 0xfb, 0x5, 0x7a, 0xf4, 0x17, 0xa9, 0xa3, 0xac, 0x8d, 0x75, 0x73, 0xbb, 0xe9, 0x91, 0x57, 0xe8, 0x11, 0xc7, 0x73, 0xc2, 0xcb, 0x75, 0x73, 0x83, 0x94, 0xfa, 0xdd, 0x0, 0xbf, 0xee, 0x87, 0xfa, 0xd3, 0xba, 0x42, 0x7e, 0x47, 0x8f, 0x57, 0x5b, 0xc7, 0xff, 0x44, 0x8f, 0x1f, 0xa3, 0xc7, 0x1b, 0x74, 0x81, 0xbe, 0x73, 0xfa, 0x67, 0xe8, 0xd1, 0x95, 0xeb, 0x38, 0x7d, 0x5, 0x7d, 0xff, 0xe5, 0xfa, 0xf8, 0xfa, 0x1b, 0xd7, 0x7d, 0x9f, 0x5e, 0xe3, 0xc6, 0x75, 0x41, 0x3d, 0xb1, 0xfe, 0xae, 0x75, 0x93, 0xe6, 0x76, 0xcd, 0x7d, 0xb6, 0x22, 0xe6, 0x5c, 0x79, 0x70, 0x6b, 0x6e, 0x33, 0x39, 0x58, 0xf2, 0xc0, 0x7d, 0x8e, 0x37, 0x6f, 0x9c, 0x37, 0xfb, 0x1e, 0xcf, 0x7b, 0x3, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xa7, 0xa5, 0x8, 0xa8, 0xe5, 0xae, 0xfd, 0x1b, 0xe5, 0xf6, 0xd, 0x35, 0xb3, 0x3d, 0xc7, 0x7e, 0xf3, 0xc3, 0xbf, 0x55, 0xa7, 0xff, 0xa8, 0xfd, 0x5b, 0xb0, 0xca, 0xc0, 0x40, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, - 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0xf4, 0xd9, 0x46, 0x4f, 0xc8, 0x7b, 0x28, 0x88, 0x22, 0xfa, 0x51, 0xcb, 0xb7, 0x8e, 0x8c, 0xf6, 0xf5, 0xbc, 0xb7, 0xa9, 0xa8, 0xc6, 0x4d, 0x9c, 0xc4, 0x3, 0xa4, 0x6a, 0x57, 0xd9, 0xdc, 0x3, 0xf7, 0x21, 0xf8, 0x3d, 0x33, 0x80, 0xd8, 0x54, 0x88, 0xe8, 0xe5, 0x46, 0xfb, 0xfa, 0xe2, 0xbd, 0xff, 0x15, 0xc4, 0x14, 0x9b, 0x42, 0xd2, 0x39, 0xe2, 0xfb, 0xad, 0xe6, 0xc0, 0xff, 0x9c, 0x3b, 0x8a, 0x0, 0x78, 0xeb, 0xc8, 0xda, 0x3, 0xb9, 0x70, 0x68, 0x10, 0x5c, 0xf3, 0xe, 0xeb, 0x82, 0x4b, 0xc9, 0x38, 0x9e, 0x1b, 0x80, 0x63, 0xff, 0xe3, 0xe, 0xfe, 0x9e, 0xe3, 0xca, 0xe4, 0x9d, 0xe7, 0x27, 0x50, 0x23, 0xe0, 0x73, 0x9c, 0x7d, 0xd2, 0xa1, 0xa3, 0x17, 0x6b, 0x8b, 0x39, 0x38, 0x52, 0xb7, 0x27, 0x14, 0x28, 0xf1, 0xa6, 0x88, 0xa0, 0xe7, 0x13, 0x47, 0x50, 0x4b, 0x76, 0x8b, 0x1e, 0xf0, 0x64, 0xac, 0xf9, 0x6d, 0x28, 0xbd, 0xc2, 0x43, 0x50, 0x54, 0xd4, 0xbd, 0x17, 0x9b, 0x50, 0xcb, 0x8e, 0xd4, 0xbc, 0x30, 0x7, 0x32, 0xc3, 0xd2, 0xd0, 0x57, 0x54, 0x44, 0xb9, 0x8c, 0xe3, 0xd7, 0xbc, 0x51, 0x46, 0xa3, 0x48, 0xaf, 0x40, 0xcb, 0x9c, 0xa4, 0xc0, 0x7f, 0xa6, 0xf3, 0x93, 0xf4, 0x38, 0x21, 0xec, 0x6c, 0xc2, 0x5c, 0xec, 0x94, 0x73, 0x48, 0x77, 0xa, 0x3e, 0xc4, 0xfa, 0x7f, 0xba, 0x2a, 0x7c, 0xfd, 0x2a, 0xdd, 0x4b, 0x10, 0x65, 0xb4, 0x91, 0xec, 0x1f, 0xf5, 0xfe, 0x91, 0xa5, 0x4f, 0x2f, 0x5d, - 0x23, 0xf0, 0xfd, 0x5c, 0x9f, 0xae, 0x46, 0xb8, 0x52, 0xa8, 0x31, 0xca, 0x7f, 0x82, 0xf8, 0x1e, 0x57, 0x4a, 0x24, 0xeb, 0x9f, 0x98, 0x79, 0x79, 0x28, 0xe7, 0x80, 0x1f, 0x78, 0x27, 0xc7, 0x19, 0x95, 0x8f, 0xee, 0x2f, 0xf1, 0x13, 0xe1, 0xd8, 0x81, 0x45, 0x90, 0x8b, 0xf0, 0x56, 0x90, 0x2f, 0xd6, 0x44, 0xd1, 0xd3, 0x3a, 0x6d, 0xc7, 0x56, 0xc4, 0xdc, 0x89, 0x80, 0x55, 0xdd, 0x81, 0xce, 0x66, 0xf3, 0xc2, 0x60, 0x2e, 0x1, 0xbf, 0x6e, 0xbd, 0xd6, 0xf1, 0xe2, 0x11, 0xc3, 0x28, 0xcd, 0x1, 0xb1, 0x7f, 0xb, 0x41, 0x8c, 0x42, 0xfb, 0xd2, 0xf6, 0x9f, 0x1d, 0xff, 0x6, 0x70, 0x7a, 0x20, 0x2f, 0xd5, 0x88, 0x15, 0xf5, 0x17, 0x23, 0xf1, 0x4a, 0xc0, 0x0, 0xca, 0x30, 0x7, 0x7, 0x46, 0x5d, 0x7e, 0x7b, 0x1b, 0x78, 0xe8, 0x39, 0xb6, 0xac, 0xd5, 0xda, 0xd4, 0x9e, 0xb, 0xd6, 0x5e, 0x8c, 0x46, 0x27, 0x3a, 0x80, 0xbb, 0x44, 0x44, 0x47, 0x2e, 0xcf, 0xd3, 0xd1, 0xe1, 0xef, 0xac, 0x87, 0xf6, 0xf0, 0x0, 0xb7, 0x94, 0x52, 0x7e, 0x5a, 0x46, 0xce, 0x7f, 0x38, 0xd6, 0x96, 0x24, 0x52, 0xa7, 0x5e, 0xb6, 0x93, 0x50, 0x41, 0xee, 0x7d, 0xe2, 0x53, 0x20, 0xc5, 0xa0, 0x78, 0xa2, 0x83, 0x24, 0x4b, 0x33, 0x7e, 0x3f, 0xa5, 0xf4, 0x7a, 0x1c, 0xf2, 0x22, 0x22, 0xe5, 0xee, 0x9e, 0xd9, 0x11, 0x8e, 0xf1, 0xa3, 0x64, 0xa, 0x1b, 0x90, 0x6f, 0x58, 0x2c, 0x45, 0xf9, 0x2b, 0xc9, 0x69, 0x55, 0xc9, 0x1e, 0x85, 0x88, 0x7d, 0x9a, 0xd4, 0x58, 0x9a, 0xc3, 0x1f, 0xe3, 0xba, 0xea, 0x64, 0x55, 0xd1, 0xcb, 0xa2, 0x62, 0x8f, 0x36, 0xd6, 0xfd, 0xf5, 0x3, 0xf4, 0x6f, 0x4a, - 0x5e, 0xdf, 0xe5, 0xee, 0x76, 0x27, 0xb8, 0xe6, 0x5d, 0xd, 0x40, 0x71, 0xb1, 0x75, 0x64, 0x5f, 0x34, 0xd2, 0x31, 0xd6, 0xed, 0x3b, 0xd3, 0x69, 0xef, 0x4c, 0xf, 0xf2, 0x70, 0x93, 0x28, 0xf5, 0xe4, 0x75, 0x33, 0xe, 0x28, 0xcd, 0x11, 0x4d, 0x6e, 0xdd, 0xea, 0x69, 0x50, 0xbb, 0xb4, 0xd6, 0x1b, 0xca, 0xd2, 0xf2, 0xdf, 0x6b, 0xf, 0xfc, 0x80, 0xbe, 0x13, 0x17, 0x93, 0x58, 0xa2, 0xc8, 0xa7, 0xad, 0x5f, 0xcd, 0x19, 0xdd, 0xcf, 0xc2, 0x44, 0x42, 0xe8, 0x16, 0x2a, 0x9d, 0x86, 0x50, 0xf3, 0xc2, 0x34, 0x6a, 0xf, 0x5a, 0x16, 0x8c, 0x83, 0xa0, 0xb, 0xd7, 0x21, 0x65, 0x48, 0x51, 0x75, 0xfb, 0xea, 0x40, 0xeb, 0x57, 0x28, 0x3f, 0xbe, 0xc5, 0x21, 0xb2, 0xf5, 0x39, 0xa8, 0x3e, 0x5d, 0xdc, 0x13, 0xa9, 0xe6, 0xc8, 0xf3, 0x38, 0x8c, 0x85, 0x70, 0x5b, 0x7f, 0x25, 0x47, 0xe5, 0xcf, 0x41, 0xd7, 0xff, 0x64, 0xcb, 0x4b, 0x4, 0x4f, 0xbb, 0x7d, 0xe3, 0x68, 0x72, 0x7, 0xb5, 0xfa, 0x37, 0xbf, 0x84, 0x80, 0x7c, 0x97, 0xf2, 0x53, 0x6a, 0xff, 0xd5, 0xf3, 0x8, 0x11, 0x43, 0x70, 0x97, 0x9b, 0x86, 0xe0, 0xc8, 0xbc, 0x7c, 0xe, 0xfd, 0x73, 0x63, 0xe2, 0x1, 0xa9, 0x1d, 0x97, 0x32, 0x32, 0xda, 0x32, 0x3b, 0xad, 0xbc, 0x9a, 0x30, 0xb, 0x61, 0x3d, 0x67, 0x91, 0x45, 0x26, 0x12, 0xc6, 0x58, 0xf3, 0xdb, 0x30, 0xfc, 0x9e, 0x59, 0x48, 0xf5, 0x49, 0xe4, 0x2, 0xf1, 0xa9, 0xcb, 0x2d, 0x26, 0x98, 0x17, 0x59, 0x4, 0x1f, 0x64, 0x52, 0xb1, 0x3a, 0xc1, 0x25, 0x42, 0x4b, 0xce, 0xc9, 0x38, 0xbf, 0xb3, 0xcb, 0xe4, 0x7a, 0x3c, 0x44, 0xfc, 0xef, 0x48, 0xae, 0xaa, - 0xaa, 0x69, 0xe5, 0x65, 0xe, 0x95, 0x97, 0xfc, 0x72, 0xf4, 0x68, 0xcc, 0x1e, 0x28, 0xeb, 0x1b, 0x6b, 0xbc, 0x86, 0xd2, 0x4b, 0x3b, 0x14, 0xfa, 0x1e, 0x16, 0x9e, 0xcb, 0xb1, 0x8f, 0xcc, 0xeb, 0x2d, 0x0, 0x22, 0xfc, 0x7b, 0x3, 0x3, 0xfb, 0x7e, 0x5d, 0x1b, 0x5a, 0xf2, 0x60, 0xa6, 0xaf, 0x77, 0xe9, 0x81, 0xff, 0x47, 0xdf, 0x83, 0x5, 0x36, 0x8d, 0xfa, 0x74, 0xf5, 0xf, 0x3e, 0xb2, 0x1e, 0x91, 0x20, 0x38, 0xd, 0xd0, 0xc5, 0xbd, 0xda, 0x9a, 0xb1, 0xc6, 0x2b, 0x4b, 0x67, 0x96, 0x1e, 0xae, 0x3f, 0xf2, 0xfe, 0xc8, 0x1d, 0xd2, 0x16, 0xec, 0x18, 0x35, 0xfd, 0x41, 0x52, 0xfa, 0xc3, 0x10, 0xc8, 0x29, 0xe8, 0x8f, 0xf0, 0x1d, 0x12, 0x92, 0x31, 0xc7, 0x64, 0x27, 0xc4, 0x97, 0xf7, 0xfd, 0xe6, 0xf9, 0xe7, 0xc7, 0x5a, 0x7f, 0x50, 0xfb, 0x4b, 0x5, 0x6, 0xad, 0x67, 0xe0, 0xcb, 0xce, 0x42, 0x98, 0x12, 0x83, 0xe0, 0xc6, 0x37, 0xae, 0xac, 0xde, 0xc9, 0x85, 0xbf, 0x3b, 0xb, 0x1b, 0x3e, 0x33, 0xe8, 0xc1, 0x7b, 0x4c, 0x5a, 0xff, 0x62, 0xfa, 0x61, 0xcf, 0x60, 0xfd, 0xb1, 0x7e, 0xde, 0x67, 0x1a, 0x6d, 0xc9, 0x67, 0x45, 0x17, 0xbb, 0x1f, 0x89, 0x56, 0x31, 0x18, 0x6b, 0xb6, 0x5d, 0x8d, 0xa5, 0xba, 0x43, 0x81, 0xaa, 0x89, 0x3e, 0xe4, 0x64, 0x7e, 0xfc, 0xa0, 0xa3, 0x51, 0x97, 0x7, 0x47, 0x58, 0xd4, 0x64, 0x6f, 0xba, 0xfa, 0xf2, 0xb6, 0xc9, 0x8, 0xf2, 0x83, 0xcf, 0x3b, 0xdf, 0x1c, 0x6b, 0xbc, 0x86, 0xd2, 0xf3, 0x77, 0x70, 0xa0, 0x1a, 0x24, 0xb0, 0x34, 0xd5, 0xc2, 0x51, 0xd7, 0x57, 0xd1, 0x69, 0x68, 0xaf, 0xa3, 0x1f, 0x79, 0x7e, 0xc7, 0xc0, - 0xc5, 0x3c, 0xff, 0xdf, 0xdb, 0x1c, 0xd4, 0xeb, 0xe8, 0xa7, 0x1d, 0xd8, 0x18, 0x38, 0x58, 0xf1, 0x30, 0x1f, 0xde, 0x76, 0x37, 0x73, 0x43, 0xec, 0xfe, 0x98, 0x30, 0xcd, 0xa6, 0x78, 0x8d, 0x96, 0x47, 0x64, 0x8b, 0x9c, 0x15, 0x51, 0xcf, 0x38, 0xfe, 0xf7, 0xbe, 0xb4, 0x8, 0x6a, 0xf0, 0xca, 0x8, 0x81, 0xc8, 0x47, 0xeb, 0x24, 0x84, 0xf, 0x5d, 0x43, 0x9f, 0x37, 0xbc, 0xad, 0x54, 0xdf, 0x19, 0x7a, 0xe6, 0xf1, 0xac, 0xc9, 0x9d, 0x45, 0xfd, 0x1b, 0x8b, 0x58, 0x57, 0x55, 0xa1, 0xbb, 0xd3, 0xd5, 0x5f, 0xb, 0xe6, 0xef, 0xa5, 0x8a, 0xcb, 0x73, 0xc6, 0xe1, 0xc7, 0xfc, 0xcf, 0x36, 0x13, 0x1c, 0x35, 0x11, 0x4c, 0xf7, 0x33, 0x40, 0xb3, 0xd2, 0x4, 0x17, 0x87, 0x1b, 0x34, 0x9d, 0x44, 0x28, 0xa8, 0x19, 0x6f, 0xaf, 0x77, 0xe6, 0x52, 0xc6, 0x5f, 0x56, 0xe9, 0x8a, 0xdc, 0xbf, 0x27, 0x6d, 0xfd, 0xe9, 0x8d, 0xa8, 0xd5, 0xbd, 0x36, 0x3, 0xf2, 0x9e, 0x31, 0xf7, 0x7f, 0x2f, 0xdb, 0x45, 0xed, 0x65, 0x17, 0x62, 0x66, 0x20, 0x96, 0xcb, 0x8c, 0x30, 0x79, 0xdb, 0x74, 0x78, 0xa8, 0x6, 0x64, 0xa5, 0xdc, 0x5c, 0xe4, 0x1c, 0xeb, 0xf6, 0x7d, 0xd4, 0xe8, 0xb0, 0x80, 0xb5, 0x56, 0xff, 0x48, 0x75, 0x92, 0xf0, 0x3, 0x54, 0x1a, 0xc6, 0xbe, 0x1b, 0x80, 0xa3, 0x8d, 0x30, 0x3a, 0xdd, 0xf7, 0x43, 0xf, 0xd1, 0xfa, 0xfa, 0x5b, 0x81, 0x98, 0xac, 0xb8, 0x4e, 0xa5, 0x3e, 0x9b, 0x2f, 0x48, 0xf2, 0x49, 0x3c, 0x8d, 0x22, 0x6a, 0x7e, 0x38, 0x11, 0x7e, 0x77, 0x72, 0x2c, 0x77, 0x35, 0xb7, 0x52, 0x51, 0x54, 0x55, 0x99, 0x1a, 0x28, 0x28, 0x7d, 0x71, 0x22, 0x5c, 0x26, - 0x6b, 0x8c, 0x41, 0xda, 0x92, 0x3, 0x2f, 0x36, 0xc5, 0x57, 0xe0, 0xde, 0x7a, 0xe0, 0x3b, 0x11, 0xb1, 0x9b, 0x50, 0xbf, 0xe8, 0x66, 0xdf, 0x2, 0x72, 0x31, 0xda, 0xb9, 0xef, 0x5a, 0xed, 0xd5, 0x8d, 0x70, 0xe, 0xd6, 0x61, 0xb0, 0xe8, 0xe9, 0xaf, 0x2f, 0x7e, 0xf3, 0x7b, 0xac, 0xa2, 0x3f, 0x1c, 0x6, 0x9, 0x87, 0xf, 0x8e, 0xd8, 0xde, 0xa9, 0x6b, 0xa7, 0x3c, 0x28, 0x1b, 0x42, 0x92, 0x6b, 0x5, 0x9b, 0x41, 0xa2, 0xfa, 0xf8, 0xf7, 0x9c, 0x42, 0xc4, 0xee, 0x48, 0xb8, 0xa2, 0x71, 0x14, 0xc6, 0x27, 0xbd, 0x2f, 0xcd, 0x87, 0x1e, 0x64, 0x37, 0x5f, 0x3e, 0x5b, 0xe3, 0xd4, 0xee, 0xa1, 0xe7, 0xe7, 0x15, 0xd7, 0x21, 0x41, 0x4d, 0xc0, 0x63, 0x2, 0xde, 0x19, 0x8f, 0xfe, 0xf1, 0xcd, 0xd1, 0xeb, 0xf1, 0xc5, 0x1b, 0x51, 0x53, 0x5c, 0x2c, 0xd7, 0x47, 0x15, 0x43, 0xc9, 0x74, 0x7b, 0x26, 0xdc, 0xcb, 0xf0, 0x4c, 0xd8, 0x33, 0x4a, 0xa4, 0x23, 0xe3, 0xbf, 0x9f, 0x69, 0x3a, 0xb4, 0x79, 0x25, 0x76, 0x41, 0x9c, 0xd2, 0xce, 0xb8, 0xe0, 0x60, 0xd4, 0x37, 0xd6, 0xed, 0xf9, 0xa8, 0xd3, 0xde, 0xfc, 0x5c, 0xda, 0x2b, 0x23, 0xab, 0x7f, 0x20, 0xa, 0x3e, 0x76, 0x64, 0xac, 0xdb, 0xf3, 0x61, 0xe9, 0xd2, 0x1c, 0xc7, 0xb1, 0x36, 0x71, 0x8f, 0x86, 0x47, 0x6b, 0xef, 0x91, 0x4e, 0x43, 0xfb, 0xeb, 0x64, 0x6a, 0xbf, 0x58, 0xda, 0x74, 0x80, 0x1b, 0xe0, 0x67, 0xa6, 0xbd, 0x5e, 0x95, 0xbc, 0x97, 0xbe, 0xeb, 0x1, 0x8b, 0x4c, 0x20, 0x3e, 0xd6, 0x78, 0xd, 0xc7, 0x2f, 0xeb, 0x7f, 0x8c, 0x84, 0x3e, 0xb8, 0xb2, 0x1, 0xb9, 0x3a, 0xbd, 0x9f, 0x6, 0xc3, 0xf2, 0xdb, - 0x97, 0x6c, 0xac, 0x2, 0x29, 0xd2, 0x27, 0x7, 0xe9, 0xa1, 0xfb, 0x90, 0x79, 0x7e, 0x64, 0xfc, 0xce, 0x79, 0x88, 0x58, 0xf6, 0x62, 0x17, 0x11, 0x4b, 0xf5, 0xb4, 0xe3, 0x7f, 0xde, 0x17, 0xf3, 0xa0, 0xf3, 0x1e, 0x78, 0x22, 0x91, 0xda, 0x88, 0xac, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xe5, 0xf9, 0xa, 0xa8, 0xc8, 0x19, 0xa7, 0x6e, 0xd9, 0x9d, 0x38, 0x44, 0x25, 0x50, 0xf8, 0x90, 0x23, 0xf1, 0x3b, 0xf7, 0x56, 0x6e, 0xaa, 0xc4, 0x59, 0x16, 0x42, 0xba, 0xef, 0x37, 0xfc, 0x40, 0x82, 0xc6, 0x97, 0xb2, 0x11, 0x6, 0x51, 0xe8, 0xe, 0xa6, 0xad, 0x4f, 0xed, 0xf5, 0xd4, 0x7c, 0x4b, 0xb1, 0xe9, 0x2c, 0x89, 0xf, 0xab, 0x1f, 0xfe, 0xd1, 0x55, 0xa8, 0xbf, 0x48, 0xb0, 0x27, 0xcc, 0x81, 0xd5, 0x35, 0x82, 0xf8, 0xe7, 0x4a, 0x52, 0xd0, 0xa7, 0x51, 0x8b, 0xe0, 0xdc, 0xb2, 0xeb, 0x10, 0x7e, 0x3f, 0x17, 0xdb, 0xc8, 0xe2, 0x71, 0xca, 0xc0, 0x7d, 0x7b, 0xb5, 0xa8, 0x2, 0xc7, 0x33, 0x57, 0x11, 0x8f, 0x83, 0x23, 0x9c, 0xc8, 0xaa, 0x57, 0x6e, 0x1a, 0x1b, 0xfc, 0x8c, 0xdc, 0xe4, 0x96, 0xdd, 0xaf, 0x33, 0xfc, 0x6a, 0xbe, 0xc1, 0x19, 0xd5, 0x7a, 0x14, 0x62, 0xd0, 0xae, 0x71, 0x2a, 0xf8, 0x2d, 0x45, 0x38, 0x85, 0x5f, 0x7a, 0xff, 0x8a, 0xe2, 0xf7, 0xbc, 0xfd, 0xf9, 0x87, 0xa6, 0xe0, 0x1e, 0x8e, 0x9f, 0x18, 0x7d, 0x91, 0xbe, 0x87, 0xa6, 0xda, 0x34, 0x54, 0x8a, 0xdf, 0x31, 0x8e, 0x88, 0x7b, 0x2d, 0xfc, 0x9c, 0xd7, 0x61, 0xed, 0x8e, 0x12, 0xdc, 0xbd, 0xbd, 0xb8, 0xd8, 0x63, 0xf0, 0x47, 0x4d, 0x9e, 0xc5, 0x4b, 0x4c, 0x1c, 0xf4, 0x67, 0xd6, 0x6d, 0x6c, 0xe5, - 0x9c, 0xd4, 0x1e, 0xdc, 0x88, 0xc1, 0xa2, 0xeb, 0xa3, 0x2e, 0xcf, 0x87, 0xfa, 0x6f, 0xde, 0xfc, 0x8b, 0x91, 0x13, 0x9c, 0xd3, 0xa5, 0x11, 0x5d, 0x14, 0xf6, 0xa4, 0xc7, 0x6f, 0xad, 0x3c, 0x1, 0x8e, 0x20, 0x78, 0x87, 0x6a, 0xea, 0xc2, 0x29, 0xe0, 0x9d, 0xce, 0x7f, 0x63, 0xfc, 0x57, 0x1b, 0x12, 0x10, 0xb3, 0xf, 0xac, 0x66, 0xf6, 0xb6, 0xf0, 0x34, 0x57, 0x48, 0xa4, 0x38, 0x97, 0x4c, 0x2c, 0x8c, 0x87, 0xf, 0x5d, 0x11, 0x3c, 0x3a, 0x69, 0x5f, 0xce, 0x86, 0x63, 0xed, 0x46, 0x42, 0xa3, 0xfc, 0xb7, 0xe0, 0x22, 0x8c, 0xef, 0xe5, 0x8a, 0xd9, 0xc, 0x32, 0xb0, 0x38, 0x79, 0xba, 0xf9, 0x8f, 0x3e, 0x2f, 0x7, 0xeb, 0xa8, 0x83, 0x3e, 0x3a, 0xf5, 0xd7, 0xff, 0x8b, 0x7e, 0x16, 0x6, 0x1f, 0x61, 0xc6, 0xf5, 0x47, 0x74, 0x15, 0xda, 0xa9, 0xa8, 0x15, 0x45, 0xaa, 0xad, 0x54, 0x55, 0x2c, 0x9d, 0x3e, 0x15, 0x2d, 0xc1, 0x75, 0xe8, 0x89, 0x40, 0xed, 0x6b, 0x5c, 0x81, 0xb5, 0xf2, 0x1a, 0x14, 0xcb, 0xe6, 0x21, 0x7b, 0x10, 0x35, 0x48, 0xc2, 0x65, 0xb3, 0x60, 0xf0, 0x54, 0x1c, 0x6b, 0x6c, 0x34, 0x43, 0x1f, 0xf1, 0xfc, 0xd1, 0x84, 0x6f, 0x7e, 0x83, 0xbe, 0xc7, 0x2c, 0x7d, 0x1e, 0x7b, 0x7, 0x98, 0x78, 0xef, 0x5c, 0x6a, 0xf, 0xfc, 0x32, 0x75, 0xfb, 0x7f, 0xb8, 0x3b, 0xdd, 0xf7, 0xe7, 0xb7, 0xaf, 0x40, 0xc4, 0x41, 0x58, 0xdb, 0xba, 0x12, 0xf4, 0x3e, 0xaa, 0x3a, 0x72, 0x74, 0x99, 0x72, 0x4e, 0xb9, 0xe5, 0x4d, 0xb1, 0xf8, 0xd, 0xfe, 0x2d, 0xae, 0x16, 0xdd, 0x44, 0xea, 0xe4, 0xe6, 0x10, 0x15, 0xe1, 0xed, 0xbf, 0xd2, 0xcf, 0x2d, 0x8f, 0x79, 0xa1, - 0x44, 0x13, 0x99, 0x18, 0x8f, 0xa9, 0xe6, 0x8, 0xaf, 0xbb, 0x89, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0xba, 0x6a, 0x58, 0x45, 0xbc, 0x16, 0x5e, 0x4a, 0x53, 0x2d, 0x35, 0x6, 0x60, 0xb9, 0x82, 0x6, 0x11, 0x3b, 0xc1, 0xe2, 0xb5, 0x96, 0x17, 0xe0, 0xa8, 0xee, 0x79, 0xd6, 0x3f, 0x7, 0x51, 0x7e, 0xac, 0xf5, 0x85, 0xe3, 0xd0, 0xb7, 0xe8, 0x7b, 0x22, 0x10, 0xcb, 0x85, 0xc2, 0xac, 0x88, 0x74, 0xf8, 0x79, 0xdf, 0xbe, 0x92, 0xea, 0x67, 0xc6, 0x9, 0xa4, 0x6a, 0xab, 0x9a, 0x7e, 0x7c, 0xfe, 0xef, 0x1d, 0xbf, 0xd0, 0xf4, 0xb7, 0x83, 0x89, 0x0, 0xa1, 0x50, 0xe9, 0xaf, 0x29, 0x72, 0x7a, 0xfc, 0xc2, 0xb7, 0xfd, 0x53, 0x42, 0xf7, 0xc7, 0x72, 0xe0, 0xf2, 0x97, 0x27, 0xcd, 0xc4, 0x59, 0x8f, 0x5f, 0xcd, 0x9b, 0x1c, 0xf5, 0xdf, 0x81, 0x1d, 0x70, 0xae, 0xd3, 0x7f, 0x92, 0x1e, 0x3f, 0x6a, 0xaf, 0xfd, 0x99, 0x9, 0x87, 0x17, 0x1b, 0x37, 0x29, 0x22, 0x97, 0xed, 0xbf, 0xe1, 0x71, 0xa, 0x82, 0x37, 0xef, 0x2f, 0x4, 0x1c, 0xa2, 0x5b, 0x4a, 0x8f, 0x5f, 0xa8, 0x89, 0x99, 0x3, 0x87, 0xb9, 0x8f, 0xc3, 0xb5, 0xb5, 0x7, 0x59, 0xfc, 0x4a, 0xc7, 0x51, 0x5b, 0xcd, 0x7c, 0x5e, 0x82, 0xa4, 0x40, 0xa2, 0xf6, 0x5a, 0x7a, 0xfe, 0x13, 0xd9, 0xf8, 0x79, 0x4f, 0x63, 0x84, 0x7d, 0x23, 0x59, 0x7b, 0xb6, 0xe3, 0x37, 0x4c, 0x1e, 0xbe, 0xeb, 0x20, 0xff, 0x7e, 0xcb, 0x77, 0xb8, 0xe0, 0x16, 0x12, 0x64, 0x47, 0x6a, 0x2e, 0x3c, 0x17, 0xd5, 0x70, 0xec, 0x8a, 0xec, 0x7e, 0xa5, 0x75, 0x20, 0x3f, 0x3d, 0xbf, 0x5d, 0x1d, 0xaf, 0x9, 0x5e, - 0x84, 0xa8, 0xe5, 0xd2, 0x56, 0xd4, 0x4a, 0x42, 0x7a, 0xfc, 0xc0, 0xa3, 0x84, 0x48, 0x3, 0xc2, 0x7b, 0x78, 0x1a, 0x85, 0x10, 0xcf, 0xe1, 0xd8, 0xb0, 0xe7, 0x79, 0x80, 0x46, 0x9d, 0xdc, 0x83, 0xb9, 0x47, 0x6b, 0x6f, 0x21, 0xb9, 0x10, 0x7d, 0x7, 0x58, 0xf5, 0xa4, 0xea, 0x64, 0xf8, 0x71, 0x12, 0xe, 0xb4, 0x69, 0xb, 0x7f, 0x3b, 0x1b, 0x9, 0xac, 0xad, 0x5e, 0x96, 0x1a, 0x7f, 0x0, 0xba, 0xdd, 0x1, 0xac, 0x54, 0x2f, 0xd2, 0x72, 0x89, 0x23, 0xaa, 0x5b, 0x16, 0xc8, 0xd5, 0x2f, 0x9f, 0x76, 0x79, 0x28, 0xf0, 0x76, 0xbc, 0x69, 0x44, 0xb4, 0xfc, 0x2a, 0x39, 0x87, 0x2c, 0xb6, 0xcf, 0xe1, 0xf5, 0x81, 0xc3, 0x52, 0xc6, 0xed, 0xbf, 0x6a, 0x4e, 0x5f, 0xf4, 0xc, 0x92, 0x88, 0xb, 0x86, 0x60, 0x38, 0xd, 0x21, 0xfc, 0xc4, 0xaf, 0xa9, 0xf7, 0xa3, 0x4, 0xec, 0xf3, 0x82, 0x40, 0xaf, 0x2f, 0xc4, 0x85, 0xd6, 0x2e, 0x38, 0x13, 0xe4, 0xb9, 0x81, 0xe7, 0x12, 0xa5, 0x2, 0xd8, 0x26, 0x4b, 0x29, 0xc4, 0x86, 0x3f, 0xcf, 0x26, 0x6a, 0xc2, 0x1d, 0x9f, 0x5f, 0xa2, 0x4a, 0x71, 0xb4, 0xf1, 0xba, 0xb6, 0x7d, 0x45, 0x70, 0x57, 0x9b, 0x45, 0x38, 0x94, 0x1e, 0x1e, 0x35, 0x6f, 0x86, 0x90, 0xa7, 0x57, 0x8a, 0x8a, 0x5e, 0xb6, 0x8e, 0xb5, 0xc3, 0xf1, 0xab, 0x1a, 0xf2, 0xef, 0xab, 0x50, 0x11, 0xcc, 0xa5, 0x1d, 0xe8, 0x59, 0x1, 0xe1, 0xa6, 0xeb, 0x49, 0xa7, 0xc1, 0x85, 0x10, 0xcd, 0x8c, 0xfd, 0x17, 0x3e, 0x52, 0x4, 0xff, 0xb6, 0x4a, 0xbd, 0x6d, 0xa, 0x8b, 0xfe, 0x2c, 0xf4, 0x9f, 0x34, 0x1f, 0xd7, 0x49, 0x92, 0xf5, 0xe2, 0x52, 0xdf, 0x1c, 0xea, 0xb, - 0x3a, 0x2f, 0xb2, 0x8e, 0xc4, 0x8f, 0x5d, 0xe1, 0x9d, 0x5e, 0x89, 0x7d, 0x82, 0x6a, 0xe3, 0x77, 0x77, 0xc5, 0xce, 0xb1, 0xee, 0xaf, 0x4b, 0xcd, 0x19, 0x4c, 0xde, 0x14, 0xc3, 0x2d, 0x58, 0x26, 0x7e, 0x3a, 0xfc, 0x9a, 0x3b, 0x27, 0xd0, 0xca, 0xb2, 0x7, 0x3a, 0x89, 0x74, 0x2a, 0xbd, 0x67, 0x3d, 0x7e, 0xa5, 0xff, 0xea, 0x47, 0xa9, 0xc9, 0xe9, 0x62, 0x52, 0x21, 0xa7, 0x82, 0x5f, 0xcd, 0x9a, 0x1c, 0x6a, 0x3f, 0xf3, 0x50, 0x70, 0x44, 0xaf, 0x20, 0x6a, 0xf0, 0x6c, 0xc7, 0xcf, 0xfb, 0x4, 0xf, 0x4f, 0x31, 0x47, 0xee, 0x51, 0xcb, 0xfa, 0x4e, 0x5, 0xbf, 0xd0, 0xe6, 0x9, 0x58, 0x10, 0xc, 0x53, 0x2a, 0x33, 0xf6, 0xcb, 0x47, 0x1d, 0xbf, 0x1a, 0x1, 0x7f, 0xe4, 0xd0, 0x8b, 0x24, 0x51, 0x23, 0xa2, 0xf, 0x8, 0xbd, 0xfd, 0x63, 0x68, 0xfb, 0x12, 0x1, 0x88, 0x5b, 0x76, 0x9b, 0xcd, 0xd4, 0x1e, 0x8c, 0xd7, 0xc0, 0x67, 0x57, 0x36, 0xa8, 0xba, 0x4b, 0x50, 0x7b, 0x63, 0x1a, 0xfd, 0x4c, 0x90, 0x2a, 0x23, 0xbd, 0xfe, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x82, 0xe1, 0x6, 0x7d, 0xd, 0x3f, 0xca, 0xd6, 0xcf, 0xc0, 0x71, 0x39, 0x7b, 0xd, 0x4, 0xa, 0xec, 0xf1, 0xfa, 0x44, 0x91, 0x55, 0xfd, 0x4c, 0x1c, 0xaf, 0x9f, 0x7e, 0x11, 0x5a, 0x22, 0x40, 0x59, 0x69, 0x2d, 0x11, 0xf9, 0xf4, 0xf8, 0xcd, 0x2f, 0x6e, 0x46, 0x9c, 0xb7, 0xe1, 0xf3, 0xfb, 0xa2, 0x67, 0x3d, 0x7e, 0xe1, 0x47, 0x35, 0xda, 0x5f, 0x85, 0xc9, 0x26, 0xb4, 0x86, 0xf9, 0x81, 0x82, 0xb4, 0xf8, 0x79, 0x2f, 0xbf, 0x3, 0x41, 0xe8, 0xe, 0x74, 0x58, 0x70, 0x9f, 0xf5, 0xf8, 0x35, - 0xc5, 0x2f, 0x81, 0x8f, 0xc3, 0x79, 0xdc, 0xa4, 0xae, 0xb0, 0xea, 0x49, 0xcf, 0x7f, 0x6c, 0xfe, 0xda, 0x87, 0x5c, 0xf, 0x88, 0x16, 0x89, 0x64, 0xf1, 0x1b, 0x46, 0x1f, 0x5c, 0x99, 0x1a, 0xff, 0xde, 0xab, 0xa1, 0x77, 0xdd, 0x6a, 0x49, 0xce, 0xc1, 0x22, 0xc9, 0x44, 0xa1, 0xe1, 0x36, 0xa5, 0xc3, 0x10, 0xd3, 0xe2, 0x15, 0xe6, 0xb0, 0xd1, 0xb6, 0x5f, 0x75, 0xeb, 0x35, 0xbd, 0xfd, 0xb4, 0x39, 0x48, 0xf9, 0x9f, 0x97, 0x69, 0xa9, 0x8, 0xc8, 0x8e, 0xb5, 0xc5, 0x4b, 0x91, 0xa, 0xbf, 0xc1, 0x63, 0xef, 0x48, 0x6e, 0xef, 0xf6, 0x4f, 0xc2, 0x69, 0xa4, 0x7e, 0x71, 0x7f, 0x45, 0x59, 0xf8, 0xb, 0xd7, 0x91, 0xcf, 0x8b, 0xc5, 0x71, 0x49, 0xe0, 0xb8, 0x83, 0x7, 0x39, 0xae, 0x4e, 0xe6, 0xa1, 0xe6, 0x5a, 0x4f, 0xd7, 0x64, 0x61, 0xac, 0xa7, 0xbd, 0xff, 0xe6, 0xff, 0x1b, 0x8c, 0xe9, 0x41, 0xfa, 0x7c, 0x45, 0x49, 0x12, 0xd8, 0x7c, 0xa5, 0x80, 0x8e, 0xe2, 0x83, 0xea, 0xed, 0x91, 0xb2, 0x28, 0xb, 0x4b, 0x2d, 0x9d, 0x1e, 0x40, 0x4b, 0xb4, 0xbb, 0x91, 0x48, 0x6, 0x61, 0x3e, 0x19, 0xf3, 0x7, 0xe8, 0x17, 0x5b, 0xcc, 0x8a, 0x7f, 0x8, 0x24, 0xe8, 0x87, 0xdc, 0xbc, 0x47, 0xd9, 0xf, 0x4d, 0x64, 0x2f, 0xb2, 0x8b, 0x47, 0x93, 0x79, 0xd, 0x14, 0xce, 0xcf, 0xba, 0x36, 0x55, 0x47, 0xe9, 0xfd, 0x95, 0xf0, 0x6d, 0xdf, 0x86, 0xde, 0x7b, 0x34, 0xe0, 0xf7, 0x59, 0x65, 0xb2, 0xf7, 0xb6, 0x8b, 0x61, 0x4, 0xed, 0xb3, 0x1a, 0x51, 0x93, 0xe1, 0x97, 0x1e, 0xc7, 0x9a, 0x80, 0x6e, 0x4f, 0x70, 0x72, 0x9c, 0xc0, 0xfc, 0xbd, 0xe7, 0xf0, 0x17, 0x7e, 0xbf, 0xf3, - 0xb3, 0x25, 0xce, 0x67, 0x9d, 0xc9, 0x4b, 0x78, 0x24, 0x18, 0xba, 0xec, 0x2b, 0x39, 0x14, 0xe2, 0x15, 0x72, 0x1, 0x82, 0xba, 0xcd, 0xae, 0xb4, 0xa3, 0x8c, 0xd8, 0xbe, 0xfa, 0xf0, 0xfa, 0x98, 0x4f, 0x9e, 0xec, 0xbf, 0x6d, 0x62, 0x83, 0x2d, 0x3a, 0xf6, 0x6, 0xe7, 0x14, 0x74, 0x96, 0xbc, 0x91, 0x83, 0xf0, 0x82, 0x29, 0x7a, 0x5e, 0xe9, 0x52, 0x1d, 0x2e, 0xbf, 0x1a, 0x35, 0x8d, 0xe1, 0xf3, 0x65, 0xef, 0xde, 0xe, 0x8d, 0x5b, 0x26, 0x31, 0xef, 0x44, 0x3f, 0x5, 0xfe, 0x1b, 0xea, 0xbf, 0xd, 0x8d, 0x7f, 0xbe, 0xbc, 0x98, 0x67, 0xf1, 0x73, 0x56, 0x79, 0xf2, 0x81, 0x87, 0x77, 0x87, 0x73, 0xac, 0xb5, 0x64, 0xc7, 0xe7, 0x17, 0xd8, 0xf8, 0x83, 0x15, 0xff, 0x5c, 0x42, 0xff, 0xdc, 0x28, 0x1c, 0xeb, 0xf5, 0x33, 0xe9, 0xf0, 0xf3, 0xde, 0x36, 0x1d, 0x17, 0xd0, 0x87, 0xdd, 0xdb, 0x59, 0x1b, 0x89, 0x54, 0xe, 0x5f, 0xf, 0x7c, 0xb6, 0xe1, 0x67, 0x8d, 0xdf, 0x6b, 0x89, 0x40, 0x22, 0xcf, 0x1e, 0xbf, 0x4f, 0x87, 0x1f, 0x9b, 0x9f, 0x43, 0x97, 0xee, 0x7e, 0xeb, 0x17, 0x8d, 0x52, 0x45, 0x2, 0xa0, 0xf7, 0xf3, 0x71, 0xeb, 0xa7, 0x2c, 0xb4, 0x28, 0x7d, 0x96, 0xe1, 0x57, 0xfa, 0x87, 0xf3, 0x51, 0xcc, 0xe2, 0xeb, 0x84, 0x2e, 0xb6, 0xdc, 0xf2, 0x54, 0xf0, 0x63, 0x6b, 0xa7, 0x9e, 0x35, 0x4b, 0xf6, 0x97, 0xc4, 0xd9, 0x4d, 0xde, 0x71, 0x3, 0x15, 0x7c, 0xfd, 0x5c, 0xa3, 0xd5, 0x5c, 0x99, 0x3f, 0xdb, 0xf0, 0x9b, 0xdf, 0x3e, 0xf, 0x1e, 0x84, 0x21, 0xfa, 0x8b, 0x9, 0x4e, 0x1, 0xbf, 0x26, 0xdf, 0x44, 0xdd, 0xe1, 0x60, 0x83, 0x99, 0x5b, 0x2b, 0x94, - 0x7b, 0x86, 0xeb, 0x87, 0xb3, 0xd, 0xbf, 0xb4, 0xfc, 0x99, 0x83, 0xbd, 0x27, 0xbc, 0xb5, 0xcc, 0xcf, 0xff, 0x32, 0x7d, 0x4a, 0xf8, 0x38, 0xd5, 0xa9, 0x1, 0x1c, 0xe1, 0x49, 0xda, 0xf5, 0xda, 0xa1, 0x42, 0x1e, 0x37, 0x23, 0xb8, 0x26, 0x17, 0xbe, 0x29, 0xb2, 0x3, 0xab, 0xc7, 0x1a, 0x9f, 0xf, 0xd0, 0x1f, 0xfd, 0x27, 0xf3, 0x5f, 0x73, 0x47, 0x2e, 0x36, 0x12, 0xd7, 0x79, 0x7b, 0xba, 0xcb, 0xd4, 0x5d, 0xad, 0xcf, 0xd, 0xbb, 0x3f, 0x96, 0xef, 0x24, 0xe8, 0xb7, 0x9e, 0xf5, 0x3e, 0xf6, 0x4a, 0xbf, 0xff, 0x47, 0x8e, 0x88, 0xb5, 0x6c, 0x85, 0x8d, 0x7, 0x6a, 0x34, 0xdd, 0xf5, 0xea, 0xea, 0x17, 0x22, 0xa7, 0xeb, 0x39, 0xbc, 0xc3, 0x27, 0x6c, 0xfe, 0xb3, 0xfc, 0x71, 0x40, 0xb1, 0x52, 0x6, 0xb0, 0xf5, 0x47, 0xe4, 0xe4, 0xf5, 0x47, 0x37, 0x36, 0xf9, 0x42, 0x70, 0x5c, 0x4, 0x8f, 0x68, 0x10, 0xb1, 0x2f, 0xc2, 0x95, 0xd, 0xe5, 0xbf, 0x3f, 0x52, 0xfb, 0x25, 0x32, 0xf9, 0xbd, 0x41, 0xf6, 0x1c, 0x75, 0x7b, 0x70, 0xfe, 0x8e, 0x56, 0xfa, 0x7e, 0x25, 0x23, 0x88, 0x46, 0xed, 0x54, 0xb6, 0x7e, 0x3a, 0xce, 0xc5, 0x39, 0x93, 0x4f, 0x5a, 0x36, 0xd5, 0x74, 0x73, 0x6, 0xe4, 0x63, 0x81, 0xa4, 0xd0, 0x5d, 0x3e, 0x37, 0x24, 0xa, 0x28, 0xde, 0x56, 0x60, 0x75, 0x1e, 0x77, 0xcc, 0xad, 0xbb, 0x75, 0x61, 0x18, 0x3f, 0x56, 0x1, 0x49, 0xab, 0xf1, 0x86, 0xcd, 0xb5, 0x69, 0xfd, 0x9f, 0xe8, 0x52, 0xa8, 0x2d, 0x40, 0x1f, 0xca, 0x88, 0xa8, 0x40, 0x75, 0x5c, 0xaf, 0xc0, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x7b, 0x31, - 0xa3, 0xfe, 0x48, 0xf2, 0x8d, 0xa6, 0x8d, 0x8a, 0xce, 0x87, 0x30, 0xfe, 0xc5, 0x8, 0xe5, 0x5b, 0x28, 0x78, 0x35, 0x59, 0x47, 0x26, 0xf3, 0xf6, 0x22, 0xaf, 0xa0, 0xc1, 0x57, 0x9d, 0x76, 0x7e, 0xe3, 0x90, 0xc7, 0xee, 0x57, 0x4c, 0x3d, 0xb0, 0x74, 0xf8, 0x85, 0xc7, 0x4f, 0x40, 0xf4, 0xd2, 0xd7, 0xd9, 0xfa, 0x96, 0x44, 0x54, 0xf5, 0xb9, 0xce, 0x76, 0xfc, 0xc2, 0x5f, 0xb8, 0x49, 0x2f, 0xb8, 0x80, 0x30, 0xf7, 0x43, 0x10, 0x4e, 0x5, 0xbf, 0x99, 0x2f, 0x93, 0xee, 0xf2, 0xc4, 0x24, 0x88, 0x5, 0x8f, 0x25, 0x4d, 0xed, 0xac, 0xe7, 0xbf, 0xf0, 0x33, 0x13, 0xb1, 0x65, 0x92, 0x62, 0xe1, 0xc7, 0x9d, 0xa, 0x7e, 0x8f, 0xce, 0x40, 0xa1, 0xe6, 0x0, 0x95, 0xdf, 0x8f, 0x7d, 0xee, 0xee, 0xe1, 0xf8, 0x9c, 0x6d, 0xf8, 0xd5, 0x6c, 0xbb, 0x0, 0xb1, 0x62, 0x40, 0xed, 0xb0, 0x8f, 0xac, 0x88, 0x5e, 0x89, 0x22, 0xe4, 0xb5, 0x70, 0xf8, 0x11, 0x62, 0x12, 0xea, 0xa8, 0x3e, 0x38, 0x7c, 0x72, 0xfe, 0x97, 0xcf, 0xec, 0x2a, 0x86, 0x43, 0xb5, 0x0, 0x22, 0x5b, 0xdc, 0xf9, 0x99, 0xc8, 0x17, 0xd5, 0xcd, 0x51, 0x3f, 0xb9, 0x84, 0xaa, 0x80, 0x16, 0x24, 0xf9, 0x3f, 0x9a, 0xe5, 0x60, 0xcb, 0xdb, 0xba, 0xc, 0x8, 0x33, 0x3c, 0x3a, 0x9a, 0x76, 0x6c, 0x85, 0x3e, 0xde, 0x8a, 0x8f, 0xe2, 0x3c, 0x10, 0x22, 0x55, 0xca, 0xc7, 0xd9, 0x6c, 0xf0, 0xd, 0xd4, 0xe4, 0x69, 0x41, 0x89, 0x21, 0x8d, 0xb5, 0xbe, 0xfd, 0x80, 0xfb, 0x59, 0x64, 0xf2, 0xef, 0x62, 0x40, 0x48, 0xd2, 0x26, 0xee, 0xc2, 0x5a, 0xf9, 0x93, 0xa8, 0x96, 0x5b, 0x12, 0xd2, 0x42, 0x9b, 0x25, 0x32, 0xce, - 0xff, 0xb7, 0xee, 0x4a, 0xc8, 0x1, 0x8c, 0x87, 0x2b, 0xdf, 0xc5, 0xca, 0xf4, 0x28, 0xf, 0x35, 0x15, 0x1e, 0x8e, 0x22, 0xef, 0xb0, 0xf5, 0xee, 0xa1, 0xeb, 0x6f, 0x45, 0xbb, 0xc6, 0x4d, 0x5a, 0x6, 0xf5, 0xb7, 0xab, 0x15, 0xdf, 0x88, 0xf3, 0xb5, 0x64, 0xde, 0x7e, 0x71, 0x1c, 0xe3, 0xf6, 0xea, 0x92, 0x42, 0xd4, 0xd9, 0xcc, 0x21, 0x69, 0x8e, 0x4e, 0x84, 0x6c, 0x70, 0x61, 0x4f, 0x6f, 0x77, 0x77, 0x5f, 0x34, 0x92, 0x79, 0xfc, 0xde, 0xdd, 0xa4, 0xe5, 0x93, 0x9c, 0x1b, 0x2c, 0xf0, 0x5c, 0xf9, 0xf9, 0x96, 0xfd, 0x44, 0xcf, 0x44, 0x82, 0x3d, 0x37, 0xb1, 0x76, 0x84, 0x17, 0xe4, 0xeb, 0xfc, 0x63, 0xd3, 0xad, 0xda, 0x86, 0xb9, 0x4b, 0xb5, 0xf2, 0xbf, 0x38, 0xd9, 0x82, 0x1e, 0x8d, 0xeb, 0xd3, 0x92, 0x8d, 0x63, 0x8d, 0x57, 0xf8, 0x57, 0x9b, 0xd0, 0xfb, 0xba, 0xc, 0x29, 0xa5, 0x80, 0x9b, 0x93, 0xad, 0x89, 0x67, 0x1c, 0xc8, 0x53, 0x2d, 0x91, 0x23, 0xb2, 0xf1, 0x3f, 0x3e, 0xee, 0x3e, 0xcc, 0x8, 0xa7, 0x89, 0x2, 0x52, 0x2a, 0x80, 0x59, 0x7b, 0xff, 0xeb, 0xfc, 0xf5, 0x87, 0xe7, 0x77, 0x22, 0xd8, 0x96, 0x5f, 0x42, 0x30, 0xf9, 0xcd, 0xb0, 0xf0, 0xb1, 0x4f, 0x12, 0x69, 0x27, 0x54, 0xef, 0x43, 0x2e, 0xe8, 0x3, 0xbb, 0x25, 0xeb, 0x80, 0x1c, 0xd8, 0x19, 0xbe, 0x63, 0x3, 0x26, 0x90, 0xe7, 0x67, 0xe5, 0x96, 0xfb, 0x7d, 0xf4, 0x6f, 0xc6, 0x58, 0xe3, 0x67, 0xcf, 0xe7, 0xf, 0xae, 0x2f, 0x7, 0xbc, 0xdb, 0x9b, 0x10, 0xd, 0x2a, 0x41, 0xfa, 0x71, 0x8f, 0xd2, 0xa1, 0x23, 0x7c, 0x5d, 0x83, 0x71, 0x1f, 0x3d, 0xbf, 0xad, 0x9f, 0x45, 0x50, 0xe8, - 0x46, 0x55, 0x74, 0x35, 0x8b, 0xa5, 0x5d, 0x8c, 0x3b, 0x71, 0x4a, 0xeb, 0xdb, 0xfe, 0xde, 0xf1, 0xb, 0x6d, 0xff, 0x17, 0x92, 0xc, 0x50, 0x1b, 0x3e, 0xc7, 0x6e, 0x75, 0xcd, 0xb, 0xd4, 0xbe, 0xb, 0x36, 0x30, 0x13, 0x39, 0xc2, 0x1d, 0x89, 0x62, 0x6d, 0xb5, 0xc, 0x52, 0xdd, 0xbf, 0xc5, 0xd, 0x94, 0xc6, 0xdb, 0x4a, 0xcc, 0x70, 0xd3, 0x3f, 0x68, 0x14, 0xb8, 0xe2, 0x18, 0xb1, 0x7f, 0xe1, 0x6c, 0xc7, 0x4f, 0xca, 0x1b, 0x4f, 0xed, 0x3, 0xb2, 0xe6, 0x1b, 0x32, 0xed, 0x93, 0xe4, 0x6e, 0xf, 0xeb, 0xaf, 0x6e, 0x8f, 0x7d, 0xd6, 0xb5, 0xdf, 0x3c, 0xb9, 0xff, 0xe2, 0x69, 0xf3, 0xfe, 0xcb, 0x27, 0xc9, 0xf, 0x5, 0x13, 0x85, 0x8c, 0x4a, 0xe4, 0x67, 0xf1, 0xfb, 0x0, 0xfd, 0xf1, 0xe6, 0x2d, 0x2c, 0x14, 0x9a, 0xf1, 0x5f, 0xa7, 0x5e, 0xd6, 0x49, 0xed, 0xe5, 0x2d, 0xba, 0xee, 0xf, 0xe6, 0xf4, 0x9b, 0xd4, 0x27, 0x55, 0xcb, 0xcb, 0x33, 0xaf, 0xef, 0x3f, 0xda, 0xf8, 0xad, 0xe9, 0x5c, 0x4e, 0x59, 0x89, 0xba, 0x70, 0x64, 0xdf, 0x8d, 0x4c, 0xa, 0xae, 0x2d, 0xfe, 0x38, 0x64, 0x59, 0x62, 0x1f, 0x9d, 0x4f, 0x1b, 0x7c, 0xe, 0x5b, 0xcf, 0x2f, 0x27, 0x58, 0xe6, 0x35, 0x40, 0xe8, 0xe9, 0xee, 0xd, 0x3d, 0x3a, 0xd, 0xb8, 0x2b, 0x80, 0x1b, 0x2, 0x3e, 0x9f, 0x9c, 0xe5, 0xbf, 0x61, 0xb4, 0x77, 0x8e, 0x84, 0x8d, 0x1e, 0x44, 0xfe, 0x21, 0x95, 0x11, 0xc8, 0x5b, 0x16, 0x1, 0xcc, 0xdd, 0x2, 0xd9, 0xd0, 0x66, 0x69, 0xe8, 0xb4, 0xcf, 0xa3, 0xb6, 0x81, 0xa8, 0xf6, 0x82, 0xe, 0xff, 0xa9, 0xac, 0xff, 0x8, 0x97, 0xf9, 0x40, 0x16, 0x53, 0x81, 0xb1, - 0x4c, 0x55, 0xfd, 0x6e, 0x27, 0x1c, 0xff, 0x6c, 0xa9, 0x25, 0xfd, 0xcb, 0xcc, 0x4, 0x34, 0xa2, 0xca, 0x89, 0xf5, 0x49, 0xf0, 0x24, 0xee, 0xff, 0xed, 0x33, 0xa5, 0x7f, 0x70, 0xa1, 0xff, 0xfd, 0x95, 0x62, 0x59, 0x91, 0x2e, 0xfe, 0xf7, 0xd, 0x75, 0x2f, 0x87, 0x9e, 0xa9, 0x84, 0x56, 0x2c, 0x4d, 0x6c, 0x7, 0x7c, 0x3f, 0x5d, 0xad, 0xa8, 0xcd, 0x9d, 0xb9, 0x54, 0xdb, 0x85, 0xed, 0x6f, 0xd4, 0x36, 0x9e, 0xf6, 0xf5, 0x9b, 0x77, 0xb6, 0x97, 0x82, 0x7a, 0xb5, 0x2f, 0xec, 0x4e, 0x35, 0x7a, 0xae, 0xfc, 0x26, 0xed, 0xcf, 0xcc, 0xa0, 0xbd, 0xd7, 0xaf, 0x3f, 0x92, 0xf9, 0xfc, 0xa7, 0x2c, 0x7f, 0x8e, 0xc9, 0xd9, 0x63, 0xa7, 0x71, 0xe1, 0xcf, 0x94, 0xff, 0xc7, 0x43, 0xa9, 0x16, 0xca, 0xd9, 0x59, 0x97, 0xa9, 0xbb, 0xbd, 0x33, 0xc1, 0x26, 0xd7, 0xf6, 0x94, 0x2a, 0x84, 0x13, 0x7a, 0x66, 0x83, 0xda, 0xb, 0x17, 0xe1, 0x44, 0x19, 0xf5, 0xf8, 0xbe, 0xb4, 0xcf, 0x7f, 0xce, 0x42, 0xc4, 0x38, 0xd4, 0xde, 0x91, 0x32, 0x0, 0x97, 0x76, 0xde, 0xa9, 0xf3, 0x2e, 0x44, 0xdc, 0x8c, 0x79, 0x38, 0x4e, 0x58, 0x5b, 0xbf, 0x10, 0x8a, 0x6c, 0xa, 0x54, 0x59, 0x24, 0x74, 0xa9, 0x9c, 0xad, 0x8f, 0xff, 0x96, 0xd5, 0xf0, 0xd4, 0xd, 0x8c, 0xf8, 0xfa, 0x77, 0x4c, 0xc7, 0xbd, 0xc0, 0x7b, 0x4b, 0x5c, 0xbe, 0xf9, 0xaa, 0xcf, 0x55, 0xe0, 0xdd, 0x3e, 0x1e, 0x1d, 0x41, 0x7b, 0xc8, 0xaf, 0x37, 0x72, 0x4f, 0x59, 0x6a, 0xbe, 0xd4, 0x2a, 0x87, 0x4d, 0x37, 0xc5, 0xf7, 0x6a, 0x38, 0x98, 0xaf, 0xa9, 0x26, 0xa3, 0xa6, 0x21, 0x7c, 0x71, 0xac, 0xf1, 0x1b, 0x4a, 0x5f, 0x1b, - 0xdd, 0x0, 0x87, 0xe3, 0x8b, 0x6d, 0xd4, 0x7c, 0xde, 0xd8, 0xf5, 0x29, 0x2, 0xef, 0x4b, 0xb7, 0xc1, 0x28, 0xe6, 0x92, 0x2c, 0xab, 0x18, 0x6f, 0xf8, 0x22, 0x1f, 0xab, 0x2d, 0x7, 0x55, 0x25, 0x41, 0xbe, 0x1a, 0xcf, 0x31, 0x2b, 0xfa, 0x6c, 0xc7, 0x2f, 0x4c, 0xed, 0xbf, 0x7f, 0xd, 0x9c, 0x98, 0x4f, 0x60, 0xf3, 0x43, 0x25, 0x5d, 0xec, 0x93, 0x6a, 0x8, 0x33, 0x4d, 0x6b, 0xbe, 0xcd, 0x70, 0x53, 0xc4, 0xd0, 0x5, 0x77, 0x82, 0x6b, 0xc, 0xff, 0x33, 0x45, 0xf2, 0x5a, 0xc7, 0xc2, 0x84, 0x6e, 0xd7, 0x3f, 0xdb, 0xf1, 0x1b, 0xe6, 0x8f, 0xe4, 0xe0, 0x58, 0xa5, 0xc4, 0xd6, 0x27, 0x6b, 0x50, 0x4b, 0x35, 0x2e, 0xdc, 0x54, 0x8d, 0x19, 0x9, 0xc7, 0xb2, 0x64, 0xc2, 0xb2, 0x5f, 0x32, 0xee, 0xaf, 0x7f, 0xd4, 0xf1, 0xab, 0xa2, 0xfa, 0x21, 0x48, 0x82, 0x85, 0x71, 0xa1, 0xcb, 0x6a, 0x67, 0xf1, 0x85, 0xd4, 0x7e, 0x79, 0xad, 0x22, 0xc9, 0xc1, 0xe0, 0x4d, 0x2e, 0x2e, 0xd9, 0xf1, 0x19, 0xfa, 0x4, 0xab, 0x7a, 0xde, 0xc4, 0xcc, 0xe7, 0x1f, 0x5a, 0xe3, 0xd6, 0x9c, 0xfa, 0x62, 0x51, 0xd1, 0xa5, 0x2e, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x90, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xd1, 0xe, 0xd9, 0x52, 0xca, 0x88, 0x9b, 0x67, 0x5c, 0x3e, 0x84, 0xd2, 0x6d, 0x93, 0xb4, 0x69, 0xd0, 0x3a, 0xc5, 0x94, 0xb, 0x5c, 0xfa, 0x62, 0x23, 0x7c, 0x66, 0xd3, 0x8a, 0x72, 0x10, 0xae, 0xbb, 0x2b, 0xc2, 0x51, 0x7d, 0xb7, 0x2, 0x27, 0x8a, 0x1e, 0x7e, 0xe9, 0x35, 0xc4, 0x6e, 0x24, 0x53, 0x75, 0xc3, 0x3e, 0x70, 0xb6, 0xe3, 0x17, 0x9e, 0x7f, 0x2b, 0x7c, - 0xd3, 0x91, 0x87, 0x49, 0x76, 0x4e, 0x81, 0xf0, 0x2, 0x5, 0x21, 0xef, 0x32, 0x73, 0x61, 0x11, 0xed, 0xc1, 0xd1, 0xb2, 0x40, 0x78, 0x73, 0x14, 0xca, 0xeb, 0xf6, 0xb9, 0x44, 0xc2, 0x60, 0xf6, 0xc3, 0x6c, 0x64, 0x70, 0xfc, 0xe5, 0xa3, 0x8e, 0xdf, 0x50, 0x7a, 0x6d, 0xfd, 0x7a, 0x38, 0x94, 0xd6, 0x24, 0x25, 0x76, 0x87, 0xa7, 0xbb, 0xfd, 0xe1, 0x67, 0xc6, 0x69, 0x5e, 0x82, 0xab, 0xd9, 0x59, 0xc3, 0x30, 0x32, 0x3e, 0x1f, 0xfd, 0xf7, 0x86, 0x5f, 0x73, 0x72, 0x36, 0x35, 0x57, 0x8b, 0x15, 0x9, 0x82, 0xca, 0x89, 0x2a, 0x42, 0x97, 0xdc, 0xa0, 0xe9, 0x6f, 0x1c, 0x13, 0x56, 0xd4, 0xbb, 0x5c, 0x2f, 0xdf, 0x2e, 0x64, 0x3c, 0x1f, 0x39, 0x9b, 0x3f, 0x8f, 0xa7, 0xec, 0x67, 0x96, 0xf3, 0x68, 0x4d, 0xed, 0x2d, 0x64, 0x16, 0x7b, 0x56, 0xf8, 0x1c, 0x7d, 0xed, 0x56, 0x1c, 0xd7, 0xaf, 0x82, 0x97, 0xeb, 0x38, 0x3f, 0x68, 0x8d, 0x47, 0xde, 0x37, 0x7d, 0x5e, 0xb4, 0x1c, 0x8b, 0x25, 0x59, 0xaf, 0xe0, 0x8d, 0x8b, 0x81, 0xd6, 0xfe, 0xb1, 0xc6, 0x6b, 0x62, 0xde, 0x78, 0x74, 0x49, 0xf8, 0x5a, 0x98, 0xd9, 0xf9, 0x18, 0x77, 0x2e, 0xb3, 0x57, 0xbe, 0x1f, 0xb4, 0x55, 0x9e, 0xeb, 0x67, 0xa6, 0x44, 0xf5, 0x71, 0x82, 0x8b, 0x8a, 0x8c, 0x1f, 0x11, 0x5d, 0xde, 0xbf, 0x51, 0xcc, 0x7b, 0x28, 0xa8, 0x15, 0x2, 0xb1, 0x12, 0xfb, 0x17, 0x46, 0x2c, 0x3f, 0xde, 0x2f, 0xd2, 0xe5, 0x18, 0x8f, 0x4e, 0x2b, 0xfc, 0xcf, 0x1f, 0x68, 0xda, 0xc5, 0xc2, 0x6b, 0x22, 0x6c, 0x4, 0x28, 0x88, 0xbd, 0x44, 0x9d, 0xc7, 0xf2, 0xc3, 0x58, 0xb3, 0x43, 0x44, 0x82, 0xbe, 0xa, 0x55, - 0x1b, 0x37, 0x21, 0x91, 0x13, 0x4d, 0xc4, 0xb9, 0x38, 0x6f, 0xc2, 0xbc, 0x7f, 0xac, 0xf1, 0xfb, 0x0, 0xff, 0x83, 0xf5, 0x96, 0xe3, 0xfe, 0x87, 0xf7, 0xb6, 0x85, 0x8, 0x6, 0xdb, 0xd8, 0xf8, 0x1, 0x11, 0xcb, 0x14, 0x92, 0x69, 0xff, 0x63, 0x98, 0xff, 0xd6, 0x3e, 0x1e, 0xd5, 0x76, 0x6f, 0x45, 0xc8, 0xbc, 0x8b, 0xfa, 0x6f, 0x7e, 0x7b, 0xff, 0xc, 0x56, 0x7a, 0xe6, 0x1c, 0x62, 0xf3, 0x4d, 0x26, 0xdf, 0x88, 0x46, 0x16, 0x33, 0xe3, 0x24, 0x69, 0xf3, 0x5, 0x9e, 0x6e, 0x7a, 0xa8, 0xff, 0xd1, 0xf0, 0x88, 0xf, 0x1e, 0xe8, 0xe7, 0x3a, 0x1a, 0x23, 0xa2, 0x4, 0x4f, 0x34, 0xd3, 0xfe, 0xc7, 0x47, 0x1d, 0xbf, 0x53, 0xf3, 0x3f, 0x58, 0xf7, 0x1d, 0x1d, 0xff, 0xe3, 0xa3, 0x8e, 0x1f, 0x93, 0x7f, 0x1d, 0x12, 0xea, 0x7f, 0xc9, 0xec, 0x3f, 0x79, 0xdc, 0xb9, 0x35, 0x4b, 0x36, 0x22, 0x16, 0x8c, 0x72, 0xac, 0xfb, 0xb6, 0x29, 0x51, 0xe9, 0x5a, 0xe5, 0x46, 0x14, 0xf1, 0x5f, 0xec, 0x2d, 0xa3, 0x34, 0x79, 0xe0, 0xc0, 0xcd, 0x13, 0xf2, 0x1e, 0x42, 0x82, 0x5, 0xe4, 0x47, 0x5, 0x3d, 0x8b, 0xdf, 0x7, 0xd8, 0x2f, 0x7, 0x6e, 0xa1, 0x38, 0xba, 0xd9, 0x1d, 0xb8, 0x76, 0xc5, 0x9, 0x17, 0x7e, 0xa6, 0x15, 0x5e, 0x9f, 0xba, 0xc2, 0x4c, 0x8c, 0x8e, 0xff, 0xf6, 0xf7, 0x86, 0x5f, 0x8d, 0x80, 0x4b, 0xdb, 0x4e, 0x98, 0xc7, 0xa8, 0x59, 0xc2, 0x31, 0x4a, 0x43, 0x4f, 0xe4, 0x94, 0xf2, 0x37, 0x7d, 0x68, 0xf9, 0xf1, 0x6a, 0xb3, 0xde, 0x97, 0x13, 0xb9, 0x88, 0xfe, 0x78, 0x45, 0x5, 0xe5, 0xeb, 0x35, 0x96, 0xa6, 0x97, 0x29, 0xfb, 0xef, 0xa2, 0xef, 0xcf, 0xcb, - 0x6b, 0x8a, 0x8f, 0x90, 0x97, 0x3, 0x24, 0x35, 0x23, 0x83, 0xbb, 0xbd, 0xbf, 0xb8, 0x8, 0x78, 0x67, 0x37, 0x7c, 0xd0, 0x1b, 0x36, 0xd, 0x94, 0x9c, 0x71, 0xf6, 0x60, 0x73, 0xe4, 0x42, 0x44, 0x9b, 0xa9, 0xf4, 0x1b, 0xcc, 0xdf, 0xb9, 0x59, 0x40, 0x8, 0xfa, 0x39, 0xc9, 0x72, 0x9b, 0x29, 0x32, 0xcf, 0x7f, 0xc6, 0xa2, 0x7e, 0xee, 0xa7, 0x42, 0xf, 0xe5, 0x3f, 0x93, 0xfb, 0x33, 0xc2, 0xe3, 0xd7, 0x82, 0xd9, 0x2f, 0xb4, 0x9, 0x1e, 0xdf, 0x64, 0x77, 0x11, 0xe3, 0xbf, 0x6a, 0x92, 0x42, 0xaf, 0x67, 0xce, 0x1f, 0x6a, 0x4, 0xfe, 0xcf, 0x5c, 0x9f, 0x26, 0xee, 0x6d, 0xdf, 0xba, 0x42, 0x69, 0x14, 0x5f, 0x1c, 0x6b, 0xbc, 0x86, 0xce, 0x9f, 0xdf, 0xac, 0xf4, 0xea, 0x1a, 0x35, 0xc9, 0xc0, 0xb2, 0xca, 0x82, 0x13, 0x98, 0xfe, 0x88, 0xda, 0xe9, 0x87, 0x46, 0x65, 0xfe, 0xbc, 0xca, 0xac, 0x37, 0xf2, 0xd, 0x31, 0x44, 0x6d, 0x68, 0x77, 0xc2, 0x69, 0xeb, 0xab, 0xd4, 0x4f, 0x9b, 0x8, 0x10, 0xa7, 0xfc, 0x80, 0xb, 0x64, 0x82, 0x7d, 0xb9, 0xc5, 0x5d, 0xae, 0xef, 0x5f, 0x3, 0x2c, 0xd2, 0x8f, 0x8d, 0x47, 0x2b, 0x8f, 0x56, 0xe8, 0x15, 0x63, 0xce, 0x7f, 0x43, 0xe7, 0xcf, 0x99, 0x3f, 0x60, 0x5a, 0xf3, 0x17, 0x33, 0x21, 0x51, 0xad, 0xec, 0x9d, 0xb9, 0x1e, 0xb2, 0x4e, 0x38, 0x3b, 0x64, 0xc8, 0xa7, 0x65, 0x7a, 0xfe, 0xfc, 0xa3, 0x8e, 0xdf, 0xd0, 0xf9, 0xf3, 0xf0, 0x23, 0x4e, 0x7c, 0x53, 0xae, 0xbc, 0x48, 0x2c, 0x75, 0x39, 0xe0, 0x2f, 0x90, 0xc2, 0x9b, 0x9b, 0x10, 0xbc, 0xc0, 0x77, 0x91, 0x9f, 0xa2, 0xe5, 0x53, 0xcd, 0x44, 0xa6, 0xe7, 0xcf, 0x3f, - 0xea, 0xf8, 0xd, 0xd3, 0x1f, 0xb9, 0x1e, 0xe4, 0x26, 0x16, 0x89, 0x2c, 0x84, 0xcc, 0x9a, 0xff, 0x7d, 0xa2, 0x17, 0xc1, 0x4f, 0xec, 0x9f, 0xca, 0xf0, 0x53, 0x54, 0x35, 0xe3, 0xf9, 0x5d, 0xff, 0xde, 0xf0, 0xcb, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0x3e, 0xdd, 0xb4, 0x7c, 0xab, 0xa, 0x1e, 0xd2, 0x46, 0x5d, 0xda, 0x65, 0x9c, 0x4a, 0xfe, 0x94, 0x91, 0xd2, 0x73, 0xa3, 0x7c, 0x50, 0x13, 0xfb, 0x39, 0xe8, 0x9c, 0x3e, 0x1b, 0x71, 0x2b, 0xff, 0xa4, 0x7d, 0x8e, 0x38, 0x4d, 0xc1, 0x3c, 0xe3, 0xf6, 0xa7, 0x4b, 0x47, 0x87, 0x9b, 0x8b, 0x1, 0xb9, 0x3e, 0xe8, 0x70, 0x61, 0xce, 0xbc, 0x8a, 0xf9, 0x93, 0xff, 0x2a, 0xdf, 0x9, 0x37, 0x3c, 0x5f, 0x7f, 0x96, 0xfe, 0x6b, 0xba, 0xb9, 0x6b, 0x9, 0x5b, 0x1c, 0x10, 0xcc, 0x4d, 0x5a, 0x29, 0x8b, 0x50, 0x57, 0xfd, 0x69, 0xdc, 0x2d, 0xdf, 0xff, 0x8a, 0x70, 0x98, 0x2f, 0x47, 0x49, 0x7a, 0x7e, 0x2c, 0xcd, 0xc1, 0xef, 0x39, 0xb4, 0x25, 0xd7, 0x41, 0x50, 0xd8, 0xe, 0x31, 0xa7, 0x50, 0x3f, 0xc9, 0xa9, 0x4a, 0x24, 0xf9, 0x9c, 0x42, 0xb8, 0x3c, 0xf, 0x6a, 0x2e, 0x64, 0xfb, 0x41, 0x5b, 0xb1, 0xe4, 0x31, 0x74, 0x6b, 0x5c, 0xf8, 0x47, 0xb, 0xad, 0xd, 0xeb, - 0x7a, 0xd9, 0x11, 0x45, 0xf5, 0xaf, 0x88, 0xcf, 0xc3, 0x6f, 0x2, 0x45, 0x8d, 0x5c, 0xe7, 0x64, 0x52, 0x10, 0xcb, 0x55, 0x9a, 0xcd, 0xdb, 0xe9, 0x9, 0xc7, 0x22, 0x96, 0xfe, 0x18, 0x67, 0x40, 0x3e, 0x1b, 0xef, 0x76, 0x19, 0xed, 0xe4, 0x5a, 0xb1, 0xac, 0x5b, 0x79, 0x8a, 0xe5, 0x5c, 0x9, 0x3d, 0xa3, 0xa0, 0x57, 0x7b, 0x89, 0xbb, 0x84, 0x4, 0x3b, 0xe, 0xbc, 0xb1, 0x85, 0xe4, 0xcc, 0x8e, 0xb2, 0xed, 0x58, 0xac, 0x5, 0x7, 0x6c, 0x55, 0xfd, 0x88, 0xaf, 0xf7, 0xf6, 0x52, 0x96, 0xff, 0xf4, 0x63, 0x3a, 0x38, 0xc8, 0x91, 0xca, 0xa4, 0xf7, 0xb6, 0x8f, 0xd, 0xee, 0xa7, 0xdd, 0x17, 0xe5, 0xd4, 0xbd, 0x35, 0x42, 0x2a, 0x1f, 0x6c, 0x37, 0x11, 0x95, 0xda, 0x5d, 0x77, 0x84, 0xa, 0x2f, 0x9, 0x3a, 0x8b, 0x2b, 0xb, 0xab, 0x3f, 0xfe, 0xd5, 0x9f, 0x1d, 0x78, 0x7d, 0xff, 0xee, 0xb1, 0xc6, 0x6b, 0x58, 0xff, 0x6d, 0x72, 0x63, 0x62, 0xbf, 0x6b, 0xb1, 0xc7, 0xe3, 0xf3, 0x7, 0x9c, 0xf6, 0x7a, 0xc, 0xa9, 0x88, 0x2b, 0x47, 0x12, 0x26, 0x5b, 0x74, 0x9b, 0xee, 0xfb, 0x4d, 0xbb, 0x24, 0xcc, 0x0, 0x22, 0xd8, 0xa3, 0x89, 0x7d, 0xa7, 0x50, 0xdf, 0x9b, 0x5f, 0x64, 0xed, 0x87, 0x6c, 0xe1, 0x25, 0xaa, 0xc3, 0xf6, 0x1f, 0x77, 0xbc, 0xf4, 0x3b, 0x68, 0x3e, 0x6d, 0x30, 0x87, 0xc8, 0x4d, 0x2c, 0xdf, 0x37, 0x5f, 0xd8, 0xe6, 0x4e, 0x8, 0xa6, 0xf6, 0x74, 0xb2, 0xa4, 0x9c, 0xf2, 0xaf, 0x59, 0x79, 0x4f, 0x59, 0xa3, 0xb6, 0x7f, 0xd3, 0x91, 0x39, 0xb4, 0x42, 0x69, 0xe, 0x6f, 0xe, 0xae, 0xe5, 0xdc, 0x19, 0xbd, 0x63, 0xf9, 0x30, 0x7e, 0x17, 0xf0, 0x35, - 0xfa, 0x41, 0xd6, 0x53, 0x75, 0x32, 0x8e, 0xdf, 0xa3, 0x4e, 0x6c, 0xab, 0xaf, 0xe7, 0xc, 0xd1, 0xe5, 0x2f, 0x90, 0x4, 0x84, 0xb, 0x97, 0xc1, 0x55, 0x85, 0x2b, 0x5, 0x8f, 0x8f, 0x2d, 0xbf, 0x48, 0xdf, 0x1f, 0x3f, 0xe4, 0xfa, 0xa0, 0x9a, 0x37, 0x37, 0x53, 0x3e, 0xbe, 0x49, 0x8a, 0xa0, 0xfb, 0xca, 0xca, 0xb2, 0x5a, 0x34, 0xd7, 0xde, 0x2, 0x87, 0xa6, 0x29, 0xd6, 0x69, 0x51, 0xed, 0x39, 0x29, 0x7f, 0x17, 0x8e, 0x1d, 0xfe, 0x93, 0xf3, 0xda, 0xe2, 0x4f, 0x21, 0xf9, 0x46, 0x2b, 0x1, 0xf7, 0xf1, 0x3d, 0x15, 0x9f, 0x5f, 0xf, 0x6f, 0xfe, 0xb9, 0xe8, 0xd5, 0x5, 0x78, 0x74, 0x6d, 0xc5, 0xc6, 0xe7, 0xc7, 0x3e, 0x5f, 0xbf, 0x77, 0xfd, 0xf5, 0x70, 0x98, 0x1c, 0x8f, 0xde, 0x5a, 0x52, 0xa5, 0x96, 0x65, 0xf5, 0x45, 0x3a, 0x7e, 0xfb, 0xec, 0xbf, 0x4, 0x2f, 0x63, 0xdb, 0xf5, 0xa4, 0x98, 0xbe, 0x29, 0x59, 0x8d, 0xd0, 0x53, 0x5, 0x93, 0x6b, 0x41, 0x99, 0x41, 0x35, 0x10, 0x16, 0xb0, 0xe8, 0xe4, 0xfd, 0x44, 0xaf, 0xee, 0x50, 0xe0, 0x23, 0x56, 0x3a, 0x1b, 0x91, 0xc9, 0xf4, 0x11, 0xdb, 0x2f, 0x1b, 0x37, 0xe1, 0xce, 0x5, 0x8c, 0x67, 0x4b, 0x10, 0x94, 0x12, 0xfc, 0x35, 0x0, 0x7f, 0x40, 0x80, 0x41, 0x55, 0x55, 0x2b, 0xb0, 0x21, 0xed, 0xfe, 0xb3, 0x23, 0xa5, 0xeb, 0x8a, 0x97, 0x22, 0xe8, 0x62, 0x19, 0xe, 0x9c, 0xb4, 0x5, 0xe5, 0x98, 0x6c, 0xe5, 0xeb, 0x31, 0x58, 0x86, 0x4b, 0xdd, 0x21, 0xa4, 0xdf, 0xaf, 0xea, 0xea, 0xda, 0x6, 0xab, 0xc3, 0x51, 0xc9, 0x41, 0x98, 0x3e, 0x60, 0xf6, 0x97, 0x9b, 0xfe, 0xd2, 0x2, 0xb4, 0xc0, 0xe4, 0x13, - 0xce, 0x30, 0x87, 0xa7, 0x52, 0xd0, 0x59, 0xaf, 0x99, 0x6e, 0xff, 0x55, 0xdb, 0xd8, 0x72, 0x1f, 0xfe, 0xf1, 0x50, 0xe1, 0x83, 0x8d, 0x4b, 0x7f, 0x7e, 0xfe, 0x92, 0xd, 0xe0, 0x8f, 0x55, 0xba, 0x63, 0x2e, 0xac, 0xc3, 0x4d, 0x88, 0xf1, 0x6c, 0x7f, 0x8d, 0xc0, 0xe0, 0xb3, 0x3, 0x81, 0x41, 0xf1, 0xad, 0x62, 0xcb, 0x59, 0x91, 0xb0, 0xfe, 0x8d, 0x78, 0x7f, 0x26, 0x47, 0xe1, 0x26, 0x10, 0xbe, 0x4e, 0xbb, 0xeb, 0xc7, 0xf4, 0x57, 0x5d, 0xfb, 0x47, 0xbc, 0xbe, 0x89, 0xca, 0xe3, 0x3, 0x95, 0x6a, 0x77, 0x4, 0xc9, 0xfa, 0xad, 0x6c, 0x43, 0x9d, 0xd0, 0xbb, 0x9c, 0xd6, 0x33, 0xad, 0x9f, 0x2b, 0x8d, 0x2a, 0xbe, 0xcf, 0xdd, 0xcc, 0xb7, 0x65, 0x1a, 0xbf, 0xd0, 0x23, 0x51, 0x78, 0xf8, 0xa7, 0xb9, 0x56, 0x9d, 0x3e, 0x72, 0xf9, 0xa6, 0xa2, 0xb4, 0xf5, 0x1f, 0xe5, 0x58, 0xfe, 0xc9, 0x5e, 0x9b, 0x9e, 0xfd, 0xe4, 0x58, 0xf7, 0xdf, 0xa1, 0xf4, 0xd2, 0x1d, 0x6d, 0xd6, 0xf6, 0x5b, 0x52, 0x6a, 0x15, 0xd8, 0x68, 0x5f, 0x6f, 0x7a, 0x74, 0x1a, 0x92, 0x47, 0x18, 0x8b, 0xf1, 0x3f, 0xec, 0x77, 0xf3, 0x68, 0xde, 0x11, 0xa3, 0x9f, 0xc9, 0x24, 0xfb, 0x3c, 0x86, 0xf5, 0xdf, 0xe3, 0xfa, 0x24, 0x66, 0xb8, 0x6b, 0x4e, 0x43, 0xfb, 0x3e, 0x6a, 0x74, 0x8d, 0x60, 0xed, 0x6f, 0xe, 0x9d, 0x65, 0x4, 0xa2, 0xff, 0xc6, 0xba, 0x3d, 0x67, 0x3a, 0x5d, 0x57, 0xbd, 0xd2, 0xb2, 0x76, 0xe, 0xbb, 0x8f, 0x4a, 0xab, 0x90, 0xe5, 0xa7, 0x11, 0xcb, 0xc3, 0xcd, 0x2b, 0xb1, 0xb, 0xe2, 0x94, 0x76, 0x4a, 0xe9, 0x7, 0xa3, 0x19, 0x5f, 0xaf, 0x7a, 0xda, 0xf9, 0x63, 0x87, 0x1f, - 0x4a, 0xb5, 0xc9, 0x1d, 0x45, 0x0, 0x6e, 0xc, 0xf7, 0x67, 0x59, 0x3e, 0x11, 0x7d, 0xa, 0xfb, 0x1c, 0xb4, 0x64, 0x7a, 0xe8, 0x68, 0x18, 0x58, 0x20, 0x7a, 0xed, 0x84, 0xb, 0x3d, 0x69, 0xfd, 0xab, 0x8f, 0xf9, 0xdc, 0x86, 0x47, 0x60, 0xc9, 0x91, 0x6c, 0x17, 0xa3, 0x4e, 0xe6, 0xe0, 0xe8, 0x4a, 0x38, 0x4d, 0xbe, 0x85, 0x5e, 0x51, 0x2, 0xd5, 0xff, 0xf7, 0x9c, 0x6c, 0x3f, 0x31, 0x7f, 0x88, 0x2a, 0x5e, 0x93, 0x9a, 0x7, 0xb, 0x74, 0x77, 0xc2, 0x39, 0xe2, 0xfb, 0x93, 0x9b, 0xd9, 0x46, 0x5b, 0xd4, 0x1a, 0xd3, 0x17, 0x66, 0x62, 0x3f, 0xa, 0xea, 0x6f, 0x1e, 0xb3, 0xf6, 0xdb, 0xd0, 0xc4, 0x6e, 0x1d, 0x96, 0x3f, 0x94, 0xac, 0xe4, 0xba, 0x23, 0x5c, 0x4f, 0xe4, 0xdc, 0xd6, 0xba, 0xf4, 0xf6, 0xf4, 0x94, 0x3e, 0xb6, 0xd2, 0x3e, 0xc6, 0x3d, 0x3c, 0x63, 0x11, 0x69, 0x97, 0xc7, 0x9d, 0x9b, 0xae, 0x7e, 0x35, 0xa7, 0xf3, 0x8d, 0xcc, 0x52, 0x62, 0x59, 0x98, 0xe9, 0x7f, 0xb6, 0x7f, 0x89, 0xc1, 0x85, 0x35, 0xeb, 0x34, 0x51, 0xfc, 0x9b, 0xa8, 0xdb, 0x31, 0x88, 0x5f, 0xff, 0xfe, 0xff, 0xbc, 0x2b, 0x7c, 0x87, 0x82, 0x78, 0x82, 0xc3, 0x52, 0xb6, 0x81, 0x27, 0xc7, 0x9, 0x27, 0xed, 0xdf, 0x19, 0x1f, 0x8b, 0xfd, 0x3b, 0x87, 0xd2, 0x6b, 0x69, 0xc7, 0x51, 0x65, 0x24, 0xe2, 0x3d, 0xd6, 0x76, 0x3a, 0x70, 0x6c, 0x9e, 0x4e, 0x9b, 0xf6, 0x55, 0x5, 0x3b, 0x3c, 0xf7, 0x24, 0xd4, 0x82, 0x51, 0x97, 0x4f, 0x17, 0x75, 0xae, 0xa7, 0xef, 0x33, 0xad, 0xbd, 0x8, 0x61, 0x34, 0x20, 0xb4, 0x80, 0x1a, 0xb7, 0xed, 0xe, 0xdd, 0xce, 0x0, 0x78, 0x68, 0x73, 0x55, - 0xf5, 0x97, 0xa1, 0xff, 0xcf, 0x40, 0x0, 0x5b, 0x50, 0xc9, 0xfe, 0xc6, 0x1a, 0xaf, 0x61, 0xf8, 0xf5, 0x56, 0xd8, 0xde, 0xeb, 0x67, 0x4b, 0x4a, 0x42, 0xb0, 0xf2, 0x29, 0xf1, 0x7e, 0x83, 0x2b, 0xd5, 0x25, 0xd3, 0xca, 0x42, 0x9f, 0xe9, 0xeb, 0x95, 0x4e, 0x5f, 0x6, 0xcf, 0xa1, 0x27, 0x23, 0x39, 0x6e, 0xdb, 0x65, 0xe, 0xbf, 0x7f, 0x2d, 0x72, 0x21, 0xda, 0x1b, 0x98, 0xba, 0x3, 0xfe, 0x75, 0xdb, 0x28, 0x92, 0x8a, 0xb5, 0x25, 0xc7, 0x76, 0xf7, 0xfe, 0x87, 0x16, 0x96, 0xbe, 0x70, 0x3b, 0x60, 0x49, 0x7, 0xbe, 0xb4, 0x71, 0xf9, 0x56, 0x75, 0xac, 0xf1, 0x1a, 0x4a, 0x7b, 0x9f, 0xb8, 0x75, 0xd0, 0xf9, 0xdf, 0xc9, 0xd2, 0x50, 0xc9, 0xd, 0x39, 0x70, 0x20, 0x52, 0x6e, 0xb0, 0xb1, 0x60, 0x64, 0x9e, 0xff, 0xc2, 0x47, 0xab, 0x81, 0x19, 0xb2, 0xe2, 0xf7, 0xb1, 0x74, 0x6b, 0xb0, 0xf2, 0xff, 0xd4, 0xa7, 0x1a, 0xe0, 0x30, 0x75, 0x77, 0xa8, 0xf0, 0x5c, 0xe0, 0x3c, 0x2a, 0x52, 0xd9, 0x1, 0xe3, 0xd0, 0xe4, 0xd2, 0x1c, 0xf9, 0x18, 0xe7, 0xf4, 0xb1, 0x6c, 0x87, 0x15, 0x91, 0x3a, 0xe9, 0x8c, 0xc3, 0xaf, 0xe6, 0xc2, 0x65, 0x8, 0x86, 0x96, 0xa3, 0xac, 0xc3, 0xce, 0xa3, 0x60, 0xe5, 0xef, 0x62, 0xf7, 0x92, 0x80, 0x9b, 0xe1, 0x99, 0x79, 0x79, 0xf1, 0x9, 0x38, 0x28, 0x3b, 0xe9, 0xbb, 0x3, 0x4d, 0xc6, 0x62, 0x61, 0x58, 0x3e, 0xa4, 0x95, 0xe6, 0x8d, 0x30, 0xe8, 0x79, 0x97, 0xd5, 0x9a, 0x15, 0x1b, 0xbc, 0xb7, 0xcd, 0x44, 0x75, 0x19, 0x24, 0x57, 0xf1, 0xfa, 0xdb, 0x55, 0x91, 0x37, 0xc6, 0x1a, 0xaf, 0x61, 0xfc, 0x30, 0x75, 0x16, 0x59, 0x46, 0xf8, - 0x71, 0x70, 0xb9, 0x5c, 0x1, 0x37, 0xd0, 0x1c, 0xaf, 0x9, 0xe6, 0x13, 0x78, 0xe9, 0x49, 0x6d, 0x5d, 0x5f, 0xe6, 0xf1, 0x6b, 0xee, 0x5a, 0x8d, 0x2e, 0x82, 0x45, 0xec, 0x19, 0xc1, 0x91, 0x4c, 0x52, 0x7d, 0x31, 0x38, 0x7e, 0xa7, 0x49, 0xff, 0xb1, 0xba, 0xce, 0xca, 0xff, 0x33, 0x98, 0x1f, 0x66, 0x7f, 0xc5, 0xfe, 0xd2, 0xcf, 0x5e, 0x8d, 0xa0, 0xb9, 0xb2, 0x4d, 0x62, 0xfb, 0xe7, 0x90, 0x64, 0xed, 0x58, 0xe3, 0x35, 0x8c, 0xff, 0x96, 0x14, 0xd0, 0xf6, 0x2e, 0x92, 0x66, 0x47, 0xb8, 0x29, 0x84, 0x1e, 0xf1, 0xe6, 0xd8, 0xfb, 0x2b, 0xb3, 0x87, 0xbf, 0xb1, 0x2c, 0xf3, 0xf8, 0xd5, 0xac, 0x51, 0x89, 0x2b, 0x71, 0x95, 0xd8, 0x89, 0x6e, 0x72, 0x8f, 0xd2, 0x2e, 0x9d, 0x94, 0x3f, 0xc4, 0x3, 0x77, 0x9c, 0x6b, 0xae, 0xa5, 0xfa, 0xfc, 0xa6, 0x7a, 0x3b, 0x79, 0x53, 0x6d, 0x63, 0x77, 0xf8, 0xfd, 0xb9, 0xd8, 0xa6, 0x7f, 0x7d, 0x72, 0x7b, 0x81, 0x24, 0x89, 0x5, 0xfd, 0xe6, 0x58, 0xe3, 0x35, 0x94, 0x96, 0xc7, 0x85, 0x52, 0x4f, 0x7b, 0xe0, 0x1d, 0xf7, 0x24, 0x66, 0xbf, 0x50, 0xfb, 0x21, 0xa2, 0x4b, 0xdd, 0x9d, 0xa4, 0x62, 0x9d, 0x98, 0x79, 0xfc, 0x42, 0x6f, 0x76, 0x41, 0xfb, 0x27, 0x47, 0x80, 0xa, 0x37, 0xcd, 0x43, 0xe5, 0x5e, 0x5d, 0xf1, 0xe5, 0xa9, 0xd1, 0x57, 0x1e, 0xe5, 0x28, 0x1c, 0x76, 0xbd, 0x9a, 0x6f, 0x48, 0x28, 0x2e, 0x6, 0xab, 0x23, 0xfa, 0xa0, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xed, 0x3f, 0xc7, 0xb1, 0x4a, 0x55, 0x13, 0xbb, 0x74, 0x75, 0x27, 0xdb, 0xff, 0xca, 0xc2, 0xaf, 0x6b, 0x35, 0xa7, 0x52, 0x5f, 0xb4, 0xf1, 0x9e, 0x64, 0xc6, - 0xf1, 0xab, 0xdb, 0x51, 0x87, 0xe2, 0x6a, 0xb6, 0x7b, 0x6c, 0x92, 0x1b, 0xc0, 0x34, 0x96, 0xbf, 0xd5, 0xb8, 0x0, 0x2c, 0x79, 0xd, 0x4b, 0xfb, 0xdc, 0xad, 0x84, 0x99, 0xfe, 0x98, 0xc8, 0x86, 0xaa, 0xd8, 0xc1, 0x7e, 0xbf, 0xb5, 0xbf, 0x67, 0x4f, 0x84, 0xeb, 0xd3, 0x55, 0x4d, 0xaa, 0x55, 0xc7, 0x7c, 0xff, 0xab, 0x61, 0xf2, 0xef, 0x90, 0x17, 0x51, 0xae, 0x3a, 0xff, 0x4e, 0xbf, 0xcf, 0xef, 0x96, 0x2c, 0xfc, 0x4c, 0x4e, 0xa5, 0x68, 0x46, 0x51, 0xa1, 0x8d, 0x2, 0xff, 0x85, 0x7f, 0x70, 0x15, 0xa8, 0x58, 0x25, 0xdc, 0x3f, 0x51, 0x52, 0x72, 0xfb, 0xe7, 0xb6, 0xdf, 0x8d, 0x20, 0x34, 0xca, 0x8f, 0x78, 0xdd, 0xad, 0xbf, 0x8d, 0xf0, 0x4, 0xe, 0x6b, 0xdb, 0xbe, 0x7b, 0xbe, 0x55, 0xdd, 0x30, 0xbb, 0x9a, 0x54, 0x1f, 0x3a, 0x27, 0xe7, 0x79, 0x6a, 0xdb, 0x54, 0xe5, 0xb1, 0x8d, 0x9b, 0xce, 0x7a, 0x7f, 0x79, 0xa8, 0xbf, 0xfb, 0xf7, 0xe6, 0xff, 0x8e, 0xba, 0xbc, 0xd8, 0x96, 0x8b, 0x58, 0xd0, 0xda, 0x7e, 0x35, 0xc2, 0xbd, 0xa8, 0x71, 0x35, 0x2, 0x7f, 0x62, 0xfc, 0xaa, 0xeb, 0xa3, 0x37, 0x7e, 0xe5, 0xd8, 0xfe, 0x2f, 0xa4, 0xc7, 0xda, 0xdf, 0xca, 0xd6, 0xba, 0x96, 0x3e, 0xcc, 0x6f, 0x31, 0x6, 0x95, 0x62, 0xa6, 0xaf, 0xe7, 0xbd, 0x6d, 0x36, 0x12, 0x41, 0xa3, 0x83, 0xa8, 0xa5, 0x5a, 0x65, 0x5d, 0x95, 0x38, 0x4c, 0x3e, 0xca, 0x85, 0xb6, 0x7f, 0xcf, 0x30, 0x15, 0xf4, 0xdf, 0xbe, 0xbc, 0xb1, 0xa, 0xd5, 0x41, 0x87, 0x43, 0x31, 0xd, 0x9d, 0x1e, 0x1a, 0xf3, 0xf9, 0xb6, 0xb1, 0xa6, 0xa7, 0x47, 0xa8, 0x9b, 0x1d, 0xb, 0x24, 0x9b, 0xbe, 0xe1, - 0x7, 0x6e, 0xfc, 0x65, 0x41, 0x5a, 0xfb, 0x20, 0xc7, 0xb8, 0xb, 0xbf, 0x1f, 0x38, 0x66, 0x45, 0x47, 0xf4, 0xff, 0xa9, 0x75, 0xac, 0xdb, 0x3f, 0x94, 0x5e, 0xd3, 0x39, 0x97, 0x7c, 0xda, 0x21, 0xb3, 0x79, 0xa4, 0x1e, 0x96, 0x79, 0xbb, 0x54, 0xc0, 0xf3, 0xc8, 0x60, 0xbe, 0xc7, 0x61, 0xf2, 0xef, 0xd1, 0x3b, 0x61, 0x70, 0x3e, 0xdf, 0xd7, 0x3, 0x3f, 0x9, 0x52, 0x37, 0x43, 0xf4, 0x3a, 0xb, 0x51, 0x3c, 0x78, 0x31, 0xe4, 0x75, 0xf, 0xe3, 0xd7, 0x7c, 0xe, 0x13, 0x68, 0x85, 0x60, 0x24, 0xca, 0x8c, 0x82, 0x33, 0x8e, 0xff, 0x8e, 0xef, 0xdf, 0x55, 0x1f, 0xdd, 0x48, 0xdd, 0xf, 0x78, 0xdf, 0x9e, 0x40, 0xfd, 0xf9, 0x36, 0x49, 0xa5, 0x6, 0xa0, 0xba, 0x67, 0x14, 0xfa, 0xef, 0x76, 0x1e, 0x7a, 0x90, 0x3, 0x81, 0xda, 0xdd, 0x1b, 0xa4, 0xd7, 0x3b, 0x94, 0x8b, 0x8d, 0x14, 0x51, 0x7a, 0x72, 0x4f, 0x57, 0x84, 0xa0, 0x86, 0x43, 0xdf, 0x89, 0xf1, 0x3f, 0x9e, 0x34, 0x7b, 0x66, 0xe1, 0xb3, 0xfa, 0x15, 0x94, 0x69, 0x75, 0x1d, 0xa4, 0x56, 0x19, 0x6b, 0xbc, 0x86, 0xc9, 0x9b, 0x3, 0x8d, 0x28, 0x96, 0x9f, 0xb6, 0xc6, 0x2e, 0x59, 0xbb, 0x7, 0xf7, 0x3, 0x94, 0xd, 0xe4, 0x1f, 0x7e, 0xef, 0x90, 0x24, 0xe6, 0x3d, 0x4, 0x4c, 0x1, 0x2a, 0x2a, 0xe9, 0xc9, 0xf6, 0xf6, 0xf6, 0x87, 0x9c, 0xe3, 0x91, 0xa0, 0x9d, 0xe9, 0x9c, 0x5f, 0xbf, 0x3f, 0xe9, 0x5c, 0xca, 0xa5, 0xa1, 0x5f, 0x95, 0x91, 0xf7, 0xdc, 0x7b, 0x1c, 0xcd, 0x2d, 0xe5, 0xf4, 0x4b, 0xe5, 0xfd, 0xd6, 0x78, 0x62, 0x27, 0x7a, 0x88, 0x54, 0xcb, 0x95, 0x62, 0xf8, 0x7e, 0xe5, 0x35, 0x6b, 0x2e, - 0xc6, 0xae, 0xf9, 0xd4, 0xde, 0x84, 0x33, 0xc2, 0x75, 0x47, 0xac, 0x78, 0x11, 0x76, 0xc6, 0x69, 0xed, 0xc8, 0xdb, 0x68, 0x5d, 0xbf, 0x55, 0x7b, 0x8e, 0xb8, 0x13, 0x48, 0x72, 0xad, 0xc1, 0x7c, 0x76, 0x5e, 0x77, 0xc3, 0xad, 0x4b, 0x86, 0x33, 0xce, 0x6d, 0x66, 0xf3, 0x9b, 0x8b, 0x50, 0xa1, 0xbb, 0xd, 0x67, 0x42, 0x88, 0xf3, 0x76, 0x7b, 0x4d, 0xb7, 0x4e, 0x7f, 0xe1, 0x59, 0xf3, 0xfe, 0xfd, 0x5, 0x2d, 0xe1, 0xdb, 0xbe, 0x1a, 0x7b, 0x2f, 0xa0, 0xd9, 0x2e, 0x1, 0x89, 0x91, 0xba, 0xf6, 0x95, 0xf0, 0x17, 0xa0, 0x90, 0x7d, 0x83, 0x48, 0x64, 0x98, 0x7e, 0xba, 0x90, 0x4a, 0x91, 0x93, 0xc6, 0x6b, 0x83, 0xe1, 0xed, 0xdf, 0x3, 0x3e, 0x76, 0x47, 0x51, 0x8a, 0x2e, 0x4d, 0x87, 0x5f, 0x55, 0x47, 0x8e, 0x2e, 0xeb, 0x2, 0xb5, 0xfd, 0xdd, 0xf4, 0x1e, 0xac, 0xfd, 0xec, 0xdf, 0xe2, 0x6a, 0xa9, 0x73, 0x25, 0x75, 0x72, 0x73, 0x88, 0x3a, 0x1a, 0xfb, 0x87, 0x51, 0x3c, 0x88, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0x8d, 0x85, 0xae, 0x22, 0x5e, 0xab, 0xf9, 0x4a, 0x53, 0xad, 0xa2, 0x8b, 0x76, 0xaa, 0x53, 0x83, 0x50, 0x2f, 0x6f, 0x3, 0x70, 0x6c, 0x79, 0x1, 0x8e, 0xea, 0x9e, 0x67, 0xfd, 0x73, 0x10, 0x3d, 0xe3, 0xe2, 0x3, 0x6b, 0x5e, 0xb8, 0x6, 0xf2, 0xb9, 0x44, 0x2c, 0x85, 0xe4, 0x22, 0x15, 0x94, 0x9f, 0xae, 0xbe, 0x4c, 0xfb, 0xca, 0x34, 0x93, 0x3b, 0x4f, 0xdc, 0xb2, 0x65, 0x8b, 0x94, 0xf9, 0xfd, 0x23, 0x4a, 0x29, 0xff, 0xe9, 0x7f, 0x9a, 0xc, 0xc1, 0xa7, 0x57, 0x51, 0xf6, 0x93, 0x98, 0xff, 0x71, 0x1b, 0x3d, 0xa3, - 0x71, 0x6c, 0x52, 0xa0, 0x7b, 0xd6, 0x26, 0x1c, 0xdf, 0xf, 0x10, 0x33, 0xde, 0xf8, 0x4f, 0xbe, 0x34, 0x27, 0xef, 0xbd, 0x4a, 0x36, 0x78, 0xf0, 0x14, 0xe6, 0x34, 0xde, 0x50, 0x39, 0x4c, 0x5f, 0x8f, 0x35, 0x4d, 0xf9, 0xed, 0x3d, 0x6b, 0xfc, 0x3e, 0x22, 0x5a, 0xf3, 0xac, 0x72, 0xe, 0x59, 0x9c, 0x6a, 0xfe, 0xeb, 0x3, 0x87, 0xa5, 0x51, 0xe0, 0x3f, 0x7d, 0xd1, 0x33, 0x2c, 0x97, 0xb7, 0x60, 0xe7, 0x0, 0xf, 0x3f, 0xf1, 0x6b, 0x18, 0xb9, 0x4a, 0xc0, 0x3e, 0x2f, 0x8, 0xd7, 0xe1, 0xf8, 0x78, 0x82, 0xfe, 0xea, 0xfb, 0x15, 0x37, 0xda, 0xf9, 0x7a, 0xff, 0x77, 0x7d, 0xd6, 0x44, 0xbd, 0xbd, 0x93, 0xe7, 0x4b, 0x4e, 0x37, 0x7e, 0x4b, 0x6b, 0x27, 0xb2, 0xf1, 0xe, 0xf8, 0x67, 0x38, 0xc0, 0x57, 0xcc, 0x64, 0xf8, 0xf1, 0x92, 0x89, 0x85, 0xc4, 0x6d, 0x4a, 0x87, 0xe1, 0x48, 0xbf, 0x1f, 0x22, 0x87, 0x4b, 0xed, 0xf6, 0xeb, 0x1f, 0x78, 0x7f, 0x43, 0xe9, 0x79, 0xf5, 0x17, 0x23, 0x38, 0x95, 0x47, 0x5, 0x8c, 0x55, 0xe8, 0xfd, 0x4, 0xd6, 0xb2, 0x78, 0x94, 0x6a, 0xfb, 0xec, 0x63, 0xa6, 0xe4, 0xf6, 0x6e, 0xff, 0x24, 0xf2, 0x74, 0x7b, 0x6e, 0x49, 0xdf, 0x5f, 0x51, 0x56, 0xb3, 0xad, 0x9, 0x13, 0x94, 0x6, 0x51, 0xf5, 0x80, 0x27, 0xe8, 0x45, 0xf8, 0xfd, 0xba, 0x84, 0x93, 0xed, 0xb8, 0xc7, 0x36, 0x7, 0x36, 0x8c, 0x31, 0x8f, 0x9f, 0xac, 0x79, 0x33, 0x44, 0xdb, 0x5b, 0x49, 0xad, 0xff, 0xb2, 0x75, 0xc, 0x7, 0xc7, 0xaf, 0x6a, 0xc8, 0xbf, 0xaf, 0x42, 0x45, 0x30, 0x97, 0xa, 0xa0, 0x67, 0x87, 0xcb, 0xff, 0x91, 0xd2, 0xe1, 0x23, 0x45, 0xf0, 0x6f, - 0xab, 0xd4, 0xdb, 0xa6, 0xf8, 0x69, 0x29, 0xf4, 0xd7, 0xe4, 0x52, 0xab, 0xc9, 0x36, 0x60, 0x3a, 0x49, 0xb2, 0x5e, 0x5c, 0xea, 0x9b, 0x43, 0x35, 0xb1, 0xd3, 0x8e, 0x21, 0x8e, 0x1f, 0xbb, 0xc2, 0x3b, 0xbd, 0x12, 0xfb, 0x4, 0xd5, 0xe6, 0xbf, 0xbb, 0x2b, 0x76, 0x8e, 0x35, 0x5e, 0x1f, 0x84, 0x9f, 0xac, 0x53, 0xf9, 0x17, 0xfb, 0x6b, 0xfc, 0xc8, 0x68, 0xe2, 0xb7, 0xb4, 0x52, 0xe7, 0x82, 0x36, 0x7e, 0x6c, 0xff, 0x76, 0xf2, 0x37, 0xf6, 0x6f, 0x3f, 0xe3, 0xf1, 0x13, 0xf8, 0xe4, 0xc9, 0xf2, 0xef, 0x24, 0xf9, 0xdd, 0xf9, 0xf8, 0x1b, 0x39, 0xa7, 0x12, 0x3f, 0x79, 0x22, 0x99, 0xf8, 0x29, 0x8c, 0xd7, 0xd4, 0xb5, 0x53, 0xfe, 0x72, 0x3d, 0x63, 0xcd, 0x60, 0xe, 0xca, 0x3f, 0xe4, 0x9d, 0x90, 0x7f, 0x97, 0x9f, 0x34, 0x7f, 0xd9, 0xf5, 0xc8, 0xc3, 0x7, 0x9a, 0x7d, 0x33, 0xf1, 0xb4, 0x28, 0x47, 0x44, 0x7a, 0x70, 0xc6, 0x73, 0x25, 0x68, 0x52, 0xb, 0x80, 0x6a, 0x7d, 0x32, 0x76, 0x6b, 0x62, 0x1f, 0x51, 0x23, 0xd4, 0x5e, 0xfa, 0xda, 0x49, 0xf2, 0xef, 0xb4, 0xdb, 0xd7, 0x2b, 0xba, 0x4, 0xf0, 0x45, 0xf2, 0x1, 0xae, 0x73, 0xb2, 0xe1, 0x46, 0x10, 0x2c, 0x1e, 0x6f, 0x12, 0x30, 0xd, 0xb0, 0xe3, 0xc9, 0xd3, 0x7d, 0xbf, 0xc9, 0xbc, 0x86, 0xda, 0xc2, 0x7e, 0x26, 0xf3, 0x45, 0x1f, 0xd2, 0xeb, 0x9b, 0xf0, 0xd1, 0x22, 0xf2, 0xbc, 0x18, 0xb5, 0xb8, 0xcf, 0x1f, 0x8, 0x58, 0xfc, 0xa7, 0x9e, 0xc4, 0x7f, 0x4b, 0x95, 0x12, 0xc8, 0xf7, 0x71, 0xf6, 0x86, 0xb0, 0x9c, 0x20, 0x84, 0x9a, 0x34, 0x74, 0xcd, 0x7a, 0xff, 0x92, 0xd6, 0x36, 0x12, 0xf4, 0xc8, 0x7f, - 0xa9, 0xb8, 0x84, 0xc7, 0xeb, 0xc, 0xaf, 0x20, 0xfd, 0x9f, 0x63, 0xcd, 0xaf, 0x9f, 0xd8, 0x2f, 0x90, 0xda, 0x41, 0xa7, 0x7d, 0x7e, 0x24, 0xf4, 0xf6, 0x8f, 0xa1, 0xed, 0x4b, 0x4, 0x20, 0x6e, 0xd9, 0x6d, 0x36, 0x3, 0x55, 0xf1, 0x1a, 0xf8, 0x6, 0x5b, 0x93, 0xc8, 0xfc, 0xfc, 0xf4, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x2, 0x7d, 0x5c, 0xf4, 0x35, 0xb5, 0x7f, 0x98, 0xe3, 0x72, 0xf6, 0x1a, 0x8, 0x14, 0x54, 0xc9, 0x7b, 0xc1, 0x2, 0xd6, 0xad, 0xea, 0x9, 0xc4, 0xc7, 0xba, 0x7f, 0xa6, 0xa3, 0xbd, 0x6f, 0x4b, 0x98, 0x10, 0xa4, 0x3e, 0x15, 0xb8, 0xaf, 0x44, 0x57, 0x8, 0x8, 0xaf, 0xbf, 0x3c, 0xf8, 0x3e, 0x65, 0x3d, 0x5f, 0x22, 0x91, 0xa0, 0xea, 0x2d, 0xe3, 0xfa, 0x8d, 0xda, 0xc3, 0xf, 0x4e, 0xa6, 0x1c, 0x3b, 0x58, 0x2c, 0x7f, 0x5, 0xe8, 0x69, 0x5c, 0x2d, 0x75, 0x13, 0xce, 0x40, 0x78, 0xfa, 0x11, 0xfd, 0xd3, 0x1, 0x3d, 0x65, 0xc3, 0x18, 0x7a, 0x53, 0xfd, 0x5d, 0xb1, 0x5f, 0x5, 0x34, 0x99, 0x59, 0xd3, 0xa5, 0x44, 0x8d, 0x8e, 0x35, 0x5e, 0x43, 0x69, 0x47, 0xe1, 0x7c, 0x4, 0x85, 0x7a, 0xf0, 0x55, 0xf7, 0xec, 0xf7, 0x51, 0xf9, 0x15, 0x7e, 0xb4, 0xa, 0xdf, 0x53, 0x81, 0x2b, 0x54, 0x2b, 0x9c, 0x3c, 0x6d, 0x7f, 0x9c, 0x2f, 0x4f, 0xa5, 0xdc, 0x33, 0xd5, 0xa2, 0x5c, 0xea, 0xa9, 0xc8, 0x3f, 0x1, 0x8a, 0x7c, 0x98, 0x1b, 0x10, 0x7e, 0x21, 0x98, 0x82, 0xc9, 0x4d, 0xbc, 0xf7, 0x6, 0x8d, 0xa4, 0xf6, 0xb2, 0xc0, 0xf9, 0x1c, 0x42, 0xcf, 0x5c, 0x85, 0x95, 0xf4, 0x23, 0x1b, 0x4f, 0x85, 0xcf, 0xef, 0xa7, 0xfe, 0xdb, 0x22, 0xea, - 0x2f, 0x6, 0xd0, 0x6f, 0xc5, 0xc0, 0x4, 0x86, 0xc9, 0xdf, 0x1c, 0xdc, 0x75, 0xfc, 0x61, 0x88, 0xf2, 0x69, 0x1f, 0x9f, 0xe, 0x35, 0x2d, 0x85, 0xc2, 0x1d, 0xe6, 0x50, 0x74, 0x7f, 0xcf, 0x6b, 0xca, 0xe8, 0xc7, 0x93, 0x59, 0xf6, 0x5f, 0x9, 0x4f, 0x8d, 0x3f, 0xb4, 0x82, 0x2c, 0x44, 0x3a, 0xfb, 0x65, 0xac, 0xf9, 0x2b, 0xad, 0xfc, 0xdf, 0xe5, 0x60, 0x9b, 0x9d, 0x9e, 0xb3, 0x97, 0x88, 0xbf, 0x27, 0x39, 0xac, 0x3f, 0x39, 0xde, 0xe1, 0x76, 0x5d, 0x53, 0xeb, 0x5c, 0xa7, 0x97, 0x31, 0xc3, 0x3f, 0xdd, 0xf7, 0xe7, 0x6e, 0x9c, 0x62, 0x39, 0x7, 0xb9, 0xe8, 0x2d, 0xc0, 0x23, 0x5c, 0xda, 0xf8, 0x64, 0xaa, 0x6d, 0x16, 0x31, 0xe4, 0x6e, 0x80, 0xf1, 0x9, 0x98, 0x12, 0x42, 0x5f, 0x88, 0x82, 0x5e, 0xdf, 0x5e, 0x12, 0x62, 0x44, 0x87, 0xc5, 0x17, 0x5c, 0x1d, 0x3d, 0xf, 0xba, 0xc0, 0x66, 0xea, 0x64, 0xa2, 0xbe, 0xb2, 0xfa, 0x49, 0xb6, 0x1f, 0x2, 0xfa, 0x39, 0x24, 0x5, 0x26, 0x3d, 0x8d, 0x0, 0x1b, 0x6f, 0xd, 0x75, 0xd8, 0xb5, 0x75, 0xe7, 0xf0, 0xf1, 0x81, 0x51, 0xb7, 0x5f, 0xb6, 0x9, 0xe8, 0x28, 0x3e, 0xa8, 0xde, 0x1e, 0x29, 0x8b, 0xb2, 0x5, 0x46, 0xa5, 0xd3, 0x3, 0x68, 0x89, 0x76, 0x37, 0x12, 0xc9, 0x20, 0xcc, 0x32, 0x39, 0x15, 0xfd, 0xab, 0x70, 0x1f, 0x42, 0xff, 0xde, 0xf6, 0x6d, 0xe8, 0xbd, 0x47, 0x3, 0x7e, 0x6b, 0xff, 0x3f, 0xdf, 0x64, 0xef, 0x6d, 0x17, 0xc3, 0x8, 0xda, 0x67, 0x35, 0xa2, 0x26, 0xc3, 0x2f, 0x3d, 0x8e, 0x35, 0x1, 0xdd, 0xb6, 0x89, 0x38, 0x4e, 0x60, 0xe3, 0x2f, 0xcf, 0xe1, 0x2f, 0xfc, 0x7e, 0xe7, 0x67, 0x4b, - 0x9c, 0xcf, 0x3a, 0x93, 0x54, 0xff, 0x26, 0x4e, 0xd6, 0xbf, 0x2b, 0xe4, 0x2, 0x58, 0x1, 0xc8, 0xac, 0xf8, 0x46, 0x1e, 0x5f, 0x3e, 0x72, 0xfb, 0xf, 0x87, 0x39, 0x1d, 0x7b, 0x83, 0x73, 0xa, 0x3a, 0x4b, 0x4e, 0xc1, 0xfe, 0xb, 0xbf, 0x7b, 0x3b, 0xf5, 0xfd, 0x97, 0x49, 0xd1, 0x4, 0x55, 0x36, 0xa7, 0xc0, 0xaf, 0x43, 0xfd, 0xdf, 0x9a, 0x17, 0xa6, 0xa1, 0xda, 0x9e, 0x3b, 0x70, 0x10, 0x74, 0xe1, 0xf2, 0x62, 0x1e, 0xae, 0x94, 0x41, 0xf7, 0xe4, 0x3, 0xf, 0xef, 0xe, 0xe7, 0x50, 0x3b, 0x0, 0x27, 0xf6, 0x8b, 0x63, 0xe3, 0x37, 0x38, 0x8c, 0x85, 0x28, 0xa1, 0x7f, 0x6e, 0x14, 0x1e, 0x95, 0x3f, 0x7, 0x5d, 0xff, 0x53, 0xca, 0x0, 0x3a, 0xfd, 0xeb, 0x69, 0x9a, 0x93, 0x9f, 0xd2, 0xf9, 0x89, 0x32, 0xba, 0xbb, 0xf3, 0xc0, 0x25, 0x7b, 0xd8, 0xf8, 0xb, 0xf9, 0x4a, 0xc9, 0x61, 0xee, 0xfc, 0xd1, 0x1a, 0x7f, 0x39, 0xb8, 0x59, 0x6f, 0xa5, 0x58, 0x59, 0xe3, 0x2f, 0x1d, 0x5c, 0x41, 0xf8, 0x91, 0x75, 0xf4, 0xf8, 0xc7, 0xa8, 0x6f, 0x41, 0xdf, 0x5c, 0xfe, 0x61, 0xfb, 0x95, 0x1d, 0x1f, 0xdf, 0x5, 0x2e, 0x39, 0x43, 0xc7, 0x5f, 0x86, 0xf2, 0xdf, 0x5b, 0x36, 0xff, 0xf9, 0x4e, 0x99, 0xff, 0x4c, 0xd4, 0x8b, 0x99, 0xe2, 0x3f, 0xc7, 0xd1, 0x16, 0x98, 0x6d, 0xdc, 0x25, 0x9f, 0x7f, 0x9e, 0x1e, 0xe8, 0xf9, 0xcb, 0x97, 0x9a, 0x36, 0x5e, 0xb, 0x9f, 0x57, 0x35, 0xbe, 0x87, 0xd9, 0x44, 0xa5, 0x72, 0xae, 0xc9, 0xf4, 0xc0, 0xb3, 0xc6, 0xc1, 0xa3, 0xa7, 0x96, 0xcd, 0x51, 0xf7, 0xd9, 0xf1, 0x1f, 0x7e, 0xe2, 0x8e, 0x33, 0x69, 0x23, 0x9f, 0xf6, 0x78, 0x4a, - 0x8b, 0xff, 0xa6, 0x59, 0xfc, 0xe7, 0x60, 0xfc, 0x57, 0xba, 0xfc, 0x32, 0xb4, 0x98, 0xbb, 0x2b, 0xa9, 0x73, 0x54, 0x56, 0x2b, 0xee, 0xc9, 0xfc, 0xfc, 0xc7, 0xbb, 0x9b, 0x31, 0x40, 0xed, 0xcb, 0x4b, 0x5d, 0x8e, 0xf3, 0x1e, 0xd0, 0x94, 0xe2, 0x79, 0x54, 0xfe, 0x7b, 0x1c, 0x8, 0x2d, 0x79, 0x10, 0xae, 0xe, 0xe3, 0x13, 0x7a, 0xe9, 0xf4, 0x96, 0x54, 0x44, 0x91, 0xaf, 0x52, 0xad, 0x45, 0xcf, 0xda, 0x1d, 0x3c, 0x1c, 0x11, 0x13, 0x52, 0x69, 0x22, 0xfe, 0x8b, 0x3f, 0xec, 0x1e, 0xf5, 0xf5, 0x49, 0x1f, 0xda, 0x7e, 0x9e, 0x39, 0x5, 0xf1, 0xe0, 0x4a, 0x4e, 0xed, 0x53, 0xba, 0xa2, 0xf4, 0xf9, 0x96, 0xfe, 0x4c, 0xa0, 0x66, 0x96, 0x61, 0x59, 0xb8, 0xad, 0x2b, 0x32, 0x1f, 0xef, 0xe4, 0x7d, 0x69, 0x9a, 0x21, 0x7, 0x5, 0xdb, 0xe2, 0xeb, 0x20, 0xea, 0xd0, 0xf5, 0xab, 0x6b, 0x8b, 0xfd, 0x83, 0xfa, 0x54, 0x5f, 0xfc, 0xd3, 0x12, 0x77, 0x8d, 0x20, 0xf7, 0x73, 0x3d, 0x11, 0x74, 0x53, 0x5f, 0xb7, 0xac, 0x56, 0x3d, 0xe3, 0xe2, 0xaf, 0xc2, 0xaf, 0x4e, 0xd5, 0x5f, 0x6e, 0xac, 0x37, 0x58, 0x70, 0x71, 0xc5, 0xa7, 0x80, 0x66, 0xf9, 0x2b, 0xc6, 0x91, 0x40, 0x2c, 0x40, 0x68, 0x59, 0xb7, 0xf3, 0x14, 0xd6, 0x4f, 0xb, 0x28, 0xc0, 0x60, 0x39, 0x85, 0xf1, 0x3, 0xaa, 0x3f, 0xdf, 0xe3, 0xd8, 0x58, 0x3d, 0x6f, 0x9b, 0x7d, 0x53, 0xe5, 0x3f, 0xa0, 0x61, 0xea, 0xe0, 0xf, 0x44, 0xfc, 0xe1, 0x95, 0xe3, 0x10, 0x13, 0xf4, 0xe9, 0x36, 0x6d, 0x18, 0xf3, 0x6, 0xc7, 0x13, 0xe, 0xd8, 0xff, 0xc6, 0x1a, 0xaf, 0xe1, 0xf2, 0x8, 0xdd, 0x71, 0x2e, 0xce, 0x99, 0x7c, - 0xd2, 0x62, 0x83, 0xe9, 0xe6, 0xc, 0xc8, 0xc7, 0x2, 0x49, 0xa1, 0xbb, 0x7c, 0x6e, 0x48, 0x4c, 0x3f, 0x7e, 0x55, 0x85, 0xd4, 0x7a, 0x67, 0x9b, 0x65, 0xd3, 0xdb, 0x3b, 0xd1, 0xa5, 0x50, 0x69, 0x17, 0xed, 0x43, 0x19, 0x11, 0x15, 0xa8, 0x2c, 0x7e, 0xdc, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x6b, 0xf3, 0x67, 0xe8, 0x8f, 0x24, 0xdf, 0x68, 0xda, 0xa8, 0xe8, 0x7c, 0x8, 0xe3, 0x5f, 0x8c, 0x80, 0x27, 0x50, 0xf0, 0x6a, 0xb2, 0x8e, 0x4c, 0xe6, 0xed, 0x41, 0xea, 0xa0, 0xc1, 0x57, 0x8d, 0x35, 0x7e, 0x54, 0x7f, 0x1c, 0xe6, 0x4a, 0x51, 0x16, 0xa1, 0x2f, 0x2c, 0x92, 0xbe, 0xe6, 0xc2, 0x10, 0xa0, 0x12, 0xb1, 0xd1, 0xfa, 0x37, 0x1a, 0xfb, 0x27, 0xa2, 0x5b, 0xb2, 0xe6, 0xda, 0x5a, 0xd8, 0x12, 0x6d, 0xae, 0x69, 0x47, 0xc, 0xfa, 0x5b, 0xbf, 0xb7, 0xec, 0xf, 0x9d, 0x3e, 0x4, 0xc7, 0x33, 0xd, 0x40, 0xbd, 0x4b, 0xe3, 0xad, 0x31, 0xe9, 0xfb, 0xf6, 0xaf, 0x28, 0x9e, 0x85, 0x5e, 0x3d, 0xa0, 0xdf, 0xa, 0x3f, 0x76, 0xa, 0x2d, 0x19, 0xb7, 0x7, 0x46, 0x8c, 0xdf, 0x9b, 0x2a, 0x35, 0xfe, 0xc3, 0x2a, 0xc3, 0xaf, 0x4c, 0x7, 0xd8, 0xfe, 0xb2, 0x51, 0x8a, 0x9b, 0xb1, 0xd6, 0xae, 0x91, 0x96, 0xff, 0x7c, 0xcb, 0xe0, 0x58, 0x86, 0x3c, 0x93, 0x6b, 0x41, 0xe1, 0x29, 0xc4, 0x4b, 0xb3, 0xf9, 0xb4, 0x9b, 0xc5, 0x98, 0x8b, 0xaa, 0x5a, 0x6a, 0x6d, 0xb7, 0x70, 0xe1, 0x39, 0x25, 0x41, 0xf3, 0xf6, 0x4b, 0x39, 0x7b, 0xfd, 0x88, 0x20, 0x5c, 0xbb, 0x63, 0xd, 0xed, 0xd7, 0x29, 0x73, 0xee, 0xd9, 0x83, 0xbb, 0x58, 0xfd, 0xcb, - 0x12, 0x3f, 0x6e, 0xfb, 0xc7, 0x1b, 0x7c, 0x89, 0x3b, 0x84, 0x77, 0xb8, 0xd, 0xcc, 0x3e, 0x8d, 0x5, 0xb4, 0x3a, 0xcc, 0xc7, 0x1c, 0xe1, 0x93, 0x5c, 0x95, 0xcf, 0xd, 0xea, 0x50, 0xdb, 0xf5, 0x1b, 0xf1, 0xea, 0xe9, 0xc7, 0xcf, 0x83, 0x5, 0xc5, 0xb5, 0x98, 0x8d, 0x24, 0x51, 0x83, 0x40, 0x5d, 0x7b, 0x3e, 0x1c, 0x1d, 0x78, 0x4a, 0x2f, 0x89, 0x73, 0x77, 0x22, 0x34, 0x1a, 0xfc, 0xc7, 0x13, 0x29, 0x2e, 0x34, 0x5a, 0x33, 0xce, 0x25, 0x68, 0x18, 0x37, 0x8b, 0x24, 0x2, 0x9a, 0x4b, 0xcf, 0xb7, 0x2a, 0x28, 0xe1, 0xeb, 0x6f, 0xd1, 0x2f, 0x0, 0x89, 0xdb, 0x70, 0x4a, 0x45, 0xe1, 0x5f, 0xcc, 0x0, 0x66, 0xbd, 0xed, 0xde, 0xe4, 0x57, 0xa3, 0x89, 0x84, 0x3e, 0x6c, 0x7c, 0x2f, 0xb5, 0xfe, 0xdd, 0x2e, 0xe2, 0xe9, 0xcf, 0x17, 0xb2, 0x22, 0x7a, 0x25, 0x8a, 0x90, 0xd7, 0xc2, 0xe1, 0x47, 0x88, 0x49, 0xa8, 0xb3, 0xfb, 0x33, 0xb5, 0x7, 0xd9, 0xbf, 0x51, 0xea, 0xbf, 0x1c, 0x8e, 0xf7, 0x60, 0xfe, 0x8f, 0x66, 0x39, 0x8, 0xdb, 0x7c, 0xd0, 0x80, 0x30, 0xc3, 0xa3, 0xa3, 0x69, 0xc7, 0x56, 0xe8, 0xe3, 0x63, 0x8c, 0x1, 0x29, 0x4f, 0xa, 0x91, 0x2a, 0xe5, 0xe3, 0x6c, 0x36, 0xf8, 0x6, 0xda, 0xd9, 0x5b, 0x32, 0xb1, 0x5e, 0x28, 0xe3, 0xf6, 0x9f, 0x67, 0x7e, 0xcc, 0x69, 0xf0, 0xd7, 0x52, 0x62, 0xf, 0x4b, 0x61, 0x22, 0x2f, 0x9f, 0xa5, 0xf3, 0xe, 0xc4, 0xdb, 0xdc, 0xb, 0xf, 0xc, 0xb4, 0xe4, 0x66, 0x3e, 0xfe, 0x79, 0xc9, 0x78, 0xfc, 0x4e, 0x25, 0x6a, 0x5f, 0x44, 0xcc, 0xd3, 0xe9, 0x11, 0xef, 0x9c, 0xd9, 0x14, 0x18, 0x7b, 0xbc, 0xaf, 0x7e, 0xf9, - 0xae, 0xee, 0xb5, 0xb2, 0x1b, 0xb5, 0x6e, 0xbb, 0xb6, 0xfe, 0x6a, 0xeb, 0xb4, 0xf0, 0x8f, 0xc6, 0xe9, 0x79, 0xba, 0xf8, 0x27, 0xb6, 0x9e, 0x46, 0xd7, 0x8d, 0x61, 0xe3, 0x7f, 0x94, 0xff, 0x14, 0x9c, 0x28, 0xa3, 0x3e, 0x1f, 0x37, 0x5d, 0x91, 0x12, 0x47, 0x38, 0x1e, 0xc5, 0xfe, 0x7, 0x99, 0x89, 0x42, 0xa6, 0xd5, 0x7f, 0x1b, 0xda, 0x9c, 0x77, 0x2, 0x54, 0xe8, 0x74, 0x88, 0x64, 0x2e, 0x8b, 0x1f, 0x72, 0x9d, 0xdc, 0x9e, 0xaa, 0xe, 0x5, 0x62, 0x15, 0x55, 0x77, 0xbd, 0x28, 0x67, 0x7, 0x46, 0x7a, 0xfd, 0x49, 0xbc, 0x65, 0x8f, 0xdc, 0xbd, 0xa, 0xf6, 0xcb, 0x4, 0x3e, 0x65, 0x9f, 0xe8, 0x2b, 0xa9, 0xf1, 0x39, 0x3c, 0xfe, 0x39, 0xe3, 0xf6, 0xfb, 0xd1, 0x35, 0x2c, 0x30, 0xe, 0x4c, 0x3d, 0x99, 0x1b, 0xa3, 0x6a, 0xe8, 0x67, 0xbf, 0x4c, 0x9c, 0x97, 0x12, 0xb7, 0xd4, 0xe1, 0x49, 0xab, 0x9f, 0x58, 0x3c, 0x8b, 0x61, 0x49, 0x8c, 0x77, 0xac, 0x79, 0x3, 0x2b, 0x5f, 0x9, 0x95, 0x45, 0xd4, 0x6b, 0xe2, 0xc, 0xfa, 0x21, 0xcc, 0xe1, 0xc1, 0xf, 0x33, 0x9f, 0xfb, 0xa1, 0xed, 0xcd, 0xfc, 0x4, 0xb4, 0x9c, 0xe5, 0x83, 0x2d, 0x1e, 0xe6, 0x4f, 0x5c, 0xbd, 0x63, 0x1b, 0xb0, 0x23, 0x11, 0x40, 0x87, 0x65, 0xe2, 0x48, 0xac, 0x7d, 0x9, 0x81, 0xb8, 0x69, 0x13, 0x9f, 0xa6, 0x7d, 0x78, 0x98, 0x7f, 0x96, 0x5a, 0x5f, 0x48, 0x6, 0x1f, 0xf8, 0x87, 0x6e, 0xf, 0x87, 0x9b, 0x4e, 0x9a, 0x7f, 0xe2, 0x9a, 0xa2, 0xf3, 0xd9, 0x78, 0xdc, 0x22, 0x36, 0x98, 0xd3, 0xad, 0xab, 0x91, 0xa1, 0xf5, 0x8f, 0x76, 0x30, 0x76, 0x57, 0xae, 0xbb, 0xb3, 0xa2, 0xcc, 0x3a, - 0xf2, 0x72, 0x74, 0x55, 0x62, 0xe0, 0xf1, 0x1a, 0x8e, 0x5a, 0x2d, 0x3c, 0xcf, 0x9, 0xf3, 0xaf, 0x1, 0x5b, 0xef, 0x9d, 0xb0, 0xfe, 0x69, 0x40, 0x6c, 0x72, 0x1f, 0xdb, 0xd7, 0x3a, 0xe8, 0x87, 0x5f, 0xcc, 0x8, 0x9e, 0xa5, 0xd6, 0x78, 0x3d, 0xef, 0x81, 0x68, 0x10, 0xf6, 0x66, 0xf3, 0xe3, 0x2a, 0x76, 0xb, 0x5f, 0x62, 0x9d, 0x78, 0xde, 0xa0, 0x3d, 0xa9, 0xd9, 0xad, 0x10, 0xf9, 0xe3, 0xf3, 0x71, 0x6c, 0xa7, 0xed, 0xe4, 0x88, 0xe5, 0x55, 0xdc, 0xc1, 0xc6, 0xb6, 0x6b, 0x19, 0x55, 0x71, 0x44, 0x14, 0x27, 0xe7, 0xb1, 0xe1, 0x6b, 0x32, 0xd9, 0xe2, 0x18, 0xe1, 0xf1, 0xf, 0xdd, 0xff, 0xdf, 0xc9, 0x9d, 0x8c, 0x22, 0xf1, 0x91, 0xca, 0xcf, 0xe8, 0xa9, 0xfd, 0x78, 0xf, 0x9d, 0x43, 0xa1, 0xdf, 0xc7, 0x85, 0xa2, 0x9a, 0xc1, 0x22, 0x3e, 0x47, 0x43, 0xff, 0x5a, 0x1f, 0xf3, 0x89, 0x94, 0x10, 0xcc, 0xf4, 0xf9, 0x62, 0x52, 0xeb, 0xd3, 0xf7, 0x40, 0xd5, 0xd8, 0xa2, 0x91, 0xb1, 0xd6, 0x17, 0x67, 0x1a, 0x7d, 0xa9, 0xc2, 0xf8, 0xda, 0xe4, 0xa0, 0x7f, 0xbb, 0x95, 0xe1, 0x74, 0xa1, 0xcd, 0x6f, 0xc1, 0xca, 0xf3, 0xde, 0xb6, 0x6a, 0xa4, 0xfb, 0xfe, 0x54, 0xa5, 0x9, 0xb4, 0xb7, 0x43, 0x1f, 0x7, 0xfd, 0xe8, 0x29, 0xd4, 0x1f, 0x29, 0x3d, 0xb7, 0xb6, 0x81, 0xf6, 0x6f, 0xca, 0x2, 0x7a, 0x9, 0x5c, 0xd4, 0x4d, 0x72, 0x14, 0x9e, 0x8f, 0x29, 0x58, 0x40, 0x2c, 0x8f, 0xa9, 0xe7, 0xb5, 0x33, 0x2e, 0x3e, 0xf1, 0x4c, 0xa7, 0x7, 0xe3, 0x25, 0x7, 0x8b, 0x63, 0x65, 0x83, 0xf1, 0x19, 0x4f, 0x82, 0x19, 0xf4, 0x89, 0x9e, 0x51, 0x78, 0x9e, 0x6c, 0xbe, 0xdb, - 0x8e, 0x3c, 0xa0, 0xbd, 0x97, 0xdf, 0x8c, 0x93, 0xc6, 0x47, 0x89, 0xb4, 0x13, 0xaa, 0xf7, 0x21, 0x17, 0xf4, 0x81, 0xdd, 0xd6, 0xe4, 0x3d, 0x91, 0x3, 0x3b, 0xc3, 0x77, 0x6c, 0xc0, 0x4, 0xf2, 0xfc, 0xac, 0xdc, 0x72, 0xbf, 0x8f, 0xfe, 0xcd, 0x18, 0x6b, 0xbc, 0x3e, 0x40, 0x1e, 0x2d, 0xfa, 0x35, 0xf7, 0x73, 0x2e, 0xce, 0x9b, 0xbc, 0x49, 0x8f, 0xbc, 0x5d, 0xdb, 0x10, 0xeb, 0x29, 0xd2, 0x98, 0x8c, 0xd2, 0x3f, 0x35, 0xa, 0xf8, 0x85, 0xdf, 0x2f, 0x4a, 0xe4, 0xc5, 0x4, 0x7e, 0x26, 0x9b, 0xfd, 0x28, 0xf2, 0x7, 0xd6, 0xca, 0xb3, 0x2c, 0xfb, 0x99, 0x15, 0xbf, 0x29, 0x14, 0x5e, 0x7b, 0x60, 0x75, 0xd0, 0xe4, 0x52, 0x88, 0x3e, 0xf6, 0xc2, 0xe3, 0x4d, 0xd1, 0xf5, 0xb8, 0x17, 0x9c, 0x52, 0xdb, 0xa6, 0x46, 0xd1, 0xa3, 0x8f, 0x39, 0x5e, 0x43, 0xe9, 0x3b, 0xdb, 0x4b, 0xa9, 0xaa, 0xeb, 0x7f, 0x61, 0xb7, 0x7d, 0x0, 0x73, 0xe5, 0x37, 0xa9, 0xf4, 0x61, 0x1, 0x15, 0xf7, 0xfa, 0xf5, 0x47, 0xb8, 0xd1, 0xe0, 0xbf, 0x6e, 0x6a, 0x29, 0x59, 0x1c, 0x18, 0x17, 0xfe, 0x6c, 0xad, 0xff, 0xad, 0x4e, 0x59, 0x9c, 0x21, 0xf3, 0x2e, 0x77, 0xd, 0x5b, 0x3f, 0x6d, 0xe7, 0x3, 0x44, 0x69, 0x44, 0x6d, 0xfd, 0xab, 0x7c, 0x8e, 0x67, 0x40, 0xbe, 0xbf, 0x74, 0xfd, 0x37, 0xf4, 0x44, 0x3f, 0x82, 0x42, 0xa2, 0x10, 0x2d, 0xb, 0xb7, 0xec, 0xd6, 0x94, 0x51, 0xef, 0xbf, 0xac, 0xbf, 0x2, 0x86, 0xd5, 0x5f, 0x95, 0x88, 0xe8, 0xfc, 0xeb, 0xfe, 0x3b, 0xc9, 0xee, 0xbf, 0xc6, 0xd6, 0x6, 0x57, 0xb9, 0xdf, 0x45, 0xcb, 0x19, 0xd7, 0x7f, 0x87, 0xf2, 0x9f, 0xe3, 0xfa, 0x6, - 0x7d, 0xa2, 0xf5, 0x49, 0xb5, 0xb8, 0x22, 0xe3, 0xfd, 0xf7, 0x8e, 0xe9, 0xb4, 0x3f, 0xe2, 0xbd, 0x25, 0x2e, 0xdf, 0x7c, 0xd5, 0xe7, 0x2a, 0xf0, 0x6e, 0x1f, 0x8f, 0x8e, 0xa0, 0x6d, 0xd2, 0xf4, 0x46, 0xee, 0x29, 0x93, 0x73, 0x4e, 0xc4, 0x3, 0x1d, 0x36, 0xdd, 0x58, 0x5b, 0x7c, 0x35, 0x1b, 0xcf, 0xa0, 0xcd, 0x49, 0x46, 0x4d, 0x43, 0xf8, 0xe2, 0x58, 0xe3, 0xf5, 0x41, 0xf2, 0x2f, 0x89, 0x8d, 0x60, 0x11, 0xf8, 0x2c, 0x7e, 0x9c, 0xf2, 0xe3, 0x22, 0xfb, 0x9c, 0x2e, 0xf7, 0x53, 0xb3, 0x3f, 0xd3, 0xd7, 0x3b, 0x9a, 0x2c, 0xd2, 0x72, 0xcf, 0x45, 0x41, 0x35, 0xcf, 0xca, 0xec, 0x23, 0xe1, 0x6, 0x1e, 0xfa, 0xee, 0x44, 0x11, 0x11, 0x21, 0xfb, 0xb, 0xa, 0x86, 0xad, 0xa7, 0xb9, 0xb9, 0xeb, 0x49, 0x68, 0xf7, 0xfd, 0x2a, 0x60, 0xd3, 0xc6, 0x99, 0xb7, 0xfe, 0x77, 0x48, 0xff, 0xd, 0x5f, 0xd7, 0x10, 0x5b, 0xc6, 0x6c, 0xe9, 0xfe, 0x3, 0x16, 0x3d, 0xea, 0xfd, 0x77, 0x3b, 0x81, 0x1a, 0x8c, 0x5a, 0x67, 0x59, 0xff, 0xb5, 0xe6, 0x77, 0x8f, 0xe9, 0x25, 0x54, 0x3a, 0xf2, 0x66, 0xdc, 0x7c, 0xb6, 0x4a, 0x9d, 0x82, 0x60, 0xa3, 0x16, 0x34, 0x3, 0x71, 0xc1, 0xe0, 0x46, 0x1e, 0x9f, 0xb6, 0x16, 0xf8, 0xcd, 0x9, 0x7f, 0xcd, 0x10, 0x96, 0x0, 0x5f, 0x1c, 0x49, 0xfc, 0xb4, 0xad, 0x7f, 0xe3, 0xc7, 0xf5, 0xaf, 0x77, 0x65, 0x3, 0xb9, 0x93, 0xdd, 0x4e, 0x23, 0x19, 0x15, 0xfc, 0x2c, 0xfd, 0x4b, 0xd5, 0xbb, 0xa5, 0x7f, 0x7d, 0xfe, 0x80, 0x94, 0x37, 0x8b, 0xb6, 0x3a, 0x80, 0x87, 0x35, 0x20, 0xf2, 0x24, 0x87, 0xb9, 0xbb, 0xae, 0xc2, 0x4c, 0x58, 0x1, 0xe3, - 0xba, 0xb, 0xfb, 0xb8, 0xba, 0x7a, 0xd5, 0x70, 0x4, 0x13, 0x3c, 0xfb, 0x8b, 0xc3, 0x78, 0x63, 0xac, 0xf9, 0x6d, 0x28, 0xdd, 0xbc, 0xab, 0x5, 0xb2, 0x3, 0x91, 0x23, 0xd4, 0xbb, 0xe4, 0x7b, 0x54, 0x29, 0x15, 0xef, 0x3e, 0x58, 0x32, 0x3e, 0x9f, 0x5f, 0xb3, 0xc6, 0xad, 0x39, 0xf5, 0xc5, 0xd6, 0x6a, 0x4b, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x9f, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xa9, 0x7f, 0x2a, 0xdb, 0x1a, 0x39, 0x9e, 0xde, 0xbf, 0x1b, 0x6b, 0xda, 0xfb, 0x84, 0x80, 0x44, 0xb0, 0xb6, 0x85, 0x85, 0xfc, 0x45, 0xb4, 0x7b, 0x46, 0x7d, 0x7c, 0xb2, 0x66, 0x1b, 0x8f, 0xb, 0xe6, 0x2b, 0x50, 0x23, 0xe8, 0xd3, 0xa5, 0xc8, 0x8f, 0x6b, 0x4, 0xea, 0xbc, 0x3d, 0x45, 0xa4, 0x3e, 0x4d, 0xdc, 0x4b, 0x24, 0x5, 0x7f, 0x15, 0xf, 0x4c, 0x79, 0x90, 0xd2, 0xb, 0xc1, 0x82, 0x87, 0xc0, 0x7, 0xd9, 0x81, 0x91, 0x5e, 0x7f, 0xc2, 0xbd, 0xdf, 0x63, 0x6c, 0x61, 0xcb, 0x53, 0xe3, 0xf3, 0x23, 0xf6, 0xb7, 0xaa, 0xa2, 0x97, 0x20, 0x1, 0xe3, 0x7c, 0xd6, 0x3b, 0x4c, 0xae, 0x3, 0x7, 0x8f, 0x50, 0x24, 0x9, 0xd5, 0x85, 0xdf, 0xe9, 0x42, 0x26, 0xda, 0x3b, 0x94, 0x66, 0xf3, 0x19, 0x6d, 0x93, 0xf4, 0xcd, 0xdc, 0x57, 0xa7, 0xea, 0xb3, 0x51, 0xc3, 0x85, 0x57, 0x2e, 0x81, 0xb9, 0x68, 0x50, 0xe5, 0xca, 0xfe, 0xd2, 0x7, 0x1a, 0xd1, 0xd2, 0x65, 0x7, 0x24, 0xec, 0x89, 0x88, 0xb3, 0x43, 0x93, 0xeb, 0xc9, 0x41, 0x69, 0x19, 0x36, 0xf7, 0x4, 0x5c, 0x2e, 0x47, 0xcf, 0x19, 0x97, 0xff, 0x25, 0x85, 0xdf, 0x79, 0x83, 0xf8, 0x8d, 0xf6, 0xf5, 0xe6, - 0xd5, 0xab, 0x31, 0x36, 0xdd, 0xfb, 0x9, 0xe0, 0x62, 0xf6, 0x3a, 0x54, 0xfe, 0x8d, 0x35, 0x1e, 0x1f, 0xba, 0xff, 0x5e, 0x51, 0x44, 0x65, 0xf5, 0xbe, 0x73, 0x7, 0x43, 0x40, 0x4b, 0x73, 0xf0, 0xc7, 0xca, 0x6, 0x29, 0x99, 0x22, 0xd3, 0xde, 0x4f, 0xe8, 0x21, 0x5, 0x88, 0xed, 0xb, 0x20, 0x50, 0x7e, 0x4a, 0xf6, 0x22, 0xd5, 0x1f, 0xba, 0x1c, 0xe3, 0xd1, 0x99, 0xd2, 0x1f, 0x4d, 0xbb, 0x98, 0xb9, 0x14, 0x61, 0x32, 0x37, 0x88, 0xbd, 0x44, 0xad, 0x6b, 0x9f, 0x8e, 0x90, 0x66, 0xd7, 0x8e, 0xf3, 0x9, 0xc1, 0xb1, 0x79, 0x3, 0x36, 0x21, 0xc7, 0x28, 0xcf, 0x71, 0x54, 0x7a, 0x1c, 0xab, 0x9f, 0xae, 0xda, 0xb8, 0x9, 0x89, 0x9c, 0x68, 0xc2, 0xd2, 0x78, 0x30, 0xef, 0x67, 0xfa, 0x86, 0x36, 0x56, 0x66, 0xfa, 0xe6, 0x3c, 0x9c, 0xfe, 0xf9, 0xcd, 0xa1, 0xf8, 0x7d, 0x58, 0x3c, 0xfe, 0xf, 0xfa, 0xf7, 0x6f, 0xe2, 0x37, 0x4f, 0x66, 0xab, 0x90, 0x99, 0x3d, 0x4d, 0x24, 0xe8, 0xab, 0x30, 0x14, 0xaf, 0xb1, 0xe6, 0xb7, 0xa1, 0xf4, 0x50, 0xff, 0xa3, 0x49, 0x91, 0x10, 0x23, 0xf4, 0x8e, 0x92, 0x9a, 0x38, 0x1a, 0xf8, 0xa5, 0xf3, 0x7f, 0x59, 0xfe, 0x21, 0x79, 0x70, 0x9, 0x5c, 0xcf, 0x9c, 0x43, 0x6c, 0xbe, 0xce, 0xe4, 0x1b, 0xd1, 0xc8, 0x62, 0xb6, 0x9c, 0x64, 0x58, 0xbe, 0xa7, 0xb1, 0xa6, 0x6b, 0x96, 0x14, 0x51, 0x7b, 0x21, 0x2a, 0x4d, 0x4e, 0xe1, 0xc7, 0xfc, 0xb7, 0x71, 0xd6, 0xa7, 0xd1, 0xf1, 0xdf, 0xa8, 0xfe, 0x78, 0x87, 0x9b, 0x23, 0x24, 0x10, 0xb, 0x60, 0x6e, 0x6c, 0x1f, 0xe7, 0x38, 0xba, 0x6, 0xfe, 0x5f, 0x5e, 0x6, 0xfd, 0x6e, 0x57, 0x8f, - 0xb2, 0xf7, 0x90, 0xc2, 0xf2, 0x97, 0x6c, 0xc2, 0xbb, 0xc7, 0xf3, 0x97, 0x54, 0x45, 0xd7, 0x1b, 0xb2, 0x2e, 0x97, 0x1b, 0x12, 0xe5, 0x3e, 0x18, 0xd7, 0x8c, 0xf4, 0xfa, 0x52, 0xfb, 0x7f, 0xa1, 0x72, 0x70, 0x75, 0x2f, 0x66, 0x8f, 0xf8, 0xfe, 0x3e, 0x60, 0xfc, 0x2f, 0x71, 0x8b, 0x3d, 0x9f, 0x78, 0x5a, 0xc6, 0xff, 0x86, 0x8d, 0x1f, 0x34, 0x6f, 0x82, 0x92, 0xdc, 0x2d, 0x5, 0x78, 0xa3, 0x83, 0x70, 0xf3, 0x76, 0x86, 0x9b, 0x37, 0x40, 0xe3, 0x5d, 0x1b, 0x17, 0x3a, 0xac, 0x1, 0x84, 0x8c, 0x8f, 0x1f, 0x88, 0x14, 0x4f, 0x72, 0x1c, 0xcf, 0xc4, 0x87, 0x5e, 0x5f, 0xcc, 0xf8, 0x2f, 0x17, 0x7, 0xa4, 0xd4, 0x9a, 0x19, 0xbc, 0xf6, 0x0, 0xb5, 0x5b, 0x62, 0x9f, 0xf, 0xb0, 0x31, 0xf1, 0x2, 0x7e, 0x74, 0xec, 0x17, 0x6e, 0xe, 0x53, 0xf9, 0x1, 0xcc, 0x8b, 0xb5, 0x70, 0x43, 0xe5, 0xdf, 0x7, 0xe0, 0x2d, 0xa5, 0x9a, 0x56, 0x4e, 0x1d, 0x93, 0xc2, 0xb1, 0xee, 0xaf, 0x43, 0xe9, 0x95, 0x9d, 0xcb, 0x89, 0x87, 0x38, 0x34, 0x44, 0x5e, 0xb0, 0x8e, 0xc8, 0xb9, 0x6b, 0xe8, 0x2b, 0x6f, 0xb8, 0xf7, 0xd9, 0x35, 0x32, 0x7d, 0x3d, 0xaa, 0xdf, 0xff, 0xcc, 0xf5, 0x12, 0x20, 0x27, 0x8a, 0x9e, 0x88, 0xae, 0x9e, 0x18, 0xaf, 0xa0, 0xdd, 0xb3, 0x42, 0x97, 0x42, 0xd7, 0xe7, 0x51, 0x76, 0x3c, 0xdf, 0x16, 0x21, 0xe8, 0x69, 0xb0, 0xc6, 0xa7, 0x15, 0xc2, 0xf5, 0x69, 0xaa, 0x6f, 0x34, 0xda, 0x33, 0x52, 0x3a, 0x74, 0xc9, 0xb4, 0xa0, 0x29, 0x15, 0xa3, 0x4a, 0xdc, 0xd2, 0xa3, 0x9d, 0x86, 0xf6, 0x95, 0xde, 0xba, 0x90, 0xda, 0xc7, 0xa, 0x11, 0xf7, 0x44, 0x20, 0xac, - 0xdb, 0xb4, 0xc0, 0x7b, 0xc5, 0xb5, 0xcc, 0xb9, 0xb0, 0x4a, 0x2f, 0xc5, 0x33, 0x74, 0xc9, 0x65, 0x60, 0x53, 0x98, 0x9a, 0x8d, 0x1f, 0x77, 0x89, 0xe7, 0x3f, 0xd8, 0x7, 0xc2, 0xfa, 0x3, 0xf4, 0x33, 0x30, 0xff, 0xd5, 0x82, 0x5b, 0xd1, 0x33, 0xc9, 0x3, 0x7f, 0x6a, 0xc, 0x7d, 0x62, 0x6a, 0x1f, 0x1a, 0x8d, 0x9b, 0x41, 0xfd, 0x83, 0x68, 0xc6, 0xf1, 0xac, 0x32, 0xeb, 0x8d, 0x7c, 0x43, 0xc, 0xc5, 0x39, 0xc3, 0x9d, 0x70, 0x9a, 0x38, 0x29, 0x7f, 0x9d, 0x89, 0x0, 0x71, 0xca, 0xf, 0xb8, 0x40, 0x26, 0xd8, 0x8d, 0x59, 0xdc, 0xe5, 0xfa, 0x3e, 0x5b, 0xef, 0xa1, 0x1f, 0x1b, 0x8f, 0x56, 0x1e, 0xad, 0xd0, 0x2b, 0xce, 0x38, 0xfe, 0xb, 0x3f, 0x2a, 0xa1, 0xe3, 0x5c, 0x31, 0x10, 0x55, 0x6d, 0x25, 0x12, 0x3e, 0x18, 0xe, 0x12, 0xf, 0x82, 0xdd, 0x85, 0xfe, 0x51, 0xd2, 0xbf, 0xfc, 0xb1, 0xd7, 0xf2, 0x70, 0x80, 0xb, 0x96, 0x61, 0xa7, 0x10, 0xe5, 0x19, 0xff, 0xe5, 0xa6, 0x5c, 0x5e, 0xc6, 0x7f, 0xde, 0x99, 0x8d, 0x83, 0xf1, 0xbc, 0x54, 0x98, 0x78, 0x34, 0x4b, 0x5e, 0xe2, 0x11, 0xee, 0xdb, 0xd8, 0xeb, 0x8a, 0x49, 0xc6, 0x19, 0x97, 0x3f, 0xa2, 0x49, 0x29, 0x45, 0x1e, 0x75, 0x37, 0x35, 0xce, 0xd6, 0x20, 0x1f, 0xde, 0x1e, 0xbe, 0x86, 0xb4, 0xeb, 0xe, 0x2c, 0x48, 0x3d, 0x80, 0x74, 0xf5, 0x57, 0x98, 0x8b, 0x51, 0xe4, 0x5d, 0xf6, 0x5b, 0x74, 0x4c, 0xc5, 0x1c, 0x21, 0x2a, 0xda, 0xf8, 0xd, 0x8e, 0x3f, 0xeb, 0x6a, 0x4d, 0xae, 0x1b, 0xc9, 0x14, 0x7e, 0xba, 0xba, 0x6e, 0x75, 0x35, 0x67, 0x2c, 0x7a, 0x3f, 0xbe, 0xbf, 0x61, 0x77, 0x85, 0x6e, 0x25, - 0xa4, 0x66, 0xf6, 0x23, 0xdb, 0x97, 0xc1, 0xca, 0x5e, 0xdc, 0x82, 0x85, 0xe1, 0x1c, 0xec, 0xc4, 0x89, 0x72, 0xda, 0xe7, 0x47, 0x26, 0xd5, 0x36, 0xc0, 0x83, 0xb9, 0x8c, 0x78, 0xf, 0xf8, 0x3a, 0x58, 0x7e, 0xec, 0x84, 0x95, 0x1f, 0xfb, 0x5b, 0xd2, 0xff, 0x5, 0xcf, 0xf4, 0xf6, 0xb, 0xb5, 0x87, 0xb9, 0x56, 0x4, 0xf0, 0x1c, 0x92, 0xd4, 0x3f, 0xb, 0x5d, 0xbf, 0x16, 0x89, 0xe0, 0xe0, 0x8, 0xa6, 0xb6, 0x31, 0xbc, 0xbd, 0x4f, 0xe3, 0x16, 0x18, 0xb6, 0x39, 0xea, 0x53, 0xa3, 0x35, 0x82, 0x9c, 0xe4, 0x88, 0x1a, 0xa1, 0x88, 0x51, 0x35, 0x22, 0xf5, 0x8d, 0x35, 0xbf, 0xfd, 0x2f, 0xfd, 0xb7, 0x48, 0x39, 0xa9, 0xff, 0xea, 0x1e, 0xe8, 0x5f, 0x1e, 0xb5, 0xfe, 0x8b, 0xf7, 0x5e, 0x73, 0x9e, 0xe8, 0xbf, 0x75, 0xf5, 0xe3, 0x51, 0x2c, 0x3f, 0x6b, 0x65, 0x9f, 0x29, 0xc1, 0x51, 0x6b, 0xfd, 0xb6, 0xcd, 0x49, 0x56, 0xfc, 0xcb, 0x5b, 0x4d, 0x1b, 0x67, 0xd1, 0xde, 0x3d, 0x23, 0x82, 0xee, 0x48, 0x5b, 0x4f, 0x4, 0x65, 0x23, 0xd6, 0x97, 0x47, 0x99, 0x6a, 0x17, 0x27, 0x47, 0x2c, 0x5a, 0x29, 0x1f, 0xe9, 0xef, 0xfd, 0x63, 0x75, 0x11, 0xed, 0x6, 0xd5, 0x6d, 0xce, 0x8e, 0x7, 0xaf, 0xbc, 0x72, 0xe9, 0xd2, 0x25, 0xd3, 0xd8, 0xfc, 0x25, 0x28, 0x7b, 0x5c, 0x74, 0x1, 0xbe, 0x36, 0xa, 0xf1, 0x93, 0xa5, 0x7f, 0x28, 0x80, 0x6a, 0x2e, 0x27, 0x62, 0x99, 0x42, 0xa8, 0xa1, 0xa9, 0x5a, 0xeb, 0x2f, 0x83, 0xd6, 0x49, 0x8d, 0x54, 0xec, 0x60, 0xf6, 0xcc, 0x3d, 0x48, 0x95, 0x98, 0xe9, 0x6e, 0x2d, 0x7d, 0x73, 0xe, 0xf4, 0x5f, 0xf8, 0x98, 0x42, 0xf1, 0xe8, 0x62, - 0x4f, 0xda, 0x7c, 0x40, 0xa3, 0xce, 0x6f, 0x39, 0x78, 0x8c, 0x7d, 0x1a, 0xec, 0x31, 0xa5, 0x97, 0x9f, 0x4f, 0xef, 0x67, 0x16, 0x11, 0xfb, 0x22, 0x9c, 0xda, 0xd7, 0x81, 0xe6, 0xde, 0xdf, 0x25, 0x7e, 0x1f, 0x30, 0xbc, 0xa9, 0xd3, 0x1a, 0x8b, 0x87, 0xd6, 0x58, 0x4f, 0xf6, 0xe4, 0xad, 0x6c, 0x97, 0x47, 0x3e, 0xbe, 0xc4, 0xe2, 0x87, 0x9e, 0xa2, 0xa6, 0x70, 0x92, 0xd7, 0x4a, 0xe2, 0xb9, 0x4f, 0x61, 0xda, 0xc6, 0x99, 0xc0, 0x79, 0x41, 0x2f, 0xde, 0x44, 0x2c, 0x27, 0x76, 0xd3, 0xa8, 0xeb, 0xd7, 0xaa, 0x5d, 0x57, 0x21, 0x4, 0x8d, 0x76, 0x36, 0x81, 0x32, 0x49, 0x23, 0xbc, 0x57, 0x70, 0xc8, 0xb7, 0x76, 0x5e, 0x24, 0x22, 0xcb, 0x52, 0x91, 0xee, 0xfb, 0x4b, 0x77, 0xfc, 0x1b, 0x13, 0xbf, 0x53, 0x2, 0x29, 0x80, 0xd8, 0x7a, 0xdc, 0x8e, 0xbd, 0x3c, 0x6e, 0x80, 0x5e, 0x4, 0x52, 0x32, 0xea, 0xed, 0x97, 0x52, 0xf1, 0x68, 0xf7, 0xfb, 0x69, 0xff, 0x7c, 0x92, 0x4f, 0xc5, 0xaf, 0xe1, 0xbe, 0x7f, 0xa4, 0x2f, 0xaf, 0x7f, 0x69, 0xf4, 0xc7, 0xff, 0x9a, 0x92, 0x53, 0xe0, 0xb3, 0xd4, 0xbd, 0x23, 0x82, 0xbe, 0xe1, 0xfe, 0x4e, 0x3a, 0x9a, 0xc5, 0x4f, 0x6, 0x59, 0xbe, 0xc4, 0x9f, 0xf, 0x58, 0xf2, 0xad, 0x39, 0xaa, 0x21, 0x41, 0x14, 0x41, 0x64, 0x85, 0x17, 0xfa, 0xea, 0xac, 0x25, 0x70, 0xf6, 0xde, 0x43, 0xec, 0x7c, 0xa6, 0xdb, 0xbf, 0x26, 0xfa, 0x5b, 0xfd, 0xed, 0xa, 0x83, 0xd, 0xa1, 0x7e, 0xea, 0x3e, 0x10, 0x5f, 0xee, 0xba, 0x55, 0xc1, 0xa0, 0xfe, 0x69, 0x7, 0xaa, 0x21, 0xdf, 0xf6, 0xbb, 0x96, 0x6d, 0x5f, 0xca, 0xa3, 0xe2, 0x6f, 0x47, 0x7f, - 0x5b, 0x4e, 0x45, 0x52, 0x6b, 0xcb, 0x2b, 0xfc, 0x9f, 0xb5, 0x7, 0xa6, 0x42, 0x6e, 0x87, 0xe0, 0x8, 0x1a, 0xf1, 0x2d, 0x6e, 0x65, 0xc4, 0xfa, 0xf5, 0x78, 0xbc, 0x4d, 0xad, 0xb6, 0x55, 0xed, 0xee, 0x60, 0xfb, 0x3d, 0x2c, 0x1a, 0xc9, 0xfc, 0xdb, 0xe9, 0xa6, 0x8f, 0xb7, 0x9f, 0xc8, 0x1b, 0x8f, 0x3c, 0x95, 0xfe, 0xf9, 0xc, 0xce, 0xa7, 0x93, 0x92, 0xa3, 0x3, 0x71, 0xa7, 0xf, 0x79, 0x7d, 0x3f, 0x8, 0x6a, 0x83, 0x83, 0x45, 0x9, 0xf3, 0x8c, 0xcb, 0x67, 0x9c, 0xa5, 0xff, 0x36, 0x3d, 0xf0, 0x4d, 0x70, 0x97, 0x50, 0x6, 0xf8, 0xfe, 0x43, 0xc0, 0x52, 0xde, 0x9a, 0x2a, 0x62, 0xeb, 0xb8, 0x2d, 0x15, 0xc8, 0xd6, 0xa3, 0xe9, 0xcc, 0x70, 0xa0, 0xe7, 0x8d, 0x47, 0xed, 0x6f, 0x7c, 0x97, 0xfe, 0x57, 0x71, 0xa, 0x45, 0xca, 0x77, 0xbb, 0x3c, 0x92, 0xdb, 0x39, 0xc1, 0x59, 0xe0, 0x71, 0x4d, 0x70, 0x39, 0x5d, 0x79, 0x79, 0xf2, 0x78, 0x8f, 0x28, 0xe7, 0x39, 0xb, 0x7c, 0x93, 0x7d, 0xf9, 0x6e, 0xab, 0x4c, 0xf4, 0xb0, 0xd7, 0xbc, 0x3c, 0x67, 0xde, 0x39, 0xe3, 0x27, 0xb0, 0xe2, 0x9a, 0x70, 0xe, 0x2d, 0x1e, 0xb7, 0xc7, 0x3e, 0x3f, 0xc9, 0x55, 0x40, 0x4b, 0x1e, 0x2d, 0xa9, 0x3, 0x76, 0x49, 0x77, 0xed, 0x5c, 0x49, 0x9e, 0xe0, 0x99, 0x3c, 0xc1, 0x91, 0x9b, 0x5b, 0xe0, 0xca, 0x91, 0xc5, 0xf1, 0xe7, 0xb8, 0x3d, 0xac, 0x14, 0x78, 0x3c, 0x22, 0x6d, 0x56, 0x7e, 0x7e, 0x11, 0xa5, 0xcf, 0x71, 0xbb, 0xc7, 0x8f, 0xcf, 0x73, 0x8d, 0x73, 0x4f, 0x18, 0x3f, 0xc1, 0x3d, 0x81, 0x9e, 0x3d, 0xc7, 0xe3, 0xa3, 0xaf, 0x79, 0xe3, 0xf3, 0xdc, 0xe7, 0xc8, 0x6e, - 0xb7, 0xcb, 0x5d, 0xe0, 0xa2, 0x2d, 0xcb, 0x2d, 0x90, 0x26, 0xb1, 0x2b, 0x3a, 0xb, 0x9c, 0xee, 0x7c, 0x6f, 0x7e, 0x7e, 0x81, 0x53, 0x72, 0x8e, 0x3b, 0xf9, 0x52, 0xff, 0x1f, 0xc3, 0x4d, 0x47, 0xb3, -} ; + 120, 156, 237, 125, 13, 116, 19, 87, 150, 230, 43, 169, 44, 61, 9, 89, 146, 141, 13, 178, 35, 74, 2, 11, 16, 63, 14, 2, 28, 34, 130, 98, 21, 240, 136, 5, 193, 29, 51, 116, 186, 33, 157, 237, 40, 158, 52, 237, 36, 227, 30, 217, 132, 142, 8, 142, 85, 161, 233, 32, 50, 241, 180, 210, 233, 31, 102, 54, 147, 168, 123, 231, 204, 228, 236, 9, 167, 157, 179, 147, 109, 102, 54, 59, 81, 2, 19, 51, 115, 112, 143, 115, 210, 57, 211, 59, 155, 19, 202, 144, 237, 164, 103, 227, 165, 24, 146, 142, 166, 99, 172, 125, 247, 85, 25, 104, 203, 19, 217, 99, 201, 114, 39, 245, 14, 63, 250, 84, 85, 122, 85, 183, 238, 187, 239, 222, 251, 238, 189, 47, 118, 238, 147, 239, 10, 28, 66, 239, 255, 69, 0, 185, 56, 39, 66, 40, 251, 207, 59, 254, 114, 101, 238, 90, 19, 165, 190, 238, 246, 238, 175, 108, 232, 16, 191, 183, 238, 210, 250, 79, 214, 31, 93, 31, 220, 208, 27, 150, 186, 125, 41, 244, 191, 99, 25, 116, 86, 146, 150, 139, + 233, 220, 56, 66, 82, 85, 166, 70, 50, 190, 241, 212, 55, 69, 201, 248, 90, 213, 192, 15, 114, 78, 241, 199, 225, 1, 233, 104, 247, 174, 135, 14, 175, 235, 16, 119, 53, 29, 11, 195, 111, 60, 182, 225, 192, 134, 122, 218, 219, 218, 219, 92, 13, 71, 110, 185, 240, 224, 170, 63, 83, 123, 187, 173, 251, 239, 214, 94, 235, 105, 30, 122, 41, 252, 127, 247, 159, 145, 208, 192, 63, 228, 56, 233, 229, 23, 140, 63, 91, 75, 127, 201, 32, 253, 175, 174, 125, 27, 254, 140, 126, 251, 166, 246, 45, 220, 227, 190, 13, 175, 209, 111, 254, 153, 126, 195, 191, 98, 252, 217, 190, 13, 94, 138, 126, 153, 51, 116, 255, 141, 244, 178, 20, 16, 127, 73, 191, 143, 176, 239, 47, 210, 239, 199, 232, 247, 93, 146, 145, 254, 207, 73, 223, 160, 223, 238, 237, 230, 164, 47, 209, 255, 127, 190, 127, 104, 127, 123, 247, 79, 105, 31, 237, 221, 94, 73, 222, 127, 184, 123, 225, 134, 254, 13, 127, 27, 78, 207, 219, 123, 233, 168, 229, 160, 120, 105, 205, 83, 79, 242, + 191, 106, 191, 121, 221, 227, 206, 223, 228, 244, 166, 55, 189, 233, 77, 111, 122, 211, 155, 222, 244, 166, 55, 189, 233, 77, 111, 122, 155, 149, 102, 68, 123, 184, 187, 62, 165, 61, 252, 205, 47, 174, 115, 142, 189, 253, 55, 159, 118, 206, 232, 21, 245, 183, 144, 214, 72, 95, 45, 230, 3, 56, 112, 48, 24, 18, 60, 102, 35, 34, 173, 203, 49, 255, 66, 114, 199, 191, 253, 155, 9, 95, 226, 198, 208, 196, 243, 243, 174, 111, 180, 99, 62, 153, 60, 239, 245, 138, 210, 100, 199, 243, 206, 239, 140, 96, 30, 227, 122, 33, 180, 113, 211, 161, 253, 251, 247, 147, 193, 229, 254, 22, 51, 142, 178, 131, 70, 179, 221, 87, 233, 192, 56, 109, 89, 236, 5, 172, 152, 179, 164, 209, 130, 121, 55, 182, 26, 175, 140, 202, 146, 36, 101, 249, 155, 162, 88, 56, 159, 19, 4, 187, 23, 159, 114, 61, 126, 202, 87, 105, 183, 32, 52, 102, 94, 160, 254, 188, 84, 168, 127, 29, 207, 45, 76, 214, 155, 135, 127, 26, 227, 145, 88, 85, 169, 225, 166, 225, 155, 1, + 19, 95, 105, 250, 235, 220, 15, 252, 20, 53, 59, 154, 31, 253, 228, 242, 163, 205, 133, 249, 155, 243, 147, 32, 94, 25, 234, 201, 198, 162, 162, 247, 120, 185, 233, 165, 99, 29, 235, 88, 199, 58, 86, 27, 233, 179, 97, 222, 133, 3, 23, 46, 92, 200, 37, 194, 8, 89, 207, 4, 23, 35, 47, 202, 228, 114, 239, 222, 144, 187, 57, 151, 43, 118, 127, 190, 3, 113, 255, 186, 205, 209, 14, 23, 128, 44, 247, 39, 133, 206, 175, 235, 127, 180, 10, 33, 103, 187, 108, 164, 255, 34, 36, 150, 155, 94, 19, 177, 169, 109, 1, 215, 19, 120, 213, 188, 136, 222, 91, 8, 133, 74, 255, 190, 90, 27, 48, 31, 193, 109, 38, 187, 189, 55, 151, 176, 219, 201, 157, 207, 153, 142, 246, 94, 48, 179, 131, 210, 62, 19, 57, 97, 198, 188, 19, 167, 24, 150, 21, 84, 31, 219, 196, 241, 34, 61, 132, 118, 81, 124, 134, 43, 55, 189, 242, 158, 103, 228, 33, 204, 63, 147, 188, 175, 218, 194, 35, 83, 34, 129, 200, 183, 209, 24, 247, 5, 245, 105, 164, 146, + 244, 183, 25, 243, 94, 60, 196, 64, 34, 17, 42, 120, 62, 220, 207, 105, 13, 208, 59, 42, 55, 189, 242, 238, 111, 112, 21, 216, 27, 79, 244, 88, 120, 3, 223, 155, 64, 214, 254, 53, 92, 79, 58, 99, 158, 71, 249, 209, 118, 246, 108, 209, 251, 243, 189, 180, 27, 27, 182, 200, 199, 96, 229, 19, 101, 165, 187, 11, 142, 223, 248, 206, 225, 176, 102, 92, 212, 34, 20, 41, 55, 189, 76, 182, 6, 11, 125, 143, 235, 134, 206, 217, 145, 60, 72, 233, 87, 73, 237, 55, 31, 246, 194, 49, 37, 30, 47, 200, 15, 115, 29, 51, 126, 229, 17, 226, 138, 252, 123, 90, 203, 147, 31, 195, 199, 27, 57, 36, 191, 2, 221, 73, 254, 118, 152, 79, 126, 8, 212, 172, 55, 31, 158, 198, 239, 239, 211, 6, 251, 84, 206, 31, 249, 2, 204, 87, 109, 241, 120, 48, 228, 22, 4, 7, 105, 228, 253, 100, 29, 14, 100, 100, 89, 78, 167, 164, 175, 147, 19, 141, 152, 63, 153, 100, 198, 143, 237, 217, 230, 26, 50, 242, 159, 0, 159, 63, 235, 91, 86, 109, + 176, 88, 248, 153, 210, 99, 219, 243, 139, 96, 126, 148, 207, 37, 126, 226, 166, 95, 191, 82, 238, 247, 173, 99, 29, 235, 184, 140, 242, 246, 196, 22, 204, 251, 113, 128, 170, 99, 189, 189, 194, 108, 232, 75, 95, 6, 249, 167, 234, 119, 225, 176, 125, 74, 242, 85, 214, 192, 28, 212, 95, 116, 60, 51, 252, 181, 61, 93, 195, 107, 98, 53, 40, 198, 59, 191, 245, 52, 2, 125, 240, 94, 208, 255, 235, 229, 76, 105, 250, 35, 157, 123, 128, 255, 250, 247, 31, 122, 180, 217, 227, 240, 60, 90, 240, 252, 74, 11, 220, 79, 76, 202, 40, 217, 158, 80, 86, 41, 55, 189, 242, 238, 175, 111, 61, 248, 239, 99, 227, 227, 151, 84, 214, 249, 137, 5, 35, 11, 207, 27, 184, 41, 92, 95, 231, 186, 149, 19, 234, 17, 18, 108, 8, 85, 41, 225, 194, 253, 85, 174, 133, 254, 234, 225, 183, 195, 97, 143, 157, 141, 207, 29, 227, 71, 17, 71, 222, 220, 201, 181, 112, 242, 81, 167, 10, 79, 145, 206, 4, 230, 207, 38, 79, 55, 24, 159, 222, 190, 253, 133, + 63, 94, 64, 14, 188, 101, 106, 137, 41, 230, 215, 158, 127, 251, 23, 178, 18, 67, 76, 223, 121, 33, 153, 97, 167, 7, 179, 166, 89, 167, 95, 231, 141, 152, 223, 137, 235, 221, 238, 209, 209, 158, 144, 102, 207, 165, 147, 175, 87, 115, 152, 55, 76, 229, 122, 120, 126, 245, 238, 167, 100, 239, 145, 193, 29, 152, 111, 194, 105, 35, 199, 161, 222, 132, 199, 189, 34, 176, 134, 195, 98, 173, 1, 84, 212, 54, 132, 188, 236, 247, 254, 116, 156, 154, 156, 68, 245, 123, 63, 217, 136, 229, 140, 232, 237, 127, 106, 239, 106, 31, 105, 221, 14, 235, 39, 129, 120, 200, 29, 26, 29, 133, 223, 107, 244, 19, 140, 235, 217, 249, 189, 66, 255, 172, 211, 111, 130, 253, 198, 248, 111, 11, 142, 30, 67, 71, 14, 63, 38, 77, 131, 255, 240, 212, 248, 79, 181, 223, 154, 142, 57, 129, 1, 169, 253, 198, 232, 213, 59, 126, 244, 42, 255, 125, 231, 26, 255, 17, 208, 159, 187, 127, 244, 95, 190, 187, 119, 251, 159, 127, 239, 7, 164, 114, 30, 230, 131, 184, 126, 236, + 228, 201, 95, 200, 178, 162, 242, 223, 203, 229, 227, 63, 29, 235, 88, 199, 58, 214, 241, 103, 3, 179, 249, 104, 217, 56, 226, 138, 238, 175, 38, 157, 43, 49, 47, 82, 251, 41, 20, 106, 22, 0, 55, 58, 49, 111, 195, 82, 104, 145, 199, 225, 112, 152, 233, 252, 123, 59, 243, 7, 202, 178, 156, 201, 100, 36, 170, 207, 172, 0, 253, 166, 13, 201, 10, 213, 182, 138, 208, 255, 200, 2, 208, 231, 30, 73, 167, 159, 251, 206, 29, 17, 236, 191, 179, 99, 151, 5, 33, 167, 33, 10, 202, 18, 226, 219, 248, 3, 6, 206, 240, 196, 227, 8, 137, 20, 74, 195, 65, 50, 210, 237, 39, 117, 56, 230, 243, 38, 207, 100, 98, 138, 84, 238, 247, 163, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 158, 28, 147, 145, 0, 196, 31, 167, 144, 217, 108, 52, 2, 110, 221, 13, 241, 17, 129, 248, 245, 249, 131, 103, 147, 91, 56, 163, 13, 65, 254, 32, 25, 9, 97, 158, + 224, 40, 122, 230, 217, 119, 126, 54, 217, 239, 65, 254, 96, 122, 58, 249, 131, 54, 204, 31, 79, 90, 23, 250, 124, 56, 66, 27, 228, 15, 18, 211, 120, 254, 96, 133, 157, 175, 116, 96, 39, 58, 230, 101, 223, 72, 30, 197, 247, 71, 11, 135, 115, 203, 61, 8, 165, 181, 235, 193, 63, 127, 55, 135, 32, 222, 82, 81, 20, 121, 174, 229, 15, 214, 54, 197, 170, 144, 152, 65, 81, 30, 161, 245, 165, 120, 127, 79, 223, 133, 13, 59, 15, 187, 156, 193, 141, 203, 92, 107, 151, 109, 44, 120, 126, 227, 60, 88, 111, 232, 167, 244, 146, 144, 148, 201, 148, 155, 62, 58, 214, 177, 142, 117, 252, 121, 197, 228, 132, 1, 226, 191, 134, 144, 29, 86, 123, 65, 62, 239, 133, 120, 50, 111, 48, 24, 12, 133, 220, 128, 231, 179, 227, 102, 218, 28, 118, 237, 56, 100, 52, 208, 195, 161, 201, 126, 15, 230, 67, 19, 228, 87, 77, 177, 127, 152, 127, 159, 79, 254, 235, 2, 159, 215, 143, 105, 35, 35, 59, 32, 30, 80, 205, 71, 50, 59, 60, 164, 209, 13, + 247, 35, 50, 156, 29, 29, 99, 249, 94, 207, 39, 219, 93, 22, 142, 135, 198, 250, 19, 212, 223, 146, 104, 43, 55, 61, 117, 172, 227, 114, 98, 50, 114, 23, 196, 223, 15, 109, 162, 227, 211, 227, 113, 32, 210, 103, 132, 250, 4, 146, 28, 139, 199, 179, 138, 92, 252, 254, 58, 239, 246, 147, 8, 238, 15, 250, 105, 91, 113, 227, 74, 114, 224, 240, 7, 3, 107, 221, 21, 8, 5, 253, 171, 86, 173, 240, 147, 198, 70, 208, 215, 37, 56, 55, 163, 100, 227, 164, 113, 9, 196, 151, 88, 67, 110, 183, 59, 52, 58, 247, 226, 159, 117, 172, 99, 29, 235, 248, 243, 138, 73, 231, 106, 208, 183, 100, 80, 6, 221, 130, 96, 39, 173, 141, 16, 223, 62, 148, 85, 16, 82, 148, 120, 188, 232, 253, 245, 237, 5, 125, 110, 201, 158, 136, 24, 137, 120, 125, 11, 239, 239, 223, 93, 133, 16, 174, 175, 58, 12, 1, 249, 246, 122, 45, 158, 254, 22, 118, 242, 201, 56, 213, 15, 87, 131, 127, 71, 74, 70, 88, 59, 83, 110, 122, 233, 88, 199, 58, 214, 177, + 142, 117, 172, 227, 242, 99, 210, 217, 202, 244, 23, 106, 250, 170, 250, 75, 231, 14, 240, 87, 201, 212, 244, 45, 137, 254, 226, 251, 232, 235, 216, 176, 115, 29, 118, 217, 206, 93, 252, 193, 169, 181, 2, 25, 89, 10, 249, 139, 175, 177, 131, 14, 119, 131, 245, 164, 159, 51, 124, 219, 36, 34, 14, 50, 24, 20, 7, 203, 119, 112, 65, 126, 37, 88, 195, 241, 108, 185, 233, 165, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 229, 194, 100, 240, 97, 240, 55, 167, 194, 30, 4, 33, 6, 110, 50, 242, 40, 219, 79, 64, 150, 161, 124, 171, 82, 244, 245, 66, 114, 249, 14, 255, 58, 81, 196, 78, 87, 42, 37, 165, 44, 119, 144, 202, 69, 126, 178, 22, 199, 216, 65, 143, 183, 133, 213, 195, 89, 141, 51, 12, 103, 2, 41, 210, 217, 136, 249, 51, 73, 223, 158, 8, 198, 145, 200, 208, 208, 180, 251, 211, 226, 35, 160, 77, 165, 158, 210, 180, 127, 191, 47, 194, 246, 79, 168, 224, 89, 185, 33, 100, 177, 26, 44, 208, + 213, 243, 40, 227, 117, 150, 228, 125, 173, 103, 249, 248, 102, 132, 114, 72, 1, 251, 219, 4, 239, 79, 45, 151, 99, 119, 56, 242, 206, 127, 235, 231, 31, 12, 236, 114, 195, 71, 217, 253, 118, 249, 249, 45, 239, 254, 42, 235, 33, 62, 177, 13, 248, 143, 225, 145, 13, 224, 63, 136, 82, 99, 189, 68, 253, 25, 96, 125, 62, 211, 51, 250, 255, 46, 126, 188, 255, 80, 130, 12, 38, 192, 127, 16, 5, 250, 244, 223, 19, 125, 88, 227, 63, 137, 157, 44, 83, 254, 131, 245, 124, 130, 163, 241, 120, 48, 24, 204, 42, 114, 185, 233, 165, 99, 29, 235, 248, 179, 131, 73, 167, 17, 226, 135, 234, 131, 46, 205, 127, 218, 184, 15, 228, 97, 32, 24, 44, 209, 250, 239, 229, 175, 99, 195, 142, 243, 24, 251, 35, 145, 8, 246, 251, 181, 245, 223, 128, 182, 254, 123, 23, 147, 127, 183, 224, 126, 118, 50, 172, 255, 118, 117, 99, 225, 221, 156, 69, 48, 37, 233, 249, 24, 151, 155, 94, 58, 46, 50, 63, 116, 126, 9, 243, 33, 220, 22, 100, 109, 22, 250, + 83, 227, 213, 120, 136, 87, 131, 198, 226, 81, 189, 56, 0, 199, 226, 241, 158, 223, 185, 250, 231, 190, 3, 34, 54, 80, 125, 214, 134, 254, 243, 63, 94, 204, 93, 41, 251, 253, 252, 174, 97, 210, 183, 20, 244, 251, 215, 108, 46, 27, 7, 18, 136, 12, 186, 152, 61, 112, 144, 51, 55, 252, 254, 240, 112, 225, 235, 213, 122, 89, 43, 169, 176, 148, 50, 153, 76, 225, 243, 27, 59, 253, 196, 143, 149, 154, 234, 174, 120, 93, 5, 111, 34, 7, 62, 52, 29, 141, 125, 168, 238, 95, 225, 116, 187, 153, 189, 49, 190, 63, 67, 44, 22, 103, 245, 186, 78, 39, 119, 248, 189, 239, 93, 118, 214, 63, 209, 199, 236, 9, 31, 43, 55, 47, 149, 133, 94, 208, 127, 250, 90, 125, 125, 210, 250, 37, 136, 23, 143, 37, 14, 29, 186, 53, 236, 49, 114, 164, 86, 50, 153, 187, 222, 53, 75, 72, 236, 233, 233, 137, 138, 181, 138, 143, 163, 214, 84, 123, 6, 30, 15, 5, 139, 240, 190, 12, 160, 47, 91, 187, 13, 180, 153, 220, 33, 210, 103, 135, 248, 82, + 4, 181, 210, 194, 137, 196, 126, 82, 251, 226, 7, 3, 79, 229, 140, 8, 137, 98, 70, 118, 198, 201, 96, 3, 232, 207, 214, 151, 159, 121, 246, 217, 209, 209, 172, 92, 110, 126, 203, 127, 158, 53, 108, 254, 141, 197, 14, 134, 193, 6, 33, 149, 127, 200, 226, 241, 223, 123, 239, 194, 171, 240, 134, 11, 95, 223, 13, 252, 82, 47, 73, 25, 48, 153, 167, 32, 111, 43, 216, 252, 14, 159, 61, 225, 68, 215, 164, 239, 247, 55, 227, 136, 187, 64, 26, 111, 97, 239, 247, 194, 229, 67, 135, 254, 231, 219, 239, 92, 36, 157, 219, 129, 158, 233, 239, 28, 253, 206, 24, 212, 143, 245, 213, 214, 98, 195, 230, 244, 49, 182, 159, 141, 124, 40, 54, 235, 244, 131, 252, 65, 250, 60, 66, 72, 139, 127, 238, 100, 252, 144, 54, 119, 199, 98, 74, 41, 226, 159, 43, 239, 1, 121, 113, 154, 143, 68, 58, 150, 55, 204, 159, 175, 173, 255, 170, 21, 140, 29, 238, 6, 150, 191, 224, 211, 252, 7, 144, 191, 0, 246, 178, 5, 247, 123, 28, 230, 12, 10, 29, 53, + 147, 19, 127, 0, 247, 231, 165, 71, 149, 108, 214, 85, 126, 254, 107, 93, 12, 254, 150, 20, 138, 82, 114, 197, 98, 101, 191, 159, 185, 142, 235, 92, 157, 28, 146, 195, 156, 80, 47, 220, 182, 57, 171, 197, 51, 30, 79, 146, 20, 138, 68, 120, 159, 105, 65, 177, 251, 219, 150, 58, 200, 245, 164, 198, 32, 188, 161, 13, 38, 168, 23, 255, 186, 107, 113, 245, 78, 31, 236, 63, 227, 244, 154, 236, 34, 185, 92, 141, 77, 91, 211, 199, 172, 254, 142, 14, 250, 10, 211, 37, 231, 151, 19, 22, 45, 158, 1, 217, 237, 130, 123, 218, 250, 210, 182, 84, 128, 234, 251, 99, 11, 23, 245, 72, 72, 78, 211, 223, 219, 191, 11, 31, 190, 253, 54, 140, 171, 171, 145, 47, 218, 81, 242, 252, 128, 13, 17, 168, 55, 57, 150, 179, 36, 235, 144, 1, 85, 33, 50, 18, 129, 122, 211, 43, 155, 154, 156, 213, 213, 6, 84, 114, 251, 130, 197, 167, 212, 96, 250, 228, 72, 86, 98, 241, 224, 204, 127, 111, 158, 159, 172, 192, 43, 157, 24, 7, 123, 31, 105, 55, + 176, 122, 233, 84, 94, 43, 153, 12, 149, 47, 39, 165, 162, 223, 63, 200, 187, 179, 201, 118, 248, 108, 220, 31, 247, 21, 150, 151, 139, 88, 62, 10, 3, 206, 185, 23, 255, 178, 180, 109, 1, 135, 145, 161, 61, 74, 63, 139, 38, 83, 201, 251, 227, 63, 242, 191, 159, 51, 11, 53, 2, 66, 155, 223, 61, 120, 155, 147, 205, 183, 255, 50, 126, 20, 229, 213, 15, 39, 35, 55, 96, 30, 49, 255, 180, 172, 40, 83, 212, 207, 152, 191, 153, 169, 179, 101, 167, 111, 233, 199, 147, 27, 226, 201, 31, 160, 111, 47, 234, 77, 167, 218, 202, 125, 63, 115, 29, 51, 122, 249, 176, 149, 126, 28, 235, 157, 3, 247, 243, 187, 142, 153, 189, 22, 84, 237, 181, 88, 124, 230, 242, 188, 220, 152, 217, 167, 235, 112, 218, 23, 168, 166, 19, 61, 50, 48, 121, 66, 174, 217, 123, 181, 129, 24, 219, 143, 242, 71, 72, 181, 231, 200, 131, 13, 195, 57, 65, 45, 215, 140, 36, 209, 91, 240, 247, 97, 189, 42, 69, 245, 103, 58, 251, 50, 123, 27, 246, 39, 59, 158, + 12, 68, 252, 190, 154, 106, 171, 165, 34, 239, 252, 221, 127, 48, 124, 115, 204, 137, 196, 140, 136, 188, 78, 169, 99, 230, 239, 235, 206, 241, 252, 68, 40, 224, 49, 99, 255, 38, 25, 188, 139, 229, 55, 6, 67, 33, 193, 227, 48, 82, 253, 200, 167, 218, 31, 14, 143, 48, 54, 54, 90, 2, 126, 179, 97, 62, 147, 92, 178, 204, 231, 85, 235, 151, 64, 254, 180, 87, 219, 191, 3, 242, 167, 251, 118, 248, 201, 98, 172, 48, 28, 180, 157, 39, 125, 7, 48, 223, 159, 92, 82, 135, 121, 158, 206, 62, 188, 181, 127, 205, 112, 226, 181, 140, 153, 135, 87, 118, 246, 244, 140, 247, 131, 155, 57, 253, 162, 96, 239, 70, 183, 126, 114, 37, 236, 49, 35, 180, 34, 112, 128, 83, 179, 191, 185, 140, 243, 191, 119, 26, 139, 221, 223, 194, 36, 172, 143, 202, 185, 132, 49, 72, 233, 3, 253, 47, 247, 155, 205, 227, 235, 191, 30, 142, 249, 159, 3, 234, 126, 136, 72, 118, 225, 109, 29, 134, 225, 92, 46, 236, 67, 94, 216, 46, 51, 145, 40, 55, 189, 242, + 232, 215, 122, 47, 232, 147, 50, 125, 152, 112, 216, 161, 217, 247, 148, 31, 213, 108, 219, 18, 244, 7, 251, 219, 164, 146, 247, 45, 169, 194, 60, 171, 223, 3, 242, 225, 164, 38, 29, 194, 225, 144, 233, 73, 158, 237, 47, 41, 211, 107, 50, 244, 90, 210, 183, 11, 230, 231, 243, 8, 101, 210, 169, 51, 247, 21, 212, 23, 103, 159, 126, 55, 168, 245, 136, 168, 58, 27, 14, 83, 252, 209, 105, 83, 75, 236, 67, 243, 234, 213, 61, 144, 62, 93, 252, 254, 42, 59, 65, 31, 22, 67, 148, 247, 140, 70, 163, 170, 79, 191, 124, 157, 255, 0, 198, 239, 90, 102, 31, 32, 20, 192, 167, 201, 8, 130, 247, 41, 135, 220, 161, 108, 86, 201, 206, 57, 255, 52, 227, 135, 76, 242, 9, 182, 223, 17, 101, 3, 254, 208, 87, 57, 52, 230, 30, 232, 106, 67, 38, 228, 197, 134, 226, 247, 199, 131, 191, 167, 158, 141, 198, 120, 40, 143, 30, 164, 243, 32, 140, 7, 137, 129, 168, 34, 147, 3, 255, 96, 26, 136, 141, 154, 37, 73, 122, 246, 217, 148, 115, 206, + 233, 135, 100, 196, 7, 243, 81, 38, 24, 12, 170, 254, 191, 193, 149, 160, 159, 193, 253, 103, 193, 191, 86, 124, 126, 95, 192, 246, 223, 10, 2, 240, 132, 195, 252, 75, 187, 171, 232, 120, 221, 198, 54, 251, 202, 60, 214, 202, 248, 111, 139, 230, 191, 2, 254, 171, 20, 152, 189, 207, 242, 247, 179, 115, 208, 127, 90, 185, 134, 197, 15, 209, 233, 215, 65, 167, 95, 149, 126, 77, 236, 254, 229, 108, 182, 20, 250, 30, 171, 95, 210, 238, 243, 193, 2, 230, 237, 243, 152, 252, 123, 64, 147, 127, 227, 243, 239, 90, 124, 203, 85, 250, 141, 244, 176, 253, 53, 4, 193, 46, 8, 163, 163, 115, 174, 254, 1, 219, 15, 90, 196, 41, 120, 130, 68, 66, 171, 167, 118, 58, 25, 245, 246, 43, 241, 146, 208, 15, 246, 251, 74, 38, 119, 88, 44, 84, 25, 49, 24, 184, 218, 23, 218, 88, 188, 146, 203, 216, 253, 58, 122, 232, 150, 73, 244, 197, 58, 152, 111, 150, 32, 88, 240, 16, 11, 235, 151, 179, 175, 47, 215, 179, 253, 243, 60, 205, 161, 80, 24, 252, + 207, 48, 94, 68, 28, 80, 226, 193, 32, 21, 216, 37, 120, 95, 191, 199, 214, 43, 67, 212, 214, 104, 246, 56, 28, 108, 254, 120, 38, 111, 254, 136, 50, 60, 62, 126, 233, 253, 208, 241, 27, 234, 153, 131, 241, 67, 204, 127, 79, 229, 11, 125, 28, 32, 31, 125, 223, 155, 216, 122, 136, 192, 164, 77, 41, 248, 253, 17, 246, 251, 140, 92, 225, 112, 16, 246, 143, 111, 137, 125, 160, 174, 191, 213, 185, 140, 90, 252, 149, 200, 112, 38, 112, 156, 197, 71, 96, 156, 138, 135, 220, 194, 59, 239, 216, 133, 114, 211, 171, 220, 120, 162, 189, 251, 89, 179, 127, 75, 78, 191, 190, 85, 108, 61, 18, 230, 95, 22, 239, 170, 250, 131, 163, 204, 29, 92, 4, 127, 240, 236, 63, 207, 66, 255, 233, 5, 216, 106, 54, 104, 184, 113, 5, 155, 127, 153, 179, 178, 20, 253, 53, 114, 32, 47, 98, 70, 71, 184, 55, 222, 211, 236, 97, 243, 111, 96, 252, 40, 226, 248, 77, 27, 185, 163, 93, 174, 1, 240, 78, 208, 1, 60, 204, 246, 131, 245, 226, 33, 109, 63, + 88, 105, 218, 253, 93, 23, 191, 11, 94, 144, 114, 211, 123, 166, 120, 85, 100, 239, 112, 88, 64, 82, 211, 79, 214, 32, 228, 255, 222, 151, 11, 207, 215, 91, 217, 122, 180, 2, 202, 168, 60, 58, 90, 238, 251, 207, 231, 63, 59, 188, 223, 126, 202, 13, 197, 249, 61, 120, 223, 106, 49, 87, 110, 178, 120, 109, 114, 98, 9, 172, 127, 236, 88, 87, 87, 105, 68, 156, 217, 194, 234, 149, 4, 176, 198, 129, 177, 158, 188, 243, 43, 111, 85, 215, 123, 37, 86, 46, 54, 83, 110, 122, 77, 196, 190, 239, 223, 235, 95, 183, 37, 141, 41, 107, 203, 198, 44, 71, 233, 121, 23, 179, 71, 100, 5, 118, 128, 43, 193, 251, 58, 33, 0, 61, 50, 136, 167, 250, 48, 213, 216, 201, 72, 228, 106, 189, 48, 65, 240, 228, 199, 143, 119, 54, 12, 159, 171, 80, 221, 139, 83, 241, 47, 206, 58, 255, 141, 52, 128, 255, 114, 75, 181, 203, 98, 3, 3, 152, 244, 125, 197, 79, 172, 88, 241, 152, 233, 221, 58, 205, 226, 2, 230, 47, 69, 232, 136, 180, 245, 207, + 65, 201, 120, 99, 232, 27, 176, 254, 249, 49, 4, 168, 128, 19, 158, 244, 121, 64, 95, 11, 80, 93, 155, 51, 242, 202, 99, 164, 239, 78, 230, 15, 139, 197, 232, 11, 200, 72, 147, 244, 199, 252, 127, 1, 159, 207, 231, 245, 250, 124, 53, 76, 191, 131, 250, 200, 156, 209, 236, 16, 4, 55, 227, 223, 61, 28, 202, 229, 148, 12, 10, 39, 18, 44, 255, 252, 100, 178, 189, 202, 233, 116, 138, 145, 213, 107, 72, 35, 98, 252, 122, 73, 129, 217, 58, 40, 145, 62, 30, 252, 15, 79, 128, 174, 21, 206, 184, 47, 147, 74, 86, 79, 89, 29, 1, 210, 230, 31, 177, 235, 159, 79, 158, 79, 167, 82, 78, 145, 182, 137, 247, 243, 226, 95, 45, 163, 246, 99, 218, 128, 110, 3, 180, 233, 245, 133, 201, 13, 204, 191, 246, 39, 172, 70, 99, 127, 65, 127, 89, 161, 253, 7, 139, 255, 190, 62, 91, 251, 15, 146, 202, 27, 85, 127, 82, 200, 189, 136, 154, 243, 148, 158, 22, 198, 15, 118, 33, 52, 154, 149, 75, 64, 191, 143, 126, 243, 193, 192, 102, 183, + 1, 170, 255, 173, 106, 240, 249, 180, 248, 221, 254, 167, 190, 165, 197, 239, 170, 246, 199, 53, 255, 51, 228, 127, 44, 118, 243, 212, 252, 29, 11, 186, 71, 231, 156, 254, 60, 177, 254, 184, 239, 166, 157, 92, 75, 204, 173, 10, 156, 143, 63, 41, 193, 254, 155, 147, 212, 31, 55, 143, 215, 31, 55, 219, 125, 119, 210, 241, 52, 54, 111, 128, 225, 24, 255, 155, 114, 211, 167, 240, 243, 108, 101, 241, 96, 110, 183, 27, 121, 18, 148, 255, 90, 35, 108, 60, 59, 60, 205, 163, 89, 42, 130, 138, 207, 239, 247, 128, 124, 202, 120, 65, 250, 65, 131, 253, 188, 69, 249, 24, 75, 64, 202, 74, 95, 96, 252, 183, 121, 220, 254, 181, 189, 70, 70, 22, 193, 254, 230, 214, 42, 11, 43, 31, 203, 214, 63, 114, 169, 140, 217, 200, 214, 63, 206, 150, 127, 253, 67, 139, 255, 163, 178, 56, 71, 201, 55, 238, 191, 146, 16, 196, 135, 149, 194, 255, 7, 241, 253, 103, 146, 222, 8, 8, 243, 150, 22, 53, 255, 45, 168, 141, 215, 176, 120, 7, 163, 95, 157, 70, + 63, 197, 198, 147, 151, 94, 180, 30, 237, 117, 171, 23, 103, 2, 169, 114, 211, 107, 82, 249, 71, 245, 137, 144, 219, 157, 200, 243, 159, 142, 149, 160, 63, 77, 254, 121, 33, 120, 188, 97, 249, 114, 50, 242, 135, 96, 191, 137, 236, 160, 123, 18, 127, 52, 232, 135, 199, 147, 63, 102, 64, 118, 205, 185, 252, 5, 210, 186, 22, 232, 23, 165, 234, 64, 40, 204, 230, 223, 157, 160, 47, 176, 217, 48, 99, 8, 149, 96, 254, 237, 134, 120, 200, 91, 150, 137, 145, 182, 55, 47, 95, 74, 177, 245, 75, 124, 109, 253, 146, 197, 147, 138, 105, 117, 60, 203, 135, 206, 147, 19, 191, 143, 249, 39, 147, 247, 57, 204, 102, 227, 40, 202, 160, 193, 15, 191, 12, 250, 212, 192, 2, 216, 76, 128, 42, 8, 101, 167, 223, 139, 59, 177, 224, 22, 120, 161, 26, 172, 121, 55, 34, 7, 100, 182, 126, 84, 1, 194, 198, 96, 44, 120, 125, 93, 255, 26, 14, 75, 156, 65, 164, 159, 157, 98, 245, 235, 133, 249, 239, 125, 200, 167, 84, 249, 111, 57, 240, 31, 203, 95, + 104, 99, 7, 93, 161, 144, 182, 158, 41, 51, 108, 52, 27, 201, 75, 71, 33, 30, 218, 192, 132, 223, 40, 159, 103, 127, 252, 182, 125, 91, 124, 125, 161, 240, 252, 113, 35, 236, 47, 237, 116, 187, 5, 129, 249, 159, 225, 126, 158, 212, 238, 70, 42, 126, 127, 11, 59, 130, 195, 185, 4, 147, 254, 187, 16, 253, 227, 251, 254, 55, 184, 1, 14, 29, 85, 231, 143, 43, 65, 214, 255, 59, 227, 228, 152, 125, 122, 76, 23, 251, 238, 252, 10, 54, 16, 249, 24, 54, 60, 22, 149, 47, 12, 171, 249, 165, 1, 220, 150, 97, 163, 163, 248, 247, 127, 211, 25, 227, 112, 46, 231, 0, 226, 96, 100, 114, 210, 249, 171, 82, 141, 39, 202, 142, 246, 122, 232, 32, 173, 235, 127, 20, 226, 67, 12, 199, 140, 204, 3, 35, 178, 251, 233, 79, 198, 36, 36, 138, 147, 217, 15, 229, 198, 218, 248, 25, 10, 193, 232, 133, 250, 247, 125, 8, 214, 39, 72, 146, 44, 169, 194, 166, 41, 92, 15, 252, 130, 213, 207, 83, 138, 215, 215, 198, 175, 111, 217, 154, 53, 107, + 86, 45, 246, 154, 62, 88, 106, 65, 210, 227, 170, 255, 224, 237, 127, 164, 247, 19, 190, 106, 15, 35, 135, 167, 151, 52, 114, 160, 207, 196, 226, 138, 28, 21, 69, 175, 179, 220, 244, 202, 31, 191, 141, 44, 127, 58, 30, 7, 115, 114, 22, 250, 3, 253, 37, 165, 233, 47, 180, 21, 210, 95, 202, 77, 159, 194, 250, 31, 102, 246, 218, 166, 112, 216, 227, 1, 253, 5, 236, 115, 130, 189, 255, 227, 149, 231, 168, 65, 60, 133, 235, 7, 131, 152, 151, 240, 91, 212, 84, 102, 123, 48, 20, 230, 247, 5, 160, 143, 252, 107, 202, 217, 182, 107, 243, 246, 237, 243, 216, 122, 135, 150, 255, 134, 100, 41, 79, 191, 35, 39, 16, 232, 139, 75, 144, 188, 118, 109, 213, 222, 237, 15, 46, 61, 254, 224, 240, 57, 182, 90, 34, 152, 106, 188, 94, 145, 116, 54, 248, 91, 182, 178, 120, 66, 4, 1, 221, 179, 78, 63, 117, 253, 173, 62, 28, 14, 55, 11, 215, 205, 191, 223, 62, 82, 170, 249, 247, 58, 253, 111, 197, 138, 85, 191, 165, 255, 169, 243, 239, 175, + 18, 11, 5, 117, 70, 53, 154, 28, 76, 62, 124, 131, 131, 92, 155, 196, 199, 239, 189, 55, 80, 110, 126, 203, 215, 255, 62, 125, 255, 173, 194, 244, 255, 124, 239, 191, 69, 238, 252, 161, 117, 32, 225, 54, 82, 225, 183, 233, 214, 222, 132, 22, 63, 164, 152, 67, 77, 89, 48, 127, 75, 35, 255, 206, 38, 189, 170, 249, 182, 61, 162, 229, 11, 50, 253, 47, 22, 143, 229, 229, 95, 145, 65, 12, 227, 247, 48, 124, 150, 131, 201, 57, 24, 127, 85, 4, 254, 235, 79, 62, 80, 44, 254, 99, 241, 115, 127, 149, 220, 129, 56, 3, 143, 135, 95, 149, 89, 190, 155, 11, 15, 133, 55, 82, 226, 198, 52, 254, 187, 235, 26, 255, 145, 190, 69, 234, 126, 58, 138, 2, 34, 56, 79, 191, 46, 57, 253, 198, 249, 109, 245, 117, 254, 63, 27, 246, 10, 66, 207, 168, 82, 42, 255, 31, 213, 95, 252, 43, 86, 173, 2, 255, 95, 173, 109, 17, 135, 253, 84, 217, 51, 163, 95, 211, 9, 216, 196, 232, 231, 84, 231, 19, 161, 185, 39, 75, 26, 247, 192, 251, + 60, 172, 200, 162, 120, 252, 116, 180, 186, 220, 252, 150, 247, 60, 144, 111, 25, 192, 177, 112, 79, 60, 14, 1, 148, 90, 252, 98, 0, 93, 57, 151, 67, 111, 95, 201, 21, 95, 223, 92, 10, 246, 245, 22, 22, 112, 106, 180, 121, 201, 200, 35, 126, 178, 68, 165, 87, 184, 37, 17, 99, 227, 245, 100, 82, 2, 44, 7, 146, 247, 145, 145, 131, 204, 95, 31, 18, 224, 141, 206, 193, 248, 171, 59, 127, 248, 47, 119, 36, 220, 38, 35, 109, 185, 131, 64, 207, 37, 126, 194, 97, 25, 246, 102, 130, 5, 180, 98, 247, 183, 235, 152, 1, 116, 13, 251, 149, 173, 127, 154, 241, 74, 200, 84, 247, 139, 101, 180, 23, 161, 70, 112, 35, 209, 137, 196, 68, 93, 124, 231, 112, 66, 173, 70, 132, 106, 17, 74, 154, 164, 107, 246, 36, 202, 204, 254, 248, 44, 44, 191, 62, 125, 255, 173, 130, 215, 127, 206, 247, 223, 34, 39, 88, 60, 104, 32, 30, 135, 124, 95, 120, 190, 149, 224, 79, 77, 81, 98, 10, 118, 187, 189, 4, 243, 85, 2, 243, 17, 250, 126, + 28, 118, 65, 112, 135, 130, 228, 166, 35, 214, 150, 94, 183, 26, 0, 104, 168, 48, 147, 198, 135, 192, 126, 220, 205, 112, 70, 142, 50, 125, 59, 153, 124, 32, 45, 165, 156, 98, 36, 226, 47, 55, 189, 38, 213, 39, 2, 26, 253, 100, 132, 76, 182, 249, 156, 193, 130, 98, 104, 232, 226, 212, 174, 31, 167, 55, 56, 112, 166, 64, 111, 114, 98, 11, 235, 207, 1, 139, 149, 33, 74, 191, 55, 247, 85, 161, 152, 235, 40, 59, 104, 52, 155, 153, 253, 235, 210, 252, 89, 167, 78, 189, 71, 62, 250, 185, 169, 165, 235, 3, 243, 123, 127, 249, 147, 191, 253, 234, 221, 119, 239, 212, 232, 121, 62, 197, 200, 137, 253, 96, 127, 144, 213, 218, 252, 29, 245, 166, 103, 157, 126, 35, 221, 44, 223, 195, 19, 10, 81, 18, 130, 252, 219, 13, 254, 144, 116, 70, 86, 226, 33, 161, 4, 252, 215, 87, 9, 254, 0, 57, 21, 89, 106, 172, 194, 54, 251, 253, 193, 174, 225, 139, 189, 238, 22, 132, 54, 51, 138, 49, 254, 244, 106, 249, 12, 14, 79, 51, 105, 173, + 103, 245, 209, 33, 246, 79, 206, 72, 115, 79, 254, 13, 110, 98, 250, 74, 144, 82, 79, 81, 162, 106, 62, 144, 11, 226, 237, 216, 0, 46, 1, 253, 88, 127, 136, 74, 87, 198, 129, 172, 126, 29, 228, 79, 128, 192, 165, 115, 24, 105, 60, 232, 55, 223, 172, 250, 95, 36, 42, 225, 216, 126, 56, 199, 147, 237, 34, 242, 122, 233, 16, 142, 148, 155, 94, 249, 242, 136, 141, 167, 122, 132, 2, 106, 252, 120, 235, 60, 134, 149, 120, 207, 216, 88, 41, 214, 63, 32, 63, 108, 5, 246, 250, 170, 171, 45, 212, 192, 230, 216, 250, 219, 120, 253, 135, 236, 99, 95, 32, 212, 126, 227, 51, 73, 162, 94, 204, 113, 76, 30, 246, 39, 231, 51, 122, 138, 82, 217, 245, 23, 210, 184, 140, 249, 43, 175, 214, 251, 187, 220, 225, 255, 238, 86, 177, 195, 197, 170, 1, 249, 151, 79, 60, 127, 243, 83, 1, 150, 239, 182, 216, 128, 144, 232, 181, 205, 184, 127, 179, 18, 93, 76, 88, 240, 125, 77, 198, 143, 92, 237, 27, 58, 108, 24, 103, 230, 45, 206, 74, 24, + 217, 42, 68, 115, 233, 229, 213, 10, 45, 95, 8, 210, 117, 130, 65, 107, 255, 3, 92, 79, 63, 157, 190, 122, 210, 84, 107, 58, 87, 240, 122, 19, 139, 103, 25, 107, 89, 4, 30, 116, 144, 119, 176, 191, 159, 27, 75, 116, 52, 53, 135, 226, 89, 133, 233, 7, 252, 212, 245, 145, 233, 243, 251, 122, 240, 255, 177, 245, 52, 206, 96, 200, 243, 239, 145, 145, 133, 80, 143, 227, 117, 179, 113, 158, 177, 218, 224, 227, 73, 103, 179, 166, 31, 128, 252, 203, 95, 47, 98, 247, 155, 252, 143, 223, 47, 57, 65, 229, 237, 25, 252, 37, 6, 56, 42, 63, 58, 13, 224, 191, 19, 17, 228, 23, 78, 210, 223, 165, 191, 103, 254, 138, 92, 5, 247, 218, 77, 128, 205, 193, 61, 195, 225, 216, 187, 9, 40, 231, 128, 162, 255, 244, 67, 118, 63, 182, 210, 209, 111, 105, 199, 252, 197, 200, 139, 228, 92, 206, 195, 163, 209, 209, 209, 138, 7, 230, 211, 251, 193, 139, 157, 78, 43, 139, 121, 25, 239, 95, 109, 146, 196, 244, 103, 77, 223, 43, 134, 254, 204, 236, + 131, 141, 170, 189, 243, 216, 171, 230, 25, 243, 59, 203, 63, 74, 38, 125, 213, 84, 109, 134, 69, 75, 210, 232, 209, 226, 135, 32, 122, 168, 20, 227, 71, 212, 234, 25, 192, 146, 105, 176, 96, 62, 22, 57, 17, 1, 253, 40, 198, 22, 135, 233, 20, 87, 110, 249, 55, 215, 176, 239, 251, 137, 225, 135, 17, 26, 112, 74, 94, 5, 220, 202, 190, 183, 110, 174, 66, 99, 55, 80, 125, 38, 129, 28, 83, 184, 158, 241, 235, 135, 240, 105, 118, 234, 97, 177, 250, 176, 77, 216, 26, 87, 52, 172, 198, 223, 49, 255, 183, 93, 8, 21, 189, 94, 226, 103, 29, 243, 111, 109, 226, 12, 73, 201, 128, 196, 1, 102, 67, 241, 123, 187, 22, 87, 179, 35, 226, 182, 64, 9, 250, 251, 172, 237, 63, 72, 70, 234, 89, 254, 69, 34, 17, 131, 70, 159, 111, 55, 171, 231, 4, 182, 92, 73, 250, 3, 123, 241, 100, 178, 191, 13, 90, 36, 114, 199, 253, 123, 208, 112, 34, 230, 66, 49, 86, 2, 186, 249, 101, 210, 185, 11, 232, 197, 244, 61, 36, 165, 135, 152, + 127, 250, 120, 242, 252, 16, 84, 239, 140, 136, 211, 174, 159, 93, 114, 250, 173, 55, 211, 251, 231, 145, 232, 84, 39, 189, 218, 157, 189, 44, 31, 45, 105, 68, 209, 48, 66, 223, 44, 122, 127, 64, 143, 231, 147, 71, 220, 17, 96, 64, 219, 154, 137, 251, 71, 145, 145, 245, 224, 255, 81, 237, 95, 165, 248, 249, 99, 165, 30, 191, 164, 242, 203, 48, 255, 42, 217, 172, 90, 208, 115, 150, 198, 111, 224, 234, 248, 133, 245, 204, 141, 215, 213, 143, 189, 124, 43, 62, 188, 57, 131, 81, 22, 10, 104, 7, 231, 92, 253, 161, 137, 252, 199, 214, 51, 196, 210, 141, 223, 207, 218, 254, 101, 44, 254, 254, 76, 242, 188, 193, 106, 173, 180, 153, 140, 232, 126, 215, 61, 28, 138, 241, 71, 57, 240, 135, 100, 54, 22, 221, 158, 34, 173, 187, 88, 190, 62, 148, 159, 52, 116, 119, 117, 177, 248, 165, 0, 140, 87, 230, 111, 180, 79, 60, 127, 105, 112, 227, 240, 57, 129, 54, 12, 234, 245, 208, 156, 211, 255, 88, 61, 22, 42, 111, 60, 106, 6, 164, 58, 255, + 178, 145, 44, 110, 243, 150, 164, 191, 223, 30, 191, 164, 175, 133, 249, 3, 61, 80, 76, 194, 19, 14, 179, 227, 39, 147, 190, 116, 42, 19, 241, 166, 229, 119, 89, 61, 199, 38, 28, 205, 66, 120, 73, 96, 230, 235, 187, 117, 123, 182, 115, 2, 22, 88, 188, 97, 13, 66, 109, 75, 159, 95, 196, 236, 161, 115, 247, 12, 219, 81, 46, 247, 202, 244, 229, 249, 55, 213, 248, 131, 77, 170, 188, 43, 185, 254, 2, 246, 196, 217, 100, 191, 234, 174, 88, 214, 80, 219, 180, 179, 10, 137, 212, 116, 228, 165, 49, 132, 254, 155, 137, 197, 35, 52, 105, 241, 24, 224, 95, 189, 28, 29, 14, 119, 81, 249, 162, 94, 48, 7, 245, 151, 253, 76, 127, 238, 237, 157, 60, 255, 103, 218, 191, 7, 246, 192, 141, 215, 234, 21, 229, 191, 175, 27, 193, 31, 53, 84, 67, 155, 179, 186, 250, 17, 86, 127, 186, 70, 163, 151, 199, 227, 102, 245, 103, 50, 172, 158, 44, 236, 159, 113, 67, 81, 238, 7, 143, 35, 52, 237, 124, 2, 118, 189, 225, 223, 191, 158, 140, 4, + 217, 248, 128, 244, 188, 96, 40, 63, 254, 184, 248, 250, 139, 74, 191, 106, 104, 206, 154, 15, 41, 191, 65, 188, 149, 162, 116, 248, 87, 243, 53, 53, 69, 175, 127, 57, 17, 155, 98, 183, 131, 255, 233, 225, 69, 106, 134, 206, 140, 235, 205, 146, 253, 123, 168, 126, 32, 118, 184, 180, 2, 228, 100, 125, 211, 240, 195, 49, 8, 92, 108, 42, 13, 253, 94, 172, 195, 194, 175, 207, 93, 200, 213, 174, 15, 174, 246, 175, 240, 47, 112, 66, 60, 115, 234, 85, 9, 45, 64, 47, 27, 149, 175, 147, 167, 109, 85, 168, 119, 81, 11, 227, 223, 96, 80, 33, 35, 247, 250, 73, 3, 238, 7, 231, 189, 232, 117, 38, 203, 61, 94, 243, 158, 231, 114, 59, 54, 108, 110, 194, 124, 76, 181, 63, 74, 221, 223, 66, 255, 62, 181, 126, 83, 53, 138, 217, 232, 159, 107, 242, 15, 61, 100, 64, 123, 230, 92, 124, 85, 33, 204, 255, 181, 90, 167, 209, 187, 174, 141, 219, 75, 255, 175, 253, 226, 2, 238, 240, 14, 31, 138, 126, 113, 211, 67, 137, 95, 59, 11, 231, + 207, 157, 120, 136, 249, 187, 180, 116, 235, 169, 205, 31, 79, 38, 219, 97, 50, 192, 152, 55, 170, 244, 139, 2, 253, 232, 252, 177, 223, 68, 58, 217, 252, 145, 102, 39, 211, 1, 193, 206, 127, 57, 249, 99, 237, 252, 83, 87, 245, 105, 117, 188, 100, 175, 209, 95, 100, 243, 79, 185, 233, 199, 244, 103, 63, 110, 155, 42, 61, 254, 67, 243, 239, 167, 208, 111, 34, 61, 38, 210, 171, 220, 252, 150, 247, 60, 176, 255, 17, 190, 182, 255, 145, 86, 159, 215, 227, 233, 9, 32, 217, 91, 10, 121, 49, 187, 251, 111, 149, 26, 223, 207, 232, 133, 208, 83, 223, 170, 138, 176, 122, 134, 79, 247, 215, 163, 148, 148, 225, 148, 116, 73, 250, 35, 35, 55, 179, 249, 22, 99, 236, 247, 251, 124, 13, 26, 63, 170, 227, 211, 108, 116, 48, 250, 237, 28, 167, 159, 55, 165, 197, 123, 60, 209, 1, 249, 114, 94, 52, 99, 253, 111, 243, 222, 123, 224, 49, 229, 176, 64, 121, 133, 14, 187, 25, 143, 223, 201, 252, 127, 154, 253, 49, 139, 254, 191, 171, 254, 131, 165, + 241, 71, 57, 106, 13, 92, 60, 199, 9, 78, 206, 127, 166, 228, 254, 3, 211, 147, 27, 88, 189, 60, 6, 228, 139, 211, 127, 158, 245, 205, 156, 153, 147, 255, 169, 42, 188, 145, 225, 175, 1, 63, 74, 184, 214, 41, 178, 242, 218, 165, 226, 191, 152, 202, 127, 222, 134, 137, 242, 47, 95, 95, 116, 95, 173, 183, 35, 211, 86, 238, 241, 58, 169, 252, 187, 126, 255, 55, 152, 63, 192, 127, 90, 170, 249, 3, 226, 13, 157, 184, 63, 30, 227, 28, 158, 230, 96, 243, 85, 254, 51, 104, 254, 43, 136, 103, 105, 189, 58, 126, 157, 100, 208, 197, 242, 27, 149, 152, 2, 225, 196, 211, 238, 111, 5, 126, 112, 248, 156, 135, 91, 9, 245, 43, 81, 46, 113, 174, 248, 252, 192, 242, 103, 82, 90, 248, 90, 233, 223, 23, 200, 187, 103, 146, 10, 139, 191, 127, 255, 212, 41, 210, 247, 85, 63, 111, 214, 242, 23, 60, 158, 224, 224, 234, 131, 28, 191, 7, 33, 54, 161, 72, 25, 180, 189, 191, 99, 56, 241, 230, 171, 102, 117, 117, 19, 61, 89, 110, 126, 203, + 159, 15, 9, 215, 66, 5, 78, 85, 80, 197, 181, 182, 251, 153, 255, 25, 27, 37, 122, 206, 13, 69, 215, 167, 62, 107, 251, 111, 145, 221, 91, 40, 253, 80, 75, 149, 28, 101, 152, 255, 196, 204, 252, 127, 93, 59, 209, 31, 151, 100, 191, 77, 200, 95, 173, 199, 253, 203, 111, 191, 125, 235, 27, 151, 134, 37, 182, 31, 130, 168, 229, 175, 10, 158, 112, 254, 124, 211, 13, 241, 10, 237, 18, 36, 192, 121, 189, 115, 46, 127, 122, 156, 223, 92, 70, 244, 144, 17, 57, 11, 230, 191, 228, 211, 99, 3, 243, 223, 40, 74, 108, 106, 231, 119, 50, 127, 193, 45, 194, 234, 198, 21, 254, 142, 136, 72, 250, 150, 95, 139, 63, 117, 56, 60, 100, 240, 128, 90, 31, 6, 154, 253, 185, 231, 152, 255, 99, 7, 135, 94, 201, 125, 114, 249, 242, 165, 75, 247, 146, 155, 254, 174, 30, 245, 186, 13, 16, 124, 10, 4, 157, 43, 244, 195, 42, 253, 178, 87, 227, 39, 209, 21, 123, 41, 250, 99, 251, 181, 216, 112, 58, 28, 246, 56, 60, 225, 91, 227, 116, 188, + 94, 203, 23, 140, 198, 14, 146, 198, 16, 248, 7, 143, 48, 28, 63, 233, 36, 39, 60, 16, 175, 149, 134, 244, 8, 41, 51, 247, 248, 239, 223, 29, 191, 109, 37, 26, 191, 7, 82, 191, 76, 116, 41, 230, 208, 93, 95, 217, 253, 198, 27, 82, 154, 84, 122, 96, 190, 77, 55, 213, 84, 91, 113, 85, 85, 211, 164, 227, 55, 13, 227, 87, 132, 16, 192, 25, 211, 207, 180, 122, 179, 170, 239, 101, 70, 29, 72, 206, 229, 173, 23, 76, 23, 223, 168, 217, 31, 71, 48, 226, 222, 164, 255, 111, 83, 8, 215, 35, 67, 60, 23, 170, 154, 202, 126, 17, 211, 166, 31, 196, 255, 89, 177, 213, 231, 172, 182, 240, 6, 67, 88, 171, 191, 241, 43, 53, 254, 79, 178, 179, 249, 99, 179, 230, 63, 144, 93, 152, 233, 51, 219, 180, 120, 74, 49, 218, 95, 110, 126, 171, 101, 245, 151, 104, 227, 185, 214, 109, 240, 60, 80, 127, 170, 9, 71, 221, 208, 4, 135, 99, 239, 153, 125, 139, 89, 116, 28, 207, 206, 18, 181, 120, 55, 143, 27, 244, 135, 34, 208, 147, + 233, 75, 103, 147, 237, 53, 53, 53, 247, 189, 255, 254, 125, 53, 181, 31, 44, 230, 152, 246, 98, 110, 27, 67, 209, 77, 37, 247, 159, 176, 249, 74, 173, 87, 102, 116, 56, 4, 55, 105, 92, 48, 190, 222, 204, 2, 166, 10, 203, 187, 249, 28, 142, 178, 124, 159, 110, 112, 75, 143, 251, 227, 114, 60, 138, 186, 144, 104, 43, 245, 253, 87, 172, 220, 199, 226, 213, 178, 8, 61, 110, 64, 1, 171, 249, 136, 228, 201, 86, 34, 180, 250, 239, 41, 207, 167, 126, 90, 244, 122, 211, 249, 243, 87, 163, 182, 222, 135, 2, 144, 17, 54, 237, 241, 239, 12, 1, 63, 221, 204, 248, 233, 86, 144, 231, 243, 65, 159, 149, 44, 22, 174, 162, 210, 209, 92, 242, 250, 122, 108, 63, 128, 179, 201, 37, 28, 199, 209, 225, 203, 87, 108, 232, 128, 248, 191, 177, 143, 77, 78, 132, 172, 81, 140, 198, 227, 55, 181, 112, 42, 122, 127, 55, 141, 239, 223, 147, 129, 130, 112, 51, 238, 127, 176, 150, 229, 211, 209, 143, 241, 222, 102, 71, 201, 227, 93, 139, 78, 191, 202, + 175, 141, 231, 183, 13, 67, 193, 158, 194, 207, 91, 1, 245, 78, 152, 43, 99, 236, 224, 204, 227, 29, 103, 138, 115, 255, 21, 113, 55, 209, 161, 242, 211, 167, 17, 250, 63, 188, 106, 20, 85, 208, 191, 94, 250, 215, 143, 88, 204, 187, 186, 120, 6, 203, 231, 103, 115, 185, 151, 16, 219, 38, 97, 234, 173, 22, 49, 189, 103, 158, 205, 106, 197, 16, 5, 100, 69, 118, 87, 29, 155, 29, 88, 60, 223, 132, 147, 89, 208, 67, 181, 90, 172, 115, 252, 184, 253, 218, 113, 7, 164, 192, 79, 114, 221, 132, 102, 49, 227, 90, 103, 93, 45, 111, 177, 216, 109, 21, 216, 52, 191, 218, 225, 132, 102, 119, 58, 77, 230, 74, 71, 101, 165, 64, 113, 181, 195, 49, 127, 190, 213, 86, 229, 168, 157, 95, 235, 168, 165, 71, 171, 157, 46, 250, 175, 117, 190, 213, 81, 141, 29, 14, 155, 195, 110, 115, 56, 172, 22, 187, 121, 33, 237, 212, 49, 207, 62, 207, 81, 89, 83, 89, 105, 159, 103, 158, 87, 117, 125, 87, 185, 207, 121, 251, 255, 155, 255, 84, 91 +}; diff --git a/examples/EVE_Test_Arduino_PlatformIO/src/tft_data.h b/examples/EVE_Test_Arduino_PlatformIO/src/tft_data.h index fe01be7..9a44458 100644 --- a/examples/EVE_Test_Arduino_PlatformIO/src/tft_data.h +++ b/examples/EVE_Test_Arduino_PlatformIO/src/tft_data.h @@ -12,6 +12,6 @@ extern const uint8_t logo[239] PROGMEM; extern const uint8_t pic[3844] PROGMEM; -extern const uint8_t flash[12753] PROGMEM; +extern const uint8_t flash[8199] PROGMEM; #endif /* TFT_DATA_H */ \ No newline at end of file diff --git a/examples/EVE_Test_ESP32_PlatformIO/CMakeLists.txt b/examples/EVE_Test_ESP32_PlatformIO/CMakeLists.txt deleted file mode 100644 index 595cf49..0000000 --- a/examples/EVE_Test_ESP32_PlatformIO/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -cmake_minimum_required(VERSION 3.16.0) -include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(EVE_Test_ESP32_PlatformIO) diff --git a/examples/EVE_Test_ESP32_PlatformIO/platformio.ini b/examples/EVE_Test_ESP32_PlatformIO/platformio.ini index e511c0d..443d2ab 100644 --- a/examples/EVE_Test_ESP32_PlatformIO/platformio.ini +++ b/examples/EVE_Test_ESP32_PlatformIO/platformio.ini @@ -13,5 +13,8 @@ platform = espressif32 framework = espidf board = esp32doit-devkit-v1 lib_deps = https://github.com/RudolphRiedel/FT800-FT813/archive/refs/heads/5.x.zip -build_flags = -D EVE_RiTFT43 +build_unflags = -Os +build_flags = + -D EVE_RiTFT43 + -O2 diff --git a/examples/EVE_Test_ESP32_PlatformIO/src/tft.c b/examples/EVE_Test_ESP32_PlatformIO/src/tft.c index 75784b0..f5f932e 100644 --- a/examples/EVE_Test_ESP32_PlatformIO/src/tft.c +++ b/examples/EVE_Test_ESP32_PlatformIO/src/tft.c @@ -1,8 +1,8 @@ /* -@file tft.c / tft.cpp +@file tft.c @brief TFT handling functions for EVE_Test project -@version 1.20 -@date 2022-12-10 +@version 1.21 +@date 2023-01-08 @author Rudolph Riedel @section History @@ -19,12 +19,16 @@ - renamed PINK to MAGENTA 1.20 +- several minor changes + +1.21 - several minor changes */ #include "EVE.h" #include "tft_data.h" +#include "tft.h" #define TEST_UTF8 0 @@ -47,16 +51,20 @@ #define MEM_LOGO 0x000f8000 /* start-address of logo, needs 6272 bytes of memory */ #define MEM_PIC1 0x000fa000 /* start of 100x100 pixel test image, ARGB565, needs 20000 bytes of memory */ - #define MEM_DL_STATIC (EVE_RAM_G_SIZE - 4096) /* 0xff000 - start-address of the static part of the display-list, upper 4k of gfx-mem */ -uint32_t num_dl_static; /* amount of bytes in the static part of our display-list */ +uint32_t num_dl_static = 0; /* amount of bytes in the static part of our display-list */ uint8_t tft_active = 0; -uint16_t num_profile_a, num_profile_b; +uint16_t num_profile_a = 0; +uint16_t num_profile_b = 0; #define LAYOUT_Y1 66 +void touch_calibrate(void); +void initStaticBackground(void); + + void touch_calibrate(void) { @@ -210,6 +218,8 @@ void touch_calibrate(void) /* write down the numbers on the screen and either place them in one of the pre-defined blocks above or make a new block */ #if 0 /* calibrate touch and displays values to screen */ + +#if 1 EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); @@ -218,15 +228,16 @@ void touch_calibrate(void) EVE_cmd_dl(DL_DISPLAY); EVE_cmd_dl(CMD_SWAP); EVE_execute_cmd(); +#else + EVE_calibrate_manual(EVE_HSIZE, EVE_VSIZE); +#endif - uint32_t touch_a, touch_b, touch_c, touch_d, touch_e, touch_f; - - touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); - touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); - touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); - touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); - touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); - touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); + uint32_t touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); + uint32_t touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); + uint32_t touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); + uint32_t touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); + uint32_t touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); + uint32_t touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); @@ -260,25 +271,25 @@ void touch_calibrate(void) void initStaticBackground(void) { EVE_cmd_dl(CMD_DLSTART); /* Start the display list */ - EVE_cmd_dl(TAG(0)); /* do not use the following objects for touch-detection */ + EVE_cmd_dl(DL_TAG); /* no tag = 0 - do not use the following objects for touch-detection */ - EVE_cmd_bgcolor(0x00c0c0c0); /* light grey */ + EVE_cmd_bgcolor(0x00c0c0c0UL); /* light grey */ - EVE_cmd_dl(VERTEX_FORMAT(0)); /* reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ + EVE_cmd_dl(DL_VERTEX_FORMAT); /* set to 0 - reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ /* draw a rectangle on top */ EVE_cmd_dl(DL_BEGIN | EVE_RECTS); - EVE_cmd_dl(LINE_WIDTH(1*16)); /* size is in 1/16 pixel */ + EVE_cmd_dl(LINE_WIDTH(1U*16U)); /* size is in 1/16 pixel */ EVE_color_rgb(BLUE_1); - EVE_cmd_dl(VERTEX2F(0,0)); + EVE_cmd_dl(DL_VERTEX2F); /* set to 0 / 0 */ EVE_cmd_dl(VERTEX2F(EVE_HSIZE,LAYOUT_Y1-2)); EVE_cmd_dl(DL_END); /* display the logo */ EVE_color_rgb(WHITE); EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS); - EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56, 56); + EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56U, 56U); EVE_cmd_dl(VERTEX2F(EVE_HSIZE - 58, 5)); EVE_cmd_dl(DL_END); @@ -341,7 +352,7 @@ void TFT_init(void) if (E_OK == EVE_init_flash()) { - EVE_cmd_flashread(MEM_FONT, 84928, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ + EVE_cmd_flashread(MEM_FONT, 61376, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ } #endif /* TEST_UTF8 */ @@ -353,7 +364,6 @@ void TFT_init(void) } } - uint16_t toggle_state = 0; uint16_t display_list_size = 0; @@ -394,11 +404,12 @@ void TFT_touch(void) } } break; + default: + break; } } } - /* dynamic portion of display-handling, meant to be called every 20ms or more */ @@ -406,7 +417,7 @@ void TFT_display(void) { static int32_t rotate = 0; - if(tft_active != 0) + if(tft_active != 0U) { #if defined (EVE_DMA) uint16_t cmd_fifo_size; @@ -418,18 +429,18 @@ void TFT_display(void) EVE_cmd_dl_burst(CMD_DLSTART); /* start the display list */ EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | WHITE); /* set the default clear color to white */ EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); /* clear the screen - this and the previous prevent artifacts between lists, Attributes are the color, stencil and tag buffers */ - EVE_cmd_dl_burst(TAG(0)); + EVE_cmd_dl_burst(DL_TAG); EVE_cmd_append_burst(MEM_DL_STATIC, num_dl_static); /* insert static part of display-list from copy in gfx-mem */ /* display a button */ EVE_color_rgb_burst(WHITE); - EVE_cmd_fgcolor_burst(0x00c0c0c0); /* some grey */ - EVE_cmd_dl_burst(TAG(10)); /* assign tag-value '10' to the button that follows */ + EVE_cmd_fgcolor_burst(0x00c0c0c0UL); /* some grey */ + EVE_cmd_dl_burst(DL_TAG+10U); /* assign tag-value '10' to the button that follows */ EVE_cmd_button_burst(20,20,80,30, 28, toggle_state,"Touch!"); - EVE_cmd_dl_burst(TAG(0)); /* no touch */ + EVE_cmd_dl_burst(DL_TAG); /* no touch */ /* display a picture and rotate it when the button on top is activated */ - EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100, 100); + EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100U, 100U); EVE_cmd_dl_burst(DL_SAVE_CONTEXT); EVE_cmd_dl_burst(CMD_LOADIDENTITY); @@ -438,7 +449,7 @@ void TFT_display(void) EVE_cmd_translate_burst(65536 * -70, 65536 * -50); /* shift back */ EVE_cmd_dl_burst(CMD_SETMATRIX); - if(toggle_state != 0) + if(toggle_state != 0U) { rotate += 256; } diff --git a/examples/EVE_Test_ESP32_PlatformIO/src/tft_data.c b/examples/EVE_Test_ESP32_PlatformIO/src/tft_data.c index b274913..2d47234 100644 --- a/examples/EVE_Test_ESP32_PlatformIO/src/tft_data.c +++ b/examples/EVE_Test_ESP32_PlatformIO/src/tft_data.c @@ -86,69 +86,57 @@ const /*__flash*/ uint8_t pic[3844] PROGMEM = /* Source File: Funtype.zlib unified.blob : 0 : 4096 -Funtype_24_ASTC.glyph : 4096 : 80832 -Funtype_24_ASTC.xfont : 84928 : 320 -z-lib compressed, unpacked size is 85248 +Funtype_24_ASTC.glyph : 4096 : 57280 +Funtype_24_ASTC.xfont : 61376 : 320 +z-lib compressed, unpacked size is 61952 The font is this one: https://fontlibrary.org/de/font/funtype -Converted with EAB using an ASCII map file to reduce the number of glyphs from 364 to 187. -This is only included for the purpose to demonstrate how to handle UTF-8 fonts with BT81x. +Converted with EAB 2.7.1 using an ASCII map file to reduce the number of glyphs to 119. +Glyphs are ASCII plus a select few from "Latin 1 Supplement" : ©«°±²³´µ¹»¼½¾ÄÖ×Üßäëö÷øü +This is only included to demonstrate how to handle UTF-8 fonts with BT81x. */ -const uint8_t flash[12753] PROGMEM = +const uint8_t flash[8199] PROGMEM = { - 0x78, 0x9c, 0xed, 0x7d, 0xd, 0x7c, 0x14, 0xd5, 0xb9, 0xfe, 0x33, 0x33, 0x9b, 0x99, 0x49, 0x76, 0x93, 0x5d, 0x64, 0x81, 0x5, 0x36, 0xd9, 0x55, 0xd7, 0x12, 0x5, 0xcc, 0x0, 0x11, 0x26, 0x12, 0xc8, 0x9, 0xac, 0xb9, 0x1, 0xb1, 0x5d, 0x34, 0x62, 0xd0, 0x2a, 0x83, 0xd5, 0x18, 0xb0, 0xf6, 0x6e, 0x20, 0x41, 0x82, 0xc1, 0x4c, 0xc4, 0x2b, 0xc1, 0x4a, 0x8d, 0x1f, 0xb7, 0x37, 0xfe, 0xb4, 0xed, 0xf6, 0xe3, 0x5f, 0x69, 0x6f, 0xed, 0x8d, 0xd4, 0xb6, 0xb4, 0xf5, 0x63, 0x48, 0xa8, 0x8d, 0x11, 0xed, 0xf6, 0xeb, 0x96, 0xeb, 0xad, 0xb7, 0xeb, 0xc5, 0x5b, 0xb1, 0xd5, 0x76, 0x10, 0x6c, 0x17, 0xd, 0xe4, 0x7f, 0xce, 0xcc, 0x6, 0x68, 0xe2, 0xed, 0xe2, 0xcd, 0x86, 0x60, 0xd9, 0x13, 0xd8, 0xdd, 0x77, 0xe6, 0xec, 0xce, 0x99, 0x67, 0xde, 0xf3, 0x7e, 0x9c, 0xf3, 0x9e, 0xf7, 0x44, 0x7f, 0xfb, 0xfe, 0x83, 0x45, 0x1c, 0x70, 0xe0, 0xeb, 0xa, 0x7c, 0x9c, 0x7, 0x40, 0xf2, 0x95, 0xa5, 0x8f, 0x5f, 0x34, 0x70, 0xa2, 0x10, 0x7d, 0xfb, 0xba, 0x1b, 0xd7, 0x5d, 0x37, 0xb7, 0x9e, 0x3c, 0x3c, 0xfb, 0xe0, 0x9c, 0xf7, 0xe7, 0x6c, 0x9d, 0xa3, 0xce, 0xbd, 0xb3, 0x42, 0x5f, 0x17, 0xea, 0xc0, 0x7f, 0x46, 0xd, 0xec, 0xd5, 0xf5, 0x69, 0x24, 0x36, 0x30, 0x48, 0x41, 0x1f, 0x67, 0x78, 0x75, 0xe1, 0x67, 0xf, 0x6c, 0x20, 0xba, 0xd0, 0x3d, 0xee, 0x27, 0x9f, 0x1f, 0xf0, 0x90, 0xaf, 0x54, 0xfc, 0x44, 0xdf, 0xba, 0x6e, 0x79, 0xe3, 0x5d, 0xb3, 0xeb, 0xc9, 0xf2, 0xd2, 0x6d, 0x15, 0xec, 0x37, 0xda, 0xe6, 0x36, 0xcd, 0x9d, 0x42, 0xaf, 0x36, 0xab, 0xca, 0x77, 0xfe, 0xdd, - 0x97, 0xee, 0xbf, 0x75, 0xfa, 0x17, 0xec, 0xab, 0x55, 0xad, 0xfb, 0xf1, 0xac, 0x13, 0x57, 0x72, 0xe2, 0xbb, 0x15, 0x7f, 0x58, 0xdf, 0xab, 0xe3, 0x27, 0x7d, 0x3, 0x9c, 0xfe, 0xf4, 0xb7, 0x84, 0x97, 0x67, 0xd1, 0x5f, 0xe2, 0xf5, 0xff, 0x68, 0xa8, 0x9b, 0xfb, 0x5, 0x7a, 0xf4, 0x17, 0xa9, 0xa3, 0xac, 0x8d, 0x75, 0x73, 0xbb, 0xe9, 0x91, 0x57, 0xe8, 0x11, 0xc7, 0x73, 0xc2, 0xcb, 0x75, 0x73, 0x83, 0x94, 0xfa, 0xdd, 0x0, 0xbf, 0xee, 0x87, 0xfa, 0xd3, 0xba, 0x42, 0x7e, 0x47, 0x8f, 0x57, 0x5b, 0xc7, 0xff, 0x44, 0x8f, 0x1f, 0xa3, 0xc7, 0x1b, 0x74, 0x81, 0xbe, 0x73, 0xfa, 0x67, 0xe8, 0xd1, 0x95, 0xeb, 0x38, 0x7d, 0x5, 0x7d, 0xff, 0xe5, 0xfa, 0xf8, 0xfa, 0x1b, 0xd7, 0x7d, 0x9f, 0x5e, 0xe3, 0xc6, 0x75, 0x41, 0x3d, 0xb1, 0xfe, 0xae, 0x75, 0x93, 0xe6, 0x76, 0xcd, 0x7d, 0xb6, 0x22, 0xe6, 0x5c, 0x79, 0x70, 0x6b, 0x6e, 0x33, 0x39, 0x58, 0xf2, 0xc0, 0x7d, 0x8e, 0x37, 0x6f, 0x9c, 0x37, 0xfb, 0x1e, 0xcf, 0x7b, 0x3, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xa7, 0xa5, 0x8, 0xa8, 0xe5, 0xae, 0xfd, 0x1b, 0xe5, 0xf6, 0xd, 0x35, 0xb3, 0x3d, 0xc7, 0x7e, 0xf3, 0xc3, 0xbf, 0x55, 0xa7, 0xff, 0xa8, 0xfd, 0x5b, 0xb0, 0xca, 0xc0, 0x40, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, - 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0xf4, 0xd9, 0x46, 0x4f, 0xc8, 0x7b, 0x28, 0x88, 0x22, 0xfa, 0x51, 0xcb, 0xb7, 0x8e, 0x8c, 0xf6, 0xf5, 0xbc, 0xb7, 0xa9, 0xa8, 0xc6, 0x4d, 0x9c, 0xc4, 0x3, 0xa4, 0x6a, 0x57, 0xd9, 0xdc, 0x3, 0xf7, 0x21, 0xf8, 0x3d, 0x33, 0x80, 0xd8, 0x54, 0x88, 0xe8, 0xe5, 0x46, 0xfb, 0xfa, 0xe2, 0xbd, 0xff, 0x15, 0xc4, 0x14, 0x9b, 0x42, 0xd2, 0x39, 0xe2, 0xfb, 0xad, 0xe6, 0xc0, 0xff, 0x9c, 0x3b, 0x8a, 0x0, 0x78, 0xeb, 0xc8, 0xda, 0x3, 0xb9, 0x70, 0x68, 0x10, 0x5c, 0xf3, 0xe, 0xeb, 0x82, 0x4b, 0xc9, 0x38, 0x9e, 0x1b, 0x80, 0x63, 0xff, 0xe3, 0xe, 0xfe, 0x9e, 0xe3, 0xca, 0xe4, 0x9d, 0xe7, 0x27, 0x50, 0x23, 0xe0, 0x73, 0x9c, 0x7d, 0xd2, 0xa1, 0xa3, 0x17, 0x6b, 0x8b, 0x39, 0x38, 0x52, 0xb7, 0x27, 0x14, 0x28, 0xf1, 0xa6, 0x88, 0xa0, 0xe7, 0x13, 0x47, 0x50, 0x4b, 0x76, 0x8b, 0x1e, 0xf0, 0x64, 0xac, 0xf9, 0x6d, 0x28, 0xbd, 0xc2, 0x43, 0x50, 0x54, 0xd4, 0xbd, 0x17, 0x9b, 0x50, 0xcb, 0x8e, 0xd4, 0xbc, 0x30, 0x7, 0x32, 0xc3, 0xd2, 0xd0, 0x57, 0x54, 0x44, 0xb9, 0x8c, 0xe3, 0xd7, 0xbc, 0x51, 0x46, 0xa3, 0x48, 0xaf, 0x40, 0xcb, 0x9c, 0xa4, 0xc0, 0x7f, 0xa6, 0xf3, 0x93, 0xf4, 0x38, 0x21, 0xec, 0x6c, 0xc2, 0x5c, 0xec, 0x94, 0x73, 0x48, 0x77, 0xa, 0x3e, 0xc4, 0xfa, 0x7f, 0xba, 0x2a, 0x7c, 0xfd, 0x2a, 0xdd, 0x4b, 0x10, 0x65, 0xb4, 0x91, 0xec, 0x1f, 0xf5, 0xfe, 0x91, 0xa5, 0x4f, 0x2f, 0x5d, - 0x23, 0xf0, 0xfd, 0x5c, 0x9f, 0xae, 0x46, 0xb8, 0x52, 0xa8, 0x31, 0xca, 0x7f, 0x82, 0xf8, 0x1e, 0x57, 0x4a, 0x24, 0xeb, 0x9f, 0x98, 0x79, 0x79, 0x28, 0xe7, 0x80, 0x1f, 0x78, 0x27, 0xc7, 0x19, 0x95, 0x8f, 0xee, 0x2f, 0xf1, 0x13, 0xe1, 0xd8, 0x81, 0x45, 0x90, 0x8b, 0xf0, 0x56, 0x90, 0x2f, 0xd6, 0x44, 0xd1, 0xd3, 0x3a, 0x6d, 0xc7, 0x56, 0xc4, 0xdc, 0x89, 0x80, 0x55, 0xdd, 0x81, 0xce, 0x66, 0xf3, 0xc2, 0x60, 0x2e, 0x1, 0xbf, 0x6e, 0xbd, 0xd6, 0xf1, 0xe2, 0x11, 0xc3, 0x28, 0xcd, 0x1, 0xb1, 0x7f, 0xb, 0x41, 0x8c, 0x42, 0xfb, 0xd2, 0xf6, 0x9f, 0x1d, 0xff, 0x6, 0x70, 0x7a, 0x20, 0x2f, 0xd5, 0x88, 0x15, 0xf5, 0x17, 0x23, 0xf1, 0x4a, 0xc0, 0x0, 0xca, 0x30, 0x7, 0x7, 0x46, 0x5d, 0x7e, 0x7b, 0x1b, 0x78, 0xe8, 0x39, 0xb6, 0xac, 0xd5, 0xda, 0xd4, 0x9e, 0xb, 0xd6, 0x5e, 0x8c, 0x46, 0x27, 0x3a, 0x80, 0xbb, 0x44, 0x44, 0x47, 0x2e, 0xcf, 0xd3, 0xd1, 0xe1, 0xef, 0xac, 0x87, 0xf6, 0xf0, 0x0, 0xb7, 0x94, 0x52, 0x7e, 0x5a, 0x46, 0xce, 0x7f, 0x38, 0xd6, 0x96, 0x24, 0x52, 0xa7, 0x5e, 0xb6, 0x93, 0x50, 0x41, 0xee, 0x7d, 0xe2, 0x53, 0x20, 0xc5, 0xa0, 0x78, 0xa2, 0x83, 0x24, 0x4b, 0x33, 0x7e, 0x3f, 0xa5, 0xf4, 0x7a, 0x1c, 0xf2, 0x22, 0x22, 0xe5, 0xee, 0x9e, 0xd9, 0x11, 0x8e, 0xf1, 0xa3, 0x64, 0xa, 0x1b, 0x90, 0x6f, 0x58, 0x2c, 0x45, 0xf9, 0x2b, 0xc9, 0x69, 0x55, 0xc9, 0x1e, 0x85, 0x88, 0x7d, 0x9a, 0xd4, 0x58, 0x9a, 0xc3, 0x1f, 0xe3, 0xba, 0xea, 0x64, 0x55, 0xd1, 0xcb, 0xa2, 0x62, 0x8f, 0x36, 0xd6, 0xfd, 0xf5, 0x3, 0xf4, 0x6f, 0x4a, - 0x5e, 0xdf, 0xe5, 0xee, 0x76, 0x27, 0xb8, 0xe6, 0x5d, 0xd, 0x40, 0x71, 0xb1, 0x75, 0x64, 0x5f, 0x34, 0xd2, 0x31, 0xd6, 0xed, 0x3b, 0xd3, 0x69, 0xef, 0x4c, 0xf, 0xf2, 0x70, 0x93, 0x28, 0xf5, 0xe4, 0x75, 0x33, 0xe, 0x28, 0xcd, 0x11, 0x4d, 0x6e, 0xdd, 0xea, 0x69, 0x50, 0xbb, 0xb4, 0xd6, 0x1b, 0xca, 0xd2, 0xf2, 0xdf, 0x6b, 0xf, 0xfc, 0x80, 0xbe, 0x13, 0x17, 0x93, 0x58, 0xa2, 0xc8, 0xa7, 0xad, 0x5f, 0xcd, 0x19, 0xdd, 0xcf, 0xc2, 0x44, 0x42, 0xe8, 0x16, 0x2a, 0x9d, 0x86, 0x50, 0xf3, 0xc2, 0x34, 0x6a, 0xf, 0x5a, 0x16, 0x8c, 0x83, 0xa0, 0xb, 0xd7, 0x21, 0x65, 0x48, 0x51, 0x75, 0xfb, 0xea, 0x40, 0xeb, 0x57, 0x28, 0x3f, 0xbe, 0xc5, 0x21, 0xb2, 0xf5, 0x39, 0xa8, 0x3e, 0x5d, 0xdc, 0x13, 0xa9, 0xe6, 0xc8, 0xf3, 0x38, 0x8c, 0x85, 0x70, 0x5b, 0x7f, 0x25, 0x47, 0xe5, 0xcf, 0x41, 0xd7, 0xff, 0x64, 0xcb, 0x4b, 0x4, 0x4f, 0xbb, 0x7d, 0xe3, 0x68, 0x72, 0x7, 0xb5, 0xfa, 0x37, 0xbf, 0x84, 0x80, 0x7c, 0x97, 0xf2, 0x53, 0x6a, 0xff, 0xd5, 0xf3, 0x8, 0x11, 0x43, 0x70, 0x97, 0x9b, 0x86, 0xe0, 0xc8, 0xbc, 0x7c, 0xe, 0xfd, 0x73, 0x63, 0xe2, 0x1, 0xa9, 0x1d, 0x97, 0x32, 0x32, 0xda, 0x32, 0x3b, 0xad, 0xbc, 0x9a, 0x30, 0xb, 0x61, 0x3d, 0x67, 0x91, 0x45, 0x26, 0x12, 0xc6, 0x58, 0xf3, 0xdb, 0x30, 0xfc, 0x9e, 0x59, 0x48, 0xf5, 0x49, 0xe4, 0x2, 0xf1, 0xa9, 0xcb, 0x2d, 0x26, 0x98, 0x17, 0x59, 0x4, 0x1f, 0x64, 0x52, 0xb1, 0x3a, 0xc1, 0x25, 0x42, 0x4b, 0xce, 0xc9, 0x38, 0xbf, 0xb3, 0xcb, 0xe4, 0x7a, 0x3c, 0x44, 0xfc, 0xef, 0x48, 0xae, 0xaa, - 0xaa, 0x69, 0xe5, 0x65, 0xe, 0x95, 0x97, 0xfc, 0x72, 0xf4, 0x68, 0xcc, 0x1e, 0x28, 0xeb, 0x1b, 0x6b, 0xbc, 0x86, 0xd2, 0x4b, 0x3b, 0x14, 0xfa, 0x1e, 0x16, 0x9e, 0xcb, 0xb1, 0x8f, 0xcc, 0xeb, 0x2d, 0x0, 0x22, 0xfc, 0x7b, 0x3, 0x3, 0xfb, 0x7e, 0x5d, 0x1b, 0x5a, 0xf2, 0x60, 0xa6, 0xaf, 0x77, 0xe9, 0x81, 0xff, 0x47, 0xdf, 0x83, 0x5, 0x36, 0x8d, 0xfa, 0x74, 0xf5, 0xf, 0x3e, 0xb2, 0x1e, 0x91, 0x20, 0x38, 0xd, 0xd0, 0xc5, 0xbd, 0xda, 0x9a, 0xb1, 0xc6, 0x2b, 0x4b, 0x67, 0x96, 0x1e, 0xae, 0x3f, 0xf2, 0xfe, 0xc8, 0x1d, 0xd2, 0x16, 0xec, 0x18, 0x35, 0xfd, 0x41, 0x52, 0xfa, 0xc3, 0x10, 0xc8, 0x29, 0xe8, 0x8f, 0xf0, 0x1d, 0x12, 0x92, 0x31, 0xc7, 0x64, 0x27, 0xc4, 0x97, 0xf7, 0xfd, 0xe6, 0xf9, 0xe7, 0xc7, 0x5a, 0x7f, 0x50, 0xfb, 0x4b, 0x5, 0x6, 0xad, 0x67, 0xe0, 0xcb, 0xce, 0x42, 0x98, 0x12, 0x83, 0xe0, 0xc6, 0x37, 0xae, 0xac, 0xde, 0xc9, 0x85, 0xbf, 0x3b, 0xb, 0x1b, 0x3e, 0x33, 0xe8, 0xc1, 0x7b, 0x4c, 0x5a, 0xff, 0x62, 0xfa, 0x61, 0xcf, 0x60, 0xfd, 0xb1, 0x7e, 0xde, 0x67, 0x1a, 0x6d, 0xc9, 0x67, 0x45, 0x17, 0xbb, 0x1f, 0x89, 0x56, 0x31, 0x18, 0x6b, 0xb6, 0x5d, 0x8d, 0xa5, 0xba, 0x43, 0x81, 0xaa, 0x89, 0x3e, 0xe4, 0x64, 0x7e, 0xfc, 0xa0, 0xa3, 0x51, 0x97, 0x7, 0x47, 0x58, 0xd4, 0x64, 0x6f, 0xba, 0xfa, 0xf2, 0xb6, 0xc9, 0x8, 0xf2, 0x83, 0xcf, 0x3b, 0xdf, 0x1c, 0x6b, 0xbc, 0x86, 0xd2, 0xf3, 0x77, 0x70, 0xa0, 0x1a, 0x24, 0xb0, 0x34, 0xd5, 0xc2, 0x51, 0xd7, 0x57, 0xd1, 0x69, 0x68, 0xaf, 0xa3, 0x1f, 0x79, 0x7e, 0xc7, 0xc0, - 0xc5, 0x3c, 0xff, 0xdf, 0xdb, 0x1c, 0xd4, 0xeb, 0xe8, 0xa7, 0x1d, 0xd8, 0x18, 0x38, 0x58, 0xf1, 0x30, 0x1f, 0xde, 0x76, 0x37, 0x73, 0x43, 0xec, 0xfe, 0x98, 0x30, 0xcd, 0xa6, 0x78, 0x8d, 0x96, 0x47, 0x64, 0x8b, 0x9c, 0x15, 0x51, 0xcf, 0x38, 0xfe, 0xf7, 0xbe, 0xb4, 0x8, 0x6a, 0xf0, 0xca, 0x8, 0x81, 0xc8, 0x47, 0xeb, 0x24, 0x84, 0xf, 0x5d, 0x43, 0x9f, 0x37, 0xbc, 0xad, 0x54, 0xdf, 0x19, 0x7a, 0xe6, 0xf1, 0xac, 0xc9, 0x9d, 0x45, 0xfd, 0x1b, 0x8b, 0x58, 0x57, 0x55, 0xa1, 0xbb, 0xd3, 0xd5, 0x5f, 0xb, 0xe6, 0xef, 0xa5, 0x8a, 0xcb, 0x73, 0xc6, 0xe1, 0xc7, 0xfc, 0xcf, 0x36, 0x13, 0x1c, 0x35, 0x11, 0x4c, 0xf7, 0x33, 0x40, 0xb3, 0xd2, 0x4, 0x17, 0x87, 0x1b, 0x34, 0x9d, 0x44, 0x28, 0xa8, 0x19, 0x6f, 0xaf, 0x77, 0xe6, 0x52, 0xc6, 0x5f, 0x56, 0xe9, 0x8a, 0xdc, 0xbf, 0x27, 0x6d, 0xfd, 0xe9, 0x8d, 0xa8, 0xd5, 0xbd, 0x36, 0x3, 0xf2, 0x9e, 0x31, 0xf7, 0x7f, 0x2f, 0xdb, 0x45, 0xed, 0x65, 0x17, 0x62, 0x66, 0x20, 0x96, 0xcb, 0x8c, 0x30, 0x79, 0xdb, 0x74, 0x78, 0xa8, 0x6, 0x64, 0xa5, 0xdc, 0x5c, 0xe4, 0x1c, 0xeb, 0xf6, 0x7d, 0xd4, 0xe8, 0xb0, 0x80, 0xb5, 0x56, 0xff, 0x48, 0x75, 0x92, 0xf0, 0x3, 0x54, 0x1a, 0xc6, 0xbe, 0x1b, 0x80, 0xa3, 0x8d, 0x30, 0x3a, 0xdd, 0xf7, 0x43, 0xf, 0xd1, 0xfa, 0xfa, 0x5b, 0x81, 0x98, 0xac, 0xb8, 0x4e, 0xa5, 0x3e, 0x9b, 0x2f, 0x48, 0xf2, 0x49, 0x3c, 0x8d, 0x22, 0x6a, 0x7e, 0x38, 0x11, 0x7e, 0x77, 0x72, 0x2c, 0x77, 0x35, 0xb7, 0x52, 0x51, 0x54, 0x55, 0x99, 0x1a, 0x28, 0x28, 0x7d, 0x71, 0x22, 0x5c, 0x26, - 0x6b, 0x8c, 0x41, 0xda, 0x92, 0x3, 0x2f, 0x36, 0xc5, 0x57, 0xe0, 0xde, 0x7a, 0xe0, 0x3b, 0x11, 0xb1, 0x9b, 0x50, 0xbf, 0xe8, 0x66, 0xdf, 0x2, 0x72, 0x31, 0xda, 0xb9, 0xef, 0x5a, 0xed, 0xd5, 0x8d, 0x70, 0xe, 0xd6, 0x61, 0xb0, 0xe8, 0xe9, 0xaf, 0x2f, 0x7e, 0xf3, 0x7b, 0xac, 0xa2, 0x3f, 0x1c, 0x6, 0x9, 0x87, 0xf, 0x8e, 0xd8, 0xde, 0xa9, 0x6b, 0xa7, 0x3c, 0x28, 0x1b, 0x42, 0x92, 0x6b, 0x5, 0x9b, 0x41, 0xa2, 0xfa, 0xf8, 0xf7, 0x9c, 0x42, 0xc4, 0xee, 0x48, 0xb8, 0xa2, 0x71, 0x14, 0xc6, 0x27, 0xbd, 0x2f, 0xcd, 0x87, 0x1e, 0x64, 0x37, 0x5f, 0x3e, 0x5b, 0xe3, 0xd4, 0xee, 0xa1, 0xe7, 0xe7, 0x15, 0xd7, 0x21, 0x41, 0x4d, 0xc0, 0x63, 0x2, 0xde, 0x19, 0x8f, 0xfe, 0xf1, 0xcd, 0xd1, 0xeb, 0xf1, 0xc5, 0x1b, 0x51, 0x53, 0x5c, 0x2c, 0xd7, 0x47, 0x15, 0x43, 0xc9, 0x74, 0x7b, 0x26, 0xdc, 0xcb, 0xf0, 0x4c, 0xd8, 0x33, 0x4a, 0xa4, 0x23, 0xe3, 0xbf, 0x9f, 0x69, 0x3a, 0xb4, 0x79, 0x25, 0x76, 0x41, 0x9c, 0xd2, 0xce, 0xb8, 0xe0, 0x60, 0xd4, 0x37, 0xd6, 0xed, 0xf9, 0xa8, 0xd3, 0xde, 0xfc, 0x5c, 0xda, 0x2b, 0x23, 0xab, 0x7f, 0x20, 0xa, 0x3e, 0x76, 0x64, 0xac, 0xdb, 0xf3, 0x61, 0xe9, 0xd2, 0x1c, 0xc7, 0xb1, 0x36, 0x71, 0x8f, 0x86, 0x47, 0x6b, 0xef, 0x91, 0x4e, 0x43, 0xfb, 0xeb, 0x64, 0x6a, 0xbf, 0x58, 0xda, 0x74, 0x80, 0x1b, 0xe0, 0x67, 0xa6, 0xbd, 0x5e, 0x95, 0xbc, 0x97, 0xbe, 0xeb, 0x1, 0x8b, 0x4c, 0x20, 0x3e, 0xd6, 0x78, 0xd, 0xc7, 0x2f, 0xeb, 0x7f, 0x8c, 0x84, 0x3e, 0xb8, 0xb2, 0x1, 0xb9, 0x3a, 0xbd, 0x9f, 0x6, 0xc3, 0xf2, 0xdb, - 0x97, 0x6c, 0xac, 0x2, 0x29, 0xd2, 0x27, 0x7, 0xe9, 0xa1, 0xfb, 0x90, 0x79, 0x7e, 0x64, 0xfc, 0xce, 0x79, 0x88, 0x58, 0xf6, 0x62, 0x17, 0x11, 0x4b, 0xf5, 0xb4, 0xe3, 0x7f, 0xde, 0x17, 0xf3, 0xa0, 0xf3, 0x1e, 0x78, 0x22, 0x91, 0xda, 0x88, 0xac, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xe5, 0xf9, 0xa, 0xa8, 0xc8, 0x19, 0xa7, 0x6e, 0xd9, 0x9d, 0x38, 0x44, 0x25, 0x50, 0xf8, 0x90, 0x23, 0xf1, 0x3b, 0xf7, 0x56, 0x6e, 0xaa, 0xc4, 0x59, 0x16, 0x42, 0xba, 0xef, 0x37, 0xfc, 0x40, 0x82, 0xc6, 0x97, 0xb2, 0x11, 0x6, 0x51, 0xe8, 0xe, 0xa6, 0xad, 0x4f, 0xed, 0xf5, 0xd4, 0x7c, 0x4b, 0xb1, 0xe9, 0x2c, 0x89, 0xf, 0xab, 0x1f, 0xfe, 0xd1, 0x55, 0xa8, 0xbf, 0x48, 0xb0, 0x27, 0xcc, 0x81, 0xd5, 0x35, 0x82, 0xf8, 0xe7, 0x4a, 0x52, 0xd0, 0xa7, 0x51, 0x8b, 0xe0, 0xdc, 0xb2, 0xeb, 0x10, 0x7e, 0x3f, 0x17, 0xdb, 0xc8, 0xe2, 0x71, 0xca, 0xc0, 0x7d, 0x7b, 0xb5, 0xa8, 0x2, 0xc7, 0x33, 0x57, 0x11, 0x8f, 0x83, 0x23, 0x9c, 0xc8, 0xaa, 0x57, 0x6e, 0x1a, 0x1b, 0xfc, 0x8c, 0xdc, 0xe4, 0x96, 0xdd, 0xaf, 0x33, 0xfc, 0x6a, 0xbe, 0xc1, 0x19, 0xd5, 0x7a, 0x14, 0x62, 0xd0, 0xae, 0x71, 0x2a, 0xf8, 0x2d, 0x45, 0x38, 0x85, 0x5f, 0x7a, 0xff, 0x8a, 0xe2, 0xf7, 0xbc, 0xfd, 0xf9, 0x87, 0xa6, 0xe0, 0x1e, 0x8e, 0x9f, 0x18, 0x7d, 0x91, 0xbe, 0x87, 0xa6, 0xda, 0x34, 0x54, 0x8a, 0xdf, 0x31, 0x8e, 0x88, 0x7b, 0x2d, 0xfc, 0x9c, 0xd7, 0x61, 0xed, 0x8e, 0x12, 0xdc, 0xbd, 0xbd, 0xb8, 0xd8, 0x63, 0xf0, 0x47, 0x4d, 0x9e, 0xc5, 0x4b, 0x4c, 0x1c, 0xf4, 0x67, 0xd6, 0x6d, 0x6c, 0xe5, - 0x9c, 0xd4, 0x1e, 0xdc, 0x88, 0xc1, 0xa2, 0xeb, 0xa3, 0x2e, 0xcf, 0x87, 0xfa, 0x6f, 0xde, 0xfc, 0x8b, 0x91, 0x13, 0x9c, 0xd3, 0xa5, 0x11, 0x5d, 0x14, 0xf6, 0xa4, 0xc7, 0x6f, 0xad, 0x3c, 0x1, 0x8e, 0x20, 0x78, 0x87, 0x6a, 0xea, 0xc2, 0x29, 0xe0, 0x9d, 0xce, 0x7f, 0x63, 0xfc, 0x57, 0x1b, 0x12, 0x10, 0xb3, 0xf, 0xac, 0x66, 0xf6, 0xb6, 0xf0, 0x34, 0x57, 0x48, 0xa4, 0x38, 0x97, 0x4c, 0x2c, 0x8c, 0x87, 0xf, 0x5d, 0x11, 0x3c, 0x3a, 0x69, 0x5f, 0xce, 0x86, 0x63, 0xed, 0x46, 0x42, 0xa3, 0xfc, 0xb7, 0xe0, 0x22, 0x8c, 0xef, 0xe5, 0x8a, 0xd9, 0xc, 0x32, 0xb0, 0x38, 0x79, 0xba, 0xf9, 0x8f, 0x3e, 0x2f, 0x7, 0xeb, 0xa8, 0x83, 0x3e, 0x3a, 0xf5, 0xd7, 0xff, 0x8b, 0x7e, 0x16, 0x6, 0x1f, 0x61, 0xc6, 0xf5, 0x47, 0x74, 0x15, 0xda, 0xa9, 0xa8, 0x15, 0x45, 0xaa, 0xad, 0x54, 0x55, 0x2c, 0x9d, 0x3e, 0x15, 0x2d, 0xc1, 0x75, 0xe8, 0x89, 0x40, 0xed, 0x6b, 0x5c, 0x81, 0xb5, 0xf2, 0x1a, 0x14, 0xcb, 0xe6, 0x21, 0x7b, 0x10, 0x35, 0x48, 0xc2, 0x65, 0xb3, 0x60, 0xf0, 0x54, 0x1c, 0x6b, 0x6c, 0x34, 0x43, 0x1f, 0xf1, 0xfc, 0xd1, 0x84, 0x6f, 0x7e, 0x83, 0xbe, 0xc7, 0x2c, 0x7d, 0x1e, 0x7b, 0x7, 0x98, 0x78, 0xef, 0x5c, 0x6a, 0xf, 0xfc, 0x32, 0x75, 0xfb, 0x7f, 0xb8, 0x3b, 0xdd, 0xf7, 0xe7, 0xb7, 0xaf, 0x40, 0xc4, 0x41, 0x58, 0xdb, 0xba, 0x12, 0xf4, 0x3e, 0xaa, 0x3a, 0x72, 0x74, 0x99, 0x72, 0x4e, 0xb9, 0xe5, 0x4d, 0xb1, 0xf8, 0xd, 0xfe, 0x2d, 0xae, 0x16, 0xdd, 0x44, 0xea, 0xe4, 0xe6, 0x10, 0x15, 0xe1, 0xed, 0xbf, 0xd2, 0xcf, 0x2d, 0x8f, 0x79, 0xa1, - 0x44, 0x13, 0x99, 0x18, 0x8f, 0xa9, 0xe6, 0x8, 0xaf, 0xbb, 0x89, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0xba, 0x6a, 0x58, 0x45, 0xbc, 0x16, 0x5e, 0x4a, 0x53, 0x2d, 0x35, 0x6, 0x60, 0xb9, 0x82, 0x6, 0x11, 0x3b, 0xc1, 0xe2, 0xb5, 0x96, 0x17, 0xe0, 0xa8, 0xee, 0x79, 0xd6, 0x3f, 0x7, 0x51, 0x7e, 0xac, 0xf5, 0x85, 0xe3, 0xd0, 0xb7, 0xe8, 0x7b, 0x22, 0x10, 0xcb, 0x85, 0xc2, 0xac, 0x88, 0x74, 0xf8, 0x79, 0xdf, 0xbe, 0x92, 0xea, 0x67, 0xc6, 0x9, 0xa4, 0x6a, 0xab, 0x9a, 0x7e, 0x7c, 0xfe, 0xef, 0x1d, 0xbf, 0xd0, 0xf4, 0xb7, 0x83, 0x89, 0x0, 0xa1, 0x50, 0xe9, 0xaf, 0x29, 0x72, 0x7a, 0xfc, 0xc2, 0xb7, 0xfd, 0x53, 0x42, 0xf7, 0xc7, 0x72, 0xe0, 0xf2, 0x97, 0x27, 0xcd, 0xc4, 0x59, 0x8f, 0x5f, 0xcd, 0x9b, 0x1c, 0xf5, 0xdf, 0x81, 0x1d, 0x70, 0xae, 0xd3, 0x7f, 0x92, 0x1e, 0x3f, 0x6a, 0xaf, 0xfd, 0x99, 0x9, 0x87, 0x17, 0x1b, 0x37, 0x29, 0x22, 0x97, 0xed, 0xbf, 0xe1, 0x71, 0xa, 0x82, 0x37, 0xef, 0x2f, 0x4, 0x1c, 0xa2, 0x5b, 0x4a, 0x8f, 0x5f, 0xa8, 0x89, 0x99, 0x3, 0x87, 0xb9, 0x8f, 0xc3, 0xb5, 0xb5, 0x7, 0x59, 0xfc, 0x4a, 0xc7, 0x51, 0x5b, 0xcd, 0x7c, 0x5e, 0x82, 0xa4, 0x40, 0xa2, 0xf6, 0x5a, 0x7a, 0xfe, 0x13, 0xd9, 0xf8, 0x79, 0x4f, 0x63, 0x84, 0x7d, 0x23, 0x59, 0x7b, 0xb6, 0xe3, 0x37, 0x4c, 0x1e, 0xbe, 0xeb, 0x20, 0xff, 0x7e, 0xcb, 0x77, 0xb8, 0xe0, 0x16, 0x12, 0x64, 0x47, 0x6a, 0x2e, 0x3c, 0x17, 0xd5, 0x70, 0xec, 0x8a, 0xec, 0x7e, 0xa5, 0x75, 0x20, 0x3f, 0x3d, 0xbf, 0x5d, 0x1d, 0xaf, 0x9, 0x5e, - 0x84, 0xa8, 0xe5, 0xd2, 0x56, 0xd4, 0x4a, 0x42, 0x7a, 0xfc, 0xc0, 0xa3, 0x84, 0x48, 0x3, 0xc2, 0x7b, 0x78, 0x1a, 0x85, 0x10, 0xcf, 0xe1, 0xd8, 0xb0, 0xe7, 0x79, 0x80, 0x46, 0x9d, 0xdc, 0x83, 0xb9, 0x47, 0x6b, 0x6f, 0x21, 0xb9, 0x10, 0x7d, 0x7, 0x58, 0xf5, 0xa4, 0xea, 0x64, 0xf8, 0x71, 0x12, 0xe, 0xb4, 0x69, 0xb, 0x7f, 0x3b, 0x1b, 0x9, 0xac, 0xad, 0x5e, 0x96, 0x1a, 0x7f, 0x0, 0xba, 0xdd, 0x1, 0xac, 0x54, 0x2f, 0xd2, 0x72, 0x89, 0x23, 0xaa, 0x5b, 0x16, 0xc8, 0xd5, 0x2f, 0x9f, 0x76, 0x79, 0x28, 0xf0, 0x76, 0xbc, 0x69, 0x44, 0xb4, 0xfc, 0x2a, 0x39, 0x87, 0x2c, 0xb6, 0xcf, 0xe1, 0xf5, 0x81, 0xc3, 0x52, 0xc6, 0xed, 0xbf, 0x6a, 0x4e, 0x5f, 0xf4, 0xc, 0x92, 0x88, 0xb, 0x86, 0x60, 0x38, 0xd, 0x21, 0xfc, 0xc4, 0xaf, 0xa9, 0xf7, 0xa3, 0x4, 0xec, 0xf3, 0x82, 0x40, 0xaf, 0x2f, 0xc4, 0x85, 0xd6, 0x2e, 0x38, 0x13, 0xe4, 0xb9, 0x81, 0xe7, 0x12, 0xa5, 0x2, 0xd8, 0x26, 0x4b, 0x29, 0xc4, 0x86, 0x3f, 0xcf, 0x26, 0x6a, 0xc2, 0x1d, 0x9f, 0x5f, 0xa2, 0x4a, 0x71, 0xb4, 0xf1, 0xba, 0xb6, 0x7d, 0x45, 0x70, 0x57, 0x9b, 0x45, 0x38, 0x94, 0x1e, 0x1e, 0x35, 0x6f, 0x86, 0x90, 0xa7, 0x57, 0x8a, 0x8a, 0x5e, 0xb6, 0x8e, 0xb5, 0xc3, 0xf1, 0xab, 0x1a, 0xf2, 0xef, 0xab, 0x50, 0x11, 0xcc, 0xa5, 0x1d, 0xe8, 0x59, 0x1, 0xe1, 0xa6, 0xeb, 0x49, 0xa7, 0xc1, 0x85, 0x10, 0xcd, 0x8c, 0xfd, 0x17, 0x3e, 0x52, 0x4, 0xff, 0xb6, 0x4a, 0xbd, 0x6d, 0xa, 0x8b, 0xfe, 0x2c, 0xf4, 0x9f, 0x34, 0x1f, 0xd7, 0x49, 0x92, 0xf5, 0xe2, 0x52, 0xdf, 0x1c, 0xea, 0xb, - 0x3a, 0x2f, 0xb2, 0x8e, 0xc4, 0x8f, 0x5d, 0xe1, 0x9d, 0x5e, 0x89, 0x7d, 0x82, 0x6a, 0xe3, 0x77, 0x77, 0xc5, 0xce, 0xb1, 0xee, 0xaf, 0x4b, 0xcd, 0x19, 0x4c, 0xde, 0x14, 0xc3, 0x2d, 0x58, 0x26, 0x7e, 0x3a, 0xfc, 0x9a, 0x3b, 0x27, 0xd0, 0xca, 0xb2, 0x7, 0x3a, 0x89, 0x74, 0x2a, 0xbd, 0x67, 0x3d, 0x7e, 0xa5, 0xff, 0xea, 0x47, 0xa9, 0xc9, 0xe9, 0x62, 0x52, 0x21, 0xa7, 0x82, 0x5f, 0xcd, 0x9a, 0x1c, 0x6a, 0x3f, 0xf3, 0x50, 0x70, 0x44, 0xaf, 0x20, 0x6a, 0xf0, 0x6c, 0xc7, 0xcf, 0xfb, 0x4, 0xf, 0x4f, 0x31, 0x47, 0xee, 0x51, 0xcb, 0xfa, 0x4e, 0x5, 0xbf, 0xd0, 0xe6, 0x9, 0x58, 0x10, 0xc, 0x53, 0x2a, 0x33, 0xf6, 0xcb, 0x47, 0x1d, 0xbf, 0x1a, 0x1, 0x7f, 0xe4, 0xd0, 0x8b, 0x24, 0x51, 0x23, 0xa2, 0xf, 0x8, 0xbd, 0xfd, 0x63, 0x68, 0xfb, 0x12, 0x1, 0x88, 0x5b, 0x76, 0x9b, 0xcd, 0xd4, 0x1e, 0x8c, 0xd7, 0xc0, 0x67, 0x57, 0x36, 0xa8, 0xba, 0x4b, 0x50, 0x7b, 0x63, 0x1a, 0xfd, 0x4c, 0x90, 0x2a, 0x23, 0xbd, 0xfe, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x82, 0xe1, 0x6, 0x7d, 0xd, 0x3f, 0xca, 0xd6, 0xcf, 0xc0, 0x71, 0x39, 0x7b, 0xd, 0x4, 0xa, 0xec, 0xf1, 0xfa, 0x44, 0x91, 0x55, 0xfd, 0x4c, 0x1c, 0xaf, 0x9f, 0x7e, 0x11, 0x5a, 0x22, 0x40, 0x59, 0x69, 0x2d, 0x11, 0xf9, 0xf4, 0xf8, 0xcd, 0x2f, 0x6e, 0x46, 0x9c, 0xb7, 0xe1, 0xf3, 0xfb, 0xa2, 0x67, 0x3d, 0x7e, 0xe1, 0x47, 0x35, 0xda, 0x5f, 0x85, 0xc9, 0x26, 0xb4, 0x86, 0xf9, 0x81, 0x82, 0xb4, 0xf8, 0x79, 0x2f, 0xbf, 0x3, 0x41, 0xe8, 0xe, 0x74, 0x58, 0x70, 0x9f, 0xf5, 0xf8, 0x35, - 0xc5, 0x2f, 0x81, 0x8f, 0xc3, 0x79, 0xdc, 0xa4, 0xae, 0xb0, 0xea, 0x49, 0xcf, 0x7f, 0x6c, 0xfe, 0xda, 0x87, 0x5c, 0xf, 0x88, 0x16, 0x89, 0x64, 0xf1, 0x1b, 0x46, 0x1f, 0x5c, 0x99, 0x1a, 0xff, 0xde, 0xab, 0xa1, 0x77, 0xdd, 0x6a, 0x49, 0xce, 0xc1, 0x22, 0xc9, 0x44, 0xa1, 0xe1, 0x36, 0xa5, 0xc3, 0x10, 0xd3, 0xe2, 0x15, 0xe6, 0xb0, 0xd1, 0xb6, 0x5f, 0x75, 0xeb, 0x35, 0xbd, 0xfd, 0xb4, 0x39, 0x48, 0xf9, 0x9f, 0x97, 0x69, 0xa9, 0x8, 0xc8, 0x8e, 0xb5, 0xc5, 0x4b, 0x91, 0xa, 0xbf, 0xc1, 0x63, 0xef, 0x48, 0x6e, 0xef, 0xf6, 0x4f, 0xc2, 0x69, 0xa4, 0x7e, 0x71, 0x7f, 0x45, 0x59, 0xf8, 0xb, 0xd7, 0x91, 0xcf, 0x8b, 0xc5, 0x71, 0x49, 0xe0, 0xb8, 0x83, 0x7, 0x39, 0xae, 0x4e, 0xe6, 0xa1, 0xe6, 0x5a, 0x4f, 0xd7, 0x64, 0x61, 0xac, 0xa7, 0xbd, 0xff, 0xe6, 0xff, 0x1b, 0x8c, 0xe9, 0x41, 0xfa, 0x7c, 0x45, 0x49, 0x12, 0xd8, 0x7c, 0xa5, 0x80, 0x8e, 0xe2, 0x83, 0xea, 0xed, 0x91, 0xb2, 0x28, 0xb, 0x4b, 0x2d, 0x9d, 0x1e, 0x40, 0x4b, 0xb4, 0xbb, 0x91, 0x48, 0x6, 0x61, 0x3e, 0x19, 0xf3, 0x7, 0xe8, 0x17, 0x5b, 0xcc, 0x8a, 0x7f, 0x8, 0x24, 0xe8, 0x87, 0xdc, 0xbc, 0x47, 0xd9, 0xf, 0x4d, 0x64, 0x2f, 0xb2, 0x8b, 0x47, 0x93, 0x79, 0xd, 0x14, 0xce, 0xcf, 0xba, 0x36, 0x55, 0x47, 0xe9, 0xfd, 0x95, 0xf0, 0x6d, 0xdf, 0x86, 0xde, 0x7b, 0x34, 0xe0, 0xf7, 0x59, 0x65, 0xb2, 0xf7, 0xb6, 0x8b, 0x61, 0x4, 0xed, 0xb3, 0x1a, 0x51, 0x93, 0xe1, 0x97, 0x1e, 0xc7, 0x9a, 0x80, 0x6e, 0x4f, 0x70, 0x72, 0x9c, 0xc0, 0xfc, 0xbd, 0xe7, 0xf0, 0x17, 0x7e, 0xbf, 0xf3, - 0xb3, 0x25, 0xce, 0x67, 0x9d, 0xc9, 0x4b, 0x78, 0x24, 0x18, 0xba, 0xec, 0x2b, 0x39, 0x14, 0xe2, 0x15, 0x72, 0x1, 0x82, 0xba, 0xcd, 0xae, 0xb4, 0xa3, 0x8c, 0xd8, 0xbe, 0xfa, 0xf0, 0xfa, 0x98, 0x4f, 0x9e, 0xec, 0xbf, 0x6d, 0x62, 0x83, 0x2d, 0x3a, 0xf6, 0x6, 0xe7, 0x14, 0x74, 0x96, 0xbc, 0x91, 0x83, 0xf0, 0x82, 0x29, 0x7a, 0x5e, 0xe9, 0x52, 0x1d, 0x2e, 0xbf, 0x1a, 0x35, 0x8d, 0xe1, 0xf3, 0x65, 0xef, 0xde, 0xe, 0x8d, 0x5b, 0x26, 0x31, 0xef, 0x44, 0x3f, 0x5, 0xfe, 0x1b, 0xea, 0xbf, 0xd, 0x8d, 0x7f, 0xbe, 0xbc, 0x98, 0x67, 0xf1, 0x73, 0x56, 0x79, 0xf2, 0x81, 0x87, 0x77, 0x87, 0x73, 0xac, 0xb5, 0x64, 0xc7, 0xe7, 0x17, 0xd8, 0xf8, 0x83, 0x15, 0xff, 0x5c, 0x42, 0xff, 0xdc, 0x28, 0x1c, 0xeb, 0xf5, 0x33, 0xe9, 0xf0, 0xf3, 0xde, 0x36, 0x1d, 0x17, 0xd0, 0x87, 0xdd, 0xdb, 0x59, 0x1b, 0x89, 0x54, 0xe, 0x5f, 0xf, 0x7c, 0xb6, 0xe1, 0x67, 0x8d, 0xdf, 0x6b, 0x89, 0x40, 0x22, 0xcf, 0x1e, 0xbf, 0x4f, 0x87, 0x1f, 0x9b, 0x9f, 0x43, 0x97, 0xee, 0x7e, 0xeb, 0x17, 0x8d, 0x52, 0x45, 0x2, 0xa0, 0xf7, 0xf3, 0x71, 0xeb, 0xa7, 0x2c, 0xb4, 0x28, 0x7d, 0x96, 0xe1, 0x57, 0xfa, 0x87, 0xf3, 0x51, 0xcc, 0xe2, 0xeb, 0x84, 0x2e, 0xb6, 0xdc, 0xf2, 0x54, 0xf0, 0x63, 0x6b, 0xa7, 0x9e, 0x35, 0x4b, 0xf6, 0x97, 0xc4, 0xd9, 0x4d, 0xde, 0x71, 0x3, 0x15, 0x7c, 0xfd, 0x5c, 0xa3, 0xd5, 0x5c, 0x99, 0x3f, 0xdb, 0xf0, 0x9b, 0xdf, 0x3e, 0xf, 0x1e, 0x84, 0x21, 0xfa, 0x8b, 0x9, 0x4e, 0x1, 0xbf, 0x26, 0xdf, 0x44, 0xdd, 0xe1, 0x60, 0x83, 0x99, 0x5b, 0x2b, 0x94, - 0x7b, 0x86, 0xeb, 0x87, 0xb3, 0xd, 0xbf, 0xb4, 0xfc, 0x99, 0x83, 0xbd, 0x27, 0xbc, 0xb5, 0xcc, 0xcf, 0xff, 0x32, 0x7d, 0x4a, 0xf8, 0x38, 0xd5, 0xa9, 0x1, 0x1c, 0xe1, 0x49, 0xda, 0xf5, 0xda, 0xa1, 0x42, 0x1e, 0x37, 0x23, 0xb8, 0x26, 0x17, 0xbe, 0x29, 0xb2, 0x3, 0xab, 0xc7, 0x1a, 0x9f, 0xf, 0xd0, 0x1f, 0xfd, 0x27, 0xf3, 0x5f, 0x73, 0x47, 0x2e, 0x36, 0x12, 0xd7, 0x79, 0x7b, 0xba, 0xcb, 0xd4, 0x5d, 0xad, 0xcf, 0xd, 0xbb, 0x3f, 0x96, 0xef, 0x24, 0xe8, 0xb7, 0x9e, 0xf5, 0x3e, 0xf6, 0x4a, 0xbf, 0xff, 0x47, 0x8e, 0x88, 0xb5, 0x6c, 0x85, 0x8d, 0x7, 0x6a, 0x34, 0xdd, 0xf5, 0xea, 0xea, 0x17, 0x22, 0xa7, 0xeb, 0x39, 0xbc, 0xc3, 0x27, 0x6c, 0xfe, 0xb3, 0xfc, 0x71, 0x40, 0xb1, 0x52, 0x6, 0xb0, 0xf5, 0x47, 0xe4, 0xe4, 0xf5, 0x47, 0x37, 0x36, 0xf9, 0x42, 0x70, 0x5c, 0x4, 0x8f, 0x68, 0x10, 0xb1, 0x2f, 0xc2, 0x95, 0xd, 0xe5, 0xbf, 0x3f, 0x52, 0xfb, 0x25, 0x32, 0xf9, 0xbd, 0x41, 0xf6, 0x1c, 0x75, 0x7b, 0x70, 0xfe, 0x8e, 0x56, 0xfa, 0x7e, 0x25, 0x23, 0x88, 0x46, 0xed, 0x54, 0xb6, 0x7e, 0x3a, 0xce, 0xc5, 0x39, 0x93, 0x4f, 0x5a, 0x36, 0xd5, 0x74, 0x73, 0x6, 0xe4, 0x63, 0x81, 0xa4, 0xd0, 0x5d, 0x3e, 0x37, 0x24, 0xa, 0x28, 0xde, 0x56, 0x60, 0x75, 0x1e, 0x77, 0xcc, 0xad, 0xbb, 0x75, 0x61, 0x18, 0x3f, 0x56, 0x1, 0x49, 0xab, 0xf1, 0x86, 0xcd, 0xb5, 0x69, 0xfd, 0x9f, 0xe8, 0x52, 0xa8, 0x2d, 0x40, 0x1f, 0xca, 0x88, 0xa8, 0x40, 0x75, 0x5c, 0xaf, 0xc0, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x7b, 0x31, - 0xa3, 0xfe, 0x48, 0xf2, 0x8d, 0xa6, 0x8d, 0x8a, 0xce, 0x87, 0x30, 0xfe, 0xc5, 0x8, 0xe5, 0x5b, 0x28, 0x78, 0x35, 0x59, 0x47, 0x26, 0xf3, 0xf6, 0x22, 0xaf, 0xa0, 0xc1, 0x57, 0x9d, 0x76, 0x7e, 0xe3, 0x90, 0xc7, 0xee, 0x57, 0x4c, 0x3d, 0xb0, 0x74, 0xf8, 0x85, 0xc7, 0x4f, 0x40, 0xf4, 0xd2, 0xd7, 0xd9, 0xfa, 0x96, 0x44, 0x54, 0xf5, 0xb9, 0xce, 0x76, 0xfc, 0xc2, 0x5f, 0xb8, 0x49, 0x2f, 0xb8, 0x80, 0x30, 0xf7, 0x43, 0x10, 0x4e, 0x5, 0xbf, 0x99, 0x2f, 0x93, 0xee, 0xf2, 0xc4, 0x24, 0x88, 0x5, 0x8f, 0x25, 0x4d, 0xed, 0xac, 0xe7, 0xbf, 0xf0, 0x33, 0x13, 0xb1, 0x65, 0x92, 0x62, 0xe1, 0xc7, 0x9d, 0xa, 0x7e, 0x8f, 0xce, 0x40, 0xa1, 0xe6, 0x0, 0x95, 0xdf, 0x8f, 0x7d, 0xee, 0xee, 0xe1, 0xf8, 0x9c, 0x6d, 0xf8, 0xd5, 0x6c, 0xbb, 0x0, 0xb1, 0x62, 0x40, 0xed, 0xb0, 0x8f, 0xac, 0x88, 0x5e, 0x89, 0x22, 0xe4, 0xb5, 0x70, 0xf8, 0x11, 0x62, 0x12, 0xea, 0xa8, 0x3e, 0x38, 0x7c, 0x72, 0xfe, 0x97, 0xcf, 0xec, 0x2a, 0x86, 0x43, 0xb5, 0x0, 0x22, 0x5b, 0xdc, 0xf9, 0x99, 0xc8, 0x17, 0xd5, 0xcd, 0x51, 0x3f, 0xb9, 0x84, 0xaa, 0x80, 0x16, 0x24, 0xf9, 0x3f, 0x9a, 0xe5, 0x60, 0xcb, 0xdb, 0xba, 0xc, 0x8, 0x33, 0x3c, 0x3a, 0x9a, 0x76, 0x6c, 0x85, 0x3e, 0xde, 0x8a, 0x8f, 0xe2, 0x3c, 0x10, 0x22, 0x55, 0xca, 0xc7, 0xd9, 0x6c, 0xf0, 0xd, 0xd4, 0xe4, 0x69, 0x41, 0x89, 0x21, 0x8d, 0xb5, 0xbe, 0xfd, 0x80, 0xfb, 0x59, 0x64, 0xf2, 0xef, 0x62, 0x40, 0x48, 0xd2, 0x26, 0xee, 0xc2, 0x5a, 0xf9, 0x93, 0xa8, 0x96, 0x5b, 0x12, 0xd2, 0x42, 0x9b, 0x25, 0x32, 0xce, - 0xff, 0xb7, 0xee, 0x4a, 0xc8, 0x1, 0x8c, 0x87, 0x2b, 0xdf, 0xc5, 0xca, 0xf4, 0x28, 0xf, 0x35, 0x15, 0x1e, 0x8e, 0x22, 0xef, 0xb0, 0xf5, 0xee, 0xa1, 0xeb, 0x6f, 0x45, 0xbb, 0xc6, 0x4d, 0x5a, 0x6, 0xf5, 0xb7, 0xab, 0x15, 0xdf, 0x88, 0xf3, 0xb5, 0x64, 0xde, 0x7e, 0x71, 0x1c, 0xe3, 0xf6, 0xea, 0x92, 0x42, 0xd4, 0xd9, 0xcc, 0x21, 0x69, 0x8e, 0x4e, 0x84, 0x6c, 0x70, 0x61, 0x4f, 0x6f, 0x77, 0x77, 0x5f, 0x34, 0x92, 0x79, 0xfc, 0xde, 0xdd, 0xa4, 0xe5, 0x93, 0x9c, 0x1b, 0x2c, 0xf0, 0x5c, 0xf9, 0xf9, 0x96, 0xfd, 0x44, 0xcf, 0x44, 0x82, 0x3d, 0x37, 0xb1, 0x76, 0x84, 0x17, 0xe4, 0xeb, 0xfc, 0x63, 0xd3, 0xad, 0xda, 0x86, 0xb9, 0x4b, 0xb5, 0xf2, 0xbf, 0x38, 0xd9, 0x82, 0x1e, 0x8d, 0xeb, 0xd3, 0x92, 0x8d, 0x63, 0x8d, 0x57, 0xf8, 0x57, 0x9b, 0xd0, 0xfb, 0xba, 0xc, 0x29, 0xa5, 0x80, 0x9b, 0x93, 0xad, 0x89, 0x67, 0x1c, 0xc8, 0x53, 0x2d, 0x91, 0x23, 0xb2, 0xf1, 0x3f, 0x3e, 0xee, 0x3e, 0xcc, 0x8, 0xa7, 0x89, 0x2, 0x52, 0x2a, 0x80, 0x59, 0x7b, 0xff, 0xeb, 0xfc, 0xf5, 0x87, 0xe7, 0x77, 0x22, 0xd8, 0x96, 0x5f, 0x42, 0x30, 0xf9, 0xcd, 0xb0, 0xf0, 0xb1, 0x4f, 0x12, 0x69, 0x27, 0x54, 0xef, 0x43, 0x2e, 0xe8, 0x3, 0xbb, 0x25, 0xeb, 0x80, 0x1c, 0xd8, 0x19, 0xbe, 0x63, 0x3, 0x26, 0x90, 0xe7, 0x67, 0xe5, 0x96, 0xfb, 0x7d, 0xf4, 0x6f, 0xc6, 0x58, 0xe3, 0x67, 0xcf, 0xe7, 0xf, 0xae, 0x2f, 0x7, 0xbc, 0xdb, 0x9b, 0x10, 0xd, 0x2a, 0x41, 0xfa, 0x71, 0x8f, 0xd2, 0xa1, 0x23, 0x7c, 0x5d, 0x83, 0x71, 0x1f, 0x3d, 0xbf, 0xad, 0x9f, 0x45, 0x50, 0xe8, - 0x46, 0x55, 0x74, 0x35, 0x8b, 0xa5, 0x5d, 0x8c, 0x3b, 0x71, 0x4a, 0xeb, 0xdb, 0xfe, 0xde, 0xf1, 0xb, 0x6d, 0xff, 0x17, 0x92, 0xc, 0x50, 0x1b, 0x3e, 0xc7, 0x6e, 0x75, 0xcd, 0xb, 0xd4, 0xbe, 0xb, 0x36, 0x30, 0x13, 0x39, 0xc2, 0x1d, 0x89, 0x62, 0x6d, 0xb5, 0xc, 0x52, 0xdd, 0xbf, 0xc5, 0xd, 0x94, 0xc6, 0xdb, 0x4a, 0xcc, 0x70, 0xd3, 0x3f, 0x68, 0x14, 0xb8, 0xe2, 0x18, 0xb1, 0x7f, 0xe1, 0x6c, 0xc7, 0x4f, 0xca, 0x1b, 0x4f, 0xed, 0x3, 0xb2, 0xe6, 0x1b, 0x32, 0xed, 0x93, 0xe4, 0x6e, 0xf, 0xeb, 0xaf, 0x6e, 0x8f, 0x7d, 0xd6, 0xb5, 0xdf, 0x3c, 0xb9, 0xff, 0xe2, 0x69, 0xf3, 0xfe, 0xcb, 0x27, 0xc9, 0xf, 0x5, 0x13, 0x85, 0x8c, 0x4a, 0xe4, 0x67, 0xf1, 0xfb, 0x0, 0xfd, 0xf1, 0xe6, 0x2d, 0x2c, 0x14, 0x9a, 0xf1, 0x5f, 0xa7, 0x5e, 0xd6, 0x49, 0xed, 0xe5, 0x2d, 0xba, 0xee, 0xf, 0xe6, 0xf4, 0x9b, 0xd4, 0x27, 0x55, 0xcb, 0xcb, 0x33, 0xaf, 0xef, 0x3f, 0xda, 0xf8, 0xad, 0xe9, 0x5c, 0x4e, 0x59, 0x89, 0xba, 0x70, 0x64, 0xdf, 0x8d, 0x4c, 0xa, 0xae, 0x2d, 0xfe, 0x38, 0x64, 0x59, 0x62, 0x1f, 0x9d, 0x4f, 0x1b, 0x7c, 0xe, 0x5b, 0xcf, 0x2f, 0x27, 0x58, 0xe6, 0x35, 0x40, 0xe8, 0xe9, 0xee, 0xd, 0x3d, 0x3a, 0xd, 0xb8, 0x2b, 0x80, 0x1b, 0x2, 0x3e, 0x9f, 0x9c, 0xe5, 0xbf, 0x61, 0xb4, 0x77, 0x8e, 0x84, 0x8d, 0x1e, 0x44, 0xfe, 0x21, 0x95, 0x11, 0xc8, 0x5b, 0x16, 0x1, 0xcc, 0xdd, 0x2, 0xd9, 0xd0, 0x66, 0x69, 0xe8, 0xb4, 0xcf, 0xa3, 0xb6, 0x81, 0xa8, 0xf6, 0x82, 0xe, 0xff, 0xa9, 0xac, 0xff, 0x8, 0x97, 0xf9, 0x40, 0x16, 0x53, 0x81, 0xb1, - 0x4c, 0x55, 0xfd, 0x6e, 0x27, 0x1c, 0xff, 0x6c, 0xa9, 0x25, 0xfd, 0xcb, 0xcc, 0x4, 0x34, 0xa2, 0xca, 0x89, 0xf5, 0x49, 0xf0, 0x24, 0xee, 0xff, 0xed, 0x33, 0xa5, 0x7f, 0x70, 0xa1, 0xff, 0xfd, 0x95, 0x62, 0x59, 0x91, 0x2e, 0xfe, 0xf7, 0xd, 0x75, 0x2f, 0x87, 0x9e, 0xa9, 0x84, 0x56, 0x2c, 0x4d, 0x6c, 0x7, 0x7c, 0x3f, 0x5d, 0xad, 0xa8, 0xcd, 0x9d, 0xb9, 0x54, 0xdb, 0x85, 0xed, 0x6f, 0xd4, 0x36, 0x9e, 0xf6, 0xf5, 0x9b, 0x77, 0xb6, 0x97, 0x82, 0x7a, 0xb5, 0x2f, 0xec, 0x4e, 0x35, 0x7a, 0xae, 0xfc, 0x26, 0xed, 0xcf, 0xcc, 0xa0, 0xbd, 0xd7, 0xaf, 0x3f, 0x92, 0xf9, 0xfc, 0xa7, 0x2c, 0x7f, 0x8e, 0xc9, 0xd9, 0x63, 0xa7, 0x71, 0xe1, 0xcf, 0x94, 0xff, 0xc7, 0x43, 0xa9, 0x16, 0xca, 0xd9, 0x59, 0x97, 0xa9, 0xbb, 0xbd, 0x33, 0xc1, 0x26, 0xd7, 0xf6, 0x94, 0x2a, 0x84, 0x13, 0x7a, 0x66, 0x83, 0xda, 0xb, 0x17, 0xe1, 0x44, 0x19, 0xf5, 0xf8, 0xbe, 0xb4, 0xcf, 0x7f, 0xce, 0x42, 0xc4, 0x38, 0xd4, 0xde, 0x91, 0x32, 0x0, 0x97, 0x76, 0xde, 0xa9, 0xf3, 0x2e, 0x44, 0xdc, 0x8c, 0x79, 0x38, 0x4e, 0x58, 0x5b, 0xbf, 0x10, 0x8a, 0x6c, 0xa, 0x54, 0x59, 0x24, 0x74, 0xa9, 0x9c, 0xad, 0x8f, 0xff, 0x96, 0xd5, 0xf0, 0xd4, 0xd, 0x8c, 0xf8, 0xfa, 0x77, 0x4c, 0xc7, 0xbd, 0xc0, 0x7b, 0x4b, 0x5c, 0xbe, 0xf9, 0xaa, 0xcf, 0x55, 0xe0, 0xdd, 0x3e, 0x1e, 0x1d, 0x41, 0x7b, 0xc8, 0xaf, 0x37, 0x72, 0x4f, 0x59, 0x6a, 0xbe, 0xd4, 0x2a, 0x87, 0x4d, 0x37, 0xc5, 0xf7, 0x6a, 0x38, 0x98, 0xaf, 0xa9, 0x26, 0xa3, 0xa6, 0x21, 0x7c, 0x71, 0xac, 0xf1, 0x1b, 0x4a, 0x5f, 0x1b, - 0xdd, 0x0, 0x87, 0xe3, 0x8b, 0x6d, 0xd4, 0x7c, 0xde, 0xd8, 0xf5, 0x29, 0x2, 0xef, 0x4b, 0xb7, 0xc1, 0x28, 0xe6, 0x92, 0x2c, 0xab, 0x18, 0x6f, 0xf8, 0x22, 0x1f, 0xab, 0x2d, 0x7, 0x55, 0x25, 0x41, 0xbe, 0x1a, 0xcf, 0x31, 0x2b, 0xfa, 0x6c, 0xc7, 0x2f, 0x4c, 0xed, 0xbf, 0x7f, 0xd, 0x9c, 0x98, 0x4f, 0x60, 0xf3, 0x43, 0x25, 0x5d, 0xec, 0x93, 0x6a, 0x8, 0x33, 0x4d, 0x6b, 0xbe, 0xcd, 0x70, 0x53, 0xc4, 0xd0, 0x5, 0x77, 0x82, 0x6b, 0xc, 0xff, 0x33, 0x45, 0xf2, 0x5a, 0xc7, 0xc2, 0x84, 0x6e, 0xd7, 0x3f, 0xdb, 0xf1, 0x1b, 0xe6, 0x8f, 0xe4, 0xe0, 0x58, 0xa5, 0xc4, 0xd6, 0x27, 0x6b, 0x50, 0x4b, 0x35, 0x2e, 0xdc, 0x54, 0x8d, 0x19, 0x9, 0xc7, 0xb2, 0x64, 0xc2, 0xb2, 0x5f, 0x32, 0xee, 0xaf, 0x7f, 0xd4, 0xf1, 0xab, 0xa2, 0xfa, 0x21, 0x48, 0x82, 0x85, 0x71, 0xa1, 0xcb, 0x6a, 0x67, 0xf1, 0x85, 0xd4, 0x7e, 0x79, 0xad, 0x22, 0xc9, 0xc1, 0xe0, 0x4d, 0x2e, 0x2e, 0xd9, 0xf1, 0x19, 0xfa, 0x4, 0xab, 0x7a, 0xde, 0xc4, 0xcc, 0xe7, 0x1f, 0x5a, 0xe3, 0xd6, 0x9c, 0xfa, 0x62, 0x51, 0xd1, 0xa5, 0x2e, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x90, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xd1, 0xe, 0xd9, 0x52, 0xca, 0x88, 0x9b, 0x67, 0x5c, 0x3e, 0x84, 0xd2, 0x6d, 0x93, 0xb4, 0x69, 0xd0, 0x3a, 0xc5, 0x94, 0xb, 0x5c, 0xfa, 0x62, 0x23, 0x7c, 0x66, 0xd3, 0x8a, 0x72, 0x10, 0xae, 0xbb, 0x2b, 0xc2, 0x51, 0x7d, 0xb7, 0x2, 0x27, 0x8a, 0x1e, 0x7e, 0xe9, 0x35, 0xc4, 0x6e, 0x24, 0x53, 0x75, 0xc3, 0x3e, 0x70, 0xb6, 0xe3, 0x17, 0x9e, 0x7f, 0x2b, 0x7c, - 0xd3, 0x91, 0x87, 0x49, 0x76, 0x4e, 0x81, 0xf0, 0x2, 0x5, 0x21, 0xef, 0x32, 0x73, 0x61, 0x11, 0xed, 0xc1, 0xd1, 0xb2, 0x40, 0x78, 0x73, 0x14, 0xca, 0xeb, 0xf6, 0xb9, 0x44, 0xc2, 0x60, 0xf6, 0xc3, 0x6c, 0x64, 0x70, 0xfc, 0xe5, 0xa3, 0x8e, 0xdf, 0x50, 0x7a, 0x6d, 0xfd, 0x7a, 0x38, 0x94, 0xd6, 0x24, 0x25, 0x76, 0x87, 0xa7, 0xbb, 0xfd, 0xe1, 0x67, 0xc6, 0x69, 0x5e, 0x82, 0xab, 0xd9, 0x59, 0xc3, 0x30, 0x32, 0x3e, 0x1f, 0xfd, 0xf7, 0x86, 0x5f, 0x73, 0x72, 0x36, 0x35, 0x57, 0x8b, 0x15, 0x9, 0x82, 0xca, 0x89, 0x2a, 0x42, 0x97, 0xdc, 0xa0, 0xe9, 0x6f, 0x1c, 0x13, 0x56, 0xd4, 0xbb, 0x5c, 0x2f, 0xdf, 0x2e, 0x64, 0x3c, 0x1f, 0x39, 0x9b, 0x3f, 0x8f, 0xa7, 0xec, 0x67, 0x96, 0xf3, 0x68, 0x4d, 0xed, 0x2d, 0x64, 0x16, 0x7b, 0x56, 0xf8, 0x1c, 0x7d, 0xed, 0x56, 0x1c, 0xd7, 0xaf, 0x82, 0x97, 0xeb, 0x38, 0x3f, 0x68, 0x8d, 0x47, 0xde, 0x37, 0x7d, 0x5e, 0xb4, 0x1c, 0x8b, 0x25, 0x59, 0xaf, 0xe0, 0x8d, 0x8b, 0x81, 0xd6, 0xfe, 0xb1, 0xc6, 0x6b, 0x62, 0xde, 0x78, 0x74, 0x49, 0xf8, 0x5a, 0x98, 0xd9, 0xf9, 0x18, 0x77, 0x2e, 0xb3, 0x57, 0xbe, 0x1f, 0xb4, 0x55, 0x9e, 0xeb, 0x67, 0xa6, 0x44, 0xf5, 0x71, 0x82, 0x8b, 0x8a, 0x8c, 0x1f, 0x11, 0x5d, 0xde, 0xbf, 0x51, 0xcc, 0x7b, 0x28, 0xa8, 0x15, 0x2, 0xb1, 0x12, 0xfb, 0x17, 0x46, 0x2c, 0x3f, 0xde, 0x2f, 0xd2, 0xe5, 0x18, 0x8f, 0x4e, 0x2b, 0xfc, 0xcf, 0x1f, 0x68, 0xda, 0xc5, 0xc2, 0x6b, 0x22, 0x6c, 0x4, 0x28, 0x88, 0xbd, 0x44, 0x9d, 0xc7, 0xf2, 0xc3, 0x58, 0xb3, 0x43, 0x44, 0x82, 0xbe, 0xa, 0x55, - 0x1b, 0x37, 0x21, 0x91, 0x13, 0x4d, 0xc4, 0xb9, 0x38, 0x6f, 0xc2, 0xbc, 0x7f, 0xac, 0xf1, 0xfb, 0x0, 0xff, 0x83, 0xf5, 0x96, 0xe3, 0xfe, 0x87, 0xf7, 0xb6, 0x85, 0x8, 0x6, 0xdb, 0xd8, 0xf8, 0x1, 0x11, 0xcb, 0x14, 0x92, 0x69, 0xff, 0x63, 0x98, 0xff, 0xd6, 0x3e, 0x1e, 0xd5, 0x76, 0x6f, 0x45, 0xc8, 0xbc, 0x8b, 0xfa, 0x6f, 0x7e, 0x7b, 0xff, 0xc, 0x56, 0x7a, 0xe6, 0x1c, 0x62, 0xf3, 0x4d, 0x26, 0xdf, 0x88, 0x46, 0x16, 0x33, 0xe3, 0x24, 0x69, 0xf3, 0x5, 0x9e, 0x6e, 0x7a, 0xa8, 0xff, 0xd1, 0xf0, 0x88, 0xf, 0x1e, 0xe8, 0xe7, 0x3a, 0x1a, 0x23, 0xa2, 0x4, 0x4f, 0x34, 0xd3, 0xfe, 0xc7, 0x47, 0x1d, 0xbf, 0x53, 0xf3, 0x3f, 0x58, 0xf7, 0x1d, 0x1d, 0xff, 0xe3, 0xa3, 0x8e, 0x1f, 0x93, 0x7f, 0x1d, 0x12, 0xea, 0x7f, 0xc9, 0xec, 0x3f, 0x79, 0xdc, 0xb9, 0x35, 0x4b, 0x36, 0x22, 0x16, 0x8c, 0x72, 0xac, 0xfb, 0xb6, 0x29, 0x51, 0xe9, 0x5a, 0xe5, 0x46, 0x14, 0xf1, 0x5f, 0xec, 0x2d, 0xa3, 0x34, 0x79, 0xe0, 0xc0, 0xcd, 0x13, 0xf2, 0x1e, 0x42, 0x82, 0x5, 0xe4, 0x47, 0x5, 0x3d, 0x8b, 0xdf, 0x7, 0xd8, 0x2f, 0x7, 0x6e, 0xa1, 0x38, 0xba, 0xd9, 0x1d, 0xb8, 0x76, 0xc5, 0x9, 0x17, 0x7e, 0xa6, 0x15, 0x5e, 0x9f, 0xba, 0xc2, 0x4c, 0x8c, 0x8e, 0xff, 0xf6, 0xf7, 0x86, 0x5f, 0x8d, 0x80, 0x4b, 0xdb, 0x4e, 0x98, 0xc7, 0xa8, 0x59, 0xc2, 0x31, 0x4a, 0x43, 0x4f, 0xe4, 0x94, 0xf2, 0x37, 0x7d, 0x68, 0xf9, 0xf1, 0x6a, 0xb3, 0xde, 0x97, 0x13, 0xb9, 0x88, 0xfe, 0x78, 0x45, 0x5, 0xe5, 0xeb, 0x35, 0x96, 0xa6, 0x97, 0x29, 0xfb, 0xef, 0xa2, 0xef, 0xcf, 0xcb, - 0x6b, 0x8a, 0x8f, 0x90, 0x97, 0x3, 0x24, 0x35, 0x23, 0x83, 0xbb, 0xbd, 0xbf, 0xb8, 0x8, 0x78, 0x67, 0x37, 0x7c, 0xd0, 0x1b, 0x36, 0xd, 0x94, 0x9c, 0x71, 0xf6, 0x60, 0x73, 0xe4, 0x42, 0x44, 0x9b, 0xa9, 0xf4, 0x1b, 0xcc, 0xdf, 0xb9, 0x59, 0x40, 0x8, 0xfa, 0x39, 0xc9, 0x72, 0x9b, 0x29, 0x32, 0xcf, 0x7f, 0xc6, 0xa2, 0x7e, 0xee, 0xa7, 0x42, 0xf, 0xe5, 0x3f, 0x93, 0xfb, 0x33, 0xc2, 0xe3, 0xd7, 0x82, 0xd9, 0x2f, 0xb4, 0x9, 0x1e, 0xdf, 0x64, 0x77, 0x11, 0xe3, 0xbf, 0x6a, 0x92, 0x42, 0xaf, 0x67, 0xce, 0x1f, 0x6a, 0x4, 0xfe, 0xcf, 0x5c, 0x9f, 0x26, 0xee, 0x6d, 0xdf, 0xba, 0x42, 0x69, 0x14, 0x5f, 0x1c, 0x6b, 0xbc, 0x86, 0xce, 0x9f, 0xdf, 0xac, 0xf4, 0xea, 0x1a, 0x35, 0xc9, 0xc0, 0xb2, 0xca, 0x82, 0x13, 0x98, 0xfe, 0x88, 0xda, 0xe9, 0x87, 0x46, 0x65, 0xfe, 0xbc, 0xca, 0xac, 0x37, 0xf2, 0xd, 0x31, 0x44, 0x6d, 0x68, 0x77, 0xc2, 0x69, 0xeb, 0xab, 0xd4, 0x4f, 0x9b, 0x8, 0x10, 0xa7, 0xfc, 0x80, 0xb, 0x64, 0x82, 0x7d, 0xb9, 0xc5, 0x5d, 0xae, 0xef, 0x5f, 0x3, 0x2c, 0xd2, 0x8f, 0x8d, 0x47, 0x2b, 0x8f, 0x56, 0xe8, 0x15, 0x63, 0xce, 0x7f, 0x43, 0xe7, 0xcf, 0x99, 0x3f, 0x60, 0x5a, 0xf3, 0x17, 0x33, 0x21, 0x51, 0xad, 0xec, 0x9d, 0xb9, 0x1e, 0xb2, 0x4e, 0x38, 0x3b, 0x64, 0xc8, 0xa7, 0x65, 0x7a, 0xfe, 0xfc, 0xa3, 0x8e, 0xdf, 0xd0, 0xf9, 0xf3, 0xf0, 0x23, 0x4e, 0x7c, 0x53, 0xae, 0xbc, 0x48, 0x2c, 0x75, 0x39, 0xe0, 0x2f, 0x90, 0xc2, 0x9b, 0x9b, 0x10, 0xbc, 0xc0, 0x77, 0x91, 0x9f, 0xa2, 0xe5, 0x53, 0xcd, 0x44, 0xa6, 0xe7, 0xcf, 0x3f, - 0xea, 0xf8, 0xd, 0xd3, 0x1f, 0xb9, 0x1e, 0xe4, 0x26, 0x16, 0x89, 0x2c, 0x84, 0xcc, 0x9a, 0xff, 0x7d, 0xa2, 0x17, 0xc1, 0x4f, 0xec, 0x9f, 0xca, 0xf0, 0x53, 0x54, 0x35, 0xe3, 0xf9, 0x5d, 0xff, 0xde, 0xf0, 0xcb, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0x3e, 0xdd, 0xb4, 0x7c, 0xab, 0xa, 0x1e, 0xd2, 0x46, 0x5d, 0xda, 0x65, 0x9c, 0x4a, 0xfe, 0x94, 0x91, 0xd2, 0x73, 0xa3, 0x7c, 0x50, 0x13, 0xfb, 0x39, 0xe8, 0x9c, 0x3e, 0x1b, 0x71, 0x2b, 0xff, 0xa4, 0x7d, 0x8e, 0x38, 0x4d, 0xc1, 0x3c, 0xe3, 0xf6, 0xa7, 0x4b, 0x47, 0x87, 0x9b, 0x8b, 0x1, 0xb9, 0x3e, 0xe8, 0x70, 0x61, 0xce, 0xbc, 0x8a, 0xf9, 0x93, 0xff, 0x2a, 0xdf, 0x9, 0x37, 0x3c, 0x5f, 0x7f, 0x96, 0xfe, 0x6b, 0xba, 0xb9, 0x6b, 0x9, 0x5b, 0x1c, 0x10, 0xcc, 0x4d, 0x5a, 0x29, 0x8b, 0x50, 0x57, 0xfd, 0x69, 0xdc, 0x2d, 0xdf, 0xff, 0x8a, 0x70, 0x98, 0x2f, 0x47, 0x49, 0x7a, 0x7e, 0x2c, 0xcd, 0xc1, 0xef, 0x39, 0xb4, 0x25, 0xd7, 0x41, 0x50, 0xd8, 0xe, 0x31, 0xa7, 0x50, 0x3f, 0xc9, 0xa9, 0x4a, 0x24, 0xf9, 0x9c, 0x42, 0xb8, 0x3c, 0xf, 0x6a, 0x2e, 0x64, 0xfb, 0x41, 0x5b, 0xb1, 0xe4, 0x31, 0x74, 0x6b, 0x5c, 0xf8, 0x47, 0xb, 0xad, 0xd, 0xeb, - 0x7a, 0xd9, 0x11, 0x45, 0xf5, 0xaf, 0x88, 0xcf, 0xc3, 0x6f, 0x2, 0x45, 0x8d, 0x5c, 0xe7, 0x64, 0x52, 0x10, 0xcb, 0x55, 0x9a, 0xcd, 0xdb, 0xe9, 0x9, 0xc7, 0x22, 0x96, 0xfe, 0x18, 0x67, 0x40, 0x3e, 0x1b, 0xef, 0x76, 0x19, 0xed, 0xe4, 0x5a, 0xb1, 0xac, 0x5b, 0x79, 0x8a, 0xe5, 0x5c, 0x9, 0x3d, 0xa3, 0xa0, 0x57, 0x7b, 0x89, 0xbb, 0x84, 0x4, 0x3b, 0xe, 0xbc, 0xb1, 0x85, 0xe4, 0xcc, 0x8e, 0xb2, 0xed, 0x58, 0xac, 0x5, 0x7, 0x6c, 0x55, 0xfd, 0x88, 0xaf, 0xf7, 0xf6, 0x52, 0x96, 0xff, 0xf4, 0x63, 0x3a, 0x38, 0xc8, 0x91, 0xca, 0xa4, 0xf7, 0xb6, 0x8f, 0xd, 0xee, 0xa7, 0xdd, 0x17, 0xe5, 0xd4, 0xbd, 0x35, 0x42, 0x2a, 0x1f, 0x6c, 0x37, 0x11, 0x95, 0xda, 0x5d, 0x77, 0x84, 0xa, 0x2f, 0x9, 0x3a, 0x8b, 0x2b, 0xb, 0xab, 0x3f, 0xfe, 0xd5, 0x9f, 0x1d, 0x78, 0x7d, 0xff, 0xee, 0xb1, 0xc6, 0x6b, 0x58, 0xff, 0x6d, 0x72, 0x63, 0x62, 0xbf, 0x6b, 0xb1, 0xc7, 0xe3, 0xf3, 0x7, 0x9c, 0xf6, 0x7a, 0xc, 0xa9, 0x88, 0x2b, 0x47, 0x12, 0x26, 0x5b, 0x74, 0x9b, 0xee, 0xfb, 0x4d, 0xbb, 0x24, 0xcc, 0x0, 0x22, 0xd8, 0xa3, 0x89, 0x7d, 0xa7, 0x50, 0xdf, 0x9b, 0x5f, 0x64, 0xed, 0x87, 0x6c, 0xe1, 0x25, 0xaa, 0xc3, 0xf6, 0x1f, 0x77, 0xbc, 0xf4, 0x3b, 0x68, 0x3e, 0x6d, 0x30, 0x87, 0xc8, 0x4d, 0x2c, 0xdf, 0x37, 0x5f, 0xd8, 0xe6, 0x4e, 0x8, 0xa6, 0xf6, 0x74, 0xb2, 0xa4, 0x9c, 0xf2, 0xaf, 0x59, 0x79, 0x4f, 0x59, 0xa3, 0xb6, 0x7f, 0xd3, 0x91, 0x39, 0xb4, 0x42, 0x69, 0xe, 0x6f, 0xe, 0xae, 0xe5, 0xdc, 0x19, 0xbd, 0x63, 0xf9, 0x30, 0x7e, 0x17, 0xf0, 0x35, - 0xfa, 0x41, 0xd6, 0x53, 0x75, 0x32, 0x8e, 0xdf, 0xa3, 0x4e, 0x6c, 0xab, 0xaf, 0xe7, 0xc, 0xd1, 0xe5, 0x2f, 0x90, 0x4, 0x84, 0xb, 0x97, 0xc1, 0x55, 0x85, 0x2b, 0x5, 0x8f, 0x8f, 0x2d, 0xbf, 0x48, 0xdf, 0x1f, 0x3f, 0xe4, 0xfa, 0xa0, 0x9a, 0x37, 0x37, 0x53, 0x3e, 0xbe, 0x49, 0x8a, 0xa0, 0xfb, 0xca, 0xca, 0xb2, 0x5a, 0x34, 0xd7, 0xde, 0x2, 0x87, 0xa6, 0x29, 0xd6, 0x69, 0x51, 0xed, 0x39, 0x29, 0x7f, 0x17, 0x8e, 0x1d, 0xfe, 0x93, 0xf3, 0xda, 0xe2, 0x4f, 0x21, 0xf9, 0x46, 0x2b, 0x1, 0xf7, 0xf1, 0x3d, 0x15, 0x9f, 0x5f, 0xf, 0x6f, 0xfe, 0xb9, 0xe8, 0xd5, 0x5, 0x78, 0x74, 0x6d, 0xc5, 0xc6, 0xe7, 0xc7, 0x3e, 0x5f, 0xbf, 0x77, 0xfd, 0xf5, 0x70, 0x98, 0x1c, 0x8f, 0xde, 0x5a, 0x52, 0xa5, 0x96, 0x65, 0xf5, 0x45, 0x3a, 0x7e, 0xfb, 0xec, 0xbf, 0x4, 0x2f, 0x63, 0xdb, 0xf5, 0xa4, 0x98, 0xbe, 0x29, 0x59, 0x8d, 0xd0, 0x53, 0x5, 0x93, 0x6b, 0x41, 0x99, 0x41, 0x35, 0x10, 0x16, 0xb0, 0xe8, 0xe4, 0xfd, 0x44, 0xaf, 0xee, 0x50, 0xe0, 0x23, 0x56, 0x3a, 0x1b, 0x91, 0xc9, 0xf4, 0x11, 0xdb, 0x2f, 0x1b, 0x37, 0xe1, 0xce, 0x5, 0x8c, 0x67, 0x4b, 0x10, 0x94, 0x12, 0xfc, 0x35, 0x0, 0x7f, 0x40, 0x80, 0x41, 0x55, 0x55, 0x2b, 0xb0, 0x21, 0xed, 0xfe, 0xb3, 0x23, 0xa5, 0xeb, 0x8a, 0x97, 0x22, 0xe8, 0x62, 0x19, 0xe, 0x9c, 0xb4, 0x5, 0xe5, 0x98, 0x6c, 0xe5, 0xeb, 0x31, 0x58, 0x86, 0x4b, 0xdd, 0x21, 0xa4, 0xdf, 0xaf, 0xea, 0xea, 0xda, 0x6, 0xab, 0xc3, 0x51, 0xc9, 0x41, 0x98, 0x3e, 0x60, 0xf6, 0x97, 0x9b, 0xfe, 0xd2, 0x2, 0xb4, 0xc0, 0xe4, 0x13, - 0xce, 0x30, 0x87, 0xa7, 0x52, 0xd0, 0x59, 0xaf, 0x99, 0x6e, 0xff, 0x55, 0xdb, 0xd8, 0x72, 0x1f, 0xfe, 0xf1, 0x50, 0xe1, 0x83, 0x8d, 0x4b, 0x7f, 0x7e, 0xfe, 0x92, 0xd, 0xe0, 0x8f, 0x55, 0xba, 0x63, 0x2e, 0xac, 0xc3, 0x4d, 0x88, 0xf1, 0x6c, 0x7f, 0x8d, 0xc0, 0xe0, 0xb3, 0x3, 0x81, 0x41, 0xf1, 0xad, 0x62, 0xcb, 0x59, 0x91, 0xb0, 0xfe, 0x8d, 0x78, 0x7f, 0x26, 0x47, 0xe1, 0x26, 0x10, 0xbe, 0x4e, 0xbb, 0xeb, 0xc7, 0xf4, 0x57, 0x5d, 0xfb, 0x47, 0xbc, 0xbe, 0x89, 0xca, 0xe3, 0x3, 0x95, 0x6a, 0x77, 0x4, 0xc9, 0xfa, 0xad, 0x6c, 0x43, 0x9d, 0xd0, 0xbb, 0x9c, 0xd6, 0x33, 0xad, 0x9f, 0x2b, 0x8d, 0x2a, 0xbe, 0xcf, 0xdd, 0xcc, 0xb7, 0x65, 0x1a, 0xbf, 0xd0, 0x23, 0x51, 0x78, 0xf8, 0xa7, 0xb9, 0x56, 0x9d, 0x3e, 0x72, 0xf9, 0xa6, 0xa2, 0xb4, 0xf5, 0x1f, 0xe5, 0x58, 0xfe, 0xc9, 0x5e, 0x9b, 0x9e, 0xfd, 0xe4, 0x58, 0xf7, 0xdf, 0xa1, 0xf4, 0xd2, 0x1d, 0x6d, 0xd6, 0xf6, 0x5b, 0x52, 0x6a, 0x15, 0xd8, 0x68, 0x5f, 0x6f, 0x7a, 0x74, 0x1a, 0x92, 0x47, 0x18, 0x8b, 0xf1, 0x3f, 0xec, 0x77, 0xf3, 0x68, 0xde, 0x11, 0xa3, 0x9f, 0xc9, 0x24, 0xfb, 0x3c, 0x86, 0xf5, 0xdf, 0xe3, 0xfa, 0x24, 0x66, 0xb8, 0x6b, 0x4e, 0x43, 0xfb, 0x3e, 0x6a, 0x74, 0x8d, 0x60, 0xed, 0x6f, 0xe, 0x9d, 0x65, 0x4, 0xa2, 0xff, 0xc6, 0xba, 0x3d, 0x67, 0x3a, 0x5d, 0x57, 0xbd, 0xd2, 0xb2, 0x76, 0xe, 0xbb, 0x8f, 0x4a, 0xab, 0x90, 0xe5, 0xa7, 0x11, 0xcb, 0xc3, 0xcd, 0x2b, 0xb1, 0xb, 0xe2, 0x94, 0x76, 0x4a, 0xe9, 0x7, 0xa3, 0x19, 0x5f, 0xaf, 0x7a, 0xda, 0xf9, 0x63, 0x87, 0x1f, - 0x4a, 0xb5, 0xc9, 0x1d, 0x45, 0x0, 0x6e, 0xc, 0xf7, 0x67, 0x59, 0x3e, 0x11, 0x7d, 0xa, 0xfb, 0x1c, 0xb4, 0x64, 0x7a, 0xe8, 0x68, 0x18, 0x58, 0x20, 0x7a, 0xed, 0x84, 0xb, 0x3d, 0x69, 0xfd, 0xab, 0x8f, 0xf9, 0xdc, 0x86, 0x47, 0x60, 0xc9, 0x91, 0x6c, 0x17, 0xa3, 0x4e, 0xe6, 0xe0, 0xe8, 0x4a, 0x38, 0x4d, 0xbe, 0x85, 0x5e, 0x51, 0x2, 0xd5, 0xff, 0xf7, 0x9c, 0x6c, 0x3f, 0x31, 0x7f, 0x88, 0x2a, 0x5e, 0x93, 0x9a, 0x7, 0xb, 0x74, 0x77, 0xc2, 0x39, 0xe2, 0xfb, 0x93, 0x9b, 0xd9, 0x46, 0x5b, 0xd4, 0x1a, 0xd3, 0x17, 0x66, 0x62, 0x3f, 0xa, 0xea, 0x6f, 0x1e, 0xb3, 0xf6, 0xdb, 0xd0, 0xc4, 0x6e, 0x1d, 0x96, 0x3f, 0x94, 0xac, 0xe4, 0xba, 0x23, 0x5c, 0x4f, 0xe4, 0xdc, 0xd6, 0xba, 0xf4, 0xf6, 0xf4, 0x94, 0x3e, 0xb6, 0xd2, 0x3e, 0xc6, 0x3d, 0x3c, 0x63, 0x11, 0x69, 0x97, 0xc7, 0x9d, 0x9b, 0xae, 0x7e, 0x35, 0xa7, 0xf3, 0x8d, 0xcc, 0x52, 0x62, 0x59, 0x98, 0xe9, 0x7f, 0xb6, 0x7f, 0x89, 0xc1, 0x85, 0x35, 0xeb, 0x34, 0x51, 0xfc, 0x9b, 0xa8, 0xdb, 0x31, 0x88, 0x5f, 0xff, 0xfe, 0xff, 0xbc, 0x2b, 0x7c, 0x87, 0x82, 0x78, 0x82, 0xc3, 0x52, 0xb6, 0x81, 0x27, 0xc7, 0x9, 0x27, 0xed, 0xdf, 0x19, 0x1f, 0x8b, 0xfd, 0x3b, 0x87, 0xd2, 0x6b, 0x69, 0xc7, 0x51, 0x65, 0x24, 0xe2, 0x3d, 0xd6, 0x76, 0x3a, 0x70, 0x6c, 0x9e, 0x4e, 0x9b, 0xf6, 0x55, 0x5, 0x3b, 0x3c, 0xf7, 0x24, 0xd4, 0x82, 0x51, 0x97, 0x4f, 0x17, 0x75, 0xae, 0xa7, 0xef, 0x33, 0xad, 0xbd, 0x8, 0x61, 0x34, 0x20, 0xb4, 0x80, 0x1a, 0xb7, 0xed, 0xe, 0xdd, 0xce, 0x0, 0x78, 0x68, 0x73, 0x55, - 0xf5, 0x97, 0xa1, 0xff, 0xcf, 0x40, 0x0, 0x5b, 0x50, 0xc9, 0xfe, 0xc6, 0x1a, 0xaf, 0x61, 0xf8, 0xf5, 0x56, 0xd8, 0xde, 0xeb, 0x67, 0x4b, 0x4a, 0x42, 0xb0, 0xf2, 0x29, 0xf1, 0x7e, 0x83, 0x2b, 0xd5, 0x25, 0xd3, 0xca, 0x42, 0x9f, 0xe9, 0xeb, 0x95, 0x4e, 0x5f, 0x6, 0xcf, 0xa1, 0x27, 0x23, 0x39, 0x6e, 0xdb, 0x65, 0xe, 0xbf, 0x7f, 0x2d, 0x72, 0x21, 0xda, 0x1b, 0x98, 0xba, 0x3, 0xfe, 0x75, 0xdb, 0x28, 0x92, 0x8a, 0xb5, 0x25, 0xc7, 0x76, 0xf7, 0xfe, 0x87, 0x16, 0x96, 0xbe, 0x70, 0x3b, 0x60, 0x49, 0x7, 0xbe, 0xb4, 0x71, 0xf9, 0x56, 0x75, 0xac, 0xf1, 0x1a, 0x4a, 0x7b, 0x9f, 0xb8, 0x75, 0xd0, 0xf9, 0xdf, 0xc9, 0xd2, 0x50, 0xc9, 0xd, 0x39, 0x70, 0x20, 0x52, 0x6e, 0xb0, 0xb1, 0x60, 0x64, 0x9e, 0xff, 0xc2, 0x47, 0xab, 0x81, 0x19, 0xb2, 0xe2, 0xf7, 0xb1, 0x74, 0x6b, 0xb0, 0xf2, 0xff, 0xd4, 0xa7, 0x1a, 0xe0, 0x30, 0x75, 0x77, 0xa8, 0xf0, 0x5c, 0xe0, 0x3c, 0x2a, 0x52, 0xd9, 0x1, 0xe3, 0xd0, 0xe4, 0xd2, 0x1c, 0xf9, 0x18, 0xe7, 0xf4, 0xb1, 0x6c, 0x87, 0x15, 0x91, 0x3a, 0xe9, 0x8c, 0xc3, 0xaf, 0xe6, 0xc2, 0x65, 0x8, 0x86, 0x96, 0xa3, 0xac, 0xc3, 0xce, 0xa3, 0x60, 0xe5, 0xef, 0x62, 0xf7, 0x92, 0x80, 0x9b, 0xe1, 0x99, 0x79, 0x79, 0xf1, 0x9, 0x38, 0x28, 0x3b, 0xe9, 0xbb, 0x3, 0x4d, 0xc6, 0x62, 0x61, 0x58, 0x3e, 0xa4, 0x95, 0xe6, 0x8d, 0x30, 0xe8, 0x79, 0x97, 0xd5, 0x9a, 0x15, 0x1b, 0xbc, 0xb7, 0xcd, 0x44, 0x75, 0x19, 0x24, 0x57, 0xf1, 0xfa, 0xdb, 0x55, 0x91, 0x37, 0xc6, 0x1a, 0xaf, 0x61, 0xfc, 0x30, 0x75, 0x16, 0x59, 0x46, 0xf8, - 0x71, 0x70, 0xb9, 0x5c, 0x1, 0x37, 0xd0, 0x1c, 0xaf, 0x9, 0xe6, 0x13, 0x78, 0xe9, 0x49, 0x6d, 0x5d, 0x5f, 0xe6, 0xf1, 0x6b, 0xee, 0x5a, 0x8d, 0x2e, 0x82, 0x45, 0xec, 0x19, 0xc1, 0x91, 0x4c, 0x52, 0x7d, 0x31, 0x38, 0x7e, 0xa7, 0x49, 0xff, 0xb1, 0xba, 0xce, 0xca, 0xff, 0x33, 0x98, 0x1f, 0x66, 0x7f, 0xc5, 0xfe, 0xd2, 0xcf, 0x5e, 0x8d, 0xa0, 0xb9, 0xb2, 0x4d, 0x62, 0xfb, 0xe7, 0x90, 0x64, 0xed, 0x58, 0xe3, 0x35, 0x8c, 0xff, 0x96, 0x14, 0xd0, 0xf6, 0x2e, 0x92, 0x66, 0x47, 0xb8, 0x29, 0x84, 0x1e, 0xf1, 0xe6, 0xd8, 0xfb, 0x2b, 0xb3, 0x87, 0xbf, 0xb1, 0x2c, 0xf3, 0xf8, 0xd5, 0xac, 0x51, 0x89, 0x2b, 0x71, 0x95, 0xd8, 0x89, 0x6e, 0x72, 0x8f, 0xd2, 0x2e, 0x9d, 0x94, 0x3f, 0xc4, 0x3, 0x77, 0x9c, 0x6b, 0xae, 0xa5, 0xfa, 0xfc, 0xa6, 0x7a, 0x3b, 0x79, 0x53, 0x6d, 0x63, 0x77, 0xf8, 0xfd, 0xb9, 0xd8, 0xa6, 0x7f, 0x7d, 0x72, 0x7b, 0x81, 0x24, 0x89, 0x5, 0xfd, 0xe6, 0x58, 0xe3, 0x35, 0x94, 0x96, 0xc7, 0x85, 0x52, 0x4f, 0x7b, 0xe0, 0x1d, 0xf7, 0x24, 0x66, 0xbf, 0x50, 0xfb, 0x21, 0xa2, 0x4b, 0xdd, 0x9d, 0xa4, 0x62, 0x9d, 0x98, 0x79, 0xfc, 0x42, 0x6f, 0x76, 0x41, 0xfb, 0x27, 0x47, 0x80, 0xa, 0x37, 0xcd, 0x43, 0xe5, 0x5e, 0x5d, 0xf1, 0xe5, 0xa9, 0xd1, 0x57, 0x1e, 0xe5, 0x28, 0x1c, 0x76, 0xbd, 0x9a, 0x6f, 0x48, 0x28, 0x2e, 0x6, 0xab, 0x23, 0xfa, 0xa0, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xed, 0x3f, 0xc7, 0xb1, 0x4a, 0x55, 0x13, 0xbb, 0x74, 0x75, 0x27, 0xdb, 0xff, 0xca, 0xc2, 0xaf, 0x6b, 0x35, 0xa7, 0x52, 0x5f, 0xb4, 0xf1, 0x9e, 0x64, 0xc6, - 0xf1, 0xab, 0xdb, 0x51, 0x87, 0xe2, 0x6a, 0xb6, 0x7b, 0x6c, 0x92, 0x1b, 0xc0, 0x34, 0x96, 0xbf, 0xd5, 0xb8, 0x0, 0x2c, 0x79, 0xd, 0x4b, 0xfb, 0xdc, 0xad, 0x84, 0x99, 0xfe, 0x98, 0xc8, 0x86, 0xaa, 0xd8, 0xc1, 0x7e, 0xbf, 0xb5, 0xbf, 0x67, 0x4f, 0x84, 0xeb, 0xd3, 0x55, 0x4d, 0xaa, 0x55, 0xc7, 0x7c, 0xff, 0xab, 0x61, 0xf2, 0xef, 0x90, 0x17, 0x51, 0xae, 0x3a, 0xff, 0x4e, 0xbf, 0xcf, 0xef, 0x96, 0x2c, 0xfc, 0x4c, 0x4e, 0xa5, 0x68, 0x46, 0x51, 0xa1, 0x8d, 0x2, 0xff, 0x85, 0x7f, 0x70, 0x15, 0xa8, 0x58, 0x25, 0xdc, 0x3f, 0x51, 0x52, 0x72, 0xfb, 0xe7, 0xb6, 0xdf, 0x8d, 0x20, 0x34, 0xca, 0x8f, 0x78, 0xdd, 0xad, 0xbf, 0x8d, 0xf0, 0x4, 0xe, 0x6b, 0xdb, 0xbe, 0x7b, 0xbe, 0x55, 0xdd, 0x30, 0xbb, 0x9a, 0x54, 0x1f, 0x3a, 0x27, 0xe7, 0x79, 0x6a, 0xdb, 0x54, 0xe5, 0xb1, 0x8d, 0x9b, 0xce, 0x7a, 0x7f, 0x79, 0xa8, 0xbf, 0xfb, 0xf7, 0xe6, 0xff, 0x8e, 0xba, 0xbc, 0xd8, 0x96, 0x8b, 0x58, 0xd0, 0xda, 0x7e, 0x35, 0xc2, 0xbd, 0xa8, 0x71, 0x35, 0x2, 0x7f, 0x62, 0xfc, 0xaa, 0xeb, 0xa3, 0x37, 0x7e, 0xe5, 0xd8, 0xfe, 0x2f, 0xa4, 0xc7, 0xda, 0xdf, 0xca, 0xd6, 0xba, 0x96, 0x3e, 0xcc, 0x6f, 0x31, 0x6, 0x95, 0x62, 0xa6, 0xaf, 0xe7, 0xbd, 0x6d, 0x36, 0x12, 0x41, 0xa3, 0x83, 0xa8, 0xa5, 0x5a, 0x65, 0x5d, 0x95, 0x38, 0x4c, 0x3e, 0xca, 0x85, 0xb6, 0x7f, 0xcf, 0x30, 0x15, 0xf4, 0xdf, 0xbe, 0xbc, 0xb1, 0xa, 0xd5, 0x41, 0x87, 0x43, 0x31, 0xd, 0x9d, 0x1e, 0x1a, 0xf3, 0xf9, 0xb6, 0xb1, 0xa6, 0xa7, 0x47, 0xa8, 0x9b, 0x1d, 0xb, 0x24, 0x9b, 0xbe, 0xe1, - 0x7, 0x6e, 0xfc, 0x65, 0x41, 0x5a, 0xfb, 0x20, 0xc7, 0xb8, 0xb, 0xbf, 0x1f, 0x38, 0x66, 0x45, 0x47, 0xf4, 0xff, 0xa9, 0x75, 0xac, 0xdb, 0x3f, 0x94, 0x5e, 0xd3, 0x39, 0x97, 0x7c, 0xda, 0x21, 0xb3, 0x79, 0xa4, 0x1e, 0x96, 0x79, 0xbb, 0x54, 0xc0, 0xf3, 0xc8, 0x60, 0xbe, 0xc7, 0x61, 0xf2, 0xef, 0xd1, 0x3b, 0x61, 0x70, 0x3e, 0xdf, 0xd7, 0x3, 0x3f, 0x9, 0x52, 0x37, 0x43, 0xf4, 0x3a, 0xb, 0x51, 0x3c, 0x78, 0x31, 0xe4, 0x75, 0xf, 0xe3, 0xd7, 0x7c, 0xe, 0x13, 0x68, 0x85, 0x60, 0x24, 0xca, 0x8c, 0x82, 0x33, 0x8e, 0xff, 0x8e, 0xef, 0xdf, 0x55, 0x1f, 0xdd, 0x48, 0xdd, 0xf, 0x78, 0xdf, 0x9e, 0x40, 0xfd, 0xf9, 0x36, 0x49, 0xa5, 0x6, 0xa0, 0xba, 0x67, 0x14, 0xfa, 0xef, 0x76, 0x1e, 0x7a, 0x90, 0x3, 0x81, 0xda, 0xdd, 0x1b, 0xa4, 0xd7, 0x3b, 0x94, 0x8b, 0x8d, 0x14, 0x51, 0x7a, 0x72, 0x4f, 0x57, 0x84, 0xa0, 0x86, 0x43, 0xdf, 0x89, 0xf1, 0x3f, 0x9e, 0x34, 0x7b, 0x66, 0xe1, 0xb3, 0xfa, 0x15, 0x94, 0x69, 0x75, 0x1d, 0xa4, 0x56, 0x19, 0x6b, 0xbc, 0x86, 0xc9, 0x9b, 0x3, 0x8d, 0x28, 0x96, 0x9f, 0xb6, 0xc6, 0x2e, 0x59, 0xbb, 0x7, 0xf7, 0x3, 0x94, 0xd, 0xe4, 0x1f, 0x7e, 0xef, 0x90, 0x24, 0xe6, 0x3d, 0x4, 0x4c, 0x1, 0x2a, 0x2a, 0xe9, 0xc9, 0xf6, 0xf6, 0xf6, 0x87, 0x9c, 0xe3, 0x91, 0xa0, 0x9d, 0xe9, 0x9c, 0x5f, 0xbf, 0x3f, 0xe9, 0x5c, 0xca, 0xa5, 0xa1, 0x5f, 0x95, 0x91, 0xf7, 0xdc, 0x7b, 0x1c, 0xcd, 0x2d, 0xe5, 0xf4, 0x4b, 0xe5, 0xfd, 0xd6, 0x78, 0x62, 0x27, 0x7a, 0x88, 0x54, 0xcb, 0x95, 0x62, 0xf8, 0x7e, 0xe5, 0x35, 0x6b, 0x2e, - 0xc6, 0xae, 0xf9, 0xd4, 0xde, 0x84, 0x33, 0xc2, 0x75, 0x47, 0xac, 0x78, 0x11, 0x76, 0xc6, 0x69, 0xed, 0xc8, 0xdb, 0x68, 0x5d, 0xbf, 0x55, 0x7b, 0x8e, 0xb8, 0x13, 0x48, 0x72, 0xad, 0xc1, 0x7c, 0x76, 0x5e, 0x77, 0xc3, 0xad, 0x4b, 0x86, 0x33, 0xce, 0x6d, 0x66, 0xf3, 0x9b, 0x8b, 0x50, 0xa1, 0xbb, 0xd, 0x67, 0x42, 0x88, 0xf3, 0x76, 0x7b, 0x4d, 0xb7, 0x4e, 0x7f, 0xe1, 0x59, 0xf3, 0xfe, 0xfd, 0x5, 0x2d, 0xe1, 0xdb, 0xbe, 0x1a, 0x7b, 0x2f, 0xa0, 0xd9, 0x2e, 0x1, 0x89, 0x91, 0xba, 0xf6, 0x95, 0xf0, 0x17, 0xa0, 0x90, 0x7d, 0x83, 0x48, 0x64, 0x98, 0x7e, 0xba, 0x90, 0x4a, 0x91, 0x93, 0xc6, 0x6b, 0x83, 0xe1, 0xed, 0xdf, 0x3, 0x3e, 0x76, 0x47, 0x51, 0x8a, 0x2e, 0x4d, 0x87, 0x5f, 0x55, 0x47, 0x8e, 0x2e, 0xeb, 0x2, 0xb5, 0xfd, 0xdd, 0xf4, 0x1e, 0xac, 0xfd, 0xec, 0xdf, 0xe2, 0x6a, 0xa9, 0x73, 0x25, 0x75, 0x72, 0x73, 0x88, 0x3a, 0x1a, 0xfb, 0x87, 0x51, 0x3c, 0x88, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0x8d, 0x85, 0xae, 0x22, 0x5e, 0xab, 0xf9, 0x4a, 0x53, 0xad, 0xa2, 0x8b, 0x76, 0xaa, 0x53, 0x83, 0x50, 0x2f, 0x6f, 0x3, 0x70, 0x6c, 0x79, 0x1, 0x8e, 0xea, 0x9e, 0x67, 0xfd, 0x73, 0x10, 0x3d, 0xe3, 0xe2, 0x3, 0x6b, 0x5e, 0xb8, 0x6, 0xf2, 0xb9, 0x44, 0x2c, 0x85, 0xe4, 0x22, 0x15, 0x94, 0x9f, 0xae, 0xbe, 0x4c, 0xfb, 0xca, 0x34, 0x93, 0x3b, 0x4f, 0xdc, 0xb2, 0x65, 0x8b, 0x94, 0xf9, 0xfd, 0x23, 0x4a, 0x29, 0xff, 0xe9, 0x7f, 0x9a, 0xc, 0xc1, 0xa7, 0x57, 0x51, 0xf6, 0x93, 0x98, 0xff, 0x71, 0x1b, 0x3d, 0xa3, - 0x71, 0x6c, 0x52, 0xa0, 0x7b, 0xd6, 0x26, 0x1c, 0xdf, 0xf, 0x10, 0x33, 0xde, 0xf8, 0x4f, 0xbe, 0x34, 0x27, 0xef, 0xbd, 0x4a, 0x36, 0x78, 0xf0, 0x14, 0xe6, 0x34, 0xde, 0x50, 0x39, 0x4c, 0x5f, 0x8f, 0x35, 0x4d, 0xf9, 0xed, 0x3d, 0x6b, 0xfc, 0x3e, 0x22, 0x5a, 0xf3, 0xac, 0x72, 0xe, 0x59, 0x9c, 0x6a, 0xfe, 0xeb, 0x3, 0x87, 0xa5, 0x51, 0xe0, 0x3f, 0x7d, 0xd1, 0x33, 0x2c, 0x97, 0xb7, 0x60, 0xe7, 0x0, 0xf, 0x3f, 0xf1, 0x6b, 0x18, 0xb9, 0x4a, 0xc0, 0x3e, 0x2f, 0x8, 0xd7, 0xe1, 0xf8, 0x78, 0x82, 0xfe, 0xea, 0xfb, 0x15, 0x37, 0xda, 0xf9, 0x7a, 0xff, 0x77, 0x7d, 0xd6, 0x44, 0xbd, 0xbd, 0x93, 0xe7, 0x4b, 0x4e, 0x37, 0x7e, 0x4b, 0x6b, 0x27, 0xb2, 0xf1, 0xe, 0xf8, 0x67, 0x38, 0xc0, 0x57, 0xcc, 0x64, 0xf8, 0xf1, 0x92, 0x89, 0x85, 0xc4, 0x6d, 0x4a, 0x87, 0xe1, 0x48, 0xbf, 0x1f, 0x22, 0x87, 0x4b, 0xed, 0xf6, 0xeb, 0x1f, 0x78, 0x7f, 0x43, 0xe9, 0x79, 0xf5, 0x17, 0x23, 0x38, 0x95, 0x47, 0x5, 0x8c, 0x55, 0xe8, 0xfd, 0x4, 0xd6, 0xb2, 0x78, 0x94, 0x6a, 0xfb, 0xec, 0x63, 0xa6, 0xe4, 0xf6, 0x6e, 0xff, 0x24, 0xf2, 0x74, 0x7b, 0x6e, 0x49, 0xdf, 0x5f, 0x51, 0x56, 0xb3, 0xad, 0x9, 0x13, 0x94, 0x6, 0x51, 0xf5, 0x80, 0x27, 0xe8, 0x45, 0xf8, 0xfd, 0xba, 0x84, 0x93, 0xed, 0xb8, 0xc7, 0x36, 0x7, 0x36, 0x8c, 0x31, 0x8f, 0x9f, 0xac, 0x79, 0x33, 0x44, 0xdb, 0x5b, 0x49, 0xad, 0xff, 0xb2, 0x75, 0xc, 0x7, 0xc7, 0xaf, 0x6a, 0xc8, 0xbf, 0xaf, 0x42, 0x45, 0x30, 0x97, 0xa, 0xa0, 0x67, 0x87, 0xcb, 0xff, 0x91, 0xd2, 0xe1, 0x23, 0x45, 0xf0, 0x6f, - 0xab, 0xd4, 0xdb, 0xa6, 0xf8, 0x69, 0x29, 0xf4, 0xd7, 0xe4, 0x52, 0xab, 0xc9, 0x36, 0x60, 0x3a, 0x49, 0xb2, 0x5e, 0x5c, 0xea, 0x9b, 0x43, 0x35, 0xb1, 0xd3, 0x8e, 0x21, 0x8e, 0x1f, 0xbb, 0xc2, 0x3b, 0xbd, 0x12, 0xfb, 0x4, 0xd5, 0xe6, 0xbf, 0xbb, 0x2b, 0x76, 0x8e, 0x35, 0x5e, 0x1f, 0x84, 0x9f, 0xac, 0x53, 0xf9, 0x17, 0xfb, 0x6b, 0xfc, 0xc8, 0x68, 0xe2, 0xb7, 0xb4, 0x52, 0xe7, 0x82, 0x36, 0x7e, 0x6c, 0xff, 0x76, 0xf2, 0x37, 0xf6, 0x6f, 0x3f, 0xe3, 0xf1, 0x13, 0xf8, 0xe4, 0xc9, 0xf2, 0xef, 0x24, 0xf9, 0xdd, 0xf9, 0xf8, 0x1b, 0x39, 0xa7, 0x12, 0x3f, 0x79, 0x22, 0x99, 0xf8, 0x29, 0x8c, 0xd7, 0xd4, 0xb5, 0x53, 0xfe, 0x72, 0x3d, 0x63, 0xcd, 0x60, 0xe, 0xca, 0x3f, 0xe4, 0x9d, 0x90, 0x7f, 0x97, 0x9f, 0x34, 0x7f, 0xd9, 0xf5, 0xc8, 0xc3, 0x7, 0x9a, 0x7d, 0x33, 0xf1, 0xb4, 0x28, 0x47, 0x44, 0x7a, 0x70, 0xc6, 0x73, 0x25, 0x68, 0x52, 0xb, 0x80, 0x6a, 0x7d, 0x32, 0x76, 0x6b, 0x62, 0x1f, 0x51, 0x23, 0xd4, 0x5e, 0xfa, 0xda, 0x49, 0xf2, 0xef, 0xb4, 0xdb, 0xd7, 0x2b, 0xba, 0x4, 0xf0, 0x45, 0xf2, 0x1, 0xae, 0x73, 0xb2, 0xe1, 0x46, 0x10, 0x2c, 0x1e, 0x6f, 0x12, 0x30, 0xd, 0xb0, 0xe3, 0xc9, 0xd3, 0x7d, 0xbf, 0xc9, 0xbc, 0x86, 0xda, 0xc2, 0x7e, 0x26, 0xf3, 0x45, 0x1f, 0xd2, 0xeb, 0x9b, 0xf0, 0xd1, 0x22, 0xf2, 0xbc, 0x18, 0xb5, 0xb8, 0xcf, 0x1f, 0x8, 0x58, 0xfc, 0xa7, 0x9e, 0xc4, 0x7f, 0x4b, 0x95, 0x12, 0xc8, 0xf7, 0x71, 0xf6, 0x86, 0xb0, 0x9c, 0x20, 0x84, 0x9a, 0x34, 0x74, 0xcd, 0x7a, 0xff, 0x92, 0xd6, 0x36, 0x12, 0xf4, 0xc8, 0x7f, - 0xa9, 0xb8, 0x84, 0xc7, 0xeb, 0xc, 0xaf, 0x20, 0xfd, 0x9f, 0x63, 0xcd, 0xaf, 0x9f, 0xd8, 0x2f, 0x90, 0xda, 0x41, 0xa7, 0x7d, 0x7e, 0x24, 0xf4, 0xf6, 0x8f, 0xa1, 0xed, 0x4b, 0x4, 0x20, 0x6e, 0xd9, 0x6d, 0x36, 0x3, 0x55, 0xf1, 0x1a, 0xf8, 0x6, 0x5b, 0x93, 0xc8, 0xfc, 0xfc, 0xf4, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x2, 0x7d, 0x5c, 0xf4, 0x35, 0xb5, 0x7f, 0x98, 0xe3, 0x72, 0xf6, 0x1a, 0x8, 0x14, 0x54, 0xc9, 0x7b, 0xc1, 0x2, 0xd6, 0xad, 0xea, 0x9, 0xc4, 0xc7, 0xba, 0x7f, 0xa6, 0xa3, 0xbd, 0x6f, 0x4b, 0x98, 0x10, 0xa4, 0x3e, 0x15, 0xb8, 0xaf, 0x44, 0x57, 0x8, 0x8, 0xaf, 0xbf, 0x3c, 0xf8, 0x3e, 0x65, 0x3d, 0x5f, 0x22, 0x91, 0xa0, 0xea, 0x2d, 0xe3, 0xfa, 0x8d, 0xda, 0xc3, 0xf, 0x4e, 0xa6, 0x1c, 0x3b, 0x58, 0x2c, 0x7f, 0x5, 0xe8, 0x69, 0x5c, 0x2d, 0x75, 0x13, 0xce, 0x40, 0x78, 0xfa, 0x11, 0xfd, 0xd3, 0x1, 0x3d, 0x65, 0xc3, 0x18, 0x7a, 0x53, 0xfd, 0x5d, 0xb1, 0x5f, 0x5, 0x34, 0x99, 0x59, 0xd3, 0xa5, 0x44, 0x8d, 0x8e, 0x35, 0x5e, 0x43, 0x69, 0x47, 0xe1, 0x7c, 0x4, 0x85, 0x7a, 0xf0, 0x55, 0xf7, 0xec, 0xf7, 0x51, 0xf9, 0x15, 0x7e, 0xb4, 0xa, 0xdf, 0x53, 0x81, 0x2b, 0x54, 0x2b, 0x9c, 0x3c, 0x6d, 0x7f, 0x9c, 0x2f, 0x4f, 0xa5, 0xdc, 0x33, 0xd5, 0xa2, 0x5c, 0xea, 0xa9, 0xc8, 0x3f, 0x1, 0x8a, 0x7c, 0x98, 0x1b, 0x10, 0x7e, 0x21, 0x98, 0x82, 0xc9, 0x4d, 0xbc, 0xf7, 0x6, 0x8d, 0xa4, 0xf6, 0xb2, 0xc0, 0xf9, 0x1c, 0x42, 0xcf, 0x5c, 0x85, 0x95, 0xf4, 0x23, 0x1b, 0x4f, 0x85, 0xcf, 0xef, 0xa7, 0xfe, 0xdb, 0x22, 0xea, - 0x2f, 0x6, 0xd0, 0x6f, 0xc5, 0xc0, 0x4, 0x86, 0xc9, 0xdf, 0x1c, 0xdc, 0x75, 0xfc, 0x61, 0x88, 0xf2, 0x69, 0x1f, 0x9f, 0xe, 0x35, 0x2d, 0x85, 0xc2, 0x1d, 0xe6, 0x50, 0x74, 0x7f, 0xcf, 0x6b, 0xca, 0xe8, 0xc7, 0x93, 0x59, 0xf6, 0x5f, 0x9, 0x4f, 0x8d, 0x3f, 0xb4, 0x82, 0x2c, 0x44, 0x3a, 0xfb, 0x65, 0xac, 0xf9, 0x2b, 0xad, 0xfc, 0xdf, 0xe5, 0x60, 0x9b, 0x9d, 0x9e, 0xb3, 0x97, 0x88, 0xbf, 0x27, 0x39, 0xac, 0x3f, 0x39, 0xde, 0xe1, 0x76, 0x5d, 0x53, 0xeb, 0x5c, 0xa7, 0x97, 0x31, 0xc3, 0x3f, 0xdd, 0xf7, 0xe7, 0x6e, 0x9c, 0x62, 0x39, 0x7, 0xb9, 0xe8, 0x2d, 0xc0, 0x23, 0x5c, 0xda, 0xf8, 0x64, 0xaa, 0x6d, 0x16, 0x31, 0xe4, 0x6e, 0x80, 0xf1, 0x9, 0x98, 0x12, 0x42, 0x5f, 0x88, 0x82, 0x5e, 0xdf, 0x5e, 0x12, 0x62, 0x44, 0x87, 0xc5, 0x17, 0x5c, 0x1d, 0x3d, 0xf, 0xba, 0xc0, 0x66, 0xea, 0x64, 0xa2, 0xbe, 0xb2, 0xfa, 0x49, 0xb6, 0x1f, 0x2, 0xfa, 0x39, 0x24, 0x5, 0x26, 0x3d, 0x8d, 0x0, 0x1b, 0x6f, 0xd, 0x75, 0xd8, 0xb5, 0x75, 0xe7, 0xf0, 0xf1, 0x81, 0x51, 0xb7, 0x5f, 0xb6, 0x9, 0xe8, 0x28, 0x3e, 0xa8, 0xde, 0x1e, 0x29, 0x8b, 0xb2, 0x5, 0x46, 0xa5, 0xd3, 0x3, 0x68, 0x89, 0x76, 0x37, 0x12, 0xc9, 0x20, 0xcc, 0x32, 0x39, 0x15, 0xfd, 0xab, 0x70, 0x1f, 0x42, 0xff, 0xde, 0xf6, 0x6d, 0xe8, 0xbd, 0x47, 0x3, 0x7e, 0x6b, 0xff, 0x3f, 0xdf, 0x64, 0xef, 0x6d, 0x17, 0xc3, 0x8, 0xda, 0x67, 0x35, 0xa2, 0x26, 0xc3, 0x2f, 0x3d, 0x8e, 0x35, 0x1, 0xdd, 0xb6, 0x89, 0x38, 0x4e, 0x60, 0xe3, 0x2f, 0xcf, 0xe1, 0x2f, 0xfc, 0x7e, 0xe7, 0x67, 0x4b, - 0x9c, 0xcf, 0x3a, 0x93, 0x54, 0xff, 0x26, 0x4e, 0xd6, 0xbf, 0x2b, 0xe4, 0x2, 0x58, 0x1, 0xc8, 0xac, 0xf8, 0x46, 0x1e, 0x5f, 0x3e, 0x72, 0xfb, 0xf, 0x87, 0x39, 0x1d, 0x7b, 0x83, 0x73, 0xa, 0x3a, 0x4b, 0x4e, 0xc1, 0xfe, 0xb, 0xbf, 0x7b, 0x3b, 0xf5, 0xfd, 0x97, 0x49, 0xd1, 0x4, 0x55, 0x36, 0xa7, 0xc0, 0xaf, 0x43, 0xfd, 0xdf, 0x9a, 0x17, 0xa6, 0xa1, 0xda, 0x9e, 0x3b, 0x70, 0x10, 0x74, 0xe1, 0xf2, 0x62, 0x1e, 0xae, 0x94, 0x41, 0xf7, 0xe4, 0x3, 0xf, 0xef, 0xe, 0xe7, 0x50, 0x3b, 0x0, 0x27, 0xf6, 0x8b, 0x63, 0xe3, 0x37, 0x38, 0x8c, 0x85, 0x28, 0xa1, 0x7f, 0x6e, 0x14, 0x1e, 0x95, 0x3f, 0x7, 0x5d, 0xff, 0x53, 0xca, 0x0, 0x3a, 0xfd, 0xeb, 0x69, 0x9a, 0x93, 0x9f, 0xd2, 0xf9, 0x89, 0x32, 0xba, 0xbb, 0xf3, 0xc0, 0x25, 0x7b, 0xd8, 0xf8, 0xb, 0xf9, 0x4a, 0xc9, 0x61, 0xee, 0xfc, 0xd1, 0x1a, 0x7f, 0x39, 0xb8, 0x59, 0x6f, 0xa5, 0x58, 0x59, 0xe3, 0x2f, 0x1d, 0x5c, 0x41, 0xf8, 0x91, 0x75, 0xf4, 0xf8, 0xc7, 0xa8, 0x6f, 0x41, 0xdf, 0x5c, 0xfe, 0x61, 0xfb, 0x95, 0x1d, 0x1f, 0xdf, 0x5, 0x2e, 0x39, 0x43, 0xc7, 0x5f, 0x86, 0xf2, 0xdf, 0x5b, 0x36, 0xff, 0xf9, 0x4e, 0x99, 0xff, 0x4c, 0xd4, 0x8b, 0x99, 0xe2, 0x3f, 0xc7, 0xd1, 0x16, 0x98, 0x6d, 0xdc, 0x25, 0x9f, 0x7f, 0x9e, 0x1e, 0xe8, 0xf9, 0xcb, 0x97, 0x9a, 0x36, 0x5e, 0xb, 0x9f, 0x57, 0x35, 0xbe, 0x87, 0xd9, 0x44, 0xa5, 0x72, 0xae, 0xc9, 0xf4, 0xc0, 0xb3, 0xc6, 0xc1, 0xa3, 0xa7, 0x96, 0xcd, 0x51, 0xf7, 0xd9, 0xf1, 0x1f, 0x7e, 0xe2, 0x8e, 0x33, 0x69, 0x23, 0x9f, 0xf6, 0x78, 0x4a, - 0x8b, 0xff, 0xa6, 0x59, 0xfc, 0xe7, 0x60, 0xfc, 0x57, 0xba, 0xfc, 0x32, 0xb4, 0x98, 0xbb, 0x2b, 0xa9, 0x73, 0x54, 0x56, 0x2b, 0xee, 0xc9, 0xfc, 0xfc, 0xc7, 0xbb, 0x9b, 0x31, 0x40, 0xed, 0xcb, 0x4b, 0x5d, 0x8e, 0xf3, 0x1e, 0xd0, 0x94, 0xe2, 0x79, 0x54, 0xfe, 0x7b, 0x1c, 0x8, 0x2d, 0x79, 0x10, 0xae, 0xe, 0xe3, 0x13, 0x7a, 0xe9, 0xf4, 0x96, 0x54, 0x44, 0x91, 0xaf, 0x52, 0xad, 0x45, 0xcf, 0xda, 0x1d, 0x3c, 0x1c, 0x11, 0x13, 0x52, 0x69, 0x22, 0xfe, 0x8b, 0x3f, 0xec, 0x1e, 0xf5, 0xf5, 0x49, 0x1f, 0xda, 0x7e, 0x9e, 0x39, 0x5, 0xf1, 0xe0, 0x4a, 0x4e, 0xed, 0x53, 0xba, 0xa2, 0xf4, 0xf9, 0x96, 0xfe, 0x4c, 0xa0, 0x66, 0x96, 0x61, 0x59, 0xb8, 0xad, 0x2b, 0x32, 0x1f, 0xef, 0xe4, 0x7d, 0x69, 0x9a, 0x21, 0x7, 0x5, 0xdb, 0xe2, 0xeb, 0x20, 0xea, 0xd0, 0xf5, 0xab, 0x6b, 0x8b, 0xfd, 0x83, 0xfa, 0x54, 0x5f, 0xfc, 0xd3, 0x12, 0x77, 0x8d, 0x20, 0xf7, 0x73, 0x3d, 0x11, 0x74, 0x53, 0x5f, 0xb7, 0xac, 0x56, 0x3d, 0xe3, 0xe2, 0xaf, 0xc2, 0xaf, 0x4e, 0xd5, 0x5f, 0x6e, 0xac, 0x37, 0x58, 0x70, 0x71, 0xc5, 0xa7, 0x80, 0x66, 0xf9, 0x2b, 0xc6, 0x91, 0x40, 0x2c, 0x40, 0x68, 0x59, 0xb7, 0xf3, 0x14, 0xd6, 0x4f, 0xb, 0x28, 0xc0, 0x60, 0x39, 0x85, 0xf1, 0x3, 0xaa, 0x3f, 0xdf, 0xe3, 0xd8, 0x58, 0x3d, 0x6f, 0x9b, 0x7d, 0x53, 0xe5, 0x3f, 0xa0, 0x61, 0xea, 0xe0, 0xf, 0x44, 0xfc, 0xe1, 0x95, 0xe3, 0x10, 0x13, 0xf4, 0xe9, 0x36, 0x6d, 0x18, 0xf3, 0x6, 0xc7, 0x13, 0xe, 0xd8, 0xff, 0xc6, 0x1a, 0xaf, 0xe1, 0xf2, 0x8, 0xdd, 0x71, 0x2e, 0xce, 0x99, 0x7c, - 0xd2, 0x62, 0x83, 0xe9, 0xe6, 0xc, 0xc8, 0xc7, 0x2, 0x49, 0xa1, 0xbb, 0x7c, 0x6e, 0x48, 0x4c, 0x3f, 0x7e, 0x55, 0x85, 0xd4, 0x7a, 0x67, 0x9b, 0x65, 0xd3, 0xdb, 0x3b, 0xd1, 0xa5, 0x50, 0x69, 0x17, 0xed, 0x43, 0x19, 0x11, 0x15, 0xa8, 0x2c, 0x7e, 0xdc, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x6b, 0xf3, 0x67, 0xe8, 0x8f, 0x24, 0xdf, 0x68, 0xda, 0xa8, 0xe8, 0x7c, 0x8, 0xe3, 0x5f, 0x8c, 0x80, 0x27, 0x50, 0xf0, 0x6a, 0xb2, 0x8e, 0x4c, 0xe6, 0xed, 0x41, 0xea, 0xa0, 0xc1, 0x57, 0x8d, 0x35, 0x7e, 0x54, 0x7f, 0x1c, 0xe6, 0x4a, 0x51, 0x16, 0xa1, 0x2f, 0x2c, 0x92, 0xbe, 0xe6, 0xc2, 0x10, 0xa0, 0x12, 0xb1, 0xd1, 0xfa, 0x37, 0x1a, 0xfb, 0x27, 0xa2, 0x5b, 0xb2, 0xe6, 0xda, 0x5a, 0xd8, 0x12, 0x6d, 0xae, 0x69, 0x47, 0xc, 0xfa, 0x5b, 0xbf, 0xb7, 0xec, 0xf, 0x9d, 0x3e, 0x4, 0xc7, 0x33, 0xd, 0x40, 0xbd, 0x4b, 0xe3, 0xad, 0x31, 0xe9, 0xfb, 0xf6, 0xaf, 0x28, 0x9e, 0x85, 0x5e, 0x3d, 0xa0, 0xdf, 0xa, 0x3f, 0x76, 0xa, 0x2d, 0x19, 0xb7, 0x7, 0x46, 0x8c, 0xdf, 0x9b, 0x2a, 0x35, 0xfe, 0xc3, 0x2a, 0xc3, 0xaf, 0x4c, 0x7, 0xd8, 0xfe, 0xb2, 0x51, 0x8a, 0x9b, 0xb1, 0xd6, 0xae, 0x91, 0x96, 0xff, 0x7c, 0xcb, 0xe0, 0x58, 0x86, 0x3c, 0x93, 0x6b, 0x41, 0xe1, 0x29, 0xc4, 0x4b, 0xb3, 0xf9, 0xb4, 0x9b, 0xc5, 0x98, 0x8b, 0xaa, 0x5a, 0x6a, 0x6d, 0xb7, 0x70, 0xe1, 0x39, 0x25, 0x41, 0xf3, 0xf6, 0x4b, 0x39, 0x7b, 0xfd, 0x88, 0x20, 0x5c, 0xbb, 0x63, 0xd, 0xed, 0xd7, 0x29, 0x73, 0xee, 0xd9, 0x83, 0xbb, 0x58, 0xfd, 0xcb, - 0x12, 0x3f, 0x6e, 0xfb, 0xc7, 0x1b, 0x7c, 0x89, 0x3b, 0x84, 0x77, 0xb8, 0xd, 0xcc, 0x3e, 0x8d, 0x5, 0xb4, 0x3a, 0xcc, 0xc7, 0x1c, 0xe1, 0x93, 0x5c, 0x95, 0xcf, 0xd, 0xea, 0x50, 0xdb, 0xf5, 0x1b, 0xf1, 0xea, 0xe9, 0xc7, 0xcf, 0x83, 0x5, 0xc5, 0xb5, 0x98, 0x8d, 0x24, 0x51, 0x83, 0x40, 0x5d, 0x7b, 0x3e, 0x1c, 0x1d, 0x78, 0x4a, 0x2f, 0x89, 0x73, 0x77, 0x22, 0x34, 0x1a, 0xfc, 0xc7, 0x13, 0x29, 0x2e, 0x34, 0x5a, 0x33, 0xce, 0x25, 0x68, 0x18, 0x37, 0x8b, 0x24, 0x2, 0x9a, 0x4b, 0xcf, 0xb7, 0x2a, 0x28, 0xe1, 0xeb, 0x6f, 0xd1, 0x2f, 0x0, 0x89, 0xdb, 0x70, 0x4a, 0x45, 0xe1, 0x5f, 0xcc, 0x0, 0x66, 0xbd, 0xed, 0xde, 0xe4, 0x57, 0xa3, 0x89, 0x84, 0x3e, 0x6c, 0x7c, 0x2f, 0xb5, 0xfe, 0xdd, 0x2e, 0xe2, 0xe9, 0xcf, 0x17, 0xb2, 0x22, 0x7a, 0x25, 0x8a, 0x90, 0xd7, 0xc2, 0xe1, 0x47, 0x88, 0x49, 0xa8, 0xb3, 0xfb, 0x33, 0xb5, 0x7, 0xd9, 0xbf, 0x51, 0xea, 0xbf, 0x1c, 0x8e, 0xf7, 0x60, 0xfe, 0x8f, 0x66, 0x39, 0x8, 0xdb, 0x7c, 0xd0, 0x80, 0x30, 0xc3, 0xa3, 0xa3, 0x69, 0xc7, 0x56, 0xe8, 0xe3, 0x63, 0x8c, 0x1, 0x29, 0x4f, 0xa, 0x91, 0x2a, 0xe5, 0xe3, 0x6c, 0x36, 0xf8, 0x6, 0xda, 0xd9, 0x5b, 0x32, 0xb1, 0x5e, 0x28, 0xe3, 0xf6, 0x9f, 0x67, 0x7e, 0xcc, 0x69, 0xf0, 0xd7, 0x52, 0x62, 0xf, 0x4b, 0x61, 0x22, 0x2f, 0x9f, 0xa5, 0xf3, 0xe, 0xc4, 0xdb, 0xdc, 0xb, 0xf, 0xc, 0xb4, 0xe4, 0x66, 0x3e, 0xfe, 0x79, 0xc9, 0x78, 0xfc, 0x4e, 0x25, 0x6a, 0x5f, 0x44, 0xcc, 0xd3, 0xe9, 0x11, 0xef, 0x9c, 0xd9, 0x14, 0x18, 0x7b, 0xbc, 0xaf, 0x7e, 0xf9, - 0xae, 0xee, 0xb5, 0xb2, 0x1b, 0xb5, 0x6e, 0xbb, 0xb6, 0xfe, 0x6a, 0xeb, 0xb4, 0xf0, 0x8f, 0xc6, 0xe9, 0x79, 0xba, 0xf8, 0x27, 0xb6, 0x9e, 0x46, 0xd7, 0x8d, 0x61, 0xe3, 0x7f, 0x94, 0xff, 0x14, 0x9c, 0x28, 0xa3, 0x3e, 0x1f, 0x37, 0x5d, 0x91, 0x12, 0x47, 0x38, 0x1e, 0xc5, 0xfe, 0x7, 0x99, 0x89, 0x42, 0xa6, 0xd5, 0x7f, 0x1b, 0xda, 0x9c, 0x77, 0x2, 0x54, 0xe8, 0x74, 0x88, 0x64, 0x2e, 0x8b, 0x1f, 0x72, 0x9d, 0xdc, 0x9e, 0xaa, 0xe, 0x5, 0x62, 0x15, 0x55, 0x77, 0xbd, 0x28, 0x67, 0x7, 0x46, 0x7a, 0xfd, 0x49, 0xbc, 0x65, 0x8f, 0xdc, 0xbd, 0xa, 0xf6, 0xcb, 0x4, 0x3e, 0x65, 0x9f, 0xe8, 0x2b, 0xa9, 0xf1, 0x39, 0x3c, 0xfe, 0x39, 0xe3, 0xf6, 0xfb, 0xd1, 0x35, 0x2c, 0x30, 0xe, 0x4c, 0x3d, 0x99, 0x1b, 0xa3, 0x6a, 0xe8, 0x67, 0xbf, 0x4c, 0x9c, 0x97, 0x12, 0xb7, 0xd4, 0xe1, 0x49, 0xab, 0x9f, 0x58, 0x3c, 0x8b, 0x61, 0x49, 0x8c, 0x77, 0xac, 0x79, 0x3, 0x2b, 0x5f, 0x9, 0x95, 0x45, 0xd4, 0x6b, 0xe2, 0xc, 0xfa, 0x21, 0xcc, 0xe1, 0xc1, 0xf, 0x33, 0x9f, 0xfb, 0xa1, 0xed, 0xcd, 0xfc, 0x4, 0xb4, 0x9c, 0xe5, 0x83, 0x2d, 0x1e, 0xe6, 0x4f, 0x5c, 0xbd, 0x63, 0x1b, 0xb0, 0x23, 0x11, 0x40, 0x87, 0x65, 0xe2, 0x48, 0xac, 0x7d, 0x9, 0x81, 0xb8, 0x69, 0x13, 0x9f, 0xa6, 0x7d, 0x78, 0x98, 0x7f, 0x96, 0x5a, 0x5f, 0x48, 0x6, 0x1f, 0xf8, 0x87, 0x6e, 0xf, 0x87, 0x9b, 0x4e, 0x9a, 0x7f, 0xe2, 0x9a, 0xa2, 0xf3, 0xd9, 0x78, 0xdc, 0x22, 0x36, 0x98, 0xd3, 0xad, 0xab, 0x91, 0xa1, 0xf5, 0x8f, 0x76, 0x30, 0x76, 0x57, 0xae, 0xbb, 0xb3, 0xa2, 0xcc, 0x3a, - 0xf2, 0x72, 0x74, 0x55, 0x62, 0xe0, 0xf1, 0x1a, 0x8e, 0x5a, 0x2d, 0x3c, 0xcf, 0x9, 0xf3, 0xaf, 0x1, 0x5b, 0xef, 0x9d, 0xb0, 0xfe, 0x69, 0x40, 0x6c, 0x72, 0x1f, 0xdb, 0xd7, 0x3a, 0xe8, 0x87, 0x5f, 0xcc, 0x8, 0x9e, 0xa5, 0xd6, 0x78, 0x3d, 0xef, 0x81, 0x68, 0x10, 0xf6, 0x66, 0xf3, 0xe3, 0x2a, 0x76, 0xb, 0x5f, 0x62, 0x9d, 0x78, 0xde, 0xa0, 0x3d, 0xa9, 0xd9, 0xad, 0x10, 0xf9, 0xe3, 0xf3, 0x71, 0x6c, 0xa7, 0xed, 0xe4, 0x88, 0xe5, 0x55, 0xdc, 0xc1, 0xc6, 0xb6, 0x6b, 0x19, 0x55, 0x71, 0x44, 0x14, 0x27, 0xe7, 0xb1, 0xe1, 0x6b, 0x32, 0xd9, 0xe2, 0x18, 0xe1, 0xf1, 0xf, 0xdd, 0xff, 0xdf, 0xc9, 0x9d, 0x8c, 0x22, 0xf1, 0x91, 0xca, 0xcf, 0xe8, 0xa9, 0xfd, 0x78, 0xf, 0x9d, 0x43, 0xa1, 0xdf, 0xc7, 0x85, 0xa2, 0x9a, 0xc1, 0x22, 0x3e, 0x47, 0x43, 0xff, 0x5a, 0x1f, 0xf3, 0x89, 0x94, 0x10, 0xcc, 0xf4, 0xf9, 0x62, 0x52, 0xeb, 0xd3, 0xf7, 0x40, 0xd5, 0xd8, 0xa2, 0x91, 0xb1, 0xd6, 0x17, 0x67, 0x1a, 0x7d, 0xa9, 0xc2, 0xf8, 0xda, 0xe4, 0xa0, 0x7f, 0xbb, 0x95, 0xe1, 0x74, 0xa1, 0xcd, 0x6f, 0xc1, 0xca, 0xf3, 0xde, 0xb6, 0x6a, 0xa4, 0xfb, 0xfe, 0x54, 0xa5, 0x9, 0xb4, 0xb7, 0x43, 0x1f, 0x7, 0xfd, 0xe8, 0x29, 0xd4, 0x1f, 0x29, 0x3d, 0xb7, 0xb6, 0x81, 0xf6, 0x6f, 0xca, 0x2, 0x7a, 0x9, 0x5c, 0xd4, 0x4d, 0x72, 0x14, 0x9e, 0x8f, 0x29, 0x58, 0x40, 0x2c, 0x8f, 0xa9, 0xe7, 0xb5, 0x33, 0x2e, 0x3e, 0xf1, 0x4c, 0xa7, 0x7, 0xe3, 0x25, 0x7, 0x8b, 0x63, 0x65, 0x83, 0xf1, 0x19, 0x4f, 0x82, 0x19, 0xf4, 0x89, 0x9e, 0x51, 0x78, 0x9e, 0x6c, 0xbe, 0xdb, - 0x8e, 0x3c, 0xa0, 0xbd, 0x97, 0xdf, 0x8c, 0x93, 0xc6, 0x47, 0x89, 0xb4, 0x13, 0xaa, 0xf7, 0x21, 0x17, 0xf4, 0x81, 0xdd, 0xd6, 0xe4, 0x3d, 0x91, 0x3, 0x3b, 0xc3, 0x77, 0x6c, 0xc0, 0x4, 0xf2, 0xfc, 0xac, 0xdc, 0x72, 0xbf, 0x8f, 0xfe, 0xcd, 0x18, 0x6b, 0xbc, 0x3e, 0x40, 0x1e, 0x2d, 0xfa, 0x35, 0xf7, 0x73, 0x2e, 0xce, 0x9b, 0xbc, 0x49, 0x8f, 0xbc, 0x5d, 0xdb, 0x10, 0xeb, 0x29, 0xd2, 0x98, 0x8c, 0xd2, 0x3f, 0x35, 0xa, 0xf8, 0x85, 0xdf, 0x2f, 0x4a, 0xe4, 0xc5, 0x4, 0x7e, 0x26, 0x9b, 0xfd, 0x28, 0xf2, 0x7, 0xd6, 0xca, 0xb3, 0x2c, 0xfb, 0x99, 0x15, 0xbf, 0x29, 0x14, 0x5e, 0x7b, 0x60, 0x75, 0xd0, 0xe4, 0x52, 0x88, 0x3e, 0xf6, 0xc2, 0xe3, 0x4d, 0xd1, 0xf5, 0xb8, 0x17, 0x9c, 0x52, 0xdb, 0xa6, 0x46, 0xd1, 0xa3, 0x8f, 0x39, 0x5e, 0x43, 0xe9, 0x3b, 0xdb, 0x4b, 0xa9, 0xaa, 0xeb, 0x7f, 0x61, 0xb7, 0x7d, 0x0, 0x73, 0xe5, 0x37, 0xa9, 0xf4, 0x61, 0x1, 0x15, 0xf7, 0xfa, 0xf5, 0x47, 0xb8, 0xd1, 0xe0, 0xbf, 0x6e, 0x6a, 0x29, 0x59, 0x1c, 0x18, 0x17, 0xfe, 0x6c, 0xad, 0xff, 0xad, 0x4e, 0x59, 0x9c, 0x21, 0xf3, 0x2e, 0x77, 0xd, 0x5b, 0x3f, 0x6d, 0xe7, 0x3, 0x44, 0x69, 0x44, 0x6d, 0xfd, 0xab, 0x7c, 0x8e, 0x67, 0x40, 0xbe, 0xbf, 0x74, 0xfd, 0x37, 0xf4, 0x44, 0x3f, 0x82, 0x42, 0xa2, 0x10, 0x2d, 0xb, 0xb7, 0xec, 0xd6, 0x94, 0x51, 0xef, 0xbf, 0xac, 0xbf, 0x2, 0x86, 0xd5, 0x5f, 0x95, 0x88, 0xe8, 0xfc, 0xeb, 0xfe, 0x3b, 0xc9, 0xee, 0xbf, 0xc6, 0xd6, 0x6, 0x57, 0xb9, 0xdf, 0x45, 0xcb, 0x19, 0xd7, 0x7f, 0x87, 0xf2, 0x9f, 0xe3, 0xfa, 0x6, - 0x7d, 0xa2, 0xf5, 0x49, 0xb5, 0xb8, 0x22, 0xe3, 0xfd, 0xf7, 0x8e, 0xe9, 0xb4, 0x3f, 0xe2, 0xbd, 0x25, 0x2e, 0xdf, 0x7c, 0xd5, 0xe7, 0x2a, 0xf0, 0x6e, 0x1f, 0x8f, 0x8e, 0xa0, 0x6d, 0xd2, 0xf4, 0x46, 0xee, 0x29, 0x93, 0x73, 0x4e, 0xc4, 0x3, 0x1d, 0x36, 0xdd, 0x58, 0x5b, 0x7c, 0x35, 0x1b, 0xcf, 0xa0, 0xcd, 0x49, 0x46, 0x4d, 0x43, 0xf8, 0xe2, 0x58, 0xe3, 0xf5, 0x41, 0xf2, 0x2f, 0x89, 0x8d, 0x60, 0x11, 0xf8, 0x2c, 0x7e, 0x9c, 0xf2, 0xe3, 0x22, 0xfb, 0x9c, 0x2e, 0xf7, 0x53, 0xb3, 0x3f, 0xd3, 0xd7, 0x3b, 0x9a, 0x2c, 0xd2, 0x72, 0xcf, 0x45, 0x41, 0x35, 0xcf, 0xca, 0xec, 0x23, 0xe1, 0x6, 0x1e, 0xfa, 0xee, 0x44, 0x11, 0x11, 0x21, 0xfb, 0xb, 0xa, 0x86, 0xad, 0xa7, 0xb9, 0xb9, 0xeb, 0x49, 0x68, 0xf7, 0xfd, 0x2a, 0x60, 0xd3, 0xc6, 0x99, 0xb7, 0xfe, 0x77, 0x48, 0xff, 0xd, 0x5f, 0xd7, 0x10, 0x5b, 0xc6, 0x6c, 0xe9, 0xfe, 0x3, 0x16, 0x3d, 0xea, 0xfd, 0x77, 0x3b, 0x81, 0x1a, 0x8c, 0x5a, 0x67, 0x59, 0xff, 0xb5, 0xe6, 0x77, 0x8f, 0xe9, 0x25, 0x54, 0x3a, 0xf2, 0x66, 0xdc, 0x7c, 0xb6, 0x4a, 0x9d, 0x82, 0x60, 0xa3, 0x16, 0x34, 0x3, 0x71, 0xc1, 0xe0, 0x46, 0x1e, 0x9f, 0xb6, 0x16, 0xf8, 0xcd, 0x9, 0x7f, 0xcd, 0x10, 0x96, 0x0, 0x5f, 0x1c, 0x49, 0xfc, 0xb4, 0xad, 0x7f, 0xe3, 0xc7, 0xf5, 0xaf, 0x77, 0x65, 0x3, 0xb9, 0x93, 0xdd, 0x4e, 0x23, 0x19, 0x15, 0xfc, 0x2c, 0xfd, 0x4b, 0xd5, 0xbb, 0xa5, 0x7f, 0x7d, 0xfe, 0x80, 0x94, 0x37, 0x8b, 0xb6, 0x3a, 0x80, 0x87, 0x35, 0x20, 0xf2, 0x24, 0x87, 0xb9, 0xbb, 0xae, 0xc2, 0x4c, 0x58, 0x1, 0xe3, - 0xba, 0xb, 0xfb, 0xb8, 0xba, 0x7a, 0xd5, 0x70, 0x4, 0x13, 0x3c, 0xfb, 0x8b, 0xc3, 0x78, 0x63, 0xac, 0xf9, 0x6d, 0x28, 0xdd, 0xbc, 0xab, 0x5, 0xb2, 0x3, 0x91, 0x23, 0xd4, 0xbb, 0xe4, 0x7b, 0x54, 0x29, 0x15, 0xef, 0x3e, 0x58, 0x32, 0x3e, 0x9f, 0x5f, 0xb3, 0xc6, 0xad, 0x39, 0xf5, 0xc5, 0xd6, 0x6a, 0x4b, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x9f, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xa9, 0x7f, 0x2a, 0xdb, 0x1a, 0x39, 0x9e, 0xde, 0xbf, 0x1b, 0x6b, 0xda, 0xfb, 0x84, 0x80, 0x44, 0xb0, 0xb6, 0x85, 0x85, 0xfc, 0x45, 0xb4, 0x7b, 0x46, 0x7d, 0x7c, 0xb2, 0x66, 0x1b, 0x8f, 0xb, 0xe6, 0x2b, 0x50, 0x23, 0xe8, 0xd3, 0xa5, 0xc8, 0x8f, 0x6b, 0x4, 0xea, 0xbc, 0x3d, 0x45, 0xa4, 0x3e, 0x4d, 0xdc, 0x4b, 0x24, 0x5, 0x7f, 0x15, 0xf, 0x4c, 0x79, 0x90, 0xd2, 0xb, 0xc1, 0x82, 0x87, 0xc0, 0x7, 0xd9, 0x81, 0x91, 0x5e, 0x7f, 0xc2, 0xbd, 0xdf, 0x63, 0x6c, 0x61, 0xcb, 0x53, 0xe3, 0xf3, 0x23, 0xf6, 0xb7, 0xaa, 0xa2, 0x97, 0x20, 0x1, 0xe3, 0x7c, 0xd6, 0x3b, 0x4c, 0xae, 0x3, 0x7, 0x8f, 0x50, 0x24, 0x9, 0xd5, 0x85, 0xdf, 0xe9, 0x42, 0x26, 0xda, 0x3b, 0x94, 0x66, 0xf3, 0x19, 0x6d, 0x93, 0xf4, 0xcd, 0xdc, 0x57, 0xa7, 0xea, 0xb3, 0x51, 0xc3, 0x85, 0x57, 0x2e, 0x81, 0xb9, 0x68, 0x50, 0xe5, 0xca, 0xfe, 0xd2, 0x7, 0x1a, 0xd1, 0xd2, 0x65, 0x7, 0x24, 0xec, 0x89, 0x88, 0xb3, 0x43, 0x93, 0xeb, 0xc9, 0x41, 0x69, 0x19, 0x36, 0xf7, 0x4, 0x5c, 0x2e, 0x47, 0xcf, 0x19, 0x97, 0xff, 0x25, 0x85, 0xdf, 0x79, 0x83, 0xf8, 0x8d, 0xf6, 0xf5, 0xe6, - 0xd5, 0xab, 0x31, 0x36, 0xdd, 0xfb, 0x9, 0xe0, 0x62, 0xf6, 0x3a, 0x54, 0xfe, 0x8d, 0x35, 0x1e, 0x1f, 0xba, 0xff, 0x5e, 0x51, 0x44, 0x65, 0xf5, 0xbe, 0x73, 0x7, 0x43, 0x40, 0x4b, 0x73, 0xf0, 0xc7, 0xca, 0x6, 0x29, 0x99, 0x22, 0xd3, 0xde, 0x4f, 0xe8, 0x21, 0x5, 0x88, 0xed, 0xb, 0x20, 0x50, 0x7e, 0x4a, 0xf6, 0x22, 0xd5, 0x1f, 0xba, 0x1c, 0xe3, 0xd1, 0x99, 0xd2, 0x1f, 0x4d, 0xbb, 0x98, 0xb9, 0x14, 0x61, 0x32, 0x37, 0x88, 0xbd, 0x44, 0xad, 0x6b, 0x9f, 0x8e, 0x90, 0x66, 0xd7, 0x8e, 0xf3, 0x9, 0xc1, 0xb1, 0x79, 0x3, 0x36, 0x21, 0xc7, 0x28, 0xcf, 0x71, 0x54, 0x7a, 0x1c, 0xab, 0x9f, 0xae, 0xda, 0xb8, 0x9, 0x89, 0x9c, 0x68, 0xc2, 0xd2, 0x78, 0x30, 0xef, 0x67, 0xfa, 0x86, 0x36, 0x56, 0x66, 0xfa, 0xe6, 0x3c, 0x9c, 0xfe, 0xf9, 0xcd, 0xa1, 0xf8, 0x7d, 0x58, 0x3c, 0xfe, 0xf, 0xfa, 0xf7, 0x6f, 0xe2, 0x37, 0x4f, 0x66, 0xab, 0x90, 0x99, 0x3d, 0x4d, 0x24, 0xe8, 0xab, 0x30, 0x14, 0xaf, 0xb1, 0xe6, 0xb7, 0xa1, 0xf4, 0x50, 0xff, 0xa3, 0x49, 0x91, 0x10, 0x23, 0xf4, 0x8e, 0x92, 0x9a, 0x38, 0x1a, 0xf8, 0xa5, 0xf3, 0x7f, 0x59, 0xfe, 0x21, 0x79, 0x70, 0x9, 0x5c, 0xcf, 0x9c, 0x43, 0x6c, 0xbe, 0xce, 0xe4, 0x1b, 0xd1, 0xc8, 0x62, 0xb6, 0x9c, 0x64, 0x58, 0xbe, 0xa7, 0xb1, 0xa6, 0x6b, 0x96, 0x14, 0x51, 0x7b, 0x21, 0x2a, 0x4d, 0x4e, 0xe1, 0xc7, 0xfc, 0xb7, 0x71, 0xd6, 0xa7, 0xd1, 0xf1, 0xdf, 0xa8, 0xfe, 0x78, 0x87, 0x9b, 0x23, 0x24, 0x10, 0xb, 0x60, 0x6e, 0x6c, 0x1f, 0xe7, 0x38, 0xba, 0x6, 0xfe, 0x5f, 0x5e, 0x6, 0xfd, 0x6e, 0x57, 0x8f, - 0xb2, 0xf7, 0x90, 0xc2, 0xf2, 0x97, 0x6c, 0xc2, 0xbb, 0xc7, 0xf3, 0x97, 0x54, 0x45, 0xd7, 0x1b, 0xb2, 0x2e, 0x97, 0x1b, 0x12, 0xe5, 0x3e, 0x18, 0xd7, 0x8c, 0xf4, 0xfa, 0x52, 0xfb, 0x7f, 0xa1, 0x72, 0x70, 0x75, 0x2f, 0x66, 0x8f, 0xf8, 0xfe, 0x3e, 0x60, 0xfc, 0x2f, 0x71, 0x8b, 0x3d, 0x9f, 0x78, 0x5a, 0xc6, 0xff, 0x86, 0x8d, 0x1f, 0x34, 0x6f, 0x82, 0x92, 0xdc, 0x2d, 0x5, 0x78, 0xa3, 0x83, 0x70, 0xf3, 0x76, 0x86, 0x9b, 0x37, 0x40, 0xe3, 0x5d, 0x1b, 0x17, 0x3a, 0xac, 0x1, 0x84, 0x8c, 0x8f, 0x1f, 0x88, 0x14, 0x4f, 0x72, 0x1c, 0xcf, 0xc4, 0x87, 0x5e, 0x5f, 0xcc, 0xf8, 0x2f, 0x17, 0x7, 0xa4, 0xd4, 0x9a, 0x19, 0xbc, 0xf6, 0x0, 0xb5, 0x5b, 0x62, 0x9f, 0xf, 0xb0, 0x31, 0xf1, 0x2, 0x7e, 0x74, 0xec, 0x17, 0x6e, 0xe, 0x53, 0xf9, 0x1, 0xcc, 0x8b, 0xb5, 0x70, 0x43, 0xe5, 0xdf, 0x7, 0xe0, 0x2d, 0xa5, 0x9a, 0x56, 0x4e, 0x1d, 0x93, 0xc2, 0xb1, 0xee, 0xaf, 0x43, 0xe9, 0x95, 0x9d, 0xcb, 0x89, 0x87, 0x38, 0x34, 0x44, 0x5e, 0xb0, 0x8e, 0xc8, 0xb9, 0x6b, 0xe8, 0x2b, 0x6f, 0xb8, 0xf7, 0xd9, 0x35, 0x32, 0x7d, 0x3d, 0xaa, 0xdf, 0xff, 0xcc, 0xf5, 0x12, 0x20, 0x27, 0x8a, 0x9e, 0x88, 0xae, 0x9e, 0x18, 0xaf, 0xa0, 0xdd, 0xb3, 0x42, 0x97, 0x42, 0xd7, 0xe7, 0x51, 0x76, 0x3c, 0xdf, 0x16, 0x21, 0xe8, 0x69, 0xb0, 0xc6, 0xa7, 0x15, 0xc2, 0xf5, 0x69, 0xaa, 0x6f, 0x34, 0xda, 0x33, 0x52, 0x3a, 0x74, 0xc9, 0xb4, 0xa0, 0x29, 0x15, 0xa3, 0x4a, 0xdc, 0xd2, 0xa3, 0x9d, 0x86, 0xf6, 0x95, 0xde, 0xba, 0x90, 0xda, 0xc7, 0xa, 0x11, 0xf7, 0x44, 0x20, 0xac, - 0xdb, 0xb4, 0xc0, 0x7b, 0xc5, 0xb5, 0xcc, 0xb9, 0xb0, 0x4a, 0x2f, 0xc5, 0x33, 0x74, 0xc9, 0x65, 0x60, 0x53, 0x98, 0x9a, 0x8d, 0x1f, 0x77, 0x89, 0xe7, 0x3f, 0xd8, 0x7, 0xc2, 0xfa, 0x3, 0xf4, 0x33, 0x30, 0xff, 0xd5, 0x82, 0x5b, 0xd1, 0x33, 0xc9, 0x3, 0x7f, 0x6a, 0xc, 0x7d, 0x62, 0x6a, 0x1f, 0x1a, 0x8d, 0x9b, 0x41, 0xfd, 0x83, 0x68, 0xc6, 0xf1, 0xac, 0x32, 0xeb, 0x8d, 0x7c, 0x43, 0xc, 0xc5, 0x39, 0xc3, 0x9d, 0x70, 0x9a, 0x38, 0x29, 0x7f, 0x9d, 0x89, 0x0, 0x71, 0xca, 0xf, 0xb8, 0x40, 0x26, 0xd8, 0x8d, 0x59, 0xdc, 0xe5, 0xfa, 0x3e, 0x5b, 0xef, 0xa1, 0x1f, 0x1b, 0x8f, 0x56, 0x1e, 0xad, 0xd0, 0x2b, 0xce, 0x38, 0xfe, 0xb, 0x3f, 0x2a, 0xa1, 0xe3, 0x5c, 0x31, 0x10, 0x55, 0x6d, 0x25, 0x12, 0x3e, 0x18, 0xe, 0x12, 0xf, 0x82, 0xdd, 0x85, 0xfe, 0x51, 0xd2, 0xbf, 0xfc, 0xb1, 0xd7, 0xf2, 0x70, 0x80, 0xb, 0x96, 0x61, 0xa7, 0x10, 0xe5, 0x19, 0xff, 0xe5, 0xa6, 0x5c, 0x5e, 0xc6, 0x7f, 0xde, 0x99, 0x8d, 0x83, 0xf1, 0xbc, 0x54, 0x98, 0x78, 0x34, 0x4b, 0x5e, 0xe2, 0x11, 0xee, 0xdb, 0xd8, 0xeb, 0x8a, 0x49, 0xc6, 0x19, 0x97, 0x3f, 0xa2, 0x49, 0x29, 0x45, 0x1e, 0x75, 0x37, 0x35, 0xce, 0xd6, 0x20, 0x1f, 0xde, 0x1e, 0xbe, 0x86, 0xb4, 0xeb, 0xe, 0x2c, 0x48, 0x3d, 0x80, 0x74, 0xf5, 0x57, 0x98, 0x8b, 0x51, 0xe4, 0x5d, 0xf6, 0x5b, 0x74, 0x4c, 0xc5, 0x1c, 0x21, 0x2a, 0xda, 0xf8, 0xd, 0x8e, 0x3f, 0xeb, 0x6a, 0x4d, 0xae, 0x1b, 0xc9, 0x14, 0x7e, 0xba, 0xba, 0x6e, 0x75, 0x35, 0x67, 0x2c, 0x7a, 0x3f, 0xbe, 0xbf, 0x61, 0x77, 0x85, 0x6e, 0x25, - 0xa4, 0x66, 0xf6, 0x23, 0xdb, 0x97, 0xc1, 0xca, 0x5e, 0xdc, 0x82, 0x85, 0xe1, 0x1c, 0xec, 0xc4, 0x89, 0x72, 0xda, 0xe7, 0x47, 0x26, 0xd5, 0x36, 0xc0, 0x83, 0xb9, 0x8c, 0x78, 0xf, 0xf8, 0x3a, 0x58, 0x7e, 0xec, 0x84, 0x95, 0x1f, 0xfb, 0x5b, 0xd2, 0xff, 0x5, 0xcf, 0xf4, 0xf6, 0xb, 0xb5, 0x87, 0xb9, 0x56, 0x4, 0xf0, 0x1c, 0x92, 0xd4, 0x3f, 0xb, 0x5d, 0xbf, 0x16, 0x89, 0xe0, 0xe0, 0x8, 0xa6, 0xb6, 0x31, 0xbc, 0xbd, 0x4f, 0xe3, 0x16, 0x18, 0xb6, 0x39, 0xea, 0x53, 0xa3, 0x35, 0x82, 0x9c, 0xe4, 0x88, 0x1a, 0xa1, 0x88, 0x51, 0x35, 0x22, 0xf5, 0x8d, 0x35, 0xbf, 0xfd, 0x2f, 0xfd, 0xb7, 0x48, 0x39, 0xa9, 0xff, 0xea, 0x1e, 0xe8, 0x5f, 0x1e, 0xb5, 0xfe, 0x8b, 0xf7, 0x5e, 0x73, 0x9e, 0xe8, 0xbf, 0x75, 0xf5, 0xe3, 0x51, 0x2c, 0x3f, 0x6b, 0x65, 0x9f, 0x29, 0xc1, 0x51, 0x6b, 0xfd, 0xb6, 0xcd, 0x49, 0x56, 0xfc, 0xcb, 0x5b, 0x4d, 0x1b, 0x67, 0xd1, 0xde, 0x3d, 0x23, 0x82, 0xee, 0x48, 0x5b, 0x4f, 0x4, 0x65, 0x23, 0xd6, 0x97, 0x47, 0x99, 0x6a, 0x17, 0x27, 0x47, 0x2c, 0x5a, 0x29, 0x1f, 0xe9, 0xef, 0xfd, 0x63, 0x75, 0x11, 0xed, 0x6, 0xd5, 0x6d, 0xce, 0x8e, 0x7, 0xaf, 0xbc, 0x72, 0xe9, 0xd2, 0x25, 0xd3, 0xd8, 0xfc, 0x25, 0x28, 0x7b, 0x5c, 0x74, 0x1, 0xbe, 0x36, 0xa, 0xf1, 0x93, 0xa5, 0x7f, 0x28, 0x80, 0x6a, 0x2e, 0x27, 0x62, 0x99, 0x42, 0xa8, 0xa1, 0xa9, 0x5a, 0xeb, 0x2f, 0x83, 0xd6, 0x49, 0x8d, 0x54, 0xec, 0x60, 0xf6, 0xcc, 0x3d, 0x48, 0x95, 0x98, 0xe9, 0x6e, 0x2d, 0x7d, 0x73, 0xe, 0xf4, 0x5f, 0xf8, 0x98, 0x42, 0xf1, 0xe8, 0x62, - 0x4f, 0xda, 0x7c, 0x40, 0xa3, 0xce, 0x6f, 0x39, 0x78, 0x8c, 0x7d, 0x1a, 0xec, 0x31, 0xa5, 0x97, 0x9f, 0x4f, 0xef, 0x67, 0x16, 0x11, 0xfb, 0x22, 0x9c, 0xda, 0xd7, 0x81, 0xe6, 0xde, 0xdf, 0x25, 0x7e, 0x1f, 0x30, 0xbc, 0xa9, 0xd3, 0x1a, 0x8b, 0x87, 0xd6, 0x58, 0x4f, 0xf6, 0xe4, 0xad, 0x6c, 0x97, 0x47, 0x3e, 0xbe, 0xc4, 0xe2, 0x87, 0x9e, 0xa2, 0xa6, 0x70, 0x92, 0xd7, 0x4a, 0xe2, 0xb9, 0x4f, 0x61, 0xda, 0xc6, 0x99, 0xc0, 0x79, 0x41, 0x2f, 0xde, 0x44, 0x2c, 0x27, 0x76, 0xd3, 0xa8, 0xeb, 0xd7, 0xaa, 0x5d, 0x57, 0x21, 0x4, 0x8d, 0x76, 0x36, 0x81, 0x32, 0x49, 0x23, 0xbc, 0x57, 0x70, 0xc8, 0xb7, 0x76, 0x5e, 0x24, 0x22, 0xcb, 0x52, 0x91, 0xee, 0xfb, 0x4b, 0x77, 0xfc, 0x1b, 0x13, 0xbf, 0x53, 0x2, 0x29, 0x80, 0xd8, 0x7a, 0xdc, 0x8e, 0xbd, 0x3c, 0x6e, 0x80, 0x5e, 0x4, 0x52, 0x32, 0xea, 0xed, 0x97, 0x52, 0xf1, 0x68, 0xf7, 0xfb, 0x69, 0xff, 0x7c, 0x92, 0x4f, 0xc5, 0xaf, 0xe1, 0xbe, 0x7f, 0xa4, 0x2f, 0xaf, 0x7f, 0x69, 0xf4, 0xc7, 0xff, 0x9a, 0x92, 0x53, 0xe0, 0xb3, 0xd4, 0xbd, 0x23, 0x82, 0xbe, 0xe1, 0xfe, 0x4e, 0x3a, 0x9a, 0xc5, 0x4f, 0x6, 0x59, 0xbe, 0xc4, 0x9f, 0xf, 0x58, 0xf2, 0xad, 0x39, 0xaa, 0x21, 0x41, 0x14, 0x41, 0x64, 0x85, 0x17, 0xfa, 0xea, 0xac, 0x25, 0x70, 0xf6, 0xde, 0x43, 0xec, 0x7c, 0xa6, 0xdb, 0xbf, 0x26, 0xfa, 0x5b, 0xfd, 0xed, 0xa, 0x83, 0xd, 0xa1, 0x7e, 0xea, 0x3e, 0x10, 0x5f, 0xee, 0xba, 0x55, 0xc1, 0xa0, 0xfe, 0x69, 0x7, 0xaa, 0x21, 0xdf, 0xf6, 0xbb, 0x96, 0x6d, 0x5f, 0xca, 0xa3, 0xe2, 0x6f, 0x47, 0x7f, - 0x5b, 0x4e, 0x45, 0x52, 0x6b, 0xcb, 0x2b, 0xfc, 0x9f, 0xb5, 0x7, 0xa6, 0x42, 0x6e, 0x87, 0xe0, 0x8, 0x1a, 0xf1, 0x2d, 0x6e, 0x65, 0xc4, 0xfa, 0xf5, 0x78, 0xbc, 0x4d, 0xad, 0xb6, 0x55, 0xed, 0xee, 0x60, 0xfb, 0x3d, 0x2c, 0x1a, 0xc9, 0xfc, 0xdb, 0xe9, 0xa6, 0x8f, 0xb7, 0x9f, 0xc8, 0x1b, 0x8f, 0x3c, 0x95, 0xfe, 0xf9, 0xc, 0xce, 0xa7, 0x93, 0x92, 0xa3, 0x3, 0x71, 0xa7, 0xf, 0x79, 0x7d, 0x3f, 0x8, 0x6a, 0x83, 0x83, 0x45, 0x9, 0xf3, 0x8c, 0xcb, 0x67, 0x9c, 0xa5, 0xff, 0x36, 0x3d, 0xf0, 0x4d, 0x70, 0x97, 0x50, 0x6, 0xf8, 0xfe, 0x43, 0xc0, 0x52, 0xde, 0x9a, 0x2a, 0x62, 0xeb, 0xb8, 0x2d, 0x15, 0xc8, 0xd6, 0xa3, 0xe9, 0xcc, 0x70, 0xa0, 0xe7, 0x8d, 0x47, 0xed, 0x6f, 0x7c, 0x97, 0xfe, 0x57, 0x71, 0xa, 0x45, 0xca, 0x77, 0xbb, 0x3c, 0x92, 0xdb, 0x39, 0xc1, 0x59, 0xe0, 0x71, 0x4d, 0x70, 0x39, 0x5d, 0x79, 0x79, 0xf2, 0x78, 0x8f, 0x28, 0xe7, 0x39, 0xb, 0x7c, 0x93, 0x7d, 0xf9, 0x6e, 0xab, 0x4c, 0xf4, 0xb0, 0xd7, 0xbc, 0x3c, 0x67, 0xde, 0x39, 0xe3, 0x27, 0xb0, 0xe2, 0x9a, 0x70, 0xe, 0x2d, 0x1e, 0xb7, 0xc7, 0x3e, 0x3f, 0xc9, 0x55, 0x40, 0x4b, 0x1e, 0x2d, 0xa9, 0x3, 0x76, 0x49, 0x77, 0xed, 0x5c, 0x49, 0x9e, 0xe0, 0x99, 0x3c, 0xc1, 0x91, 0x9b, 0x5b, 0xe0, 0xca, 0x91, 0xc5, 0xf1, 0xe7, 0xb8, 0x3d, 0xac, 0x14, 0x78, 0x3c, 0x22, 0x6d, 0x56, 0x7e, 0x7e, 0x11, 0xa5, 0xcf, 0x71, 0xbb, 0xc7, 0x8f, 0xcf, 0x73, 0x8d, 0x73, 0x4f, 0x18, 0x3f, 0xc1, 0x3d, 0x81, 0x9e, 0x3d, 0xc7, 0xe3, 0xa3, 0xaf, 0x79, 0xe3, 0xf3, 0xdc, 0xe7, 0xc8, 0x6e, - 0xb7, 0xcb, 0x5d, 0xe0, 0xa2, 0x2d, 0xcb, 0x2d, 0x90, 0x26, 0xb1, 0x2b, 0x3a, 0xb, 0x9c, 0xee, 0x7c, 0x6f, 0x7e, 0x7e, 0x81, 0x53, 0x72, 0x8e, 0x3b, 0xf9, 0x52, 0xff, 0x1f, 0xc3, 0x4d, 0x47, 0xb3, -} ; + 120, 156, 237, 125, 13, 116, 19, 87, 150, 230, 43, 169, 44, 61, 9, 89, 146, 141, 13, 178, 35, 74, 2, 11, 16, 63, 14, 2, 28, 34, 130, 98, 21, 240, 136, 5, 193, 29, 51, 116, 186, 33, 157, 237, 40, 158, 52, 237, 36, 227, 30, 217, 132, 142, 8, 142, 85, 161, 233, 32, 50, 241, 180, 210, 233, 31, 102, 54, 147, 168, 123, 231, 204, 228, 236, 9, 167, 157, 179, 147, 109, 102, 54, 59, 81, 2, 19, 51, 115, 112, 143, 115, 210, 57, 211, 59, 155, 19, 202, 144, 237, 164, 103, 227, 165, 24, 146, 142, 166, 99, 172, 125, 247, 85, 25, 104, 203, 19, 217, 99, 201, 114, 39, 245, 14, 63, 250, 84, 85, 122, 85, 183, 238, 187, 239, 222, 251, 238, 189, 47, 118, 238, 147, 239, 10, 28, 66, 239, 255, 69, 0, 185, 56, 39, 66, 40, 251, 207, 59, 254, 114, 101, 238, 90, 19, 165, 190, 238, 246, 238, 175, 108, 232, 16, 191, 183, 238, 210, 250, 79, 214, 31, 93, 31, 220, 208, 27, 150, 186, 125, 41, 244, 191, 99, 25, 116, 86, 146, 150, 139, + 233, 220, 56, 66, 82, 85, 166, 70, 50, 190, 241, 212, 55, 69, 201, 248, 90, 213, 192, 15, 114, 78, 241, 199, 225, 1, 233, 104, 247, 174, 135, 14, 175, 235, 16, 119, 53, 29, 11, 195, 111, 60, 182, 225, 192, 134, 122, 218, 219, 218, 219, 92, 13, 71, 110, 185, 240, 224, 170, 63, 83, 123, 187, 173, 251, 239, 214, 94, 235, 105, 30, 122, 41, 252, 127, 247, 159, 145, 208, 192, 63, 228, 56, 233, 229, 23, 140, 63, 91, 75, 127, 201, 32, 253, 175, 174, 125, 27, 254, 140, 126, 251, 166, 246, 45, 220, 227, 190, 13, 175, 209, 111, 254, 153, 126, 195, 191, 98, 252, 217, 190, 13, 94, 138, 126, 153, 51, 116, 255, 141, 244, 178, 20, 16, 127, 73, 191, 143, 176, 239, 47, 210, 239, 199, 232, 247, 93, 146, 145, 254, 207, 73, 223, 160, 223, 238, 237, 230, 164, 47, 209, 255, 127, 190, 127, 104, 127, 123, 247, 79, 105, 31, 237, 221, 94, 73, 222, 127, 184, 123, 225, 134, 254, 13, 127, 27, 78, 207, 219, 123, 233, 168, 229, 160, 120, 105, 205, 83, 79, 242, + 191, 106, 191, 121, 221, 227, 206, 223, 228, 244, 166, 55, 189, 233, 77, 111, 122, 211, 155, 222, 244, 166, 55, 189, 233, 77, 111, 122, 155, 149, 102, 68, 123, 184, 187, 62, 165, 61, 252, 205, 47, 174, 115, 142, 189, 253, 55, 159, 118, 206, 232, 21, 245, 183, 144, 214, 72, 95, 45, 230, 3, 56, 112, 48, 24, 18, 60, 102, 35, 34, 173, 203, 49, 255, 66, 114, 199, 191, 253, 155, 9, 95, 226, 198, 208, 196, 243, 243, 174, 111, 180, 99, 62, 153, 60, 239, 245, 138, 210, 100, 199, 243, 206, 239, 140, 96, 30, 227, 122, 33, 180, 113, 211, 161, 253, 251, 247, 147, 193, 229, 254, 22, 51, 142, 178, 131, 70, 179, 221, 87, 233, 192, 56, 109, 89, 236, 5, 172, 152, 179, 164, 209, 130, 121, 55, 182, 26, 175, 140, 202, 146, 36, 101, 249, 155, 162, 88, 56, 159, 19, 4, 187, 23, 159, 114, 61, 126, 202, 87, 105, 183, 32, 52, 102, 94, 160, 254, 188, 84, 168, 127, 29, 207, 45, 76, 214, 155, 135, 127, 26, 227, 145, 88, 85, 169, 225, 166, 225, 155, 1, + 19, 95, 105, 250, 235, 220, 15, 252, 20, 53, 59, 154, 31, 253, 228, 242, 163, 205, 133, 249, 155, 243, 147, 32, 94, 25, 234, 201, 198, 162, 162, 247, 120, 185, 233, 165, 99, 29, 235, 88, 199, 58, 86, 27, 233, 179, 97, 222, 133, 3, 23, 46, 92, 200, 37, 194, 8, 89, 207, 4, 23, 35, 47, 202, 228, 114, 239, 222, 144, 187, 57, 151, 43, 118, 127, 190, 3, 113, 255, 186, 205, 209, 14, 23, 128, 44, 247, 39, 133, 206, 175, 235, 127, 180, 10, 33, 103, 187, 108, 164, 255, 34, 36, 150, 155, 94, 19, 177, 169, 109, 1, 215, 19, 120, 213, 188, 136, 222, 91, 8, 133, 74, 255, 190, 90, 27, 48, 31, 193, 109, 38, 187, 189, 55, 151, 176, 219, 201, 157, 207, 153, 142, 246, 94, 48, 179, 131, 210, 62, 19, 57, 97, 198, 188, 19, 167, 24, 150, 21, 84, 31, 219, 196, 241, 34, 61, 132, 118, 81, 124, 134, 43, 55, 189, 242, 158, 103, 228, 33, 204, 63, 147, 188, 175, 218, 194, 35, 83, 34, 129, 200, 183, 209, 24, 247, 5, 245, 105, 164, 146, + 244, 183, 25, 243, 94, 60, 196, 64, 34, 17, 42, 120, 62, 220, 207, 105, 13, 208, 59, 42, 55, 189, 242, 238, 111, 112, 21, 216, 27, 79, 244, 88, 120, 3, 223, 155, 64, 214, 254, 53, 92, 79, 58, 99, 158, 71, 249, 209, 118, 246, 108, 209, 251, 243, 189, 180, 27, 27, 182, 200, 199, 96, 229, 19, 101, 165, 187, 11, 142, 223, 248, 206, 225, 176, 102, 92, 212, 34, 20, 41, 55, 189, 76, 182, 6, 11, 125, 143, 235, 134, 206, 217, 145, 60, 72, 233, 87, 73, 237, 55, 31, 246, 194, 49, 37, 30, 47, 200, 15, 115, 29, 51, 126, 229, 17, 226, 138, 252, 123, 90, 203, 147, 31, 195, 199, 27, 57, 36, 191, 2, 221, 73, 254, 118, 152, 79, 126, 8, 212, 172, 55, 31, 158, 198, 239, 239, 211, 6, 251, 84, 206, 31, 249, 2, 204, 87, 109, 241, 120, 48, 228, 22, 4, 7, 105, 228, 253, 100, 29, 14, 100, 100, 89, 78, 167, 164, 175, 147, 19, 141, 152, 63, 153, 100, 198, 143, 237, 217, 230, 26, 50, 242, 159, 0, 159, 63, 235, 91, 86, 109, + 176, 88, 248, 153, 210, 99, 219, 243, 139, 96, 126, 148, 207, 37, 126, 226, 166, 95, 191, 82, 238, 247, 173, 99, 29, 235, 184, 140, 242, 246, 196, 22, 204, 251, 113, 128, 170, 99, 189, 189, 194, 108, 232, 75, 95, 6, 249, 167, 234, 119, 225, 176, 125, 74, 242, 85, 214, 192, 28, 212, 95, 116, 60, 51, 252, 181, 61, 93, 195, 107, 98, 53, 40, 198, 59, 191, 245, 52, 2, 125, 240, 94, 208, 255, 235, 229, 76, 105, 250, 35, 157, 123, 128, 255, 250, 247, 31, 122, 180, 217, 227, 240, 60, 90, 240, 252, 74, 11, 220, 79, 76, 202, 40, 217, 158, 80, 86, 41, 55, 189, 242, 238, 175, 111, 61, 248, 239, 99, 227, 227, 151, 84, 214, 249, 137, 5, 35, 11, 207, 27, 184, 41, 92, 95, 231, 186, 149, 19, 234, 17, 18, 108, 8, 85, 41, 225, 194, 253, 85, 174, 133, 254, 234, 225, 183, 195, 97, 143, 157, 141, 207, 29, 227, 71, 17, 71, 222, 220, 201, 181, 112, 242, 81, 167, 10, 79, 145, 206, 4, 230, 207, 38, 79, 55, 24, 159, 222, 190, 253, 133, + 63, 94, 64, 14, 188, 101, 106, 137, 41, 230, 215, 158, 127, 251, 23, 178, 18, 67, 76, 223, 121, 33, 153, 97, 167, 7, 179, 166, 89, 167, 95, 231, 141, 152, 223, 137, 235, 221, 238, 209, 209, 158, 144, 102, 207, 165, 147, 175, 87, 115, 152, 55, 76, 229, 122, 120, 126, 245, 238, 167, 100, 239, 145, 193, 29, 152, 111, 194, 105, 35, 199, 161, 222, 132, 199, 189, 34, 176, 134, 195, 98, 173, 1, 84, 212, 54, 132, 188, 236, 247, 254, 116, 156, 154, 156, 68, 245, 123, 63, 217, 136, 229, 140, 232, 237, 127, 106, 239, 106, 31, 105, 221, 14, 235, 39, 129, 120, 200, 29, 26, 29, 133, 223, 107, 244, 19, 140, 235, 217, 249, 189, 66, 255, 172, 211, 111, 130, 253, 198, 248, 111, 11, 142, 30, 67, 71, 14, 63, 38, 77, 131, 255, 240, 212, 248, 79, 181, 223, 154, 142, 57, 129, 1, 169, 253, 198, 232, 213, 59, 126, 244, 42, 255, 125, 231, 26, 255, 17, 208, 159, 187, 127, 244, 95, 190, 187, 119, 251, 159, 127, 239, 7, 164, 114, 30, 230, 131, 184, 126, 236, + 228, 201, 95, 200, 178, 162, 242, 223, 203, 229, 227, 63, 29, 235, 88, 199, 58, 214, 241, 103, 3, 179, 249, 104, 217, 56, 226, 138, 238, 175, 38, 157, 43, 49, 47, 82, 251, 41, 20, 106, 22, 0, 55, 58, 49, 111, 195, 82, 104, 145, 199, 225, 112, 152, 233, 252, 123, 59, 243, 7, 202, 178, 156, 201, 100, 36, 170, 207, 172, 0, 253, 166, 13, 201, 10, 213, 182, 138, 208, 255, 200, 2, 208, 231, 30, 73, 167, 159, 251, 206, 29, 17, 236, 191, 179, 99, 151, 5, 33, 167, 33, 10, 202, 18, 226, 219, 248, 3, 6, 206, 240, 196, 227, 8, 137, 20, 74, 195, 65, 50, 210, 237, 39, 117, 56, 230, 243, 38, 207, 100, 98, 138, 84, 238, 247, 163, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 158, 28, 147, 145, 0, 196, 31, 167, 144, 217, 108, 52, 2, 110, 221, 13, 241, 17, 129, 248, 245, 249, 131, 103, 147, 91, 56, 163, 13, 65, 254, 32, 25, 9, 97, 158, + 224, 40, 122, 230, 217, 119, 126, 54, 217, 239, 65, 254, 96, 122, 58, 249, 131, 54, 204, 31, 79, 90, 23, 250, 124, 56, 66, 27, 228, 15, 18, 211, 120, 254, 96, 133, 157, 175, 116, 96, 39, 58, 230, 101, 223, 72, 30, 197, 247, 71, 11, 135, 115, 203, 61, 8, 165, 181, 235, 193, 63, 127, 55, 135, 32, 222, 82, 81, 20, 121, 174, 229, 15, 214, 54, 197, 170, 144, 152, 65, 81, 30, 161, 245, 165, 120, 127, 79, 223, 133, 13, 59, 15, 187, 156, 193, 141, 203, 92, 107, 151, 109, 44, 120, 126, 227, 60, 88, 111, 232, 167, 244, 146, 144, 148, 201, 148, 155, 62, 58, 214, 177, 142, 117, 252, 121, 197, 228, 132, 1, 226, 191, 134, 144, 29, 86, 123, 65, 62, 239, 133, 120, 50, 111, 48, 24, 12, 133, 220, 128, 231, 179, 227, 102, 218, 28, 118, 237, 56, 100, 52, 208, 195, 161, 201, 126, 15, 230, 67, 19, 228, 87, 77, 177, 127, 152, 127, 159, 79, 254, 235, 2, 159, 215, 143, 105, 35, 35, 59, 32, 30, 80, 205, 71, 50, 59, 60, 164, 209, 13, + 247, 35, 50, 156, 29, 29, 99, 249, 94, 207, 39, 219, 93, 22, 142, 135, 198, 250, 19, 212, 223, 146, 104, 43, 55, 61, 117, 172, 227, 114, 98, 50, 114, 23, 196, 223, 15, 109, 162, 227, 211, 227, 113, 32, 210, 103, 132, 250, 4, 146, 28, 139, 199, 179, 138, 92, 252, 254, 58, 239, 246, 147, 8, 238, 15, 250, 105, 91, 113, 227, 74, 114, 224, 240, 7, 3, 107, 221, 21, 8, 5, 253, 171, 86, 173, 240, 147, 198, 70, 208, 215, 37, 56, 55, 163, 100, 227, 164, 113, 9, 196, 151, 88, 67, 110, 183, 59, 52, 58, 247, 226, 159, 117, 172, 99, 29, 235, 248, 243, 138, 73, 231, 106, 208, 183, 100, 80, 6, 221, 130, 96, 39, 173, 141, 16, 223, 62, 148, 85, 16, 82, 148, 120, 188, 232, 253, 245, 237, 5, 125, 110, 201, 158, 136, 24, 137, 120, 125, 11, 239, 239, 223, 93, 133, 16, 174, 175, 58, 12, 1, 249, 246, 122, 45, 158, 254, 22, 118, 242, 201, 56, 213, 15, 87, 131, 127, 71, 74, 70, 88, 59, 83, 110, 122, 233, 88, 199, 58, 214, 177, + 142, 117, 172, 227, 242, 99, 210, 217, 202, 244, 23, 106, 250, 170, 250, 75, 231, 14, 240, 87, 201, 212, 244, 45, 137, 254, 226, 251, 232, 235, 216, 176, 115, 29, 118, 217, 206, 93, 252, 193, 169, 181, 2, 25, 89, 10, 249, 139, 175, 177, 131, 14, 119, 131, 245, 164, 159, 51, 124, 219, 36, 34, 14, 50, 24, 20, 7, 203, 119, 112, 65, 126, 37, 88, 195, 241, 108, 185, 233, 165, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 229, 194, 100, 240, 97, 240, 55, 167, 194, 30, 4, 33, 6, 110, 50, 242, 40, 219, 79, 64, 150, 161, 124, 171, 82, 244, 245, 66, 114, 249, 14, 255, 58, 81, 196, 78, 87, 42, 37, 165, 44, 119, 144, 202, 69, 126, 178, 22, 199, 216, 65, 143, 183, 133, 213, 195, 89, 141, 51, 12, 103, 2, 41, 210, 217, 136, 249, 51, 73, 223, 158, 8, 198, 145, 200, 208, 208, 180, 251, 211, 226, 35, 160, 77, 165, 158, 210, 180, 127, 191, 47, 194, 246, 79, 168, 224, 89, 185, 33, 100, 177, 26, 44, 208, + 213, 243, 40, 227, 117, 150, 228, 125, 173, 103, 249, 248, 102, 132, 114, 72, 1, 251, 219, 4, 239, 79, 45, 151, 99, 119, 56, 242, 206, 127, 235, 231, 31, 12, 236, 114, 195, 71, 217, 253, 118, 249, 249, 45, 239, 254, 42, 235, 33, 62, 177, 13, 248, 143, 225, 145, 13, 224, 63, 136, 82, 99, 189, 68, 253, 25, 96, 125, 62, 211, 51, 250, 255, 46, 126, 188, 255, 80, 130, 12, 38, 192, 127, 16, 5, 250, 244, 223, 19, 125, 88, 227, 63, 137, 157, 44, 83, 254, 131, 245, 124, 130, 163, 241, 120, 48, 24, 204, 42, 114, 185, 233, 165, 99, 29, 235, 248, 179, 131, 73, 167, 17, 226, 135, 234, 131, 46, 205, 127, 218, 184, 15, 228, 97, 32, 24, 44, 209, 250, 239, 229, 175, 99, 195, 142, 243, 24, 251, 35, 145, 8, 246, 251, 181, 245, 223, 128, 182, 254, 123, 23, 147, 127, 183, 224, 126, 118, 50, 172, 255, 118, 117, 99, 225, 221, 156, 69, 48, 37, 233, 249, 24, 151, 155, 94, 58, 46, 50, 63, 116, 126, 9, 243, 33, 220, 22, 100, 109, 22, 250, + 83, 227, 213, 120, 136, 87, 131, 198, 226, 81, 189, 56, 0, 199, 226, 241, 158, 223, 185, 250, 231, 190, 3, 34, 54, 80, 125, 214, 134, 254, 243, 63, 94, 204, 93, 41, 251, 253, 252, 174, 97, 210, 183, 20, 244, 251, 215, 108, 46, 27, 7, 18, 136, 12, 186, 152, 61, 112, 144, 51, 55, 252, 254, 240, 112, 225, 235, 213, 122, 89, 43, 169, 176, 148, 50, 153, 76, 225, 243, 27, 59, 253, 196, 143, 149, 154, 234, 174, 120, 93, 5, 111, 34, 7, 62, 52, 29, 141, 125, 168, 238, 95, 225, 116, 187, 153, 189, 49, 190, 63, 67, 44, 22, 103, 245, 186, 78, 39, 119, 248, 189, 239, 93, 118, 214, 63, 209, 199, 236, 9, 31, 43, 55, 47, 149, 133, 94, 208, 127, 250, 90, 125, 125, 210, 250, 37, 136, 23, 143, 37, 14, 29, 186, 53, 236, 49, 114, 164, 86, 50, 153, 187, 222, 53, 75, 72, 236, 233, 233, 137, 138, 181, 138, 143, 163, 214, 84, 123, 6, 30, 15, 5, 139, 240, 190, 12, 160, 47, 91, 187, 13, 180, 153, 220, 33, 210, 103, 135, 248, 82, + 4, 181, 210, 194, 137, 196, 126, 82, 251, 226, 7, 3, 79, 229, 140, 8, 137, 98, 70, 118, 198, 201, 96, 3, 232, 207, 214, 151, 159, 121, 246, 217, 209, 209, 172, 92, 110, 126, 203, 127, 158, 53, 108, 254, 141, 197, 14, 134, 193, 6, 33, 149, 127, 200, 226, 241, 223, 123, 239, 194, 171, 240, 134, 11, 95, 223, 13, 252, 82, 47, 73, 25, 48, 153, 167, 32, 111, 43, 216, 252, 14, 159, 61, 225, 68, 215, 164, 239, 247, 55, 227, 136, 187, 64, 26, 111, 97, 239, 247, 194, 229, 67, 135, 254, 231, 219, 239, 92, 36, 157, 219, 129, 158, 233, 239, 28, 253, 206, 24, 212, 143, 245, 213, 214, 98, 195, 230, 244, 49, 182, 159, 141, 124, 40, 54, 235, 244, 131, 252, 65, 250, 60, 66, 72, 139, 127, 238, 100, 252, 144, 54, 119, 199, 98, 74, 41, 226, 159, 43, 239, 1, 121, 113, 154, 143, 68, 58, 150, 55, 204, 159, 175, 173, 255, 170, 21, 140, 29, 238, 6, 150, 191, 224, 211, 252, 7, 144, 191, 0, 246, 178, 5, 247, 123, 28, 230, 12, 10, 29, 53, + 147, 19, 127, 0, 247, 231, 165, 71, 149, 108, 214, 85, 126, 254, 107, 93, 12, 254, 150, 20, 138, 82, 114, 197, 98, 101, 191, 159, 185, 142, 235, 92, 157, 28, 146, 195, 156, 80, 47, 220, 182, 57, 171, 197, 51, 30, 79, 146, 20, 138, 68, 120, 159, 105, 65, 177, 251, 219, 150, 58, 200, 245, 164, 198, 32, 188, 161, 13, 38, 168, 23, 255, 186, 107, 113, 245, 78, 31, 236, 63, 227, 244, 154, 236, 34, 185, 92, 141, 77, 91, 211, 199, 172, 254, 142, 14, 250, 10, 211, 37, 231, 151, 19, 22, 45, 158, 1, 217, 237, 130, 123, 218, 250, 210, 182, 84, 128, 234, 251, 99, 11, 23, 245, 72, 72, 78, 211, 223, 219, 191, 11, 31, 190, 253, 54, 140, 171, 171, 145, 47, 218, 81, 242, 252, 128, 13, 17, 168, 55, 57, 150, 179, 36, 235, 144, 1, 85, 33, 50, 18, 129, 122, 211, 43, 155, 154, 156, 213, 213, 6, 84, 114, 251, 130, 197, 167, 212, 96, 250, 228, 72, 86, 98, 241, 224, 204, 127, 111, 158, 159, 172, 192, 43, 157, 24, 7, 123, 31, 105, 55, + 176, 122, 233, 84, 94, 43, 153, 12, 149, 47, 39, 165, 162, 223, 63, 200, 187, 179, 201, 118, 248, 108, 220, 31, 247, 21, 150, 151, 139, 88, 62, 10, 3, 206, 185, 23, 255, 178, 180, 109, 1, 135, 145, 161, 61, 74, 63, 139, 38, 83, 201, 251, 227, 63, 242, 191, 159, 51, 11, 53, 2, 66, 155, 223, 61, 120, 155, 147, 205, 183, 255, 50, 126, 20, 229, 213, 15, 39, 35, 55, 96, 30, 49, 255, 180, 172, 40, 83, 212, 207, 152, 191, 153, 169, 179, 101, 167, 111, 233, 199, 147, 27, 226, 201, 31, 160, 111, 47, 234, 77, 167, 218, 202, 125, 63, 115, 29, 51, 122, 249, 176, 149, 126, 28, 235, 157, 3, 247, 243, 187, 142, 153, 189, 22, 84, 237, 181, 88, 124, 230, 242, 188, 220, 152, 217, 167, 235, 112, 218, 23, 168, 166, 19, 61, 50, 48, 121, 66, 174, 217, 123, 181, 129, 24, 219, 143, 242, 71, 72, 181, 231, 200, 131, 13, 195, 57, 65, 45, 215, 140, 36, 209, 91, 240, 247, 97, 189, 42, 69, 245, 103, 58, 251, 50, 123, 27, 246, 39, 59, 158, + 12, 68, 252, 190, 154, 106, 171, 165, 34, 239, 252, 221, 127, 48, 124, 115, 204, 137, 196, 140, 136, 188, 78, 169, 99, 230, 239, 235, 206, 241, 252, 68, 40, 224, 49, 99, 255, 38, 25, 188, 139, 229, 55, 6, 67, 33, 193, 227, 48, 82, 253, 200, 167, 218, 31, 14, 143, 48, 54, 54, 90, 2, 126, 179, 97, 62, 147, 92, 178, 204, 231, 85, 235, 151, 64, 254, 180, 87, 219, 191, 3, 242, 167, 251, 118, 248, 201, 98, 172, 48, 28, 180, 157, 39, 125, 7, 48, 223, 159, 92, 82, 135, 121, 158, 206, 62, 188, 181, 127, 205, 112, 226, 181, 140, 153, 135, 87, 118, 246, 244, 140, 247, 131, 155, 57, 253, 162, 96, 239, 70, 183, 126, 114, 37, 236, 49, 35, 180, 34, 112, 128, 83, 179, 191, 185, 140, 243, 191, 119, 26, 139, 221, 223, 194, 36, 172, 143, 202, 185, 132, 49, 72, 233, 3, 253, 47, 247, 155, 205, 227, 235, 191, 30, 142, 249, 159, 3, 234, 126, 136, 72, 118, 225, 109, 29, 134, 225, 92, 46, 236, 67, 94, 216, 46, 51, 145, 40, 55, 189, 242, + 232, 215, 122, 47, 232, 147, 50, 125, 152, 112, 216, 161, 217, 247, 148, 31, 213, 108, 219, 18, 244, 7, 251, 219, 164, 146, 247, 45, 169, 194, 60, 171, 223, 3, 242, 225, 164, 38, 29, 194, 225, 144, 233, 73, 158, 237, 47, 41, 211, 107, 50, 244, 90, 210, 183, 11, 230, 231, 243, 8, 101, 210, 169, 51, 247, 21, 212, 23, 103, 159, 126, 55, 168, 245, 136, 168, 58, 27, 14, 83, 252, 209, 105, 83, 75, 236, 67, 243, 234, 213, 61, 144, 62, 93, 252, 254, 42, 59, 65, 31, 22, 67, 148, 247, 140, 70, 163, 170, 79, 191, 124, 157, 255, 0, 198, 239, 90, 102, 31, 32, 20, 192, 167, 201, 8, 130, 247, 41, 135, 220, 161, 108, 86, 201, 206, 57, 255, 52, 227, 135, 76, 242, 9, 182, 223, 17, 101, 3, 254, 208, 87, 57, 52, 230, 30, 232, 106, 67, 38, 228, 197, 134, 226, 247, 199, 131, 191, 167, 158, 141, 198, 120, 40, 143, 30, 164, 243, 32, 140, 7, 137, 129, 168, 34, 147, 3, 255, 96, 26, 136, 141, 154, 37, 73, 122, 246, 217, 148, 115, 206, + 233, 135, 100, 196, 7, 243, 81, 38, 24, 12, 170, 254, 191, 193, 149, 160, 159, 193, 253, 103, 193, 191, 86, 124, 126, 95, 192, 246, 223, 10, 2, 240, 132, 195, 252, 75, 187, 171, 232, 120, 221, 198, 54, 251, 202, 60, 214, 202, 248, 111, 139, 230, 191, 2, 254, 171, 20, 152, 189, 207, 242, 247, 179, 115, 208, 127, 90, 185, 134, 197, 15, 209, 233, 215, 65, 167, 95, 149, 126, 77, 236, 254, 229, 108, 182, 20, 250, 30, 171, 95, 210, 238, 243, 193, 2, 230, 237, 243, 152, 252, 123, 64, 147, 127, 227, 243, 239, 90, 124, 203, 85, 250, 141, 244, 176, 253, 53, 4, 193, 46, 8, 163, 163, 115, 174, 254, 1, 219, 15, 90, 196, 41, 120, 130, 68, 66, 171, 167, 118, 58, 25, 245, 246, 43, 241, 146, 208, 15, 246, 251, 74, 38, 119, 88, 44, 84, 25, 49, 24, 184, 218, 23, 218, 88, 188, 146, 203, 216, 253, 58, 122, 232, 150, 73, 244, 197, 58, 152, 111, 150, 32, 88, 240, 16, 11, 235, 151, 179, 175, 47, 215, 179, 253, 243, 60, 205, 161, 80, 24, 252, + 207, 48, 94, 68, 28, 80, 226, 193, 32, 21, 216, 37, 120, 95, 191, 199, 214, 43, 67, 212, 214, 104, 246, 56, 28, 108, 254, 120, 38, 111, 254, 136, 50, 60, 62, 126, 233, 253, 208, 241, 27, 234, 153, 131, 241, 67, 204, 127, 79, 229, 11, 125, 28, 32, 31, 125, 223, 155, 216, 122, 136, 192, 164, 77, 41, 248, 253, 17, 246, 251, 140, 92, 225, 112, 16, 246, 143, 111, 137, 125, 160, 174, 191, 213, 185, 140, 90, 252, 149, 200, 112, 38, 112, 156, 197, 71, 96, 156, 138, 135, 220, 194, 59, 239, 216, 133, 114, 211, 171, 220, 120, 162, 189, 251, 89, 179, 127, 75, 78, 191, 190, 85, 108, 61, 18, 230, 95, 22, 239, 170, 250, 131, 163, 204, 29, 92, 4, 127, 240, 236, 63, 207, 66, 255, 233, 5, 216, 106, 54, 104, 184, 113, 5, 155, 127, 153, 179, 178, 20, 253, 53, 114, 32, 47, 98, 70, 71, 184, 55, 222, 211, 236, 97, 243, 111, 96, 252, 40, 226, 248, 77, 27, 185, 163, 93, 174, 1, 240, 78, 208, 1, 60, 204, 246, 131, 245, 226, 33, 109, 63, + 88, 105, 218, 253, 93, 23, 191, 11, 94, 144, 114, 211, 123, 166, 120, 85, 100, 239, 112, 88, 64, 82, 211, 79, 214, 32, 228, 255, 222, 151, 11, 207, 215, 91, 217, 122, 180, 2, 202, 168, 60, 58, 90, 238, 251, 207, 231, 63, 59, 188, 223, 126, 202, 13, 197, 249, 61, 120, 223, 106, 49, 87, 110, 178, 120, 109, 114, 98, 9, 172, 127, 236, 88, 87, 87, 105, 68, 156, 217, 194, 234, 149, 4, 176, 198, 129, 177, 158, 188, 243, 43, 111, 85, 215, 123, 37, 86, 46, 54, 83, 110, 122, 77, 196, 190, 239, 223, 235, 95, 183, 37, 141, 41, 107, 203, 198, 44, 71, 233, 121, 23, 179, 71, 100, 5, 118, 128, 43, 193, 251, 58, 33, 0, 61, 50, 136, 167, 250, 48, 213, 216, 201, 72, 228, 106, 189, 48, 65, 240, 228, 199, 143, 119, 54, 12, 159, 171, 80, 221, 139, 83, 241, 47, 206, 58, 255, 141, 52, 128, 255, 114, 75, 181, 203, 98, 3, 3, 152, 244, 125, 197, 79, 172, 88, 241, 152, 233, 221, 58, 205, 226, 2, 230, 47, 69, 232, 136, 180, 245, 207, + 65, 201, 120, 99, 232, 27, 176, 254, 249, 49, 4, 168, 128, 19, 158, 244, 121, 64, 95, 11, 80, 93, 155, 51, 242, 202, 99, 164, 239, 78, 230, 15, 139, 197, 232, 11, 200, 72, 147, 244, 199, 252, 127, 1, 159, 207, 231, 245, 250, 124, 53, 76, 191, 131, 250, 200, 156, 209, 236, 16, 4, 55, 227, 223, 61, 28, 202, 229, 148, 12, 10, 39, 18, 44, 255, 252, 100, 178, 189, 202, 233, 116, 138, 145, 213, 107, 72, 35, 98, 252, 122, 73, 129, 217, 58, 40, 145, 62, 30, 252, 15, 79, 128, 174, 21, 206, 184, 47, 147, 74, 86, 79, 89, 29, 1, 210, 230, 31, 177, 235, 159, 79, 158, 79, 167, 82, 78, 145, 182, 137, 247, 243, 226, 95, 45, 163, 246, 99, 218, 128, 110, 3, 180, 233, 245, 133, 201, 13, 204, 191, 246, 39, 172, 70, 99, 127, 65, 127, 89, 161, 253, 7, 139, 255, 190, 62, 91, 251, 15, 146, 202, 27, 85, 127, 82, 200, 189, 136, 154, 243, 148, 158, 22, 198, 15, 118, 33, 52, 154, 149, 75, 64, 191, 143, 126, 243, 193, 192, 102, 183, + 1, 170, 255, 173, 106, 240, 249, 180, 248, 221, 254, 167, 190, 165, 197, 239, 170, 246, 199, 53, 255, 51, 228, 127, 44, 118, 243, 212, 252, 29, 11, 186, 71, 231, 156, 254, 60, 177, 254, 184, 239, 166, 157, 92, 75, 204, 173, 10, 156, 143, 63, 41, 193, 254, 155, 147, 212, 31, 55, 143, 215, 31, 55, 219, 125, 119, 210, 241, 52, 54, 111, 128, 225, 24, 255, 155, 114, 211, 167, 240, 243, 108, 101, 241, 96, 110, 183, 27, 121, 18, 148, 255, 90, 35, 108, 60, 59, 60, 205, 163, 89, 42, 130, 138, 207, 239, 247, 128, 124, 202, 120, 65, 250, 65, 131, 253, 188, 69, 249, 24, 75, 64, 202, 74, 95, 96, 252, 183, 121, 220, 254, 181, 189, 70, 70, 22, 193, 254, 230, 214, 42, 11, 43, 31, 203, 214, 63, 114, 169, 140, 217, 200, 214, 63, 206, 150, 127, 253, 67, 139, 255, 163, 178, 56, 71, 201, 55, 238, 191, 146, 16, 196, 135, 149, 194, 255, 7, 241, 253, 103, 146, 222, 8, 8, 243, 150, 22, 53, 255, 45, 168, 141, 215, 176, 120, 7, 163, 95, 157, 70, + 63, 197, 198, 147, 151, 94, 180, 30, 237, 117, 171, 23, 103, 2, 169, 114, 211, 107, 82, 249, 71, 245, 137, 144, 219, 157, 200, 243, 159, 142, 149, 160, 63, 77, 254, 121, 33, 120, 188, 97, 249, 114, 50, 242, 135, 96, 191, 137, 236, 160, 123, 18, 127, 52, 232, 135, 199, 147, 63, 102, 64, 118, 205, 185, 252, 5, 210, 186, 22, 232, 23, 165, 234, 64, 40, 204, 230, 223, 157, 160, 47, 176, 217, 48, 99, 8, 149, 96, 254, 237, 134, 120, 200, 91, 150, 137, 145, 182, 55, 47, 95, 74, 177, 245, 75, 124, 109, 253, 146, 197, 147, 138, 105, 117, 60, 203, 135, 206, 147, 19, 191, 143, 249, 39, 147, 247, 57, 204, 102, 227, 40, 202, 160, 193, 15, 191, 12, 250, 212, 192, 2, 216, 76, 128, 42, 8, 101, 167, 223, 139, 59, 177, 224, 22, 120, 161, 26, 172, 121, 55, 34, 7, 100, 182, 126, 84, 1, 194, 198, 96, 44, 120, 125, 93, 255, 26, 14, 75, 156, 65, 164, 159, 157, 98, 245, 235, 133, 249, 239, 125, 200, 167, 84, 249, 111, 57, 240, 31, 203, 95, + 104, 99, 7, 93, 161, 144, 182, 158, 41, 51, 108, 52, 27, 201, 75, 71, 33, 30, 218, 192, 132, 223, 40, 159, 103, 127, 252, 182, 125, 91, 124, 125, 161, 240, 252, 113, 35, 236, 47, 237, 116, 187, 5, 129, 249, 159, 225, 126, 158, 212, 238, 70, 42, 126, 127, 11, 59, 130, 195, 185, 4, 147, 254, 187, 16, 253, 227, 251, 254, 55, 184, 1, 14, 29, 85, 231, 143, 43, 65, 214, 255, 59, 227, 228, 152, 125, 122, 76, 23, 251, 238, 252, 10, 54, 16, 249, 24, 54, 60, 22, 149, 47, 12, 171, 249, 165, 1, 220, 150, 97, 163, 163, 248, 247, 127, 211, 25, 227, 112, 46, 231, 0, 226, 96, 100, 114, 210, 249, 171, 82, 141, 39, 202, 142, 246, 122, 232, 32, 173, 235, 127, 20, 226, 67, 12, 199, 140, 204, 3, 35, 178, 251, 233, 79, 198, 36, 36, 138, 147, 217, 15, 229, 198, 218, 248, 25, 10, 193, 232, 133, 250, 247, 125, 8, 214, 39, 72, 146, 44, 169, 194, 166, 41, 92, 15, 252, 130, 213, 207, 83, 138, 215, 215, 198, 175, 111, 217, 154, 53, 107, + 86, 45, 246, 154, 62, 88, 106, 65, 210, 227, 170, 255, 224, 237, 127, 164, 247, 19, 190, 106, 15, 35, 135, 167, 151, 52, 114, 160, 207, 196, 226, 138, 28, 21, 69, 175, 179, 220, 244, 202, 31, 191, 141, 44, 127, 58, 30, 7, 115, 114, 22, 250, 3, 253, 37, 165, 233, 47, 180, 21, 210, 95, 202, 77, 159, 194, 250, 31, 102, 246, 218, 166, 112, 216, 227, 1, 253, 5, 236, 115, 130, 189, 255, 227, 149, 231, 168, 65, 60, 133, 235, 7, 131, 152, 151, 240, 91, 212, 84, 102, 123, 48, 20, 230, 247, 5, 160, 143, 252, 107, 202, 217, 182, 107, 243, 246, 237, 243, 216, 122, 135, 150, 255, 134, 100, 41, 79, 191, 35, 39, 16, 232, 139, 75, 144, 188, 118, 109, 213, 222, 237, 15, 46, 61, 254, 224, 240, 57, 182, 90, 34, 152, 106, 188, 94, 145, 116, 54, 248, 91, 182, 178, 120, 66, 4, 1, 221, 179, 78, 63, 117, 253, 173, 62, 28, 14, 55, 11, 215, 205, 191, 223, 62, 82, 170, 249, 247, 58, 253, 111, 197, 138, 85, 191, 165, 255, 169, 243, 239, 175, + 18, 11, 5, 117, 70, 53, 154, 28, 76, 62, 124, 131, 131, 92, 155, 196, 199, 239, 189, 55, 80, 110, 126, 203, 215, 255, 62, 125, 255, 173, 194, 244, 255, 124, 239, 191, 69, 238, 252, 161, 117, 32, 225, 54, 82, 225, 183, 233, 214, 222, 132, 22, 63, 164, 152, 67, 77, 89, 48, 127, 75, 35, 255, 206, 38, 189, 170, 249, 182, 61, 162, 229, 11, 50, 253, 47, 22, 143, 229, 229, 95, 145, 65, 12, 227, 247, 48, 124, 150, 131, 201, 57, 24, 127, 85, 4, 254, 235, 79, 62, 80, 44, 254, 99, 241, 115, 127, 149, 220, 129, 56, 3, 143, 135, 95, 149, 89, 190, 155, 11, 15, 133, 55, 82, 226, 198, 52, 254, 187, 235, 26, 255, 145, 190, 69, 234, 126, 58, 138, 2, 34, 56, 79, 191, 46, 57, 253, 198, 249, 109, 245, 117, 254, 63, 27, 246, 10, 66, 207, 168, 82, 42, 255, 31, 213, 95, 252, 43, 86, 173, 2, 255, 95, 173, 109, 17, 135, 253, 84, 217, 51, 163, 95, 211, 9, 216, 196, 232, 231, 84, 231, 19, 161, 185, 39, 75, 26, 247, 192, 251, + 60, 172, 200, 162, 120, 252, 116, 180, 186, 220, 252, 150, 247, 60, 144, 111, 25, 192, 177, 112, 79, 60, 14, 1, 148, 90, 252, 98, 0, 93, 57, 151, 67, 111, 95, 201, 21, 95, 223, 92, 10, 246, 245, 22, 22, 112, 106, 180, 121, 201, 200, 35, 126, 178, 68, 165, 87, 184, 37, 17, 99, 227, 245, 100, 82, 2, 44, 7, 146, 247, 145, 145, 131, 204, 95, 31, 18, 224, 141, 206, 193, 248, 171, 59, 127, 248, 47, 119, 36, 220, 38, 35, 109, 185, 131, 64, 207, 37, 126, 194, 97, 25, 246, 102, 130, 5, 180, 98, 247, 183, 235, 152, 1, 116, 13, 251, 149, 173, 127, 154, 241, 74, 200, 84, 247, 139, 101, 180, 23, 161, 70, 112, 35, 209, 137, 196, 68, 93, 124, 231, 112, 66, 173, 70, 132, 106, 17, 74, 154, 164, 107, 246, 36, 202, 204, 254, 248, 44, 44, 191, 62, 125, 255, 173, 130, 215, 127, 206, 247, 223, 34, 39, 88, 60, 104, 32, 30, 135, 124, 95, 120, 190, 149, 224, 79, 77, 81, 98, 10, 118, 187, 189, 4, 243, 85, 2, 243, 17, 250, 126, + 28, 118, 65, 112, 135, 130, 228, 166, 35, 214, 150, 94, 183, 26, 0, 104, 168, 48, 147, 198, 135, 192, 126, 220, 205, 112, 70, 142, 50, 125, 59, 153, 124, 32, 45, 165, 156, 98, 36, 226, 47, 55, 189, 38, 213, 39, 2, 26, 253, 100, 132, 76, 182, 249, 156, 193, 130, 98, 104, 232, 226, 212, 174, 31, 167, 55, 56, 112, 166, 64, 111, 114, 98, 11, 235, 207, 1, 139, 149, 33, 74, 191, 55, 247, 85, 161, 152, 235, 40, 59, 104, 52, 155, 153, 253, 235, 210, 252, 89, 167, 78, 189, 71, 62, 250, 185, 169, 165, 235, 3, 243, 123, 127, 249, 147, 191, 253, 234, 221, 119, 239, 212, 232, 121, 62, 197, 200, 137, 253, 96, 127, 144, 213, 218, 252, 29, 245, 166, 103, 157, 126, 35, 221, 44, 223, 195, 19, 10, 81, 18, 130, 252, 219, 13, 254, 144, 116, 70, 86, 226, 33, 161, 4, 252, 215, 87, 9, 254, 0, 57, 21, 89, 106, 172, 194, 54, 251, 253, 193, 174, 225, 139, 189, 238, 22, 132, 54, 51, 138, 49, 254, 244, 106, 249, 12, 14, 79, 51, 105, 173, + 103, 245, 209, 33, 246, 79, 206, 72, 115, 79, 254, 13, 110, 98, 250, 74, 144, 82, 79, 81, 162, 106, 62, 144, 11, 226, 237, 216, 0, 46, 1, 253, 88, 127, 136, 74, 87, 198, 129, 172, 126, 29, 228, 79, 128, 192, 165, 115, 24, 105, 60, 232, 55, 223, 172, 250, 95, 36, 42, 225, 216, 126, 56, 199, 147, 237, 34, 242, 122, 233, 16, 142, 148, 155, 94, 249, 242, 136, 141, 167, 122, 132, 2, 106, 252, 120, 235, 60, 134, 149, 120, 207, 216, 88, 41, 214, 63, 32, 63, 108, 5, 246, 250, 170, 171, 45, 212, 192, 230, 216, 250, 219, 120, 253, 135, 236, 99, 95, 32, 212, 126, 227, 51, 73, 162, 94, 204, 113, 76, 30, 246, 39, 231, 51, 122, 138, 82, 217, 245, 23, 210, 184, 140, 249, 43, 175, 214, 251, 187, 220, 225, 255, 238, 86, 177, 195, 197, 170, 1, 249, 151, 79, 60, 127, 243, 83, 1, 150, 239, 182, 216, 128, 144, 232, 181, 205, 184, 127, 179, 18, 93, 76, 88, 240, 125, 77, 198, 143, 92, 237, 27, 58, 108, 24, 103, 230, 45, 206, 74, 24, + 217, 42, 68, 115, 233, 229, 213, 10, 45, 95, 8, 210, 117, 130, 65, 107, 255, 3, 92, 79, 63, 157, 190, 122, 210, 84, 107, 58, 87, 240, 122, 19, 139, 103, 25, 107, 89, 4, 30, 116, 144, 119, 176, 191, 159, 27, 75, 116, 52, 53, 135, 226, 89, 133, 233, 7, 252, 212, 245, 145, 233, 243, 251, 122, 240, 255, 177, 245, 52, 206, 96, 200, 243, 239, 145, 145, 133, 80, 143, 227, 117, 179, 113, 158, 177, 218, 224, 227, 73, 103, 179, 166, 31, 128, 252, 203, 95, 47, 98, 247, 155, 252, 143, 223, 47, 57, 65, 229, 237, 25, 252, 37, 6, 56, 42, 63, 58, 13, 224, 191, 19, 17, 228, 23, 78, 210, 223, 165, 191, 103, 254, 138, 92, 5, 247, 218, 77, 128, 205, 193, 61, 195, 225, 216, 187, 9, 40, 231, 128, 162, 255, 244, 67, 118, 63, 182, 210, 209, 111, 105, 199, 252, 197, 200, 139, 228, 92, 206, 195, 163, 209, 209, 209, 138, 7, 230, 211, 251, 193, 139, 157, 78, 43, 139, 121, 25, 239, 95, 109, 146, 196, 244, 103, 77, 223, 43, 134, 254, 204, 236, + 131, 141, 170, 189, 243, 216, 171, 230, 25, 243, 59, 203, 63, 74, 38, 125, 213, 84, 109, 134, 69, 75, 210, 232, 209, 226, 135, 32, 122, 168, 20, 227, 71, 212, 234, 25, 192, 146, 105, 176, 96, 62, 22, 57, 17, 1, 253, 40, 198, 22, 135, 233, 20, 87, 110, 249, 55, 215, 176, 239, 251, 137, 225, 135, 17, 26, 112, 74, 94, 5, 220, 202, 190, 183, 110, 174, 66, 99, 55, 80, 125, 38, 129, 28, 83, 184, 158, 241, 235, 135, 240, 105, 118, 234, 97, 177, 250, 176, 77, 216, 26, 87, 52, 172, 198, 223, 49, 255, 183, 93, 8, 21, 189, 94, 226, 103, 29, 243, 111, 109, 226, 12, 73, 201, 128, 196, 1, 102, 67, 241, 123, 187, 22, 87, 179, 35, 226, 182, 64, 9, 250, 251, 172, 237, 63, 72, 70, 234, 89, 254, 69, 34, 17, 131, 70, 159, 111, 55, 171, 231, 4, 182, 92, 73, 250, 3, 123, 241, 100, 178, 191, 13, 90, 36, 114, 199, 253, 123, 208, 112, 34, 230, 66, 49, 86, 2, 186, 249, 101, 210, 185, 11, 232, 197, 244, 61, 36, 165, 135, 152, + 127, 250, 120, 242, 252, 16, 84, 239, 140, 136, 211, 174, 159, 93, 114, 250, 173, 55, 211, 251, 231, 145, 232, 84, 39, 189, 218, 157, 189, 44, 31, 45, 105, 68, 209, 48, 66, 223, 44, 122, 127, 64, 143, 231, 147, 71, 220, 17, 96, 64, 219, 154, 137, 251, 71, 145, 145, 245, 224, 255, 81, 237, 95, 165, 248, 249, 99, 165, 30, 191, 164, 242, 203, 48, 255, 42, 217, 172, 90, 208, 115, 150, 198, 111, 224, 234, 248, 133, 245, 204, 141, 215, 213, 143, 189, 124, 43, 62, 188, 57, 131, 81, 22, 10, 104, 7, 231, 92, 253, 161, 137, 252, 199, 214, 51, 196, 210, 141, 223, 207, 218, 254, 101, 44, 254, 254, 76, 242, 188, 193, 106, 173, 180, 153, 140, 232, 126, 215, 61, 28, 138, 241, 71, 57, 240, 135, 100, 54, 22, 221, 158, 34, 173, 187, 88, 190, 62, 148, 159, 52, 116, 119, 117, 177, 248, 165, 0, 140, 87, 230, 111, 180, 79, 60, 127, 105, 112, 227, 240, 57, 129, 54, 12, 234, 245, 208, 156, 211, 255, 88, 61, 22, 42, 111, 60, 106, 6, 164, 58, 255, + 178, 145, 44, 110, 243, 150, 164, 191, 223, 30, 191, 164, 175, 133, 249, 3, 61, 80, 76, 194, 19, 14, 179, 227, 39, 147, 190, 116, 42, 19, 241, 166, 229, 119, 89, 61, 199, 38, 28, 205, 66, 120, 73, 96, 230, 235, 187, 117, 123, 182, 115, 2, 22, 88, 188, 97, 13, 66, 109, 75, 159, 95, 196, 236, 161, 115, 247, 12, 219, 81, 46, 247, 202, 244, 229, 249, 55, 213, 248, 131, 77, 170, 188, 43, 185, 254, 2, 246, 196, 217, 100, 191, 234, 174, 88, 214, 80, 219, 180, 179, 10, 137, 212, 116, 228, 165, 49, 132, 254, 155, 137, 197, 35, 52, 105, 241, 24, 224, 95, 189, 28, 29, 14, 119, 81, 249, 162, 94, 48, 7, 245, 151, 253, 76, 127, 238, 237, 157, 60, 255, 103, 218, 191, 7, 246, 192, 141, 215, 234, 21, 229, 191, 175, 27, 193, 31, 53, 84, 67, 155, 179, 186, 250, 17, 86, 127, 186, 70, 163, 151, 199, 227, 102, 245, 103, 50, 172, 158, 44, 236, 159, 113, 67, 81, 238, 7, 143, 35, 52, 237, 124, 2, 118, 189, 225, 223, 191, 158, 140, 4, + 217, 248, 128, 244, 188, 96, 40, 63, 254, 184, 248, 250, 139, 74, 191, 106, 104, 206, 154, 15, 41, 191, 65, 188, 149, 162, 116, 248, 87, 243, 53, 53, 69, 175, 127, 57, 17, 155, 98, 183, 131, 255, 233, 225, 69, 106, 134, 206, 140, 235, 205, 146, 253, 123, 168, 126, 32, 118, 184, 180, 2, 228, 100, 125, 211, 240, 195, 49, 8, 92, 108, 42, 13, 253, 94, 172, 195, 194, 175, 207, 93, 200, 213, 174, 15, 174, 246, 175, 240, 47, 112, 66, 60, 115, 234, 85, 9, 45, 64, 47, 27, 149, 175, 147, 167, 109, 85, 168, 119, 81, 11, 227, 223, 96, 80, 33, 35, 247, 250, 73, 3, 238, 7, 231, 189, 232, 117, 38, 203, 61, 94, 243, 158, 231, 114, 59, 54, 108, 110, 194, 124, 76, 181, 63, 74, 221, 223, 66, 255, 62, 181, 126, 83, 53, 138, 217, 232, 159, 107, 242, 15, 61, 100, 64, 123, 230, 92, 124, 85, 33, 204, 255, 181, 90, 167, 209, 187, 174, 141, 219, 75, 255, 175, 253, 226, 2, 238, 240, 14, 31, 138, 126, 113, 211, 67, 137, 95, 59, 11, 231, + 207, 157, 120, 136, 249, 187, 180, 116, 235, 169, 205, 31, 79, 38, 219, 97, 50, 192, 152, 55, 170, 244, 139, 2, 253, 232, 252, 177, 223, 68, 58, 217, 252, 145, 102, 39, 211, 1, 193, 206, 127, 57, 249, 99, 237, 252, 83, 87, 245, 105, 117, 188, 100, 175, 209, 95, 100, 243, 79, 185, 233, 199, 244, 103, 63, 110, 155, 42, 61, 254, 67, 243, 239, 167, 208, 111, 34, 61, 38, 210, 171, 220, 252, 150, 247, 60, 176, 255, 17, 190, 182, 255, 145, 86, 159, 215, 227, 233, 9, 32, 217, 91, 10, 121, 49, 187, 251, 111, 149, 26, 223, 207, 232, 133, 208, 83, 223, 170, 138, 176, 122, 134, 79, 247, 215, 163, 148, 148, 225, 148, 116, 73, 250, 35, 35, 55, 179, 249, 22, 99, 236, 247, 251, 124, 13, 26, 63, 170, 227, 211, 108, 116, 48, 250, 237, 28, 167, 159, 55, 165, 197, 123, 60, 209, 1, 249, 114, 94, 52, 99, 253, 111, 243, 222, 123, 224, 49, 229, 176, 64, 121, 133, 14, 187, 25, 143, 223, 201, 252, 127, 154, 253, 49, 139, 254, 191, 171, 254, 131, 165, + 241, 71, 57, 106, 13, 92, 60, 199, 9, 78, 206, 127, 166, 228, 254, 3, 211, 147, 27, 88, 189, 60, 6, 228, 139, 211, 127, 158, 245, 205, 156, 153, 147, 255, 169, 42, 188, 145, 225, 175, 1, 63, 74, 184, 214, 41, 178, 242, 218, 165, 226, 191, 152, 202, 127, 222, 134, 137, 242, 47, 95, 95, 116, 95, 173, 183, 35, 211, 86, 238, 241, 58, 169, 252, 187, 126, 255, 55, 152, 63, 192, 127, 90, 170, 249, 3, 226, 13, 157, 184, 63, 30, 227, 28, 158, 230, 96, 243, 85, 254, 51, 104, 254, 43, 136, 103, 105, 189, 58, 126, 157, 100, 208, 197, 242, 27, 149, 152, 2, 225, 196, 211, 238, 111, 5, 126, 112, 248, 156, 135, 91, 9, 245, 43, 81, 46, 113, 174, 248, 252, 192, 242, 103, 82, 90, 248, 90, 233, 223, 23, 200, 187, 103, 146, 10, 139, 191, 127, 255, 212, 41, 210, 247, 85, 63, 111, 214, 242, 23, 60, 158, 224, 224, 234, 131, 28, 191, 7, 33, 54, 161, 72, 25, 180, 189, 191, 99, 56, 241, 230, 171, 102, 117, 117, 19, 61, 89, 110, 126, 203, + 159, 15, 9, 215, 66, 5, 78, 85, 80, 197, 181, 182, 251, 153, 255, 25, 27, 37, 122, 206, 13, 69, 215, 167, 62, 107, 251, 111, 145, 221, 91, 40, 253, 80, 75, 149, 28, 101, 152, 255, 196, 204, 252, 127, 93, 59, 209, 31, 151, 100, 191, 77, 200, 95, 173, 199, 253, 203, 111, 191, 125, 235, 27, 151, 134, 37, 182, 31, 130, 168, 229, 175, 10, 158, 112, 254, 124, 211, 13, 241, 10, 237, 18, 36, 192, 121, 189, 115, 46, 127, 122, 156, 223, 92, 70, 244, 144, 17, 57, 11, 230, 191, 228, 211, 99, 3, 243, 223, 40, 74, 108, 106, 231, 119, 50, 127, 193, 45, 194, 234, 198, 21, 254, 142, 136, 72, 250, 150, 95, 139, 63, 117, 56, 60, 100, 240, 128, 90, 31, 6, 154, 253, 185, 231, 152, 255, 99, 7, 135, 94, 201, 125, 114, 249, 242, 165, 75, 247, 146, 155, 254, 174, 30, 245, 186, 13, 16, 124, 10, 4, 157, 43, 244, 195, 42, 253, 178, 87, 227, 39, 209, 21, 123, 41, 250, 99, 251, 181, 216, 112, 58, 28, 246, 56, 60, 225, 91, 227, 116, 188, + 94, 203, 23, 140, 198, 14, 146, 198, 16, 248, 7, 143, 48, 28, 63, 233, 36, 39, 60, 16, 175, 149, 134, 244, 8, 41, 51, 247, 248, 239, 223, 29, 191, 109, 37, 26, 191, 7, 82, 191, 76, 116, 41, 230, 208, 93, 95, 217, 253, 198, 27, 82, 154, 84, 122, 96, 190, 77, 55, 213, 84, 91, 113, 85, 85, 211, 164, 227, 55, 13, 227, 87, 132, 16, 192, 25, 211, 207, 180, 122, 179, 170, 239, 101, 70, 29, 72, 206, 229, 173, 23, 76, 23, 223, 168, 217, 31, 71, 48, 226, 222, 164, 255, 111, 83, 8, 215, 35, 67, 60, 23, 170, 154, 202, 126, 17, 211, 166, 31, 196, 255, 89, 177, 213, 231, 172, 182, 240, 6, 67, 88, 171, 191, 241, 43, 53, 254, 79, 178, 179, 249, 99, 179, 230, 63, 144, 93, 152, 233, 51, 219, 180, 120, 74, 49, 218, 95, 110, 126, 171, 101, 245, 151, 104, 227, 185, 214, 109, 240, 60, 80, 127, 170, 9, 71, 221, 208, 4, 135, 99, 239, 153, 125, 139, 89, 116, 28, 207, 206, 18, 181, 120, 55, 143, 27, 244, 135, 34, 208, 147, + 233, 75, 103, 147, 237, 53, 53, 53, 247, 189, 255, 254, 125, 53, 181, 31, 44, 230, 152, 246, 98, 110, 27, 67, 209, 77, 37, 247, 159, 176, 249, 74, 173, 87, 102, 116, 56, 4, 55, 105, 92, 48, 190, 222, 204, 2, 166, 10, 203, 187, 249, 28, 142, 178, 124, 159, 110, 112, 75, 143, 251, 227, 114, 60, 138, 186, 144, 104, 43, 245, 253, 87, 172, 220, 199, 226, 213, 178, 8, 61, 110, 64, 1, 171, 249, 136, 228, 201, 86, 34, 180, 250, 239, 41, 207, 167, 126, 90, 244, 122, 211, 249, 243, 87, 163, 182, 222, 135, 2, 144, 17, 54, 237, 241, 239, 12, 1, 63, 221, 204, 248, 233, 86, 144, 231, 243, 65, 159, 149, 44, 22, 174, 162, 210, 209, 92, 242, 250, 122, 108, 63, 128, 179, 201, 37, 28, 199, 209, 225, 203, 87, 108, 232, 128, 248, 191, 177, 143, 77, 78, 132, 172, 81, 140, 198, 227, 55, 181, 112, 42, 122, 127, 55, 141, 239, 223, 147, 129, 130, 112, 51, 238, 127, 176, 150, 229, 211, 209, 143, 241, 222, 102, 71, 201, 227, 93, 139, 78, 191, 202, + 175, 141, 231, 183, 13, 67, 193, 158, 194, 207, 91, 1, 245, 78, 152, 43, 99, 236, 224, 204, 227, 29, 103, 138, 115, 255, 21, 113, 55, 209, 161, 242, 211, 167, 17, 250, 63, 188, 106, 20, 85, 208, 191, 94, 250, 215, 143, 88, 204, 187, 186, 120, 6, 203, 231, 103, 115, 185, 151, 16, 219, 38, 97, 234, 173, 22, 49, 189, 103, 158, 205, 106, 197, 16, 5, 100, 69, 118, 87, 29, 155, 29, 88, 60, 223, 132, 147, 89, 208, 67, 181, 90, 172, 115, 252, 184, 253, 218, 113, 7, 164, 192, 79, 114, 221, 132, 102, 49, 227, 90, 103, 93, 45, 111, 177, 216, 109, 21, 216, 52, 191, 218, 225, 132, 102, 119, 58, 77, 230, 74, 71, 101, 165, 64, 113, 181, 195, 49, 127, 190, 213, 86, 229, 168, 157, 95, 235, 168, 165, 71, 171, 157, 46, 250, 175, 117, 190, 213, 81, 141, 29, 14, 155, 195, 110, 115, 56, 172, 22, 187, 121, 33, 237, 212, 49, 207, 62, 207, 81, 89, 83, 89, 105, 159, 103, 158, 87, 117, 125, 87, 185, 207, 121, 251, 255, 155, 255, 84, 91 +}; diff --git a/examples/EVE_Test_ESP32_PlatformIO/src/tft_data.h b/examples/EVE_Test_ESP32_PlatformIO/src/tft_data.h index fe01be7..9a44458 100644 --- a/examples/EVE_Test_ESP32_PlatformIO/src/tft_data.h +++ b/examples/EVE_Test_ESP32_PlatformIO/src/tft_data.h @@ -12,6 +12,6 @@ extern const uint8_t logo[239] PROGMEM; extern const uint8_t pic[3844] PROGMEM; -extern const uint8_t flash[12753] PROGMEM; +extern const uint8_t flash[8199] PROGMEM; #endif /* TFT_DATA_H */ \ No newline at end of file diff --git a/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/platformio.ini b/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/platformio.ini index 7538da2..7c3f5dc 100644 --- a/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/platformio.ini +++ b/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/platformio.ini @@ -19,5 +19,9 @@ build_flags = -D EVE_EVE3_50G [env:samc21j18a] board = samc21j18a +upload_protocol = jlink +build_unflags = -Os build_flags = ${env.build_flags} + -D EVE_DMA + -O2 diff --git a/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft.c b/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft.c index 75784b0..f5f932e 100644 --- a/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft.c +++ b/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft.c @@ -1,8 +1,8 @@ /* -@file tft.c / tft.cpp +@file tft.c @brief TFT handling functions for EVE_Test project -@version 1.20 -@date 2022-12-10 +@version 1.21 +@date 2023-01-08 @author Rudolph Riedel @section History @@ -19,12 +19,16 @@ - renamed PINK to MAGENTA 1.20 +- several minor changes + +1.21 - several minor changes */ #include "EVE.h" #include "tft_data.h" +#include "tft.h" #define TEST_UTF8 0 @@ -47,16 +51,20 @@ #define MEM_LOGO 0x000f8000 /* start-address of logo, needs 6272 bytes of memory */ #define MEM_PIC1 0x000fa000 /* start of 100x100 pixel test image, ARGB565, needs 20000 bytes of memory */ - #define MEM_DL_STATIC (EVE_RAM_G_SIZE - 4096) /* 0xff000 - start-address of the static part of the display-list, upper 4k of gfx-mem */ -uint32_t num_dl_static; /* amount of bytes in the static part of our display-list */ +uint32_t num_dl_static = 0; /* amount of bytes in the static part of our display-list */ uint8_t tft_active = 0; -uint16_t num_profile_a, num_profile_b; +uint16_t num_profile_a = 0; +uint16_t num_profile_b = 0; #define LAYOUT_Y1 66 +void touch_calibrate(void); +void initStaticBackground(void); + + void touch_calibrate(void) { @@ -210,6 +218,8 @@ void touch_calibrate(void) /* write down the numbers on the screen and either place them in one of the pre-defined blocks above or make a new block */ #if 0 /* calibrate touch and displays values to screen */ + +#if 1 EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); @@ -218,15 +228,16 @@ void touch_calibrate(void) EVE_cmd_dl(DL_DISPLAY); EVE_cmd_dl(CMD_SWAP); EVE_execute_cmd(); +#else + EVE_calibrate_manual(EVE_HSIZE, EVE_VSIZE); +#endif - uint32_t touch_a, touch_b, touch_c, touch_d, touch_e, touch_f; - - touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); - touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); - touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); - touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); - touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); - touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); + uint32_t touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); + uint32_t touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); + uint32_t touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); + uint32_t touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); + uint32_t touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); + uint32_t touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); @@ -260,25 +271,25 @@ void touch_calibrate(void) void initStaticBackground(void) { EVE_cmd_dl(CMD_DLSTART); /* Start the display list */ - EVE_cmd_dl(TAG(0)); /* do not use the following objects for touch-detection */ + EVE_cmd_dl(DL_TAG); /* no tag = 0 - do not use the following objects for touch-detection */ - EVE_cmd_bgcolor(0x00c0c0c0); /* light grey */ + EVE_cmd_bgcolor(0x00c0c0c0UL); /* light grey */ - EVE_cmd_dl(VERTEX_FORMAT(0)); /* reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ + EVE_cmd_dl(DL_VERTEX_FORMAT); /* set to 0 - reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ /* draw a rectangle on top */ EVE_cmd_dl(DL_BEGIN | EVE_RECTS); - EVE_cmd_dl(LINE_WIDTH(1*16)); /* size is in 1/16 pixel */ + EVE_cmd_dl(LINE_WIDTH(1U*16U)); /* size is in 1/16 pixel */ EVE_color_rgb(BLUE_1); - EVE_cmd_dl(VERTEX2F(0,0)); + EVE_cmd_dl(DL_VERTEX2F); /* set to 0 / 0 */ EVE_cmd_dl(VERTEX2F(EVE_HSIZE,LAYOUT_Y1-2)); EVE_cmd_dl(DL_END); /* display the logo */ EVE_color_rgb(WHITE); EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS); - EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56, 56); + EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56U, 56U); EVE_cmd_dl(VERTEX2F(EVE_HSIZE - 58, 5)); EVE_cmd_dl(DL_END); @@ -341,7 +352,7 @@ void TFT_init(void) if (E_OK == EVE_init_flash()) { - EVE_cmd_flashread(MEM_FONT, 84928, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ + EVE_cmd_flashread(MEM_FONT, 61376, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ } #endif /* TEST_UTF8 */ @@ -353,7 +364,6 @@ void TFT_init(void) } } - uint16_t toggle_state = 0; uint16_t display_list_size = 0; @@ -394,11 +404,12 @@ void TFT_touch(void) } } break; + default: + break; } } } - /* dynamic portion of display-handling, meant to be called every 20ms or more */ @@ -406,7 +417,7 @@ void TFT_display(void) { static int32_t rotate = 0; - if(tft_active != 0) + if(tft_active != 0U) { #if defined (EVE_DMA) uint16_t cmd_fifo_size; @@ -418,18 +429,18 @@ void TFT_display(void) EVE_cmd_dl_burst(CMD_DLSTART); /* start the display list */ EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | WHITE); /* set the default clear color to white */ EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); /* clear the screen - this and the previous prevent artifacts between lists, Attributes are the color, stencil and tag buffers */ - EVE_cmd_dl_burst(TAG(0)); + EVE_cmd_dl_burst(DL_TAG); EVE_cmd_append_burst(MEM_DL_STATIC, num_dl_static); /* insert static part of display-list from copy in gfx-mem */ /* display a button */ EVE_color_rgb_burst(WHITE); - EVE_cmd_fgcolor_burst(0x00c0c0c0); /* some grey */ - EVE_cmd_dl_burst(TAG(10)); /* assign tag-value '10' to the button that follows */ + EVE_cmd_fgcolor_burst(0x00c0c0c0UL); /* some grey */ + EVE_cmd_dl_burst(DL_TAG+10U); /* assign tag-value '10' to the button that follows */ EVE_cmd_button_burst(20,20,80,30, 28, toggle_state,"Touch!"); - EVE_cmd_dl_burst(TAG(0)); /* no touch */ + EVE_cmd_dl_burst(DL_TAG); /* no touch */ /* display a picture and rotate it when the button on top is activated */ - EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100, 100); + EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100U, 100U); EVE_cmd_dl_burst(DL_SAVE_CONTEXT); EVE_cmd_dl_burst(CMD_LOADIDENTITY); @@ -438,7 +449,7 @@ void TFT_display(void) EVE_cmd_translate_burst(65536 * -70, 65536 * -50); /* shift back */ EVE_cmd_dl_burst(CMD_SETMATRIX); - if(toggle_state != 0) + if(toggle_state != 0U) { rotate += 256; } diff --git a/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.c b/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.c index b274913..2d47234 100644 --- a/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.c +++ b/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.c @@ -86,69 +86,57 @@ const /*__flash*/ uint8_t pic[3844] PROGMEM = /* Source File: Funtype.zlib unified.blob : 0 : 4096 -Funtype_24_ASTC.glyph : 4096 : 80832 -Funtype_24_ASTC.xfont : 84928 : 320 -z-lib compressed, unpacked size is 85248 +Funtype_24_ASTC.glyph : 4096 : 57280 +Funtype_24_ASTC.xfont : 61376 : 320 +z-lib compressed, unpacked size is 61952 The font is this one: https://fontlibrary.org/de/font/funtype -Converted with EAB using an ASCII map file to reduce the number of glyphs from 364 to 187. -This is only included for the purpose to demonstrate how to handle UTF-8 fonts with BT81x. +Converted with EAB 2.7.1 using an ASCII map file to reduce the number of glyphs to 119. +Glyphs are ASCII plus a select few from "Latin 1 Supplement" : ©«°±²³´µ¹»¼½¾ÄÖ×Üßäëö÷øü +This is only included to demonstrate how to handle UTF-8 fonts with BT81x. */ -const uint8_t flash[12753] PROGMEM = +const uint8_t flash[8199] PROGMEM = { - 0x78, 0x9c, 0xed, 0x7d, 0xd, 0x7c, 0x14, 0xd5, 0xb9, 0xfe, 0x33, 0x33, 0x9b, 0x99, 0x49, 0x76, 0x93, 0x5d, 0x64, 0x81, 0x5, 0x36, 0xd9, 0x55, 0xd7, 0x12, 0x5, 0xcc, 0x0, 0x11, 0x26, 0x12, 0xc8, 0x9, 0xac, 0xb9, 0x1, 0xb1, 0x5d, 0x34, 0x62, 0xd0, 0x2a, 0x83, 0xd5, 0x18, 0xb0, 0xf6, 0x6e, 0x20, 0x41, 0x82, 0xc1, 0x4c, 0xc4, 0x2b, 0xc1, 0x4a, 0x8d, 0x1f, 0xb7, 0x37, 0xfe, 0xb4, 0xed, 0xf6, 0xe3, 0x5f, 0x69, 0x6f, 0xed, 0x8d, 0xd4, 0xb6, 0xb4, 0xf5, 0x63, 0x48, 0xa8, 0x8d, 0x11, 0xed, 0xf6, 0xeb, 0x96, 0xeb, 0xad, 0xb7, 0xeb, 0xc5, 0x5b, 0xb1, 0xd5, 0x76, 0x10, 0x6c, 0x17, 0xd, 0xe4, 0x7f, 0xce, 0xcc, 0x6, 0x68, 0xe2, 0xed, 0xe2, 0xcd, 0x86, 0x60, 0xd9, 0x13, 0xd8, 0xdd, 0x77, 0xe6, 0xec, 0xce, 0x99, 0x67, 0xde, 0xf3, 0x7e, 0x9c, 0xf3, 0x9e, 0xf7, 0x44, 0x7f, 0xfb, 0xfe, 0x83, 0x45, 0x1c, 0x70, 0xe0, 0xeb, 0xa, 0x7c, 0x9c, 0x7, 0x40, 0xf2, 0x95, 0xa5, 0x8f, 0x5f, 0x34, 0x70, 0xa2, 0x10, 0x7d, 0xfb, 0xba, 0x1b, 0xd7, 0x5d, 0x37, 0xb7, 0x9e, 0x3c, 0x3c, 0xfb, 0xe0, 0x9c, 0xf7, 0xe7, 0x6c, 0x9d, 0xa3, 0xce, 0xbd, 0xb3, 0x42, 0x5f, 0x17, 0xea, 0xc0, 0x7f, 0x46, 0xd, 0xec, 0xd5, 0xf5, 0x69, 0x24, 0x36, 0x30, 0x48, 0x41, 0x1f, 0x67, 0x78, 0x75, 0xe1, 0x67, 0xf, 0x6c, 0x20, 0xba, 0xd0, 0x3d, 0xee, 0x27, 0x9f, 0x1f, 0xf0, 0x90, 0xaf, 0x54, 0xfc, 0x44, 0xdf, 0xba, 0x6e, 0x79, 0xe3, 0x5d, 0xb3, 0xeb, 0xc9, 0xf2, 0xd2, 0x6d, 0x15, 0xec, 0x37, 0xda, 0xe6, 0x36, 0xcd, 0x9d, 0x42, 0xaf, 0x36, 0xab, 0xca, 0x77, 0xfe, 0xdd, - 0x97, 0xee, 0xbf, 0x75, 0xfa, 0x17, 0xec, 0xab, 0x55, 0xad, 0xfb, 0xf1, 0xac, 0x13, 0x57, 0x72, 0xe2, 0xbb, 0x15, 0x7f, 0x58, 0xdf, 0xab, 0xe3, 0x27, 0x7d, 0x3, 0x9c, 0xfe, 0xf4, 0xb7, 0x84, 0x97, 0x67, 0xd1, 0x5f, 0xe2, 0xf5, 0xff, 0x68, 0xa8, 0x9b, 0xfb, 0x5, 0x7a, 0xf4, 0x17, 0xa9, 0xa3, 0xac, 0x8d, 0x75, 0x73, 0xbb, 0xe9, 0x91, 0x57, 0xe8, 0x11, 0xc7, 0x73, 0xc2, 0xcb, 0x75, 0x73, 0x83, 0x94, 0xfa, 0xdd, 0x0, 0xbf, 0xee, 0x87, 0xfa, 0xd3, 0xba, 0x42, 0x7e, 0x47, 0x8f, 0x57, 0x5b, 0xc7, 0xff, 0x44, 0x8f, 0x1f, 0xa3, 0xc7, 0x1b, 0x74, 0x81, 0xbe, 0x73, 0xfa, 0x67, 0xe8, 0xd1, 0x95, 0xeb, 0x38, 0x7d, 0x5, 0x7d, 0xff, 0xe5, 0xfa, 0xf8, 0xfa, 0x1b, 0xd7, 0x7d, 0x9f, 0x5e, 0xe3, 0xc6, 0x75, 0x41, 0x3d, 0xb1, 0xfe, 0xae, 0x75, 0x93, 0xe6, 0x76, 0xcd, 0x7d, 0xb6, 0x22, 0xe6, 0x5c, 0x79, 0x70, 0x6b, 0x6e, 0x33, 0x39, 0x58, 0xf2, 0xc0, 0x7d, 0x8e, 0x37, 0x6f, 0x9c, 0x37, 0xfb, 0x1e, 0xcf, 0x7b, 0x3, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xa7, 0xa5, 0x8, 0xa8, 0xe5, 0xae, 0xfd, 0x1b, 0xe5, 0xf6, 0xd, 0x35, 0xb3, 0x3d, 0xc7, 0x7e, 0xf3, 0xc3, 0xbf, 0x55, 0xa7, 0xff, 0xa8, 0xfd, 0x5b, 0xb0, 0xca, 0xc0, 0x40, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, - 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0xf4, 0xd9, 0x46, 0x4f, 0xc8, 0x7b, 0x28, 0x88, 0x22, 0xfa, 0x51, 0xcb, 0xb7, 0x8e, 0x8c, 0xf6, 0xf5, 0xbc, 0xb7, 0xa9, 0xa8, 0xc6, 0x4d, 0x9c, 0xc4, 0x3, 0xa4, 0x6a, 0x57, 0xd9, 0xdc, 0x3, 0xf7, 0x21, 0xf8, 0x3d, 0x33, 0x80, 0xd8, 0x54, 0x88, 0xe8, 0xe5, 0x46, 0xfb, 0xfa, 0xe2, 0xbd, 0xff, 0x15, 0xc4, 0x14, 0x9b, 0x42, 0xd2, 0x39, 0xe2, 0xfb, 0xad, 0xe6, 0xc0, 0xff, 0x9c, 0x3b, 0x8a, 0x0, 0x78, 0xeb, 0xc8, 0xda, 0x3, 0xb9, 0x70, 0x68, 0x10, 0x5c, 0xf3, 0xe, 0xeb, 0x82, 0x4b, 0xc9, 0x38, 0x9e, 0x1b, 0x80, 0x63, 0xff, 0xe3, 0xe, 0xfe, 0x9e, 0xe3, 0xca, 0xe4, 0x9d, 0xe7, 0x27, 0x50, 0x23, 0xe0, 0x73, 0x9c, 0x7d, 0xd2, 0xa1, 0xa3, 0x17, 0x6b, 0x8b, 0x39, 0x38, 0x52, 0xb7, 0x27, 0x14, 0x28, 0xf1, 0xa6, 0x88, 0xa0, 0xe7, 0x13, 0x47, 0x50, 0x4b, 0x76, 0x8b, 0x1e, 0xf0, 0x64, 0xac, 0xf9, 0x6d, 0x28, 0xbd, 0xc2, 0x43, 0x50, 0x54, 0xd4, 0xbd, 0x17, 0x9b, 0x50, 0xcb, 0x8e, 0xd4, 0xbc, 0x30, 0x7, 0x32, 0xc3, 0xd2, 0xd0, 0x57, 0x54, 0x44, 0xb9, 0x8c, 0xe3, 0xd7, 0xbc, 0x51, 0x46, 0xa3, 0x48, 0xaf, 0x40, 0xcb, 0x9c, 0xa4, 0xc0, 0x7f, 0xa6, 0xf3, 0x93, 0xf4, 0x38, 0x21, 0xec, 0x6c, 0xc2, 0x5c, 0xec, 0x94, 0x73, 0x48, 0x77, 0xa, 0x3e, 0xc4, 0xfa, 0x7f, 0xba, 0x2a, 0x7c, 0xfd, 0x2a, 0xdd, 0x4b, 0x10, 0x65, 0xb4, 0x91, 0xec, 0x1f, 0xf5, 0xfe, 0x91, 0xa5, 0x4f, 0x2f, 0x5d, - 0x23, 0xf0, 0xfd, 0x5c, 0x9f, 0xae, 0x46, 0xb8, 0x52, 0xa8, 0x31, 0xca, 0x7f, 0x82, 0xf8, 0x1e, 0x57, 0x4a, 0x24, 0xeb, 0x9f, 0x98, 0x79, 0x79, 0x28, 0xe7, 0x80, 0x1f, 0x78, 0x27, 0xc7, 0x19, 0x95, 0x8f, 0xee, 0x2f, 0xf1, 0x13, 0xe1, 0xd8, 0x81, 0x45, 0x90, 0x8b, 0xf0, 0x56, 0x90, 0x2f, 0xd6, 0x44, 0xd1, 0xd3, 0x3a, 0x6d, 0xc7, 0x56, 0xc4, 0xdc, 0x89, 0x80, 0x55, 0xdd, 0x81, 0xce, 0x66, 0xf3, 0xc2, 0x60, 0x2e, 0x1, 0xbf, 0x6e, 0xbd, 0xd6, 0xf1, 0xe2, 0x11, 0xc3, 0x28, 0xcd, 0x1, 0xb1, 0x7f, 0xb, 0x41, 0x8c, 0x42, 0xfb, 0xd2, 0xf6, 0x9f, 0x1d, 0xff, 0x6, 0x70, 0x7a, 0x20, 0x2f, 0xd5, 0x88, 0x15, 0xf5, 0x17, 0x23, 0xf1, 0x4a, 0xc0, 0x0, 0xca, 0x30, 0x7, 0x7, 0x46, 0x5d, 0x7e, 0x7b, 0x1b, 0x78, 0xe8, 0x39, 0xb6, 0xac, 0xd5, 0xda, 0xd4, 0x9e, 0xb, 0xd6, 0x5e, 0x8c, 0x46, 0x27, 0x3a, 0x80, 0xbb, 0x44, 0x44, 0x47, 0x2e, 0xcf, 0xd3, 0xd1, 0xe1, 0xef, 0xac, 0x87, 0xf6, 0xf0, 0x0, 0xb7, 0x94, 0x52, 0x7e, 0x5a, 0x46, 0xce, 0x7f, 0x38, 0xd6, 0x96, 0x24, 0x52, 0xa7, 0x5e, 0xb6, 0x93, 0x50, 0x41, 0xee, 0x7d, 0xe2, 0x53, 0x20, 0xc5, 0xa0, 0x78, 0xa2, 0x83, 0x24, 0x4b, 0x33, 0x7e, 0x3f, 0xa5, 0xf4, 0x7a, 0x1c, 0xf2, 0x22, 0x22, 0xe5, 0xee, 0x9e, 0xd9, 0x11, 0x8e, 0xf1, 0xa3, 0x64, 0xa, 0x1b, 0x90, 0x6f, 0x58, 0x2c, 0x45, 0xf9, 0x2b, 0xc9, 0x69, 0x55, 0xc9, 0x1e, 0x85, 0x88, 0x7d, 0x9a, 0xd4, 0x58, 0x9a, 0xc3, 0x1f, 0xe3, 0xba, 0xea, 0x64, 0x55, 0xd1, 0xcb, 0xa2, 0x62, 0x8f, 0x36, 0xd6, 0xfd, 0xf5, 0x3, 0xf4, 0x6f, 0x4a, - 0x5e, 0xdf, 0xe5, 0xee, 0x76, 0x27, 0xb8, 0xe6, 0x5d, 0xd, 0x40, 0x71, 0xb1, 0x75, 0x64, 0x5f, 0x34, 0xd2, 0x31, 0xd6, 0xed, 0x3b, 0xd3, 0x69, 0xef, 0x4c, 0xf, 0xf2, 0x70, 0x93, 0x28, 0xf5, 0xe4, 0x75, 0x33, 0xe, 0x28, 0xcd, 0x11, 0x4d, 0x6e, 0xdd, 0xea, 0x69, 0x50, 0xbb, 0xb4, 0xd6, 0x1b, 0xca, 0xd2, 0xf2, 0xdf, 0x6b, 0xf, 0xfc, 0x80, 0xbe, 0x13, 0x17, 0x93, 0x58, 0xa2, 0xc8, 0xa7, 0xad, 0x5f, 0xcd, 0x19, 0xdd, 0xcf, 0xc2, 0x44, 0x42, 0xe8, 0x16, 0x2a, 0x9d, 0x86, 0x50, 0xf3, 0xc2, 0x34, 0x6a, 0xf, 0x5a, 0x16, 0x8c, 0x83, 0xa0, 0xb, 0xd7, 0x21, 0x65, 0x48, 0x51, 0x75, 0xfb, 0xea, 0x40, 0xeb, 0x57, 0x28, 0x3f, 0xbe, 0xc5, 0x21, 0xb2, 0xf5, 0x39, 0xa8, 0x3e, 0x5d, 0xdc, 0x13, 0xa9, 0xe6, 0xc8, 0xf3, 0x38, 0x8c, 0x85, 0x70, 0x5b, 0x7f, 0x25, 0x47, 0xe5, 0xcf, 0x41, 0xd7, 0xff, 0x64, 0xcb, 0x4b, 0x4, 0x4f, 0xbb, 0x7d, 0xe3, 0x68, 0x72, 0x7, 0xb5, 0xfa, 0x37, 0xbf, 0x84, 0x80, 0x7c, 0x97, 0xf2, 0x53, 0x6a, 0xff, 0xd5, 0xf3, 0x8, 0x11, 0x43, 0x70, 0x97, 0x9b, 0x86, 0xe0, 0xc8, 0xbc, 0x7c, 0xe, 0xfd, 0x73, 0x63, 0xe2, 0x1, 0xa9, 0x1d, 0x97, 0x32, 0x32, 0xda, 0x32, 0x3b, 0xad, 0xbc, 0x9a, 0x30, 0xb, 0x61, 0x3d, 0x67, 0x91, 0x45, 0x26, 0x12, 0xc6, 0x58, 0xf3, 0xdb, 0x30, 0xfc, 0x9e, 0x59, 0x48, 0xf5, 0x49, 0xe4, 0x2, 0xf1, 0xa9, 0xcb, 0x2d, 0x26, 0x98, 0x17, 0x59, 0x4, 0x1f, 0x64, 0x52, 0xb1, 0x3a, 0xc1, 0x25, 0x42, 0x4b, 0xce, 0xc9, 0x38, 0xbf, 0xb3, 0xcb, 0xe4, 0x7a, 0x3c, 0x44, 0xfc, 0xef, 0x48, 0xae, 0xaa, - 0xaa, 0x69, 0xe5, 0x65, 0xe, 0x95, 0x97, 0xfc, 0x72, 0xf4, 0x68, 0xcc, 0x1e, 0x28, 0xeb, 0x1b, 0x6b, 0xbc, 0x86, 0xd2, 0x4b, 0x3b, 0x14, 0xfa, 0x1e, 0x16, 0x9e, 0xcb, 0xb1, 0x8f, 0xcc, 0xeb, 0x2d, 0x0, 0x22, 0xfc, 0x7b, 0x3, 0x3, 0xfb, 0x7e, 0x5d, 0x1b, 0x5a, 0xf2, 0x60, 0xa6, 0xaf, 0x77, 0xe9, 0x81, 0xff, 0x47, 0xdf, 0x83, 0x5, 0x36, 0x8d, 0xfa, 0x74, 0xf5, 0xf, 0x3e, 0xb2, 0x1e, 0x91, 0x20, 0x38, 0xd, 0xd0, 0xc5, 0xbd, 0xda, 0x9a, 0xb1, 0xc6, 0x2b, 0x4b, 0x67, 0x96, 0x1e, 0xae, 0x3f, 0xf2, 0xfe, 0xc8, 0x1d, 0xd2, 0x16, 0xec, 0x18, 0x35, 0xfd, 0x41, 0x52, 0xfa, 0xc3, 0x10, 0xc8, 0x29, 0xe8, 0x8f, 0xf0, 0x1d, 0x12, 0x92, 0x31, 0xc7, 0x64, 0x27, 0xc4, 0x97, 0xf7, 0xfd, 0xe6, 0xf9, 0xe7, 0xc7, 0x5a, 0x7f, 0x50, 0xfb, 0x4b, 0x5, 0x6, 0xad, 0x67, 0xe0, 0xcb, 0xce, 0x42, 0x98, 0x12, 0x83, 0xe0, 0xc6, 0x37, 0xae, 0xac, 0xde, 0xc9, 0x85, 0xbf, 0x3b, 0xb, 0x1b, 0x3e, 0x33, 0xe8, 0xc1, 0x7b, 0x4c, 0x5a, 0xff, 0x62, 0xfa, 0x61, 0xcf, 0x60, 0xfd, 0xb1, 0x7e, 0xde, 0x67, 0x1a, 0x6d, 0xc9, 0x67, 0x45, 0x17, 0xbb, 0x1f, 0x89, 0x56, 0x31, 0x18, 0x6b, 0xb6, 0x5d, 0x8d, 0xa5, 0xba, 0x43, 0x81, 0xaa, 0x89, 0x3e, 0xe4, 0x64, 0x7e, 0xfc, 0xa0, 0xa3, 0x51, 0x97, 0x7, 0x47, 0x58, 0xd4, 0x64, 0x6f, 0xba, 0xfa, 0xf2, 0xb6, 0xc9, 0x8, 0xf2, 0x83, 0xcf, 0x3b, 0xdf, 0x1c, 0x6b, 0xbc, 0x86, 0xd2, 0xf3, 0x77, 0x70, 0xa0, 0x1a, 0x24, 0xb0, 0x34, 0xd5, 0xc2, 0x51, 0xd7, 0x57, 0xd1, 0x69, 0x68, 0xaf, 0xa3, 0x1f, 0x79, 0x7e, 0xc7, 0xc0, - 0xc5, 0x3c, 0xff, 0xdf, 0xdb, 0x1c, 0xd4, 0xeb, 0xe8, 0xa7, 0x1d, 0xd8, 0x18, 0x38, 0x58, 0xf1, 0x30, 0x1f, 0xde, 0x76, 0x37, 0x73, 0x43, 0xec, 0xfe, 0x98, 0x30, 0xcd, 0xa6, 0x78, 0x8d, 0x96, 0x47, 0x64, 0x8b, 0x9c, 0x15, 0x51, 0xcf, 0x38, 0xfe, 0xf7, 0xbe, 0xb4, 0x8, 0x6a, 0xf0, 0xca, 0x8, 0x81, 0xc8, 0x47, 0xeb, 0x24, 0x84, 0xf, 0x5d, 0x43, 0x9f, 0x37, 0xbc, 0xad, 0x54, 0xdf, 0x19, 0x7a, 0xe6, 0xf1, 0xac, 0xc9, 0x9d, 0x45, 0xfd, 0x1b, 0x8b, 0x58, 0x57, 0x55, 0xa1, 0xbb, 0xd3, 0xd5, 0x5f, 0xb, 0xe6, 0xef, 0xa5, 0x8a, 0xcb, 0x73, 0xc6, 0xe1, 0xc7, 0xfc, 0xcf, 0x36, 0x13, 0x1c, 0x35, 0x11, 0x4c, 0xf7, 0x33, 0x40, 0xb3, 0xd2, 0x4, 0x17, 0x87, 0x1b, 0x34, 0x9d, 0x44, 0x28, 0xa8, 0x19, 0x6f, 0xaf, 0x77, 0xe6, 0x52, 0xc6, 0x5f, 0x56, 0xe9, 0x8a, 0xdc, 0xbf, 0x27, 0x6d, 0xfd, 0xe9, 0x8d, 0xa8, 0xd5, 0xbd, 0x36, 0x3, 0xf2, 0x9e, 0x31, 0xf7, 0x7f, 0x2f, 0xdb, 0x45, 0xed, 0x65, 0x17, 0x62, 0x66, 0x20, 0x96, 0xcb, 0x8c, 0x30, 0x79, 0xdb, 0x74, 0x78, 0xa8, 0x6, 0x64, 0xa5, 0xdc, 0x5c, 0xe4, 0x1c, 0xeb, 0xf6, 0x7d, 0xd4, 0xe8, 0xb0, 0x80, 0xb5, 0x56, 0xff, 0x48, 0x75, 0x92, 0xf0, 0x3, 0x54, 0x1a, 0xc6, 0xbe, 0x1b, 0x80, 0xa3, 0x8d, 0x30, 0x3a, 0xdd, 0xf7, 0x43, 0xf, 0xd1, 0xfa, 0xfa, 0x5b, 0x81, 0x98, 0xac, 0xb8, 0x4e, 0xa5, 0x3e, 0x9b, 0x2f, 0x48, 0xf2, 0x49, 0x3c, 0x8d, 0x22, 0x6a, 0x7e, 0x38, 0x11, 0x7e, 0x77, 0x72, 0x2c, 0x77, 0x35, 0xb7, 0x52, 0x51, 0x54, 0x55, 0x99, 0x1a, 0x28, 0x28, 0x7d, 0x71, 0x22, 0x5c, 0x26, - 0x6b, 0x8c, 0x41, 0xda, 0x92, 0x3, 0x2f, 0x36, 0xc5, 0x57, 0xe0, 0xde, 0x7a, 0xe0, 0x3b, 0x11, 0xb1, 0x9b, 0x50, 0xbf, 0xe8, 0x66, 0xdf, 0x2, 0x72, 0x31, 0xda, 0xb9, 0xef, 0x5a, 0xed, 0xd5, 0x8d, 0x70, 0xe, 0xd6, 0x61, 0xb0, 0xe8, 0xe9, 0xaf, 0x2f, 0x7e, 0xf3, 0x7b, 0xac, 0xa2, 0x3f, 0x1c, 0x6, 0x9, 0x87, 0xf, 0x8e, 0xd8, 0xde, 0xa9, 0x6b, 0xa7, 0x3c, 0x28, 0x1b, 0x42, 0x92, 0x6b, 0x5, 0x9b, 0x41, 0xa2, 0xfa, 0xf8, 0xf7, 0x9c, 0x42, 0xc4, 0xee, 0x48, 0xb8, 0xa2, 0x71, 0x14, 0xc6, 0x27, 0xbd, 0x2f, 0xcd, 0x87, 0x1e, 0x64, 0x37, 0x5f, 0x3e, 0x5b, 0xe3, 0xd4, 0xee, 0xa1, 0xe7, 0xe7, 0x15, 0xd7, 0x21, 0x41, 0x4d, 0xc0, 0x63, 0x2, 0xde, 0x19, 0x8f, 0xfe, 0xf1, 0xcd, 0xd1, 0xeb, 0xf1, 0xc5, 0x1b, 0x51, 0x53, 0x5c, 0x2c, 0xd7, 0x47, 0x15, 0x43, 0xc9, 0x74, 0x7b, 0x26, 0xdc, 0xcb, 0xf0, 0x4c, 0xd8, 0x33, 0x4a, 0xa4, 0x23, 0xe3, 0xbf, 0x9f, 0x69, 0x3a, 0xb4, 0x79, 0x25, 0x76, 0x41, 0x9c, 0xd2, 0xce, 0xb8, 0xe0, 0x60, 0xd4, 0x37, 0xd6, 0xed, 0xf9, 0xa8, 0xd3, 0xde, 0xfc, 0x5c, 0xda, 0x2b, 0x23, 0xab, 0x7f, 0x20, 0xa, 0x3e, 0x76, 0x64, 0xac, 0xdb, 0xf3, 0x61, 0xe9, 0xd2, 0x1c, 0xc7, 0xb1, 0x36, 0x71, 0x8f, 0x86, 0x47, 0x6b, 0xef, 0x91, 0x4e, 0x43, 0xfb, 0xeb, 0x64, 0x6a, 0xbf, 0x58, 0xda, 0x74, 0x80, 0x1b, 0xe0, 0x67, 0xa6, 0xbd, 0x5e, 0x95, 0xbc, 0x97, 0xbe, 0xeb, 0x1, 0x8b, 0x4c, 0x20, 0x3e, 0xd6, 0x78, 0xd, 0xc7, 0x2f, 0xeb, 0x7f, 0x8c, 0x84, 0x3e, 0xb8, 0xb2, 0x1, 0xb9, 0x3a, 0xbd, 0x9f, 0x6, 0xc3, 0xf2, 0xdb, - 0x97, 0x6c, 0xac, 0x2, 0x29, 0xd2, 0x27, 0x7, 0xe9, 0xa1, 0xfb, 0x90, 0x79, 0x7e, 0x64, 0xfc, 0xce, 0x79, 0x88, 0x58, 0xf6, 0x62, 0x17, 0x11, 0x4b, 0xf5, 0xb4, 0xe3, 0x7f, 0xde, 0x17, 0xf3, 0xa0, 0xf3, 0x1e, 0x78, 0x22, 0x91, 0xda, 0x88, 0xac, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xe5, 0xf9, 0xa, 0xa8, 0xc8, 0x19, 0xa7, 0x6e, 0xd9, 0x9d, 0x38, 0x44, 0x25, 0x50, 0xf8, 0x90, 0x23, 0xf1, 0x3b, 0xf7, 0x56, 0x6e, 0xaa, 0xc4, 0x59, 0x16, 0x42, 0xba, 0xef, 0x37, 0xfc, 0x40, 0x82, 0xc6, 0x97, 0xb2, 0x11, 0x6, 0x51, 0xe8, 0xe, 0xa6, 0xad, 0x4f, 0xed, 0xf5, 0xd4, 0x7c, 0x4b, 0xb1, 0xe9, 0x2c, 0x89, 0xf, 0xab, 0x1f, 0xfe, 0xd1, 0x55, 0xa8, 0xbf, 0x48, 0xb0, 0x27, 0xcc, 0x81, 0xd5, 0x35, 0x82, 0xf8, 0xe7, 0x4a, 0x52, 0xd0, 0xa7, 0x51, 0x8b, 0xe0, 0xdc, 0xb2, 0xeb, 0x10, 0x7e, 0x3f, 0x17, 0xdb, 0xc8, 0xe2, 0x71, 0xca, 0xc0, 0x7d, 0x7b, 0xb5, 0xa8, 0x2, 0xc7, 0x33, 0x57, 0x11, 0x8f, 0x83, 0x23, 0x9c, 0xc8, 0xaa, 0x57, 0x6e, 0x1a, 0x1b, 0xfc, 0x8c, 0xdc, 0xe4, 0x96, 0xdd, 0xaf, 0x33, 0xfc, 0x6a, 0xbe, 0xc1, 0x19, 0xd5, 0x7a, 0x14, 0x62, 0xd0, 0xae, 0x71, 0x2a, 0xf8, 0x2d, 0x45, 0x38, 0x85, 0x5f, 0x7a, 0xff, 0x8a, 0xe2, 0xf7, 0xbc, 0xfd, 0xf9, 0x87, 0xa6, 0xe0, 0x1e, 0x8e, 0x9f, 0x18, 0x7d, 0x91, 0xbe, 0x87, 0xa6, 0xda, 0x34, 0x54, 0x8a, 0xdf, 0x31, 0x8e, 0x88, 0x7b, 0x2d, 0xfc, 0x9c, 0xd7, 0x61, 0xed, 0x8e, 0x12, 0xdc, 0xbd, 0xbd, 0xb8, 0xd8, 0x63, 0xf0, 0x47, 0x4d, 0x9e, 0xc5, 0x4b, 0x4c, 0x1c, 0xf4, 0x67, 0xd6, 0x6d, 0x6c, 0xe5, - 0x9c, 0xd4, 0x1e, 0xdc, 0x88, 0xc1, 0xa2, 0xeb, 0xa3, 0x2e, 0xcf, 0x87, 0xfa, 0x6f, 0xde, 0xfc, 0x8b, 0x91, 0x13, 0x9c, 0xd3, 0xa5, 0x11, 0x5d, 0x14, 0xf6, 0xa4, 0xc7, 0x6f, 0xad, 0x3c, 0x1, 0x8e, 0x20, 0x78, 0x87, 0x6a, 0xea, 0xc2, 0x29, 0xe0, 0x9d, 0xce, 0x7f, 0x63, 0xfc, 0x57, 0x1b, 0x12, 0x10, 0xb3, 0xf, 0xac, 0x66, 0xf6, 0xb6, 0xf0, 0x34, 0x57, 0x48, 0xa4, 0x38, 0x97, 0x4c, 0x2c, 0x8c, 0x87, 0xf, 0x5d, 0x11, 0x3c, 0x3a, 0x69, 0x5f, 0xce, 0x86, 0x63, 0xed, 0x46, 0x42, 0xa3, 0xfc, 0xb7, 0xe0, 0x22, 0x8c, 0xef, 0xe5, 0x8a, 0xd9, 0xc, 0x32, 0xb0, 0x38, 0x79, 0xba, 0xf9, 0x8f, 0x3e, 0x2f, 0x7, 0xeb, 0xa8, 0x83, 0x3e, 0x3a, 0xf5, 0xd7, 0xff, 0x8b, 0x7e, 0x16, 0x6, 0x1f, 0x61, 0xc6, 0xf5, 0x47, 0x74, 0x15, 0xda, 0xa9, 0xa8, 0x15, 0x45, 0xaa, 0xad, 0x54, 0x55, 0x2c, 0x9d, 0x3e, 0x15, 0x2d, 0xc1, 0x75, 0xe8, 0x89, 0x40, 0xed, 0x6b, 0x5c, 0x81, 0xb5, 0xf2, 0x1a, 0x14, 0xcb, 0xe6, 0x21, 0x7b, 0x10, 0x35, 0x48, 0xc2, 0x65, 0xb3, 0x60, 0xf0, 0x54, 0x1c, 0x6b, 0x6c, 0x34, 0x43, 0x1f, 0xf1, 0xfc, 0xd1, 0x84, 0x6f, 0x7e, 0x83, 0xbe, 0xc7, 0x2c, 0x7d, 0x1e, 0x7b, 0x7, 0x98, 0x78, 0xef, 0x5c, 0x6a, 0xf, 0xfc, 0x32, 0x75, 0xfb, 0x7f, 0xb8, 0x3b, 0xdd, 0xf7, 0xe7, 0xb7, 0xaf, 0x40, 0xc4, 0x41, 0x58, 0xdb, 0xba, 0x12, 0xf4, 0x3e, 0xaa, 0x3a, 0x72, 0x74, 0x99, 0x72, 0x4e, 0xb9, 0xe5, 0x4d, 0xb1, 0xf8, 0xd, 0xfe, 0x2d, 0xae, 0x16, 0xdd, 0x44, 0xea, 0xe4, 0xe6, 0x10, 0x15, 0xe1, 0xed, 0xbf, 0xd2, 0xcf, 0x2d, 0x8f, 0x79, 0xa1, - 0x44, 0x13, 0x99, 0x18, 0x8f, 0xa9, 0xe6, 0x8, 0xaf, 0xbb, 0x89, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0xba, 0x6a, 0x58, 0x45, 0xbc, 0x16, 0x5e, 0x4a, 0x53, 0x2d, 0x35, 0x6, 0x60, 0xb9, 0x82, 0x6, 0x11, 0x3b, 0xc1, 0xe2, 0xb5, 0x96, 0x17, 0xe0, 0xa8, 0xee, 0x79, 0xd6, 0x3f, 0x7, 0x51, 0x7e, 0xac, 0xf5, 0x85, 0xe3, 0xd0, 0xb7, 0xe8, 0x7b, 0x22, 0x10, 0xcb, 0x85, 0xc2, 0xac, 0x88, 0x74, 0xf8, 0x79, 0xdf, 0xbe, 0x92, 0xea, 0x67, 0xc6, 0x9, 0xa4, 0x6a, 0xab, 0x9a, 0x7e, 0x7c, 0xfe, 0xef, 0x1d, 0xbf, 0xd0, 0xf4, 0xb7, 0x83, 0x89, 0x0, 0xa1, 0x50, 0xe9, 0xaf, 0x29, 0x72, 0x7a, 0xfc, 0xc2, 0xb7, 0xfd, 0x53, 0x42, 0xf7, 0xc7, 0x72, 0xe0, 0xf2, 0x97, 0x27, 0xcd, 0xc4, 0x59, 0x8f, 0x5f, 0xcd, 0x9b, 0x1c, 0xf5, 0xdf, 0x81, 0x1d, 0x70, 0xae, 0xd3, 0x7f, 0x92, 0x1e, 0x3f, 0x6a, 0xaf, 0xfd, 0x99, 0x9, 0x87, 0x17, 0x1b, 0x37, 0x29, 0x22, 0x97, 0xed, 0xbf, 0xe1, 0x71, 0xa, 0x82, 0x37, 0xef, 0x2f, 0x4, 0x1c, 0xa2, 0x5b, 0x4a, 0x8f, 0x5f, 0xa8, 0x89, 0x99, 0x3, 0x87, 0xb9, 0x8f, 0xc3, 0xb5, 0xb5, 0x7, 0x59, 0xfc, 0x4a, 0xc7, 0x51, 0x5b, 0xcd, 0x7c, 0x5e, 0x82, 0xa4, 0x40, 0xa2, 0xf6, 0x5a, 0x7a, 0xfe, 0x13, 0xd9, 0xf8, 0x79, 0x4f, 0x63, 0x84, 0x7d, 0x23, 0x59, 0x7b, 0xb6, 0xe3, 0x37, 0x4c, 0x1e, 0xbe, 0xeb, 0x20, 0xff, 0x7e, 0xcb, 0x77, 0xb8, 0xe0, 0x16, 0x12, 0x64, 0x47, 0x6a, 0x2e, 0x3c, 0x17, 0xd5, 0x70, 0xec, 0x8a, 0xec, 0x7e, 0xa5, 0x75, 0x20, 0x3f, 0x3d, 0xbf, 0x5d, 0x1d, 0xaf, 0x9, 0x5e, - 0x84, 0xa8, 0xe5, 0xd2, 0x56, 0xd4, 0x4a, 0x42, 0x7a, 0xfc, 0xc0, 0xa3, 0x84, 0x48, 0x3, 0xc2, 0x7b, 0x78, 0x1a, 0x85, 0x10, 0xcf, 0xe1, 0xd8, 0xb0, 0xe7, 0x79, 0x80, 0x46, 0x9d, 0xdc, 0x83, 0xb9, 0x47, 0x6b, 0x6f, 0x21, 0xb9, 0x10, 0x7d, 0x7, 0x58, 0xf5, 0xa4, 0xea, 0x64, 0xf8, 0x71, 0x12, 0xe, 0xb4, 0x69, 0xb, 0x7f, 0x3b, 0x1b, 0x9, 0xac, 0xad, 0x5e, 0x96, 0x1a, 0x7f, 0x0, 0xba, 0xdd, 0x1, 0xac, 0x54, 0x2f, 0xd2, 0x72, 0x89, 0x23, 0xaa, 0x5b, 0x16, 0xc8, 0xd5, 0x2f, 0x9f, 0x76, 0x79, 0x28, 0xf0, 0x76, 0xbc, 0x69, 0x44, 0xb4, 0xfc, 0x2a, 0x39, 0x87, 0x2c, 0xb6, 0xcf, 0xe1, 0xf5, 0x81, 0xc3, 0x52, 0xc6, 0xed, 0xbf, 0x6a, 0x4e, 0x5f, 0xf4, 0xc, 0x92, 0x88, 0xb, 0x86, 0x60, 0x38, 0xd, 0x21, 0xfc, 0xc4, 0xaf, 0xa9, 0xf7, 0xa3, 0x4, 0xec, 0xf3, 0x82, 0x40, 0xaf, 0x2f, 0xc4, 0x85, 0xd6, 0x2e, 0x38, 0x13, 0xe4, 0xb9, 0x81, 0xe7, 0x12, 0xa5, 0x2, 0xd8, 0x26, 0x4b, 0x29, 0xc4, 0x86, 0x3f, 0xcf, 0x26, 0x6a, 0xc2, 0x1d, 0x9f, 0x5f, 0xa2, 0x4a, 0x71, 0xb4, 0xf1, 0xba, 0xb6, 0x7d, 0x45, 0x70, 0x57, 0x9b, 0x45, 0x38, 0x94, 0x1e, 0x1e, 0x35, 0x6f, 0x86, 0x90, 0xa7, 0x57, 0x8a, 0x8a, 0x5e, 0xb6, 0x8e, 0xb5, 0xc3, 0xf1, 0xab, 0x1a, 0xf2, 0xef, 0xab, 0x50, 0x11, 0xcc, 0xa5, 0x1d, 0xe8, 0x59, 0x1, 0xe1, 0xa6, 0xeb, 0x49, 0xa7, 0xc1, 0x85, 0x10, 0xcd, 0x8c, 0xfd, 0x17, 0x3e, 0x52, 0x4, 0xff, 0xb6, 0x4a, 0xbd, 0x6d, 0xa, 0x8b, 0xfe, 0x2c, 0xf4, 0x9f, 0x34, 0x1f, 0xd7, 0x49, 0x92, 0xf5, 0xe2, 0x52, 0xdf, 0x1c, 0xea, 0xb, - 0x3a, 0x2f, 0xb2, 0x8e, 0xc4, 0x8f, 0x5d, 0xe1, 0x9d, 0x5e, 0x89, 0x7d, 0x82, 0x6a, 0xe3, 0x77, 0x77, 0xc5, 0xce, 0xb1, 0xee, 0xaf, 0x4b, 0xcd, 0x19, 0x4c, 0xde, 0x14, 0xc3, 0x2d, 0x58, 0x26, 0x7e, 0x3a, 0xfc, 0x9a, 0x3b, 0x27, 0xd0, 0xca, 0xb2, 0x7, 0x3a, 0x89, 0x74, 0x2a, 0xbd, 0x67, 0x3d, 0x7e, 0xa5, 0xff, 0xea, 0x47, 0xa9, 0xc9, 0xe9, 0x62, 0x52, 0x21, 0xa7, 0x82, 0x5f, 0xcd, 0x9a, 0x1c, 0x6a, 0x3f, 0xf3, 0x50, 0x70, 0x44, 0xaf, 0x20, 0x6a, 0xf0, 0x6c, 0xc7, 0xcf, 0xfb, 0x4, 0xf, 0x4f, 0x31, 0x47, 0xee, 0x51, 0xcb, 0xfa, 0x4e, 0x5, 0xbf, 0xd0, 0xe6, 0x9, 0x58, 0x10, 0xc, 0x53, 0x2a, 0x33, 0xf6, 0xcb, 0x47, 0x1d, 0xbf, 0x1a, 0x1, 0x7f, 0xe4, 0xd0, 0x8b, 0x24, 0x51, 0x23, 0xa2, 0xf, 0x8, 0xbd, 0xfd, 0x63, 0x68, 0xfb, 0x12, 0x1, 0x88, 0x5b, 0x76, 0x9b, 0xcd, 0xd4, 0x1e, 0x8c, 0xd7, 0xc0, 0x67, 0x57, 0x36, 0xa8, 0xba, 0x4b, 0x50, 0x7b, 0x63, 0x1a, 0xfd, 0x4c, 0x90, 0x2a, 0x23, 0xbd, 0xfe, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x82, 0xe1, 0x6, 0x7d, 0xd, 0x3f, 0xca, 0xd6, 0xcf, 0xc0, 0x71, 0x39, 0x7b, 0xd, 0x4, 0xa, 0xec, 0xf1, 0xfa, 0x44, 0x91, 0x55, 0xfd, 0x4c, 0x1c, 0xaf, 0x9f, 0x7e, 0x11, 0x5a, 0x22, 0x40, 0x59, 0x69, 0x2d, 0x11, 0xf9, 0xf4, 0xf8, 0xcd, 0x2f, 0x6e, 0x46, 0x9c, 0xb7, 0xe1, 0xf3, 0xfb, 0xa2, 0x67, 0x3d, 0x7e, 0xe1, 0x47, 0x35, 0xda, 0x5f, 0x85, 0xc9, 0x26, 0xb4, 0x86, 0xf9, 0x81, 0x82, 0xb4, 0xf8, 0x79, 0x2f, 0xbf, 0x3, 0x41, 0xe8, 0xe, 0x74, 0x58, 0x70, 0x9f, 0xf5, 0xf8, 0x35, - 0xc5, 0x2f, 0x81, 0x8f, 0xc3, 0x79, 0xdc, 0xa4, 0xae, 0xb0, 0xea, 0x49, 0xcf, 0x7f, 0x6c, 0xfe, 0xda, 0x87, 0x5c, 0xf, 0x88, 0x16, 0x89, 0x64, 0xf1, 0x1b, 0x46, 0x1f, 0x5c, 0x99, 0x1a, 0xff, 0xde, 0xab, 0xa1, 0x77, 0xdd, 0x6a, 0x49, 0xce, 0xc1, 0x22, 0xc9, 0x44, 0xa1, 0xe1, 0x36, 0xa5, 0xc3, 0x10, 0xd3, 0xe2, 0x15, 0xe6, 0xb0, 0xd1, 0xb6, 0x5f, 0x75, 0xeb, 0x35, 0xbd, 0xfd, 0xb4, 0x39, 0x48, 0xf9, 0x9f, 0x97, 0x69, 0xa9, 0x8, 0xc8, 0x8e, 0xb5, 0xc5, 0x4b, 0x91, 0xa, 0xbf, 0xc1, 0x63, 0xef, 0x48, 0x6e, 0xef, 0xf6, 0x4f, 0xc2, 0x69, 0xa4, 0x7e, 0x71, 0x7f, 0x45, 0x59, 0xf8, 0xb, 0xd7, 0x91, 0xcf, 0x8b, 0xc5, 0x71, 0x49, 0xe0, 0xb8, 0x83, 0x7, 0x39, 0xae, 0x4e, 0xe6, 0xa1, 0xe6, 0x5a, 0x4f, 0xd7, 0x64, 0x61, 0xac, 0xa7, 0xbd, 0xff, 0xe6, 0xff, 0x1b, 0x8c, 0xe9, 0x41, 0xfa, 0x7c, 0x45, 0x49, 0x12, 0xd8, 0x7c, 0xa5, 0x80, 0x8e, 0xe2, 0x83, 0xea, 0xed, 0x91, 0xb2, 0x28, 0xb, 0x4b, 0x2d, 0x9d, 0x1e, 0x40, 0x4b, 0xb4, 0xbb, 0x91, 0x48, 0x6, 0x61, 0x3e, 0x19, 0xf3, 0x7, 0xe8, 0x17, 0x5b, 0xcc, 0x8a, 0x7f, 0x8, 0x24, 0xe8, 0x87, 0xdc, 0xbc, 0x47, 0xd9, 0xf, 0x4d, 0x64, 0x2f, 0xb2, 0x8b, 0x47, 0x93, 0x79, 0xd, 0x14, 0xce, 0xcf, 0xba, 0x36, 0x55, 0x47, 0xe9, 0xfd, 0x95, 0xf0, 0x6d, 0xdf, 0x86, 0xde, 0x7b, 0x34, 0xe0, 0xf7, 0x59, 0x65, 0xb2, 0xf7, 0xb6, 0x8b, 0x61, 0x4, 0xed, 0xb3, 0x1a, 0x51, 0x93, 0xe1, 0x97, 0x1e, 0xc7, 0x9a, 0x80, 0x6e, 0x4f, 0x70, 0x72, 0x9c, 0xc0, 0xfc, 0xbd, 0xe7, 0xf0, 0x17, 0x7e, 0xbf, 0xf3, - 0xb3, 0x25, 0xce, 0x67, 0x9d, 0xc9, 0x4b, 0x78, 0x24, 0x18, 0xba, 0xec, 0x2b, 0x39, 0x14, 0xe2, 0x15, 0x72, 0x1, 0x82, 0xba, 0xcd, 0xae, 0xb4, 0xa3, 0x8c, 0xd8, 0xbe, 0xfa, 0xf0, 0xfa, 0x98, 0x4f, 0x9e, 0xec, 0xbf, 0x6d, 0x62, 0x83, 0x2d, 0x3a, 0xf6, 0x6, 0xe7, 0x14, 0x74, 0x96, 0xbc, 0x91, 0x83, 0xf0, 0x82, 0x29, 0x7a, 0x5e, 0xe9, 0x52, 0x1d, 0x2e, 0xbf, 0x1a, 0x35, 0x8d, 0xe1, 0xf3, 0x65, 0xef, 0xde, 0xe, 0x8d, 0x5b, 0x26, 0x31, 0xef, 0x44, 0x3f, 0x5, 0xfe, 0x1b, 0xea, 0xbf, 0xd, 0x8d, 0x7f, 0xbe, 0xbc, 0x98, 0x67, 0xf1, 0x73, 0x56, 0x79, 0xf2, 0x81, 0x87, 0x77, 0x87, 0x73, 0xac, 0xb5, 0x64, 0xc7, 0xe7, 0x17, 0xd8, 0xf8, 0x83, 0x15, 0xff, 0x5c, 0x42, 0xff, 0xdc, 0x28, 0x1c, 0xeb, 0xf5, 0x33, 0xe9, 0xf0, 0xf3, 0xde, 0x36, 0x1d, 0x17, 0xd0, 0x87, 0xdd, 0xdb, 0x59, 0x1b, 0x89, 0x54, 0xe, 0x5f, 0xf, 0x7c, 0xb6, 0xe1, 0x67, 0x8d, 0xdf, 0x6b, 0x89, 0x40, 0x22, 0xcf, 0x1e, 0xbf, 0x4f, 0x87, 0x1f, 0x9b, 0x9f, 0x43, 0x97, 0xee, 0x7e, 0xeb, 0x17, 0x8d, 0x52, 0x45, 0x2, 0xa0, 0xf7, 0xf3, 0x71, 0xeb, 0xa7, 0x2c, 0xb4, 0x28, 0x7d, 0x96, 0xe1, 0x57, 0xfa, 0x87, 0xf3, 0x51, 0xcc, 0xe2, 0xeb, 0x84, 0x2e, 0xb6, 0xdc, 0xf2, 0x54, 0xf0, 0x63, 0x6b, 0xa7, 0x9e, 0x35, 0x4b, 0xf6, 0x97, 0xc4, 0xd9, 0x4d, 0xde, 0x71, 0x3, 0x15, 0x7c, 0xfd, 0x5c, 0xa3, 0xd5, 0x5c, 0x99, 0x3f, 0xdb, 0xf0, 0x9b, 0xdf, 0x3e, 0xf, 0x1e, 0x84, 0x21, 0xfa, 0x8b, 0x9, 0x4e, 0x1, 0xbf, 0x26, 0xdf, 0x44, 0xdd, 0xe1, 0x60, 0x83, 0x99, 0x5b, 0x2b, 0x94, - 0x7b, 0x86, 0xeb, 0x87, 0xb3, 0xd, 0xbf, 0xb4, 0xfc, 0x99, 0x83, 0xbd, 0x27, 0xbc, 0xb5, 0xcc, 0xcf, 0xff, 0x32, 0x7d, 0x4a, 0xf8, 0x38, 0xd5, 0xa9, 0x1, 0x1c, 0xe1, 0x49, 0xda, 0xf5, 0xda, 0xa1, 0x42, 0x1e, 0x37, 0x23, 0xb8, 0x26, 0x17, 0xbe, 0x29, 0xb2, 0x3, 0xab, 0xc7, 0x1a, 0x9f, 0xf, 0xd0, 0x1f, 0xfd, 0x27, 0xf3, 0x5f, 0x73, 0x47, 0x2e, 0x36, 0x12, 0xd7, 0x79, 0x7b, 0xba, 0xcb, 0xd4, 0x5d, 0xad, 0xcf, 0xd, 0xbb, 0x3f, 0x96, 0xef, 0x24, 0xe8, 0xb7, 0x9e, 0xf5, 0x3e, 0xf6, 0x4a, 0xbf, 0xff, 0x47, 0x8e, 0x88, 0xb5, 0x6c, 0x85, 0x8d, 0x7, 0x6a, 0x34, 0xdd, 0xf5, 0xea, 0xea, 0x17, 0x22, 0xa7, 0xeb, 0x39, 0xbc, 0xc3, 0x27, 0x6c, 0xfe, 0xb3, 0xfc, 0x71, 0x40, 0xb1, 0x52, 0x6, 0xb0, 0xf5, 0x47, 0xe4, 0xe4, 0xf5, 0x47, 0x37, 0x36, 0xf9, 0x42, 0x70, 0x5c, 0x4, 0x8f, 0x68, 0x10, 0xb1, 0x2f, 0xc2, 0x95, 0xd, 0xe5, 0xbf, 0x3f, 0x52, 0xfb, 0x25, 0x32, 0xf9, 0xbd, 0x41, 0xf6, 0x1c, 0x75, 0x7b, 0x70, 0xfe, 0x8e, 0x56, 0xfa, 0x7e, 0x25, 0x23, 0x88, 0x46, 0xed, 0x54, 0xb6, 0x7e, 0x3a, 0xce, 0xc5, 0x39, 0x93, 0x4f, 0x5a, 0x36, 0xd5, 0x74, 0x73, 0x6, 0xe4, 0x63, 0x81, 0xa4, 0xd0, 0x5d, 0x3e, 0x37, 0x24, 0xa, 0x28, 0xde, 0x56, 0x60, 0x75, 0x1e, 0x77, 0xcc, 0xad, 0xbb, 0x75, 0x61, 0x18, 0x3f, 0x56, 0x1, 0x49, 0xab, 0xf1, 0x86, 0xcd, 0xb5, 0x69, 0xfd, 0x9f, 0xe8, 0x52, 0xa8, 0x2d, 0x40, 0x1f, 0xca, 0x88, 0xa8, 0x40, 0x75, 0x5c, 0xaf, 0xc0, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x7b, 0x31, - 0xa3, 0xfe, 0x48, 0xf2, 0x8d, 0xa6, 0x8d, 0x8a, 0xce, 0x87, 0x30, 0xfe, 0xc5, 0x8, 0xe5, 0x5b, 0x28, 0x78, 0x35, 0x59, 0x47, 0x26, 0xf3, 0xf6, 0x22, 0xaf, 0xa0, 0xc1, 0x57, 0x9d, 0x76, 0x7e, 0xe3, 0x90, 0xc7, 0xee, 0x57, 0x4c, 0x3d, 0xb0, 0x74, 0xf8, 0x85, 0xc7, 0x4f, 0x40, 0xf4, 0xd2, 0xd7, 0xd9, 0xfa, 0x96, 0x44, 0x54, 0xf5, 0xb9, 0xce, 0x76, 0xfc, 0xc2, 0x5f, 0xb8, 0x49, 0x2f, 0xb8, 0x80, 0x30, 0xf7, 0x43, 0x10, 0x4e, 0x5, 0xbf, 0x99, 0x2f, 0x93, 0xee, 0xf2, 0xc4, 0x24, 0x88, 0x5, 0x8f, 0x25, 0x4d, 0xed, 0xac, 0xe7, 0xbf, 0xf0, 0x33, 0x13, 0xb1, 0x65, 0x92, 0x62, 0xe1, 0xc7, 0x9d, 0xa, 0x7e, 0x8f, 0xce, 0x40, 0xa1, 0xe6, 0x0, 0x95, 0xdf, 0x8f, 0x7d, 0xee, 0xee, 0xe1, 0xf8, 0x9c, 0x6d, 0xf8, 0xd5, 0x6c, 0xbb, 0x0, 0xb1, 0x62, 0x40, 0xed, 0xb0, 0x8f, 0xac, 0x88, 0x5e, 0x89, 0x22, 0xe4, 0xb5, 0x70, 0xf8, 0x11, 0x62, 0x12, 0xea, 0xa8, 0x3e, 0x38, 0x7c, 0x72, 0xfe, 0x97, 0xcf, 0xec, 0x2a, 0x86, 0x43, 0xb5, 0x0, 0x22, 0x5b, 0xdc, 0xf9, 0x99, 0xc8, 0x17, 0xd5, 0xcd, 0x51, 0x3f, 0xb9, 0x84, 0xaa, 0x80, 0x16, 0x24, 0xf9, 0x3f, 0x9a, 0xe5, 0x60, 0xcb, 0xdb, 0xba, 0xc, 0x8, 0x33, 0x3c, 0x3a, 0x9a, 0x76, 0x6c, 0x85, 0x3e, 0xde, 0x8a, 0x8f, 0xe2, 0x3c, 0x10, 0x22, 0x55, 0xca, 0xc7, 0xd9, 0x6c, 0xf0, 0xd, 0xd4, 0xe4, 0x69, 0x41, 0x89, 0x21, 0x8d, 0xb5, 0xbe, 0xfd, 0x80, 0xfb, 0x59, 0x64, 0xf2, 0xef, 0x62, 0x40, 0x48, 0xd2, 0x26, 0xee, 0xc2, 0x5a, 0xf9, 0x93, 0xa8, 0x96, 0x5b, 0x12, 0xd2, 0x42, 0x9b, 0x25, 0x32, 0xce, - 0xff, 0xb7, 0xee, 0x4a, 0xc8, 0x1, 0x8c, 0x87, 0x2b, 0xdf, 0xc5, 0xca, 0xf4, 0x28, 0xf, 0x35, 0x15, 0x1e, 0x8e, 0x22, 0xef, 0xb0, 0xf5, 0xee, 0xa1, 0xeb, 0x6f, 0x45, 0xbb, 0xc6, 0x4d, 0x5a, 0x6, 0xf5, 0xb7, 0xab, 0x15, 0xdf, 0x88, 0xf3, 0xb5, 0x64, 0xde, 0x7e, 0x71, 0x1c, 0xe3, 0xf6, 0xea, 0x92, 0x42, 0xd4, 0xd9, 0xcc, 0x21, 0x69, 0x8e, 0x4e, 0x84, 0x6c, 0x70, 0x61, 0x4f, 0x6f, 0x77, 0x77, 0x5f, 0x34, 0x92, 0x79, 0xfc, 0xde, 0xdd, 0xa4, 0xe5, 0x93, 0x9c, 0x1b, 0x2c, 0xf0, 0x5c, 0xf9, 0xf9, 0x96, 0xfd, 0x44, 0xcf, 0x44, 0x82, 0x3d, 0x37, 0xb1, 0x76, 0x84, 0x17, 0xe4, 0xeb, 0xfc, 0x63, 0xd3, 0xad, 0xda, 0x86, 0xb9, 0x4b, 0xb5, 0xf2, 0xbf, 0x38, 0xd9, 0x82, 0x1e, 0x8d, 0xeb, 0xd3, 0x92, 0x8d, 0x63, 0x8d, 0x57, 0xf8, 0x57, 0x9b, 0xd0, 0xfb, 0xba, 0xc, 0x29, 0xa5, 0x80, 0x9b, 0x93, 0xad, 0x89, 0x67, 0x1c, 0xc8, 0x53, 0x2d, 0x91, 0x23, 0xb2, 0xf1, 0x3f, 0x3e, 0xee, 0x3e, 0xcc, 0x8, 0xa7, 0x89, 0x2, 0x52, 0x2a, 0x80, 0x59, 0x7b, 0xff, 0xeb, 0xfc, 0xf5, 0x87, 0xe7, 0x77, 0x22, 0xd8, 0x96, 0x5f, 0x42, 0x30, 0xf9, 0xcd, 0xb0, 0xf0, 0xb1, 0x4f, 0x12, 0x69, 0x27, 0x54, 0xef, 0x43, 0x2e, 0xe8, 0x3, 0xbb, 0x25, 0xeb, 0x80, 0x1c, 0xd8, 0x19, 0xbe, 0x63, 0x3, 0x26, 0x90, 0xe7, 0x67, 0xe5, 0x96, 0xfb, 0x7d, 0xf4, 0x6f, 0xc6, 0x58, 0xe3, 0x67, 0xcf, 0xe7, 0xf, 0xae, 0x2f, 0x7, 0xbc, 0xdb, 0x9b, 0x10, 0xd, 0x2a, 0x41, 0xfa, 0x71, 0x8f, 0xd2, 0xa1, 0x23, 0x7c, 0x5d, 0x83, 0x71, 0x1f, 0x3d, 0xbf, 0xad, 0x9f, 0x45, 0x50, 0xe8, - 0x46, 0x55, 0x74, 0x35, 0x8b, 0xa5, 0x5d, 0x8c, 0x3b, 0x71, 0x4a, 0xeb, 0xdb, 0xfe, 0xde, 0xf1, 0xb, 0x6d, 0xff, 0x17, 0x92, 0xc, 0x50, 0x1b, 0x3e, 0xc7, 0x6e, 0x75, 0xcd, 0xb, 0xd4, 0xbe, 0xb, 0x36, 0x30, 0x13, 0x39, 0xc2, 0x1d, 0x89, 0x62, 0x6d, 0xb5, 0xc, 0x52, 0xdd, 0xbf, 0xc5, 0xd, 0x94, 0xc6, 0xdb, 0x4a, 0xcc, 0x70, 0xd3, 0x3f, 0x68, 0x14, 0xb8, 0xe2, 0x18, 0xb1, 0x7f, 0xe1, 0x6c, 0xc7, 0x4f, 0xca, 0x1b, 0x4f, 0xed, 0x3, 0xb2, 0xe6, 0x1b, 0x32, 0xed, 0x93, 0xe4, 0x6e, 0xf, 0xeb, 0xaf, 0x6e, 0x8f, 0x7d, 0xd6, 0xb5, 0xdf, 0x3c, 0xb9, 0xff, 0xe2, 0x69, 0xf3, 0xfe, 0xcb, 0x27, 0xc9, 0xf, 0x5, 0x13, 0x85, 0x8c, 0x4a, 0xe4, 0x67, 0xf1, 0xfb, 0x0, 0xfd, 0xf1, 0xe6, 0x2d, 0x2c, 0x14, 0x9a, 0xf1, 0x5f, 0xa7, 0x5e, 0xd6, 0x49, 0xed, 0xe5, 0x2d, 0xba, 0xee, 0xf, 0xe6, 0xf4, 0x9b, 0xd4, 0x27, 0x55, 0xcb, 0xcb, 0x33, 0xaf, 0xef, 0x3f, 0xda, 0xf8, 0xad, 0xe9, 0x5c, 0x4e, 0x59, 0x89, 0xba, 0x70, 0x64, 0xdf, 0x8d, 0x4c, 0xa, 0xae, 0x2d, 0xfe, 0x38, 0x64, 0x59, 0x62, 0x1f, 0x9d, 0x4f, 0x1b, 0x7c, 0xe, 0x5b, 0xcf, 0x2f, 0x27, 0x58, 0xe6, 0x35, 0x40, 0xe8, 0xe9, 0xee, 0xd, 0x3d, 0x3a, 0xd, 0xb8, 0x2b, 0x80, 0x1b, 0x2, 0x3e, 0x9f, 0x9c, 0xe5, 0xbf, 0x61, 0xb4, 0x77, 0x8e, 0x84, 0x8d, 0x1e, 0x44, 0xfe, 0x21, 0x95, 0x11, 0xc8, 0x5b, 0x16, 0x1, 0xcc, 0xdd, 0x2, 0xd9, 0xd0, 0x66, 0x69, 0xe8, 0xb4, 0xcf, 0xa3, 0xb6, 0x81, 0xa8, 0xf6, 0x82, 0xe, 0xff, 0xa9, 0xac, 0xff, 0x8, 0x97, 0xf9, 0x40, 0x16, 0x53, 0x81, 0xb1, - 0x4c, 0x55, 0xfd, 0x6e, 0x27, 0x1c, 0xff, 0x6c, 0xa9, 0x25, 0xfd, 0xcb, 0xcc, 0x4, 0x34, 0xa2, 0xca, 0x89, 0xf5, 0x49, 0xf0, 0x24, 0xee, 0xff, 0xed, 0x33, 0xa5, 0x7f, 0x70, 0xa1, 0xff, 0xfd, 0x95, 0x62, 0x59, 0x91, 0x2e, 0xfe, 0xf7, 0xd, 0x75, 0x2f, 0x87, 0x9e, 0xa9, 0x84, 0x56, 0x2c, 0x4d, 0x6c, 0x7, 0x7c, 0x3f, 0x5d, 0xad, 0xa8, 0xcd, 0x9d, 0xb9, 0x54, 0xdb, 0x85, 0xed, 0x6f, 0xd4, 0x36, 0x9e, 0xf6, 0xf5, 0x9b, 0x77, 0xb6, 0x97, 0x82, 0x7a, 0xb5, 0x2f, 0xec, 0x4e, 0x35, 0x7a, 0xae, 0xfc, 0x26, 0xed, 0xcf, 0xcc, 0xa0, 0xbd, 0xd7, 0xaf, 0x3f, 0x92, 0xf9, 0xfc, 0xa7, 0x2c, 0x7f, 0x8e, 0xc9, 0xd9, 0x63, 0xa7, 0x71, 0xe1, 0xcf, 0x94, 0xff, 0xc7, 0x43, 0xa9, 0x16, 0xca, 0xd9, 0x59, 0x97, 0xa9, 0xbb, 0xbd, 0x33, 0xc1, 0x26, 0xd7, 0xf6, 0x94, 0x2a, 0x84, 0x13, 0x7a, 0x66, 0x83, 0xda, 0xb, 0x17, 0xe1, 0x44, 0x19, 0xf5, 0xf8, 0xbe, 0xb4, 0xcf, 0x7f, 0xce, 0x42, 0xc4, 0x38, 0xd4, 0xde, 0x91, 0x32, 0x0, 0x97, 0x76, 0xde, 0xa9, 0xf3, 0x2e, 0x44, 0xdc, 0x8c, 0x79, 0x38, 0x4e, 0x58, 0x5b, 0xbf, 0x10, 0x8a, 0x6c, 0xa, 0x54, 0x59, 0x24, 0x74, 0xa9, 0x9c, 0xad, 0x8f, 0xff, 0x96, 0xd5, 0xf0, 0xd4, 0xd, 0x8c, 0xf8, 0xfa, 0x77, 0x4c, 0xc7, 0xbd, 0xc0, 0x7b, 0x4b, 0x5c, 0xbe, 0xf9, 0xaa, 0xcf, 0x55, 0xe0, 0xdd, 0x3e, 0x1e, 0x1d, 0x41, 0x7b, 0xc8, 0xaf, 0x37, 0x72, 0x4f, 0x59, 0x6a, 0xbe, 0xd4, 0x2a, 0x87, 0x4d, 0x37, 0xc5, 0xf7, 0x6a, 0x38, 0x98, 0xaf, 0xa9, 0x26, 0xa3, 0xa6, 0x21, 0x7c, 0x71, 0xac, 0xf1, 0x1b, 0x4a, 0x5f, 0x1b, - 0xdd, 0x0, 0x87, 0xe3, 0x8b, 0x6d, 0xd4, 0x7c, 0xde, 0xd8, 0xf5, 0x29, 0x2, 0xef, 0x4b, 0xb7, 0xc1, 0x28, 0xe6, 0x92, 0x2c, 0xab, 0x18, 0x6f, 0xf8, 0x22, 0x1f, 0xab, 0x2d, 0x7, 0x55, 0x25, 0x41, 0xbe, 0x1a, 0xcf, 0x31, 0x2b, 0xfa, 0x6c, 0xc7, 0x2f, 0x4c, 0xed, 0xbf, 0x7f, 0xd, 0x9c, 0x98, 0x4f, 0x60, 0xf3, 0x43, 0x25, 0x5d, 0xec, 0x93, 0x6a, 0x8, 0x33, 0x4d, 0x6b, 0xbe, 0xcd, 0x70, 0x53, 0xc4, 0xd0, 0x5, 0x77, 0x82, 0x6b, 0xc, 0xff, 0x33, 0x45, 0xf2, 0x5a, 0xc7, 0xc2, 0x84, 0x6e, 0xd7, 0x3f, 0xdb, 0xf1, 0x1b, 0xe6, 0x8f, 0xe4, 0xe0, 0x58, 0xa5, 0xc4, 0xd6, 0x27, 0x6b, 0x50, 0x4b, 0x35, 0x2e, 0xdc, 0x54, 0x8d, 0x19, 0x9, 0xc7, 0xb2, 0x64, 0xc2, 0xb2, 0x5f, 0x32, 0xee, 0xaf, 0x7f, 0xd4, 0xf1, 0xab, 0xa2, 0xfa, 0x21, 0x48, 0x82, 0x85, 0x71, 0xa1, 0xcb, 0x6a, 0x67, 0xf1, 0x85, 0xd4, 0x7e, 0x79, 0xad, 0x22, 0xc9, 0xc1, 0xe0, 0x4d, 0x2e, 0x2e, 0xd9, 0xf1, 0x19, 0xfa, 0x4, 0xab, 0x7a, 0xde, 0xc4, 0xcc, 0xe7, 0x1f, 0x5a, 0xe3, 0xd6, 0x9c, 0xfa, 0x62, 0x51, 0xd1, 0xa5, 0x2e, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x90, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xd1, 0xe, 0xd9, 0x52, 0xca, 0x88, 0x9b, 0x67, 0x5c, 0x3e, 0x84, 0xd2, 0x6d, 0x93, 0xb4, 0x69, 0xd0, 0x3a, 0xc5, 0x94, 0xb, 0x5c, 0xfa, 0x62, 0x23, 0x7c, 0x66, 0xd3, 0x8a, 0x72, 0x10, 0xae, 0xbb, 0x2b, 0xc2, 0x51, 0x7d, 0xb7, 0x2, 0x27, 0x8a, 0x1e, 0x7e, 0xe9, 0x35, 0xc4, 0x6e, 0x24, 0x53, 0x75, 0xc3, 0x3e, 0x70, 0xb6, 0xe3, 0x17, 0x9e, 0x7f, 0x2b, 0x7c, - 0xd3, 0x91, 0x87, 0x49, 0x76, 0x4e, 0x81, 0xf0, 0x2, 0x5, 0x21, 0xef, 0x32, 0x73, 0x61, 0x11, 0xed, 0xc1, 0xd1, 0xb2, 0x40, 0x78, 0x73, 0x14, 0xca, 0xeb, 0xf6, 0xb9, 0x44, 0xc2, 0x60, 0xf6, 0xc3, 0x6c, 0x64, 0x70, 0xfc, 0xe5, 0xa3, 0x8e, 0xdf, 0x50, 0x7a, 0x6d, 0xfd, 0x7a, 0x38, 0x94, 0xd6, 0x24, 0x25, 0x76, 0x87, 0xa7, 0xbb, 0xfd, 0xe1, 0x67, 0xc6, 0x69, 0x5e, 0x82, 0xab, 0xd9, 0x59, 0xc3, 0x30, 0x32, 0x3e, 0x1f, 0xfd, 0xf7, 0x86, 0x5f, 0x73, 0x72, 0x36, 0x35, 0x57, 0x8b, 0x15, 0x9, 0x82, 0xca, 0x89, 0x2a, 0x42, 0x97, 0xdc, 0xa0, 0xe9, 0x6f, 0x1c, 0x13, 0x56, 0xd4, 0xbb, 0x5c, 0x2f, 0xdf, 0x2e, 0x64, 0x3c, 0x1f, 0x39, 0x9b, 0x3f, 0x8f, 0xa7, 0xec, 0x67, 0x96, 0xf3, 0x68, 0x4d, 0xed, 0x2d, 0x64, 0x16, 0x7b, 0x56, 0xf8, 0x1c, 0x7d, 0xed, 0x56, 0x1c, 0xd7, 0xaf, 0x82, 0x97, 0xeb, 0x38, 0x3f, 0x68, 0x8d, 0x47, 0xde, 0x37, 0x7d, 0x5e, 0xb4, 0x1c, 0x8b, 0x25, 0x59, 0xaf, 0xe0, 0x8d, 0x8b, 0x81, 0xd6, 0xfe, 0xb1, 0xc6, 0x6b, 0x62, 0xde, 0x78, 0x74, 0x49, 0xf8, 0x5a, 0x98, 0xd9, 0xf9, 0x18, 0x77, 0x2e, 0xb3, 0x57, 0xbe, 0x1f, 0xb4, 0x55, 0x9e, 0xeb, 0x67, 0xa6, 0x44, 0xf5, 0x71, 0x82, 0x8b, 0x8a, 0x8c, 0x1f, 0x11, 0x5d, 0xde, 0xbf, 0x51, 0xcc, 0x7b, 0x28, 0xa8, 0x15, 0x2, 0xb1, 0x12, 0xfb, 0x17, 0x46, 0x2c, 0x3f, 0xde, 0x2f, 0xd2, 0xe5, 0x18, 0x8f, 0x4e, 0x2b, 0xfc, 0xcf, 0x1f, 0x68, 0xda, 0xc5, 0xc2, 0x6b, 0x22, 0x6c, 0x4, 0x28, 0x88, 0xbd, 0x44, 0x9d, 0xc7, 0xf2, 0xc3, 0x58, 0xb3, 0x43, 0x44, 0x82, 0xbe, 0xa, 0x55, - 0x1b, 0x37, 0x21, 0x91, 0x13, 0x4d, 0xc4, 0xb9, 0x38, 0x6f, 0xc2, 0xbc, 0x7f, 0xac, 0xf1, 0xfb, 0x0, 0xff, 0x83, 0xf5, 0x96, 0xe3, 0xfe, 0x87, 0xf7, 0xb6, 0x85, 0x8, 0x6, 0xdb, 0xd8, 0xf8, 0x1, 0x11, 0xcb, 0x14, 0x92, 0x69, 0xff, 0x63, 0x98, 0xff, 0xd6, 0x3e, 0x1e, 0xd5, 0x76, 0x6f, 0x45, 0xc8, 0xbc, 0x8b, 0xfa, 0x6f, 0x7e, 0x7b, 0xff, 0xc, 0x56, 0x7a, 0xe6, 0x1c, 0x62, 0xf3, 0x4d, 0x26, 0xdf, 0x88, 0x46, 0x16, 0x33, 0xe3, 0x24, 0x69, 0xf3, 0x5, 0x9e, 0x6e, 0x7a, 0xa8, 0xff, 0xd1, 0xf0, 0x88, 0xf, 0x1e, 0xe8, 0xe7, 0x3a, 0x1a, 0x23, 0xa2, 0x4, 0x4f, 0x34, 0xd3, 0xfe, 0xc7, 0x47, 0x1d, 0xbf, 0x53, 0xf3, 0x3f, 0x58, 0xf7, 0x1d, 0x1d, 0xff, 0xe3, 0xa3, 0x8e, 0x1f, 0x93, 0x7f, 0x1d, 0x12, 0xea, 0x7f, 0xc9, 0xec, 0x3f, 0x79, 0xdc, 0xb9, 0x35, 0x4b, 0x36, 0x22, 0x16, 0x8c, 0x72, 0xac, 0xfb, 0xb6, 0x29, 0x51, 0xe9, 0x5a, 0xe5, 0x46, 0x14, 0xf1, 0x5f, 0xec, 0x2d, 0xa3, 0x34, 0x79, 0xe0, 0xc0, 0xcd, 0x13, 0xf2, 0x1e, 0x42, 0x82, 0x5, 0xe4, 0x47, 0x5, 0x3d, 0x8b, 0xdf, 0x7, 0xd8, 0x2f, 0x7, 0x6e, 0xa1, 0x38, 0xba, 0xd9, 0x1d, 0xb8, 0x76, 0xc5, 0x9, 0x17, 0x7e, 0xa6, 0x15, 0x5e, 0x9f, 0xba, 0xc2, 0x4c, 0x8c, 0x8e, 0xff, 0xf6, 0xf7, 0x86, 0x5f, 0x8d, 0x80, 0x4b, 0xdb, 0x4e, 0x98, 0xc7, 0xa8, 0x59, 0xc2, 0x31, 0x4a, 0x43, 0x4f, 0xe4, 0x94, 0xf2, 0x37, 0x7d, 0x68, 0xf9, 0xf1, 0x6a, 0xb3, 0xde, 0x97, 0x13, 0xb9, 0x88, 0xfe, 0x78, 0x45, 0x5, 0xe5, 0xeb, 0x35, 0x96, 0xa6, 0x97, 0x29, 0xfb, 0xef, 0xa2, 0xef, 0xcf, 0xcb, - 0x6b, 0x8a, 0x8f, 0x90, 0x97, 0x3, 0x24, 0x35, 0x23, 0x83, 0xbb, 0xbd, 0xbf, 0xb8, 0x8, 0x78, 0x67, 0x37, 0x7c, 0xd0, 0x1b, 0x36, 0xd, 0x94, 0x9c, 0x71, 0xf6, 0x60, 0x73, 0xe4, 0x42, 0x44, 0x9b, 0xa9, 0xf4, 0x1b, 0xcc, 0xdf, 0xb9, 0x59, 0x40, 0x8, 0xfa, 0x39, 0xc9, 0x72, 0x9b, 0x29, 0x32, 0xcf, 0x7f, 0xc6, 0xa2, 0x7e, 0xee, 0xa7, 0x42, 0xf, 0xe5, 0x3f, 0x93, 0xfb, 0x33, 0xc2, 0xe3, 0xd7, 0x82, 0xd9, 0x2f, 0xb4, 0x9, 0x1e, 0xdf, 0x64, 0x77, 0x11, 0xe3, 0xbf, 0x6a, 0x92, 0x42, 0xaf, 0x67, 0xce, 0x1f, 0x6a, 0x4, 0xfe, 0xcf, 0x5c, 0x9f, 0x26, 0xee, 0x6d, 0xdf, 0xba, 0x42, 0x69, 0x14, 0x5f, 0x1c, 0x6b, 0xbc, 0x86, 0xce, 0x9f, 0xdf, 0xac, 0xf4, 0xea, 0x1a, 0x35, 0xc9, 0xc0, 0xb2, 0xca, 0x82, 0x13, 0x98, 0xfe, 0x88, 0xda, 0xe9, 0x87, 0x46, 0x65, 0xfe, 0xbc, 0xca, 0xac, 0x37, 0xf2, 0xd, 0x31, 0x44, 0x6d, 0x68, 0x77, 0xc2, 0x69, 0xeb, 0xab, 0xd4, 0x4f, 0x9b, 0x8, 0x10, 0xa7, 0xfc, 0x80, 0xb, 0x64, 0x82, 0x7d, 0xb9, 0xc5, 0x5d, 0xae, 0xef, 0x5f, 0x3, 0x2c, 0xd2, 0x8f, 0x8d, 0x47, 0x2b, 0x8f, 0x56, 0xe8, 0x15, 0x63, 0xce, 0x7f, 0x43, 0xe7, 0xcf, 0x99, 0x3f, 0x60, 0x5a, 0xf3, 0x17, 0x33, 0x21, 0x51, 0xad, 0xec, 0x9d, 0xb9, 0x1e, 0xb2, 0x4e, 0x38, 0x3b, 0x64, 0xc8, 0xa7, 0x65, 0x7a, 0xfe, 0xfc, 0xa3, 0x8e, 0xdf, 0xd0, 0xf9, 0xf3, 0xf0, 0x23, 0x4e, 0x7c, 0x53, 0xae, 0xbc, 0x48, 0x2c, 0x75, 0x39, 0xe0, 0x2f, 0x90, 0xc2, 0x9b, 0x9b, 0x10, 0xbc, 0xc0, 0x77, 0x91, 0x9f, 0xa2, 0xe5, 0x53, 0xcd, 0x44, 0xa6, 0xe7, 0xcf, 0x3f, - 0xea, 0xf8, 0xd, 0xd3, 0x1f, 0xb9, 0x1e, 0xe4, 0x26, 0x16, 0x89, 0x2c, 0x84, 0xcc, 0x9a, 0xff, 0x7d, 0xa2, 0x17, 0xc1, 0x4f, 0xec, 0x9f, 0xca, 0xf0, 0x53, 0x54, 0x35, 0xe3, 0xf9, 0x5d, 0xff, 0xde, 0xf0, 0xcb, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0x3e, 0xdd, 0xb4, 0x7c, 0xab, 0xa, 0x1e, 0xd2, 0x46, 0x5d, 0xda, 0x65, 0x9c, 0x4a, 0xfe, 0x94, 0x91, 0xd2, 0x73, 0xa3, 0x7c, 0x50, 0x13, 0xfb, 0x39, 0xe8, 0x9c, 0x3e, 0x1b, 0x71, 0x2b, 0xff, 0xa4, 0x7d, 0x8e, 0x38, 0x4d, 0xc1, 0x3c, 0xe3, 0xf6, 0xa7, 0x4b, 0x47, 0x87, 0x9b, 0x8b, 0x1, 0xb9, 0x3e, 0xe8, 0x70, 0x61, 0xce, 0xbc, 0x8a, 0xf9, 0x93, 0xff, 0x2a, 0xdf, 0x9, 0x37, 0x3c, 0x5f, 0x7f, 0x96, 0xfe, 0x6b, 0xba, 0xb9, 0x6b, 0x9, 0x5b, 0x1c, 0x10, 0xcc, 0x4d, 0x5a, 0x29, 0x8b, 0x50, 0x57, 0xfd, 0x69, 0xdc, 0x2d, 0xdf, 0xff, 0x8a, 0x70, 0x98, 0x2f, 0x47, 0x49, 0x7a, 0x7e, 0x2c, 0xcd, 0xc1, 0xef, 0x39, 0xb4, 0x25, 0xd7, 0x41, 0x50, 0xd8, 0xe, 0x31, 0xa7, 0x50, 0x3f, 0xc9, 0xa9, 0x4a, 0x24, 0xf9, 0x9c, 0x42, 0xb8, 0x3c, 0xf, 0x6a, 0x2e, 0x64, 0xfb, 0x41, 0x5b, 0xb1, 0xe4, 0x31, 0x74, 0x6b, 0x5c, 0xf8, 0x47, 0xb, 0xad, 0xd, 0xeb, - 0x7a, 0xd9, 0x11, 0x45, 0xf5, 0xaf, 0x88, 0xcf, 0xc3, 0x6f, 0x2, 0x45, 0x8d, 0x5c, 0xe7, 0x64, 0x52, 0x10, 0xcb, 0x55, 0x9a, 0xcd, 0xdb, 0xe9, 0x9, 0xc7, 0x22, 0x96, 0xfe, 0x18, 0x67, 0x40, 0x3e, 0x1b, 0xef, 0x76, 0x19, 0xed, 0xe4, 0x5a, 0xb1, 0xac, 0x5b, 0x79, 0x8a, 0xe5, 0x5c, 0x9, 0x3d, 0xa3, 0xa0, 0x57, 0x7b, 0x89, 0xbb, 0x84, 0x4, 0x3b, 0xe, 0xbc, 0xb1, 0x85, 0xe4, 0xcc, 0x8e, 0xb2, 0xed, 0x58, 0xac, 0x5, 0x7, 0x6c, 0x55, 0xfd, 0x88, 0xaf, 0xf7, 0xf6, 0x52, 0x96, 0xff, 0xf4, 0x63, 0x3a, 0x38, 0xc8, 0x91, 0xca, 0xa4, 0xf7, 0xb6, 0x8f, 0xd, 0xee, 0xa7, 0xdd, 0x17, 0xe5, 0xd4, 0xbd, 0x35, 0x42, 0x2a, 0x1f, 0x6c, 0x37, 0x11, 0x95, 0xda, 0x5d, 0x77, 0x84, 0xa, 0x2f, 0x9, 0x3a, 0x8b, 0x2b, 0xb, 0xab, 0x3f, 0xfe, 0xd5, 0x9f, 0x1d, 0x78, 0x7d, 0xff, 0xee, 0xb1, 0xc6, 0x6b, 0x58, 0xff, 0x6d, 0x72, 0x63, 0x62, 0xbf, 0x6b, 0xb1, 0xc7, 0xe3, 0xf3, 0x7, 0x9c, 0xf6, 0x7a, 0xc, 0xa9, 0x88, 0x2b, 0x47, 0x12, 0x26, 0x5b, 0x74, 0x9b, 0xee, 0xfb, 0x4d, 0xbb, 0x24, 0xcc, 0x0, 0x22, 0xd8, 0xa3, 0x89, 0x7d, 0xa7, 0x50, 0xdf, 0x9b, 0x5f, 0x64, 0xed, 0x87, 0x6c, 0xe1, 0x25, 0xaa, 0xc3, 0xf6, 0x1f, 0x77, 0xbc, 0xf4, 0x3b, 0x68, 0x3e, 0x6d, 0x30, 0x87, 0xc8, 0x4d, 0x2c, 0xdf, 0x37, 0x5f, 0xd8, 0xe6, 0x4e, 0x8, 0xa6, 0xf6, 0x74, 0xb2, 0xa4, 0x9c, 0xf2, 0xaf, 0x59, 0x79, 0x4f, 0x59, 0xa3, 0xb6, 0x7f, 0xd3, 0x91, 0x39, 0xb4, 0x42, 0x69, 0xe, 0x6f, 0xe, 0xae, 0xe5, 0xdc, 0x19, 0xbd, 0x63, 0xf9, 0x30, 0x7e, 0x17, 0xf0, 0x35, - 0xfa, 0x41, 0xd6, 0x53, 0x75, 0x32, 0x8e, 0xdf, 0xa3, 0x4e, 0x6c, 0xab, 0xaf, 0xe7, 0xc, 0xd1, 0xe5, 0x2f, 0x90, 0x4, 0x84, 0xb, 0x97, 0xc1, 0x55, 0x85, 0x2b, 0x5, 0x8f, 0x8f, 0x2d, 0xbf, 0x48, 0xdf, 0x1f, 0x3f, 0xe4, 0xfa, 0xa0, 0x9a, 0x37, 0x37, 0x53, 0x3e, 0xbe, 0x49, 0x8a, 0xa0, 0xfb, 0xca, 0xca, 0xb2, 0x5a, 0x34, 0xd7, 0xde, 0x2, 0x87, 0xa6, 0x29, 0xd6, 0x69, 0x51, 0xed, 0x39, 0x29, 0x7f, 0x17, 0x8e, 0x1d, 0xfe, 0x93, 0xf3, 0xda, 0xe2, 0x4f, 0x21, 0xf9, 0x46, 0x2b, 0x1, 0xf7, 0xf1, 0x3d, 0x15, 0x9f, 0x5f, 0xf, 0x6f, 0xfe, 0xb9, 0xe8, 0xd5, 0x5, 0x78, 0x74, 0x6d, 0xc5, 0xc6, 0xe7, 0xc7, 0x3e, 0x5f, 0xbf, 0x77, 0xfd, 0xf5, 0x70, 0x98, 0x1c, 0x8f, 0xde, 0x5a, 0x52, 0xa5, 0x96, 0x65, 0xf5, 0x45, 0x3a, 0x7e, 0xfb, 0xec, 0xbf, 0x4, 0x2f, 0x63, 0xdb, 0xf5, 0xa4, 0x98, 0xbe, 0x29, 0x59, 0x8d, 0xd0, 0x53, 0x5, 0x93, 0x6b, 0x41, 0x99, 0x41, 0x35, 0x10, 0x16, 0xb0, 0xe8, 0xe4, 0xfd, 0x44, 0xaf, 0xee, 0x50, 0xe0, 0x23, 0x56, 0x3a, 0x1b, 0x91, 0xc9, 0xf4, 0x11, 0xdb, 0x2f, 0x1b, 0x37, 0xe1, 0xce, 0x5, 0x8c, 0x67, 0x4b, 0x10, 0x94, 0x12, 0xfc, 0x35, 0x0, 0x7f, 0x40, 0x80, 0x41, 0x55, 0x55, 0x2b, 0xb0, 0x21, 0xed, 0xfe, 0xb3, 0x23, 0xa5, 0xeb, 0x8a, 0x97, 0x22, 0xe8, 0x62, 0x19, 0xe, 0x9c, 0xb4, 0x5, 0xe5, 0x98, 0x6c, 0xe5, 0xeb, 0x31, 0x58, 0x86, 0x4b, 0xdd, 0x21, 0xa4, 0xdf, 0xaf, 0xea, 0xea, 0xda, 0x6, 0xab, 0xc3, 0x51, 0xc9, 0x41, 0x98, 0x3e, 0x60, 0xf6, 0x97, 0x9b, 0xfe, 0xd2, 0x2, 0xb4, 0xc0, 0xe4, 0x13, - 0xce, 0x30, 0x87, 0xa7, 0x52, 0xd0, 0x59, 0xaf, 0x99, 0x6e, 0xff, 0x55, 0xdb, 0xd8, 0x72, 0x1f, 0xfe, 0xf1, 0x50, 0xe1, 0x83, 0x8d, 0x4b, 0x7f, 0x7e, 0xfe, 0x92, 0xd, 0xe0, 0x8f, 0x55, 0xba, 0x63, 0x2e, 0xac, 0xc3, 0x4d, 0x88, 0xf1, 0x6c, 0x7f, 0x8d, 0xc0, 0xe0, 0xb3, 0x3, 0x81, 0x41, 0xf1, 0xad, 0x62, 0xcb, 0x59, 0x91, 0xb0, 0xfe, 0x8d, 0x78, 0x7f, 0x26, 0x47, 0xe1, 0x26, 0x10, 0xbe, 0x4e, 0xbb, 0xeb, 0xc7, 0xf4, 0x57, 0x5d, 0xfb, 0x47, 0xbc, 0xbe, 0x89, 0xca, 0xe3, 0x3, 0x95, 0x6a, 0x77, 0x4, 0xc9, 0xfa, 0xad, 0x6c, 0x43, 0x9d, 0xd0, 0xbb, 0x9c, 0xd6, 0x33, 0xad, 0x9f, 0x2b, 0x8d, 0x2a, 0xbe, 0xcf, 0xdd, 0xcc, 0xb7, 0x65, 0x1a, 0xbf, 0xd0, 0x23, 0x51, 0x78, 0xf8, 0xa7, 0xb9, 0x56, 0x9d, 0x3e, 0x72, 0xf9, 0xa6, 0xa2, 0xb4, 0xf5, 0x1f, 0xe5, 0x58, 0xfe, 0xc9, 0x5e, 0x9b, 0x9e, 0xfd, 0xe4, 0x58, 0xf7, 0xdf, 0xa1, 0xf4, 0xd2, 0x1d, 0x6d, 0xd6, 0xf6, 0x5b, 0x52, 0x6a, 0x15, 0xd8, 0x68, 0x5f, 0x6f, 0x7a, 0x74, 0x1a, 0x92, 0x47, 0x18, 0x8b, 0xf1, 0x3f, 0xec, 0x77, 0xf3, 0x68, 0xde, 0x11, 0xa3, 0x9f, 0xc9, 0x24, 0xfb, 0x3c, 0x86, 0xf5, 0xdf, 0xe3, 0xfa, 0x24, 0x66, 0xb8, 0x6b, 0x4e, 0x43, 0xfb, 0x3e, 0x6a, 0x74, 0x8d, 0x60, 0xed, 0x6f, 0xe, 0x9d, 0x65, 0x4, 0xa2, 0xff, 0xc6, 0xba, 0x3d, 0x67, 0x3a, 0x5d, 0x57, 0xbd, 0xd2, 0xb2, 0x76, 0xe, 0xbb, 0x8f, 0x4a, 0xab, 0x90, 0xe5, 0xa7, 0x11, 0xcb, 0xc3, 0xcd, 0x2b, 0xb1, 0xb, 0xe2, 0x94, 0x76, 0x4a, 0xe9, 0x7, 0xa3, 0x19, 0x5f, 0xaf, 0x7a, 0xda, 0xf9, 0x63, 0x87, 0x1f, - 0x4a, 0xb5, 0xc9, 0x1d, 0x45, 0x0, 0x6e, 0xc, 0xf7, 0x67, 0x59, 0x3e, 0x11, 0x7d, 0xa, 0xfb, 0x1c, 0xb4, 0x64, 0x7a, 0xe8, 0x68, 0x18, 0x58, 0x20, 0x7a, 0xed, 0x84, 0xb, 0x3d, 0x69, 0xfd, 0xab, 0x8f, 0xf9, 0xdc, 0x86, 0x47, 0x60, 0xc9, 0x91, 0x6c, 0x17, 0xa3, 0x4e, 0xe6, 0xe0, 0xe8, 0x4a, 0x38, 0x4d, 0xbe, 0x85, 0x5e, 0x51, 0x2, 0xd5, 0xff, 0xf7, 0x9c, 0x6c, 0x3f, 0x31, 0x7f, 0x88, 0x2a, 0x5e, 0x93, 0x9a, 0x7, 0xb, 0x74, 0x77, 0xc2, 0x39, 0xe2, 0xfb, 0x93, 0x9b, 0xd9, 0x46, 0x5b, 0xd4, 0x1a, 0xd3, 0x17, 0x66, 0x62, 0x3f, 0xa, 0xea, 0x6f, 0x1e, 0xb3, 0xf6, 0xdb, 0xd0, 0xc4, 0x6e, 0x1d, 0x96, 0x3f, 0x94, 0xac, 0xe4, 0xba, 0x23, 0x5c, 0x4f, 0xe4, 0xdc, 0xd6, 0xba, 0xf4, 0xf6, 0xf4, 0x94, 0x3e, 0xb6, 0xd2, 0x3e, 0xc6, 0x3d, 0x3c, 0x63, 0x11, 0x69, 0x97, 0xc7, 0x9d, 0x9b, 0xae, 0x7e, 0x35, 0xa7, 0xf3, 0x8d, 0xcc, 0x52, 0x62, 0x59, 0x98, 0xe9, 0x7f, 0xb6, 0x7f, 0x89, 0xc1, 0x85, 0x35, 0xeb, 0x34, 0x51, 0xfc, 0x9b, 0xa8, 0xdb, 0x31, 0x88, 0x5f, 0xff, 0xfe, 0xff, 0xbc, 0x2b, 0x7c, 0x87, 0x82, 0x78, 0x82, 0xc3, 0x52, 0xb6, 0x81, 0x27, 0xc7, 0x9, 0x27, 0xed, 0xdf, 0x19, 0x1f, 0x8b, 0xfd, 0x3b, 0x87, 0xd2, 0x6b, 0x69, 0xc7, 0x51, 0x65, 0x24, 0xe2, 0x3d, 0xd6, 0x76, 0x3a, 0x70, 0x6c, 0x9e, 0x4e, 0x9b, 0xf6, 0x55, 0x5, 0x3b, 0x3c, 0xf7, 0x24, 0xd4, 0x82, 0x51, 0x97, 0x4f, 0x17, 0x75, 0xae, 0xa7, 0xef, 0x33, 0xad, 0xbd, 0x8, 0x61, 0x34, 0x20, 0xb4, 0x80, 0x1a, 0xb7, 0xed, 0xe, 0xdd, 0xce, 0x0, 0x78, 0x68, 0x73, 0x55, - 0xf5, 0x97, 0xa1, 0xff, 0xcf, 0x40, 0x0, 0x5b, 0x50, 0xc9, 0xfe, 0xc6, 0x1a, 0xaf, 0x61, 0xf8, 0xf5, 0x56, 0xd8, 0xde, 0xeb, 0x67, 0x4b, 0x4a, 0x42, 0xb0, 0xf2, 0x29, 0xf1, 0x7e, 0x83, 0x2b, 0xd5, 0x25, 0xd3, 0xca, 0x42, 0x9f, 0xe9, 0xeb, 0x95, 0x4e, 0x5f, 0x6, 0xcf, 0xa1, 0x27, 0x23, 0x39, 0x6e, 0xdb, 0x65, 0xe, 0xbf, 0x7f, 0x2d, 0x72, 0x21, 0xda, 0x1b, 0x98, 0xba, 0x3, 0xfe, 0x75, 0xdb, 0x28, 0x92, 0x8a, 0xb5, 0x25, 0xc7, 0x76, 0xf7, 0xfe, 0x87, 0x16, 0x96, 0xbe, 0x70, 0x3b, 0x60, 0x49, 0x7, 0xbe, 0xb4, 0x71, 0xf9, 0x56, 0x75, 0xac, 0xf1, 0x1a, 0x4a, 0x7b, 0x9f, 0xb8, 0x75, 0xd0, 0xf9, 0xdf, 0xc9, 0xd2, 0x50, 0xc9, 0xd, 0x39, 0x70, 0x20, 0x52, 0x6e, 0xb0, 0xb1, 0x60, 0x64, 0x9e, 0xff, 0xc2, 0x47, 0xab, 0x81, 0x19, 0xb2, 0xe2, 0xf7, 0xb1, 0x74, 0x6b, 0xb0, 0xf2, 0xff, 0xd4, 0xa7, 0x1a, 0xe0, 0x30, 0x75, 0x77, 0xa8, 0xf0, 0x5c, 0xe0, 0x3c, 0x2a, 0x52, 0xd9, 0x1, 0xe3, 0xd0, 0xe4, 0xd2, 0x1c, 0xf9, 0x18, 0xe7, 0xf4, 0xb1, 0x6c, 0x87, 0x15, 0x91, 0x3a, 0xe9, 0x8c, 0xc3, 0xaf, 0xe6, 0xc2, 0x65, 0x8, 0x86, 0x96, 0xa3, 0xac, 0xc3, 0xce, 0xa3, 0x60, 0xe5, 0xef, 0x62, 0xf7, 0x92, 0x80, 0x9b, 0xe1, 0x99, 0x79, 0x79, 0xf1, 0x9, 0x38, 0x28, 0x3b, 0xe9, 0xbb, 0x3, 0x4d, 0xc6, 0x62, 0x61, 0x58, 0x3e, 0xa4, 0x95, 0xe6, 0x8d, 0x30, 0xe8, 0x79, 0x97, 0xd5, 0x9a, 0x15, 0x1b, 0xbc, 0xb7, 0xcd, 0x44, 0x75, 0x19, 0x24, 0x57, 0xf1, 0xfa, 0xdb, 0x55, 0x91, 0x37, 0xc6, 0x1a, 0xaf, 0x61, 0xfc, 0x30, 0x75, 0x16, 0x59, 0x46, 0xf8, - 0x71, 0x70, 0xb9, 0x5c, 0x1, 0x37, 0xd0, 0x1c, 0xaf, 0x9, 0xe6, 0x13, 0x78, 0xe9, 0x49, 0x6d, 0x5d, 0x5f, 0xe6, 0xf1, 0x6b, 0xee, 0x5a, 0x8d, 0x2e, 0x82, 0x45, 0xec, 0x19, 0xc1, 0x91, 0x4c, 0x52, 0x7d, 0x31, 0x38, 0x7e, 0xa7, 0x49, 0xff, 0xb1, 0xba, 0xce, 0xca, 0xff, 0x33, 0x98, 0x1f, 0x66, 0x7f, 0xc5, 0xfe, 0xd2, 0xcf, 0x5e, 0x8d, 0xa0, 0xb9, 0xb2, 0x4d, 0x62, 0xfb, 0xe7, 0x90, 0x64, 0xed, 0x58, 0xe3, 0x35, 0x8c, 0xff, 0x96, 0x14, 0xd0, 0xf6, 0x2e, 0x92, 0x66, 0x47, 0xb8, 0x29, 0x84, 0x1e, 0xf1, 0xe6, 0xd8, 0xfb, 0x2b, 0xb3, 0x87, 0xbf, 0xb1, 0x2c, 0xf3, 0xf8, 0xd5, 0xac, 0x51, 0x89, 0x2b, 0x71, 0x95, 0xd8, 0x89, 0x6e, 0x72, 0x8f, 0xd2, 0x2e, 0x9d, 0x94, 0x3f, 0xc4, 0x3, 0x77, 0x9c, 0x6b, 0xae, 0xa5, 0xfa, 0xfc, 0xa6, 0x7a, 0x3b, 0x79, 0x53, 0x6d, 0x63, 0x77, 0xf8, 0xfd, 0xb9, 0xd8, 0xa6, 0x7f, 0x7d, 0x72, 0x7b, 0x81, 0x24, 0x89, 0x5, 0xfd, 0xe6, 0x58, 0xe3, 0x35, 0x94, 0x96, 0xc7, 0x85, 0x52, 0x4f, 0x7b, 0xe0, 0x1d, 0xf7, 0x24, 0x66, 0xbf, 0x50, 0xfb, 0x21, 0xa2, 0x4b, 0xdd, 0x9d, 0xa4, 0x62, 0x9d, 0x98, 0x79, 0xfc, 0x42, 0x6f, 0x76, 0x41, 0xfb, 0x27, 0x47, 0x80, 0xa, 0x37, 0xcd, 0x43, 0xe5, 0x5e, 0x5d, 0xf1, 0xe5, 0xa9, 0xd1, 0x57, 0x1e, 0xe5, 0x28, 0x1c, 0x76, 0xbd, 0x9a, 0x6f, 0x48, 0x28, 0x2e, 0x6, 0xab, 0x23, 0xfa, 0xa0, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xed, 0x3f, 0xc7, 0xb1, 0x4a, 0x55, 0x13, 0xbb, 0x74, 0x75, 0x27, 0xdb, 0xff, 0xca, 0xc2, 0xaf, 0x6b, 0x35, 0xa7, 0x52, 0x5f, 0xb4, 0xf1, 0x9e, 0x64, 0xc6, - 0xf1, 0xab, 0xdb, 0x51, 0x87, 0xe2, 0x6a, 0xb6, 0x7b, 0x6c, 0x92, 0x1b, 0xc0, 0x34, 0x96, 0xbf, 0xd5, 0xb8, 0x0, 0x2c, 0x79, 0xd, 0x4b, 0xfb, 0xdc, 0xad, 0x84, 0x99, 0xfe, 0x98, 0xc8, 0x86, 0xaa, 0xd8, 0xc1, 0x7e, 0xbf, 0xb5, 0xbf, 0x67, 0x4f, 0x84, 0xeb, 0xd3, 0x55, 0x4d, 0xaa, 0x55, 0xc7, 0x7c, 0xff, 0xab, 0x61, 0xf2, 0xef, 0x90, 0x17, 0x51, 0xae, 0x3a, 0xff, 0x4e, 0xbf, 0xcf, 0xef, 0x96, 0x2c, 0xfc, 0x4c, 0x4e, 0xa5, 0x68, 0x46, 0x51, 0xa1, 0x8d, 0x2, 0xff, 0x85, 0x7f, 0x70, 0x15, 0xa8, 0x58, 0x25, 0xdc, 0x3f, 0x51, 0x52, 0x72, 0xfb, 0xe7, 0xb6, 0xdf, 0x8d, 0x20, 0x34, 0xca, 0x8f, 0x78, 0xdd, 0xad, 0xbf, 0x8d, 0xf0, 0x4, 0xe, 0x6b, 0xdb, 0xbe, 0x7b, 0xbe, 0x55, 0xdd, 0x30, 0xbb, 0x9a, 0x54, 0x1f, 0x3a, 0x27, 0xe7, 0x79, 0x6a, 0xdb, 0x54, 0xe5, 0xb1, 0x8d, 0x9b, 0xce, 0x7a, 0x7f, 0x79, 0xa8, 0xbf, 0xfb, 0xf7, 0xe6, 0xff, 0x8e, 0xba, 0xbc, 0xd8, 0x96, 0x8b, 0x58, 0xd0, 0xda, 0x7e, 0x35, 0xc2, 0xbd, 0xa8, 0x71, 0x35, 0x2, 0x7f, 0x62, 0xfc, 0xaa, 0xeb, 0xa3, 0x37, 0x7e, 0xe5, 0xd8, 0xfe, 0x2f, 0xa4, 0xc7, 0xda, 0xdf, 0xca, 0xd6, 0xba, 0x96, 0x3e, 0xcc, 0x6f, 0x31, 0x6, 0x95, 0x62, 0xa6, 0xaf, 0xe7, 0xbd, 0x6d, 0x36, 0x12, 0x41, 0xa3, 0x83, 0xa8, 0xa5, 0x5a, 0x65, 0x5d, 0x95, 0x38, 0x4c, 0x3e, 0xca, 0x85, 0xb6, 0x7f, 0xcf, 0x30, 0x15, 0xf4, 0xdf, 0xbe, 0xbc, 0xb1, 0xa, 0xd5, 0x41, 0x87, 0x43, 0x31, 0xd, 0x9d, 0x1e, 0x1a, 0xf3, 0xf9, 0xb6, 0xb1, 0xa6, 0xa7, 0x47, 0xa8, 0x9b, 0x1d, 0xb, 0x24, 0x9b, 0xbe, 0xe1, - 0x7, 0x6e, 0xfc, 0x65, 0x41, 0x5a, 0xfb, 0x20, 0xc7, 0xb8, 0xb, 0xbf, 0x1f, 0x38, 0x66, 0x45, 0x47, 0xf4, 0xff, 0xa9, 0x75, 0xac, 0xdb, 0x3f, 0x94, 0x5e, 0xd3, 0x39, 0x97, 0x7c, 0xda, 0x21, 0xb3, 0x79, 0xa4, 0x1e, 0x96, 0x79, 0xbb, 0x54, 0xc0, 0xf3, 0xc8, 0x60, 0xbe, 0xc7, 0x61, 0xf2, 0xef, 0xd1, 0x3b, 0x61, 0x70, 0x3e, 0xdf, 0xd7, 0x3, 0x3f, 0x9, 0x52, 0x37, 0x43, 0xf4, 0x3a, 0xb, 0x51, 0x3c, 0x78, 0x31, 0xe4, 0x75, 0xf, 0xe3, 0xd7, 0x7c, 0xe, 0x13, 0x68, 0x85, 0x60, 0x24, 0xca, 0x8c, 0x82, 0x33, 0x8e, 0xff, 0x8e, 0xef, 0xdf, 0x55, 0x1f, 0xdd, 0x48, 0xdd, 0xf, 0x78, 0xdf, 0x9e, 0x40, 0xfd, 0xf9, 0x36, 0x49, 0xa5, 0x6, 0xa0, 0xba, 0x67, 0x14, 0xfa, 0xef, 0x76, 0x1e, 0x7a, 0x90, 0x3, 0x81, 0xda, 0xdd, 0x1b, 0xa4, 0xd7, 0x3b, 0x94, 0x8b, 0x8d, 0x14, 0x51, 0x7a, 0x72, 0x4f, 0x57, 0x84, 0xa0, 0x86, 0x43, 0xdf, 0x89, 0xf1, 0x3f, 0x9e, 0x34, 0x7b, 0x66, 0xe1, 0xb3, 0xfa, 0x15, 0x94, 0x69, 0x75, 0x1d, 0xa4, 0x56, 0x19, 0x6b, 0xbc, 0x86, 0xc9, 0x9b, 0x3, 0x8d, 0x28, 0x96, 0x9f, 0xb6, 0xc6, 0x2e, 0x59, 0xbb, 0x7, 0xf7, 0x3, 0x94, 0xd, 0xe4, 0x1f, 0x7e, 0xef, 0x90, 0x24, 0xe6, 0x3d, 0x4, 0x4c, 0x1, 0x2a, 0x2a, 0xe9, 0xc9, 0xf6, 0xf6, 0xf6, 0x87, 0x9c, 0xe3, 0x91, 0xa0, 0x9d, 0xe9, 0x9c, 0x5f, 0xbf, 0x3f, 0xe9, 0x5c, 0xca, 0xa5, 0xa1, 0x5f, 0x95, 0x91, 0xf7, 0xdc, 0x7b, 0x1c, 0xcd, 0x2d, 0xe5, 0xf4, 0x4b, 0xe5, 0xfd, 0xd6, 0x78, 0x62, 0x27, 0x7a, 0x88, 0x54, 0xcb, 0x95, 0x62, 0xf8, 0x7e, 0xe5, 0x35, 0x6b, 0x2e, - 0xc6, 0xae, 0xf9, 0xd4, 0xde, 0x84, 0x33, 0xc2, 0x75, 0x47, 0xac, 0x78, 0x11, 0x76, 0xc6, 0x69, 0xed, 0xc8, 0xdb, 0x68, 0x5d, 0xbf, 0x55, 0x7b, 0x8e, 0xb8, 0x13, 0x48, 0x72, 0xad, 0xc1, 0x7c, 0x76, 0x5e, 0x77, 0xc3, 0xad, 0x4b, 0x86, 0x33, 0xce, 0x6d, 0x66, 0xf3, 0x9b, 0x8b, 0x50, 0xa1, 0xbb, 0xd, 0x67, 0x42, 0x88, 0xf3, 0x76, 0x7b, 0x4d, 0xb7, 0x4e, 0x7f, 0xe1, 0x59, 0xf3, 0xfe, 0xfd, 0x5, 0x2d, 0xe1, 0xdb, 0xbe, 0x1a, 0x7b, 0x2f, 0xa0, 0xd9, 0x2e, 0x1, 0x89, 0x91, 0xba, 0xf6, 0x95, 0xf0, 0x17, 0xa0, 0x90, 0x7d, 0x83, 0x48, 0x64, 0x98, 0x7e, 0xba, 0x90, 0x4a, 0x91, 0x93, 0xc6, 0x6b, 0x83, 0xe1, 0xed, 0xdf, 0x3, 0x3e, 0x76, 0x47, 0x51, 0x8a, 0x2e, 0x4d, 0x87, 0x5f, 0x55, 0x47, 0x8e, 0x2e, 0xeb, 0x2, 0xb5, 0xfd, 0xdd, 0xf4, 0x1e, 0xac, 0xfd, 0xec, 0xdf, 0xe2, 0x6a, 0xa9, 0x73, 0x25, 0x75, 0x72, 0x73, 0x88, 0x3a, 0x1a, 0xfb, 0x87, 0x51, 0x3c, 0x88, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0x8d, 0x85, 0xae, 0x22, 0x5e, 0xab, 0xf9, 0x4a, 0x53, 0xad, 0xa2, 0x8b, 0x76, 0xaa, 0x53, 0x83, 0x50, 0x2f, 0x6f, 0x3, 0x70, 0x6c, 0x79, 0x1, 0x8e, 0xea, 0x9e, 0x67, 0xfd, 0x73, 0x10, 0x3d, 0xe3, 0xe2, 0x3, 0x6b, 0x5e, 0xb8, 0x6, 0xf2, 0xb9, 0x44, 0x2c, 0x85, 0xe4, 0x22, 0x15, 0x94, 0x9f, 0xae, 0xbe, 0x4c, 0xfb, 0xca, 0x34, 0x93, 0x3b, 0x4f, 0xdc, 0xb2, 0x65, 0x8b, 0x94, 0xf9, 0xfd, 0x23, 0x4a, 0x29, 0xff, 0xe9, 0x7f, 0x9a, 0xc, 0xc1, 0xa7, 0x57, 0x51, 0xf6, 0x93, 0x98, 0xff, 0x71, 0x1b, 0x3d, 0xa3, - 0x71, 0x6c, 0x52, 0xa0, 0x7b, 0xd6, 0x26, 0x1c, 0xdf, 0xf, 0x10, 0x33, 0xde, 0xf8, 0x4f, 0xbe, 0x34, 0x27, 0xef, 0xbd, 0x4a, 0x36, 0x78, 0xf0, 0x14, 0xe6, 0x34, 0xde, 0x50, 0x39, 0x4c, 0x5f, 0x8f, 0x35, 0x4d, 0xf9, 0xed, 0x3d, 0x6b, 0xfc, 0x3e, 0x22, 0x5a, 0xf3, 0xac, 0x72, 0xe, 0x59, 0x9c, 0x6a, 0xfe, 0xeb, 0x3, 0x87, 0xa5, 0x51, 0xe0, 0x3f, 0x7d, 0xd1, 0x33, 0x2c, 0x97, 0xb7, 0x60, 0xe7, 0x0, 0xf, 0x3f, 0xf1, 0x6b, 0x18, 0xb9, 0x4a, 0xc0, 0x3e, 0x2f, 0x8, 0xd7, 0xe1, 0xf8, 0x78, 0x82, 0xfe, 0xea, 0xfb, 0x15, 0x37, 0xda, 0xf9, 0x7a, 0xff, 0x77, 0x7d, 0xd6, 0x44, 0xbd, 0xbd, 0x93, 0xe7, 0x4b, 0x4e, 0x37, 0x7e, 0x4b, 0x6b, 0x27, 0xb2, 0xf1, 0xe, 0xf8, 0x67, 0x38, 0xc0, 0x57, 0xcc, 0x64, 0xf8, 0xf1, 0x92, 0x89, 0x85, 0xc4, 0x6d, 0x4a, 0x87, 0xe1, 0x48, 0xbf, 0x1f, 0x22, 0x87, 0x4b, 0xed, 0xf6, 0xeb, 0x1f, 0x78, 0x7f, 0x43, 0xe9, 0x79, 0xf5, 0x17, 0x23, 0x38, 0x95, 0x47, 0x5, 0x8c, 0x55, 0xe8, 0xfd, 0x4, 0xd6, 0xb2, 0x78, 0x94, 0x6a, 0xfb, 0xec, 0x63, 0xa6, 0xe4, 0xf6, 0x6e, 0xff, 0x24, 0xf2, 0x74, 0x7b, 0x6e, 0x49, 0xdf, 0x5f, 0x51, 0x56, 0xb3, 0xad, 0x9, 0x13, 0x94, 0x6, 0x51, 0xf5, 0x80, 0x27, 0xe8, 0x45, 0xf8, 0xfd, 0xba, 0x84, 0x93, 0xed, 0xb8, 0xc7, 0x36, 0x7, 0x36, 0x8c, 0x31, 0x8f, 0x9f, 0xac, 0x79, 0x33, 0x44, 0xdb, 0x5b, 0x49, 0xad, 0xff, 0xb2, 0x75, 0xc, 0x7, 0xc7, 0xaf, 0x6a, 0xc8, 0xbf, 0xaf, 0x42, 0x45, 0x30, 0x97, 0xa, 0xa0, 0x67, 0x87, 0xcb, 0xff, 0x91, 0xd2, 0xe1, 0x23, 0x45, 0xf0, 0x6f, - 0xab, 0xd4, 0xdb, 0xa6, 0xf8, 0x69, 0x29, 0xf4, 0xd7, 0xe4, 0x52, 0xab, 0xc9, 0x36, 0x60, 0x3a, 0x49, 0xb2, 0x5e, 0x5c, 0xea, 0x9b, 0x43, 0x35, 0xb1, 0xd3, 0x8e, 0x21, 0x8e, 0x1f, 0xbb, 0xc2, 0x3b, 0xbd, 0x12, 0xfb, 0x4, 0xd5, 0xe6, 0xbf, 0xbb, 0x2b, 0x76, 0x8e, 0x35, 0x5e, 0x1f, 0x84, 0x9f, 0xac, 0x53, 0xf9, 0x17, 0xfb, 0x6b, 0xfc, 0xc8, 0x68, 0xe2, 0xb7, 0xb4, 0x52, 0xe7, 0x82, 0x36, 0x7e, 0x6c, 0xff, 0x76, 0xf2, 0x37, 0xf6, 0x6f, 0x3f, 0xe3, 0xf1, 0x13, 0xf8, 0xe4, 0xc9, 0xf2, 0xef, 0x24, 0xf9, 0xdd, 0xf9, 0xf8, 0x1b, 0x39, 0xa7, 0x12, 0x3f, 0x79, 0x22, 0x99, 0xf8, 0x29, 0x8c, 0xd7, 0xd4, 0xb5, 0x53, 0xfe, 0x72, 0x3d, 0x63, 0xcd, 0x60, 0xe, 0xca, 0x3f, 0xe4, 0x9d, 0x90, 0x7f, 0x97, 0x9f, 0x34, 0x7f, 0xd9, 0xf5, 0xc8, 0xc3, 0x7, 0x9a, 0x7d, 0x33, 0xf1, 0xb4, 0x28, 0x47, 0x44, 0x7a, 0x70, 0xc6, 0x73, 0x25, 0x68, 0x52, 0xb, 0x80, 0x6a, 0x7d, 0x32, 0x76, 0x6b, 0x62, 0x1f, 0x51, 0x23, 0xd4, 0x5e, 0xfa, 0xda, 0x49, 0xf2, 0xef, 0xb4, 0xdb, 0xd7, 0x2b, 0xba, 0x4, 0xf0, 0x45, 0xf2, 0x1, 0xae, 0x73, 0xb2, 0xe1, 0x46, 0x10, 0x2c, 0x1e, 0x6f, 0x12, 0x30, 0xd, 0xb0, 0xe3, 0xc9, 0xd3, 0x7d, 0xbf, 0xc9, 0xbc, 0x86, 0xda, 0xc2, 0x7e, 0x26, 0xf3, 0x45, 0x1f, 0xd2, 0xeb, 0x9b, 0xf0, 0xd1, 0x22, 0xf2, 0xbc, 0x18, 0xb5, 0xb8, 0xcf, 0x1f, 0x8, 0x58, 0xfc, 0xa7, 0x9e, 0xc4, 0x7f, 0x4b, 0x95, 0x12, 0xc8, 0xf7, 0x71, 0xf6, 0x86, 0xb0, 0x9c, 0x20, 0x84, 0x9a, 0x34, 0x74, 0xcd, 0x7a, 0xff, 0x92, 0xd6, 0x36, 0x12, 0xf4, 0xc8, 0x7f, - 0xa9, 0xb8, 0x84, 0xc7, 0xeb, 0xc, 0xaf, 0x20, 0xfd, 0x9f, 0x63, 0xcd, 0xaf, 0x9f, 0xd8, 0x2f, 0x90, 0xda, 0x41, 0xa7, 0x7d, 0x7e, 0x24, 0xf4, 0xf6, 0x8f, 0xa1, 0xed, 0x4b, 0x4, 0x20, 0x6e, 0xd9, 0x6d, 0x36, 0x3, 0x55, 0xf1, 0x1a, 0xf8, 0x6, 0x5b, 0x93, 0xc8, 0xfc, 0xfc, 0xf4, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x2, 0x7d, 0x5c, 0xf4, 0x35, 0xb5, 0x7f, 0x98, 0xe3, 0x72, 0xf6, 0x1a, 0x8, 0x14, 0x54, 0xc9, 0x7b, 0xc1, 0x2, 0xd6, 0xad, 0xea, 0x9, 0xc4, 0xc7, 0xba, 0x7f, 0xa6, 0xa3, 0xbd, 0x6f, 0x4b, 0x98, 0x10, 0xa4, 0x3e, 0x15, 0xb8, 0xaf, 0x44, 0x57, 0x8, 0x8, 0xaf, 0xbf, 0x3c, 0xf8, 0x3e, 0x65, 0x3d, 0x5f, 0x22, 0x91, 0xa0, 0xea, 0x2d, 0xe3, 0xfa, 0x8d, 0xda, 0xc3, 0xf, 0x4e, 0xa6, 0x1c, 0x3b, 0x58, 0x2c, 0x7f, 0x5, 0xe8, 0x69, 0x5c, 0x2d, 0x75, 0x13, 0xce, 0x40, 0x78, 0xfa, 0x11, 0xfd, 0xd3, 0x1, 0x3d, 0x65, 0xc3, 0x18, 0x7a, 0x53, 0xfd, 0x5d, 0xb1, 0x5f, 0x5, 0x34, 0x99, 0x59, 0xd3, 0xa5, 0x44, 0x8d, 0x8e, 0x35, 0x5e, 0x43, 0x69, 0x47, 0xe1, 0x7c, 0x4, 0x85, 0x7a, 0xf0, 0x55, 0xf7, 0xec, 0xf7, 0x51, 0xf9, 0x15, 0x7e, 0xb4, 0xa, 0xdf, 0x53, 0x81, 0x2b, 0x54, 0x2b, 0x9c, 0x3c, 0x6d, 0x7f, 0x9c, 0x2f, 0x4f, 0xa5, 0xdc, 0x33, 0xd5, 0xa2, 0x5c, 0xea, 0xa9, 0xc8, 0x3f, 0x1, 0x8a, 0x7c, 0x98, 0x1b, 0x10, 0x7e, 0x21, 0x98, 0x82, 0xc9, 0x4d, 0xbc, 0xf7, 0x6, 0x8d, 0xa4, 0xf6, 0xb2, 0xc0, 0xf9, 0x1c, 0x42, 0xcf, 0x5c, 0x85, 0x95, 0xf4, 0x23, 0x1b, 0x4f, 0x85, 0xcf, 0xef, 0xa7, 0xfe, 0xdb, 0x22, 0xea, - 0x2f, 0x6, 0xd0, 0x6f, 0xc5, 0xc0, 0x4, 0x86, 0xc9, 0xdf, 0x1c, 0xdc, 0x75, 0xfc, 0x61, 0x88, 0xf2, 0x69, 0x1f, 0x9f, 0xe, 0x35, 0x2d, 0x85, 0xc2, 0x1d, 0xe6, 0x50, 0x74, 0x7f, 0xcf, 0x6b, 0xca, 0xe8, 0xc7, 0x93, 0x59, 0xf6, 0x5f, 0x9, 0x4f, 0x8d, 0x3f, 0xb4, 0x82, 0x2c, 0x44, 0x3a, 0xfb, 0x65, 0xac, 0xf9, 0x2b, 0xad, 0xfc, 0xdf, 0xe5, 0x60, 0x9b, 0x9d, 0x9e, 0xb3, 0x97, 0x88, 0xbf, 0x27, 0x39, 0xac, 0x3f, 0x39, 0xde, 0xe1, 0x76, 0x5d, 0x53, 0xeb, 0x5c, 0xa7, 0x97, 0x31, 0xc3, 0x3f, 0xdd, 0xf7, 0xe7, 0x6e, 0x9c, 0x62, 0x39, 0x7, 0xb9, 0xe8, 0x2d, 0xc0, 0x23, 0x5c, 0xda, 0xf8, 0x64, 0xaa, 0x6d, 0x16, 0x31, 0xe4, 0x6e, 0x80, 0xf1, 0x9, 0x98, 0x12, 0x42, 0x5f, 0x88, 0x82, 0x5e, 0xdf, 0x5e, 0x12, 0x62, 0x44, 0x87, 0xc5, 0x17, 0x5c, 0x1d, 0x3d, 0xf, 0xba, 0xc0, 0x66, 0xea, 0x64, 0xa2, 0xbe, 0xb2, 0xfa, 0x49, 0xb6, 0x1f, 0x2, 0xfa, 0x39, 0x24, 0x5, 0x26, 0x3d, 0x8d, 0x0, 0x1b, 0x6f, 0xd, 0x75, 0xd8, 0xb5, 0x75, 0xe7, 0xf0, 0xf1, 0x81, 0x51, 0xb7, 0x5f, 0xb6, 0x9, 0xe8, 0x28, 0x3e, 0xa8, 0xde, 0x1e, 0x29, 0x8b, 0xb2, 0x5, 0x46, 0xa5, 0xd3, 0x3, 0x68, 0x89, 0x76, 0x37, 0x12, 0xc9, 0x20, 0xcc, 0x32, 0x39, 0x15, 0xfd, 0xab, 0x70, 0x1f, 0x42, 0xff, 0xde, 0xf6, 0x6d, 0xe8, 0xbd, 0x47, 0x3, 0x7e, 0x6b, 0xff, 0x3f, 0xdf, 0x64, 0xef, 0x6d, 0x17, 0xc3, 0x8, 0xda, 0x67, 0x35, 0xa2, 0x26, 0xc3, 0x2f, 0x3d, 0x8e, 0x35, 0x1, 0xdd, 0xb6, 0x89, 0x38, 0x4e, 0x60, 0xe3, 0x2f, 0xcf, 0xe1, 0x2f, 0xfc, 0x7e, 0xe7, 0x67, 0x4b, - 0x9c, 0xcf, 0x3a, 0x93, 0x54, 0xff, 0x26, 0x4e, 0xd6, 0xbf, 0x2b, 0xe4, 0x2, 0x58, 0x1, 0xc8, 0xac, 0xf8, 0x46, 0x1e, 0x5f, 0x3e, 0x72, 0xfb, 0xf, 0x87, 0x39, 0x1d, 0x7b, 0x83, 0x73, 0xa, 0x3a, 0x4b, 0x4e, 0xc1, 0xfe, 0xb, 0xbf, 0x7b, 0x3b, 0xf5, 0xfd, 0x97, 0x49, 0xd1, 0x4, 0x55, 0x36, 0xa7, 0xc0, 0xaf, 0x43, 0xfd, 0xdf, 0x9a, 0x17, 0xa6, 0xa1, 0xda, 0x9e, 0x3b, 0x70, 0x10, 0x74, 0xe1, 0xf2, 0x62, 0x1e, 0xae, 0x94, 0x41, 0xf7, 0xe4, 0x3, 0xf, 0xef, 0xe, 0xe7, 0x50, 0x3b, 0x0, 0x27, 0xf6, 0x8b, 0x63, 0xe3, 0x37, 0x38, 0x8c, 0x85, 0x28, 0xa1, 0x7f, 0x6e, 0x14, 0x1e, 0x95, 0x3f, 0x7, 0x5d, 0xff, 0x53, 0xca, 0x0, 0x3a, 0xfd, 0xeb, 0x69, 0x9a, 0x93, 0x9f, 0xd2, 0xf9, 0x89, 0x32, 0xba, 0xbb, 0xf3, 0xc0, 0x25, 0x7b, 0xd8, 0xf8, 0xb, 0xf9, 0x4a, 0xc9, 0x61, 0xee, 0xfc, 0xd1, 0x1a, 0x7f, 0x39, 0xb8, 0x59, 0x6f, 0xa5, 0x58, 0x59, 0xe3, 0x2f, 0x1d, 0x5c, 0x41, 0xf8, 0x91, 0x75, 0xf4, 0xf8, 0xc7, 0xa8, 0x6f, 0x41, 0xdf, 0x5c, 0xfe, 0x61, 0xfb, 0x95, 0x1d, 0x1f, 0xdf, 0x5, 0x2e, 0x39, 0x43, 0xc7, 0x5f, 0x86, 0xf2, 0xdf, 0x5b, 0x36, 0xff, 0xf9, 0x4e, 0x99, 0xff, 0x4c, 0xd4, 0x8b, 0x99, 0xe2, 0x3f, 0xc7, 0xd1, 0x16, 0x98, 0x6d, 0xdc, 0x25, 0x9f, 0x7f, 0x9e, 0x1e, 0xe8, 0xf9, 0xcb, 0x97, 0x9a, 0x36, 0x5e, 0xb, 0x9f, 0x57, 0x35, 0xbe, 0x87, 0xd9, 0x44, 0xa5, 0x72, 0xae, 0xc9, 0xf4, 0xc0, 0xb3, 0xc6, 0xc1, 0xa3, 0xa7, 0x96, 0xcd, 0x51, 0xf7, 0xd9, 0xf1, 0x1f, 0x7e, 0xe2, 0x8e, 0x33, 0x69, 0x23, 0x9f, 0xf6, 0x78, 0x4a, - 0x8b, 0xff, 0xa6, 0x59, 0xfc, 0xe7, 0x60, 0xfc, 0x57, 0xba, 0xfc, 0x32, 0xb4, 0x98, 0xbb, 0x2b, 0xa9, 0x73, 0x54, 0x56, 0x2b, 0xee, 0xc9, 0xfc, 0xfc, 0xc7, 0xbb, 0x9b, 0x31, 0x40, 0xed, 0xcb, 0x4b, 0x5d, 0x8e, 0xf3, 0x1e, 0xd0, 0x94, 0xe2, 0x79, 0x54, 0xfe, 0x7b, 0x1c, 0x8, 0x2d, 0x79, 0x10, 0xae, 0xe, 0xe3, 0x13, 0x7a, 0xe9, 0xf4, 0x96, 0x54, 0x44, 0x91, 0xaf, 0x52, 0xad, 0x45, 0xcf, 0xda, 0x1d, 0x3c, 0x1c, 0x11, 0x13, 0x52, 0x69, 0x22, 0xfe, 0x8b, 0x3f, 0xec, 0x1e, 0xf5, 0xf5, 0x49, 0x1f, 0xda, 0x7e, 0x9e, 0x39, 0x5, 0xf1, 0xe0, 0x4a, 0x4e, 0xed, 0x53, 0xba, 0xa2, 0xf4, 0xf9, 0x96, 0xfe, 0x4c, 0xa0, 0x66, 0x96, 0x61, 0x59, 0xb8, 0xad, 0x2b, 0x32, 0x1f, 0xef, 0xe4, 0x7d, 0x69, 0x9a, 0x21, 0x7, 0x5, 0xdb, 0xe2, 0xeb, 0x20, 0xea, 0xd0, 0xf5, 0xab, 0x6b, 0x8b, 0xfd, 0x83, 0xfa, 0x54, 0x5f, 0xfc, 0xd3, 0x12, 0x77, 0x8d, 0x20, 0xf7, 0x73, 0x3d, 0x11, 0x74, 0x53, 0x5f, 0xb7, 0xac, 0x56, 0x3d, 0xe3, 0xe2, 0xaf, 0xc2, 0xaf, 0x4e, 0xd5, 0x5f, 0x6e, 0xac, 0x37, 0x58, 0x70, 0x71, 0xc5, 0xa7, 0x80, 0x66, 0xf9, 0x2b, 0xc6, 0x91, 0x40, 0x2c, 0x40, 0x68, 0x59, 0xb7, 0xf3, 0x14, 0xd6, 0x4f, 0xb, 0x28, 0xc0, 0x60, 0x39, 0x85, 0xf1, 0x3, 0xaa, 0x3f, 0xdf, 0xe3, 0xd8, 0x58, 0x3d, 0x6f, 0x9b, 0x7d, 0x53, 0xe5, 0x3f, 0xa0, 0x61, 0xea, 0xe0, 0xf, 0x44, 0xfc, 0xe1, 0x95, 0xe3, 0x10, 0x13, 0xf4, 0xe9, 0x36, 0x6d, 0x18, 0xf3, 0x6, 0xc7, 0x13, 0xe, 0xd8, 0xff, 0xc6, 0x1a, 0xaf, 0xe1, 0xf2, 0x8, 0xdd, 0x71, 0x2e, 0xce, 0x99, 0x7c, - 0xd2, 0x62, 0x83, 0xe9, 0xe6, 0xc, 0xc8, 0xc7, 0x2, 0x49, 0xa1, 0xbb, 0x7c, 0x6e, 0x48, 0x4c, 0x3f, 0x7e, 0x55, 0x85, 0xd4, 0x7a, 0x67, 0x9b, 0x65, 0xd3, 0xdb, 0x3b, 0xd1, 0xa5, 0x50, 0x69, 0x17, 0xed, 0x43, 0x19, 0x11, 0x15, 0xa8, 0x2c, 0x7e, 0xdc, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x6b, 0xf3, 0x67, 0xe8, 0x8f, 0x24, 0xdf, 0x68, 0xda, 0xa8, 0xe8, 0x7c, 0x8, 0xe3, 0x5f, 0x8c, 0x80, 0x27, 0x50, 0xf0, 0x6a, 0xb2, 0x8e, 0x4c, 0xe6, 0xed, 0x41, 0xea, 0xa0, 0xc1, 0x57, 0x8d, 0x35, 0x7e, 0x54, 0x7f, 0x1c, 0xe6, 0x4a, 0x51, 0x16, 0xa1, 0x2f, 0x2c, 0x92, 0xbe, 0xe6, 0xc2, 0x10, 0xa0, 0x12, 0xb1, 0xd1, 0xfa, 0x37, 0x1a, 0xfb, 0x27, 0xa2, 0x5b, 0xb2, 0xe6, 0xda, 0x5a, 0xd8, 0x12, 0x6d, 0xae, 0x69, 0x47, 0xc, 0xfa, 0x5b, 0xbf, 0xb7, 0xec, 0xf, 0x9d, 0x3e, 0x4, 0xc7, 0x33, 0xd, 0x40, 0xbd, 0x4b, 0xe3, 0xad, 0x31, 0xe9, 0xfb, 0xf6, 0xaf, 0x28, 0x9e, 0x85, 0x5e, 0x3d, 0xa0, 0xdf, 0xa, 0x3f, 0x76, 0xa, 0x2d, 0x19, 0xb7, 0x7, 0x46, 0x8c, 0xdf, 0x9b, 0x2a, 0x35, 0xfe, 0xc3, 0x2a, 0xc3, 0xaf, 0x4c, 0x7, 0xd8, 0xfe, 0xb2, 0x51, 0x8a, 0x9b, 0xb1, 0xd6, 0xae, 0x91, 0x96, 0xff, 0x7c, 0xcb, 0xe0, 0x58, 0x86, 0x3c, 0x93, 0x6b, 0x41, 0xe1, 0x29, 0xc4, 0x4b, 0xb3, 0xf9, 0xb4, 0x9b, 0xc5, 0x98, 0x8b, 0xaa, 0x5a, 0x6a, 0x6d, 0xb7, 0x70, 0xe1, 0x39, 0x25, 0x41, 0xf3, 0xf6, 0x4b, 0x39, 0x7b, 0xfd, 0x88, 0x20, 0x5c, 0xbb, 0x63, 0xd, 0xed, 0xd7, 0x29, 0x73, 0xee, 0xd9, 0x83, 0xbb, 0x58, 0xfd, 0xcb, - 0x12, 0x3f, 0x6e, 0xfb, 0xc7, 0x1b, 0x7c, 0x89, 0x3b, 0x84, 0x77, 0xb8, 0xd, 0xcc, 0x3e, 0x8d, 0x5, 0xb4, 0x3a, 0xcc, 0xc7, 0x1c, 0xe1, 0x93, 0x5c, 0x95, 0xcf, 0xd, 0xea, 0x50, 0xdb, 0xf5, 0x1b, 0xf1, 0xea, 0xe9, 0xc7, 0xcf, 0x83, 0x5, 0xc5, 0xb5, 0x98, 0x8d, 0x24, 0x51, 0x83, 0x40, 0x5d, 0x7b, 0x3e, 0x1c, 0x1d, 0x78, 0x4a, 0x2f, 0x89, 0x73, 0x77, 0x22, 0x34, 0x1a, 0xfc, 0xc7, 0x13, 0x29, 0x2e, 0x34, 0x5a, 0x33, 0xce, 0x25, 0x68, 0x18, 0x37, 0x8b, 0x24, 0x2, 0x9a, 0x4b, 0xcf, 0xb7, 0x2a, 0x28, 0xe1, 0xeb, 0x6f, 0xd1, 0x2f, 0x0, 0x89, 0xdb, 0x70, 0x4a, 0x45, 0xe1, 0x5f, 0xcc, 0x0, 0x66, 0xbd, 0xed, 0xde, 0xe4, 0x57, 0xa3, 0x89, 0x84, 0x3e, 0x6c, 0x7c, 0x2f, 0xb5, 0xfe, 0xdd, 0x2e, 0xe2, 0xe9, 0xcf, 0x17, 0xb2, 0x22, 0x7a, 0x25, 0x8a, 0x90, 0xd7, 0xc2, 0xe1, 0x47, 0x88, 0x49, 0xa8, 0xb3, 0xfb, 0x33, 0xb5, 0x7, 0xd9, 0xbf, 0x51, 0xea, 0xbf, 0x1c, 0x8e, 0xf7, 0x60, 0xfe, 0x8f, 0x66, 0x39, 0x8, 0xdb, 0x7c, 0xd0, 0x80, 0x30, 0xc3, 0xa3, 0xa3, 0x69, 0xc7, 0x56, 0xe8, 0xe3, 0x63, 0x8c, 0x1, 0x29, 0x4f, 0xa, 0x91, 0x2a, 0xe5, 0xe3, 0x6c, 0x36, 0xf8, 0x6, 0xda, 0xd9, 0x5b, 0x32, 0xb1, 0x5e, 0x28, 0xe3, 0xf6, 0x9f, 0x67, 0x7e, 0xcc, 0x69, 0xf0, 0xd7, 0x52, 0x62, 0xf, 0x4b, 0x61, 0x22, 0x2f, 0x9f, 0xa5, 0xf3, 0xe, 0xc4, 0xdb, 0xdc, 0xb, 0xf, 0xc, 0xb4, 0xe4, 0x66, 0x3e, 0xfe, 0x79, 0xc9, 0x78, 0xfc, 0x4e, 0x25, 0x6a, 0x5f, 0x44, 0xcc, 0xd3, 0xe9, 0x11, 0xef, 0x9c, 0xd9, 0x14, 0x18, 0x7b, 0xbc, 0xaf, 0x7e, 0xf9, - 0xae, 0xee, 0xb5, 0xb2, 0x1b, 0xb5, 0x6e, 0xbb, 0xb6, 0xfe, 0x6a, 0xeb, 0xb4, 0xf0, 0x8f, 0xc6, 0xe9, 0x79, 0xba, 0xf8, 0x27, 0xb6, 0x9e, 0x46, 0xd7, 0x8d, 0x61, 0xe3, 0x7f, 0x94, 0xff, 0x14, 0x9c, 0x28, 0xa3, 0x3e, 0x1f, 0x37, 0x5d, 0x91, 0x12, 0x47, 0x38, 0x1e, 0xc5, 0xfe, 0x7, 0x99, 0x89, 0x42, 0xa6, 0xd5, 0x7f, 0x1b, 0xda, 0x9c, 0x77, 0x2, 0x54, 0xe8, 0x74, 0x88, 0x64, 0x2e, 0x8b, 0x1f, 0x72, 0x9d, 0xdc, 0x9e, 0xaa, 0xe, 0x5, 0x62, 0x15, 0x55, 0x77, 0xbd, 0x28, 0x67, 0x7, 0x46, 0x7a, 0xfd, 0x49, 0xbc, 0x65, 0x8f, 0xdc, 0xbd, 0xa, 0xf6, 0xcb, 0x4, 0x3e, 0x65, 0x9f, 0xe8, 0x2b, 0xa9, 0xf1, 0x39, 0x3c, 0xfe, 0x39, 0xe3, 0xf6, 0xfb, 0xd1, 0x35, 0x2c, 0x30, 0xe, 0x4c, 0x3d, 0x99, 0x1b, 0xa3, 0x6a, 0xe8, 0x67, 0xbf, 0x4c, 0x9c, 0x97, 0x12, 0xb7, 0xd4, 0xe1, 0x49, 0xab, 0x9f, 0x58, 0x3c, 0x8b, 0x61, 0x49, 0x8c, 0x77, 0xac, 0x79, 0x3, 0x2b, 0x5f, 0x9, 0x95, 0x45, 0xd4, 0x6b, 0xe2, 0xc, 0xfa, 0x21, 0xcc, 0xe1, 0xc1, 0xf, 0x33, 0x9f, 0xfb, 0xa1, 0xed, 0xcd, 0xfc, 0x4, 0xb4, 0x9c, 0xe5, 0x83, 0x2d, 0x1e, 0xe6, 0x4f, 0x5c, 0xbd, 0x63, 0x1b, 0xb0, 0x23, 0x11, 0x40, 0x87, 0x65, 0xe2, 0x48, 0xac, 0x7d, 0x9, 0x81, 0xb8, 0x69, 0x13, 0x9f, 0xa6, 0x7d, 0x78, 0x98, 0x7f, 0x96, 0x5a, 0x5f, 0x48, 0x6, 0x1f, 0xf8, 0x87, 0x6e, 0xf, 0x87, 0x9b, 0x4e, 0x9a, 0x7f, 0xe2, 0x9a, 0xa2, 0xf3, 0xd9, 0x78, 0xdc, 0x22, 0x36, 0x98, 0xd3, 0xad, 0xab, 0x91, 0xa1, 0xf5, 0x8f, 0x76, 0x30, 0x76, 0x57, 0xae, 0xbb, 0xb3, 0xa2, 0xcc, 0x3a, - 0xf2, 0x72, 0x74, 0x55, 0x62, 0xe0, 0xf1, 0x1a, 0x8e, 0x5a, 0x2d, 0x3c, 0xcf, 0x9, 0xf3, 0xaf, 0x1, 0x5b, 0xef, 0x9d, 0xb0, 0xfe, 0x69, 0x40, 0x6c, 0x72, 0x1f, 0xdb, 0xd7, 0x3a, 0xe8, 0x87, 0x5f, 0xcc, 0x8, 0x9e, 0xa5, 0xd6, 0x78, 0x3d, 0xef, 0x81, 0x68, 0x10, 0xf6, 0x66, 0xf3, 0xe3, 0x2a, 0x76, 0xb, 0x5f, 0x62, 0x9d, 0x78, 0xde, 0xa0, 0x3d, 0xa9, 0xd9, 0xad, 0x10, 0xf9, 0xe3, 0xf3, 0x71, 0x6c, 0xa7, 0xed, 0xe4, 0x88, 0xe5, 0x55, 0xdc, 0xc1, 0xc6, 0xb6, 0x6b, 0x19, 0x55, 0x71, 0x44, 0x14, 0x27, 0xe7, 0xb1, 0xe1, 0x6b, 0x32, 0xd9, 0xe2, 0x18, 0xe1, 0xf1, 0xf, 0xdd, 0xff, 0xdf, 0xc9, 0x9d, 0x8c, 0x22, 0xf1, 0x91, 0xca, 0xcf, 0xe8, 0xa9, 0xfd, 0x78, 0xf, 0x9d, 0x43, 0xa1, 0xdf, 0xc7, 0x85, 0xa2, 0x9a, 0xc1, 0x22, 0x3e, 0x47, 0x43, 0xff, 0x5a, 0x1f, 0xf3, 0x89, 0x94, 0x10, 0xcc, 0xf4, 0xf9, 0x62, 0x52, 0xeb, 0xd3, 0xf7, 0x40, 0xd5, 0xd8, 0xa2, 0x91, 0xb1, 0xd6, 0x17, 0x67, 0x1a, 0x7d, 0xa9, 0xc2, 0xf8, 0xda, 0xe4, 0xa0, 0x7f, 0xbb, 0x95, 0xe1, 0x74, 0xa1, 0xcd, 0x6f, 0xc1, 0xca, 0xf3, 0xde, 0xb6, 0x6a, 0xa4, 0xfb, 0xfe, 0x54, 0xa5, 0x9, 0xb4, 0xb7, 0x43, 0x1f, 0x7, 0xfd, 0xe8, 0x29, 0xd4, 0x1f, 0x29, 0x3d, 0xb7, 0xb6, 0x81, 0xf6, 0x6f, 0xca, 0x2, 0x7a, 0x9, 0x5c, 0xd4, 0x4d, 0x72, 0x14, 0x9e, 0x8f, 0x29, 0x58, 0x40, 0x2c, 0x8f, 0xa9, 0xe7, 0xb5, 0x33, 0x2e, 0x3e, 0xf1, 0x4c, 0xa7, 0x7, 0xe3, 0x25, 0x7, 0x8b, 0x63, 0x65, 0x83, 0xf1, 0x19, 0x4f, 0x82, 0x19, 0xf4, 0x89, 0x9e, 0x51, 0x78, 0x9e, 0x6c, 0xbe, 0xdb, - 0x8e, 0x3c, 0xa0, 0xbd, 0x97, 0xdf, 0x8c, 0x93, 0xc6, 0x47, 0x89, 0xb4, 0x13, 0xaa, 0xf7, 0x21, 0x17, 0xf4, 0x81, 0xdd, 0xd6, 0xe4, 0x3d, 0x91, 0x3, 0x3b, 0xc3, 0x77, 0x6c, 0xc0, 0x4, 0xf2, 0xfc, 0xac, 0xdc, 0x72, 0xbf, 0x8f, 0xfe, 0xcd, 0x18, 0x6b, 0xbc, 0x3e, 0x40, 0x1e, 0x2d, 0xfa, 0x35, 0xf7, 0x73, 0x2e, 0xce, 0x9b, 0xbc, 0x49, 0x8f, 0xbc, 0x5d, 0xdb, 0x10, 0xeb, 0x29, 0xd2, 0x98, 0x8c, 0xd2, 0x3f, 0x35, 0xa, 0xf8, 0x85, 0xdf, 0x2f, 0x4a, 0xe4, 0xc5, 0x4, 0x7e, 0x26, 0x9b, 0xfd, 0x28, 0xf2, 0x7, 0xd6, 0xca, 0xb3, 0x2c, 0xfb, 0x99, 0x15, 0xbf, 0x29, 0x14, 0x5e, 0x7b, 0x60, 0x75, 0xd0, 0xe4, 0x52, 0x88, 0x3e, 0xf6, 0xc2, 0xe3, 0x4d, 0xd1, 0xf5, 0xb8, 0x17, 0x9c, 0x52, 0xdb, 0xa6, 0x46, 0xd1, 0xa3, 0x8f, 0x39, 0x5e, 0x43, 0xe9, 0x3b, 0xdb, 0x4b, 0xa9, 0xaa, 0xeb, 0x7f, 0x61, 0xb7, 0x7d, 0x0, 0x73, 0xe5, 0x37, 0xa9, 0xf4, 0x61, 0x1, 0x15, 0xf7, 0xfa, 0xf5, 0x47, 0xb8, 0xd1, 0xe0, 0xbf, 0x6e, 0x6a, 0x29, 0x59, 0x1c, 0x18, 0x17, 0xfe, 0x6c, 0xad, 0xff, 0xad, 0x4e, 0x59, 0x9c, 0x21, 0xf3, 0x2e, 0x77, 0xd, 0x5b, 0x3f, 0x6d, 0xe7, 0x3, 0x44, 0x69, 0x44, 0x6d, 0xfd, 0xab, 0x7c, 0x8e, 0x67, 0x40, 0xbe, 0xbf, 0x74, 0xfd, 0x37, 0xf4, 0x44, 0x3f, 0x82, 0x42, 0xa2, 0x10, 0x2d, 0xb, 0xb7, 0xec, 0xd6, 0x94, 0x51, 0xef, 0xbf, 0xac, 0xbf, 0x2, 0x86, 0xd5, 0x5f, 0x95, 0x88, 0xe8, 0xfc, 0xeb, 0xfe, 0x3b, 0xc9, 0xee, 0xbf, 0xc6, 0xd6, 0x6, 0x57, 0xb9, 0xdf, 0x45, 0xcb, 0x19, 0xd7, 0x7f, 0x87, 0xf2, 0x9f, 0xe3, 0xfa, 0x6, - 0x7d, 0xa2, 0xf5, 0x49, 0xb5, 0xb8, 0x22, 0xe3, 0xfd, 0xf7, 0x8e, 0xe9, 0xb4, 0x3f, 0xe2, 0xbd, 0x25, 0x2e, 0xdf, 0x7c, 0xd5, 0xe7, 0x2a, 0xf0, 0x6e, 0x1f, 0x8f, 0x8e, 0xa0, 0x6d, 0xd2, 0xf4, 0x46, 0xee, 0x29, 0x93, 0x73, 0x4e, 0xc4, 0x3, 0x1d, 0x36, 0xdd, 0x58, 0x5b, 0x7c, 0x35, 0x1b, 0xcf, 0xa0, 0xcd, 0x49, 0x46, 0x4d, 0x43, 0xf8, 0xe2, 0x58, 0xe3, 0xf5, 0x41, 0xf2, 0x2f, 0x89, 0x8d, 0x60, 0x11, 0xf8, 0x2c, 0x7e, 0x9c, 0xf2, 0xe3, 0x22, 0xfb, 0x9c, 0x2e, 0xf7, 0x53, 0xb3, 0x3f, 0xd3, 0xd7, 0x3b, 0x9a, 0x2c, 0xd2, 0x72, 0xcf, 0x45, 0x41, 0x35, 0xcf, 0xca, 0xec, 0x23, 0xe1, 0x6, 0x1e, 0xfa, 0xee, 0x44, 0x11, 0x11, 0x21, 0xfb, 0xb, 0xa, 0x86, 0xad, 0xa7, 0xb9, 0xb9, 0xeb, 0x49, 0x68, 0xf7, 0xfd, 0x2a, 0x60, 0xd3, 0xc6, 0x99, 0xb7, 0xfe, 0x77, 0x48, 0xff, 0xd, 0x5f, 0xd7, 0x10, 0x5b, 0xc6, 0x6c, 0xe9, 0xfe, 0x3, 0x16, 0x3d, 0xea, 0xfd, 0x77, 0x3b, 0x81, 0x1a, 0x8c, 0x5a, 0x67, 0x59, 0xff, 0xb5, 0xe6, 0x77, 0x8f, 0xe9, 0x25, 0x54, 0x3a, 0xf2, 0x66, 0xdc, 0x7c, 0xb6, 0x4a, 0x9d, 0x82, 0x60, 0xa3, 0x16, 0x34, 0x3, 0x71, 0xc1, 0xe0, 0x46, 0x1e, 0x9f, 0xb6, 0x16, 0xf8, 0xcd, 0x9, 0x7f, 0xcd, 0x10, 0x96, 0x0, 0x5f, 0x1c, 0x49, 0xfc, 0xb4, 0xad, 0x7f, 0xe3, 0xc7, 0xf5, 0xaf, 0x77, 0x65, 0x3, 0xb9, 0x93, 0xdd, 0x4e, 0x23, 0x19, 0x15, 0xfc, 0x2c, 0xfd, 0x4b, 0xd5, 0xbb, 0xa5, 0x7f, 0x7d, 0xfe, 0x80, 0x94, 0x37, 0x8b, 0xb6, 0x3a, 0x80, 0x87, 0x35, 0x20, 0xf2, 0x24, 0x87, 0xb9, 0xbb, 0xae, 0xc2, 0x4c, 0x58, 0x1, 0xe3, - 0xba, 0xb, 0xfb, 0xb8, 0xba, 0x7a, 0xd5, 0x70, 0x4, 0x13, 0x3c, 0xfb, 0x8b, 0xc3, 0x78, 0x63, 0xac, 0xf9, 0x6d, 0x28, 0xdd, 0xbc, 0xab, 0x5, 0xb2, 0x3, 0x91, 0x23, 0xd4, 0xbb, 0xe4, 0x7b, 0x54, 0x29, 0x15, 0xef, 0x3e, 0x58, 0x32, 0x3e, 0x9f, 0x5f, 0xb3, 0xc6, 0xad, 0x39, 0xf5, 0xc5, 0xd6, 0x6a, 0x4b, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x9f, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xa9, 0x7f, 0x2a, 0xdb, 0x1a, 0x39, 0x9e, 0xde, 0xbf, 0x1b, 0x6b, 0xda, 0xfb, 0x84, 0x80, 0x44, 0xb0, 0xb6, 0x85, 0x85, 0xfc, 0x45, 0xb4, 0x7b, 0x46, 0x7d, 0x7c, 0xb2, 0x66, 0x1b, 0x8f, 0xb, 0xe6, 0x2b, 0x50, 0x23, 0xe8, 0xd3, 0xa5, 0xc8, 0x8f, 0x6b, 0x4, 0xea, 0xbc, 0x3d, 0x45, 0xa4, 0x3e, 0x4d, 0xdc, 0x4b, 0x24, 0x5, 0x7f, 0x15, 0xf, 0x4c, 0x79, 0x90, 0xd2, 0xb, 0xc1, 0x82, 0x87, 0xc0, 0x7, 0xd9, 0x81, 0x91, 0x5e, 0x7f, 0xc2, 0xbd, 0xdf, 0x63, 0x6c, 0x61, 0xcb, 0x53, 0xe3, 0xf3, 0x23, 0xf6, 0xb7, 0xaa, 0xa2, 0x97, 0x20, 0x1, 0xe3, 0x7c, 0xd6, 0x3b, 0x4c, 0xae, 0x3, 0x7, 0x8f, 0x50, 0x24, 0x9, 0xd5, 0x85, 0xdf, 0xe9, 0x42, 0x26, 0xda, 0x3b, 0x94, 0x66, 0xf3, 0x19, 0x6d, 0x93, 0xf4, 0xcd, 0xdc, 0x57, 0xa7, 0xea, 0xb3, 0x51, 0xc3, 0x85, 0x57, 0x2e, 0x81, 0xb9, 0x68, 0x50, 0xe5, 0xca, 0xfe, 0xd2, 0x7, 0x1a, 0xd1, 0xd2, 0x65, 0x7, 0x24, 0xec, 0x89, 0x88, 0xb3, 0x43, 0x93, 0xeb, 0xc9, 0x41, 0x69, 0x19, 0x36, 0xf7, 0x4, 0x5c, 0x2e, 0x47, 0xcf, 0x19, 0x97, 0xff, 0x25, 0x85, 0xdf, 0x79, 0x83, 0xf8, 0x8d, 0xf6, 0xf5, 0xe6, - 0xd5, 0xab, 0x31, 0x36, 0xdd, 0xfb, 0x9, 0xe0, 0x62, 0xf6, 0x3a, 0x54, 0xfe, 0x8d, 0x35, 0x1e, 0x1f, 0xba, 0xff, 0x5e, 0x51, 0x44, 0x65, 0xf5, 0xbe, 0x73, 0x7, 0x43, 0x40, 0x4b, 0x73, 0xf0, 0xc7, 0xca, 0x6, 0x29, 0x99, 0x22, 0xd3, 0xde, 0x4f, 0xe8, 0x21, 0x5, 0x88, 0xed, 0xb, 0x20, 0x50, 0x7e, 0x4a, 0xf6, 0x22, 0xd5, 0x1f, 0xba, 0x1c, 0xe3, 0xd1, 0x99, 0xd2, 0x1f, 0x4d, 0xbb, 0x98, 0xb9, 0x14, 0x61, 0x32, 0x37, 0x88, 0xbd, 0x44, 0xad, 0x6b, 0x9f, 0x8e, 0x90, 0x66, 0xd7, 0x8e, 0xf3, 0x9, 0xc1, 0xb1, 0x79, 0x3, 0x36, 0x21, 0xc7, 0x28, 0xcf, 0x71, 0x54, 0x7a, 0x1c, 0xab, 0x9f, 0xae, 0xda, 0xb8, 0x9, 0x89, 0x9c, 0x68, 0xc2, 0xd2, 0x78, 0x30, 0xef, 0x67, 0xfa, 0x86, 0x36, 0x56, 0x66, 0xfa, 0xe6, 0x3c, 0x9c, 0xfe, 0xf9, 0xcd, 0xa1, 0xf8, 0x7d, 0x58, 0x3c, 0xfe, 0xf, 0xfa, 0xf7, 0x6f, 0xe2, 0x37, 0x4f, 0x66, 0xab, 0x90, 0x99, 0x3d, 0x4d, 0x24, 0xe8, 0xab, 0x30, 0x14, 0xaf, 0xb1, 0xe6, 0xb7, 0xa1, 0xf4, 0x50, 0xff, 0xa3, 0x49, 0x91, 0x10, 0x23, 0xf4, 0x8e, 0x92, 0x9a, 0x38, 0x1a, 0xf8, 0xa5, 0xf3, 0x7f, 0x59, 0xfe, 0x21, 0x79, 0x70, 0x9, 0x5c, 0xcf, 0x9c, 0x43, 0x6c, 0xbe, 0xce, 0xe4, 0x1b, 0xd1, 0xc8, 0x62, 0xb6, 0x9c, 0x64, 0x58, 0xbe, 0xa7, 0xb1, 0xa6, 0x6b, 0x96, 0x14, 0x51, 0x7b, 0x21, 0x2a, 0x4d, 0x4e, 0xe1, 0xc7, 0xfc, 0xb7, 0x71, 0xd6, 0xa7, 0xd1, 0xf1, 0xdf, 0xa8, 0xfe, 0x78, 0x87, 0x9b, 0x23, 0x24, 0x10, 0xb, 0x60, 0x6e, 0x6c, 0x1f, 0xe7, 0x38, 0xba, 0x6, 0xfe, 0x5f, 0x5e, 0x6, 0xfd, 0x6e, 0x57, 0x8f, - 0xb2, 0xf7, 0x90, 0xc2, 0xf2, 0x97, 0x6c, 0xc2, 0xbb, 0xc7, 0xf3, 0x97, 0x54, 0x45, 0xd7, 0x1b, 0xb2, 0x2e, 0x97, 0x1b, 0x12, 0xe5, 0x3e, 0x18, 0xd7, 0x8c, 0xf4, 0xfa, 0x52, 0xfb, 0x7f, 0xa1, 0x72, 0x70, 0x75, 0x2f, 0x66, 0x8f, 0xf8, 0xfe, 0x3e, 0x60, 0xfc, 0x2f, 0x71, 0x8b, 0x3d, 0x9f, 0x78, 0x5a, 0xc6, 0xff, 0x86, 0x8d, 0x1f, 0x34, 0x6f, 0x82, 0x92, 0xdc, 0x2d, 0x5, 0x78, 0xa3, 0x83, 0x70, 0xf3, 0x76, 0x86, 0x9b, 0x37, 0x40, 0xe3, 0x5d, 0x1b, 0x17, 0x3a, 0xac, 0x1, 0x84, 0x8c, 0x8f, 0x1f, 0x88, 0x14, 0x4f, 0x72, 0x1c, 0xcf, 0xc4, 0x87, 0x5e, 0x5f, 0xcc, 0xf8, 0x2f, 0x17, 0x7, 0xa4, 0xd4, 0x9a, 0x19, 0xbc, 0xf6, 0x0, 0xb5, 0x5b, 0x62, 0x9f, 0xf, 0xb0, 0x31, 0xf1, 0x2, 0x7e, 0x74, 0xec, 0x17, 0x6e, 0xe, 0x53, 0xf9, 0x1, 0xcc, 0x8b, 0xb5, 0x70, 0x43, 0xe5, 0xdf, 0x7, 0xe0, 0x2d, 0xa5, 0x9a, 0x56, 0x4e, 0x1d, 0x93, 0xc2, 0xb1, 0xee, 0xaf, 0x43, 0xe9, 0x95, 0x9d, 0xcb, 0x89, 0x87, 0x38, 0x34, 0x44, 0x5e, 0xb0, 0x8e, 0xc8, 0xb9, 0x6b, 0xe8, 0x2b, 0x6f, 0xb8, 0xf7, 0xd9, 0x35, 0x32, 0x7d, 0x3d, 0xaa, 0xdf, 0xff, 0xcc, 0xf5, 0x12, 0x20, 0x27, 0x8a, 0x9e, 0x88, 0xae, 0x9e, 0x18, 0xaf, 0xa0, 0xdd, 0xb3, 0x42, 0x97, 0x42, 0xd7, 0xe7, 0x51, 0x76, 0x3c, 0xdf, 0x16, 0x21, 0xe8, 0x69, 0xb0, 0xc6, 0xa7, 0x15, 0xc2, 0xf5, 0x69, 0xaa, 0x6f, 0x34, 0xda, 0x33, 0x52, 0x3a, 0x74, 0xc9, 0xb4, 0xa0, 0x29, 0x15, 0xa3, 0x4a, 0xdc, 0xd2, 0xa3, 0x9d, 0x86, 0xf6, 0x95, 0xde, 0xba, 0x90, 0xda, 0xc7, 0xa, 0x11, 0xf7, 0x44, 0x20, 0xac, - 0xdb, 0xb4, 0xc0, 0x7b, 0xc5, 0xb5, 0xcc, 0xb9, 0xb0, 0x4a, 0x2f, 0xc5, 0x33, 0x74, 0xc9, 0x65, 0x60, 0x53, 0x98, 0x9a, 0x8d, 0x1f, 0x77, 0x89, 0xe7, 0x3f, 0xd8, 0x7, 0xc2, 0xfa, 0x3, 0xf4, 0x33, 0x30, 0xff, 0xd5, 0x82, 0x5b, 0xd1, 0x33, 0xc9, 0x3, 0x7f, 0x6a, 0xc, 0x7d, 0x62, 0x6a, 0x1f, 0x1a, 0x8d, 0x9b, 0x41, 0xfd, 0x83, 0x68, 0xc6, 0xf1, 0xac, 0x32, 0xeb, 0x8d, 0x7c, 0x43, 0xc, 0xc5, 0x39, 0xc3, 0x9d, 0x70, 0x9a, 0x38, 0x29, 0x7f, 0x9d, 0x89, 0x0, 0x71, 0xca, 0xf, 0xb8, 0x40, 0x26, 0xd8, 0x8d, 0x59, 0xdc, 0xe5, 0xfa, 0x3e, 0x5b, 0xef, 0xa1, 0x1f, 0x1b, 0x8f, 0x56, 0x1e, 0xad, 0xd0, 0x2b, 0xce, 0x38, 0xfe, 0xb, 0x3f, 0x2a, 0xa1, 0xe3, 0x5c, 0x31, 0x10, 0x55, 0x6d, 0x25, 0x12, 0x3e, 0x18, 0xe, 0x12, 0xf, 0x82, 0xdd, 0x85, 0xfe, 0x51, 0xd2, 0xbf, 0xfc, 0xb1, 0xd7, 0xf2, 0x70, 0x80, 0xb, 0x96, 0x61, 0xa7, 0x10, 0xe5, 0x19, 0xff, 0xe5, 0xa6, 0x5c, 0x5e, 0xc6, 0x7f, 0xde, 0x99, 0x8d, 0x83, 0xf1, 0xbc, 0x54, 0x98, 0x78, 0x34, 0x4b, 0x5e, 0xe2, 0x11, 0xee, 0xdb, 0xd8, 0xeb, 0x8a, 0x49, 0xc6, 0x19, 0x97, 0x3f, 0xa2, 0x49, 0x29, 0x45, 0x1e, 0x75, 0x37, 0x35, 0xce, 0xd6, 0x20, 0x1f, 0xde, 0x1e, 0xbe, 0x86, 0xb4, 0xeb, 0xe, 0x2c, 0x48, 0x3d, 0x80, 0x74, 0xf5, 0x57, 0x98, 0x8b, 0x51, 0xe4, 0x5d, 0xf6, 0x5b, 0x74, 0x4c, 0xc5, 0x1c, 0x21, 0x2a, 0xda, 0xf8, 0xd, 0x8e, 0x3f, 0xeb, 0x6a, 0x4d, 0xae, 0x1b, 0xc9, 0x14, 0x7e, 0xba, 0xba, 0x6e, 0x75, 0x35, 0x67, 0x2c, 0x7a, 0x3f, 0xbe, 0xbf, 0x61, 0x77, 0x85, 0x6e, 0x25, - 0xa4, 0x66, 0xf6, 0x23, 0xdb, 0x97, 0xc1, 0xca, 0x5e, 0xdc, 0x82, 0x85, 0xe1, 0x1c, 0xec, 0xc4, 0x89, 0x72, 0xda, 0xe7, 0x47, 0x26, 0xd5, 0x36, 0xc0, 0x83, 0xb9, 0x8c, 0x78, 0xf, 0xf8, 0x3a, 0x58, 0x7e, 0xec, 0x84, 0x95, 0x1f, 0xfb, 0x5b, 0xd2, 0xff, 0x5, 0xcf, 0xf4, 0xf6, 0xb, 0xb5, 0x87, 0xb9, 0x56, 0x4, 0xf0, 0x1c, 0x92, 0xd4, 0x3f, 0xb, 0x5d, 0xbf, 0x16, 0x89, 0xe0, 0xe0, 0x8, 0xa6, 0xb6, 0x31, 0xbc, 0xbd, 0x4f, 0xe3, 0x16, 0x18, 0xb6, 0x39, 0xea, 0x53, 0xa3, 0x35, 0x82, 0x9c, 0xe4, 0x88, 0x1a, 0xa1, 0x88, 0x51, 0x35, 0x22, 0xf5, 0x8d, 0x35, 0xbf, 0xfd, 0x2f, 0xfd, 0xb7, 0x48, 0x39, 0xa9, 0xff, 0xea, 0x1e, 0xe8, 0x5f, 0x1e, 0xb5, 0xfe, 0x8b, 0xf7, 0x5e, 0x73, 0x9e, 0xe8, 0xbf, 0x75, 0xf5, 0xe3, 0x51, 0x2c, 0x3f, 0x6b, 0x65, 0x9f, 0x29, 0xc1, 0x51, 0x6b, 0xfd, 0xb6, 0xcd, 0x49, 0x56, 0xfc, 0xcb, 0x5b, 0x4d, 0x1b, 0x67, 0xd1, 0xde, 0x3d, 0x23, 0x82, 0xee, 0x48, 0x5b, 0x4f, 0x4, 0x65, 0x23, 0xd6, 0x97, 0x47, 0x99, 0x6a, 0x17, 0x27, 0x47, 0x2c, 0x5a, 0x29, 0x1f, 0xe9, 0xef, 0xfd, 0x63, 0x75, 0x11, 0xed, 0x6, 0xd5, 0x6d, 0xce, 0x8e, 0x7, 0xaf, 0xbc, 0x72, 0xe9, 0xd2, 0x25, 0xd3, 0xd8, 0xfc, 0x25, 0x28, 0x7b, 0x5c, 0x74, 0x1, 0xbe, 0x36, 0xa, 0xf1, 0x93, 0xa5, 0x7f, 0x28, 0x80, 0x6a, 0x2e, 0x27, 0x62, 0x99, 0x42, 0xa8, 0xa1, 0xa9, 0x5a, 0xeb, 0x2f, 0x83, 0xd6, 0x49, 0x8d, 0x54, 0xec, 0x60, 0xf6, 0xcc, 0x3d, 0x48, 0x95, 0x98, 0xe9, 0x6e, 0x2d, 0x7d, 0x73, 0xe, 0xf4, 0x5f, 0xf8, 0x98, 0x42, 0xf1, 0xe8, 0x62, - 0x4f, 0xda, 0x7c, 0x40, 0xa3, 0xce, 0x6f, 0x39, 0x78, 0x8c, 0x7d, 0x1a, 0xec, 0x31, 0xa5, 0x97, 0x9f, 0x4f, 0xef, 0x67, 0x16, 0x11, 0xfb, 0x22, 0x9c, 0xda, 0xd7, 0x81, 0xe6, 0xde, 0xdf, 0x25, 0x7e, 0x1f, 0x30, 0xbc, 0xa9, 0xd3, 0x1a, 0x8b, 0x87, 0xd6, 0x58, 0x4f, 0xf6, 0xe4, 0xad, 0x6c, 0x97, 0x47, 0x3e, 0xbe, 0xc4, 0xe2, 0x87, 0x9e, 0xa2, 0xa6, 0x70, 0x92, 0xd7, 0x4a, 0xe2, 0xb9, 0x4f, 0x61, 0xda, 0xc6, 0x99, 0xc0, 0x79, 0x41, 0x2f, 0xde, 0x44, 0x2c, 0x27, 0x76, 0xd3, 0xa8, 0xeb, 0xd7, 0xaa, 0x5d, 0x57, 0x21, 0x4, 0x8d, 0x76, 0x36, 0x81, 0x32, 0x49, 0x23, 0xbc, 0x57, 0x70, 0xc8, 0xb7, 0x76, 0x5e, 0x24, 0x22, 0xcb, 0x52, 0x91, 0xee, 0xfb, 0x4b, 0x77, 0xfc, 0x1b, 0x13, 0xbf, 0x53, 0x2, 0x29, 0x80, 0xd8, 0x7a, 0xdc, 0x8e, 0xbd, 0x3c, 0x6e, 0x80, 0x5e, 0x4, 0x52, 0x32, 0xea, 0xed, 0x97, 0x52, 0xf1, 0x68, 0xf7, 0xfb, 0x69, 0xff, 0x7c, 0x92, 0x4f, 0xc5, 0xaf, 0xe1, 0xbe, 0x7f, 0xa4, 0x2f, 0xaf, 0x7f, 0x69, 0xf4, 0xc7, 0xff, 0x9a, 0x92, 0x53, 0xe0, 0xb3, 0xd4, 0xbd, 0x23, 0x82, 0xbe, 0xe1, 0xfe, 0x4e, 0x3a, 0x9a, 0xc5, 0x4f, 0x6, 0x59, 0xbe, 0xc4, 0x9f, 0xf, 0x58, 0xf2, 0xad, 0x39, 0xaa, 0x21, 0x41, 0x14, 0x41, 0x64, 0x85, 0x17, 0xfa, 0xea, 0xac, 0x25, 0x70, 0xf6, 0xde, 0x43, 0xec, 0x7c, 0xa6, 0xdb, 0xbf, 0x26, 0xfa, 0x5b, 0xfd, 0xed, 0xa, 0x83, 0xd, 0xa1, 0x7e, 0xea, 0x3e, 0x10, 0x5f, 0xee, 0xba, 0x55, 0xc1, 0xa0, 0xfe, 0x69, 0x7, 0xaa, 0x21, 0xdf, 0xf6, 0xbb, 0x96, 0x6d, 0x5f, 0xca, 0xa3, 0xe2, 0x6f, 0x47, 0x7f, - 0x5b, 0x4e, 0x45, 0x52, 0x6b, 0xcb, 0x2b, 0xfc, 0x9f, 0xb5, 0x7, 0xa6, 0x42, 0x6e, 0x87, 0xe0, 0x8, 0x1a, 0xf1, 0x2d, 0x6e, 0x65, 0xc4, 0xfa, 0xf5, 0x78, 0xbc, 0x4d, 0xad, 0xb6, 0x55, 0xed, 0xee, 0x60, 0xfb, 0x3d, 0x2c, 0x1a, 0xc9, 0xfc, 0xdb, 0xe9, 0xa6, 0x8f, 0xb7, 0x9f, 0xc8, 0x1b, 0x8f, 0x3c, 0x95, 0xfe, 0xf9, 0xc, 0xce, 0xa7, 0x93, 0x92, 0xa3, 0x3, 0x71, 0xa7, 0xf, 0x79, 0x7d, 0x3f, 0x8, 0x6a, 0x83, 0x83, 0x45, 0x9, 0xf3, 0x8c, 0xcb, 0x67, 0x9c, 0xa5, 0xff, 0x36, 0x3d, 0xf0, 0x4d, 0x70, 0x97, 0x50, 0x6, 0xf8, 0xfe, 0x43, 0xc0, 0x52, 0xde, 0x9a, 0x2a, 0x62, 0xeb, 0xb8, 0x2d, 0x15, 0xc8, 0xd6, 0xa3, 0xe9, 0xcc, 0x70, 0xa0, 0xe7, 0x8d, 0x47, 0xed, 0x6f, 0x7c, 0x97, 0xfe, 0x57, 0x71, 0xa, 0x45, 0xca, 0x77, 0xbb, 0x3c, 0x92, 0xdb, 0x39, 0xc1, 0x59, 0xe0, 0x71, 0x4d, 0x70, 0x39, 0x5d, 0x79, 0x79, 0xf2, 0x78, 0x8f, 0x28, 0xe7, 0x39, 0xb, 0x7c, 0x93, 0x7d, 0xf9, 0x6e, 0xab, 0x4c, 0xf4, 0xb0, 0xd7, 0xbc, 0x3c, 0x67, 0xde, 0x39, 0xe3, 0x27, 0xb0, 0xe2, 0x9a, 0x70, 0xe, 0x2d, 0x1e, 0xb7, 0xc7, 0x3e, 0x3f, 0xc9, 0x55, 0x40, 0x4b, 0x1e, 0x2d, 0xa9, 0x3, 0x76, 0x49, 0x77, 0xed, 0x5c, 0x49, 0x9e, 0xe0, 0x99, 0x3c, 0xc1, 0x91, 0x9b, 0x5b, 0xe0, 0xca, 0x91, 0xc5, 0xf1, 0xe7, 0xb8, 0x3d, 0xac, 0x14, 0x78, 0x3c, 0x22, 0x6d, 0x56, 0x7e, 0x7e, 0x11, 0xa5, 0xcf, 0x71, 0xbb, 0xc7, 0x8f, 0xcf, 0x73, 0x8d, 0x73, 0x4f, 0x18, 0x3f, 0xc1, 0x3d, 0x81, 0x9e, 0x3d, 0xc7, 0xe3, 0xa3, 0xaf, 0x79, 0xe3, 0xf3, 0xdc, 0xe7, 0xc8, 0x6e, - 0xb7, 0xcb, 0x5d, 0xe0, 0xa2, 0x2d, 0xcb, 0x2d, 0x90, 0x26, 0xb1, 0x2b, 0x3a, 0xb, 0x9c, 0xee, 0x7c, 0x6f, 0x7e, 0x7e, 0x81, 0x53, 0x72, 0x8e, 0x3b, 0xf9, 0x52, 0xff, 0x1f, 0xc3, 0x4d, 0x47, 0xb3, -} ; + 120, 156, 237, 125, 13, 116, 19, 87, 150, 230, 43, 169, 44, 61, 9, 89, 146, 141, 13, 178, 35, 74, 2, 11, 16, 63, 14, 2, 28, 34, 130, 98, 21, 240, 136, 5, 193, 29, 51, 116, 186, 33, 157, 237, 40, 158, 52, 237, 36, 227, 30, 217, 132, 142, 8, 142, 85, 161, 233, 32, 50, 241, 180, 210, 233, 31, 102, 54, 147, 168, 123, 231, 204, 228, 236, 9, 167, 157, 179, 147, 109, 102, 54, 59, 81, 2, 19, 51, 115, 112, 143, 115, 210, 57, 211, 59, 155, 19, 202, 144, 237, 164, 103, 227, 165, 24, 146, 142, 166, 99, 172, 125, 247, 85, 25, 104, 203, 19, 217, 99, 201, 114, 39, 245, 14, 63, 250, 84, 85, 122, 85, 183, 238, 187, 239, 222, 251, 238, 189, 47, 118, 238, 147, 239, 10, 28, 66, 239, 255, 69, 0, 185, 56, 39, 66, 40, 251, 207, 59, 254, 114, 101, 238, 90, 19, 165, 190, 238, 246, 238, 175, 108, 232, 16, 191, 183, 238, 210, 250, 79, 214, 31, 93, 31, 220, 208, 27, 150, 186, 125, 41, 244, 191, 99, 25, 116, 86, 146, 150, 139, + 233, 220, 56, 66, 82, 85, 166, 70, 50, 190, 241, 212, 55, 69, 201, 248, 90, 213, 192, 15, 114, 78, 241, 199, 225, 1, 233, 104, 247, 174, 135, 14, 175, 235, 16, 119, 53, 29, 11, 195, 111, 60, 182, 225, 192, 134, 122, 218, 219, 218, 219, 92, 13, 71, 110, 185, 240, 224, 170, 63, 83, 123, 187, 173, 251, 239, 214, 94, 235, 105, 30, 122, 41, 252, 127, 247, 159, 145, 208, 192, 63, 228, 56, 233, 229, 23, 140, 63, 91, 75, 127, 201, 32, 253, 175, 174, 125, 27, 254, 140, 126, 251, 166, 246, 45, 220, 227, 190, 13, 175, 209, 111, 254, 153, 126, 195, 191, 98, 252, 217, 190, 13, 94, 138, 126, 153, 51, 116, 255, 141, 244, 178, 20, 16, 127, 73, 191, 143, 176, 239, 47, 210, 239, 199, 232, 247, 93, 146, 145, 254, 207, 73, 223, 160, 223, 238, 237, 230, 164, 47, 209, 255, 127, 190, 127, 104, 127, 123, 247, 79, 105, 31, 237, 221, 94, 73, 222, 127, 184, 123, 225, 134, 254, 13, 127, 27, 78, 207, 219, 123, 233, 168, 229, 160, 120, 105, 205, 83, 79, 242, + 191, 106, 191, 121, 221, 227, 206, 223, 228, 244, 166, 55, 189, 233, 77, 111, 122, 211, 155, 222, 244, 166, 55, 189, 233, 77, 111, 122, 155, 149, 102, 68, 123, 184, 187, 62, 165, 61, 252, 205, 47, 174, 115, 142, 189, 253, 55, 159, 118, 206, 232, 21, 245, 183, 144, 214, 72, 95, 45, 230, 3, 56, 112, 48, 24, 18, 60, 102, 35, 34, 173, 203, 49, 255, 66, 114, 199, 191, 253, 155, 9, 95, 226, 198, 208, 196, 243, 243, 174, 111, 180, 99, 62, 153, 60, 239, 245, 138, 210, 100, 199, 243, 206, 239, 140, 96, 30, 227, 122, 33, 180, 113, 211, 161, 253, 251, 247, 147, 193, 229, 254, 22, 51, 142, 178, 131, 70, 179, 221, 87, 233, 192, 56, 109, 89, 236, 5, 172, 152, 179, 164, 209, 130, 121, 55, 182, 26, 175, 140, 202, 146, 36, 101, 249, 155, 162, 88, 56, 159, 19, 4, 187, 23, 159, 114, 61, 126, 202, 87, 105, 183, 32, 52, 102, 94, 160, 254, 188, 84, 168, 127, 29, 207, 45, 76, 214, 155, 135, 127, 26, 227, 145, 88, 85, 169, 225, 166, 225, 155, 1, + 19, 95, 105, 250, 235, 220, 15, 252, 20, 53, 59, 154, 31, 253, 228, 242, 163, 205, 133, 249, 155, 243, 147, 32, 94, 25, 234, 201, 198, 162, 162, 247, 120, 185, 233, 165, 99, 29, 235, 88, 199, 58, 86, 27, 233, 179, 97, 222, 133, 3, 23, 46, 92, 200, 37, 194, 8, 89, 207, 4, 23, 35, 47, 202, 228, 114, 239, 222, 144, 187, 57, 151, 43, 118, 127, 190, 3, 113, 255, 186, 205, 209, 14, 23, 128, 44, 247, 39, 133, 206, 175, 235, 127, 180, 10, 33, 103, 187, 108, 164, 255, 34, 36, 150, 155, 94, 19, 177, 169, 109, 1, 215, 19, 120, 213, 188, 136, 222, 91, 8, 133, 74, 255, 190, 90, 27, 48, 31, 193, 109, 38, 187, 189, 55, 151, 176, 219, 201, 157, 207, 153, 142, 246, 94, 48, 179, 131, 210, 62, 19, 57, 97, 198, 188, 19, 167, 24, 150, 21, 84, 31, 219, 196, 241, 34, 61, 132, 118, 81, 124, 134, 43, 55, 189, 242, 158, 103, 228, 33, 204, 63, 147, 188, 175, 218, 194, 35, 83, 34, 129, 200, 183, 209, 24, 247, 5, 245, 105, 164, 146, + 244, 183, 25, 243, 94, 60, 196, 64, 34, 17, 42, 120, 62, 220, 207, 105, 13, 208, 59, 42, 55, 189, 242, 238, 111, 112, 21, 216, 27, 79, 244, 88, 120, 3, 223, 155, 64, 214, 254, 53, 92, 79, 58, 99, 158, 71, 249, 209, 118, 246, 108, 209, 251, 243, 189, 180, 27, 27, 182, 200, 199, 96, 229, 19, 101, 165, 187, 11, 142, 223, 248, 206, 225, 176, 102, 92, 212, 34, 20, 41, 55, 189, 76, 182, 6, 11, 125, 143, 235, 134, 206, 217, 145, 60, 72, 233, 87, 73, 237, 55, 31, 246, 194, 49, 37, 30, 47, 200, 15, 115, 29, 51, 126, 229, 17, 226, 138, 252, 123, 90, 203, 147, 31, 195, 199, 27, 57, 36, 191, 2, 221, 73, 254, 118, 152, 79, 126, 8, 212, 172, 55, 31, 158, 198, 239, 239, 211, 6, 251, 84, 206, 31, 249, 2, 204, 87, 109, 241, 120, 48, 228, 22, 4, 7, 105, 228, 253, 100, 29, 14, 100, 100, 89, 78, 167, 164, 175, 147, 19, 141, 152, 63, 153, 100, 198, 143, 237, 217, 230, 26, 50, 242, 159, 0, 159, 63, 235, 91, 86, 109, + 176, 88, 248, 153, 210, 99, 219, 243, 139, 96, 126, 148, 207, 37, 126, 226, 166, 95, 191, 82, 238, 247, 173, 99, 29, 235, 184, 140, 242, 246, 196, 22, 204, 251, 113, 128, 170, 99, 189, 189, 194, 108, 232, 75, 95, 6, 249, 167, 234, 119, 225, 176, 125, 74, 242, 85, 214, 192, 28, 212, 95, 116, 60, 51, 252, 181, 61, 93, 195, 107, 98, 53, 40, 198, 59, 191, 245, 52, 2, 125, 240, 94, 208, 255, 235, 229, 76, 105, 250, 35, 157, 123, 128, 255, 250, 247, 31, 122, 180, 217, 227, 240, 60, 90, 240, 252, 74, 11, 220, 79, 76, 202, 40, 217, 158, 80, 86, 41, 55, 189, 242, 238, 175, 111, 61, 248, 239, 99, 227, 227, 151, 84, 214, 249, 137, 5, 35, 11, 207, 27, 184, 41, 92, 95, 231, 186, 149, 19, 234, 17, 18, 108, 8, 85, 41, 225, 194, 253, 85, 174, 133, 254, 234, 225, 183, 195, 97, 143, 157, 141, 207, 29, 227, 71, 17, 71, 222, 220, 201, 181, 112, 242, 81, 167, 10, 79, 145, 206, 4, 230, 207, 38, 79, 55, 24, 159, 222, 190, 253, 133, + 63, 94, 64, 14, 188, 101, 106, 137, 41, 230, 215, 158, 127, 251, 23, 178, 18, 67, 76, 223, 121, 33, 153, 97, 167, 7, 179, 166, 89, 167, 95, 231, 141, 152, 223, 137, 235, 221, 238, 209, 209, 158, 144, 102, 207, 165, 147, 175, 87, 115, 152, 55, 76, 229, 122, 120, 126, 245, 238, 167, 100, 239, 145, 193, 29, 152, 111, 194, 105, 35, 199, 161, 222, 132, 199, 189, 34, 176, 134, 195, 98, 173, 1, 84, 212, 54, 132, 188, 236, 247, 254, 116, 156, 154, 156, 68, 245, 123, 63, 217, 136, 229, 140, 232, 237, 127, 106, 239, 106, 31, 105, 221, 14, 235, 39, 129, 120, 200, 29, 26, 29, 133, 223, 107, 244, 19, 140, 235, 217, 249, 189, 66, 255, 172, 211, 111, 130, 253, 198, 248, 111, 11, 142, 30, 67, 71, 14, 63, 38, 77, 131, 255, 240, 212, 248, 79, 181, 223, 154, 142, 57, 129, 1, 169, 253, 198, 232, 213, 59, 126, 244, 42, 255, 125, 231, 26, 255, 17, 208, 159, 187, 127, 244, 95, 190, 187, 119, 251, 159, 127, 239, 7, 164, 114, 30, 230, 131, 184, 126, 236, + 228, 201, 95, 200, 178, 162, 242, 223, 203, 229, 227, 63, 29, 235, 88, 199, 58, 214, 241, 103, 3, 179, 249, 104, 217, 56, 226, 138, 238, 175, 38, 157, 43, 49, 47, 82, 251, 41, 20, 106, 22, 0, 55, 58, 49, 111, 195, 82, 104, 145, 199, 225, 112, 152, 233, 252, 123, 59, 243, 7, 202, 178, 156, 201, 100, 36, 170, 207, 172, 0, 253, 166, 13, 201, 10, 213, 182, 138, 208, 255, 200, 2, 208, 231, 30, 73, 167, 159, 251, 206, 29, 17, 236, 191, 179, 99, 151, 5, 33, 167, 33, 10, 202, 18, 226, 219, 248, 3, 6, 206, 240, 196, 227, 8, 137, 20, 74, 195, 65, 50, 210, 237, 39, 117, 56, 230, 243, 38, 207, 100, 98, 138, 84, 238, 247, 163, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 158, 28, 147, 145, 0, 196, 31, 167, 144, 217, 108, 52, 2, 110, 221, 13, 241, 17, 129, 248, 245, 249, 131, 103, 147, 91, 56, 163, 13, 65, 254, 32, 25, 9, 97, 158, + 224, 40, 122, 230, 217, 119, 126, 54, 217, 239, 65, 254, 96, 122, 58, 249, 131, 54, 204, 31, 79, 90, 23, 250, 124, 56, 66, 27, 228, 15, 18, 211, 120, 254, 96, 133, 157, 175, 116, 96, 39, 58, 230, 101, 223, 72, 30, 197, 247, 71, 11, 135, 115, 203, 61, 8, 165, 181, 235, 193, 63, 127, 55, 135, 32, 222, 82, 81, 20, 121, 174, 229, 15, 214, 54, 197, 170, 144, 152, 65, 81, 30, 161, 245, 165, 120, 127, 79, 223, 133, 13, 59, 15, 187, 156, 193, 141, 203, 92, 107, 151, 109, 44, 120, 126, 227, 60, 88, 111, 232, 167, 244, 146, 144, 148, 201, 148, 155, 62, 58, 214, 177, 142, 117, 252, 121, 197, 228, 132, 1, 226, 191, 134, 144, 29, 86, 123, 65, 62, 239, 133, 120, 50, 111, 48, 24, 12, 133, 220, 128, 231, 179, 227, 102, 218, 28, 118, 237, 56, 100, 52, 208, 195, 161, 201, 126, 15, 230, 67, 19, 228, 87, 77, 177, 127, 152, 127, 159, 79, 254, 235, 2, 159, 215, 143, 105, 35, 35, 59, 32, 30, 80, 205, 71, 50, 59, 60, 164, 209, 13, + 247, 35, 50, 156, 29, 29, 99, 249, 94, 207, 39, 219, 93, 22, 142, 135, 198, 250, 19, 212, 223, 146, 104, 43, 55, 61, 117, 172, 227, 114, 98, 50, 114, 23, 196, 223, 15, 109, 162, 227, 211, 227, 113, 32, 210, 103, 132, 250, 4, 146, 28, 139, 199, 179, 138, 92, 252, 254, 58, 239, 246, 147, 8, 238, 15, 250, 105, 91, 113, 227, 74, 114, 224, 240, 7, 3, 107, 221, 21, 8, 5, 253, 171, 86, 173, 240, 147, 198, 70, 208, 215, 37, 56, 55, 163, 100, 227, 164, 113, 9, 196, 151, 88, 67, 110, 183, 59, 52, 58, 247, 226, 159, 117, 172, 99, 29, 235, 248, 243, 138, 73, 231, 106, 208, 183, 100, 80, 6, 221, 130, 96, 39, 173, 141, 16, 223, 62, 148, 85, 16, 82, 148, 120, 188, 232, 253, 245, 237, 5, 125, 110, 201, 158, 136, 24, 137, 120, 125, 11, 239, 239, 223, 93, 133, 16, 174, 175, 58, 12, 1, 249, 246, 122, 45, 158, 254, 22, 118, 242, 201, 56, 213, 15, 87, 131, 127, 71, 74, 70, 88, 59, 83, 110, 122, 233, 88, 199, 58, 214, 177, + 142, 117, 172, 227, 242, 99, 210, 217, 202, 244, 23, 106, 250, 170, 250, 75, 231, 14, 240, 87, 201, 212, 244, 45, 137, 254, 226, 251, 232, 235, 216, 176, 115, 29, 118, 217, 206, 93, 252, 193, 169, 181, 2, 25, 89, 10, 249, 139, 175, 177, 131, 14, 119, 131, 245, 164, 159, 51, 124, 219, 36, 34, 14, 50, 24, 20, 7, 203, 119, 112, 65, 126, 37, 88, 195, 241, 108, 185, 233, 165, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 229, 194, 100, 240, 97, 240, 55, 167, 194, 30, 4, 33, 6, 110, 50, 242, 40, 219, 79, 64, 150, 161, 124, 171, 82, 244, 245, 66, 114, 249, 14, 255, 58, 81, 196, 78, 87, 42, 37, 165, 44, 119, 144, 202, 69, 126, 178, 22, 199, 216, 65, 143, 183, 133, 213, 195, 89, 141, 51, 12, 103, 2, 41, 210, 217, 136, 249, 51, 73, 223, 158, 8, 198, 145, 200, 208, 208, 180, 251, 211, 226, 35, 160, 77, 165, 158, 210, 180, 127, 191, 47, 194, 246, 79, 168, 224, 89, 185, 33, 100, 177, 26, 44, 208, + 213, 243, 40, 227, 117, 150, 228, 125, 173, 103, 249, 248, 102, 132, 114, 72, 1, 251, 219, 4, 239, 79, 45, 151, 99, 119, 56, 242, 206, 127, 235, 231, 31, 12, 236, 114, 195, 71, 217, 253, 118, 249, 249, 45, 239, 254, 42, 235, 33, 62, 177, 13, 248, 143, 225, 145, 13, 224, 63, 136, 82, 99, 189, 68, 253, 25, 96, 125, 62, 211, 51, 250, 255, 46, 126, 188, 255, 80, 130, 12, 38, 192, 127, 16, 5, 250, 244, 223, 19, 125, 88, 227, 63, 137, 157, 44, 83, 254, 131, 245, 124, 130, 163, 241, 120, 48, 24, 204, 42, 114, 185, 233, 165, 99, 29, 235, 248, 179, 131, 73, 167, 17, 226, 135, 234, 131, 46, 205, 127, 218, 184, 15, 228, 97, 32, 24, 44, 209, 250, 239, 229, 175, 99, 195, 142, 243, 24, 251, 35, 145, 8, 246, 251, 181, 245, 223, 128, 182, 254, 123, 23, 147, 127, 183, 224, 126, 118, 50, 172, 255, 118, 117, 99, 225, 221, 156, 69, 48, 37, 233, 249, 24, 151, 155, 94, 58, 46, 50, 63, 116, 126, 9, 243, 33, 220, 22, 100, 109, 22, 250, + 83, 227, 213, 120, 136, 87, 131, 198, 226, 81, 189, 56, 0, 199, 226, 241, 158, 223, 185, 250, 231, 190, 3, 34, 54, 80, 125, 214, 134, 254, 243, 63, 94, 204, 93, 41, 251, 253, 252, 174, 97, 210, 183, 20, 244, 251, 215, 108, 46, 27, 7, 18, 136, 12, 186, 152, 61, 112, 144, 51, 55, 252, 254, 240, 112, 225, 235, 213, 122, 89, 43, 169, 176, 148, 50, 153, 76, 225, 243, 27, 59, 253, 196, 143, 149, 154, 234, 174, 120, 93, 5, 111, 34, 7, 62, 52, 29, 141, 125, 168, 238, 95, 225, 116, 187, 153, 189, 49, 190, 63, 67, 44, 22, 103, 245, 186, 78, 39, 119, 248, 189, 239, 93, 118, 214, 63, 209, 199, 236, 9, 31, 43, 55, 47, 149, 133, 94, 208, 127, 250, 90, 125, 125, 210, 250, 37, 136, 23, 143, 37, 14, 29, 186, 53, 236, 49, 114, 164, 86, 50, 153, 187, 222, 53, 75, 72, 236, 233, 233, 137, 138, 181, 138, 143, 163, 214, 84, 123, 6, 30, 15, 5, 139, 240, 190, 12, 160, 47, 91, 187, 13, 180, 153, 220, 33, 210, 103, 135, 248, 82, + 4, 181, 210, 194, 137, 196, 126, 82, 251, 226, 7, 3, 79, 229, 140, 8, 137, 98, 70, 118, 198, 201, 96, 3, 232, 207, 214, 151, 159, 121, 246, 217, 209, 209, 172, 92, 110, 126, 203, 127, 158, 53, 108, 254, 141, 197, 14, 134, 193, 6, 33, 149, 127, 200, 226, 241, 223, 123, 239, 194, 171, 240, 134, 11, 95, 223, 13, 252, 82, 47, 73, 25, 48, 153, 167, 32, 111, 43, 216, 252, 14, 159, 61, 225, 68, 215, 164, 239, 247, 55, 227, 136, 187, 64, 26, 111, 97, 239, 247, 194, 229, 67, 135, 254, 231, 219, 239, 92, 36, 157, 219, 129, 158, 233, 239, 28, 253, 206, 24, 212, 143, 245, 213, 214, 98, 195, 230, 244, 49, 182, 159, 141, 124, 40, 54, 235, 244, 131, 252, 65, 250, 60, 66, 72, 139, 127, 238, 100, 252, 144, 54, 119, 199, 98, 74, 41, 226, 159, 43, 239, 1, 121, 113, 154, 143, 68, 58, 150, 55, 204, 159, 175, 173, 255, 170, 21, 140, 29, 238, 6, 150, 191, 224, 211, 252, 7, 144, 191, 0, 246, 178, 5, 247, 123, 28, 230, 12, 10, 29, 53, + 147, 19, 127, 0, 247, 231, 165, 71, 149, 108, 214, 85, 126, 254, 107, 93, 12, 254, 150, 20, 138, 82, 114, 197, 98, 101, 191, 159, 185, 142, 235, 92, 157, 28, 146, 195, 156, 80, 47, 220, 182, 57, 171, 197, 51, 30, 79, 146, 20, 138, 68, 120, 159, 105, 65, 177, 251, 219, 150, 58, 200, 245, 164, 198, 32, 188, 161, 13, 38, 168, 23, 255, 186, 107, 113, 245, 78, 31, 236, 63, 227, 244, 154, 236, 34, 185, 92, 141, 77, 91, 211, 199, 172, 254, 142, 14, 250, 10, 211, 37, 231, 151, 19, 22, 45, 158, 1, 217, 237, 130, 123, 218, 250, 210, 182, 84, 128, 234, 251, 99, 11, 23, 245, 72, 72, 78, 211, 223, 219, 191, 11, 31, 190, 253, 54, 140, 171, 171, 145, 47, 218, 81, 242, 252, 128, 13, 17, 168, 55, 57, 150, 179, 36, 235, 144, 1, 85, 33, 50, 18, 129, 122, 211, 43, 155, 154, 156, 213, 213, 6, 84, 114, 251, 130, 197, 167, 212, 96, 250, 228, 72, 86, 98, 241, 224, 204, 127, 111, 158, 159, 172, 192, 43, 157, 24, 7, 123, 31, 105, 55, + 176, 122, 233, 84, 94, 43, 153, 12, 149, 47, 39, 165, 162, 223, 63, 200, 187, 179, 201, 118, 248, 108, 220, 31, 247, 21, 150, 151, 139, 88, 62, 10, 3, 206, 185, 23, 255, 178, 180, 109, 1, 135, 145, 161, 61, 74, 63, 139, 38, 83, 201, 251, 227, 63, 242, 191, 159, 51, 11, 53, 2, 66, 155, 223, 61, 120, 155, 147, 205, 183, 255, 50, 126, 20, 229, 213, 15, 39, 35, 55, 96, 30, 49, 255, 180, 172, 40, 83, 212, 207, 152, 191, 153, 169, 179, 101, 167, 111, 233, 199, 147, 27, 226, 201, 31, 160, 111, 47, 234, 77, 167, 218, 202, 125, 63, 115, 29, 51, 122, 249, 176, 149, 126, 28, 235, 157, 3, 247, 243, 187, 142, 153, 189, 22, 84, 237, 181, 88, 124, 230, 242, 188, 220, 152, 217, 167, 235, 112, 218, 23, 168, 166, 19, 61, 50, 48, 121, 66, 174, 217, 123, 181, 129, 24, 219, 143, 242, 71, 72, 181, 231, 200, 131, 13, 195, 57, 65, 45, 215, 140, 36, 209, 91, 240, 247, 97, 189, 42, 69, 245, 103, 58, 251, 50, 123, 27, 246, 39, 59, 158, + 12, 68, 252, 190, 154, 106, 171, 165, 34, 239, 252, 221, 127, 48, 124, 115, 204, 137, 196, 140, 136, 188, 78, 169, 99, 230, 239, 235, 206, 241, 252, 68, 40, 224, 49, 99, 255, 38, 25, 188, 139, 229, 55, 6, 67, 33, 193, 227, 48, 82, 253, 200, 167, 218, 31, 14, 143, 48, 54, 54, 90, 2, 126, 179, 97, 62, 147, 92, 178, 204, 231, 85, 235, 151, 64, 254, 180, 87, 219, 191, 3, 242, 167, 251, 118, 248, 201, 98, 172, 48, 28, 180, 157, 39, 125, 7, 48, 223, 159, 92, 82, 135, 121, 158, 206, 62, 188, 181, 127, 205, 112, 226, 181, 140, 153, 135, 87, 118, 246, 244, 140, 247, 131, 155, 57, 253, 162, 96, 239, 70, 183, 126, 114, 37, 236, 49, 35, 180, 34, 112, 128, 83, 179, 191, 185, 140, 243, 191, 119, 26, 139, 221, 223, 194, 36, 172, 143, 202, 185, 132, 49, 72, 233, 3, 253, 47, 247, 155, 205, 227, 235, 191, 30, 142, 249, 159, 3, 234, 126, 136, 72, 118, 225, 109, 29, 134, 225, 92, 46, 236, 67, 94, 216, 46, 51, 145, 40, 55, 189, 242, + 232, 215, 122, 47, 232, 147, 50, 125, 152, 112, 216, 161, 217, 247, 148, 31, 213, 108, 219, 18, 244, 7, 251, 219, 164, 146, 247, 45, 169, 194, 60, 171, 223, 3, 242, 225, 164, 38, 29, 194, 225, 144, 233, 73, 158, 237, 47, 41, 211, 107, 50, 244, 90, 210, 183, 11, 230, 231, 243, 8, 101, 210, 169, 51, 247, 21, 212, 23, 103, 159, 126, 55, 168, 245, 136, 168, 58, 27, 14, 83, 252, 209, 105, 83, 75, 236, 67, 243, 234, 213, 61, 144, 62, 93, 252, 254, 42, 59, 65, 31, 22, 67, 148, 247, 140, 70, 163, 170, 79, 191, 124, 157, 255, 0, 198, 239, 90, 102, 31, 32, 20, 192, 167, 201, 8, 130, 247, 41, 135, 220, 161, 108, 86, 201, 206, 57, 255, 52, 227, 135, 76, 242, 9, 182, 223, 17, 101, 3, 254, 208, 87, 57, 52, 230, 30, 232, 106, 67, 38, 228, 197, 134, 226, 247, 199, 131, 191, 167, 158, 141, 198, 120, 40, 143, 30, 164, 243, 32, 140, 7, 137, 129, 168, 34, 147, 3, 255, 96, 26, 136, 141, 154, 37, 73, 122, 246, 217, 148, 115, 206, + 233, 135, 100, 196, 7, 243, 81, 38, 24, 12, 170, 254, 191, 193, 149, 160, 159, 193, 253, 103, 193, 191, 86, 124, 126, 95, 192, 246, 223, 10, 2, 240, 132, 195, 252, 75, 187, 171, 232, 120, 221, 198, 54, 251, 202, 60, 214, 202, 248, 111, 139, 230, 191, 2, 254, 171, 20, 152, 189, 207, 242, 247, 179, 115, 208, 127, 90, 185, 134, 197, 15, 209, 233, 215, 65, 167, 95, 149, 126, 77, 236, 254, 229, 108, 182, 20, 250, 30, 171, 95, 210, 238, 243, 193, 2, 230, 237, 243, 152, 252, 123, 64, 147, 127, 227, 243, 239, 90, 124, 203, 85, 250, 141, 244, 176, 253, 53, 4, 193, 46, 8, 163, 163, 115, 174, 254, 1, 219, 15, 90, 196, 41, 120, 130, 68, 66, 171, 167, 118, 58, 25, 245, 246, 43, 241, 146, 208, 15, 246, 251, 74, 38, 119, 88, 44, 84, 25, 49, 24, 184, 218, 23, 218, 88, 188, 146, 203, 216, 253, 58, 122, 232, 150, 73, 244, 197, 58, 152, 111, 150, 32, 88, 240, 16, 11, 235, 151, 179, 175, 47, 215, 179, 253, 243, 60, 205, 161, 80, 24, 252, + 207, 48, 94, 68, 28, 80, 226, 193, 32, 21, 216, 37, 120, 95, 191, 199, 214, 43, 67, 212, 214, 104, 246, 56, 28, 108, 254, 120, 38, 111, 254, 136, 50, 60, 62, 126, 233, 253, 208, 241, 27, 234, 153, 131, 241, 67, 204, 127, 79, 229, 11, 125, 28, 32, 31, 125, 223, 155, 216, 122, 136, 192, 164, 77, 41, 248, 253, 17, 246, 251, 140, 92, 225, 112, 16, 246, 143, 111, 137, 125, 160, 174, 191, 213, 185, 140, 90, 252, 149, 200, 112, 38, 112, 156, 197, 71, 96, 156, 138, 135, 220, 194, 59, 239, 216, 133, 114, 211, 171, 220, 120, 162, 189, 251, 89, 179, 127, 75, 78, 191, 190, 85, 108, 61, 18, 230, 95, 22, 239, 170, 250, 131, 163, 204, 29, 92, 4, 127, 240, 236, 63, 207, 66, 255, 233, 5, 216, 106, 54, 104, 184, 113, 5, 155, 127, 153, 179, 178, 20, 253, 53, 114, 32, 47, 98, 70, 71, 184, 55, 222, 211, 236, 97, 243, 111, 96, 252, 40, 226, 248, 77, 27, 185, 163, 93, 174, 1, 240, 78, 208, 1, 60, 204, 246, 131, 245, 226, 33, 109, 63, + 88, 105, 218, 253, 93, 23, 191, 11, 94, 144, 114, 211, 123, 166, 120, 85, 100, 239, 112, 88, 64, 82, 211, 79, 214, 32, 228, 255, 222, 151, 11, 207, 215, 91, 217, 122, 180, 2, 202, 168, 60, 58, 90, 238, 251, 207, 231, 63, 59, 188, 223, 126, 202, 13, 197, 249, 61, 120, 223, 106, 49, 87, 110, 178, 120, 109, 114, 98, 9, 172, 127, 236, 88, 87, 87, 105, 68, 156, 217, 194, 234, 149, 4, 176, 198, 129, 177, 158, 188, 243, 43, 111, 85, 215, 123, 37, 86, 46, 54, 83, 110, 122, 77, 196, 190, 239, 223, 235, 95, 183, 37, 141, 41, 107, 203, 198, 44, 71, 233, 121, 23, 179, 71, 100, 5, 118, 128, 43, 193, 251, 58, 33, 0, 61, 50, 136, 167, 250, 48, 213, 216, 201, 72, 228, 106, 189, 48, 65, 240, 228, 199, 143, 119, 54, 12, 159, 171, 80, 221, 139, 83, 241, 47, 206, 58, 255, 141, 52, 128, 255, 114, 75, 181, 203, 98, 3, 3, 152, 244, 125, 197, 79, 172, 88, 241, 152, 233, 221, 58, 205, 226, 2, 230, 47, 69, 232, 136, 180, 245, 207, + 65, 201, 120, 99, 232, 27, 176, 254, 249, 49, 4, 168, 128, 19, 158, 244, 121, 64, 95, 11, 80, 93, 155, 51, 242, 202, 99, 164, 239, 78, 230, 15, 139, 197, 232, 11, 200, 72, 147, 244, 199, 252, 127, 1, 159, 207, 231, 245, 250, 124, 53, 76, 191, 131, 250, 200, 156, 209, 236, 16, 4, 55, 227, 223, 61, 28, 202, 229, 148, 12, 10, 39, 18, 44, 255, 252, 100, 178, 189, 202, 233, 116, 138, 145, 213, 107, 72, 35, 98, 252, 122, 73, 129, 217, 58, 40, 145, 62, 30, 252, 15, 79, 128, 174, 21, 206, 184, 47, 147, 74, 86, 79, 89, 29, 1, 210, 230, 31, 177, 235, 159, 79, 158, 79, 167, 82, 78, 145, 182, 137, 247, 243, 226, 95, 45, 163, 246, 99, 218, 128, 110, 3, 180, 233, 245, 133, 201, 13, 204, 191, 246, 39, 172, 70, 99, 127, 65, 127, 89, 161, 253, 7, 139, 255, 190, 62, 91, 251, 15, 146, 202, 27, 85, 127, 82, 200, 189, 136, 154, 243, 148, 158, 22, 198, 15, 118, 33, 52, 154, 149, 75, 64, 191, 143, 126, 243, 193, 192, 102, 183, + 1, 170, 255, 173, 106, 240, 249, 180, 248, 221, 254, 167, 190, 165, 197, 239, 170, 246, 199, 53, 255, 51, 228, 127, 44, 118, 243, 212, 252, 29, 11, 186, 71, 231, 156, 254, 60, 177, 254, 184, 239, 166, 157, 92, 75, 204, 173, 10, 156, 143, 63, 41, 193, 254, 155, 147, 212, 31, 55, 143, 215, 31, 55, 219, 125, 119, 210, 241, 52, 54, 111, 128, 225, 24, 255, 155, 114, 211, 167, 240, 243, 108, 101, 241, 96, 110, 183, 27, 121, 18, 148, 255, 90, 35, 108, 60, 59, 60, 205, 163, 89, 42, 130, 138, 207, 239, 247, 128, 124, 202, 120, 65, 250, 65, 131, 253, 188, 69, 249, 24, 75, 64, 202, 74, 95, 96, 252, 183, 121, 220, 254, 181, 189, 70, 70, 22, 193, 254, 230, 214, 42, 11, 43, 31, 203, 214, 63, 114, 169, 140, 217, 200, 214, 63, 206, 150, 127, 253, 67, 139, 255, 163, 178, 56, 71, 201, 55, 238, 191, 146, 16, 196, 135, 149, 194, 255, 7, 241, 253, 103, 146, 222, 8, 8, 243, 150, 22, 53, 255, 45, 168, 141, 215, 176, 120, 7, 163, 95, 157, 70, + 63, 197, 198, 147, 151, 94, 180, 30, 237, 117, 171, 23, 103, 2, 169, 114, 211, 107, 82, 249, 71, 245, 137, 144, 219, 157, 200, 243, 159, 142, 149, 160, 63, 77, 254, 121, 33, 120, 188, 97, 249, 114, 50, 242, 135, 96, 191, 137, 236, 160, 123, 18, 127, 52, 232, 135, 199, 147, 63, 102, 64, 118, 205, 185, 252, 5, 210, 186, 22, 232, 23, 165, 234, 64, 40, 204, 230, 223, 157, 160, 47, 176, 217, 48, 99, 8, 149, 96, 254, 237, 134, 120, 200, 91, 150, 137, 145, 182, 55, 47, 95, 74, 177, 245, 75, 124, 109, 253, 146, 197, 147, 138, 105, 117, 60, 203, 135, 206, 147, 19, 191, 143, 249, 39, 147, 247, 57, 204, 102, 227, 40, 202, 160, 193, 15, 191, 12, 250, 212, 192, 2, 216, 76, 128, 42, 8, 101, 167, 223, 139, 59, 177, 224, 22, 120, 161, 26, 172, 121, 55, 34, 7, 100, 182, 126, 84, 1, 194, 198, 96, 44, 120, 125, 93, 255, 26, 14, 75, 156, 65, 164, 159, 157, 98, 245, 235, 133, 249, 239, 125, 200, 167, 84, 249, 111, 57, 240, 31, 203, 95, + 104, 99, 7, 93, 161, 144, 182, 158, 41, 51, 108, 52, 27, 201, 75, 71, 33, 30, 218, 192, 132, 223, 40, 159, 103, 127, 252, 182, 125, 91, 124, 125, 161, 240, 252, 113, 35, 236, 47, 237, 116, 187, 5, 129, 249, 159, 225, 126, 158, 212, 238, 70, 42, 126, 127, 11, 59, 130, 195, 185, 4, 147, 254, 187, 16, 253, 227, 251, 254, 55, 184, 1, 14, 29, 85, 231, 143, 43, 65, 214, 255, 59, 227, 228, 152, 125, 122, 76, 23, 251, 238, 252, 10, 54, 16, 249, 24, 54, 60, 22, 149, 47, 12, 171, 249, 165, 1, 220, 150, 97, 163, 163, 248, 247, 127, 211, 25, 227, 112, 46, 231, 0, 226, 96, 100, 114, 210, 249, 171, 82, 141, 39, 202, 142, 246, 122, 232, 32, 173, 235, 127, 20, 226, 67, 12, 199, 140, 204, 3, 35, 178, 251, 233, 79, 198, 36, 36, 138, 147, 217, 15, 229, 198, 218, 248, 25, 10, 193, 232, 133, 250, 247, 125, 8, 214, 39, 72, 146, 44, 169, 194, 166, 41, 92, 15, 252, 130, 213, 207, 83, 138, 215, 215, 198, 175, 111, 217, 154, 53, 107, + 86, 45, 246, 154, 62, 88, 106, 65, 210, 227, 170, 255, 224, 237, 127, 164, 247, 19, 190, 106, 15, 35, 135, 167, 151, 52, 114, 160, 207, 196, 226, 138, 28, 21, 69, 175, 179, 220, 244, 202, 31, 191, 141, 44, 127, 58, 30, 7, 115, 114, 22, 250, 3, 253, 37, 165, 233, 47, 180, 21, 210, 95, 202, 77, 159, 194, 250, 31, 102, 246, 218, 166, 112, 216, 227, 1, 253, 5, 236, 115, 130, 189, 255, 227, 149, 231, 168, 65, 60, 133, 235, 7, 131, 152, 151, 240, 91, 212, 84, 102, 123, 48, 20, 230, 247, 5, 160, 143, 252, 107, 202, 217, 182, 107, 243, 246, 237, 243, 216, 122, 135, 150, 255, 134, 100, 41, 79, 191, 35, 39, 16, 232, 139, 75, 144, 188, 118, 109, 213, 222, 237, 15, 46, 61, 254, 224, 240, 57, 182, 90, 34, 152, 106, 188, 94, 145, 116, 54, 248, 91, 182, 178, 120, 66, 4, 1, 221, 179, 78, 63, 117, 253, 173, 62, 28, 14, 55, 11, 215, 205, 191, 223, 62, 82, 170, 249, 247, 58, 253, 111, 197, 138, 85, 191, 165, 255, 169, 243, 239, 175, + 18, 11, 5, 117, 70, 53, 154, 28, 76, 62, 124, 131, 131, 92, 155, 196, 199, 239, 189, 55, 80, 110, 126, 203, 215, 255, 62, 125, 255, 173, 194, 244, 255, 124, 239, 191, 69, 238, 252, 161, 117, 32, 225, 54, 82, 225, 183, 233, 214, 222, 132, 22, 63, 164, 152, 67, 77, 89, 48, 127, 75, 35, 255, 206, 38, 189, 170, 249, 182, 61, 162, 229, 11, 50, 253, 47, 22, 143, 229, 229, 95, 145, 65, 12, 227, 247, 48, 124, 150, 131, 201, 57, 24, 127, 85, 4, 254, 235, 79, 62, 80, 44, 254, 99, 241, 115, 127, 149, 220, 129, 56, 3, 143, 135, 95, 149, 89, 190, 155, 11, 15, 133, 55, 82, 226, 198, 52, 254, 187, 235, 26, 255, 145, 190, 69, 234, 126, 58, 138, 2, 34, 56, 79, 191, 46, 57, 253, 198, 249, 109, 245, 117, 254, 63, 27, 246, 10, 66, 207, 168, 82, 42, 255, 31, 213, 95, 252, 43, 86, 173, 2, 255, 95, 173, 109, 17, 135, 253, 84, 217, 51, 163, 95, 211, 9, 216, 196, 232, 231, 84, 231, 19, 161, 185, 39, 75, 26, 247, 192, 251, + 60, 172, 200, 162, 120, 252, 116, 180, 186, 220, 252, 150, 247, 60, 144, 111, 25, 192, 177, 112, 79, 60, 14, 1, 148, 90, 252, 98, 0, 93, 57, 151, 67, 111, 95, 201, 21, 95, 223, 92, 10, 246, 245, 22, 22, 112, 106, 180, 121, 201, 200, 35, 126, 178, 68, 165, 87, 184, 37, 17, 99, 227, 245, 100, 82, 2, 44, 7, 146, 247, 145, 145, 131, 204, 95, 31, 18, 224, 141, 206, 193, 248, 171, 59, 127, 248, 47, 119, 36, 220, 38, 35, 109, 185, 131, 64, 207, 37, 126, 194, 97, 25, 246, 102, 130, 5, 180, 98, 247, 183, 235, 152, 1, 116, 13, 251, 149, 173, 127, 154, 241, 74, 200, 84, 247, 139, 101, 180, 23, 161, 70, 112, 35, 209, 137, 196, 68, 93, 124, 231, 112, 66, 173, 70, 132, 106, 17, 74, 154, 164, 107, 246, 36, 202, 204, 254, 248, 44, 44, 191, 62, 125, 255, 173, 130, 215, 127, 206, 247, 223, 34, 39, 88, 60, 104, 32, 30, 135, 124, 95, 120, 190, 149, 224, 79, 77, 81, 98, 10, 118, 187, 189, 4, 243, 85, 2, 243, 17, 250, 126, + 28, 118, 65, 112, 135, 130, 228, 166, 35, 214, 150, 94, 183, 26, 0, 104, 168, 48, 147, 198, 135, 192, 126, 220, 205, 112, 70, 142, 50, 125, 59, 153, 124, 32, 45, 165, 156, 98, 36, 226, 47, 55, 189, 38, 213, 39, 2, 26, 253, 100, 132, 76, 182, 249, 156, 193, 130, 98, 104, 232, 226, 212, 174, 31, 167, 55, 56, 112, 166, 64, 111, 114, 98, 11, 235, 207, 1, 139, 149, 33, 74, 191, 55, 247, 85, 161, 152, 235, 40, 59, 104, 52, 155, 153, 253, 235, 210, 252, 89, 167, 78, 189, 71, 62, 250, 185, 169, 165, 235, 3, 243, 123, 127, 249, 147, 191, 253, 234, 221, 119, 239, 212, 232, 121, 62, 197, 200, 137, 253, 96, 127, 144, 213, 218, 252, 29, 245, 166, 103, 157, 126, 35, 221, 44, 223, 195, 19, 10, 81, 18, 130, 252, 219, 13, 254, 144, 116, 70, 86, 226, 33, 161, 4, 252, 215, 87, 9, 254, 0, 57, 21, 89, 106, 172, 194, 54, 251, 253, 193, 174, 225, 139, 189, 238, 22, 132, 54, 51, 138, 49, 254, 244, 106, 249, 12, 14, 79, 51, 105, 173, + 103, 245, 209, 33, 246, 79, 206, 72, 115, 79, 254, 13, 110, 98, 250, 74, 144, 82, 79, 81, 162, 106, 62, 144, 11, 226, 237, 216, 0, 46, 1, 253, 88, 127, 136, 74, 87, 198, 129, 172, 126, 29, 228, 79, 128, 192, 165, 115, 24, 105, 60, 232, 55, 223, 172, 250, 95, 36, 42, 225, 216, 126, 56, 199, 147, 237, 34, 242, 122, 233, 16, 142, 148, 155, 94, 249, 242, 136, 141, 167, 122, 132, 2, 106, 252, 120, 235, 60, 134, 149, 120, 207, 216, 88, 41, 214, 63, 32, 63, 108, 5, 246, 250, 170, 171, 45, 212, 192, 230, 216, 250, 219, 120, 253, 135, 236, 99, 95, 32, 212, 126, 227, 51, 73, 162, 94, 204, 113, 76, 30, 246, 39, 231, 51, 122, 138, 82, 217, 245, 23, 210, 184, 140, 249, 43, 175, 214, 251, 187, 220, 225, 255, 238, 86, 177, 195, 197, 170, 1, 249, 151, 79, 60, 127, 243, 83, 1, 150, 239, 182, 216, 128, 144, 232, 181, 205, 184, 127, 179, 18, 93, 76, 88, 240, 125, 77, 198, 143, 92, 237, 27, 58, 108, 24, 103, 230, 45, 206, 74, 24, + 217, 42, 68, 115, 233, 229, 213, 10, 45, 95, 8, 210, 117, 130, 65, 107, 255, 3, 92, 79, 63, 157, 190, 122, 210, 84, 107, 58, 87, 240, 122, 19, 139, 103, 25, 107, 89, 4, 30, 116, 144, 119, 176, 191, 159, 27, 75, 116, 52, 53, 135, 226, 89, 133, 233, 7, 252, 212, 245, 145, 233, 243, 251, 122, 240, 255, 177, 245, 52, 206, 96, 200, 243, 239, 145, 145, 133, 80, 143, 227, 117, 179, 113, 158, 177, 218, 224, 227, 73, 103, 179, 166, 31, 128, 252, 203, 95, 47, 98, 247, 155, 252, 143, 223, 47, 57, 65, 229, 237, 25, 252, 37, 6, 56, 42, 63, 58, 13, 224, 191, 19, 17, 228, 23, 78, 210, 223, 165, 191, 103, 254, 138, 92, 5, 247, 218, 77, 128, 205, 193, 61, 195, 225, 216, 187, 9, 40, 231, 128, 162, 255, 244, 67, 118, 63, 182, 210, 209, 111, 105, 199, 252, 197, 200, 139, 228, 92, 206, 195, 163, 209, 209, 209, 138, 7, 230, 211, 251, 193, 139, 157, 78, 43, 139, 121, 25, 239, 95, 109, 146, 196, 244, 103, 77, 223, 43, 134, 254, 204, 236, + 131, 141, 170, 189, 243, 216, 171, 230, 25, 243, 59, 203, 63, 74, 38, 125, 213, 84, 109, 134, 69, 75, 210, 232, 209, 226, 135, 32, 122, 168, 20, 227, 71, 212, 234, 25, 192, 146, 105, 176, 96, 62, 22, 57, 17, 1, 253, 40, 198, 22, 135, 233, 20, 87, 110, 249, 55, 215, 176, 239, 251, 137, 225, 135, 17, 26, 112, 74, 94, 5, 220, 202, 190, 183, 110, 174, 66, 99, 55, 80, 125, 38, 129, 28, 83, 184, 158, 241, 235, 135, 240, 105, 118, 234, 97, 177, 250, 176, 77, 216, 26, 87, 52, 172, 198, 223, 49, 255, 183, 93, 8, 21, 189, 94, 226, 103, 29, 243, 111, 109, 226, 12, 73, 201, 128, 196, 1, 102, 67, 241, 123, 187, 22, 87, 179, 35, 226, 182, 64, 9, 250, 251, 172, 237, 63, 72, 70, 234, 89, 254, 69, 34, 17, 131, 70, 159, 111, 55, 171, 231, 4, 182, 92, 73, 250, 3, 123, 241, 100, 178, 191, 13, 90, 36, 114, 199, 253, 123, 208, 112, 34, 230, 66, 49, 86, 2, 186, 249, 101, 210, 185, 11, 232, 197, 244, 61, 36, 165, 135, 152, + 127, 250, 120, 242, 252, 16, 84, 239, 140, 136, 211, 174, 159, 93, 114, 250, 173, 55, 211, 251, 231, 145, 232, 84, 39, 189, 218, 157, 189, 44, 31, 45, 105, 68, 209, 48, 66, 223, 44, 122, 127, 64, 143, 231, 147, 71, 220, 17, 96, 64, 219, 154, 137, 251, 71, 145, 145, 245, 224, 255, 81, 237, 95, 165, 248, 249, 99, 165, 30, 191, 164, 242, 203, 48, 255, 42, 217, 172, 90, 208, 115, 150, 198, 111, 224, 234, 248, 133, 245, 204, 141, 215, 213, 143, 189, 124, 43, 62, 188, 57, 131, 81, 22, 10, 104, 7, 231, 92, 253, 161, 137, 252, 199, 214, 51, 196, 210, 141, 223, 207, 218, 254, 101, 44, 254, 254, 76, 242, 188, 193, 106, 173, 180, 153, 140, 232, 126, 215, 61, 28, 138, 241, 71, 57, 240, 135, 100, 54, 22, 221, 158, 34, 173, 187, 88, 190, 62, 148, 159, 52, 116, 119, 117, 177, 248, 165, 0, 140, 87, 230, 111, 180, 79, 60, 127, 105, 112, 227, 240, 57, 129, 54, 12, 234, 245, 208, 156, 211, 255, 88, 61, 22, 42, 111, 60, 106, 6, 164, 58, 255, + 178, 145, 44, 110, 243, 150, 164, 191, 223, 30, 191, 164, 175, 133, 249, 3, 61, 80, 76, 194, 19, 14, 179, 227, 39, 147, 190, 116, 42, 19, 241, 166, 229, 119, 89, 61, 199, 38, 28, 205, 66, 120, 73, 96, 230, 235, 187, 117, 123, 182, 115, 2, 22, 88, 188, 97, 13, 66, 109, 75, 159, 95, 196, 236, 161, 115, 247, 12, 219, 81, 46, 247, 202, 244, 229, 249, 55, 213, 248, 131, 77, 170, 188, 43, 185, 254, 2, 246, 196, 217, 100, 191, 234, 174, 88, 214, 80, 219, 180, 179, 10, 137, 212, 116, 228, 165, 49, 132, 254, 155, 137, 197, 35, 52, 105, 241, 24, 224, 95, 189, 28, 29, 14, 119, 81, 249, 162, 94, 48, 7, 245, 151, 253, 76, 127, 238, 237, 157, 60, 255, 103, 218, 191, 7, 246, 192, 141, 215, 234, 21, 229, 191, 175, 27, 193, 31, 53, 84, 67, 155, 179, 186, 250, 17, 86, 127, 186, 70, 163, 151, 199, 227, 102, 245, 103, 50, 172, 158, 44, 236, 159, 113, 67, 81, 238, 7, 143, 35, 52, 237, 124, 2, 118, 189, 225, 223, 191, 158, 140, 4, + 217, 248, 128, 244, 188, 96, 40, 63, 254, 184, 248, 250, 139, 74, 191, 106, 104, 206, 154, 15, 41, 191, 65, 188, 149, 162, 116, 248, 87, 243, 53, 53, 69, 175, 127, 57, 17, 155, 98, 183, 131, 255, 233, 225, 69, 106, 134, 206, 140, 235, 205, 146, 253, 123, 168, 126, 32, 118, 184, 180, 2, 228, 100, 125, 211, 240, 195, 49, 8, 92, 108, 42, 13, 253, 94, 172, 195, 194, 175, 207, 93, 200, 213, 174, 15, 174, 246, 175, 240, 47, 112, 66, 60, 115, 234, 85, 9, 45, 64, 47, 27, 149, 175, 147, 167, 109, 85, 168, 119, 81, 11, 227, 223, 96, 80, 33, 35, 247, 250, 73, 3, 238, 7, 231, 189, 232, 117, 38, 203, 61, 94, 243, 158, 231, 114, 59, 54, 108, 110, 194, 124, 76, 181, 63, 74, 221, 223, 66, 255, 62, 181, 126, 83, 53, 138, 217, 232, 159, 107, 242, 15, 61, 100, 64, 123, 230, 92, 124, 85, 33, 204, 255, 181, 90, 167, 209, 187, 174, 141, 219, 75, 255, 175, 253, 226, 2, 238, 240, 14, 31, 138, 126, 113, 211, 67, 137, 95, 59, 11, 231, + 207, 157, 120, 136, 249, 187, 180, 116, 235, 169, 205, 31, 79, 38, 219, 97, 50, 192, 152, 55, 170, 244, 139, 2, 253, 232, 252, 177, 223, 68, 58, 217, 252, 145, 102, 39, 211, 1, 193, 206, 127, 57, 249, 99, 237, 252, 83, 87, 245, 105, 117, 188, 100, 175, 209, 95, 100, 243, 79, 185, 233, 199, 244, 103, 63, 110, 155, 42, 61, 254, 67, 243, 239, 167, 208, 111, 34, 61, 38, 210, 171, 220, 252, 150, 247, 60, 176, 255, 17, 190, 182, 255, 145, 86, 159, 215, 227, 233, 9, 32, 217, 91, 10, 121, 49, 187, 251, 111, 149, 26, 223, 207, 232, 133, 208, 83, 223, 170, 138, 176, 122, 134, 79, 247, 215, 163, 148, 148, 225, 148, 116, 73, 250, 35, 35, 55, 179, 249, 22, 99, 236, 247, 251, 124, 13, 26, 63, 170, 227, 211, 108, 116, 48, 250, 237, 28, 167, 159, 55, 165, 197, 123, 60, 209, 1, 249, 114, 94, 52, 99, 253, 111, 243, 222, 123, 224, 49, 229, 176, 64, 121, 133, 14, 187, 25, 143, 223, 201, 252, 127, 154, 253, 49, 139, 254, 191, 171, 254, 131, 165, + 241, 71, 57, 106, 13, 92, 60, 199, 9, 78, 206, 127, 166, 228, 254, 3, 211, 147, 27, 88, 189, 60, 6, 228, 139, 211, 127, 158, 245, 205, 156, 153, 147, 255, 169, 42, 188, 145, 225, 175, 1, 63, 74, 184, 214, 41, 178, 242, 218, 165, 226, 191, 152, 202, 127, 222, 134, 137, 242, 47, 95, 95, 116, 95, 173, 183, 35, 211, 86, 238, 241, 58, 169, 252, 187, 126, 255, 55, 152, 63, 192, 127, 90, 170, 249, 3, 226, 13, 157, 184, 63, 30, 227, 28, 158, 230, 96, 243, 85, 254, 51, 104, 254, 43, 136, 103, 105, 189, 58, 126, 157, 100, 208, 197, 242, 27, 149, 152, 2, 225, 196, 211, 238, 111, 5, 126, 112, 248, 156, 135, 91, 9, 245, 43, 81, 46, 113, 174, 248, 252, 192, 242, 103, 82, 90, 248, 90, 233, 223, 23, 200, 187, 103, 146, 10, 139, 191, 127, 255, 212, 41, 210, 247, 85, 63, 111, 214, 242, 23, 60, 158, 224, 224, 234, 131, 28, 191, 7, 33, 54, 161, 72, 25, 180, 189, 191, 99, 56, 241, 230, 171, 102, 117, 117, 19, 61, 89, 110, 126, 203, + 159, 15, 9, 215, 66, 5, 78, 85, 80, 197, 181, 182, 251, 153, 255, 25, 27, 37, 122, 206, 13, 69, 215, 167, 62, 107, 251, 111, 145, 221, 91, 40, 253, 80, 75, 149, 28, 101, 152, 255, 196, 204, 252, 127, 93, 59, 209, 31, 151, 100, 191, 77, 200, 95, 173, 199, 253, 203, 111, 191, 125, 235, 27, 151, 134, 37, 182, 31, 130, 168, 229, 175, 10, 158, 112, 254, 124, 211, 13, 241, 10, 237, 18, 36, 192, 121, 189, 115, 46, 127, 122, 156, 223, 92, 70, 244, 144, 17, 57, 11, 230, 191, 228, 211, 99, 3, 243, 223, 40, 74, 108, 106, 231, 119, 50, 127, 193, 45, 194, 234, 198, 21, 254, 142, 136, 72, 250, 150, 95, 139, 63, 117, 56, 60, 100, 240, 128, 90, 31, 6, 154, 253, 185, 231, 152, 255, 99, 7, 135, 94, 201, 125, 114, 249, 242, 165, 75, 247, 146, 155, 254, 174, 30, 245, 186, 13, 16, 124, 10, 4, 157, 43, 244, 195, 42, 253, 178, 87, 227, 39, 209, 21, 123, 41, 250, 99, 251, 181, 216, 112, 58, 28, 246, 56, 60, 225, 91, 227, 116, 188, + 94, 203, 23, 140, 198, 14, 146, 198, 16, 248, 7, 143, 48, 28, 63, 233, 36, 39, 60, 16, 175, 149, 134, 244, 8, 41, 51, 247, 248, 239, 223, 29, 191, 109, 37, 26, 191, 7, 82, 191, 76, 116, 41, 230, 208, 93, 95, 217, 253, 198, 27, 82, 154, 84, 122, 96, 190, 77, 55, 213, 84, 91, 113, 85, 85, 211, 164, 227, 55, 13, 227, 87, 132, 16, 192, 25, 211, 207, 180, 122, 179, 170, 239, 101, 70, 29, 72, 206, 229, 173, 23, 76, 23, 223, 168, 217, 31, 71, 48, 226, 222, 164, 255, 111, 83, 8, 215, 35, 67, 60, 23, 170, 154, 202, 126, 17, 211, 166, 31, 196, 255, 89, 177, 213, 231, 172, 182, 240, 6, 67, 88, 171, 191, 241, 43, 53, 254, 79, 178, 179, 249, 99, 179, 230, 63, 144, 93, 152, 233, 51, 219, 180, 120, 74, 49, 218, 95, 110, 126, 171, 101, 245, 151, 104, 227, 185, 214, 109, 240, 60, 80, 127, 170, 9, 71, 221, 208, 4, 135, 99, 239, 153, 125, 139, 89, 116, 28, 207, 206, 18, 181, 120, 55, 143, 27, 244, 135, 34, 208, 147, + 233, 75, 103, 147, 237, 53, 53, 53, 247, 189, 255, 254, 125, 53, 181, 31, 44, 230, 152, 246, 98, 110, 27, 67, 209, 77, 37, 247, 159, 176, 249, 74, 173, 87, 102, 116, 56, 4, 55, 105, 92, 48, 190, 222, 204, 2, 166, 10, 203, 187, 249, 28, 142, 178, 124, 159, 110, 112, 75, 143, 251, 227, 114, 60, 138, 186, 144, 104, 43, 245, 253, 87, 172, 220, 199, 226, 213, 178, 8, 61, 110, 64, 1, 171, 249, 136, 228, 201, 86, 34, 180, 250, 239, 41, 207, 167, 126, 90, 244, 122, 211, 249, 243, 87, 163, 182, 222, 135, 2, 144, 17, 54, 237, 241, 239, 12, 1, 63, 221, 204, 248, 233, 86, 144, 231, 243, 65, 159, 149, 44, 22, 174, 162, 210, 209, 92, 242, 250, 122, 108, 63, 128, 179, 201, 37, 28, 199, 209, 225, 203, 87, 108, 232, 128, 248, 191, 177, 143, 77, 78, 132, 172, 81, 140, 198, 227, 55, 181, 112, 42, 122, 127, 55, 141, 239, 223, 147, 129, 130, 112, 51, 238, 127, 176, 150, 229, 211, 209, 143, 241, 222, 102, 71, 201, 227, 93, 139, 78, 191, 202, + 175, 141, 231, 183, 13, 67, 193, 158, 194, 207, 91, 1, 245, 78, 152, 43, 99, 236, 224, 204, 227, 29, 103, 138, 115, 255, 21, 113, 55, 209, 161, 242, 211, 167, 17, 250, 63, 188, 106, 20, 85, 208, 191, 94, 250, 215, 143, 88, 204, 187, 186, 120, 6, 203, 231, 103, 115, 185, 151, 16, 219, 38, 97, 234, 173, 22, 49, 189, 103, 158, 205, 106, 197, 16, 5, 100, 69, 118, 87, 29, 155, 29, 88, 60, 223, 132, 147, 89, 208, 67, 181, 90, 172, 115, 252, 184, 253, 218, 113, 7, 164, 192, 79, 114, 221, 132, 102, 49, 227, 90, 103, 93, 45, 111, 177, 216, 109, 21, 216, 52, 191, 218, 225, 132, 102, 119, 58, 77, 230, 74, 71, 101, 165, 64, 113, 181, 195, 49, 127, 190, 213, 86, 229, 168, 157, 95, 235, 168, 165, 71, 171, 157, 46, 250, 175, 117, 190, 213, 81, 141, 29, 14, 155, 195, 110, 115, 56, 172, 22, 187, 121, 33, 237, 212, 49, 207, 62, 207, 81, 89, 83, 89, 105, 159, 103, 158, 87, 117, 125, 87, 185, 207, 121, 251, 255, 155, 255, 84, 91 +}; diff --git a/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.h b/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.h index fe01be7..9a44458 100644 --- a/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.h +++ b/examples/EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.h @@ -12,6 +12,6 @@ extern const uint8_t logo[239] PROGMEM; extern const uint8_t pic[3844] PROGMEM; -extern const uint8_t flash[12753] PROGMEM; +extern const uint8_t flash[8199] PROGMEM; #endif /* TFT_DATA_H */ \ No newline at end of file diff --git a/examples/EVE_Test_SAMC21_EVE2-50G/EVE_Test.cproj b/examples/EVE_Test_SAMC21_EVE2-50G/EVE_Test.cproj index cded5f2..8f81c2e 100644 --- a/examples/EVE_Test_SAMC21_EVE2-50G/EVE_Test.cproj +++ b/examples/EVE_Test_SAMC21_EVE2-50G/EVE_Test.cproj @@ -40,14 +40,14 @@ - com.atmel.avrdbg.tool.atmelice - J41800003266 + com.atmel.avrdbg.tool.samice + 801009877 0x1101050A SWD - 4000000 + 0 SWD @@ -56,6 +56,17 @@ Atmel-ICE 4000000 + + + + 4000000 + + SWD + + com.atmel.avrdbg.tool.samice + 801009877 + J-Link + diff --git a/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE.h b/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE.h index 5464d82..0831fc3 100644 --- a/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE.h +++ b/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE.h @@ -602,7 +602,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #define COLOR_MASK(r,g,b,a) ((DL_COLOR_MASK) | (((r) & 1UL) << 3U) | (((g) & 1UL) << 2U) | (((b) & 1UL) << 1U) | ((a) & 1UL)) #define COLOR_RGB(red,green,blue) ((DL_COLOR_RGB) | (((red) & 0xFFUL) << 16U) | (((green) & 0xFFUL) << 8U) | ((blue) & 0xFFUL)) #define JUMP(dest) ((DL_JUMP) | ((dest) & 0xFFFFUL)) -#define LINE_WIDTH(width) ((DL_LINE_WIDTH) | ((width) & 0xFFFUL)) +#define LINE_WIDTH(width) ((DL_LINE_WIDTH) | (((uint32_t) (width)) & 0xFFFUL)) #define MACRO(m) ((DL_MACRO) | ((m) & 1UL)) #define PALETTE_SOURCE(addr) ((DL_PALETTE_SOURCE) | ((addr) & 0x3FFFFF3UL)) #define POINT_SIZE(size) ((DL_POINT_SIZE) | ((size) & 0x1FFFUL)) @@ -613,7 +613,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #define STENCIL_OP(sfail,spass) ((DL_STENCIL_OP) | (((sfail) & 7UL) << 3U) | ((spass) & 7UL)) #define TAG(s) ((DL_TAG) | ((s) & 0xFFUL)) #define TAG_MASK(mask) ((DL_TAG_MASK) | ((mask) & 1UL)) -#define VERTEX2F(x,y) ((DL_VERTEX2F) | (((x) & 0x7FFFUL) << 15U) | ((y) & 0x7FFFUL)) +#define VERTEX2F(x,y) ((DL_VERTEX2F) | ((((uint32_t) (x)) & 0x7FFFUL) << 15U) | (((uint32_t) (y)) & 0x7FFFUL)) #define VERTEX2II(x,y,handle,cell) ((DL_VERTEX2II) | (((x) & 0x1FFUL) << 21U) | (((y) & 0x1FFUL) << 12U) | (((handle) & 0x1FUL) << 7U) | ((cell) & 0x7FUL)) #define VERTEX_FORMAT(frac) ((DL_VERTEX_FORMAT) | ((frac) & 7UL)) #define VERTEX_TRANSLATE_X(x) ((DL_VERTEX_TRANSLATE_X) | ((x) & 0x1FFFFUL)) diff --git a/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE_commands.c b/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE_commands.c index 5d1d311..10abc8e 100644 --- a/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE_commands.c +++ b/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE_commands.c @@ -2,7 +2,7 @@ @file EVE_commands.c @brief contains FT8xx / BT8xx functions @version 5.0 -@date 2022-12-19 +@date 2022-12-30 @author Rudolph Riedel @section info @@ -119,6 +119,8 @@ without the traling _burst in the name when exceution speed is not an issue - e. - basic maintenance: checked for violations of white space and indent rules - more linter fixes for minor issues like variables shorter than 3 characters - added EVE_color_a() / EVE_color_a_burst() +- more minor tweaks and fixes to make the static analyzer happy +- changed the burst variant of private_string_write() back to the older and faster version */ @@ -126,7 +128,7 @@ without the traling _burst in the name when exceution speed is not an issue - e. /* EVE Memory Commands - used with EVE_memWritexx and EVE_memReadxx */ #define MEM_WRITE 0x80U /* EVE Host Memory Write */ -//#define MEM_READ 0x00U /* EVE Host Memory Read */ +/* #define MEM_READ 0x00U */ /* EVE Host Memory Read */ /* define NULL if it not already is */ #ifndef NULL @@ -164,8 +166,8 @@ uint16_t EVE_memRead16(uint32_t ft_address) uint16_t data; EVE_cs_set(); spi_transmit_32(((ft_address >> 16U) & 0x0000007fUL) + (ft_address & 0x0000ff00UL) + ((ft_address & 0x000000ffUL) << 16U)); - data = ((uint16_t)spi_receive(0U)); /* read low byte */ - data = ((uint16_t)spi_receive(0U) << 8U) | data; /* read high byte */ + data = ((uint16_t) spi_receive(0U)); /* read low byte */ + data = (((uint16_t) spi_receive(0U)) << 8U) | data; /* read high byte */ EVE_cs_clear(); return data; } @@ -175,10 +177,10 @@ uint32_t EVE_memRead32(uint32_t ft_address) uint32_t data; EVE_cs_set(); spi_transmit_32(((ft_address >> 16U) & 0x0000007fUL) + (ft_address & 0x0000ff00UL) + ((ft_address & 0x000000ffUL) << 16U)); - data = ((uint32_t)spi_receive(0U)); /* read low byte */ - data = ((uint32_t)spi_receive(0U) << 8U) | data; - data = ((uint32_t)spi_receive(0U) << 16U) | data; - data = ((uint32_t)spi_receive(0U) << 24U) | data; /* read high byte */ + data = ((uint32_t) spi_receive(0U)); /* read low byte */ + data = ((uint32_t) spi_receive(0U) << 8U) | data; + data = ((uint32_t) spi_receive(0U) << 16U) | data; + data = ((uint32_t) spi_receive(0U) << 24U) | data; /* read high byte */ EVE_cs_clear(); return data; } @@ -933,15 +935,15 @@ void EVE_cmd_snapshot2(uint32_t fmt, uint32_t ptr, int16_t xc0, int16_t yc0, int spi_transmit_32(fmt); spi_transmit_32(ptr); - spi_transmit((uint8_t)(xc0)); - spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); - spi_transmit((uint8_t)(yc0)); - spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); - spi_transmit((uint8_t)(wid)); - spi_transmit((uint8_t)(((uint16_t) wid) >> 8U)); - spi_transmit((uint8_t)(hgt)); - spi_transmit((uint8_t)(((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); EVE_cs_clear(); EVE_execute_cmd(); @@ -952,18 +954,18 @@ void EVE_cmd_track(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t t { eve_begin_cmd(CMD_TRACK); - spi_transmit((uint8_t)(xc0)); - spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); - spi_transmit((uint8_t)(yc0)); - spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); - spi_transmit((uint8_t)(wid)); - spi_transmit((uint8_t)(((uint16_t) wid) >> 8U)); - spi_transmit((uint8_t)(hgt)); - spi_transmit((uint8_t)(((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); - spi_transmit((uint8_t)(tag)); - spi_transmit((uint8_t)(((uint16_t) tag) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) tag)); + spi_transmit((uint8_t) (((uint16_t) tag) >> 8U)); spi_transmit(0U); spi_transmit(0U); @@ -1070,7 +1072,6 @@ uint8_t EVE_init_flash(void) #endif /* EVE_GEN > 2 */ -/* FT811 / FT813 binary-blob from FTDIs AN_336 to patch the touch-engine for Goodix GT911 / GT9271 touch controllers */ #if defined(EVE_HAS_GT911) #if defined(__AVR__) @@ -1078,8 +1079,16 @@ uint8_t EVE_init_flash(void) #else #define PROGMEM #endif +void use_gt911(void); -const uint8_t EVE_GT911_data[1184U] PROGMEM = { +void use_gt911(void) +{ +#if EVE_GEN > 2 + EVE_memWrite16(REG_TOUCH_CONFIG, 0x05d0U); /* switch to Goodix touch controller */ +#else + +/* FT811 / FT813 binary-blob from FTDIs AN_336 to patch the touch-engine for Goodix GT911 / GT9271 touch controllers */ +const uint8_t eve_gt911_data[1184U] PROGMEM = { 26, 255, 255, 255, 32, 32, 48, 0, 4, 0, 0, 0, 2, 0, 0, 0, 34, 255, 255, 255, 0, 176, 48, 0, 120, 218, 237, 84, 221, 111, 84, 69, 20, 63, 51, 179, 93, 160, 148, 101, 111, 76, 5, 44, 141, 123, 111, 161, 11, 219, 154, 16, 9, 16, 17, 229, 156, 75, 26, 11, 13, 21, 227, 3, 16, 252, 184, 179, 45, @@ -1132,6 +1141,28 @@ const uint8_t EVE_GT911_data[1184U] PROGMEM = { 140, 175, 73, 112, 184, 252, 61, 184, 16, 90, 250, 35, 168, 82, 119, 176, 57, 116, 94, 200, 150, 22, 190, 179, 44, 104, 12, 235, 84, 149, 102, 252, 89, 154, 193, 99, 228, 106, 242, 125, 248, 64, 194, 255, 223, 127, 242, 83, 11, 255, 2, 70, 214, 226, 128, 0, 0}; + + EVE_cs_set(); + spi_transmit((uint8_t) 0xB0U); /* high-byte of REG_CMDB_WRITE + MEM_WRITE */ + spi_transmit((uint8_t) 0x25U); /* middle-byte of REG_CMDB_WRITE */ + spi_transmit((uint8_t) 0x78U); /* low-byte of REG_CMDB_WRITE */ + private_block_write(eve_gt911_data, sizeof(eve_gt911_data)); + EVE_cs_clear(); + EVE_execute_cmd(); + + EVE_memWrite8(REG_TOUCH_OVERSAMPLE, 0x0fU); /* setup oversample to 0x0f as "hidden" in binary-blob for AN_336 */ + EVE_memWrite16(REG_TOUCH_CONFIG, 0x05D0U); /* write magic cookie as requested by AN_336 */ + + /* specific to the EVE2 modules from Matrix-Orbital we have to use GPIO3 to reset GT911 */ + EVE_memWrite16(REG_GPIOX_DIR, 0x8008U); /* Reset-Value is 0x8000, adding 0x08 sets GPIO3 to output, default-value + for REG_GPIOX is 0x8000 -> Low output on GPIO3 */ + DELAY_MS(1U); /* wait more than 100�s */ + EVE_memWrite8(REG_CPURESET, 0U); /* clear all resets */ + DELAY_MS(110U); /* wait more than 55ms - does not work with multitouch, for some reason a minimum delay of 108ms is + required */ + EVE_memWrite16(REG_GPIOX_DIR, 0x8000U); /* setting GPIO3 back to input */ +#endif +} #endif /* EVE chip initialization, has to be executed with the SPI setup to 11 MHz or less as required by FT8xx / BT8xx! */ @@ -1167,17 +1198,20 @@ uint8_t EVE_init(void) EVE_cmdWrite(EVE_ACTIVE, 0U); /* start EVE */ /* - BRT AN033 BT81X_Series_Programming_Guide V1.2 added a delay of at least 300ms as a requirement after sending command - ACTIVE. Together with the sentence: "Ensure that there is no SPI access during this time." AN033 - BT81X_Series_Programming_Guide V2.0 removed this delay requirement again. From observation of the startup-behavior - of quite a number of displays, reading REG_ID immediately after sending command ACTIVE is not an issue, but a BT815 - running at 72MHzs needs about 42ms before it answers anyways. So I added a fixed delay of 40ms as a compromise, this - provides a moment of silence on the SPI without actually delaying the startup. + BRT AN033 BT81X_Series_Programming_Guide V1.2 added a delay of at least 300ms + as a requirement after sending command ACTIVE. + Together with the sentence: "Ensure that there is no SPI access during this time." + AN033 BT81X_Series_Programming_Guide V2.0 removed this delay requirement again. + From observation of the startup-behavior of quite a number of displays, + reading REG_ID immediately after sending command ACTIVE is not an issue, + but a BT815 running at 72MHzs needs about 42ms before it answers anyways. + So I added a fixed delay of 40ms as a compromise, this provides a moment + of silence on the SPI without actually delaying the startup. */ DELAY_MS(40U); - while (chipid != 0x7CU) /* if chipid is not 0x7c, continue to read it until it is, EVE needs a moment for its power - on self-test and configuration */ + while (chipid != 0x7CU) /* if chipid is not 0x7c, continue to read it until it is, + EVE needs a moment for its power on self-test and configuration */ { DELAY_MS(1U); chipid = EVE_memRead8(REG_ID); @@ -1193,8 +1227,8 @@ uint8_t EVE_init(void) { DELAY_MS(1U); timeout++; - if (timeout > 50U) /* experimental, 10 was the lowest value to get the BT815 started with, the touch-controller - was the last to get out of reset */ + if (timeout > 50U) /* experimental, 10 was the lowest value to get the BT815 started with, + the touch-controller was the last to get out of reset */ { return EVE_FAIL_RESET_TIMEOUT; } @@ -1202,36 +1236,13 @@ uint8_t EVE_init(void) /* tell EVE that we changed the frequency from default to 72MHz for BT8xx */ #if EVE_GEN > 2 - EVE_memWrite32(REG_FREQUENCY, 72000000U); + EVE_memWrite32(REG_FREQUENCY, 72000000UL); #endif /* we have a display with a Goodix GT911 / GT9271 touch-controller on it, so we patch our FT811 or FT813 according to - * AN_336 or setup a BT815 accordingly */ + * AN_336 or setup a BT815 / BT817 accordingly */ #if defined(EVE_HAS_GT911) - -#if EVE_GEN > 2 - EVE_memWrite16(REG_TOUCH_CONFIG, 0x05d0U); /* switch to Goodix touch controller */ -#else - EVE_cs_set(); - spi_transmit((uint8_t) 0xB0U); /* high-byte of REG_CMDB_WRITE + MEM_WRITE */ - spi_transmit((uint8_t) 0x25U); /* middle-byte of REG_CMDB_WRITE */ - spi_transmit((uint8_t) 0x78U); /* low-byte of REG_CMDB_WRITE */ - private_block_write(EVE_GT911_data, sizeof(EVE_GT911_data)); - EVE_cs_clear(); - EVE_execute_cmd(); - - EVE_memWrite8(REG_TOUCH_OVERSAMPLE, 0x0fU); /* setup oversample to 0x0f as "hidden" in binary-blob for AN_336 */ - EVE_memWrite16(REG_TOUCH_CONFIG, 0x05D0U); /* write magic cookie as requested by AN_336 */ - - /* specific to the EVE2 modules from Matrix-Orbital we have to use GPIO3 to reset GT911 */ - EVE_memWrite16(REG_GPIOX_DIR, 0x8008U); /* Reset-Value is 0x8000, adding 0x08 sets GPIO3 to output, default-value - for REG_GPIOX is 0x8000 -> Low output on GPIO3 */ - DELAY_MS(1U); /* wait more than 100�s */ - EVE_memWrite8(REG_CPURESET, 0U); /* clear all resets */ - DELAY_MS(110U); /* wait more than 55ms - does not work with multitouch, for some reason a minimum delay of 108ms is - required */ - EVE_memWrite16(REG_GPIOX_DIR, 0x8000U); /* setting GPIO3 back to input */ -#endif + use_gt911(); #endif /* EVE_memWrite8(REG_PCLK, 0U); */ /* set PCLK to zero - don't clock the LCD until later, line disabled because @@ -1417,28 +1428,43 @@ static void private_string_write(const char *p_text) } else { - uint8_t textindex = 0U; - uint32_t calc = 0U; - uint8_t byteindex = 0U; - uint8_t data; - - do + for(uint8_t textindex = 0U; textindex < 249U;) { - data = p_bytes[textindex]; - textindex++; - calc += (uint32_t)(data) << (8U * byteindex); - byteindex++; - if (byteindex > 3U) + uint32_t calc = 0U; + uint8_t data; + + data = p_bytes[textindex++]; + if(0U == data) + { + spi_transmit_burst(calc); + break; + } + calc += (uint32_t) (data); + + data = p_bytes[textindex++]; + if(0U == data) { spi_transmit_burst(calc); - calc = 0U; - byteindex = 0U; + break; } - } - while ((textindex < 249U) && (data != 0U)); + calc += ((uint32_t) data) << 8U; + + data = p_bytes[textindex++]; + if(0U == data) + { + spi_transmit_burst(calc); + break; + } + calc += ((uint32_t) data) << 16U; + + data = p_bytes[textindex++]; + if(0U == data) + { + spi_transmit_burst(calc); + break; + } + calc += ((uint32_t) data) << 24U; - if (byteindex > 0U) - { spi_transmit_burst(calc); } } @@ -1450,16 +1476,13 @@ static void private_string_write(const char *p_text) void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMFRAMERAM); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); spi_transmit_32(aoptr); spi_transmit_32(frame); EVE_cs_clear(); @@ -1467,7 +1490,7 @@ void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, else { spi_transmit_burst(CMD_ANIMFRAMERAM); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1476,11 +1499,8 @@ void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, void EVE_cmd_animframeram_burst(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_ANIMFRAMERAM); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1538,21 +1558,15 @@ void EVE_cmd_calibratesub(uint16_t xc0, uint16_t yc0, uint16_t width, { if (0U == cmd_burst) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - eve_begin_cmd(CMD_CALIBRATESUB); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(width)); - spi_transmit((uint8_t)(width >> 8U)); - spi_transmit((uint8_t)(height)); - spi_transmit((uint8_t)(height >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) (width)); + spi_transmit((uint8_t) (width >> 8U)); + spi_transmit((uint8_t) (height)); + spi_transmit((uint8_t) (height >> 8U)); EVE_cs_clear(); } } @@ -1651,18 +1665,13 @@ void EVE_cmd_animdraw_burst(int32_t chnl) void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMFRAME); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); spi_transmit_32(aoptr); spi_transmit_32(frame); EVE_cs_clear(); @@ -1670,7 +1679,7 @@ void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) else { spi_transmit_burst(CMD_ANIMFRAME); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1679,11 +1688,8 @@ void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) void EVE_cmd_animframe_burst(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_ANIMFRAME); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1693,7 +1699,6 @@ void EVE_cmd_animstart(int32_t chnl, uint32_t aoptr, uint32_t loop) if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMSTART); - spi_transmit_32((uint32_t) chnl); spi_transmit_32(aoptr); spi_transmit_32(loop); @@ -1739,37 +1744,29 @@ void EVE_cmd_animstop_burst(int32_t chnl) void EVE_cmd_animxy(int32_t chnl, int16_t xc0, int16_t yc0) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMXY); spi_transmit_32((uint32_t) chnl); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_ANIMXY); spi_transmit_burst((uint32_t) chnl); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); } } void EVE_cmd_animxy_burst(int32_t chnl, int16_t xc0, int16_t yc0) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_ANIMXY); spi_transmit_burst((uint32_t) chnl); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); } void EVE_cmd_appendf(uint32_t ptr, uint32_t num) @@ -1895,32 +1892,27 @@ void EVE_cmd_fillwidth_burst(uint32_t pixel) void EVE_cmd_gradienta(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, int16_t yc1, uint32_t argb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - if (0U == cmd_burst) { eve_begin_cmd(CMD_GRADIENTA); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); spi_transmit_32(argb0); - spi_transmit((uint8_t)(xcu1)); - spi_transmit((uint8_t)(xcu1 >> 8U)); - spi_transmit((uint8_t)(ycu1)); - spi_transmit((uint8_t)(ycu1 >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc1)); + spi_transmit((uint8_t) (((uint16_t) xc1) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc1)); + spi_transmit((uint8_t) (((uint16_t) yc1) >> 8U)); spi_transmit_32(argb1); EVE_cs_clear(); } else { spi_transmit_burst(CMD_GRADIENTA); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(argb0); - spi_transmit_burst((uint32_t) xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(argb1); } } @@ -1928,15 +1920,10 @@ void EVE_cmd_gradienta(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, void EVE_cmd_gradienta_burst(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, int16_t yc1, uint32_t argb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - spi_transmit_burst(CMD_GRADIENTA); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(argb0); - spi_transmit_burst((uint32_t) xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(argb1); } @@ -1976,31 +1963,21 @@ void EVE_cmd_button_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_BUTTON); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2018,9 +1995,9 @@ void EVE_cmd_button_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, else { spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + ((uint32_t)ycu0 << 16U)); - spi_transmit_burst((uint32_t) widu + ((uint32_t)hgtu << 16U)); - spi_transmit_burst((uint32_t) fontu + ((uint32_t)options << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + ((uint32_t) options << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2041,16 +2018,10 @@ void EVE_cmd_button_var_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + ((uint32_t) ycu0 << 16U)); - spi_transmit_burst((uint32_t) widu + ((uint32_t) hgtu << 16U)); - spi_transmit_burst((uint32_t) fontu + ((uint32_t) options << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + ((uint32_t) options << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2070,24 +2041,17 @@ void EVE_cmd_text_var(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TEXT); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2105,8 +2069,8 @@ void EVE_cmd_text_var(int16_t xc0, int16_t yc0, int16_t font, else { spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2127,13 +2091,9 @@ void EVE_cmd_text_var_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2153,30 +2113,21 @@ void EVE_cmd_toggle_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TOGGLE); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(state)); - spi_transmit((uint8_t)(state >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (state)); + spi_transmit((uint8_t) (state >> 8U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2194,8 +2145,8 @@ void EVE_cmd_toggle_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, else { spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font) << 16U))); spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); private_string_write(p_text); @@ -2217,14 +2168,9 @@ void EVE_cmd_toggle_var_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t fon uint16_t options, uint16_t state, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font) << 16U))); spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); private_string_write(p_text); @@ -2301,9 +2247,9 @@ void EVE_cmd_bgcolor(uint32_t color) if (0U == cmd_burst) { eve_begin_cmd(CMD_BGCOLOR); - spi_transmit((uint8_t)(color)); - spi_transmit((uint8_t)(color >> 8U)); - spi_transmit((uint8_t)(color >> 16U)); + spi_transmit((uint8_t) (color)); + spi_transmit((uint8_t) (color >> 8U)); + spi_transmit((uint8_t) (color >> 16U)); spi_transmit(0U); EVE_cs_clear(); } @@ -2323,43 +2269,30 @@ void EVE_cmd_bgcolor_burst(uint32_t color) void EVE_cmd_button(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_BUTTON); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } } @@ -2367,16 +2300,10 @@ void EVE_cmd_button(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } @@ -2390,33 +2317,24 @@ void EVE_cmd_calibrate(void) } } -void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs) +void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, + uint16_t mins, uint16_t secs, uint16_t msecs) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - if (0U == cmd_burst) { eve_begin_cmd(CMD_CLOCK); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(radu)); - spi_transmit((uint8_t)(radu >> 8U)); + spi_transmit((uint8_t)((uint16_t) xc0)); + spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) yc0)); + spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) rad)); + spi_transmit((uint8_t)(((uint16_t) rad) >> 8U)); spi_transmit((uint8_t)(options)); spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(hours)); spi_transmit((uint8_t)(hours >> 8U)); spi_transmit((uint8_t)(mins)); spi_transmit((uint8_t)(mins >> 8U)); - spi_transmit((uint8_t)(secs)); spi_transmit((uint8_t)(secs >> 8U)); spi_transmit((uint8_t)(msecs)); @@ -2426,61 +2344,47 @@ void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, else { spi_transmit_burst(CMD_CLOCK); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) hours + (((uint32_t) mins) << 16U)); spi_transmit_burst((uint32_t) secs + (((uint32_t) msecs) << 16U)); } } -void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs) +void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, + uint16_t mins, uint16_t secs, uint16_t msecs) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - spi_transmit_burst(CMD_CLOCK); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) hours + (((uint32_t) mins) << 16U)); spi_transmit_burst((uint32_t) secs + (((uint32_t) msecs) << 16U)); } -void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, - uint16_t options, uint16_t val) +void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - if (0U == cmd_burst) { eve_begin_cmd(CMD_DIAL); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(radu)); - spi_transmit((uint8_t)(radu >> 8U)); + spi_transmit((uint8_t)((uint16_t) xc0)); + spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) yc0)); + spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) rad)); + spi_transmit((uint8_t)(((uint16_t) rad) >> 8U)); spi_transmit((uint8_t)(options)); spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); spi_transmit((uint8_t)(val >> 8U)); spi_transmit(0U); spi_transmit(0U); - EVE_cs_clear(); } else { spi_transmit_burst(CMD_DIAL); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst(val); } } @@ -2488,13 +2392,9 @@ void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, void EVE_cmd_dial_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - spi_transmit_burst(CMD_DIAL); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst(val); } @@ -2526,43 +2426,34 @@ void EVE_cmd_gauge(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - if (0U == cmd_burst) { eve_begin_cmd(CMD_GAUGE); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(radu)); - spi_transmit((uint8_t)(radu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - - spi_transmit((uint8_t)(major)); - spi_transmit((uint8_t)(major >> 8U)); - spi_transmit((uint8_t)(minor)); - spi_transmit((uint8_t)(minor >> 8U)); - - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) rad)); + spi_transmit((uint8_t) (((uint16_t) rad) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (major)); + spi_transmit((uint8_t) (major >> 8U)); + spi_transmit((uint8_t) (minor)); + spi_transmit((uint8_t) (minor >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_GAUGE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); - spi_transmit_burst((uint32_t) major + (((uint32_t) minor) << 16U)); - spi_transmit_burst((uint32_t) val + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) rad)) + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) major) + (((uint32_t) minor) << 16U)); + spi_transmit_burst(((uint32_t) val) + (((uint32_t) range) << 16U)); } } @@ -2570,15 +2461,11 @@ void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options uint16_t major, uint16_t minor, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - spi_transmit_burst(CMD_GAUGE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); - spi_transmit_burst((uint32_t) major + (((uint32_t) minor) << 16U)); - spi_transmit_burst((uint32_t) val + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) rad)) + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) major) + (((uint32_t) minor) << 16U)); + spi_transmit_burst(((uint32_t) val) + (((uint32_t) range) << 16U)); } /* EVE_cmd_getmatrix() is meant to be called with display-list building. */ @@ -2665,43 +2552,33 @@ void EVE_cmd_gradcolor_burst(uint32_t color) void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - if (0U == cmd_burst) { eve_begin_cmd(CMD_GRADIENT); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(rgb0)); - spi_transmit((uint8_t)(rgb0 >> 8U)); - spi_transmit((uint8_t)(rgb0 >> 16U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) (rgb0)); + spi_transmit((uint8_t) (rgb0 >> 8U)); + spi_transmit((uint8_t) (rgb0 >> 16U)); spi_transmit(0U); - - spi_transmit((uint8_t)(xcu1)); - spi_transmit((uint8_t)(xcu1 >> 8U)); - spi_transmit((uint8_t)(ycu1)); - spi_transmit((uint8_t)(ycu1 >> 8U)); - - spi_transmit((uint8_t)(rgb1)); - spi_transmit((uint8_t)(rgb1 >> 8U)); - spi_transmit((uint8_t)(rgb1 >> 16U)); + spi_transmit((uint8_t) ((uint16_t) xc1)); + spi_transmit((uint8_t) (((uint16_t) xc1) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc1)); + spi_transmit((uint8_t) (((uint16_t) yc1) >> 8U)); + spi_transmit((uint8_t) (rgb1)); + spi_transmit((uint8_t) (rgb1 >> 8U)); + spi_transmit((uint8_t) (rgb1 >> 16U)); spi_transmit(0U); - EVE_cs_clear(); } else { spi_transmit_burst(CMD_GRADIENT); - spi_transmit_burst((uint32_t)xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(rgb0); - spi_transmit_burst((uint32_t)xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(rgb1); } } @@ -2709,56 +2586,40 @@ void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, void EVE_cmd_gradient_burst(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - spi_transmit_burst(CMD_GRADIENT); - spi_transmit_burst((uint32_t)xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(rgb0); - spi_transmit_burst((uint32_t)xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(rgb1); } void EVE_cmd_keys(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_KEYS); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_KEYS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); - + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } } @@ -2766,49 +2627,35 @@ void EVE_cmd_keys(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_KEYS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); - + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } void EVE_cmd_number(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_NUMBER); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); spi_transmit_32((uint32_t) number); EVE_cs_clear(); } else { spi_transmit_burst(CMD_NUMBER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) number); } } @@ -2816,56 +2663,42 @@ void EVE_cmd_number(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, void EVE_cmd_number_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_NUMBER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) number); } void EVE_cmd_progress(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_PROGRESS); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); spi_transmit(0U); /* dummy byte for 4-byte alignment */ spi_transmit(0U); /* dummy byte for 4-byte alignment */ - EVE_cs_clear(); } else { spi_transmit_burst(CMD_PROGRESS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + ((uint32_t)val << 16U)); spi_transmit_burst((uint32_t) range); } } @@ -2873,15 +2706,10 @@ void EVE_cmd_progress(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_PROGRESS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + ((uint32_t)val << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + ((uint32_t)val << 16U)); spi_transmit_burst((uint32_t) range); } @@ -2957,60 +2785,45 @@ void EVE_cmd_scale_burst(int32_t scx, int32_t scy) void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SCROLLBAR); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - - spi_transmit((uint8_t)(size)); - spi_transmit((uint8_t)(size >> 8U)); - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (size)); + spi_transmit((uint8_t) (size >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_SCROLLBAR); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); - spi_transmit_burst((uint32_t) size + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) size) + (((uint32_t) range) << 16U)); } } void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_SCROLLBAR); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); - spi_transmit_burst((uint32_t) size + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) size) + (((uint32_t) range) << 16U)); } void EVE_cmd_setbase(uint32_t base) @@ -3041,17 +2854,14 @@ void EVE_cmd_setbitmap(uint32_t addr, uint16_t fmt, uint16_t width, { eve_begin_cmd(CMD_SETBITMAP); spi_transmit_32(addr); - spi_transmit((uint8_t)(fmt)); spi_transmit((uint8_t)(fmt >> 8U)); spi_transmit((uint8_t)(width)); spi_transmit((uint8_t)(width >> 8U)); - spi_transmit((uint8_t)(height)); spi_transmit((uint8_t)(height >> 8U)); spi_transmit(0U); spi_transmit(0U); - EVE_cs_clear(); } else @@ -3147,25 +2957,20 @@ void EVE_cmd_setscratch_burst(uint32_t handle) void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SKETCH); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); spi_transmit_32(ptr); - spi_transmit((uint8_t)(format)); - spi_transmit((uint8_t)(format >> 8U)); + spi_transmit((uint8_t) (format)); + spi_transmit((uint8_t) (format >> 8U)); spi_transmit(0U); spi_transmit(0U); EVE_cs_clear(); @@ -3173,8 +2978,8 @@ void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, else { spi_transmit_burst(CMD_SKETCH); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); spi_transmit_burst(ptr); spi_transmit_burst((uint32_t) format); } @@ -3183,14 +2988,9 @@ void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_SKETCH); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); spi_transmit_burst(ptr); spi_transmit_burst((uint32_t) format); } @@ -3198,28 +2998,23 @@ void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SLIDER); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); spi_transmit(0U); /* dummy byte for 4-byte alignment */ spi_transmit(0U); /* dummy byte for 4-byte alignment */ EVE_cs_clear(); @@ -3227,9 +3022,9 @@ void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, else { spi_transmit_burst(CMD_SLIDER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); spi_transmit_burst((uint32_t) range); } } @@ -3237,81 +3032,66 @@ void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_SLIDER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); spi_transmit_burst((uint32_t) range); } void EVE_cmd_spinner(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SPINNER); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(style)); - spi_transmit((uint8_t)(style >> 8U)); - spi_transmit((uint8_t)(scale)); - spi_transmit((uint8_t)(scale >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) (style)); + spi_transmit((uint8_t) (style >> 8U)); + spi_transmit((uint8_t) (scale)); + spi_transmit((uint8_t) (scale >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_SPINNER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) style + (((uint32_t) scale) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) style) + (((uint32_t) scale) << 16U)); } } void EVE_cmd_spinner_burst(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_SPINNER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) style + (((uint32_t) scale) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) style) + (((uint32_t) scale) << 16U)); } void EVE_cmd_text(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TEXT); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } } @@ -3319,48 +3099,39 @@ void EVE_cmd_text(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, void EVE_cmd_text_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TOGGLE); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(state)); - spi_transmit((uint8_t)(state >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (state)); + spi_transmit((uint8_t) (state >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) state) << 16U)); private_string_write(p_text); } } @@ -3368,15 +3139,10 @@ void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) state) << 16U)); private_string_write(p_text); } @@ -3442,27 +3208,27 @@ void EVE_color_a_burst(uint8_t alpha) /* This code was taken from the MatrixOrbital EVE2-Library on Github, adapted and modified */ void EVE_calibrate_manual(uint16_t width, uint16_t height) { - uint32_t display_x[3U]; - uint32_t display_y[3U]; - uint32_t touch_x[3U]; - uint32_t touch_y[3U]; + int32_t display_x[3U]; + int32_t display_y[3U]; + int32_t touch_x[3U]; + int32_t touch_y[3U]; uint32_t touch_value; int32_t tmp; - int32_t coef; + int32_t div; int32_t trans_matrix[6U]; uint8_t count = 0U; char num[2U]; uint8_t touch_lock = 1U; /* these values determine where your calibration points will be drawn on your display */ - display_x[0U] = (uint32_t)(width / 6U); - display_y[0U] = (uint32_t)(height / 6U); + display_x[0U] = (int32_t) (width / 6U); + display_y[0U] = (int32_t) (height / 6U); - display_x[1U] = (uint32_t)(width - (width / 8U)); - display_y[1U] = (uint32_t)(height / 2U); + display_x[1U] = (int32_t) (width - (width / 8U)); + display_y[1U] = (int32_t) (height / 2U); - display_x[2U] = (uint32_t)(width / 2U); - display_y[2U] = (uint32_t)(height - (height / 8U)); + display_x[2U] = (int32_t) (width / 2U); + display_y[2U] = (int32_t) (height - (height / 8U)); while (count < 3U) { @@ -3501,8 +3267,8 @@ void EVE_calibrate_manual(uint16_t width, uint16_t height) { if (0UL == (touch_value & 0x80000000UL)) /* check if a touch is detected */ { - touch_x[count] = (touch_value >> 16U) & 0x03FFU; /* raw Touchscreen Y coordinate */ - touch_y[count] = touch_value & 0x03FFU; /* raw Touchscreen Y coordinate */ + touch_x[count] = (int32_t) ((touch_value >> 16U) & 0x03FFU); /* raw Touchscreen Y coordinate */ + touch_y[count] = (int32_t) (touch_value & 0x03FFU); /* raw Touchscreen Y coordinate */ touch_lock = 1U; count++; break; /* leave for ( ; ; ) */ @@ -3511,33 +3277,33 @@ void EVE_calibrate_manual(uint16_t width, uint16_t height) } } - coef = (int32_t) ((touch_x[0U] - touch_x[2U]) * (touch_y[1U] - touch_y[2U])) - ((touch_x[1U] - touch_x[2U]) * (touch_y[0U] - touch_y[2U])); + div = ((touch_x[0U] - touch_x[2U]) * (touch_y[1U] - touch_y[2U])) - ((touch_x[1U] - touch_x[2U]) * (touch_y[0U] - touch_y[2U])); - tmp = (int32_t) (((display_x[0U] - display_x[2U]) * (touch_y[1U] - touch_y[2U])) - + tmp = (((display_x[0U] - display_x[2U]) * (touch_y[1U] - touch_y[2U])) - ((display_x[1U] - display_x[2U]) * (touch_y[0U] - touch_y[2U]))); - trans_matrix[0U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[0U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) (((touch_x[0U] - touch_x[2U]) * (display_x[1U] - display_x[2U])) - + tmp = (((touch_x[0U] - touch_x[2U]) * (display_x[1U] - display_x[2U])) - ((display_x[0U] - display_x[2U]) * (touch_x[1U] - touch_x[2U]))); - trans_matrix[1U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[1U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) ((touch_y[0U] * (((touch_x[2U] * display_x[1U]) - (touch_x[1U] * display_x[2U])))) + + tmp = ((touch_y[0U] * (((touch_x[2U] * display_x[1U]) - (touch_x[1U] * display_x[2U])))) + (touch_y[1U] * (((touch_x[0U] * display_x[2U]) - (touch_x[2U] * display_x[0U])))) + (touch_y[2U] * (((touch_x[1U] * display_x[0U]) - (touch_x[0U] * display_x[1U]))))); - trans_matrix[2U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[2U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) (((display_y[0U] - display_y[2U]) * (touch_y[1U] - touch_y[2U])) - + tmp = (((display_y[0U] - display_y[2U]) * (touch_y[1U] - touch_y[2U])) - ((display_y[1U] - display_y[2U]) * (touch_y[0U] - touch_y[2U]))); - trans_matrix[3U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[3U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) (((touch_x[0U] - touch_x[2U]) * (display_y[1U] - display_y[2U])) - + tmp = (((touch_x[0U] - touch_x[2U]) * (display_y[1U] - display_y[2U])) - ((display_y[0U] - display_y[2U]) * (touch_x[1U] - touch_x[2U]))); - trans_matrix[4U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[4U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) ((touch_y[0U] * (((touch_x[2U] * display_y[1U]) - (touch_x[1U] * display_y[2U])))) + + tmp = ((touch_y[0U] * (((touch_x[2U] * display_y[1U]) - (touch_x[1U] * display_y[2U])))) + (touch_y[1U] * (((touch_x[0U] * display_y[2U]) - (touch_x[2U] * display_y[0U])))) + (touch_y[2U] * (((touch_x[1U] * display_y[0U]) - (touch_x[0U] * display_y[1U]))))); - trans_matrix[5U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[5U] = (int32_t) (((int64_t) tmp * 65536) / div); EVE_memWrite32(REG_TOUCH_TRANSFORM_A, (uint32_t) trans_matrix[0U]); EVE_memWrite32(REG_TOUCH_TRANSFORM_B, (uint32_t) trans_matrix[1U]); diff --git a/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE_commands.h b/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE_commands.h index bd62935..20f124d 100644 --- a/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE_commands.h +++ b/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/EVE_commands.h @@ -2,7 +2,7 @@ @file EVE_commands.h @brief contains FT8xx / BT8xx function prototypes @version 5.0 -@date 2022-12-19 +@date 2022-12-30 @author Rudolph Riedel @section LICENSE @@ -67,6 +67,7 @@ EVE_cmd_animstartram_burst() - basic maintenance: checked for violations of white space and indent rules - more linter fixes for minor issues like variables shorter than 3 characters - added EVE_color_a() / EVE_color_a_burst() +- removed EVE_cmd_newlist_burst() prototype as the function got removed earlier */ @@ -141,6 +142,7 @@ void EVE_cmd_fontcache(uint32_t font, int32_t ptr, uint32_t num); void EVE_cmd_fontcachequery(uint32_t *p_total, int32_t *p_used); void EVE_cmd_getimage(uint32_t *p_source, uint32_t *p_fmt, uint32_t *p_width, uint32_t *p_height, uint32_t *p_palette); void EVE_cmd_linetime(uint32_t dest); +void EVE_cmd_newlist(uint32_t adr); uint32_t EVE_cmd_pclkfreq(uint32_t ftarget, int32_t rounding); void EVE_cmd_wait(uint32_t usec); @@ -217,8 +219,6 @@ void EVE_cmd_calllist(uint32_t adr); void EVE_cmd_calllist_burst(uint32_t adr); void EVE_cmd_hsf(uint32_t hsf); void EVE_cmd_hsf_burst(uint32_t hsf); -void EVE_cmd_newlist(uint32_t adr); -void EVE_cmd_newlist_burst(uint32_t adr); void EVE_cmd_runanim(uint32_t waitmask, uint32_t play); void EVE_cmd_runanim_burst(uint32_t waitmask, uint32_t play); @@ -267,46 +267,35 @@ void EVE_cmd_append_burst(uint32_t ptr, uint32_t num); void EVE_cmd_bgcolor(uint32_t color); void EVE_cmd_bgcolor_burst(uint32_t color); void EVE_cmd_button(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); -void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, - const char *p_text); +void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); void EVE_cmd_calibrate(void); -void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs); -void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs); +void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, uint16_t mins, uint16_t secs, uint16_t msecs); +void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, uint16_t mins, uint16_t secs, uint16_t msecs); void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val); void EVE_cmd_dial_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val); void EVE_cmd_fgcolor(uint32_t color); void EVE_cmd_fgcolor_burst(uint32_t color); -void EVE_cmd_gauge(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, - uint16_t range); -void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, - uint16_t val, uint16_t range); +void EVE_cmd_gauge(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range); +void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range); void EVE_cmd_getmatrix(int32_t *p_a, int32_t *p_b, int32_t *p_c, int32_t *p_d, int32_t *p_e, int32_t *p_f); void EVE_cmd_gradcolor(uint32_t color); void EVE_cmd_gradcolor_burst(uint32_t color); void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1); void EVE_cmd_gradient_burst(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1); void EVE_cmd_keys(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); -void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, - const char *p_text); +void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); void EVE_cmd_number(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number); void EVE_cmd_number_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number); void EVE_cmd_progress(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); -void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, - uint16_t range); +void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); void EVE_cmd_romfont(uint32_t font, uint32_t romslot); void EVE_cmd_romfont_burst(uint32_t font, uint32_t romslot); void EVE_cmd_rotate(int32_t angle); void EVE_cmd_rotate_burst(int32_t angle); void EVE_cmd_scale(int32_t scx, int32_t scy); void EVE_cmd_scale_burst(int32_t scx, int32_t scy); -void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, - uint16_t range); -void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, - uint16_t size, uint16_t range); +void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range); +void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range); void EVE_cmd_setbase(uint32_t base); void EVE_cmd_setbase_burst(uint32_t base); void EVE_cmd_setbitmap(uint32_t addr, uint16_t fmt, uint16_t width, uint16_t height); @@ -320,16 +309,13 @@ void EVE_cmd_setscratch_burst(uint32_t handle); void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format); void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format); void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); -void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, - uint16_t range); +void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); void EVE_cmd_spinner(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale); void EVE_cmd_spinner_burst(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale); void EVE_cmd_text(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text); void EVE_cmd_text_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text); -void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, - const char *p_text); -void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, - const char *p_text); +void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text); +void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text); void EVE_cmd_translate(int32_t tr_x, int32_t tr_y); void EVE_cmd_translate_burst(int32_t tr_x, int32_t tr_y); diff --git a/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/README.md b/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/README.md index 8c16778..cbd01af 100644 --- a/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/README.md +++ b/examples/EVE_Test_SAMC21_EVE2-50G/EmbeddedVideoEngine/README.md @@ -10,8 +10,7 @@ It contains code for and has been used with various micro-controllers and displa ## Controllers -I have used it so far with: - +I have used it so far with: - 8-Bit AVR, specifically the 90CAN series - Arduino: Uno, mini-pro, ESP8266, ESP32 (DMA), Metro-M4 (DMA), STM32 Nucleo_F446RE (DMA), XMC1100 - Renesas F1L RH850 @@ -23,8 +22,7 @@ I have used it so far with: - S32K144 (DMA) - GD32C103CBT6 (DMA) -I have reports of successfully using it with: - +I have reports of successfully using it with: - ATSAMV70 - ATSAMD20 - ATSAME4 @@ -36,8 +34,7 @@ I have reports of successfully using it with: ## Displays -The TFTs tested so far: - +The TFTs tested so far: - FT810CB-HY50HD http://www.hotmcu.com/5-graphical-lcd-touchscreen-800x480-spi-ft810-p-286.html - FT811CB-HY50HD http://www.hotmcu.com/5-graphical-lcd-capacitive-touch-screen-800x480-spi-ft811-p-301.html - RVT70UQFNWC0x https://riverdi.com/product/rvt70uqfnwc0x/ @@ -68,28 +65,26 @@ The TFTs tested so far: This is version 5 of this code library and there are a couple of changes from V4. -First of all, support for FT80x is gone. The main reason is that this allowed a nice speed improvement modification that only works with FT81x and beyond. +First of all, support for FT80x is gone. +The main reason is that this allowed a nice speed improvement modification that only works with FT81x and beyond. Then there is a hard break from FT80x to FT81x with ony 256k of memory in FT80x but 1MB in FT81x. The memory map is different and all the registers are located elsewhere. -FT810, FT811, FT812, FT813, BT815, BT816, BT817 and BT818 can use the exact same code as long none of the new features of BT81x are used - and there are plenty of modules with these available to choose from - -As a side effect all commands are automatically started now. - -Second is that there are two sets of display-list building command functions now: EVE_cmd_xxx() and EVE_cmd_xxx_burst(). +FT810, FT811, FT812, FT813, BT815, BT816, BT817 and BT818 can use the exact same code as long none of the new features of BT81x are used - and there are plenty of modules with these available to choose from. +As a side effect all commands are automatically started now. +Second is that there are two sets of display-list building command functions now: EVE_cmd_xxx() and EVE_cmd_xxx_burst(). The EVE_cmd_xxx_burst() functions are optimized for speed, these are pure data transfer functions and do not even check anymore if burst mode is active. ## Structure -This library currently has nine files that I hope are named to make clear what these do: - -- EVE.h - this has all defines for FT81x / BT81x itself, so here are options, registers, commands and macros defined -- EVE_commands.c - this has all the API functions that are to be called from an application -- EVE_commands.h - this contains the prototypes for the functions in EVE_commands.c -- EVE_config.h - this has all the parameters for the numerous supported display modules, here is definded which set of parameters is to be used -- EVE_target.c - this has non-portable specific code for a number of supported controllers, mostly to support DMA -- EVE_target.h - this has non-portable pin defines and code as "static inline" functions for all supported controllers -- EVE_target.cpp - this is for Arduino C++ targets -- EVE_cpp_wrapper.cpp - this is for Arduino C++ targets -- EVE_cpp_wrapper.h - this is for Arduino C++ targets +This library currently has nine files that I hope are named to make clear what these do: +- EVE.h - this has all defines for FT81x / BT81x itself, so here are options, registers, commands and macros defined +- EVE_commands.c - this has all the API functions that are to be called from an application +- EVE_commands.h - this contains the prototypes for the functions in EVE_commands.c +- EVE_config.h - this has all the parameters for the numerous supported display modules, here is definded which set of parameters is to be used +- EVE_target.c - this has non-portable specific code for a number of supported controllers, mostly to support DMA +- EVE_target.h - this has non-portable pin defines and code as "static inline" functions for all supported controllers +- EVE_target.cpp - this is for Arduino C++ targets +- EVE_cpp_wrapper.cpp - this is for Arduino C++ targets +- EVE_cpp_wrapper.h - this is for Arduino C++ targets ## Examples @@ -100,7 +95,7 @@ EVE_cmd_dl(DL_CLEAR_COLOR_RGB | WHITE); // sets the background color EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); EVE_color_rgb(BLACK); EVE_cmd_text(5, 15, 28, 0, "Hello there!"); -EVE_cmd_dl(DL_DISPLAY); // put in the display list to mark its end +EVE_cmd_dl(DL_DISPLAY); // put in the display list to mark the end EVE_cmd_dl(CMD_SWAP); // tell EVE to use the new display list while (EVE_busy()); ```` @@ -121,11 +116,11 @@ EVE_end_cmd_burst(); while (EVE_busy()); ```` -This does the same as the first example but faster. +This does the same as the first example but faster. The preceding EVE_start_cmd_burst() either sets chip-select to low and sends out the three byte address. -Or if DMA is available for the target you are compiling for with support code in EVE_target.c / EVE_target.cpp and EVE_target.h, it writes the address to EVE_dma_buffer and sets EVE_dma_buffer_index to 1. +Or if DMA is available for the target you are compiling for with support code in EVE_target.c / EVE_target.cpp and EVE_target.h, it writes the address to EVE_dma_buffer[] and sets EVE_dma_buffer_index to 1. -Note the trailing "_burst" in the following functions, these are special versions of these commands that can only be used within an EVE_start_cmd_burst()/EVE_end_cmd_bust() pair. +Note the trailing "_burst" in the following functions, these are special versions of these commands that can only be used within an EVE_start_cmd_burst()/EVE_end_cmd_bust() pair. These functions are optimized to push out data and nothing else. The final EVE_end_cmd_burst() either pulls back the chip-select to high. @@ -134,7 +129,7 @@ Or if we have DMA it calls EVE_start_dma_transfer() to start pushing out the buf As we have 7 commands for EVE in these simple examples, the second one has the address overhead removed from six commands and therefore needs to transfer 18 bytes less over SPI. So even with a small 8-bit controller that does not support DMA this is a usefull optimization for building display lists. -Using DMA has one caveat: we need to limit the transfer to <4k as we are writing to the FIFO of EVEs command co-processor. This is usually not an issue though as we can shorten the display list generation with previously generated snippets that we attach to the current list with CMD_APPEND. And when we use widgets like CMD_BUTTON or CMD_CLOCK the generated display list grows by a larger amount than what we need to put into the command-FIFO so we likely reach the 8k limit of the display-list before we hit the 4k limit of the command-FIFO. +Using DMA has one caveat: we need to limit the transfer to <4k as we are writing to the FIFO of EVEs command co-processor. This is usually not an issue though as we can shorten the display list generation with previously generated snippets that we attach to the current list with CMD_APPEND. And when we use widgets like CMD_BUTTON or CMD_CLOCK the generated display list grows by a larger amount than what we need to put into the command-FIFO so we likely reach the 8k limit of the display-list before we hit the 4k limit of the command-FIFO. It is possible to use two or more DMA transfers to the FIFO to build a single display list, either to get around the 4k limit of the FIFO or in order to distribute the workload better of the time necessary between two display renewals. You could for example do this, spread over three consecutive calls: @@ -160,9 +155,9 @@ EVE_cmd_dl_burst(CMD_SWAP); EVE_end_cmd_burst(); ```` -But you need to check with EVE_busy() before each of these blocks. -Maybe similar like this never compiled pseudo-code: - +But you need to check with EVE_busy() before each of these blocks. +Maybe similar like this never compiled pseudo-code: +```` thread_1ms_update_display() { static uint8_t state = 0; @@ -193,32 +188,39 @@ thread_1ms_update_display() } } } - +```` ## Remarks -The examples in the "example_projects" drawer are for use with AtmelStudio7. +The examples in the "example_projects" drawer are for use with AtmelStudio7. For Arduino I am using PlatformIO with Visual Studio Code. -The platform the code is compiled for is automatically detected thru compiler flags in EVE_target.h. - -The desired TFT is selected by adding a define for it to the build-environment, e.g. -DEVE_EVE3_50G -There is a list of available options at the start of EVE_config.h sorted by chipset. - -- Provide the pins used for Chip-Select and Power-Down in EVE_target.h for the target configuration you are using +The platform the code is compiled for is automatically detected thru compiler flags in EVE_target.h. +The desired TFT is selected by adding a define for it to the build-environment, for example: "-DEVE_EVE3_50G" +There is a list of available options at the start of EVE_config.h sorted by chipset. +The pins used for Chip-Select and Power-Down are configured in the EVE_target/EVE_target_xxxx.h files like this: +```` +#if !defined(EVE_CS) +#define EVE_CS 10 +#endif -When compiling for AVR you need to provide the clock it is running at in order to make the _delay_ms() calls used to initialize the TFT work with the intended timing. -For other plattforms you need to provide a DELAY_MS(ms) function that works at least between 1ms and 56ms and is not performing these delays shorter than requested. +#if !defined(EVE_PDN) +#define EVE_PDN 8 +#endif +```` +So you can override the default settings by adding your own defines to your build-environment, for example: "-DEVE_CS=9" +When compiling for AVR you need to provide the clock it is running at in order to make the _delay_ms() calls used to initialize the TFT work with the intended timing. +For other plattforms you need to provide a DELAY_MS(ms) function that works at least between 1ms and 56ms and is not performing these delays shorter than requested. The DELAY_MS(ms) is only used during initialization of the FT8xx/BT8xx. -See EVE_target.h for examples. +See EVE_target.h for examples. -In Addition you need to initialize the pins used for Chip-Select and Power-Down in your hardware correctly to output. -Plus setup the SPI accordingly, mode-0, 8-bit, MSB-first, not more than 11MHz for the init. -A couple of targets already have a function EVE_init_spi() in EVE_target.c. +In Addition you need to initialize the pins used for Chip-Select and Power-Down in your hardware correctly to output. +Plus setup the SPI accordingly, mode-0, 8-bit, MSB-first, not more than 11MHz for the init. +A couple of targets already have a function EVE_init_spi() in EVE_target.c or EVE_cpp_target.cpp. A word of "warning", you have to take a little care yourself to for example not send more than 4kB at once to the command co-processor -or to not generate display lists that are longer than 8kB. -My library does not check and re-check the command-FIFO on every step. +or to not generate display lists that are longer than 8kB. +My library does not check and re-check the command-FIFO on every step. This is optimized for speed, so the training wheels are off. ## Post questions here diff --git a/examples/EVE_Test_SAMC21_EVE2-50G/tft.c b/examples/EVE_Test_SAMC21_EVE2-50G/tft.c index 87f2027..41606fe 100644 --- a/examples/EVE_Test_SAMC21_EVE2-50G/tft.c +++ b/examples/EVE_Test_SAMC21_EVE2-50G/tft.c @@ -1,8 +1,8 @@ /* -@file tft.c / tft.cpp +@file tft.c @brief TFT handling functions for EVE_Test project -@version 1.20 -@date 2022-12-10 +@version 1.21 +@date 2023-01-08 @author Rudolph Riedel @section History @@ -19,12 +19,16 @@ - renamed PINK to MAGENTA 1.20 +- several minor changes + +1.21 - several minor changes */ #include "EmbeddedVideoEngine/EVE.h" #include "tft_data.h" +#include "tft.h" #define TEST_UTF8 0 @@ -47,16 +51,20 @@ #define MEM_LOGO 0x000f8000 /* start-address of logo, needs 6272 bytes of memory */ #define MEM_PIC1 0x000fa000 /* start of 100x100 pixel test image, ARGB565, needs 20000 bytes of memory */ - #define MEM_DL_STATIC (EVE_RAM_G_SIZE - 4096) /* 0xff000 - start-address of the static part of the display-list, upper 4k of gfx-mem */ -uint32_t num_dl_static; /* amount of bytes in the static part of our display-list */ +uint32_t num_dl_static = 0; /* amount of bytes in the static part of our display-list */ uint8_t tft_active = 0; -uint16_t num_profile_a, num_profile_b; +uint16_t num_profile_a = 0; +uint16_t num_profile_b = 0; #define LAYOUT_Y1 66 +void touch_calibrate(void); +void initStaticBackground(void); + + void touch_calibrate(void) { @@ -210,6 +218,8 @@ void touch_calibrate(void) /* write down the numbers on the screen and either place them in one of the pre-defined blocks above or make a new block */ #if 0 /* calibrate touch and displays values to screen */ + +#if 1 EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); @@ -218,15 +228,16 @@ void touch_calibrate(void) EVE_cmd_dl(DL_DISPLAY); EVE_cmd_dl(CMD_SWAP); EVE_execute_cmd(); +#else + EVE_calibrate_manual(EVE_HSIZE, EVE_VSIZE); +#endif - uint32_t touch_a, touch_b, touch_c, touch_d, touch_e, touch_f; - - touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); - touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); - touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); - touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); - touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); - touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); + uint32_t touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); + uint32_t touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); + uint32_t touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); + uint32_t touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); + uint32_t touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); + uint32_t touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); @@ -260,25 +271,25 @@ void touch_calibrate(void) void initStaticBackground(void) { EVE_cmd_dl(CMD_DLSTART); /* Start the display list */ - EVE_cmd_dl(TAG(0)); /* do not use the following objects for touch-detection */ + EVE_cmd_dl(DL_TAG); /* no tag = 0 - do not use the following objects for touch-detection */ - EVE_cmd_bgcolor(0x00c0c0c0); /* light grey */ + EVE_cmd_bgcolor(0x00c0c0c0UL); /* light grey */ - EVE_cmd_dl(VERTEX_FORMAT(0)); /* reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ + EVE_cmd_dl(DL_VERTEX_FORMAT); /* set to 0 - reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ /* draw a rectangle on top */ EVE_cmd_dl(DL_BEGIN | EVE_RECTS); - EVE_cmd_dl(LINE_WIDTH(1*16)); /* size is in 1/16 pixel */ + EVE_cmd_dl(LINE_WIDTH(1U*16U)); /* size is in 1/16 pixel */ EVE_color_rgb(BLUE_1); - EVE_cmd_dl(VERTEX2F(0,0)); + EVE_cmd_dl(DL_VERTEX2F); /* set to 0 / 0 */ EVE_cmd_dl(VERTEX2F(EVE_HSIZE,LAYOUT_Y1-2)); EVE_cmd_dl(DL_END); /* display the logo */ EVE_color_rgb(WHITE); EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS); - EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56, 56); + EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56U, 56U); EVE_cmd_dl(VERTEX2F(EVE_HSIZE - 58, 5)); EVE_cmd_dl(DL_END); @@ -341,7 +352,7 @@ void TFT_init(void) if (E_OK == EVE_init_flash()) { - EVE_cmd_flashread(MEM_FONT, 84928, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ + EVE_cmd_flashread(MEM_FONT, 61376, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ } #endif /* TEST_UTF8 */ @@ -353,7 +364,6 @@ void TFT_init(void) } } - uint16_t toggle_state = 0; uint16_t display_list_size = 0; @@ -394,11 +404,12 @@ void TFT_touch(void) } } break; + default: + break; } } } - /* dynamic portion of display-handling, meant to be called every 20ms or more */ @@ -406,7 +417,7 @@ void TFT_display(void) { static int32_t rotate = 0; - if(tft_active != 0) + if(tft_active != 0U) { #if defined (EVE_DMA) uint16_t cmd_fifo_size; @@ -418,18 +429,18 @@ void TFT_display(void) EVE_cmd_dl_burst(CMD_DLSTART); /* start the display list */ EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | WHITE); /* set the default clear color to white */ EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); /* clear the screen - this and the previous prevent artifacts between lists, Attributes are the color, stencil and tag buffers */ - EVE_cmd_dl_burst(TAG(0)); + EVE_cmd_dl_burst(DL_TAG); EVE_cmd_append_burst(MEM_DL_STATIC, num_dl_static); /* insert static part of display-list from copy in gfx-mem */ /* display a button */ EVE_color_rgb_burst(WHITE); - EVE_cmd_fgcolor_burst(0x00c0c0c0); /* some grey */ - EVE_cmd_dl_burst(TAG(10)); /* assign tag-value '10' to the button that follows */ + EVE_cmd_fgcolor_burst(0x00c0c0c0UL); /* some grey */ + EVE_cmd_dl_burst(DL_TAG+10U); /* assign tag-value '10' to the button that follows */ EVE_cmd_button_burst(20,20,80,30, 28, toggle_state,"Touch!"); - EVE_cmd_dl_burst(TAG(0)); /* no touch */ + EVE_cmd_dl_burst(DL_TAG); /* no touch */ /* display a picture and rotate it when the button on top is activated */ - EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100, 100); + EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100U, 100U); EVE_cmd_dl_burst(DL_SAVE_CONTEXT); EVE_cmd_dl_burst(CMD_LOADIDENTITY); @@ -438,7 +449,7 @@ void TFT_display(void) EVE_cmd_translate_burst(65536 * -70, 65536 * -50); /* shift back */ EVE_cmd_dl_burst(CMD_SETMATRIX); - if(toggle_state != 0) + if(toggle_state != 0U) { rotate += 256; } diff --git a/examples/EVE_Test_SAMC21_EVE2-50G/tft_data.c b/examples/EVE_Test_SAMC21_EVE2-50G/tft_data.c index b274913..2d47234 100644 --- a/examples/EVE_Test_SAMC21_EVE2-50G/tft_data.c +++ b/examples/EVE_Test_SAMC21_EVE2-50G/tft_data.c @@ -86,69 +86,57 @@ const /*__flash*/ uint8_t pic[3844] PROGMEM = /* Source File: Funtype.zlib unified.blob : 0 : 4096 -Funtype_24_ASTC.glyph : 4096 : 80832 -Funtype_24_ASTC.xfont : 84928 : 320 -z-lib compressed, unpacked size is 85248 +Funtype_24_ASTC.glyph : 4096 : 57280 +Funtype_24_ASTC.xfont : 61376 : 320 +z-lib compressed, unpacked size is 61952 The font is this one: https://fontlibrary.org/de/font/funtype -Converted with EAB using an ASCII map file to reduce the number of glyphs from 364 to 187. -This is only included for the purpose to demonstrate how to handle UTF-8 fonts with BT81x. +Converted with EAB 2.7.1 using an ASCII map file to reduce the number of glyphs to 119. +Glyphs are ASCII plus a select few from "Latin 1 Supplement" : ©«°±²³´µ¹»¼½¾ÄÖ×Üßäëö÷øü +This is only included to demonstrate how to handle UTF-8 fonts with BT81x. */ -const uint8_t flash[12753] PROGMEM = +const uint8_t flash[8199] PROGMEM = { - 0x78, 0x9c, 0xed, 0x7d, 0xd, 0x7c, 0x14, 0xd5, 0xb9, 0xfe, 0x33, 0x33, 0x9b, 0x99, 0x49, 0x76, 0x93, 0x5d, 0x64, 0x81, 0x5, 0x36, 0xd9, 0x55, 0xd7, 0x12, 0x5, 0xcc, 0x0, 0x11, 0x26, 0x12, 0xc8, 0x9, 0xac, 0xb9, 0x1, 0xb1, 0x5d, 0x34, 0x62, 0xd0, 0x2a, 0x83, 0xd5, 0x18, 0xb0, 0xf6, 0x6e, 0x20, 0x41, 0x82, 0xc1, 0x4c, 0xc4, 0x2b, 0xc1, 0x4a, 0x8d, 0x1f, 0xb7, 0x37, 0xfe, 0xb4, 0xed, 0xf6, 0xe3, 0x5f, 0x69, 0x6f, 0xed, 0x8d, 0xd4, 0xb6, 0xb4, 0xf5, 0x63, 0x48, 0xa8, 0x8d, 0x11, 0xed, 0xf6, 0xeb, 0x96, 0xeb, 0xad, 0xb7, 0xeb, 0xc5, 0x5b, 0xb1, 0xd5, 0x76, 0x10, 0x6c, 0x17, 0xd, 0xe4, 0x7f, 0xce, 0xcc, 0x6, 0x68, 0xe2, 0xed, 0xe2, 0xcd, 0x86, 0x60, 0xd9, 0x13, 0xd8, 0xdd, 0x77, 0xe6, 0xec, 0xce, 0x99, 0x67, 0xde, 0xf3, 0x7e, 0x9c, 0xf3, 0x9e, 0xf7, 0x44, 0x7f, 0xfb, 0xfe, 0x83, 0x45, 0x1c, 0x70, 0xe0, 0xeb, 0xa, 0x7c, 0x9c, 0x7, 0x40, 0xf2, 0x95, 0xa5, 0x8f, 0x5f, 0x34, 0x70, 0xa2, 0x10, 0x7d, 0xfb, 0xba, 0x1b, 0xd7, 0x5d, 0x37, 0xb7, 0x9e, 0x3c, 0x3c, 0xfb, 0xe0, 0x9c, 0xf7, 0xe7, 0x6c, 0x9d, 0xa3, 0xce, 0xbd, 0xb3, 0x42, 0x5f, 0x17, 0xea, 0xc0, 0x7f, 0x46, 0xd, 0xec, 0xd5, 0xf5, 0x69, 0x24, 0x36, 0x30, 0x48, 0x41, 0x1f, 0x67, 0x78, 0x75, 0xe1, 0x67, 0xf, 0x6c, 0x20, 0xba, 0xd0, 0x3d, 0xee, 0x27, 0x9f, 0x1f, 0xf0, 0x90, 0xaf, 0x54, 0xfc, 0x44, 0xdf, 0xba, 0x6e, 0x79, 0xe3, 0x5d, 0xb3, 0xeb, 0xc9, 0xf2, 0xd2, 0x6d, 0x15, 0xec, 0x37, 0xda, 0xe6, 0x36, 0xcd, 0x9d, 0x42, 0xaf, 0x36, 0xab, 0xca, 0x77, 0xfe, 0xdd, - 0x97, 0xee, 0xbf, 0x75, 0xfa, 0x17, 0xec, 0xab, 0x55, 0xad, 0xfb, 0xf1, 0xac, 0x13, 0x57, 0x72, 0xe2, 0xbb, 0x15, 0x7f, 0x58, 0xdf, 0xab, 0xe3, 0x27, 0x7d, 0x3, 0x9c, 0xfe, 0xf4, 0xb7, 0x84, 0x97, 0x67, 0xd1, 0x5f, 0xe2, 0xf5, 0xff, 0x68, 0xa8, 0x9b, 0xfb, 0x5, 0x7a, 0xf4, 0x17, 0xa9, 0xa3, 0xac, 0x8d, 0x75, 0x73, 0xbb, 0xe9, 0x91, 0x57, 0xe8, 0x11, 0xc7, 0x73, 0xc2, 0xcb, 0x75, 0x73, 0x83, 0x94, 0xfa, 0xdd, 0x0, 0xbf, 0xee, 0x87, 0xfa, 0xd3, 0xba, 0x42, 0x7e, 0x47, 0x8f, 0x57, 0x5b, 0xc7, 0xff, 0x44, 0x8f, 0x1f, 0xa3, 0xc7, 0x1b, 0x74, 0x81, 0xbe, 0x73, 0xfa, 0x67, 0xe8, 0xd1, 0x95, 0xeb, 0x38, 0x7d, 0x5, 0x7d, 0xff, 0xe5, 0xfa, 0xf8, 0xfa, 0x1b, 0xd7, 0x7d, 0x9f, 0x5e, 0xe3, 0xc6, 0x75, 0x41, 0x3d, 0xb1, 0xfe, 0xae, 0x75, 0x93, 0xe6, 0x76, 0xcd, 0x7d, 0xb6, 0x22, 0xe6, 0x5c, 0x79, 0x70, 0x6b, 0x6e, 0x33, 0x39, 0x58, 0xf2, 0xc0, 0x7d, 0x8e, 0x37, 0x6f, 0x9c, 0x37, 0xfb, 0x1e, 0xcf, 0x7b, 0x3, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xa7, 0xa5, 0x8, 0xa8, 0xe5, 0xae, 0xfd, 0x1b, 0xe5, 0xf6, 0xd, 0x35, 0xb3, 0x3d, 0xc7, 0x7e, 0xf3, 0xc3, 0xbf, 0x55, 0xa7, 0xff, 0xa8, 0xfd, 0x5b, 0xb0, 0xca, 0xc0, 0x40, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, - 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0xf4, 0xd9, 0x46, 0x4f, 0xc8, 0x7b, 0x28, 0x88, 0x22, 0xfa, 0x51, 0xcb, 0xb7, 0x8e, 0x8c, 0xf6, 0xf5, 0xbc, 0xb7, 0xa9, 0xa8, 0xc6, 0x4d, 0x9c, 0xc4, 0x3, 0xa4, 0x6a, 0x57, 0xd9, 0xdc, 0x3, 0xf7, 0x21, 0xf8, 0x3d, 0x33, 0x80, 0xd8, 0x54, 0x88, 0xe8, 0xe5, 0x46, 0xfb, 0xfa, 0xe2, 0xbd, 0xff, 0x15, 0xc4, 0x14, 0x9b, 0x42, 0xd2, 0x39, 0xe2, 0xfb, 0xad, 0xe6, 0xc0, 0xff, 0x9c, 0x3b, 0x8a, 0x0, 0x78, 0xeb, 0xc8, 0xda, 0x3, 0xb9, 0x70, 0x68, 0x10, 0x5c, 0xf3, 0xe, 0xeb, 0x82, 0x4b, 0xc9, 0x38, 0x9e, 0x1b, 0x80, 0x63, 0xff, 0xe3, 0xe, 0xfe, 0x9e, 0xe3, 0xca, 0xe4, 0x9d, 0xe7, 0x27, 0x50, 0x23, 0xe0, 0x73, 0x9c, 0x7d, 0xd2, 0xa1, 0xa3, 0x17, 0x6b, 0x8b, 0x39, 0x38, 0x52, 0xb7, 0x27, 0x14, 0x28, 0xf1, 0xa6, 0x88, 0xa0, 0xe7, 0x13, 0x47, 0x50, 0x4b, 0x76, 0x8b, 0x1e, 0xf0, 0x64, 0xac, 0xf9, 0x6d, 0x28, 0xbd, 0xc2, 0x43, 0x50, 0x54, 0xd4, 0xbd, 0x17, 0x9b, 0x50, 0xcb, 0x8e, 0xd4, 0xbc, 0x30, 0x7, 0x32, 0xc3, 0xd2, 0xd0, 0x57, 0x54, 0x44, 0xb9, 0x8c, 0xe3, 0xd7, 0xbc, 0x51, 0x46, 0xa3, 0x48, 0xaf, 0x40, 0xcb, 0x9c, 0xa4, 0xc0, 0x7f, 0xa6, 0xf3, 0x93, 0xf4, 0x38, 0x21, 0xec, 0x6c, 0xc2, 0x5c, 0xec, 0x94, 0x73, 0x48, 0x77, 0xa, 0x3e, 0xc4, 0xfa, 0x7f, 0xba, 0x2a, 0x7c, 0xfd, 0x2a, 0xdd, 0x4b, 0x10, 0x65, 0xb4, 0x91, 0xec, 0x1f, 0xf5, 0xfe, 0x91, 0xa5, 0x4f, 0x2f, 0x5d, - 0x23, 0xf0, 0xfd, 0x5c, 0x9f, 0xae, 0x46, 0xb8, 0x52, 0xa8, 0x31, 0xca, 0x7f, 0x82, 0xf8, 0x1e, 0x57, 0x4a, 0x24, 0xeb, 0x9f, 0x98, 0x79, 0x79, 0x28, 0xe7, 0x80, 0x1f, 0x78, 0x27, 0xc7, 0x19, 0x95, 0x8f, 0xee, 0x2f, 0xf1, 0x13, 0xe1, 0xd8, 0x81, 0x45, 0x90, 0x8b, 0xf0, 0x56, 0x90, 0x2f, 0xd6, 0x44, 0xd1, 0xd3, 0x3a, 0x6d, 0xc7, 0x56, 0xc4, 0xdc, 0x89, 0x80, 0x55, 0xdd, 0x81, 0xce, 0x66, 0xf3, 0xc2, 0x60, 0x2e, 0x1, 0xbf, 0x6e, 0xbd, 0xd6, 0xf1, 0xe2, 0x11, 0xc3, 0x28, 0xcd, 0x1, 0xb1, 0x7f, 0xb, 0x41, 0x8c, 0x42, 0xfb, 0xd2, 0xf6, 0x9f, 0x1d, 0xff, 0x6, 0x70, 0x7a, 0x20, 0x2f, 0xd5, 0x88, 0x15, 0xf5, 0x17, 0x23, 0xf1, 0x4a, 0xc0, 0x0, 0xca, 0x30, 0x7, 0x7, 0x46, 0x5d, 0x7e, 0x7b, 0x1b, 0x78, 0xe8, 0x39, 0xb6, 0xac, 0xd5, 0xda, 0xd4, 0x9e, 0xb, 0xd6, 0x5e, 0x8c, 0x46, 0x27, 0x3a, 0x80, 0xbb, 0x44, 0x44, 0x47, 0x2e, 0xcf, 0xd3, 0xd1, 0xe1, 0xef, 0xac, 0x87, 0xf6, 0xf0, 0x0, 0xb7, 0x94, 0x52, 0x7e, 0x5a, 0x46, 0xce, 0x7f, 0x38, 0xd6, 0x96, 0x24, 0x52, 0xa7, 0x5e, 0xb6, 0x93, 0x50, 0x41, 0xee, 0x7d, 0xe2, 0x53, 0x20, 0xc5, 0xa0, 0x78, 0xa2, 0x83, 0x24, 0x4b, 0x33, 0x7e, 0x3f, 0xa5, 0xf4, 0x7a, 0x1c, 0xf2, 0x22, 0x22, 0xe5, 0xee, 0x9e, 0xd9, 0x11, 0x8e, 0xf1, 0xa3, 0x64, 0xa, 0x1b, 0x90, 0x6f, 0x58, 0x2c, 0x45, 0xf9, 0x2b, 0xc9, 0x69, 0x55, 0xc9, 0x1e, 0x85, 0x88, 0x7d, 0x9a, 0xd4, 0x58, 0x9a, 0xc3, 0x1f, 0xe3, 0xba, 0xea, 0x64, 0x55, 0xd1, 0xcb, 0xa2, 0x62, 0x8f, 0x36, 0xd6, 0xfd, 0xf5, 0x3, 0xf4, 0x6f, 0x4a, - 0x5e, 0xdf, 0xe5, 0xee, 0x76, 0x27, 0xb8, 0xe6, 0x5d, 0xd, 0x40, 0x71, 0xb1, 0x75, 0x64, 0x5f, 0x34, 0xd2, 0x31, 0xd6, 0xed, 0x3b, 0xd3, 0x69, 0xef, 0x4c, 0xf, 0xf2, 0x70, 0x93, 0x28, 0xf5, 0xe4, 0x75, 0x33, 0xe, 0x28, 0xcd, 0x11, 0x4d, 0x6e, 0xdd, 0xea, 0x69, 0x50, 0xbb, 0xb4, 0xd6, 0x1b, 0xca, 0xd2, 0xf2, 0xdf, 0x6b, 0xf, 0xfc, 0x80, 0xbe, 0x13, 0x17, 0x93, 0x58, 0xa2, 0xc8, 0xa7, 0xad, 0x5f, 0xcd, 0x19, 0xdd, 0xcf, 0xc2, 0x44, 0x42, 0xe8, 0x16, 0x2a, 0x9d, 0x86, 0x50, 0xf3, 0xc2, 0x34, 0x6a, 0xf, 0x5a, 0x16, 0x8c, 0x83, 0xa0, 0xb, 0xd7, 0x21, 0x65, 0x48, 0x51, 0x75, 0xfb, 0xea, 0x40, 0xeb, 0x57, 0x28, 0x3f, 0xbe, 0xc5, 0x21, 0xb2, 0xf5, 0x39, 0xa8, 0x3e, 0x5d, 0xdc, 0x13, 0xa9, 0xe6, 0xc8, 0xf3, 0x38, 0x8c, 0x85, 0x70, 0x5b, 0x7f, 0x25, 0x47, 0xe5, 0xcf, 0x41, 0xd7, 0xff, 0x64, 0xcb, 0x4b, 0x4, 0x4f, 0xbb, 0x7d, 0xe3, 0x68, 0x72, 0x7, 0xb5, 0xfa, 0x37, 0xbf, 0x84, 0x80, 0x7c, 0x97, 0xf2, 0x53, 0x6a, 0xff, 0xd5, 0xf3, 0x8, 0x11, 0x43, 0x70, 0x97, 0x9b, 0x86, 0xe0, 0xc8, 0xbc, 0x7c, 0xe, 0xfd, 0x73, 0x63, 0xe2, 0x1, 0xa9, 0x1d, 0x97, 0x32, 0x32, 0xda, 0x32, 0x3b, 0xad, 0xbc, 0x9a, 0x30, 0xb, 0x61, 0x3d, 0x67, 0x91, 0x45, 0x26, 0x12, 0xc6, 0x58, 0xf3, 0xdb, 0x30, 0xfc, 0x9e, 0x59, 0x48, 0xf5, 0x49, 0xe4, 0x2, 0xf1, 0xa9, 0xcb, 0x2d, 0x26, 0x98, 0x17, 0x59, 0x4, 0x1f, 0x64, 0x52, 0xb1, 0x3a, 0xc1, 0x25, 0x42, 0x4b, 0xce, 0xc9, 0x38, 0xbf, 0xb3, 0xcb, 0xe4, 0x7a, 0x3c, 0x44, 0xfc, 0xef, 0x48, 0xae, 0xaa, - 0xaa, 0x69, 0xe5, 0x65, 0xe, 0x95, 0x97, 0xfc, 0x72, 0xf4, 0x68, 0xcc, 0x1e, 0x28, 0xeb, 0x1b, 0x6b, 0xbc, 0x86, 0xd2, 0x4b, 0x3b, 0x14, 0xfa, 0x1e, 0x16, 0x9e, 0xcb, 0xb1, 0x8f, 0xcc, 0xeb, 0x2d, 0x0, 0x22, 0xfc, 0x7b, 0x3, 0x3, 0xfb, 0x7e, 0x5d, 0x1b, 0x5a, 0xf2, 0x60, 0xa6, 0xaf, 0x77, 0xe9, 0x81, 0xff, 0x47, 0xdf, 0x83, 0x5, 0x36, 0x8d, 0xfa, 0x74, 0xf5, 0xf, 0x3e, 0xb2, 0x1e, 0x91, 0x20, 0x38, 0xd, 0xd0, 0xc5, 0xbd, 0xda, 0x9a, 0xb1, 0xc6, 0x2b, 0x4b, 0x67, 0x96, 0x1e, 0xae, 0x3f, 0xf2, 0xfe, 0xc8, 0x1d, 0xd2, 0x16, 0xec, 0x18, 0x35, 0xfd, 0x41, 0x52, 0xfa, 0xc3, 0x10, 0xc8, 0x29, 0xe8, 0x8f, 0xf0, 0x1d, 0x12, 0x92, 0x31, 0xc7, 0x64, 0x27, 0xc4, 0x97, 0xf7, 0xfd, 0xe6, 0xf9, 0xe7, 0xc7, 0x5a, 0x7f, 0x50, 0xfb, 0x4b, 0x5, 0x6, 0xad, 0x67, 0xe0, 0xcb, 0xce, 0x42, 0x98, 0x12, 0x83, 0xe0, 0xc6, 0x37, 0xae, 0xac, 0xde, 0xc9, 0x85, 0xbf, 0x3b, 0xb, 0x1b, 0x3e, 0x33, 0xe8, 0xc1, 0x7b, 0x4c, 0x5a, 0xff, 0x62, 0xfa, 0x61, 0xcf, 0x60, 0xfd, 0xb1, 0x7e, 0xde, 0x67, 0x1a, 0x6d, 0xc9, 0x67, 0x45, 0x17, 0xbb, 0x1f, 0x89, 0x56, 0x31, 0x18, 0x6b, 0xb6, 0x5d, 0x8d, 0xa5, 0xba, 0x43, 0x81, 0xaa, 0x89, 0x3e, 0xe4, 0x64, 0x7e, 0xfc, 0xa0, 0xa3, 0x51, 0x97, 0x7, 0x47, 0x58, 0xd4, 0x64, 0x6f, 0xba, 0xfa, 0xf2, 0xb6, 0xc9, 0x8, 0xf2, 0x83, 0xcf, 0x3b, 0xdf, 0x1c, 0x6b, 0xbc, 0x86, 0xd2, 0xf3, 0x77, 0x70, 0xa0, 0x1a, 0x24, 0xb0, 0x34, 0xd5, 0xc2, 0x51, 0xd7, 0x57, 0xd1, 0x69, 0x68, 0xaf, 0xa3, 0x1f, 0x79, 0x7e, 0xc7, 0xc0, - 0xc5, 0x3c, 0xff, 0xdf, 0xdb, 0x1c, 0xd4, 0xeb, 0xe8, 0xa7, 0x1d, 0xd8, 0x18, 0x38, 0x58, 0xf1, 0x30, 0x1f, 0xde, 0x76, 0x37, 0x73, 0x43, 0xec, 0xfe, 0x98, 0x30, 0xcd, 0xa6, 0x78, 0x8d, 0x96, 0x47, 0x64, 0x8b, 0x9c, 0x15, 0x51, 0xcf, 0x38, 0xfe, 0xf7, 0xbe, 0xb4, 0x8, 0x6a, 0xf0, 0xca, 0x8, 0x81, 0xc8, 0x47, 0xeb, 0x24, 0x84, 0xf, 0x5d, 0x43, 0x9f, 0x37, 0xbc, 0xad, 0x54, 0xdf, 0x19, 0x7a, 0xe6, 0xf1, 0xac, 0xc9, 0x9d, 0x45, 0xfd, 0x1b, 0x8b, 0x58, 0x57, 0x55, 0xa1, 0xbb, 0xd3, 0xd5, 0x5f, 0xb, 0xe6, 0xef, 0xa5, 0x8a, 0xcb, 0x73, 0xc6, 0xe1, 0xc7, 0xfc, 0xcf, 0x36, 0x13, 0x1c, 0x35, 0x11, 0x4c, 0xf7, 0x33, 0x40, 0xb3, 0xd2, 0x4, 0x17, 0x87, 0x1b, 0x34, 0x9d, 0x44, 0x28, 0xa8, 0x19, 0x6f, 0xaf, 0x77, 0xe6, 0x52, 0xc6, 0x5f, 0x56, 0xe9, 0x8a, 0xdc, 0xbf, 0x27, 0x6d, 0xfd, 0xe9, 0x8d, 0xa8, 0xd5, 0xbd, 0x36, 0x3, 0xf2, 0x9e, 0x31, 0xf7, 0x7f, 0x2f, 0xdb, 0x45, 0xed, 0x65, 0x17, 0x62, 0x66, 0x20, 0x96, 0xcb, 0x8c, 0x30, 0x79, 0xdb, 0x74, 0x78, 0xa8, 0x6, 0x64, 0xa5, 0xdc, 0x5c, 0xe4, 0x1c, 0xeb, 0xf6, 0x7d, 0xd4, 0xe8, 0xb0, 0x80, 0xb5, 0x56, 0xff, 0x48, 0x75, 0x92, 0xf0, 0x3, 0x54, 0x1a, 0xc6, 0xbe, 0x1b, 0x80, 0xa3, 0x8d, 0x30, 0x3a, 0xdd, 0xf7, 0x43, 0xf, 0xd1, 0xfa, 0xfa, 0x5b, 0x81, 0x98, 0xac, 0xb8, 0x4e, 0xa5, 0x3e, 0x9b, 0x2f, 0x48, 0xf2, 0x49, 0x3c, 0x8d, 0x22, 0x6a, 0x7e, 0x38, 0x11, 0x7e, 0x77, 0x72, 0x2c, 0x77, 0x35, 0xb7, 0x52, 0x51, 0x54, 0x55, 0x99, 0x1a, 0x28, 0x28, 0x7d, 0x71, 0x22, 0x5c, 0x26, - 0x6b, 0x8c, 0x41, 0xda, 0x92, 0x3, 0x2f, 0x36, 0xc5, 0x57, 0xe0, 0xde, 0x7a, 0xe0, 0x3b, 0x11, 0xb1, 0x9b, 0x50, 0xbf, 0xe8, 0x66, 0xdf, 0x2, 0x72, 0x31, 0xda, 0xb9, 0xef, 0x5a, 0xed, 0xd5, 0x8d, 0x70, 0xe, 0xd6, 0x61, 0xb0, 0xe8, 0xe9, 0xaf, 0x2f, 0x7e, 0xf3, 0x7b, 0xac, 0xa2, 0x3f, 0x1c, 0x6, 0x9, 0x87, 0xf, 0x8e, 0xd8, 0xde, 0xa9, 0x6b, 0xa7, 0x3c, 0x28, 0x1b, 0x42, 0x92, 0x6b, 0x5, 0x9b, 0x41, 0xa2, 0xfa, 0xf8, 0xf7, 0x9c, 0x42, 0xc4, 0xee, 0x48, 0xb8, 0xa2, 0x71, 0x14, 0xc6, 0x27, 0xbd, 0x2f, 0xcd, 0x87, 0x1e, 0x64, 0x37, 0x5f, 0x3e, 0x5b, 0xe3, 0xd4, 0xee, 0xa1, 0xe7, 0xe7, 0x15, 0xd7, 0x21, 0x41, 0x4d, 0xc0, 0x63, 0x2, 0xde, 0x19, 0x8f, 0xfe, 0xf1, 0xcd, 0xd1, 0xeb, 0xf1, 0xc5, 0x1b, 0x51, 0x53, 0x5c, 0x2c, 0xd7, 0x47, 0x15, 0x43, 0xc9, 0x74, 0x7b, 0x26, 0xdc, 0xcb, 0xf0, 0x4c, 0xd8, 0x33, 0x4a, 0xa4, 0x23, 0xe3, 0xbf, 0x9f, 0x69, 0x3a, 0xb4, 0x79, 0x25, 0x76, 0x41, 0x9c, 0xd2, 0xce, 0xb8, 0xe0, 0x60, 0xd4, 0x37, 0xd6, 0xed, 0xf9, 0xa8, 0xd3, 0xde, 0xfc, 0x5c, 0xda, 0x2b, 0x23, 0xab, 0x7f, 0x20, 0xa, 0x3e, 0x76, 0x64, 0xac, 0xdb, 0xf3, 0x61, 0xe9, 0xd2, 0x1c, 0xc7, 0xb1, 0x36, 0x71, 0x8f, 0x86, 0x47, 0x6b, 0xef, 0x91, 0x4e, 0x43, 0xfb, 0xeb, 0x64, 0x6a, 0xbf, 0x58, 0xda, 0x74, 0x80, 0x1b, 0xe0, 0x67, 0xa6, 0xbd, 0x5e, 0x95, 0xbc, 0x97, 0xbe, 0xeb, 0x1, 0x8b, 0x4c, 0x20, 0x3e, 0xd6, 0x78, 0xd, 0xc7, 0x2f, 0xeb, 0x7f, 0x8c, 0x84, 0x3e, 0xb8, 0xb2, 0x1, 0xb9, 0x3a, 0xbd, 0x9f, 0x6, 0xc3, 0xf2, 0xdb, - 0x97, 0x6c, 0xac, 0x2, 0x29, 0xd2, 0x27, 0x7, 0xe9, 0xa1, 0xfb, 0x90, 0x79, 0x7e, 0x64, 0xfc, 0xce, 0x79, 0x88, 0x58, 0xf6, 0x62, 0x17, 0x11, 0x4b, 0xf5, 0xb4, 0xe3, 0x7f, 0xde, 0x17, 0xf3, 0xa0, 0xf3, 0x1e, 0x78, 0x22, 0x91, 0xda, 0x88, 0xac, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xe5, 0xf9, 0xa, 0xa8, 0xc8, 0x19, 0xa7, 0x6e, 0xd9, 0x9d, 0x38, 0x44, 0x25, 0x50, 0xf8, 0x90, 0x23, 0xf1, 0x3b, 0xf7, 0x56, 0x6e, 0xaa, 0xc4, 0x59, 0x16, 0x42, 0xba, 0xef, 0x37, 0xfc, 0x40, 0x82, 0xc6, 0x97, 0xb2, 0x11, 0x6, 0x51, 0xe8, 0xe, 0xa6, 0xad, 0x4f, 0xed, 0xf5, 0xd4, 0x7c, 0x4b, 0xb1, 0xe9, 0x2c, 0x89, 0xf, 0xab, 0x1f, 0xfe, 0xd1, 0x55, 0xa8, 0xbf, 0x48, 0xb0, 0x27, 0xcc, 0x81, 0xd5, 0x35, 0x82, 0xf8, 0xe7, 0x4a, 0x52, 0xd0, 0xa7, 0x51, 0x8b, 0xe0, 0xdc, 0xb2, 0xeb, 0x10, 0x7e, 0x3f, 0x17, 0xdb, 0xc8, 0xe2, 0x71, 0xca, 0xc0, 0x7d, 0x7b, 0xb5, 0xa8, 0x2, 0xc7, 0x33, 0x57, 0x11, 0x8f, 0x83, 0x23, 0x9c, 0xc8, 0xaa, 0x57, 0x6e, 0x1a, 0x1b, 0xfc, 0x8c, 0xdc, 0xe4, 0x96, 0xdd, 0xaf, 0x33, 0xfc, 0x6a, 0xbe, 0xc1, 0x19, 0xd5, 0x7a, 0x14, 0x62, 0xd0, 0xae, 0x71, 0x2a, 0xf8, 0x2d, 0x45, 0x38, 0x85, 0x5f, 0x7a, 0xff, 0x8a, 0xe2, 0xf7, 0xbc, 0xfd, 0xf9, 0x87, 0xa6, 0xe0, 0x1e, 0x8e, 0x9f, 0x18, 0x7d, 0x91, 0xbe, 0x87, 0xa6, 0xda, 0x34, 0x54, 0x8a, 0xdf, 0x31, 0x8e, 0x88, 0x7b, 0x2d, 0xfc, 0x9c, 0xd7, 0x61, 0xed, 0x8e, 0x12, 0xdc, 0xbd, 0xbd, 0xb8, 0xd8, 0x63, 0xf0, 0x47, 0x4d, 0x9e, 0xc5, 0x4b, 0x4c, 0x1c, 0xf4, 0x67, 0xd6, 0x6d, 0x6c, 0xe5, - 0x9c, 0xd4, 0x1e, 0xdc, 0x88, 0xc1, 0xa2, 0xeb, 0xa3, 0x2e, 0xcf, 0x87, 0xfa, 0x6f, 0xde, 0xfc, 0x8b, 0x91, 0x13, 0x9c, 0xd3, 0xa5, 0x11, 0x5d, 0x14, 0xf6, 0xa4, 0xc7, 0x6f, 0xad, 0x3c, 0x1, 0x8e, 0x20, 0x78, 0x87, 0x6a, 0xea, 0xc2, 0x29, 0xe0, 0x9d, 0xce, 0x7f, 0x63, 0xfc, 0x57, 0x1b, 0x12, 0x10, 0xb3, 0xf, 0xac, 0x66, 0xf6, 0xb6, 0xf0, 0x34, 0x57, 0x48, 0xa4, 0x38, 0x97, 0x4c, 0x2c, 0x8c, 0x87, 0xf, 0x5d, 0x11, 0x3c, 0x3a, 0x69, 0x5f, 0xce, 0x86, 0x63, 0xed, 0x46, 0x42, 0xa3, 0xfc, 0xb7, 0xe0, 0x22, 0x8c, 0xef, 0xe5, 0x8a, 0xd9, 0xc, 0x32, 0xb0, 0x38, 0x79, 0xba, 0xf9, 0x8f, 0x3e, 0x2f, 0x7, 0xeb, 0xa8, 0x83, 0x3e, 0x3a, 0xf5, 0xd7, 0xff, 0x8b, 0x7e, 0x16, 0x6, 0x1f, 0x61, 0xc6, 0xf5, 0x47, 0x74, 0x15, 0xda, 0xa9, 0xa8, 0x15, 0x45, 0xaa, 0xad, 0x54, 0x55, 0x2c, 0x9d, 0x3e, 0x15, 0x2d, 0xc1, 0x75, 0xe8, 0x89, 0x40, 0xed, 0x6b, 0x5c, 0x81, 0xb5, 0xf2, 0x1a, 0x14, 0xcb, 0xe6, 0x21, 0x7b, 0x10, 0x35, 0x48, 0xc2, 0x65, 0xb3, 0x60, 0xf0, 0x54, 0x1c, 0x6b, 0x6c, 0x34, 0x43, 0x1f, 0xf1, 0xfc, 0xd1, 0x84, 0x6f, 0x7e, 0x83, 0xbe, 0xc7, 0x2c, 0x7d, 0x1e, 0x7b, 0x7, 0x98, 0x78, 0xef, 0x5c, 0x6a, 0xf, 0xfc, 0x32, 0x75, 0xfb, 0x7f, 0xb8, 0x3b, 0xdd, 0xf7, 0xe7, 0xb7, 0xaf, 0x40, 0xc4, 0x41, 0x58, 0xdb, 0xba, 0x12, 0xf4, 0x3e, 0xaa, 0x3a, 0x72, 0x74, 0x99, 0x72, 0x4e, 0xb9, 0xe5, 0x4d, 0xb1, 0xf8, 0xd, 0xfe, 0x2d, 0xae, 0x16, 0xdd, 0x44, 0xea, 0xe4, 0xe6, 0x10, 0x15, 0xe1, 0xed, 0xbf, 0xd2, 0xcf, 0x2d, 0x8f, 0x79, 0xa1, - 0x44, 0x13, 0x99, 0x18, 0x8f, 0xa9, 0xe6, 0x8, 0xaf, 0xbb, 0x89, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0xba, 0x6a, 0x58, 0x45, 0xbc, 0x16, 0x5e, 0x4a, 0x53, 0x2d, 0x35, 0x6, 0x60, 0xb9, 0x82, 0x6, 0x11, 0x3b, 0xc1, 0xe2, 0xb5, 0x96, 0x17, 0xe0, 0xa8, 0xee, 0x79, 0xd6, 0x3f, 0x7, 0x51, 0x7e, 0xac, 0xf5, 0x85, 0xe3, 0xd0, 0xb7, 0xe8, 0x7b, 0x22, 0x10, 0xcb, 0x85, 0xc2, 0xac, 0x88, 0x74, 0xf8, 0x79, 0xdf, 0xbe, 0x92, 0xea, 0x67, 0xc6, 0x9, 0xa4, 0x6a, 0xab, 0x9a, 0x7e, 0x7c, 0xfe, 0xef, 0x1d, 0xbf, 0xd0, 0xf4, 0xb7, 0x83, 0x89, 0x0, 0xa1, 0x50, 0xe9, 0xaf, 0x29, 0x72, 0x7a, 0xfc, 0xc2, 0xb7, 0xfd, 0x53, 0x42, 0xf7, 0xc7, 0x72, 0xe0, 0xf2, 0x97, 0x27, 0xcd, 0xc4, 0x59, 0x8f, 0x5f, 0xcd, 0x9b, 0x1c, 0xf5, 0xdf, 0x81, 0x1d, 0x70, 0xae, 0xd3, 0x7f, 0x92, 0x1e, 0x3f, 0x6a, 0xaf, 0xfd, 0x99, 0x9, 0x87, 0x17, 0x1b, 0x37, 0x29, 0x22, 0x97, 0xed, 0xbf, 0xe1, 0x71, 0xa, 0x82, 0x37, 0xef, 0x2f, 0x4, 0x1c, 0xa2, 0x5b, 0x4a, 0x8f, 0x5f, 0xa8, 0x89, 0x99, 0x3, 0x87, 0xb9, 0x8f, 0xc3, 0xb5, 0xb5, 0x7, 0x59, 0xfc, 0x4a, 0xc7, 0x51, 0x5b, 0xcd, 0x7c, 0x5e, 0x82, 0xa4, 0x40, 0xa2, 0xf6, 0x5a, 0x7a, 0xfe, 0x13, 0xd9, 0xf8, 0x79, 0x4f, 0x63, 0x84, 0x7d, 0x23, 0x59, 0x7b, 0xb6, 0xe3, 0x37, 0x4c, 0x1e, 0xbe, 0xeb, 0x20, 0xff, 0x7e, 0xcb, 0x77, 0xb8, 0xe0, 0x16, 0x12, 0x64, 0x47, 0x6a, 0x2e, 0x3c, 0x17, 0xd5, 0x70, 0xec, 0x8a, 0xec, 0x7e, 0xa5, 0x75, 0x20, 0x3f, 0x3d, 0xbf, 0x5d, 0x1d, 0xaf, 0x9, 0x5e, - 0x84, 0xa8, 0xe5, 0xd2, 0x56, 0xd4, 0x4a, 0x42, 0x7a, 0xfc, 0xc0, 0xa3, 0x84, 0x48, 0x3, 0xc2, 0x7b, 0x78, 0x1a, 0x85, 0x10, 0xcf, 0xe1, 0xd8, 0xb0, 0xe7, 0x79, 0x80, 0x46, 0x9d, 0xdc, 0x83, 0xb9, 0x47, 0x6b, 0x6f, 0x21, 0xb9, 0x10, 0x7d, 0x7, 0x58, 0xf5, 0xa4, 0xea, 0x64, 0xf8, 0x71, 0x12, 0xe, 0xb4, 0x69, 0xb, 0x7f, 0x3b, 0x1b, 0x9, 0xac, 0xad, 0x5e, 0x96, 0x1a, 0x7f, 0x0, 0xba, 0xdd, 0x1, 0xac, 0x54, 0x2f, 0xd2, 0x72, 0x89, 0x23, 0xaa, 0x5b, 0x16, 0xc8, 0xd5, 0x2f, 0x9f, 0x76, 0x79, 0x28, 0xf0, 0x76, 0xbc, 0x69, 0x44, 0xb4, 0xfc, 0x2a, 0x39, 0x87, 0x2c, 0xb6, 0xcf, 0xe1, 0xf5, 0x81, 0xc3, 0x52, 0xc6, 0xed, 0xbf, 0x6a, 0x4e, 0x5f, 0xf4, 0xc, 0x92, 0x88, 0xb, 0x86, 0x60, 0x38, 0xd, 0x21, 0xfc, 0xc4, 0xaf, 0xa9, 0xf7, 0xa3, 0x4, 0xec, 0xf3, 0x82, 0x40, 0xaf, 0x2f, 0xc4, 0x85, 0xd6, 0x2e, 0x38, 0x13, 0xe4, 0xb9, 0x81, 0xe7, 0x12, 0xa5, 0x2, 0xd8, 0x26, 0x4b, 0x29, 0xc4, 0x86, 0x3f, 0xcf, 0x26, 0x6a, 0xc2, 0x1d, 0x9f, 0x5f, 0xa2, 0x4a, 0x71, 0xb4, 0xf1, 0xba, 0xb6, 0x7d, 0x45, 0x70, 0x57, 0x9b, 0x45, 0x38, 0x94, 0x1e, 0x1e, 0x35, 0x6f, 0x86, 0x90, 0xa7, 0x57, 0x8a, 0x8a, 0x5e, 0xb6, 0x8e, 0xb5, 0xc3, 0xf1, 0xab, 0x1a, 0xf2, 0xef, 0xab, 0x50, 0x11, 0xcc, 0xa5, 0x1d, 0xe8, 0x59, 0x1, 0xe1, 0xa6, 0xeb, 0x49, 0xa7, 0xc1, 0x85, 0x10, 0xcd, 0x8c, 0xfd, 0x17, 0x3e, 0x52, 0x4, 0xff, 0xb6, 0x4a, 0xbd, 0x6d, 0xa, 0x8b, 0xfe, 0x2c, 0xf4, 0x9f, 0x34, 0x1f, 0xd7, 0x49, 0x92, 0xf5, 0xe2, 0x52, 0xdf, 0x1c, 0xea, 0xb, - 0x3a, 0x2f, 0xb2, 0x8e, 0xc4, 0x8f, 0x5d, 0xe1, 0x9d, 0x5e, 0x89, 0x7d, 0x82, 0x6a, 0xe3, 0x77, 0x77, 0xc5, 0xce, 0xb1, 0xee, 0xaf, 0x4b, 0xcd, 0x19, 0x4c, 0xde, 0x14, 0xc3, 0x2d, 0x58, 0x26, 0x7e, 0x3a, 0xfc, 0x9a, 0x3b, 0x27, 0xd0, 0xca, 0xb2, 0x7, 0x3a, 0x89, 0x74, 0x2a, 0xbd, 0x67, 0x3d, 0x7e, 0xa5, 0xff, 0xea, 0x47, 0xa9, 0xc9, 0xe9, 0x62, 0x52, 0x21, 0xa7, 0x82, 0x5f, 0xcd, 0x9a, 0x1c, 0x6a, 0x3f, 0xf3, 0x50, 0x70, 0x44, 0xaf, 0x20, 0x6a, 0xf0, 0x6c, 0xc7, 0xcf, 0xfb, 0x4, 0xf, 0x4f, 0x31, 0x47, 0xee, 0x51, 0xcb, 0xfa, 0x4e, 0x5, 0xbf, 0xd0, 0xe6, 0x9, 0x58, 0x10, 0xc, 0x53, 0x2a, 0x33, 0xf6, 0xcb, 0x47, 0x1d, 0xbf, 0x1a, 0x1, 0x7f, 0xe4, 0xd0, 0x8b, 0x24, 0x51, 0x23, 0xa2, 0xf, 0x8, 0xbd, 0xfd, 0x63, 0x68, 0xfb, 0x12, 0x1, 0x88, 0x5b, 0x76, 0x9b, 0xcd, 0xd4, 0x1e, 0x8c, 0xd7, 0xc0, 0x67, 0x57, 0x36, 0xa8, 0xba, 0x4b, 0x50, 0x7b, 0x63, 0x1a, 0xfd, 0x4c, 0x90, 0x2a, 0x23, 0xbd, 0xfe, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x82, 0xe1, 0x6, 0x7d, 0xd, 0x3f, 0xca, 0xd6, 0xcf, 0xc0, 0x71, 0x39, 0x7b, 0xd, 0x4, 0xa, 0xec, 0xf1, 0xfa, 0x44, 0x91, 0x55, 0xfd, 0x4c, 0x1c, 0xaf, 0x9f, 0x7e, 0x11, 0x5a, 0x22, 0x40, 0x59, 0x69, 0x2d, 0x11, 0xf9, 0xf4, 0xf8, 0xcd, 0x2f, 0x6e, 0x46, 0x9c, 0xb7, 0xe1, 0xf3, 0xfb, 0xa2, 0x67, 0x3d, 0x7e, 0xe1, 0x47, 0x35, 0xda, 0x5f, 0x85, 0xc9, 0x26, 0xb4, 0x86, 0xf9, 0x81, 0x82, 0xb4, 0xf8, 0x79, 0x2f, 0xbf, 0x3, 0x41, 0xe8, 0xe, 0x74, 0x58, 0x70, 0x9f, 0xf5, 0xf8, 0x35, - 0xc5, 0x2f, 0x81, 0x8f, 0xc3, 0x79, 0xdc, 0xa4, 0xae, 0xb0, 0xea, 0x49, 0xcf, 0x7f, 0x6c, 0xfe, 0xda, 0x87, 0x5c, 0xf, 0x88, 0x16, 0x89, 0x64, 0xf1, 0x1b, 0x46, 0x1f, 0x5c, 0x99, 0x1a, 0xff, 0xde, 0xab, 0xa1, 0x77, 0xdd, 0x6a, 0x49, 0xce, 0xc1, 0x22, 0xc9, 0x44, 0xa1, 0xe1, 0x36, 0xa5, 0xc3, 0x10, 0xd3, 0xe2, 0x15, 0xe6, 0xb0, 0xd1, 0xb6, 0x5f, 0x75, 0xeb, 0x35, 0xbd, 0xfd, 0xb4, 0x39, 0x48, 0xf9, 0x9f, 0x97, 0x69, 0xa9, 0x8, 0xc8, 0x8e, 0xb5, 0xc5, 0x4b, 0x91, 0xa, 0xbf, 0xc1, 0x63, 0xef, 0x48, 0x6e, 0xef, 0xf6, 0x4f, 0xc2, 0x69, 0xa4, 0x7e, 0x71, 0x7f, 0x45, 0x59, 0xf8, 0xb, 0xd7, 0x91, 0xcf, 0x8b, 0xc5, 0x71, 0x49, 0xe0, 0xb8, 0x83, 0x7, 0x39, 0xae, 0x4e, 0xe6, 0xa1, 0xe6, 0x5a, 0x4f, 0xd7, 0x64, 0x61, 0xac, 0xa7, 0xbd, 0xff, 0xe6, 0xff, 0x1b, 0x8c, 0xe9, 0x41, 0xfa, 0x7c, 0x45, 0x49, 0x12, 0xd8, 0x7c, 0xa5, 0x80, 0x8e, 0xe2, 0x83, 0xea, 0xed, 0x91, 0xb2, 0x28, 0xb, 0x4b, 0x2d, 0x9d, 0x1e, 0x40, 0x4b, 0xb4, 0xbb, 0x91, 0x48, 0x6, 0x61, 0x3e, 0x19, 0xf3, 0x7, 0xe8, 0x17, 0x5b, 0xcc, 0x8a, 0x7f, 0x8, 0x24, 0xe8, 0x87, 0xdc, 0xbc, 0x47, 0xd9, 0xf, 0x4d, 0x64, 0x2f, 0xb2, 0x8b, 0x47, 0x93, 0x79, 0xd, 0x14, 0xce, 0xcf, 0xba, 0x36, 0x55, 0x47, 0xe9, 0xfd, 0x95, 0xf0, 0x6d, 0xdf, 0x86, 0xde, 0x7b, 0x34, 0xe0, 0xf7, 0x59, 0x65, 0xb2, 0xf7, 0xb6, 0x8b, 0x61, 0x4, 0xed, 0xb3, 0x1a, 0x51, 0x93, 0xe1, 0x97, 0x1e, 0xc7, 0x9a, 0x80, 0x6e, 0x4f, 0x70, 0x72, 0x9c, 0xc0, 0xfc, 0xbd, 0xe7, 0xf0, 0x17, 0x7e, 0xbf, 0xf3, - 0xb3, 0x25, 0xce, 0x67, 0x9d, 0xc9, 0x4b, 0x78, 0x24, 0x18, 0xba, 0xec, 0x2b, 0x39, 0x14, 0xe2, 0x15, 0x72, 0x1, 0x82, 0xba, 0xcd, 0xae, 0xb4, 0xa3, 0x8c, 0xd8, 0xbe, 0xfa, 0xf0, 0xfa, 0x98, 0x4f, 0x9e, 0xec, 0xbf, 0x6d, 0x62, 0x83, 0x2d, 0x3a, 0xf6, 0x6, 0xe7, 0x14, 0x74, 0x96, 0xbc, 0x91, 0x83, 0xf0, 0x82, 0x29, 0x7a, 0x5e, 0xe9, 0x52, 0x1d, 0x2e, 0xbf, 0x1a, 0x35, 0x8d, 0xe1, 0xf3, 0x65, 0xef, 0xde, 0xe, 0x8d, 0x5b, 0x26, 0x31, 0xef, 0x44, 0x3f, 0x5, 0xfe, 0x1b, 0xea, 0xbf, 0xd, 0x8d, 0x7f, 0xbe, 0xbc, 0x98, 0x67, 0xf1, 0x73, 0x56, 0x79, 0xf2, 0x81, 0x87, 0x77, 0x87, 0x73, 0xac, 0xb5, 0x64, 0xc7, 0xe7, 0x17, 0xd8, 0xf8, 0x83, 0x15, 0xff, 0x5c, 0x42, 0xff, 0xdc, 0x28, 0x1c, 0xeb, 0xf5, 0x33, 0xe9, 0xf0, 0xf3, 0xde, 0x36, 0x1d, 0x17, 0xd0, 0x87, 0xdd, 0xdb, 0x59, 0x1b, 0x89, 0x54, 0xe, 0x5f, 0xf, 0x7c, 0xb6, 0xe1, 0x67, 0x8d, 0xdf, 0x6b, 0x89, 0x40, 0x22, 0xcf, 0x1e, 0xbf, 0x4f, 0x87, 0x1f, 0x9b, 0x9f, 0x43, 0x97, 0xee, 0x7e, 0xeb, 0x17, 0x8d, 0x52, 0x45, 0x2, 0xa0, 0xf7, 0xf3, 0x71, 0xeb, 0xa7, 0x2c, 0xb4, 0x28, 0x7d, 0x96, 0xe1, 0x57, 0xfa, 0x87, 0xf3, 0x51, 0xcc, 0xe2, 0xeb, 0x84, 0x2e, 0xb6, 0xdc, 0xf2, 0x54, 0xf0, 0x63, 0x6b, 0xa7, 0x9e, 0x35, 0x4b, 0xf6, 0x97, 0xc4, 0xd9, 0x4d, 0xde, 0x71, 0x3, 0x15, 0x7c, 0xfd, 0x5c, 0xa3, 0xd5, 0x5c, 0x99, 0x3f, 0xdb, 0xf0, 0x9b, 0xdf, 0x3e, 0xf, 0x1e, 0x84, 0x21, 0xfa, 0x8b, 0x9, 0x4e, 0x1, 0xbf, 0x26, 0xdf, 0x44, 0xdd, 0xe1, 0x60, 0x83, 0x99, 0x5b, 0x2b, 0x94, - 0x7b, 0x86, 0xeb, 0x87, 0xb3, 0xd, 0xbf, 0xb4, 0xfc, 0x99, 0x83, 0xbd, 0x27, 0xbc, 0xb5, 0xcc, 0xcf, 0xff, 0x32, 0x7d, 0x4a, 0xf8, 0x38, 0xd5, 0xa9, 0x1, 0x1c, 0xe1, 0x49, 0xda, 0xf5, 0xda, 0xa1, 0x42, 0x1e, 0x37, 0x23, 0xb8, 0x26, 0x17, 0xbe, 0x29, 0xb2, 0x3, 0xab, 0xc7, 0x1a, 0x9f, 0xf, 0xd0, 0x1f, 0xfd, 0x27, 0xf3, 0x5f, 0x73, 0x47, 0x2e, 0x36, 0x12, 0xd7, 0x79, 0x7b, 0xba, 0xcb, 0xd4, 0x5d, 0xad, 0xcf, 0xd, 0xbb, 0x3f, 0x96, 0xef, 0x24, 0xe8, 0xb7, 0x9e, 0xf5, 0x3e, 0xf6, 0x4a, 0xbf, 0xff, 0x47, 0x8e, 0x88, 0xb5, 0x6c, 0x85, 0x8d, 0x7, 0x6a, 0x34, 0xdd, 0xf5, 0xea, 0xea, 0x17, 0x22, 0xa7, 0xeb, 0x39, 0xbc, 0xc3, 0x27, 0x6c, 0xfe, 0xb3, 0xfc, 0x71, 0x40, 0xb1, 0x52, 0x6, 0xb0, 0xf5, 0x47, 0xe4, 0xe4, 0xf5, 0x47, 0x37, 0x36, 0xf9, 0x42, 0x70, 0x5c, 0x4, 0x8f, 0x68, 0x10, 0xb1, 0x2f, 0xc2, 0x95, 0xd, 0xe5, 0xbf, 0x3f, 0x52, 0xfb, 0x25, 0x32, 0xf9, 0xbd, 0x41, 0xf6, 0x1c, 0x75, 0x7b, 0x70, 0xfe, 0x8e, 0x56, 0xfa, 0x7e, 0x25, 0x23, 0x88, 0x46, 0xed, 0x54, 0xb6, 0x7e, 0x3a, 0xce, 0xc5, 0x39, 0x93, 0x4f, 0x5a, 0x36, 0xd5, 0x74, 0x73, 0x6, 0xe4, 0x63, 0x81, 0xa4, 0xd0, 0x5d, 0x3e, 0x37, 0x24, 0xa, 0x28, 0xde, 0x56, 0x60, 0x75, 0x1e, 0x77, 0xcc, 0xad, 0xbb, 0x75, 0x61, 0x18, 0x3f, 0x56, 0x1, 0x49, 0xab, 0xf1, 0x86, 0xcd, 0xb5, 0x69, 0xfd, 0x9f, 0xe8, 0x52, 0xa8, 0x2d, 0x40, 0x1f, 0xca, 0x88, 0xa8, 0x40, 0x75, 0x5c, 0xaf, 0xc0, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x7b, 0x31, - 0xa3, 0xfe, 0x48, 0xf2, 0x8d, 0xa6, 0x8d, 0x8a, 0xce, 0x87, 0x30, 0xfe, 0xc5, 0x8, 0xe5, 0x5b, 0x28, 0x78, 0x35, 0x59, 0x47, 0x26, 0xf3, 0xf6, 0x22, 0xaf, 0xa0, 0xc1, 0x57, 0x9d, 0x76, 0x7e, 0xe3, 0x90, 0xc7, 0xee, 0x57, 0x4c, 0x3d, 0xb0, 0x74, 0xf8, 0x85, 0xc7, 0x4f, 0x40, 0xf4, 0xd2, 0xd7, 0xd9, 0xfa, 0x96, 0x44, 0x54, 0xf5, 0xb9, 0xce, 0x76, 0xfc, 0xc2, 0x5f, 0xb8, 0x49, 0x2f, 0xb8, 0x80, 0x30, 0xf7, 0x43, 0x10, 0x4e, 0x5, 0xbf, 0x99, 0x2f, 0x93, 0xee, 0xf2, 0xc4, 0x24, 0x88, 0x5, 0x8f, 0x25, 0x4d, 0xed, 0xac, 0xe7, 0xbf, 0xf0, 0x33, 0x13, 0xb1, 0x65, 0x92, 0x62, 0xe1, 0xc7, 0x9d, 0xa, 0x7e, 0x8f, 0xce, 0x40, 0xa1, 0xe6, 0x0, 0x95, 0xdf, 0x8f, 0x7d, 0xee, 0xee, 0xe1, 0xf8, 0x9c, 0x6d, 0xf8, 0xd5, 0x6c, 0xbb, 0x0, 0xb1, 0x62, 0x40, 0xed, 0xb0, 0x8f, 0xac, 0x88, 0x5e, 0x89, 0x22, 0xe4, 0xb5, 0x70, 0xf8, 0x11, 0x62, 0x12, 0xea, 0xa8, 0x3e, 0x38, 0x7c, 0x72, 0xfe, 0x97, 0xcf, 0xec, 0x2a, 0x86, 0x43, 0xb5, 0x0, 0x22, 0x5b, 0xdc, 0xf9, 0x99, 0xc8, 0x17, 0xd5, 0xcd, 0x51, 0x3f, 0xb9, 0x84, 0xaa, 0x80, 0x16, 0x24, 0xf9, 0x3f, 0x9a, 0xe5, 0x60, 0xcb, 0xdb, 0xba, 0xc, 0x8, 0x33, 0x3c, 0x3a, 0x9a, 0x76, 0x6c, 0x85, 0x3e, 0xde, 0x8a, 0x8f, 0xe2, 0x3c, 0x10, 0x22, 0x55, 0xca, 0xc7, 0xd9, 0x6c, 0xf0, 0xd, 0xd4, 0xe4, 0x69, 0x41, 0x89, 0x21, 0x8d, 0xb5, 0xbe, 0xfd, 0x80, 0xfb, 0x59, 0x64, 0xf2, 0xef, 0x62, 0x40, 0x48, 0xd2, 0x26, 0xee, 0xc2, 0x5a, 0xf9, 0x93, 0xa8, 0x96, 0x5b, 0x12, 0xd2, 0x42, 0x9b, 0x25, 0x32, 0xce, - 0xff, 0xb7, 0xee, 0x4a, 0xc8, 0x1, 0x8c, 0x87, 0x2b, 0xdf, 0xc5, 0xca, 0xf4, 0x28, 0xf, 0x35, 0x15, 0x1e, 0x8e, 0x22, 0xef, 0xb0, 0xf5, 0xee, 0xa1, 0xeb, 0x6f, 0x45, 0xbb, 0xc6, 0x4d, 0x5a, 0x6, 0xf5, 0xb7, 0xab, 0x15, 0xdf, 0x88, 0xf3, 0xb5, 0x64, 0xde, 0x7e, 0x71, 0x1c, 0xe3, 0xf6, 0xea, 0x92, 0x42, 0xd4, 0xd9, 0xcc, 0x21, 0x69, 0x8e, 0x4e, 0x84, 0x6c, 0x70, 0x61, 0x4f, 0x6f, 0x77, 0x77, 0x5f, 0x34, 0x92, 0x79, 0xfc, 0xde, 0xdd, 0xa4, 0xe5, 0x93, 0x9c, 0x1b, 0x2c, 0xf0, 0x5c, 0xf9, 0xf9, 0x96, 0xfd, 0x44, 0xcf, 0x44, 0x82, 0x3d, 0x37, 0xb1, 0x76, 0x84, 0x17, 0xe4, 0xeb, 0xfc, 0x63, 0xd3, 0xad, 0xda, 0x86, 0xb9, 0x4b, 0xb5, 0xf2, 0xbf, 0x38, 0xd9, 0x82, 0x1e, 0x8d, 0xeb, 0xd3, 0x92, 0x8d, 0x63, 0x8d, 0x57, 0xf8, 0x57, 0x9b, 0xd0, 0xfb, 0xba, 0xc, 0x29, 0xa5, 0x80, 0x9b, 0x93, 0xad, 0x89, 0x67, 0x1c, 0xc8, 0x53, 0x2d, 0x91, 0x23, 0xb2, 0xf1, 0x3f, 0x3e, 0xee, 0x3e, 0xcc, 0x8, 0xa7, 0x89, 0x2, 0x52, 0x2a, 0x80, 0x59, 0x7b, 0xff, 0xeb, 0xfc, 0xf5, 0x87, 0xe7, 0x77, 0x22, 0xd8, 0x96, 0x5f, 0x42, 0x30, 0xf9, 0xcd, 0xb0, 0xf0, 0xb1, 0x4f, 0x12, 0x69, 0x27, 0x54, 0xef, 0x43, 0x2e, 0xe8, 0x3, 0xbb, 0x25, 0xeb, 0x80, 0x1c, 0xd8, 0x19, 0xbe, 0x63, 0x3, 0x26, 0x90, 0xe7, 0x67, 0xe5, 0x96, 0xfb, 0x7d, 0xf4, 0x6f, 0xc6, 0x58, 0xe3, 0x67, 0xcf, 0xe7, 0xf, 0xae, 0x2f, 0x7, 0xbc, 0xdb, 0x9b, 0x10, 0xd, 0x2a, 0x41, 0xfa, 0x71, 0x8f, 0xd2, 0xa1, 0x23, 0x7c, 0x5d, 0x83, 0x71, 0x1f, 0x3d, 0xbf, 0xad, 0x9f, 0x45, 0x50, 0xe8, - 0x46, 0x55, 0x74, 0x35, 0x8b, 0xa5, 0x5d, 0x8c, 0x3b, 0x71, 0x4a, 0xeb, 0xdb, 0xfe, 0xde, 0xf1, 0xb, 0x6d, 0xff, 0x17, 0x92, 0xc, 0x50, 0x1b, 0x3e, 0xc7, 0x6e, 0x75, 0xcd, 0xb, 0xd4, 0xbe, 0xb, 0x36, 0x30, 0x13, 0x39, 0xc2, 0x1d, 0x89, 0x62, 0x6d, 0xb5, 0xc, 0x52, 0xdd, 0xbf, 0xc5, 0xd, 0x94, 0xc6, 0xdb, 0x4a, 0xcc, 0x70, 0xd3, 0x3f, 0x68, 0x14, 0xb8, 0xe2, 0x18, 0xb1, 0x7f, 0xe1, 0x6c, 0xc7, 0x4f, 0xca, 0x1b, 0x4f, 0xed, 0x3, 0xb2, 0xe6, 0x1b, 0x32, 0xed, 0x93, 0xe4, 0x6e, 0xf, 0xeb, 0xaf, 0x6e, 0x8f, 0x7d, 0xd6, 0xb5, 0xdf, 0x3c, 0xb9, 0xff, 0xe2, 0x69, 0xf3, 0xfe, 0xcb, 0x27, 0xc9, 0xf, 0x5, 0x13, 0x85, 0x8c, 0x4a, 0xe4, 0x67, 0xf1, 0xfb, 0x0, 0xfd, 0xf1, 0xe6, 0x2d, 0x2c, 0x14, 0x9a, 0xf1, 0x5f, 0xa7, 0x5e, 0xd6, 0x49, 0xed, 0xe5, 0x2d, 0xba, 0xee, 0xf, 0xe6, 0xf4, 0x9b, 0xd4, 0x27, 0x55, 0xcb, 0xcb, 0x33, 0xaf, 0xef, 0x3f, 0xda, 0xf8, 0xad, 0xe9, 0x5c, 0x4e, 0x59, 0x89, 0xba, 0x70, 0x64, 0xdf, 0x8d, 0x4c, 0xa, 0xae, 0x2d, 0xfe, 0x38, 0x64, 0x59, 0x62, 0x1f, 0x9d, 0x4f, 0x1b, 0x7c, 0xe, 0x5b, 0xcf, 0x2f, 0x27, 0x58, 0xe6, 0x35, 0x40, 0xe8, 0xe9, 0xee, 0xd, 0x3d, 0x3a, 0xd, 0xb8, 0x2b, 0x80, 0x1b, 0x2, 0x3e, 0x9f, 0x9c, 0xe5, 0xbf, 0x61, 0xb4, 0x77, 0x8e, 0x84, 0x8d, 0x1e, 0x44, 0xfe, 0x21, 0x95, 0x11, 0xc8, 0x5b, 0x16, 0x1, 0xcc, 0xdd, 0x2, 0xd9, 0xd0, 0x66, 0x69, 0xe8, 0xb4, 0xcf, 0xa3, 0xb6, 0x81, 0xa8, 0xf6, 0x82, 0xe, 0xff, 0xa9, 0xac, 0xff, 0x8, 0x97, 0xf9, 0x40, 0x16, 0x53, 0x81, 0xb1, - 0x4c, 0x55, 0xfd, 0x6e, 0x27, 0x1c, 0xff, 0x6c, 0xa9, 0x25, 0xfd, 0xcb, 0xcc, 0x4, 0x34, 0xa2, 0xca, 0x89, 0xf5, 0x49, 0xf0, 0x24, 0xee, 0xff, 0xed, 0x33, 0xa5, 0x7f, 0x70, 0xa1, 0xff, 0xfd, 0x95, 0x62, 0x59, 0x91, 0x2e, 0xfe, 0xf7, 0xd, 0x75, 0x2f, 0x87, 0x9e, 0xa9, 0x84, 0x56, 0x2c, 0x4d, 0x6c, 0x7, 0x7c, 0x3f, 0x5d, 0xad, 0xa8, 0xcd, 0x9d, 0xb9, 0x54, 0xdb, 0x85, 0xed, 0x6f, 0xd4, 0x36, 0x9e, 0xf6, 0xf5, 0x9b, 0x77, 0xb6, 0x97, 0x82, 0x7a, 0xb5, 0x2f, 0xec, 0x4e, 0x35, 0x7a, 0xae, 0xfc, 0x26, 0xed, 0xcf, 0xcc, 0xa0, 0xbd, 0xd7, 0xaf, 0x3f, 0x92, 0xf9, 0xfc, 0xa7, 0x2c, 0x7f, 0x8e, 0xc9, 0xd9, 0x63, 0xa7, 0x71, 0xe1, 0xcf, 0x94, 0xff, 0xc7, 0x43, 0xa9, 0x16, 0xca, 0xd9, 0x59, 0x97, 0xa9, 0xbb, 0xbd, 0x33, 0xc1, 0x26, 0xd7, 0xf6, 0x94, 0x2a, 0x84, 0x13, 0x7a, 0x66, 0x83, 0xda, 0xb, 0x17, 0xe1, 0x44, 0x19, 0xf5, 0xf8, 0xbe, 0xb4, 0xcf, 0x7f, 0xce, 0x42, 0xc4, 0x38, 0xd4, 0xde, 0x91, 0x32, 0x0, 0x97, 0x76, 0xde, 0xa9, 0xf3, 0x2e, 0x44, 0xdc, 0x8c, 0x79, 0x38, 0x4e, 0x58, 0x5b, 0xbf, 0x10, 0x8a, 0x6c, 0xa, 0x54, 0x59, 0x24, 0x74, 0xa9, 0x9c, 0xad, 0x8f, 0xff, 0x96, 0xd5, 0xf0, 0xd4, 0xd, 0x8c, 0xf8, 0xfa, 0x77, 0x4c, 0xc7, 0xbd, 0xc0, 0x7b, 0x4b, 0x5c, 0xbe, 0xf9, 0xaa, 0xcf, 0x55, 0xe0, 0xdd, 0x3e, 0x1e, 0x1d, 0x41, 0x7b, 0xc8, 0xaf, 0x37, 0x72, 0x4f, 0x59, 0x6a, 0xbe, 0xd4, 0x2a, 0x87, 0x4d, 0x37, 0xc5, 0xf7, 0x6a, 0x38, 0x98, 0xaf, 0xa9, 0x26, 0xa3, 0xa6, 0x21, 0x7c, 0x71, 0xac, 0xf1, 0x1b, 0x4a, 0x5f, 0x1b, - 0xdd, 0x0, 0x87, 0xe3, 0x8b, 0x6d, 0xd4, 0x7c, 0xde, 0xd8, 0xf5, 0x29, 0x2, 0xef, 0x4b, 0xb7, 0xc1, 0x28, 0xe6, 0x92, 0x2c, 0xab, 0x18, 0x6f, 0xf8, 0x22, 0x1f, 0xab, 0x2d, 0x7, 0x55, 0x25, 0x41, 0xbe, 0x1a, 0xcf, 0x31, 0x2b, 0xfa, 0x6c, 0xc7, 0x2f, 0x4c, 0xed, 0xbf, 0x7f, 0xd, 0x9c, 0x98, 0x4f, 0x60, 0xf3, 0x43, 0x25, 0x5d, 0xec, 0x93, 0x6a, 0x8, 0x33, 0x4d, 0x6b, 0xbe, 0xcd, 0x70, 0x53, 0xc4, 0xd0, 0x5, 0x77, 0x82, 0x6b, 0xc, 0xff, 0x33, 0x45, 0xf2, 0x5a, 0xc7, 0xc2, 0x84, 0x6e, 0xd7, 0x3f, 0xdb, 0xf1, 0x1b, 0xe6, 0x8f, 0xe4, 0xe0, 0x58, 0xa5, 0xc4, 0xd6, 0x27, 0x6b, 0x50, 0x4b, 0x35, 0x2e, 0xdc, 0x54, 0x8d, 0x19, 0x9, 0xc7, 0xb2, 0x64, 0xc2, 0xb2, 0x5f, 0x32, 0xee, 0xaf, 0x7f, 0xd4, 0xf1, 0xab, 0xa2, 0xfa, 0x21, 0x48, 0x82, 0x85, 0x71, 0xa1, 0xcb, 0x6a, 0x67, 0xf1, 0x85, 0xd4, 0x7e, 0x79, 0xad, 0x22, 0xc9, 0xc1, 0xe0, 0x4d, 0x2e, 0x2e, 0xd9, 0xf1, 0x19, 0xfa, 0x4, 0xab, 0x7a, 0xde, 0xc4, 0xcc, 0xe7, 0x1f, 0x5a, 0xe3, 0xd6, 0x9c, 0xfa, 0x62, 0x51, 0xd1, 0xa5, 0x2e, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x90, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xd1, 0xe, 0xd9, 0x52, 0xca, 0x88, 0x9b, 0x67, 0x5c, 0x3e, 0x84, 0xd2, 0x6d, 0x93, 0xb4, 0x69, 0xd0, 0x3a, 0xc5, 0x94, 0xb, 0x5c, 0xfa, 0x62, 0x23, 0x7c, 0x66, 0xd3, 0x8a, 0x72, 0x10, 0xae, 0xbb, 0x2b, 0xc2, 0x51, 0x7d, 0xb7, 0x2, 0x27, 0x8a, 0x1e, 0x7e, 0xe9, 0x35, 0xc4, 0x6e, 0x24, 0x53, 0x75, 0xc3, 0x3e, 0x70, 0xb6, 0xe3, 0x17, 0x9e, 0x7f, 0x2b, 0x7c, - 0xd3, 0x91, 0x87, 0x49, 0x76, 0x4e, 0x81, 0xf0, 0x2, 0x5, 0x21, 0xef, 0x32, 0x73, 0x61, 0x11, 0xed, 0xc1, 0xd1, 0xb2, 0x40, 0x78, 0x73, 0x14, 0xca, 0xeb, 0xf6, 0xb9, 0x44, 0xc2, 0x60, 0xf6, 0xc3, 0x6c, 0x64, 0x70, 0xfc, 0xe5, 0xa3, 0x8e, 0xdf, 0x50, 0x7a, 0x6d, 0xfd, 0x7a, 0x38, 0x94, 0xd6, 0x24, 0x25, 0x76, 0x87, 0xa7, 0xbb, 0xfd, 0xe1, 0x67, 0xc6, 0x69, 0x5e, 0x82, 0xab, 0xd9, 0x59, 0xc3, 0x30, 0x32, 0x3e, 0x1f, 0xfd, 0xf7, 0x86, 0x5f, 0x73, 0x72, 0x36, 0x35, 0x57, 0x8b, 0x15, 0x9, 0x82, 0xca, 0x89, 0x2a, 0x42, 0x97, 0xdc, 0xa0, 0xe9, 0x6f, 0x1c, 0x13, 0x56, 0xd4, 0xbb, 0x5c, 0x2f, 0xdf, 0x2e, 0x64, 0x3c, 0x1f, 0x39, 0x9b, 0x3f, 0x8f, 0xa7, 0xec, 0x67, 0x96, 0xf3, 0x68, 0x4d, 0xed, 0x2d, 0x64, 0x16, 0x7b, 0x56, 0xf8, 0x1c, 0x7d, 0xed, 0x56, 0x1c, 0xd7, 0xaf, 0x82, 0x97, 0xeb, 0x38, 0x3f, 0x68, 0x8d, 0x47, 0xde, 0x37, 0x7d, 0x5e, 0xb4, 0x1c, 0x8b, 0x25, 0x59, 0xaf, 0xe0, 0x8d, 0x8b, 0x81, 0xd6, 0xfe, 0xb1, 0xc6, 0x6b, 0x62, 0xde, 0x78, 0x74, 0x49, 0xf8, 0x5a, 0x98, 0xd9, 0xf9, 0x18, 0x77, 0x2e, 0xb3, 0x57, 0xbe, 0x1f, 0xb4, 0x55, 0x9e, 0xeb, 0x67, 0xa6, 0x44, 0xf5, 0x71, 0x82, 0x8b, 0x8a, 0x8c, 0x1f, 0x11, 0x5d, 0xde, 0xbf, 0x51, 0xcc, 0x7b, 0x28, 0xa8, 0x15, 0x2, 0xb1, 0x12, 0xfb, 0x17, 0x46, 0x2c, 0x3f, 0xde, 0x2f, 0xd2, 0xe5, 0x18, 0x8f, 0x4e, 0x2b, 0xfc, 0xcf, 0x1f, 0x68, 0xda, 0xc5, 0xc2, 0x6b, 0x22, 0x6c, 0x4, 0x28, 0x88, 0xbd, 0x44, 0x9d, 0xc7, 0xf2, 0xc3, 0x58, 0xb3, 0x43, 0x44, 0x82, 0xbe, 0xa, 0x55, - 0x1b, 0x37, 0x21, 0x91, 0x13, 0x4d, 0xc4, 0xb9, 0x38, 0x6f, 0xc2, 0xbc, 0x7f, 0xac, 0xf1, 0xfb, 0x0, 0xff, 0x83, 0xf5, 0x96, 0xe3, 0xfe, 0x87, 0xf7, 0xb6, 0x85, 0x8, 0x6, 0xdb, 0xd8, 0xf8, 0x1, 0x11, 0xcb, 0x14, 0x92, 0x69, 0xff, 0x63, 0x98, 0xff, 0xd6, 0x3e, 0x1e, 0xd5, 0x76, 0x6f, 0x45, 0xc8, 0xbc, 0x8b, 0xfa, 0x6f, 0x7e, 0x7b, 0xff, 0xc, 0x56, 0x7a, 0xe6, 0x1c, 0x62, 0xf3, 0x4d, 0x26, 0xdf, 0x88, 0x46, 0x16, 0x33, 0xe3, 0x24, 0x69, 0xf3, 0x5, 0x9e, 0x6e, 0x7a, 0xa8, 0xff, 0xd1, 0xf0, 0x88, 0xf, 0x1e, 0xe8, 0xe7, 0x3a, 0x1a, 0x23, 0xa2, 0x4, 0x4f, 0x34, 0xd3, 0xfe, 0xc7, 0x47, 0x1d, 0xbf, 0x53, 0xf3, 0x3f, 0x58, 0xf7, 0x1d, 0x1d, 0xff, 0xe3, 0xa3, 0x8e, 0x1f, 0x93, 0x7f, 0x1d, 0x12, 0xea, 0x7f, 0xc9, 0xec, 0x3f, 0x79, 0xdc, 0xb9, 0x35, 0x4b, 0x36, 0x22, 0x16, 0x8c, 0x72, 0xac, 0xfb, 0xb6, 0x29, 0x51, 0xe9, 0x5a, 0xe5, 0x46, 0x14, 0xf1, 0x5f, 0xec, 0x2d, 0xa3, 0x34, 0x79, 0xe0, 0xc0, 0xcd, 0x13, 0xf2, 0x1e, 0x42, 0x82, 0x5, 0xe4, 0x47, 0x5, 0x3d, 0x8b, 0xdf, 0x7, 0xd8, 0x2f, 0x7, 0x6e, 0xa1, 0x38, 0xba, 0xd9, 0x1d, 0xb8, 0x76, 0xc5, 0x9, 0x17, 0x7e, 0xa6, 0x15, 0x5e, 0x9f, 0xba, 0xc2, 0x4c, 0x8c, 0x8e, 0xff, 0xf6, 0xf7, 0x86, 0x5f, 0x8d, 0x80, 0x4b, 0xdb, 0x4e, 0x98, 0xc7, 0xa8, 0x59, 0xc2, 0x31, 0x4a, 0x43, 0x4f, 0xe4, 0x94, 0xf2, 0x37, 0x7d, 0x68, 0xf9, 0xf1, 0x6a, 0xb3, 0xde, 0x97, 0x13, 0xb9, 0x88, 0xfe, 0x78, 0x45, 0x5, 0xe5, 0xeb, 0x35, 0x96, 0xa6, 0x97, 0x29, 0xfb, 0xef, 0xa2, 0xef, 0xcf, 0xcb, - 0x6b, 0x8a, 0x8f, 0x90, 0x97, 0x3, 0x24, 0x35, 0x23, 0x83, 0xbb, 0xbd, 0xbf, 0xb8, 0x8, 0x78, 0x67, 0x37, 0x7c, 0xd0, 0x1b, 0x36, 0xd, 0x94, 0x9c, 0x71, 0xf6, 0x60, 0x73, 0xe4, 0x42, 0x44, 0x9b, 0xa9, 0xf4, 0x1b, 0xcc, 0xdf, 0xb9, 0x59, 0x40, 0x8, 0xfa, 0x39, 0xc9, 0x72, 0x9b, 0x29, 0x32, 0xcf, 0x7f, 0xc6, 0xa2, 0x7e, 0xee, 0xa7, 0x42, 0xf, 0xe5, 0x3f, 0x93, 0xfb, 0x33, 0xc2, 0xe3, 0xd7, 0x82, 0xd9, 0x2f, 0xb4, 0x9, 0x1e, 0xdf, 0x64, 0x77, 0x11, 0xe3, 0xbf, 0x6a, 0x92, 0x42, 0xaf, 0x67, 0xce, 0x1f, 0x6a, 0x4, 0xfe, 0xcf, 0x5c, 0x9f, 0x26, 0xee, 0x6d, 0xdf, 0xba, 0x42, 0x69, 0x14, 0x5f, 0x1c, 0x6b, 0xbc, 0x86, 0xce, 0x9f, 0xdf, 0xac, 0xf4, 0xea, 0x1a, 0x35, 0xc9, 0xc0, 0xb2, 0xca, 0x82, 0x13, 0x98, 0xfe, 0x88, 0xda, 0xe9, 0x87, 0x46, 0x65, 0xfe, 0xbc, 0xca, 0xac, 0x37, 0xf2, 0xd, 0x31, 0x44, 0x6d, 0x68, 0x77, 0xc2, 0x69, 0xeb, 0xab, 0xd4, 0x4f, 0x9b, 0x8, 0x10, 0xa7, 0xfc, 0x80, 0xb, 0x64, 0x82, 0x7d, 0xb9, 0xc5, 0x5d, 0xae, 0xef, 0x5f, 0x3, 0x2c, 0xd2, 0x8f, 0x8d, 0x47, 0x2b, 0x8f, 0x56, 0xe8, 0x15, 0x63, 0xce, 0x7f, 0x43, 0xe7, 0xcf, 0x99, 0x3f, 0x60, 0x5a, 0xf3, 0x17, 0x33, 0x21, 0x51, 0xad, 0xec, 0x9d, 0xb9, 0x1e, 0xb2, 0x4e, 0x38, 0x3b, 0x64, 0xc8, 0xa7, 0x65, 0x7a, 0xfe, 0xfc, 0xa3, 0x8e, 0xdf, 0xd0, 0xf9, 0xf3, 0xf0, 0x23, 0x4e, 0x7c, 0x53, 0xae, 0xbc, 0x48, 0x2c, 0x75, 0x39, 0xe0, 0x2f, 0x90, 0xc2, 0x9b, 0x9b, 0x10, 0xbc, 0xc0, 0x77, 0x91, 0x9f, 0xa2, 0xe5, 0x53, 0xcd, 0x44, 0xa6, 0xe7, 0xcf, 0x3f, - 0xea, 0xf8, 0xd, 0xd3, 0x1f, 0xb9, 0x1e, 0xe4, 0x26, 0x16, 0x89, 0x2c, 0x84, 0xcc, 0x9a, 0xff, 0x7d, 0xa2, 0x17, 0xc1, 0x4f, 0xec, 0x9f, 0xca, 0xf0, 0x53, 0x54, 0x35, 0xe3, 0xf9, 0x5d, 0xff, 0xde, 0xf0, 0xcb, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0x3e, 0xdd, 0xb4, 0x7c, 0xab, 0xa, 0x1e, 0xd2, 0x46, 0x5d, 0xda, 0x65, 0x9c, 0x4a, 0xfe, 0x94, 0x91, 0xd2, 0x73, 0xa3, 0x7c, 0x50, 0x13, 0xfb, 0x39, 0xe8, 0x9c, 0x3e, 0x1b, 0x71, 0x2b, 0xff, 0xa4, 0x7d, 0x8e, 0x38, 0x4d, 0xc1, 0x3c, 0xe3, 0xf6, 0xa7, 0x4b, 0x47, 0x87, 0x9b, 0x8b, 0x1, 0xb9, 0x3e, 0xe8, 0x70, 0x61, 0xce, 0xbc, 0x8a, 0xf9, 0x93, 0xff, 0x2a, 0xdf, 0x9, 0x37, 0x3c, 0x5f, 0x7f, 0x96, 0xfe, 0x6b, 0xba, 0xb9, 0x6b, 0x9, 0x5b, 0x1c, 0x10, 0xcc, 0x4d, 0x5a, 0x29, 0x8b, 0x50, 0x57, 0xfd, 0x69, 0xdc, 0x2d, 0xdf, 0xff, 0x8a, 0x70, 0x98, 0x2f, 0x47, 0x49, 0x7a, 0x7e, 0x2c, 0xcd, 0xc1, 0xef, 0x39, 0xb4, 0x25, 0xd7, 0x41, 0x50, 0xd8, 0xe, 0x31, 0xa7, 0x50, 0x3f, 0xc9, 0xa9, 0x4a, 0x24, 0xf9, 0x9c, 0x42, 0xb8, 0x3c, 0xf, 0x6a, 0x2e, 0x64, 0xfb, 0x41, 0x5b, 0xb1, 0xe4, 0x31, 0x74, 0x6b, 0x5c, 0xf8, 0x47, 0xb, 0xad, 0xd, 0xeb, - 0x7a, 0xd9, 0x11, 0x45, 0xf5, 0xaf, 0x88, 0xcf, 0xc3, 0x6f, 0x2, 0x45, 0x8d, 0x5c, 0xe7, 0x64, 0x52, 0x10, 0xcb, 0x55, 0x9a, 0xcd, 0xdb, 0xe9, 0x9, 0xc7, 0x22, 0x96, 0xfe, 0x18, 0x67, 0x40, 0x3e, 0x1b, 0xef, 0x76, 0x19, 0xed, 0xe4, 0x5a, 0xb1, 0xac, 0x5b, 0x79, 0x8a, 0xe5, 0x5c, 0x9, 0x3d, 0xa3, 0xa0, 0x57, 0x7b, 0x89, 0xbb, 0x84, 0x4, 0x3b, 0xe, 0xbc, 0xb1, 0x85, 0xe4, 0xcc, 0x8e, 0xb2, 0xed, 0x58, 0xac, 0x5, 0x7, 0x6c, 0x55, 0xfd, 0x88, 0xaf, 0xf7, 0xf6, 0x52, 0x96, 0xff, 0xf4, 0x63, 0x3a, 0x38, 0xc8, 0x91, 0xca, 0xa4, 0xf7, 0xb6, 0x8f, 0xd, 0xee, 0xa7, 0xdd, 0x17, 0xe5, 0xd4, 0xbd, 0x35, 0x42, 0x2a, 0x1f, 0x6c, 0x37, 0x11, 0x95, 0xda, 0x5d, 0x77, 0x84, 0xa, 0x2f, 0x9, 0x3a, 0x8b, 0x2b, 0xb, 0xab, 0x3f, 0xfe, 0xd5, 0x9f, 0x1d, 0x78, 0x7d, 0xff, 0xee, 0xb1, 0xc6, 0x6b, 0x58, 0xff, 0x6d, 0x72, 0x63, 0x62, 0xbf, 0x6b, 0xb1, 0xc7, 0xe3, 0xf3, 0x7, 0x9c, 0xf6, 0x7a, 0xc, 0xa9, 0x88, 0x2b, 0x47, 0x12, 0x26, 0x5b, 0x74, 0x9b, 0xee, 0xfb, 0x4d, 0xbb, 0x24, 0xcc, 0x0, 0x22, 0xd8, 0xa3, 0x89, 0x7d, 0xa7, 0x50, 0xdf, 0x9b, 0x5f, 0x64, 0xed, 0x87, 0x6c, 0xe1, 0x25, 0xaa, 0xc3, 0xf6, 0x1f, 0x77, 0xbc, 0xf4, 0x3b, 0x68, 0x3e, 0x6d, 0x30, 0x87, 0xc8, 0x4d, 0x2c, 0xdf, 0x37, 0x5f, 0xd8, 0xe6, 0x4e, 0x8, 0xa6, 0xf6, 0x74, 0xb2, 0xa4, 0x9c, 0xf2, 0xaf, 0x59, 0x79, 0x4f, 0x59, 0xa3, 0xb6, 0x7f, 0xd3, 0x91, 0x39, 0xb4, 0x42, 0x69, 0xe, 0x6f, 0xe, 0xae, 0xe5, 0xdc, 0x19, 0xbd, 0x63, 0xf9, 0x30, 0x7e, 0x17, 0xf0, 0x35, - 0xfa, 0x41, 0xd6, 0x53, 0x75, 0x32, 0x8e, 0xdf, 0xa3, 0x4e, 0x6c, 0xab, 0xaf, 0xe7, 0xc, 0xd1, 0xe5, 0x2f, 0x90, 0x4, 0x84, 0xb, 0x97, 0xc1, 0x55, 0x85, 0x2b, 0x5, 0x8f, 0x8f, 0x2d, 0xbf, 0x48, 0xdf, 0x1f, 0x3f, 0xe4, 0xfa, 0xa0, 0x9a, 0x37, 0x37, 0x53, 0x3e, 0xbe, 0x49, 0x8a, 0xa0, 0xfb, 0xca, 0xca, 0xb2, 0x5a, 0x34, 0xd7, 0xde, 0x2, 0x87, 0xa6, 0x29, 0xd6, 0x69, 0x51, 0xed, 0x39, 0x29, 0x7f, 0x17, 0x8e, 0x1d, 0xfe, 0x93, 0xf3, 0xda, 0xe2, 0x4f, 0x21, 0xf9, 0x46, 0x2b, 0x1, 0xf7, 0xf1, 0x3d, 0x15, 0x9f, 0x5f, 0xf, 0x6f, 0xfe, 0xb9, 0xe8, 0xd5, 0x5, 0x78, 0x74, 0x6d, 0xc5, 0xc6, 0xe7, 0xc7, 0x3e, 0x5f, 0xbf, 0x77, 0xfd, 0xf5, 0x70, 0x98, 0x1c, 0x8f, 0xde, 0x5a, 0x52, 0xa5, 0x96, 0x65, 0xf5, 0x45, 0x3a, 0x7e, 0xfb, 0xec, 0xbf, 0x4, 0x2f, 0x63, 0xdb, 0xf5, 0xa4, 0x98, 0xbe, 0x29, 0x59, 0x8d, 0xd0, 0x53, 0x5, 0x93, 0x6b, 0x41, 0x99, 0x41, 0x35, 0x10, 0x16, 0xb0, 0xe8, 0xe4, 0xfd, 0x44, 0xaf, 0xee, 0x50, 0xe0, 0x23, 0x56, 0x3a, 0x1b, 0x91, 0xc9, 0xf4, 0x11, 0xdb, 0x2f, 0x1b, 0x37, 0xe1, 0xce, 0x5, 0x8c, 0x67, 0x4b, 0x10, 0x94, 0x12, 0xfc, 0x35, 0x0, 0x7f, 0x40, 0x80, 0x41, 0x55, 0x55, 0x2b, 0xb0, 0x21, 0xed, 0xfe, 0xb3, 0x23, 0xa5, 0xeb, 0x8a, 0x97, 0x22, 0xe8, 0x62, 0x19, 0xe, 0x9c, 0xb4, 0x5, 0xe5, 0x98, 0x6c, 0xe5, 0xeb, 0x31, 0x58, 0x86, 0x4b, 0xdd, 0x21, 0xa4, 0xdf, 0xaf, 0xea, 0xea, 0xda, 0x6, 0xab, 0xc3, 0x51, 0xc9, 0x41, 0x98, 0x3e, 0x60, 0xf6, 0x97, 0x9b, 0xfe, 0xd2, 0x2, 0xb4, 0xc0, 0xe4, 0x13, - 0xce, 0x30, 0x87, 0xa7, 0x52, 0xd0, 0x59, 0xaf, 0x99, 0x6e, 0xff, 0x55, 0xdb, 0xd8, 0x72, 0x1f, 0xfe, 0xf1, 0x50, 0xe1, 0x83, 0x8d, 0x4b, 0x7f, 0x7e, 0xfe, 0x92, 0xd, 0xe0, 0x8f, 0x55, 0xba, 0x63, 0x2e, 0xac, 0xc3, 0x4d, 0x88, 0xf1, 0x6c, 0x7f, 0x8d, 0xc0, 0xe0, 0xb3, 0x3, 0x81, 0x41, 0xf1, 0xad, 0x62, 0xcb, 0x59, 0x91, 0xb0, 0xfe, 0x8d, 0x78, 0x7f, 0x26, 0x47, 0xe1, 0x26, 0x10, 0xbe, 0x4e, 0xbb, 0xeb, 0xc7, 0xf4, 0x57, 0x5d, 0xfb, 0x47, 0xbc, 0xbe, 0x89, 0xca, 0xe3, 0x3, 0x95, 0x6a, 0x77, 0x4, 0xc9, 0xfa, 0xad, 0x6c, 0x43, 0x9d, 0xd0, 0xbb, 0x9c, 0xd6, 0x33, 0xad, 0x9f, 0x2b, 0x8d, 0x2a, 0xbe, 0xcf, 0xdd, 0xcc, 0xb7, 0x65, 0x1a, 0xbf, 0xd0, 0x23, 0x51, 0x78, 0xf8, 0xa7, 0xb9, 0x56, 0x9d, 0x3e, 0x72, 0xf9, 0xa6, 0xa2, 0xb4, 0xf5, 0x1f, 0xe5, 0x58, 0xfe, 0xc9, 0x5e, 0x9b, 0x9e, 0xfd, 0xe4, 0x58, 0xf7, 0xdf, 0xa1, 0xf4, 0xd2, 0x1d, 0x6d, 0xd6, 0xf6, 0x5b, 0x52, 0x6a, 0x15, 0xd8, 0x68, 0x5f, 0x6f, 0x7a, 0x74, 0x1a, 0x92, 0x47, 0x18, 0x8b, 0xf1, 0x3f, 0xec, 0x77, 0xf3, 0x68, 0xde, 0x11, 0xa3, 0x9f, 0xc9, 0x24, 0xfb, 0x3c, 0x86, 0xf5, 0xdf, 0xe3, 0xfa, 0x24, 0x66, 0xb8, 0x6b, 0x4e, 0x43, 0xfb, 0x3e, 0x6a, 0x74, 0x8d, 0x60, 0xed, 0x6f, 0xe, 0x9d, 0x65, 0x4, 0xa2, 0xff, 0xc6, 0xba, 0x3d, 0x67, 0x3a, 0x5d, 0x57, 0xbd, 0xd2, 0xb2, 0x76, 0xe, 0xbb, 0x8f, 0x4a, 0xab, 0x90, 0xe5, 0xa7, 0x11, 0xcb, 0xc3, 0xcd, 0x2b, 0xb1, 0xb, 0xe2, 0x94, 0x76, 0x4a, 0xe9, 0x7, 0xa3, 0x19, 0x5f, 0xaf, 0x7a, 0xda, 0xf9, 0x63, 0x87, 0x1f, - 0x4a, 0xb5, 0xc9, 0x1d, 0x45, 0x0, 0x6e, 0xc, 0xf7, 0x67, 0x59, 0x3e, 0x11, 0x7d, 0xa, 0xfb, 0x1c, 0xb4, 0x64, 0x7a, 0xe8, 0x68, 0x18, 0x58, 0x20, 0x7a, 0xed, 0x84, 0xb, 0x3d, 0x69, 0xfd, 0xab, 0x8f, 0xf9, 0xdc, 0x86, 0x47, 0x60, 0xc9, 0x91, 0x6c, 0x17, 0xa3, 0x4e, 0xe6, 0xe0, 0xe8, 0x4a, 0x38, 0x4d, 0xbe, 0x85, 0x5e, 0x51, 0x2, 0xd5, 0xff, 0xf7, 0x9c, 0x6c, 0x3f, 0x31, 0x7f, 0x88, 0x2a, 0x5e, 0x93, 0x9a, 0x7, 0xb, 0x74, 0x77, 0xc2, 0x39, 0xe2, 0xfb, 0x93, 0x9b, 0xd9, 0x46, 0x5b, 0xd4, 0x1a, 0xd3, 0x17, 0x66, 0x62, 0x3f, 0xa, 0xea, 0x6f, 0x1e, 0xb3, 0xf6, 0xdb, 0xd0, 0xc4, 0x6e, 0x1d, 0x96, 0x3f, 0x94, 0xac, 0xe4, 0xba, 0x23, 0x5c, 0x4f, 0xe4, 0xdc, 0xd6, 0xba, 0xf4, 0xf6, 0xf4, 0x94, 0x3e, 0xb6, 0xd2, 0x3e, 0xc6, 0x3d, 0x3c, 0x63, 0x11, 0x69, 0x97, 0xc7, 0x9d, 0x9b, 0xae, 0x7e, 0x35, 0xa7, 0xf3, 0x8d, 0xcc, 0x52, 0x62, 0x59, 0x98, 0xe9, 0x7f, 0xb6, 0x7f, 0x89, 0xc1, 0x85, 0x35, 0xeb, 0x34, 0x51, 0xfc, 0x9b, 0xa8, 0xdb, 0x31, 0x88, 0x5f, 0xff, 0xfe, 0xff, 0xbc, 0x2b, 0x7c, 0x87, 0x82, 0x78, 0x82, 0xc3, 0x52, 0xb6, 0x81, 0x27, 0xc7, 0x9, 0x27, 0xed, 0xdf, 0x19, 0x1f, 0x8b, 0xfd, 0x3b, 0x87, 0xd2, 0x6b, 0x69, 0xc7, 0x51, 0x65, 0x24, 0xe2, 0x3d, 0xd6, 0x76, 0x3a, 0x70, 0x6c, 0x9e, 0x4e, 0x9b, 0xf6, 0x55, 0x5, 0x3b, 0x3c, 0xf7, 0x24, 0xd4, 0x82, 0x51, 0x97, 0x4f, 0x17, 0x75, 0xae, 0xa7, 0xef, 0x33, 0xad, 0xbd, 0x8, 0x61, 0x34, 0x20, 0xb4, 0x80, 0x1a, 0xb7, 0xed, 0xe, 0xdd, 0xce, 0x0, 0x78, 0x68, 0x73, 0x55, - 0xf5, 0x97, 0xa1, 0xff, 0xcf, 0x40, 0x0, 0x5b, 0x50, 0xc9, 0xfe, 0xc6, 0x1a, 0xaf, 0x61, 0xf8, 0xf5, 0x56, 0xd8, 0xde, 0xeb, 0x67, 0x4b, 0x4a, 0x42, 0xb0, 0xf2, 0x29, 0xf1, 0x7e, 0x83, 0x2b, 0xd5, 0x25, 0xd3, 0xca, 0x42, 0x9f, 0xe9, 0xeb, 0x95, 0x4e, 0x5f, 0x6, 0xcf, 0xa1, 0x27, 0x23, 0x39, 0x6e, 0xdb, 0x65, 0xe, 0xbf, 0x7f, 0x2d, 0x72, 0x21, 0xda, 0x1b, 0x98, 0xba, 0x3, 0xfe, 0x75, 0xdb, 0x28, 0x92, 0x8a, 0xb5, 0x25, 0xc7, 0x76, 0xf7, 0xfe, 0x87, 0x16, 0x96, 0xbe, 0x70, 0x3b, 0x60, 0x49, 0x7, 0xbe, 0xb4, 0x71, 0xf9, 0x56, 0x75, 0xac, 0xf1, 0x1a, 0x4a, 0x7b, 0x9f, 0xb8, 0x75, 0xd0, 0xf9, 0xdf, 0xc9, 0xd2, 0x50, 0xc9, 0xd, 0x39, 0x70, 0x20, 0x52, 0x6e, 0xb0, 0xb1, 0x60, 0x64, 0x9e, 0xff, 0xc2, 0x47, 0xab, 0x81, 0x19, 0xb2, 0xe2, 0xf7, 0xb1, 0x74, 0x6b, 0xb0, 0xf2, 0xff, 0xd4, 0xa7, 0x1a, 0xe0, 0x30, 0x75, 0x77, 0xa8, 0xf0, 0x5c, 0xe0, 0x3c, 0x2a, 0x52, 0xd9, 0x1, 0xe3, 0xd0, 0xe4, 0xd2, 0x1c, 0xf9, 0x18, 0xe7, 0xf4, 0xb1, 0x6c, 0x87, 0x15, 0x91, 0x3a, 0xe9, 0x8c, 0xc3, 0xaf, 0xe6, 0xc2, 0x65, 0x8, 0x86, 0x96, 0xa3, 0xac, 0xc3, 0xce, 0xa3, 0x60, 0xe5, 0xef, 0x62, 0xf7, 0x92, 0x80, 0x9b, 0xe1, 0x99, 0x79, 0x79, 0xf1, 0x9, 0x38, 0x28, 0x3b, 0xe9, 0xbb, 0x3, 0x4d, 0xc6, 0x62, 0x61, 0x58, 0x3e, 0xa4, 0x95, 0xe6, 0x8d, 0x30, 0xe8, 0x79, 0x97, 0xd5, 0x9a, 0x15, 0x1b, 0xbc, 0xb7, 0xcd, 0x44, 0x75, 0x19, 0x24, 0x57, 0xf1, 0xfa, 0xdb, 0x55, 0x91, 0x37, 0xc6, 0x1a, 0xaf, 0x61, 0xfc, 0x30, 0x75, 0x16, 0x59, 0x46, 0xf8, - 0x71, 0x70, 0xb9, 0x5c, 0x1, 0x37, 0xd0, 0x1c, 0xaf, 0x9, 0xe6, 0x13, 0x78, 0xe9, 0x49, 0x6d, 0x5d, 0x5f, 0xe6, 0xf1, 0x6b, 0xee, 0x5a, 0x8d, 0x2e, 0x82, 0x45, 0xec, 0x19, 0xc1, 0x91, 0x4c, 0x52, 0x7d, 0x31, 0x38, 0x7e, 0xa7, 0x49, 0xff, 0xb1, 0xba, 0xce, 0xca, 0xff, 0x33, 0x98, 0x1f, 0x66, 0x7f, 0xc5, 0xfe, 0xd2, 0xcf, 0x5e, 0x8d, 0xa0, 0xb9, 0xb2, 0x4d, 0x62, 0xfb, 0xe7, 0x90, 0x64, 0xed, 0x58, 0xe3, 0x35, 0x8c, 0xff, 0x96, 0x14, 0xd0, 0xf6, 0x2e, 0x92, 0x66, 0x47, 0xb8, 0x29, 0x84, 0x1e, 0xf1, 0xe6, 0xd8, 0xfb, 0x2b, 0xb3, 0x87, 0xbf, 0xb1, 0x2c, 0xf3, 0xf8, 0xd5, 0xac, 0x51, 0x89, 0x2b, 0x71, 0x95, 0xd8, 0x89, 0x6e, 0x72, 0x8f, 0xd2, 0x2e, 0x9d, 0x94, 0x3f, 0xc4, 0x3, 0x77, 0x9c, 0x6b, 0xae, 0xa5, 0xfa, 0xfc, 0xa6, 0x7a, 0x3b, 0x79, 0x53, 0x6d, 0x63, 0x77, 0xf8, 0xfd, 0xb9, 0xd8, 0xa6, 0x7f, 0x7d, 0x72, 0x7b, 0x81, 0x24, 0x89, 0x5, 0xfd, 0xe6, 0x58, 0xe3, 0x35, 0x94, 0x96, 0xc7, 0x85, 0x52, 0x4f, 0x7b, 0xe0, 0x1d, 0xf7, 0x24, 0x66, 0xbf, 0x50, 0xfb, 0x21, 0xa2, 0x4b, 0xdd, 0x9d, 0xa4, 0x62, 0x9d, 0x98, 0x79, 0xfc, 0x42, 0x6f, 0x76, 0x41, 0xfb, 0x27, 0x47, 0x80, 0xa, 0x37, 0xcd, 0x43, 0xe5, 0x5e, 0x5d, 0xf1, 0xe5, 0xa9, 0xd1, 0x57, 0x1e, 0xe5, 0x28, 0x1c, 0x76, 0xbd, 0x9a, 0x6f, 0x48, 0x28, 0x2e, 0x6, 0xab, 0x23, 0xfa, 0xa0, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xed, 0x3f, 0xc7, 0xb1, 0x4a, 0x55, 0x13, 0xbb, 0x74, 0x75, 0x27, 0xdb, 0xff, 0xca, 0xc2, 0xaf, 0x6b, 0x35, 0xa7, 0x52, 0x5f, 0xb4, 0xf1, 0x9e, 0x64, 0xc6, - 0xf1, 0xab, 0xdb, 0x51, 0x87, 0xe2, 0x6a, 0xb6, 0x7b, 0x6c, 0x92, 0x1b, 0xc0, 0x34, 0x96, 0xbf, 0xd5, 0xb8, 0x0, 0x2c, 0x79, 0xd, 0x4b, 0xfb, 0xdc, 0xad, 0x84, 0x99, 0xfe, 0x98, 0xc8, 0x86, 0xaa, 0xd8, 0xc1, 0x7e, 0xbf, 0xb5, 0xbf, 0x67, 0x4f, 0x84, 0xeb, 0xd3, 0x55, 0x4d, 0xaa, 0x55, 0xc7, 0x7c, 0xff, 0xab, 0x61, 0xf2, 0xef, 0x90, 0x17, 0x51, 0xae, 0x3a, 0xff, 0x4e, 0xbf, 0xcf, 0xef, 0x96, 0x2c, 0xfc, 0x4c, 0x4e, 0xa5, 0x68, 0x46, 0x51, 0xa1, 0x8d, 0x2, 0xff, 0x85, 0x7f, 0x70, 0x15, 0xa8, 0x58, 0x25, 0xdc, 0x3f, 0x51, 0x52, 0x72, 0xfb, 0xe7, 0xb6, 0xdf, 0x8d, 0x20, 0x34, 0xca, 0x8f, 0x78, 0xdd, 0xad, 0xbf, 0x8d, 0xf0, 0x4, 0xe, 0x6b, 0xdb, 0xbe, 0x7b, 0xbe, 0x55, 0xdd, 0x30, 0xbb, 0x9a, 0x54, 0x1f, 0x3a, 0x27, 0xe7, 0x79, 0x6a, 0xdb, 0x54, 0xe5, 0xb1, 0x8d, 0x9b, 0xce, 0x7a, 0x7f, 0x79, 0xa8, 0xbf, 0xfb, 0xf7, 0xe6, 0xff, 0x8e, 0xba, 0xbc, 0xd8, 0x96, 0x8b, 0x58, 0xd0, 0xda, 0x7e, 0x35, 0xc2, 0xbd, 0xa8, 0x71, 0x35, 0x2, 0x7f, 0x62, 0xfc, 0xaa, 0xeb, 0xa3, 0x37, 0x7e, 0xe5, 0xd8, 0xfe, 0x2f, 0xa4, 0xc7, 0xda, 0xdf, 0xca, 0xd6, 0xba, 0x96, 0x3e, 0xcc, 0x6f, 0x31, 0x6, 0x95, 0x62, 0xa6, 0xaf, 0xe7, 0xbd, 0x6d, 0x36, 0x12, 0x41, 0xa3, 0x83, 0xa8, 0xa5, 0x5a, 0x65, 0x5d, 0x95, 0x38, 0x4c, 0x3e, 0xca, 0x85, 0xb6, 0x7f, 0xcf, 0x30, 0x15, 0xf4, 0xdf, 0xbe, 0xbc, 0xb1, 0xa, 0xd5, 0x41, 0x87, 0x43, 0x31, 0xd, 0x9d, 0x1e, 0x1a, 0xf3, 0xf9, 0xb6, 0xb1, 0xa6, 0xa7, 0x47, 0xa8, 0x9b, 0x1d, 0xb, 0x24, 0x9b, 0xbe, 0xe1, - 0x7, 0x6e, 0xfc, 0x65, 0x41, 0x5a, 0xfb, 0x20, 0xc7, 0xb8, 0xb, 0xbf, 0x1f, 0x38, 0x66, 0x45, 0x47, 0xf4, 0xff, 0xa9, 0x75, 0xac, 0xdb, 0x3f, 0x94, 0x5e, 0xd3, 0x39, 0x97, 0x7c, 0xda, 0x21, 0xb3, 0x79, 0xa4, 0x1e, 0x96, 0x79, 0xbb, 0x54, 0xc0, 0xf3, 0xc8, 0x60, 0xbe, 0xc7, 0x61, 0xf2, 0xef, 0xd1, 0x3b, 0x61, 0x70, 0x3e, 0xdf, 0xd7, 0x3, 0x3f, 0x9, 0x52, 0x37, 0x43, 0xf4, 0x3a, 0xb, 0x51, 0x3c, 0x78, 0x31, 0xe4, 0x75, 0xf, 0xe3, 0xd7, 0x7c, 0xe, 0x13, 0x68, 0x85, 0x60, 0x24, 0xca, 0x8c, 0x82, 0x33, 0x8e, 0xff, 0x8e, 0xef, 0xdf, 0x55, 0x1f, 0xdd, 0x48, 0xdd, 0xf, 0x78, 0xdf, 0x9e, 0x40, 0xfd, 0xf9, 0x36, 0x49, 0xa5, 0x6, 0xa0, 0xba, 0x67, 0x14, 0xfa, 0xef, 0x76, 0x1e, 0x7a, 0x90, 0x3, 0x81, 0xda, 0xdd, 0x1b, 0xa4, 0xd7, 0x3b, 0x94, 0x8b, 0x8d, 0x14, 0x51, 0x7a, 0x72, 0x4f, 0x57, 0x84, 0xa0, 0x86, 0x43, 0xdf, 0x89, 0xf1, 0x3f, 0x9e, 0x34, 0x7b, 0x66, 0xe1, 0xb3, 0xfa, 0x15, 0x94, 0x69, 0x75, 0x1d, 0xa4, 0x56, 0x19, 0x6b, 0xbc, 0x86, 0xc9, 0x9b, 0x3, 0x8d, 0x28, 0x96, 0x9f, 0xb6, 0xc6, 0x2e, 0x59, 0xbb, 0x7, 0xf7, 0x3, 0x94, 0xd, 0xe4, 0x1f, 0x7e, 0xef, 0x90, 0x24, 0xe6, 0x3d, 0x4, 0x4c, 0x1, 0x2a, 0x2a, 0xe9, 0xc9, 0xf6, 0xf6, 0xf6, 0x87, 0x9c, 0xe3, 0x91, 0xa0, 0x9d, 0xe9, 0x9c, 0x5f, 0xbf, 0x3f, 0xe9, 0x5c, 0xca, 0xa5, 0xa1, 0x5f, 0x95, 0x91, 0xf7, 0xdc, 0x7b, 0x1c, 0xcd, 0x2d, 0xe5, 0xf4, 0x4b, 0xe5, 0xfd, 0xd6, 0x78, 0x62, 0x27, 0x7a, 0x88, 0x54, 0xcb, 0x95, 0x62, 0xf8, 0x7e, 0xe5, 0x35, 0x6b, 0x2e, - 0xc6, 0xae, 0xf9, 0xd4, 0xde, 0x84, 0x33, 0xc2, 0x75, 0x47, 0xac, 0x78, 0x11, 0x76, 0xc6, 0x69, 0xed, 0xc8, 0xdb, 0x68, 0x5d, 0xbf, 0x55, 0x7b, 0x8e, 0xb8, 0x13, 0x48, 0x72, 0xad, 0xc1, 0x7c, 0x76, 0x5e, 0x77, 0xc3, 0xad, 0x4b, 0x86, 0x33, 0xce, 0x6d, 0x66, 0xf3, 0x9b, 0x8b, 0x50, 0xa1, 0xbb, 0xd, 0x67, 0x42, 0x88, 0xf3, 0x76, 0x7b, 0x4d, 0xb7, 0x4e, 0x7f, 0xe1, 0x59, 0xf3, 0xfe, 0xfd, 0x5, 0x2d, 0xe1, 0xdb, 0xbe, 0x1a, 0x7b, 0x2f, 0xa0, 0xd9, 0x2e, 0x1, 0x89, 0x91, 0xba, 0xf6, 0x95, 0xf0, 0x17, 0xa0, 0x90, 0x7d, 0x83, 0x48, 0x64, 0x98, 0x7e, 0xba, 0x90, 0x4a, 0x91, 0x93, 0xc6, 0x6b, 0x83, 0xe1, 0xed, 0xdf, 0x3, 0x3e, 0x76, 0x47, 0x51, 0x8a, 0x2e, 0x4d, 0x87, 0x5f, 0x55, 0x47, 0x8e, 0x2e, 0xeb, 0x2, 0xb5, 0xfd, 0xdd, 0xf4, 0x1e, 0xac, 0xfd, 0xec, 0xdf, 0xe2, 0x6a, 0xa9, 0x73, 0x25, 0x75, 0x72, 0x73, 0x88, 0x3a, 0x1a, 0xfb, 0x87, 0x51, 0x3c, 0x88, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0x8d, 0x85, 0xae, 0x22, 0x5e, 0xab, 0xf9, 0x4a, 0x53, 0xad, 0xa2, 0x8b, 0x76, 0xaa, 0x53, 0x83, 0x50, 0x2f, 0x6f, 0x3, 0x70, 0x6c, 0x79, 0x1, 0x8e, 0xea, 0x9e, 0x67, 0xfd, 0x73, 0x10, 0x3d, 0xe3, 0xe2, 0x3, 0x6b, 0x5e, 0xb8, 0x6, 0xf2, 0xb9, 0x44, 0x2c, 0x85, 0xe4, 0x22, 0x15, 0x94, 0x9f, 0xae, 0xbe, 0x4c, 0xfb, 0xca, 0x34, 0x93, 0x3b, 0x4f, 0xdc, 0xb2, 0x65, 0x8b, 0x94, 0xf9, 0xfd, 0x23, 0x4a, 0x29, 0xff, 0xe9, 0x7f, 0x9a, 0xc, 0xc1, 0xa7, 0x57, 0x51, 0xf6, 0x93, 0x98, 0xff, 0x71, 0x1b, 0x3d, 0xa3, - 0x71, 0x6c, 0x52, 0xa0, 0x7b, 0xd6, 0x26, 0x1c, 0xdf, 0xf, 0x10, 0x33, 0xde, 0xf8, 0x4f, 0xbe, 0x34, 0x27, 0xef, 0xbd, 0x4a, 0x36, 0x78, 0xf0, 0x14, 0xe6, 0x34, 0xde, 0x50, 0x39, 0x4c, 0x5f, 0x8f, 0x35, 0x4d, 0xf9, 0xed, 0x3d, 0x6b, 0xfc, 0x3e, 0x22, 0x5a, 0xf3, 0xac, 0x72, 0xe, 0x59, 0x9c, 0x6a, 0xfe, 0xeb, 0x3, 0x87, 0xa5, 0x51, 0xe0, 0x3f, 0x7d, 0xd1, 0x33, 0x2c, 0x97, 0xb7, 0x60, 0xe7, 0x0, 0xf, 0x3f, 0xf1, 0x6b, 0x18, 0xb9, 0x4a, 0xc0, 0x3e, 0x2f, 0x8, 0xd7, 0xe1, 0xf8, 0x78, 0x82, 0xfe, 0xea, 0xfb, 0x15, 0x37, 0xda, 0xf9, 0x7a, 0xff, 0x77, 0x7d, 0xd6, 0x44, 0xbd, 0xbd, 0x93, 0xe7, 0x4b, 0x4e, 0x37, 0x7e, 0x4b, 0x6b, 0x27, 0xb2, 0xf1, 0xe, 0xf8, 0x67, 0x38, 0xc0, 0x57, 0xcc, 0x64, 0xf8, 0xf1, 0x92, 0x89, 0x85, 0xc4, 0x6d, 0x4a, 0x87, 0xe1, 0x48, 0xbf, 0x1f, 0x22, 0x87, 0x4b, 0xed, 0xf6, 0xeb, 0x1f, 0x78, 0x7f, 0x43, 0xe9, 0x79, 0xf5, 0x17, 0x23, 0x38, 0x95, 0x47, 0x5, 0x8c, 0x55, 0xe8, 0xfd, 0x4, 0xd6, 0xb2, 0x78, 0x94, 0x6a, 0xfb, 0xec, 0x63, 0xa6, 0xe4, 0xf6, 0x6e, 0xff, 0x24, 0xf2, 0x74, 0x7b, 0x6e, 0x49, 0xdf, 0x5f, 0x51, 0x56, 0xb3, 0xad, 0x9, 0x13, 0x94, 0x6, 0x51, 0xf5, 0x80, 0x27, 0xe8, 0x45, 0xf8, 0xfd, 0xba, 0x84, 0x93, 0xed, 0xb8, 0xc7, 0x36, 0x7, 0x36, 0x8c, 0x31, 0x8f, 0x9f, 0xac, 0x79, 0x33, 0x44, 0xdb, 0x5b, 0x49, 0xad, 0xff, 0xb2, 0x75, 0xc, 0x7, 0xc7, 0xaf, 0x6a, 0xc8, 0xbf, 0xaf, 0x42, 0x45, 0x30, 0x97, 0xa, 0xa0, 0x67, 0x87, 0xcb, 0xff, 0x91, 0xd2, 0xe1, 0x23, 0x45, 0xf0, 0x6f, - 0xab, 0xd4, 0xdb, 0xa6, 0xf8, 0x69, 0x29, 0xf4, 0xd7, 0xe4, 0x52, 0xab, 0xc9, 0x36, 0x60, 0x3a, 0x49, 0xb2, 0x5e, 0x5c, 0xea, 0x9b, 0x43, 0x35, 0xb1, 0xd3, 0x8e, 0x21, 0x8e, 0x1f, 0xbb, 0xc2, 0x3b, 0xbd, 0x12, 0xfb, 0x4, 0xd5, 0xe6, 0xbf, 0xbb, 0x2b, 0x76, 0x8e, 0x35, 0x5e, 0x1f, 0x84, 0x9f, 0xac, 0x53, 0xf9, 0x17, 0xfb, 0x6b, 0xfc, 0xc8, 0x68, 0xe2, 0xb7, 0xb4, 0x52, 0xe7, 0x82, 0x36, 0x7e, 0x6c, 0xff, 0x76, 0xf2, 0x37, 0xf6, 0x6f, 0x3f, 0xe3, 0xf1, 0x13, 0xf8, 0xe4, 0xc9, 0xf2, 0xef, 0x24, 0xf9, 0xdd, 0xf9, 0xf8, 0x1b, 0x39, 0xa7, 0x12, 0x3f, 0x79, 0x22, 0x99, 0xf8, 0x29, 0x8c, 0xd7, 0xd4, 0xb5, 0x53, 0xfe, 0x72, 0x3d, 0x63, 0xcd, 0x60, 0xe, 0xca, 0x3f, 0xe4, 0x9d, 0x90, 0x7f, 0x97, 0x9f, 0x34, 0x7f, 0xd9, 0xf5, 0xc8, 0xc3, 0x7, 0x9a, 0x7d, 0x33, 0xf1, 0xb4, 0x28, 0x47, 0x44, 0x7a, 0x70, 0xc6, 0x73, 0x25, 0x68, 0x52, 0xb, 0x80, 0x6a, 0x7d, 0x32, 0x76, 0x6b, 0x62, 0x1f, 0x51, 0x23, 0xd4, 0x5e, 0xfa, 0xda, 0x49, 0xf2, 0xef, 0xb4, 0xdb, 0xd7, 0x2b, 0xba, 0x4, 0xf0, 0x45, 0xf2, 0x1, 0xae, 0x73, 0xb2, 0xe1, 0x46, 0x10, 0x2c, 0x1e, 0x6f, 0x12, 0x30, 0xd, 0xb0, 0xe3, 0xc9, 0xd3, 0x7d, 0xbf, 0xc9, 0xbc, 0x86, 0xda, 0xc2, 0x7e, 0x26, 0xf3, 0x45, 0x1f, 0xd2, 0xeb, 0x9b, 0xf0, 0xd1, 0x22, 0xf2, 0xbc, 0x18, 0xb5, 0xb8, 0xcf, 0x1f, 0x8, 0x58, 0xfc, 0xa7, 0x9e, 0xc4, 0x7f, 0x4b, 0x95, 0x12, 0xc8, 0xf7, 0x71, 0xf6, 0x86, 0xb0, 0x9c, 0x20, 0x84, 0x9a, 0x34, 0x74, 0xcd, 0x7a, 0xff, 0x92, 0xd6, 0x36, 0x12, 0xf4, 0xc8, 0x7f, - 0xa9, 0xb8, 0x84, 0xc7, 0xeb, 0xc, 0xaf, 0x20, 0xfd, 0x9f, 0x63, 0xcd, 0xaf, 0x9f, 0xd8, 0x2f, 0x90, 0xda, 0x41, 0xa7, 0x7d, 0x7e, 0x24, 0xf4, 0xf6, 0x8f, 0xa1, 0xed, 0x4b, 0x4, 0x20, 0x6e, 0xd9, 0x6d, 0x36, 0x3, 0x55, 0xf1, 0x1a, 0xf8, 0x6, 0x5b, 0x93, 0xc8, 0xfc, 0xfc, 0xf4, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x2, 0x7d, 0x5c, 0xf4, 0x35, 0xb5, 0x7f, 0x98, 0xe3, 0x72, 0xf6, 0x1a, 0x8, 0x14, 0x54, 0xc9, 0x7b, 0xc1, 0x2, 0xd6, 0xad, 0xea, 0x9, 0xc4, 0xc7, 0xba, 0x7f, 0xa6, 0xa3, 0xbd, 0x6f, 0x4b, 0x98, 0x10, 0xa4, 0x3e, 0x15, 0xb8, 0xaf, 0x44, 0x57, 0x8, 0x8, 0xaf, 0xbf, 0x3c, 0xf8, 0x3e, 0x65, 0x3d, 0x5f, 0x22, 0x91, 0xa0, 0xea, 0x2d, 0xe3, 0xfa, 0x8d, 0xda, 0xc3, 0xf, 0x4e, 0xa6, 0x1c, 0x3b, 0x58, 0x2c, 0x7f, 0x5, 0xe8, 0x69, 0x5c, 0x2d, 0x75, 0x13, 0xce, 0x40, 0x78, 0xfa, 0x11, 0xfd, 0xd3, 0x1, 0x3d, 0x65, 0xc3, 0x18, 0x7a, 0x53, 0xfd, 0x5d, 0xb1, 0x5f, 0x5, 0x34, 0x99, 0x59, 0xd3, 0xa5, 0x44, 0x8d, 0x8e, 0x35, 0x5e, 0x43, 0x69, 0x47, 0xe1, 0x7c, 0x4, 0x85, 0x7a, 0xf0, 0x55, 0xf7, 0xec, 0xf7, 0x51, 0xf9, 0x15, 0x7e, 0xb4, 0xa, 0xdf, 0x53, 0x81, 0x2b, 0x54, 0x2b, 0x9c, 0x3c, 0x6d, 0x7f, 0x9c, 0x2f, 0x4f, 0xa5, 0xdc, 0x33, 0xd5, 0xa2, 0x5c, 0xea, 0xa9, 0xc8, 0x3f, 0x1, 0x8a, 0x7c, 0x98, 0x1b, 0x10, 0x7e, 0x21, 0x98, 0x82, 0xc9, 0x4d, 0xbc, 0xf7, 0x6, 0x8d, 0xa4, 0xf6, 0xb2, 0xc0, 0xf9, 0x1c, 0x42, 0xcf, 0x5c, 0x85, 0x95, 0xf4, 0x23, 0x1b, 0x4f, 0x85, 0xcf, 0xef, 0xa7, 0xfe, 0xdb, 0x22, 0xea, - 0x2f, 0x6, 0xd0, 0x6f, 0xc5, 0xc0, 0x4, 0x86, 0xc9, 0xdf, 0x1c, 0xdc, 0x75, 0xfc, 0x61, 0x88, 0xf2, 0x69, 0x1f, 0x9f, 0xe, 0x35, 0x2d, 0x85, 0xc2, 0x1d, 0xe6, 0x50, 0x74, 0x7f, 0xcf, 0x6b, 0xca, 0xe8, 0xc7, 0x93, 0x59, 0xf6, 0x5f, 0x9, 0x4f, 0x8d, 0x3f, 0xb4, 0x82, 0x2c, 0x44, 0x3a, 0xfb, 0x65, 0xac, 0xf9, 0x2b, 0xad, 0xfc, 0xdf, 0xe5, 0x60, 0x9b, 0x9d, 0x9e, 0xb3, 0x97, 0x88, 0xbf, 0x27, 0x39, 0xac, 0x3f, 0x39, 0xde, 0xe1, 0x76, 0x5d, 0x53, 0xeb, 0x5c, 0xa7, 0x97, 0x31, 0xc3, 0x3f, 0xdd, 0xf7, 0xe7, 0x6e, 0x9c, 0x62, 0x39, 0x7, 0xb9, 0xe8, 0x2d, 0xc0, 0x23, 0x5c, 0xda, 0xf8, 0x64, 0xaa, 0x6d, 0x16, 0x31, 0xe4, 0x6e, 0x80, 0xf1, 0x9, 0x98, 0x12, 0x42, 0x5f, 0x88, 0x82, 0x5e, 0xdf, 0x5e, 0x12, 0x62, 0x44, 0x87, 0xc5, 0x17, 0x5c, 0x1d, 0x3d, 0xf, 0xba, 0xc0, 0x66, 0xea, 0x64, 0xa2, 0xbe, 0xb2, 0xfa, 0x49, 0xb6, 0x1f, 0x2, 0xfa, 0x39, 0x24, 0x5, 0x26, 0x3d, 0x8d, 0x0, 0x1b, 0x6f, 0xd, 0x75, 0xd8, 0xb5, 0x75, 0xe7, 0xf0, 0xf1, 0x81, 0x51, 0xb7, 0x5f, 0xb6, 0x9, 0xe8, 0x28, 0x3e, 0xa8, 0xde, 0x1e, 0x29, 0x8b, 0xb2, 0x5, 0x46, 0xa5, 0xd3, 0x3, 0x68, 0x89, 0x76, 0x37, 0x12, 0xc9, 0x20, 0xcc, 0x32, 0x39, 0x15, 0xfd, 0xab, 0x70, 0x1f, 0x42, 0xff, 0xde, 0xf6, 0x6d, 0xe8, 0xbd, 0x47, 0x3, 0x7e, 0x6b, 0xff, 0x3f, 0xdf, 0x64, 0xef, 0x6d, 0x17, 0xc3, 0x8, 0xda, 0x67, 0x35, 0xa2, 0x26, 0xc3, 0x2f, 0x3d, 0x8e, 0x35, 0x1, 0xdd, 0xb6, 0x89, 0x38, 0x4e, 0x60, 0xe3, 0x2f, 0xcf, 0xe1, 0x2f, 0xfc, 0x7e, 0xe7, 0x67, 0x4b, - 0x9c, 0xcf, 0x3a, 0x93, 0x54, 0xff, 0x26, 0x4e, 0xd6, 0xbf, 0x2b, 0xe4, 0x2, 0x58, 0x1, 0xc8, 0xac, 0xf8, 0x46, 0x1e, 0x5f, 0x3e, 0x72, 0xfb, 0xf, 0x87, 0x39, 0x1d, 0x7b, 0x83, 0x73, 0xa, 0x3a, 0x4b, 0x4e, 0xc1, 0xfe, 0xb, 0xbf, 0x7b, 0x3b, 0xf5, 0xfd, 0x97, 0x49, 0xd1, 0x4, 0x55, 0x36, 0xa7, 0xc0, 0xaf, 0x43, 0xfd, 0xdf, 0x9a, 0x17, 0xa6, 0xa1, 0xda, 0x9e, 0x3b, 0x70, 0x10, 0x74, 0xe1, 0xf2, 0x62, 0x1e, 0xae, 0x94, 0x41, 0xf7, 0xe4, 0x3, 0xf, 0xef, 0xe, 0xe7, 0x50, 0x3b, 0x0, 0x27, 0xf6, 0x8b, 0x63, 0xe3, 0x37, 0x38, 0x8c, 0x85, 0x28, 0xa1, 0x7f, 0x6e, 0x14, 0x1e, 0x95, 0x3f, 0x7, 0x5d, 0xff, 0x53, 0xca, 0x0, 0x3a, 0xfd, 0xeb, 0x69, 0x9a, 0x93, 0x9f, 0xd2, 0xf9, 0x89, 0x32, 0xba, 0xbb, 0xf3, 0xc0, 0x25, 0x7b, 0xd8, 0xf8, 0xb, 0xf9, 0x4a, 0xc9, 0x61, 0xee, 0xfc, 0xd1, 0x1a, 0x7f, 0x39, 0xb8, 0x59, 0x6f, 0xa5, 0x58, 0x59, 0xe3, 0x2f, 0x1d, 0x5c, 0x41, 0xf8, 0x91, 0x75, 0xf4, 0xf8, 0xc7, 0xa8, 0x6f, 0x41, 0xdf, 0x5c, 0xfe, 0x61, 0xfb, 0x95, 0x1d, 0x1f, 0xdf, 0x5, 0x2e, 0x39, 0x43, 0xc7, 0x5f, 0x86, 0xf2, 0xdf, 0x5b, 0x36, 0xff, 0xf9, 0x4e, 0x99, 0xff, 0x4c, 0xd4, 0x8b, 0x99, 0xe2, 0x3f, 0xc7, 0xd1, 0x16, 0x98, 0x6d, 0xdc, 0x25, 0x9f, 0x7f, 0x9e, 0x1e, 0xe8, 0xf9, 0xcb, 0x97, 0x9a, 0x36, 0x5e, 0xb, 0x9f, 0x57, 0x35, 0xbe, 0x87, 0xd9, 0x44, 0xa5, 0x72, 0xae, 0xc9, 0xf4, 0xc0, 0xb3, 0xc6, 0xc1, 0xa3, 0xa7, 0x96, 0xcd, 0x51, 0xf7, 0xd9, 0xf1, 0x1f, 0x7e, 0xe2, 0x8e, 0x33, 0x69, 0x23, 0x9f, 0xf6, 0x78, 0x4a, - 0x8b, 0xff, 0xa6, 0x59, 0xfc, 0xe7, 0x60, 0xfc, 0x57, 0xba, 0xfc, 0x32, 0xb4, 0x98, 0xbb, 0x2b, 0xa9, 0x73, 0x54, 0x56, 0x2b, 0xee, 0xc9, 0xfc, 0xfc, 0xc7, 0xbb, 0x9b, 0x31, 0x40, 0xed, 0xcb, 0x4b, 0x5d, 0x8e, 0xf3, 0x1e, 0xd0, 0x94, 0xe2, 0x79, 0x54, 0xfe, 0x7b, 0x1c, 0x8, 0x2d, 0x79, 0x10, 0xae, 0xe, 0xe3, 0x13, 0x7a, 0xe9, 0xf4, 0x96, 0x54, 0x44, 0x91, 0xaf, 0x52, 0xad, 0x45, 0xcf, 0xda, 0x1d, 0x3c, 0x1c, 0x11, 0x13, 0x52, 0x69, 0x22, 0xfe, 0x8b, 0x3f, 0xec, 0x1e, 0xf5, 0xf5, 0x49, 0x1f, 0xda, 0x7e, 0x9e, 0x39, 0x5, 0xf1, 0xe0, 0x4a, 0x4e, 0xed, 0x53, 0xba, 0xa2, 0xf4, 0xf9, 0x96, 0xfe, 0x4c, 0xa0, 0x66, 0x96, 0x61, 0x59, 0xb8, 0xad, 0x2b, 0x32, 0x1f, 0xef, 0xe4, 0x7d, 0x69, 0x9a, 0x21, 0x7, 0x5, 0xdb, 0xe2, 0xeb, 0x20, 0xea, 0xd0, 0xf5, 0xab, 0x6b, 0x8b, 0xfd, 0x83, 0xfa, 0x54, 0x5f, 0xfc, 0xd3, 0x12, 0x77, 0x8d, 0x20, 0xf7, 0x73, 0x3d, 0x11, 0x74, 0x53, 0x5f, 0xb7, 0xac, 0x56, 0x3d, 0xe3, 0xe2, 0xaf, 0xc2, 0xaf, 0x4e, 0xd5, 0x5f, 0x6e, 0xac, 0x37, 0x58, 0x70, 0x71, 0xc5, 0xa7, 0x80, 0x66, 0xf9, 0x2b, 0xc6, 0x91, 0x40, 0x2c, 0x40, 0x68, 0x59, 0xb7, 0xf3, 0x14, 0xd6, 0x4f, 0xb, 0x28, 0xc0, 0x60, 0x39, 0x85, 0xf1, 0x3, 0xaa, 0x3f, 0xdf, 0xe3, 0xd8, 0x58, 0x3d, 0x6f, 0x9b, 0x7d, 0x53, 0xe5, 0x3f, 0xa0, 0x61, 0xea, 0xe0, 0xf, 0x44, 0xfc, 0xe1, 0x95, 0xe3, 0x10, 0x13, 0xf4, 0xe9, 0x36, 0x6d, 0x18, 0xf3, 0x6, 0xc7, 0x13, 0xe, 0xd8, 0xff, 0xc6, 0x1a, 0xaf, 0xe1, 0xf2, 0x8, 0xdd, 0x71, 0x2e, 0xce, 0x99, 0x7c, - 0xd2, 0x62, 0x83, 0xe9, 0xe6, 0xc, 0xc8, 0xc7, 0x2, 0x49, 0xa1, 0xbb, 0x7c, 0x6e, 0x48, 0x4c, 0x3f, 0x7e, 0x55, 0x85, 0xd4, 0x7a, 0x67, 0x9b, 0x65, 0xd3, 0xdb, 0x3b, 0xd1, 0xa5, 0x50, 0x69, 0x17, 0xed, 0x43, 0x19, 0x11, 0x15, 0xa8, 0x2c, 0x7e, 0xdc, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x6b, 0xf3, 0x67, 0xe8, 0x8f, 0x24, 0xdf, 0x68, 0xda, 0xa8, 0xe8, 0x7c, 0x8, 0xe3, 0x5f, 0x8c, 0x80, 0x27, 0x50, 0xf0, 0x6a, 0xb2, 0x8e, 0x4c, 0xe6, 0xed, 0x41, 0xea, 0xa0, 0xc1, 0x57, 0x8d, 0x35, 0x7e, 0x54, 0x7f, 0x1c, 0xe6, 0x4a, 0x51, 0x16, 0xa1, 0x2f, 0x2c, 0x92, 0xbe, 0xe6, 0xc2, 0x10, 0xa0, 0x12, 0xb1, 0xd1, 0xfa, 0x37, 0x1a, 0xfb, 0x27, 0xa2, 0x5b, 0xb2, 0xe6, 0xda, 0x5a, 0xd8, 0x12, 0x6d, 0xae, 0x69, 0x47, 0xc, 0xfa, 0x5b, 0xbf, 0xb7, 0xec, 0xf, 0x9d, 0x3e, 0x4, 0xc7, 0x33, 0xd, 0x40, 0xbd, 0x4b, 0xe3, 0xad, 0x31, 0xe9, 0xfb, 0xf6, 0xaf, 0x28, 0x9e, 0x85, 0x5e, 0x3d, 0xa0, 0xdf, 0xa, 0x3f, 0x76, 0xa, 0x2d, 0x19, 0xb7, 0x7, 0x46, 0x8c, 0xdf, 0x9b, 0x2a, 0x35, 0xfe, 0xc3, 0x2a, 0xc3, 0xaf, 0x4c, 0x7, 0xd8, 0xfe, 0xb2, 0x51, 0x8a, 0x9b, 0xb1, 0xd6, 0xae, 0x91, 0x96, 0xff, 0x7c, 0xcb, 0xe0, 0x58, 0x86, 0x3c, 0x93, 0x6b, 0x41, 0xe1, 0x29, 0xc4, 0x4b, 0xb3, 0xf9, 0xb4, 0x9b, 0xc5, 0x98, 0x8b, 0xaa, 0x5a, 0x6a, 0x6d, 0xb7, 0x70, 0xe1, 0x39, 0x25, 0x41, 0xf3, 0xf6, 0x4b, 0x39, 0x7b, 0xfd, 0x88, 0x20, 0x5c, 0xbb, 0x63, 0xd, 0xed, 0xd7, 0x29, 0x73, 0xee, 0xd9, 0x83, 0xbb, 0x58, 0xfd, 0xcb, - 0x12, 0x3f, 0x6e, 0xfb, 0xc7, 0x1b, 0x7c, 0x89, 0x3b, 0x84, 0x77, 0xb8, 0xd, 0xcc, 0x3e, 0x8d, 0x5, 0xb4, 0x3a, 0xcc, 0xc7, 0x1c, 0xe1, 0x93, 0x5c, 0x95, 0xcf, 0xd, 0xea, 0x50, 0xdb, 0xf5, 0x1b, 0xf1, 0xea, 0xe9, 0xc7, 0xcf, 0x83, 0x5, 0xc5, 0xb5, 0x98, 0x8d, 0x24, 0x51, 0x83, 0x40, 0x5d, 0x7b, 0x3e, 0x1c, 0x1d, 0x78, 0x4a, 0x2f, 0x89, 0x73, 0x77, 0x22, 0x34, 0x1a, 0xfc, 0xc7, 0x13, 0x29, 0x2e, 0x34, 0x5a, 0x33, 0xce, 0x25, 0x68, 0x18, 0x37, 0x8b, 0x24, 0x2, 0x9a, 0x4b, 0xcf, 0xb7, 0x2a, 0x28, 0xe1, 0xeb, 0x6f, 0xd1, 0x2f, 0x0, 0x89, 0xdb, 0x70, 0x4a, 0x45, 0xe1, 0x5f, 0xcc, 0x0, 0x66, 0xbd, 0xed, 0xde, 0xe4, 0x57, 0xa3, 0x89, 0x84, 0x3e, 0x6c, 0x7c, 0x2f, 0xb5, 0xfe, 0xdd, 0x2e, 0xe2, 0xe9, 0xcf, 0x17, 0xb2, 0x22, 0x7a, 0x25, 0x8a, 0x90, 0xd7, 0xc2, 0xe1, 0x47, 0x88, 0x49, 0xa8, 0xb3, 0xfb, 0x33, 0xb5, 0x7, 0xd9, 0xbf, 0x51, 0xea, 0xbf, 0x1c, 0x8e, 0xf7, 0x60, 0xfe, 0x8f, 0x66, 0x39, 0x8, 0xdb, 0x7c, 0xd0, 0x80, 0x30, 0xc3, 0xa3, 0xa3, 0x69, 0xc7, 0x56, 0xe8, 0xe3, 0x63, 0x8c, 0x1, 0x29, 0x4f, 0xa, 0x91, 0x2a, 0xe5, 0xe3, 0x6c, 0x36, 0xf8, 0x6, 0xda, 0xd9, 0x5b, 0x32, 0xb1, 0x5e, 0x28, 0xe3, 0xf6, 0x9f, 0x67, 0x7e, 0xcc, 0x69, 0xf0, 0xd7, 0x52, 0x62, 0xf, 0x4b, 0x61, 0x22, 0x2f, 0x9f, 0xa5, 0xf3, 0xe, 0xc4, 0xdb, 0xdc, 0xb, 0xf, 0xc, 0xb4, 0xe4, 0x66, 0x3e, 0xfe, 0x79, 0xc9, 0x78, 0xfc, 0x4e, 0x25, 0x6a, 0x5f, 0x44, 0xcc, 0xd3, 0xe9, 0x11, 0xef, 0x9c, 0xd9, 0x14, 0x18, 0x7b, 0xbc, 0xaf, 0x7e, 0xf9, - 0xae, 0xee, 0xb5, 0xb2, 0x1b, 0xb5, 0x6e, 0xbb, 0xb6, 0xfe, 0x6a, 0xeb, 0xb4, 0xf0, 0x8f, 0xc6, 0xe9, 0x79, 0xba, 0xf8, 0x27, 0xb6, 0x9e, 0x46, 0xd7, 0x8d, 0x61, 0xe3, 0x7f, 0x94, 0xff, 0x14, 0x9c, 0x28, 0xa3, 0x3e, 0x1f, 0x37, 0x5d, 0x91, 0x12, 0x47, 0x38, 0x1e, 0xc5, 0xfe, 0x7, 0x99, 0x89, 0x42, 0xa6, 0xd5, 0x7f, 0x1b, 0xda, 0x9c, 0x77, 0x2, 0x54, 0xe8, 0x74, 0x88, 0x64, 0x2e, 0x8b, 0x1f, 0x72, 0x9d, 0xdc, 0x9e, 0xaa, 0xe, 0x5, 0x62, 0x15, 0x55, 0x77, 0xbd, 0x28, 0x67, 0x7, 0x46, 0x7a, 0xfd, 0x49, 0xbc, 0x65, 0x8f, 0xdc, 0xbd, 0xa, 0xf6, 0xcb, 0x4, 0x3e, 0x65, 0x9f, 0xe8, 0x2b, 0xa9, 0xf1, 0x39, 0x3c, 0xfe, 0x39, 0xe3, 0xf6, 0xfb, 0xd1, 0x35, 0x2c, 0x30, 0xe, 0x4c, 0x3d, 0x99, 0x1b, 0xa3, 0x6a, 0xe8, 0x67, 0xbf, 0x4c, 0x9c, 0x97, 0x12, 0xb7, 0xd4, 0xe1, 0x49, 0xab, 0x9f, 0x58, 0x3c, 0x8b, 0x61, 0x49, 0x8c, 0x77, 0xac, 0x79, 0x3, 0x2b, 0x5f, 0x9, 0x95, 0x45, 0xd4, 0x6b, 0xe2, 0xc, 0xfa, 0x21, 0xcc, 0xe1, 0xc1, 0xf, 0x33, 0x9f, 0xfb, 0xa1, 0xed, 0xcd, 0xfc, 0x4, 0xb4, 0x9c, 0xe5, 0x83, 0x2d, 0x1e, 0xe6, 0x4f, 0x5c, 0xbd, 0x63, 0x1b, 0xb0, 0x23, 0x11, 0x40, 0x87, 0x65, 0xe2, 0x48, 0xac, 0x7d, 0x9, 0x81, 0xb8, 0x69, 0x13, 0x9f, 0xa6, 0x7d, 0x78, 0x98, 0x7f, 0x96, 0x5a, 0x5f, 0x48, 0x6, 0x1f, 0xf8, 0x87, 0x6e, 0xf, 0x87, 0x9b, 0x4e, 0x9a, 0x7f, 0xe2, 0x9a, 0xa2, 0xf3, 0xd9, 0x78, 0xdc, 0x22, 0x36, 0x98, 0xd3, 0xad, 0xab, 0x91, 0xa1, 0xf5, 0x8f, 0x76, 0x30, 0x76, 0x57, 0xae, 0xbb, 0xb3, 0xa2, 0xcc, 0x3a, - 0xf2, 0x72, 0x74, 0x55, 0x62, 0xe0, 0xf1, 0x1a, 0x8e, 0x5a, 0x2d, 0x3c, 0xcf, 0x9, 0xf3, 0xaf, 0x1, 0x5b, 0xef, 0x9d, 0xb0, 0xfe, 0x69, 0x40, 0x6c, 0x72, 0x1f, 0xdb, 0xd7, 0x3a, 0xe8, 0x87, 0x5f, 0xcc, 0x8, 0x9e, 0xa5, 0xd6, 0x78, 0x3d, 0xef, 0x81, 0x68, 0x10, 0xf6, 0x66, 0xf3, 0xe3, 0x2a, 0x76, 0xb, 0x5f, 0x62, 0x9d, 0x78, 0xde, 0xa0, 0x3d, 0xa9, 0xd9, 0xad, 0x10, 0xf9, 0xe3, 0xf3, 0x71, 0x6c, 0xa7, 0xed, 0xe4, 0x88, 0xe5, 0x55, 0xdc, 0xc1, 0xc6, 0xb6, 0x6b, 0x19, 0x55, 0x71, 0x44, 0x14, 0x27, 0xe7, 0xb1, 0xe1, 0x6b, 0x32, 0xd9, 0xe2, 0x18, 0xe1, 0xf1, 0xf, 0xdd, 0xff, 0xdf, 0xc9, 0x9d, 0x8c, 0x22, 0xf1, 0x91, 0xca, 0xcf, 0xe8, 0xa9, 0xfd, 0x78, 0xf, 0x9d, 0x43, 0xa1, 0xdf, 0xc7, 0x85, 0xa2, 0x9a, 0xc1, 0x22, 0x3e, 0x47, 0x43, 0xff, 0x5a, 0x1f, 0xf3, 0x89, 0x94, 0x10, 0xcc, 0xf4, 0xf9, 0x62, 0x52, 0xeb, 0xd3, 0xf7, 0x40, 0xd5, 0xd8, 0xa2, 0x91, 0xb1, 0xd6, 0x17, 0x67, 0x1a, 0x7d, 0xa9, 0xc2, 0xf8, 0xda, 0xe4, 0xa0, 0x7f, 0xbb, 0x95, 0xe1, 0x74, 0xa1, 0xcd, 0x6f, 0xc1, 0xca, 0xf3, 0xde, 0xb6, 0x6a, 0xa4, 0xfb, 0xfe, 0x54, 0xa5, 0x9, 0xb4, 0xb7, 0x43, 0x1f, 0x7, 0xfd, 0xe8, 0x29, 0xd4, 0x1f, 0x29, 0x3d, 0xb7, 0xb6, 0x81, 0xf6, 0x6f, 0xca, 0x2, 0x7a, 0x9, 0x5c, 0xd4, 0x4d, 0x72, 0x14, 0x9e, 0x8f, 0x29, 0x58, 0x40, 0x2c, 0x8f, 0xa9, 0xe7, 0xb5, 0x33, 0x2e, 0x3e, 0xf1, 0x4c, 0xa7, 0x7, 0xe3, 0x25, 0x7, 0x8b, 0x63, 0x65, 0x83, 0xf1, 0x19, 0x4f, 0x82, 0x19, 0xf4, 0x89, 0x9e, 0x51, 0x78, 0x9e, 0x6c, 0xbe, 0xdb, - 0x8e, 0x3c, 0xa0, 0xbd, 0x97, 0xdf, 0x8c, 0x93, 0xc6, 0x47, 0x89, 0xb4, 0x13, 0xaa, 0xf7, 0x21, 0x17, 0xf4, 0x81, 0xdd, 0xd6, 0xe4, 0x3d, 0x91, 0x3, 0x3b, 0xc3, 0x77, 0x6c, 0xc0, 0x4, 0xf2, 0xfc, 0xac, 0xdc, 0x72, 0xbf, 0x8f, 0xfe, 0xcd, 0x18, 0x6b, 0xbc, 0x3e, 0x40, 0x1e, 0x2d, 0xfa, 0x35, 0xf7, 0x73, 0x2e, 0xce, 0x9b, 0xbc, 0x49, 0x8f, 0xbc, 0x5d, 0xdb, 0x10, 0xeb, 0x29, 0xd2, 0x98, 0x8c, 0xd2, 0x3f, 0x35, 0xa, 0xf8, 0x85, 0xdf, 0x2f, 0x4a, 0xe4, 0xc5, 0x4, 0x7e, 0x26, 0x9b, 0xfd, 0x28, 0xf2, 0x7, 0xd6, 0xca, 0xb3, 0x2c, 0xfb, 0x99, 0x15, 0xbf, 0x29, 0x14, 0x5e, 0x7b, 0x60, 0x75, 0xd0, 0xe4, 0x52, 0x88, 0x3e, 0xf6, 0xc2, 0xe3, 0x4d, 0xd1, 0xf5, 0xb8, 0x17, 0x9c, 0x52, 0xdb, 0xa6, 0x46, 0xd1, 0xa3, 0x8f, 0x39, 0x5e, 0x43, 0xe9, 0x3b, 0xdb, 0x4b, 0xa9, 0xaa, 0xeb, 0x7f, 0x61, 0xb7, 0x7d, 0x0, 0x73, 0xe5, 0x37, 0xa9, 0xf4, 0x61, 0x1, 0x15, 0xf7, 0xfa, 0xf5, 0x47, 0xb8, 0xd1, 0xe0, 0xbf, 0x6e, 0x6a, 0x29, 0x59, 0x1c, 0x18, 0x17, 0xfe, 0x6c, 0xad, 0xff, 0xad, 0x4e, 0x59, 0x9c, 0x21, 0xf3, 0x2e, 0x77, 0xd, 0x5b, 0x3f, 0x6d, 0xe7, 0x3, 0x44, 0x69, 0x44, 0x6d, 0xfd, 0xab, 0x7c, 0x8e, 0x67, 0x40, 0xbe, 0xbf, 0x74, 0xfd, 0x37, 0xf4, 0x44, 0x3f, 0x82, 0x42, 0xa2, 0x10, 0x2d, 0xb, 0xb7, 0xec, 0xd6, 0x94, 0x51, 0xef, 0xbf, 0xac, 0xbf, 0x2, 0x86, 0xd5, 0x5f, 0x95, 0x88, 0xe8, 0xfc, 0xeb, 0xfe, 0x3b, 0xc9, 0xee, 0xbf, 0xc6, 0xd6, 0x6, 0x57, 0xb9, 0xdf, 0x45, 0xcb, 0x19, 0xd7, 0x7f, 0x87, 0xf2, 0x9f, 0xe3, 0xfa, 0x6, - 0x7d, 0xa2, 0xf5, 0x49, 0xb5, 0xb8, 0x22, 0xe3, 0xfd, 0xf7, 0x8e, 0xe9, 0xb4, 0x3f, 0xe2, 0xbd, 0x25, 0x2e, 0xdf, 0x7c, 0xd5, 0xe7, 0x2a, 0xf0, 0x6e, 0x1f, 0x8f, 0x8e, 0xa0, 0x6d, 0xd2, 0xf4, 0x46, 0xee, 0x29, 0x93, 0x73, 0x4e, 0xc4, 0x3, 0x1d, 0x36, 0xdd, 0x58, 0x5b, 0x7c, 0x35, 0x1b, 0xcf, 0xa0, 0xcd, 0x49, 0x46, 0x4d, 0x43, 0xf8, 0xe2, 0x58, 0xe3, 0xf5, 0x41, 0xf2, 0x2f, 0x89, 0x8d, 0x60, 0x11, 0xf8, 0x2c, 0x7e, 0x9c, 0xf2, 0xe3, 0x22, 0xfb, 0x9c, 0x2e, 0xf7, 0x53, 0xb3, 0x3f, 0xd3, 0xd7, 0x3b, 0x9a, 0x2c, 0xd2, 0x72, 0xcf, 0x45, 0x41, 0x35, 0xcf, 0xca, 0xec, 0x23, 0xe1, 0x6, 0x1e, 0xfa, 0xee, 0x44, 0x11, 0x11, 0x21, 0xfb, 0xb, 0xa, 0x86, 0xad, 0xa7, 0xb9, 0xb9, 0xeb, 0x49, 0x68, 0xf7, 0xfd, 0x2a, 0x60, 0xd3, 0xc6, 0x99, 0xb7, 0xfe, 0x77, 0x48, 0xff, 0xd, 0x5f, 0xd7, 0x10, 0x5b, 0xc6, 0x6c, 0xe9, 0xfe, 0x3, 0x16, 0x3d, 0xea, 0xfd, 0x77, 0x3b, 0x81, 0x1a, 0x8c, 0x5a, 0x67, 0x59, 0xff, 0xb5, 0xe6, 0x77, 0x8f, 0xe9, 0x25, 0x54, 0x3a, 0xf2, 0x66, 0xdc, 0x7c, 0xb6, 0x4a, 0x9d, 0x82, 0x60, 0xa3, 0x16, 0x34, 0x3, 0x71, 0xc1, 0xe0, 0x46, 0x1e, 0x9f, 0xb6, 0x16, 0xf8, 0xcd, 0x9, 0x7f, 0xcd, 0x10, 0x96, 0x0, 0x5f, 0x1c, 0x49, 0xfc, 0xb4, 0xad, 0x7f, 0xe3, 0xc7, 0xf5, 0xaf, 0x77, 0x65, 0x3, 0xb9, 0x93, 0xdd, 0x4e, 0x23, 0x19, 0x15, 0xfc, 0x2c, 0xfd, 0x4b, 0xd5, 0xbb, 0xa5, 0x7f, 0x7d, 0xfe, 0x80, 0x94, 0x37, 0x8b, 0xb6, 0x3a, 0x80, 0x87, 0x35, 0x20, 0xf2, 0x24, 0x87, 0xb9, 0xbb, 0xae, 0xc2, 0x4c, 0x58, 0x1, 0xe3, - 0xba, 0xb, 0xfb, 0xb8, 0xba, 0x7a, 0xd5, 0x70, 0x4, 0x13, 0x3c, 0xfb, 0x8b, 0xc3, 0x78, 0x63, 0xac, 0xf9, 0x6d, 0x28, 0xdd, 0xbc, 0xab, 0x5, 0xb2, 0x3, 0x91, 0x23, 0xd4, 0xbb, 0xe4, 0x7b, 0x54, 0x29, 0x15, 0xef, 0x3e, 0x58, 0x32, 0x3e, 0x9f, 0x5f, 0xb3, 0xc6, 0xad, 0x39, 0xf5, 0xc5, 0xd6, 0x6a, 0x4b, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x9f, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xa9, 0x7f, 0x2a, 0xdb, 0x1a, 0x39, 0x9e, 0xde, 0xbf, 0x1b, 0x6b, 0xda, 0xfb, 0x84, 0x80, 0x44, 0xb0, 0xb6, 0x85, 0x85, 0xfc, 0x45, 0xb4, 0x7b, 0x46, 0x7d, 0x7c, 0xb2, 0x66, 0x1b, 0x8f, 0xb, 0xe6, 0x2b, 0x50, 0x23, 0xe8, 0xd3, 0xa5, 0xc8, 0x8f, 0x6b, 0x4, 0xea, 0xbc, 0x3d, 0x45, 0xa4, 0x3e, 0x4d, 0xdc, 0x4b, 0x24, 0x5, 0x7f, 0x15, 0xf, 0x4c, 0x79, 0x90, 0xd2, 0xb, 0xc1, 0x82, 0x87, 0xc0, 0x7, 0xd9, 0x81, 0x91, 0x5e, 0x7f, 0xc2, 0xbd, 0xdf, 0x63, 0x6c, 0x61, 0xcb, 0x53, 0xe3, 0xf3, 0x23, 0xf6, 0xb7, 0xaa, 0xa2, 0x97, 0x20, 0x1, 0xe3, 0x7c, 0xd6, 0x3b, 0x4c, 0xae, 0x3, 0x7, 0x8f, 0x50, 0x24, 0x9, 0xd5, 0x85, 0xdf, 0xe9, 0x42, 0x26, 0xda, 0x3b, 0x94, 0x66, 0xf3, 0x19, 0x6d, 0x93, 0xf4, 0xcd, 0xdc, 0x57, 0xa7, 0xea, 0xb3, 0x51, 0xc3, 0x85, 0x57, 0x2e, 0x81, 0xb9, 0x68, 0x50, 0xe5, 0xca, 0xfe, 0xd2, 0x7, 0x1a, 0xd1, 0xd2, 0x65, 0x7, 0x24, 0xec, 0x89, 0x88, 0xb3, 0x43, 0x93, 0xeb, 0xc9, 0x41, 0x69, 0x19, 0x36, 0xf7, 0x4, 0x5c, 0x2e, 0x47, 0xcf, 0x19, 0x97, 0xff, 0x25, 0x85, 0xdf, 0x79, 0x83, 0xf8, 0x8d, 0xf6, 0xf5, 0xe6, - 0xd5, 0xab, 0x31, 0x36, 0xdd, 0xfb, 0x9, 0xe0, 0x62, 0xf6, 0x3a, 0x54, 0xfe, 0x8d, 0x35, 0x1e, 0x1f, 0xba, 0xff, 0x5e, 0x51, 0x44, 0x65, 0xf5, 0xbe, 0x73, 0x7, 0x43, 0x40, 0x4b, 0x73, 0xf0, 0xc7, 0xca, 0x6, 0x29, 0x99, 0x22, 0xd3, 0xde, 0x4f, 0xe8, 0x21, 0x5, 0x88, 0xed, 0xb, 0x20, 0x50, 0x7e, 0x4a, 0xf6, 0x22, 0xd5, 0x1f, 0xba, 0x1c, 0xe3, 0xd1, 0x99, 0xd2, 0x1f, 0x4d, 0xbb, 0x98, 0xb9, 0x14, 0x61, 0x32, 0x37, 0x88, 0xbd, 0x44, 0xad, 0x6b, 0x9f, 0x8e, 0x90, 0x66, 0xd7, 0x8e, 0xf3, 0x9, 0xc1, 0xb1, 0x79, 0x3, 0x36, 0x21, 0xc7, 0x28, 0xcf, 0x71, 0x54, 0x7a, 0x1c, 0xab, 0x9f, 0xae, 0xda, 0xb8, 0x9, 0x89, 0x9c, 0x68, 0xc2, 0xd2, 0x78, 0x30, 0xef, 0x67, 0xfa, 0x86, 0x36, 0x56, 0x66, 0xfa, 0xe6, 0x3c, 0x9c, 0xfe, 0xf9, 0xcd, 0xa1, 0xf8, 0x7d, 0x58, 0x3c, 0xfe, 0xf, 0xfa, 0xf7, 0x6f, 0xe2, 0x37, 0x4f, 0x66, 0xab, 0x90, 0x99, 0x3d, 0x4d, 0x24, 0xe8, 0xab, 0x30, 0x14, 0xaf, 0xb1, 0xe6, 0xb7, 0xa1, 0xf4, 0x50, 0xff, 0xa3, 0x49, 0x91, 0x10, 0x23, 0xf4, 0x8e, 0x92, 0x9a, 0x38, 0x1a, 0xf8, 0xa5, 0xf3, 0x7f, 0x59, 0xfe, 0x21, 0x79, 0x70, 0x9, 0x5c, 0xcf, 0x9c, 0x43, 0x6c, 0xbe, 0xce, 0xe4, 0x1b, 0xd1, 0xc8, 0x62, 0xb6, 0x9c, 0x64, 0x58, 0xbe, 0xa7, 0xb1, 0xa6, 0x6b, 0x96, 0x14, 0x51, 0x7b, 0x21, 0x2a, 0x4d, 0x4e, 0xe1, 0xc7, 0xfc, 0xb7, 0x71, 0xd6, 0xa7, 0xd1, 0xf1, 0xdf, 0xa8, 0xfe, 0x78, 0x87, 0x9b, 0x23, 0x24, 0x10, 0xb, 0x60, 0x6e, 0x6c, 0x1f, 0xe7, 0x38, 0xba, 0x6, 0xfe, 0x5f, 0x5e, 0x6, 0xfd, 0x6e, 0x57, 0x8f, - 0xb2, 0xf7, 0x90, 0xc2, 0xf2, 0x97, 0x6c, 0xc2, 0xbb, 0xc7, 0xf3, 0x97, 0x54, 0x45, 0xd7, 0x1b, 0xb2, 0x2e, 0x97, 0x1b, 0x12, 0xe5, 0x3e, 0x18, 0xd7, 0x8c, 0xf4, 0xfa, 0x52, 0xfb, 0x7f, 0xa1, 0x72, 0x70, 0x75, 0x2f, 0x66, 0x8f, 0xf8, 0xfe, 0x3e, 0x60, 0xfc, 0x2f, 0x71, 0x8b, 0x3d, 0x9f, 0x78, 0x5a, 0xc6, 0xff, 0x86, 0x8d, 0x1f, 0x34, 0x6f, 0x82, 0x92, 0xdc, 0x2d, 0x5, 0x78, 0xa3, 0x83, 0x70, 0xf3, 0x76, 0x86, 0x9b, 0x37, 0x40, 0xe3, 0x5d, 0x1b, 0x17, 0x3a, 0xac, 0x1, 0x84, 0x8c, 0x8f, 0x1f, 0x88, 0x14, 0x4f, 0x72, 0x1c, 0xcf, 0xc4, 0x87, 0x5e, 0x5f, 0xcc, 0xf8, 0x2f, 0x17, 0x7, 0xa4, 0xd4, 0x9a, 0x19, 0xbc, 0xf6, 0x0, 0xb5, 0x5b, 0x62, 0x9f, 0xf, 0xb0, 0x31, 0xf1, 0x2, 0x7e, 0x74, 0xec, 0x17, 0x6e, 0xe, 0x53, 0xf9, 0x1, 0xcc, 0x8b, 0xb5, 0x70, 0x43, 0xe5, 0xdf, 0x7, 0xe0, 0x2d, 0xa5, 0x9a, 0x56, 0x4e, 0x1d, 0x93, 0xc2, 0xb1, 0xee, 0xaf, 0x43, 0xe9, 0x95, 0x9d, 0xcb, 0x89, 0x87, 0x38, 0x34, 0x44, 0x5e, 0xb0, 0x8e, 0xc8, 0xb9, 0x6b, 0xe8, 0x2b, 0x6f, 0xb8, 0xf7, 0xd9, 0x35, 0x32, 0x7d, 0x3d, 0xaa, 0xdf, 0xff, 0xcc, 0xf5, 0x12, 0x20, 0x27, 0x8a, 0x9e, 0x88, 0xae, 0x9e, 0x18, 0xaf, 0xa0, 0xdd, 0xb3, 0x42, 0x97, 0x42, 0xd7, 0xe7, 0x51, 0x76, 0x3c, 0xdf, 0x16, 0x21, 0xe8, 0x69, 0xb0, 0xc6, 0xa7, 0x15, 0xc2, 0xf5, 0x69, 0xaa, 0x6f, 0x34, 0xda, 0x33, 0x52, 0x3a, 0x74, 0xc9, 0xb4, 0xa0, 0x29, 0x15, 0xa3, 0x4a, 0xdc, 0xd2, 0xa3, 0x9d, 0x86, 0xf6, 0x95, 0xde, 0xba, 0x90, 0xda, 0xc7, 0xa, 0x11, 0xf7, 0x44, 0x20, 0xac, - 0xdb, 0xb4, 0xc0, 0x7b, 0xc5, 0xb5, 0xcc, 0xb9, 0xb0, 0x4a, 0x2f, 0xc5, 0x33, 0x74, 0xc9, 0x65, 0x60, 0x53, 0x98, 0x9a, 0x8d, 0x1f, 0x77, 0x89, 0xe7, 0x3f, 0xd8, 0x7, 0xc2, 0xfa, 0x3, 0xf4, 0x33, 0x30, 0xff, 0xd5, 0x82, 0x5b, 0xd1, 0x33, 0xc9, 0x3, 0x7f, 0x6a, 0xc, 0x7d, 0x62, 0x6a, 0x1f, 0x1a, 0x8d, 0x9b, 0x41, 0xfd, 0x83, 0x68, 0xc6, 0xf1, 0xac, 0x32, 0xeb, 0x8d, 0x7c, 0x43, 0xc, 0xc5, 0x39, 0xc3, 0x9d, 0x70, 0x9a, 0x38, 0x29, 0x7f, 0x9d, 0x89, 0x0, 0x71, 0xca, 0xf, 0xb8, 0x40, 0x26, 0xd8, 0x8d, 0x59, 0xdc, 0xe5, 0xfa, 0x3e, 0x5b, 0xef, 0xa1, 0x1f, 0x1b, 0x8f, 0x56, 0x1e, 0xad, 0xd0, 0x2b, 0xce, 0x38, 0xfe, 0xb, 0x3f, 0x2a, 0xa1, 0xe3, 0x5c, 0x31, 0x10, 0x55, 0x6d, 0x25, 0x12, 0x3e, 0x18, 0xe, 0x12, 0xf, 0x82, 0xdd, 0x85, 0xfe, 0x51, 0xd2, 0xbf, 0xfc, 0xb1, 0xd7, 0xf2, 0x70, 0x80, 0xb, 0x96, 0x61, 0xa7, 0x10, 0xe5, 0x19, 0xff, 0xe5, 0xa6, 0x5c, 0x5e, 0xc6, 0x7f, 0xde, 0x99, 0x8d, 0x83, 0xf1, 0xbc, 0x54, 0x98, 0x78, 0x34, 0x4b, 0x5e, 0xe2, 0x11, 0xee, 0xdb, 0xd8, 0xeb, 0x8a, 0x49, 0xc6, 0x19, 0x97, 0x3f, 0xa2, 0x49, 0x29, 0x45, 0x1e, 0x75, 0x37, 0x35, 0xce, 0xd6, 0x20, 0x1f, 0xde, 0x1e, 0xbe, 0x86, 0xb4, 0xeb, 0xe, 0x2c, 0x48, 0x3d, 0x80, 0x74, 0xf5, 0x57, 0x98, 0x8b, 0x51, 0xe4, 0x5d, 0xf6, 0x5b, 0x74, 0x4c, 0xc5, 0x1c, 0x21, 0x2a, 0xda, 0xf8, 0xd, 0x8e, 0x3f, 0xeb, 0x6a, 0x4d, 0xae, 0x1b, 0xc9, 0x14, 0x7e, 0xba, 0xba, 0x6e, 0x75, 0x35, 0x67, 0x2c, 0x7a, 0x3f, 0xbe, 0xbf, 0x61, 0x77, 0x85, 0x6e, 0x25, - 0xa4, 0x66, 0xf6, 0x23, 0xdb, 0x97, 0xc1, 0xca, 0x5e, 0xdc, 0x82, 0x85, 0xe1, 0x1c, 0xec, 0xc4, 0x89, 0x72, 0xda, 0xe7, 0x47, 0x26, 0xd5, 0x36, 0xc0, 0x83, 0xb9, 0x8c, 0x78, 0xf, 0xf8, 0x3a, 0x58, 0x7e, 0xec, 0x84, 0x95, 0x1f, 0xfb, 0x5b, 0xd2, 0xff, 0x5, 0xcf, 0xf4, 0xf6, 0xb, 0xb5, 0x87, 0xb9, 0x56, 0x4, 0xf0, 0x1c, 0x92, 0xd4, 0x3f, 0xb, 0x5d, 0xbf, 0x16, 0x89, 0xe0, 0xe0, 0x8, 0xa6, 0xb6, 0x31, 0xbc, 0xbd, 0x4f, 0xe3, 0x16, 0x18, 0xb6, 0x39, 0xea, 0x53, 0xa3, 0x35, 0x82, 0x9c, 0xe4, 0x88, 0x1a, 0xa1, 0x88, 0x51, 0x35, 0x22, 0xf5, 0x8d, 0x35, 0xbf, 0xfd, 0x2f, 0xfd, 0xb7, 0x48, 0x39, 0xa9, 0xff, 0xea, 0x1e, 0xe8, 0x5f, 0x1e, 0xb5, 0xfe, 0x8b, 0xf7, 0x5e, 0x73, 0x9e, 0xe8, 0xbf, 0x75, 0xf5, 0xe3, 0x51, 0x2c, 0x3f, 0x6b, 0x65, 0x9f, 0x29, 0xc1, 0x51, 0x6b, 0xfd, 0xb6, 0xcd, 0x49, 0x56, 0xfc, 0xcb, 0x5b, 0x4d, 0x1b, 0x67, 0xd1, 0xde, 0x3d, 0x23, 0x82, 0xee, 0x48, 0x5b, 0x4f, 0x4, 0x65, 0x23, 0xd6, 0x97, 0x47, 0x99, 0x6a, 0x17, 0x27, 0x47, 0x2c, 0x5a, 0x29, 0x1f, 0xe9, 0xef, 0xfd, 0x63, 0x75, 0x11, 0xed, 0x6, 0xd5, 0x6d, 0xce, 0x8e, 0x7, 0xaf, 0xbc, 0x72, 0xe9, 0xd2, 0x25, 0xd3, 0xd8, 0xfc, 0x25, 0x28, 0x7b, 0x5c, 0x74, 0x1, 0xbe, 0x36, 0xa, 0xf1, 0x93, 0xa5, 0x7f, 0x28, 0x80, 0x6a, 0x2e, 0x27, 0x62, 0x99, 0x42, 0xa8, 0xa1, 0xa9, 0x5a, 0xeb, 0x2f, 0x83, 0xd6, 0x49, 0x8d, 0x54, 0xec, 0x60, 0xf6, 0xcc, 0x3d, 0x48, 0x95, 0x98, 0xe9, 0x6e, 0x2d, 0x7d, 0x73, 0xe, 0xf4, 0x5f, 0xf8, 0x98, 0x42, 0xf1, 0xe8, 0x62, - 0x4f, 0xda, 0x7c, 0x40, 0xa3, 0xce, 0x6f, 0x39, 0x78, 0x8c, 0x7d, 0x1a, 0xec, 0x31, 0xa5, 0x97, 0x9f, 0x4f, 0xef, 0x67, 0x16, 0x11, 0xfb, 0x22, 0x9c, 0xda, 0xd7, 0x81, 0xe6, 0xde, 0xdf, 0x25, 0x7e, 0x1f, 0x30, 0xbc, 0xa9, 0xd3, 0x1a, 0x8b, 0x87, 0xd6, 0x58, 0x4f, 0xf6, 0xe4, 0xad, 0x6c, 0x97, 0x47, 0x3e, 0xbe, 0xc4, 0xe2, 0x87, 0x9e, 0xa2, 0xa6, 0x70, 0x92, 0xd7, 0x4a, 0xe2, 0xb9, 0x4f, 0x61, 0xda, 0xc6, 0x99, 0xc0, 0x79, 0x41, 0x2f, 0xde, 0x44, 0x2c, 0x27, 0x76, 0xd3, 0xa8, 0xeb, 0xd7, 0xaa, 0x5d, 0x57, 0x21, 0x4, 0x8d, 0x76, 0x36, 0x81, 0x32, 0x49, 0x23, 0xbc, 0x57, 0x70, 0xc8, 0xb7, 0x76, 0x5e, 0x24, 0x22, 0xcb, 0x52, 0x91, 0xee, 0xfb, 0x4b, 0x77, 0xfc, 0x1b, 0x13, 0xbf, 0x53, 0x2, 0x29, 0x80, 0xd8, 0x7a, 0xdc, 0x8e, 0xbd, 0x3c, 0x6e, 0x80, 0x5e, 0x4, 0x52, 0x32, 0xea, 0xed, 0x97, 0x52, 0xf1, 0x68, 0xf7, 0xfb, 0x69, 0xff, 0x7c, 0x92, 0x4f, 0xc5, 0xaf, 0xe1, 0xbe, 0x7f, 0xa4, 0x2f, 0xaf, 0x7f, 0x69, 0xf4, 0xc7, 0xff, 0x9a, 0x92, 0x53, 0xe0, 0xb3, 0xd4, 0xbd, 0x23, 0x82, 0xbe, 0xe1, 0xfe, 0x4e, 0x3a, 0x9a, 0xc5, 0x4f, 0x6, 0x59, 0xbe, 0xc4, 0x9f, 0xf, 0x58, 0xf2, 0xad, 0x39, 0xaa, 0x21, 0x41, 0x14, 0x41, 0x64, 0x85, 0x17, 0xfa, 0xea, 0xac, 0x25, 0x70, 0xf6, 0xde, 0x43, 0xec, 0x7c, 0xa6, 0xdb, 0xbf, 0x26, 0xfa, 0x5b, 0xfd, 0xed, 0xa, 0x83, 0xd, 0xa1, 0x7e, 0xea, 0x3e, 0x10, 0x5f, 0xee, 0xba, 0x55, 0xc1, 0xa0, 0xfe, 0x69, 0x7, 0xaa, 0x21, 0xdf, 0xf6, 0xbb, 0x96, 0x6d, 0x5f, 0xca, 0xa3, 0xe2, 0x6f, 0x47, 0x7f, - 0x5b, 0x4e, 0x45, 0x52, 0x6b, 0xcb, 0x2b, 0xfc, 0x9f, 0xb5, 0x7, 0xa6, 0x42, 0x6e, 0x87, 0xe0, 0x8, 0x1a, 0xf1, 0x2d, 0x6e, 0x65, 0xc4, 0xfa, 0xf5, 0x78, 0xbc, 0x4d, 0xad, 0xb6, 0x55, 0xed, 0xee, 0x60, 0xfb, 0x3d, 0x2c, 0x1a, 0xc9, 0xfc, 0xdb, 0xe9, 0xa6, 0x8f, 0xb7, 0x9f, 0xc8, 0x1b, 0x8f, 0x3c, 0x95, 0xfe, 0xf9, 0xc, 0xce, 0xa7, 0x93, 0x92, 0xa3, 0x3, 0x71, 0xa7, 0xf, 0x79, 0x7d, 0x3f, 0x8, 0x6a, 0x83, 0x83, 0x45, 0x9, 0xf3, 0x8c, 0xcb, 0x67, 0x9c, 0xa5, 0xff, 0x36, 0x3d, 0xf0, 0x4d, 0x70, 0x97, 0x50, 0x6, 0xf8, 0xfe, 0x43, 0xc0, 0x52, 0xde, 0x9a, 0x2a, 0x62, 0xeb, 0xb8, 0x2d, 0x15, 0xc8, 0xd6, 0xa3, 0xe9, 0xcc, 0x70, 0xa0, 0xe7, 0x8d, 0x47, 0xed, 0x6f, 0x7c, 0x97, 0xfe, 0x57, 0x71, 0xa, 0x45, 0xca, 0x77, 0xbb, 0x3c, 0x92, 0xdb, 0x39, 0xc1, 0x59, 0xe0, 0x71, 0x4d, 0x70, 0x39, 0x5d, 0x79, 0x79, 0xf2, 0x78, 0x8f, 0x28, 0xe7, 0x39, 0xb, 0x7c, 0x93, 0x7d, 0xf9, 0x6e, 0xab, 0x4c, 0xf4, 0xb0, 0xd7, 0xbc, 0x3c, 0x67, 0xde, 0x39, 0xe3, 0x27, 0xb0, 0xe2, 0x9a, 0x70, 0xe, 0x2d, 0x1e, 0xb7, 0xc7, 0x3e, 0x3f, 0xc9, 0x55, 0x40, 0x4b, 0x1e, 0x2d, 0xa9, 0x3, 0x76, 0x49, 0x77, 0xed, 0x5c, 0x49, 0x9e, 0xe0, 0x99, 0x3c, 0xc1, 0x91, 0x9b, 0x5b, 0xe0, 0xca, 0x91, 0xc5, 0xf1, 0xe7, 0xb8, 0x3d, 0xac, 0x14, 0x78, 0x3c, 0x22, 0x6d, 0x56, 0x7e, 0x7e, 0x11, 0xa5, 0xcf, 0x71, 0xbb, 0xc7, 0x8f, 0xcf, 0x73, 0x8d, 0x73, 0x4f, 0x18, 0x3f, 0xc1, 0x3d, 0x81, 0x9e, 0x3d, 0xc7, 0xe3, 0xa3, 0xaf, 0x79, 0xe3, 0xf3, 0xdc, 0xe7, 0xc8, 0x6e, - 0xb7, 0xcb, 0x5d, 0xe0, 0xa2, 0x2d, 0xcb, 0x2d, 0x90, 0x26, 0xb1, 0x2b, 0x3a, 0xb, 0x9c, 0xee, 0x7c, 0x6f, 0x7e, 0x7e, 0x81, 0x53, 0x72, 0x8e, 0x3b, 0xf9, 0x52, 0xff, 0x1f, 0xc3, 0x4d, 0x47, 0xb3, -} ; + 120, 156, 237, 125, 13, 116, 19, 87, 150, 230, 43, 169, 44, 61, 9, 89, 146, 141, 13, 178, 35, 74, 2, 11, 16, 63, 14, 2, 28, 34, 130, 98, 21, 240, 136, 5, 193, 29, 51, 116, 186, 33, 157, 237, 40, 158, 52, 237, 36, 227, 30, 217, 132, 142, 8, 142, 85, 161, 233, 32, 50, 241, 180, 210, 233, 31, 102, 54, 147, 168, 123, 231, 204, 228, 236, 9, 167, 157, 179, 147, 109, 102, 54, 59, 81, 2, 19, 51, 115, 112, 143, 115, 210, 57, 211, 59, 155, 19, 202, 144, 237, 164, 103, 227, 165, 24, 146, 142, 166, 99, 172, 125, 247, 85, 25, 104, 203, 19, 217, 99, 201, 114, 39, 245, 14, 63, 250, 84, 85, 122, 85, 183, 238, 187, 239, 222, 251, 238, 189, 47, 118, 238, 147, 239, 10, 28, 66, 239, 255, 69, 0, 185, 56, 39, 66, 40, 251, 207, 59, 254, 114, 101, 238, 90, 19, 165, 190, 238, 246, 238, 175, 108, 232, 16, 191, 183, 238, 210, 250, 79, 214, 31, 93, 31, 220, 208, 27, 150, 186, 125, 41, 244, 191, 99, 25, 116, 86, 146, 150, 139, + 233, 220, 56, 66, 82, 85, 166, 70, 50, 190, 241, 212, 55, 69, 201, 248, 90, 213, 192, 15, 114, 78, 241, 199, 225, 1, 233, 104, 247, 174, 135, 14, 175, 235, 16, 119, 53, 29, 11, 195, 111, 60, 182, 225, 192, 134, 122, 218, 219, 218, 219, 92, 13, 71, 110, 185, 240, 224, 170, 63, 83, 123, 187, 173, 251, 239, 214, 94, 235, 105, 30, 122, 41, 252, 127, 247, 159, 145, 208, 192, 63, 228, 56, 233, 229, 23, 140, 63, 91, 75, 127, 201, 32, 253, 175, 174, 125, 27, 254, 140, 126, 251, 166, 246, 45, 220, 227, 190, 13, 175, 209, 111, 254, 153, 126, 195, 191, 98, 252, 217, 190, 13, 94, 138, 126, 153, 51, 116, 255, 141, 244, 178, 20, 16, 127, 73, 191, 143, 176, 239, 47, 210, 239, 199, 232, 247, 93, 146, 145, 254, 207, 73, 223, 160, 223, 238, 237, 230, 164, 47, 209, 255, 127, 190, 127, 104, 127, 123, 247, 79, 105, 31, 237, 221, 94, 73, 222, 127, 184, 123, 225, 134, 254, 13, 127, 27, 78, 207, 219, 123, 233, 168, 229, 160, 120, 105, 205, 83, 79, 242, + 191, 106, 191, 121, 221, 227, 206, 223, 228, 244, 166, 55, 189, 233, 77, 111, 122, 211, 155, 222, 244, 166, 55, 189, 233, 77, 111, 122, 155, 149, 102, 68, 123, 184, 187, 62, 165, 61, 252, 205, 47, 174, 115, 142, 189, 253, 55, 159, 118, 206, 232, 21, 245, 183, 144, 214, 72, 95, 45, 230, 3, 56, 112, 48, 24, 18, 60, 102, 35, 34, 173, 203, 49, 255, 66, 114, 199, 191, 253, 155, 9, 95, 226, 198, 208, 196, 243, 243, 174, 111, 180, 99, 62, 153, 60, 239, 245, 138, 210, 100, 199, 243, 206, 239, 140, 96, 30, 227, 122, 33, 180, 113, 211, 161, 253, 251, 247, 147, 193, 229, 254, 22, 51, 142, 178, 131, 70, 179, 221, 87, 233, 192, 56, 109, 89, 236, 5, 172, 152, 179, 164, 209, 130, 121, 55, 182, 26, 175, 140, 202, 146, 36, 101, 249, 155, 162, 88, 56, 159, 19, 4, 187, 23, 159, 114, 61, 126, 202, 87, 105, 183, 32, 52, 102, 94, 160, 254, 188, 84, 168, 127, 29, 207, 45, 76, 214, 155, 135, 127, 26, 227, 145, 88, 85, 169, 225, 166, 225, 155, 1, + 19, 95, 105, 250, 235, 220, 15, 252, 20, 53, 59, 154, 31, 253, 228, 242, 163, 205, 133, 249, 155, 243, 147, 32, 94, 25, 234, 201, 198, 162, 162, 247, 120, 185, 233, 165, 99, 29, 235, 88, 199, 58, 86, 27, 233, 179, 97, 222, 133, 3, 23, 46, 92, 200, 37, 194, 8, 89, 207, 4, 23, 35, 47, 202, 228, 114, 239, 222, 144, 187, 57, 151, 43, 118, 127, 190, 3, 113, 255, 186, 205, 209, 14, 23, 128, 44, 247, 39, 133, 206, 175, 235, 127, 180, 10, 33, 103, 187, 108, 164, 255, 34, 36, 150, 155, 94, 19, 177, 169, 109, 1, 215, 19, 120, 213, 188, 136, 222, 91, 8, 133, 74, 255, 190, 90, 27, 48, 31, 193, 109, 38, 187, 189, 55, 151, 176, 219, 201, 157, 207, 153, 142, 246, 94, 48, 179, 131, 210, 62, 19, 57, 97, 198, 188, 19, 167, 24, 150, 21, 84, 31, 219, 196, 241, 34, 61, 132, 118, 81, 124, 134, 43, 55, 189, 242, 158, 103, 228, 33, 204, 63, 147, 188, 175, 218, 194, 35, 83, 34, 129, 200, 183, 209, 24, 247, 5, 245, 105, 164, 146, + 244, 183, 25, 243, 94, 60, 196, 64, 34, 17, 42, 120, 62, 220, 207, 105, 13, 208, 59, 42, 55, 189, 242, 238, 111, 112, 21, 216, 27, 79, 244, 88, 120, 3, 223, 155, 64, 214, 254, 53, 92, 79, 58, 99, 158, 71, 249, 209, 118, 246, 108, 209, 251, 243, 189, 180, 27, 27, 182, 200, 199, 96, 229, 19, 101, 165, 187, 11, 142, 223, 248, 206, 225, 176, 102, 92, 212, 34, 20, 41, 55, 189, 76, 182, 6, 11, 125, 143, 235, 134, 206, 217, 145, 60, 72, 233, 87, 73, 237, 55, 31, 246, 194, 49, 37, 30, 47, 200, 15, 115, 29, 51, 126, 229, 17, 226, 138, 252, 123, 90, 203, 147, 31, 195, 199, 27, 57, 36, 191, 2, 221, 73, 254, 118, 152, 79, 126, 8, 212, 172, 55, 31, 158, 198, 239, 239, 211, 6, 251, 84, 206, 31, 249, 2, 204, 87, 109, 241, 120, 48, 228, 22, 4, 7, 105, 228, 253, 100, 29, 14, 100, 100, 89, 78, 167, 164, 175, 147, 19, 141, 152, 63, 153, 100, 198, 143, 237, 217, 230, 26, 50, 242, 159, 0, 159, 63, 235, 91, 86, 109, + 176, 88, 248, 153, 210, 99, 219, 243, 139, 96, 126, 148, 207, 37, 126, 226, 166, 95, 191, 82, 238, 247, 173, 99, 29, 235, 184, 140, 242, 246, 196, 22, 204, 251, 113, 128, 170, 99, 189, 189, 194, 108, 232, 75, 95, 6, 249, 167, 234, 119, 225, 176, 125, 74, 242, 85, 214, 192, 28, 212, 95, 116, 60, 51, 252, 181, 61, 93, 195, 107, 98, 53, 40, 198, 59, 191, 245, 52, 2, 125, 240, 94, 208, 255, 235, 229, 76, 105, 250, 35, 157, 123, 128, 255, 250, 247, 31, 122, 180, 217, 227, 240, 60, 90, 240, 252, 74, 11, 220, 79, 76, 202, 40, 217, 158, 80, 86, 41, 55, 189, 242, 238, 175, 111, 61, 248, 239, 99, 227, 227, 151, 84, 214, 249, 137, 5, 35, 11, 207, 27, 184, 41, 92, 95, 231, 186, 149, 19, 234, 17, 18, 108, 8, 85, 41, 225, 194, 253, 85, 174, 133, 254, 234, 225, 183, 195, 97, 143, 157, 141, 207, 29, 227, 71, 17, 71, 222, 220, 201, 181, 112, 242, 81, 167, 10, 79, 145, 206, 4, 230, 207, 38, 79, 55, 24, 159, 222, 190, 253, 133, + 63, 94, 64, 14, 188, 101, 106, 137, 41, 230, 215, 158, 127, 251, 23, 178, 18, 67, 76, 223, 121, 33, 153, 97, 167, 7, 179, 166, 89, 167, 95, 231, 141, 152, 223, 137, 235, 221, 238, 209, 209, 158, 144, 102, 207, 165, 147, 175, 87, 115, 152, 55, 76, 229, 122, 120, 126, 245, 238, 167, 100, 239, 145, 193, 29, 152, 111, 194, 105, 35, 199, 161, 222, 132, 199, 189, 34, 176, 134, 195, 98, 173, 1, 84, 212, 54, 132, 188, 236, 247, 254, 116, 156, 154, 156, 68, 245, 123, 63, 217, 136, 229, 140, 232, 237, 127, 106, 239, 106, 31, 105, 221, 14, 235, 39, 129, 120, 200, 29, 26, 29, 133, 223, 107, 244, 19, 140, 235, 217, 249, 189, 66, 255, 172, 211, 111, 130, 253, 198, 248, 111, 11, 142, 30, 67, 71, 14, 63, 38, 77, 131, 255, 240, 212, 248, 79, 181, 223, 154, 142, 57, 129, 1, 169, 253, 198, 232, 213, 59, 126, 244, 42, 255, 125, 231, 26, 255, 17, 208, 159, 187, 127, 244, 95, 190, 187, 119, 251, 159, 127, 239, 7, 164, 114, 30, 230, 131, 184, 126, 236, + 228, 201, 95, 200, 178, 162, 242, 223, 203, 229, 227, 63, 29, 235, 88, 199, 58, 214, 241, 103, 3, 179, 249, 104, 217, 56, 226, 138, 238, 175, 38, 157, 43, 49, 47, 82, 251, 41, 20, 106, 22, 0, 55, 58, 49, 111, 195, 82, 104, 145, 199, 225, 112, 152, 233, 252, 123, 59, 243, 7, 202, 178, 156, 201, 100, 36, 170, 207, 172, 0, 253, 166, 13, 201, 10, 213, 182, 138, 208, 255, 200, 2, 208, 231, 30, 73, 167, 159, 251, 206, 29, 17, 236, 191, 179, 99, 151, 5, 33, 167, 33, 10, 202, 18, 226, 219, 248, 3, 6, 206, 240, 196, 227, 8, 137, 20, 74, 195, 65, 50, 210, 237, 39, 117, 56, 230, 243, 38, 207, 100, 98, 138, 84, 238, 247, 163, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 158, 28, 147, 145, 0, 196, 31, 167, 144, 217, 108, 52, 2, 110, 221, 13, 241, 17, 129, 248, 245, 249, 131, 103, 147, 91, 56, 163, 13, 65, 254, 32, 25, 9, 97, 158, + 224, 40, 122, 230, 217, 119, 126, 54, 217, 239, 65, 254, 96, 122, 58, 249, 131, 54, 204, 31, 79, 90, 23, 250, 124, 56, 66, 27, 228, 15, 18, 211, 120, 254, 96, 133, 157, 175, 116, 96, 39, 58, 230, 101, 223, 72, 30, 197, 247, 71, 11, 135, 115, 203, 61, 8, 165, 181, 235, 193, 63, 127, 55, 135, 32, 222, 82, 81, 20, 121, 174, 229, 15, 214, 54, 197, 170, 144, 152, 65, 81, 30, 161, 245, 165, 120, 127, 79, 223, 133, 13, 59, 15, 187, 156, 193, 141, 203, 92, 107, 151, 109, 44, 120, 126, 227, 60, 88, 111, 232, 167, 244, 146, 144, 148, 201, 148, 155, 62, 58, 214, 177, 142, 117, 252, 121, 197, 228, 132, 1, 226, 191, 134, 144, 29, 86, 123, 65, 62, 239, 133, 120, 50, 111, 48, 24, 12, 133, 220, 128, 231, 179, 227, 102, 218, 28, 118, 237, 56, 100, 52, 208, 195, 161, 201, 126, 15, 230, 67, 19, 228, 87, 77, 177, 127, 152, 127, 159, 79, 254, 235, 2, 159, 215, 143, 105, 35, 35, 59, 32, 30, 80, 205, 71, 50, 59, 60, 164, 209, 13, + 247, 35, 50, 156, 29, 29, 99, 249, 94, 207, 39, 219, 93, 22, 142, 135, 198, 250, 19, 212, 223, 146, 104, 43, 55, 61, 117, 172, 227, 114, 98, 50, 114, 23, 196, 223, 15, 109, 162, 227, 211, 227, 113, 32, 210, 103, 132, 250, 4, 146, 28, 139, 199, 179, 138, 92, 252, 254, 58, 239, 246, 147, 8, 238, 15, 250, 105, 91, 113, 227, 74, 114, 224, 240, 7, 3, 107, 221, 21, 8, 5, 253, 171, 86, 173, 240, 147, 198, 70, 208, 215, 37, 56, 55, 163, 100, 227, 164, 113, 9, 196, 151, 88, 67, 110, 183, 59, 52, 58, 247, 226, 159, 117, 172, 99, 29, 235, 248, 243, 138, 73, 231, 106, 208, 183, 100, 80, 6, 221, 130, 96, 39, 173, 141, 16, 223, 62, 148, 85, 16, 82, 148, 120, 188, 232, 253, 245, 237, 5, 125, 110, 201, 158, 136, 24, 137, 120, 125, 11, 239, 239, 223, 93, 133, 16, 174, 175, 58, 12, 1, 249, 246, 122, 45, 158, 254, 22, 118, 242, 201, 56, 213, 15, 87, 131, 127, 71, 74, 70, 88, 59, 83, 110, 122, 233, 88, 199, 58, 214, 177, + 142, 117, 172, 227, 242, 99, 210, 217, 202, 244, 23, 106, 250, 170, 250, 75, 231, 14, 240, 87, 201, 212, 244, 45, 137, 254, 226, 251, 232, 235, 216, 176, 115, 29, 118, 217, 206, 93, 252, 193, 169, 181, 2, 25, 89, 10, 249, 139, 175, 177, 131, 14, 119, 131, 245, 164, 159, 51, 124, 219, 36, 34, 14, 50, 24, 20, 7, 203, 119, 112, 65, 126, 37, 88, 195, 241, 108, 185, 233, 165, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 229, 194, 100, 240, 97, 240, 55, 167, 194, 30, 4, 33, 6, 110, 50, 242, 40, 219, 79, 64, 150, 161, 124, 171, 82, 244, 245, 66, 114, 249, 14, 255, 58, 81, 196, 78, 87, 42, 37, 165, 44, 119, 144, 202, 69, 126, 178, 22, 199, 216, 65, 143, 183, 133, 213, 195, 89, 141, 51, 12, 103, 2, 41, 210, 217, 136, 249, 51, 73, 223, 158, 8, 198, 145, 200, 208, 208, 180, 251, 211, 226, 35, 160, 77, 165, 158, 210, 180, 127, 191, 47, 194, 246, 79, 168, 224, 89, 185, 33, 100, 177, 26, 44, 208, + 213, 243, 40, 227, 117, 150, 228, 125, 173, 103, 249, 248, 102, 132, 114, 72, 1, 251, 219, 4, 239, 79, 45, 151, 99, 119, 56, 242, 206, 127, 235, 231, 31, 12, 236, 114, 195, 71, 217, 253, 118, 249, 249, 45, 239, 254, 42, 235, 33, 62, 177, 13, 248, 143, 225, 145, 13, 224, 63, 136, 82, 99, 189, 68, 253, 25, 96, 125, 62, 211, 51, 250, 255, 46, 126, 188, 255, 80, 130, 12, 38, 192, 127, 16, 5, 250, 244, 223, 19, 125, 88, 227, 63, 137, 157, 44, 83, 254, 131, 245, 124, 130, 163, 241, 120, 48, 24, 204, 42, 114, 185, 233, 165, 99, 29, 235, 248, 179, 131, 73, 167, 17, 226, 135, 234, 131, 46, 205, 127, 218, 184, 15, 228, 97, 32, 24, 44, 209, 250, 239, 229, 175, 99, 195, 142, 243, 24, 251, 35, 145, 8, 246, 251, 181, 245, 223, 128, 182, 254, 123, 23, 147, 127, 183, 224, 126, 118, 50, 172, 255, 118, 117, 99, 225, 221, 156, 69, 48, 37, 233, 249, 24, 151, 155, 94, 58, 46, 50, 63, 116, 126, 9, 243, 33, 220, 22, 100, 109, 22, 250, + 83, 227, 213, 120, 136, 87, 131, 198, 226, 81, 189, 56, 0, 199, 226, 241, 158, 223, 185, 250, 231, 190, 3, 34, 54, 80, 125, 214, 134, 254, 243, 63, 94, 204, 93, 41, 251, 253, 252, 174, 97, 210, 183, 20, 244, 251, 215, 108, 46, 27, 7, 18, 136, 12, 186, 152, 61, 112, 144, 51, 55, 252, 254, 240, 112, 225, 235, 213, 122, 89, 43, 169, 176, 148, 50, 153, 76, 225, 243, 27, 59, 253, 196, 143, 149, 154, 234, 174, 120, 93, 5, 111, 34, 7, 62, 52, 29, 141, 125, 168, 238, 95, 225, 116, 187, 153, 189, 49, 190, 63, 67, 44, 22, 103, 245, 186, 78, 39, 119, 248, 189, 239, 93, 118, 214, 63, 209, 199, 236, 9, 31, 43, 55, 47, 149, 133, 94, 208, 127, 250, 90, 125, 125, 210, 250, 37, 136, 23, 143, 37, 14, 29, 186, 53, 236, 49, 114, 164, 86, 50, 153, 187, 222, 53, 75, 72, 236, 233, 233, 137, 138, 181, 138, 143, 163, 214, 84, 123, 6, 30, 15, 5, 139, 240, 190, 12, 160, 47, 91, 187, 13, 180, 153, 220, 33, 210, 103, 135, 248, 82, + 4, 181, 210, 194, 137, 196, 126, 82, 251, 226, 7, 3, 79, 229, 140, 8, 137, 98, 70, 118, 198, 201, 96, 3, 232, 207, 214, 151, 159, 121, 246, 217, 209, 209, 172, 92, 110, 126, 203, 127, 158, 53, 108, 254, 141, 197, 14, 134, 193, 6, 33, 149, 127, 200, 226, 241, 223, 123, 239, 194, 171, 240, 134, 11, 95, 223, 13, 252, 82, 47, 73, 25, 48, 153, 167, 32, 111, 43, 216, 252, 14, 159, 61, 225, 68, 215, 164, 239, 247, 55, 227, 136, 187, 64, 26, 111, 97, 239, 247, 194, 229, 67, 135, 254, 231, 219, 239, 92, 36, 157, 219, 129, 158, 233, 239, 28, 253, 206, 24, 212, 143, 245, 213, 214, 98, 195, 230, 244, 49, 182, 159, 141, 124, 40, 54, 235, 244, 131, 252, 65, 250, 60, 66, 72, 139, 127, 238, 100, 252, 144, 54, 119, 199, 98, 74, 41, 226, 159, 43, 239, 1, 121, 113, 154, 143, 68, 58, 150, 55, 204, 159, 175, 173, 255, 170, 21, 140, 29, 238, 6, 150, 191, 224, 211, 252, 7, 144, 191, 0, 246, 178, 5, 247, 123, 28, 230, 12, 10, 29, 53, + 147, 19, 127, 0, 247, 231, 165, 71, 149, 108, 214, 85, 126, 254, 107, 93, 12, 254, 150, 20, 138, 82, 114, 197, 98, 101, 191, 159, 185, 142, 235, 92, 157, 28, 146, 195, 156, 80, 47, 220, 182, 57, 171, 197, 51, 30, 79, 146, 20, 138, 68, 120, 159, 105, 65, 177, 251, 219, 150, 58, 200, 245, 164, 198, 32, 188, 161, 13, 38, 168, 23, 255, 186, 107, 113, 245, 78, 31, 236, 63, 227, 244, 154, 236, 34, 185, 92, 141, 77, 91, 211, 199, 172, 254, 142, 14, 250, 10, 211, 37, 231, 151, 19, 22, 45, 158, 1, 217, 237, 130, 123, 218, 250, 210, 182, 84, 128, 234, 251, 99, 11, 23, 245, 72, 72, 78, 211, 223, 219, 191, 11, 31, 190, 253, 54, 140, 171, 171, 145, 47, 218, 81, 242, 252, 128, 13, 17, 168, 55, 57, 150, 179, 36, 235, 144, 1, 85, 33, 50, 18, 129, 122, 211, 43, 155, 154, 156, 213, 213, 6, 84, 114, 251, 130, 197, 167, 212, 96, 250, 228, 72, 86, 98, 241, 224, 204, 127, 111, 158, 159, 172, 192, 43, 157, 24, 7, 123, 31, 105, 55, + 176, 122, 233, 84, 94, 43, 153, 12, 149, 47, 39, 165, 162, 223, 63, 200, 187, 179, 201, 118, 248, 108, 220, 31, 247, 21, 150, 151, 139, 88, 62, 10, 3, 206, 185, 23, 255, 178, 180, 109, 1, 135, 145, 161, 61, 74, 63, 139, 38, 83, 201, 251, 227, 63, 242, 191, 159, 51, 11, 53, 2, 66, 155, 223, 61, 120, 155, 147, 205, 183, 255, 50, 126, 20, 229, 213, 15, 39, 35, 55, 96, 30, 49, 255, 180, 172, 40, 83, 212, 207, 152, 191, 153, 169, 179, 101, 167, 111, 233, 199, 147, 27, 226, 201, 31, 160, 111, 47, 234, 77, 167, 218, 202, 125, 63, 115, 29, 51, 122, 249, 176, 149, 126, 28, 235, 157, 3, 247, 243, 187, 142, 153, 189, 22, 84, 237, 181, 88, 124, 230, 242, 188, 220, 152, 217, 167, 235, 112, 218, 23, 168, 166, 19, 61, 50, 48, 121, 66, 174, 217, 123, 181, 129, 24, 219, 143, 242, 71, 72, 181, 231, 200, 131, 13, 195, 57, 65, 45, 215, 140, 36, 209, 91, 240, 247, 97, 189, 42, 69, 245, 103, 58, 251, 50, 123, 27, 246, 39, 59, 158, + 12, 68, 252, 190, 154, 106, 171, 165, 34, 239, 252, 221, 127, 48, 124, 115, 204, 137, 196, 140, 136, 188, 78, 169, 99, 230, 239, 235, 206, 241, 252, 68, 40, 224, 49, 99, 255, 38, 25, 188, 139, 229, 55, 6, 67, 33, 193, 227, 48, 82, 253, 200, 167, 218, 31, 14, 143, 48, 54, 54, 90, 2, 126, 179, 97, 62, 147, 92, 178, 204, 231, 85, 235, 151, 64, 254, 180, 87, 219, 191, 3, 242, 167, 251, 118, 248, 201, 98, 172, 48, 28, 180, 157, 39, 125, 7, 48, 223, 159, 92, 82, 135, 121, 158, 206, 62, 188, 181, 127, 205, 112, 226, 181, 140, 153, 135, 87, 118, 246, 244, 140, 247, 131, 155, 57, 253, 162, 96, 239, 70, 183, 126, 114, 37, 236, 49, 35, 180, 34, 112, 128, 83, 179, 191, 185, 140, 243, 191, 119, 26, 139, 221, 223, 194, 36, 172, 143, 202, 185, 132, 49, 72, 233, 3, 253, 47, 247, 155, 205, 227, 235, 191, 30, 142, 249, 159, 3, 234, 126, 136, 72, 118, 225, 109, 29, 134, 225, 92, 46, 236, 67, 94, 216, 46, 51, 145, 40, 55, 189, 242, + 232, 215, 122, 47, 232, 147, 50, 125, 152, 112, 216, 161, 217, 247, 148, 31, 213, 108, 219, 18, 244, 7, 251, 219, 164, 146, 247, 45, 169, 194, 60, 171, 223, 3, 242, 225, 164, 38, 29, 194, 225, 144, 233, 73, 158, 237, 47, 41, 211, 107, 50, 244, 90, 210, 183, 11, 230, 231, 243, 8, 101, 210, 169, 51, 247, 21, 212, 23, 103, 159, 126, 55, 168, 245, 136, 168, 58, 27, 14, 83, 252, 209, 105, 83, 75, 236, 67, 243, 234, 213, 61, 144, 62, 93, 252, 254, 42, 59, 65, 31, 22, 67, 148, 247, 140, 70, 163, 170, 79, 191, 124, 157, 255, 0, 198, 239, 90, 102, 31, 32, 20, 192, 167, 201, 8, 130, 247, 41, 135, 220, 161, 108, 86, 201, 206, 57, 255, 52, 227, 135, 76, 242, 9, 182, 223, 17, 101, 3, 254, 208, 87, 57, 52, 230, 30, 232, 106, 67, 38, 228, 197, 134, 226, 247, 199, 131, 191, 167, 158, 141, 198, 120, 40, 143, 30, 164, 243, 32, 140, 7, 137, 129, 168, 34, 147, 3, 255, 96, 26, 136, 141, 154, 37, 73, 122, 246, 217, 148, 115, 206, + 233, 135, 100, 196, 7, 243, 81, 38, 24, 12, 170, 254, 191, 193, 149, 160, 159, 193, 253, 103, 193, 191, 86, 124, 126, 95, 192, 246, 223, 10, 2, 240, 132, 195, 252, 75, 187, 171, 232, 120, 221, 198, 54, 251, 202, 60, 214, 202, 248, 111, 139, 230, 191, 2, 254, 171, 20, 152, 189, 207, 242, 247, 179, 115, 208, 127, 90, 185, 134, 197, 15, 209, 233, 215, 65, 167, 95, 149, 126, 77, 236, 254, 229, 108, 182, 20, 250, 30, 171, 95, 210, 238, 243, 193, 2, 230, 237, 243, 152, 252, 123, 64, 147, 127, 227, 243, 239, 90, 124, 203, 85, 250, 141, 244, 176, 253, 53, 4, 193, 46, 8, 163, 163, 115, 174, 254, 1, 219, 15, 90, 196, 41, 120, 130, 68, 66, 171, 167, 118, 58, 25, 245, 246, 43, 241, 146, 208, 15, 246, 251, 74, 38, 119, 88, 44, 84, 25, 49, 24, 184, 218, 23, 218, 88, 188, 146, 203, 216, 253, 58, 122, 232, 150, 73, 244, 197, 58, 152, 111, 150, 32, 88, 240, 16, 11, 235, 151, 179, 175, 47, 215, 179, 253, 243, 60, 205, 161, 80, 24, 252, + 207, 48, 94, 68, 28, 80, 226, 193, 32, 21, 216, 37, 120, 95, 191, 199, 214, 43, 67, 212, 214, 104, 246, 56, 28, 108, 254, 120, 38, 111, 254, 136, 50, 60, 62, 126, 233, 253, 208, 241, 27, 234, 153, 131, 241, 67, 204, 127, 79, 229, 11, 125, 28, 32, 31, 125, 223, 155, 216, 122, 136, 192, 164, 77, 41, 248, 253, 17, 246, 251, 140, 92, 225, 112, 16, 246, 143, 111, 137, 125, 160, 174, 191, 213, 185, 140, 90, 252, 149, 200, 112, 38, 112, 156, 197, 71, 96, 156, 138, 135, 220, 194, 59, 239, 216, 133, 114, 211, 171, 220, 120, 162, 189, 251, 89, 179, 127, 75, 78, 191, 190, 85, 108, 61, 18, 230, 95, 22, 239, 170, 250, 131, 163, 204, 29, 92, 4, 127, 240, 236, 63, 207, 66, 255, 233, 5, 216, 106, 54, 104, 184, 113, 5, 155, 127, 153, 179, 178, 20, 253, 53, 114, 32, 47, 98, 70, 71, 184, 55, 222, 211, 236, 97, 243, 111, 96, 252, 40, 226, 248, 77, 27, 185, 163, 93, 174, 1, 240, 78, 208, 1, 60, 204, 246, 131, 245, 226, 33, 109, 63, + 88, 105, 218, 253, 93, 23, 191, 11, 94, 144, 114, 211, 123, 166, 120, 85, 100, 239, 112, 88, 64, 82, 211, 79, 214, 32, 228, 255, 222, 151, 11, 207, 215, 91, 217, 122, 180, 2, 202, 168, 60, 58, 90, 238, 251, 207, 231, 63, 59, 188, 223, 126, 202, 13, 197, 249, 61, 120, 223, 106, 49, 87, 110, 178, 120, 109, 114, 98, 9, 172, 127, 236, 88, 87, 87, 105, 68, 156, 217, 194, 234, 149, 4, 176, 198, 129, 177, 158, 188, 243, 43, 111, 85, 215, 123, 37, 86, 46, 54, 83, 110, 122, 77, 196, 190, 239, 223, 235, 95, 183, 37, 141, 41, 107, 203, 198, 44, 71, 233, 121, 23, 179, 71, 100, 5, 118, 128, 43, 193, 251, 58, 33, 0, 61, 50, 136, 167, 250, 48, 213, 216, 201, 72, 228, 106, 189, 48, 65, 240, 228, 199, 143, 119, 54, 12, 159, 171, 80, 221, 139, 83, 241, 47, 206, 58, 255, 141, 52, 128, 255, 114, 75, 181, 203, 98, 3, 3, 152, 244, 125, 197, 79, 172, 88, 241, 152, 233, 221, 58, 205, 226, 2, 230, 47, 69, 232, 136, 180, 245, 207, + 65, 201, 120, 99, 232, 27, 176, 254, 249, 49, 4, 168, 128, 19, 158, 244, 121, 64, 95, 11, 80, 93, 155, 51, 242, 202, 99, 164, 239, 78, 230, 15, 139, 197, 232, 11, 200, 72, 147, 244, 199, 252, 127, 1, 159, 207, 231, 245, 250, 124, 53, 76, 191, 131, 250, 200, 156, 209, 236, 16, 4, 55, 227, 223, 61, 28, 202, 229, 148, 12, 10, 39, 18, 44, 255, 252, 100, 178, 189, 202, 233, 116, 138, 145, 213, 107, 72, 35, 98, 252, 122, 73, 129, 217, 58, 40, 145, 62, 30, 252, 15, 79, 128, 174, 21, 206, 184, 47, 147, 74, 86, 79, 89, 29, 1, 210, 230, 31, 177, 235, 159, 79, 158, 79, 167, 82, 78, 145, 182, 137, 247, 243, 226, 95, 45, 163, 246, 99, 218, 128, 110, 3, 180, 233, 245, 133, 201, 13, 204, 191, 246, 39, 172, 70, 99, 127, 65, 127, 89, 161, 253, 7, 139, 255, 190, 62, 91, 251, 15, 146, 202, 27, 85, 127, 82, 200, 189, 136, 154, 243, 148, 158, 22, 198, 15, 118, 33, 52, 154, 149, 75, 64, 191, 143, 126, 243, 193, 192, 102, 183, + 1, 170, 255, 173, 106, 240, 249, 180, 248, 221, 254, 167, 190, 165, 197, 239, 170, 246, 199, 53, 255, 51, 228, 127, 44, 118, 243, 212, 252, 29, 11, 186, 71, 231, 156, 254, 60, 177, 254, 184, 239, 166, 157, 92, 75, 204, 173, 10, 156, 143, 63, 41, 193, 254, 155, 147, 212, 31, 55, 143, 215, 31, 55, 219, 125, 119, 210, 241, 52, 54, 111, 128, 225, 24, 255, 155, 114, 211, 167, 240, 243, 108, 101, 241, 96, 110, 183, 27, 121, 18, 148, 255, 90, 35, 108, 60, 59, 60, 205, 163, 89, 42, 130, 138, 207, 239, 247, 128, 124, 202, 120, 65, 250, 65, 131, 253, 188, 69, 249, 24, 75, 64, 202, 74, 95, 96, 252, 183, 121, 220, 254, 181, 189, 70, 70, 22, 193, 254, 230, 214, 42, 11, 43, 31, 203, 214, 63, 114, 169, 140, 217, 200, 214, 63, 206, 150, 127, 253, 67, 139, 255, 163, 178, 56, 71, 201, 55, 238, 191, 146, 16, 196, 135, 149, 194, 255, 7, 241, 253, 103, 146, 222, 8, 8, 243, 150, 22, 53, 255, 45, 168, 141, 215, 176, 120, 7, 163, 95, 157, 70, + 63, 197, 198, 147, 151, 94, 180, 30, 237, 117, 171, 23, 103, 2, 169, 114, 211, 107, 82, 249, 71, 245, 137, 144, 219, 157, 200, 243, 159, 142, 149, 160, 63, 77, 254, 121, 33, 120, 188, 97, 249, 114, 50, 242, 135, 96, 191, 137, 236, 160, 123, 18, 127, 52, 232, 135, 199, 147, 63, 102, 64, 118, 205, 185, 252, 5, 210, 186, 22, 232, 23, 165, 234, 64, 40, 204, 230, 223, 157, 160, 47, 176, 217, 48, 99, 8, 149, 96, 254, 237, 134, 120, 200, 91, 150, 137, 145, 182, 55, 47, 95, 74, 177, 245, 75, 124, 109, 253, 146, 197, 147, 138, 105, 117, 60, 203, 135, 206, 147, 19, 191, 143, 249, 39, 147, 247, 57, 204, 102, 227, 40, 202, 160, 193, 15, 191, 12, 250, 212, 192, 2, 216, 76, 128, 42, 8, 101, 167, 223, 139, 59, 177, 224, 22, 120, 161, 26, 172, 121, 55, 34, 7, 100, 182, 126, 84, 1, 194, 198, 96, 44, 120, 125, 93, 255, 26, 14, 75, 156, 65, 164, 159, 157, 98, 245, 235, 133, 249, 239, 125, 200, 167, 84, 249, 111, 57, 240, 31, 203, 95, + 104, 99, 7, 93, 161, 144, 182, 158, 41, 51, 108, 52, 27, 201, 75, 71, 33, 30, 218, 192, 132, 223, 40, 159, 103, 127, 252, 182, 125, 91, 124, 125, 161, 240, 252, 113, 35, 236, 47, 237, 116, 187, 5, 129, 249, 159, 225, 126, 158, 212, 238, 70, 42, 126, 127, 11, 59, 130, 195, 185, 4, 147, 254, 187, 16, 253, 227, 251, 254, 55, 184, 1, 14, 29, 85, 231, 143, 43, 65, 214, 255, 59, 227, 228, 152, 125, 122, 76, 23, 251, 238, 252, 10, 54, 16, 249, 24, 54, 60, 22, 149, 47, 12, 171, 249, 165, 1, 220, 150, 97, 163, 163, 248, 247, 127, 211, 25, 227, 112, 46, 231, 0, 226, 96, 100, 114, 210, 249, 171, 82, 141, 39, 202, 142, 246, 122, 232, 32, 173, 235, 127, 20, 226, 67, 12, 199, 140, 204, 3, 35, 178, 251, 233, 79, 198, 36, 36, 138, 147, 217, 15, 229, 198, 218, 248, 25, 10, 193, 232, 133, 250, 247, 125, 8, 214, 39, 72, 146, 44, 169, 194, 166, 41, 92, 15, 252, 130, 213, 207, 83, 138, 215, 215, 198, 175, 111, 217, 154, 53, 107, + 86, 45, 246, 154, 62, 88, 106, 65, 210, 227, 170, 255, 224, 237, 127, 164, 247, 19, 190, 106, 15, 35, 135, 167, 151, 52, 114, 160, 207, 196, 226, 138, 28, 21, 69, 175, 179, 220, 244, 202, 31, 191, 141, 44, 127, 58, 30, 7, 115, 114, 22, 250, 3, 253, 37, 165, 233, 47, 180, 21, 210, 95, 202, 77, 159, 194, 250, 31, 102, 246, 218, 166, 112, 216, 227, 1, 253, 5, 236, 115, 130, 189, 255, 227, 149, 231, 168, 65, 60, 133, 235, 7, 131, 152, 151, 240, 91, 212, 84, 102, 123, 48, 20, 230, 247, 5, 160, 143, 252, 107, 202, 217, 182, 107, 243, 246, 237, 243, 216, 122, 135, 150, 255, 134, 100, 41, 79, 191, 35, 39, 16, 232, 139, 75, 144, 188, 118, 109, 213, 222, 237, 15, 46, 61, 254, 224, 240, 57, 182, 90, 34, 152, 106, 188, 94, 145, 116, 54, 248, 91, 182, 178, 120, 66, 4, 1, 221, 179, 78, 63, 117, 253, 173, 62, 28, 14, 55, 11, 215, 205, 191, 223, 62, 82, 170, 249, 247, 58, 253, 111, 197, 138, 85, 191, 165, 255, 169, 243, 239, 175, + 18, 11, 5, 117, 70, 53, 154, 28, 76, 62, 124, 131, 131, 92, 155, 196, 199, 239, 189, 55, 80, 110, 126, 203, 215, 255, 62, 125, 255, 173, 194, 244, 255, 124, 239, 191, 69, 238, 252, 161, 117, 32, 225, 54, 82, 225, 183, 233, 214, 222, 132, 22, 63, 164, 152, 67, 77, 89, 48, 127, 75, 35, 255, 206, 38, 189, 170, 249, 182, 61, 162, 229, 11, 50, 253, 47, 22, 143, 229, 229, 95, 145, 65, 12, 227, 247, 48, 124, 150, 131, 201, 57, 24, 127, 85, 4, 254, 235, 79, 62, 80, 44, 254, 99, 241, 115, 127, 149, 220, 129, 56, 3, 143, 135, 95, 149, 89, 190, 155, 11, 15, 133, 55, 82, 226, 198, 52, 254, 187, 235, 26, 255, 145, 190, 69, 234, 126, 58, 138, 2, 34, 56, 79, 191, 46, 57, 253, 198, 249, 109, 245, 117, 254, 63, 27, 246, 10, 66, 207, 168, 82, 42, 255, 31, 213, 95, 252, 43, 86, 173, 2, 255, 95, 173, 109, 17, 135, 253, 84, 217, 51, 163, 95, 211, 9, 216, 196, 232, 231, 84, 231, 19, 161, 185, 39, 75, 26, 247, 192, 251, + 60, 172, 200, 162, 120, 252, 116, 180, 186, 220, 252, 150, 247, 60, 144, 111, 25, 192, 177, 112, 79, 60, 14, 1, 148, 90, 252, 98, 0, 93, 57, 151, 67, 111, 95, 201, 21, 95, 223, 92, 10, 246, 245, 22, 22, 112, 106, 180, 121, 201, 200, 35, 126, 178, 68, 165, 87, 184, 37, 17, 99, 227, 245, 100, 82, 2, 44, 7, 146, 247, 145, 145, 131, 204, 95, 31, 18, 224, 141, 206, 193, 248, 171, 59, 127, 248, 47, 119, 36, 220, 38, 35, 109, 185, 131, 64, 207, 37, 126, 194, 97, 25, 246, 102, 130, 5, 180, 98, 247, 183, 235, 152, 1, 116, 13, 251, 149, 173, 127, 154, 241, 74, 200, 84, 247, 139, 101, 180, 23, 161, 70, 112, 35, 209, 137, 196, 68, 93, 124, 231, 112, 66, 173, 70, 132, 106, 17, 74, 154, 164, 107, 246, 36, 202, 204, 254, 248, 44, 44, 191, 62, 125, 255, 173, 130, 215, 127, 206, 247, 223, 34, 39, 88, 60, 104, 32, 30, 135, 124, 95, 120, 190, 149, 224, 79, 77, 81, 98, 10, 118, 187, 189, 4, 243, 85, 2, 243, 17, 250, 126, + 28, 118, 65, 112, 135, 130, 228, 166, 35, 214, 150, 94, 183, 26, 0, 104, 168, 48, 147, 198, 135, 192, 126, 220, 205, 112, 70, 142, 50, 125, 59, 153, 124, 32, 45, 165, 156, 98, 36, 226, 47, 55, 189, 38, 213, 39, 2, 26, 253, 100, 132, 76, 182, 249, 156, 193, 130, 98, 104, 232, 226, 212, 174, 31, 167, 55, 56, 112, 166, 64, 111, 114, 98, 11, 235, 207, 1, 139, 149, 33, 74, 191, 55, 247, 85, 161, 152, 235, 40, 59, 104, 52, 155, 153, 253, 235, 210, 252, 89, 167, 78, 189, 71, 62, 250, 185, 169, 165, 235, 3, 243, 123, 127, 249, 147, 191, 253, 234, 221, 119, 239, 212, 232, 121, 62, 197, 200, 137, 253, 96, 127, 144, 213, 218, 252, 29, 245, 166, 103, 157, 126, 35, 221, 44, 223, 195, 19, 10, 81, 18, 130, 252, 219, 13, 254, 144, 116, 70, 86, 226, 33, 161, 4, 252, 215, 87, 9, 254, 0, 57, 21, 89, 106, 172, 194, 54, 251, 253, 193, 174, 225, 139, 189, 238, 22, 132, 54, 51, 138, 49, 254, 244, 106, 249, 12, 14, 79, 51, 105, 173, + 103, 245, 209, 33, 246, 79, 206, 72, 115, 79, 254, 13, 110, 98, 250, 74, 144, 82, 79, 81, 162, 106, 62, 144, 11, 226, 237, 216, 0, 46, 1, 253, 88, 127, 136, 74, 87, 198, 129, 172, 126, 29, 228, 79, 128, 192, 165, 115, 24, 105, 60, 232, 55, 223, 172, 250, 95, 36, 42, 225, 216, 126, 56, 199, 147, 237, 34, 242, 122, 233, 16, 142, 148, 155, 94, 249, 242, 136, 141, 167, 122, 132, 2, 106, 252, 120, 235, 60, 134, 149, 120, 207, 216, 88, 41, 214, 63, 32, 63, 108, 5, 246, 250, 170, 171, 45, 212, 192, 230, 216, 250, 219, 120, 253, 135, 236, 99, 95, 32, 212, 126, 227, 51, 73, 162, 94, 204, 113, 76, 30, 246, 39, 231, 51, 122, 138, 82, 217, 245, 23, 210, 184, 140, 249, 43, 175, 214, 251, 187, 220, 225, 255, 238, 86, 177, 195, 197, 170, 1, 249, 151, 79, 60, 127, 243, 83, 1, 150, 239, 182, 216, 128, 144, 232, 181, 205, 184, 127, 179, 18, 93, 76, 88, 240, 125, 77, 198, 143, 92, 237, 27, 58, 108, 24, 103, 230, 45, 206, 74, 24, + 217, 42, 68, 115, 233, 229, 213, 10, 45, 95, 8, 210, 117, 130, 65, 107, 255, 3, 92, 79, 63, 157, 190, 122, 210, 84, 107, 58, 87, 240, 122, 19, 139, 103, 25, 107, 89, 4, 30, 116, 144, 119, 176, 191, 159, 27, 75, 116, 52, 53, 135, 226, 89, 133, 233, 7, 252, 212, 245, 145, 233, 243, 251, 122, 240, 255, 177, 245, 52, 206, 96, 200, 243, 239, 145, 145, 133, 80, 143, 227, 117, 179, 113, 158, 177, 218, 224, 227, 73, 103, 179, 166, 31, 128, 252, 203, 95, 47, 98, 247, 155, 252, 143, 223, 47, 57, 65, 229, 237, 25, 252, 37, 6, 56, 42, 63, 58, 13, 224, 191, 19, 17, 228, 23, 78, 210, 223, 165, 191, 103, 254, 138, 92, 5, 247, 218, 77, 128, 205, 193, 61, 195, 225, 216, 187, 9, 40, 231, 128, 162, 255, 244, 67, 118, 63, 182, 210, 209, 111, 105, 199, 252, 197, 200, 139, 228, 92, 206, 195, 163, 209, 209, 209, 138, 7, 230, 211, 251, 193, 139, 157, 78, 43, 139, 121, 25, 239, 95, 109, 146, 196, 244, 103, 77, 223, 43, 134, 254, 204, 236, + 131, 141, 170, 189, 243, 216, 171, 230, 25, 243, 59, 203, 63, 74, 38, 125, 213, 84, 109, 134, 69, 75, 210, 232, 209, 226, 135, 32, 122, 168, 20, 227, 71, 212, 234, 25, 192, 146, 105, 176, 96, 62, 22, 57, 17, 1, 253, 40, 198, 22, 135, 233, 20, 87, 110, 249, 55, 215, 176, 239, 251, 137, 225, 135, 17, 26, 112, 74, 94, 5, 220, 202, 190, 183, 110, 174, 66, 99, 55, 80, 125, 38, 129, 28, 83, 184, 158, 241, 235, 135, 240, 105, 118, 234, 97, 177, 250, 176, 77, 216, 26, 87, 52, 172, 198, 223, 49, 255, 183, 93, 8, 21, 189, 94, 226, 103, 29, 243, 111, 109, 226, 12, 73, 201, 128, 196, 1, 102, 67, 241, 123, 187, 22, 87, 179, 35, 226, 182, 64, 9, 250, 251, 172, 237, 63, 72, 70, 234, 89, 254, 69, 34, 17, 131, 70, 159, 111, 55, 171, 231, 4, 182, 92, 73, 250, 3, 123, 241, 100, 178, 191, 13, 90, 36, 114, 199, 253, 123, 208, 112, 34, 230, 66, 49, 86, 2, 186, 249, 101, 210, 185, 11, 232, 197, 244, 61, 36, 165, 135, 152, + 127, 250, 120, 242, 252, 16, 84, 239, 140, 136, 211, 174, 159, 93, 114, 250, 173, 55, 211, 251, 231, 145, 232, 84, 39, 189, 218, 157, 189, 44, 31, 45, 105, 68, 209, 48, 66, 223, 44, 122, 127, 64, 143, 231, 147, 71, 220, 17, 96, 64, 219, 154, 137, 251, 71, 145, 145, 245, 224, 255, 81, 237, 95, 165, 248, 249, 99, 165, 30, 191, 164, 242, 203, 48, 255, 42, 217, 172, 90, 208, 115, 150, 198, 111, 224, 234, 248, 133, 245, 204, 141, 215, 213, 143, 189, 124, 43, 62, 188, 57, 131, 81, 22, 10, 104, 7, 231, 92, 253, 161, 137, 252, 199, 214, 51, 196, 210, 141, 223, 207, 218, 254, 101, 44, 254, 254, 76, 242, 188, 193, 106, 173, 180, 153, 140, 232, 126, 215, 61, 28, 138, 241, 71, 57, 240, 135, 100, 54, 22, 221, 158, 34, 173, 187, 88, 190, 62, 148, 159, 52, 116, 119, 117, 177, 248, 165, 0, 140, 87, 230, 111, 180, 79, 60, 127, 105, 112, 227, 240, 57, 129, 54, 12, 234, 245, 208, 156, 211, 255, 88, 61, 22, 42, 111, 60, 106, 6, 164, 58, 255, + 178, 145, 44, 110, 243, 150, 164, 191, 223, 30, 191, 164, 175, 133, 249, 3, 61, 80, 76, 194, 19, 14, 179, 227, 39, 147, 190, 116, 42, 19, 241, 166, 229, 119, 89, 61, 199, 38, 28, 205, 66, 120, 73, 96, 230, 235, 187, 117, 123, 182, 115, 2, 22, 88, 188, 97, 13, 66, 109, 75, 159, 95, 196, 236, 161, 115, 247, 12, 219, 81, 46, 247, 202, 244, 229, 249, 55, 213, 248, 131, 77, 170, 188, 43, 185, 254, 2, 246, 196, 217, 100, 191, 234, 174, 88, 214, 80, 219, 180, 179, 10, 137, 212, 116, 228, 165, 49, 132, 254, 155, 137, 197, 35, 52, 105, 241, 24, 224, 95, 189, 28, 29, 14, 119, 81, 249, 162, 94, 48, 7, 245, 151, 253, 76, 127, 238, 237, 157, 60, 255, 103, 218, 191, 7, 246, 192, 141, 215, 234, 21, 229, 191, 175, 27, 193, 31, 53, 84, 67, 155, 179, 186, 250, 17, 86, 127, 186, 70, 163, 151, 199, 227, 102, 245, 103, 50, 172, 158, 44, 236, 159, 113, 67, 81, 238, 7, 143, 35, 52, 237, 124, 2, 118, 189, 225, 223, 191, 158, 140, 4, + 217, 248, 128, 244, 188, 96, 40, 63, 254, 184, 248, 250, 139, 74, 191, 106, 104, 206, 154, 15, 41, 191, 65, 188, 149, 162, 116, 248, 87, 243, 53, 53, 69, 175, 127, 57, 17, 155, 98, 183, 131, 255, 233, 225, 69, 106, 134, 206, 140, 235, 205, 146, 253, 123, 168, 126, 32, 118, 184, 180, 2, 228, 100, 125, 211, 240, 195, 49, 8, 92, 108, 42, 13, 253, 94, 172, 195, 194, 175, 207, 93, 200, 213, 174, 15, 174, 246, 175, 240, 47, 112, 66, 60, 115, 234, 85, 9, 45, 64, 47, 27, 149, 175, 147, 167, 109, 85, 168, 119, 81, 11, 227, 223, 96, 80, 33, 35, 247, 250, 73, 3, 238, 7, 231, 189, 232, 117, 38, 203, 61, 94, 243, 158, 231, 114, 59, 54, 108, 110, 194, 124, 76, 181, 63, 74, 221, 223, 66, 255, 62, 181, 126, 83, 53, 138, 217, 232, 159, 107, 242, 15, 61, 100, 64, 123, 230, 92, 124, 85, 33, 204, 255, 181, 90, 167, 209, 187, 174, 141, 219, 75, 255, 175, 253, 226, 2, 238, 240, 14, 31, 138, 126, 113, 211, 67, 137, 95, 59, 11, 231, + 207, 157, 120, 136, 249, 187, 180, 116, 235, 169, 205, 31, 79, 38, 219, 97, 50, 192, 152, 55, 170, 244, 139, 2, 253, 232, 252, 177, 223, 68, 58, 217, 252, 145, 102, 39, 211, 1, 193, 206, 127, 57, 249, 99, 237, 252, 83, 87, 245, 105, 117, 188, 100, 175, 209, 95, 100, 243, 79, 185, 233, 199, 244, 103, 63, 110, 155, 42, 61, 254, 67, 243, 239, 167, 208, 111, 34, 61, 38, 210, 171, 220, 252, 150, 247, 60, 176, 255, 17, 190, 182, 255, 145, 86, 159, 215, 227, 233, 9, 32, 217, 91, 10, 121, 49, 187, 251, 111, 149, 26, 223, 207, 232, 133, 208, 83, 223, 170, 138, 176, 122, 134, 79, 247, 215, 163, 148, 148, 225, 148, 116, 73, 250, 35, 35, 55, 179, 249, 22, 99, 236, 247, 251, 124, 13, 26, 63, 170, 227, 211, 108, 116, 48, 250, 237, 28, 167, 159, 55, 165, 197, 123, 60, 209, 1, 249, 114, 94, 52, 99, 253, 111, 243, 222, 123, 224, 49, 229, 176, 64, 121, 133, 14, 187, 25, 143, 223, 201, 252, 127, 154, 253, 49, 139, 254, 191, 171, 254, 131, 165, + 241, 71, 57, 106, 13, 92, 60, 199, 9, 78, 206, 127, 166, 228, 254, 3, 211, 147, 27, 88, 189, 60, 6, 228, 139, 211, 127, 158, 245, 205, 156, 153, 147, 255, 169, 42, 188, 145, 225, 175, 1, 63, 74, 184, 214, 41, 178, 242, 218, 165, 226, 191, 152, 202, 127, 222, 134, 137, 242, 47, 95, 95, 116, 95, 173, 183, 35, 211, 86, 238, 241, 58, 169, 252, 187, 126, 255, 55, 152, 63, 192, 127, 90, 170, 249, 3, 226, 13, 157, 184, 63, 30, 227, 28, 158, 230, 96, 243, 85, 254, 51, 104, 254, 43, 136, 103, 105, 189, 58, 126, 157, 100, 208, 197, 242, 27, 149, 152, 2, 225, 196, 211, 238, 111, 5, 126, 112, 248, 156, 135, 91, 9, 245, 43, 81, 46, 113, 174, 248, 252, 192, 242, 103, 82, 90, 248, 90, 233, 223, 23, 200, 187, 103, 146, 10, 139, 191, 127, 255, 212, 41, 210, 247, 85, 63, 111, 214, 242, 23, 60, 158, 224, 224, 234, 131, 28, 191, 7, 33, 54, 161, 72, 25, 180, 189, 191, 99, 56, 241, 230, 171, 102, 117, 117, 19, 61, 89, 110, 126, 203, + 159, 15, 9, 215, 66, 5, 78, 85, 80, 197, 181, 182, 251, 153, 255, 25, 27, 37, 122, 206, 13, 69, 215, 167, 62, 107, 251, 111, 145, 221, 91, 40, 253, 80, 75, 149, 28, 101, 152, 255, 196, 204, 252, 127, 93, 59, 209, 31, 151, 100, 191, 77, 200, 95, 173, 199, 253, 203, 111, 191, 125, 235, 27, 151, 134, 37, 182, 31, 130, 168, 229, 175, 10, 158, 112, 254, 124, 211, 13, 241, 10, 237, 18, 36, 192, 121, 189, 115, 46, 127, 122, 156, 223, 92, 70, 244, 144, 17, 57, 11, 230, 191, 228, 211, 99, 3, 243, 223, 40, 74, 108, 106, 231, 119, 50, 127, 193, 45, 194, 234, 198, 21, 254, 142, 136, 72, 250, 150, 95, 139, 63, 117, 56, 60, 100, 240, 128, 90, 31, 6, 154, 253, 185, 231, 152, 255, 99, 7, 135, 94, 201, 125, 114, 249, 242, 165, 75, 247, 146, 155, 254, 174, 30, 245, 186, 13, 16, 124, 10, 4, 157, 43, 244, 195, 42, 253, 178, 87, 227, 39, 209, 21, 123, 41, 250, 99, 251, 181, 216, 112, 58, 28, 246, 56, 60, 225, 91, 227, 116, 188, + 94, 203, 23, 140, 198, 14, 146, 198, 16, 248, 7, 143, 48, 28, 63, 233, 36, 39, 60, 16, 175, 149, 134, 244, 8, 41, 51, 247, 248, 239, 223, 29, 191, 109, 37, 26, 191, 7, 82, 191, 76, 116, 41, 230, 208, 93, 95, 217, 253, 198, 27, 82, 154, 84, 122, 96, 190, 77, 55, 213, 84, 91, 113, 85, 85, 211, 164, 227, 55, 13, 227, 87, 132, 16, 192, 25, 211, 207, 180, 122, 179, 170, 239, 101, 70, 29, 72, 206, 229, 173, 23, 76, 23, 223, 168, 217, 31, 71, 48, 226, 222, 164, 255, 111, 83, 8, 215, 35, 67, 60, 23, 170, 154, 202, 126, 17, 211, 166, 31, 196, 255, 89, 177, 213, 231, 172, 182, 240, 6, 67, 88, 171, 191, 241, 43, 53, 254, 79, 178, 179, 249, 99, 179, 230, 63, 144, 93, 152, 233, 51, 219, 180, 120, 74, 49, 218, 95, 110, 126, 171, 101, 245, 151, 104, 227, 185, 214, 109, 240, 60, 80, 127, 170, 9, 71, 221, 208, 4, 135, 99, 239, 153, 125, 139, 89, 116, 28, 207, 206, 18, 181, 120, 55, 143, 27, 244, 135, 34, 208, 147, + 233, 75, 103, 147, 237, 53, 53, 53, 247, 189, 255, 254, 125, 53, 181, 31, 44, 230, 152, 246, 98, 110, 27, 67, 209, 77, 37, 247, 159, 176, 249, 74, 173, 87, 102, 116, 56, 4, 55, 105, 92, 48, 190, 222, 204, 2, 166, 10, 203, 187, 249, 28, 142, 178, 124, 159, 110, 112, 75, 143, 251, 227, 114, 60, 138, 186, 144, 104, 43, 245, 253, 87, 172, 220, 199, 226, 213, 178, 8, 61, 110, 64, 1, 171, 249, 136, 228, 201, 86, 34, 180, 250, 239, 41, 207, 167, 126, 90, 244, 122, 211, 249, 243, 87, 163, 182, 222, 135, 2, 144, 17, 54, 237, 241, 239, 12, 1, 63, 221, 204, 248, 233, 86, 144, 231, 243, 65, 159, 149, 44, 22, 174, 162, 210, 209, 92, 242, 250, 122, 108, 63, 128, 179, 201, 37, 28, 199, 209, 225, 203, 87, 108, 232, 128, 248, 191, 177, 143, 77, 78, 132, 172, 81, 140, 198, 227, 55, 181, 112, 42, 122, 127, 55, 141, 239, 223, 147, 129, 130, 112, 51, 238, 127, 176, 150, 229, 211, 209, 143, 241, 222, 102, 71, 201, 227, 93, 139, 78, 191, 202, + 175, 141, 231, 183, 13, 67, 193, 158, 194, 207, 91, 1, 245, 78, 152, 43, 99, 236, 224, 204, 227, 29, 103, 138, 115, 255, 21, 113, 55, 209, 161, 242, 211, 167, 17, 250, 63, 188, 106, 20, 85, 208, 191, 94, 250, 215, 143, 88, 204, 187, 186, 120, 6, 203, 231, 103, 115, 185, 151, 16, 219, 38, 97, 234, 173, 22, 49, 189, 103, 158, 205, 106, 197, 16, 5, 100, 69, 118, 87, 29, 155, 29, 88, 60, 223, 132, 147, 89, 208, 67, 181, 90, 172, 115, 252, 184, 253, 218, 113, 7, 164, 192, 79, 114, 221, 132, 102, 49, 227, 90, 103, 93, 45, 111, 177, 216, 109, 21, 216, 52, 191, 218, 225, 132, 102, 119, 58, 77, 230, 74, 71, 101, 165, 64, 113, 181, 195, 49, 127, 190, 213, 86, 229, 168, 157, 95, 235, 168, 165, 71, 171, 157, 46, 250, 175, 117, 190, 213, 81, 141, 29, 14, 155, 195, 110, 115, 56, 172, 22, 187, 121, 33, 237, 212, 49, 207, 62, 207, 81, 89, 83, 89, 105, 159, 103, 158, 87, 117, 125, 87, 185, 207, 121, 251, 255, 155, 255, 84, 91 +}; diff --git a/examples/EVE_Test_SAMC21_EVE2-50G/tft_data.h b/examples/EVE_Test_SAMC21_EVE2-50G/tft_data.h index fe01be7..9a44458 100644 --- a/examples/EVE_Test_SAMC21_EVE2-50G/tft_data.h +++ b/examples/EVE_Test_SAMC21_EVE2-50G/tft_data.h @@ -12,6 +12,6 @@ extern const uint8_t logo[239] PROGMEM; extern const uint8_t pic[3844] PROGMEM; -extern const uint8_t flash[12753] PROGMEM; +extern const uint8_t flash[8199] PROGMEM; #endif /* TFT_DATA_H */ \ No newline at end of file diff --git a/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/platformio.ini b/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/platformio.ini index 5c72162..c6e0ed3 100644 --- a/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/platformio.ini +++ b/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/platformio.ini @@ -19,5 +19,9 @@ build_flags = -D EVE_EVE3_50G [env:same51j19a] board = same51j19a +upload_protocol = jlink +build_unflags = -Os build_flags = ${env.build_flags} + -D EVE_DMA + -O2 diff --git a/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft.c b/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft.c index 75784b0..f5f932e 100644 --- a/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft.c +++ b/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft.c @@ -1,8 +1,8 @@ /* -@file tft.c / tft.cpp +@file tft.c @brief TFT handling functions for EVE_Test project -@version 1.20 -@date 2022-12-10 +@version 1.21 +@date 2023-01-08 @author Rudolph Riedel @section History @@ -19,12 +19,16 @@ - renamed PINK to MAGENTA 1.20 +- several minor changes + +1.21 - several minor changes */ #include "EVE.h" #include "tft_data.h" +#include "tft.h" #define TEST_UTF8 0 @@ -47,16 +51,20 @@ #define MEM_LOGO 0x000f8000 /* start-address of logo, needs 6272 bytes of memory */ #define MEM_PIC1 0x000fa000 /* start of 100x100 pixel test image, ARGB565, needs 20000 bytes of memory */ - #define MEM_DL_STATIC (EVE_RAM_G_SIZE - 4096) /* 0xff000 - start-address of the static part of the display-list, upper 4k of gfx-mem */ -uint32_t num_dl_static; /* amount of bytes in the static part of our display-list */ +uint32_t num_dl_static = 0; /* amount of bytes in the static part of our display-list */ uint8_t tft_active = 0; -uint16_t num_profile_a, num_profile_b; +uint16_t num_profile_a = 0; +uint16_t num_profile_b = 0; #define LAYOUT_Y1 66 +void touch_calibrate(void); +void initStaticBackground(void); + + void touch_calibrate(void) { @@ -210,6 +218,8 @@ void touch_calibrate(void) /* write down the numbers on the screen and either place them in one of the pre-defined blocks above or make a new block */ #if 0 /* calibrate touch and displays values to screen */ + +#if 1 EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); @@ -218,15 +228,16 @@ void touch_calibrate(void) EVE_cmd_dl(DL_DISPLAY); EVE_cmd_dl(CMD_SWAP); EVE_execute_cmd(); +#else + EVE_calibrate_manual(EVE_HSIZE, EVE_VSIZE); +#endif - uint32_t touch_a, touch_b, touch_c, touch_d, touch_e, touch_f; - - touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); - touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); - touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); - touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); - touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); - touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); + uint32_t touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); + uint32_t touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); + uint32_t touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); + uint32_t touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); + uint32_t touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); + uint32_t touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); @@ -260,25 +271,25 @@ void touch_calibrate(void) void initStaticBackground(void) { EVE_cmd_dl(CMD_DLSTART); /* Start the display list */ - EVE_cmd_dl(TAG(0)); /* do not use the following objects for touch-detection */ + EVE_cmd_dl(DL_TAG); /* no tag = 0 - do not use the following objects for touch-detection */ - EVE_cmd_bgcolor(0x00c0c0c0); /* light grey */ + EVE_cmd_bgcolor(0x00c0c0c0UL); /* light grey */ - EVE_cmd_dl(VERTEX_FORMAT(0)); /* reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ + EVE_cmd_dl(DL_VERTEX_FORMAT); /* set to 0 - reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ /* draw a rectangle on top */ EVE_cmd_dl(DL_BEGIN | EVE_RECTS); - EVE_cmd_dl(LINE_WIDTH(1*16)); /* size is in 1/16 pixel */ + EVE_cmd_dl(LINE_WIDTH(1U*16U)); /* size is in 1/16 pixel */ EVE_color_rgb(BLUE_1); - EVE_cmd_dl(VERTEX2F(0,0)); + EVE_cmd_dl(DL_VERTEX2F); /* set to 0 / 0 */ EVE_cmd_dl(VERTEX2F(EVE_HSIZE,LAYOUT_Y1-2)); EVE_cmd_dl(DL_END); /* display the logo */ EVE_color_rgb(WHITE); EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS); - EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56, 56); + EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56U, 56U); EVE_cmd_dl(VERTEX2F(EVE_HSIZE - 58, 5)); EVE_cmd_dl(DL_END); @@ -341,7 +352,7 @@ void TFT_init(void) if (E_OK == EVE_init_flash()) { - EVE_cmd_flashread(MEM_FONT, 84928, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ + EVE_cmd_flashread(MEM_FONT, 61376, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ } #endif /* TEST_UTF8 */ @@ -353,7 +364,6 @@ void TFT_init(void) } } - uint16_t toggle_state = 0; uint16_t display_list_size = 0; @@ -394,11 +404,12 @@ void TFT_touch(void) } } break; + default: + break; } } } - /* dynamic portion of display-handling, meant to be called every 20ms or more */ @@ -406,7 +417,7 @@ void TFT_display(void) { static int32_t rotate = 0; - if(tft_active != 0) + if(tft_active != 0U) { #if defined (EVE_DMA) uint16_t cmd_fifo_size; @@ -418,18 +429,18 @@ void TFT_display(void) EVE_cmd_dl_burst(CMD_DLSTART); /* start the display list */ EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | WHITE); /* set the default clear color to white */ EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); /* clear the screen - this and the previous prevent artifacts between lists, Attributes are the color, stencil and tag buffers */ - EVE_cmd_dl_burst(TAG(0)); + EVE_cmd_dl_burst(DL_TAG); EVE_cmd_append_burst(MEM_DL_STATIC, num_dl_static); /* insert static part of display-list from copy in gfx-mem */ /* display a button */ EVE_color_rgb_burst(WHITE); - EVE_cmd_fgcolor_burst(0x00c0c0c0); /* some grey */ - EVE_cmd_dl_burst(TAG(10)); /* assign tag-value '10' to the button that follows */ + EVE_cmd_fgcolor_burst(0x00c0c0c0UL); /* some grey */ + EVE_cmd_dl_burst(DL_TAG+10U); /* assign tag-value '10' to the button that follows */ EVE_cmd_button_burst(20,20,80,30, 28, toggle_state,"Touch!"); - EVE_cmd_dl_burst(TAG(0)); /* no touch */ + EVE_cmd_dl_burst(DL_TAG); /* no touch */ /* display a picture and rotate it when the button on top is activated */ - EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100, 100); + EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100U, 100U); EVE_cmd_dl_burst(DL_SAVE_CONTEXT); EVE_cmd_dl_burst(CMD_LOADIDENTITY); @@ -438,7 +449,7 @@ void TFT_display(void) EVE_cmd_translate_burst(65536 * -70, 65536 * -50); /* shift back */ EVE_cmd_dl_burst(CMD_SETMATRIX); - if(toggle_state != 0) + if(toggle_state != 0U) { rotate += 256; } diff --git a/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.c b/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.c index b274913..2d47234 100644 --- a/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.c +++ b/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.c @@ -86,69 +86,57 @@ const /*__flash*/ uint8_t pic[3844] PROGMEM = /* Source File: Funtype.zlib unified.blob : 0 : 4096 -Funtype_24_ASTC.glyph : 4096 : 80832 -Funtype_24_ASTC.xfont : 84928 : 320 -z-lib compressed, unpacked size is 85248 +Funtype_24_ASTC.glyph : 4096 : 57280 +Funtype_24_ASTC.xfont : 61376 : 320 +z-lib compressed, unpacked size is 61952 The font is this one: https://fontlibrary.org/de/font/funtype -Converted with EAB using an ASCII map file to reduce the number of glyphs from 364 to 187. -This is only included for the purpose to demonstrate how to handle UTF-8 fonts with BT81x. +Converted with EAB 2.7.1 using an ASCII map file to reduce the number of glyphs to 119. +Glyphs are ASCII plus a select few from "Latin 1 Supplement" : ©«°±²³´µ¹»¼½¾ÄÖ×Üßäëö÷øü +This is only included to demonstrate how to handle UTF-8 fonts with BT81x. */ -const uint8_t flash[12753] PROGMEM = +const uint8_t flash[8199] PROGMEM = { - 0x78, 0x9c, 0xed, 0x7d, 0xd, 0x7c, 0x14, 0xd5, 0xb9, 0xfe, 0x33, 0x33, 0x9b, 0x99, 0x49, 0x76, 0x93, 0x5d, 0x64, 0x81, 0x5, 0x36, 0xd9, 0x55, 0xd7, 0x12, 0x5, 0xcc, 0x0, 0x11, 0x26, 0x12, 0xc8, 0x9, 0xac, 0xb9, 0x1, 0xb1, 0x5d, 0x34, 0x62, 0xd0, 0x2a, 0x83, 0xd5, 0x18, 0xb0, 0xf6, 0x6e, 0x20, 0x41, 0x82, 0xc1, 0x4c, 0xc4, 0x2b, 0xc1, 0x4a, 0x8d, 0x1f, 0xb7, 0x37, 0xfe, 0xb4, 0xed, 0xf6, 0xe3, 0x5f, 0x69, 0x6f, 0xed, 0x8d, 0xd4, 0xb6, 0xb4, 0xf5, 0x63, 0x48, 0xa8, 0x8d, 0x11, 0xed, 0xf6, 0xeb, 0x96, 0xeb, 0xad, 0xb7, 0xeb, 0xc5, 0x5b, 0xb1, 0xd5, 0x76, 0x10, 0x6c, 0x17, 0xd, 0xe4, 0x7f, 0xce, 0xcc, 0x6, 0x68, 0xe2, 0xed, 0xe2, 0xcd, 0x86, 0x60, 0xd9, 0x13, 0xd8, 0xdd, 0x77, 0xe6, 0xec, 0xce, 0x99, 0x67, 0xde, 0xf3, 0x7e, 0x9c, 0xf3, 0x9e, 0xf7, 0x44, 0x7f, 0xfb, 0xfe, 0x83, 0x45, 0x1c, 0x70, 0xe0, 0xeb, 0xa, 0x7c, 0x9c, 0x7, 0x40, 0xf2, 0x95, 0xa5, 0x8f, 0x5f, 0x34, 0x70, 0xa2, 0x10, 0x7d, 0xfb, 0xba, 0x1b, 0xd7, 0x5d, 0x37, 0xb7, 0x9e, 0x3c, 0x3c, 0xfb, 0xe0, 0x9c, 0xf7, 0xe7, 0x6c, 0x9d, 0xa3, 0xce, 0xbd, 0xb3, 0x42, 0x5f, 0x17, 0xea, 0xc0, 0x7f, 0x46, 0xd, 0xec, 0xd5, 0xf5, 0x69, 0x24, 0x36, 0x30, 0x48, 0x41, 0x1f, 0x67, 0x78, 0x75, 0xe1, 0x67, 0xf, 0x6c, 0x20, 0xba, 0xd0, 0x3d, 0xee, 0x27, 0x9f, 0x1f, 0xf0, 0x90, 0xaf, 0x54, 0xfc, 0x44, 0xdf, 0xba, 0x6e, 0x79, 0xe3, 0x5d, 0xb3, 0xeb, 0xc9, 0xf2, 0xd2, 0x6d, 0x15, 0xec, 0x37, 0xda, 0xe6, 0x36, 0xcd, 0x9d, 0x42, 0xaf, 0x36, 0xab, 0xca, 0x77, 0xfe, 0xdd, - 0x97, 0xee, 0xbf, 0x75, 0xfa, 0x17, 0xec, 0xab, 0x55, 0xad, 0xfb, 0xf1, 0xac, 0x13, 0x57, 0x72, 0xe2, 0xbb, 0x15, 0x7f, 0x58, 0xdf, 0xab, 0xe3, 0x27, 0x7d, 0x3, 0x9c, 0xfe, 0xf4, 0xb7, 0x84, 0x97, 0x67, 0xd1, 0x5f, 0xe2, 0xf5, 0xff, 0x68, 0xa8, 0x9b, 0xfb, 0x5, 0x7a, 0xf4, 0x17, 0xa9, 0xa3, 0xac, 0x8d, 0x75, 0x73, 0xbb, 0xe9, 0x91, 0x57, 0xe8, 0x11, 0xc7, 0x73, 0xc2, 0xcb, 0x75, 0x73, 0x83, 0x94, 0xfa, 0xdd, 0x0, 0xbf, 0xee, 0x87, 0xfa, 0xd3, 0xba, 0x42, 0x7e, 0x47, 0x8f, 0x57, 0x5b, 0xc7, 0xff, 0x44, 0x8f, 0x1f, 0xa3, 0xc7, 0x1b, 0x74, 0x81, 0xbe, 0x73, 0xfa, 0x67, 0xe8, 0xd1, 0x95, 0xeb, 0x38, 0x7d, 0x5, 0x7d, 0xff, 0xe5, 0xfa, 0xf8, 0xfa, 0x1b, 0xd7, 0x7d, 0x9f, 0x5e, 0xe3, 0xc6, 0x75, 0x41, 0x3d, 0xb1, 0xfe, 0xae, 0x75, 0x93, 0xe6, 0x76, 0xcd, 0x7d, 0xb6, 0x22, 0xe6, 0x5c, 0x79, 0x70, 0x6b, 0x6e, 0x33, 0x39, 0x58, 0xf2, 0xc0, 0x7d, 0x8e, 0x37, 0x6f, 0x9c, 0x37, 0xfb, 0x1e, 0xcf, 0x7b, 0x3, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xa7, 0xa5, 0x8, 0xa8, 0xe5, 0xae, 0xfd, 0x1b, 0xe5, 0xf6, 0xd, 0x35, 0xb3, 0x3d, 0xc7, 0x7e, 0xf3, 0xc3, 0xbf, 0x55, 0xa7, 0xff, 0xa8, 0xfd, 0x5b, 0xb0, 0xca, 0xc0, 0x40, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, - 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0xf4, 0xd9, 0x46, 0x4f, 0xc8, 0x7b, 0x28, 0x88, 0x22, 0xfa, 0x51, 0xcb, 0xb7, 0x8e, 0x8c, 0xf6, 0xf5, 0xbc, 0xb7, 0xa9, 0xa8, 0xc6, 0x4d, 0x9c, 0xc4, 0x3, 0xa4, 0x6a, 0x57, 0xd9, 0xdc, 0x3, 0xf7, 0x21, 0xf8, 0x3d, 0x33, 0x80, 0xd8, 0x54, 0x88, 0xe8, 0xe5, 0x46, 0xfb, 0xfa, 0xe2, 0xbd, 0xff, 0x15, 0xc4, 0x14, 0x9b, 0x42, 0xd2, 0x39, 0xe2, 0xfb, 0xad, 0xe6, 0xc0, 0xff, 0x9c, 0x3b, 0x8a, 0x0, 0x78, 0xeb, 0xc8, 0xda, 0x3, 0xb9, 0x70, 0x68, 0x10, 0x5c, 0xf3, 0xe, 0xeb, 0x82, 0x4b, 0xc9, 0x38, 0x9e, 0x1b, 0x80, 0x63, 0xff, 0xe3, 0xe, 0xfe, 0x9e, 0xe3, 0xca, 0xe4, 0x9d, 0xe7, 0x27, 0x50, 0x23, 0xe0, 0x73, 0x9c, 0x7d, 0xd2, 0xa1, 0xa3, 0x17, 0x6b, 0x8b, 0x39, 0x38, 0x52, 0xb7, 0x27, 0x14, 0x28, 0xf1, 0xa6, 0x88, 0xa0, 0xe7, 0x13, 0x47, 0x50, 0x4b, 0x76, 0x8b, 0x1e, 0xf0, 0x64, 0xac, 0xf9, 0x6d, 0x28, 0xbd, 0xc2, 0x43, 0x50, 0x54, 0xd4, 0xbd, 0x17, 0x9b, 0x50, 0xcb, 0x8e, 0xd4, 0xbc, 0x30, 0x7, 0x32, 0xc3, 0xd2, 0xd0, 0x57, 0x54, 0x44, 0xb9, 0x8c, 0xe3, 0xd7, 0xbc, 0x51, 0x46, 0xa3, 0x48, 0xaf, 0x40, 0xcb, 0x9c, 0xa4, 0xc0, 0x7f, 0xa6, 0xf3, 0x93, 0xf4, 0x38, 0x21, 0xec, 0x6c, 0xc2, 0x5c, 0xec, 0x94, 0x73, 0x48, 0x77, 0xa, 0x3e, 0xc4, 0xfa, 0x7f, 0xba, 0x2a, 0x7c, 0xfd, 0x2a, 0xdd, 0x4b, 0x10, 0x65, 0xb4, 0x91, 0xec, 0x1f, 0xf5, 0xfe, 0x91, 0xa5, 0x4f, 0x2f, 0x5d, - 0x23, 0xf0, 0xfd, 0x5c, 0x9f, 0xae, 0x46, 0xb8, 0x52, 0xa8, 0x31, 0xca, 0x7f, 0x82, 0xf8, 0x1e, 0x57, 0x4a, 0x24, 0xeb, 0x9f, 0x98, 0x79, 0x79, 0x28, 0xe7, 0x80, 0x1f, 0x78, 0x27, 0xc7, 0x19, 0x95, 0x8f, 0xee, 0x2f, 0xf1, 0x13, 0xe1, 0xd8, 0x81, 0x45, 0x90, 0x8b, 0xf0, 0x56, 0x90, 0x2f, 0xd6, 0x44, 0xd1, 0xd3, 0x3a, 0x6d, 0xc7, 0x56, 0xc4, 0xdc, 0x89, 0x80, 0x55, 0xdd, 0x81, 0xce, 0x66, 0xf3, 0xc2, 0x60, 0x2e, 0x1, 0xbf, 0x6e, 0xbd, 0xd6, 0xf1, 0xe2, 0x11, 0xc3, 0x28, 0xcd, 0x1, 0xb1, 0x7f, 0xb, 0x41, 0x8c, 0x42, 0xfb, 0xd2, 0xf6, 0x9f, 0x1d, 0xff, 0x6, 0x70, 0x7a, 0x20, 0x2f, 0xd5, 0x88, 0x15, 0xf5, 0x17, 0x23, 0xf1, 0x4a, 0xc0, 0x0, 0xca, 0x30, 0x7, 0x7, 0x46, 0x5d, 0x7e, 0x7b, 0x1b, 0x78, 0xe8, 0x39, 0xb6, 0xac, 0xd5, 0xda, 0xd4, 0x9e, 0xb, 0xd6, 0x5e, 0x8c, 0x46, 0x27, 0x3a, 0x80, 0xbb, 0x44, 0x44, 0x47, 0x2e, 0xcf, 0xd3, 0xd1, 0xe1, 0xef, 0xac, 0x87, 0xf6, 0xf0, 0x0, 0xb7, 0x94, 0x52, 0x7e, 0x5a, 0x46, 0xce, 0x7f, 0x38, 0xd6, 0x96, 0x24, 0x52, 0xa7, 0x5e, 0xb6, 0x93, 0x50, 0x41, 0xee, 0x7d, 0xe2, 0x53, 0x20, 0xc5, 0xa0, 0x78, 0xa2, 0x83, 0x24, 0x4b, 0x33, 0x7e, 0x3f, 0xa5, 0xf4, 0x7a, 0x1c, 0xf2, 0x22, 0x22, 0xe5, 0xee, 0x9e, 0xd9, 0x11, 0x8e, 0xf1, 0xa3, 0x64, 0xa, 0x1b, 0x90, 0x6f, 0x58, 0x2c, 0x45, 0xf9, 0x2b, 0xc9, 0x69, 0x55, 0xc9, 0x1e, 0x85, 0x88, 0x7d, 0x9a, 0xd4, 0x58, 0x9a, 0xc3, 0x1f, 0xe3, 0xba, 0xea, 0x64, 0x55, 0xd1, 0xcb, 0xa2, 0x62, 0x8f, 0x36, 0xd6, 0xfd, 0xf5, 0x3, 0xf4, 0x6f, 0x4a, - 0x5e, 0xdf, 0xe5, 0xee, 0x76, 0x27, 0xb8, 0xe6, 0x5d, 0xd, 0x40, 0x71, 0xb1, 0x75, 0x64, 0x5f, 0x34, 0xd2, 0x31, 0xd6, 0xed, 0x3b, 0xd3, 0x69, 0xef, 0x4c, 0xf, 0xf2, 0x70, 0x93, 0x28, 0xf5, 0xe4, 0x75, 0x33, 0xe, 0x28, 0xcd, 0x11, 0x4d, 0x6e, 0xdd, 0xea, 0x69, 0x50, 0xbb, 0xb4, 0xd6, 0x1b, 0xca, 0xd2, 0xf2, 0xdf, 0x6b, 0xf, 0xfc, 0x80, 0xbe, 0x13, 0x17, 0x93, 0x58, 0xa2, 0xc8, 0xa7, 0xad, 0x5f, 0xcd, 0x19, 0xdd, 0xcf, 0xc2, 0x44, 0x42, 0xe8, 0x16, 0x2a, 0x9d, 0x86, 0x50, 0xf3, 0xc2, 0x34, 0x6a, 0xf, 0x5a, 0x16, 0x8c, 0x83, 0xa0, 0xb, 0xd7, 0x21, 0x65, 0x48, 0x51, 0x75, 0xfb, 0xea, 0x40, 0xeb, 0x57, 0x28, 0x3f, 0xbe, 0xc5, 0x21, 0xb2, 0xf5, 0x39, 0xa8, 0x3e, 0x5d, 0xdc, 0x13, 0xa9, 0xe6, 0xc8, 0xf3, 0x38, 0x8c, 0x85, 0x70, 0x5b, 0x7f, 0x25, 0x47, 0xe5, 0xcf, 0x41, 0xd7, 0xff, 0x64, 0xcb, 0x4b, 0x4, 0x4f, 0xbb, 0x7d, 0xe3, 0x68, 0x72, 0x7, 0xb5, 0xfa, 0x37, 0xbf, 0x84, 0x80, 0x7c, 0x97, 0xf2, 0x53, 0x6a, 0xff, 0xd5, 0xf3, 0x8, 0x11, 0x43, 0x70, 0x97, 0x9b, 0x86, 0xe0, 0xc8, 0xbc, 0x7c, 0xe, 0xfd, 0x73, 0x63, 0xe2, 0x1, 0xa9, 0x1d, 0x97, 0x32, 0x32, 0xda, 0x32, 0x3b, 0xad, 0xbc, 0x9a, 0x30, 0xb, 0x61, 0x3d, 0x67, 0x91, 0x45, 0x26, 0x12, 0xc6, 0x58, 0xf3, 0xdb, 0x30, 0xfc, 0x9e, 0x59, 0x48, 0xf5, 0x49, 0xe4, 0x2, 0xf1, 0xa9, 0xcb, 0x2d, 0x26, 0x98, 0x17, 0x59, 0x4, 0x1f, 0x64, 0x52, 0xb1, 0x3a, 0xc1, 0x25, 0x42, 0x4b, 0xce, 0xc9, 0x38, 0xbf, 0xb3, 0xcb, 0xe4, 0x7a, 0x3c, 0x44, 0xfc, 0xef, 0x48, 0xae, 0xaa, - 0xaa, 0x69, 0xe5, 0x65, 0xe, 0x95, 0x97, 0xfc, 0x72, 0xf4, 0x68, 0xcc, 0x1e, 0x28, 0xeb, 0x1b, 0x6b, 0xbc, 0x86, 0xd2, 0x4b, 0x3b, 0x14, 0xfa, 0x1e, 0x16, 0x9e, 0xcb, 0xb1, 0x8f, 0xcc, 0xeb, 0x2d, 0x0, 0x22, 0xfc, 0x7b, 0x3, 0x3, 0xfb, 0x7e, 0x5d, 0x1b, 0x5a, 0xf2, 0x60, 0xa6, 0xaf, 0x77, 0xe9, 0x81, 0xff, 0x47, 0xdf, 0x83, 0x5, 0x36, 0x8d, 0xfa, 0x74, 0xf5, 0xf, 0x3e, 0xb2, 0x1e, 0x91, 0x20, 0x38, 0xd, 0xd0, 0xc5, 0xbd, 0xda, 0x9a, 0xb1, 0xc6, 0x2b, 0x4b, 0x67, 0x96, 0x1e, 0xae, 0x3f, 0xf2, 0xfe, 0xc8, 0x1d, 0xd2, 0x16, 0xec, 0x18, 0x35, 0xfd, 0x41, 0x52, 0xfa, 0xc3, 0x10, 0xc8, 0x29, 0xe8, 0x8f, 0xf0, 0x1d, 0x12, 0x92, 0x31, 0xc7, 0x64, 0x27, 0xc4, 0x97, 0xf7, 0xfd, 0xe6, 0xf9, 0xe7, 0xc7, 0x5a, 0x7f, 0x50, 0xfb, 0x4b, 0x5, 0x6, 0xad, 0x67, 0xe0, 0xcb, 0xce, 0x42, 0x98, 0x12, 0x83, 0xe0, 0xc6, 0x37, 0xae, 0xac, 0xde, 0xc9, 0x85, 0xbf, 0x3b, 0xb, 0x1b, 0x3e, 0x33, 0xe8, 0xc1, 0x7b, 0x4c, 0x5a, 0xff, 0x62, 0xfa, 0x61, 0xcf, 0x60, 0xfd, 0xb1, 0x7e, 0xde, 0x67, 0x1a, 0x6d, 0xc9, 0x67, 0x45, 0x17, 0xbb, 0x1f, 0x89, 0x56, 0x31, 0x18, 0x6b, 0xb6, 0x5d, 0x8d, 0xa5, 0xba, 0x43, 0x81, 0xaa, 0x89, 0x3e, 0xe4, 0x64, 0x7e, 0xfc, 0xa0, 0xa3, 0x51, 0x97, 0x7, 0x47, 0x58, 0xd4, 0x64, 0x6f, 0xba, 0xfa, 0xf2, 0xb6, 0xc9, 0x8, 0xf2, 0x83, 0xcf, 0x3b, 0xdf, 0x1c, 0x6b, 0xbc, 0x86, 0xd2, 0xf3, 0x77, 0x70, 0xa0, 0x1a, 0x24, 0xb0, 0x34, 0xd5, 0xc2, 0x51, 0xd7, 0x57, 0xd1, 0x69, 0x68, 0xaf, 0xa3, 0x1f, 0x79, 0x7e, 0xc7, 0xc0, - 0xc5, 0x3c, 0xff, 0xdf, 0xdb, 0x1c, 0xd4, 0xeb, 0xe8, 0xa7, 0x1d, 0xd8, 0x18, 0x38, 0x58, 0xf1, 0x30, 0x1f, 0xde, 0x76, 0x37, 0x73, 0x43, 0xec, 0xfe, 0x98, 0x30, 0xcd, 0xa6, 0x78, 0x8d, 0x96, 0x47, 0x64, 0x8b, 0x9c, 0x15, 0x51, 0xcf, 0x38, 0xfe, 0xf7, 0xbe, 0xb4, 0x8, 0x6a, 0xf0, 0xca, 0x8, 0x81, 0xc8, 0x47, 0xeb, 0x24, 0x84, 0xf, 0x5d, 0x43, 0x9f, 0x37, 0xbc, 0xad, 0x54, 0xdf, 0x19, 0x7a, 0xe6, 0xf1, 0xac, 0xc9, 0x9d, 0x45, 0xfd, 0x1b, 0x8b, 0x58, 0x57, 0x55, 0xa1, 0xbb, 0xd3, 0xd5, 0x5f, 0xb, 0xe6, 0xef, 0xa5, 0x8a, 0xcb, 0x73, 0xc6, 0xe1, 0xc7, 0xfc, 0xcf, 0x36, 0x13, 0x1c, 0x35, 0x11, 0x4c, 0xf7, 0x33, 0x40, 0xb3, 0xd2, 0x4, 0x17, 0x87, 0x1b, 0x34, 0x9d, 0x44, 0x28, 0xa8, 0x19, 0x6f, 0xaf, 0x77, 0xe6, 0x52, 0xc6, 0x5f, 0x56, 0xe9, 0x8a, 0xdc, 0xbf, 0x27, 0x6d, 0xfd, 0xe9, 0x8d, 0xa8, 0xd5, 0xbd, 0x36, 0x3, 0xf2, 0x9e, 0x31, 0xf7, 0x7f, 0x2f, 0xdb, 0x45, 0xed, 0x65, 0x17, 0x62, 0x66, 0x20, 0x96, 0xcb, 0x8c, 0x30, 0x79, 0xdb, 0x74, 0x78, 0xa8, 0x6, 0x64, 0xa5, 0xdc, 0x5c, 0xe4, 0x1c, 0xeb, 0xf6, 0x7d, 0xd4, 0xe8, 0xb0, 0x80, 0xb5, 0x56, 0xff, 0x48, 0x75, 0x92, 0xf0, 0x3, 0x54, 0x1a, 0xc6, 0xbe, 0x1b, 0x80, 0xa3, 0x8d, 0x30, 0x3a, 0xdd, 0xf7, 0x43, 0xf, 0xd1, 0xfa, 0xfa, 0x5b, 0x81, 0x98, 0xac, 0xb8, 0x4e, 0xa5, 0x3e, 0x9b, 0x2f, 0x48, 0xf2, 0x49, 0x3c, 0x8d, 0x22, 0x6a, 0x7e, 0x38, 0x11, 0x7e, 0x77, 0x72, 0x2c, 0x77, 0x35, 0xb7, 0x52, 0x51, 0x54, 0x55, 0x99, 0x1a, 0x28, 0x28, 0x7d, 0x71, 0x22, 0x5c, 0x26, - 0x6b, 0x8c, 0x41, 0xda, 0x92, 0x3, 0x2f, 0x36, 0xc5, 0x57, 0xe0, 0xde, 0x7a, 0xe0, 0x3b, 0x11, 0xb1, 0x9b, 0x50, 0xbf, 0xe8, 0x66, 0xdf, 0x2, 0x72, 0x31, 0xda, 0xb9, 0xef, 0x5a, 0xed, 0xd5, 0x8d, 0x70, 0xe, 0xd6, 0x61, 0xb0, 0xe8, 0xe9, 0xaf, 0x2f, 0x7e, 0xf3, 0x7b, 0xac, 0xa2, 0x3f, 0x1c, 0x6, 0x9, 0x87, 0xf, 0x8e, 0xd8, 0xde, 0xa9, 0x6b, 0xa7, 0x3c, 0x28, 0x1b, 0x42, 0x92, 0x6b, 0x5, 0x9b, 0x41, 0xa2, 0xfa, 0xf8, 0xf7, 0x9c, 0x42, 0xc4, 0xee, 0x48, 0xb8, 0xa2, 0x71, 0x14, 0xc6, 0x27, 0xbd, 0x2f, 0xcd, 0x87, 0x1e, 0x64, 0x37, 0x5f, 0x3e, 0x5b, 0xe3, 0xd4, 0xee, 0xa1, 0xe7, 0xe7, 0x15, 0xd7, 0x21, 0x41, 0x4d, 0xc0, 0x63, 0x2, 0xde, 0x19, 0x8f, 0xfe, 0xf1, 0xcd, 0xd1, 0xeb, 0xf1, 0xc5, 0x1b, 0x51, 0x53, 0x5c, 0x2c, 0xd7, 0x47, 0x15, 0x43, 0xc9, 0x74, 0x7b, 0x26, 0xdc, 0xcb, 0xf0, 0x4c, 0xd8, 0x33, 0x4a, 0xa4, 0x23, 0xe3, 0xbf, 0x9f, 0x69, 0x3a, 0xb4, 0x79, 0x25, 0x76, 0x41, 0x9c, 0xd2, 0xce, 0xb8, 0xe0, 0x60, 0xd4, 0x37, 0xd6, 0xed, 0xf9, 0xa8, 0xd3, 0xde, 0xfc, 0x5c, 0xda, 0x2b, 0x23, 0xab, 0x7f, 0x20, 0xa, 0x3e, 0x76, 0x64, 0xac, 0xdb, 0xf3, 0x61, 0xe9, 0xd2, 0x1c, 0xc7, 0xb1, 0x36, 0x71, 0x8f, 0x86, 0x47, 0x6b, 0xef, 0x91, 0x4e, 0x43, 0xfb, 0xeb, 0x64, 0x6a, 0xbf, 0x58, 0xda, 0x74, 0x80, 0x1b, 0xe0, 0x67, 0xa6, 0xbd, 0x5e, 0x95, 0xbc, 0x97, 0xbe, 0xeb, 0x1, 0x8b, 0x4c, 0x20, 0x3e, 0xd6, 0x78, 0xd, 0xc7, 0x2f, 0xeb, 0x7f, 0x8c, 0x84, 0x3e, 0xb8, 0xb2, 0x1, 0xb9, 0x3a, 0xbd, 0x9f, 0x6, 0xc3, 0xf2, 0xdb, - 0x97, 0x6c, 0xac, 0x2, 0x29, 0xd2, 0x27, 0x7, 0xe9, 0xa1, 0xfb, 0x90, 0x79, 0x7e, 0x64, 0xfc, 0xce, 0x79, 0x88, 0x58, 0xf6, 0x62, 0x17, 0x11, 0x4b, 0xf5, 0xb4, 0xe3, 0x7f, 0xde, 0x17, 0xf3, 0xa0, 0xf3, 0x1e, 0x78, 0x22, 0x91, 0xda, 0x88, 0xac, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xe5, 0xf9, 0xa, 0xa8, 0xc8, 0x19, 0xa7, 0x6e, 0xd9, 0x9d, 0x38, 0x44, 0x25, 0x50, 0xf8, 0x90, 0x23, 0xf1, 0x3b, 0xf7, 0x56, 0x6e, 0xaa, 0xc4, 0x59, 0x16, 0x42, 0xba, 0xef, 0x37, 0xfc, 0x40, 0x82, 0xc6, 0x97, 0xb2, 0x11, 0x6, 0x51, 0xe8, 0xe, 0xa6, 0xad, 0x4f, 0xed, 0xf5, 0xd4, 0x7c, 0x4b, 0xb1, 0xe9, 0x2c, 0x89, 0xf, 0xab, 0x1f, 0xfe, 0xd1, 0x55, 0xa8, 0xbf, 0x48, 0xb0, 0x27, 0xcc, 0x81, 0xd5, 0x35, 0x82, 0xf8, 0xe7, 0x4a, 0x52, 0xd0, 0xa7, 0x51, 0x8b, 0xe0, 0xdc, 0xb2, 0xeb, 0x10, 0x7e, 0x3f, 0x17, 0xdb, 0xc8, 0xe2, 0x71, 0xca, 0xc0, 0x7d, 0x7b, 0xb5, 0xa8, 0x2, 0xc7, 0x33, 0x57, 0x11, 0x8f, 0x83, 0x23, 0x9c, 0xc8, 0xaa, 0x57, 0x6e, 0x1a, 0x1b, 0xfc, 0x8c, 0xdc, 0xe4, 0x96, 0xdd, 0xaf, 0x33, 0xfc, 0x6a, 0xbe, 0xc1, 0x19, 0xd5, 0x7a, 0x14, 0x62, 0xd0, 0xae, 0x71, 0x2a, 0xf8, 0x2d, 0x45, 0x38, 0x85, 0x5f, 0x7a, 0xff, 0x8a, 0xe2, 0xf7, 0xbc, 0xfd, 0xf9, 0x87, 0xa6, 0xe0, 0x1e, 0x8e, 0x9f, 0x18, 0x7d, 0x91, 0xbe, 0x87, 0xa6, 0xda, 0x34, 0x54, 0x8a, 0xdf, 0x31, 0x8e, 0x88, 0x7b, 0x2d, 0xfc, 0x9c, 0xd7, 0x61, 0xed, 0x8e, 0x12, 0xdc, 0xbd, 0xbd, 0xb8, 0xd8, 0x63, 0xf0, 0x47, 0x4d, 0x9e, 0xc5, 0x4b, 0x4c, 0x1c, 0xf4, 0x67, 0xd6, 0x6d, 0x6c, 0xe5, - 0x9c, 0xd4, 0x1e, 0xdc, 0x88, 0xc1, 0xa2, 0xeb, 0xa3, 0x2e, 0xcf, 0x87, 0xfa, 0x6f, 0xde, 0xfc, 0x8b, 0x91, 0x13, 0x9c, 0xd3, 0xa5, 0x11, 0x5d, 0x14, 0xf6, 0xa4, 0xc7, 0x6f, 0xad, 0x3c, 0x1, 0x8e, 0x20, 0x78, 0x87, 0x6a, 0xea, 0xc2, 0x29, 0xe0, 0x9d, 0xce, 0x7f, 0x63, 0xfc, 0x57, 0x1b, 0x12, 0x10, 0xb3, 0xf, 0xac, 0x66, 0xf6, 0xb6, 0xf0, 0x34, 0x57, 0x48, 0xa4, 0x38, 0x97, 0x4c, 0x2c, 0x8c, 0x87, 0xf, 0x5d, 0x11, 0x3c, 0x3a, 0x69, 0x5f, 0xce, 0x86, 0x63, 0xed, 0x46, 0x42, 0xa3, 0xfc, 0xb7, 0xe0, 0x22, 0x8c, 0xef, 0xe5, 0x8a, 0xd9, 0xc, 0x32, 0xb0, 0x38, 0x79, 0xba, 0xf9, 0x8f, 0x3e, 0x2f, 0x7, 0xeb, 0xa8, 0x83, 0x3e, 0x3a, 0xf5, 0xd7, 0xff, 0x8b, 0x7e, 0x16, 0x6, 0x1f, 0x61, 0xc6, 0xf5, 0x47, 0x74, 0x15, 0xda, 0xa9, 0xa8, 0x15, 0x45, 0xaa, 0xad, 0x54, 0x55, 0x2c, 0x9d, 0x3e, 0x15, 0x2d, 0xc1, 0x75, 0xe8, 0x89, 0x40, 0xed, 0x6b, 0x5c, 0x81, 0xb5, 0xf2, 0x1a, 0x14, 0xcb, 0xe6, 0x21, 0x7b, 0x10, 0x35, 0x48, 0xc2, 0x65, 0xb3, 0x60, 0xf0, 0x54, 0x1c, 0x6b, 0x6c, 0x34, 0x43, 0x1f, 0xf1, 0xfc, 0xd1, 0x84, 0x6f, 0x7e, 0x83, 0xbe, 0xc7, 0x2c, 0x7d, 0x1e, 0x7b, 0x7, 0x98, 0x78, 0xef, 0x5c, 0x6a, 0xf, 0xfc, 0x32, 0x75, 0xfb, 0x7f, 0xb8, 0x3b, 0xdd, 0xf7, 0xe7, 0xb7, 0xaf, 0x40, 0xc4, 0x41, 0x58, 0xdb, 0xba, 0x12, 0xf4, 0x3e, 0xaa, 0x3a, 0x72, 0x74, 0x99, 0x72, 0x4e, 0xb9, 0xe5, 0x4d, 0xb1, 0xf8, 0xd, 0xfe, 0x2d, 0xae, 0x16, 0xdd, 0x44, 0xea, 0xe4, 0xe6, 0x10, 0x15, 0xe1, 0xed, 0xbf, 0xd2, 0xcf, 0x2d, 0x8f, 0x79, 0xa1, - 0x44, 0x13, 0x99, 0x18, 0x8f, 0xa9, 0xe6, 0x8, 0xaf, 0xbb, 0x89, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0xba, 0x6a, 0x58, 0x45, 0xbc, 0x16, 0x5e, 0x4a, 0x53, 0x2d, 0x35, 0x6, 0x60, 0xb9, 0x82, 0x6, 0x11, 0x3b, 0xc1, 0xe2, 0xb5, 0x96, 0x17, 0xe0, 0xa8, 0xee, 0x79, 0xd6, 0x3f, 0x7, 0x51, 0x7e, 0xac, 0xf5, 0x85, 0xe3, 0xd0, 0xb7, 0xe8, 0x7b, 0x22, 0x10, 0xcb, 0x85, 0xc2, 0xac, 0x88, 0x74, 0xf8, 0x79, 0xdf, 0xbe, 0x92, 0xea, 0x67, 0xc6, 0x9, 0xa4, 0x6a, 0xab, 0x9a, 0x7e, 0x7c, 0xfe, 0xef, 0x1d, 0xbf, 0xd0, 0xf4, 0xb7, 0x83, 0x89, 0x0, 0xa1, 0x50, 0xe9, 0xaf, 0x29, 0x72, 0x7a, 0xfc, 0xc2, 0xb7, 0xfd, 0x53, 0x42, 0xf7, 0xc7, 0x72, 0xe0, 0xf2, 0x97, 0x27, 0xcd, 0xc4, 0x59, 0x8f, 0x5f, 0xcd, 0x9b, 0x1c, 0xf5, 0xdf, 0x81, 0x1d, 0x70, 0xae, 0xd3, 0x7f, 0x92, 0x1e, 0x3f, 0x6a, 0xaf, 0xfd, 0x99, 0x9, 0x87, 0x17, 0x1b, 0x37, 0x29, 0x22, 0x97, 0xed, 0xbf, 0xe1, 0x71, 0xa, 0x82, 0x37, 0xef, 0x2f, 0x4, 0x1c, 0xa2, 0x5b, 0x4a, 0x8f, 0x5f, 0xa8, 0x89, 0x99, 0x3, 0x87, 0xb9, 0x8f, 0xc3, 0xb5, 0xb5, 0x7, 0x59, 0xfc, 0x4a, 0xc7, 0x51, 0x5b, 0xcd, 0x7c, 0x5e, 0x82, 0xa4, 0x40, 0xa2, 0xf6, 0x5a, 0x7a, 0xfe, 0x13, 0xd9, 0xf8, 0x79, 0x4f, 0x63, 0x84, 0x7d, 0x23, 0x59, 0x7b, 0xb6, 0xe3, 0x37, 0x4c, 0x1e, 0xbe, 0xeb, 0x20, 0xff, 0x7e, 0xcb, 0x77, 0xb8, 0xe0, 0x16, 0x12, 0x64, 0x47, 0x6a, 0x2e, 0x3c, 0x17, 0xd5, 0x70, 0xec, 0x8a, 0xec, 0x7e, 0xa5, 0x75, 0x20, 0x3f, 0x3d, 0xbf, 0x5d, 0x1d, 0xaf, 0x9, 0x5e, - 0x84, 0xa8, 0xe5, 0xd2, 0x56, 0xd4, 0x4a, 0x42, 0x7a, 0xfc, 0xc0, 0xa3, 0x84, 0x48, 0x3, 0xc2, 0x7b, 0x78, 0x1a, 0x85, 0x10, 0xcf, 0xe1, 0xd8, 0xb0, 0xe7, 0x79, 0x80, 0x46, 0x9d, 0xdc, 0x83, 0xb9, 0x47, 0x6b, 0x6f, 0x21, 0xb9, 0x10, 0x7d, 0x7, 0x58, 0xf5, 0xa4, 0xea, 0x64, 0xf8, 0x71, 0x12, 0xe, 0xb4, 0x69, 0xb, 0x7f, 0x3b, 0x1b, 0x9, 0xac, 0xad, 0x5e, 0x96, 0x1a, 0x7f, 0x0, 0xba, 0xdd, 0x1, 0xac, 0x54, 0x2f, 0xd2, 0x72, 0x89, 0x23, 0xaa, 0x5b, 0x16, 0xc8, 0xd5, 0x2f, 0x9f, 0x76, 0x79, 0x28, 0xf0, 0x76, 0xbc, 0x69, 0x44, 0xb4, 0xfc, 0x2a, 0x39, 0x87, 0x2c, 0xb6, 0xcf, 0xe1, 0xf5, 0x81, 0xc3, 0x52, 0xc6, 0xed, 0xbf, 0x6a, 0x4e, 0x5f, 0xf4, 0xc, 0x92, 0x88, 0xb, 0x86, 0x60, 0x38, 0xd, 0x21, 0xfc, 0xc4, 0xaf, 0xa9, 0xf7, 0xa3, 0x4, 0xec, 0xf3, 0x82, 0x40, 0xaf, 0x2f, 0xc4, 0x85, 0xd6, 0x2e, 0x38, 0x13, 0xe4, 0xb9, 0x81, 0xe7, 0x12, 0xa5, 0x2, 0xd8, 0x26, 0x4b, 0x29, 0xc4, 0x86, 0x3f, 0xcf, 0x26, 0x6a, 0xc2, 0x1d, 0x9f, 0x5f, 0xa2, 0x4a, 0x71, 0xb4, 0xf1, 0xba, 0xb6, 0x7d, 0x45, 0x70, 0x57, 0x9b, 0x45, 0x38, 0x94, 0x1e, 0x1e, 0x35, 0x6f, 0x86, 0x90, 0xa7, 0x57, 0x8a, 0x8a, 0x5e, 0xb6, 0x8e, 0xb5, 0xc3, 0xf1, 0xab, 0x1a, 0xf2, 0xef, 0xab, 0x50, 0x11, 0xcc, 0xa5, 0x1d, 0xe8, 0x59, 0x1, 0xe1, 0xa6, 0xeb, 0x49, 0xa7, 0xc1, 0x85, 0x10, 0xcd, 0x8c, 0xfd, 0x17, 0x3e, 0x52, 0x4, 0xff, 0xb6, 0x4a, 0xbd, 0x6d, 0xa, 0x8b, 0xfe, 0x2c, 0xf4, 0x9f, 0x34, 0x1f, 0xd7, 0x49, 0x92, 0xf5, 0xe2, 0x52, 0xdf, 0x1c, 0xea, 0xb, - 0x3a, 0x2f, 0xb2, 0x8e, 0xc4, 0x8f, 0x5d, 0xe1, 0x9d, 0x5e, 0x89, 0x7d, 0x82, 0x6a, 0xe3, 0x77, 0x77, 0xc5, 0xce, 0xb1, 0xee, 0xaf, 0x4b, 0xcd, 0x19, 0x4c, 0xde, 0x14, 0xc3, 0x2d, 0x58, 0x26, 0x7e, 0x3a, 0xfc, 0x9a, 0x3b, 0x27, 0xd0, 0xca, 0xb2, 0x7, 0x3a, 0x89, 0x74, 0x2a, 0xbd, 0x67, 0x3d, 0x7e, 0xa5, 0xff, 0xea, 0x47, 0xa9, 0xc9, 0xe9, 0x62, 0x52, 0x21, 0xa7, 0x82, 0x5f, 0xcd, 0x9a, 0x1c, 0x6a, 0x3f, 0xf3, 0x50, 0x70, 0x44, 0xaf, 0x20, 0x6a, 0xf0, 0x6c, 0xc7, 0xcf, 0xfb, 0x4, 0xf, 0x4f, 0x31, 0x47, 0xee, 0x51, 0xcb, 0xfa, 0x4e, 0x5, 0xbf, 0xd0, 0xe6, 0x9, 0x58, 0x10, 0xc, 0x53, 0x2a, 0x33, 0xf6, 0xcb, 0x47, 0x1d, 0xbf, 0x1a, 0x1, 0x7f, 0xe4, 0xd0, 0x8b, 0x24, 0x51, 0x23, 0xa2, 0xf, 0x8, 0xbd, 0xfd, 0x63, 0x68, 0xfb, 0x12, 0x1, 0x88, 0x5b, 0x76, 0x9b, 0xcd, 0xd4, 0x1e, 0x8c, 0xd7, 0xc0, 0x67, 0x57, 0x36, 0xa8, 0xba, 0x4b, 0x50, 0x7b, 0x63, 0x1a, 0xfd, 0x4c, 0x90, 0x2a, 0x23, 0xbd, 0xfe, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x82, 0xe1, 0x6, 0x7d, 0xd, 0x3f, 0xca, 0xd6, 0xcf, 0xc0, 0x71, 0x39, 0x7b, 0xd, 0x4, 0xa, 0xec, 0xf1, 0xfa, 0x44, 0x91, 0x55, 0xfd, 0x4c, 0x1c, 0xaf, 0x9f, 0x7e, 0x11, 0x5a, 0x22, 0x40, 0x59, 0x69, 0x2d, 0x11, 0xf9, 0xf4, 0xf8, 0xcd, 0x2f, 0x6e, 0x46, 0x9c, 0xb7, 0xe1, 0xf3, 0xfb, 0xa2, 0x67, 0x3d, 0x7e, 0xe1, 0x47, 0x35, 0xda, 0x5f, 0x85, 0xc9, 0x26, 0xb4, 0x86, 0xf9, 0x81, 0x82, 0xb4, 0xf8, 0x79, 0x2f, 0xbf, 0x3, 0x41, 0xe8, 0xe, 0x74, 0x58, 0x70, 0x9f, 0xf5, 0xf8, 0x35, - 0xc5, 0x2f, 0x81, 0x8f, 0xc3, 0x79, 0xdc, 0xa4, 0xae, 0xb0, 0xea, 0x49, 0xcf, 0x7f, 0x6c, 0xfe, 0xda, 0x87, 0x5c, 0xf, 0x88, 0x16, 0x89, 0x64, 0xf1, 0x1b, 0x46, 0x1f, 0x5c, 0x99, 0x1a, 0xff, 0xde, 0xab, 0xa1, 0x77, 0xdd, 0x6a, 0x49, 0xce, 0xc1, 0x22, 0xc9, 0x44, 0xa1, 0xe1, 0x36, 0xa5, 0xc3, 0x10, 0xd3, 0xe2, 0x15, 0xe6, 0xb0, 0xd1, 0xb6, 0x5f, 0x75, 0xeb, 0x35, 0xbd, 0xfd, 0xb4, 0x39, 0x48, 0xf9, 0x9f, 0x97, 0x69, 0xa9, 0x8, 0xc8, 0x8e, 0xb5, 0xc5, 0x4b, 0x91, 0xa, 0xbf, 0xc1, 0x63, 0xef, 0x48, 0x6e, 0xef, 0xf6, 0x4f, 0xc2, 0x69, 0xa4, 0x7e, 0x71, 0x7f, 0x45, 0x59, 0xf8, 0xb, 0xd7, 0x91, 0xcf, 0x8b, 0xc5, 0x71, 0x49, 0xe0, 0xb8, 0x83, 0x7, 0x39, 0xae, 0x4e, 0xe6, 0xa1, 0xe6, 0x5a, 0x4f, 0xd7, 0x64, 0x61, 0xac, 0xa7, 0xbd, 0xff, 0xe6, 0xff, 0x1b, 0x8c, 0xe9, 0x41, 0xfa, 0x7c, 0x45, 0x49, 0x12, 0xd8, 0x7c, 0xa5, 0x80, 0x8e, 0xe2, 0x83, 0xea, 0xed, 0x91, 0xb2, 0x28, 0xb, 0x4b, 0x2d, 0x9d, 0x1e, 0x40, 0x4b, 0xb4, 0xbb, 0x91, 0x48, 0x6, 0x61, 0x3e, 0x19, 0xf3, 0x7, 0xe8, 0x17, 0x5b, 0xcc, 0x8a, 0x7f, 0x8, 0x24, 0xe8, 0x87, 0xdc, 0xbc, 0x47, 0xd9, 0xf, 0x4d, 0x64, 0x2f, 0xb2, 0x8b, 0x47, 0x93, 0x79, 0xd, 0x14, 0xce, 0xcf, 0xba, 0x36, 0x55, 0x47, 0xe9, 0xfd, 0x95, 0xf0, 0x6d, 0xdf, 0x86, 0xde, 0x7b, 0x34, 0xe0, 0xf7, 0x59, 0x65, 0xb2, 0xf7, 0xb6, 0x8b, 0x61, 0x4, 0xed, 0xb3, 0x1a, 0x51, 0x93, 0xe1, 0x97, 0x1e, 0xc7, 0x9a, 0x80, 0x6e, 0x4f, 0x70, 0x72, 0x9c, 0xc0, 0xfc, 0xbd, 0xe7, 0xf0, 0x17, 0x7e, 0xbf, 0xf3, - 0xb3, 0x25, 0xce, 0x67, 0x9d, 0xc9, 0x4b, 0x78, 0x24, 0x18, 0xba, 0xec, 0x2b, 0x39, 0x14, 0xe2, 0x15, 0x72, 0x1, 0x82, 0xba, 0xcd, 0xae, 0xb4, 0xa3, 0x8c, 0xd8, 0xbe, 0xfa, 0xf0, 0xfa, 0x98, 0x4f, 0x9e, 0xec, 0xbf, 0x6d, 0x62, 0x83, 0x2d, 0x3a, 0xf6, 0x6, 0xe7, 0x14, 0x74, 0x96, 0xbc, 0x91, 0x83, 0xf0, 0x82, 0x29, 0x7a, 0x5e, 0xe9, 0x52, 0x1d, 0x2e, 0xbf, 0x1a, 0x35, 0x8d, 0xe1, 0xf3, 0x65, 0xef, 0xde, 0xe, 0x8d, 0x5b, 0x26, 0x31, 0xef, 0x44, 0x3f, 0x5, 0xfe, 0x1b, 0xea, 0xbf, 0xd, 0x8d, 0x7f, 0xbe, 0xbc, 0x98, 0x67, 0xf1, 0x73, 0x56, 0x79, 0xf2, 0x81, 0x87, 0x77, 0x87, 0x73, 0xac, 0xb5, 0x64, 0xc7, 0xe7, 0x17, 0xd8, 0xf8, 0x83, 0x15, 0xff, 0x5c, 0x42, 0xff, 0xdc, 0x28, 0x1c, 0xeb, 0xf5, 0x33, 0xe9, 0xf0, 0xf3, 0xde, 0x36, 0x1d, 0x17, 0xd0, 0x87, 0xdd, 0xdb, 0x59, 0x1b, 0x89, 0x54, 0xe, 0x5f, 0xf, 0x7c, 0xb6, 0xe1, 0x67, 0x8d, 0xdf, 0x6b, 0x89, 0x40, 0x22, 0xcf, 0x1e, 0xbf, 0x4f, 0x87, 0x1f, 0x9b, 0x9f, 0x43, 0x97, 0xee, 0x7e, 0xeb, 0x17, 0x8d, 0x52, 0x45, 0x2, 0xa0, 0xf7, 0xf3, 0x71, 0xeb, 0xa7, 0x2c, 0xb4, 0x28, 0x7d, 0x96, 0xe1, 0x57, 0xfa, 0x87, 0xf3, 0x51, 0xcc, 0xe2, 0xeb, 0x84, 0x2e, 0xb6, 0xdc, 0xf2, 0x54, 0xf0, 0x63, 0x6b, 0xa7, 0x9e, 0x35, 0x4b, 0xf6, 0x97, 0xc4, 0xd9, 0x4d, 0xde, 0x71, 0x3, 0x15, 0x7c, 0xfd, 0x5c, 0xa3, 0xd5, 0x5c, 0x99, 0x3f, 0xdb, 0xf0, 0x9b, 0xdf, 0x3e, 0xf, 0x1e, 0x84, 0x21, 0xfa, 0x8b, 0x9, 0x4e, 0x1, 0xbf, 0x26, 0xdf, 0x44, 0xdd, 0xe1, 0x60, 0x83, 0x99, 0x5b, 0x2b, 0x94, - 0x7b, 0x86, 0xeb, 0x87, 0xb3, 0xd, 0xbf, 0xb4, 0xfc, 0x99, 0x83, 0xbd, 0x27, 0xbc, 0xb5, 0xcc, 0xcf, 0xff, 0x32, 0x7d, 0x4a, 0xf8, 0x38, 0xd5, 0xa9, 0x1, 0x1c, 0xe1, 0x49, 0xda, 0xf5, 0xda, 0xa1, 0x42, 0x1e, 0x37, 0x23, 0xb8, 0x26, 0x17, 0xbe, 0x29, 0xb2, 0x3, 0xab, 0xc7, 0x1a, 0x9f, 0xf, 0xd0, 0x1f, 0xfd, 0x27, 0xf3, 0x5f, 0x73, 0x47, 0x2e, 0x36, 0x12, 0xd7, 0x79, 0x7b, 0xba, 0xcb, 0xd4, 0x5d, 0xad, 0xcf, 0xd, 0xbb, 0x3f, 0x96, 0xef, 0x24, 0xe8, 0xb7, 0x9e, 0xf5, 0x3e, 0xf6, 0x4a, 0xbf, 0xff, 0x47, 0x8e, 0x88, 0xb5, 0x6c, 0x85, 0x8d, 0x7, 0x6a, 0x34, 0xdd, 0xf5, 0xea, 0xea, 0x17, 0x22, 0xa7, 0xeb, 0x39, 0xbc, 0xc3, 0x27, 0x6c, 0xfe, 0xb3, 0xfc, 0x71, 0x40, 0xb1, 0x52, 0x6, 0xb0, 0xf5, 0x47, 0xe4, 0xe4, 0xf5, 0x47, 0x37, 0x36, 0xf9, 0x42, 0x70, 0x5c, 0x4, 0x8f, 0x68, 0x10, 0xb1, 0x2f, 0xc2, 0x95, 0xd, 0xe5, 0xbf, 0x3f, 0x52, 0xfb, 0x25, 0x32, 0xf9, 0xbd, 0x41, 0xf6, 0x1c, 0x75, 0x7b, 0x70, 0xfe, 0x8e, 0x56, 0xfa, 0x7e, 0x25, 0x23, 0x88, 0x46, 0xed, 0x54, 0xb6, 0x7e, 0x3a, 0xce, 0xc5, 0x39, 0x93, 0x4f, 0x5a, 0x36, 0xd5, 0x74, 0x73, 0x6, 0xe4, 0x63, 0x81, 0xa4, 0xd0, 0x5d, 0x3e, 0x37, 0x24, 0xa, 0x28, 0xde, 0x56, 0x60, 0x75, 0x1e, 0x77, 0xcc, 0xad, 0xbb, 0x75, 0x61, 0x18, 0x3f, 0x56, 0x1, 0x49, 0xab, 0xf1, 0x86, 0xcd, 0xb5, 0x69, 0xfd, 0x9f, 0xe8, 0x52, 0xa8, 0x2d, 0x40, 0x1f, 0xca, 0x88, 0xa8, 0x40, 0x75, 0x5c, 0xaf, 0xc0, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x7b, 0x31, - 0xa3, 0xfe, 0x48, 0xf2, 0x8d, 0xa6, 0x8d, 0x8a, 0xce, 0x87, 0x30, 0xfe, 0xc5, 0x8, 0xe5, 0x5b, 0x28, 0x78, 0x35, 0x59, 0x47, 0x26, 0xf3, 0xf6, 0x22, 0xaf, 0xa0, 0xc1, 0x57, 0x9d, 0x76, 0x7e, 0xe3, 0x90, 0xc7, 0xee, 0x57, 0x4c, 0x3d, 0xb0, 0x74, 0xf8, 0x85, 0xc7, 0x4f, 0x40, 0xf4, 0xd2, 0xd7, 0xd9, 0xfa, 0x96, 0x44, 0x54, 0xf5, 0xb9, 0xce, 0x76, 0xfc, 0xc2, 0x5f, 0xb8, 0x49, 0x2f, 0xb8, 0x80, 0x30, 0xf7, 0x43, 0x10, 0x4e, 0x5, 0xbf, 0x99, 0x2f, 0x93, 0xee, 0xf2, 0xc4, 0x24, 0x88, 0x5, 0x8f, 0x25, 0x4d, 0xed, 0xac, 0xe7, 0xbf, 0xf0, 0x33, 0x13, 0xb1, 0x65, 0x92, 0x62, 0xe1, 0xc7, 0x9d, 0xa, 0x7e, 0x8f, 0xce, 0x40, 0xa1, 0xe6, 0x0, 0x95, 0xdf, 0x8f, 0x7d, 0xee, 0xee, 0xe1, 0xf8, 0x9c, 0x6d, 0xf8, 0xd5, 0x6c, 0xbb, 0x0, 0xb1, 0x62, 0x40, 0xed, 0xb0, 0x8f, 0xac, 0x88, 0x5e, 0x89, 0x22, 0xe4, 0xb5, 0x70, 0xf8, 0x11, 0x62, 0x12, 0xea, 0xa8, 0x3e, 0x38, 0x7c, 0x72, 0xfe, 0x97, 0xcf, 0xec, 0x2a, 0x86, 0x43, 0xb5, 0x0, 0x22, 0x5b, 0xdc, 0xf9, 0x99, 0xc8, 0x17, 0xd5, 0xcd, 0x51, 0x3f, 0xb9, 0x84, 0xaa, 0x80, 0x16, 0x24, 0xf9, 0x3f, 0x9a, 0xe5, 0x60, 0xcb, 0xdb, 0xba, 0xc, 0x8, 0x33, 0x3c, 0x3a, 0x9a, 0x76, 0x6c, 0x85, 0x3e, 0xde, 0x8a, 0x8f, 0xe2, 0x3c, 0x10, 0x22, 0x55, 0xca, 0xc7, 0xd9, 0x6c, 0xf0, 0xd, 0xd4, 0xe4, 0x69, 0x41, 0x89, 0x21, 0x8d, 0xb5, 0xbe, 0xfd, 0x80, 0xfb, 0x59, 0x64, 0xf2, 0xef, 0x62, 0x40, 0x48, 0xd2, 0x26, 0xee, 0xc2, 0x5a, 0xf9, 0x93, 0xa8, 0x96, 0x5b, 0x12, 0xd2, 0x42, 0x9b, 0x25, 0x32, 0xce, - 0xff, 0xb7, 0xee, 0x4a, 0xc8, 0x1, 0x8c, 0x87, 0x2b, 0xdf, 0xc5, 0xca, 0xf4, 0x28, 0xf, 0x35, 0x15, 0x1e, 0x8e, 0x22, 0xef, 0xb0, 0xf5, 0xee, 0xa1, 0xeb, 0x6f, 0x45, 0xbb, 0xc6, 0x4d, 0x5a, 0x6, 0xf5, 0xb7, 0xab, 0x15, 0xdf, 0x88, 0xf3, 0xb5, 0x64, 0xde, 0x7e, 0x71, 0x1c, 0xe3, 0xf6, 0xea, 0x92, 0x42, 0xd4, 0xd9, 0xcc, 0x21, 0x69, 0x8e, 0x4e, 0x84, 0x6c, 0x70, 0x61, 0x4f, 0x6f, 0x77, 0x77, 0x5f, 0x34, 0x92, 0x79, 0xfc, 0xde, 0xdd, 0xa4, 0xe5, 0x93, 0x9c, 0x1b, 0x2c, 0xf0, 0x5c, 0xf9, 0xf9, 0x96, 0xfd, 0x44, 0xcf, 0x44, 0x82, 0x3d, 0x37, 0xb1, 0x76, 0x84, 0x17, 0xe4, 0xeb, 0xfc, 0x63, 0xd3, 0xad, 0xda, 0x86, 0xb9, 0x4b, 0xb5, 0xf2, 0xbf, 0x38, 0xd9, 0x82, 0x1e, 0x8d, 0xeb, 0xd3, 0x92, 0x8d, 0x63, 0x8d, 0x57, 0xf8, 0x57, 0x9b, 0xd0, 0xfb, 0xba, 0xc, 0x29, 0xa5, 0x80, 0x9b, 0x93, 0xad, 0x89, 0x67, 0x1c, 0xc8, 0x53, 0x2d, 0x91, 0x23, 0xb2, 0xf1, 0x3f, 0x3e, 0xee, 0x3e, 0xcc, 0x8, 0xa7, 0x89, 0x2, 0x52, 0x2a, 0x80, 0x59, 0x7b, 0xff, 0xeb, 0xfc, 0xf5, 0x87, 0xe7, 0x77, 0x22, 0xd8, 0x96, 0x5f, 0x42, 0x30, 0xf9, 0xcd, 0xb0, 0xf0, 0xb1, 0x4f, 0x12, 0x69, 0x27, 0x54, 0xef, 0x43, 0x2e, 0xe8, 0x3, 0xbb, 0x25, 0xeb, 0x80, 0x1c, 0xd8, 0x19, 0xbe, 0x63, 0x3, 0x26, 0x90, 0xe7, 0x67, 0xe5, 0x96, 0xfb, 0x7d, 0xf4, 0x6f, 0xc6, 0x58, 0xe3, 0x67, 0xcf, 0xe7, 0xf, 0xae, 0x2f, 0x7, 0xbc, 0xdb, 0x9b, 0x10, 0xd, 0x2a, 0x41, 0xfa, 0x71, 0x8f, 0xd2, 0xa1, 0x23, 0x7c, 0x5d, 0x83, 0x71, 0x1f, 0x3d, 0xbf, 0xad, 0x9f, 0x45, 0x50, 0xe8, - 0x46, 0x55, 0x74, 0x35, 0x8b, 0xa5, 0x5d, 0x8c, 0x3b, 0x71, 0x4a, 0xeb, 0xdb, 0xfe, 0xde, 0xf1, 0xb, 0x6d, 0xff, 0x17, 0x92, 0xc, 0x50, 0x1b, 0x3e, 0xc7, 0x6e, 0x75, 0xcd, 0xb, 0xd4, 0xbe, 0xb, 0x36, 0x30, 0x13, 0x39, 0xc2, 0x1d, 0x89, 0x62, 0x6d, 0xb5, 0xc, 0x52, 0xdd, 0xbf, 0xc5, 0xd, 0x94, 0xc6, 0xdb, 0x4a, 0xcc, 0x70, 0xd3, 0x3f, 0x68, 0x14, 0xb8, 0xe2, 0x18, 0xb1, 0x7f, 0xe1, 0x6c, 0xc7, 0x4f, 0xca, 0x1b, 0x4f, 0xed, 0x3, 0xb2, 0xe6, 0x1b, 0x32, 0xed, 0x93, 0xe4, 0x6e, 0xf, 0xeb, 0xaf, 0x6e, 0x8f, 0x7d, 0xd6, 0xb5, 0xdf, 0x3c, 0xb9, 0xff, 0xe2, 0x69, 0xf3, 0xfe, 0xcb, 0x27, 0xc9, 0xf, 0x5, 0x13, 0x85, 0x8c, 0x4a, 0xe4, 0x67, 0xf1, 0xfb, 0x0, 0xfd, 0xf1, 0xe6, 0x2d, 0x2c, 0x14, 0x9a, 0xf1, 0x5f, 0xa7, 0x5e, 0xd6, 0x49, 0xed, 0xe5, 0x2d, 0xba, 0xee, 0xf, 0xe6, 0xf4, 0x9b, 0xd4, 0x27, 0x55, 0xcb, 0xcb, 0x33, 0xaf, 0xef, 0x3f, 0xda, 0xf8, 0xad, 0xe9, 0x5c, 0x4e, 0x59, 0x89, 0xba, 0x70, 0x64, 0xdf, 0x8d, 0x4c, 0xa, 0xae, 0x2d, 0xfe, 0x38, 0x64, 0x59, 0x62, 0x1f, 0x9d, 0x4f, 0x1b, 0x7c, 0xe, 0x5b, 0xcf, 0x2f, 0x27, 0x58, 0xe6, 0x35, 0x40, 0xe8, 0xe9, 0xee, 0xd, 0x3d, 0x3a, 0xd, 0xb8, 0x2b, 0x80, 0x1b, 0x2, 0x3e, 0x9f, 0x9c, 0xe5, 0xbf, 0x61, 0xb4, 0x77, 0x8e, 0x84, 0x8d, 0x1e, 0x44, 0xfe, 0x21, 0x95, 0x11, 0xc8, 0x5b, 0x16, 0x1, 0xcc, 0xdd, 0x2, 0xd9, 0xd0, 0x66, 0x69, 0xe8, 0xb4, 0xcf, 0xa3, 0xb6, 0x81, 0xa8, 0xf6, 0x82, 0xe, 0xff, 0xa9, 0xac, 0xff, 0x8, 0x97, 0xf9, 0x40, 0x16, 0x53, 0x81, 0xb1, - 0x4c, 0x55, 0xfd, 0x6e, 0x27, 0x1c, 0xff, 0x6c, 0xa9, 0x25, 0xfd, 0xcb, 0xcc, 0x4, 0x34, 0xa2, 0xca, 0x89, 0xf5, 0x49, 0xf0, 0x24, 0xee, 0xff, 0xed, 0x33, 0xa5, 0x7f, 0x70, 0xa1, 0xff, 0xfd, 0x95, 0x62, 0x59, 0x91, 0x2e, 0xfe, 0xf7, 0xd, 0x75, 0x2f, 0x87, 0x9e, 0xa9, 0x84, 0x56, 0x2c, 0x4d, 0x6c, 0x7, 0x7c, 0x3f, 0x5d, 0xad, 0xa8, 0xcd, 0x9d, 0xb9, 0x54, 0xdb, 0x85, 0xed, 0x6f, 0xd4, 0x36, 0x9e, 0xf6, 0xf5, 0x9b, 0x77, 0xb6, 0x97, 0x82, 0x7a, 0xb5, 0x2f, 0xec, 0x4e, 0x35, 0x7a, 0xae, 0xfc, 0x26, 0xed, 0xcf, 0xcc, 0xa0, 0xbd, 0xd7, 0xaf, 0x3f, 0x92, 0xf9, 0xfc, 0xa7, 0x2c, 0x7f, 0x8e, 0xc9, 0xd9, 0x63, 0xa7, 0x71, 0xe1, 0xcf, 0x94, 0xff, 0xc7, 0x43, 0xa9, 0x16, 0xca, 0xd9, 0x59, 0x97, 0xa9, 0xbb, 0xbd, 0x33, 0xc1, 0x26, 0xd7, 0xf6, 0x94, 0x2a, 0x84, 0x13, 0x7a, 0x66, 0x83, 0xda, 0xb, 0x17, 0xe1, 0x44, 0x19, 0xf5, 0xf8, 0xbe, 0xb4, 0xcf, 0x7f, 0xce, 0x42, 0xc4, 0x38, 0xd4, 0xde, 0x91, 0x32, 0x0, 0x97, 0x76, 0xde, 0xa9, 0xf3, 0x2e, 0x44, 0xdc, 0x8c, 0x79, 0x38, 0x4e, 0x58, 0x5b, 0xbf, 0x10, 0x8a, 0x6c, 0xa, 0x54, 0x59, 0x24, 0x74, 0xa9, 0x9c, 0xad, 0x8f, 0xff, 0x96, 0xd5, 0xf0, 0xd4, 0xd, 0x8c, 0xf8, 0xfa, 0x77, 0x4c, 0xc7, 0xbd, 0xc0, 0x7b, 0x4b, 0x5c, 0xbe, 0xf9, 0xaa, 0xcf, 0x55, 0xe0, 0xdd, 0x3e, 0x1e, 0x1d, 0x41, 0x7b, 0xc8, 0xaf, 0x37, 0x72, 0x4f, 0x59, 0x6a, 0xbe, 0xd4, 0x2a, 0x87, 0x4d, 0x37, 0xc5, 0xf7, 0x6a, 0x38, 0x98, 0xaf, 0xa9, 0x26, 0xa3, 0xa6, 0x21, 0x7c, 0x71, 0xac, 0xf1, 0x1b, 0x4a, 0x5f, 0x1b, - 0xdd, 0x0, 0x87, 0xe3, 0x8b, 0x6d, 0xd4, 0x7c, 0xde, 0xd8, 0xf5, 0x29, 0x2, 0xef, 0x4b, 0xb7, 0xc1, 0x28, 0xe6, 0x92, 0x2c, 0xab, 0x18, 0x6f, 0xf8, 0x22, 0x1f, 0xab, 0x2d, 0x7, 0x55, 0x25, 0x41, 0xbe, 0x1a, 0xcf, 0x31, 0x2b, 0xfa, 0x6c, 0xc7, 0x2f, 0x4c, 0xed, 0xbf, 0x7f, 0xd, 0x9c, 0x98, 0x4f, 0x60, 0xf3, 0x43, 0x25, 0x5d, 0xec, 0x93, 0x6a, 0x8, 0x33, 0x4d, 0x6b, 0xbe, 0xcd, 0x70, 0x53, 0xc4, 0xd0, 0x5, 0x77, 0x82, 0x6b, 0xc, 0xff, 0x33, 0x45, 0xf2, 0x5a, 0xc7, 0xc2, 0x84, 0x6e, 0xd7, 0x3f, 0xdb, 0xf1, 0x1b, 0xe6, 0x8f, 0xe4, 0xe0, 0x58, 0xa5, 0xc4, 0xd6, 0x27, 0x6b, 0x50, 0x4b, 0x35, 0x2e, 0xdc, 0x54, 0x8d, 0x19, 0x9, 0xc7, 0xb2, 0x64, 0xc2, 0xb2, 0x5f, 0x32, 0xee, 0xaf, 0x7f, 0xd4, 0xf1, 0xab, 0xa2, 0xfa, 0x21, 0x48, 0x82, 0x85, 0x71, 0xa1, 0xcb, 0x6a, 0x67, 0xf1, 0x85, 0xd4, 0x7e, 0x79, 0xad, 0x22, 0xc9, 0xc1, 0xe0, 0x4d, 0x2e, 0x2e, 0xd9, 0xf1, 0x19, 0xfa, 0x4, 0xab, 0x7a, 0xde, 0xc4, 0xcc, 0xe7, 0x1f, 0x5a, 0xe3, 0xd6, 0x9c, 0xfa, 0x62, 0x51, 0xd1, 0xa5, 0x2e, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x90, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xd1, 0xe, 0xd9, 0x52, 0xca, 0x88, 0x9b, 0x67, 0x5c, 0x3e, 0x84, 0xd2, 0x6d, 0x93, 0xb4, 0x69, 0xd0, 0x3a, 0xc5, 0x94, 0xb, 0x5c, 0xfa, 0x62, 0x23, 0x7c, 0x66, 0xd3, 0x8a, 0x72, 0x10, 0xae, 0xbb, 0x2b, 0xc2, 0x51, 0x7d, 0xb7, 0x2, 0x27, 0x8a, 0x1e, 0x7e, 0xe9, 0x35, 0xc4, 0x6e, 0x24, 0x53, 0x75, 0xc3, 0x3e, 0x70, 0xb6, 0xe3, 0x17, 0x9e, 0x7f, 0x2b, 0x7c, - 0xd3, 0x91, 0x87, 0x49, 0x76, 0x4e, 0x81, 0xf0, 0x2, 0x5, 0x21, 0xef, 0x32, 0x73, 0x61, 0x11, 0xed, 0xc1, 0xd1, 0xb2, 0x40, 0x78, 0x73, 0x14, 0xca, 0xeb, 0xf6, 0xb9, 0x44, 0xc2, 0x60, 0xf6, 0xc3, 0x6c, 0x64, 0x70, 0xfc, 0xe5, 0xa3, 0x8e, 0xdf, 0x50, 0x7a, 0x6d, 0xfd, 0x7a, 0x38, 0x94, 0xd6, 0x24, 0x25, 0x76, 0x87, 0xa7, 0xbb, 0xfd, 0xe1, 0x67, 0xc6, 0x69, 0x5e, 0x82, 0xab, 0xd9, 0x59, 0xc3, 0x30, 0x32, 0x3e, 0x1f, 0xfd, 0xf7, 0x86, 0x5f, 0x73, 0x72, 0x36, 0x35, 0x57, 0x8b, 0x15, 0x9, 0x82, 0xca, 0x89, 0x2a, 0x42, 0x97, 0xdc, 0xa0, 0xe9, 0x6f, 0x1c, 0x13, 0x56, 0xd4, 0xbb, 0x5c, 0x2f, 0xdf, 0x2e, 0x64, 0x3c, 0x1f, 0x39, 0x9b, 0x3f, 0x8f, 0xa7, 0xec, 0x67, 0x96, 0xf3, 0x68, 0x4d, 0xed, 0x2d, 0x64, 0x16, 0x7b, 0x56, 0xf8, 0x1c, 0x7d, 0xed, 0x56, 0x1c, 0xd7, 0xaf, 0x82, 0x97, 0xeb, 0x38, 0x3f, 0x68, 0x8d, 0x47, 0xde, 0x37, 0x7d, 0x5e, 0xb4, 0x1c, 0x8b, 0x25, 0x59, 0xaf, 0xe0, 0x8d, 0x8b, 0x81, 0xd6, 0xfe, 0xb1, 0xc6, 0x6b, 0x62, 0xde, 0x78, 0x74, 0x49, 0xf8, 0x5a, 0x98, 0xd9, 0xf9, 0x18, 0x77, 0x2e, 0xb3, 0x57, 0xbe, 0x1f, 0xb4, 0x55, 0x9e, 0xeb, 0x67, 0xa6, 0x44, 0xf5, 0x71, 0x82, 0x8b, 0x8a, 0x8c, 0x1f, 0x11, 0x5d, 0xde, 0xbf, 0x51, 0xcc, 0x7b, 0x28, 0xa8, 0x15, 0x2, 0xb1, 0x12, 0xfb, 0x17, 0x46, 0x2c, 0x3f, 0xde, 0x2f, 0xd2, 0xe5, 0x18, 0x8f, 0x4e, 0x2b, 0xfc, 0xcf, 0x1f, 0x68, 0xda, 0xc5, 0xc2, 0x6b, 0x22, 0x6c, 0x4, 0x28, 0x88, 0xbd, 0x44, 0x9d, 0xc7, 0xf2, 0xc3, 0x58, 0xb3, 0x43, 0x44, 0x82, 0xbe, 0xa, 0x55, - 0x1b, 0x37, 0x21, 0x91, 0x13, 0x4d, 0xc4, 0xb9, 0x38, 0x6f, 0xc2, 0xbc, 0x7f, 0xac, 0xf1, 0xfb, 0x0, 0xff, 0x83, 0xf5, 0x96, 0xe3, 0xfe, 0x87, 0xf7, 0xb6, 0x85, 0x8, 0x6, 0xdb, 0xd8, 0xf8, 0x1, 0x11, 0xcb, 0x14, 0x92, 0x69, 0xff, 0x63, 0x98, 0xff, 0xd6, 0x3e, 0x1e, 0xd5, 0x76, 0x6f, 0x45, 0xc8, 0xbc, 0x8b, 0xfa, 0x6f, 0x7e, 0x7b, 0xff, 0xc, 0x56, 0x7a, 0xe6, 0x1c, 0x62, 0xf3, 0x4d, 0x26, 0xdf, 0x88, 0x46, 0x16, 0x33, 0xe3, 0x24, 0x69, 0xf3, 0x5, 0x9e, 0x6e, 0x7a, 0xa8, 0xff, 0xd1, 0xf0, 0x88, 0xf, 0x1e, 0xe8, 0xe7, 0x3a, 0x1a, 0x23, 0xa2, 0x4, 0x4f, 0x34, 0xd3, 0xfe, 0xc7, 0x47, 0x1d, 0xbf, 0x53, 0xf3, 0x3f, 0x58, 0xf7, 0x1d, 0x1d, 0xff, 0xe3, 0xa3, 0x8e, 0x1f, 0x93, 0x7f, 0x1d, 0x12, 0xea, 0x7f, 0xc9, 0xec, 0x3f, 0x79, 0xdc, 0xb9, 0x35, 0x4b, 0x36, 0x22, 0x16, 0x8c, 0x72, 0xac, 0xfb, 0xb6, 0x29, 0x51, 0xe9, 0x5a, 0xe5, 0x46, 0x14, 0xf1, 0x5f, 0xec, 0x2d, 0xa3, 0x34, 0x79, 0xe0, 0xc0, 0xcd, 0x13, 0xf2, 0x1e, 0x42, 0x82, 0x5, 0xe4, 0x47, 0x5, 0x3d, 0x8b, 0xdf, 0x7, 0xd8, 0x2f, 0x7, 0x6e, 0xa1, 0x38, 0xba, 0xd9, 0x1d, 0xb8, 0x76, 0xc5, 0x9, 0x17, 0x7e, 0xa6, 0x15, 0x5e, 0x9f, 0xba, 0xc2, 0x4c, 0x8c, 0x8e, 0xff, 0xf6, 0xf7, 0x86, 0x5f, 0x8d, 0x80, 0x4b, 0xdb, 0x4e, 0x98, 0xc7, 0xa8, 0x59, 0xc2, 0x31, 0x4a, 0x43, 0x4f, 0xe4, 0x94, 0xf2, 0x37, 0x7d, 0x68, 0xf9, 0xf1, 0x6a, 0xb3, 0xde, 0x97, 0x13, 0xb9, 0x88, 0xfe, 0x78, 0x45, 0x5, 0xe5, 0xeb, 0x35, 0x96, 0xa6, 0x97, 0x29, 0xfb, 0xef, 0xa2, 0xef, 0xcf, 0xcb, - 0x6b, 0x8a, 0x8f, 0x90, 0x97, 0x3, 0x24, 0x35, 0x23, 0x83, 0xbb, 0xbd, 0xbf, 0xb8, 0x8, 0x78, 0x67, 0x37, 0x7c, 0xd0, 0x1b, 0x36, 0xd, 0x94, 0x9c, 0x71, 0xf6, 0x60, 0x73, 0xe4, 0x42, 0x44, 0x9b, 0xa9, 0xf4, 0x1b, 0xcc, 0xdf, 0xb9, 0x59, 0x40, 0x8, 0xfa, 0x39, 0xc9, 0x72, 0x9b, 0x29, 0x32, 0xcf, 0x7f, 0xc6, 0xa2, 0x7e, 0xee, 0xa7, 0x42, 0xf, 0xe5, 0x3f, 0x93, 0xfb, 0x33, 0xc2, 0xe3, 0xd7, 0x82, 0xd9, 0x2f, 0xb4, 0x9, 0x1e, 0xdf, 0x64, 0x77, 0x11, 0xe3, 0xbf, 0x6a, 0x92, 0x42, 0xaf, 0x67, 0xce, 0x1f, 0x6a, 0x4, 0xfe, 0xcf, 0x5c, 0x9f, 0x26, 0xee, 0x6d, 0xdf, 0xba, 0x42, 0x69, 0x14, 0x5f, 0x1c, 0x6b, 0xbc, 0x86, 0xce, 0x9f, 0xdf, 0xac, 0xf4, 0xea, 0x1a, 0x35, 0xc9, 0xc0, 0xb2, 0xca, 0x82, 0x13, 0x98, 0xfe, 0x88, 0xda, 0xe9, 0x87, 0x46, 0x65, 0xfe, 0xbc, 0xca, 0xac, 0x37, 0xf2, 0xd, 0x31, 0x44, 0x6d, 0x68, 0x77, 0xc2, 0x69, 0xeb, 0xab, 0xd4, 0x4f, 0x9b, 0x8, 0x10, 0xa7, 0xfc, 0x80, 0xb, 0x64, 0x82, 0x7d, 0xb9, 0xc5, 0x5d, 0xae, 0xef, 0x5f, 0x3, 0x2c, 0xd2, 0x8f, 0x8d, 0x47, 0x2b, 0x8f, 0x56, 0xe8, 0x15, 0x63, 0xce, 0x7f, 0x43, 0xe7, 0xcf, 0x99, 0x3f, 0x60, 0x5a, 0xf3, 0x17, 0x33, 0x21, 0x51, 0xad, 0xec, 0x9d, 0xb9, 0x1e, 0xb2, 0x4e, 0x38, 0x3b, 0x64, 0xc8, 0xa7, 0x65, 0x7a, 0xfe, 0xfc, 0xa3, 0x8e, 0xdf, 0xd0, 0xf9, 0xf3, 0xf0, 0x23, 0x4e, 0x7c, 0x53, 0xae, 0xbc, 0x48, 0x2c, 0x75, 0x39, 0xe0, 0x2f, 0x90, 0xc2, 0x9b, 0x9b, 0x10, 0xbc, 0xc0, 0x77, 0x91, 0x9f, 0xa2, 0xe5, 0x53, 0xcd, 0x44, 0xa6, 0xe7, 0xcf, 0x3f, - 0xea, 0xf8, 0xd, 0xd3, 0x1f, 0xb9, 0x1e, 0xe4, 0x26, 0x16, 0x89, 0x2c, 0x84, 0xcc, 0x9a, 0xff, 0x7d, 0xa2, 0x17, 0xc1, 0x4f, 0xec, 0x9f, 0xca, 0xf0, 0x53, 0x54, 0x35, 0xe3, 0xf9, 0x5d, 0xff, 0xde, 0xf0, 0xcb, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0x3e, 0xdd, 0xb4, 0x7c, 0xab, 0xa, 0x1e, 0xd2, 0x46, 0x5d, 0xda, 0x65, 0x9c, 0x4a, 0xfe, 0x94, 0x91, 0xd2, 0x73, 0xa3, 0x7c, 0x50, 0x13, 0xfb, 0x39, 0xe8, 0x9c, 0x3e, 0x1b, 0x71, 0x2b, 0xff, 0xa4, 0x7d, 0x8e, 0x38, 0x4d, 0xc1, 0x3c, 0xe3, 0xf6, 0xa7, 0x4b, 0x47, 0x87, 0x9b, 0x8b, 0x1, 0xb9, 0x3e, 0xe8, 0x70, 0x61, 0xce, 0xbc, 0x8a, 0xf9, 0x93, 0xff, 0x2a, 0xdf, 0x9, 0x37, 0x3c, 0x5f, 0x7f, 0x96, 0xfe, 0x6b, 0xba, 0xb9, 0x6b, 0x9, 0x5b, 0x1c, 0x10, 0xcc, 0x4d, 0x5a, 0x29, 0x8b, 0x50, 0x57, 0xfd, 0x69, 0xdc, 0x2d, 0xdf, 0xff, 0x8a, 0x70, 0x98, 0x2f, 0x47, 0x49, 0x7a, 0x7e, 0x2c, 0xcd, 0xc1, 0xef, 0x39, 0xb4, 0x25, 0xd7, 0x41, 0x50, 0xd8, 0xe, 0x31, 0xa7, 0x50, 0x3f, 0xc9, 0xa9, 0x4a, 0x24, 0xf9, 0x9c, 0x42, 0xb8, 0x3c, 0xf, 0x6a, 0x2e, 0x64, 0xfb, 0x41, 0x5b, 0xb1, 0xe4, 0x31, 0x74, 0x6b, 0x5c, 0xf8, 0x47, 0xb, 0xad, 0xd, 0xeb, - 0x7a, 0xd9, 0x11, 0x45, 0xf5, 0xaf, 0x88, 0xcf, 0xc3, 0x6f, 0x2, 0x45, 0x8d, 0x5c, 0xe7, 0x64, 0x52, 0x10, 0xcb, 0x55, 0x9a, 0xcd, 0xdb, 0xe9, 0x9, 0xc7, 0x22, 0x96, 0xfe, 0x18, 0x67, 0x40, 0x3e, 0x1b, 0xef, 0x76, 0x19, 0xed, 0xe4, 0x5a, 0xb1, 0xac, 0x5b, 0x79, 0x8a, 0xe5, 0x5c, 0x9, 0x3d, 0xa3, 0xa0, 0x57, 0x7b, 0x89, 0xbb, 0x84, 0x4, 0x3b, 0xe, 0xbc, 0xb1, 0x85, 0xe4, 0xcc, 0x8e, 0xb2, 0xed, 0x58, 0xac, 0x5, 0x7, 0x6c, 0x55, 0xfd, 0x88, 0xaf, 0xf7, 0xf6, 0x52, 0x96, 0xff, 0xf4, 0x63, 0x3a, 0x38, 0xc8, 0x91, 0xca, 0xa4, 0xf7, 0xb6, 0x8f, 0xd, 0xee, 0xa7, 0xdd, 0x17, 0xe5, 0xd4, 0xbd, 0x35, 0x42, 0x2a, 0x1f, 0x6c, 0x37, 0x11, 0x95, 0xda, 0x5d, 0x77, 0x84, 0xa, 0x2f, 0x9, 0x3a, 0x8b, 0x2b, 0xb, 0xab, 0x3f, 0xfe, 0xd5, 0x9f, 0x1d, 0x78, 0x7d, 0xff, 0xee, 0xb1, 0xc6, 0x6b, 0x58, 0xff, 0x6d, 0x72, 0x63, 0x62, 0xbf, 0x6b, 0xb1, 0xc7, 0xe3, 0xf3, 0x7, 0x9c, 0xf6, 0x7a, 0xc, 0xa9, 0x88, 0x2b, 0x47, 0x12, 0x26, 0x5b, 0x74, 0x9b, 0xee, 0xfb, 0x4d, 0xbb, 0x24, 0xcc, 0x0, 0x22, 0xd8, 0xa3, 0x89, 0x7d, 0xa7, 0x50, 0xdf, 0x9b, 0x5f, 0x64, 0xed, 0x87, 0x6c, 0xe1, 0x25, 0xaa, 0xc3, 0xf6, 0x1f, 0x77, 0xbc, 0xf4, 0x3b, 0x68, 0x3e, 0x6d, 0x30, 0x87, 0xc8, 0x4d, 0x2c, 0xdf, 0x37, 0x5f, 0xd8, 0xe6, 0x4e, 0x8, 0xa6, 0xf6, 0x74, 0xb2, 0xa4, 0x9c, 0xf2, 0xaf, 0x59, 0x79, 0x4f, 0x59, 0xa3, 0xb6, 0x7f, 0xd3, 0x91, 0x39, 0xb4, 0x42, 0x69, 0xe, 0x6f, 0xe, 0xae, 0xe5, 0xdc, 0x19, 0xbd, 0x63, 0xf9, 0x30, 0x7e, 0x17, 0xf0, 0x35, - 0xfa, 0x41, 0xd6, 0x53, 0x75, 0x32, 0x8e, 0xdf, 0xa3, 0x4e, 0x6c, 0xab, 0xaf, 0xe7, 0xc, 0xd1, 0xe5, 0x2f, 0x90, 0x4, 0x84, 0xb, 0x97, 0xc1, 0x55, 0x85, 0x2b, 0x5, 0x8f, 0x8f, 0x2d, 0xbf, 0x48, 0xdf, 0x1f, 0x3f, 0xe4, 0xfa, 0xa0, 0x9a, 0x37, 0x37, 0x53, 0x3e, 0xbe, 0x49, 0x8a, 0xa0, 0xfb, 0xca, 0xca, 0xb2, 0x5a, 0x34, 0xd7, 0xde, 0x2, 0x87, 0xa6, 0x29, 0xd6, 0x69, 0x51, 0xed, 0x39, 0x29, 0x7f, 0x17, 0x8e, 0x1d, 0xfe, 0x93, 0xf3, 0xda, 0xe2, 0x4f, 0x21, 0xf9, 0x46, 0x2b, 0x1, 0xf7, 0xf1, 0x3d, 0x15, 0x9f, 0x5f, 0xf, 0x6f, 0xfe, 0xb9, 0xe8, 0xd5, 0x5, 0x78, 0x74, 0x6d, 0xc5, 0xc6, 0xe7, 0xc7, 0x3e, 0x5f, 0xbf, 0x77, 0xfd, 0xf5, 0x70, 0x98, 0x1c, 0x8f, 0xde, 0x5a, 0x52, 0xa5, 0x96, 0x65, 0xf5, 0x45, 0x3a, 0x7e, 0xfb, 0xec, 0xbf, 0x4, 0x2f, 0x63, 0xdb, 0xf5, 0xa4, 0x98, 0xbe, 0x29, 0x59, 0x8d, 0xd0, 0x53, 0x5, 0x93, 0x6b, 0x41, 0x99, 0x41, 0x35, 0x10, 0x16, 0xb0, 0xe8, 0xe4, 0xfd, 0x44, 0xaf, 0xee, 0x50, 0xe0, 0x23, 0x56, 0x3a, 0x1b, 0x91, 0xc9, 0xf4, 0x11, 0xdb, 0x2f, 0x1b, 0x37, 0xe1, 0xce, 0x5, 0x8c, 0x67, 0x4b, 0x10, 0x94, 0x12, 0xfc, 0x35, 0x0, 0x7f, 0x40, 0x80, 0x41, 0x55, 0x55, 0x2b, 0xb0, 0x21, 0xed, 0xfe, 0xb3, 0x23, 0xa5, 0xeb, 0x8a, 0x97, 0x22, 0xe8, 0x62, 0x19, 0xe, 0x9c, 0xb4, 0x5, 0xe5, 0x98, 0x6c, 0xe5, 0xeb, 0x31, 0x58, 0x86, 0x4b, 0xdd, 0x21, 0xa4, 0xdf, 0xaf, 0xea, 0xea, 0xda, 0x6, 0xab, 0xc3, 0x51, 0xc9, 0x41, 0x98, 0x3e, 0x60, 0xf6, 0x97, 0x9b, 0xfe, 0xd2, 0x2, 0xb4, 0xc0, 0xe4, 0x13, - 0xce, 0x30, 0x87, 0xa7, 0x52, 0xd0, 0x59, 0xaf, 0x99, 0x6e, 0xff, 0x55, 0xdb, 0xd8, 0x72, 0x1f, 0xfe, 0xf1, 0x50, 0xe1, 0x83, 0x8d, 0x4b, 0x7f, 0x7e, 0xfe, 0x92, 0xd, 0xe0, 0x8f, 0x55, 0xba, 0x63, 0x2e, 0xac, 0xc3, 0x4d, 0x88, 0xf1, 0x6c, 0x7f, 0x8d, 0xc0, 0xe0, 0xb3, 0x3, 0x81, 0x41, 0xf1, 0xad, 0x62, 0xcb, 0x59, 0x91, 0xb0, 0xfe, 0x8d, 0x78, 0x7f, 0x26, 0x47, 0xe1, 0x26, 0x10, 0xbe, 0x4e, 0xbb, 0xeb, 0xc7, 0xf4, 0x57, 0x5d, 0xfb, 0x47, 0xbc, 0xbe, 0x89, 0xca, 0xe3, 0x3, 0x95, 0x6a, 0x77, 0x4, 0xc9, 0xfa, 0xad, 0x6c, 0x43, 0x9d, 0xd0, 0xbb, 0x9c, 0xd6, 0x33, 0xad, 0x9f, 0x2b, 0x8d, 0x2a, 0xbe, 0xcf, 0xdd, 0xcc, 0xb7, 0x65, 0x1a, 0xbf, 0xd0, 0x23, 0x51, 0x78, 0xf8, 0xa7, 0xb9, 0x56, 0x9d, 0x3e, 0x72, 0xf9, 0xa6, 0xa2, 0xb4, 0xf5, 0x1f, 0xe5, 0x58, 0xfe, 0xc9, 0x5e, 0x9b, 0x9e, 0xfd, 0xe4, 0x58, 0xf7, 0xdf, 0xa1, 0xf4, 0xd2, 0x1d, 0x6d, 0xd6, 0xf6, 0x5b, 0x52, 0x6a, 0x15, 0xd8, 0x68, 0x5f, 0x6f, 0x7a, 0x74, 0x1a, 0x92, 0x47, 0x18, 0x8b, 0xf1, 0x3f, 0xec, 0x77, 0xf3, 0x68, 0xde, 0x11, 0xa3, 0x9f, 0xc9, 0x24, 0xfb, 0x3c, 0x86, 0xf5, 0xdf, 0xe3, 0xfa, 0x24, 0x66, 0xb8, 0x6b, 0x4e, 0x43, 0xfb, 0x3e, 0x6a, 0x74, 0x8d, 0x60, 0xed, 0x6f, 0xe, 0x9d, 0x65, 0x4, 0xa2, 0xff, 0xc6, 0xba, 0x3d, 0x67, 0x3a, 0x5d, 0x57, 0xbd, 0xd2, 0xb2, 0x76, 0xe, 0xbb, 0x8f, 0x4a, 0xab, 0x90, 0xe5, 0xa7, 0x11, 0xcb, 0xc3, 0xcd, 0x2b, 0xb1, 0xb, 0xe2, 0x94, 0x76, 0x4a, 0xe9, 0x7, 0xa3, 0x19, 0x5f, 0xaf, 0x7a, 0xda, 0xf9, 0x63, 0x87, 0x1f, - 0x4a, 0xb5, 0xc9, 0x1d, 0x45, 0x0, 0x6e, 0xc, 0xf7, 0x67, 0x59, 0x3e, 0x11, 0x7d, 0xa, 0xfb, 0x1c, 0xb4, 0x64, 0x7a, 0xe8, 0x68, 0x18, 0x58, 0x20, 0x7a, 0xed, 0x84, 0xb, 0x3d, 0x69, 0xfd, 0xab, 0x8f, 0xf9, 0xdc, 0x86, 0x47, 0x60, 0xc9, 0x91, 0x6c, 0x17, 0xa3, 0x4e, 0xe6, 0xe0, 0xe8, 0x4a, 0x38, 0x4d, 0xbe, 0x85, 0x5e, 0x51, 0x2, 0xd5, 0xff, 0xf7, 0x9c, 0x6c, 0x3f, 0x31, 0x7f, 0x88, 0x2a, 0x5e, 0x93, 0x9a, 0x7, 0xb, 0x74, 0x77, 0xc2, 0x39, 0xe2, 0xfb, 0x93, 0x9b, 0xd9, 0x46, 0x5b, 0xd4, 0x1a, 0xd3, 0x17, 0x66, 0x62, 0x3f, 0xa, 0xea, 0x6f, 0x1e, 0xb3, 0xf6, 0xdb, 0xd0, 0xc4, 0x6e, 0x1d, 0x96, 0x3f, 0x94, 0xac, 0xe4, 0xba, 0x23, 0x5c, 0x4f, 0xe4, 0xdc, 0xd6, 0xba, 0xf4, 0xf6, 0xf4, 0x94, 0x3e, 0xb6, 0xd2, 0x3e, 0xc6, 0x3d, 0x3c, 0x63, 0x11, 0x69, 0x97, 0xc7, 0x9d, 0x9b, 0xae, 0x7e, 0x35, 0xa7, 0xf3, 0x8d, 0xcc, 0x52, 0x62, 0x59, 0x98, 0xe9, 0x7f, 0xb6, 0x7f, 0x89, 0xc1, 0x85, 0x35, 0xeb, 0x34, 0x51, 0xfc, 0x9b, 0xa8, 0xdb, 0x31, 0x88, 0x5f, 0xff, 0xfe, 0xff, 0xbc, 0x2b, 0x7c, 0x87, 0x82, 0x78, 0x82, 0xc3, 0x52, 0xb6, 0x81, 0x27, 0xc7, 0x9, 0x27, 0xed, 0xdf, 0x19, 0x1f, 0x8b, 0xfd, 0x3b, 0x87, 0xd2, 0x6b, 0x69, 0xc7, 0x51, 0x65, 0x24, 0xe2, 0x3d, 0xd6, 0x76, 0x3a, 0x70, 0x6c, 0x9e, 0x4e, 0x9b, 0xf6, 0x55, 0x5, 0x3b, 0x3c, 0xf7, 0x24, 0xd4, 0x82, 0x51, 0x97, 0x4f, 0x17, 0x75, 0xae, 0xa7, 0xef, 0x33, 0xad, 0xbd, 0x8, 0x61, 0x34, 0x20, 0xb4, 0x80, 0x1a, 0xb7, 0xed, 0xe, 0xdd, 0xce, 0x0, 0x78, 0x68, 0x73, 0x55, - 0xf5, 0x97, 0xa1, 0xff, 0xcf, 0x40, 0x0, 0x5b, 0x50, 0xc9, 0xfe, 0xc6, 0x1a, 0xaf, 0x61, 0xf8, 0xf5, 0x56, 0xd8, 0xde, 0xeb, 0x67, 0x4b, 0x4a, 0x42, 0xb0, 0xf2, 0x29, 0xf1, 0x7e, 0x83, 0x2b, 0xd5, 0x25, 0xd3, 0xca, 0x42, 0x9f, 0xe9, 0xeb, 0x95, 0x4e, 0x5f, 0x6, 0xcf, 0xa1, 0x27, 0x23, 0x39, 0x6e, 0xdb, 0x65, 0xe, 0xbf, 0x7f, 0x2d, 0x72, 0x21, 0xda, 0x1b, 0x98, 0xba, 0x3, 0xfe, 0x75, 0xdb, 0x28, 0x92, 0x8a, 0xb5, 0x25, 0xc7, 0x76, 0xf7, 0xfe, 0x87, 0x16, 0x96, 0xbe, 0x70, 0x3b, 0x60, 0x49, 0x7, 0xbe, 0xb4, 0x71, 0xf9, 0x56, 0x75, 0xac, 0xf1, 0x1a, 0x4a, 0x7b, 0x9f, 0xb8, 0x75, 0xd0, 0xf9, 0xdf, 0xc9, 0xd2, 0x50, 0xc9, 0xd, 0x39, 0x70, 0x20, 0x52, 0x6e, 0xb0, 0xb1, 0x60, 0x64, 0x9e, 0xff, 0xc2, 0x47, 0xab, 0x81, 0x19, 0xb2, 0xe2, 0xf7, 0xb1, 0x74, 0x6b, 0xb0, 0xf2, 0xff, 0xd4, 0xa7, 0x1a, 0xe0, 0x30, 0x75, 0x77, 0xa8, 0xf0, 0x5c, 0xe0, 0x3c, 0x2a, 0x52, 0xd9, 0x1, 0xe3, 0xd0, 0xe4, 0xd2, 0x1c, 0xf9, 0x18, 0xe7, 0xf4, 0xb1, 0x6c, 0x87, 0x15, 0x91, 0x3a, 0xe9, 0x8c, 0xc3, 0xaf, 0xe6, 0xc2, 0x65, 0x8, 0x86, 0x96, 0xa3, 0xac, 0xc3, 0xce, 0xa3, 0x60, 0xe5, 0xef, 0x62, 0xf7, 0x92, 0x80, 0x9b, 0xe1, 0x99, 0x79, 0x79, 0xf1, 0x9, 0x38, 0x28, 0x3b, 0xe9, 0xbb, 0x3, 0x4d, 0xc6, 0x62, 0x61, 0x58, 0x3e, 0xa4, 0x95, 0xe6, 0x8d, 0x30, 0xe8, 0x79, 0x97, 0xd5, 0x9a, 0x15, 0x1b, 0xbc, 0xb7, 0xcd, 0x44, 0x75, 0x19, 0x24, 0x57, 0xf1, 0xfa, 0xdb, 0x55, 0x91, 0x37, 0xc6, 0x1a, 0xaf, 0x61, 0xfc, 0x30, 0x75, 0x16, 0x59, 0x46, 0xf8, - 0x71, 0x70, 0xb9, 0x5c, 0x1, 0x37, 0xd0, 0x1c, 0xaf, 0x9, 0xe6, 0x13, 0x78, 0xe9, 0x49, 0x6d, 0x5d, 0x5f, 0xe6, 0xf1, 0x6b, 0xee, 0x5a, 0x8d, 0x2e, 0x82, 0x45, 0xec, 0x19, 0xc1, 0x91, 0x4c, 0x52, 0x7d, 0x31, 0x38, 0x7e, 0xa7, 0x49, 0xff, 0xb1, 0xba, 0xce, 0xca, 0xff, 0x33, 0x98, 0x1f, 0x66, 0x7f, 0xc5, 0xfe, 0xd2, 0xcf, 0x5e, 0x8d, 0xa0, 0xb9, 0xb2, 0x4d, 0x62, 0xfb, 0xe7, 0x90, 0x64, 0xed, 0x58, 0xe3, 0x35, 0x8c, 0xff, 0x96, 0x14, 0xd0, 0xf6, 0x2e, 0x92, 0x66, 0x47, 0xb8, 0x29, 0x84, 0x1e, 0xf1, 0xe6, 0xd8, 0xfb, 0x2b, 0xb3, 0x87, 0xbf, 0xb1, 0x2c, 0xf3, 0xf8, 0xd5, 0xac, 0x51, 0x89, 0x2b, 0x71, 0x95, 0xd8, 0x89, 0x6e, 0x72, 0x8f, 0xd2, 0x2e, 0x9d, 0x94, 0x3f, 0xc4, 0x3, 0x77, 0x9c, 0x6b, 0xae, 0xa5, 0xfa, 0xfc, 0xa6, 0x7a, 0x3b, 0x79, 0x53, 0x6d, 0x63, 0x77, 0xf8, 0xfd, 0xb9, 0xd8, 0xa6, 0x7f, 0x7d, 0x72, 0x7b, 0x81, 0x24, 0x89, 0x5, 0xfd, 0xe6, 0x58, 0xe3, 0x35, 0x94, 0x96, 0xc7, 0x85, 0x52, 0x4f, 0x7b, 0xe0, 0x1d, 0xf7, 0x24, 0x66, 0xbf, 0x50, 0xfb, 0x21, 0xa2, 0x4b, 0xdd, 0x9d, 0xa4, 0x62, 0x9d, 0x98, 0x79, 0xfc, 0x42, 0x6f, 0x76, 0x41, 0xfb, 0x27, 0x47, 0x80, 0xa, 0x37, 0xcd, 0x43, 0xe5, 0x5e, 0x5d, 0xf1, 0xe5, 0xa9, 0xd1, 0x57, 0x1e, 0xe5, 0x28, 0x1c, 0x76, 0xbd, 0x9a, 0x6f, 0x48, 0x28, 0x2e, 0x6, 0xab, 0x23, 0xfa, 0xa0, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xed, 0x3f, 0xc7, 0xb1, 0x4a, 0x55, 0x13, 0xbb, 0x74, 0x75, 0x27, 0xdb, 0xff, 0xca, 0xc2, 0xaf, 0x6b, 0x35, 0xa7, 0x52, 0x5f, 0xb4, 0xf1, 0x9e, 0x64, 0xc6, - 0xf1, 0xab, 0xdb, 0x51, 0x87, 0xe2, 0x6a, 0xb6, 0x7b, 0x6c, 0x92, 0x1b, 0xc0, 0x34, 0x96, 0xbf, 0xd5, 0xb8, 0x0, 0x2c, 0x79, 0xd, 0x4b, 0xfb, 0xdc, 0xad, 0x84, 0x99, 0xfe, 0x98, 0xc8, 0x86, 0xaa, 0xd8, 0xc1, 0x7e, 0xbf, 0xb5, 0xbf, 0x67, 0x4f, 0x84, 0xeb, 0xd3, 0x55, 0x4d, 0xaa, 0x55, 0xc7, 0x7c, 0xff, 0xab, 0x61, 0xf2, 0xef, 0x90, 0x17, 0x51, 0xae, 0x3a, 0xff, 0x4e, 0xbf, 0xcf, 0xef, 0x96, 0x2c, 0xfc, 0x4c, 0x4e, 0xa5, 0x68, 0x46, 0x51, 0xa1, 0x8d, 0x2, 0xff, 0x85, 0x7f, 0x70, 0x15, 0xa8, 0x58, 0x25, 0xdc, 0x3f, 0x51, 0x52, 0x72, 0xfb, 0xe7, 0xb6, 0xdf, 0x8d, 0x20, 0x34, 0xca, 0x8f, 0x78, 0xdd, 0xad, 0xbf, 0x8d, 0xf0, 0x4, 0xe, 0x6b, 0xdb, 0xbe, 0x7b, 0xbe, 0x55, 0xdd, 0x30, 0xbb, 0x9a, 0x54, 0x1f, 0x3a, 0x27, 0xe7, 0x79, 0x6a, 0xdb, 0x54, 0xe5, 0xb1, 0x8d, 0x9b, 0xce, 0x7a, 0x7f, 0x79, 0xa8, 0xbf, 0xfb, 0xf7, 0xe6, 0xff, 0x8e, 0xba, 0xbc, 0xd8, 0x96, 0x8b, 0x58, 0xd0, 0xda, 0x7e, 0x35, 0xc2, 0xbd, 0xa8, 0x71, 0x35, 0x2, 0x7f, 0x62, 0xfc, 0xaa, 0xeb, 0xa3, 0x37, 0x7e, 0xe5, 0xd8, 0xfe, 0x2f, 0xa4, 0xc7, 0xda, 0xdf, 0xca, 0xd6, 0xba, 0x96, 0x3e, 0xcc, 0x6f, 0x31, 0x6, 0x95, 0x62, 0xa6, 0xaf, 0xe7, 0xbd, 0x6d, 0x36, 0x12, 0x41, 0xa3, 0x83, 0xa8, 0xa5, 0x5a, 0x65, 0x5d, 0x95, 0x38, 0x4c, 0x3e, 0xca, 0x85, 0xb6, 0x7f, 0xcf, 0x30, 0x15, 0xf4, 0xdf, 0xbe, 0xbc, 0xb1, 0xa, 0xd5, 0x41, 0x87, 0x43, 0x31, 0xd, 0x9d, 0x1e, 0x1a, 0xf3, 0xf9, 0xb6, 0xb1, 0xa6, 0xa7, 0x47, 0xa8, 0x9b, 0x1d, 0xb, 0x24, 0x9b, 0xbe, 0xe1, - 0x7, 0x6e, 0xfc, 0x65, 0x41, 0x5a, 0xfb, 0x20, 0xc7, 0xb8, 0xb, 0xbf, 0x1f, 0x38, 0x66, 0x45, 0x47, 0xf4, 0xff, 0xa9, 0x75, 0xac, 0xdb, 0x3f, 0x94, 0x5e, 0xd3, 0x39, 0x97, 0x7c, 0xda, 0x21, 0xb3, 0x79, 0xa4, 0x1e, 0x96, 0x79, 0xbb, 0x54, 0xc0, 0xf3, 0xc8, 0x60, 0xbe, 0xc7, 0x61, 0xf2, 0xef, 0xd1, 0x3b, 0x61, 0x70, 0x3e, 0xdf, 0xd7, 0x3, 0x3f, 0x9, 0x52, 0x37, 0x43, 0xf4, 0x3a, 0xb, 0x51, 0x3c, 0x78, 0x31, 0xe4, 0x75, 0xf, 0xe3, 0xd7, 0x7c, 0xe, 0x13, 0x68, 0x85, 0x60, 0x24, 0xca, 0x8c, 0x82, 0x33, 0x8e, 0xff, 0x8e, 0xef, 0xdf, 0x55, 0x1f, 0xdd, 0x48, 0xdd, 0xf, 0x78, 0xdf, 0x9e, 0x40, 0xfd, 0xf9, 0x36, 0x49, 0xa5, 0x6, 0xa0, 0xba, 0x67, 0x14, 0xfa, 0xef, 0x76, 0x1e, 0x7a, 0x90, 0x3, 0x81, 0xda, 0xdd, 0x1b, 0xa4, 0xd7, 0x3b, 0x94, 0x8b, 0x8d, 0x14, 0x51, 0x7a, 0x72, 0x4f, 0x57, 0x84, 0xa0, 0x86, 0x43, 0xdf, 0x89, 0xf1, 0x3f, 0x9e, 0x34, 0x7b, 0x66, 0xe1, 0xb3, 0xfa, 0x15, 0x94, 0x69, 0x75, 0x1d, 0xa4, 0x56, 0x19, 0x6b, 0xbc, 0x86, 0xc9, 0x9b, 0x3, 0x8d, 0x28, 0x96, 0x9f, 0xb6, 0xc6, 0x2e, 0x59, 0xbb, 0x7, 0xf7, 0x3, 0x94, 0xd, 0xe4, 0x1f, 0x7e, 0xef, 0x90, 0x24, 0xe6, 0x3d, 0x4, 0x4c, 0x1, 0x2a, 0x2a, 0xe9, 0xc9, 0xf6, 0xf6, 0xf6, 0x87, 0x9c, 0xe3, 0x91, 0xa0, 0x9d, 0xe9, 0x9c, 0x5f, 0xbf, 0x3f, 0xe9, 0x5c, 0xca, 0xa5, 0xa1, 0x5f, 0x95, 0x91, 0xf7, 0xdc, 0x7b, 0x1c, 0xcd, 0x2d, 0xe5, 0xf4, 0x4b, 0xe5, 0xfd, 0xd6, 0x78, 0x62, 0x27, 0x7a, 0x88, 0x54, 0xcb, 0x95, 0x62, 0xf8, 0x7e, 0xe5, 0x35, 0x6b, 0x2e, - 0xc6, 0xae, 0xf9, 0xd4, 0xde, 0x84, 0x33, 0xc2, 0x75, 0x47, 0xac, 0x78, 0x11, 0x76, 0xc6, 0x69, 0xed, 0xc8, 0xdb, 0x68, 0x5d, 0xbf, 0x55, 0x7b, 0x8e, 0xb8, 0x13, 0x48, 0x72, 0xad, 0xc1, 0x7c, 0x76, 0x5e, 0x77, 0xc3, 0xad, 0x4b, 0x86, 0x33, 0xce, 0x6d, 0x66, 0xf3, 0x9b, 0x8b, 0x50, 0xa1, 0xbb, 0xd, 0x67, 0x42, 0x88, 0xf3, 0x76, 0x7b, 0x4d, 0xb7, 0x4e, 0x7f, 0xe1, 0x59, 0xf3, 0xfe, 0xfd, 0x5, 0x2d, 0xe1, 0xdb, 0xbe, 0x1a, 0x7b, 0x2f, 0xa0, 0xd9, 0x2e, 0x1, 0x89, 0x91, 0xba, 0xf6, 0x95, 0xf0, 0x17, 0xa0, 0x90, 0x7d, 0x83, 0x48, 0x64, 0x98, 0x7e, 0xba, 0x90, 0x4a, 0x91, 0x93, 0xc6, 0x6b, 0x83, 0xe1, 0xed, 0xdf, 0x3, 0x3e, 0x76, 0x47, 0x51, 0x8a, 0x2e, 0x4d, 0x87, 0x5f, 0x55, 0x47, 0x8e, 0x2e, 0xeb, 0x2, 0xb5, 0xfd, 0xdd, 0xf4, 0x1e, 0xac, 0xfd, 0xec, 0xdf, 0xe2, 0x6a, 0xa9, 0x73, 0x25, 0x75, 0x72, 0x73, 0x88, 0x3a, 0x1a, 0xfb, 0x87, 0x51, 0x3c, 0x88, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0x8d, 0x85, 0xae, 0x22, 0x5e, 0xab, 0xf9, 0x4a, 0x53, 0xad, 0xa2, 0x8b, 0x76, 0xaa, 0x53, 0x83, 0x50, 0x2f, 0x6f, 0x3, 0x70, 0x6c, 0x79, 0x1, 0x8e, 0xea, 0x9e, 0x67, 0xfd, 0x73, 0x10, 0x3d, 0xe3, 0xe2, 0x3, 0x6b, 0x5e, 0xb8, 0x6, 0xf2, 0xb9, 0x44, 0x2c, 0x85, 0xe4, 0x22, 0x15, 0x94, 0x9f, 0xae, 0xbe, 0x4c, 0xfb, 0xca, 0x34, 0x93, 0x3b, 0x4f, 0xdc, 0xb2, 0x65, 0x8b, 0x94, 0xf9, 0xfd, 0x23, 0x4a, 0x29, 0xff, 0xe9, 0x7f, 0x9a, 0xc, 0xc1, 0xa7, 0x57, 0x51, 0xf6, 0x93, 0x98, 0xff, 0x71, 0x1b, 0x3d, 0xa3, - 0x71, 0x6c, 0x52, 0xa0, 0x7b, 0xd6, 0x26, 0x1c, 0xdf, 0xf, 0x10, 0x33, 0xde, 0xf8, 0x4f, 0xbe, 0x34, 0x27, 0xef, 0xbd, 0x4a, 0x36, 0x78, 0xf0, 0x14, 0xe6, 0x34, 0xde, 0x50, 0x39, 0x4c, 0x5f, 0x8f, 0x35, 0x4d, 0xf9, 0xed, 0x3d, 0x6b, 0xfc, 0x3e, 0x22, 0x5a, 0xf3, 0xac, 0x72, 0xe, 0x59, 0x9c, 0x6a, 0xfe, 0xeb, 0x3, 0x87, 0xa5, 0x51, 0xe0, 0x3f, 0x7d, 0xd1, 0x33, 0x2c, 0x97, 0xb7, 0x60, 0xe7, 0x0, 0xf, 0x3f, 0xf1, 0x6b, 0x18, 0xb9, 0x4a, 0xc0, 0x3e, 0x2f, 0x8, 0xd7, 0xe1, 0xf8, 0x78, 0x82, 0xfe, 0xea, 0xfb, 0x15, 0x37, 0xda, 0xf9, 0x7a, 0xff, 0x77, 0x7d, 0xd6, 0x44, 0xbd, 0xbd, 0x93, 0xe7, 0x4b, 0x4e, 0x37, 0x7e, 0x4b, 0x6b, 0x27, 0xb2, 0xf1, 0xe, 0xf8, 0x67, 0x38, 0xc0, 0x57, 0xcc, 0x64, 0xf8, 0xf1, 0x92, 0x89, 0x85, 0xc4, 0x6d, 0x4a, 0x87, 0xe1, 0x48, 0xbf, 0x1f, 0x22, 0x87, 0x4b, 0xed, 0xf6, 0xeb, 0x1f, 0x78, 0x7f, 0x43, 0xe9, 0x79, 0xf5, 0x17, 0x23, 0x38, 0x95, 0x47, 0x5, 0x8c, 0x55, 0xe8, 0xfd, 0x4, 0xd6, 0xb2, 0x78, 0x94, 0x6a, 0xfb, 0xec, 0x63, 0xa6, 0xe4, 0xf6, 0x6e, 0xff, 0x24, 0xf2, 0x74, 0x7b, 0x6e, 0x49, 0xdf, 0x5f, 0x51, 0x56, 0xb3, 0xad, 0x9, 0x13, 0x94, 0x6, 0x51, 0xf5, 0x80, 0x27, 0xe8, 0x45, 0xf8, 0xfd, 0xba, 0x84, 0x93, 0xed, 0xb8, 0xc7, 0x36, 0x7, 0x36, 0x8c, 0x31, 0x8f, 0x9f, 0xac, 0x79, 0x33, 0x44, 0xdb, 0x5b, 0x49, 0xad, 0xff, 0xb2, 0x75, 0xc, 0x7, 0xc7, 0xaf, 0x6a, 0xc8, 0xbf, 0xaf, 0x42, 0x45, 0x30, 0x97, 0xa, 0xa0, 0x67, 0x87, 0xcb, 0xff, 0x91, 0xd2, 0xe1, 0x23, 0x45, 0xf0, 0x6f, - 0xab, 0xd4, 0xdb, 0xa6, 0xf8, 0x69, 0x29, 0xf4, 0xd7, 0xe4, 0x52, 0xab, 0xc9, 0x36, 0x60, 0x3a, 0x49, 0xb2, 0x5e, 0x5c, 0xea, 0x9b, 0x43, 0x35, 0xb1, 0xd3, 0x8e, 0x21, 0x8e, 0x1f, 0xbb, 0xc2, 0x3b, 0xbd, 0x12, 0xfb, 0x4, 0xd5, 0xe6, 0xbf, 0xbb, 0x2b, 0x76, 0x8e, 0x35, 0x5e, 0x1f, 0x84, 0x9f, 0xac, 0x53, 0xf9, 0x17, 0xfb, 0x6b, 0xfc, 0xc8, 0x68, 0xe2, 0xb7, 0xb4, 0x52, 0xe7, 0x82, 0x36, 0x7e, 0x6c, 0xff, 0x76, 0xf2, 0x37, 0xf6, 0x6f, 0x3f, 0xe3, 0xf1, 0x13, 0xf8, 0xe4, 0xc9, 0xf2, 0xef, 0x24, 0xf9, 0xdd, 0xf9, 0xf8, 0x1b, 0x39, 0xa7, 0x12, 0x3f, 0x79, 0x22, 0x99, 0xf8, 0x29, 0x8c, 0xd7, 0xd4, 0xb5, 0x53, 0xfe, 0x72, 0x3d, 0x63, 0xcd, 0x60, 0xe, 0xca, 0x3f, 0xe4, 0x9d, 0x90, 0x7f, 0x97, 0x9f, 0x34, 0x7f, 0xd9, 0xf5, 0xc8, 0xc3, 0x7, 0x9a, 0x7d, 0x33, 0xf1, 0xb4, 0x28, 0x47, 0x44, 0x7a, 0x70, 0xc6, 0x73, 0x25, 0x68, 0x52, 0xb, 0x80, 0x6a, 0x7d, 0x32, 0x76, 0x6b, 0x62, 0x1f, 0x51, 0x23, 0xd4, 0x5e, 0xfa, 0xda, 0x49, 0xf2, 0xef, 0xb4, 0xdb, 0xd7, 0x2b, 0xba, 0x4, 0xf0, 0x45, 0xf2, 0x1, 0xae, 0x73, 0xb2, 0xe1, 0x46, 0x10, 0x2c, 0x1e, 0x6f, 0x12, 0x30, 0xd, 0xb0, 0xe3, 0xc9, 0xd3, 0x7d, 0xbf, 0xc9, 0xbc, 0x86, 0xda, 0xc2, 0x7e, 0x26, 0xf3, 0x45, 0x1f, 0xd2, 0xeb, 0x9b, 0xf0, 0xd1, 0x22, 0xf2, 0xbc, 0x18, 0xb5, 0xb8, 0xcf, 0x1f, 0x8, 0x58, 0xfc, 0xa7, 0x9e, 0xc4, 0x7f, 0x4b, 0x95, 0x12, 0xc8, 0xf7, 0x71, 0xf6, 0x86, 0xb0, 0x9c, 0x20, 0x84, 0x9a, 0x34, 0x74, 0xcd, 0x7a, 0xff, 0x92, 0xd6, 0x36, 0x12, 0xf4, 0xc8, 0x7f, - 0xa9, 0xb8, 0x84, 0xc7, 0xeb, 0xc, 0xaf, 0x20, 0xfd, 0x9f, 0x63, 0xcd, 0xaf, 0x9f, 0xd8, 0x2f, 0x90, 0xda, 0x41, 0xa7, 0x7d, 0x7e, 0x24, 0xf4, 0xf6, 0x8f, 0xa1, 0xed, 0x4b, 0x4, 0x20, 0x6e, 0xd9, 0x6d, 0x36, 0x3, 0x55, 0xf1, 0x1a, 0xf8, 0x6, 0x5b, 0x93, 0xc8, 0xfc, 0xfc, 0xf4, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x2, 0x7d, 0x5c, 0xf4, 0x35, 0xb5, 0x7f, 0x98, 0xe3, 0x72, 0xf6, 0x1a, 0x8, 0x14, 0x54, 0xc9, 0x7b, 0xc1, 0x2, 0xd6, 0xad, 0xea, 0x9, 0xc4, 0xc7, 0xba, 0x7f, 0xa6, 0xa3, 0xbd, 0x6f, 0x4b, 0x98, 0x10, 0xa4, 0x3e, 0x15, 0xb8, 0xaf, 0x44, 0x57, 0x8, 0x8, 0xaf, 0xbf, 0x3c, 0xf8, 0x3e, 0x65, 0x3d, 0x5f, 0x22, 0x91, 0xa0, 0xea, 0x2d, 0xe3, 0xfa, 0x8d, 0xda, 0xc3, 0xf, 0x4e, 0xa6, 0x1c, 0x3b, 0x58, 0x2c, 0x7f, 0x5, 0xe8, 0x69, 0x5c, 0x2d, 0x75, 0x13, 0xce, 0x40, 0x78, 0xfa, 0x11, 0xfd, 0xd3, 0x1, 0x3d, 0x65, 0xc3, 0x18, 0x7a, 0x53, 0xfd, 0x5d, 0xb1, 0x5f, 0x5, 0x34, 0x99, 0x59, 0xd3, 0xa5, 0x44, 0x8d, 0x8e, 0x35, 0x5e, 0x43, 0x69, 0x47, 0xe1, 0x7c, 0x4, 0x85, 0x7a, 0xf0, 0x55, 0xf7, 0xec, 0xf7, 0x51, 0xf9, 0x15, 0x7e, 0xb4, 0xa, 0xdf, 0x53, 0x81, 0x2b, 0x54, 0x2b, 0x9c, 0x3c, 0x6d, 0x7f, 0x9c, 0x2f, 0x4f, 0xa5, 0xdc, 0x33, 0xd5, 0xa2, 0x5c, 0xea, 0xa9, 0xc8, 0x3f, 0x1, 0x8a, 0x7c, 0x98, 0x1b, 0x10, 0x7e, 0x21, 0x98, 0x82, 0xc9, 0x4d, 0xbc, 0xf7, 0x6, 0x8d, 0xa4, 0xf6, 0xb2, 0xc0, 0xf9, 0x1c, 0x42, 0xcf, 0x5c, 0x85, 0x95, 0xf4, 0x23, 0x1b, 0x4f, 0x85, 0xcf, 0xef, 0xa7, 0xfe, 0xdb, 0x22, 0xea, - 0x2f, 0x6, 0xd0, 0x6f, 0xc5, 0xc0, 0x4, 0x86, 0xc9, 0xdf, 0x1c, 0xdc, 0x75, 0xfc, 0x61, 0x88, 0xf2, 0x69, 0x1f, 0x9f, 0xe, 0x35, 0x2d, 0x85, 0xc2, 0x1d, 0xe6, 0x50, 0x74, 0x7f, 0xcf, 0x6b, 0xca, 0xe8, 0xc7, 0x93, 0x59, 0xf6, 0x5f, 0x9, 0x4f, 0x8d, 0x3f, 0xb4, 0x82, 0x2c, 0x44, 0x3a, 0xfb, 0x65, 0xac, 0xf9, 0x2b, 0xad, 0xfc, 0xdf, 0xe5, 0x60, 0x9b, 0x9d, 0x9e, 0xb3, 0x97, 0x88, 0xbf, 0x27, 0x39, 0xac, 0x3f, 0x39, 0xde, 0xe1, 0x76, 0x5d, 0x53, 0xeb, 0x5c, 0xa7, 0x97, 0x31, 0xc3, 0x3f, 0xdd, 0xf7, 0xe7, 0x6e, 0x9c, 0x62, 0x39, 0x7, 0xb9, 0xe8, 0x2d, 0xc0, 0x23, 0x5c, 0xda, 0xf8, 0x64, 0xaa, 0x6d, 0x16, 0x31, 0xe4, 0x6e, 0x80, 0xf1, 0x9, 0x98, 0x12, 0x42, 0x5f, 0x88, 0x82, 0x5e, 0xdf, 0x5e, 0x12, 0x62, 0x44, 0x87, 0xc5, 0x17, 0x5c, 0x1d, 0x3d, 0xf, 0xba, 0xc0, 0x66, 0xea, 0x64, 0xa2, 0xbe, 0xb2, 0xfa, 0x49, 0xb6, 0x1f, 0x2, 0xfa, 0x39, 0x24, 0x5, 0x26, 0x3d, 0x8d, 0x0, 0x1b, 0x6f, 0xd, 0x75, 0xd8, 0xb5, 0x75, 0xe7, 0xf0, 0xf1, 0x81, 0x51, 0xb7, 0x5f, 0xb6, 0x9, 0xe8, 0x28, 0x3e, 0xa8, 0xde, 0x1e, 0x29, 0x8b, 0xb2, 0x5, 0x46, 0xa5, 0xd3, 0x3, 0x68, 0x89, 0x76, 0x37, 0x12, 0xc9, 0x20, 0xcc, 0x32, 0x39, 0x15, 0xfd, 0xab, 0x70, 0x1f, 0x42, 0xff, 0xde, 0xf6, 0x6d, 0xe8, 0xbd, 0x47, 0x3, 0x7e, 0x6b, 0xff, 0x3f, 0xdf, 0x64, 0xef, 0x6d, 0x17, 0xc3, 0x8, 0xda, 0x67, 0x35, 0xa2, 0x26, 0xc3, 0x2f, 0x3d, 0x8e, 0x35, 0x1, 0xdd, 0xb6, 0x89, 0x38, 0x4e, 0x60, 0xe3, 0x2f, 0xcf, 0xe1, 0x2f, 0xfc, 0x7e, 0xe7, 0x67, 0x4b, - 0x9c, 0xcf, 0x3a, 0x93, 0x54, 0xff, 0x26, 0x4e, 0xd6, 0xbf, 0x2b, 0xe4, 0x2, 0x58, 0x1, 0xc8, 0xac, 0xf8, 0x46, 0x1e, 0x5f, 0x3e, 0x72, 0xfb, 0xf, 0x87, 0x39, 0x1d, 0x7b, 0x83, 0x73, 0xa, 0x3a, 0x4b, 0x4e, 0xc1, 0xfe, 0xb, 0xbf, 0x7b, 0x3b, 0xf5, 0xfd, 0x97, 0x49, 0xd1, 0x4, 0x55, 0x36, 0xa7, 0xc0, 0xaf, 0x43, 0xfd, 0xdf, 0x9a, 0x17, 0xa6, 0xa1, 0xda, 0x9e, 0x3b, 0x70, 0x10, 0x74, 0xe1, 0xf2, 0x62, 0x1e, 0xae, 0x94, 0x41, 0xf7, 0xe4, 0x3, 0xf, 0xef, 0xe, 0xe7, 0x50, 0x3b, 0x0, 0x27, 0xf6, 0x8b, 0x63, 0xe3, 0x37, 0x38, 0x8c, 0x85, 0x28, 0xa1, 0x7f, 0x6e, 0x14, 0x1e, 0x95, 0x3f, 0x7, 0x5d, 0xff, 0x53, 0xca, 0x0, 0x3a, 0xfd, 0xeb, 0x69, 0x9a, 0x93, 0x9f, 0xd2, 0xf9, 0x89, 0x32, 0xba, 0xbb, 0xf3, 0xc0, 0x25, 0x7b, 0xd8, 0xf8, 0xb, 0xf9, 0x4a, 0xc9, 0x61, 0xee, 0xfc, 0xd1, 0x1a, 0x7f, 0x39, 0xb8, 0x59, 0x6f, 0xa5, 0x58, 0x59, 0xe3, 0x2f, 0x1d, 0x5c, 0x41, 0xf8, 0x91, 0x75, 0xf4, 0xf8, 0xc7, 0xa8, 0x6f, 0x41, 0xdf, 0x5c, 0xfe, 0x61, 0xfb, 0x95, 0x1d, 0x1f, 0xdf, 0x5, 0x2e, 0x39, 0x43, 0xc7, 0x5f, 0x86, 0xf2, 0xdf, 0x5b, 0x36, 0xff, 0xf9, 0x4e, 0x99, 0xff, 0x4c, 0xd4, 0x8b, 0x99, 0xe2, 0x3f, 0xc7, 0xd1, 0x16, 0x98, 0x6d, 0xdc, 0x25, 0x9f, 0x7f, 0x9e, 0x1e, 0xe8, 0xf9, 0xcb, 0x97, 0x9a, 0x36, 0x5e, 0xb, 0x9f, 0x57, 0x35, 0xbe, 0x87, 0xd9, 0x44, 0xa5, 0x72, 0xae, 0xc9, 0xf4, 0xc0, 0xb3, 0xc6, 0xc1, 0xa3, 0xa7, 0x96, 0xcd, 0x51, 0xf7, 0xd9, 0xf1, 0x1f, 0x7e, 0xe2, 0x8e, 0x33, 0x69, 0x23, 0x9f, 0xf6, 0x78, 0x4a, - 0x8b, 0xff, 0xa6, 0x59, 0xfc, 0xe7, 0x60, 0xfc, 0x57, 0xba, 0xfc, 0x32, 0xb4, 0x98, 0xbb, 0x2b, 0xa9, 0x73, 0x54, 0x56, 0x2b, 0xee, 0xc9, 0xfc, 0xfc, 0xc7, 0xbb, 0x9b, 0x31, 0x40, 0xed, 0xcb, 0x4b, 0x5d, 0x8e, 0xf3, 0x1e, 0xd0, 0x94, 0xe2, 0x79, 0x54, 0xfe, 0x7b, 0x1c, 0x8, 0x2d, 0x79, 0x10, 0xae, 0xe, 0xe3, 0x13, 0x7a, 0xe9, 0xf4, 0x96, 0x54, 0x44, 0x91, 0xaf, 0x52, 0xad, 0x45, 0xcf, 0xda, 0x1d, 0x3c, 0x1c, 0x11, 0x13, 0x52, 0x69, 0x22, 0xfe, 0x8b, 0x3f, 0xec, 0x1e, 0xf5, 0xf5, 0x49, 0x1f, 0xda, 0x7e, 0x9e, 0x39, 0x5, 0xf1, 0xe0, 0x4a, 0x4e, 0xed, 0x53, 0xba, 0xa2, 0xf4, 0xf9, 0x96, 0xfe, 0x4c, 0xa0, 0x66, 0x96, 0x61, 0x59, 0xb8, 0xad, 0x2b, 0x32, 0x1f, 0xef, 0xe4, 0x7d, 0x69, 0x9a, 0x21, 0x7, 0x5, 0xdb, 0xe2, 0xeb, 0x20, 0xea, 0xd0, 0xf5, 0xab, 0x6b, 0x8b, 0xfd, 0x83, 0xfa, 0x54, 0x5f, 0xfc, 0xd3, 0x12, 0x77, 0x8d, 0x20, 0xf7, 0x73, 0x3d, 0x11, 0x74, 0x53, 0x5f, 0xb7, 0xac, 0x56, 0x3d, 0xe3, 0xe2, 0xaf, 0xc2, 0xaf, 0x4e, 0xd5, 0x5f, 0x6e, 0xac, 0x37, 0x58, 0x70, 0x71, 0xc5, 0xa7, 0x80, 0x66, 0xf9, 0x2b, 0xc6, 0x91, 0x40, 0x2c, 0x40, 0x68, 0x59, 0xb7, 0xf3, 0x14, 0xd6, 0x4f, 0xb, 0x28, 0xc0, 0x60, 0x39, 0x85, 0xf1, 0x3, 0xaa, 0x3f, 0xdf, 0xe3, 0xd8, 0x58, 0x3d, 0x6f, 0x9b, 0x7d, 0x53, 0xe5, 0x3f, 0xa0, 0x61, 0xea, 0xe0, 0xf, 0x44, 0xfc, 0xe1, 0x95, 0xe3, 0x10, 0x13, 0xf4, 0xe9, 0x36, 0x6d, 0x18, 0xf3, 0x6, 0xc7, 0x13, 0xe, 0xd8, 0xff, 0xc6, 0x1a, 0xaf, 0xe1, 0xf2, 0x8, 0xdd, 0x71, 0x2e, 0xce, 0x99, 0x7c, - 0xd2, 0x62, 0x83, 0xe9, 0xe6, 0xc, 0xc8, 0xc7, 0x2, 0x49, 0xa1, 0xbb, 0x7c, 0x6e, 0x48, 0x4c, 0x3f, 0x7e, 0x55, 0x85, 0xd4, 0x7a, 0x67, 0x9b, 0x65, 0xd3, 0xdb, 0x3b, 0xd1, 0xa5, 0x50, 0x69, 0x17, 0xed, 0x43, 0x19, 0x11, 0x15, 0xa8, 0x2c, 0x7e, 0xdc, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x6b, 0xf3, 0x67, 0xe8, 0x8f, 0x24, 0xdf, 0x68, 0xda, 0xa8, 0xe8, 0x7c, 0x8, 0xe3, 0x5f, 0x8c, 0x80, 0x27, 0x50, 0xf0, 0x6a, 0xb2, 0x8e, 0x4c, 0xe6, 0xed, 0x41, 0xea, 0xa0, 0xc1, 0x57, 0x8d, 0x35, 0x7e, 0x54, 0x7f, 0x1c, 0xe6, 0x4a, 0x51, 0x16, 0xa1, 0x2f, 0x2c, 0x92, 0xbe, 0xe6, 0xc2, 0x10, 0xa0, 0x12, 0xb1, 0xd1, 0xfa, 0x37, 0x1a, 0xfb, 0x27, 0xa2, 0x5b, 0xb2, 0xe6, 0xda, 0x5a, 0xd8, 0x12, 0x6d, 0xae, 0x69, 0x47, 0xc, 0xfa, 0x5b, 0xbf, 0xb7, 0xec, 0xf, 0x9d, 0x3e, 0x4, 0xc7, 0x33, 0xd, 0x40, 0xbd, 0x4b, 0xe3, 0xad, 0x31, 0xe9, 0xfb, 0xf6, 0xaf, 0x28, 0x9e, 0x85, 0x5e, 0x3d, 0xa0, 0xdf, 0xa, 0x3f, 0x76, 0xa, 0x2d, 0x19, 0xb7, 0x7, 0x46, 0x8c, 0xdf, 0x9b, 0x2a, 0x35, 0xfe, 0xc3, 0x2a, 0xc3, 0xaf, 0x4c, 0x7, 0xd8, 0xfe, 0xb2, 0x51, 0x8a, 0x9b, 0xb1, 0xd6, 0xae, 0x91, 0x96, 0xff, 0x7c, 0xcb, 0xe0, 0x58, 0x86, 0x3c, 0x93, 0x6b, 0x41, 0xe1, 0x29, 0xc4, 0x4b, 0xb3, 0xf9, 0xb4, 0x9b, 0xc5, 0x98, 0x8b, 0xaa, 0x5a, 0x6a, 0x6d, 0xb7, 0x70, 0xe1, 0x39, 0x25, 0x41, 0xf3, 0xf6, 0x4b, 0x39, 0x7b, 0xfd, 0x88, 0x20, 0x5c, 0xbb, 0x63, 0xd, 0xed, 0xd7, 0x29, 0x73, 0xee, 0xd9, 0x83, 0xbb, 0x58, 0xfd, 0xcb, - 0x12, 0x3f, 0x6e, 0xfb, 0xc7, 0x1b, 0x7c, 0x89, 0x3b, 0x84, 0x77, 0xb8, 0xd, 0xcc, 0x3e, 0x8d, 0x5, 0xb4, 0x3a, 0xcc, 0xc7, 0x1c, 0xe1, 0x93, 0x5c, 0x95, 0xcf, 0xd, 0xea, 0x50, 0xdb, 0xf5, 0x1b, 0xf1, 0xea, 0xe9, 0xc7, 0xcf, 0x83, 0x5, 0xc5, 0xb5, 0x98, 0x8d, 0x24, 0x51, 0x83, 0x40, 0x5d, 0x7b, 0x3e, 0x1c, 0x1d, 0x78, 0x4a, 0x2f, 0x89, 0x73, 0x77, 0x22, 0x34, 0x1a, 0xfc, 0xc7, 0x13, 0x29, 0x2e, 0x34, 0x5a, 0x33, 0xce, 0x25, 0x68, 0x18, 0x37, 0x8b, 0x24, 0x2, 0x9a, 0x4b, 0xcf, 0xb7, 0x2a, 0x28, 0xe1, 0xeb, 0x6f, 0xd1, 0x2f, 0x0, 0x89, 0xdb, 0x70, 0x4a, 0x45, 0xe1, 0x5f, 0xcc, 0x0, 0x66, 0xbd, 0xed, 0xde, 0xe4, 0x57, 0xa3, 0x89, 0x84, 0x3e, 0x6c, 0x7c, 0x2f, 0xb5, 0xfe, 0xdd, 0x2e, 0xe2, 0xe9, 0xcf, 0x17, 0xb2, 0x22, 0x7a, 0x25, 0x8a, 0x90, 0xd7, 0xc2, 0xe1, 0x47, 0x88, 0x49, 0xa8, 0xb3, 0xfb, 0x33, 0xb5, 0x7, 0xd9, 0xbf, 0x51, 0xea, 0xbf, 0x1c, 0x8e, 0xf7, 0x60, 0xfe, 0x8f, 0x66, 0x39, 0x8, 0xdb, 0x7c, 0xd0, 0x80, 0x30, 0xc3, 0xa3, 0xa3, 0x69, 0xc7, 0x56, 0xe8, 0xe3, 0x63, 0x8c, 0x1, 0x29, 0x4f, 0xa, 0x91, 0x2a, 0xe5, 0xe3, 0x6c, 0x36, 0xf8, 0x6, 0xda, 0xd9, 0x5b, 0x32, 0xb1, 0x5e, 0x28, 0xe3, 0xf6, 0x9f, 0x67, 0x7e, 0xcc, 0x69, 0xf0, 0xd7, 0x52, 0x62, 0xf, 0x4b, 0x61, 0x22, 0x2f, 0x9f, 0xa5, 0xf3, 0xe, 0xc4, 0xdb, 0xdc, 0xb, 0xf, 0xc, 0xb4, 0xe4, 0x66, 0x3e, 0xfe, 0x79, 0xc9, 0x78, 0xfc, 0x4e, 0x25, 0x6a, 0x5f, 0x44, 0xcc, 0xd3, 0xe9, 0x11, 0xef, 0x9c, 0xd9, 0x14, 0x18, 0x7b, 0xbc, 0xaf, 0x7e, 0xf9, - 0xae, 0xee, 0xb5, 0xb2, 0x1b, 0xb5, 0x6e, 0xbb, 0xb6, 0xfe, 0x6a, 0xeb, 0xb4, 0xf0, 0x8f, 0xc6, 0xe9, 0x79, 0xba, 0xf8, 0x27, 0xb6, 0x9e, 0x46, 0xd7, 0x8d, 0x61, 0xe3, 0x7f, 0x94, 0xff, 0x14, 0x9c, 0x28, 0xa3, 0x3e, 0x1f, 0x37, 0x5d, 0x91, 0x12, 0x47, 0x38, 0x1e, 0xc5, 0xfe, 0x7, 0x99, 0x89, 0x42, 0xa6, 0xd5, 0x7f, 0x1b, 0xda, 0x9c, 0x77, 0x2, 0x54, 0xe8, 0x74, 0x88, 0x64, 0x2e, 0x8b, 0x1f, 0x72, 0x9d, 0xdc, 0x9e, 0xaa, 0xe, 0x5, 0x62, 0x15, 0x55, 0x77, 0xbd, 0x28, 0x67, 0x7, 0x46, 0x7a, 0xfd, 0x49, 0xbc, 0x65, 0x8f, 0xdc, 0xbd, 0xa, 0xf6, 0xcb, 0x4, 0x3e, 0x65, 0x9f, 0xe8, 0x2b, 0xa9, 0xf1, 0x39, 0x3c, 0xfe, 0x39, 0xe3, 0xf6, 0xfb, 0xd1, 0x35, 0x2c, 0x30, 0xe, 0x4c, 0x3d, 0x99, 0x1b, 0xa3, 0x6a, 0xe8, 0x67, 0xbf, 0x4c, 0x9c, 0x97, 0x12, 0xb7, 0xd4, 0xe1, 0x49, 0xab, 0x9f, 0x58, 0x3c, 0x8b, 0x61, 0x49, 0x8c, 0x77, 0xac, 0x79, 0x3, 0x2b, 0x5f, 0x9, 0x95, 0x45, 0xd4, 0x6b, 0xe2, 0xc, 0xfa, 0x21, 0xcc, 0xe1, 0xc1, 0xf, 0x33, 0x9f, 0xfb, 0xa1, 0xed, 0xcd, 0xfc, 0x4, 0xb4, 0x9c, 0xe5, 0x83, 0x2d, 0x1e, 0xe6, 0x4f, 0x5c, 0xbd, 0x63, 0x1b, 0xb0, 0x23, 0x11, 0x40, 0x87, 0x65, 0xe2, 0x48, 0xac, 0x7d, 0x9, 0x81, 0xb8, 0x69, 0x13, 0x9f, 0xa6, 0x7d, 0x78, 0x98, 0x7f, 0x96, 0x5a, 0x5f, 0x48, 0x6, 0x1f, 0xf8, 0x87, 0x6e, 0xf, 0x87, 0x9b, 0x4e, 0x9a, 0x7f, 0xe2, 0x9a, 0xa2, 0xf3, 0xd9, 0x78, 0xdc, 0x22, 0x36, 0x98, 0xd3, 0xad, 0xab, 0x91, 0xa1, 0xf5, 0x8f, 0x76, 0x30, 0x76, 0x57, 0xae, 0xbb, 0xb3, 0xa2, 0xcc, 0x3a, - 0xf2, 0x72, 0x74, 0x55, 0x62, 0xe0, 0xf1, 0x1a, 0x8e, 0x5a, 0x2d, 0x3c, 0xcf, 0x9, 0xf3, 0xaf, 0x1, 0x5b, 0xef, 0x9d, 0xb0, 0xfe, 0x69, 0x40, 0x6c, 0x72, 0x1f, 0xdb, 0xd7, 0x3a, 0xe8, 0x87, 0x5f, 0xcc, 0x8, 0x9e, 0xa5, 0xd6, 0x78, 0x3d, 0xef, 0x81, 0x68, 0x10, 0xf6, 0x66, 0xf3, 0xe3, 0x2a, 0x76, 0xb, 0x5f, 0x62, 0x9d, 0x78, 0xde, 0xa0, 0x3d, 0xa9, 0xd9, 0xad, 0x10, 0xf9, 0xe3, 0xf3, 0x71, 0x6c, 0xa7, 0xed, 0xe4, 0x88, 0xe5, 0x55, 0xdc, 0xc1, 0xc6, 0xb6, 0x6b, 0x19, 0x55, 0x71, 0x44, 0x14, 0x27, 0xe7, 0xb1, 0xe1, 0x6b, 0x32, 0xd9, 0xe2, 0x18, 0xe1, 0xf1, 0xf, 0xdd, 0xff, 0xdf, 0xc9, 0x9d, 0x8c, 0x22, 0xf1, 0x91, 0xca, 0xcf, 0xe8, 0xa9, 0xfd, 0x78, 0xf, 0x9d, 0x43, 0xa1, 0xdf, 0xc7, 0x85, 0xa2, 0x9a, 0xc1, 0x22, 0x3e, 0x47, 0x43, 0xff, 0x5a, 0x1f, 0xf3, 0x89, 0x94, 0x10, 0xcc, 0xf4, 0xf9, 0x62, 0x52, 0xeb, 0xd3, 0xf7, 0x40, 0xd5, 0xd8, 0xa2, 0x91, 0xb1, 0xd6, 0x17, 0x67, 0x1a, 0x7d, 0xa9, 0xc2, 0xf8, 0xda, 0xe4, 0xa0, 0x7f, 0xbb, 0x95, 0xe1, 0x74, 0xa1, 0xcd, 0x6f, 0xc1, 0xca, 0xf3, 0xde, 0xb6, 0x6a, 0xa4, 0xfb, 0xfe, 0x54, 0xa5, 0x9, 0xb4, 0xb7, 0x43, 0x1f, 0x7, 0xfd, 0xe8, 0x29, 0xd4, 0x1f, 0x29, 0x3d, 0xb7, 0xb6, 0x81, 0xf6, 0x6f, 0xca, 0x2, 0x7a, 0x9, 0x5c, 0xd4, 0x4d, 0x72, 0x14, 0x9e, 0x8f, 0x29, 0x58, 0x40, 0x2c, 0x8f, 0xa9, 0xe7, 0xb5, 0x33, 0x2e, 0x3e, 0xf1, 0x4c, 0xa7, 0x7, 0xe3, 0x25, 0x7, 0x8b, 0x63, 0x65, 0x83, 0xf1, 0x19, 0x4f, 0x82, 0x19, 0xf4, 0x89, 0x9e, 0x51, 0x78, 0x9e, 0x6c, 0xbe, 0xdb, - 0x8e, 0x3c, 0xa0, 0xbd, 0x97, 0xdf, 0x8c, 0x93, 0xc6, 0x47, 0x89, 0xb4, 0x13, 0xaa, 0xf7, 0x21, 0x17, 0xf4, 0x81, 0xdd, 0xd6, 0xe4, 0x3d, 0x91, 0x3, 0x3b, 0xc3, 0x77, 0x6c, 0xc0, 0x4, 0xf2, 0xfc, 0xac, 0xdc, 0x72, 0xbf, 0x8f, 0xfe, 0xcd, 0x18, 0x6b, 0xbc, 0x3e, 0x40, 0x1e, 0x2d, 0xfa, 0x35, 0xf7, 0x73, 0x2e, 0xce, 0x9b, 0xbc, 0x49, 0x8f, 0xbc, 0x5d, 0xdb, 0x10, 0xeb, 0x29, 0xd2, 0x98, 0x8c, 0xd2, 0x3f, 0x35, 0xa, 0xf8, 0x85, 0xdf, 0x2f, 0x4a, 0xe4, 0xc5, 0x4, 0x7e, 0x26, 0x9b, 0xfd, 0x28, 0xf2, 0x7, 0xd6, 0xca, 0xb3, 0x2c, 0xfb, 0x99, 0x15, 0xbf, 0x29, 0x14, 0x5e, 0x7b, 0x60, 0x75, 0xd0, 0xe4, 0x52, 0x88, 0x3e, 0xf6, 0xc2, 0xe3, 0x4d, 0xd1, 0xf5, 0xb8, 0x17, 0x9c, 0x52, 0xdb, 0xa6, 0x46, 0xd1, 0xa3, 0x8f, 0x39, 0x5e, 0x43, 0xe9, 0x3b, 0xdb, 0x4b, 0xa9, 0xaa, 0xeb, 0x7f, 0x61, 0xb7, 0x7d, 0x0, 0x73, 0xe5, 0x37, 0xa9, 0xf4, 0x61, 0x1, 0x15, 0xf7, 0xfa, 0xf5, 0x47, 0xb8, 0xd1, 0xe0, 0xbf, 0x6e, 0x6a, 0x29, 0x59, 0x1c, 0x18, 0x17, 0xfe, 0x6c, 0xad, 0xff, 0xad, 0x4e, 0x59, 0x9c, 0x21, 0xf3, 0x2e, 0x77, 0xd, 0x5b, 0x3f, 0x6d, 0xe7, 0x3, 0x44, 0x69, 0x44, 0x6d, 0xfd, 0xab, 0x7c, 0x8e, 0x67, 0x40, 0xbe, 0xbf, 0x74, 0xfd, 0x37, 0xf4, 0x44, 0x3f, 0x82, 0x42, 0xa2, 0x10, 0x2d, 0xb, 0xb7, 0xec, 0xd6, 0x94, 0x51, 0xef, 0xbf, 0xac, 0xbf, 0x2, 0x86, 0xd5, 0x5f, 0x95, 0x88, 0xe8, 0xfc, 0xeb, 0xfe, 0x3b, 0xc9, 0xee, 0xbf, 0xc6, 0xd6, 0x6, 0x57, 0xb9, 0xdf, 0x45, 0xcb, 0x19, 0xd7, 0x7f, 0x87, 0xf2, 0x9f, 0xe3, 0xfa, 0x6, - 0x7d, 0xa2, 0xf5, 0x49, 0xb5, 0xb8, 0x22, 0xe3, 0xfd, 0xf7, 0x8e, 0xe9, 0xb4, 0x3f, 0xe2, 0xbd, 0x25, 0x2e, 0xdf, 0x7c, 0xd5, 0xe7, 0x2a, 0xf0, 0x6e, 0x1f, 0x8f, 0x8e, 0xa0, 0x6d, 0xd2, 0xf4, 0x46, 0xee, 0x29, 0x93, 0x73, 0x4e, 0xc4, 0x3, 0x1d, 0x36, 0xdd, 0x58, 0x5b, 0x7c, 0x35, 0x1b, 0xcf, 0xa0, 0xcd, 0x49, 0x46, 0x4d, 0x43, 0xf8, 0xe2, 0x58, 0xe3, 0xf5, 0x41, 0xf2, 0x2f, 0x89, 0x8d, 0x60, 0x11, 0xf8, 0x2c, 0x7e, 0x9c, 0xf2, 0xe3, 0x22, 0xfb, 0x9c, 0x2e, 0xf7, 0x53, 0xb3, 0x3f, 0xd3, 0xd7, 0x3b, 0x9a, 0x2c, 0xd2, 0x72, 0xcf, 0x45, 0x41, 0x35, 0xcf, 0xca, 0xec, 0x23, 0xe1, 0x6, 0x1e, 0xfa, 0xee, 0x44, 0x11, 0x11, 0x21, 0xfb, 0xb, 0xa, 0x86, 0xad, 0xa7, 0xb9, 0xb9, 0xeb, 0x49, 0x68, 0xf7, 0xfd, 0x2a, 0x60, 0xd3, 0xc6, 0x99, 0xb7, 0xfe, 0x77, 0x48, 0xff, 0xd, 0x5f, 0xd7, 0x10, 0x5b, 0xc6, 0x6c, 0xe9, 0xfe, 0x3, 0x16, 0x3d, 0xea, 0xfd, 0x77, 0x3b, 0x81, 0x1a, 0x8c, 0x5a, 0x67, 0x59, 0xff, 0xb5, 0xe6, 0x77, 0x8f, 0xe9, 0x25, 0x54, 0x3a, 0xf2, 0x66, 0xdc, 0x7c, 0xb6, 0x4a, 0x9d, 0x82, 0x60, 0xa3, 0x16, 0x34, 0x3, 0x71, 0xc1, 0xe0, 0x46, 0x1e, 0x9f, 0xb6, 0x16, 0xf8, 0xcd, 0x9, 0x7f, 0xcd, 0x10, 0x96, 0x0, 0x5f, 0x1c, 0x49, 0xfc, 0xb4, 0xad, 0x7f, 0xe3, 0xc7, 0xf5, 0xaf, 0x77, 0x65, 0x3, 0xb9, 0x93, 0xdd, 0x4e, 0x23, 0x19, 0x15, 0xfc, 0x2c, 0xfd, 0x4b, 0xd5, 0xbb, 0xa5, 0x7f, 0x7d, 0xfe, 0x80, 0x94, 0x37, 0x8b, 0xb6, 0x3a, 0x80, 0x87, 0x35, 0x20, 0xf2, 0x24, 0x87, 0xb9, 0xbb, 0xae, 0xc2, 0x4c, 0x58, 0x1, 0xe3, - 0xba, 0xb, 0xfb, 0xb8, 0xba, 0x7a, 0xd5, 0x70, 0x4, 0x13, 0x3c, 0xfb, 0x8b, 0xc3, 0x78, 0x63, 0xac, 0xf9, 0x6d, 0x28, 0xdd, 0xbc, 0xab, 0x5, 0xb2, 0x3, 0x91, 0x23, 0xd4, 0xbb, 0xe4, 0x7b, 0x54, 0x29, 0x15, 0xef, 0x3e, 0x58, 0x32, 0x3e, 0x9f, 0x5f, 0xb3, 0xc6, 0xad, 0x39, 0xf5, 0xc5, 0xd6, 0x6a, 0x4b, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x9f, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xa9, 0x7f, 0x2a, 0xdb, 0x1a, 0x39, 0x9e, 0xde, 0xbf, 0x1b, 0x6b, 0xda, 0xfb, 0x84, 0x80, 0x44, 0xb0, 0xb6, 0x85, 0x85, 0xfc, 0x45, 0xb4, 0x7b, 0x46, 0x7d, 0x7c, 0xb2, 0x66, 0x1b, 0x8f, 0xb, 0xe6, 0x2b, 0x50, 0x23, 0xe8, 0xd3, 0xa5, 0xc8, 0x8f, 0x6b, 0x4, 0xea, 0xbc, 0x3d, 0x45, 0xa4, 0x3e, 0x4d, 0xdc, 0x4b, 0x24, 0x5, 0x7f, 0x15, 0xf, 0x4c, 0x79, 0x90, 0xd2, 0xb, 0xc1, 0x82, 0x87, 0xc0, 0x7, 0xd9, 0x81, 0x91, 0x5e, 0x7f, 0xc2, 0xbd, 0xdf, 0x63, 0x6c, 0x61, 0xcb, 0x53, 0xe3, 0xf3, 0x23, 0xf6, 0xb7, 0xaa, 0xa2, 0x97, 0x20, 0x1, 0xe3, 0x7c, 0xd6, 0x3b, 0x4c, 0xae, 0x3, 0x7, 0x8f, 0x50, 0x24, 0x9, 0xd5, 0x85, 0xdf, 0xe9, 0x42, 0x26, 0xda, 0x3b, 0x94, 0x66, 0xf3, 0x19, 0x6d, 0x93, 0xf4, 0xcd, 0xdc, 0x57, 0xa7, 0xea, 0xb3, 0x51, 0xc3, 0x85, 0x57, 0x2e, 0x81, 0xb9, 0x68, 0x50, 0xe5, 0xca, 0xfe, 0xd2, 0x7, 0x1a, 0xd1, 0xd2, 0x65, 0x7, 0x24, 0xec, 0x89, 0x88, 0xb3, 0x43, 0x93, 0xeb, 0xc9, 0x41, 0x69, 0x19, 0x36, 0xf7, 0x4, 0x5c, 0x2e, 0x47, 0xcf, 0x19, 0x97, 0xff, 0x25, 0x85, 0xdf, 0x79, 0x83, 0xf8, 0x8d, 0xf6, 0xf5, 0xe6, - 0xd5, 0xab, 0x31, 0x36, 0xdd, 0xfb, 0x9, 0xe0, 0x62, 0xf6, 0x3a, 0x54, 0xfe, 0x8d, 0x35, 0x1e, 0x1f, 0xba, 0xff, 0x5e, 0x51, 0x44, 0x65, 0xf5, 0xbe, 0x73, 0x7, 0x43, 0x40, 0x4b, 0x73, 0xf0, 0xc7, 0xca, 0x6, 0x29, 0x99, 0x22, 0xd3, 0xde, 0x4f, 0xe8, 0x21, 0x5, 0x88, 0xed, 0xb, 0x20, 0x50, 0x7e, 0x4a, 0xf6, 0x22, 0xd5, 0x1f, 0xba, 0x1c, 0xe3, 0xd1, 0x99, 0xd2, 0x1f, 0x4d, 0xbb, 0x98, 0xb9, 0x14, 0x61, 0x32, 0x37, 0x88, 0xbd, 0x44, 0xad, 0x6b, 0x9f, 0x8e, 0x90, 0x66, 0xd7, 0x8e, 0xf3, 0x9, 0xc1, 0xb1, 0x79, 0x3, 0x36, 0x21, 0xc7, 0x28, 0xcf, 0x71, 0x54, 0x7a, 0x1c, 0xab, 0x9f, 0xae, 0xda, 0xb8, 0x9, 0x89, 0x9c, 0x68, 0xc2, 0xd2, 0x78, 0x30, 0xef, 0x67, 0xfa, 0x86, 0x36, 0x56, 0x66, 0xfa, 0xe6, 0x3c, 0x9c, 0xfe, 0xf9, 0xcd, 0xa1, 0xf8, 0x7d, 0x58, 0x3c, 0xfe, 0xf, 0xfa, 0xf7, 0x6f, 0xe2, 0x37, 0x4f, 0x66, 0xab, 0x90, 0x99, 0x3d, 0x4d, 0x24, 0xe8, 0xab, 0x30, 0x14, 0xaf, 0xb1, 0xe6, 0xb7, 0xa1, 0xf4, 0x50, 0xff, 0xa3, 0x49, 0x91, 0x10, 0x23, 0xf4, 0x8e, 0x92, 0x9a, 0x38, 0x1a, 0xf8, 0xa5, 0xf3, 0x7f, 0x59, 0xfe, 0x21, 0x79, 0x70, 0x9, 0x5c, 0xcf, 0x9c, 0x43, 0x6c, 0xbe, 0xce, 0xe4, 0x1b, 0xd1, 0xc8, 0x62, 0xb6, 0x9c, 0x64, 0x58, 0xbe, 0xa7, 0xb1, 0xa6, 0x6b, 0x96, 0x14, 0x51, 0x7b, 0x21, 0x2a, 0x4d, 0x4e, 0xe1, 0xc7, 0xfc, 0xb7, 0x71, 0xd6, 0xa7, 0xd1, 0xf1, 0xdf, 0xa8, 0xfe, 0x78, 0x87, 0x9b, 0x23, 0x24, 0x10, 0xb, 0x60, 0x6e, 0x6c, 0x1f, 0xe7, 0x38, 0xba, 0x6, 0xfe, 0x5f, 0x5e, 0x6, 0xfd, 0x6e, 0x57, 0x8f, - 0xb2, 0xf7, 0x90, 0xc2, 0xf2, 0x97, 0x6c, 0xc2, 0xbb, 0xc7, 0xf3, 0x97, 0x54, 0x45, 0xd7, 0x1b, 0xb2, 0x2e, 0x97, 0x1b, 0x12, 0xe5, 0x3e, 0x18, 0xd7, 0x8c, 0xf4, 0xfa, 0x52, 0xfb, 0x7f, 0xa1, 0x72, 0x70, 0x75, 0x2f, 0x66, 0x8f, 0xf8, 0xfe, 0x3e, 0x60, 0xfc, 0x2f, 0x71, 0x8b, 0x3d, 0x9f, 0x78, 0x5a, 0xc6, 0xff, 0x86, 0x8d, 0x1f, 0x34, 0x6f, 0x82, 0x92, 0xdc, 0x2d, 0x5, 0x78, 0xa3, 0x83, 0x70, 0xf3, 0x76, 0x86, 0x9b, 0x37, 0x40, 0xe3, 0x5d, 0x1b, 0x17, 0x3a, 0xac, 0x1, 0x84, 0x8c, 0x8f, 0x1f, 0x88, 0x14, 0x4f, 0x72, 0x1c, 0xcf, 0xc4, 0x87, 0x5e, 0x5f, 0xcc, 0xf8, 0x2f, 0x17, 0x7, 0xa4, 0xd4, 0x9a, 0x19, 0xbc, 0xf6, 0x0, 0xb5, 0x5b, 0x62, 0x9f, 0xf, 0xb0, 0x31, 0xf1, 0x2, 0x7e, 0x74, 0xec, 0x17, 0x6e, 0xe, 0x53, 0xf9, 0x1, 0xcc, 0x8b, 0xb5, 0x70, 0x43, 0xe5, 0xdf, 0x7, 0xe0, 0x2d, 0xa5, 0x9a, 0x56, 0x4e, 0x1d, 0x93, 0xc2, 0xb1, 0xee, 0xaf, 0x43, 0xe9, 0x95, 0x9d, 0xcb, 0x89, 0x87, 0x38, 0x34, 0x44, 0x5e, 0xb0, 0x8e, 0xc8, 0xb9, 0x6b, 0xe8, 0x2b, 0x6f, 0xb8, 0xf7, 0xd9, 0x35, 0x32, 0x7d, 0x3d, 0xaa, 0xdf, 0xff, 0xcc, 0xf5, 0x12, 0x20, 0x27, 0x8a, 0x9e, 0x88, 0xae, 0x9e, 0x18, 0xaf, 0xa0, 0xdd, 0xb3, 0x42, 0x97, 0x42, 0xd7, 0xe7, 0x51, 0x76, 0x3c, 0xdf, 0x16, 0x21, 0xe8, 0x69, 0xb0, 0xc6, 0xa7, 0x15, 0xc2, 0xf5, 0x69, 0xaa, 0x6f, 0x34, 0xda, 0x33, 0x52, 0x3a, 0x74, 0xc9, 0xb4, 0xa0, 0x29, 0x15, 0xa3, 0x4a, 0xdc, 0xd2, 0xa3, 0x9d, 0x86, 0xf6, 0x95, 0xde, 0xba, 0x90, 0xda, 0xc7, 0xa, 0x11, 0xf7, 0x44, 0x20, 0xac, - 0xdb, 0xb4, 0xc0, 0x7b, 0xc5, 0xb5, 0xcc, 0xb9, 0xb0, 0x4a, 0x2f, 0xc5, 0x33, 0x74, 0xc9, 0x65, 0x60, 0x53, 0x98, 0x9a, 0x8d, 0x1f, 0x77, 0x89, 0xe7, 0x3f, 0xd8, 0x7, 0xc2, 0xfa, 0x3, 0xf4, 0x33, 0x30, 0xff, 0xd5, 0x82, 0x5b, 0xd1, 0x33, 0xc9, 0x3, 0x7f, 0x6a, 0xc, 0x7d, 0x62, 0x6a, 0x1f, 0x1a, 0x8d, 0x9b, 0x41, 0xfd, 0x83, 0x68, 0xc6, 0xf1, 0xac, 0x32, 0xeb, 0x8d, 0x7c, 0x43, 0xc, 0xc5, 0x39, 0xc3, 0x9d, 0x70, 0x9a, 0x38, 0x29, 0x7f, 0x9d, 0x89, 0x0, 0x71, 0xca, 0xf, 0xb8, 0x40, 0x26, 0xd8, 0x8d, 0x59, 0xdc, 0xe5, 0xfa, 0x3e, 0x5b, 0xef, 0xa1, 0x1f, 0x1b, 0x8f, 0x56, 0x1e, 0xad, 0xd0, 0x2b, 0xce, 0x38, 0xfe, 0xb, 0x3f, 0x2a, 0xa1, 0xe3, 0x5c, 0x31, 0x10, 0x55, 0x6d, 0x25, 0x12, 0x3e, 0x18, 0xe, 0x12, 0xf, 0x82, 0xdd, 0x85, 0xfe, 0x51, 0xd2, 0xbf, 0xfc, 0xb1, 0xd7, 0xf2, 0x70, 0x80, 0xb, 0x96, 0x61, 0xa7, 0x10, 0xe5, 0x19, 0xff, 0xe5, 0xa6, 0x5c, 0x5e, 0xc6, 0x7f, 0xde, 0x99, 0x8d, 0x83, 0xf1, 0xbc, 0x54, 0x98, 0x78, 0x34, 0x4b, 0x5e, 0xe2, 0x11, 0xee, 0xdb, 0xd8, 0xeb, 0x8a, 0x49, 0xc6, 0x19, 0x97, 0x3f, 0xa2, 0x49, 0x29, 0x45, 0x1e, 0x75, 0x37, 0x35, 0xce, 0xd6, 0x20, 0x1f, 0xde, 0x1e, 0xbe, 0x86, 0xb4, 0xeb, 0xe, 0x2c, 0x48, 0x3d, 0x80, 0x74, 0xf5, 0x57, 0x98, 0x8b, 0x51, 0xe4, 0x5d, 0xf6, 0x5b, 0x74, 0x4c, 0xc5, 0x1c, 0x21, 0x2a, 0xda, 0xf8, 0xd, 0x8e, 0x3f, 0xeb, 0x6a, 0x4d, 0xae, 0x1b, 0xc9, 0x14, 0x7e, 0xba, 0xba, 0x6e, 0x75, 0x35, 0x67, 0x2c, 0x7a, 0x3f, 0xbe, 0xbf, 0x61, 0x77, 0x85, 0x6e, 0x25, - 0xa4, 0x66, 0xf6, 0x23, 0xdb, 0x97, 0xc1, 0xca, 0x5e, 0xdc, 0x82, 0x85, 0xe1, 0x1c, 0xec, 0xc4, 0x89, 0x72, 0xda, 0xe7, 0x47, 0x26, 0xd5, 0x36, 0xc0, 0x83, 0xb9, 0x8c, 0x78, 0xf, 0xf8, 0x3a, 0x58, 0x7e, 0xec, 0x84, 0x95, 0x1f, 0xfb, 0x5b, 0xd2, 0xff, 0x5, 0xcf, 0xf4, 0xf6, 0xb, 0xb5, 0x87, 0xb9, 0x56, 0x4, 0xf0, 0x1c, 0x92, 0xd4, 0x3f, 0xb, 0x5d, 0xbf, 0x16, 0x89, 0xe0, 0xe0, 0x8, 0xa6, 0xb6, 0x31, 0xbc, 0xbd, 0x4f, 0xe3, 0x16, 0x18, 0xb6, 0x39, 0xea, 0x53, 0xa3, 0x35, 0x82, 0x9c, 0xe4, 0x88, 0x1a, 0xa1, 0x88, 0x51, 0x35, 0x22, 0xf5, 0x8d, 0x35, 0xbf, 0xfd, 0x2f, 0xfd, 0xb7, 0x48, 0x39, 0xa9, 0xff, 0xea, 0x1e, 0xe8, 0x5f, 0x1e, 0xb5, 0xfe, 0x8b, 0xf7, 0x5e, 0x73, 0x9e, 0xe8, 0xbf, 0x75, 0xf5, 0xe3, 0x51, 0x2c, 0x3f, 0x6b, 0x65, 0x9f, 0x29, 0xc1, 0x51, 0x6b, 0xfd, 0xb6, 0xcd, 0x49, 0x56, 0xfc, 0xcb, 0x5b, 0x4d, 0x1b, 0x67, 0xd1, 0xde, 0x3d, 0x23, 0x82, 0xee, 0x48, 0x5b, 0x4f, 0x4, 0x65, 0x23, 0xd6, 0x97, 0x47, 0x99, 0x6a, 0x17, 0x27, 0x47, 0x2c, 0x5a, 0x29, 0x1f, 0xe9, 0xef, 0xfd, 0x63, 0x75, 0x11, 0xed, 0x6, 0xd5, 0x6d, 0xce, 0x8e, 0x7, 0xaf, 0xbc, 0x72, 0xe9, 0xd2, 0x25, 0xd3, 0xd8, 0xfc, 0x25, 0x28, 0x7b, 0x5c, 0x74, 0x1, 0xbe, 0x36, 0xa, 0xf1, 0x93, 0xa5, 0x7f, 0x28, 0x80, 0x6a, 0x2e, 0x27, 0x62, 0x99, 0x42, 0xa8, 0xa1, 0xa9, 0x5a, 0xeb, 0x2f, 0x83, 0xd6, 0x49, 0x8d, 0x54, 0xec, 0x60, 0xf6, 0xcc, 0x3d, 0x48, 0x95, 0x98, 0xe9, 0x6e, 0x2d, 0x7d, 0x73, 0xe, 0xf4, 0x5f, 0xf8, 0x98, 0x42, 0xf1, 0xe8, 0x62, - 0x4f, 0xda, 0x7c, 0x40, 0xa3, 0xce, 0x6f, 0x39, 0x78, 0x8c, 0x7d, 0x1a, 0xec, 0x31, 0xa5, 0x97, 0x9f, 0x4f, 0xef, 0x67, 0x16, 0x11, 0xfb, 0x22, 0x9c, 0xda, 0xd7, 0x81, 0xe6, 0xde, 0xdf, 0x25, 0x7e, 0x1f, 0x30, 0xbc, 0xa9, 0xd3, 0x1a, 0x8b, 0x87, 0xd6, 0x58, 0x4f, 0xf6, 0xe4, 0xad, 0x6c, 0x97, 0x47, 0x3e, 0xbe, 0xc4, 0xe2, 0x87, 0x9e, 0xa2, 0xa6, 0x70, 0x92, 0xd7, 0x4a, 0xe2, 0xb9, 0x4f, 0x61, 0xda, 0xc6, 0x99, 0xc0, 0x79, 0x41, 0x2f, 0xde, 0x44, 0x2c, 0x27, 0x76, 0xd3, 0xa8, 0xeb, 0xd7, 0xaa, 0x5d, 0x57, 0x21, 0x4, 0x8d, 0x76, 0x36, 0x81, 0x32, 0x49, 0x23, 0xbc, 0x57, 0x70, 0xc8, 0xb7, 0x76, 0x5e, 0x24, 0x22, 0xcb, 0x52, 0x91, 0xee, 0xfb, 0x4b, 0x77, 0xfc, 0x1b, 0x13, 0xbf, 0x53, 0x2, 0x29, 0x80, 0xd8, 0x7a, 0xdc, 0x8e, 0xbd, 0x3c, 0x6e, 0x80, 0x5e, 0x4, 0x52, 0x32, 0xea, 0xed, 0x97, 0x52, 0xf1, 0x68, 0xf7, 0xfb, 0x69, 0xff, 0x7c, 0x92, 0x4f, 0xc5, 0xaf, 0xe1, 0xbe, 0x7f, 0xa4, 0x2f, 0xaf, 0x7f, 0x69, 0xf4, 0xc7, 0xff, 0x9a, 0x92, 0x53, 0xe0, 0xb3, 0xd4, 0xbd, 0x23, 0x82, 0xbe, 0xe1, 0xfe, 0x4e, 0x3a, 0x9a, 0xc5, 0x4f, 0x6, 0x59, 0xbe, 0xc4, 0x9f, 0xf, 0x58, 0xf2, 0xad, 0x39, 0xaa, 0x21, 0x41, 0x14, 0x41, 0x64, 0x85, 0x17, 0xfa, 0xea, 0xac, 0x25, 0x70, 0xf6, 0xde, 0x43, 0xec, 0x7c, 0xa6, 0xdb, 0xbf, 0x26, 0xfa, 0x5b, 0xfd, 0xed, 0xa, 0x83, 0xd, 0xa1, 0x7e, 0xea, 0x3e, 0x10, 0x5f, 0xee, 0xba, 0x55, 0xc1, 0xa0, 0xfe, 0x69, 0x7, 0xaa, 0x21, 0xdf, 0xf6, 0xbb, 0x96, 0x6d, 0x5f, 0xca, 0xa3, 0xe2, 0x6f, 0x47, 0x7f, - 0x5b, 0x4e, 0x45, 0x52, 0x6b, 0xcb, 0x2b, 0xfc, 0x9f, 0xb5, 0x7, 0xa6, 0x42, 0x6e, 0x87, 0xe0, 0x8, 0x1a, 0xf1, 0x2d, 0x6e, 0x65, 0xc4, 0xfa, 0xf5, 0x78, 0xbc, 0x4d, 0xad, 0xb6, 0x55, 0xed, 0xee, 0x60, 0xfb, 0x3d, 0x2c, 0x1a, 0xc9, 0xfc, 0xdb, 0xe9, 0xa6, 0x8f, 0xb7, 0x9f, 0xc8, 0x1b, 0x8f, 0x3c, 0x95, 0xfe, 0xf9, 0xc, 0xce, 0xa7, 0x93, 0x92, 0xa3, 0x3, 0x71, 0xa7, 0xf, 0x79, 0x7d, 0x3f, 0x8, 0x6a, 0x83, 0x83, 0x45, 0x9, 0xf3, 0x8c, 0xcb, 0x67, 0x9c, 0xa5, 0xff, 0x36, 0x3d, 0xf0, 0x4d, 0x70, 0x97, 0x50, 0x6, 0xf8, 0xfe, 0x43, 0xc0, 0x52, 0xde, 0x9a, 0x2a, 0x62, 0xeb, 0xb8, 0x2d, 0x15, 0xc8, 0xd6, 0xa3, 0xe9, 0xcc, 0x70, 0xa0, 0xe7, 0x8d, 0x47, 0xed, 0x6f, 0x7c, 0x97, 0xfe, 0x57, 0x71, 0xa, 0x45, 0xca, 0x77, 0xbb, 0x3c, 0x92, 0xdb, 0x39, 0xc1, 0x59, 0xe0, 0x71, 0x4d, 0x70, 0x39, 0x5d, 0x79, 0x79, 0xf2, 0x78, 0x8f, 0x28, 0xe7, 0x39, 0xb, 0x7c, 0x93, 0x7d, 0xf9, 0x6e, 0xab, 0x4c, 0xf4, 0xb0, 0xd7, 0xbc, 0x3c, 0x67, 0xde, 0x39, 0xe3, 0x27, 0xb0, 0xe2, 0x9a, 0x70, 0xe, 0x2d, 0x1e, 0xb7, 0xc7, 0x3e, 0x3f, 0xc9, 0x55, 0x40, 0x4b, 0x1e, 0x2d, 0xa9, 0x3, 0x76, 0x49, 0x77, 0xed, 0x5c, 0x49, 0x9e, 0xe0, 0x99, 0x3c, 0xc1, 0x91, 0x9b, 0x5b, 0xe0, 0xca, 0x91, 0xc5, 0xf1, 0xe7, 0xb8, 0x3d, 0xac, 0x14, 0x78, 0x3c, 0x22, 0x6d, 0x56, 0x7e, 0x7e, 0x11, 0xa5, 0xcf, 0x71, 0xbb, 0xc7, 0x8f, 0xcf, 0x73, 0x8d, 0x73, 0x4f, 0x18, 0x3f, 0xc1, 0x3d, 0x81, 0x9e, 0x3d, 0xc7, 0xe3, 0xa3, 0xaf, 0x79, 0xe3, 0xf3, 0xdc, 0xe7, 0xc8, 0x6e, - 0xb7, 0xcb, 0x5d, 0xe0, 0xa2, 0x2d, 0xcb, 0x2d, 0x90, 0x26, 0xb1, 0x2b, 0x3a, 0xb, 0x9c, 0xee, 0x7c, 0x6f, 0x7e, 0x7e, 0x81, 0x53, 0x72, 0x8e, 0x3b, 0xf9, 0x52, 0xff, 0x1f, 0xc3, 0x4d, 0x47, 0xb3, -} ; + 120, 156, 237, 125, 13, 116, 19, 87, 150, 230, 43, 169, 44, 61, 9, 89, 146, 141, 13, 178, 35, 74, 2, 11, 16, 63, 14, 2, 28, 34, 130, 98, 21, 240, 136, 5, 193, 29, 51, 116, 186, 33, 157, 237, 40, 158, 52, 237, 36, 227, 30, 217, 132, 142, 8, 142, 85, 161, 233, 32, 50, 241, 180, 210, 233, 31, 102, 54, 147, 168, 123, 231, 204, 228, 236, 9, 167, 157, 179, 147, 109, 102, 54, 59, 81, 2, 19, 51, 115, 112, 143, 115, 210, 57, 211, 59, 155, 19, 202, 144, 237, 164, 103, 227, 165, 24, 146, 142, 166, 99, 172, 125, 247, 85, 25, 104, 203, 19, 217, 99, 201, 114, 39, 245, 14, 63, 250, 84, 85, 122, 85, 183, 238, 187, 239, 222, 251, 238, 189, 47, 118, 238, 147, 239, 10, 28, 66, 239, 255, 69, 0, 185, 56, 39, 66, 40, 251, 207, 59, 254, 114, 101, 238, 90, 19, 165, 190, 238, 246, 238, 175, 108, 232, 16, 191, 183, 238, 210, 250, 79, 214, 31, 93, 31, 220, 208, 27, 150, 186, 125, 41, 244, 191, 99, 25, 116, 86, 146, 150, 139, + 233, 220, 56, 66, 82, 85, 166, 70, 50, 190, 241, 212, 55, 69, 201, 248, 90, 213, 192, 15, 114, 78, 241, 199, 225, 1, 233, 104, 247, 174, 135, 14, 175, 235, 16, 119, 53, 29, 11, 195, 111, 60, 182, 225, 192, 134, 122, 218, 219, 218, 219, 92, 13, 71, 110, 185, 240, 224, 170, 63, 83, 123, 187, 173, 251, 239, 214, 94, 235, 105, 30, 122, 41, 252, 127, 247, 159, 145, 208, 192, 63, 228, 56, 233, 229, 23, 140, 63, 91, 75, 127, 201, 32, 253, 175, 174, 125, 27, 254, 140, 126, 251, 166, 246, 45, 220, 227, 190, 13, 175, 209, 111, 254, 153, 126, 195, 191, 98, 252, 217, 190, 13, 94, 138, 126, 153, 51, 116, 255, 141, 244, 178, 20, 16, 127, 73, 191, 143, 176, 239, 47, 210, 239, 199, 232, 247, 93, 146, 145, 254, 207, 73, 223, 160, 223, 238, 237, 230, 164, 47, 209, 255, 127, 190, 127, 104, 127, 123, 247, 79, 105, 31, 237, 221, 94, 73, 222, 127, 184, 123, 225, 134, 254, 13, 127, 27, 78, 207, 219, 123, 233, 168, 229, 160, 120, 105, 205, 83, 79, 242, + 191, 106, 191, 121, 221, 227, 206, 223, 228, 244, 166, 55, 189, 233, 77, 111, 122, 211, 155, 222, 244, 166, 55, 189, 233, 77, 111, 122, 155, 149, 102, 68, 123, 184, 187, 62, 165, 61, 252, 205, 47, 174, 115, 142, 189, 253, 55, 159, 118, 206, 232, 21, 245, 183, 144, 214, 72, 95, 45, 230, 3, 56, 112, 48, 24, 18, 60, 102, 35, 34, 173, 203, 49, 255, 66, 114, 199, 191, 253, 155, 9, 95, 226, 198, 208, 196, 243, 243, 174, 111, 180, 99, 62, 153, 60, 239, 245, 138, 210, 100, 199, 243, 206, 239, 140, 96, 30, 227, 122, 33, 180, 113, 211, 161, 253, 251, 247, 147, 193, 229, 254, 22, 51, 142, 178, 131, 70, 179, 221, 87, 233, 192, 56, 109, 89, 236, 5, 172, 152, 179, 164, 209, 130, 121, 55, 182, 26, 175, 140, 202, 146, 36, 101, 249, 155, 162, 88, 56, 159, 19, 4, 187, 23, 159, 114, 61, 126, 202, 87, 105, 183, 32, 52, 102, 94, 160, 254, 188, 84, 168, 127, 29, 207, 45, 76, 214, 155, 135, 127, 26, 227, 145, 88, 85, 169, 225, 166, 225, 155, 1, + 19, 95, 105, 250, 235, 220, 15, 252, 20, 53, 59, 154, 31, 253, 228, 242, 163, 205, 133, 249, 155, 243, 147, 32, 94, 25, 234, 201, 198, 162, 162, 247, 120, 185, 233, 165, 99, 29, 235, 88, 199, 58, 86, 27, 233, 179, 97, 222, 133, 3, 23, 46, 92, 200, 37, 194, 8, 89, 207, 4, 23, 35, 47, 202, 228, 114, 239, 222, 144, 187, 57, 151, 43, 118, 127, 190, 3, 113, 255, 186, 205, 209, 14, 23, 128, 44, 247, 39, 133, 206, 175, 235, 127, 180, 10, 33, 103, 187, 108, 164, 255, 34, 36, 150, 155, 94, 19, 177, 169, 109, 1, 215, 19, 120, 213, 188, 136, 222, 91, 8, 133, 74, 255, 190, 90, 27, 48, 31, 193, 109, 38, 187, 189, 55, 151, 176, 219, 201, 157, 207, 153, 142, 246, 94, 48, 179, 131, 210, 62, 19, 57, 97, 198, 188, 19, 167, 24, 150, 21, 84, 31, 219, 196, 241, 34, 61, 132, 118, 81, 124, 134, 43, 55, 189, 242, 158, 103, 228, 33, 204, 63, 147, 188, 175, 218, 194, 35, 83, 34, 129, 200, 183, 209, 24, 247, 5, 245, 105, 164, 146, + 244, 183, 25, 243, 94, 60, 196, 64, 34, 17, 42, 120, 62, 220, 207, 105, 13, 208, 59, 42, 55, 189, 242, 238, 111, 112, 21, 216, 27, 79, 244, 88, 120, 3, 223, 155, 64, 214, 254, 53, 92, 79, 58, 99, 158, 71, 249, 209, 118, 246, 108, 209, 251, 243, 189, 180, 27, 27, 182, 200, 199, 96, 229, 19, 101, 165, 187, 11, 142, 223, 248, 206, 225, 176, 102, 92, 212, 34, 20, 41, 55, 189, 76, 182, 6, 11, 125, 143, 235, 134, 206, 217, 145, 60, 72, 233, 87, 73, 237, 55, 31, 246, 194, 49, 37, 30, 47, 200, 15, 115, 29, 51, 126, 229, 17, 226, 138, 252, 123, 90, 203, 147, 31, 195, 199, 27, 57, 36, 191, 2, 221, 73, 254, 118, 152, 79, 126, 8, 212, 172, 55, 31, 158, 198, 239, 239, 211, 6, 251, 84, 206, 31, 249, 2, 204, 87, 109, 241, 120, 48, 228, 22, 4, 7, 105, 228, 253, 100, 29, 14, 100, 100, 89, 78, 167, 164, 175, 147, 19, 141, 152, 63, 153, 100, 198, 143, 237, 217, 230, 26, 50, 242, 159, 0, 159, 63, 235, 91, 86, 109, + 176, 88, 248, 153, 210, 99, 219, 243, 139, 96, 126, 148, 207, 37, 126, 226, 166, 95, 191, 82, 238, 247, 173, 99, 29, 235, 184, 140, 242, 246, 196, 22, 204, 251, 113, 128, 170, 99, 189, 189, 194, 108, 232, 75, 95, 6, 249, 167, 234, 119, 225, 176, 125, 74, 242, 85, 214, 192, 28, 212, 95, 116, 60, 51, 252, 181, 61, 93, 195, 107, 98, 53, 40, 198, 59, 191, 245, 52, 2, 125, 240, 94, 208, 255, 235, 229, 76, 105, 250, 35, 157, 123, 128, 255, 250, 247, 31, 122, 180, 217, 227, 240, 60, 90, 240, 252, 74, 11, 220, 79, 76, 202, 40, 217, 158, 80, 86, 41, 55, 189, 242, 238, 175, 111, 61, 248, 239, 99, 227, 227, 151, 84, 214, 249, 137, 5, 35, 11, 207, 27, 184, 41, 92, 95, 231, 186, 149, 19, 234, 17, 18, 108, 8, 85, 41, 225, 194, 253, 85, 174, 133, 254, 234, 225, 183, 195, 97, 143, 157, 141, 207, 29, 227, 71, 17, 71, 222, 220, 201, 181, 112, 242, 81, 167, 10, 79, 145, 206, 4, 230, 207, 38, 79, 55, 24, 159, 222, 190, 253, 133, + 63, 94, 64, 14, 188, 101, 106, 137, 41, 230, 215, 158, 127, 251, 23, 178, 18, 67, 76, 223, 121, 33, 153, 97, 167, 7, 179, 166, 89, 167, 95, 231, 141, 152, 223, 137, 235, 221, 238, 209, 209, 158, 144, 102, 207, 165, 147, 175, 87, 115, 152, 55, 76, 229, 122, 120, 126, 245, 238, 167, 100, 239, 145, 193, 29, 152, 111, 194, 105, 35, 199, 161, 222, 132, 199, 189, 34, 176, 134, 195, 98, 173, 1, 84, 212, 54, 132, 188, 236, 247, 254, 116, 156, 154, 156, 68, 245, 123, 63, 217, 136, 229, 140, 232, 237, 127, 106, 239, 106, 31, 105, 221, 14, 235, 39, 129, 120, 200, 29, 26, 29, 133, 223, 107, 244, 19, 140, 235, 217, 249, 189, 66, 255, 172, 211, 111, 130, 253, 198, 248, 111, 11, 142, 30, 67, 71, 14, 63, 38, 77, 131, 255, 240, 212, 248, 79, 181, 223, 154, 142, 57, 129, 1, 169, 253, 198, 232, 213, 59, 126, 244, 42, 255, 125, 231, 26, 255, 17, 208, 159, 187, 127, 244, 95, 190, 187, 119, 251, 159, 127, 239, 7, 164, 114, 30, 230, 131, 184, 126, 236, + 228, 201, 95, 200, 178, 162, 242, 223, 203, 229, 227, 63, 29, 235, 88, 199, 58, 214, 241, 103, 3, 179, 249, 104, 217, 56, 226, 138, 238, 175, 38, 157, 43, 49, 47, 82, 251, 41, 20, 106, 22, 0, 55, 58, 49, 111, 195, 82, 104, 145, 199, 225, 112, 152, 233, 252, 123, 59, 243, 7, 202, 178, 156, 201, 100, 36, 170, 207, 172, 0, 253, 166, 13, 201, 10, 213, 182, 138, 208, 255, 200, 2, 208, 231, 30, 73, 167, 159, 251, 206, 29, 17, 236, 191, 179, 99, 151, 5, 33, 167, 33, 10, 202, 18, 226, 219, 248, 3, 6, 206, 240, 196, 227, 8, 137, 20, 74, 195, 65, 50, 210, 237, 39, 117, 56, 230, 243, 38, 207, 100, 98, 138, 84, 238, 247, 163, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 158, 28, 147, 145, 0, 196, 31, 167, 144, 217, 108, 52, 2, 110, 221, 13, 241, 17, 129, 248, 245, 249, 131, 103, 147, 91, 56, 163, 13, 65, 254, 32, 25, 9, 97, 158, + 224, 40, 122, 230, 217, 119, 126, 54, 217, 239, 65, 254, 96, 122, 58, 249, 131, 54, 204, 31, 79, 90, 23, 250, 124, 56, 66, 27, 228, 15, 18, 211, 120, 254, 96, 133, 157, 175, 116, 96, 39, 58, 230, 101, 223, 72, 30, 197, 247, 71, 11, 135, 115, 203, 61, 8, 165, 181, 235, 193, 63, 127, 55, 135, 32, 222, 82, 81, 20, 121, 174, 229, 15, 214, 54, 197, 170, 144, 152, 65, 81, 30, 161, 245, 165, 120, 127, 79, 223, 133, 13, 59, 15, 187, 156, 193, 141, 203, 92, 107, 151, 109, 44, 120, 126, 227, 60, 88, 111, 232, 167, 244, 146, 144, 148, 201, 148, 155, 62, 58, 214, 177, 142, 117, 252, 121, 197, 228, 132, 1, 226, 191, 134, 144, 29, 86, 123, 65, 62, 239, 133, 120, 50, 111, 48, 24, 12, 133, 220, 128, 231, 179, 227, 102, 218, 28, 118, 237, 56, 100, 52, 208, 195, 161, 201, 126, 15, 230, 67, 19, 228, 87, 77, 177, 127, 152, 127, 159, 79, 254, 235, 2, 159, 215, 143, 105, 35, 35, 59, 32, 30, 80, 205, 71, 50, 59, 60, 164, 209, 13, + 247, 35, 50, 156, 29, 29, 99, 249, 94, 207, 39, 219, 93, 22, 142, 135, 198, 250, 19, 212, 223, 146, 104, 43, 55, 61, 117, 172, 227, 114, 98, 50, 114, 23, 196, 223, 15, 109, 162, 227, 211, 227, 113, 32, 210, 103, 132, 250, 4, 146, 28, 139, 199, 179, 138, 92, 252, 254, 58, 239, 246, 147, 8, 238, 15, 250, 105, 91, 113, 227, 74, 114, 224, 240, 7, 3, 107, 221, 21, 8, 5, 253, 171, 86, 173, 240, 147, 198, 70, 208, 215, 37, 56, 55, 163, 100, 227, 164, 113, 9, 196, 151, 88, 67, 110, 183, 59, 52, 58, 247, 226, 159, 117, 172, 99, 29, 235, 248, 243, 138, 73, 231, 106, 208, 183, 100, 80, 6, 221, 130, 96, 39, 173, 141, 16, 223, 62, 148, 85, 16, 82, 148, 120, 188, 232, 253, 245, 237, 5, 125, 110, 201, 158, 136, 24, 137, 120, 125, 11, 239, 239, 223, 93, 133, 16, 174, 175, 58, 12, 1, 249, 246, 122, 45, 158, 254, 22, 118, 242, 201, 56, 213, 15, 87, 131, 127, 71, 74, 70, 88, 59, 83, 110, 122, 233, 88, 199, 58, 214, 177, + 142, 117, 172, 227, 242, 99, 210, 217, 202, 244, 23, 106, 250, 170, 250, 75, 231, 14, 240, 87, 201, 212, 244, 45, 137, 254, 226, 251, 232, 235, 216, 176, 115, 29, 118, 217, 206, 93, 252, 193, 169, 181, 2, 25, 89, 10, 249, 139, 175, 177, 131, 14, 119, 131, 245, 164, 159, 51, 124, 219, 36, 34, 14, 50, 24, 20, 7, 203, 119, 112, 65, 126, 37, 88, 195, 241, 108, 185, 233, 165, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 229, 194, 100, 240, 97, 240, 55, 167, 194, 30, 4, 33, 6, 110, 50, 242, 40, 219, 79, 64, 150, 161, 124, 171, 82, 244, 245, 66, 114, 249, 14, 255, 58, 81, 196, 78, 87, 42, 37, 165, 44, 119, 144, 202, 69, 126, 178, 22, 199, 216, 65, 143, 183, 133, 213, 195, 89, 141, 51, 12, 103, 2, 41, 210, 217, 136, 249, 51, 73, 223, 158, 8, 198, 145, 200, 208, 208, 180, 251, 211, 226, 35, 160, 77, 165, 158, 210, 180, 127, 191, 47, 194, 246, 79, 168, 224, 89, 185, 33, 100, 177, 26, 44, 208, + 213, 243, 40, 227, 117, 150, 228, 125, 173, 103, 249, 248, 102, 132, 114, 72, 1, 251, 219, 4, 239, 79, 45, 151, 99, 119, 56, 242, 206, 127, 235, 231, 31, 12, 236, 114, 195, 71, 217, 253, 118, 249, 249, 45, 239, 254, 42, 235, 33, 62, 177, 13, 248, 143, 225, 145, 13, 224, 63, 136, 82, 99, 189, 68, 253, 25, 96, 125, 62, 211, 51, 250, 255, 46, 126, 188, 255, 80, 130, 12, 38, 192, 127, 16, 5, 250, 244, 223, 19, 125, 88, 227, 63, 137, 157, 44, 83, 254, 131, 245, 124, 130, 163, 241, 120, 48, 24, 204, 42, 114, 185, 233, 165, 99, 29, 235, 248, 179, 131, 73, 167, 17, 226, 135, 234, 131, 46, 205, 127, 218, 184, 15, 228, 97, 32, 24, 44, 209, 250, 239, 229, 175, 99, 195, 142, 243, 24, 251, 35, 145, 8, 246, 251, 181, 245, 223, 128, 182, 254, 123, 23, 147, 127, 183, 224, 126, 118, 50, 172, 255, 118, 117, 99, 225, 221, 156, 69, 48, 37, 233, 249, 24, 151, 155, 94, 58, 46, 50, 63, 116, 126, 9, 243, 33, 220, 22, 100, 109, 22, 250, + 83, 227, 213, 120, 136, 87, 131, 198, 226, 81, 189, 56, 0, 199, 226, 241, 158, 223, 185, 250, 231, 190, 3, 34, 54, 80, 125, 214, 134, 254, 243, 63, 94, 204, 93, 41, 251, 253, 252, 174, 97, 210, 183, 20, 244, 251, 215, 108, 46, 27, 7, 18, 136, 12, 186, 152, 61, 112, 144, 51, 55, 252, 254, 240, 112, 225, 235, 213, 122, 89, 43, 169, 176, 148, 50, 153, 76, 225, 243, 27, 59, 253, 196, 143, 149, 154, 234, 174, 120, 93, 5, 111, 34, 7, 62, 52, 29, 141, 125, 168, 238, 95, 225, 116, 187, 153, 189, 49, 190, 63, 67, 44, 22, 103, 245, 186, 78, 39, 119, 248, 189, 239, 93, 118, 214, 63, 209, 199, 236, 9, 31, 43, 55, 47, 149, 133, 94, 208, 127, 250, 90, 125, 125, 210, 250, 37, 136, 23, 143, 37, 14, 29, 186, 53, 236, 49, 114, 164, 86, 50, 153, 187, 222, 53, 75, 72, 236, 233, 233, 137, 138, 181, 138, 143, 163, 214, 84, 123, 6, 30, 15, 5, 139, 240, 190, 12, 160, 47, 91, 187, 13, 180, 153, 220, 33, 210, 103, 135, 248, 82, + 4, 181, 210, 194, 137, 196, 126, 82, 251, 226, 7, 3, 79, 229, 140, 8, 137, 98, 70, 118, 198, 201, 96, 3, 232, 207, 214, 151, 159, 121, 246, 217, 209, 209, 172, 92, 110, 126, 203, 127, 158, 53, 108, 254, 141, 197, 14, 134, 193, 6, 33, 149, 127, 200, 226, 241, 223, 123, 239, 194, 171, 240, 134, 11, 95, 223, 13, 252, 82, 47, 73, 25, 48, 153, 167, 32, 111, 43, 216, 252, 14, 159, 61, 225, 68, 215, 164, 239, 247, 55, 227, 136, 187, 64, 26, 111, 97, 239, 247, 194, 229, 67, 135, 254, 231, 219, 239, 92, 36, 157, 219, 129, 158, 233, 239, 28, 253, 206, 24, 212, 143, 245, 213, 214, 98, 195, 230, 244, 49, 182, 159, 141, 124, 40, 54, 235, 244, 131, 252, 65, 250, 60, 66, 72, 139, 127, 238, 100, 252, 144, 54, 119, 199, 98, 74, 41, 226, 159, 43, 239, 1, 121, 113, 154, 143, 68, 58, 150, 55, 204, 159, 175, 173, 255, 170, 21, 140, 29, 238, 6, 150, 191, 224, 211, 252, 7, 144, 191, 0, 246, 178, 5, 247, 123, 28, 230, 12, 10, 29, 53, + 147, 19, 127, 0, 247, 231, 165, 71, 149, 108, 214, 85, 126, 254, 107, 93, 12, 254, 150, 20, 138, 82, 114, 197, 98, 101, 191, 159, 185, 142, 235, 92, 157, 28, 146, 195, 156, 80, 47, 220, 182, 57, 171, 197, 51, 30, 79, 146, 20, 138, 68, 120, 159, 105, 65, 177, 251, 219, 150, 58, 200, 245, 164, 198, 32, 188, 161, 13, 38, 168, 23, 255, 186, 107, 113, 245, 78, 31, 236, 63, 227, 244, 154, 236, 34, 185, 92, 141, 77, 91, 211, 199, 172, 254, 142, 14, 250, 10, 211, 37, 231, 151, 19, 22, 45, 158, 1, 217, 237, 130, 123, 218, 250, 210, 182, 84, 128, 234, 251, 99, 11, 23, 245, 72, 72, 78, 211, 223, 219, 191, 11, 31, 190, 253, 54, 140, 171, 171, 145, 47, 218, 81, 242, 252, 128, 13, 17, 168, 55, 57, 150, 179, 36, 235, 144, 1, 85, 33, 50, 18, 129, 122, 211, 43, 155, 154, 156, 213, 213, 6, 84, 114, 251, 130, 197, 167, 212, 96, 250, 228, 72, 86, 98, 241, 224, 204, 127, 111, 158, 159, 172, 192, 43, 157, 24, 7, 123, 31, 105, 55, + 176, 122, 233, 84, 94, 43, 153, 12, 149, 47, 39, 165, 162, 223, 63, 200, 187, 179, 201, 118, 248, 108, 220, 31, 247, 21, 150, 151, 139, 88, 62, 10, 3, 206, 185, 23, 255, 178, 180, 109, 1, 135, 145, 161, 61, 74, 63, 139, 38, 83, 201, 251, 227, 63, 242, 191, 159, 51, 11, 53, 2, 66, 155, 223, 61, 120, 155, 147, 205, 183, 255, 50, 126, 20, 229, 213, 15, 39, 35, 55, 96, 30, 49, 255, 180, 172, 40, 83, 212, 207, 152, 191, 153, 169, 179, 101, 167, 111, 233, 199, 147, 27, 226, 201, 31, 160, 111, 47, 234, 77, 167, 218, 202, 125, 63, 115, 29, 51, 122, 249, 176, 149, 126, 28, 235, 157, 3, 247, 243, 187, 142, 153, 189, 22, 84, 237, 181, 88, 124, 230, 242, 188, 220, 152, 217, 167, 235, 112, 218, 23, 168, 166, 19, 61, 50, 48, 121, 66, 174, 217, 123, 181, 129, 24, 219, 143, 242, 71, 72, 181, 231, 200, 131, 13, 195, 57, 65, 45, 215, 140, 36, 209, 91, 240, 247, 97, 189, 42, 69, 245, 103, 58, 251, 50, 123, 27, 246, 39, 59, 158, + 12, 68, 252, 190, 154, 106, 171, 165, 34, 239, 252, 221, 127, 48, 124, 115, 204, 137, 196, 140, 136, 188, 78, 169, 99, 230, 239, 235, 206, 241, 252, 68, 40, 224, 49, 99, 255, 38, 25, 188, 139, 229, 55, 6, 67, 33, 193, 227, 48, 82, 253, 200, 167, 218, 31, 14, 143, 48, 54, 54, 90, 2, 126, 179, 97, 62, 147, 92, 178, 204, 231, 85, 235, 151, 64, 254, 180, 87, 219, 191, 3, 242, 167, 251, 118, 248, 201, 98, 172, 48, 28, 180, 157, 39, 125, 7, 48, 223, 159, 92, 82, 135, 121, 158, 206, 62, 188, 181, 127, 205, 112, 226, 181, 140, 153, 135, 87, 118, 246, 244, 140, 247, 131, 155, 57, 253, 162, 96, 239, 70, 183, 126, 114, 37, 236, 49, 35, 180, 34, 112, 128, 83, 179, 191, 185, 140, 243, 191, 119, 26, 139, 221, 223, 194, 36, 172, 143, 202, 185, 132, 49, 72, 233, 3, 253, 47, 247, 155, 205, 227, 235, 191, 30, 142, 249, 159, 3, 234, 126, 136, 72, 118, 225, 109, 29, 134, 225, 92, 46, 236, 67, 94, 216, 46, 51, 145, 40, 55, 189, 242, + 232, 215, 122, 47, 232, 147, 50, 125, 152, 112, 216, 161, 217, 247, 148, 31, 213, 108, 219, 18, 244, 7, 251, 219, 164, 146, 247, 45, 169, 194, 60, 171, 223, 3, 242, 225, 164, 38, 29, 194, 225, 144, 233, 73, 158, 237, 47, 41, 211, 107, 50, 244, 90, 210, 183, 11, 230, 231, 243, 8, 101, 210, 169, 51, 247, 21, 212, 23, 103, 159, 126, 55, 168, 245, 136, 168, 58, 27, 14, 83, 252, 209, 105, 83, 75, 236, 67, 243, 234, 213, 61, 144, 62, 93, 252, 254, 42, 59, 65, 31, 22, 67, 148, 247, 140, 70, 163, 170, 79, 191, 124, 157, 255, 0, 198, 239, 90, 102, 31, 32, 20, 192, 167, 201, 8, 130, 247, 41, 135, 220, 161, 108, 86, 201, 206, 57, 255, 52, 227, 135, 76, 242, 9, 182, 223, 17, 101, 3, 254, 208, 87, 57, 52, 230, 30, 232, 106, 67, 38, 228, 197, 134, 226, 247, 199, 131, 191, 167, 158, 141, 198, 120, 40, 143, 30, 164, 243, 32, 140, 7, 137, 129, 168, 34, 147, 3, 255, 96, 26, 136, 141, 154, 37, 73, 122, 246, 217, 148, 115, 206, + 233, 135, 100, 196, 7, 243, 81, 38, 24, 12, 170, 254, 191, 193, 149, 160, 159, 193, 253, 103, 193, 191, 86, 124, 126, 95, 192, 246, 223, 10, 2, 240, 132, 195, 252, 75, 187, 171, 232, 120, 221, 198, 54, 251, 202, 60, 214, 202, 248, 111, 139, 230, 191, 2, 254, 171, 20, 152, 189, 207, 242, 247, 179, 115, 208, 127, 90, 185, 134, 197, 15, 209, 233, 215, 65, 167, 95, 149, 126, 77, 236, 254, 229, 108, 182, 20, 250, 30, 171, 95, 210, 238, 243, 193, 2, 230, 237, 243, 152, 252, 123, 64, 147, 127, 227, 243, 239, 90, 124, 203, 85, 250, 141, 244, 176, 253, 53, 4, 193, 46, 8, 163, 163, 115, 174, 254, 1, 219, 15, 90, 196, 41, 120, 130, 68, 66, 171, 167, 118, 58, 25, 245, 246, 43, 241, 146, 208, 15, 246, 251, 74, 38, 119, 88, 44, 84, 25, 49, 24, 184, 218, 23, 218, 88, 188, 146, 203, 216, 253, 58, 122, 232, 150, 73, 244, 197, 58, 152, 111, 150, 32, 88, 240, 16, 11, 235, 151, 179, 175, 47, 215, 179, 253, 243, 60, 205, 161, 80, 24, 252, + 207, 48, 94, 68, 28, 80, 226, 193, 32, 21, 216, 37, 120, 95, 191, 199, 214, 43, 67, 212, 214, 104, 246, 56, 28, 108, 254, 120, 38, 111, 254, 136, 50, 60, 62, 126, 233, 253, 208, 241, 27, 234, 153, 131, 241, 67, 204, 127, 79, 229, 11, 125, 28, 32, 31, 125, 223, 155, 216, 122, 136, 192, 164, 77, 41, 248, 253, 17, 246, 251, 140, 92, 225, 112, 16, 246, 143, 111, 137, 125, 160, 174, 191, 213, 185, 140, 90, 252, 149, 200, 112, 38, 112, 156, 197, 71, 96, 156, 138, 135, 220, 194, 59, 239, 216, 133, 114, 211, 171, 220, 120, 162, 189, 251, 89, 179, 127, 75, 78, 191, 190, 85, 108, 61, 18, 230, 95, 22, 239, 170, 250, 131, 163, 204, 29, 92, 4, 127, 240, 236, 63, 207, 66, 255, 233, 5, 216, 106, 54, 104, 184, 113, 5, 155, 127, 153, 179, 178, 20, 253, 53, 114, 32, 47, 98, 70, 71, 184, 55, 222, 211, 236, 97, 243, 111, 96, 252, 40, 226, 248, 77, 27, 185, 163, 93, 174, 1, 240, 78, 208, 1, 60, 204, 246, 131, 245, 226, 33, 109, 63, + 88, 105, 218, 253, 93, 23, 191, 11, 94, 144, 114, 211, 123, 166, 120, 85, 100, 239, 112, 88, 64, 82, 211, 79, 214, 32, 228, 255, 222, 151, 11, 207, 215, 91, 217, 122, 180, 2, 202, 168, 60, 58, 90, 238, 251, 207, 231, 63, 59, 188, 223, 126, 202, 13, 197, 249, 61, 120, 223, 106, 49, 87, 110, 178, 120, 109, 114, 98, 9, 172, 127, 236, 88, 87, 87, 105, 68, 156, 217, 194, 234, 149, 4, 176, 198, 129, 177, 158, 188, 243, 43, 111, 85, 215, 123, 37, 86, 46, 54, 83, 110, 122, 77, 196, 190, 239, 223, 235, 95, 183, 37, 141, 41, 107, 203, 198, 44, 71, 233, 121, 23, 179, 71, 100, 5, 118, 128, 43, 193, 251, 58, 33, 0, 61, 50, 136, 167, 250, 48, 213, 216, 201, 72, 228, 106, 189, 48, 65, 240, 228, 199, 143, 119, 54, 12, 159, 171, 80, 221, 139, 83, 241, 47, 206, 58, 255, 141, 52, 128, 255, 114, 75, 181, 203, 98, 3, 3, 152, 244, 125, 197, 79, 172, 88, 241, 152, 233, 221, 58, 205, 226, 2, 230, 47, 69, 232, 136, 180, 245, 207, + 65, 201, 120, 99, 232, 27, 176, 254, 249, 49, 4, 168, 128, 19, 158, 244, 121, 64, 95, 11, 80, 93, 155, 51, 242, 202, 99, 164, 239, 78, 230, 15, 139, 197, 232, 11, 200, 72, 147, 244, 199, 252, 127, 1, 159, 207, 231, 245, 250, 124, 53, 76, 191, 131, 250, 200, 156, 209, 236, 16, 4, 55, 227, 223, 61, 28, 202, 229, 148, 12, 10, 39, 18, 44, 255, 252, 100, 178, 189, 202, 233, 116, 138, 145, 213, 107, 72, 35, 98, 252, 122, 73, 129, 217, 58, 40, 145, 62, 30, 252, 15, 79, 128, 174, 21, 206, 184, 47, 147, 74, 86, 79, 89, 29, 1, 210, 230, 31, 177, 235, 159, 79, 158, 79, 167, 82, 78, 145, 182, 137, 247, 243, 226, 95, 45, 163, 246, 99, 218, 128, 110, 3, 180, 233, 245, 133, 201, 13, 204, 191, 246, 39, 172, 70, 99, 127, 65, 127, 89, 161, 253, 7, 139, 255, 190, 62, 91, 251, 15, 146, 202, 27, 85, 127, 82, 200, 189, 136, 154, 243, 148, 158, 22, 198, 15, 118, 33, 52, 154, 149, 75, 64, 191, 143, 126, 243, 193, 192, 102, 183, + 1, 170, 255, 173, 106, 240, 249, 180, 248, 221, 254, 167, 190, 165, 197, 239, 170, 246, 199, 53, 255, 51, 228, 127, 44, 118, 243, 212, 252, 29, 11, 186, 71, 231, 156, 254, 60, 177, 254, 184, 239, 166, 157, 92, 75, 204, 173, 10, 156, 143, 63, 41, 193, 254, 155, 147, 212, 31, 55, 143, 215, 31, 55, 219, 125, 119, 210, 241, 52, 54, 111, 128, 225, 24, 255, 155, 114, 211, 167, 240, 243, 108, 101, 241, 96, 110, 183, 27, 121, 18, 148, 255, 90, 35, 108, 60, 59, 60, 205, 163, 89, 42, 130, 138, 207, 239, 247, 128, 124, 202, 120, 65, 250, 65, 131, 253, 188, 69, 249, 24, 75, 64, 202, 74, 95, 96, 252, 183, 121, 220, 254, 181, 189, 70, 70, 22, 193, 254, 230, 214, 42, 11, 43, 31, 203, 214, 63, 114, 169, 140, 217, 200, 214, 63, 206, 150, 127, 253, 67, 139, 255, 163, 178, 56, 71, 201, 55, 238, 191, 146, 16, 196, 135, 149, 194, 255, 7, 241, 253, 103, 146, 222, 8, 8, 243, 150, 22, 53, 255, 45, 168, 141, 215, 176, 120, 7, 163, 95, 157, 70, + 63, 197, 198, 147, 151, 94, 180, 30, 237, 117, 171, 23, 103, 2, 169, 114, 211, 107, 82, 249, 71, 245, 137, 144, 219, 157, 200, 243, 159, 142, 149, 160, 63, 77, 254, 121, 33, 120, 188, 97, 249, 114, 50, 242, 135, 96, 191, 137, 236, 160, 123, 18, 127, 52, 232, 135, 199, 147, 63, 102, 64, 118, 205, 185, 252, 5, 210, 186, 22, 232, 23, 165, 234, 64, 40, 204, 230, 223, 157, 160, 47, 176, 217, 48, 99, 8, 149, 96, 254, 237, 134, 120, 200, 91, 150, 137, 145, 182, 55, 47, 95, 74, 177, 245, 75, 124, 109, 253, 146, 197, 147, 138, 105, 117, 60, 203, 135, 206, 147, 19, 191, 143, 249, 39, 147, 247, 57, 204, 102, 227, 40, 202, 160, 193, 15, 191, 12, 250, 212, 192, 2, 216, 76, 128, 42, 8, 101, 167, 223, 139, 59, 177, 224, 22, 120, 161, 26, 172, 121, 55, 34, 7, 100, 182, 126, 84, 1, 194, 198, 96, 44, 120, 125, 93, 255, 26, 14, 75, 156, 65, 164, 159, 157, 98, 245, 235, 133, 249, 239, 125, 200, 167, 84, 249, 111, 57, 240, 31, 203, 95, + 104, 99, 7, 93, 161, 144, 182, 158, 41, 51, 108, 52, 27, 201, 75, 71, 33, 30, 218, 192, 132, 223, 40, 159, 103, 127, 252, 182, 125, 91, 124, 125, 161, 240, 252, 113, 35, 236, 47, 237, 116, 187, 5, 129, 249, 159, 225, 126, 158, 212, 238, 70, 42, 126, 127, 11, 59, 130, 195, 185, 4, 147, 254, 187, 16, 253, 227, 251, 254, 55, 184, 1, 14, 29, 85, 231, 143, 43, 65, 214, 255, 59, 227, 228, 152, 125, 122, 76, 23, 251, 238, 252, 10, 54, 16, 249, 24, 54, 60, 22, 149, 47, 12, 171, 249, 165, 1, 220, 150, 97, 163, 163, 248, 247, 127, 211, 25, 227, 112, 46, 231, 0, 226, 96, 100, 114, 210, 249, 171, 82, 141, 39, 202, 142, 246, 122, 232, 32, 173, 235, 127, 20, 226, 67, 12, 199, 140, 204, 3, 35, 178, 251, 233, 79, 198, 36, 36, 138, 147, 217, 15, 229, 198, 218, 248, 25, 10, 193, 232, 133, 250, 247, 125, 8, 214, 39, 72, 146, 44, 169, 194, 166, 41, 92, 15, 252, 130, 213, 207, 83, 138, 215, 215, 198, 175, 111, 217, 154, 53, 107, + 86, 45, 246, 154, 62, 88, 106, 65, 210, 227, 170, 255, 224, 237, 127, 164, 247, 19, 190, 106, 15, 35, 135, 167, 151, 52, 114, 160, 207, 196, 226, 138, 28, 21, 69, 175, 179, 220, 244, 202, 31, 191, 141, 44, 127, 58, 30, 7, 115, 114, 22, 250, 3, 253, 37, 165, 233, 47, 180, 21, 210, 95, 202, 77, 159, 194, 250, 31, 102, 246, 218, 166, 112, 216, 227, 1, 253, 5, 236, 115, 130, 189, 255, 227, 149, 231, 168, 65, 60, 133, 235, 7, 131, 152, 151, 240, 91, 212, 84, 102, 123, 48, 20, 230, 247, 5, 160, 143, 252, 107, 202, 217, 182, 107, 243, 246, 237, 243, 216, 122, 135, 150, 255, 134, 100, 41, 79, 191, 35, 39, 16, 232, 139, 75, 144, 188, 118, 109, 213, 222, 237, 15, 46, 61, 254, 224, 240, 57, 182, 90, 34, 152, 106, 188, 94, 145, 116, 54, 248, 91, 182, 178, 120, 66, 4, 1, 221, 179, 78, 63, 117, 253, 173, 62, 28, 14, 55, 11, 215, 205, 191, 223, 62, 82, 170, 249, 247, 58, 253, 111, 197, 138, 85, 191, 165, 255, 169, 243, 239, 175, + 18, 11, 5, 117, 70, 53, 154, 28, 76, 62, 124, 131, 131, 92, 155, 196, 199, 239, 189, 55, 80, 110, 126, 203, 215, 255, 62, 125, 255, 173, 194, 244, 255, 124, 239, 191, 69, 238, 252, 161, 117, 32, 225, 54, 82, 225, 183, 233, 214, 222, 132, 22, 63, 164, 152, 67, 77, 89, 48, 127, 75, 35, 255, 206, 38, 189, 170, 249, 182, 61, 162, 229, 11, 50, 253, 47, 22, 143, 229, 229, 95, 145, 65, 12, 227, 247, 48, 124, 150, 131, 201, 57, 24, 127, 85, 4, 254, 235, 79, 62, 80, 44, 254, 99, 241, 115, 127, 149, 220, 129, 56, 3, 143, 135, 95, 149, 89, 190, 155, 11, 15, 133, 55, 82, 226, 198, 52, 254, 187, 235, 26, 255, 145, 190, 69, 234, 126, 58, 138, 2, 34, 56, 79, 191, 46, 57, 253, 198, 249, 109, 245, 117, 254, 63, 27, 246, 10, 66, 207, 168, 82, 42, 255, 31, 213, 95, 252, 43, 86, 173, 2, 255, 95, 173, 109, 17, 135, 253, 84, 217, 51, 163, 95, 211, 9, 216, 196, 232, 231, 84, 231, 19, 161, 185, 39, 75, 26, 247, 192, 251, + 60, 172, 200, 162, 120, 252, 116, 180, 186, 220, 252, 150, 247, 60, 144, 111, 25, 192, 177, 112, 79, 60, 14, 1, 148, 90, 252, 98, 0, 93, 57, 151, 67, 111, 95, 201, 21, 95, 223, 92, 10, 246, 245, 22, 22, 112, 106, 180, 121, 201, 200, 35, 126, 178, 68, 165, 87, 184, 37, 17, 99, 227, 245, 100, 82, 2, 44, 7, 146, 247, 145, 145, 131, 204, 95, 31, 18, 224, 141, 206, 193, 248, 171, 59, 127, 248, 47, 119, 36, 220, 38, 35, 109, 185, 131, 64, 207, 37, 126, 194, 97, 25, 246, 102, 130, 5, 180, 98, 247, 183, 235, 152, 1, 116, 13, 251, 149, 173, 127, 154, 241, 74, 200, 84, 247, 139, 101, 180, 23, 161, 70, 112, 35, 209, 137, 196, 68, 93, 124, 231, 112, 66, 173, 70, 132, 106, 17, 74, 154, 164, 107, 246, 36, 202, 204, 254, 248, 44, 44, 191, 62, 125, 255, 173, 130, 215, 127, 206, 247, 223, 34, 39, 88, 60, 104, 32, 30, 135, 124, 95, 120, 190, 149, 224, 79, 77, 81, 98, 10, 118, 187, 189, 4, 243, 85, 2, 243, 17, 250, 126, + 28, 118, 65, 112, 135, 130, 228, 166, 35, 214, 150, 94, 183, 26, 0, 104, 168, 48, 147, 198, 135, 192, 126, 220, 205, 112, 70, 142, 50, 125, 59, 153, 124, 32, 45, 165, 156, 98, 36, 226, 47, 55, 189, 38, 213, 39, 2, 26, 253, 100, 132, 76, 182, 249, 156, 193, 130, 98, 104, 232, 226, 212, 174, 31, 167, 55, 56, 112, 166, 64, 111, 114, 98, 11, 235, 207, 1, 139, 149, 33, 74, 191, 55, 247, 85, 161, 152, 235, 40, 59, 104, 52, 155, 153, 253, 235, 210, 252, 89, 167, 78, 189, 71, 62, 250, 185, 169, 165, 235, 3, 243, 123, 127, 249, 147, 191, 253, 234, 221, 119, 239, 212, 232, 121, 62, 197, 200, 137, 253, 96, 127, 144, 213, 218, 252, 29, 245, 166, 103, 157, 126, 35, 221, 44, 223, 195, 19, 10, 81, 18, 130, 252, 219, 13, 254, 144, 116, 70, 86, 226, 33, 161, 4, 252, 215, 87, 9, 254, 0, 57, 21, 89, 106, 172, 194, 54, 251, 253, 193, 174, 225, 139, 189, 238, 22, 132, 54, 51, 138, 49, 254, 244, 106, 249, 12, 14, 79, 51, 105, 173, + 103, 245, 209, 33, 246, 79, 206, 72, 115, 79, 254, 13, 110, 98, 250, 74, 144, 82, 79, 81, 162, 106, 62, 144, 11, 226, 237, 216, 0, 46, 1, 253, 88, 127, 136, 74, 87, 198, 129, 172, 126, 29, 228, 79, 128, 192, 165, 115, 24, 105, 60, 232, 55, 223, 172, 250, 95, 36, 42, 225, 216, 126, 56, 199, 147, 237, 34, 242, 122, 233, 16, 142, 148, 155, 94, 249, 242, 136, 141, 167, 122, 132, 2, 106, 252, 120, 235, 60, 134, 149, 120, 207, 216, 88, 41, 214, 63, 32, 63, 108, 5, 246, 250, 170, 171, 45, 212, 192, 230, 216, 250, 219, 120, 253, 135, 236, 99, 95, 32, 212, 126, 227, 51, 73, 162, 94, 204, 113, 76, 30, 246, 39, 231, 51, 122, 138, 82, 217, 245, 23, 210, 184, 140, 249, 43, 175, 214, 251, 187, 220, 225, 255, 238, 86, 177, 195, 197, 170, 1, 249, 151, 79, 60, 127, 243, 83, 1, 150, 239, 182, 216, 128, 144, 232, 181, 205, 184, 127, 179, 18, 93, 76, 88, 240, 125, 77, 198, 143, 92, 237, 27, 58, 108, 24, 103, 230, 45, 206, 74, 24, + 217, 42, 68, 115, 233, 229, 213, 10, 45, 95, 8, 210, 117, 130, 65, 107, 255, 3, 92, 79, 63, 157, 190, 122, 210, 84, 107, 58, 87, 240, 122, 19, 139, 103, 25, 107, 89, 4, 30, 116, 144, 119, 176, 191, 159, 27, 75, 116, 52, 53, 135, 226, 89, 133, 233, 7, 252, 212, 245, 145, 233, 243, 251, 122, 240, 255, 177, 245, 52, 206, 96, 200, 243, 239, 145, 145, 133, 80, 143, 227, 117, 179, 113, 158, 177, 218, 224, 227, 73, 103, 179, 166, 31, 128, 252, 203, 95, 47, 98, 247, 155, 252, 143, 223, 47, 57, 65, 229, 237, 25, 252, 37, 6, 56, 42, 63, 58, 13, 224, 191, 19, 17, 228, 23, 78, 210, 223, 165, 191, 103, 254, 138, 92, 5, 247, 218, 77, 128, 205, 193, 61, 195, 225, 216, 187, 9, 40, 231, 128, 162, 255, 244, 67, 118, 63, 182, 210, 209, 111, 105, 199, 252, 197, 200, 139, 228, 92, 206, 195, 163, 209, 209, 209, 138, 7, 230, 211, 251, 193, 139, 157, 78, 43, 139, 121, 25, 239, 95, 109, 146, 196, 244, 103, 77, 223, 43, 134, 254, 204, 236, + 131, 141, 170, 189, 243, 216, 171, 230, 25, 243, 59, 203, 63, 74, 38, 125, 213, 84, 109, 134, 69, 75, 210, 232, 209, 226, 135, 32, 122, 168, 20, 227, 71, 212, 234, 25, 192, 146, 105, 176, 96, 62, 22, 57, 17, 1, 253, 40, 198, 22, 135, 233, 20, 87, 110, 249, 55, 215, 176, 239, 251, 137, 225, 135, 17, 26, 112, 74, 94, 5, 220, 202, 190, 183, 110, 174, 66, 99, 55, 80, 125, 38, 129, 28, 83, 184, 158, 241, 235, 135, 240, 105, 118, 234, 97, 177, 250, 176, 77, 216, 26, 87, 52, 172, 198, 223, 49, 255, 183, 93, 8, 21, 189, 94, 226, 103, 29, 243, 111, 109, 226, 12, 73, 201, 128, 196, 1, 102, 67, 241, 123, 187, 22, 87, 179, 35, 226, 182, 64, 9, 250, 251, 172, 237, 63, 72, 70, 234, 89, 254, 69, 34, 17, 131, 70, 159, 111, 55, 171, 231, 4, 182, 92, 73, 250, 3, 123, 241, 100, 178, 191, 13, 90, 36, 114, 199, 253, 123, 208, 112, 34, 230, 66, 49, 86, 2, 186, 249, 101, 210, 185, 11, 232, 197, 244, 61, 36, 165, 135, 152, + 127, 250, 120, 242, 252, 16, 84, 239, 140, 136, 211, 174, 159, 93, 114, 250, 173, 55, 211, 251, 231, 145, 232, 84, 39, 189, 218, 157, 189, 44, 31, 45, 105, 68, 209, 48, 66, 223, 44, 122, 127, 64, 143, 231, 147, 71, 220, 17, 96, 64, 219, 154, 137, 251, 71, 145, 145, 245, 224, 255, 81, 237, 95, 165, 248, 249, 99, 165, 30, 191, 164, 242, 203, 48, 255, 42, 217, 172, 90, 208, 115, 150, 198, 111, 224, 234, 248, 133, 245, 204, 141, 215, 213, 143, 189, 124, 43, 62, 188, 57, 131, 81, 22, 10, 104, 7, 231, 92, 253, 161, 137, 252, 199, 214, 51, 196, 210, 141, 223, 207, 218, 254, 101, 44, 254, 254, 76, 242, 188, 193, 106, 173, 180, 153, 140, 232, 126, 215, 61, 28, 138, 241, 71, 57, 240, 135, 100, 54, 22, 221, 158, 34, 173, 187, 88, 190, 62, 148, 159, 52, 116, 119, 117, 177, 248, 165, 0, 140, 87, 230, 111, 180, 79, 60, 127, 105, 112, 227, 240, 57, 129, 54, 12, 234, 245, 208, 156, 211, 255, 88, 61, 22, 42, 111, 60, 106, 6, 164, 58, 255, + 178, 145, 44, 110, 243, 150, 164, 191, 223, 30, 191, 164, 175, 133, 249, 3, 61, 80, 76, 194, 19, 14, 179, 227, 39, 147, 190, 116, 42, 19, 241, 166, 229, 119, 89, 61, 199, 38, 28, 205, 66, 120, 73, 96, 230, 235, 187, 117, 123, 182, 115, 2, 22, 88, 188, 97, 13, 66, 109, 75, 159, 95, 196, 236, 161, 115, 247, 12, 219, 81, 46, 247, 202, 244, 229, 249, 55, 213, 248, 131, 77, 170, 188, 43, 185, 254, 2, 246, 196, 217, 100, 191, 234, 174, 88, 214, 80, 219, 180, 179, 10, 137, 212, 116, 228, 165, 49, 132, 254, 155, 137, 197, 35, 52, 105, 241, 24, 224, 95, 189, 28, 29, 14, 119, 81, 249, 162, 94, 48, 7, 245, 151, 253, 76, 127, 238, 237, 157, 60, 255, 103, 218, 191, 7, 246, 192, 141, 215, 234, 21, 229, 191, 175, 27, 193, 31, 53, 84, 67, 155, 179, 186, 250, 17, 86, 127, 186, 70, 163, 151, 199, 227, 102, 245, 103, 50, 172, 158, 44, 236, 159, 113, 67, 81, 238, 7, 143, 35, 52, 237, 124, 2, 118, 189, 225, 223, 191, 158, 140, 4, + 217, 248, 128, 244, 188, 96, 40, 63, 254, 184, 248, 250, 139, 74, 191, 106, 104, 206, 154, 15, 41, 191, 65, 188, 149, 162, 116, 248, 87, 243, 53, 53, 69, 175, 127, 57, 17, 155, 98, 183, 131, 255, 233, 225, 69, 106, 134, 206, 140, 235, 205, 146, 253, 123, 168, 126, 32, 118, 184, 180, 2, 228, 100, 125, 211, 240, 195, 49, 8, 92, 108, 42, 13, 253, 94, 172, 195, 194, 175, 207, 93, 200, 213, 174, 15, 174, 246, 175, 240, 47, 112, 66, 60, 115, 234, 85, 9, 45, 64, 47, 27, 149, 175, 147, 167, 109, 85, 168, 119, 81, 11, 227, 223, 96, 80, 33, 35, 247, 250, 73, 3, 238, 7, 231, 189, 232, 117, 38, 203, 61, 94, 243, 158, 231, 114, 59, 54, 108, 110, 194, 124, 76, 181, 63, 74, 221, 223, 66, 255, 62, 181, 126, 83, 53, 138, 217, 232, 159, 107, 242, 15, 61, 100, 64, 123, 230, 92, 124, 85, 33, 204, 255, 181, 90, 167, 209, 187, 174, 141, 219, 75, 255, 175, 253, 226, 2, 238, 240, 14, 31, 138, 126, 113, 211, 67, 137, 95, 59, 11, 231, + 207, 157, 120, 136, 249, 187, 180, 116, 235, 169, 205, 31, 79, 38, 219, 97, 50, 192, 152, 55, 170, 244, 139, 2, 253, 232, 252, 177, 223, 68, 58, 217, 252, 145, 102, 39, 211, 1, 193, 206, 127, 57, 249, 99, 237, 252, 83, 87, 245, 105, 117, 188, 100, 175, 209, 95, 100, 243, 79, 185, 233, 199, 244, 103, 63, 110, 155, 42, 61, 254, 67, 243, 239, 167, 208, 111, 34, 61, 38, 210, 171, 220, 252, 150, 247, 60, 176, 255, 17, 190, 182, 255, 145, 86, 159, 215, 227, 233, 9, 32, 217, 91, 10, 121, 49, 187, 251, 111, 149, 26, 223, 207, 232, 133, 208, 83, 223, 170, 138, 176, 122, 134, 79, 247, 215, 163, 148, 148, 225, 148, 116, 73, 250, 35, 35, 55, 179, 249, 22, 99, 236, 247, 251, 124, 13, 26, 63, 170, 227, 211, 108, 116, 48, 250, 237, 28, 167, 159, 55, 165, 197, 123, 60, 209, 1, 249, 114, 94, 52, 99, 253, 111, 243, 222, 123, 224, 49, 229, 176, 64, 121, 133, 14, 187, 25, 143, 223, 201, 252, 127, 154, 253, 49, 139, 254, 191, 171, 254, 131, 165, + 241, 71, 57, 106, 13, 92, 60, 199, 9, 78, 206, 127, 166, 228, 254, 3, 211, 147, 27, 88, 189, 60, 6, 228, 139, 211, 127, 158, 245, 205, 156, 153, 147, 255, 169, 42, 188, 145, 225, 175, 1, 63, 74, 184, 214, 41, 178, 242, 218, 165, 226, 191, 152, 202, 127, 222, 134, 137, 242, 47, 95, 95, 116, 95, 173, 183, 35, 211, 86, 238, 241, 58, 169, 252, 187, 126, 255, 55, 152, 63, 192, 127, 90, 170, 249, 3, 226, 13, 157, 184, 63, 30, 227, 28, 158, 230, 96, 243, 85, 254, 51, 104, 254, 43, 136, 103, 105, 189, 58, 126, 157, 100, 208, 197, 242, 27, 149, 152, 2, 225, 196, 211, 238, 111, 5, 126, 112, 248, 156, 135, 91, 9, 245, 43, 81, 46, 113, 174, 248, 252, 192, 242, 103, 82, 90, 248, 90, 233, 223, 23, 200, 187, 103, 146, 10, 139, 191, 127, 255, 212, 41, 210, 247, 85, 63, 111, 214, 242, 23, 60, 158, 224, 224, 234, 131, 28, 191, 7, 33, 54, 161, 72, 25, 180, 189, 191, 99, 56, 241, 230, 171, 102, 117, 117, 19, 61, 89, 110, 126, 203, + 159, 15, 9, 215, 66, 5, 78, 85, 80, 197, 181, 182, 251, 153, 255, 25, 27, 37, 122, 206, 13, 69, 215, 167, 62, 107, 251, 111, 145, 221, 91, 40, 253, 80, 75, 149, 28, 101, 152, 255, 196, 204, 252, 127, 93, 59, 209, 31, 151, 100, 191, 77, 200, 95, 173, 199, 253, 203, 111, 191, 125, 235, 27, 151, 134, 37, 182, 31, 130, 168, 229, 175, 10, 158, 112, 254, 124, 211, 13, 241, 10, 237, 18, 36, 192, 121, 189, 115, 46, 127, 122, 156, 223, 92, 70, 244, 144, 17, 57, 11, 230, 191, 228, 211, 99, 3, 243, 223, 40, 74, 108, 106, 231, 119, 50, 127, 193, 45, 194, 234, 198, 21, 254, 142, 136, 72, 250, 150, 95, 139, 63, 117, 56, 60, 100, 240, 128, 90, 31, 6, 154, 253, 185, 231, 152, 255, 99, 7, 135, 94, 201, 125, 114, 249, 242, 165, 75, 247, 146, 155, 254, 174, 30, 245, 186, 13, 16, 124, 10, 4, 157, 43, 244, 195, 42, 253, 178, 87, 227, 39, 209, 21, 123, 41, 250, 99, 251, 181, 216, 112, 58, 28, 246, 56, 60, 225, 91, 227, 116, 188, + 94, 203, 23, 140, 198, 14, 146, 198, 16, 248, 7, 143, 48, 28, 63, 233, 36, 39, 60, 16, 175, 149, 134, 244, 8, 41, 51, 247, 248, 239, 223, 29, 191, 109, 37, 26, 191, 7, 82, 191, 76, 116, 41, 230, 208, 93, 95, 217, 253, 198, 27, 82, 154, 84, 122, 96, 190, 77, 55, 213, 84, 91, 113, 85, 85, 211, 164, 227, 55, 13, 227, 87, 132, 16, 192, 25, 211, 207, 180, 122, 179, 170, 239, 101, 70, 29, 72, 206, 229, 173, 23, 76, 23, 223, 168, 217, 31, 71, 48, 226, 222, 164, 255, 111, 83, 8, 215, 35, 67, 60, 23, 170, 154, 202, 126, 17, 211, 166, 31, 196, 255, 89, 177, 213, 231, 172, 182, 240, 6, 67, 88, 171, 191, 241, 43, 53, 254, 79, 178, 179, 249, 99, 179, 230, 63, 144, 93, 152, 233, 51, 219, 180, 120, 74, 49, 218, 95, 110, 126, 171, 101, 245, 151, 104, 227, 185, 214, 109, 240, 60, 80, 127, 170, 9, 71, 221, 208, 4, 135, 99, 239, 153, 125, 139, 89, 116, 28, 207, 206, 18, 181, 120, 55, 143, 27, 244, 135, 34, 208, 147, + 233, 75, 103, 147, 237, 53, 53, 53, 247, 189, 255, 254, 125, 53, 181, 31, 44, 230, 152, 246, 98, 110, 27, 67, 209, 77, 37, 247, 159, 176, 249, 74, 173, 87, 102, 116, 56, 4, 55, 105, 92, 48, 190, 222, 204, 2, 166, 10, 203, 187, 249, 28, 142, 178, 124, 159, 110, 112, 75, 143, 251, 227, 114, 60, 138, 186, 144, 104, 43, 245, 253, 87, 172, 220, 199, 226, 213, 178, 8, 61, 110, 64, 1, 171, 249, 136, 228, 201, 86, 34, 180, 250, 239, 41, 207, 167, 126, 90, 244, 122, 211, 249, 243, 87, 163, 182, 222, 135, 2, 144, 17, 54, 237, 241, 239, 12, 1, 63, 221, 204, 248, 233, 86, 144, 231, 243, 65, 159, 149, 44, 22, 174, 162, 210, 209, 92, 242, 250, 122, 108, 63, 128, 179, 201, 37, 28, 199, 209, 225, 203, 87, 108, 232, 128, 248, 191, 177, 143, 77, 78, 132, 172, 81, 140, 198, 227, 55, 181, 112, 42, 122, 127, 55, 141, 239, 223, 147, 129, 130, 112, 51, 238, 127, 176, 150, 229, 211, 209, 143, 241, 222, 102, 71, 201, 227, 93, 139, 78, 191, 202, + 175, 141, 231, 183, 13, 67, 193, 158, 194, 207, 91, 1, 245, 78, 152, 43, 99, 236, 224, 204, 227, 29, 103, 138, 115, 255, 21, 113, 55, 209, 161, 242, 211, 167, 17, 250, 63, 188, 106, 20, 85, 208, 191, 94, 250, 215, 143, 88, 204, 187, 186, 120, 6, 203, 231, 103, 115, 185, 151, 16, 219, 38, 97, 234, 173, 22, 49, 189, 103, 158, 205, 106, 197, 16, 5, 100, 69, 118, 87, 29, 155, 29, 88, 60, 223, 132, 147, 89, 208, 67, 181, 90, 172, 115, 252, 184, 253, 218, 113, 7, 164, 192, 79, 114, 221, 132, 102, 49, 227, 90, 103, 93, 45, 111, 177, 216, 109, 21, 216, 52, 191, 218, 225, 132, 102, 119, 58, 77, 230, 74, 71, 101, 165, 64, 113, 181, 195, 49, 127, 190, 213, 86, 229, 168, 157, 95, 235, 168, 165, 71, 171, 157, 46, 250, 175, 117, 190, 213, 81, 141, 29, 14, 155, 195, 110, 115, 56, 172, 22, 187, 121, 33, 237, 212, 49, 207, 62, 207, 81, 89, 83, 89, 105, 159, 103, 158, 87, 117, 125, 87, 185, 207, 121, 251, 255, 155, 255, 84, 91 +}; diff --git a/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.h b/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.h index fe01be7..9a44458 100644 --- a/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.h +++ b/examples/EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO/src/tft_data.h @@ -12,6 +12,6 @@ extern const uint8_t logo[239] PROGMEM; extern const uint8_t pic[3844] PROGMEM; -extern const uint8_t flash[12753] PROGMEM; +extern const uint8_t flash[8199] PROGMEM; #endif /* TFT_DATA_H */ \ No newline at end of file diff --git a/examples/EVE_Test_SAME51_EVE3-43G/EVE_Test.cproj b/examples/EVE_Test_SAME51_EVE3-43G/EVE_Test.cproj index 7040f94..30ed99e 100644 --- a/examples/EVE_Test_SAME51_EVE3-43G/EVE_Test.cproj +++ b/examples/EVE_Test_SAME51_EVE3-43G/EVE_Test.cproj @@ -40,14 +40,14 @@ - com.atmel.avrdbg.tool.atmelice - J41800003266 + com.atmel.avrdbg.tool.samice + 801009877 0x61810302 SWD - 4000000 + 0 SWD @@ -59,7 +59,7 @@ - 0 + 4000000 SWD @@ -134,8 +134,6 @@ EVE_PDN_PORT=1 EVE_PDN=PORT_PB31 EVE_SPI=5 - EVE_SPI_DMA_TRIGGER=SERCOM5_DMAC_ID_TX - EVE_DMA_CHANNEL=0 EVE_DMA diff --git a/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE.h b/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE.h index 5464d82..0831fc3 100644 --- a/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE.h +++ b/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE.h @@ -602,7 +602,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #define COLOR_MASK(r,g,b,a) ((DL_COLOR_MASK) | (((r) & 1UL) << 3U) | (((g) & 1UL) << 2U) | (((b) & 1UL) << 1U) | ((a) & 1UL)) #define COLOR_RGB(red,green,blue) ((DL_COLOR_RGB) | (((red) & 0xFFUL) << 16U) | (((green) & 0xFFUL) << 8U) | ((blue) & 0xFFUL)) #define JUMP(dest) ((DL_JUMP) | ((dest) & 0xFFFFUL)) -#define LINE_WIDTH(width) ((DL_LINE_WIDTH) | ((width) & 0xFFFUL)) +#define LINE_WIDTH(width) ((DL_LINE_WIDTH) | (((uint32_t) (width)) & 0xFFFUL)) #define MACRO(m) ((DL_MACRO) | ((m) & 1UL)) #define PALETTE_SOURCE(addr) ((DL_PALETTE_SOURCE) | ((addr) & 0x3FFFFF3UL)) #define POINT_SIZE(size) ((DL_POINT_SIZE) | ((size) & 0x1FFFUL)) @@ -613,7 +613,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #define STENCIL_OP(sfail,spass) ((DL_STENCIL_OP) | (((sfail) & 7UL) << 3U) | ((spass) & 7UL)) #define TAG(s) ((DL_TAG) | ((s) & 0xFFUL)) #define TAG_MASK(mask) ((DL_TAG_MASK) | ((mask) & 1UL)) -#define VERTEX2F(x,y) ((DL_VERTEX2F) | (((x) & 0x7FFFUL) << 15U) | ((y) & 0x7FFFUL)) +#define VERTEX2F(x,y) ((DL_VERTEX2F) | ((((uint32_t) (x)) & 0x7FFFUL) << 15U) | (((uint32_t) (y)) & 0x7FFFUL)) #define VERTEX2II(x,y,handle,cell) ((DL_VERTEX2II) | (((x) & 0x1FFUL) << 21U) | (((y) & 0x1FFUL) << 12U) | (((handle) & 0x1FUL) << 7U) | ((cell) & 0x7FUL)) #define VERTEX_FORMAT(frac) ((DL_VERTEX_FORMAT) | ((frac) & 7UL)) #define VERTEX_TRANSLATE_X(x) ((DL_VERTEX_TRANSLATE_X) | ((x) & 0x1FFFFUL)) diff --git a/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE_commands.c b/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE_commands.c index 5d1d311..10abc8e 100644 --- a/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE_commands.c +++ b/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE_commands.c @@ -2,7 +2,7 @@ @file EVE_commands.c @brief contains FT8xx / BT8xx functions @version 5.0 -@date 2022-12-19 +@date 2022-12-30 @author Rudolph Riedel @section info @@ -119,6 +119,8 @@ without the traling _burst in the name when exceution speed is not an issue - e. - basic maintenance: checked for violations of white space and indent rules - more linter fixes for minor issues like variables shorter than 3 characters - added EVE_color_a() / EVE_color_a_burst() +- more minor tweaks and fixes to make the static analyzer happy +- changed the burst variant of private_string_write() back to the older and faster version */ @@ -126,7 +128,7 @@ without the traling _burst in the name when exceution speed is not an issue - e. /* EVE Memory Commands - used with EVE_memWritexx and EVE_memReadxx */ #define MEM_WRITE 0x80U /* EVE Host Memory Write */ -//#define MEM_READ 0x00U /* EVE Host Memory Read */ +/* #define MEM_READ 0x00U */ /* EVE Host Memory Read */ /* define NULL if it not already is */ #ifndef NULL @@ -164,8 +166,8 @@ uint16_t EVE_memRead16(uint32_t ft_address) uint16_t data; EVE_cs_set(); spi_transmit_32(((ft_address >> 16U) & 0x0000007fUL) + (ft_address & 0x0000ff00UL) + ((ft_address & 0x000000ffUL) << 16U)); - data = ((uint16_t)spi_receive(0U)); /* read low byte */ - data = ((uint16_t)spi_receive(0U) << 8U) | data; /* read high byte */ + data = ((uint16_t) spi_receive(0U)); /* read low byte */ + data = (((uint16_t) spi_receive(0U)) << 8U) | data; /* read high byte */ EVE_cs_clear(); return data; } @@ -175,10 +177,10 @@ uint32_t EVE_memRead32(uint32_t ft_address) uint32_t data; EVE_cs_set(); spi_transmit_32(((ft_address >> 16U) & 0x0000007fUL) + (ft_address & 0x0000ff00UL) + ((ft_address & 0x000000ffUL) << 16U)); - data = ((uint32_t)spi_receive(0U)); /* read low byte */ - data = ((uint32_t)spi_receive(0U) << 8U) | data; - data = ((uint32_t)spi_receive(0U) << 16U) | data; - data = ((uint32_t)spi_receive(0U) << 24U) | data; /* read high byte */ + data = ((uint32_t) spi_receive(0U)); /* read low byte */ + data = ((uint32_t) spi_receive(0U) << 8U) | data; + data = ((uint32_t) spi_receive(0U) << 16U) | data; + data = ((uint32_t) spi_receive(0U) << 24U) | data; /* read high byte */ EVE_cs_clear(); return data; } @@ -933,15 +935,15 @@ void EVE_cmd_snapshot2(uint32_t fmt, uint32_t ptr, int16_t xc0, int16_t yc0, int spi_transmit_32(fmt); spi_transmit_32(ptr); - spi_transmit((uint8_t)(xc0)); - spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); - spi_transmit((uint8_t)(yc0)); - spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); - spi_transmit((uint8_t)(wid)); - spi_transmit((uint8_t)(((uint16_t) wid) >> 8U)); - spi_transmit((uint8_t)(hgt)); - spi_transmit((uint8_t)(((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); EVE_cs_clear(); EVE_execute_cmd(); @@ -952,18 +954,18 @@ void EVE_cmd_track(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t t { eve_begin_cmd(CMD_TRACK); - spi_transmit((uint8_t)(xc0)); - spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); - spi_transmit((uint8_t)(yc0)); - spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); - spi_transmit((uint8_t)(wid)); - spi_transmit((uint8_t)(((uint16_t) wid) >> 8U)); - spi_transmit((uint8_t)(hgt)); - spi_transmit((uint8_t)(((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); - spi_transmit((uint8_t)(tag)); - spi_transmit((uint8_t)(((uint16_t) tag) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) tag)); + spi_transmit((uint8_t) (((uint16_t) tag) >> 8U)); spi_transmit(0U); spi_transmit(0U); @@ -1070,7 +1072,6 @@ uint8_t EVE_init_flash(void) #endif /* EVE_GEN > 2 */ -/* FT811 / FT813 binary-blob from FTDIs AN_336 to patch the touch-engine for Goodix GT911 / GT9271 touch controllers */ #if defined(EVE_HAS_GT911) #if defined(__AVR__) @@ -1078,8 +1079,16 @@ uint8_t EVE_init_flash(void) #else #define PROGMEM #endif +void use_gt911(void); -const uint8_t EVE_GT911_data[1184U] PROGMEM = { +void use_gt911(void) +{ +#if EVE_GEN > 2 + EVE_memWrite16(REG_TOUCH_CONFIG, 0x05d0U); /* switch to Goodix touch controller */ +#else + +/* FT811 / FT813 binary-blob from FTDIs AN_336 to patch the touch-engine for Goodix GT911 / GT9271 touch controllers */ +const uint8_t eve_gt911_data[1184U] PROGMEM = { 26, 255, 255, 255, 32, 32, 48, 0, 4, 0, 0, 0, 2, 0, 0, 0, 34, 255, 255, 255, 0, 176, 48, 0, 120, 218, 237, 84, 221, 111, 84, 69, 20, 63, 51, 179, 93, 160, 148, 101, 111, 76, 5, 44, 141, 123, 111, 161, 11, 219, 154, 16, 9, 16, 17, 229, 156, 75, 26, 11, 13, 21, 227, 3, 16, 252, 184, 179, 45, @@ -1132,6 +1141,28 @@ const uint8_t EVE_GT911_data[1184U] PROGMEM = { 140, 175, 73, 112, 184, 252, 61, 184, 16, 90, 250, 35, 168, 82, 119, 176, 57, 116, 94, 200, 150, 22, 190, 179, 44, 104, 12, 235, 84, 149, 102, 252, 89, 154, 193, 99, 228, 106, 242, 125, 248, 64, 194, 255, 223, 127, 242, 83, 11, 255, 2, 70, 214, 226, 128, 0, 0}; + + EVE_cs_set(); + spi_transmit((uint8_t) 0xB0U); /* high-byte of REG_CMDB_WRITE + MEM_WRITE */ + spi_transmit((uint8_t) 0x25U); /* middle-byte of REG_CMDB_WRITE */ + spi_transmit((uint8_t) 0x78U); /* low-byte of REG_CMDB_WRITE */ + private_block_write(eve_gt911_data, sizeof(eve_gt911_data)); + EVE_cs_clear(); + EVE_execute_cmd(); + + EVE_memWrite8(REG_TOUCH_OVERSAMPLE, 0x0fU); /* setup oversample to 0x0f as "hidden" in binary-blob for AN_336 */ + EVE_memWrite16(REG_TOUCH_CONFIG, 0x05D0U); /* write magic cookie as requested by AN_336 */ + + /* specific to the EVE2 modules from Matrix-Orbital we have to use GPIO3 to reset GT911 */ + EVE_memWrite16(REG_GPIOX_DIR, 0x8008U); /* Reset-Value is 0x8000, adding 0x08 sets GPIO3 to output, default-value + for REG_GPIOX is 0x8000 -> Low output on GPIO3 */ + DELAY_MS(1U); /* wait more than 100�s */ + EVE_memWrite8(REG_CPURESET, 0U); /* clear all resets */ + DELAY_MS(110U); /* wait more than 55ms - does not work with multitouch, for some reason a minimum delay of 108ms is + required */ + EVE_memWrite16(REG_GPIOX_DIR, 0x8000U); /* setting GPIO3 back to input */ +#endif +} #endif /* EVE chip initialization, has to be executed with the SPI setup to 11 MHz or less as required by FT8xx / BT8xx! */ @@ -1167,17 +1198,20 @@ uint8_t EVE_init(void) EVE_cmdWrite(EVE_ACTIVE, 0U); /* start EVE */ /* - BRT AN033 BT81X_Series_Programming_Guide V1.2 added a delay of at least 300ms as a requirement after sending command - ACTIVE. Together with the sentence: "Ensure that there is no SPI access during this time." AN033 - BT81X_Series_Programming_Guide V2.0 removed this delay requirement again. From observation of the startup-behavior - of quite a number of displays, reading REG_ID immediately after sending command ACTIVE is not an issue, but a BT815 - running at 72MHzs needs about 42ms before it answers anyways. So I added a fixed delay of 40ms as a compromise, this - provides a moment of silence on the SPI without actually delaying the startup. + BRT AN033 BT81X_Series_Programming_Guide V1.2 added a delay of at least 300ms + as a requirement after sending command ACTIVE. + Together with the sentence: "Ensure that there is no SPI access during this time." + AN033 BT81X_Series_Programming_Guide V2.0 removed this delay requirement again. + From observation of the startup-behavior of quite a number of displays, + reading REG_ID immediately after sending command ACTIVE is not an issue, + but a BT815 running at 72MHzs needs about 42ms before it answers anyways. + So I added a fixed delay of 40ms as a compromise, this provides a moment + of silence on the SPI without actually delaying the startup. */ DELAY_MS(40U); - while (chipid != 0x7CU) /* if chipid is not 0x7c, continue to read it until it is, EVE needs a moment for its power - on self-test and configuration */ + while (chipid != 0x7CU) /* if chipid is not 0x7c, continue to read it until it is, + EVE needs a moment for its power on self-test and configuration */ { DELAY_MS(1U); chipid = EVE_memRead8(REG_ID); @@ -1193,8 +1227,8 @@ uint8_t EVE_init(void) { DELAY_MS(1U); timeout++; - if (timeout > 50U) /* experimental, 10 was the lowest value to get the BT815 started with, the touch-controller - was the last to get out of reset */ + if (timeout > 50U) /* experimental, 10 was the lowest value to get the BT815 started with, + the touch-controller was the last to get out of reset */ { return EVE_FAIL_RESET_TIMEOUT; } @@ -1202,36 +1236,13 @@ uint8_t EVE_init(void) /* tell EVE that we changed the frequency from default to 72MHz for BT8xx */ #if EVE_GEN > 2 - EVE_memWrite32(REG_FREQUENCY, 72000000U); + EVE_memWrite32(REG_FREQUENCY, 72000000UL); #endif /* we have a display with a Goodix GT911 / GT9271 touch-controller on it, so we patch our FT811 or FT813 according to - * AN_336 or setup a BT815 accordingly */ + * AN_336 or setup a BT815 / BT817 accordingly */ #if defined(EVE_HAS_GT911) - -#if EVE_GEN > 2 - EVE_memWrite16(REG_TOUCH_CONFIG, 0x05d0U); /* switch to Goodix touch controller */ -#else - EVE_cs_set(); - spi_transmit((uint8_t) 0xB0U); /* high-byte of REG_CMDB_WRITE + MEM_WRITE */ - spi_transmit((uint8_t) 0x25U); /* middle-byte of REG_CMDB_WRITE */ - spi_transmit((uint8_t) 0x78U); /* low-byte of REG_CMDB_WRITE */ - private_block_write(EVE_GT911_data, sizeof(EVE_GT911_data)); - EVE_cs_clear(); - EVE_execute_cmd(); - - EVE_memWrite8(REG_TOUCH_OVERSAMPLE, 0x0fU); /* setup oversample to 0x0f as "hidden" in binary-blob for AN_336 */ - EVE_memWrite16(REG_TOUCH_CONFIG, 0x05D0U); /* write magic cookie as requested by AN_336 */ - - /* specific to the EVE2 modules from Matrix-Orbital we have to use GPIO3 to reset GT911 */ - EVE_memWrite16(REG_GPIOX_DIR, 0x8008U); /* Reset-Value is 0x8000, adding 0x08 sets GPIO3 to output, default-value - for REG_GPIOX is 0x8000 -> Low output on GPIO3 */ - DELAY_MS(1U); /* wait more than 100�s */ - EVE_memWrite8(REG_CPURESET, 0U); /* clear all resets */ - DELAY_MS(110U); /* wait more than 55ms - does not work with multitouch, for some reason a minimum delay of 108ms is - required */ - EVE_memWrite16(REG_GPIOX_DIR, 0x8000U); /* setting GPIO3 back to input */ -#endif + use_gt911(); #endif /* EVE_memWrite8(REG_PCLK, 0U); */ /* set PCLK to zero - don't clock the LCD until later, line disabled because @@ -1417,28 +1428,43 @@ static void private_string_write(const char *p_text) } else { - uint8_t textindex = 0U; - uint32_t calc = 0U; - uint8_t byteindex = 0U; - uint8_t data; - - do + for(uint8_t textindex = 0U; textindex < 249U;) { - data = p_bytes[textindex]; - textindex++; - calc += (uint32_t)(data) << (8U * byteindex); - byteindex++; - if (byteindex > 3U) + uint32_t calc = 0U; + uint8_t data; + + data = p_bytes[textindex++]; + if(0U == data) + { + spi_transmit_burst(calc); + break; + } + calc += (uint32_t) (data); + + data = p_bytes[textindex++]; + if(0U == data) { spi_transmit_burst(calc); - calc = 0U; - byteindex = 0U; + break; } - } - while ((textindex < 249U) && (data != 0U)); + calc += ((uint32_t) data) << 8U; + + data = p_bytes[textindex++]; + if(0U == data) + { + spi_transmit_burst(calc); + break; + } + calc += ((uint32_t) data) << 16U; + + data = p_bytes[textindex++]; + if(0U == data) + { + spi_transmit_burst(calc); + break; + } + calc += ((uint32_t) data) << 24U; - if (byteindex > 0U) - { spi_transmit_burst(calc); } } @@ -1450,16 +1476,13 @@ static void private_string_write(const char *p_text) void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMFRAMERAM); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); spi_transmit_32(aoptr); spi_transmit_32(frame); EVE_cs_clear(); @@ -1467,7 +1490,7 @@ void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, else { spi_transmit_burst(CMD_ANIMFRAMERAM); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1476,11 +1499,8 @@ void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, void EVE_cmd_animframeram_burst(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_ANIMFRAMERAM); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1538,21 +1558,15 @@ void EVE_cmd_calibratesub(uint16_t xc0, uint16_t yc0, uint16_t width, { if (0U == cmd_burst) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - eve_begin_cmd(CMD_CALIBRATESUB); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(width)); - spi_transmit((uint8_t)(width >> 8U)); - spi_transmit((uint8_t)(height)); - spi_transmit((uint8_t)(height >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) (width)); + spi_transmit((uint8_t) (width >> 8U)); + spi_transmit((uint8_t) (height)); + spi_transmit((uint8_t) (height >> 8U)); EVE_cs_clear(); } } @@ -1651,18 +1665,13 @@ void EVE_cmd_animdraw_burst(int32_t chnl) void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMFRAME); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); spi_transmit_32(aoptr); spi_transmit_32(frame); EVE_cs_clear(); @@ -1670,7 +1679,7 @@ void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) else { spi_transmit_burst(CMD_ANIMFRAME); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1679,11 +1688,8 @@ void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) void EVE_cmd_animframe_burst(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_ANIMFRAME); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1693,7 +1699,6 @@ void EVE_cmd_animstart(int32_t chnl, uint32_t aoptr, uint32_t loop) if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMSTART); - spi_transmit_32((uint32_t) chnl); spi_transmit_32(aoptr); spi_transmit_32(loop); @@ -1739,37 +1744,29 @@ void EVE_cmd_animstop_burst(int32_t chnl) void EVE_cmd_animxy(int32_t chnl, int16_t xc0, int16_t yc0) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMXY); spi_transmit_32((uint32_t) chnl); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_ANIMXY); spi_transmit_burst((uint32_t) chnl); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); } } void EVE_cmd_animxy_burst(int32_t chnl, int16_t xc0, int16_t yc0) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_ANIMXY); spi_transmit_burst((uint32_t) chnl); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); } void EVE_cmd_appendf(uint32_t ptr, uint32_t num) @@ -1895,32 +1892,27 @@ void EVE_cmd_fillwidth_burst(uint32_t pixel) void EVE_cmd_gradienta(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, int16_t yc1, uint32_t argb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - if (0U == cmd_burst) { eve_begin_cmd(CMD_GRADIENTA); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); spi_transmit_32(argb0); - spi_transmit((uint8_t)(xcu1)); - spi_transmit((uint8_t)(xcu1 >> 8U)); - spi_transmit((uint8_t)(ycu1)); - spi_transmit((uint8_t)(ycu1 >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc1)); + spi_transmit((uint8_t) (((uint16_t) xc1) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc1)); + spi_transmit((uint8_t) (((uint16_t) yc1) >> 8U)); spi_transmit_32(argb1); EVE_cs_clear(); } else { spi_transmit_burst(CMD_GRADIENTA); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(argb0); - spi_transmit_burst((uint32_t) xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(argb1); } } @@ -1928,15 +1920,10 @@ void EVE_cmd_gradienta(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, void EVE_cmd_gradienta_burst(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, int16_t yc1, uint32_t argb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - spi_transmit_burst(CMD_GRADIENTA); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(argb0); - spi_transmit_burst((uint32_t) xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(argb1); } @@ -1976,31 +1963,21 @@ void EVE_cmd_button_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_BUTTON); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2018,9 +1995,9 @@ void EVE_cmd_button_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, else { spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + ((uint32_t)ycu0 << 16U)); - spi_transmit_burst((uint32_t) widu + ((uint32_t)hgtu << 16U)); - spi_transmit_burst((uint32_t) fontu + ((uint32_t)options << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + ((uint32_t) options << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2041,16 +2018,10 @@ void EVE_cmd_button_var_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + ((uint32_t) ycu0 << 16U)); - spi_transmit_burst((uint32_t) widu + ((uint32_t) hgtu << 16U)); - spi_transmit_burst((uint32_t) fontu + ((uint32_t) options << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + ((uint32_t) options << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2070,24 +2041,17 @@ void EVE_cmd_text_var(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TEXT); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2105,8 +2069,8 @@ void EVE_cmd_text_var(int16_t xc0, int16_t yc0, int16_t font, else { spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2127,13 +2091,9 @@ void EVE_cmd_text_var_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2153,30 +2113,21 @@ void EVE_cmd_toggle_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TOGGLE); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(state)); - spi_transmit((uint8_t)(state >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (state)); + spi_transmit((uint8_t) (state >> 8U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2194,8 +2145,8 @@ void EVE_cmd_toggle_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, else { spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font) << 16U))); spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); private_string_write(p_text); @@ -2217,14 +2168,9 @@ void EVE_cmd_toggle_var_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t fon uint16_t options, uint16_t state, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font) << 16U))); spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); private_string_write(p_text); @@ -2301,9 +2247,9 @@ void EVE_cmd_bgcolor(uint32_t color) if (0U == cmd_burst) { eve_begin_cmd(CMD_BGCOLOR); - spi_transmit((uint8_t)(color)); - spi_transmit((uint8_t)(color >> 8U)); - spi_transmit((uint8_t)(color >> 16U)); + spi_transmit((uint8_t) (color)); + spi_transmit((uint8_t) (color >> 8U)); + spi_transmit((uint8_t) (color >> 16U)); spi_transmit(0U); EVE_cs_clear(); } @@ -2323,43 +2269,30 @@ void EVE_cmd_bgcolor_burst(uint32_t color) void EVE_cmd_button(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_BUTTON); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } } @@ -2367,16 +2300,10 @@ void EVE_cmd_button(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } @@ -2390,33 +2317,24 @@ void EVE_cmd_calibrate(void) } } -void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs) +void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, + uint16_t mins, uint16_t secs, uint16_t msecs) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - if (0U == cmd_burst) { eve_begin_cmd(CMD_CLOCK); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(radu)); - spi_transmit((uint8_t)(radu >> 8U)); + spi_transmit((uint8_t)((uint16_t) xc0)); + spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) yc0)); + spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) rad)); + spi_transmit((uint8_t)(((uint16_t) rad) >> 8U)); spi_transmit((uint8_t)(options)); spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(hours)); spi_transmit((uint8_t)(hours >> 8U)); spi_transmit((uint8_t)(mins)); spi_transmit((uint8_t)(mins >> 8U)); - spi_transmit((uint8_t)(secs)); spi_transmit((uint8_t)(secs >> 8U)); spi_transmit((uint8_t)(msecs)); @@ -2426,61 +2344,47 @@ void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, else { spi_transmit_burst(CMD_CLOCK); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) hours + (((uint32_t) mins) << 16U)); spi_transmit_burst((uint32_t) secs + (((uint32_t) msecs) << 16U)); } } -void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs) +void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, + uint16_t mins, uint16_t secs, uint16_t msecs) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - spi_transmit_burst(CMD_CLOCK); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) hours + (((uint32_t) mins) << 16U)); spi_transmit_burst((uint32_t) secs + (((uint32_t) msecs) << 16U)); } -void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, - uint16_t options, uint16_t val) +void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - if (0U == cmd_burst) { eve_begin_cmd(CMD_DIAL); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(radu)); - spi_transmit((uint8_t)(radu >> 8U)); + spi_transmit((uint8_t)((uint16_t) xc0)); + spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) yc0)); + spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) rad)); + spi_transmit((uint8_t)(((uint16_t) rad) >> 8U)); spi_transmit((uint8_t)(options)); spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); spi_transmit((uint8_t)(val >> 8U)); spi_transmit(0U); spi_transmit(0U); - EVE_cs_clear(); } else { spi_transmit_burst(CMD_DIAL); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst(val); } } @@ -2488,13 +2392,9 @@ void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, void EVE_cmd_dial_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - spi_transmit_burst(CMD_DIAL); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst(val); } @@ -2526,43 +2426,34 @@ void EVE_cmd_gauge(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - if (0U == cmd_burst) { eve_begin_cmd(CMD_GAUGE); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(radu)); - spi_transmit((uint8_t)(radu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - - spi_transmit((uint8_t)(major)); - spi_transmit((uint8_t)(major >> 8U)); - spi_transmit((uint8_t)(minor)); - spi_transmit((uint8_t)(minor >> 8U)); - - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) rad)); + spi_transmit((uint8_t) (((uint16_t) rad) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (major)); + spi_transmit((uint8_t) (major >> 8U)); + spi_transmit((uint8_t) (minor)); + spi_transmit((uint8_t) (minor >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_GAUGE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); - spi_transmit_burst((uint32_t) major + (((uint32_t) minor) << 16U)); - spi_transmit_burst((uint32_t) val + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) rad)) + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) major) + (((uint32_t) minor) << 16U)); + spi_transmit_burst(((uint32_t) val) + (((uint32_t) range) << 16U)); } } @@ -2570,15 +2461,11 @@ void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options uint16_t major, uint16_t minor, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - spi_transmit_burst(CMD_GAUGE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); - spi_transmit_burst((uint32_t) major + (((uint32_t) minor) << 16U)); - spi_transmit_burst((uint32_t) val + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) rad)) + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) major) + (((uint32_t) minor) << 16U)); + spi_transmit_burst(((uint32_t) val) + (((uint32_t) range) << 16U)); } /* EVE_cmd_getmatrix() is meant to be called with display-list building. */ @@ -2665,43 +2552,33 @@ void EVE_cmd_gradcolor_burst(uint32_t color) void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - if (0U == cmd_burst) { eve_begin_cmd(CMD_GRADIENT); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(rgb0)); - spi_transmit((uint8_t)(rgb0 >> 8U)); - spi_transmit((uint8_t)(rgb0 >> 16U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) (rgb0)); + spi_transmit((uint8_t) (rgb0 >> 8U)); + spi_transmit((uint8_t) (rgb0 >> 16U)); spi_transmit(0U); - - spi_transmit((uint8_t)(xcu1)); - spi_transmit((uint8_t)(xcu1 >> 8U)); - spi_transmit((uint8_t)(ycu1)); - spi_transmit((uint8_t)(ycu1 >> 8U)); - - spi_transmit((uint8_t)(rgb1)); - spi_transmit((uint8_t)(rgb1 >> 8U)); - spi_transmit((uint8_t)(rgb1 >> 16U)); + spi_transmit((uint8_t) ((uint16_t) xc1)); + spi_transmit((uint8_t) (((uint16_t) xc1) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc1)); + spi_transmit((uint8_t) (((uint16_t) yc1) >> 8U)); + spi_transmit((uint8_t) (rgb1)); + spi_transmit((uint8_t) (rgb1 >> 8U)); + spi_transmit((uint8_t) (rgb1 >> 16U)); spi_transmit(0U); - EVE_cs_clear(); } else { spi_transmit_burst(CMD_GRADIENT); - spi_transmit_burst((uint32_t)xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(rgb0); - spi_transmit_burst((uint32_t)xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(rgb1); } } @@ -2709,56 +2586,40 @@ void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, void EVE_cmd_gradient_burst(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - spi_transmit_burst(CMD_GRADIENT); - spi_transmit_burst((uint32_t)xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(rgb0); - spi_transmit_burst((uint32_t)xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(rgb1); } void EVE_cmd_keys(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_KEYS); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_KEYS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); - + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } } @@ -2766,49 +2627,35 @@ void EVE_cmd_keys(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_KEYS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); - + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } void EVE_cmd_number(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_NUMBER); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); spi_transmit_32((uint32_t) number); EVE_cs_clear(); } else { spi_transmit_burst(CMD_NUMBER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) number); } } @@ -2816,56 +2663,42 @@ void EVE_cmd_number(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, void EVE_cmd_number_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_NUMBER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) number); } void EVE_cmd_progress(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_PROGRESS); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); spi_transmit(0U); /* dummy byte for 4-byte alignment */ spi_transmit(0U); /* dummy byte for 4-byte alignment */ - EVE_cs_clear(); } else { spi_transmit_burst(CMD_PROGRESS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + ((uint32_t)val << 16U)); spi_transmit_burst((uint32_t) range); } } @@ -2873,15 +2706,10 @@ void EVE_cmd_progress(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_PROGRESS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + ((uint32_t)val << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + ((uint32_t)val << 16U)); spi_transmit_burst((uint32_t) range); } @@ -2957,60 +2785,45 @@ void EVE_cmd_scale_burst(int32_t scx, int32_t scy) void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SCROLLBAR); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - - spi_transmit((uint8_t)(size)); - spi_transmit((uint8_t)(size >> 8U)); - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (size)); + spi_transmit((uint8_t) (size >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_SCROLLBAR); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); - spi_transmit_burst((uint32_t) size + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) size) + (((uint32_t) range) << 16U)); } } void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_SCROLLBAR); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); - spi_transmit_burst((uint32_t) size + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) size) + (((uint32_t) range) << 16U)); } void EVE_cmd_setbase(uint32_t base) @@ -3041,17 +2854,14 @@ void EVE_cmd_setbitmap(uint32_t addr, uint16_t fmt, uint16_t width, { eve_begin_cmd(CMD_SETBITMAP); spi_transmit_32(addr); - spi_transmit((uint8_t)(fmt)); spi_transmit((uint8_t)(fmt >> 8U)); spi_transmit((uint8_t)(width)); spi_transmit((uint8_t)(width >> 8U)); - spi_transmit((uint8_t)(height)); spi_transmit((uint8_t)(height >> 8U)); spi_transmit(0U); spi_transmit(0U); - EVE_cs_clear(); } else @@ -3147,25 +2957,20 @@ void EVE_cmd_setscratch_burst(uint32_t handle) void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SKETCH); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); spi_transmit_32(ptr); - spi_transmit((uint8_t)(format)); - spi_transmit((uint8_t)(format >> 8U)); + spi_transmit((uint8_t) (format)); + spi_transmit((uint8_t) (format >> 8U)); spi_transmit(0U); spi_transmit(0U); EVE_cs_clear(); @@ -3173,8 +2978,8 @@ void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, else { spi_transmit_burst(CMD_SKETCH); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); spi_transmit_burst(ptr); spi_transmit_burst((uint32_t) format); } @@ -3183,14 +2988,9 @@ void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_SKETCH); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); spi_transmit_burst(ptr); spi_transmit_burst((uint32_t) format); } @@ -3198,28 +2998,23 @@ void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SLIDER); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); spi_transmit(0U); /* dummy byte for 4-byte alignment */ spi_transmit(0U); /* dummy byte for 4-byte alignment */ EVE_cs_clear(); @@ -3227,9 +3022,9 @@ void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, else { spi_transmit_burst(CMD_SLIDER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); spi_transmit_burst((uint32_t) range); } } @@ -3237,81 +3032,66 @@ void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_SLIDER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); spi_transmit_burst((uint32_t) range); } void EVE_cmd_spinner(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SPINNER); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(style)); - spi_transmit((uint8_t)(style >> 8U)); - spi_transmit((uint8_t)(scale)); - spi_transmit((uint8_t)(scale >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) (style)); + spi_transmit((uint8_t) (style >> 8U)); + spi_transmit((uint8_t) (scale)); + spi_transmit((uint8_t) (scale >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_SPINNER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) style + (((uint32_t) scale) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) style) + (((uint32_t) scale) << 16U)); } } void EVE_cmd_spinner_burst(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_SPINNER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) style + (((uint32_t) scale) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) style) + (((uint32_t) scale) << 16U)); } void EVE_cmd_text(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TEXT); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } } @@ -3319,48 +3099,39 @@ void EVE_cmd_text(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, void EVE_cmd_text_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TOGGLE); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(state)); - spi_transmit((uint8_t)(state >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (state)); + spi_transmit((uint8_t) (state >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) state) << 16U)); private_string_write(p_text); } } @@ -3368,15 +3139,10 @@ void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) state) << 16U)); private_string_write(p_text); } @@ -3442,27 +3208,27 @@ void EVE_color_a_burst(uint8_t alpha) /* This code was taken from the MatrixOrbital EVE2-Library on Github, adapted and modified */ void EVE_calibrate_manual(uint16_t width, uint16_t height) { - uint32_t display_x[3U]; - uint32_t display_y[3U]; - uint32_t touch_x[3U]; - uint32_t touch_y[3U]; + int32_t display_x[3U]; + int32_t display_y[3U]; + int32_t touch_x[3U]; + int32_t touch_y[3U]; uint32_t touch_value; int32_t tmp; - int32_t coef; + int32_t div; int32_t trans_matrix[6U]; uint8_t count = 0U; char num[2U]; uint8_t touch_lock = 1U; /* these values determine where your calibration points will be drawn on your display */ - display_x[0U] = (uint32_t)(width / 6U); - display_y[0U] = (uint32_t)(height / 6U); + display_x[0U] = (int32_t) (width / 6U); + display_y[0U] = (int32_t) (height / 6U); - display_x[1U] = (uint32_t)(width - (width / 8U)); - display_y[1U] = (uint32_t)(height / 2U); + display_x[1U] = (int32_t) (width - (width / 8U)); + display_y[1U] = (int32_t) (height / 2U); - display_x[2U] = (uint32_t)(width / 2U); - display_y[2U] = (uint32_t)(height - (height / 8U)); + display_x[2U] = (int32_t) (width / 2U); + display_y[2U] = (int32_t) (height - (height / 8U)); while (count < 3U) { @@ -3501,8 +3267,8 @@ void EVE_calibrate_manual(uint16_t width, uint16_t height) { if (0UL == (touch_value & 0x80000000UL)) /* check if a touch is detected */ { - touch_x[count] = (touch_value >> 16U) & 0x03FFU; /* raw Touchscreen Y coordinate */ - touch_y[count] = touch_value & 0x03FFU; /* raw Touchscreen Y coordinate */ + touch_x[count] = (int32_t) ((touch_value >> 16U) & 0x03FFU); /* raw Touchscreen Y coordinate */ + touch_y[count] = (int32_t) (touch_value & 0x03FFU); /* raw Touchscreen Y coordinate */ touch_lock = 1U; count++; break; /* leave for ( ; ; ) */ @@ -3511,33 +3277,33 @@ void EVE_calibrate_manual(uint16_t width, uint16_t height) } } - coef = (int32_t) ((touch_x[0U] - touch_x[2U]) * (touch_y[1U] - touch_y[2U])) - ((touch_x[1U] - touch_x[2U]) * (touch_y[0U] - touch_y[2U])); + div = ((touch_x[0U] - touch_x[2U]) * (touch_y[1U] - touch_y[2U])) - ((touch_x[1U] - touch_x[2U]) * (touch_y[0U] - touch_y[2U])); - tmp = (int32_t) (((display_x[0U] - display_x[2U]) * (touch_y[1U] - touch_y[2U])) - + tmp = (((display_x[0U] - display_x[2U]) * (touch_y[1U] - touch_y[2U])) - ((display_x[1U] - display_x[2U]) * (touch_y[0U] - touch_y[2U]))); - trans_matrix[0U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[0U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) (((touch_x[0U] - touch_x[2U]) * (display_x[1U] - display_x[2U])) - + tmp = (((touch_x[0U] - touch_x[2U]) * (display_x[1U] - display_x[2U])) - ((display_x[0U] - display_x[2U]) * (touch_x[1U] - touch_x[2U]))); - trans_matrix[1U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[1U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) ((touch_y[0U] * (((touch_x[2U] * display_x[1U]) - (touch_x[1U] * display_x[2U])))) + + tmp = ((touch_y[0U] * (((touch_x[2U] * display_x[1U]) - (touch_x[1U] * display_x[2U])))) + (touch_y[1U] * (((touch_x[0U] * display_x[2U]) - (touch_x[2U] * display_x[0U])))) + (touch_y[2U] * (((touch_x[1U] * display_x[0U]) - (touch_x[0U] * display_x[1U]))))); - trans_matrix[2U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[2U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) (((display_y[0U] - display_y[2U]) * (touch_y[1U] - touch_y[2U])) - + tmp = (((display_y[0U] - display_y[2U]) * (touch_y[1U] - touch_y[2U])) - ((display_y[1U] - display_y[2U]) * (touch_y[0U] - touch_y[2U]))); - trans_matrix[3U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[3U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) (((touch_x[0U] - touch_x[2U]) * (display_y[1U] - display_y[2U])) - + tmp = (((touch_x[0U] - touch_x[2U]) * (display_y[1U] - display_y[2U])) - ((display_y[0U] - display_y[2U]) * (touch_x[1U] - touch_x[2U]))); - trans_matrix[4U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[4U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) ((touch_y[0U] * (((touch_x[2U] * display_y[1U]) - (touch_x[1U] * display_y[2U])))) + + tmp = ((touch_y[0U] * (((touch_x[2U] * display_y[1U]) - (touch_x[1U] * display_y[2U])))) + (touch_y[1U] * (((touch_x[0U] * display_y[2U]) - (touch_x[2U] * display_y[0U])))) + (touch_y[2U] * (((touch_x[1U] * display_y[0U]) - (touch_x[0U] * display_y[1U]))))); - trans_matrix[5U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[5U] = (int32_t) (((int64_t) tmp * 65536) / div); EVE_memWrite32(REG_TOUCH_TRANSFORM_A, (uint32_t) trans_matrix[0U]); EVE_memWrite32(REG_TOUCH_TRANSFORM_B, (uint32_t) trans_matrix[1U]); diff --git a/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE_commands.h b/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE_commands.h index bd62935..20f124d 100644 --- a/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE_commands.h +++ b/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/EVE_commands.h @@ -2,7 +2,7 @@ @file EVE_commands.h @brief contains FT8xx / BT8xx function prototypes @version 5.0 -@date 2022-12-19 +@date 2022-12-30 @author Rudolph Riedel @section LICENSE @@ -67,6 +67,7 @@ EVE_cmd_animstartram_burst() - basic maintenance: checked for violations of white space and indent rules - more linter fixes for minor issues like variables shorter than 3 characters - added EVE_color_a() / EVE_color_a_burst() +- removed EVE_cmd_newlist_burst() prototype as the function got removed earlier */ @@ -141,6 +142,7 @@ void EVE_cmd_fontcache(uint32_t font, int32_t ptr, uint32_t num); void EVE_cmd_fontcachequery(uint32_t *p_total, int32_t *p_used); void EVE_cmd_getimage(uint32_t *p_source, uint32_t *p_fmt, uint32_t *p_width, uint32_t *p_height, uint32_t *p_palette); void EVE_cmd_linetime(uint32_t dest); +void EVE_cmd_newlist(uint32_t adr); uint32_t EVE_cmd_pclkfreq(uint32_t ftarget, int32_t rounding); void EVE_cmd_wait(uint32_t usec); @@ -217,8 +219,6 @@ void EVE_cmd_calllist(uint32_t adr); void EVE_cmd_calllist_burst(uint32_t adr); void EVE_cmd_hsf(uint32_t hsf); void EVE_cmd_hsf_burst(uint32_t hsf); -void EVE_cmd_newlist(uint32_t adr); -void EVE_cmd_newlist_burst(uint32_t adr); void EVE_cmd_runanim(uint32_t waitmask, uint32_t play); void EVE_cmd_runanim_burst(uint32_t waitmask, uint32_t play); @@ -267,46 +267,35 @@ void EVE_cmd_append_burst(uint32_t ptr, uint32_t num); void EVE_cmd_bgcolor(uint32_t color); void EVE_cmd_bgcolor_burst(uint32_t color); void EVE_cmd_button(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); -void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, - const char *p_text); +void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); void EVE_cmd_calibrate(void); -void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs); -void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs); +void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, uint16_t mins, uint16_t secs, uint16_t msecs); +void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, uint16_t mins, uint16_t secs, uint16_t msecs); void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val); void EVE_cmd_dial_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val); void EVE_cmd_fgcolor(uint32_t color); void EVE_cmd_fgcolor_burst(uint32_t color); -void EVE_cmd_gauge(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, - uint16_t range); -void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, - uint16_t val, uint16_t range); +void EVE_cmd_gauge(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range); +void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range); void EVE_cmd_getmatrix(int32_t *p_a, int32_t *p_b, int32_t *p_c, int32_t *p_d, int32_t *p_e, int32_t *p_f); void EVE_cmd_gradcolor(uint32_t color); void EVE_cmd_gradcolor_burst(uint32_t color); void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1); void EVE_cmd_gradient_burst(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1); void EVE_cmd_keys(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); -void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, - const char *p_text); +void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); void EVE_cmd_number(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number); void EVE_cmd_number_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number); void EVE_cmd_progress(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); -void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, - uint16_t range); +void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); void EVE_cmd_romfont(uint32_t font, uint32_t romslot); void EVE_cmd_romfont_burst(uint32_t font, uint32_t romslot); void EVE_cmd_rotate(int32_t angle); void EVE_cmd_rotate_burst(int32_t angle); void EVE_cmd_scale(int32_t scx, int32_t scy); void EVE_cmd_scale_burst(int32_t scx, int32_t scy); -void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, - uint16_t range); -void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, - uint16_t size, uint16_t range); +void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range); +void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range); void EVE_cmd_setbase(uint32_t base); void EVE_cmd_setbase_burst(uint32_t base); void EVE_cmd_setbitmap(uint32_t addr, uint16_t fmt, uint16_t width, uint16_t height); @@ -320,16 +309,13 @@ void EVE_cmd_setscratch_burst(uint32_t handle); void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format); void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format); void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); -void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, - uint16_t range); +void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); void EVE_cmd_spinner(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale); void EVE_cmd_spinner_burst(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale); void EVE_cmd_text(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text); void EVE_cmd_text_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text); -void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, - const char *p_text); -void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, - const char *p_text); +void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text); +void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text); void EVE_cmd_translate(int32_t tr_x, int32_t tr_y); void EVE_cmd_translate_burst(int32_t tr_x, int32_t tr_y); diff --git a/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/README.md b/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/README.md index 8c16778..cbd01af 100644 --- a/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/README.md +++ b/examples/EVE_Test_SAME51_EVE3-43G/EmbeddedVideoEngine/README.md @@ -10,8 +10,7 @@ It contains code for and has been used with various micro-controllers and displa ## Controllers -I have used it so far with: - +I have used it so far with: - 8-Bit AVR, specifically the 90CAN series - Arduino: Uno, mini-pro, ESP8266, ESP32 (DMA), Metro-M4 (DMA), STM32 Nucleo_F446RE (DMA), XMC1100 - Renesas F1L RH850 @@ -23,8 +22,7 @@ I have used it so far with: - S32K144 (DMA) - GD32C103CBT6 (DMA) -I have reports of successfully using it with: - +I have reports of successfully using it with: - ATSAMV70 - ATSAMD20 - ATSAME4 @@ -36,8 +34,7 @@ I have reports of successfully using it with: ## Displays -The TFTs tested so far: - +The TFTs tested so far: - FT810CB-HY50HD http://www.hotmcu.com/5-graphical-lcd-touchscreen-800x480-spi-ft810-p-286.html - FT811CB-HY50HD http://www.hotmcu.com/5-graphical-lcd-capacitive-touch-screen-800x480-spi-ft811-p-301.html - RVT70UQFNWC0x https://riverdi.com/product/rvt70uqfnwc0x/ @@ -68,28 +65,26 @@ The TFTs tested so far: This is version 5 of this code library and there are a couple of changes from V4. -First of all, support for FT80x is gone. The main reason is that this allowed a nice speed improvement modification that only works with FT81x and beyond. +First of all, support for FT80x is gone. +The main reason is that this allowed a nice speed improvement modification that only works with FT81x and beyond. Then there is a hard break from FT80x to FT81x with ony 256k of memory in FT80x but 1MB in FT81x. The memory map is different and all the registers are located elsewhere. -FT810, FT811, FT812, FT813, BT815, BT816, BT817 and BT818 can use the exact same code as long none of the new features of BT81x are used - and there are plenty of modules with these available to choose from - -As a side effect all commands are automatically started now. - -Second is that there are two sets of display-list building command functions now: EVE_cmd_xxx() and EVE_cmd_xxx_burst(). +FT810, FT811, FT812, FT813, BT815, BT816, BT817 and BT818 can use the exact same code as long none of the new features of BT81x are used - and there are plenty of modules with these available to choose from. +As a side effect all commands are automatically started now. +Second is that there are two sets of display-list building command functions now: EVE_cmd_xxx() and EVE_cmd_xxx_burst(). The EVE_cmd_xxx_burst() functions are optimized for speed, these are pure data transfer functions and do not even check anymore if burst mode is active. ## Structure -This library currently has nine files that I hope are named to make clear what these do: - -- EVE.h - this has all defines for FT81x / BT81x itself, so here are options, registers, commands and macros defined -- EVE_commands.c - this has all the API functions that are to be called from an application -- EVE_commands.h - this contains the prototypes for the functions in EVE_commands.c -- EVE_config.h - this has all the parameters for the numerous supported display modules, here is definded which set of parameters is to be used -- EVE_target.c - this has non-portable specific code for a number of supported controllers, mostly to support DMA -- EVE_target.h - this has non-portable pin defines and code as "static inline" functions for all supported controllers -- EVE_target.cpp - this is for Arduino C++ targets -- EVE_cpp_wrapper.cpp - this is for Arduino C++ targets -- EVE_cpp_wrapper.h - this is for Arduino C++ targets +This library currently has nine files that I hope are named to make clear what these do: +- EVE.h - this has all defines for FT81x / BT81x itself, so here are options, registers, commands and macros defined +- EVE_commands.c - this has all the API functions that are to be called from an application +- EVE_commands.h - this contains the prototypes for the functions in EVE_commands.c +- EVE_config.h - this has all the parameters for the numerous supported display modules, here is definded which set of parameters is to be used +- EVE_target.c - this has non-portable specific code for a number of supported controllers, mostly to support DMA +- EVE_target.h - this has non-portable pin defines and code as "static inline" functions for all supported controllers +- EVE_target.cpp - this is for Arduino C++ targets +- EVE_cpp_wrapper.cpp - this is for Arduino C++ targets +- EVE_cpp_wrapper.h - this is for Arduino C++ targets ## Examples @@ -100,7 +95,7 @@ EVE_cmd_dl(DL_CLEAR_COLOR_RGB | WHITE); // sets the background color EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); EVE_color_rgb(BLACK); EVE_cmd_text(5, 15, 28, 0, "Hello there!"); -EVE_cmd_dl(DL_DISPLAY); // put in the display list to mark its end +EVE_cmd_dl(DL_DISPLAY); // put in the display list to mark the end EVE_cmd_dl(CMD_SWAP); // tell EVE to use the new display list while (EVE_busy()); ```` @@ -121,11 +116,11 @@ EVE_end_cmd_burst(); while (EVE_busy()); ```` -This does the same as the first example but faster. +This does the same as the first example but faster. The preceding EVE_start_cmd_burst() either sets chip-select to low and sends out the three byte address. -Or if DMA is available for the target you are compiling for with support code in EVE_target.c / EVE_target.cpp and EVE_target.h, it writes the address to EVE_dma_buffer and sets EVE_dma_buffer_index to 1. +Or if DMA is available for the target you are compiling for with support code in EVE_target.c / EVE_target.cpp and EVE_target.h, it writes the address to EVE_dma_buffer[] and sets EVE_dma_buffer_index to 1. -Note the trailing "_burst" in the following functions, these are special versions of these commands that can only be used within an EVE_start_cmd_burst()/EVE_end_cmd_bust() pair. +Note the trailing "_burst" in the following functions, these are special versions of these commands that can only be used within an EVE_start_cmd_burst()/EVE_end_cmd_bust() pair. These functions are optimized to push out data and nothing else. The final EVE_end_cmd_burst() either pulls back the chip-select to high. @@ -134,7 +129,7 @@ Or if we have DMA it calls EVE_start_dma_transfer() to start pushing out the buf As we have 7 commands for EVE in these simple examples, the second one has the address overhead removed from six commands and therefore needs to transfer 18 bytes less over SPI. So even with a small 8-bit controller that does not support DMA this is a usefull optimization for building display lists. -Using DMA has one caveat: we need to limit the transfer to <4k as we are writing to the FIFO of EVEs command co-processor. This is usually not an issue though as we can shorten the display list generation with previously generated snippets that we attach to the current list with CMD_APPEND. And when we use widgets like CMD_BUTTON or CMD_CLOCK the generated display list grows by a larger amount than what we need to put into the command-FIFO so we likely reach the 8k limit of the display-list before we hit the 4k limit of the command-FIFO. +Using DMA has one caveat: we need to limit the transfer to <4k as we are writing to the FIFO of EVEs command co-processor. This is usually not an issue though as we can shorten the display list generation with previously generated snippets that we attach to the current list with CMD_APPEND. And when we use widgets like CMD_BUTTON or CMD_CLOCK the generated display list grows by a larger amount than what we need to put into the command-FIFO so we likely reach the 8k limit of the display-list before we hit the 4k limit of the command-FIFO. It is possible to use two or more DMA transfers to the FIFO to build a single display list, either to get around the 4k limit of the FIFO or in order to distribute the workload better of the time necessary between two display renewals. You could for example do this, spread over three consecutive calls: @@ -160,9 +155,9 @@ EVE_cmd_dl_burst(CMD_SWAP); EVE_end_cmd_burst(); ```` -But you need to check with EVE_busy() before each of these blocks. -Maybe similar like this never compiled pseudo-code: - +But you need to check with EVE_busy() before each of these blocks. +Maybe similar like this never compiled pseudo-code: +```` thread_1ms_update_display() { static uint8_t state = 0; @@ -193,32 +188,39 @@ thread_1ms_update_display() } } } - +```` ## Remarks -The examples in the "example_projects" drawer are for use with AtmelStudio7. +The examples in the "example_projects" drawer are for use with AtmelStudio7. For Arduino I am using PlatformIO with Visual Studio Code. -The platform the code is compiled for is automatically detected thru compiler flags in EVE_target.h. - -The desired TFT is selected by adding a define for it to the build-environment, e.g. -DEVE_EVE3_50G -There is a list of available options at the start of EVE_config.h sorted by chipset. - -- Provide the pins used for Chip-Select and Power-Down in EVE_target.h for the target configuration you are using +The platform the code is compiled for is automatically detected thru compiler flags in EVE_target.h. +The desired TFT is selected by adding a define for it to the build-environment, for example: "-DEVE_EVE3_50G" +There is a list of available options at the start of EVE_config.h sorted by chipset. +The pins used for Chip-Select and Power-Down are configured in the EVE_target/EVE_target_xxxx.h files like this: +```` +#if !defined(EVE_CS) +#define EVE_CS 10 +#endif -When compiling for AVR you need to provide the clock it is running at in order to make the _delay_ms() calls used to initialize the TFT work with the intended timing. -For other plattforms you need to provide a DELAY_MS(ms) function that works at least between 1ms and 56ms and is not performing these delays shorter than requested. +#if !defined(EVE_PDN) +#define EVE_PDN 8 +#endif +```` +So you can override the default settings by adding your own defines to your build-environment, for example: "-DEVE_CS=9" +When compiling for AVR you need to provide the clock it is running at in order to make the _delay_ms() calls used to initialize the TFT work with the intended timing. +For other plattforms you need to provide a DELAY_MS(ms) function that works at least between 1ms and 56ms and is not performing these delays shorter than requested. The DELAY_MS(ms) is only used during initialization of the FT8xx/BT8xx. -See EVE_target.h for examples. +See EVE_target.h for examples. -In Addition you need to initialize the pins used for Chip-Select and Power-Down in your hardware correctly to output. -Plus setup the SPI accordingly, mode-0, 8-bit, MSB-first, not more than 11MHz for the init. -A couple of targets already have a function EVE_init_spi() in EVE_target.c. +In Addition you need to initialize the pins used for Chip-Select and Power-Down in your hardware correctly to output. +Plus setup the SPI accordingly, mode-0, 8-bit, MSB-first, not more than 11MHz for the init. +A couple of targets already have a function EVE_init_spi() in EVE_target.c or EVE_cpp_target.cpp. A word of "warning", you have to take a little care yourself to for example not send more than 4kB at once to the command co-processor -or to not generate display lists that are longer than 8kB. -My library does not check and re-check the command-FIFO on every step. +or to not generate display lists that are longer than 8kB. +My library does not check and re-check the command-FIFO on every step. This is optimized for speed, so the training wheels are off. ## Post questions here diff --git a/examples/EVE_Test_SAME51_EVE3-43G/tft.c b/examples/EVE_Test_SAME51_EVE3-43G/tft.c index 87f2027..41606fe 100644 --- a/examples/EVE_Test_SAME51_EVE3-43G/tft.c +++ b/examples/EVE_Test_SAME51_EVE3-43G/tft.c @@ -1,8 +1,8 @@ /* -@file tft.c / tft.cpp +@file tft.c @brief TFT handling functions for EVE_Test project -@version 1.20 -@date 2022-12-10 +@version 1.21 +@date 2023-01-08 @author Rudolph Riedel @section History @@ -19,12 +19,16 @@ - renamed PINK to MAGENTA 1.20 +- several minor changes + +1.21 - several minor changes */ #include "EmbeddedVideoEngine/EVE.h" #include "tft_data.h" +#include "tft.h" #define TEST_UTF8 0 @@ -47,16 +51,20 @@ #define MEM_LOGO 0x000f8000 /* start-address of logo, needs 6272 bytes of memory */ #define MEM_PIC1 0x000fa000 /* start of 100x100 pixel test image, ARGB565, needs 20000 bytes of memory */ - #define MEM_DL_STATIC (EVE_RAM_G_SIZE - 4096) /* 0xff000 - start-address of the static part of the display-list, upper 4k of gfx-mem */ -uint32_t num_dl_static; /* amount of bytes in the static part of our display-list */ +uint32_t num_dl_static = 0; /* amount of bytes in the static part of our display-list */ uint8_t tft_active = 0; -uint16_t num_profile_a, num_profile_b; +uint16_t num_profile_a = 0; +uint16_t num_profile_b = 0; #define LAYOUT_Y1 66 +void touch_calibrate(void); +void initStaticBackground(void); + + void touch_calibrate(void) { @@ -210,6 +218,8 @@ void touch_calibrate(void) /* write down the numbers on the screen and either place them in one of the pre-defined blocks above or make a new block */ #if 0 /* calibrate touch and displays values to screen */ + +#if 1 EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); @@ -218,15 +228,16 @@ void touch_calibrate(void) EVE_cmd_dl(DL_DISPLAY); EVE_cmd_dl(CMD_SWAP); EVE_execute_cmd(); +#else + EVE_calibrate_manual(EVE_HSIZE, EVE_VSIZE); +#endif - uint32_t touch_a, touch_b, touch_c, touch_d, touch_e, touch_f; - - touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); - touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); - touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); - touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); - touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); - touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); + uint32_t touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); + uint32_t touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); + uint32_t touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); + uint32_t touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); + uint32_t touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); + uint32_t touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); @@ -260,25 +271,25 @@ void touch_calibrate(void) void initStaticBackground(void) { EVE_cmd_dl(CMD_DLSTART); /* Start the display list */ - EVE_cmd_dl(TAG(0)); /* do not use the following objects for touch-detection */ + EVE_cmd_dl(DL_TAG); /* no tag = 0 - do not use the following objects for touch-detection */ - EVE_cmd_bgcolor(0x00c0c0c0); /* light grey */ + EVE_cmd_bgcolor(0x00c0c0c0UL); /* light grey */ - EVE_cmd_dl(VERTEX_FORMAT(0)); /* reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ + EVE_cmd_dl(DL_VERTEX_FORMAT); /* set to 0 - reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ /* draw a rectangle on top */ EVE_cmd_dl(DL_BEGIN | EVE_RECTS); - EVE_cmd_dl(LINE_WIDTH(1*16)); /* size is in 1/16 pixel */ + EVE_cmd_dl(LINE_WIDTH(1U*16U)); /* size is in 1/16 pixel */ EVE_color_rgb(BLUE_1); - EVE_cmd_dl(VERTEX2F(0,0)); + EVE_cmd_dl(DL_VERTEX2F); /* set to 0 / 0 */ EVE_cmd_dl(VERTEX2F(EVE_HSIZE,LAYOUT_Y1-2)); EVE_cmd_dl(DL_END); /* display the logo */ EVE_color_rgb(WHITE); EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS); - EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56, 56); + EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56U, 56U); EVE_cmd_dl(VERTEX2F(EVE_HSIZE - 58, 5)); EVE_cmd_dl(DL_END); @@ -341,7 +352,7 @@ void TFT_init(void) if (E_OK == EVE_init_flash()) { - EVE_cmd_flashread(MEM_FONT, 84928, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ + EVE_cmd_flashread(MEM_FONT, 61376, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ } #endif /* TEST_UTF8 */ @@ -353,7 +364,6 @@ void TFT_init(void) } } - uint16_t toggle_state = 0; uint16_t display_list_size = 0; @@ -394,11 +404,12 @@ void TFT_touch(void) } } break; + default: + break; } } } - /* dynamic portion of display-handling, meant to be called every 20ms or more */ @@ -406,7 +417,7 @@ void TFT_display(void) { static int32_t rotate = 0; - if(tft_active != 0) + if(tft_active != 0U) { #if defined (EVE_DMA) uint16_t cmd_fifo_size; @@ -418,18 +429,18 @@ void TFT_display(void) EVE_cmd_dl_burst(CMD_DLSTART); /* start the display list */ EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | WHITE); /* set the default clear color to white */ EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); /* clear the screen - this and the previous prevent artifacts between lists, Attributes are the color, stencil and tag buffers */ - EVE_cmd_dl_burst(TAG(0)); + EVE_cmd_dl_burst(DL_TAG); EVE_cmd_append_burst(MEM_DL_STATIC, num_dl_static); /* insert static part of display-list from copy in gfx-mem */ /* display a button */ EVE_color_rgb_burst(WHITE); - EVE_cmd_fgcolor_burst(0x00c0c0c0); /* some grey */ - EVE_cmd_dl_burst(TAG(10)); /* assign tag-value '10' to the button that follows */ + EVE_cmd_fgcolor_burst(0x00c0c0c0UL); /* some grey */ + EVE_cmd_dl_burst(DL_TAG+10U); /* assign tag-value '10' to the button that follows */ EVE_cmd_button_burst(20,20,80,30, 28, toggle_state,"Touch!"); - EVE_cmd_dl_burst(TAG(0)); /* no touch */ + EVE_cmd_dl_burst(DL_TAG); /* no touch */ /* display a picture and rotate it when the button on top is activated */ - EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100, 100); + EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100U, 100U); EVE_cmd_dl_burst(DL_SAVE_CONTEXT); EVE_cmd_dl_burst(CMD_LOADIDENTITY); @@ -438,7 +449,7 @@ void TFT_display(void) EVE_cmd_translate_burst(65536 * -70, 65536 * -50); /* shift back */ EVE_cmd_dl_burst(CMD_SETMATRIX); - if(toggle_state != 0) + if(toggle_state != 0U) { rotate += 256; } diff --git a/examples/EVE_Test_SAME51_EVE3-43G/tft_data.c b/examples/EVE_Test_SAME51_EVE3-43G/tft_data.c index b274913..2d47234 100644 --- a/examples/EVE_Test_SAME51_EVE3-43G/tft_data.c +++ b/examples/EVE_Test_SAME51_EVE3-43G/tft_data.c @@ -86,69 +86,57 @@ const /*__flash*/ uint8_t pic[3844] PROGMEM = /* Source File: Funtype.zlib unified.blob : 0 : 4096 -Funtype_24_ASTC.glyph : 4096 : 80832 -Funtype_24_ASTC.xfont : 84928 : 320 -z-lib compressed, unpacked size is 85248 +Funtype_24_ASTC.glyph : 4096 : 57280 +Funtype_24_ASTC.xfont : 61376 : 320 +z-lib compressed, unpacked size is 61952 The font is this one: https://fontlibrary.org/de/font/funtype -Converted with EAB using an ASCII map file to reduce the number of glyphs from 364 to 187. -This is only included for the purpose to demonstrate how to handle UTF-8 fonts with BT81x. +Converted with EAB 2.7.1 using an ASCII map file to reduce the number of glyphs to 119. +Glyphs are ASCII plus a select few from "Latin 1 Supplement" : ©«°±²³´µ¹»¼½¾ÄÖ×Üßäëö÷øü +This is only included to demonstrate how to handle UTF-8 fonts with BT81x. */ -const uint8_t flash[12753] PROGMEM = +const uint8_t flash[8199] PROGMEM = { - 0x78, 0x9c, 0xed, 0x7d, 0xd, 0x7c, 0x14, 0xd5, 0xb9, 0xfe, 0x33, 0x33, 0x9b, 0x99, 0x49, 0x76, 0x93, 0x5d, 0x64, 0x81, 0x5, 0x36, 0xd9, 0x55, 0xd7, 0x12, 0x5, 0xcc, 0x0, 0x11, 0x26, 0x12, 0xc8, 0x9, 0xac, 0xb9, 0x1, 0xb1, 0x5d, 0x34, 0x62, 0xd0, 0x2a, 0x83, 0xd5, 0x18, 0xb0, 0xf6, 0x6e, 0x20, 0x41, 0x82, 0xc1, 0x4c, 0xc4, 0x2b, 0xc1, 0x4a, 0x8d, 0x1f, 0xb7, 0x37, 0xfe, 0xb4, 0xed, 0xf6, 0xe3, 0x5f, 0x69, 0x6f, 0xed, 0x8d, 0xd4, 0xb6, 0xb4, 0xf5, 0x63, 0x48, 0xa8, 0x8d, 0x11, 0xed, 0xf6, 0xeb, 0x96, 0xeb, 0xad, 0xb7, 0xeb, 0xc5, 0x5b, 0xb1, 0xd5, 0x76, 0x10, 0x6c, 0x17, 0xd, 0xe4, 0x7f, 0xce, 0xcc, 0x6, 0x68, 0xe2, 0xed, 0xe2, 0xcd, 0x86, 0x60, 0xd9, 0x13, 0xd8, 0xdd, 0x77, 0xe6, 0xec, 0xce, 0x99, 0x67, 0xde, 0xf3, 0x7e, 0x9c, 0xf3, 0x9e, 0xf7, 0x44, 0x7f, 0xfb, 0xfe, 0x83, 0x45, 0x1c, 0x70, 0xe0, 0xeb, 0xa, 0x7c, 0x9c, 0x7, 0x40, 0xf2, 0x95, 0xa5, 0x8f, 0x5f, 0x34, 0x70, 0xa2, 0x10, 0x7d, 0xfb, 0xba, 0x1b, 0xd7, 0x5d, 0x37, 0xb7, 0x9e, 0x3c, 0x3c, 0xfb, 0xe0, 0x9c, 0xf7, 0xe7, 0x6c, 0x9d, 0xa3, 0xce, 0xbd, 0xb3, 0x42, 0x5f, 0x17, 0xea, 0xc0, 0x7f, 0x46, 0xd, 0xec, 0xd5, 0xf5, 0x69, 0x24, 0x36, 0x30, 0x48, 0x41, 0x1f, 0x67, 0x78, 0x75, 0xe1, 0x67, 0xf, 0x6c, 0x20, 0xba, 0xd0, 0x3d, 0xee, 0x27, 0x9f, 0x1f, 0xf0, 0x90, 0xaf, 0x54, 0xfc, 0x44, 0xdf, 0xba, 0x6e, 0x79, 0xe3, 0x5d, 0xb3, 0xeb, 0xc9, 0xf2, 0xd2, 0x6d, 0x15, 0xec, 0x37, 0xda, 0xe6, 0x36, 0xcd, 0x9d, 0x42, 0xaf, 0x36, 0xab, 0xca, 0x77, 0xfe, 0xdd, - 0x97, 0xee, 0xbf, 0x75, 0xfa, 0x17, 0xec, 0xab, 0x55, 0xad, 0xfb, 0xf1, 0xac, 0x13, 0x57, 0x72, 0xe2, 0xbb, 0x15, 0x7f, 0x58, 0xdf, 0xab, 0xe3, 0x27, 0x7d, 0x3, 0x9c, 0xfe, 0xf4, 0xb7, 0x84, 0x97, 0x67, 0xd1, 0x5f, 0xe2, 0xf5, 0xff, 0x68, 0xa8, 0x9b, 0xfb, 0x5, 0x7a, 0xf4, 0x17, 0xa9, 0xa3, 0xac, 0x8d, 0x75, 0x73, 0xbb, 0xe9, 0x91, 0x57, 0xe8, 0x11, 0xc7, 0x73, 0xc2, 0xcb, 0x75, 0x73, 0x83, 0x94, 0xfa, 0xdd, 0x0, 0xbf, 0xee, 0x87, 0xfa, 0xd3, 0xba, 0x42, 0x7e, 0x47, 0x8f, 0x57, 0x5b, 0xc7, 0xff, 0x44, 0x8f, 0x1f, 0xa3, 0xc7, 0x1b, 0x74, 0x81, 0xbe, 0x73, 0xfa, 0x67, 0xe8, 0xd1, 0x95, 0xeb, 0x38, 0x7d, 0x5, 0x7d, 0xff, 0xe5, 0xfa, 0xf8, 0xfa, 0x1b, 0xd7, 0x7d, 0x9f, 0x5e, 0xe3, 0xc6, 0x75, 0x41, 0x3d, 0xb1, 0xfe, 0xae, 0x75, 0x93, 0xe6, 0x76, 0xcd, 0x7d, 0xb6, 0x22, 0xe6, 0x5c, 0x79, 0x70, 0x6b, 0x6e, 0x33, 0x39, 0x58, 0xf2, 0xc0, 0x7d, 0x8e, 0x37, 0x6f, 0x9c, 0x37, 0xfb, 0x1e, 0xcf, 0x7b, 0x3, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xa7, 0xa5, 0x8, 0xa8, 0xe5, 0xae, 0xfd, 0x1b, 0xe5, 0xf6, 0xd, 0x35, 0xb3, 0x3d, 0xc7, 0x7e, 0xf3, 0xc3, 0xbf, 0x55, 0xa7, 0xff, 0xa8, 0xfd, 0x5b, 0xb0, 0xca, 0xc0, 0x40, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, - 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0xf4, 0xd9, 0x46, 0x4f, 0xc8, 0x7b, 0x28, 0x88, 0x22, 0xfa, 0x51, 0xcb, 0xb7, 0x8e, 0x8c, 0xf6, 0xf5, 0xbc, 0xb7, 0xa9, 0xa8, 0xc6, 0x4d, 0x9c, 0xc4, 0x3, 0xa4, 0x6a, 0x57, 0xd9, 0xdc, 0x3, 0xf7, 0x21, 0xf8, 0x3d, 0x33, 0x80, 0xd8, 0x54, 0x88, 0xe8, 0xe5, 0x46, 0xfb, 0xfa, 0xe2, 0xbd, 0xff, 0x15, 0xc4, 0x14, 0x9b, 0x42, 0xd2, 0x39, 0xe2, 0xfb, 0xad, 0xe6, 0xc0, 0xff, 0x9c, 0x3b, 0x8a, 0x0, 0x78, 0xeb, 0xc8, 0xda, 0x3, 0xb9, 0x70, 0x68, 0x10, 0x5c, 0xf3, 0xe, 0xeb, 0x82, 0x4b, 0xc9, 0x38, 0x9e, 0x1b, 0x80, 0x63, 0xff, 0xe3, 0xe, 0xfe, 0x9e, 0xe3, 0xca, 0xe4, 0x9d, 0xe7, 0x27, 0x50, 0x23, 0xe0, 0x73, 0x9c, 0x7d, 0xd2, 0xa1, 0xa3, 0x17, 0x6b, 0x8b, 0x39, 0x38, 0x52, 0xb7, 0x27, 0x14, 0x28, 0xf1, 0xa6, 0x88, 0xa0, 0xe7, 0x13, 0x47, 0x50, 0x4b, 0x76, 0x8b, 0x1e, 0xf0, 0x64, 0xac, 0xf9, 0x6d, 0x28, 0xbd, 0xc2, 0x43, 0x50, 0x54, 0xd4, 0xbd, 0x17, 0x9b, 0x50, 0xcb, 0x8e, 0xd4, 0xbc, 0x30, 0x7, 0x32, 0xc3, 0xd2, 0xd0, 0x57, 0x54, 0x44, 0xb9, 0x8c, 0xe3, 0xd7, 0xbc, 0x51, 0x46, 0xa3, 0x48, 0xaf, 0x40, 0xcb, 0x9c, 0xa4, 0xc0, 0x7f, 0xa6, 0xf3, 0x93, 0xf4, 0x38, 0x21, 0xec, 0x6c, 0xc2, 0x5c, 0xec, 0x94, 0x73, 0x48, 0x77, 0xa, 0x3e, 0xc4, 0xfa, 0x7f, 0xba, 0x2a, 0x7c, 0xfd, 0x2a, 0xdd, 0x4b, 0x10, 0x65, 0xb4, 0x91, 0xec, 0x1f, 0xf5, 0xfe, 0x91, 0xa5, 0x4f, 0x2f, 0x5d, - 0x23, 0xf0, 0xfd, 0x5c, 0x9f, 0xae, 0x46, 0xb8, 0x52, 0xa8, 0x31, 0xca, 0x7f, 0x82, 0xf8, 0x1e, 0x57, 0x4a, 0x24, 0xeb, 0x9f, 0x98, 0x79, 0x79, 0x28, 0xe7, 0x80, 0x1f, 0x78, 0x27, 0xc7, 0x19, 0x95, 0x8f, 0xee, 0x2f, 0xf1, 0x13, 0xe1, 0xd8, 0x81, 0x45, 0x90, 0x8b, 0xf0, 0x56, 0x90, 0x2f, 0xd6, 0x44, 0xd1, 0xd3, 0x3a, 0x6d, 0xc7, 0x56, 0xc4, 0xdc, 0x89, 0x80, 0x55, 0xdd, 0x81, 0xce, 0x66, 0xf3, 0xc2, 0x60, 0x2e, 0x1, 0xbf, 0x6e, 0xbd, 0xd6, 0xf1, 0xe2, 0x11, 0xc3, 0x28, 0xcd, 0x1, 0xb1, 0x7f, 0xb, 0x41, 0x8c, 0x42, 0xfb, 0xd2, 0xf6, 0x9f, 0x1d, 0xff, 0x6, 0x70, 0x7a, 0x20, 0x2f, 0xd5, 0x88, 0x15, 0xf5, 0x17, 0x23, 0xf1, 0x4a, 0xc0, 0x0, 0xca, 0x30, 0x7, 0x7, 0x46, 0x5d, 0x7e, 0x7b, 0x1b, 0x78, 0xe8, 0x39, 0xb6, 0xac, 0xd5, 0xda, 0xd4, 0x9e, 0xb, 0xd6, 0x5e, 0x8c, 0x46, 0x27, 0x3a, 0x80, 0xbb, 0x44, 0x44, 0x47, 0x2e, 0xcf, 0xd3, 0xd1, 0xe1, 0xef, 0xac, 0x87, 0xf6, 0xf0, 0x0, 0xb7, 0x94, 0x52, 0x7e, 0x5a, 0x46, 0xce, 0x7f, 0x38, 0xd6, 0x96, 0x24, 0x52, 0xa7, 0x5e, 0xb6, 0x93, 0x50, 0x41, 0xee, 0x7d, 0xe2, 0x53, 0x20, 0xc5, 0xa0, 0x78, 0xa2, 0x83, 0x24, 0x4b, 0x33, 0x7e, 0x3f, 0xa5, 0xf4, 0x7a, 0x1c, 0xf2, 0x22, 0x22, 0xe5, 0xee, 0x9e, 0xd9, 0x11, 0x8e, 0xf1, 0xa3, 0x64, 0xa, 0x1b, 0x90, 0x6f, 0x58, 0x2c, 0x45, 0xf9, 0x2b, 0xc9, 0x69, 0x55, 0xc9, 0x1e, 0x85, 0x88, 0x7d, 0x9a, 0xd4, 0x58, 0x9a, 0xc3, 0x1f, 0xe3, 0xba, 0xea, 0x64, 0x55, 0xd1, 0xcb, 0xa2, 0x62, 0x8f, 0x36, 0xd6, 0xfd, 0xf5, 0x3, 0xf4, 0x6f, 0x4a, - 0x5e, 0xdf, 0xe5, 0xee, 0x76, 0x27, 0xb8, 0xe6, 0x5d, 0xd, 0x40, 0x71, 0xb1, 0x75, 0x64, 0x5f, 0x34, 0xd2, 0x31, 0xd6, 0xed, 0x3b, 0xd3, 0x69, 0xef, 0x4c, 0xf, 0xf2, 0x70, 0x93, 0x28, 0xf5, 0xe4, 0x75, 0x33, 0xe, 0x28, 0xcd, 0x11, 0x4d, 0x6e, 0xdd, 0xea, 0x69, 0x50, 0xbb, 0xb4, 0xd6, 0x1b, 0xca, 0xd2, 0xf2, 0xdf, 0x6b, 0xf, 0xfc, 0x80, 0xbe, 0x13, 0x17, 0x93, 0x58, 0xa2, 0xc8, 0xa7, 0xad, 0x5f, 0xcd, 0x19, 0xdd, 0xcf, 0xc2, 0x44, 0x42, 0xe8, 0x16, 0x2a, 0x9d, 0x86, 0x50, 0xf3, 0xc2, 0x34, 0x6a, 0xf, 0x5a, 0x16, 0x8c, 0x83, 0xa0, 0xb, 0xd7, 0x21, 0x65, 0x48, 0x51, 0x75, 0xfb, 0xea, 0x40, 0xeb, 0x57, 0x28, 0x3f, 0xbe, 0xc5, 0x21, 0xb2, 0xf5, 0x39, 0xa8, 0x3e, 0x5d, 0xdc, 0x13, 0xa9, 0xe6, 0xc8, 0xf3, 0x38, 0x8c, 0x85, 0x70, 0x5b, 0x7f, 0x25, 0x47, 0xe5, 0xcf, 0x41, 0xd7, 0xff, 0x64, 0xcb, 0x4b, 0x4, 0x4f, 0xbb, 0x7d, 0xe3, 0x68, 0x72, 0x7, 0xb5, 0xfa, 0x37, 0xbf, 0x84, 0x80, 0x7c, 0x97, 0xf2, 0x53, 0x6a, 0xff, 0xd5, 0xf3, 0x8, 0x11, 0x43, 0x70, 0x97, 0x9b, 0x86, 0xe0, 0xc8, 0xbc, 0x7c, 0xe, 0xfd, 0x73, 0x63, 0xe2, 0x1, 0xa9, 0x1d, 0x97, 0x32, 0x32, 0xda, 0x32, 0x3b, 0xad, 0xbc, 0x9a, 0x30, 0xb, 0x61, 0x3d, 0x67, 0x91, 0x45, 0x26, 0x12, 0xc6, 0x58, 0xf3, 0xdb, 0x30, 0xfc, 0x9e, 0x59, 0x48, 0xf5, 0x49, 0xe4, 0x2, 0xf1, 0xa9, 0xcb, 0x2d, 0x26, 0x98, 0x17, 0x59, 0x4, 0x1f, 0x64, 0x52, 0xb1, 0x3a, 0xc1, 0x25, 0x42, 0x4b, 0xce, 0xc9, 0x38, 0xbf, 0xb3, 0xcb, 0xe4, 0x7a, 0x3c, 0x44, 0xfc, 0xef, 0x48, 0xae, 0xaa, - 0xaa, 0x69, 0xe5, 0x65, 0xe, 0x95, 0x97, 0xfc, 0x72, 0xf4, 0x68, 0xcc, 0x1e, 0x28, 0xeb, 0x1b, 0x6b, 0xbc, 0x86, 0xd2, 0x4b, 0x3b, 0x14, 0xfa, 0x1e, 0x16, 0x9e, 0xcb, 0xb1, 0x8f, 0xcc, 0xeb, 0x2d, 0x0, 0x22, 0xfc, 0x7b, 0x3, 0x3, 0xfb, 0x7e, 0x5d, 0x1b, 0x5a, 0xf2, 0x60, 0xa6, 0xaf, 0x77, 0xe9, 0x81, 0xff, 0x47, 0xdf, 0x83, 0x5, 0x36, 0x8d, 0xfa, 0x74, 0xf5, 0xf, 0x3e, 0xb2, 0x1e, 0x91, 0x20, 0x38, 0xd, 0xd0, 0xc5, 0xbd, 0xda, 0x9a, 0xb1, 0xc6, 0x2b, 0x4b, 0x67, 0x96, 0x1e, 0xae, 0x3f, 0xf2, 0xfe, 0xc8, 0x1d, 0xd2, 0x16, 0xec, 0x18, 0x35, 0xfd, 0x41, 0x52, 0xfa, 0xc3, 0x10, 0xc8, 0x29, 0xe8, 0x8f, 0xf0, 0x1d, 0x12, 0x92, 0x31, 0xc7, 0x64, 0x27, 0xc4, 0x97, 0xf7, 0xfd, 0xe6, 0xf9, 0xe7, 0xc7, 0x5a, 0x7f, 0x50, 0xfb, 0x4b, 0x5, 0x6, 0xad, 0x67, 0xe0, 0xcb, 0xce, 0x42, 0x98, 0x12, 0x83, 0xe0, 0xc6, 0x37, 0xae, 0xac, 0xde, 0xc9, 0x85, 0xbf, 0x3b, 0xb, 0x1b, 0x3e, 0x33, 0xe8, 0xc1, 0x7b, 0x4c, 0x5a, 0xff, 0x62, 0xfa, 0x61, 0xcf, 0x60, 0xfd, 0xb1, 0x7e, 0xde, 0x67, 0x1a, 0x6d, 0xc9, 0x67, 0x45, 0x17, 0xbb, 0x1f, 0x89, 0x56, 0x31, 0x18, 0x6b, 0xb6, 0x5d, 0x8d, 0xa5, 0xba, 0x43, 0x81, 0xaa, 0x89, 0x3e, 0xe4, 0x64, 0x7e, 0xfc, 0xa0, 0xa3, 0x51, 0x97, 0x7, 0x47, 0x58, 0xd4, 0x64, 0x6f, 0xba, 0xfa, 0xf2, 0xb6, 0xc9, 0x8, 0xf2, 0x83, 0xcf, 0x3b, 0xdf, 0x1c, 0x6b, 0xbc, 0x86, 0xd2, 0xf3, 0x77, 0x70, 0xa0, 0x1a, 0x24, 0xb0, 0x34, 0xd5, 0xc2, 0x51, 0xd7, 0x57, 0xd1, 0x69, 0x68, 0xaf, 0xa3, 0x1f, 0x79, 0x7e, 0xc7, 0xc0, - 0xc5, 0x3c, 0xff, 0xdf, 0xdb, 0x1c, 0xd4, 0xeb, 0xe8, 0xa7, 0x1d, 0xd8, 0x18, 0x38, 0x58, 0xf1, 0x30, 0x1f, 0xde, 0x76, 0x37, 0x73, 0x43, 0xec, 0xfe, 0x98, 0x30, 0xcd, 0xa6, 0x78, 0x8d, 0x96, 0x47, 0x64, 0x8b, 0x9c, 0x15, 0x51, 0xcf, 0x38, 0xfe, 0xf7, 0xbe, 0xb4, 0x8, 0x6a, 0xf0, 0xca, 0x8, 0x81, 0xc8, 0x47, 0xeb, 0x24, 0x84, 0xf, 0x5d, 0x43, 0x9f, 0x37, 0xbc, 0xad, 0x54, 0xdf, 0x19, 0x7a, 0xe6, 0xf1, 0xac, 0xc9, 0x9d, 0x45, 0xfd, 0x1b, 0x8b, 0x58, 0x57, 0x55, 0xa1, 0xbb, 0xd3, 0xd5, 0x5f, 0xb, 0xe6, 0xef, 0xa5, 0x8a, 0xcb, 0x73, 0xc6, 0xe1, 0xc7, 0xfc, 0xcf, 0x36, 0x13, 0x1c, 0x35, 0x11, 0x4c, 0xf7, 0x33, 0x40, 0xb3, 0xd2, 0x4, 0x17, 0x87, 0x1b, 0x34, 0x9d, 0x44, 0x28, 0xa8, 0x19, 0x6f, 0xaf, 0x77, 0xe6, 0x52, 0xc6, 0x5f, 0x56, 0xe9, 0x8a, 0xdc, 0xbf, 0x27, 0x6d, 0xfd, 0xe9, 0x8d, 0xa8, 0xd5, 0xbd, 0x36, 0x3, 0xf2, 0x9e, 0x31, 0xf7, 0x7f, 0x2f, 0xdb, 0x45, 0xed, 0x65, 0x17, 0x62, 0x66, 0x20, 0x96, 0xcb, 0x8c, 0x30, 0x79, 0xdb, 0x74, 0x78, 0xa8, 0x6, 0x64, 0xa5, 0xdc, 0x5c, 0xe4, 0x1c, 0xeb, 0xf6, 0x7d, 0xd4, 0xe8, 0xb0, 0x80, 0xb5, 0x56, 0xff, 0x48, 0x75, 0x92, 0xf0, 0x3, 0x54, 0x1a, 0xc6, 0xbe, 0x1b, 0x80, 0xa3, 0x8d, 0x30, 0x3a, 0xdd, 0xf7, 0x43, 0xf, 0xd1, 0xfa, 0xfa, 0x5b, 0x81, 0x98, 0xac, 0xb8, 0x4e, 0xa5, 0x3e, 0x9b, 0x2f, 0x48, 0xf2, 0x49, 0x3c, 0x8d, 0x22, 0x6a, 0x7e, 0x38, 0x11, 0x7e, 0x77, 0x72, 0x2c, 0x77, 0x35, 0xb7, 0x52, 0x51, 0x54, 0x55, 0x99, 0x1a, 0x28, 0x28, 0x7d, 0x71, 0x22, 0x5c, 0x26, - 0x6b, 0x8c, 0x41, 0xda, 0x92, 0x3, 0x2f, 0x36, 0xc5, 0x57, 0xe0, 0xde, 0x7a, 0xe0, 0x3b, 0x11, 0xb1, 0x9b, 0x50, 0xbf, 0xe8, 0x66, 0xdf, 0x2, 0x72, 0x31, 0xda, 0xb9, 0xef, 0x5a, 0xed, 0xd5, 0x8d, 0x70, 0xe, 0xd6, 0x61, 0xb0, 0xe8, 0xe9, 0xaf, 0x2f, 0x7e, 0xf3, 0x7b, 0xac, 0xa2, 0x3f, 0x1c, 0x6, 0x9, 0x87, 0xf, 0x8e, 0xd8, 0xde, 0xa9, 0x6b, 0xa7, 0x3c, 0x28, 0x1b, 0x42, 0x92, 0x6b, 0x5, 0x9b, 0x41, 0xa2, 0xfa, 0xf8, 0xf7, 0x9c, 0x42, 0xc4, 0xee, 0x48, 0xb8, 0xa2, 0x71, 0x14, 0xc6, 0x27, 0xbd, 0x2f, 0xcd, 0x87, 0x1e, 0x64, 0x37, 0x5f, 0x3e, 0x5b, 0xe3, 0xd4, 0xee, 0xa1, 0xe7, 0xe7, 0x15, 0xd7, 0x21, 0x41, 0x4d, 0xc0, 0x63, 0x2, 0xde, 0x19, 0x8f, 0xfe, 0xf1, 0xcd, 0xd1, 0xeb, 0xf1, 0xc5, 0x1b, 0x51, 0x53, 0x5c, 0x2c, 0xd7, 0x47, 0x15, 0x43, 0xc9, 0x74, 0x7b, 0x26, 0xdc, 0xcb, 0xf0, 0x4c, 0xd8, 0x33, 0x4a, 0xa4, 0x23, 0xe3, 0xbf, 0x9f, 0x69, 0x3a, 0xb4, 0x79, 0x25, 0x76, 0x41, 0x9c, 0xd2, 0xce, 0xb8, 0xe0, 0x60, 0xd4, 0x37, 0xd6, 0xed, 0xf9, 0xa8, 0xd3, 0xde, 0xfc, 0x5c, 0xda, 0x2b, 0x23, 0xab, 0x7f, 0x20, 0xa, 0x3e, 0x76, 0x64, 0xac, 0xdb, 0xf3, 0x61, 0xe9, 0xd2, 0x1c, 0xc7, 0xb1, 0x36, 0x71, 0x8f, 0x86, 0x47, 0x6b, 0xef, 0x91, 0x4e, 0x43, 0xfb, 0xeb, 0x64, 0x6a, 0xbf, 0x58, 0xda, 0x74, 0x80, 0x1b, 0xe0, 0x67, 0xa6, 0xbd, 0x5e, 0x95, 0xbc, 0x97, 0xbe, 0xeb, 0x1, 0x8b, 0x4c, 0x20, 0x3e, 0xd6, 0x78, 0xd, 0xc7, 0x2f, 0xeb, 0x7f, 0x8c, 0x84, 0x3e, 0xb8, 0xb2, 0x1, 0xb9, 0x3a, 0xbd, 0x9f, 0x6, 0xc3, 0xf2, 0xdb, - 0x97, 0x6c, 0xac, 0x2, 0x29, 0xd2, 0x27, 0x7, 0xe9, 0xa1, 0xfb, 0x90, 0x79, 0x7e, 0x64, 0xfc, 0xce, 0x79, 0x88, 0x58, 0xf6, 0x62, 0x17, 0x11, 0x4b, 0xf5, 0xb4, 0xe3, 0x7f, 0xde, 0x17, 0xf3, 0xa0, 0xf3, 0x1e, 0x78, 0x22, 0x91, 0xda, 0x88, 0xac, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xe5, 0xf9, 0xa, 0xa8, 0xc8, 0x19, 0xa7, 0x6e, 0xd9, 0x9d, 0x38, 0x44, 0x25, 0x50, 0xf8, 0x90, 0x23, 0xf1, 0x3b, 0xf7, 0x56, 0x6e, 0xaa, 0xc4, 0x59, 0x16, 0x42, 0xba, 0xef, 0x37, 0xfc, 0x40, 0x82, 0xc6, 0x97, 0xb2, 0x11, 0x6, 0x51, 0xe8, 0xe, 0xa6, 0xad, 0x4f, 0xed, 0xf5, 0xd4, 0x7c, 0x4b, 0xb1, 0xe9, 0x2c, 0x89, 0xf, 0xab, 0x1f, 0xfe, 0xd1, 0x55, 0xa8, 0xbf, 0x48, 0xb0, 0x27, 0xcc, 0x81, 0xd5, 0x35, 0x82, 0xf8, 0xe7, 0x4a, 0x52, 0xd0, 0xa7, 0x51, 0x8b, 0xe0, 0xdc, 0xb2, 0xeb, 0x10, 0x7e, 0x3f, 0x17, 0xdb, 0xc8, 0xe2, 0x71, 0xca, 0xc0, 0x7d, 0x7b, 0xb5, 0xa8, 0x2, 0xc7, 0x33, 0x57, 0x11, 0x8f, 0x83, 0x23, 0x9c, 0xc8, 0xaa, 0x57, 0x6e, 0x1a, 0x1b, 0xfc, 0x8c, 0xdc, 0xe4, 0x96, 0xdd, 0xaf, 0x33, 0xfc, 0x6a, 0xbe, 0xc1, 0x19, 0xd5, 0x7a, 0x14, 0x62, 0xd0, 0xae, 0x71, 0x2a, 0xf8, 0x2d, 0x45, 0x38, 0x85, 0x5f, 0x7a, 0xff, 0x8a, 0xe2, 0xf7, 0xbc, 0xfd, 0xf9, 0x87, 0xa6, 0xe0, 0x1e, 0x8e, 0x9f, 0x18, 0x7d, 0x91, 0xbe, 0x87, 0xa6, 0xda, 0x34, 0x54, 0x8a, 0xdf, 0x31, 0x8e, 0x88, 0x7b, 0x2d, 0xfc, 0x9c, 0xd7, 0x61, 0xed, 0x8e, 0x12, 0xdc, 0xbd, 0xbd, 0xb8, 0xd8, 0x63, 0xf0, 0x47, 0x4d, 0x9e, 0xc5, 0x4b, 0x4c, 0x1c, 0xf4, 0x67, 0xd6, 0x6d, 0x6c, 0xe5, - 0x9c, 0xd4, 0x1e, 0xdc, 0x88, 0xc1, 0xa2, 0xeb, 0xa3, 0x2e, 0xcf, 0x87, 0xfa, 0x6f, 0xde, 0xfc, 0x8b, 0x91, 0x13, 0x9c, 0xd3, 0xa5, 0x11, 0x5d, 0x14, 0xf6, 0xa4, 0xc7, 0x6f, 0xad, 0x3c, 0x1, 0x8e, 0x20, 0x78, 0x87, 0x6a, 0xea, 0xc2, 0x29, 0xe0, 0x9d, 0xce, 0x7f, 0x63, 0xfc, 0x57, 0x1b, 0x12, 0x10, 0xb3, 0xf, 0xac, 0x66, 0xf6, 0xb6, 0xf0, 0x34, 0x57, 0x48, 0xa4, 0x38, 0x97, 0x4c, 0x2c, 0x8c, 0x87, 0xf, 0x5d, 0x11, 0x3c, 0x3a, 0x69, 0x5f, 0xce, 0x86, 0x63, 0xed, 0x46, 0x42, 0xa3, 0xfc, 0xb7, 0xe0, 0x22, 0x8c, 0xef, 0xe5, 0x8a, 0xd9, 0xc, 0x32, 0xb0, 0x38, 0x79, 0xba, 0xf9, 0x8f, 0x3e, 0x2f, 0x7, 0xeb, 0xa8, 0x83, 0x3e, 0x3a, 0xf5, 0xd7, 0xff, 0x8b, 0x7e, 0x16, 0x6, 0x1f, 0x61, 0xc6, 0xf5, 0x47, 0x74, 0x15, 0xda, 0xa9, 0xa8, 0x15, 0x45, 0xaa, 0xad, 0x54, 0x55, 0x2c, 0x9d, 0x3e, 0x15, 0x2d, 0xc1, 0x75, 0xe8, 0x89, 0x40, 0xed, 0x6b, 0x5c, 0x81, 0xb5, 0xf2, 0x1a, 0x14, 0xcb, 0xe6, 0x21, 0x7b, 0x10, 0x35, 0x48, 0xc2, 0x65, 0xb3, 0x60, 0xf0, 0x54, 0x1c, 0x6b, 0x6c, 0x34, 0x43, 0x1f, 0xf1, 0xfc, 0xd1, 0x84, 0x6f, 0x7e, 0x83, 0xbe, 0xc7, 0x2c, 0x7d, 0x1e, 0x7b, 0x7, 0x98, 0x78, 0xef, 0x5c, 0x6a, 0xf, 0xfc, 0x32, 0x75, 0xfb, 0x7f, 0xb8, 0x3b, 0xdd, 0xf7, 0xe7, 0xb7, 0xaf, 0x40, 0xc4, 0x41, 0x58, 0xdb, 0xba, 0x12, 0xf4, 0x3e, 0xaa, 0x3a, 0x72, 0x74, 0x99, 0x72, 0x4e, 0xb9, 0xe5, 0x4d, 0xb1, 0xf8, 0xd, 0xfe, 0x2d, 0xae, 0x16, 0xdd, 0x44, 0xea, 0xe4, 0xe6, 0x10, 0x15, 0xe1, 0xed, 0xbf, 0xd2, 0xcf, 0x2d, 0x8f, 0x79, 0xa1, - 0x44, 0x13, 0x99, 0x18, 0x8f, 0xa9, 0xe6, 0x8, 0xaf, 0xbb, 0x89, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0xba, 0x6a, 0x58, 0x45, 0xbc, 0x16, 0x5e, 0x4a, 0x53, 0x2d, 0x35, 0x6, 0x60, 0xb9, 0x82, 0x6, 0x11, 0x3b, 0xc1, 0xe2, 0xb5, 0x96, 0x17, 0xe0, 0xa8, 0xee, 0x79, 0xd6, 0x3f, 0x7, 0x51, 0x7e, 0xac, 0xf5, 0x85, 0xe3, 0xd0, 0xb7, 0xe8, 0x7b, 0x22, 0x10, 0xcb, 0x85, 0xc2, 0xac, 0x88, 0x74, 0xf8, 0x79, 0xdf, 0xbe, 0x92, 0xea, 0x67, 0xc6, 0x9, 0xa4, 0x6a, 0xab, 0x9a, 0x7e, 0x7c, 0xfe, 0xef, 0x1d, 0xbf, 0xd0, 0xf4, 0xb7, 0x83, 0x89, 0x0, 0xa1, 0x50, 0xe9, 0xaf, 0x29, 0x72, 0x7a, 0xfc, 0xc2, 0xb7, 0xfd, 0x53, 0x42, 0xf7, 0xc7, 0x72, 0xe0, 0xf2, 0x97, 0x27, 0xcd, 0xc4, 0x59, 0x8f, 0x5f, 0xcd, 0x9b, 0x1c, 0xf5, 0xdf, 0x81, 0x1d, 0x70, 0xae, 0xd3, 0x7f, 0x92, 0x1e, 0x3f, 0x6a, 0xaf, 0xfd, 0x99, 0x9, 0x87, 0x17, 0x1b, 0x37, 0x29, 0x22, 0x97, 0xed, 0xbf, 0xe1, 0x71, 0xa, 0x82, 0x37, 0xef, 0x2f, 0x4, 0x1c, 0xa2, 0x5b, 0x4a, 0x8f, 0x5f, 0xa8, 0x89, 0x99, 0x3, 0x87, 0xb9, 0x8f, 0xc3, 0xb5, 0xb5, 0x7, 0x59, 0xfc, 0x4a, 0xc7, 0x51, 0x5b, 0xcd, 0x7c, 0x5e, 0x82, 0xa4, 0x40, 0xa2, 0xf6, 0x5a, 0x7a, 0xfe, 0x13, 0xd9, 0xf8, 0x79, 0x4f, 0x63, 0x84, 0x7d, 0x23, 0x59, 0x7b, 0xb6, 0xe3, 0x37, 0x4c, 0x1e, 0xbe, 0xeb, 0x20, 0xff, 0x7e, 0xcb, 0x77, 0xb8, 0xe0, 0x16, 0x12, 0x64, 0x47, 0x6a, 0x2e, 0x3c, 0x17, 0xd5, 0x70, 0xec, 0x8a, 0xec, 0x7e, 0xa5, 0x75, 0x20, 0x3f, 0x3d, 0xbf, 0x5d, 0x1d, 0xaf, 0x9, 0x5e, - 0x84, 0xa8, 0xe5, 0xd2, 0x56, 0xd4, 0x4a, 0x42, 0x7a, 0xfc, 0xc0, 0xa3, 0x84, 0x48, 0x3, 0xc2, 0x7b, 0x78, 0x1a, 0x85, 0x10, 0xcf, 0xe1, 0xd8, 0xb0, 0xe7, 0x79, 0x80, 0x46, 0x9d, 0xdc, 0x83, 0xb9, 0x47, 0x6b, 0x6f, 0x21, 0xb9, 0x10, 0x7d, 0x7, 0x58, 0xf5, 0xa4, 0xea, 0x64, 0xf8, 0x71, 0x12, 0xe, 0xb4, 0x69, 0xb, 0x7f, 0x3b, 0x1b, 0x9, 0xac, 0xad, 0x5e, 0x96, 0x1a, 0x7f, 0x0, 0xba, 0xdd, 0x1, 0xac, 0x54, 0x2f, 0xd2, 0x72, 0x89, 0x23, 0xaa, 0x5b, 0x16, 0xc8, 0xd5, 0x2f, 0x9f, 0x76, 0x79, 0x28, 0xf0, 0x76, 0xbc, 0x69, 0x44, 0xb4, 0xfc, 0x2a, 0x39, 0x87, 0x2c, 0xb6, 0xcf, 0xe1, 0xf5, 0x81, 0xc3, 0x52, 0xc6, 0xed, 0xbf, 0x6a, 0x4e, 0x5f, 0xf4, 0xc, 0x92, 0x88, 0xb, 0x86, 0x60, 0x38, 0xd, 0x21, 0xfc, 0xc4, 0xaf, 0xa9, 0xf7, 0xa3, 0x4, 0xec, 0xf3, 0x82, 0x40, 0xaf, 0x2f, 0xc4, 0x85, 0xd6, 0x2e, 0x38, 0x13, 0xe4, 0xb9, 0x81, 0xe7, 0x12, 0xa5, 0x2, 0xd8, 0x26, 0x4b, 0x29, 0xc4, 0x86, 0x3f, 0xcf, 0x26, 0x6a, 0xc2, 0x1d, 0x9f, 0x5f, 0xa2, 0x4a, 0x71, 0xb4, 0xf1, 0xba, 0xb6, 0x7d, 0x45, 0x70, 0x57, 0x9b, 0x45, 0x38, 0x94, 0x1e, 0x1e, 0x35, 0x6f, 0x86, 0x90, 0xa7, 0x57, 0x8a, 0x8a, 0x5e, 0xb6, 0x8e, 0xb5, 0xc3, 0xf1, 0xab, 0x1a, 0xf2, 0xef, 0xab, 0x50, 0x11, 0xcc, 0xa5, 0x1d, 0xe8, 0x59, 0x1, 0xe1, 0xa6, 0xeb, 0x49, 0xa7, 0xc1, 0x85, 0x10, 0xcd, 0x8c, 0xfd, 0x17, 0x3e, 0x52, 0x4, 0xff, 0xb6, 0x4a, 0xbd, 0x6d, 0xa, 0x8b, 0xfe, 0x2c, 0xf4, 0x9f, 0x34, 0x1f, 0xd7, 0x49, 0x92, 0xf5, 0xe2, 0x52, 0xdf, 0x1c, 0xea, 0xb, - 0x3a, 0x2f, 0xb2, 0x8e, 0xc4, 0x8f, 0x5d, 0xe1, 0x9d, 0x5e, 0x89, 0x7d, 0x82, 0x6a, 0xe3, 0x77, 0x77, 0xc5, 0xce, 0xb1, 0xee, 0xaf, 0x4b, 0xcd, 0x19, 0x4c, 0xde, 0x14, 0xc3, 0x2d, 0x58, 0x26, 0x7e, 0x3a, 0xfc, 0x9a, 0x3b, 0x27, 0xd0, 0xca, 0xb2, 0x7, 0x3a, 0x89, 0x74, 0x2a, 0xbd, 0x67, 0x3d, 0x7e, 0xa5, 0xff, 0xea, 0x47, 0xa9, 0xc9, 0xe9, 0x62, 0x52, 0x21, 0xa7, 0x82, 0x5f, 0xcd, 0x9a, 0x1c, 0x6a, 0x3f, 0xf3, 0x50, 0x70, 0x44, 0xaf, 0x20, 0x6a, 0xf0, 0x6c, 0xc7, 0xcf, 0xfb, 0x4, 0xf, 0x4f, 0x31, 0x47, 0xee, 0x51, 0xcb, 0xfa, 0x4e, 0x5, 0xbf, 0xd0, 0xe6, 0x9, 0x58, 0x10, 0xc, 0x53, 0x2a, 0x33, 0xf6, 0xcb, 0x47, 0x1d, 0xbf, 0x1a, 0x1, 0x7f, 0xe4, 0xd0, 0x8b, 0x24, 0x51, 0x23, 0xa2, 0xf, 0x8, 0xbd, 0xfd, 0x63, 0x68, 0xfb, 0x12, 0x1, 0x88, 0x5b, 0x76, 0x9b, 0xcd, 0xd4, 0x1e, 0x8c, 0xd7, 0xc0, 0x67, 0x57, 0x36, 0xa8, 0xba, 0x4b, 0x50, 0x7b, 0x63, 0x1a, 0xfd, 0x4c, 0x90, 0x2a, 0x23, 0xbd, 0xfe, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x82, 0xe1, 0x6, 0x7d, 0xd, 0x3f, 0xca, 0xd6, 0xcf, 0xc0, 0x71, 0x39, 0x7b, 0xd, 0x4, 0xa, 0xec, 0xf1, 0xfa, 0x44, 0x91, 0x55, 0xfd, 0x4c, 0x1c, 0xaf, 0x9f, 0x7e, 0x11, 0x5a, 0x22, 0x40, 0x59, 0x69, 0x2d, 0x11, 0xf9, 0xf4, 0xf8, 0xcd, 0x2f, 0x6e, 0x46, 0x9c, 0xb7, 0xe1, 0xf3, 0xfb, 0xa2, 0x67, 0x3d, 0x7e, 0xe1, 0x47, 0x35, 0xda, 0x5f, 0x85, 0xc9, 0x26, 0xb4, 0x86, 0xf9, 0x81, 0x82, 0xb4, 0xf8, 0x79, 0x2f, 0xbf, 0x3, 0x41, 0xe8, 0xe, 0x74, 0x58, 0x70, 0x9f, 0xf5, 0xf8, 0x35, - 0xc5, 0x2f, 0x81, 0x8f, 0xc3, 0x79, 0xdc, 0xa4, 0xae, 0xb0, 0xea, 0x49, 0xcf, 0x7f, 0x6c, 0xfe, 0xda, 0x87, 0x5c, 0xf, 0x88, 0x16, 0x89, 0x64, 0xf1, 0x1b, 0x46, 0x1f, 0x5c, 0x99, 0x1a, 0xff, 0xde, 0xab, 0xa1, 0x77, 0xdd, 0x6a, 0x49, 0xce, 0xc1, 0x22, 0xc9, 0x44, 0xa1, 0xe1, 0x36, 0xa5, 0xc3, 0x10, 0xd3, 0xe2, 0x15, 0xe6, 0xb0, 0xd1, 0xb6, 0x5f, 0x75, 0xeb, 0x35, 0xbd, 0xfd, 0xb4, 0x39, 0x48, 0xf9, 0x9f, 0x97, 0x69, 0xa9, 0x8, 0xc8, 0x8e, 0xb5, 0xc5, 0x4b, 0x91, 0xa, 0xbf, 0xc1, 0x63, 0xef, 0x48, 0x6e, 0xef, 0xf6, 0x4f, 0xc2, 0x69, 0xa4, 0x7e, 0x71, 0x7f, 0x45, 0x59, 0xf8, 0xb, 0xd7, 0x91, 0xcf, 0x8b, 0xc5, 0x71, 0x49, 0xe0, 0xb8, 0x83, 0x7, 0x39, 0xae, 0x4e, 0xe6, 0xa1, 0xe6, 0x5a, 0x4f, 0xd7, 0x64, 0x61, 0xac, 0xa7, 0xbd, 0xff, 0xe6, 0xff, 0x1b, 0x8c, 0xe9, 0x41, 0xfa, 0x7c, 0x45, 0x49, 0x12, 0xd8, 0x7c, 0xa5, 0x80, 0x8e, 0xe2, 0x83, 0xea, 0xed, 0x91, 0xb2, 0x28, 0xb, 0x4b, 0x2d, 0x9d, 0x1e, 0x40, 0x4b, 0xb4, 0xbb, 0x91, 0x48, 0x6, 0x61, 0x3e, 0x19, 0xf3, 0x7, 0xe8, 0x17, 0x5b, 0xcc, 0x8a, 0x7f, 0x8, 0x24, 0xe8, 0x87, 0xdc, 0xbc, 0x47, 0xd9, 0xf, 0x4d, 0x64, 0x2f, 0xb2, 0x8b, 0x47, 0x93, 0x79, 0xd, 0x14, 0xce, 0xcf, 0xba, 0x36, 0x55, 0x47, 0xe9, 0xfd, 0x95, 0xf0, 0x6d, 0xdf, 0x86, 0xde, 0x7b, 0x34, 0xe0, 0xf7, 0x59, 0x65, 0xb2, 0xf7, 0xb6, 0x8b, 0x61, 0x4, 0xed, 0xb3, 0x1a, 0x51, 0x93, 0xe1, 0x97, 0x1e, 0xc7, 0x9a, 0x80, 0x6e, 0x4f, 0x70, 0x72, 0x9c, 0xc0, 0xfc, 0xbd, 0xe7, 0xf0, 0x17, 0x7e, 0xbf, 0xf3, - 0xb3, 0x25, 0xce, 0x67, 0x9d, 0xc9, 0x4b, 0x78, 0x24, 0x18, 0xba, 0xec, 0x2b, 0x39, 0x14, 0xe2, 0x15, 0x72, 0x1, 0x82, 0xba, 0xcd, 0xae, 0xb4, 0xa3, 0x8c, 0xd8, 0xbe, 0xfa, 0xf0, 0xfa, 0x98, 0x4f, 0x9e, 0xec, 0xbf, 0x6d, 0x62, 0x83, 0x2d, 0x3a, 0xf6, 0x6, 0xe7, 0x14, 0x74, 0x96, 0xbc, 0x91, 0x83, 0xf0, 0x82, 0x29, 0x7a, 0x5e, 0xe9, 0x52, 0x1d, 0x2e, 0xbf, 0x1a, 0x35, 0x8d, 0xe1, 0xf3, 0x65, 0xef, 0xde, 0xe, 0x8d, 0x5b, 0x26, 0x31, 0xef, 0x44, 0x3f, 0x5, 0xfe, 0x1b, 0xea, 0xbf, 0xd, 0x8d, 0x7f, 0xbe, 0xbc, 0x98, 0x67, 0xf1, 0x73, 0x56, 0x79, 0xf2, 0x81, 0x87, 0x77, 0x87, 0x73, 0xac, 0xb5, 0x64, 0xc7, 0xe7, 0x17, 0xd8, 0xf8, 0x83, 0x15, 0xff, 0x5c, 0x42, 0xff, 0xdc, 0x28, 0x1c, 0xeb, 0xf5, 0x33, 0xe9, 0xf0, 0xf3, 0xde, 0x36, 0x1d, 0x17, 0xd0, 0x87, 0xdd, 0xdb, 0x59, 0x1b, 0x89, 0x54, 0xe, 0x5f, 0xf, 0x7c, 0xb6, 0xe1, 0x67, 0x8d, 0xdf, 0x6b, 0x89, 0x40, 0x22, 0xcf, 0x1e, 0xbf, 0x4f, 0x87, 0x1f, 0x9b, 0x9f, 0x43, 0x97, 0xee, 0x7e, 0xeb, 0x17, 0x8d, 0x52, 0x45, 0x2, 0xa0, 0xf7, 0xf3, 0x71, 0xeb, 0xa7, 0x2c, 0xb4, 0x28, 0x7d, 0x96, 0xe1, 0x57, 0xfa, 0x87, 0xf3, 0x51, 0xcc, 0xe2, 0xeb, 0x84, 0x2e, 0xb6, 0xdc, 0xf2, 0x54, 0xf0, 0x63, 0x6b, 0xa7, 0x9e, 0x35, 0x4b, 0xf6, 0x97, 0xc4, 0xd9, 0x4d, 0xde, 0x71, 0x3, 0x15, 0x7c, 0xfd, 0x5c, 0xa3, 0xd5, 0x5c, 0x99, 0x3f, 0xdb, 0xf0, 0x9b, 0xdf, 0x3e, 0xf, 0x1e, 0x84, 0x21, 0xfa, 0x8b, 0x9, 0x4e, 0x1, 0xbf, 0x26, 0xdf, 0x44, 0xdd, 0xe1, 0x60, 0x83, 0x99, 0x5b, 0x2b, 0x94, - 0x7b, 0x86, 0xeb, 0x87, 0xb3, 0xd, 0xbf, 0xb4, 0xfc, 0x99, 0x83, 0xbd, 0x27, 0xbc, 0xb5, 0xcc, 0xcf, 0xff, 0x32, 0x7d, 0x4a, 0xf8, 0x38, 0xd5, 0xa9, 0x1, 0x1c, 0xe1, 0x49, 0xda, 0xf5, 0xda, 0xa1, 0x42, 0x1e, 0x37, 0x23, 0xb8, 0x26, 0x17, 0xbe, 0x29, 0xb2, 0x3, 0xab, 0xc7, 0x1a, 0x9f, 0xf, 0xd0, 0x1f, 0xfd, 0x27, 0xf3, 0x5f, 0x73, 0x47, 0x2e, 0x36, 0x12, 0xd7, 0x79, 0x7b, 0xba, 0xcb, 0xd4, 0x5d, 0xad, 0xcf, 0xd, 0xbb, 0x3f, 0x96, 0xef, 0x24, 0xe8, 0xb7, 0x9e, 0xf5, 0x3e, 0xf6, 0x4a, 0xbf, 0xff, 0x47, 0x8e, 0x88, 0xb5, 0x6c, 0x85, 0x8d, 0x7, 0x6a, 0x34, 0xdd, 0xf5, 0xea, 0xea, 0x17, 0x22, 0xa7, 0xeb, 0x39, 0xbc, 0xc3, 0x27, 0x6c, 0xfe, 0xb3, 0xfc, 0x71, 0x40, 0xb1, 0x52, 0x6, 0xb0, 0xf5, 0x47, 0xe4, 0xe4, 0xf5, 0x47, 0x37, 0x36, 0xf9, 0x42, 0x70, 0x5c, 0x4, 0x8f, 0x68, 0x10, 0xb1, 0x2f, 0xc2, 0x95, 0xd, 0xe5, 0xbf, 0x3f, 0x52, 0xfb, 0x25, 0x32, 0xf9, 0xbd, 0x41, 0xf6, 0x1c, 0x75, 0x7b, 0x70, 0xfe, 0x8e, 0x56, 0xfa, 0x7e, 0x25, 0x23, 0x88, 0x46, 0xed, 0x54, 0xb6, 0x7e, 0x3a, 0xce, 0xc5, 0x39, 0x93, 0x4f, 0x5a, 0x36, 0xd5, 0x74, 0x73, 0x6, 0xe4, 0x63, 0x81, 0xa4, 0xd0, 0x5d, 0x3e, 0x37, 0x24, 0xa, 0x28, 0xde, 0x56, 0x60, 0x75, 0x1e, 0x77, 0xcc, 0xad, 0xbb, 0x75, 0x61, 0x18, 0x3f, 0x56, 0x1, 0x49, 0xab, 0xf1, 0x86, 0xcd, 0xb5, 0x69, 0xfd, 0x9f, 0xe8, 0x52, 0xa8, 0x2d, 0x40, 0x1f, 0xca, 0x88, 0xa8, 0x40, 0x75, 0x5c, 0xaf, 0xc0, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x7b, 0x31, - 0xa3, 0xfe, 0x48, 0xf2, 0x8d, 0xa6, 0x8d, 0x8a, 0xce, 0x87, 0x30, 0xfe, 0xc5, 0x8, 0xe5, 0x5b, 0x28, 0x78, 0x35, 0x59, 0x47, 0x26, 0xf3, 0xf6, 0x22, 0xaf, 0xa0, 0xc1, 0x57, 0x9d, 0x76, 0x7e, 0xe3, 0x90, 0xc7, 0xee, 0x57, 0x4c, 0x3d, 0xb0, 0x74, 0xf8, 0x85, 0xc7, 0x4f, 0x40, 0xf4, 0xd2, 0xd7, 0xd9, 0xfa, 0x96, 0x44, 0x54, 0xf5, 0xb9, 0xce, 0x76, 0xfc, 0xc2, 0x5f, 0xb8, 0x49, 0x2f, 0xb8, 0x80, 0x30, 0xf7, 0x43, 0x10, 0x4e, 0x5, 0xbf, 0x99, 0x2f, 0x93, 0xee, 0xf2, 0xc4, 0x24, 0x88, 0x5, 0x8f, 0x25, 0x4d, 0xed, 0xac, 0xe7, 0xbf, 0xf0, 0x33, 0x13, 0xb1, 0x65, 0x92, 0x62, 0xe1, 0xc7, 0x9d, 0xa, 0x7e, 0x8f, 0xce, 0x40, 0xa1, 0xe6, 0x0, 0x95, 0xdf, 0x8f, 0x7d, 0xee, 0xee, 0xe1, 0xf8, 0x9c, 0x6d, 0xf8, 0xd5, 0x6c, 0xbb, 0x0, 0xb1, 0x62, 0x40, 0xed, 0xb0, 0x8f, 0xac, 0x88, 0x5e, 0x89, 0x22, 0xe4, 0xb5, 0x70, 0xf8, 0x11, 0x62, 0x12, 0xea, 0xa8, 0x3e, 0x38, 0x7c, 0x72, 0xfe, 0x97, 0xcf, 0xec, 0x2a, 0x86, 0x43, 0xb5, 0x0, 0x22, 0x5b, 0xdc, 0xf9, 0x99, 0xc8, 0x17, 0xd5, 0xcd, 0x51, 0x3f, 0xb9, 0x84, 0xaa, 0x80, 0x16, 0x24, 0xf9, 0x3f, 0x9a, 0xe5, 0x60, 0xcb, 0xdb, 0xba, 0xc, 0x8, 0x33, 0x3c, 0x3a, 0x9a, 0x76, 0x6c, 0x85, 0x3e, 0xde, 0x8a, 0x8f, 0xe2, 0x3c, 0x10, 0x22, 0x55, 0xca, 0xc7, 0xd9, 0x6c, 0xf0, 0xd, 0xd4, 0xe4, 0x69, 0x41, 0x89, 0x21, 0x8d, 0xb5, 0xbe, 0xfd, 0x80, 0xfb, 0x59, 0x64, 0xf2, 0xef, 0x62, 0x40, 0x48, 0xd2, 0x26, 0xee, 0xc2, 0x5a, 0xf9, 0x93, 0xa8, 0x96, 0x5b, 0x12, 0xd2, 0x42, 0x9b, 0x25, 0x32, 0xce, - 0xff, 0xb7, 0xee, 0x4a, 0xc8, 0x1, 0x8c, 0x87, 0x2b, 0xdf, 0xc5, 0xca, 0xf4, 0x28, 0xf, 0x35, 0x15, 0x1e, 0x8e, 0x22, 0xef, 0xb0, 0xf5, 0xee, 0xa1, 0xeb, 0x6f, 0x45, 0xbb, 0xc6, 0x4d, 0x5a, 0x6, 0xf5, 0xb7, 0xab, 0x15, 0xdf, 0x88, 0xf3, 0xb5, 0x64, 0xde, 0x7e, 0x71, 0x1c, 0xe3, 0xf6, 0xea, 0x92, 0x42, 0xd4, 0xd9, 0xcc, 0x21, 0x69, 0x8e, 0x4e, 0x84, 0x6c, 0x70, 0x61, 0x4f, 0x6f, 0x77, 0x77, 0x5f, 0x34, 0x92, 0x79, 0xfc, 0xde, 0xdd, 0xa4, 0xe5, 0x93, 0x9c, 0x1b, 0x2c, 0xf0, 0x5c, 0xf9, 0xf9, 0x96, 0xfd, 0x44, 0xcf, 0x44, 0x82, 0x3d, 0x37, 0xb1, 0x76, 0x84, 0x17, 0xe4, 0xeb, 0xfc, 0x63, 0xd3, 0xad, 0xda, 0x86, 0xb9, 0x4b, 0xb5, 0xf2, 0xbf, 0x38, 0xd9, 0x82, 0x1e, 0x8d, 0xeb, 0xd3, 0x92, 0x8d, 0x63, 0x8d, 0x57, 0xf8, 0x57, 0x9b, 0xd0, 0xfb, 0xba, 0xc, 0x29, 0xa5, 0x80, 0x9b, 0x93, 0xad, 0x89, 0x67, 0x1c, 0xc8, 0x53, 0x2d, 0x91, 0x23, 0xb2, 0xf1, 0x3f, 0x3e, 0xee, 0x3e, 0xcc, 0x8, 0xa7, 0x89, 0x2, 0x52, 0x2a, 0x80, 0x59, 0x7b, 0xff, 0xeb, 0xfc, 0xf5, 0x87, 0xe7, 0x77, 0x22, 0xd8, 0x96, 0x5f, 0x42, 0x30, 0xf9, 0xcd, 0xb0, 0xf0, 0xb1, 0x4f, 0x12, 0x69, 0x27, 0x54, 0xef, 0x43, 0x2e, 0xe8, 0x3, 0xbb, 0x25, 0xeb, 0x80, 0x1c, 0xd8, 0x19, 0xbe, 0x63, 0x3, 0x26, 0x90, 0xe7, 0x67, 0xe5, 0x96, 0xfb, 0x7d, 0xf4, 0x6f, 0xc6, 0x58, 0xe3, 0x67, 0xcf, 0xe7, 0xf, 0xae, 0x2f, 0x7, 0xbc, 0xdb, 0x9b, 0x10, 0xd, 0x2a, 0x41, 0xfa, 0x71, 0x8f, 0xd2, 0xa1, 0x23, 0x7c, 0x5d, 0x83, 0x71, 0x1f, 0x3d, 0xbf, 0xad, 0x9f, 0x45, 0x50, 0xe8, - 0x46, 0x55, 0x74, 0x35, 0x8b, 0xa5, 0x5d, 0x8c, 0x3b, 0x71, 0x4a, 0xeb, 0xdb, 0xfe, 0xde, 0xf1, 0xb, 0x6d, 0xff, 0x17, 0x92, 0xc, 0x50, 0x1b, 0x3e, 0xc7, 0x6e, 0x75, 0xcd, 0xb, 0xd4, 0xbe, 0xb, 0x36, 0x30, 0x13, 0x39, 0xc2, 0x1d, 0x89, 0x62, 0x6d, 0xb5, 0xc, 0x52, 0xdd, 0xbf, 0xc5, 0xd, 0x94, 0xc6, 0xdb, 0x4a, 0xcc, 0x70, 0xd3, 0x3f, 0x68, 0x14, 0xb8, 0xe2, 0x18, 0xb1, 0x7f, 0xe1, 0x6c, 0xc7, 0x4f, 0xca, 0x1b, 0x4f, 0xed, 0x3, 0xb2, 0xe6, 0x1b, 0x32, 0xed, 0x93, 0xe4, 0x6e, 0xf, 0xeb, 0xaf, 0x6e, 0x8f, 0x7d, 0xd6, 0xb5, 0xdf, 0x3c, 0xb9, 0xff, 0xe2, 0x69, 0xf3, 0xfe, 0xcb, 0x27, 0xc9, 0xf, 0x5, 0x13, 0x85, 0x8c, 0x4a, 0xe4, 0x67, 0xf1, 0xfb, 0x0, 0xfd, 0xf1, 0xe6, 0x2d, 0x2c, 0x14, 0x9a, 0xf1, 0x5f, 0xa7, 0x5e, 0xd6, 0x49, 0xed, 0xe5, 0x2d, 0xba, 0xee, 0xf, 0xe6, 0xf4, 0x9b, 0xd4, 0x27, 0x55, 0xcb, 0xcb, 0x33, 0xaf, 0xef, 0x3f, 0xda, 0xf8, 0xad, 0xe9, 0x5c, 0x4e, 0x59, 0x89, 0xba, 0x70, 0x64, 0xdf, 0x8d, 0x4c, 0xa, 0xae, 0x2d, 0xfe, 0x38, 0x64, 0x59, 0x62, 0x1f, 0x9d, 0x4f, 0x1b, 0x7c, 0xe, 0x5b, 0xcf, 0x2f, 0x27, 0x58, 0xe6, 0x35, 0x40, 0xe8, 0xe9, 0xee, 0xd, 0x3d, 0x3a, 0xd, 0xb8, 0x2b, 0x80, 0x1b, 0x2, 0x3e, 0x9f, 0x9c, 0xe5, 0xbf, 0x61, 0xb4, 0x77, 0x8e, 0x84, 0x8d, 0x1e, 0x44, 0xfe, 0x21, 0x95, 0x11, 0xc8, 0x5b, 0x16, 0x1, 0xcc, 0xdd, 0x2, 0xd9, 0xd0, 0x66, 0x69, 0xe8, 0xb4, 0xcf, 0xa3, 0xb6, 0x81, 0xa8, 0xf6, 0x82, 0xe, 0xff, 0xa9, 0xac, 0xff, 0x8, 0x97, 0xf9, 0x40, 0x16, 0x53, 0x81, 0xb1, - 0x4c, 0x55, 0xfd, 0x6e, 0x27, 0x1c, 0xff, 0x6c, 0xa9, 0x25, 0xfd, 0xcb, 0xcc, 0x4, 0x34, 0xa2, 0xca, 0x89, 0xf5, 0x49, 0xf0, 0x24, 0xee, 0xff, 0xed, 0x33, 0xa5, 0x7f, 0x70, 0xa1, 0xff, 0xfd, 0x95, 0x62, 0x59, 0x91, 0x2e, 0xfe, 0xf7, 0xd, 0x75, 0x2f, 0x87, 0x9e, 0xa9, 0x84, 0x56, 0x2c, 0x4d, 0x6c, 0x7, 0x7c, 0x3f, 0x5d, 0xad, 0xa8, 0xcd, 0x9d, 0xb9, 0x54, 0xdb, 0x85, 0xed, 0x6f, 0xd4, 0x36, 0x9e, 0xf6, 0xf5, 0x9b, 0x77, 0xb6, 0x97, 0x82, 0x7a, 0xb5, 0x2f, 0xec, 0x4e, 0x35, 0x7a, 0xae, 0xfc, 0x26, 0xed, 0xcf, 0xcc, 0xa0, 0xbd, 0xd7, 0xaf, 0x3f, 0x92, 0xf9, 0xfc, 0xa7, 0x2c, 0x7f, 0x8e, 0xc9, 0xd9, 0x63, 0xa7, 0x71, 0xe1, 0xcf, 0x94, 0xff, 0xc7, 0x43, 0xa9, 0x16, 0xca, 0xd9, 0x59, 0x97, 0xa9, 0xbb, 0xbd, 0x33, 0xc1, 0x26, 0xd7, 0xf6, 0x94, 0x2a, 0x84, 0x13, 0x7a, 0x66, 0x83, 0xda, 0xb, 0x17, 0xe1, 0x44, 0x19, 0xf5, 0xf8, 0xbe, 0xb4, 0xcf, 0x7f, 0xce, 0x42, 0xc4, 0x38, 0xd4, 0xde, 0x91, 0x32, 0x0, 0x97, 0x76, 0xde, 0xa9, 0xf3, 0x2e, 0x44, 0xdc, 0x8c, 0x79, 0x38, 0x4e, 0x58, 0x5b, 0xbf, 0x10, 0x8a, 0x6c, 0xa, 0x54, 0x59, 0x24, 0x74, 0xa9, 0x9c, 0xad, 0x8f, 0xff, 0x96, 0xd5, 0xf0, 0xd4, 0xd, 0x8c, 0xf8, 0xfa, 0x77, 0x4c, 0xc7, 0xbd, 0xc0, 0x7b, 0x4b, 0x5c, 0xbe, 0xf9, 0xaa, 0xcf, 0x55, 0xe0, 0xdd, 0x3e, 0x1e, 0x1d, 0x41, 0x7b, 0xc8, 0xaf, 0x37, 0x72, 0x4f, 0x59, 0x6a, 0xbe, 0xd4, 0x2a, 0x87, 0x4d, 0x37, 0xc5, 0xf7, 0x6a, 0x38, 0x98, 0xaf, 0xa9, 0x26, 0xa3, 0xa6, 0x21, 0x7c, 0x71, 0xac, 0xf1, 0x1b, 0x4a, 0x5f, 0x1b, - 0xdd, 0x0, 0x87, 0xe3, 0x8b, 0x6d, 0xd4, 0x7c, 0xde, 0xd8, 0xf5, 0x29, 0x2, 0xef, 0x4b, 0xb7, 0xc1, 0x28, 0xe6, 0x92, 0x2c, 0xab, 0x18, 0x6f, 0xf8, 0x22, 0x1f, 0xab, 0x2d, 0x7, 0x55, 0x25, 0x41, 0xbe, 0x1a, 0xcf, 0x31, 0x2b, 0xfa, 0x6c, 0xc7, 0x2f, 0x4c, 0xed, 0xbf, 0x7f, 0xd, 0x9c, 0x98, 0x4f, 0x60, 0xf3, 0x43, 0x25, 0x5d, 0xec, 0x93, 0x6a, 0x8, 0x33, 0x4d, 0x6b, 0xbe, 0xcd, 0x70, 0x53, 0xc4, 0xd0, 0x5, 0x77, 0x82, 0x6b, 0xc, 0xff, 0x33, 0x45, 0xf2, 0x5a, 0xc7, 0xc2, 0x84, 0x6e, 0xd7, 0x3f, 0xdb, 0xf1, 0x1b, 0xe6, 0x8f, 0xe4, 0xe0, 0x58, 0xa5, 0xc4, 0xd6, 0x27, 0x6b, 0x50, 0x4b, 0x35, 0x2e, 0xdc, 0x54, 0x8d, 0x19, 0x9, 0xc7, 0xb2, 0x64, 0xc2, 0xb2, 0x5f, 0x32, 0xee, 0xaf, 0x7f, 0xd4, 0xf1, 0xab, 0xa2, 0xfa, 0x21, 0x48, 0x82, 0x85, 0x71, 0xa1, 0xcb, 0x6a, 0x67, 0xf1, 0x85, 0xd4, 0x7e, 0x79, 0xad, 0x22, 0xc9, 0xc1, 0xe0, 0x4d, 0x2e, 0x2e, 0xd9, 0xf1, 0x19, 0xfa, 0x4, 0xab, 0x7a, 0xde, 0xc4, 0xcc, 0xe7, 0x1f, 0x5a, 0xe3, 0xd6, 0x9c, 0xfa, 0x62, 0x51, 0xd1, 0xa5, 0x2e, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x90, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xd1, 0xe, 0xd9, 0x52, 0xca, 0x88, 0x9b, 0x67, 0x5c, 0x3e, 0x84, 0xd2, 0x6d, 0x93, 0xb4, 0x69, 0xd0, 0x3a, 0xc5, 0x94, 0xb, 0x5c, 0xfa, 0x62, 0x23, 0x7c, 0x66, 0xd3, 0x8a, 0x72, 0x10, 0xae, 0xbb, 0x2b, 0xc2, 0x51, 0x7d, 0xb7, 0x2, 0x27, 0x8a, 0x1e, 0x7e, 0xe9, 0x35, 0xc4, 0x6e, 0x24, 0x53, 0x75, 0xc3, 0x3e, 0x70, 0xb6, 0xe3, 0x17, 0x9e, 0x7f, 0x2b, 0x7c, - 0xd3, 0x91, 0x87, 0x49, 0x76, 0x4e, 0x81, 0xf0, 0x2, 0x5, 0x21, 0xef, 0x32, 0x73, 0x61, 0x11, 0xed, 0xc1, 0xd1, 0xb2, 0x40, 0x78, 0x73, 0x14, 0xca, 0xeb, 0xf6, 0xb9, 0x44, 0xc2, 0x60, 0xf6, 0xc3, 0x6c, 0x64, 0x70, 0xfc, 0xe5, 0xa3, 0x8e, 0xdf, 0x50, 0x7a, 0x6d, 0xfd, 0x7a, 0x38, 0x94, 0xd6, 0x24, 0x25, 0x76, 0x87, 0xa7, 0xbb, 0xfd, 0xe1, 0x67, 0xc6, 0x69, 0x5e, 0x82, 0xab, 0xd9, 0x59, 0xc3, 0x30, 0x32, 0x3e, 0x1f, 0xfd, 0xf7, 0x86, 0x5f, 0x73, 0x72, 0x36, 0x35, 0x57, 0x8b, 0x15, 0x9, 0x82, 0xca, 0x89, 0x2a, 0x42, 0x97, 0xdc, 0xa0, 0xe9, 0x6f, 0x1c, 0x13, 0x56, 0xd4, 0xbb, 0x5c, 0x2f, 0xdf, 0x2e, 0x64, 0x3c, 0x1f, 0x39, 0x9b, 0x3f, 0x8f, 0xa7, 0xec, 0x67, 0x96, 0xf3, 0x68, 0x4d, 0xed, 0x2d, 0x64, 0x16, 0x7b, 0x56, 0xf8, 0x1c, 0x7d, 0xed, 0x56, 0x1c, 0xd7, 0xaf, 0x82, 0x97, 0xeb, 0x38, 0x3f, 0x68, 0x8d, 0x47, 0xde, 0x37, 0x7d, 0x5e, 0xb4, 0x1c, 0x8b, 0x25, 0x59, 0xaf, 0xe0, 0x8d, 0x8b, 0x81, 0xd6, 0xfe, 0xb1, 0xc6, 0x6b, 0x62, 0xde, 0x78, 0x74, 0x49, 0xf8, 0x5a, 0x98, 0xd9, 0xf9, 0x18, 0x77, 0x2e, 0xb3, 0x57, 0xbe, 0x1f, 0xb4, 0x55, 0x9e, 0xeb, 0x67, 0xa6, 0x44, 0xf5, 0x71, 0x82, 0x8b, 0x8a, 0x8c, 0x1f, 0x11, 0x5d, 0xde, 0xbf, 0x51, 0xcc, 0x7b, 0x28, 0xa8, 0x15, 0x2, 0xb1, 0x12, 0xfb, 0x17, 0x46, 0x2c, 0x3f, 0xde, 0x2f, 0xd2, 0xe5, 0x18, 0x8f, 0x4e, 0x2b, 0xfc, 0xcf, 0x1f, 0x68, 0xda, 0xc5, 0xc2, 0x6b, 0x22, 0x6c, 0x4, 0x28, 0x88, 0xbd, 0x44, 0x9d, 0xc7, 0xf2, 0xc3, 0x58, 0xb3, 0x43, 0x44, 0x82, 0xbe, 0xa, 0x55, - 0x1b, 0x37, 0x21, 0x91, 0x13, 0x4d, 0xc4, 0xb9, 0x38, 0x6f, 0xc2, 0xbc, 0x7f, 0xac, 0xf1, 0xfb, 0x0, 0xff, 0x83, 0xf5, 0x96, 0xe3, 0xfe, 0x87, 0xf7, 0xb6, 0x85, 0x8, 0x6, 0xdb, 0xd8, 0xf8, 0x1, 0x11, 0xcb, 0x14, 0x92, 0x69, 0xff, 0x63, 0x98, 0xff, 0xd6, 0x3e, 0x1e, 0xd5, 0x76, 0x6f, 0x45, 0xc8, 0xbc, 0x8b, 0xfa, 0x6f, 0x7e, 0x7b, 0xff, 0xc, 0x56, 0x7a, 0xe6, 0x1c, 0x62, 0xf3, 0x4d, 0x26, 0xdf, 0x88, 0x46, 0x16, 0x33, 0xe3, 0x24, 0x69, 0xf3, 0x5, 0x9e, 0x6e, 0x7a, 0xa8, 0xff, 0xd1, 0xf0, 0x88, 0xf, 0x1e, 0xe8, 0xe7, 0x3a, 0x1a, 0x23, 0xa2, 0x4, 0x4f, 0x34, 0xd3, 0xfe, 0xc7, 0x47, 0x1d, 0xbf, 0x53, 0xf3, 0x3f, 0x58, 0xf7, 0x1d, 0x1d, 0xff, 0xe3, 0xa3, 0x8e, 0x1f, 0x93, 0x7f, 0x1d, 0x12, 0xea, 0x7f, 0xc9, 0xec, 0x3f, 0x79, 0xdc, 0xb9, 0x35, 0x4b, 0x36, 0x22, 0x16, 0x8c, 0x72, 0xac, 0xfb, 0xb6, 0x29, 0x51, 0xe9, 0x5a, 0xe5, 0x46, 0x14, 0xf1, 0x5f, 0xec, 0x2d, 0xa3, 0x34, 0x79, 0xe0, 0xc0, 0xcd, 0x13, 0xf2, 0x1e, 0x42, 0x82, 0x5, 0xe4, 0x47, 0x5, 0x3d, 0x8b, 0xdf, 0x7, 0xd8, 0x2f, 0x7, 0x6e, 0xa1, 0x38, 0xba, 0xd9, 0x1d, 0xb8, 0x76, 0xc5, 0x9, 0x17, 0x7e, 0xa6, 0x15, 0x5e, 0x9f, 0xba, 0xc2, 0x4c, 0x8c, 0x8e, 0xff, 0xf6, 0xf7, 0x86, 0x5f, 0x8d, 0x80, 0x4b, 0xdb, 0x4e, 0x98, 0xc7, 0xa8, 0x59, 0xc2, 0x31, 0x4a, 0x43, 0x4f, 0xe4, 0x94, 0xf2, 0x37, 0x7d, 0x68, 0xf9, 0xf1, 0x6a, 0xb3, 0xde, 0x97, 0x13, 0xb9, 0x88, 0xfe, 0x78, 0x45, 0x5, 0xe5, 0xeb, 0x35, 0x96, 0xa6, 0x97, 0x29, 0xfb, 0xef, 0xa2, 0xef, 0xcf, 0xcb, - 0x6b, 0x8a, 0x8f, 0x90, 0x97, 0x3, 0x24, 0x35, 0x23, 0x83, 0xbb, 0xbd, 0xbf, 0xb8, 0x8, 0x78, 0x67, 0x37, 0x7c, 0xd0, 0x1b, 0x36, 0xd, 0x94, 0x9c, 0x71, 0xf6, 0x60, 0x73, 0xe4, 0x42, 0x44, 0x9b, 0xa9, 0xf4, 0x1b, 0xcc, 0xdf, 0xb9, 0x59, 0x40, 0x8, 0xfa, 0x39, 0xc9, 0x72, 0x9b, 0x29, 0x32, 0xcf, 0x7f, 0xc6, 0xa2, 0x7e, 0xee, 0xa7, 0x42, 0xf, 0xe5, 0x3f, 0x93, 0xfb, 0x33, 0xc2, 0xe3, 0xd7, 0x82, 0xd9, 0x2f, 0xb4, 0x9, 0x1e, 0xdf, 0x64, 0x77, 0x11, 0xe3, 0xbf, 0x6a, 0x92, 0x42, 0xaf, 0x67, 0xce, 0x1f, 0x6a, 0x4, 0xfe, 0xcf, 0x5c, 0x9f, 0x26, 0xee, 0x6d, 0xdf, 0xba, 0x42, 0x69, 0x14, 0x5f, 0x1c, 0x6b, 0xbc, 0x86, 0xce, 0x9f, 0xdf, 0xac, 0xf4, 0xea, 0x1a, 0x35, 0xc9, 0xc0, 0xb2, 0xca, 0x82, 0x13, 0x98, 0xfe, 0x88, 0xda, 0xe9, 0x87, 0x46, 0x65, 0xfe, 0xbc, 0xca, 0xac, 0x37, 0xf2, 0xd, 0x31, 0x44, 0x6d, 0x68, 0x77, 0xc2, 0x69, 0xeb, 0xab, 0xd4, 0x4f, 0x9b, 0x8, 0x10, 0xa7, 0xfc, 0x80, 0xb, 0x64, 0x82, 0x7d, 0xb9, 0xc5, 0x5d, 0xae, 0xef, 0x5f, 0x3, 0x2c, 0xd2, 0x8f, 0x8d, 0x47, 0x2b, 0x8f, 0x56, 0xe8, 0x15, 0x63, 0xce, 0x7f, 0x43, 0xe7, 0xcf, 0x99, 0x3f, 0x60, 0x5a, 0xf3, 0x17, 0x33, 0x21, 0x51, 0xad, 0xec, 0x9d, 0xb9, 0x1e, 0xb2, 0x4e, 0x38, 0x3b, 0x64, 0xc8, 0xa7, 0x65, 0x7a, 0xfe, 0xfc, 0xa3, 0x8e, 0xdf, 0xd0, 0xf9, 0xf3, 0xf0, 0x23, 0x4e, 0x7c, 0x53, 0xae, 0xbc, 0x48, 0x2c, 0x75, 0x39, 0xe0, 0x2f, 0x90, 0xc2, 0x9b, 0x9b, 0x10, 0xbc, 0xc0, 0x77, 0x91, 0x9f, 0xa2, 0xe5, 0x53, 0xcd, 0x44, 0xa6, 0xe7, 0xcf, 0x3f, - 0xea, 0xf8, 0xd, 0xd3, 0x1f, 0xb9, 0x1e, 0xe4, 0x26, 0x16, 0x89, 0x2c, 0x84, 0xcc, 0x9a, 0xff, 0x7d, 0xa2, 0x17, 0xc1, 0x4f, 0xec, 0x9f, 0xca, 0xf0, 0x53, 0x54, 0x35, 0xe3, 0xf9, 0x5d, 0xff, 0xde, 0xf0, 0xcb, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0x3e, 0xdd, 0xb4, 0x7c, 0xab, 0xa, 0x1e, 0xd2, 0x46, 0x5d, 0xda, 0x65, 0x9c, 0x4a, 0xfe, 0x94, 0x91, 0xd2, 0x73, 0xa3, 0x7c, 0x50, 0x13, 0xfb, 0x39, 0xe8, 0x9c, 0x3e, 0x1b, 0x71, 0x2b, 0xff, 0xa4, 0x7d, 0x8e, 0x38, 0x4d, 0xc1, 0x3c, 0xe3, 0xf6, 0xa7, 0x4b, 0x47, 0x87, 0x9b, 0x8b, 0x1, 0xb9, 0x3e, 0xe8, 0x70, 0x61, 0xce, 0xbc, 0x8a, 0xf9, 0x93, 0xff, 0x2a, 0xdf, 0x9, 0x37, 0x3c, 0x5f, 0x7f, 0x96, 0xfe, 0x6b, 0xba, 0xb9, 0x6b, 0x9, 0x5b, 0x1c, 0x10, 0xcc, 0x4d, 0x5a, 0x29, 0x8b, 0x50, 0x57, 0xfd, 0x69, 0xdc, 0x2d, 0xdf, 0xff, 0x8a, 0x70, 0x98, 0x2f, 0x47, 0x49, 0x7a, 0x7e, 0x2c, 0xcd, 0xc1, 0xef, 0x39, 0xb4, 0x25, 0xd7, 0x41, 0x50, 0xd8, 0xe, 0x31, 0xa7, 0x50, 0x3f, 0xc9, 0xa9, 0x4a, 0x24, 0xf9, 0x9c, 0x42, 0xb8, 0x3c, 0xf, 0x6a, 0x2e, 0x64, 0xfb, 0x41, 0x5b, 0xb1, 0xe4, 0x31, 0x74, 0x6b, 0x5c, 0xf8, 0x47, 0xb, 0xad, 0xd, 0xeb, - 0x7a, 0xd9, 0x11, 0x45, 0xf5, 0xaf, 0x88, 0xcf, 0xc3, 0x6f, 0x2, 0x45, 0x8d, 0x5c, 0xe7, 0x64, 0x52, 0x10, 0xcb, 0x55, 0x9a, 0xcd, 0xdb, 0xe9, 0x9, 0xc7, 0x22, 0x96, 0xfe, 0x18, 0x67, 0x40, 0x3e, 0x1b, 0xef, 0x76, 0x19, 0xed, 0xe4, 0x5a, 0xb1, 0xac, 0x5b, 0x79, 0x8a, 0xe5, 0x5c, 0x9, 0x3d, 0xa3, 0xa0, 0x57, 0x7b, 0x89, 0xbb, 0x84, 0x4, 0x3b, 0xe, 0xbc, 0xb1, 0x85, 0xe4, 0xcc, 0x8e, 0xb2, 0xed, 0x58, 0xac, 0x5, 0x7, 0x6c, 0x55, 0xfd, 0x88, 0xaf, 0xf7, 0xf6, 0x52, 0x96, 0xff, 0xf4, 0x63, 0x3a, 0x38, 0xc8, 0x91, 0xca, 0xa4, 0xf7, 0xb6, 0x8f, 0xd, 0xee, 0xa7, 0xdd, 0x17, 0xe5, 0xd4, 0xbd, 0x35, 0x42, 0x2a, 0x1f, 0x6c, 0x37, 0x11, 0x95, 0xda, 0x5d, 0x77, 0x84, 0xa, 0x2f, 0x9, 0x3a, 0x8b, 0x2b, 0xb, 0xab, 0x3f, 0xfe, 0xd5, 0x9f, 0x1d, 0x78, 0x7d, 0xff, 0xee, 0xb1, 0xc6, 0x6b, 0x58, 0xff, 0x6d, 0x72, 0x63, 0x62, 0xbf, 0x6b, 0xb1, 0xc7, 0xe3, 0xf3, 0x7, 0x9c, 0xf6, 0x7a, 0xc, 0xa9, 0x88, 0x2b, 0x47, 0x12, 0x26, 0x5b, 0x74, 0x9b, 0xee, 0xfb, 0x4d, 0xbb, 0x24, 0xcc, 0x0, 0x22, 0xd8, 0xa3, 0x89, 0x7d, 0xa7, 0x50, 0xdf, 0x9b, 0x5f, 0x64, 0xed, 0x87, 0x6c, 0xe1, 0x25, 0xaa, 0xc3, 0xf6, 0x1f, 0x77, 0xbc, 0xf4, 0x3b, 0x68, 0x3e, 0x6d, 0x30, 0x87, 0xc8, 0x4d, 0x2c, 0xdf, 0x37, 0x5f, 0xd8, 0xe6, 0x4e, 0x8, 0xa6, 0xf6, 0x74, 0xb2, 0xa4, 0x9c, 0xf2, 0xaf, 0x59, 0x79, 0x4f, 0x59, 0xa3, 0xb6, 0x7f, 0xd3, 0x91, 0x39, 0xb4, 0x42, 0x69, 0xe, 0x6f, 0xe, 0xae, 0xe5, 0xdc, 0x19, 0xbd, 0x63, 0xf9, 0x30, 0x7e, 0x17, 0xf0, 0x35, - 0xfa, 0x41, 0xd6, 0x53, 0x75, 0x32, 0x8e, 0xdf, 0xa3, 0x4e, 0x6c, 0xab, 0xaf, 0xe7, 0xc, 0xd1, 0xe5, 0x2f, 0x90, 0x4, 0x84, 0xb, 0x97, 0xc1, 0x55, 0x85, 0x2b, 0x5, 0x8f, 0x8f, 0x2d, 0xbf, 0x48, 0xdf, 0x1f, 0x3f, 0xe4, 0xfa, 0xa0, 0x9a, 0x37, 0x37, 0x53, 0x3e, 0xbe, 0x49, 0x8a, 0xa0, 0xfb, 0xca, 0xca, 0xb2, 0x5a, 0x34, 0xd7, 0xde, 0x2, 0x87, 0xa6, 0x29, 0xd6, 0x69, 0x51, 0xed, 0x39, 0x29, 0x7f, 0x17, 0x8e, 0x1d, 0xfe, 0x93, 0xf3, 0xda, 0xe2, 0x4f, 0x21, 0xf9, 0x46, 0x2b, 0x1, 0xf7, 0xf1, 0x3d, 0x15, 0x9f, 0x5f, 0xf, 0x6f, 0xfe, 0xb9, 0xe8, 0xd5, 0x5, 0x78, 0x74, 0x6d, 0xc5, 0xc6, 0xe7, 0xc7, 0x3e, 0x5f, 0xbf, 0x77, 0xfd, 0xf5, 0x70, 0x98, 0x1c, 0x8f, 0xde, 0x5a, 0x52, 0xa5, 0x96, 0x65, 0xf5, 0x45, 0x3a, 0x7e, 0xfb, 0xec, 0xbf, 0x4, 0x2f, 0x63, 0xdb, 0xf5, 0xa4, 0x98, 0xbe, 0x29, 0x59, 0x8d, 0xd0, 0x53, 0x5, 0x93, 0x6b, 0x41, 0x99, 0x41, 0x35, 0x10, 0x16, 0xb0, 0xe8, 0xe4, 0xfd, 0x44, 0xaf, 0xee, 0x50, 0xe0, 0x23, 0x56, 0x3a, 0x1b, 0x91, 0xc9, 0xf4, 0x11, 0xdb, 0x2f, 0x1b, 0x37, 0xe1, 0xce, 0x5, 0x8c, 0x67, 0x4b, 0x10, 0x94, 0x12, 0xfc, 0x35, 0x0, 0x7f, 0x40, 0x80, 0x41, 0x55, 0x55, 0x2b, 0xb0, 0x21, 0xed, 0xfe, 0xb3, 0x23, 0xa5, 0xeb, 0x8a, 0x97, 0x22, 0xe8, 0x62, 0x19, 0xe, 0x9c, 0xb4, 0x5, 0xe5, 0x98, 0x6c, 0xe5, 0xeb, 0x31, 0x58, 0x86, 0x4b, 0xdd, 0x21, 0xa4, 0xdf, 0xaf, 0xea, 0xea, 0xda, 0x6, 0xab, 0xc3, 0x51, 0xc9, 0x41, 0x98, 0x3e, 0x60, 0xf6, 0x97, 0x9b, 0xfe, 0xd2, 0x2, 0xb4, 0xc0, 0xe4, 0x13, - 0xce, 0x30, 0x87, 0xa7, 0x52, 0xd0, 0x59, 0xaf, 0x99, 0x6e, 0xff, 0x55, 0xdb, 0xd8, 0x72, 0x1f, 0xfe, 0xf1, 0x50, 0xe1, 0x83, 0x8d, 0x4b, 0x7f, 0x7e, 0xfe, 0x92, 0xd, 0xe0, 0x8f, 0x55, 0xba, 0x63, 0x2e, 0xac, 0xc3, 0x4d, 0x88, 0xf1, 0x6c, 0x7f, 0x8d, 0xc0, 0xe0, 0xb3, 0x3, 0x81, 0x41, 0xf1, 0xad, 0x62, 0xcb, 0x59, 0x91, 0xb0, 0xfe, 0x8d, 0x78, 0x7f, 0x26, 0x47, 0xe1, 0x26, 0x10, 0xbe, 0x4e, 0xbb, 0xeb, 0xc7, 0xf4, 0x57, 0x5d, 0xfb, 0x47, 0xbc, 0xbe, 0x89, 0xca, 0xe3, 0x3, 0x95, 0x6a, 0x77, 0x4, 0xc9, 0xfa, 0xad, 0x6c, 0x43, 0x9d, 0xd0, 0xbb, 0x9c, 0xd6, 0x33, 0xad, 0x9f, 0x2b, 0x8d, 0x2a, 0xbe, 0xcf, 0xdd, 0xcc, 0xb7, 0x65, 0x1a, 0xbf, 0xd0, 0x23, 0x51, 0x78, 0xf8, 0xa7, 0xb9, 0x56, 0x9d, 0x3e, 0x72, 0xf9, 0xa6, 0xa2, 0xb4, 0xf5, 0x1f, 0xe5, 0x58, 0xfe, 0xc9, 0x5e, 0x9b, 0x9e, 0xfd, 0xe4, 0x58, 0xf7, 0xdf, 0xa1, 0xf4, 0xd2, 0x1d, 0x6d, 0xd6, 0xf6, 0x5b, 0x52, 0x6a, 0x15, 0xd8, 0x68, 0x5f, 0x6f, 0x7a, 0x74, 0x1a, 0x92, 0x47, 0x18, 0x8b, 0xf1, 0x3f, 0xec, 0x77, 0xf3, 0x68, 0xde, 0x11, 0xa3, 0x9f, 0xc9, 0x24, 0xfb, 0x3c, 0x86, 0xf5, 0xdf, 0xe3, 0xfa, 0x24, 0x66, 0xb8, 0x6b, 0x4e, 0x43, 0xfb, 0x3e, 0x6a, 0x74, 0x8d, 0x60, 0xed, 0x6f, 0xe, 0x9d, 0x65, 0x4, 0xa2, 0xff, 0xc6, 0xba, 0x3d, 0x67, 0x3a, 0x5d, 0x57, 0xbd, 0xd2, 0xb2, 0x76, 0xe, 0xbb, 0x8f, 0x4a, 0xab, 0x90, 0xe5, 0xa7, 0x11, 0xcb, 0xc3, 0xcd, 0x2b, 0xb1, 0xb, 0xe2, 0x94, 0x76, 0x4a, 0xe9, 0x7, 0xa3, 0x19, 0x5f, 0xaf, 0x7a, 0xda, 0xf9, 0x63, 0x87, 0x1f, - 0x4a, 0xb5, 0xc9, 0x1d, 0x45, 0x0, 0x6e, 0xc, 0xf7, 0x67, 0x59, 0x3e, 0x11, 0x7d, 0xa, 0xfb, 0x1c, 0xb4, 0x64, 0x7a, 0xe8, 0x68, 0x18, 0x58, 0x20, 0x7a, 0xed, 0x84, 0xb, 0x3d, 0x69, 0xfd, 0xab, 0x8f, 0xf9, 0xdc, 0x86, 0x47, 0x60, 0xc9, 0x91, 0x6c, 0x17, 0xa3, 0x4e, 0xe6, 0xe0, 0xe8, 0x4a, 0x38, 0x4d, 0xbe, 0x85, 0x5e, 0x51, 0x2, 0xd5, 0xff, 0xf7, 0x9c, 0x6c, 0x3f, 0x31, 0x7f, 0x88, 0x2a, 0x5e, 0x93, 0x9a, 0x7, 0xb, 0x74, 0x77, 0xc2, 0x39, 0xe2, 0xfb, 0x93, 0x9b, 0xd9, 0x46, 0x5b, 0xd4, 0x1a, 0xd3, 0x17, 0x66, 0x62, 0x3f, 0xa, 0xea, 0x6f, 0x1e, 0xb3, 0xf6, 0xdb, 0xd0, 0xc4, 0x6e, 0x1d, 0x96, 0x3f, 0x94, 0xac, 0xe4, 0xba, 0x23, 0x5c, 0x4f, 0xe4, 0xdc, 0xd6, 0xba, 0xf4, 0xf6, 0xf4, 0x94, 0x3e, 0xb6, 0xd2, 0x3e, 0xc6, 0x3d, 0x3c, 0x63, 0x11, 0x69, 0x97, 0xc7, 0x9d, 0x9b, 0xae, 0x7e, 0x35, 0xa7, 0xf3, 0x8d, 0xcc, 0x52, 0x62, 0x59, 0x98, 0xe9, 0x7f, 0xb6, 0x7f, 0x89, 0xc1, 0x85, 0x35, 0xeb, 0x34, 0x51, 0xfc, 0x9b, 0xa8, 0xdb, 0x31, 0x88, 0x5f, 0xff, 0xfe, 0xff, 0xbc, 0x2b, 0x7c, 0x87, 0x82, 0x78, 0x82, 0xc3, 0x52, 0xb6, 0x81, 0x27, 0xc7, 0x9, 0x27, 0xed, 0xdf, 0x19, 0x1f, 0x8b, 0xfd, 0x3b, 0x87, 0xd2, 0x6b, 0x69, 0xc7, 0x51, 0x65, 0x24, 0xe2, 0x3d, 0xd6, 0x76, 0x3a, 0x70, 0x6c, 0x9e, 0x4e, 0x9b, 0xf6, 0x55, 0x5, 0x3b, 0x3c, 0xf7, 0x24, 0xd4, 0x82, 0x51, 0x97, 0x4f, 0x17, 0x75, 0xae, 0xa7, 0xef, 0x33, 0xad, 0xbd, 0x8, 0x61, 0x34, 0x20, 0xb4, 0x80, 0x1a, 0xb7, 0xed, 0xe, 0xdd, 0xce, 0x0, 0x78, 0x68, 0x73, 0x55, - 0xf5, 0x97, 0xa1, 0xff, 0xcf, 0x40, 0x0, 0x5b, 0x50, 0xc9, 0xfe, 0xc6, 0x1a, 0xaf, 0x61, 0xf8, 0xf5, 0x56, 0xd8, 0xde, 0xeb, 0x67, 0x4b, 0x4a, 0x42, 0xb0, 0xf2, 0x29, 0xf1, 0x7e, 0x83, 0x2b, 0xd5, 0x25, 0xd3, 0xca, 0x42, 0x9f, 0xe9, 0xeb, 0x95, 0x4e, 0x5f, 0x6, 0xcf, 0xa1, 0x27, 0x23, 0x39, 0x6e, 0xdb, 0x65, 0xe, 0xbf, 0x7f, 0x2d, 0x72, 0x21, 0xda, 0x1b, 0x98, 0xba, 0x3, 0xfe, 0x75, 0xdb, 0x28, 0x92, 0x8a, 0xb5, 0x25, 0xc7, 0x76, 0xf7, 0xfe, 0x87, 0x16, 0x96, 0xbe, 0x70, 0x3b, 0x60, 0x49, 0x7, 0xbe, 0xb4, 0x71, 0xf9, 0x56, 0x75, 0xac, 0xf1, 0x1a, 0x4a, 0x7b, 0x9f, 0xb8, 0x75, 0xd0, 0xf9, 0xdf, 0xc9, 0xd2, 0x50, 0xc9, 0xd, 0x39, 0x70, 0x20, 0x52, 0x6e, 0xb0, 0xb1, 0x60, 0x64, 0x9e, 0xff, 0xc2, 0x47, 0xab, 0x81, 0x19, 0xb2, 0xe2, 0xf7, 0xb1, 0x74, 0x6b, 0xb0, 0xf2, 0xff, 0xd4, 0xa7, 0x1a, 0xe0, 0x30, 0x75, 0x77, 0xa8, 0xf0, 0x5c, 0xe0, 0x3c, 0x2a, 0x52, 0xd9, 0x1, 0xe3, 0xd0, 0xe4, 0xd2, 0x1c, 0xf9, 0x18, 0xe7, 0xf4, 0xb1, 0x6c, 0x87, 0x15, 0x91, 0x3a, 0xe9, 0x8c, 0xc3, 0xaf, 0xe6, 0xc2, 0x65, 0x8, 0x86, 0x96, 0xa3, 0xac, 0xc3, 0xce, 0xa3, 0x60, 0xe5, 0xef, 0x62, 0xf7, 0x92, 0x80, 0x9b, 0xe1, 0x99, 0x79, 0x79, 0xf1, 0x9, 0x38, 0x28, 0x3b, 0xe9, 0xbb, 0x3, 0x4d, 0xc6, 0x62, 0x61, 0x58, 0x3e, 0xa4, 0x95, 0xe6, 0x8d, 0x30, 0xe8, 0x79, 0x97, 0xd5, 0x9a, 0x15, 0x1b, 0xbc, 0xb7, 0xcd, 0x44, 0x75, 0x19, 0x24, 0x57, 0xf1, 0xfa, 0xdb, 0x55, 0x91, 0x37, 0xc6, 0x1a, 0xaf, 0x61, 0xfc, 0x30, 0x75, 0x16, 0x59, 0x46, 0xf8, - 0x71, 0x70, 0xb9, 0x5c, 0x1, 0x37, 0xd0, 0x1c, 0xaf, 0x9, 0xe6, 0x13, 0x78, 0xe9, 0x49, 0x6d, 0x5d, 0x5f, 0xe6, 0xf1, 0x6b, 0xee, 0x5a, 0x8d, 0x2e, 0x82, 0x45, 0xec, 0x19, 0xc1, 0x91, 0x4c, 0x52, 0x7d, 0x31, 0x38, 0x7e, 0xa7, 0x49, 0xff, 0xb1, 0xba, 0xce, 0xca, 0xff, 0x33, 0x98, 0x1f, 0x66, 0x7f, 0xc5, 0xfe, 0xd2, 0xcf, 0x5e, 0x8d, 0xa0, 0xb9, 0xb2, 0x4d, 0x62, 0xfb, 0xe7, 0x90, 0x64, 0xed, 0x58, 0xe3, 0x35, 0x8c, 0xff, 0x96, 0x14, 0xd0, 0xf6, 0x2e, 0x92, 0x66, 0x47, 0xb8, 0x29, 0x84, 0x1e, 0xf1, 0xe6, 0xd8, 0xfb, 0x2b, 0xb3, 0x87, 0xbf, 0xb1, 0x2c, 0xf3, 0xf8, 0xd5, 0xac, 0x51, 0x89, 0x2b, 0x71, 0x95, 0xd8, 0x89, 0x6e, 0x72, 0x8f, 0xd2, 0x2e, 0x9d, 0x94, 0x3f, 0xc4, 0x3, 0x77, 0x9c, 0x6b, 0xae, 0xa5, 0xfa, 0xfc, 0xa6, 0x7a, 0x3b, 0x79, 0x53, 0x6d, 0x63, 0x77, 0xf8, 0xfd, 0xb9, 0xd8, 0xa6, 0x7f, 0x7d, 0x72, 0x7b, 0x81, 0x24, 0x89, 0x5, 0xfd, 0xe6, 0x58, 0xe3, 0x35, 0x94, 0x96, 0xc7, 0x85, 0x52, 0x4f, 0x7b, 0xe0, 0x1d, 0xf7, 0x24, 0x66, 0xbf, 0x50, 0xfb, 0x21, 0xa2, 0x4b, 0xdd, 0x9d, 0xa4, 0x62, 0x9d, 0x98, 0x79, 0xfc, 0x42, 0x6f, 0x76, 0x41, 0xfb, 0x27, 0x47, 0x80, 0xa, 0x37, 0xcd, 0x43, 0xe5, 0x5e, 0x5d, 0xf1, 0xe5, 0xa9, 0xd1, 0x57, 0x1e, 0xe5, 0x28, 0x1c, 0x76, 0xbd, 0x9a, 0x6f, 0x48, 0x28, 0x2e, 0x6, 0xab, 0x23, 0xfa, 0xa0, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xed, 0x3f, 0xc7, 0xb1, 0x4a, 0x55, 0x13, 0xbb, 0x74, 0x75, 0x27, 0xdb, 0xff, 0xca, 0xc2, 0xaf, 0x6b, 0x35, 0xa7, 0x52, 0x5f, 0xb4, 0xf1, 0x9e, 0x64, 0xc6, - 0xf1, 0xab, 0xdb, 0x51, 0x87, 0xe2, 0x6a, 0xb6, 0x7b, 0x6c, 0x92, 0x1b, 0xc0, 0x34, 0x96, 0xbf, 0xd5, 0xb8, 0x0, 0x2c, 0x79, 0xd, 0x4b, 0xfb, 0xdc, 0xad, 0x84, 0x99, 0xfe, 0x98, 0xc8, 0x86, 0xaa, 0xd8, 0xc1, 0x7e, 0xbf, 0xb5, 0xbf, 0x67, 0x4f, 0x84, 0xeb, 0xd3, 0x55, 0x4d, 0xaa, 0x55, 0xc7, 0x7c, 0xff, 0xab, 0x61, 0xf2, 0xef, 0x90, 0x17, 0x51, 0xae, 0x3a, 0xff, 0x4e, 0xbf, 0xcf, 0xef, 0x96, 0x2c, 0xfc, 0x4c, 0x4e, 0xa5, 0x68, 0x46, 0x51, 0xa1, 0x8d, 0x2, 0xff, 0x85, 0x7f, 0x70, 0x15, 0xa8, 0x58, 0x25, 0xdc, 0x3f, 0x51, 0x52, 0x72, 0xfb, 0xe7, 0xb6, 0xdf, 0x8d, 0x20, 0x34, 0xca, 0x8f, 0x78, 0xdd, 0xad, 0xbf, 0x8d, 0xf0, 0x4, 0xe, 0x6b, 0xdb, 0xbe, 0x7b, 0xbe, 0x55, 0xdd, 0x30, 0xbb, 0x9a, 0x54, 0x1f, 0x3a, 0x27, 0xe7, 0x79, 0x6a, 0xdb, 0x54, 0xe5, 0xb1, 0x8d, 0x9b, 0xce, 0x7a, 0x7f, 0x79, 0xa8, 0xbf, 0xfb, 0xf7, 0xe6, 0xff, 0x8e, 0xba, 0xbc, 0xd8, 0x96, 0x8b, 0x58, 0xd0, 0xda, 0x7e, 0x35, 0xc2, 0xbd, 0xa8, 0x71, 0x35, 0x2, 0x7f, 0x62, 0xfc, 0xaa, 0xeb, 0xa3, 0x37, 0x7e, 0xe5, 0xd8, 0xfe, 0x2f, 0xa4, 0xc7, 0xda, 0xdf, 0xca, 0xd6, 0xba, 0x96, 0x3e, 0xcc, 0x6f, 0x31, 0x6, 0x95, 0x62, 0xa6, 0xaf, 0xe7, 0xbd, 0x6d, 0x36, 0x12, 0x41, 0xa3, 0x83, 0xa8, 0xa5, 0x5a, 0x65, 0x5d, 0x95, 0x38, 0x4c, 0x3e, 0xca, 0x85, 0xb6, 0x7f, 0xcf, 0x30, 0x15, 0xf4, 0xdf, 0xbe, 0xbc, 0xb1, 0xa, 0xd5, 0x41, 0x87, 0x43, 0x31, 0xd, 0x9d, 0x1e, 0x1a, 0xf3, 0xf9, 0xb6, 0xb1, 0xa6, 0xa7, 0x47, 0xa8, 0x9b, 0x1d, 0xb, 0x24, 0x9b, 0xbe, 0xe1, - 0x7, 0x6e, 0xfc, 0x65, 0x41, 0x5a, 0xfb, 0x20, 0xc7, 0xb8, 0xb, 0xbf, 0x1f, 0x38, 0x66, 0x45, 0x47, 0xf4, 0xff, 0xa9, 0x75, 0xac, 0xdb, 0x3f, 0x94, 0x5e, 0xd3, 0x39, 0x97, 0x7c, 0xda, 0x21, 0xb3, 0x79, 0xa4, 0x1e, 0x96, 0x79, 0xbb, 0x54, 0xc0, 0xf3, 0xc8, 0x60, 0xbe, 0xc7, 0x61, 0xf2, 0xef, 0xd1, 0x3b, 0x61, 0x70, 0x3e, 0xdf, 0xd7, 0x3, 0x3f, 0x9, 0x52, 0x37, 0x43, 0xf4, 0x3a, 0xb, 0x51, 0x3c, 0x78, 0x31, 0xe4, 0x75, 0xf, 0xe3, 0xd7, 0x7c, 0xe, 0x13, 0x68, 0x85, 0x60, 0x24, 0xca, 0x8c, 0x82, 0x33, 0x8e, 0xff, 0x8e, 0xef, 0xdf, 0x55, 0x1f, 0xdd, 0x48, 0xdd, 0xf, 0x78, 0xdf, 0x9e, 0x40, 0xfd, 0xf9, 0x36, 0x49, 0xa5, 0x6, 0xa0, 0xba, 0x67, 0x14, 0xfa, 0xef, 0x76, 0x1e, 0x7a, 0x90, 0x3, 0x81, 0xda, 0xdd, 0x1b, 0xa4, 0xd7, 0x3b, 0x94, 0x8b, 0x8d, 0x14, 0x51, 0x7a, 0x72, 0x4f, 0x57, 0x84, 0xa0, 0x86, 0x43, 0xdf, 0x89, 0xf1, 0x3f, 0x9e, 0x34, 0x7b, 0x66, 0xe1, 0xb3, 0xfa, 0x15, 0x94, 0x69, 0x75, 0x1d, 0xa4, 0x56, 0x19, 0x6b, 0xbc, 0x86, 0xc9, 0x9b, 0x3, 0x8d, 0x28, 0x96, 0x9f, 0xb6, 0xc6, 0x2e, 0x59, 0xbb, 0x7, 0xf7, 0x3, 0x94, 0xd, 0xe4, 0x1f, 0x7e, 0xef, 0x90, 0x24, 0xe6, 0x3d, 0x4, 0x4c, 0x1, 0x2a, 0x2a, 0xe9, 0xc9, 0xf6, 0xf6, 0xf6, 0x87, 0x9c, 0xe3, 0x91, 0xa0, 0x9d, 0xe9, 0x9c, 0x5f, 0xbf, 0x3f, 0xe9, 0x5c, 0xca, 0xa5, 0xa1, 0x5f, 0x95, 0x91, 0xf7, 0xdc, 0x7b, 0x1c, 0xcd, 0x2d, 0xe5, 0xf4, 0x4b, 0xe5, 0xfd, 0xd6, 0x78, 0x62, 0x27, 0x7a, 0x88, 0x54, 0xcb, 0x95, 0x62, 0xf8, 0x7e, 0xe5, 0x35, 0x6b, 0x2e, - 0xc6, 0xae, 0xf9, 0xd4, 0xde, 0x84, 0x33, 0xc2, 0x75, 0x47, 0xac, 0x78, 0x11, 0x76, 0xc6, 0x69, 0xed, 0xc8, 0xdb, 0x68, 0x5d, 0xbf, 0x55, 0x7b, 0x8e, 0xb8, 0x13, 0x48, 0x72, 0xad, 0xc1, 0x7c, 0x76, 0x5e, 0x77, 0xc3, 0xad, 0x4b, 0x86, 0x33, 0xce, 0x6d, 0x66, 0xf3, 0x9b, 0x8b, 0x50, 0xa1, 0xbb, 0xd, 0x67, 0x42, 0x88, 0xf3, 0x76, 0x7b, 0x4d, 0xb7, 0x4e, 0x7f, 0xe1, 0x59, 0xf3, 0xfe, 0xfd, 0x5, 0x2d, 0xe1, 0xdb, 0xbe, 0x1a, 0x7b, 0x2f, 0xa0, 0xd9, 0x2e, 0x1, 0x89, 0x91, 0xba, 0xf6, 0x95, 0xf0, 0x17, 0xa0, 0x90, 0x7d, 0x83, 0x48, 0x64, 0x98, 0x7e, 0xba, 0x90, 0x4a, 0x91, 0x93, 0xc6, 0x6b, 0x83, 0xe1, 0xed, 0xdf, 0x3, 0x3e, 0x76, 0x47, 0x51, 0x8a, 0x2e, 0x4d, 0x87, 0x5f, 0x55, 0x47, 0x8e, 0x2e, 0xeb, 0x2, 0xb5, 0xfd, 0xdd, 0xf4, 0x1e, 0xac, 0xfd, 0xec, 0xdf, 0xe2, 0x6a, 0xa9, 0x73, 0x25, 0x75, 0x72, 0x73, 0x88, 0x3a, 0x1a, 0xfb, 0x87, 0x51, 0x3c, 0x88, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0x8d, 0x85, 0xae, 0x22, 0x5e, 0xab, 0xf9, 0x4a, 0x53, 0xad, 0xa2, 0x8b, 0x76, 0xaa, 0x53, 0x83, 0x50, 0x2f, 0x6f, 0x3, 0x70, 0x6c, 0x79, 0x1, 0x8e, 0xea, 0x9e, 0x67, 0xfd, 0x73, 0x10, 0x3d, 0xe3, 0xe2, 0x3, 0x6b, 0x5e, 0xb8, 0x6, 0xf2, 0xb9, 0x44, 0x2c, 0x85, 0xe4, 0x22, 0x15, 0x94, 0x9f, 0xae, 0xbe, 0x4c, 0xfb, 0xca, 0x34, 0x93, 0x3b, 0x4f, 0xdc, 0xb2, 0x65, 0x8b, 0x94, 0xf9, 0xfd, 0x23, 0x4a, 0x29, 0xff, 0xe9, 0x7f, 0x9a, 0xc, 0xc1, 0xa7, 0x57, 0x51, 0xf6, 0x93, 0x98, 0xff, 0x71, 0x1b, 0x3d, 0xa3, - 0x71, 0x6c, 0x52, 0xa0, 0x7b, 0xd6, 0x26, 0x1c, 0xdf, 0xf, 0x10, 0x33, 0xde, 0xf8, 0x4f, 0xbe, 0x34, 0x27, 0xef, 0xbd, 0x4a, 0x36, 0x78, 0xf0, 0x14, 0xe6, 0x34, 0xde, 0x50, 0x39, 0x4c, 0x5f, 0x8f, 0x35, 0x4d, 0xf9, 0xed, 0x3d, 0x6b, 0xfc, 0x3e, 0x22, 0x5a, 0xf3, 0xac, 0x72, 0xe, 0x59, 0x9c, 0x6a, 0xfe, 0xeb, 0x3, 0x87, 0xa5, 0x51, 0xe0, 0x3f, 0x7d, 0xd1, 0x33, 0x2c, 0x97, 0xb7, 0x60, 0xe7, 0x0, 0xf, 0x3f, 0xf1, 0x6b, 0x18, 0xb9, 0x4a, 0xc0, 0x3e, 0x2f, 0x8, 0xd7, 0xe1, 0xf8, 0x78, 0x82, 0xfe, 0xea, 0xfb, 0x15, 0x37, 0xda, 0xf9, 0x7a, 0xff, 0x77, 0x7d, 0xd6, 0x44, 0xbd, 0xbd, 0x93, 0xe7, 0x4b, 0x4e, 0x37, 0x7e, 0x4b, 0x6b, 0x27, 0xb2, 0xf1, 0xe, 0xf8, 0x67, 0x38, 0xc0, 0x57, 0xcc, 0x64, 0xf8, 0xf1, 0x92, 0x89, 0x85, 0xc4, 0x6d, 0x4a, 0x87, 0xe1, 0x48, 0xbf, 0x1f, 0x22, 0x87, 0x4b, 0xed, 0xf6, 0xeb, 0x1f, 0x78, 0x7f, 0x43, 0xe9, 0x79, 0xf5, 0x17, 0x23, 0x38, 0x95, 0x47, 0x5, 0x8c, 0x55, 0xe8, 0xfd, 0x4, 0xd6, 0xb2, 0x78, 0x94, 0x6a, 0xfb, 0xec, 0x63, 0xa6, 0xe4, 0xf6, 0x6e, 0xff, 0x24, 0xf2, 0x74, 0x7b, 0x6e, 0x49, 0xdf, 0x5f, 0x51, 0x56, 0xb3, 0xad, 0x9, 0x13, 0x94, 0x6, 0x51, 0xf5, 0x80, 0x27, 0xe8, 0x45, 0xf8, 0xfd, 0xba, 0x84, 0x93, 0xed, 0xb8, 0xc7, 0x36, 0x7, 0x36, 0x8c, 0x31, 0x8f, 0x9f, 0xac, 0x79, 0x33, 0x44, 0xdb, 0x5b, 0x49, 0xad, 0xff, 0xb2, 0x75, 0xc, 0x7, 0xc7, 0xaf, 0x6a, 0xc8, 0xbf, 0xaf, 0x42, 0x45, 0x30, 0x97, 0xa, 0xa0, 0x67, 0x87, 0xcb, 0xff, 0x91, 0xd2, 0xe1, 0x23, 0x45, 0xf0, 0x6f, - 0xab, 0xd4, 0xdb, 0xa6, 0xf8, 0x69, 0x29, 0xf4, 0xd7, 0xe4, 0x52, 0xab, 0xc9, 0x36, 0x60, 0x3a, 0x49, 0xb2, 0x5e, 0x5c, 0xea, 0x9b, 0x43, 0x35, 0xb1, 0xd3, 0x8e, 0x21, 0x8e, 0x1f, 0xbb, 0xc2, 0x3b, 0xbd, 0x12, 0xfb, 0x4, 0xd5, 0xe6, 0xbf, 0xbb, 0x2b, 0x76, 0x8e, 0x35, 0x5e, 0x1f, 0x84, 0x9f, 0xac, 0x53, 0xf9, 0x17, 0xfb, 0x6b, 0xfc, 0xc8, 0x68, 0xe2, 0xb7, 0xb4, 0x52, 0xe7, 0x82, 0x36, 0x7e, 0x6c, 0xff, 0x76, 0xf2, 0x37, 0xf6, 0x6f, 0x3f, 0xe3, 0xf1, 0x13, 0xf8, 0xe4, 0xc9, 0xf2, 0xef, 0x24, 0xf9, 0xdd, 0xf9, 0xf8, 0x1b, 0x39, 0xa7, 0x12, 0x3f, 0x79, 0x22, 0x99, 0xf8, 0x29, 0x8c, 0xd7, 0xd4, 0xb5, 0x53, 0xfe, 0x72, 0x3d, 0x63, 0xcd, 0x60, 0xe, 0xca, 0x3f, 0xe4, 0x9d, 0x90, 0x7f, 0x97, 0x9f, 0x34, 0x7f, 0xd9, 0xf5, 0xc8, 0xc3, 0x7, 0x9a, 0x7d, 0x33, 0xf1, 0xb4, 0x28, 0x47, 0x44, 0x7a, 0x70, 0xc6, 0x73, 0x25, 0x68, 0x52, 0xb, 0x80, 0x6a, 0x7d, 0x32, 0x76, 0x6b, 0x62, 0x1f, 0x51, 0x23, 0xd4, 0x5e, 0xfa, 0xda, 0x49, 0xf2, 0xef, 0xb4, 0xdb, 0xd7, 0x2b, 0xba, 0x4, 0xf0, 0x45, 0xf2, 0x1, 0xae, 0x73, 0xb2, 0xe1, 0x46, 0x10, 0x2c, 0x1e, 0x6f, 0x12, 0x30, 0xd, 0xb0, 0xe3, 0xc9, 0xd3, 0x7d, 0xbf, 0xc9, 0xbc, 0x86, 0xda, 0xc2, 0x7e, 0x26, 0xf3, 0x45, 0x1f, 0xd2, 0xeb, 0x9b, 0xf0, 0xd1, 0x22, 0xf2, 0xbc, 0x18, 0xb5, 0xb8, 0xcf, 0x1f, 0x8, 0x58, 0xfc, 0xa7, 0x9e, 0xc4, 0x7f, 0x4b, 0x95, 0x12, 0xc8, 0xf7, 0x71, 0xf6, 0x86, 0xb0, 0x9c, 0x20, 0x84, 0x9a, 0x34, 0x74, 0xcd, 0x7a, 0xff, 0x92, 0xd6, 0x36, 0x12, 0xf4, 0xc8, 0x7f, - 0xa9, 0xb8, 0x84, 0xc7, 0xeb, 0xc, 0xaf, 0x20, 0xfd, 0x9f, 0x63, 0xcd, 0xaf, 0x9f, 0xd8, 0x2f, 0x90, 0xda, 0x41, 0xa7, 0x7d, 0x7e, 0x24, 0xf4, 0xf6, 0x8f, 0xa1, 0xed, 0x4b, 0x4, 0x20, 0x6e, 0xd9, 0x6d, 0x36, 0x3, 0x55, 0xf1, 0x1a, 0xf8, 0x6, 0x5b, 0x93, 0xc8, 0xfc, 0xfc, 0xf4, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x2, 0x7d, 0x5c, 0xf4, 0x35, 0xb5, 0x7f, 0x98, 0xe3, 0x72, 0xf6, 0x1a, 0x8, 0x14, 0x54, 0xc9, 0x7b, 0xc1, 0x2, 0xd6, 0xad, 0xea, 0x9, 0xc4, 0xc7, 0xba, 0x7f, 0xa6, 0xa3, 0xbd, 0x6f, 0x4b, 0x98, 0x10, 0xa4, 0x3e, 0x15, 0xb8, 0xaf, 0x44, 0x57, 0x8, 0x8, 0xaf, 0xbf, 0x3c, 0xf8, 0x3e, 0x65, 0x3d, 0x5f, 0x22, 0x91, 0xa0, 0xea, 0x2d, 0xe3, 0xfa, 0x8d, 0xda, 0xc3, 0xf, 0x4e, 0xa6, 0x1c, 0x3b, 0x58, 0x2c, 0x7f, 0x5, 0xe8, 0x69, 0x5c, 0x2d, 0x75, 0x13, 0xce, 0x40, 0x78, 0xfa, 0x11, 0xfd, 0xd3, 0x1, 0x3d, 0x65, 0xc3, 0x18, 0x7a, 0x53, 0xfd, 0x5d, 0xb1, 0x5f, 0x5, 0x34, 0x99, 0x59, 0xd3, 0xa5, 0x44, 0x8d, 0x8e, 0x35, 0x5e, 0x43, 0x69, 0x47, 0xe1, 0x7c, 0x4, 0x85, 0x7a, 0xf0, 0x55, 0xf7, 0xec, 0xf7, 0x51, 0xf9, 0x15, 0x7e, 0xb4, 0xa, 0xdf, 0x53, 0x81, 0x2b, 0x54, 0x2b, 0x9c, 0x3c, 0x6d, 0x7f, 0x9c, 0x2f, 0x4f, 0xa5, 0xdc, 0x33, 0xd5, 0xa2, 0x5c, 0xea, 0xa9, 0xc8, 0x3f, 0x1, 0x8a, 0x7c, 0x98, 0x1b, 0x10, 0x7e, 0x21, 0x98, 0x82, 0xc9, 0x4d, 0xbc, 0xf7, 0x6, 0x8d, 0xa4, 0xf6, 0xb2, 0xc0, 0xf9, 0x1c, 0x42, 0xcf, 0x5c, 0x85, 0x95, 0xf4, 0x23, 0x1b, 0x4f, 0x85, 0xcf, 0xef, 0xa7, 0xfe, 0xdb, 0x22, 0xea, - 0x2f, 0x6, 0xd0, 0x6f, 0xc5, 0xc0, 0x4, 0x86, 0xc9, 0xdf, 0x1c, 0xdc, 0x75, 0xfc, 0x61, 0x88, 0xf2, 0x69, 0x1f, 0x9f, 0xe, 0x35, 0x2d, 0x85, 0xc2, 0x1d, 0xe6, 0x50, 0x74, 0x7f, 0xcf, 0x6b, 0xca, 0xe8, 0xc7, 0x93, 0x59, 0xf6, 0x5f, 0x9, 0x4f, 0x8d, 0x3f, 0xb4, 0x82, 0x2c, 0x44, 0x3a, 0xfb, 0x65, 0xac, 0xf9, 0x2b, 0xad, 0xfc, 0xdf, 0xe5, 0x60, 0x9b, 0x9d, 0x9e, 0xb3, 0x97, 0x88, 0xbf, 0x27, 0x39, 0xac, 0x3f, 0x39, 0xde, 0xe1, 0x76, 0x5d, 0x53, 0xeb, 0x5c, 0xa7, 0x97, 0x31, 0xc3, 0x3f, 0xdd, 0xf7, 0xe7, 0x6e, 0x9c, 0x62, 0x39, 0x7, 0xb9, 0xe8, 0x2d, 0xc0, 0x23, 0x5c, 0xda, 0xf8, 0x64, 0xaa, 0x6d, 0x16, 0x31, 0xe4, 0x6e, 0x80, 0xf1, 0x9, 0x98, 0x12, 0x42, 0x5f, 0x88, 0x82, 0x5e, 0xdf, 0x5e, 0x12, 0x62, 0x44, 0x87, 0xc5, 0x17, 0x5c, 0x1d, 0x3d, 0xf, 0xba, 0xc0, 0x66, 0xea, 0x64, 0xa2, 0xbe, 0xb2, 0xfa, 0x49, 0xb6, 0x1f, 0x2, 0xfa, 0x39, 0x24, 0x5, 0x26, 0x3d, 0x8d, 0x0, 0x1b, 0x6f, 0xd, 0x75, 0xd8, 0xb5, 0x75, 0xe7, 0xf0, 0xf1, 0x81, 0x51, 0xb7, 0x5f, 0xb6, 0x9, 0xe8, 0x28, 0x3e, 0xa8, 0xde, 0x1e, 0x29, 0x8b, 0xb2, 0x5, 0x46, 0xa5, 0xd3, 0x3, 0x68, 0x89, 0x76, 0x37, 0x12, 0xc9, 0x20, 0xcc, 0x32, 0x39, 0x15, 0xfd, 0xab, 0x70, 0x1f, 0x42, 0xff, 0xde, 0xf6, 0x6d, 0xe8, 0xbd, 0x47, 0x3, 0x7e, 0x6b, 0xff, 0x3f, 0xdf, 0x64, 0xef, 0x6d, 0x17, 0xc3, 0x8, 0xda, 0x67, 0x35, 0xa2, 0x26, 0xc3, 0x2f, 0x3d, 0x8e, 0x35, 0x1, 0xdd, 0xb6, 0x89, 0x38, 0x4e, 0x60, 0xe3, 0x2f, 0xcf, 0xe1, 0x2f, 0xfc, 0x7e, 0xe7, 0x67, 0x4b, - 0x9c, 0xcf, 0x3a, 0x93, 0x54, 0xff, 0x26, 0x4e, 0xd6, 0xbf, 0x2b, 0xe4, 0x2, 0x58, 0x1, 0xc8, 0xac, 0xf8, 0x46, 0x1e, 0x5f, 0x3e, 0x72, 0xfb, 0xf, 0x87, 0x39, 0x1d, 0x7b, 0x83, 0x73, 0xa, 0x3a, 0x4b, 0x4e, 0xc1, 0xfe, 0xb, 0xbf, 0x7b, 0x3b, 0xf5, 0xfd, 0x97, 0x49, 0xd1, 0x4, 0x55, 0x36, 0xa7, 0xc0, 0xaf, 0x43, 0xfd, 0xdf, 0x9a, 0x17, 0xa6, 0xa1, 0xda, 0x9e, 0x3b, 0x70, 0x10, 0x74, 0xe1, 0xf2, 0x62, 0x1e, 0xae, 0x94, 0x41, 0xf7, 0xe4, 0x3, 0xf, 0xef, 0xe, 0xe7, 0x50, 0x3b, 0x0, 0x27, 0xf6, 0x8b, 0x63, 0xe3, 0x37, 0x38, 0x8c, 0x85, 0x28, 0xa1, 0x7f, 0x6e, 0x14, 0x1e, 0x95, 0x3f, 0x7, 0x5d, 0xff, 0x53, 0xca, 0x0, 0x3a, 0xfd, 0xeb, 0x69, 0x9a, 0x93, 0x9f, 0xd2, 0xf9, 0x89, 0x32, 0xba, 0xbb, 0xf3, 0xc0, 0x25, 0x7b, 0xd8, 0xf8, 0xb, 0xf9, 0x4a, 0xc9, 0x61, 0xee, 0xfc, 0xd1, 0x1a, 0x7f, 0x39, 0xb8, 0x59, 0x6f, 0xa5, 0x58, 0x59, 0xe3, 0x2f, 0x1d, 0x5c, 0x41, 0xf8, 0x91, 0x75, 0xf4, 0xf8, 0xc7, 0xa8, 0x6f, 0x41, 0xdf, 0x5c, 0xfe, 0x61, 0xfb, 0x95, 0x1d, 0x1f, 0xdf, 0x5, 0x2e, 0x39, 0x43, 0xc7, 0x5f, 0x86, 0xf2, 0xdf, 0x5b, 0x36, 0xff, 0xf9, 0x4e, 0x99, 0xff, 0x4c, 0xd4, 0x8b, 0x99, 0xe2, 0x3f, 0xc7, 0xd1, 0x16, 0x98, 0x6d, 0xdc, 0x25, 0x9f, 0x7f, 0x9e, 0x1e, 0xe8, 0xf9, 0xcb, 0x97, 0x9a, 0x36, 0x5e, 0xb, 0x9f, 0x57, 0x35, 0xbe, 0x87, 0xd9, 0x44, 0xa5, 0x72, 0xae, 0xc9, 0xf4, 0xc0, 0xb3, 0xc6, 0xc1, 0xa3, 0xa7, 0x96, 0xcd, 0x51, 0xf7, 0xd9, 0xf1, 0x1f, 0x7e, 0xe2, 0x8e, 0x33, 0x69, 0x23, 0x9f, 0xf6, 0x78, 0x4a, - 0x8b, 0xff, 0xa6, 0x59, 0xfc, 0xe7, 0x60, 0xfc, 0x57, 0xba, 0xfc, 0x32, 0xb4, 0x98, 0xbb, 0x2b, 0xa9, 0x73, 0x54, 0x56, 0x2b, 0xee, 0xc9, 0xfc, 0xfc, 0xc7, 0xbb, 0x9b, 0x31, 0x40, 0xed, 0xcb, 0x4b, 0x5d, 0x8e, 0xf3, 0x1e, 0xd0, 0x94, 0xe2, 0x79, 0x54, 0xfe, 0x7b, 0x1c, 0x8, 0x2d, 0x79, 0x10, 0xae, 0xe, 0xe3, 0x13, 0x7a, 0xe9, 0xf4, 0x96, 0x54, 0x44, 0x91, 0xaf, 0x52, 0xad, 0x45, 0xcf, 0xda, 0x1d, 0x3c, 0x1c, 0x11, 0x13, 0x52, 0x69, 0x22, 0xfe, 0x8b, 0x3f, 0xec, 0x1e, 0xf5, 0xf5, 0x49, 0x1f, 0xda, 0x7e, 0x9e, 0x39, 0x5, 0xf1, 0xe0, 0x4a, 0x4e, 0xed, 0x53, 0xba, 0xa2, 0xf4, 0xf9, 0x96, 0xfe, 0x4c, 0xa0, 0x66, 0x96, 0x61, 0x59, 0xb8, 0xad, 0x2b, 0x32, 0x1f, 0xef, 0xe4, 0x7d, 0x69, 0x9a, 0x21, 0x7, 0x5, 0xdb, 0xe2, 0xeb, 0x20, 0xea, 0xd0, 0xf5, 0xab, 0x6b, 0x8b, 0xfd, 0x83, 0xfa, 0x54, 0x5f, 0xfc, 0xd3, 0x12, 0x77, 0x8d, 0x20, 0xf7, 0x73, 0x3d, 0x11, 0x74, 0x53, 0x5f, 0xb7, 0xac, 0x56, 0x3d, 0xe3, 0xe2, 0xaf, 0xc2, 0xaf, 0x4e, 0xd5, 0x5f, 0x6e, 0xac, 0x37, 0x58, 0x70, 0x71, 0xc5, 0xa7, 0x80, 0x66, 0xf9, 0x2b, 0xc6, 0x91, 0x40, 0x2c, 0x40, 0x68, 0x59, 0xb7, 0xf3, 0x14, 0xd6, 0x4f, 0xb, 0x28, 0xc0, 0x60, 0x39, 0x85, 0xf1, 0x3, 0xaa, 0x3f, 0xdf, 0xe3, 0xd8, 0x58, 0x3d, 0x6f, 0x9b, 0x7d, 0x53, 0xe5, 0x3f, 0xa0, 0x61, 0xea, 0xe0, 0xf, 0x44, 0xfc, 0xe1, 0x95, 0xe3, 0x10, 0x13, 0xf4, 0xe9, 0x36, 0x6d, 0x18, 0xf3, 0x6, 0xc7, 0x13, 0xe, 0xd8, 0xff, 0xc6, 0x1a, 0xaf, 0xe1, 0xf2, 0x8, 0xdd, 0x71, 0x2e, 0xce, 0x99, 0x7c, - 0xd2, 0x62, 0x83, 0xe9, 0xe6, 0xc, 0xc8, 0xc7, 0x2, 0x49, 0xa1, 0xbb, 0x7c, 0x6e, 0x48, 0x4c, 0x3f, 0x7e, 0x55, 0x85, 0xd4, 0x7a, 0x67, 0x9b, 0x65, 0xd3, 0xdb, 0x3b, 0xd1, 0xa5, 0x50, 0x69, 0x17, 0xed, 0x43, 0x19, 0x11, 0x15, 0xa8, 0x2c, 0x7e, 0xdc, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x6b, 0xf3, 0x67, 0xe8, 0x8f, 0x24, 0xdf, 0x68, 0xda, 0xa8, 0xe8, 0x7c, 0x8, 0xe3, 0x5f, 0x8c, 0x80, 0x27, 0x50, 0xf0, 0x6a, 0xb2, 0x8e, 0x4c, 0xe6, 0xed, 0x41, 0xea, 0xa0, 0xc1, 0x57, 0x8d, 0x35, 0x7e, 0x54, 0x7f, 0x1c, 0xe6, 0x4a, 0x51, 0x16, 0xa1, 0x2f, 0x2c, 0x92, 0xbe, 0xe6, 0xc2, 0x10, 0xa0, 0x12, 0xb1, 0xd1, 0xfa, 0x37, 0x1a, 0xfb, 0x27, 0xa2, 0x5b, 0xb2, 0xe6, 0xda, 0x5a, 0xd8, 0x12, 0x6d, 0xae, 0x69, 0x47, 0xc, 0xfa, 0x5b, 0xbf, 0xb7, 0xec, 0xf, 0x9d, 0x3e, 0x4, 0xc7, 0x33, 0xd, 0x40, 0xbd, 0x4b, 0xe3, 0xad, 0x31, 0xe9, 0xfb, 0xf6, 0xaf, 0x28, 0x9e, 0x85, 0x5e, 0x3d, 0xa0, 0xdf, 0xa, 0x3f, 0x76, 0xa, 0x2d, 0x19, 0xb7, 0x7, 0x46, 0x8c, 0xdf, 0x9b, 0x2a, 0x35, 0xfe, 0xc3, 0x2a, 0xc3, 0xaf, 0x4c, 0x7, 0xd8, 0xfe, 0xb2, 0x51, 0x8a, 0x9b, 0xb1, 0xd6, 0xae, 0x91, 0x96, 0xff, 0x7c, 0xcb, 0xe0, 0x58, 0x86, 0x3c, 0x93, 0x6b, 0x41, 0xe1, 0x29, 0xc4, 0x4b, 0xb3, 0xf9, 0xb4, 0x9b, 0xc5, 0x98, 0x8b, 0xaa, 0x5a, 0x6a, 0x6d, 0xb7, 0x70, 0xe1, 0x39, 0x25, 0x41, 0xf3, 0xf6, 0x4b, 0x39, 0x7b, 0xfd, 0x88, 0x20, 0x5c, 0xbb, 0x63, 0xd, 0xed, 0xd7, 0x29, 0x73, 0xee, 0xd9, 0x83, 0xbb, 0x58, 0xfd, 0xcb, - 0x12, 0x3f, 0x6e, 0xfb, 0xc7, 0x1b, 0x7c, 0x89, 0x3b, 0x84, 0x77, 0xb8, 0xd, 0xcc, 0x3e, 0x8d, 0x5, 0xb4, 0x3a, 0xcc, 0xc7, 0x1c, 0xe1, 0x93, 0x5c, 0x95, 0xcf, 0xd, 0xea, 0x50, 0xdb, 0xf5, 0x1b, 0xf1, 0xea, 0xe9, 0xc7, 0xcf, 0x83, 0x5, 0xc5, 0xb5, 0x98, 0x8d, 0x24, 0x51, 0x83, 0x40, 0x5d, 0x7b, 0x3e, 0x1c, 0x1d, 0x78, 0x4a, 0x2f, 0x89, 0x73, 0x77, 0x22, 0x34, 0x1a, 0xfc, 0xc7, 0x13, 0x29, 0x2e, 0x34, 0x5a, 0x33, 0xce, 0x25, 0x68, 0x18, 0x37, 0x8b, 0x24, 0x2, 0x9a, 0x4b, 0xcf, 0xb7, 0x2a, 0x28, 0xe1, 0xeb, 0x6f, 0xd1, 0x2f, 0x0, 0x89, 0xdb, 0x70, 0x4a, 0x45, 0xe1, 0x5f, 0xcc, 0x0, 0x66, 0xbd, 0xed, 0xde, 0xe4, 0x57, 0xa3, 0x89, 0x84, 0x3e, 0x6c, 0x7c, 0x2f, 0xb5, 0xfe, 0xdd, 0x2e, 0xe2, 0xe9, 0xcf, 0x17, 0xb2, 0x22, 0x7a, 0x25, 0x8a, 0x90, 0xd7, 0xc2, 0xe1, 0x47, 0x88, 0x49, 0xa8, 0xb3, 0xfb, 0x33, 0xb5, 0x7, 0xd9, 0xbf, 0x51, 0xea, 0xbf, 0x1c, 0x8e, 0xf7, 0x60, 0xfe, 0x8f, 0x66, 0x39, 0x8, 0xdb, 0x7c, 0xd0, 0x80, 0x30, 0xc3, 0xa3, 0xa3, 0x69, 0xc7, 0x56, 0xe8, 0xe3, 0x63, 0x8c, 0x1, 0x29, 0x4f, 0xa, 0x91, 0x2a, 0xe5, 0xe3, 0x6c, 0x36, 0xf8, 0x6, 0xda, 0xd9, 0x5b, 0x32, 0xb1, 0x5e, 0x28, 0xe3, 0xf6, 0x9f, 0x67, 0x7e, 0xcc, 0x69, 0xf0, 0xd7, 0x52, 0x62, 0xf, 0x4b, 0x61, 0x22, 0x2f, 0x9f, 0xa5, 0xf3, 0xe, 0xc4, 0xdb, 0xdc, 0xb, 0xf, 0xc, 0xb4, 0xe4, 0x66, 0x3e, 0xfe, 0x79, 0xc9, 0x78, 0xfc, 0x4e, 0x25, 0x6a, 0x5f, 0x44, 0xcc, 0xd3, 0xe9, 0x11, 0xef, 0x9c, 0xd9, 0x14, 0x18, 0x7b, 0xbc, 0xaf, 0x7e, 0xf9, - 0xae, 0xee, 0xb5, 0xb2, 0x1b, 0xb5, 0x6e, 0xbb, 0xb6, 0xfe, 0x6a, 0xeb, 0xb4, 0xf0, 0x8f, 0xc6, 0xe9, 0x79, 0xba, 0xf8, 0x27, 0xb6, 0x9e, 0x46, 0xd7, 0x8d, 0x61, 0xe3, 0x7f, 0x94, 0xff, 0x14, 0x9c, 0x28, 0xa3, 0x3e, 0x1f, 0x37, 0x5d, 0x91, 0x12, 0x47, 0x38, 0x1e, 0xc5, 0xfe, 0x7, 0x99, 0x89, 0x42, 0xa6, 0xd5, 0x7f, 0x1b, 0xda, 0x9c, 0x77, 0x2, 0x54, 0xe8, 0x74, 0x88, 0x64, 0x2e, 0x8b, 0x1f, 0x72, 0x9d, 0xdc, 0x9e, 0xaa, 0xe, 0x5, 0x62, 0x15, 0x55, 0x77, 0xbd, 0x28, 0x67, 0x7, 0x46, 0x7a, 0xfd, 0x49, 0xbc, 0x65, 0x8f, 0xdc, 0xbd, 0xa, 0xf6, 0xcb, 0x4, 0x3e, 0x65, 0x9f, 0xe8, 0x2b, 0xa9, 0xf1, 0x39, 0x3c, 0xfe, 0x39, 0xe3, 0xf6, 0xfb, 0xd1, 0x35, 0x2c, 0x30, 0xe, 0x4c, 0x3d, 0x99, 0x1b, 0xa3, 0x6a, 0xe8, 0x67, 0xbf, 0x4c, 0x9c, 0x97, 0x12, 0xb7, 0xd4, 0xe1, 0x49, 0xab, 0x9f, 0x58, 0x3c, 0x8b, 0x61, 0x49, 0x8c, 0x77, 0xac, 0x79, 0x3, 0x2b, 0x5f, 0x9, 0x95, 0x45, 0xd4, 0x6b, 0xe2, 0xc, 0xfa, 0x21, 0xcc, 0xe1, 0xc1, 0xf, 0x33, 0x9f, 0xfb, 0xa1, 0xed, 0xcd, 0xfc, 0x4, 0xb4, 0x9c, 0xe5, 0x83, 0x2d, 0x1e, 0xe6, 0x4f, 0x5c, 0xbd, 0x63, 0x1b, 0xb0, 0x23, 0x11, 0x40, 0x87, 0x65, 0xe2, 0x48, 0xac, 0x7d, 0x9, 0x81, 0xb8, 0x69, 0x13, 0x9f, 0xa6, 0x7d, 0x78, 0x98, 0x7f, 0x96, 0x5a, 0x5f, 0x48, 0x6, 0x1f, 0xf8, 0x87, 0x6e, 0xf, 0x87, 0x9b, 0x4e, 0x9a, 0x7f, 0xe2, 0x9a, 0xa2, 0xf3, 0xd9, 0x78, 0xdc, 0x22, 0x36, 0x98, 0xd3, 0xad, 0xab, 0x91, 0xa1, 0xf5, 0x8f, 0x76, 0x30, 0x76, 0x57, 0xae, 0xbb, 0xb3, 0xa2, 0xcc, 0x3a, - 0xf2, 0x72, 0x74, 0x55, 0x62, 0xe0, 0xf1, 0x1a, 0x8e, 0x5a, 0x2d, 0x3c, 0xcf, 0x9, 0xf3, 0xaf, 0x1, 0x5b, 0xef, 0x9d, 0xb0, 0xfe, 0x69, 0x40, 0x6c, 0x72, 0x1f, 0xdb, 0xd7, 0x3a, 0xe8, 0x87, 0x5f, 0xcc, 0x8, 0x9e, 0xa5, 0xd6, 0x78, 0x3d, 0xef, 0x81, 0x68, 0x10, 0xf6, 0x66, 0xf3, 0xe3, 0x2a, 0x76, 0xb, 0x5f, 0x62, 0x9d, 0x78, 0xde, 0xa0, 0x3d, 0xa9, 0xd9, 0xad, 0x10, 0xf9, 0xe3, 0xf3, 0x71, 0x6c, 0xa7, 0xed, 0xe4, 0x88, 0xe5, 0x55, 0xdc, 0xc1, 0xc6, 0xb6, 0x6b, 0x19, 0x55, 0x71, 0x44, 0x14, 0x27, 0xe7, 0xb1, 0xe1, 0x6b, 0x32, 0xd9, 0xe2, 0x18, 0xe1, 0xf1, 0xf, 0xdd, 0xff, 0xdf, 0xc9, 0x9d, 0x8c, 0x22, 0xf1, 0x91, 0xca, 0xcf, 0xe8, 0xa9, 0xfd, 0x78, 0xf, 0x9d, 0x43, 0xa1, 0xdf, 0xc7, 0x85, 0xa2, 0x9a, 0xc1, 0x22, 0x3e, 0x47, 0x43, 0xff, 0x5a, 0x1f, 0xf3, 0x89, 0x94, 0x10, 0xcc, 0xf4, 0xf9, 0x62, 0x52, 0xeb, 0xd3, 0xf7, 0x40, 0xd5, 0xd8, 0xa2, 0x91, 0xb1, 0xd6, 0x17, 0x67, 0x1a, 0x7d, 0xa9, 0xc2, 0xf8, 0xda, 0xe4, 0xa0, 0x7f, 0xbb, 0x95, 0xe1, 0x74, 0xa1, 0xcd, 0x6f, 0xc1, 0xca, 0xf3, 0xde, 0xb6, 0x6a, 0xa4, 0xfb, 0xfe, 0x54, 0xa5, 0x9, 0xb4, 0xb7, 0x43, 0x1f, 0x7, 0xfd, 0xe8, 0x29, 0xd4, 0x1f, 0x29, 0x3d, 0xb7, 0xb6, 0x81, 0xf6, 0x6f, 0xca, 0x2, 0x7a, 0x9, 0x5c, 0xd4, 0x4d, 0x72, 0x14, 0x9e, 0x8f, 0x29, 0x58, 0x40, 0x2c, 0x8f, 0xa9, 0xe7, 0xb5, 0x33, 0x2e, 0x3e, 0xf1, 0x4c, 0xa7, 0x7, 0xe3, 0x25, 0x7, 0x8b, 0x63, 0x65, 0x83, 0xf1, 0x19, 0x4f, 0x82, 0x19, 0xf4, 0x89, 0x9e, 0x51, 0x78, 0x9e, 0x6c, 0xbe, 0xdb, - 0x8e, 0x3c, 0xa0, 0xbd, 0x97, 0xdf, 0x8c, 0x93, 0xc6, 0x47, 0x89, 0xb4, 0x13, 0xaa, 0xf7, 0x21, 0x17, 0xf4, 0x81, 0xdd, 0xd6, 0xe4, 0x3d, 0x91, 0x3, 0x3b, 0xc3, 0x77, 0x6c, 0xc0, 0x4, 0xf2, 0xfc, 0xac, 0xdc, 0x72, 0xbf, 0x8f, 0xfe, 0xcd, 0x18, 0x6b, 0xbc, 0x3e, 0x40, 0x1e, 0x2d, 0xfa, 0x35, 0xf7, 0x73, 0x2e, 0xce, 0x9b, 0xbc, 0x49, 0x8f, 0xbc, 0x5d, 0xdb, 0x10, 0xeb, 0x29, 0xd2, 0x98, 0x8c, 0xd2, 0x3f, 0x35, 0xa, 0xf8, 0x85, 0xdf, 0x2f, 0x4a, 0xe4, 0xc5, 0x4, 0x7e, 0x26, 0x9b, 0xfd, 0x28, 0xf2, 0x7, 0xd6, 0xca, 0xb3, 0x2c, 0xfb, 0x99, 0x15, 0xbf, 0x29, 0x14, 0x5e, 0x7b, 0x60, 0x75, 0xd0, 0xe4, 0x52, 0x88, 0x3e, 0xf6, 0xc2, 0xe3, 0x4d, 0xd1, 0xf5, 0xb8, 0x17, 0x9c, 0x52, 0xdb, 0xa6, 0x46, 0xd1, 0xa3, 0x8f, 0x39, 0x5e, 0x43, 0xe9, 0x3b, 0xdb, 0x4b, 0xa9, 0xaa, 0xeb, 0x7f, 0x61, 0xb7, 0x7d, 0x0, 0x73, 0xe5, 0x37, 0xa9, 0xf4, 0x61, 0x1, 0x15, 0xf7, 0xfa, 0xf5, 0x47, 0xb8, 0xd1, 0xe0, 0xbf, 0x6e, 0x6a, 0x29, 0x59, 0x1c, 0x18, 0x17, 0xfe, 0x6c, 0xad, 0xff, 0xad, 0x4e, 0x59, 0x9c, 0x21, 0xf3, 0x2e, 0x77, 0xd, 0x5b, 0x3f, 0x6d, 0xe7, 0x3, 0x44, 0x69, 0x44, 0x6d, 0xfd, 0xab, 0x7c, 0x8e, 0x67, 0x40, 0xbe, 0xbf, 0x74, 0xfd, 0x37, 0xf4, 0x44, 0x3f, 0x82, 0x42, 0xa2, 0x10, 0x2d, 0xb, 0xb7, 0xec, 0xd6, 0x94, 0x51, 0xef, 0xbf, 0xac, 0xbf, 0x2, 0x86, 0xd5, 0x5f, 0x95, 0x88, 0xe8, 0xfc, 0xeb, 0xfe, 0x3b, 0xc9, 0xee, 0xbf, 0xc6, 0xd6, 0x6, 0x57, 0xb9, 0xdf, 0x45, 0xcb, 0x19, 0xd7, 0x7f, 0x87, 0xf2, 0x9f, 0xe3, 0xfa, 0x6, - 0x7d, 0xa2, 0xf5, 0x49, 0xb5, 0xb8, 0x22, 0xe3, 0xfd, 0xf7, 0x8e, 0xe9, 0xb4, 0x3f, 0xe2, 0xbd, 0x25, 0x2e, 0xdf, 0x7c, 0xd5, 0xe7, 0x2a, 0xf0, 0x6e, 0x1f, 0x8f, 0x8e, 0xa0, 0x6d, 0xd2, 0xf4, 0x46, 0xee, 0x29, 0x93, 0x73, 0x4e, 0xc4, 0x3, 0x1d, 0x36, 0xdd, 0x58, 0x5b, 0x7c, 0x35, 0x1b, 0xcf, 0xa0, 0xcd, 0x49, 0x46, 0x4d, 0x43, 0xf8, 0xe2, 0x58, 0xe3, 0xf5, 0x41, 0xf2, 0x2f, 0x89, 0x8d, 0x60, 0x11, 0xf8, 0x2c, 0x7e, 0x9c, 0xf2, 0xe3, 0x22, 0xfb, 0x9c, 0x2e, 0xf7, 0x53, 0xb3, 0x3f, 0xd3, 0xd7, 0x3b, 0x9a, 0x2c, 0xd2, 0x72, 0xcf, 0x45, 0x41, 0x35, 0xcf, 0xca, 0xec, 0x23, 0xe1, 0x6, 0x1e, 0xfa, 0xee, 0x44, 0x11, 0x11, 0x21, 0xfb, 0xb, 0xa, 0x86, 0xad, 0xa7, 0xb9, 0xb9, 0xeb, 0x49, 0x68, 0xf7, 0xfd, 0x2a, 0x60, 0xd3, 0xc6, 0x99, 0xb7, 0xfe, 0x77, 0x48, 0xff, 0xd, 0x5f, 0xd7, 0x10, 0x5b, 0xc6, 0x6c, 0xe9, 0xfe, 0x3, 0x16, 0x3d, 0xea, 0xfd, 0x77, 0x3b, 0x81, 0x1a, 0x8c, 0x5a, 0x67, 0x59, 0xff, 0xb5, 0xe6, 0x77, 0x8f, 0xe9, 0x25, 0x54, 0x3a, 0xf2, 0x66, 0xdc, 0x7c, 0xb6, 0x4a, 0x9d, 0x82, 0x60, 0xa3, 0x16, 0x34, 0x3, 0x71, 0xc1, 0xe0, 0x46, 0x1e, 0x9f, 0xb6, 0x16, 0xf8, 0xcd, 0x9, 0x7f, 0xcd, 0x10, 0x96, 0x0, 0x5f, 0x1c, 0x49, 0xfc, 0xb4, 0xad, 0x7f, 0xe3, 0xc7, 0xf5, 0xaf, 0x77, 0x65, 0x3, 0xb9, 0x93, 0xdd, 0x4e, 0x23, 0x19, 0x15, 0xfc, 0x2c, 0xfd, 0x4b, 0xd5, 0xbb, 0xa5, 0x7f, 0x7d, 0xfe, 0x80, 0x94, 0x37, 0x8b, 0xb6, 0x3a, 0x80, 0x87, 0x35, 0x20, 0xf2, 0x24, 0x87, 0xb9, 0xbb, 0xae, 0xc2, 0x4c, 0x58, 0x1, 0xe3, - 0xba, 0xb, 0xfb, 0xb8, 0xba, 0x7a, 0xd5, 0x70, 0x4, 0x13, 0x3c, 0xfb, 0x8b, 0xc3, 0x78, 0x63, 0xac, 0xf9, 0x6d, 0x28, 0xdd, 0xbc, 0xab, 0x5, 0xb2, 0x3, 0x91, 0x23, 0xd4, 0xbb, 0xe4, 0x7b, 0x54, 0x29, 0x15, 0xef, 0x3e, 0x58, 0x32, 0x3e, 0x9f, 0x5f, 0xb3, 0xc6, 0xad, 0x39, 0xf5, 0xc5, 0xd6, 0x6a, 0x4b, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x9f, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xa9, 0x7f, 0x2a, 0xdb, 0x1a, 0x39, 0x9e, 0xde, 0xbf, 0x1b, 0x6b, 0xda, 0xfb, 0x84, 0x80, 0x44, 0xb0, 0xb6, 0x85, 0x85, 0xfc, 0x45, 0xb4, 0x7b, 0x46, 0x7d, 0x7c, 0xb2, 0x66, 0x1b, 0x8f, 0xb, 0xe6, 0x2b, 0x50, 0x23, 0xe8, 0xd3, 0xa5, 0xc8, 0x8f, 0x6b, 0x4, 0xea, 0xbc, 0x3d, 0x45, 0xa4, 0x3e, 0x4d, 0xdc, 0x4b, 0x24, 0x5, 0x7f, 0x15, 0xf, 0x4c, 0x79, 0x90, 0xd2, 0xb, 0xc1, 0x82, 0x87, 0xc0, 0x7, 0xd9, 0x81, 0x91, 0x5e, 0x7f, 0xc2, 0xbd, 0xdf, 0x63, 0x6c, 0x61, 0xcb, 0x53, 0xe3, 0xf3, 0x23, 0xf6, 0xb7, 0xaa, 0xa2, 0x97, 0x20, 0x1, 0xe3, 0x7c, 0xd6, 0x3b, 0x4c, 0xae, 0x3, 0x7, 0x8f, 0x50, 0x24, 0x9, 0xd5, 0x85, 0xdf, 0xe9, 0x42, 0x26, 0xda, 0x3b, 0x94, 0x66, 0xf3, 0x19, 0x6d, 0x93, 0xf4, 0xcd, 0xdc, 0x57, 0xa7, 0xea, 0xb3, 0x51, 0xc3, 0x85, 0x57, 0x2e, 0x81, 0xb9, 0x68, 0x50, 0xe5, 0xca, 0xfe, 0xd2, 0x7, 0x1a, 0xd1, 0xd2, 0x65, 0x7, 0x24, 0xec, 0x89, 0x88, 0xb3, 0x43, 0x93, 0xeb, 0xc9, 0x41, 0x69, 0x19, 0x36, 0xf7, 0x4, 0x5c, 0x2e, 0x47, 0xcf, 0x19, 0x97, 0xff, 0x25, 0x85, 0xdf, 0x79, 0x83, 0xf8, 0x8d, 0xf6, 0xf5, 0xe6, - 0xd5, 0xab, 0x31, 0x36, 0xdd, 0xfb, 0x9, 0xe0, 0x62, 0xf6, 0x3a, 0x54, 0xfe, 0x8d, 0x35, 0x1e, 0x1f, 0xba, 0xff, 0x5e, 0x51, 0x44, 0x65, 0xf5, 0xbe, 0x73, 0x7, 0x43, 0x40, 0x4b, 0x73, 0xf0, 0xc7, 0xca, 0x6, 0x29, 0x99, 0x22, 0xd3, 0xde, 0x4f, 0xe8, 0x21, 0x5, 0x88, 0xed, 0xb, 0x20, 0x50, 0x7e, 0x4a, 0xf6, 0x22, 0xd5, 0x1f, 0xba, 0x1c, 0xe3, 0xd1, 0x99, 0xd2, 0x1f, 0x4d, 0xbb, 0x98, 0xb9, 0x14, 0x61, 0x32, 0x37, 0x88, 0xbd, 0x44, 0xad, 0x6b, 0x9f, 0x8e, 0x90, 0x66, 0xd7, 0x8e, 0xf3, 0x9, 0xc1, 0xb1, 0x79, 0x3, 0x36, 0x21, 0xc7, 0x28, 0xcf, 0x71, 0x54, 0x7a, 0x1c, 0xab, 0x9f, 0xae, 0xda, 0xb8, 0x9, 0x89, 0x9c, 0x68, 0xc2, 0xd2, 0x78, 0x30, 0xef, 0x67, 0xfa, 0x86, 0x36, 0x56, 0x66, 0xfa, 0xe6, 0x3c, 0x9c, 0xfe, 0xf9, 0xcd, 0xa1, 0xf8, 0x7d, 0x58, 0x3c, 0xfe, 0xf, 0xfa, 0xf7, 0x6f, 0xe2, 0x37, 0x4f, 0x66, 0xab, 0x90, 0x99, 0x3d, 0x4d, 0x24, 0xe8, 0xab, 0x30, 0x14, 0xaf, 0xb1, 0xe6, 0xb7, 0xa1, 0xf4, 0x50, 0xff, 0xa3, 0x49, 0x91, 0x10, 0x23, 0xf4, 0x8e, 0x92, 0x9a, 0x38, 0x1a, 0xf8, 0xa5, 0xf3, 0x7f, 0x59, 0xfe, 0x21, 0x79, 0x70, 0x9, 0x5c, 0xcf, 0x9c, 0x43, 0x6c, 0xbe, 0xce, 0xe4, 0x1b, 0xd1, 0xc8, 0x62, 0xb6, 0x9c, 0x64, 0x58, 0xbe, 0xa7, 0xb1, 0xa6, 0x6b, 0x96, 0x14, 0x51, 0x7b, 0x21, 0x2a, 0x4d, 0x4e, 0xe1, 0xc7, 0xfc, 0xb7, 0x71, 0xd6, 0xa7, 0xd1, 0xf1, 0xdf, 0xa8, 0xfe, 0x78, 0x87, 0x9b, 0x23, 0x24, 0x10, 0xb, 0x60, 0x6e, 0x6c, 0x1f, 0xe7, 0x38, 0xba, 0x6, 0xfe, 0x5f, 0x5e, 0x6, 0xfd, 0x6e, 0x57, 0x8f, - 0xb2, 0xf7, 0x90, 0xc2, 0xf2, 0x97, 0x6c, 0xc2, 0xbb, 0xc7, 0xf3, 0x97, 0x54, 0x45, 0xd7, 0x1b, 0xb2, 0x2e, 0x97, 0x1b, 0x12, 0xe5, 0x3e, 0x18, 0xd7, 0x8c, 0xf4, 0xfa, 0x52, 0xfb, 0x7f, 0xa1, 0x72, 0x70, 0x75, 0x2f, 0x66, 0x8f, 0xf8, 0xfe, 0x3e, 0x60, 0xfc, 0x2f, 0x71, 0x8b, 0x3d, 0x9f, 0x78, 0x5a, 0xc6, 0xff, 0x86, 0x8d, 0x1f, 0x34, 0x6f, 0x82, 0x92, 0xdc, 0x2d, 0x5, 0x78, 0xa3, 0x83, 0x70, 0xf3, 0x76, 0x86, 0x9b, 0x37, 0x40, 0xe3, 0x5d, 0x1b, 0x17, 0x3a, 0xac, 0x1, 0x84, 0x8c, 0x8f, 0x1f, 0x88, 0x14, 0x4f, 0x72, 0x1c, 0xcf, 0xc4, 0x87, 0x5e, 0x5f, 0xcc, 0xf8, 0x2f, 0x17, 0x7, 0xa4, 0xd4, 0x9a, 0x19, 0xbc, 0xf6, 0x0, 0xb5, 0x5b, 0x62, 0x9f, 0xf, 0xb0, 0x31, 0xf1, 0x2, 0x7e, 0x74, 0xec, 0x17, 0x6e, 0xe, 0x53, 0xf9, 0x1, 0xcc, 0x8b, 0xb5, 0x70, 0x43, 0xe5, 0xdf, 0x7, 0xe0, 0x2d, 0xa5, 0x9a, 0x56, 0x4e, 0x1d, 0x93, 0xc2, 0xb1, 0xee, 0xaf, 0x43, 0xe9, 0x95, 0x9d, 0xcb, 0x89, 0x87, 0x38, 0x34, 0x44, 0x5e, 0xb0, 0x8e, 0xc8, 0xb9, 0x6b, 0xe8, 0x2b, 0x6f, 0xb8, 0xf7, 0xd9, 0x35, 0x32, 0x7d, 0x3d, 0xaa, 0xdf, 0xff, 0xcc, 0xf5, 0x12, 0x20, 0x27, 0x8a, 0x9e, 0x88, 0xae, 0x9e, 0x18, 0xaf, 0xa0, 0xdd, 0xb3, 0x42, 0x97, 0x42, 0xd7, 0xe7, 0x51, 0x76, 0x3c, 0xdf, 0x16, 0x21, 0xe8, 0x69, 0xb0, 0xc6, 0xa7, 0x15, 0xc2, 0xf5, 0x69, 0xaa, 0x6f, 0x34, 0xda, 0x33, 0x52, 0x3a, 0x74, 0xc9, 0xb4, 0xa0, 0x29, 0x15, 0xa3, 0x4a, 0xdc, 0xd2, 0xa3, 0x9d, 0x86, 0xf6, 0x95, 0xde, 0xba, 0x90, 0xda, 0xc7, 0xa, 0x11, 0xf7, 0x44, 0x20, 0xac, - 0xdb, 0xb4, 0xc0, 0x7b, 0xc5, 0xb5, 0xcc, 0xb9, 0xb0, 0x4a, 0x2f, 0xc5, 0x33, 0x74, 0xc9, 0x65, 0x60, 0x53, 0x98, 0x9a, 0x8d, 0x1f, 0x77, 0x89, 0xe7, 0x3f, 0xd8, 0x7, 0xc2, 0xfa, 0x3, 0xf4, 0x33, 0x30, 0xff, 0xd5, 0x82, 0x5b, 0xd1, 0x33, 0xc9, 0x3, 0x7f, 0x6a, 0xc, 0x7d, 0x62, 0x6a, 0x1f, 0x1a, 0x8d, 0x9b, 0x41, 0xfd, 0x83, 0x68, 0xc6, 0xf1, 0xac, 0x32, 0xeb, 0x8d, 0x7c, 0x43, 0xc, 0xc5, 0x39, 0xc3, 0x9d, 0x70, 0x9a, 0x38, 0x29, 0x7f, 0x9d, 0x89, 0x0, 0x71, 0xca, 0xf, 0xb8, 0x40, 0x26, 0xd8, 0x8d, 0x59, 0xdc, 0xe5, 0xfa, 0x3e, 0x5b, 0xef, 0xa1, 0x1f, 0x1b, 0x8f, 0x56, 0x1e, 0xad, 0xd0, 0x2b, 0xce, 0x38, 0xfe, 0xb, 0x3f, 0x2a, 0xa1, 0xe3, 0x5c, 0x31, 0x10, 0x55, 0x6d, 0x25, 0x12, 0x3e, 0x18, 0xe, 0x12, 0xf, 0x82, 0xdd, 0x85, 0xfe, 0x51, 0xd2, 0xbf, 0xfc, 0xb1, 0xd7, 0xf2, 0x70, 0x80, 0xb, 0x96, 0x61, 0xa7, 0x10, 0xe5, 0x19, 0xff, 0xe5, 0xa6, 0x5c, 0x5e, 0xc6, 0x7f, 0xde, 0x99, 0x8d, 0x83, 0xf1, 0xbc, 0x54, 0x98, 0x78, 0x34, 0x4b, 0x5e, 0xe2, 0x11, 0xee, 0xdb, 0xd8, 0xeb, 0x8a, 0x49, 0xc6, 0x19, 0x97, 0x3f, 0xa2, 0x49, 0x29, 0x45, 0x1e, 0x75, 0x37, 0x35, 0xce, 0xd6, 0x20, 0x1f, 0xde, 0x1e, 0xbe, 0x86, 0xb4, 0xeb, 0xe, 0x2c, 0x48, 0x3d, 0x80, 0x74, 0xf5, 0x57, 0x98, 0x8b, 0x51, 0xe4, 0x5d, 0xf6, 0x5b, 0x74, 0x4c, 0xc5, 0x1c, 0x21, 0x2a, 0xda, 0xf8, 0xd, 0x8e, 0x3f, 0xeb, 0x6a, 0x4d, 0xae, 0x1b, 0xc9, 0x14, 0x7e, 0xba, 0xba, 0x6e, 0x75, 0x35, 0x67, 0x2c, 0x7a, 0x3f, 0xbe, 0xbf, 0x61, 0x77, 0x85, 0x6e, 0x25, - 0xa4, 0x66, 0xf6, 0x23, 0xdb, 0x97, 0xc1, 0xca, 0x5e, 0xdc, 0x82, 0x85, 0xe1, 0x1c, 0xec, 0xc4, 0x89, 0x72, 0xda, 0xe7, 0x47, 0x26, 0xd5, 0x36, 0xc0, 0x83, 0xb9, 0x8c, 0x78, 0xf, 0xf8, 0x3a, 0x58, 0x7e, 0xec, 0x84, 0x95, 0x1f, 0xfb, 0x5b, 0xd2, 0xff, 0x5, 0xcf, 0xf4, 0xf6, 0xb, 0xb5, 0x87, 0xb9, 0x56, 0x4, 0xf0, 0x1c, 0x92, 0xd4, 0x3f, 0xb, 0x5d, 0xbf, 0x16, 0x89, 0xe0, 0xe0, 0x8, 0xa6, 0xb6, 0x31, 0xbc, 0xbd, 0x4f, 0xe3, 0x16, 0x18, 0xb6, 0x39, 0xea, 0x53, 0xa3, 0x35, 0x82, 0x9c, 0xe4, 0x88, 0x1a, 0xa1, 0x88, 0x51, 0x35, 0x22, 0xf5, 0x8d, 0x35, 0xbf, 0xfd, 0x2f, 0xfd, 0xb7, 0x48, 0x39, 0xa9, 0xff, 0xea, 0x1e, 0xe8, 0x5f, 0x1e, 0xb5, 0xfe, 0x8b, 0xf7, 0x5e, 0x73, 0x9e, 0xe8, 0xbf, 0x75, 0xf5, 0xe3, 0x51, 0x2c, 0x3f, 0x6b, 0x65, 0x9f, 0x29, 0xc1, 0x51, 0x6b, 0xfd, 0xb6, 0xcd, 0x49, 0x56, 0xfc, 0xcb, 0x5b, 0x4d, 0x1b, 0x67, 0xd1, 0xde, 0x3d, 0x23, 0x82, 0xee, 0x48, 0x5b, 0x4f, 0x4, 0x65, 0x23, 0xd6, 0x97, 0x47, 0x99, 0x6a, 0x17, 0x27, 0x47, 0x2c, 0x5a, 0x29, 0x1f, 0xe9, 0xef, 0xfd, 0x63, 0x75, 0x11, 0xed, 0x6, 0xd5, 0x6d, 0xce, 0x8e, 0x7, 0xaf, 0xbc, 0x72, 0xe9, 0xd2, 0x25, 0xd3, 0xd8, 0xfc, 0x25, 0x28, 0x7b, 0x5c, 0x74, 0x1, 0xbe, 0x36, 0xa, 0xf1, 0x93, 0xa5, 0x7f, 0x28, 0x80, 0x6a, 0x2e, 0x27, 0x62, 0x99, 0x42, 0xa8, 0xa1, 0xa9, 0x5a, 0xeb, 0x2f, 0x83, 0xd6, 0x49, 0x8d, 0x54, 0xec, 0x60, 0xf6, 0xcc, 0x3d, 0x48, 0x95, 0x98, 0xe9, 0x6e, 0x2d, 0x7d, 0x73, 0xe, 0xf4, 0x5f, 0xf8, 0x98, 0x42, 0xf1, 0xe8, 0x62, - 0x4f, 0xda, 0x7c, 0x40, 0xa3, 0xce, 0x6f, 0x39, 0x78, 0x8c, 0x7d, 0x1a, 0xec, 0x31, 0xa5, 0x97, 0x9f, 0x4f, 0xef, 0x67, 0x16, 0x11, 0xfb, 0x22, 0x9c, 0xda, 0xd7, 0x81, 0xe6, 0xde, 0xdf, 0x25, 0x7e, 0x1f, 0x30, 0xbc, 0xa9, 0xd3, 0x1a, 0x8b, 0x87, 0xd6, 0x58, 0x4f, 0xf6, 0xe4, 0xad, 0x6c, 0x97, 0x47, 0x3e, 0xbe, 0xc4, 0xe2, 0x87, 0x9e, 0xa2, 0xa6, 0x70, 0x92, 0xd7, 0x4a, 0xe2, 0xb9, 0x4f, 0x61, 0xda, 0xc6, 0x99, 0xc0, 0x79, 0x41, 0x2f, 0xde, 0x44, 0x2c, 0x27, 0x76, 0xd3, 0xa8, 0xeb, 0xd7, 0xaa, 0x5d, 0x57, 0x21, 0x4, 0x8d, 0x76, 0x36, 0x81, 0x32, 0x49, 0x23, 0xbc, 0x57, 0x70, 0xc8, 0xb7, 0x76, 0x5e, 0x24, 0x22, 0xcb, 0x52, 0x91, 0xee, 0xfb, 0x4b, 0x77, 0xfc, 0x1b, 0x13, 0xbf, 0x53, 0x2, 0x29, 0x80, 0xd8, 0x7a, 0xdc, 0x8e, 0xbd, 0x3c, 0x6e, 0x80, 0x5e, 0x4, 0x52, 0x32, 0xea, 0xed, 0x97, 0x52, 0xf1, 0x68, 0xf7, 0xfb, 0x69, 0xff, 0x7c, 0x92, 0x4f, 0xc5, 0xaf, 0xe1, 0xbe, 0x7f, 0xa4, 0x2f, 0xaf, 0x7f, 0x69, 0xf4, 0xc7, 0xff, 0x9a, 0x92, 0x53, 0xe0, 0xb3, 0xd4, 0xbd, 0x23, 0x82, 0xbe, 0xe1, 0xfe, 0x4e, 0x3a, 0x9a, 0xc5, 0x4f, 0x6, 0x59, 0xbe, 0xc4, 0x9f, 0xf, 0x58, 0xf2, 0xad, 0x39, 0xaa, 0x21, 0x41, 0x14, 0x41, 0x64, 0x85, 0x17, 0xfa, 0xea, 0xac, 0x25, 0x70, 0xf6, 0xde, 0x43, 0xec, 0x7c, 0xa6, 0xdb, 0xbf, 0x26, 0xfa, 0x5b, 0xfd, 0xed, 0xa, 0x83, 0xd, 0xa1, 0x7e, 0xea, 0x3e, 0x10, 0x5f, 0xee, 0xba, 0x55, 0xc1, 0xa0, 0xfe, 0x69, 0x7, 0xaa, 0x21, 0xdf, 0xf6, 0xbb, 0x96, 0x6d, 0x5f, 0xca, 0xa3, 0xe2, 0x6f, 0x47, 0x7f, - 0x5b, 0x4e, 0x45, 0x52, 0x6b, 0xcb, 0x2b, 0xfc, 0x9f, 0xb5, 0x7, 0xa6, 0x42, 0x6e, 0x87, 0xe0, 0x8, 0x1a, 0xf1, 0x2d, 0x6e, 0x65, 0xc4, 0xfa, 0xf5, 0x78, 0xbc, 0x4d, 0xad, 0xb6, 0x55, 0xed, 0xee, 0x60, 0xfb, 0x3d, 0x2c, 0x1a, 0xc9, 0xfc, 0xdb, 0xe9, 0xa6, 0x8f, 0xb7, 0x9f, 0xc8, 0x1b, 0x8f, 0x3c, 0x95, 0xfe, 0xf9, 0xc, 0xce, 0xa7, 0x93, 0x92, 0xa3, 0x3, 0x71, 0xa7, 0xf, 0x79, 0x7d, 0x3f, 0x8, 0x6a, 0x83, 0x83, 0x45, 0x9, 0xf3, 0x8c, 0xcb, 0x67, 0x9c, 0xa5, 0xff, 0x36, 0x3d, 0xf0, 0x4d, 0x70, 0x97, 0x50, 0x6, 0xf8, 0xfe, 0x43, 0xc0, 0x52, 0xde, 0x9a, 0x2a, 0x62, 0xeb, 0xb8, 0x2d, 0x15, 0xc8, 0xd6, 0xa3, 0xe9, 0xcc, 0x70, 0xa0, 0xe7, 0x8d, 0x47, 0xed, 0x6f, 0x7c, 0x97, 0xfe, 0x57, 0x71, 0xa, 0x45, 0xca, 0x77, 0xbb, 0x3c, 0x92, 0xdb, 0x39, 0xc1, 0x59, 0xe0, 0x71, 0x4d, 0x70, 0x39, 0x5d, 0x79, 0x79, 0xf2, 0x78, 0x8f, 0x28, 0xe7, 0x39, 0xb, 0x7c, 0x93, 0x7d, 0xf9, 0x6e, 0xab, 0x4c, 0xf4, 0xb0, 0xd7, 0xbc, 0x3c, 0x67, 0xde, 0x39, 0xe3, 0x27, 0xb0, 0xe2, 0x9a, 0x70, 0xe, 0x2d, 0x1e, 0xb7, 0xc7, 0x3e, 0x3f, 0xc9, 0x55, 0x40, 0x4b, 0x1e, 0x2d, 0xa9, 0x3, 0x76, 0x49, 0x77, 0xed, 0x5c, 0x49, 0x9e, 0xe0, 0x99, 0x3c, 0xc1, 0x91, 0x9b, 0x5b, 0xe0, 0xca, 0x91, 0xc5, 0xf1, 0xe7, 0xb8, 0x3d, 0xac, 0x14, 0x78, 0x3c, 0x22, 0x6d, 0x56, 0x7e, 0x7e, 0x11, 0xa5, 0xcf, 0x71, 0xbb, 0xc7, 0x8f, 0xcf, 0x73, 0x8d, 0x73, 0x4f, 0x18, 0x3f, 0xc1, 0x3d, 0x81, 0x9e, 0x3d, 0xc7, 0xe3, 0xa3, 0xaf, 0x79, 0xe3, 0xf3, 0xdc, 0xe7, 0xc8, 0x6e, - 0xb7, 0xcb, 0x5d, 0xe0, 0xa2, 0x2d, 0xcb, 0x2d, 0x90, 0x26, 0xb1, 0x2b, 0x3a, 0xb, 0x9c, 0xee, 0x7c, 0x6f, 0x7e, 0x7e, 0x81, 0x53, 0x72, 0x8e, 0x3b, 0xf9, 0x52, 0xff, 0x1f, 0xc3, 0x4d, 0x47, 0xb3, -} ; + 120, 156, 237, 125, 13, 116, 19, 87, 150, 230, 43, 169, 44, 61, 9, 89, 146, 141, 13, 178, 35, 74, 2, 11, 16, 63, 14, 2, 28, 34, 130, 98, 21, 240, 136, 5, 193, 29, 51, 116, 186, 33, 157, 237, 40, 158, 52, 237, 36, 227, 30, 217, 132, 142, 8, 142, 85, 161, 233, 32, 50, 241, 180, 210, 233, 31, 102, 54, 147, 168, 123, 231, 204, 228, 236, 9, 167, 157, 179, 147, 109, 102, 54, 59, 81, 2, 19, 51, 115, 112, 143, 115, 210, 57, 211, 59, 155, 19, 202, 144, 237, 164, 103, 227, 165, 24, 146, 142, 166, 99, 172, 125, 247, 85, 25, 104, 203, 19, 217, 99, 201, 114, 39, 245, 14, 63, 250, 84, 85, 122, 85, 183, 238, 187, 239, 222, 251, 238, 189, 47, 118, 238, 147, 239, 10, 28, 66, 239, 255, 69, 0, 185, 56, 39, 66, 40, 251, 207, 59, 254, 114, 101, 238, 90, 19, 165, 190, 238, 246, 238, 175, 108, 232, 16, 191, 183, 238, 210, 250, 79, 214, 31, 93, 31, 220, 208, 27, 150, 186, 125, 41, 244, 191, 99, 25, 116, 86, 146, 150, 139, + 233, 220, 56, 66, 82, 85, 166, 70, 50, 190, 241, 212, 55, 69, 201, 248, 90, 213, 192, 15, 114, 78, 241, 199, 225, 1, 233, 104, 247, 174, 135, 14, 175, 235, 16, 119, 53, 29, 11, 195, 111, 60, 182, 225, 192, 134, 122, 218, 219, 218, 219, 92, 13, 71, 110, 185, 240, 224, 170, 63, 83, 123, 187, 173, 251, 239, 214, 94, 235, 105, 30, 122, 41, 252, 127, 247, 159, 145, 208, 192, 63, 228, 56, 233, 229, 23, 140, 63, 91, 75, 127, 201, 32, 253, 175, 174, 125, 27, 254, 140, 126, 251, 166, 246, 45, 220, 227, 190, 13, 175, 209, 111, 254, 153, 126, 195, 191, 98, 252, 217, 190, 13, 94, 138, 126, 153, 51, 116, 255, 141, 244, 178, 20, 16, 127, 73, 191, 143, 176, 239, 47, 210, 239, 199, 232, 247, 93, 146, 145, 254, 207, 73, 223, 160, 223, 238, 237, 230, 164, 47, 209, 255, 127, 190, 127, 104, 127, 123, 247, 79, 105, 31, 237, 221, 94, 73, 222, 127, 184, 123, 225, 134, 254, 13, 127, 27, 78, 207, 219, 123, 233, 168, 229, 160, 120, 105, 205, 83, 79, 242, + 191, 106, 191, 121, 221, 227, 206, 223, 228, 244, 166, 55, 189, 233, 77, 111, 122, 211, 155, 222, 244, 166, 55, 189, 233, 77, 111, 122, 155, 149, 102, 68, 123, 184, 187, 62, 165, 61, 252, 205, 47, 174, 115, 142, 189, 253, 55, 159, 118, 206, 232, 21, 245, 183, 144, 214, 72, 95, 45, 230, 3, 56, 112, 48, 24, 18, 60, 102, 35, 34, 173, 203, 49, 255, 66, 114, 199, 191, 253, 155, 9, 95, 226, 198, 208, 196, 243, 243, 174, 111, 180, 99, 62, 153, 60, 239, 245, 138, 210, 100, 199, 243, 206, 239, 140, 96, 30, 227, 122, 33, 180, 113, 211, 161, 253, 251, 247, 147, 193, 229, 254, 22, 51, 142, 178, 131, 70, 179, 221, 87, 233, 192, 56, 109, 89, 236, 5, 172, 152, 179, 164, 209, 130, 121, 55, 182, 26, 175, 140, 202, 146, 36, 101, 249, 155, 162, 88, 56, 159, 19, 4, 187, 23, 159, 114, 61, 126, 202, 87, 105, 183, 32, 52, 102, 94, 160, 254, 188, 84, 168, 127, 29, 207, 45, 76, 214, 155, 135, 127, 26, 227, 145, 88, 85, 169, 225, 166, 225, 155, 1, + 19, 95, 105, 250, 235, 220, 15, 252, 20, 53, 59, 154, 31, 253, 228, 242, 163, 205, 133, 249, 155, 243, 147, 32, 94, 25, 234, 201, 198, 162, 162, 247, 120, 185, 233, 165, 99, 29, 235, 88, 199, 58, 86, 27, 233, 179, 97, 222, 133, 3, 23, 46, 92, 200, 37, 194, 8, 89, 207, 4, 23, 35, 47, 202, 228, 114, 239, 222, 144, 187, 57, 151, 43, 118, 127, 190, 3, 113, 255, 186, 205, 209, 14, 23, 128, 44, 247, 39, 133, 206, 175, 235, 127, 180, 10, 33, 103, 187, 108, 164, 255, 34, 36, 150, 155, 94, 19, 177, 169, 109, 1, 215, 19, 120, 213, 188, 136, 222, 91, 8, 133, 74, 255, 190, 90, 27, 48, 31, 193, 109, 38, 187, 189, 55, 151, 176, 219, 201, 157, 207, 153, 142, 246, 94, 48, 179, 131, 210, 62, 19, 57, 97, 198, 188, 19, 167, 24, 150, 21, 84, 31, 219, 196, 241, 34, 61, 132, 118, 81, 124, 134, 43, 55, 189, 242, 158, 103, 228, 33, 204, 63, 147, 188, 175, 218, 194, 35, 83, 34, 129, 200, 183, 209, 24, 247, 5, 245, 105, 164, 146, + 244, 183, 25, 243, 94, 60, 196, 64, 34, 17, 42, 120, 62, 220, 207, 105, 13, 208, 59, 42, 55, 189, 242, 238, 111, 112, 21, 216, 27, 79, 244, 88, 120, 3, 223, 155, 64, 214, 254, 53, 92, 79, 58, 99, 158, 71, 249, 209, 118, 246, 108, 209, 251, 243, 189, 180, 27, 27, 182, 200, 199, 96, 229, 19, 101, 165, 187, 11, 142, 223, 248, 206, 225, 176, 102, 92, 212, 34, 20, 41, 55, 189, 76, 182, 6, 11, 125, 143, 235, 134, 206, 217, 145, 60, 72, 233, 87, 73, 237, 55, 31, 246, 194, 49, 37, 30, 47, 200, 15, 115, 29, 51, 126, 229, 17, 226, 138, 252, 123, 90, 203, 147, 31, 195, 199, 27, 57, 36, 191, 2, 221, 73, 254, 118, 152, 79, 126, 8, 212, 172, 55, 31, 158, 198, 239, 239, 211, 6, 251, 84, 206, 31, 249, 2, 204, 87, 109, 241, 120, 48, 228, 22, 4, 7, 105, 228, 253, 100, 29, 14, 100, 100, 89, 78, 167, 164, 175, 147, 19, 141, 152, 63, 153, 100, 198, 143, 237, 217, 230, 26, 50, 242, 159, 0, 159, 63, 235, 91, 86, 109, + 176, 88, 248, 153, 210, 99, 219, 243, 139, 96, 126, 148, 207, 37, 126, 226, 166, 95, 191, 82, 238, 247, 173, 99, 29, 235, 184, 140, 242, 246, 196, 22, 204, 251, 113, 128, 170, 99, 189, 189, 194, 108, 232, 75, 95, 6, 249, 167, 234, 119, 225, 176, 125, 74, 242, 85, 214, 192, 28, 212, 95, 116, 60, 51, 252, 181, 61, 93, 195, 107, 98, 53, 40, 198, 59, 191, 245, 52, 2, 125, 240, 94, 208, 255, 235, 229, 76, 105, 250, 35, 157, 123, 128, 255, 250, 247, 31, 122, 180, 217, 227, 240, 60, 90, 240, 252, 74, 11, 220, 79, 76, 202, 40, 217, 158, 80, 86, 41, 55, 189, 242, 238, 175, 111, 61, 248, 239, 99, 227, 227, 151, 84, 214, 249, 137, 5, 35, 11, 207, 27, 184, 41, 92, 95, 231, 186, 149, 19, 234, 17, 18, 108, 8, 85, 41, 225, 194, 253, 85, 174, 133, 254, 234, 225, 183, 195, 97, 143, 157, 141, 207, 29, 227, 71, 17, 71, 222, 220, 201, 181, 112, 242, 81, 167, 10, 79, 145, 206, 4, 230, 207, 38, 79, 55, 24, 159, 222, 190, 253, 133, + 63, 94, 64, 14, 188, 101, 106, 137, 41, 230, 215, 158, 127, 251, 23, 178, 18, 67, 76, 223, 121, 33, 153, 97, 167, 7, 179, 166, 89, 167, 95, 231, 141, 152, 223, 137, 235, 221, 238, 209, 209, 158, 144, 102, 207, 165, 147, 175, 87, 115, 152, 55, 76, 229, 122, 120, 126, 245, 238, 167, 100, 239, 145, 193, 29, 152, 111, 194, 105, 35, 199, 161, 222, 132, 199, 189, 34, 176, 134, 195, 98, 173, 1, 84, 212, 54, 132, 188, 236, 247, 254, 116, 156, 154, 156, 68, 245, 123, 63, 217, 136, 229, 140, 232, 237, 127, 106, 239, 106, 31, 105, 221, 14, 235, 39, 129, 120, 200, 29, 26, 29, 133, 223, 107, 244, 19, 140, 235, 217, 249, 189, 66, 255, 172, 211, 111, 130, 253, 198, 248, 111, 11, 142, 30, 67, 71, 14, 63, 38, 77, 131, 255, 240, 212, 248, 79, 181, 223, 154, 142, 57, 129, 1, 169, 253, 198, 232, 213, 59, 126, 244, 42, 255, 125, 231, 26, 255, 17, 208, 159, 187, 127, 244, 95, 190, 187, 119, 251, 159, 127, 239, 7, 164, 114, 30, 230, 131, 184, 126, 236, + 228, 201, 95, 200, 178, 162, 242, 223, 203, 229, 227, 63, 29, 235, 88, 199, 58, 214, 241, 103, 3, 179, 249, 104, 217, 56, 226, 138, 238, 175, 38, 157, 43, 49, 47, 82, 251, 41, 20, 106, 22, 0, 55, 58, 49, 111, 195, 82, 104, 145, 199, 225, 112, 152, 233, 252, 123, 59, 243, 7, 202, 178, 156, 201, 100, 36, 170, 207, 172, 0, 253, 166, 13, 201, 10, 213, 182, 138, 208, 255, 200, 2, 208, 231, 30, 73, 167, 159, 251, 206, 29, 17, 236, 191, 179, 99, 151, 5, 33, 167, 33, 10, 202, 18, 226, 219, 248, 3, 6, 206, 240, 196, 227, 8, 137, 20, 74, 195, 65, 50, 210, 237, 39, 117, 56, 230, 243, 38, 207, 100, 98, 138, 84, 238, 247, 163, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 158, 28, 147, 145, 0, 196, 31, 167, 144, 217, 108, 52, 2, 110, 221, 13, 241, 17, 129, 248, 245, 249, 131, 103, 147, 91, 56, 163, 13, 65, 254, 32, 25, 9, 97, 158, + 224, 40, 122, 230, 217, 119, 126, 54, 217, 239, 65, 254, 96, 122, 58, 249, 131, 54, 204, 31, 79, 90, 23, 250, 124, 56, 66, 27, 228, 15, 18, 211, 120, 254, 96, 133, 157, 175, 116, 96, 39, 58, 230, 101, 223, 72, 30, 197, 247, 71, 11, 135, 115, 203, 61, 8, 165, 181, 235, 193, 63, 127, 55, 135, 32, 222, 82, 81, 20, 121, 174, 229, 15, 214, 54, 197, 170, 144, 152, 65, 81, 30, 161, 245, 165, 120, 127, 79, 223, 133, 13, 59, 15, 187, 156, 193, 141, 203, 92, 107, 151, 109, 44, 120, 126, 227, 60, 88, 111, 232, 167, 244, 146, 144, 148, 201, 148, 155, 62, 58, 214, 177, 142, 117, 252, 121, 197, 228, 132, 1, 226, 191, 134, 144, 29, 86, 123, 65, 62, 239, 133, 120, 50, 111, 48, 24, 12, 133, 220, 128, 231, 179, 227, 102, 218, 28, 118, 237, 56, 100, 52, 208, 195, 161, 201, 126, 15, 230, 67, 19, 228, 87, 77, 177, 127, 152, 127, 159, 79, 254, 235, 2, 159, 215, 143, 105, 35, 35, 59, 32, 30, 80, 205, 71, 50, 59, 60, 164, 209, 13, + 247, 35, 50, 156, 29, 29, 99, 249, 94, 207, 39, 219, 93, 22, 142, 135, 198, 250, 19, 212, 223, 146, 104, 43, 55, 61, 117, 172, 227, 114, 98, 50, 114, 23, 196, 223, 15, 109, 162, 227, 211, 227, 113, 32, 210, 103, 132, 250, 4, 146, 28, 139, 199, 179, 138, 92, 252, 254, 58, 239, 246, 147, 8, 238, 15, 250, 105, 91, 113, 227, 74, 114, 224, 240, 7, 3, 107, 221, 21, 8, 5, 253, 171, 86, 173, 240, 147, 198, 70, 208, 215, 37, 56, 55, 163, 100, 227, 164, 113, 9, 196, 151, 88, 67, 110, 183, 59, 52, 58, 247, 226, 159, 117, 172, 99, 29, 235, 248, 243, 138, 73, 231, 106, 208, 183, 100, 80, 6, 221, 130, 96, 39, 173, 141, 16, 223, 62, 148, 85, 16, 82, 148, 120, 188, 232, 253, 245, 237, 5, 125, 110, 201, 158, 136, 24, 137, 120, 125, 11, 239, 239, 223, 93, 133, 16, 174, 175, 58, 12, 1, 249, 246, 122, 45, 158, 254, 22, 118, 242, 201, 56, 213, 15, 87, 131, 127, 71, 74, 70, 88, 59, 83, 110, 122, 233, 88, 199, 58, 214, 177, + 142, 117, 172, 227, 242, 99, 210, 217, 202, 244, 23, 106, 250, 170, 250, 75, 231, 14, 240, 87, 201, 212, 244, 45, 137, 254, 226, 251, 232, 235, 216, 176, 115, 29, 118, 217, 206, 93, 252, 193, 169, 181, 2, 25, 89, 10, 249, 139, 175, 177, 131, 14, 119, 131, 245, 164, 159, 51, 124, 219, 36, 34, 14, 50, 24, 20, 7, 203, 119, 112, 65, 126, 37, 88, 195, 241, 108, 185, 233, 165, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 229, 194, 100, 240, 97, 240, 55, 167, 194, 30, 4, 33, 6, 110, 50, 242, 40, 219, 79, 64, 150, 161, 124, 171, 82, 244, 245, 66, 114, 249, 14, 255, 58, 81, 196, 78, 87, 42, 37, 165, 44, 119, 144, 202, 69, 126, 178, 22, 199, 216, 65, 143, 183, 133, 213, 195, 89, 141, 51, 12, 103, 2, 41, 210, 217, 136, 249, 51, 73, 223, 158, 8, 198, 145, 200, 208, 208, 180, 251, 211, 226, 35, 160, 77, 165, 158, 210, 180, 127, 191, 47, 194, 246, 79, 168, 224, 89, 185, 33, 100, 177, 26, 44, 208, + 213, 243, 40, 227, 117, 150, 228, 125, 173, 103, 249, 248, 102, 132, 114, 72, 1, 251, 219, 4, 239, 79, 45, 151, 99, 119, 56, 242, 206, 127, 235, 231, 31, 12, 236, 114, 195, 71, 217, 253, 118, 249, 249, 45, 239, 254, 42, 235, 33, 62, 177, 13, 248, 143, 225, 145, 13, 224, 63, 136, 82, 99, 189, 68, 253, 25, 96, 125, 62, 211, 51, 250, 255, 46, 126, 188, 255, 80, 130, 12, 38, 192, 127, 16, 5, 250, 244, 223, 19, 125, 88, 227, 63, 137, 157, 44, 83, 254, 131, 245, 124, 130, 163, 241, 120, 48, 24, 204, 42, 114, 185, 233, 165, 99, 29, 235, 248, 179, 131, 73, 167, 17, 226, 135, 234, 131, 46, 205, 127, 218, 184, 15, 228, 97, 32, 24, 44, 209, 250, 239, 229, 175, 99, 195, 142, 243, 24, 251, 35, 145, 8, 246, 251, 181, 245, 223, 128, 182, 254, 123, 23, 147, 127, 183, 224, 126, 118, 50, 172, 255, 118, 117, 99, 225, 221, 156, 69, 48, 37, 233, 249, 24, 151, 155, 94, 58, 46, 50, 63, 116, 126, 9, 243, 33, 220, 22, 100, 109, 22, 250, + 83, 227, 213, 120, 136, 87, 131, 198, 226, 81, 189, 56, 0, 199, 226, 241, 158, 223, 185, 250, 231, 190, 3, 34, 54, 80, 125, 214, 134, 254, 243, 63, 94, 204, 93, 41, 251, 253, 252, 174, 97, 210, 183, 20, 244, 251, 215, 108, 46, 27, 7, 18, 136, 12, 186, 152, 61, 112, 144, 51, 55, 252, 254, 240, 112, 225, 235, 213, 122, 89, 43, 169, 176, 148, 50, 153, 76, 225, 243, 27, 59, 253, 196, 143, 149, 154, 234, 174, 120, 93, 5, 111, 34, 7, 62, 52, 29, 141, 125, 168, 238, 95, 225, 116, 187, 153, 189, 49, 190, 63, 67, 44, 22, 103, 245, 186, 78, 39, 119, 248, 189, 239, 93, 118, 214, 63, 209, 199, 236, 9, 31, 43, 55, 47, 149, 133, 94, 208, 127, 250, 90, 125, 125, 210, 250, 37, 136, 23, 143, 37, 14, 29, 186, 53, 236, 49, 114, 164, 86, 50, 153, 187, 222, 53, 75, 72, 236, 233, 233, 137, 138, 181, 138, 143, 163, 214, 84, 123, 6, 30, 15, 5, 139, 240, 190, 12, 160, 47, 91, 187, 13, 180, 153, 220, 33, 210, 103, 135, 248, 82, + 4, 181, 210, 194, 137, 196, 126, 82, 251, 226, 7, 3, 79, 229, 140, 8, 137, 98, 70, 118, 198, 201, 96, 3, 232, 207, 214, 151, 159, 121, 246, 217, 209, 209, 172, 92, 110, 126, 203, 127, 158, 53, 108, 254, 141, 197, 14, 134, 193, 6, 33, 149, 127, 200, 226, 241, 223, 123, 239, 194, 171, 240, 134, 11, 95, 223, 13, 252, 82, 47, 73, 25, 48, 153, 167, 32, 111, 43, 216, 252, 14, 159, 61, 225, 68, 215, 164, 239, 247, 55, 227, 136, 187, 64, 26, 111, 97, 239, 247, 194, 229, 67, 135, 254, 231, 219, 239, 92, 36, 157, 219, 129, 158, 233, 239, 28, 253, 206, 24, 212, 143, 245, 213, 214, 98, 195, 230, 244, 49, 182, 159, 141, 124, 40, 54, 235, 244, 131, 252, 65, 250, 60, 66, 72, 139, 127, 238, 100, 252, 144, 54, 119, 199, 98, 74, 41, 226, 159, 43, 239, 1, 121, 113, 154, 143, 68, 58, 150, 55, 204, 159, 175, 173, 255, 170, 21, 140, 29, 238, 6, 150, 191, 224, 211, 252, 7, 144, 191, 0, 246, 178, 5, 247, 123, 28, 230, 12, 10, 29, 53, + 147, 19, 127, 0, 247, 231, 165, 71, 149, 108, 214, 85, 126, 254, 107, 93, 12, 254, 150, 20, 138, 82, 114, 197, 98, 101, 191, 159, 185, 142, 235, 92, 157, 28, 146, 195, 156, 80, 47, 220, 182, 57, 171, 197, 51, 30, 79, 146, 20, 138, 68, 120, 159, 105, 65, 177, 251, 219, 150, 58, 200, 245, 164, 198, 32, 188, 161, 13, 38, 168, 23, 255, 186, 107, 113, 245, 78, 31, 236, 63, 227, 244, 154, 236, 34, 185, 92, 141, 77, 91, 211, 199, 172, 254, 142, 14, 250, 10, 211, 37, 231, 151, 19, 22, 45, 158, 1, 217, 237, 130, 123, 218, 250, 210, 182, 84, 128, 234, 251, 99, 11, 23, 245, 72, 72, 78, 211, 223, 219, 191, 11, 31, 190, 253, 54, 140, 171, 171, 145, 47, 218, 81, 242, 252, 128, 13, 17, 168, 55, 57, 150, 179, 36, 235, 144, 1, 85, 33, 50, 18, 129, 122, 211, 43, 155, 154, 156, 213, 213, 6, 84, 114, 251, 130, 197, 167, 212, 96, 250, 228, 72, 86, 98, 241, 224, 204, 127, 111, 158, 159, 172, 192, 43, 157, 24, 7, 123, 31, 105, 55, + 176, 122, 233, 84, 94, 43, 153, 12, 149, 47, 39, 165, 162, 223, 63, 200, 187, 179, 201, 118, 248, 108, 220, 31, 247, 21, 150, 151, 139, 88, 62, 10, 3, 206, 185, 23, 255, 178, 180, 109, 1, 135, 145, 161, 61, 74, 63, 139, 38, 83, 201, 251, 227, 63, 242, 191, 159, 51, 11, 53, 2, 66, 155, 223, 61, 120, 155, 147, 205, 183, 255, 50, 126, 20, 229, 213, 15, 39, 35, 55, 96, 30, 49, 255, 180, 172, 40, 83, 212, 207, 152, 191, 153, 169, 179, 101, 167, 111, 233, 199, 147, 27, 226, 201, 31, 160, 111, 47, 234, 77, 167, 218, 202, 125, 63, 115, 29, 51, 122, 249, 176, 149, 126, 28, 235, 157, 3, 247, 243, 187, 142, 153, 189, 22, 84, 237, 181, 88, 124, 230, 242, 188, 220, 152, 217, 167, 235, 112, 218, 23, 168, 166, 19, 61, 50, 48, 121, 66, 174, 217, 123, 181, 129, 24, 219, 143, 242, 71, 72, 181, 231, 200, 131, 13, 195, 57, 65, 45, 215, 140, 36, 209, 91, 240, 247, 97, 189, 42, 69, 245, 103, 58, 251, 50, 123, 27, 246, 39, 59, 158, + 12, 68, 252, 190, 154, 106, 171, 165, 34, 239, 252, 221, 127, 48, 124, 115, 204, 137, 196, 140, 136, 188, 78, 169, 99, 230, 239, 235, 206, 241, 252, 68, 40, 224, 49, 99, 255, 38, 25, 188, 139, 229, 55, 6, 67, 33, 193, 227, 48, 82, 253, 200, 167, 218, 31, 14, 143, 48, 54, 54, 90, 2, 126, 179, 97, 62, 147, 92, 178, 204, 231, 85, 235, 151, 64, 254, 180, 87, 219, 191, 3, 242, 167, 251, 118, 248, 201, 98, 172, 48, 28, 180, 157, 39, 125, 7, 48, 223, 159, 92, 82, 135, 121, 158, 206, 62, 188, 181, 127, 205, 112, 226, 181, 140, 153, 135, 87, 118, 246, 244, 140, 247, 131, 155, 57, 253, 162, 96, 239, 70, 183, 126, 114, 37, 236, 49, 35, 180, 34, 112, 128, 83, 179, 191, 185, 140, 243, 191, 119, 26, 139, 221, 223, 194, 36, 172, 143, 202, 185, 132, 49, 72, 233, 3, 253, 47, 247, 155, 205, 227, 235, 191, 30, 142, 249, 159, 3, 234, 126, 136, 72, 118, 225, 109, 29, 134, 225, 92, 46, 236, 67, 94, 216, 46, 51, 145, 40, 55, 189, 242, + 232, 215, 122, 47, 232, 147, 50, 125, 152, 112, 216, 161, 217, 247, 148, 31, 213, 108, 219, 18, 244, 7, 251, 219, 164, 146, 247, 45, 169, 194, 60, 171, 223, 3, 242, 225, 164, 38, 29, 194, 225, 144, 233, 73, 158, 237, 47, 41, 211, 107, 50, 244, 90, 210, 183, 11, 230, 231, 243, 8, 101, 210, 169, 51, 247, 21, 212, 23, 103, 159, 126, 55, 168, 245, 136, 168, 58, 27, 14, 83, 252, 209, 105, 83, 75, 236, 67, 243, 234, 213, 61, 144, 62, 93, 252, 254, 42, 59, 65, 31, 22, 67, 148, 247, 140, 70, 163, 170, 79, 191, 124, 157, 255, 0, 198, 239, 90, 102, 31, 32, 20, 192, 167, 201, 8, 130, 247, 41, 135, 220, 161, 108, 86, 201, 206, 57, 255, 52, 227, 135, 76, 242, 9, 182, 223, 17, 101, 3, 254, 208, 87, 57, 52, 230, 30, 232, 106, 67, 38, 228, 197, 134, 226, 247, 199, 131, 191, 167, 158, 141, 198, 120, 40, 143, 30, 164, 243, 32, 140, 7, 137, 129, 168, 34, 147, 3, 255, 96, 26, 136, 141, 154, 37, 73, 122, 246, 217, 148, 115, 206, + 233, 135, 100, 196, 7, 243, 81, 38, 24, 12, 170, 254, 191, 193, 149, 160, 159, 193, 253, 103, 193, 191, 86, 124, 126, 95, 192, 246, 223, 10, 2, 240, 132, 195, 252, 75, 187, 171, 232, 120, 221, 198, 54, 251, 202, 60, 214, 202, 248, 111, 139, 230, 191, 2, 254, 171, 20, 152, 189, 207, 242, 247, 179, 115, 208, 127, 90, 185, 134, 197, 15, 209, 233, 215, 65, 167, 95, 149, 126, 77, 236, 254, 229, 108, 182, 20, 250, 30, 171, 95, 210, 238, 243, 193, 2, 230, 237, 243, 152, 252, 123, 64, 147, 127, 227, 243, 239, 90, 124, 203, 85, 250, 141, 244, 176, 253, 53, 4, 193, 46, 8, 163, 163, 115, 174, 254, 1, 219, 15, 90, 196, 41, 120, 130, 68, 66, 171, 167, 118, 58, 25, 245, 246, 43, 241, 146, 208, 15, 246, 251, 74, 38, 119, 88, 44, 84, 25, 49, 24, 184, 218, 23, 218, 88, 188, 146, 203, 216, 253, 58, 122, 232, 150, 73, 244, 197, 58, 152, 111, 150, 32, 88, 240, 16, 11, 235, 151, 179, 175, 47, 215, 179, 253, 243, 60, 205, 161, 80, 24, 252, + 207, 48, 94, 68, 28, 80, 226, 193, 32, 21, 216, 37, 120, 95, 191, 199, 214, 43, 67, 212, 214, 104, 246, 56, 28, 108, 254, 120, 38, 111, 254, 136, 50, 60, 62, 126, 233, 253, 208, 241, 27, 234, 153, 131, 241, 67, 204, 127, 79, 229, 11, 125, 28, 32, 31, 125, 223, 155, 216, 122, 136, 192, 164, 77, 41, 248, 253, 17, 246, 251, 140, 92, 225, 112, 16, 246, 143, 111, 137, 125, 160, 174, 191, 213, 185, 140, 90, 252, 149, 200, 112, 38, 112, 156, 197, 71, 96, 156, 138, 135, 220, 194, 59, 239, 216, 133, 114, 211, 171, 220, 120, 162, 189, 251, 89, 179, 127, 75, 78, 191, 190, 85, 108, 61, 18, 230, 95, 22, 239, 170, 250, 131, 163, 204, 29, 92, 4, 127, 240, 236, 63, 207, 66, 255, 233, 5, 216, 106, 54, 104, 184, 113, 5, 155, 127, 153, 179, 178, 20, 253, 53, 114, 32, 47, 98, 70, 71, 184, 55, 222, 211, 236, 97, 243, 111, 96, 252, 40, 226, 248, 77, 27, 185, 163, 93, 174, 1, 240, 78, 208, 1, 60, 204, 246, 131, 245, 226, 33, 109, 63, + 88, 105, 218, 253, 93, 23, 191, 11, 94, 144, 114, 211, 123, 166, 120, 85, 100, 239, 112, 88, 64, 82, 211, 79, 214, 32, 228, 255, 222, 151, 11, 207, 215, 91, 217, 122, 180, 2, 202, 168, 60, 58, 90, 238, 251, 207, 231, 63, 59, 188, 223, 126, 202, 13, 197, 249, 61, 120, 223, 106, 49, 87, 110, 178, 120, 109, 114, 98, 9, 172, 127, 236, 88, 87, 87, 105, 68, 156, 217, 194, 234, 149, 4, 176, 198, 129, 177, 158, 188, 243, 43, 111, 85, 215, 123, 37, 86, 46, 54, 83, 110, 122, 77, 196, 190, 239, 223, 235, 95, 183, 37, 141, 41, 107, 203, 198, 44, 71, 233, 121, 23, 179, 71, 100, 5, 118, 128, 43, 193, 251, 58, 33, 0, 61, 50, 136, 167, 250, 48, 213, 216, 201, 72, 228, 106, 189, 48, 65, 240, 228, 199, 143, 119, 54, 12, 159, 171, 80, 221, 139, 83, 241, 47, 206, 58, 255, 141, 52, 128, 255, 114, 75, 181, 203, 98, 3, 3, 152, 244, 125, 197, 79, 172, 88, 241, 152, 233, 221, 58, 205, 226, 2, 230, 47, 69, 232, 136, 180, 245, 207, + 65, 201, 120, 99, 232, 27, 176, 254, 249, 49, 4, 168, 128, 19, 158, 244, 121, 64, 95, 11, 80, 93, 155, 51, 242, 202, 99, 164, 239, 78, 230, 15, 139, 197, 232, 11, 200, 72, 147, 244, 199, 252, 127, 1, 159, 207, 231, 245, 250, 124, 53, 76, 191, 131, 250, 200, 156, 209, 236, 16, 4, 55, 227, 223, 61, 28, 202, 229, 148, 12, 10, 39, 18, 44, 255, 252, 100, 178, 189, 202, 233, 116, 138, 145, 213, 107, 72, 35, 98, 252, 122, 73, 129, 217, 58, 40, 145, 62, 30, 252, 15, 79, 128, 174, 21, 206, 184, 47, 147, 74, 86, 79, 89, 29, 1, 210, 230, 31, 177, 235, 159, 79, 158, 79, 167, 82, 78, 145, 182, 137, 247, 243, 226, 95, 45, 163, 246, 99, 218, 128, 110, 3, 180, 233, 245, 133, 201, 13, 204, 191, 246, 39, 172, 70, 99, 127, 65, 127, 89, 161, 253, 7, 139, 255, 190, 62, 91, 251, 15, 146, 202, 27, 85, 127, 82, 200, 189, 136, 154, 243, 148, 158, 22, 198, 15, 118, 33, 52, 154, 149, 75, 64, 191, 143, 126, 243, 193, 192, 102, 183, + 1, 170, 255, 173, 106, 240, 249, 180, 248, 221, 254, 167, 190, 165, 197, 239, 170, 246, 199, 53, 255, 51, 228, 127, 44, 118, 243, 212, 252, 29, 11, 186, 71, 231, 156, 254, 60, 177, 254, 184, 239, 166, 157, 92, 75, 204, 173, 10, 156, 143, 63, 41, 193, 254, 155, 147, 212, 31, 55, 143, 215, 31, 55, 219, 125, 119, 210, 241, 52, 54, 111, 128, 225, 24, 255, 155, 114, 211, 167, 240, 243, 108, 101, 241, 96, 110, 183, 27, 121, 18, 148, 255, 90, 35, 108, 60, 59, 60, 205, 163, 89, 42, 130, 138, 207, 239, 247, 128, 124, 202, 120, 65, 250, 65, 131, 253, 188, 69, 249, 24, 75, 64, 202, 74, 95, 96, 252, 183, 121, 220, 254, 181, 189, 70, 70, 22, 193, 254, 230, 214, 42, 11, 43, 31, 203, 214, 63, 114, 169, 140, 217, 200, 214, 63, 206, 150, 127, 253, 67, 139, 255, 163, 178, 56, 71, 201, 55, 238, 191, 146, 16, 196, 135, 149, 194, 255, 7, 241, 253, 103, 146, 222, 8, 8, 243, 150, 22, 53, 255, 45, 168, 141, 215, 176, 120, 7, 163, 95, 157, 70, + 63, 197, 198, 147, 151, 94, 180, 30, 237, 117, 171, 23, 103, 2, 169, 114, 211, 107, 82, 249, 71, 245, 137, 144, 219, 157, 200, 243, 159, 142, 149, 160, 63, 77, 254, 121, 33, 120, 188, 97, 249, 114, 50, 242, 135, 96, 191, 137, 236, 160, 123, 18, 127, 52, 232, 135, 199, 147, 63, 102, 64, 118, 205, 185, 252, 5, 210, 186, 22, 232, 23, 165, 234, 64, 40, 204, 230, 223, 157, 160, 47, 176, 217, 48, 99, 8, 149, 96, 254, 237, 134, 120, 200, 91, 150, 137, 145, 182, 55, 47, 95, 74, 177, 245, 75, 124, 109, 253, 146, 197, 147, 138, 105, 117, 60, 203, 135, 206, 147, 19, 191, 143, 249, 39, 147, 247, 57, 204, 102, 227, 40, 202, 160, 193, 15, 191, 12, 250, 212, 192, 2, 216, 76, 128, 42, 8, 101, 167, 223, 139, 59, 177, 224, 22, 120, 161, 26, 172, 121, 55, 34, 7, 100, 182, 126, 84, 1, 194, 198, 96, 44, 120, 125, 93, 255, 26, 14, 75, 156, 65, 164, 159, 157, 98, 245, 235, 133, 249, 239, 125, 200, 167, 84, 249, 111, 57, 240, 31, 203, 95, + 104, 99, 7, 93, 161, 144, 182, 158, 41, 51, 108, 52, 27, 201, 75, 71, 33, 30, 218, 192, 132, 223, 40, 159, 103, 127, 252, 182, 125, 91, 124, 125, 161, 240, 252, 113, 35, 236, 47, 237, 116, 187, 5, 129, 249, 159, 225, 126, 158, 212, 238, 70, 42, 126, 127, 11, 59, 130, 195, 185, 4, 147, 254, 187, 16, 253, 227, 251, 254, 55, 184, 1, 14, 29, 85, 231, 143, 43, 65, 214, 255, 59, 227, 228, 152, 125, 122, 76, 23, 251, 238, 252, 10, 54, 16, 249, 24, 54, 60, 22, 149, 47, 12, 171, 249, 165, 1, 220, 150, 97, 163, 163, 248, 247, 127, 211, 25, 227, 112, 46, 231, 0, 226, 96, 100, 114, 210, 249, 171, 82, 141, 39, 202, 142, 246, 122, 232, 32, 173, 235, 127, 20, 226, 67, 12, 199, 140, 204, 3, 35, 178, 251, 233, 79, 198, 36, 36, 138, 147, 217, 15, 229, 198, 218, 248, 25, 10, 193, 232, 133, 250, 247, 125, 8, 214, 39, 72, 146, 44, 169, 194, 166, 41, 92, 15, 252, 130, 213, 207, 83, 138, 215, 215, 198, 175, 111, 217, 154, 53, 107, + 86, 45, 246, 154, 62, 88, 106, 65, 210, 227, 170, 255, 224, 237, 127, 164, 247, 19, 190, 106, 15, 35, 135, 167, 151, 52, 114, 160, 207, 196, 226, 138, 28, 21, 69, 175, 179, 220, 244, 202, 31, 191, 141, 44, 127, 58, 30, 7, 115, 114, 22, 250, 3, 253, 37, 165, 233, 47, 180, 21, 210, 95, 202, 77, 159, 194, 250, 31, 102, 246, 218, 166, 112, 216, 227, 1, 253, 5, 236, 115, 130, 189, 255, 227, 149, 231, 168, 65, 60, 133, 235, 7, 131, 152, 151, 240, 91, 212, 84, 102, 123, 48, 20, 230, 247, 5, 160, 143, 252, 107, 202, 217, 182, 107, 243, 246, 237, 243, 216, 122, 135, 150, 255, 134, 100, 41, 79, 191, 35, 39, 16, 232, 139, 75, 144, 188, 118, 109, 213, 222, 237, 15, 46, 61, 254, 224, 240, 57, 182, 90, 34, 152, 106, 188, 94, 145, 116, 54, 248, 91, 182, 178, 120, 66, 4, 1, 221, 179, 78, 63, 117, 253, 173, 62, 28, 14, 55, 11, 215, 205, 191, 223, 62, 82, 170, 249, 247, 58, 253, 111, 197, 138, 85, 191, 165, 255, 169, 243, 239, 175, + 18, 11, 5, 117, 70, 53, 154, 28, 76, 62, 124, 131, 131, 92, 155, 196, 199, 239, 189, 55, 80, 110, 126, 203, 215, 255, 62, 125, 255, 173, 194, 244, 255, 124, 239, 191, 69, 238, 252, 161, 117, 32, 225, 54, 82, 225, 183, 233, 214, 222, 132, 22, 63, 164, 152, 67, 77, 89, 48, 127, 75, 35, 255, 206, 38, 189, 170, 249, 182, 61, 162, 229, 11, 50, 253, 47, 22, 143, 229, 229, 95, 145, 65, 12, 227, 247, 48, 124, 150, 131, 201, 57, 24, 127, 85, 4, 254, 235, 79, 62, 80, 44, 254, 99, 241, 115, 127, 149, 220, 129, 56, 3, 143, 135, 95, 149, 89, 190, 155, 11, 15, 133, 55, 82, 226, 198, 52, 254, 187, 235, 26, 255, 145, 190, 69, 234, 126, 58, 138, 2, 34, 56, 79, 191, 46, 57, 253, 198, 249, 109, 245, 117, 254, 63, 27, 246, 10, 66, 207, 168, 82, 42, 255, 31, 213, 95, 252, 43, 86, 173, 2, 255, 95, 173, 109, 17, 135, 253, 84, 217, 51, 163, 95, 211, 9, 216, 196, 232, 231, 84, 231, 19, 161, 185, 39, 75, 26, 247, 192, 251, + 60, 172, 200, 162, 120, 252, 116, 180, 186, 220, 252, 150, 247, 60, 144, 111, 25, 192, 177, 112, 79, 60, 14, 1, 148, 90, 252, 98, 0, 93, 57, 151, 67, 111, 95, 201, 21, 95, 223, 92, 10, 246, 245, 22, 22, 112, 106, 180, 121, 201, 200, 35, 126, 178, 68, 165, 87, 184, 37, 17, 99, 227, 245, 100, 82, 2, 44, 7, 146, 247, 145, 145, 131, 204, 95, 31, 18, 224, 141, 206, 193, 248, 171, 59, 127, 248, 47, 119, 36, 220, 38, 35, 109, 185, 131, 64, 207, 37, 126, 194, 97, 25, 246, 102, 130, 5, 180, 98, 247, 183, 235, 152, 1, 116, 13, 251, 149, 173, 127, 154, 241, 74, 200, 84, 247, 139, 101, 180, 23, 161, 70, 112, 35, 209, 137, 196, 68, 93, 124, 231, 112, 66, 173, 70, 132, 106, 17, 74, 154, 164, 107, 246, 36, 202, 204, 254, 248, 44, 44, 191, 62, 125, 255, 173, 130, 215, 127, 206, 247, 223, 34, 39, 88, 60, 104, 32, 30, 135, 124, 95, 120, 190, 149, 224, 79, 77, 81, 98, 10, 118, 187, 189, 4, 243, 85, 2, 243, 17, 250, 126, + 28, 118, 65, 112, 135, 130, 228, 166, 35, 214, 150, 94, 183, 26, 0, 104, 168, 48, 147, 198, 135, 192, 126, 220, 205, 112, 70, 142, 50, 125, 59, 153, 124, 32, 45, 165, 156, 98, 36, 226, 47, 55, 189, 38, 213, 39, 2, 26, 253, 100, 132, 76, 182, 249, 156, 193, 130, 98, 104, 232, 226, 212, 174, 31, 167, 55, 56, 112, 166, 64, 111, 114, 98, 11, 235, 207, 1, 139, 149, 33, 74, 191, 55, 247, 85, 161, 152, 235, 40, 59, 104, 52, 155, 153, 253, 235, 210, 252, 89, 167, 78, 189, 71, 62, 250, 185, 169, 165, 235, 3, 243, 123, 127, 249, 147, 191, 253, 234, 221, 119, 239, 212, 232, 121, 62, 197, 200, 137, 253, 96, 127, 144, 213, 218, 252, 29, 245, 166, 103, 157, 126, 35, 221, 44, 223, 195, 19, 10, 81, 18, 130, 252, 219, 13, 254, 144, 116, 70, 86, 226, 33, 161, 4, 252, 215, 87, 9, 254, 0, 57, 21, 89, 106, 172, 194, 54, 251, 253, 193, 174, 225, 139, 189, 238, 22, 132, 54, 51, 138, 49, 254, 244, 106, 249, 12, 14, 79, 51, 105, 173, + 103, 245, 209, 33, 246, 79, 206, 72, 115, 79, 254, 13, 110, 98, 250, 74, 144, 82, 79, 81, 162, 106, 62, 144, 11, 226, 237, 216, 0, 46, 1, 253, 88, 127, 136, 74, 87, 198, 129, 172, 126, 29, 228, 79, 128, 192, 165, 115, 24, 105, 60, 232, 55, 223, 172, 250, 95, 36, 42, 225, 216, 126, 56, 199, 147, 237, 34, 242, 122, 233, 16, 142, 148, 155, 94, 249, 242, 136, 141, 167, 122, 132, 2, 106, 252, 120, 235, 60, 134, 149, 120, 207, 216, 88, 41, 214, 63, 32, 63, 108, 5, 246, 250, 170, 171, 45, 212, 192, 230, 216, 250, 219, 120, 253, 135, 236, 99, 95, 32, 212, 126, 227, 51, 73, 162, 94, 204, 113, 76, 30, 246, 39, 231, 51, 122, 138, 82, 217, 245, 23, 210, 184, 140, 249, 43, 175, 214, 251, 187, 220, 225, 255, 238, 86, 177, 195, 197, 170, 1, 249, 151, 79, 60, 127, 243, 83, 1, 150, 239, 182, 216, 128, 144, 232, 181, 205, 184, 127, 179, 18, 93, 76, 88, 240, 125, 77, 198, 143, 92, 237, 27, 58, 108, 24, 103, 230, 45, 206, 74, 24, + 217, 42, 68, 115, 233, 229, 213, 10, 45, 95, 8, 210, 117, 130, 65, 107, 255, 3, 92, 79, 63, 157, 190, 122, 210, 84, 107, 58, 87, 240, 122, 19, 139, 103, 25, 107, 89, 4, 30, 116, 144, 119, 176, 191, 159, 27, 75, 116, 52, 53, 135, 226, 89, 133, 233, 7, 252, 212, 245, 145, 233, 243, 251, 122, 240, 255, 177, 245, 52, 206, 96, 200, 243, 239, 145, 145, 133, 80, 143, 227, 117, 179, 113, 158, 177, 218, 224, 227, 73, 103, 179, 166, 31, 128, 252, 203, 95, 47, 98, 247, 155, 252, 143, 223, 47, 57, 65, 229, 237, 25, 252, 37, 6, 56, 42, 63, 58, 13, 224, 191, 19, 17, 228, 23, 78, 210, 223, 165, 191, 103, 254, 138, 92, 5, 247, 218, 77, 128, 205, 193, 61, 195, 225, 216, 187, 9, 40, 231, 128, 162, 255, 244, 67, 118, 63, 182, 210, 209, 111, 105, 199, 252, 197, 200, 139, 228, 92, 206, 195, 163, 209, 209, 209, 138, 7, 230, 211, 251, 193, 139, 157, 78, 43, 139, 121, 25, 239, 95, 109, 146, 196, 244, 103, 77, 223, 43, 134, 254, 204, 236, + 131, 141, 170, 189, 243, 216, 171, 230, 25, 243, 59, 203, 63, 74, 38, 125, 213, 84, 109, 134, 69, 75, 210, 232, 209, 226, 135, 32, 122, 168, 20, 227, 71, 212, 234, 25, 192, 146, 105, 176, 96, 62, 22, 57, 17, 1, 253, 40, 198, 22, 135, 233, 20, 87, 110, 249, 55, 215, 176, 239, 251, 137, 225, 135, 17, 26, 112, 74, 94, 5, 220, 202, 190, 183, 110, 174, 66, 99, 55, 80, 125, 38, 129, 28, 83, 184, 158, 241, 235, 135, 240, 105, 118, 234, 97, 177, 250, 176, 77, 216, 26, 87, 52, 172, 198, 223, 49, 255, 183, 93, 8, 21, 189, 94, 226, 103, 29, 243, 111, 109, 226, 12, 73, 201, 128, 196, 1, 102, 67, 241, 123, 187, 22, 87, 179, 35, 226, 182, 64, 9, 250, 251, 172, 237, 63, 72, 70, 234, 89, 254, 69, 34, 17, 131, 70, 159, 111, 55, 171, 231, 4, 182, 92, 73, 250, 3, 123, 241, 100, 178, 191, 13, 90, 36, 114, 199, 253, 123, 208, 112, 34, 230, 66, 49, 86, 2, 186, 249, 101, 210, 185, 11, 232, 197, 244, 61, 36, 165, 135, 152, + 127, 250, 120, 242, 252, 16, 84, 239, 140, 136, 211, 174, 159, 93, 114, 250, 173, 55, 211, 251, 231, 145, 232, 84, 39, 189, 218, 157, 189, 44, 31, 45, 105, 68, 209, 48, 66, 223, 44, 122, 127, 64, 143, 231, 147, 71, 220, 17, 96, 64, 219, 154, 137, 251, 71, 145, 145, 245, 224, 255, 81, 237, 95, 165, 248, 249, 99, 165, 30, 191, 164, 242, 203, 48, 255, 42, 217, 172, 90, 208, 115, 150, 198, 111, 224, 234, 248, 133, 245, 204, 141, 215, 213, 143, 189, 124, 43, 62, 188, 57, 131, 81, 22, 10, 104, 7, 231, 92, 253, 161, 137, 252, 199, 214, 51, 196, 210, 141, 223, 207, 218, 254, 101, 44, 254, 254, 76, 242, 188, 193, 106, 173, 180, 153, 140, 232, 126, 215, 61, 28, 138, 241, 71, 57, 240, 135, 100, 54, 22, 221, 158, 34, 173, 187, 88, 190, 62, 148, 159, 52, 116, 119, 117, 177, 248, 165, 0, 140, 87, 230, 111, 180, 79, 60, 127, 105, 112, 227, 240, 57, 129, 54, 12, 234, 245, 208, 156, 211, 255, 88, 61, 22, 42, 111, 60, 106, 6, 164, 58, 255, + 178, 145, 44, 110, 243, 150, 164, 191, 223, 30, 191, 164, 175, 133, 249, 3, 61, 80, 76, 194, 19, 14, 179, 227, 39, 147, 190, 116, 42, 19, 241, 166, 229, 119, 89, 61, 199, 38, 28, 205, 66, 120, 73, 96, 230, 235, 187, 117, 123, 182, 115, 2, 22, 88, 188, 97, 13, 66, 109, 75, 159, 95, 196, 236, 161, 115, 247, 12, 219, 81, 46, 247, 202, 244, 229, 249, 55, 213, 248, 131, 77, 170, 188, 43, 185, 254, 2, 246, 196, 217, 100, 191, 234, 174, 88, 214, 80, 219, 180, 179, 10, 137, 212, 116, 228, 165, 49, 132, 254, 155, 137, 197, 35, 52, 105, 241, 24, 224, 95, 189, 28, 29, 14, 119, 81, 249, 162, 94, 48, 7, 245, 151, 253, 76, 127, 238, 237, 157, 60, 255, 103, 218, 191, 7, 246, 192, 141, 215, 234, 21, 229, 191, 175, 27, 193, 31, 53, 84, 67, 155, 179, 186, 250, 17, 86, 127, 186, 70, 163, 151, 199, 227, 102, 245, 103, 50, 172, 158, 44, 236, 159, 113, 67, 81, 238, 7, 143, 35, 52, 237, 124, 2, 118, 189, 225, 223, 191, 158, 140, 4, + 217, 248, 128, 244, 188, 96, 40, 63, 254, 184, 248, 250, 139, 74, 191, 106, 104, 206, 154, 15, 41, 191, 65, 188, 149, 162, 116, 248, 87, 243, 53, 53, 69, 175, 127, 57, 17, 155, 98, 183, 131, 255, 233, 225, 69, 106, 134, 206, 140, 235, 205, 146, 253, 123, 168, 126, 32, 118, 184, 180, 2, 228, 100, 125, 211, 240, 195, 49, 8, 92, 108, 42, 13, 253, 94, 172, 195, 194, 175, 207, 93, 200, 213, 174, 15, 174, 246, 175, 240, 47, 112, 66, 60, 115, 234, 85, 9, 45, 64, 47, 27, 149, 175, 147, 167, 109, 85, 168, 119, 81, 11, 227, 223, 96, 80, 33, 35, 247, 250, 73, 3, 238, 7, 231, 189, 232, 117, 38, 203, 61, 94, 243, 158, 231, 114, 59, 54, 108, 110, 194, 124, 76, 181, 63, 74, 221, 223, 66, 255, 62, 181, 126, 83, 53, 138, 217, 232, 159, 107, 242, 15, 61, 100, 64, 123, 230, 92, 124, 85, 33, 204, 255, 181, 90, 167, 209, 187, 174, 141, 219, 75, 255, 175, 253, 226, 2, 238, 240, 14, 31, 138, 126, 113, 211, 67, 137, 95, 59, 11, 231, + 207, 157, 120, 136, 249, 187, 180, 116, 235, 169, 205, 31, 79, 38, 219, 97, 50, 192, 152, 55, 170, 244, 139, 2, 253, 232, 252, 177, 223, 68, 58, 217, 252, 145, 102, 39, 211, 1, 193, 206, 127, 57, 249, 99, 237, 252, 83, 87, 245, 105, 117, 188, 100, 175, 209, 95, 100, 243, 79, 185, 233, 199, 244, 103, 63, 110, 155, 42, 61, 254, 67, 243, 239, 167, 208, 111, 34, 61, 38, 210, 171, 220, 252, 150, 247, 60, 176, 255, 17, 190, 182, 255, 145, 86, 159, 215, 227, 233, 9, 32, 217, 91, 10, 121, 49, 187, 251, 111, 149, 26, 223, 207, 232, 133, 208, 83, 223, 170, 138, 176, 122, 134, 79, 247, 215, 163, 148, 148, 225, 148, 116, 73, 250, 35, 35, 55, 179, 249, 22, 99, 236, 247, 251, 124, 13, 26, 63, 170, 227, 211, 108, 116, 48, 250, 237, 28, 167, 159, 55, 165, 197, 123, 60, 209, 1, 249, 114, 94, 52, 99, 253, 111, 243, 222, 123, 224, 49, 229, 176, 64, 121, 133, 14, 187, 25, 143, 223, 201, 252, 127, 154, 253, 49, 139, 254, 191, 171, 254, 131, 165, + 241, 71, 57, 106, 13, 92, 60, 199, 9, 78, 206, 127, 166, 228, 254, 3, 211, 147, 27, 88, 189, 60, 6, 228, 139, 211, 127, 158, 245, 205, 156, 153, 147, 255, 169, 42, 188, 145, 225, 175, 1, 63, 74, 184, 214, 41, 178, 242, 218, 165, 226, 191, 152, 202, 127, 222, 134, 137, 242, 47, 95, 95, 116, 95, 173, 183, 35, 211, 86, 238, 241, 58, 169, 252, 187, 126, 255, 55, 152, 63, 192, 127, 90, 170, 249, 3, 226, 13, 157, 184, 63, 30, 227, 28, 158, 230, 96, 243, 85, 254, 51, 104, 254, 43, 136, 103, 105, 189, 58, 126, 157, 100, 208, 197, 242, 27, 149, 152, 2, 225, 196, 211, 238, 111, 5, 126, 112, 248, 156, 135, 91, 9, 245, 43, 81, 46, 113, 174, 248, 252, 192, 242, 103, 82, 90, 248, 90, 233, 223, 23, 200, 187, 103, 146, 10, 139, 191, 127, 255, 212, 41, 210, 247, 85, 63, 111, 214, 242, 23, 60, 158, 224, 224, 234, 131, 28, 191, 7, 33, 54, 161, 72, 25, 180, 189, 191, 99, 56, 241, 230, 171, 102, 117, 117, 19, 61, 89, 110, 126, 203, + 159, 15, 9, 215, 66, 5, 78, 85, 80, 197, 181, 182, 251, 153, 255, 25, 27, 37, 122, 206, 13, 69, 215, 167, 62, 107, 251, 111, 145, 221, 91, 40, 253, 80, 75, 149, 28, 101, 152, 255, 196, 204, 252, 127, 93, 59, 209, 31, 151, 100, 191, 77, 200, 95, 173, 199, 253, 203, 111, 191, 125, 235, 27, 151, 134, 37, 182, 31, 130, 168, 229, 175, 10, 158, 112, 254, 124, 211, 13, 241, 10, 237, 18, 36, 192, 121, 189, 115, 46, 127, 122, 156, 223, 92, 70, 244, 144, 17, 57, 11, 230, 191, 228, 211, 99, 3, 243, 223, 40, 74, 108, 106, 231, 119, 50, 127, 193, 45, 194, 234, 198, 21, 254, 142, 136, 72, 250, 150, 95, 139, 63, 117, 56, 60, 100, 240, 128, 90, 31, 6, 154, 253, 185, 231, 152, 255, 99, 7, 135, 94, 201, 125, 114, 249, 242, 165, 75, 247, 146, 155, 254, 174, 30, 245, 186, 13, 16, 124, 10, 4, 157, 43, 244, 195, 42, 253, 178, 87, 227, 39, 209, 21, 123, 41, 250, 99, 251, 181, 216, 112, 58, 28, 246, 56, 60, 225, 91, 227, 116, 188, + 94, 203, 23, 140, 198, 14, 146, 198, 16, 248, 7, 143, 48, 28, 63, 233, 36, 39, 60, 16, 175, 149, 134, 244, 8, 41, 51, 247, 248, 239, 223, 29, 191, 109, 37, 26, 191, 7, 82, 191, 76, 116, 41, 230, 208, 93, 95, 217, 253, 198, 27, 82, 154, 84, 122, 96, 190, 77, 55, 213, 84, 91, 113, 85, 85, 211, 164, 227, 55, 13, 227, 87, 132, 16, 192, 25, 211, 207, 180, 122, 179, 170, 239, 101, 70, 29, 72, 206, 229, 173, 23, 76, 23, 223, 168, 217, 31, 71, 48, 226, 222, 164, 255, 111, 83, 8, 215, 35, 67, 60, 23, 170, 154, 202, 126, 17, 211, 166, 31, 196, 255, 89, 177, 213, 231, 172, 182, 240, 6, 67, 88, 171, 191, 241, 43, 53, 254, 79, 178, 179, 249, 99, 179, 230, 63, 144, 93, 152, 233, 51, 219, 180, 120, 74, 49, 218, 95, 110, 126, 171, 101, 245, 151, 104, 227, 185, 214, 109, 240, 60, 80, 127, 170, 9, 71, 221, 208, 4, 135, 99, 239, 153, 125, 139, 89, 116, 28, 207, 206, 18, 181, 120, 55, 143, 27, 244, 135, 34, 208, 147, + 233, 75, 103, 147, 237, 53, 53, 53, 247, 189, 255, 254, 125, 53, 181, 31, 44, 230, 152, 246, 98, 110, 27, 67, 209, 77, 37, 247, 159, 176, 249, 74, 173, 87, 102, 116, 56, 4, 55, 105, 92, 48, 190, 222, 204, 2, 166, 10, 203, 187, 249, 28, 142, 178, 124, 159, 110, 112, 75, 143, 251, 227, 114, 60, 138, 186, 144, 104, 43, 245, 253, 87, 172, 220, 199, 226, 213, 178, 8, 61, 110, 64, 1, 171, 249, 136, 228, 201, 86, 34, 180, 250, 239, 41, 207, 167, 126, 90, 244, 122, 211, 249, 243, 87, 163, 182, 222, 135, 2, 144, 17, 54, 237, 241, 239, 12, 1, 63, 221, 204, 248, 233, 86, 144, 231, 243, 65, 159, 149, 44, 22, 174, 162, 210, 209, 92, 242, 250, 122, 108, 63, 128, 179, 201, 37, 28, 199, 209, 225, 203, 87, 108, 232, 128, 248, 191, 177, 143, 77, 78, 132, 172, 81, 140, 198, 227, 55, 181, 112, 42, 122, 127, 55, 141, 239, 223, 147, 129, 130, 112, 51, 238, 127, 176, 150, 229, 211, 209, 143, 241, 222, 102, 71, 201, 227, 93, 139, 78, 191, 202, + 175, 141, 231, 183, 13, 67, 193, 158, 194, 207, 91, 1, 245, 78, 152, 43, 99, 236, 224, 204, 227, 29, 103, 138, 115, 255, 21, 113, 55, 209, 161, 242, 211, 167, 17, 250, 63, 188, 106, 20, 85, 208, 191, 94, 250, 215, 143, 88, 204, 187, 186, 120, 6, 203, 231, 103, 115, 185, 151, 16, 219, 38, 97, 234, 173, 22, 49, 189, 103, 158, 205, 106, 197, 16, 5, 100, 69, 118, 87, 29, 155, 29, 88, 60, 223, 132, 147, 89, 208, 67, 181, 90, 172, 115, 252, 184, 253, 218, 113, 7, 164, 192, 79, 114, 221, 132, 102, 49, 227, 90, 103, 93, 45, 111, 177, 216, 109, 21, 216, 52, 191, 218, 225, 132, 102, 119, 58, 77, 230, 74, 71, 101, 165, 64, 113, 181, 195, 49, 127, 190, 213, 86, 229, 168, 157, 95, 235, 168, 165, 71, 171, 157, 46, 250, 175, 117, 190, 213, 81, 141, 29, 14, 155, 195, 110, 115, 56, 172, 22, 187, 121, 33, 237, 212, 49, 207, 62, 207, 81, 89, 83, 89, 105, 159, 103, 158, 87, 117, 125, 87, 185, 207, 121, 251, 255, 155, 255, 84, 91 +}; diff --git a/examples/EVE_Test_SAME51_EVE3-43G/tft_data.h b/examples/EVE_Test_SAME51_EVE3-43G/tft_data.h index fe01be7..9a44458 100644 --- a/examples/EVE_Test_SAME51_EVE3-43G/tft_data.h +++ b/examples/EVE_Test_SAME51_EVE3-43G/tft_data.h @@ -12,6 +12,6 @@ extern const uint8_t logo[239] PROGMEM; extern const uint8_t pic[3844] PROGMEM; -extern const uint8_t flash[12753] PROGMEM; +extern const uint8_t flash[8199] PROGMEM; #endif /* TFT_DATA_H */ \ No newline at end of file diff --git a/examples/EVE_Test_STM32_RiTFT50_PlatformIO/platformio.ini b/examples/EVE_Test_STM32_RiTFT50_PlatformIO/platformio.ini index ec551b9..668f872 100644 --- a/examples/EVE_Test_STM32_RiTFT50_PlatformIO/platformio.ini +++ b/examples/EVE_Test_STM32_RiTFT50_PlatformIO/platformio.ini @@ -45,9 +45,11 @@ build_flags = [env:STM32F446] board = nucleo_f446re +build_unflags = -Os build_flags = ${env.build_flags} -D STM32F4 + -O2 [env:STM32G474] board = nucleo_g474re diff --git a/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft.c b/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft.c index 75784b0..f5f932e 100644 --- a/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft.c +++ b/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft.c @@ -1,8 +1,8 @@ /* -@file tft.c / tft.cpp +@file tft.c @brief TFT handling functions for EVE_Test project -@version 1.20 -@date 2022-12-10 +@version 1.21 +@date 2023-01-08 @author Rudolph Riedel @section History @@ -19,12 +19,16 @@ - renamed PINK to MAGENTA 1.20 +- several minor changes + +1.21 - several minor changes */ #include "EVE.h" #include "tft_data.h" +#include "tft.h" #define TEST_UTF8 0 @@ -47,16 +51,20 @@ #define MEM_LOGO 0x000f8000 /* start-address of logo, needs 6272 bytes of memory */ #define MEM_PIC1 0x000fa000 /* start of 100x100 pixel test image, ARGB565, needs 20000 bytes of memory */ - #define MEM_DL_STATIC (EVE_RAM_G_SIZE - 4096) /* 0xff000 - start-address of the static part of the display-list, upper 4k of gfx-mem */ -uint32_t num_dl_static; /* amount of bytes in the static part of our display-list */ +uint32_t num_dl_static = 0; /* amount of bytes in the static part of our display-list */ uint8_t tft_active = 0; -uint16_t num_profile_a, num_profile_b; +uint16_t num_profile_a = 0; +uint16_t num_profile_b = 0; #define LAYOUT_Y1 66 +void touch_calibrate(void); +void initStaticBackground(void); + + void touch_calibrate(void) { @@ -210,6 +218,8 @@ void touch_calibrate(void) /* write down the numbers on the screen and either place them in one of the pre-defined blocks above or make a new block */ #if 0 /* calibrate touch and displays values to screen */ + +#if 1 EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); @@ -218,15 +228,16 @@ void touch_calibrate(void) EVE_cmd_dl(DL_DISPLAY); EVE_cmd_dl(CMD_SWAP); EVE_execute_cmd(); +#else + EVE_calibrate_manual(EVE_HSIZE, EVE_VSIZE); +#endif - uint32_t touch_a, touch_b, touch_c, touch_d, touch_e, touch_f; - - touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); - touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); - touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); - touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); - touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); - touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); + uint32_t touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); + uint32_t touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); + uint32_t touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); + uint32_t touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); + uint32_t touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); + uint32_t touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); @@ -260,25 +271,25 @@ void touch_calibrate(void) void initStaticBackground(void) { EVE_cmd_dl(CMD_DLSTART); /* Start the display list */ - EVE_cmd_dl(TAG(0)); /* do not use the following objects for touch-detection */ + EVE_cmd_dl(DL_TAG); /* no tag = 0 - do not use the following objects for touch-detection */ - EVE_cmd_bgcolor(0x00c0c0c0); /* light grey */ + EVE_cmd_bgcolor(0x00c0c0c0UL); /* light grey */ - EVE_cmd_dl(VERTEX_FORMAT(0)); /* reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ + EVE_cmd_dl(DL_VERTEX_FORMAT); /* set to 0 - reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ /* draw a rectangle on top */ EVE_cmd_dl(DL_BEGIN | EVE_RECTS); - EVE_cmd_dl(LINE_WIDTH(1*16)); /* size is in 1/16 pixel */ + EVE_cmd_dl(LINE_WIDTH(1U*16U)); /* size is in 1/16 pixel */ EVE_color_rgb(BLUE_1); - EVE_cmd_dl(VERTEX2F(0,0)); + EVE_cmd_dl(DL_VERTEX2F); /* set to 0 / 0 */ EVE_cmd_dl(VERTEX2F(EVE_HSIZE,LAYOUT_Y1-2)); EVE_cmd_dl(DL_END); /* display the logo */ EVE_color_rgb(WHITE); EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS); - EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56, 56); + EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56U, 56U); EVE_cmd_dl(VERTEX2F(EVE_HSIZE - 58, 5)); EVE_cmd_dl(DL_END); @@ -341,7 +352,7 @@ void TFT_init(void) if (E_OK == EVE_init_flash()) { - EVE_cmd_flashread(MEM_FONT, 84928, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ + EVE_cmd_flashread(MEM_FONT, 61376, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ } #endif /* TEST_UTF8 */ @@ -353,7 +364,6 @@ void TFT_init(void) } } - uint16_t toggle_state = 0; uint16_t display_list_size = 0; @@ -394,11 +404,12 @@ void TFT_touch(void) } } break; + default: + break; } } } - /* dynamic portion of display-handling, meant to be called every 20ms or more */ @@ -406,7 +417,7 @@ void TFT_display(void) { static int32_t rotate = 0; - if(tft_active != 0) + if(tft_active != 0U) { #if defined (EVE_DMA) uint16_t cmd_fifo_size; @@ -418,18 +429,18 @@ void TFT_display(void) EVE_cmd_dl_burst(CMD_DLSTART); /* start the display list */ EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | WHITE); /* set the default clear color to white */ EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); /* clear the screen - this and the previous prevent artifacts between lists, Attributes are the color, stencil and tag buffers */ - EVE_cmd_dl_burst(TAG(0)); + EVE_cmd_dl_burst(DL_TAG); EVE_cmd_append_burst(MEM_DL_STATIC, num_dl_static); /* insert static part of display-list from copy in gfx-mem */ /* display a button */ EVE_color_rgb_burst(WHITE); - EVE_cmd_fgcolor_burst(0x00c0c0c0); /* some grey */ - EVE_cmd_dl_burst(TAG(10)); /* assign tag-value '10' to the button that follows */ + EVE_cmd_fgcolor_burst(0x00c0c0c0UL); /* some grey */ + EVE_cmd_dl_burst(DL_TAG+10U); /* assign tag-value '10' to the button that follows */ EVE_cmd_button_burst(20,20,80,30, 28, toggle_state,"Touch!"); - EVE_cmd_dl_burst(TAG(0)); /* no touch */ + EVE_cmd_dl_burst(DL_TAG); /* no touch */ /* display a picture and rotate it when the button on top is activated */ - EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100, 100); + EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100U, 100U); EVE_cmd_dl_burst(DL_SAVE_CONTEXT); EVE_cmd_dl_burst(CMD_LOADIDENTITY); @@ -438,7 +449,7 @@ void TFT_display(void) EVE_cmd_translate_burst(65536 * -70, 65536 * -50); /* shift back */ EVE_cmd_dl_burst(CMD_SETMATRIX); - if(toggle_state != 0) + if(toggle_state != 0U) { rotate += 256; } diff --git a/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft_data.c b/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft_data.c index b274913..2d47234 100644 --- a/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft_data.c +++ b/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft_data.c @@ -86,69 +86,57 @@ const /*__flash*/ uint8_t pic[3844] PROGMEM = /* Source File: Funtype.zlib unified.blob : 0 : 4096 -Funtype_24_ASTC.glyph : 4096 : 80832 -Funtype_24_ASTC.xfont : 84928 : 320 -z-lib compressed, unpacked size is 85248 +Funtype_24_ASTC.glyph : 4096 : 57280 +Funtype_24_ASTC.xfont : 61376 : 320 +z-lib compressed, unpacked size is 61952 The font is this one: https://fontlibrary.org/de/font/funtype -Converted with EAB using an ASCII map file to reduce the number of glyphs from 364 to 187. -This is only included for the purpose to demonstrate how to handle UTF-8 fonts with BT81x. +Converted with EAB 2.7.1 using an ASCII map file to reduce the number of glyphs to 119. +Glyphs are ASCII plus a select few from "Latin 1 Supplement" : ©«°±²³´µ¹»¼½¾ÄÖ×Üßäëö÷øü +This is only included to demonstrate how to handle UTF-8 fonts with BT81x. */ -const uint8_t flash[12753] PROGMEM = +const uint8_t flash[8199] PROGMEM = { - 0x78, 0x9c, 0xed, 0x7d, 0xd, 0x7c, 0x14, 0xd5, 0xb9, 0xfe, 0x33, 0x33, 0x9b, 0x99, 0x49, 0x76, 0x93, 0x5d, 0x64, 0x81, 0x5, 0x36, 0xd9, 0x55, 0xd7, 0x12, 0x5, 0xcc, 0x0, 0x11, 0x26, 0x12, 0xc8, 0x9, 0xac, 0xb9, 0x1, 0xb1, 0x5d, 0x34, 0x62, 0xd0, 0x2a, 0x83, 0xd5, 0x18, 0xb0, 0xf6, 0x6e, 0x20, 0x41, 0x82, 0xc1, 0x4c, 0xc4, 0x2b, 0xc1, 0x4a, 0x8d, 0x1f, 0xb7, 0x37, 0xfe, 0xb4, 0xed, 0xf6, 0xe3, 0x5f, 0x69, 0x6f, 0xed, 0x8d, 0xd4, 0xb6, 0xb4, 0xf5, 0x63, 0x48, 0xa8, 0x8d, 0x11, 0xed, 0xf6, 0xeb, 0x96, 0xeb, 0xad, 0xb7, 0xeb, 0xc5, 0x5b, 0xb1, 0xd5, 0x76, 0x10, 0x6c, 0x17, 0xd, 0xe4, 0x7f, 0xce, 0xcc, 0x6, 0x68, 0xe2, 0xed, 0xe2, 0xcd, 0x86, 0x60, 0xd9, 0x13, 0xd8, 0xdd, 0x77, 0xe6, 0xec, 0xce, 0x99, 0x67, 0xde, 0xf3, 0x7e, 0x9c, 0xf3, 0x9e, 0xf7, 0x44, 0x7f, 0xfb, 0xfe, 0x83, 0x45, 0x1c, 0x70, 0xe0, 0xeb, 0xa, 0x7c, 0x9c, 0x7, 0x40, 0xf2, 0x95, 0xa5, 0x8f, 0x5f, 0x34, 0x70, 0xa2, 0x10, 0x7d, 0xfb, 0xba, 0x1b, 0xd7, 0x5d, 0x37, 0xb7, 0x9e, 0x3c, 0x3c, 0xfb, 0xe0, 0x9c, 0xf7, 0xe7, 0x6c, 0x9d, 0xa3, 0xce, 0xbd, 0xb3, 0x42, 0x5f, 0x17, 0xea, 0xc0, 0x7f, 0x46, 0xd, 0xec, 0xd5, 0xf5, 0x69, 0x24, 0x36, 0x30, 0x48, 0x41, 0x1f, 0x67, 0x78, 0x75, 0xe1, 0x67, 0xf, 0x6c, 0x20, 0xba, 0xd0, 0x3d, 0xee, 0x27, 0x9f, 0x1f, 0xf0, 0x90, 0xaf, 0x54, 0xfc, 0x44, 0xdf, 0xba, 0x6e, 0x79, 0xe3, 0x5d, 0xb3, 0xeb, 0xc9, 0xf2, 0xd2, 0x6d, 0x15, 0xec, 0x37, 0xda, 0xe6, 0x36, 0xcd, 0x9d, 0x42, 0xaf, 0x36, 0xab, 0xca, 0x77, 0xfe, 0xdd, - 0x97, 0xee, 0xbf, 0x75, 0xfa, 0x17, 0xec, 0xab, 0x55, 0xad, 0xfb, 0xf1, 0xac, 0x13, 0x57, 0x72, 0xe2, 0xbb, 0x15, 0x7f, 0x58, 0xdf, 0xab, 0xe3, 0x27, 0x7d, 0x3, 0x9c, 0xfe, 0xf4, 0xb7, 0x84, 0x97, 0x67, 0xd1, 0x5f, 0xe2, 0xf5, 0xff, 0x68, 0xa8, 0x9b, 0xfb, 0x5, 0x7a, 0xf4, 0x17, 0xa9, 0xa3, 0xac, 0x8d, 0x75, 0x73, 0xbb, 0xe9, 0x91, 0x57, 0xe8, 0x11, 0xc7, 0x73, 0xc2, 0xcb, 0x75, 0x73, 0x83, 0x94, 0xfa, 0xdd, 0x0, 0xbf, 0xee, 0x87, 0xfa, 0xd3, 0xba, 0x42, 0x7e, 0x47, 0x8f, 0x57, 0x5b, 0xc7, 0xff, 0x44, 0x8f, 0x1f, 0xa3, 0xc7, 0x1b, 0x74, 0x81, 0xbe, 0x73, 0xfa, 0x67, 0xe8, 0xd1, 0x95, 0xeb, 0x38, 0x7d, 0x5, 0x7d, 0xff, 0xe5, 0xfa, 0xf8, 0xfa, 0x1b, 0xd7, 0x7d, 0x9f, 0x5e, 0xe3, 0xc6, 0x75, 0x41, 0x3d, 0xb1, 0xfe, 0xae, 0x75, 0x93, 0xe6, 0x76, 0xcd, 0x7d, 0xb6, 0x22, 0xe6, 0x5c, 0x79, 0x70, 0x6b, 0x6e, 0x33, 0x39, 0x58, 0xf2, 0xc0, 0x7d, 0x8e, 0x37, 0x6f, 0x9c, 0x37, 0xfb, 0x1e, 0xcf, 0x7b, 0x3, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xa7, 0xa5, 0x8, 0xa8, 0xe5, 0xae, 0xfd, 0x1b, 0xe5, 0xf6, 0xd, 0x35, 0xb3, 0x3d, 0xc7, 0x7e, 0xf3, 0xc3, 0xbf, 0x55, 0xa7, 0xff, 0xa8, 0xfd, 0x5b, 0xb0, 0xca, 0xc0, 0x40, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, - 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0xf4, 0xd9, 0x46, 0x4f, 0xc8, 0x7b, 0x28, 0x88, 0x22, 0xfa, 0x51, 0xcb, 0xb7, 0x8e, 0x8c, 0xf6, 0xf5, 0xbc, 0xb7, 0xa9, 0xa8, 0xc6, 0x4d, 0x9c, 0xc4, 0x3, 0xa4, 0x6a, 0x57, 0xd9, 0xdc, 0x3, 0xf7, 0x21, 0xf8, 0x3d, 0x33, 0x80, 0xd8, 0x54, 0x88, 0xe8, 0xe5, 0x46, 0xfb, 0xfa, 0xe2, 0xbd, 0xff, 0x15, 0xc4, 0x14, 0x9b, 0x42, 0xd2, 0x39, 0xe2, 0xfb, 0xad, 0xe6, 0xc0, 0xff, 0x9c, 0x3b, 0x8a, 0x0, 0x78, 0xeb, 0xc8, 0xda, 0x3, 0xb9, 0x70, 0x68, 0x10, 0x5c, 0xf3, 0xe, 0xeb, 0x82, 0x4b, 0xc9, 0x38, 0x9e, 0x1b, 0x80, 0x63, 0xff, 0xe3, 0xe, 0xfe, 0x9e, 0xe3, 0xca, 0xe4, 0x9d, 0xe7, 0x27, 0x50, 0x23, 0xe0, 0x73, 0x9c, 0x7d, 0xd2, 0xa1, 0xa3, 0x17, 0x6b, 0x8b, 0x39, 0x38, 0x52, 0xb7, 0x27, 0x14, 0x28, 0xf1, 0xa6, 0x88, 0xa0, 0xe7, 0x13, 0x47, 0x50, 0x4b, 0x76, 0x8b, 0x1e, 0xf0, 0x64, 0xac, 0xf9, 0x6d, 0x28, 0xbd, 0xc2, 0x43, 0x50, 0x54, 0xd4, 0xbd, 0x17, 0x9b, 0x50, 0xcb, 0x8e, 0xd4, 0xbc, 0x30, 0x7, 0x32, 0xc3, 0xd2, 0xd0, 0x57, 0x54, 0x44, 0xb9, 0x8c, 0xe3, 0xd7, 0xbc, 0x51, 0x46, 0xa3, 0x48, 0xaf, 0x40, 0xcb, 0x9c, 0xa4, 0xc0, 0x7f, 0xa6, 0xf3, 0x93, 0xf4, 0x38, 0x21, 0xec, 0x6c, 0xc2, 0x5c, 0xec, 0x94, 0x73, 0x48, 0x77, 0xa, 0x3e, 0xc4, 0xfa, 0x7f, 0xba, 0x2a, 0x7c, 0xfd, 0x2a, 0xdd, 0x4b, 0x10, 0x65, 0xb4, 0x91, 0xec, 0x1f, 0xf5, 0xfe, 0x91, 0xa5, 0x4f, 0x2f, 0x5d, - 0x23, 0xf0, 0xfd, 0x5c, 0x9f, 0xae, 0x46, 0xb8, 0x52, 0xa8, 0x31, 0xca, 0x7f, 0x82, 0xf8, 0x1e, 0x57, 0x4a, 0x24, 0xeb, 0x9f, 0x98, 0x79, 0x79, 0x28, 0xe7, 0x80, 0x1f, 0x78, 0x27, 0xc7, 0x19, 0x95, 0x8f, 0xee, 0x2f, 0xf1, 0x13, 0xe1, 0xd8, 0x81, 0x45, 0x90, 0x8b, 0xf0, 0x56, 0x90, 0x2f, 0xd6, 0x44, 0xd1, 0xd3, 0x3a, 0x6d, 0xc7, 0x56, 0xc4, 0xdc, 0x89, 0x80, 0x55, 0xdd, 0x81, 0xce, 0x66, 0xf3, 0xc2, 0x60, 0x2e, 0x1, 0xbf, 0x6e, 0xbd, 0xd6, 0xf1, 0xe2, 0x11, 0xc3, 0x28, 0xcd, 0x1, 0xb1, 0x7f, 0xb, 0x41, 0x8c, 0x42, 0xfb, 0xd2, 0xf6, 0x9f, 0x1d, 0xff, 0x6, 0x70, 0x7a, 0x20, 0x2f, 0xd5, 0x88, 0x15, 0xf5, 0x17, 0x23, 0xf1, 0x4a, 0xc0, 0x0, 0xca, 0x30, 0x7, 0x7, 0x46, 0x5d, 0x7e, 0x7b, 0x1b, 0x78, 0xe8, 0x39, 0xb6, 0xac, 0xd5, 0xda, 0xd4, 0x9e, 0xb, 0xd6, 0x5e, 0x8c, 0x46, 0x27, 0x3a, 0x80, 0xbb, 0x44, 0x44, 0x47, 0x2e, 0xcf, 0xd3, 0xd1, 0xe1, 0xef, 0xac, 0x87, 0xf6, 0xf0, 0x0, 0xb7, 0x94, 0x52, 0x7e, 0x5a, 0x46, 0xce, 0x7f, 0x38, 0xd6, 0x96, 0x24, 0x52, 0xa7, 0x5e, 0xb6, 0x93, 0x50, 0x41, 0xee, 0x7d, 0xe2, 0x53, 0x20, 0xc5, 0xa0, 0x78, 0xa2, 0x83, 0x24, 0x4b, 0x33, 0x7e, 0x3f, 0xa5, 0xf4, 0x7a, 0x1c, 0xf2, 0x22, 0x22, 0xe5, 0xee, 0x9e, 0xd9, 0x11, 0x8e, 0xf1, 0xa3, 0x64, 0xa, 0x1b, 0x90, 0x6f, 0x58, 0x2c, 0x45, 0xf9, 0x2b, 0xc9, 0x69, 0x55, 0xc9, 0x1e, 0x85, 0x88, 0x7d, 0x9a, 0xd4, 0x58, 0x9a, 0xc3, 0x1f, 0xe3, 0xba, 0xea, 0x64, 0x55, 0xd1, 0xcb, 0xa2, 0x62, 0x8f, 0x36, 0xd6, 0xfd, 0xf5, 0x3, 0xf4, 0x6f, 0x4a, - 0x5e, 0xdf, 0xe5, 0xee, 0x76, 0x27, 0xb8, 0xe6, 0x5d, 0xd, 0x40, 0x71, 0xb1, 0x75, 0x64, 0x5f, 0x34, 0xd2, 0x31, 0xd6, 0xed, 0x3b, 0xd3, 0x69, 0xef, 0x4c, 0xf, 0xf2, 0x70, 0x93, 0x28, 0xf5, 0xe4, 0x75, 0x33, 0xe, 0x28, 0xcd, 0x11, 0x4d, 0x6e, 0xdd, 0xea, 0x69, 0x50, 0xbb, 0xb4, 0xd6, 0x1b, 0xca, 0xd2, 0xf2, 0xdf, 0x6b, 0xf, 0xfc, 0x80, 0xbe, 0x13, 0x17, 0x93, 0x58, 0xa2, 0xc8, 0xa7, 0xad, 0x5f, 0xcd, 0x19, 0xdd, 0xcf, 0xc2, 0x44, 0x42, 0xe8, 0x16, 0x2a, 0x9d, 0x86, 0x50, 0xf3, 0xc2, 0x34, 0x6a, 0xf, 0x5a, 0x16, 0x8c, 0x83, 0xa0, 0xb, 0xd7, 0x21, 0x65, 0x48, 0x51, 0x75, 0xfb, 0xea, 0x40, 0xeb, 0x57, 0x28, 0x3f, 0xbe, 0xc5, 0x21, 0xb2, 0xf5, 0x39, 0xa8, 0x3e, 0x5d, 0xdc, 0x13, 0xa9, 0xe6, 0xc8, 0xf3, 0x38, 0x8c, 0x85, 0x70, 0x5b, 0x7f, 0x25, 0x47, 0xe5, 0xcf, 0x41, 0xd7, 0xff, 0x64, 0xcb, 0x4b, 0x4, 0x4f, 0xbb, 0x7d, 0xe3, 0x68, 0x72, 0x7, 0xb5, 0xfa, 0x37, 0xbf, 0x84, 0x80, 0x7c, 0x97, 0xf2, 0x53, 0x6a, 0xff, 0xd5, 0xf3, 0x8, 0x11, 0x43, 0x70, 0x97, 0x9b, 0x86, 0xe0, 0xc8, 0xbc, 0x7c, 0xe, 0xfd, 0x73, 0x63, 0xe2, 0x1, 0xa9, 0x1d, 0x97, 0x32, 0x32, 0xda, 0x32, 0x3b, 0xad, 0xbc, 0x9a, 0x30, 0xb, 0x61, 0x3d, 0x67, 0x91, 0x45, 0x26, 0x12, 0xc6, 0x58, 0xf3, 0xdb, 0x30, 0xfc, 0x9e, 0x59, 0x48, 0xf5, 0x49, 0xe4, 0x2, 0xf1, 0xa9, 0xcb, 0x2d, 0x26, 0x98, 0x17, 0x59, 0x4, 0x1f, 0x64, 0x52, 0xb1, 0x3a, 0xc1, 0x25, 0x42, 0x4b, 0xce, 0xc9, 0x38, 0xbf, 0xb3, 0xcb, 0xe4, 0x7a, 0x3c, 0x44, 0xfc, 0xef, 0x48, 0xae, 0xaa, - 0xaa, 0x69, 0xe5, 0x65, 0xe, 0x95, 0x97, 0xfc, 0x72, 0xf4, 0x68, 0xcc, 0x1e, 0x28, 0xeb, 0x1b, 0x6b, 0xbc, 0x86, 0xd2, 0x4b, 0x3b, 0x14, 0xfa, 0x1e, 0x16, 0x9e, 0xcb, 0xb1, 0x8f, 0xcc, 0xeb, 0x2d, 0x0, 0x22, 0xfc, 0x7b, 0x3, 0x3, 0xfb, 0x7e, 0x5d, 0x1b, 0x5a, 0xf2, 0x60, 0xa6, 0xaf, 0x77, 0xe9, 0x81, 0xff, 0x47, 0xdf, 0x83, 0x5, 0x36, 0x8d, 0xfa, 0x74, 0xf5, 0xf, 0x3e, 0xb2, 0x1e, 0x91, 0x20, 0x38, 0xd, 0xd0, 0xc5, 0xbd, 0xda, 0x9a, 0xb1, 0xc6, 0x2b, 0x4b, 0x67, 0x96, 0x1e, 0xae, 0x3f, 0xf2, 0xfe, 0xc8, 0x1d, 0xd2, 0x16, 0xec, 0x18, 0x35, 0xfd, 0x41, 0x52, 0xfa, 0xc3, 0x10, 0xc8, 0x29, 0xe8, 0x8f, 0xf0, 0x1d, 0x12, 0x92, 0x31, 0xc7, 0x64, 0x27, 0xc4, 0x97, 0xf7, 0xfd, 0xe6, 0xf9, 0xe7, 0xc7, 0x5a, 0x7f, 0x50, 0xfb, 0x4b, 0x5, 0x6, 0xad, 0x67, 0xe0, 0xcb, 0xce, 0x42, 0x98, 0x12, 0x83, 0xe0, 0xc6, 0x37, 0xae, 0xac, 0xde, 0xc9, 0x85, 0xbf, 0x3b, 0xb, 0x1b, 0x3e, 0x33, 0xe8, 0xc1, 0x7b, 0x4c, 0x5a, 0xff, 0x62, 0xfa, 0x61, 0xcf, 0x60, 0xfd, 0xb1, 0x7e, 0xde, 0x67, 0x1a, 0x6d, 0xc9, 0x67, 0x45, 0x17, 0xbb, 0x1f, 0x89, 0x56, 0x31, 0x18, 0x6b, 0xb6, 0x5d, 0x8d, 0xa5, 0xba, 0x43, 0x81, 0xaa, 0x89, 0x3e, 0xe4, 0x64, 0x7e, 0xfc, 0xa0, 0xa3, 0x51, 0x97, 0x7, 0x47, 0x58, 0xd4, 0x64, 0x6f, 0xba, 0xfa, 0xf2, 0xb6, 0xc9, 0x8, 0xf2, 0x83, 0xcf, 0x3b, 0xdf, 0x1c, 0x6b, 0xbc, 0x86, 0xd2, 0xf3, 0x77, 0x70, 0xa0, 0x1a, 0x24, 0xb0, 0x34, 0xd5, 0xc2, 0x51, 0xd7, 0x57, 0xd1, 0x69, 0x68, 0xaf, 0xa3, 0x1f, 0x79, 0x7e, 0xc7, 0xc0, - 0xc5, 0x3c, 0xff, 0xdf, 0xdb, 0x1c, 0xd4, 0xeb, 0xe8, 0xa7, 0x1d, 0xd8, 0x18, 0x38, 0x58, 0xf1, 0x30, 0x1f, 0xde, 0x76, 0x37, 0x73, 0x43, 0xec, 0xfe, 0x98, 0x30, 0xcd, 0xa6, 0x78, 0x8d, 0x96, 0x47, 0x64, 0x8b, 0x9c, 0x15, 0x51, 0xcf, 0x38, 0xfe, 0xf7, 0xbe, 0xb4, 0x8, 0x6a, 0xf0, 0xca, 0x8, 0x81, 0xc8, 0x47, 0xeb, 0x24, 0x84, 0xf, 0x5d, 0x43, 0x9f, 0x37, 0xbc, 0xad, 0x54, 0xdf, 0x19, 0x7a, 0xe6, 0xf1, 0xac, 0xc9, 0x9d, 0x45, 0xfd, 0x1b, 0x8b, 0x58, 0x57, 0x55, 0xa1, 0xbb, 0xd3, 0xd5, 0x5f, 0xb, 0xe6, 0xef, 0xa5, 0x8a, 0xcb, 0x73, 0xc6, 0xe1, 0xc7, 0xfc, 0xcf, 0x36, 0x13, 0x1c, 0x35, 0x11, 0x4c, 0xf7, 0x33, 0x40, 0xb3, 0xd2, 0x4, 0x17, 0x87, 0x1b, 0x34, 0x9d, 0x44, 0x28, 0xa8, 0x19, 0x6f, 0xaf, 0x77, 0xe6, 0x52, 0xc6, 0x5f, 0x56, 0xe9, 0x8a, 0xdc, 0xbf, 0x27, 0x6d, 0xfd, 0xe9, 0x8d, 0xa8, 0xd5, 0xbd, 0x36, 0x3, 0xf2, 0x9e, 0x31, 0xf7, 0x7f, 0x2f, 0xdb, 0x45, 0xed, 0x65, 0x17, 0x62, 0x66, 0x20, 0x96, 0xcb, 0x8c, 0x30, 0x79, 0xdb, 0x74, 0x78, 0xa8, 0x6, 0x64, 0xa5, 0xdc, 0x5c, 0xe4, 0x1c, 0xeb, 0xf6, 0x7d, 0xd4, 0xe8, 0xb0, 0x80, 0xb5, 0x56, 0xff, 0x48, 0x75, 0x92, 0xf0, 0x3, 0x54, 0x1a, 0xc6, 0xbe, 0x1b, 0x80, 0xa3, 0x8d, 0x30, 0x3a, 0xdd, 0xf7, 0x43, 0xf, 0xd1, 0xfa, 0xfa, 0x5b, 0x81, 0x98, 0xac, 0xb8, 0x4e, 0xa5, 0x3e, 0x9b, 0x2f, 0x48, 0xf2, 0x49, 0x3c, 0x8d, 0x22, 0x6a, 0x7e, 0x38, 0x11, 0x7e, 0x77, 0x72, 0x2c, 0x77, 0x35, 0xb7, 0x52, 0x51, 0x54, 0x55, 0x99, 0x1a, 0x28, 0x28, 0x7d, 0x71, 0x22, 0x5c, 0x26, - 0x6b, 0x8c, 0x41, 0xda, 0x92, 0x3, 0x2f, 0x36, 0xc5, 0x57, 0xe0, 0xde, 0x7a, 0xe0, 0x3b, 0x11, 0xb1, 0x9b, 0x50, 0xbf, 0xe8, 0x66, 0xdf, 0x2, 0x72, 0x31, 0xda, 0xb9, 0xef, 0x5a, 0xed, 0xd5, 0x8d, 0x70, 0xe, 0xd6, 0x61, 0xb0, 0xe8, 0xe9, 0xaf, 0x2f, 0x7e, 0xf3, 0x7b, 0xac, 0xa2, 0x3f, 0x1c, 0x6, 0x9, 0x87, 0xf, 0x8e, 0xd8, 0xde, 0xa9, 0x6b, 0xa7, 0x3c, 0x28, 0x1b, 0x42, 0x92, 0x6b, 0x5, 0x9b, 0x41, 0xa2, 0xfa, 0xf8, 0xf7, 0x9c, 0x42, 0xc4, 0xee, 0x48, 0xb8, 0xa2, 0x71, 0x14, 0xc6, 0x27, 0xbd, 0x2f, 0xcd, 0x87, 0x1e, 0x64, 0x37, 0x5f, 0x3e, 0x5b, 0xe3, 0xd4, 0xee, 0xa1, 0xe7, 0xe7, 0x15, 0xd7, 0x21, 0x41, 0x4d, 0xc0, 0x63, 0x2, 0xde, 0x19, 0x8f, 0xfe, 0xf1, 0xcd, 0xd1, 0xeb, 0xf1, 0xc5, 0x1b, 0x51, 0x53, 0x5c, 0x2c, 0xd7, 0x47, 0x15, 0x43, 0xc9, 0x74, 0x7b, 0x26, 0xdc, 0xcb, 0xf0, 0x4c, 0xd8, 0x33, 0x4a, 0xa4, 0x23, 0xe3, 0xbf, 0x9f, 0x69, 0x3a, 0xb4, 0x79, 0x25, 0x76, 0x41, 0x9c, 0xd2, 0xce, 0xb8, 0xe0, 0x60, 0xd4, 0x37, 0xd6, 0xed, 0xf9, 0xa8, 0xd3, 0xde, 0xfc, 0x5c, 0xda, 0x2b, 0x23, 0xab, 0x7f, 0x20, 0xa, 0x3e, 0x76, 0x64, 0xac, 0xdb, 0xf3, 0x61, 0xe9, 0xd2, 0x1c, 0xc7, 0xb1, 0x36, 0x71, 0x8f, 0x86, 0x47, 0x6b, 0xef, 0x91, 0x4e, 0x43, 0xfb, 0xeb, 0x64, 0x6a, 0xbf, 0x58, 0xda, 0x74, 0x80, 0x1b, 0xe0, 0x67, 0xa6, 0xbd, 0x5e, 0x95, 0xbc, 0x97, 0xbe, 0xeb, 0x1, 0x8b, 0x4c, 0x20, 0x3e, 0xd6, 0x78, 0xd, 0xc7, 0x2f, 0xeb, 0x7f, 0x8c, 0x84, 0x3e, 0xb8, 0xb2, 0x1, 0xb9, 0x3a, 0xbd, 0x9f, 0x6, 0xc3, 0xf2, 0xdb, - 0x97, 0x6c, 0xac, 0x2, 0x29, 0xd2, 0x27, 0x7, 0xe9, 0xa1, 0xfb, 0x90, 0x79, 0x7e, 0x64, 0xfc, 0xce, 0x79, 0x88, 0x58, 0xf6, 0x62, 0x17, 0x11, 0x4b, 0xf5, 0xb4, 0xe3, 0x7f, 0xde, 0x17, 0xf3, 0xa0, 0xf3, 0x1e, 0x78, 0x22, 0x91, 0xda, 0x88, 0xac, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xe5, 0xf9, 0xa, 0xa8, 0xc8, 0x19, 0xa7, 0x6e, 0xd9, 0x9d, 0x38, 0x44, 0x25, 0x50, 0xf8, 0x90, 0x23, 0xf1, 0x3b, 0xf7, 0x56, 0x6e, 0xaa, 0xc4, 0x59, 0x16, 0x42, 0xba, 0xef, 0x37, 0xfc, 0x40, 0x82, 0xc6, 0x97, 0xb2, 0x11, 0x6, 0x51, 0xe8, 0xe, 0xa6, 0xad, 0x4f, 0xed, 0xf5, 0xd4, 0x7c, 0x4b, 0xb1, 0xe9, 0x2c, 0x89, 0xf, 0xab, 0x1f, 0xfe, 0xd1, 0x55, 0xa8, 0xbf, 0x48, 0xb0, 0x27, 0xcc, 0x81, 0xd5, 0x35, 0x82, 0xf8, 0xe7, 0x4a, 0x52, 0xd0, 0xa7, 0x51, 0x8b, 0xe0, 0xdc, 0xb2, 0xeb, 0x10, 0x7e, 0x3f, 0x17, 0xdb, 0xc8, 0xe2, 0x71, 0xca, 0xc0, 0x7d, 0x7b, 0xb5, 0xa8, 0x2, 0xc7, 0x33, 0x57, 0x11, 0x8f, 0x83, 0x23, 0x9c, 0xc8, 0xaa, 0x57, 0x6e, 0x1a, 0x1b, 0xfc, 0x8c, 0xdc, 0xe4, 0x96, 0xdd, 0xaf, 0x33, 0xfc, 0x6a, 0xbe, 0xc1, 0x19, 0xd5, 0x7a, 0x14, 0x62, 0xd0, 0xae, 0x71, 0x2a, 0xf8, 0x2d, 0x45, 0x38, 0x85, 0x5f, 0x7a, 0xff, 0x8a, 0xe2, 0xf7, 0xbc, 0xfd, 0xf9, 0x87, 0xa6, 0xe0, 0x1e, 0x8e, 0x9f, 0x18, 0x7d, 0x91, 0xbe, 0x87, 0xa6, 0xda, 0x34, 0x54, 0x8a, 0xdf, 0x31, 0x8e, 0x88, 0x7b, 0x2d, 0xfc, 0x9c, 0xd7, 0x61, 0xed, 0x8e, 0x12, 0xdc, 0xbd, 0xbd, 0xb8, 0xd8, 0x63, 0xf0, 0x47, 0x4d, 0x9e, 0xc5, 0x4b, 0x4c, 0x1c, 0xf4, 0x67, 0xd6, 0x6d, 0x6c, 0xe5, - 0x9c, 0xd4, 0x1e, 0xdc, 0x88, 0xc1, 0xa2, 0xeb, 0xa3, 0x2e, 0xcf, 0x87, 0xfa, 0x6f, 0xde, 0xfc, 0x8b, 0x91, 0x13, 0x9c, 0xd3, 0xa5, 0x11, 0x5d, 0x14, 0xf6, 0xa4, 0xc7, 0x6f, 0xad, 0x3c, 0x1, 0x8e, 0x20, 0x78, 0x87, 0x6a, 0xea, 0xc2, 0x29, 0xe0, 0x9d, 0xce, 0x7f, 0x63, 0xfc, 0x57, 0x1b, 0x12, 0x10, 0xb3, 0xf, 0xac, 0x66, 0xf6, 0xb6, 0xf0, 0x34, 0x57, 0x48, 0xa4, 0x38, 0x97, 0x4c, 0x2c, 0x8c, 0x87, 0xf, 0x5d, 0x11, 0x3c, 0x3a, 0x69, 0x5f, 0xce, 0x86, 0x63, 0xed, 0x46, 0x42, 0xa3, 0xfc, 0xb7, 0xe0, 0x22, 0x8c, 0xef, 0xe5, 0x8a, 0xd9, 0xc, 0x32, 0xb0, 0x38, 0x79, 0xba, 0xf9, 0x8f, 0x3e, 0x2f, 0x7, 0xeb, 0xa8, 0x83, 0x3e, 0x3a, 0xf5, 0xd7, 0xff, 0x8b, 0x7e, 0x16, 0x6, 0x1f, 0x61, 0xc6, 0xf5, 0x47, 0x74, 0x15, 0xda, 0xa9, 0xa8, 0x15, 0x45, 0xaa, 0xad, 0x54, 0x55, 0x2c, 0x9d, 0x3e, 0x15, 0x2d, 0xc1, 0x75, 0xe8, 0x89, 0x40, 0xed, 0x6b, 0x5c, 0x81, 0xb5, 0xf2, 0x1a, 0x14, 0xcb, 0xe6, 0x21, 0x7b, 0x10, 0x35, 0x48, 0xc2, 0x65, 0xb3, 0x60, 0xf0, 0x54, 0x1c, 0x6b, 0x6c, 0x34, 0x43, 0x1f, 0xf1, 0xfc, 0xd1, 0x84, 0x6f, 0x7e, 0x83, 0xbe, 0xc7, 0x2c, 0x7d, 0x1e, 0x7b, 0x7, 0x98, 0x78, 0xef, 0x5c, 0x6a, 0xf, 0xfc, 0x32, 0x75, 0xfb, 0x7f, 0xb8, 0x3b, 0xdd, 0xf7, 0xe7, 0xb7, 0xaf, 0x40, 0xc4, 0x41, 0x58, 0xdb, 0xba, 0x12, 0xf4, 0x3e, 0xaa, 0x3a, 0x72, 0x74, 0x99, 0x72, 0x4e, 0xb9, 0xe5, 0x4d, 0xb1, 0xf8, 0xd, 0xfe, 0x2d, 0xae, 0x16, 0xdd, 0x44, 0xea, 0xe4, 0xe6, 0x10, 0x15, 0xe1, 0xed, 0xbf, 0xd2, 0xcf, 0x2d, 0x8f, 0x79, 0xa1, - 0x44, 0x13, 0x99, 0x18, 0x8f, 0xa9, 0xe6, 0x8, 0xaf, 0xbb, 0x89, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0xba, 0x6a, 0x58, 0x45, 0xbc, 0x16, 0x5e, 0x4a, 0x53, 0x2d, 0x35, 0x6, 0x60, 0xb9, 0x82, 0x6, 0x11, 0x3b, 0xc1, 0xe2, 0xb5, 0x96, 0x17, 0xe0, 0xa8, 0xee, 0x79, 0xd6, 0x3f, 0x7, 0x51, 0x7e, 0xac, 0xf5, 0x85, 0xe3, 0xd0, 0xb7, 0xe8, 0x7b, 0x22, 0x10, 0xcb, 0x85, 0xc2, 0xac, 0x88, 0x74, 0xf8, 0x79, 0xdf, 0xbe, 0x92, 0xea, 0x67, 0xc6, 0x9, 0xa4, 0x6a, 0xab, 0x9a, 0x7e, 0x7c, 0xfe, 0xef, 0x1d, 0xbf, 0xd0, 0xf4, 0xb7, 0x83, 0x89, 0x0, 0xa1, 0x50, 0xe9, 0xaf, 0x29, 0x72, 0x7a, 0xfc, 0xc2, 0xb7, 0xfd, 0x53, 0x42, 0xf7, 0xc7, 0x72, 0xe0, 0xf2, 0x97, 0x27, 0xcd, 0xc4, 0x59, 0x8f, 0x5f, 0xcd, 0x9b, 0x1c, 0xf5, 0xdf, 0x81, 0x1d, 0x70, 0xae, 0xd3, 0x7f, 0x92, 0x1e, 0x3f, 0x6a, 0xaf, 0xfd, 0x99, 0x9, 0x87, 0x17, 0x1b, 0x37, 0x29, 0x22, 0x97, 0xed, 0xbf, 0xe1, 0x71, 0xa, 0x82, 0x37, 0xef, 0x2f, 0x4, 0x1c, 0xa2, 0x5b, 0x4a, 0x8f, 0x5f, 0xa8, 0x89, 0x99, 0x3, 0x87, 0xb9, 0x8f, 0xc3, 0xb5, 0xb5, 0x7, 0x59, 0xfc, 0x4a, 0xc7, 0x51, 0x5b, 0xcd, 0x7c, 0x5e, 0x82, 0xa4, 0x40, 0xa2, 0xf6, 0x5a, 0x7a, 0xfe, 0x13, 0xd9, 0xf8, 0x79, 0x4f, 0x63, 0x84, 0x7d, 0x23, 0x59, 0x7b, 0xb6, 0xe3, 0x37, 0x4c, 0x1e, 0xbe, 0xeb, 0x20, 0xff, 0x7e, 0xcb, 0x77, 0xb8, 0xe0, 0x16, 0x12, 0x64, 0x47, 0x6a, 0x2e, 0x3c, 0x17, 0xd5, 0x70, 0xec, 0x8a, 0xec, 0x7e, 0xa5, 0x75, 0x20, 0x3f, 0x3d, 0xbf, 0x5d, 0x1d, 0xaf, 0x9, 0x5e, - 0x84, 0xa8, 0xe5, 0xd2, 0x56, 0xd4, 0x4a, 0x42, 0x7a, 0xfc, 0xc0, 0xa3, 0x84, 0x48, 0x3, 0xc2, 0x7b, 0x78, 0x1a, 0x85, 0x10, 0xcf, 0xe1, 0xd8, 0xb0, 0xe7, 0x79, 0x80, 0x46, 0x9d, 0xdc, 0x83, 0xb9, 0x47, 0x6b, 0x6f, 0x21, 0xb9, 0x10, 0x7d, 0x7, 0x58, 0xf5, 0xa4, 0xea, 0x64, 0xf8, 0x71, 0x12, 0xe, 0xb4, 0x69, 0xb, 0x7f, 0x3b, 0x1b, 0x9, 0xac, 0xad, 0x5e, 0x96, 0x1a, 0x7f, 0x0, 0xba, 0xdd, 0x1, 0xac, 0x54, 0x2f, 0xd2, 0x72, 0x89, 0x23, 0xaa, 0x5b, 0x16, 0xc8, 0xd5, 0x2f, 0x9f, 0x76, 0x79, 0x28, 0xf0, 0x76, 0xbc, 0x69, 0x44, 0xb4, 0xfc, 0x2a, 0x39, 0x87, 0x2c, 0xb6, 0xcf, 0xe1, 0xf5, 0x81, 0xc3, 0x52, 0xc6, 0xed, 0xbf, 0x6a, 0x4e, 0x5f, 0xf4, 0xc, 0x92, 0x88, 0xb, 0x86, 0x60, 0x38, 0xd, 0x21, 0xfc, 0xc4, 0xaf, 0xa9, 0xf7, 0xa3, 0x4, 0xec, 0xf3, 0x82, 0x40, 0xaf, 0x2f, 0xc4, 0x85, 0xd6, 0x2e, 0x38, 0x13, 0xe4, 0xb9, 0x81, 0xe7, 0x12, 0xa5, 0x2, 0xd8, 0x26, 0x4b, 0x29, 0xc4, 0x86, 0x3f, 0xcf, 0x26, 0x6a, 0xc2, 0x1d, 0x9f, 0x5f, 0xa2, 0x4a, 0x71, 0xb4, 0xf1, 0xba, 0xb6, 0x7d, 0x45, 0x70, 0x57, 0x9b, 0x45, 0x38, 0x94, 0x1e, 0x1e, 0x35, 0x6f, 0x86, 0x90, 0xa7, 0x57, 0x8a, 0x8a, 0x5e, 0xb6, 0x8e, 0xb5, 0xc3, 0xf1, 0xab, 0x1a, 0xf2, 0xef, 0xab, 0x50, 0x11, 0xcc, 0xa5, 0x1d, 0xe8, 0x59, 0x1, 0xe1, 0xa6, 0xeb, 0x49, 0xa7, 0xc1, 0x85, 0x10, 0xcd, 0x8c, 0xfd, 0x17, 0x3e, 0x52, 0x4, 0xff, 0xb6, 0x4a, 0xbd, 0x6d, 0xa, 0x8b, 0xfe, 0x2c, 0xf4, 0x9f, 0x34, 0x1f, 0xd7, 0x49, 0x92, 0xf5, 0xe2, 0x52, 0xdf, 0x1c, 0xea, 0xb, - 0x3a, 0x2f, 0xb2, 0x8e, 0xc4, 0x8f, 0x5d, 0xe1, 0x9d, 0x5e, 0x89, 0x7d, 0x82, 0x6a, 0xe3, 0x77, 0x77, 0xc5, 0xce, 0xb1, 0xee, 0xaf, 0x4b, 0xcd, 0x19, 0x4c, 0xde, 0x14, 0xc3, 0x2d, 0x58, 0x26, 0x7e, 0x3a, 0xfc, 0x9a, 0x3b, 0x27, 0xd0, 0xca, 0xb2, 0x7, 0x3a, 0x89, 0x74, 0x2a, 0xbd, 0x67, 0x3d, 0x7e, 0xa5, 0xff, 0xea, 0x47, 0xa9, 0xc9, 0xe9, 0x62, 0x52, 0x21, 0xa7, 0x82, 0x5f, 0xcd, 0x9a, 0x1c, 0x6a, 0x3f, 0xf3, 0x50, 0x70, 0x44, 0xaf, 0x20, 0x6a, 0xf0, 0x6c, 0xc7, 0xcf, 0xfb, 0x4, 0xf, 0x4f, 0x31, 0x47, 0xee, 0x51, 0xcb, 0xfa, 0x4e, 0x5, 0xbf, 0xd0, 0xe6, 0x9, 0x58, 0x10, 0xc, 0x53, 0x2a, 0x33, 0xf6, 0xcb, 0x47, 0x1d, 0xbf, 0x1a, 0x1, 0x7f, 0xe4, 0xd0, 0x8b, 0x24, 0x51, 0x23, 0xa2, 0xf, 0x8, 0xbd, 0xfd, 0x63, 0x68, 0xfb, 0x12, 0x1, 0x88, 0x5b, 0x76, 0x9b, 0xcd, 0xd4, 0x1e, 0x8c, 0xd7, 0xc0, 0x67, 0x57, 0x36, 0xa8, 0xba, 0x4b, 0x50, 0x7b, 0x63, 0x1a, 0xfd, 0x4c, 0x90, 0x2a, 0x23, 0xbd, 0xfe, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x82, 0xe1, 0x6, 0x7d, 0xd, 0x3f, 0xca, 0xd6, 0xcf, 0xc0, 0x71, 0x39, 0x7b, 0xd, 0x4, 0xa, 0xec, 0xf1, 0xfa, 0x44, 0x91, 0x55, 0xfd, 0x4c, 0x1c, 0xaf, 0x9f, 0x7e, 0x11, 0x5a, 0x22, 0x40, 0x59, 0x69, 0x2d, 0x11, 0xf9, 0xf4, 0xf8, 0xcd, 0x2f, 0x6e, 0x46, 0x9c, 0xb7, 0xe1, 0xf3, 0xfb, 0xa2, 0x67, 0x3d, 0x7e, 0xe1, 0x47, 0x35, 0xda, 0x5f, 0x85, 0xc9, 0x26, 0xb4, 0x86, 0xf9, 0x81, 0x82, 0xb4, 0xf8, 0x79, 0x2f, 0xbf, 0x3, 0x41, 0xe8, 0xe, 0x74, 0x58, 0x70, 0x9f, 0xf5, 0xf8, 0x35, - 0xc5, 0x2f, 0x81, 0x8f, 0xc3, 0x79, 0xdc, 0xa4, 0xae, 0xb0, 0xea, 0x49, 0xcf, 0x7f, 0x6c, 0xfe, 0xda, 0x87, 0x5c, 0xf, 0x88, 0x16, 0x89, 0x64, 0xf1, 0x1b, 0x46, 0x1f, 0x5c, 0x99, 0x1a, 0xff, 0xde, 0xab, 0xa1, 0x77, 0xdd, 0x6a, 0x49, 0xce, 0xc1, 0x22, 0xc9, 0x44, 0xa1, 0xe1, 0x36, 0xa5, 0xc3, 0x10, 0xd3, 0xe2, 0x15, 0xe6, 0xb0, 0xd1, 0xb6, 0x5f, 0x75, 0xeb, 0x35, 0xbd, 0xfd, 0xb4, 0x39, 0x48, 0xf9, 0x9f, 0x97, 0x69, 0xa9, 0x8, 0xc8, 0x8e, 0xb5, 0xc5, 0x4b, 0x91, 0xa, 0xbf, 0xc1, 0x63, 0xef, 0x48, 0x6e, 0xef, 0xf6, 0x4f, 0xc2, 0x69, 0xa4, 0x7e, 0x71, 0x7f, 0x45, 0x59, 0xf8, 0xb, 0xd7, 0x91, 0xcf, 0x8b, 0xc5, 0x71, 0x49, 0xe0, 0xb8, 0x83, 0x7, 0x39, 0xae, 0x4e, 0xe6, 0xa1, 0xe6, 0x5a, 0x4f, 0xd7, 0x64, 0x61, 0xac, 0xa7, 0xbd, 0xff, 0xe6, 0xff, 0x1b, 0x8c, 0xe9, 0x41, 0xfa, 0x7c, 0x45, 0x49, 0x12, 0xd8, 0x7c, 0xa5, 0x80, 0x8e, 0xe2, 0x83, 0xea, 0xed, 0x91, 0xb2, 0x28, 0xb, 0x4b, 0x2d, 0x9d, 0x1e, 0x40, 0x4b, 0xb4, 0xbb, 0x91, 0x48, 0x6, 0x61, 0x3e, 0x19, 0xf3, 0x7, 0xe8, 0x17, 0x5b, 0xcc, 0x8a, 0x7f, 0x8, 0x24, 0xe8, 0x87, 0xdc, 0xbc, 0x47, 0xd9, 0xf, 0x4d, 0x64, 0x2f, 0xb2, 0x8b, 0x47, 0x93, 0x79, 0xd, 0x14, 0xce, 0xcf, 0xba, 0x36, 0x55, 0x47, 0xe9, 0xfd, 0x95, 0xf0, 0x6d, 0xdf, 0x86, 0xde, 0x7b, 0x34, 0xe0, 0xf7, 0x59, 0x65, 0xb2, 0xf7, 0xb6, 0x8b, 0x61, 0x4, 0xed, 0xb3, 0x1a, 0x51, 0x93, 0xe1, 0x97, 0x1e, 0xc7, 0x9a, 0x80, 0x6e, 0x4f, 0x70, 0x72, 0x9c, 0xc0, 0xfc, 0xbd, 0xe7, 0xf0, 0x17, 0x7e, 0xbf, 0xf3, - 0xb3, 0x25, 0xce, 0x67, 0x9d, 0xc9, 0x4b, 0x78, 0x24, 0x18, 0xba, 0xec, 0x2b, 0x39, 0x14, 0xe2, 0x15, 0x72, 0x1, 0x82, 0xba, 0xcd, 0xae, 0xb4, 0xa3, 0x8c, 0xd8, 0xbe, 0xfa, 0xf0, 0xfa, 0x98, 0x4f, 0x9e, 0xec, 0xbf, 0x6d, 0x62, 0x83, 0x2d, 0x3a, 0xf6, 0x6, 0xe7, 0x14, 0x74, 0x96, 0xbc, 0x91, 0x83, 0xf0, 0x82, 0x29, 0x7a, 0x5e, 0xe9, 0x52, 0x1d, 0x2e, 0xbf, 0x1a, 0x35, 0x8d, 0xe1, 0xf3, 0x65, 0xef, 0xde, 0xe, 0x8d, 0x5b, 0x26, 0x31, 0xef, 0x44, 0x3f, 0x5, 0xfe, 0x1b, 0xea, 0xbf, 0xd, 0x8d, 0x7f, 0xbe, 0xbc, 0x98, 0x67, 0xf1, 0x73, 0x56, 0x79, 0xf2, 0x81, 0x87, 0x77, 0x87, 0x73, 0xac, 0xb5, 0x64, 0xc7, 0xe7, 0x17, 0xd8, 0xf8, 0x83, 0x15, 0xff, 0x5c, 0x42, 0xff, 0xdc, 0x28, 0x1c, 0xeb, 0xf5, 0x33, 0xe9, 0xf0, 0xf3, 0xde, 0x36, 0x1d, 0x17, 0xd0, 0x87, 0xdd, 0xdb, 0x59, 0x1b, 0x89, 0x54, 0xe, 0x5f, 0xf, 0x7c, 0xb6, 0xe1, 0x67, 0x8d, 0xdf, 0x6b, 0x89, 0x40, 0x22, 0xcf, 0x1e, 0xbf, 0x4f, 0x87, 0x1f, 0x9b, 0x9f, 0x43, 0x97, 0xee, 0x7e, 0xeb, 0x17, 0x8d, 0x52, 0x45, 0x2, 0xa0, 0xf7, 0xf3, 0x71, 0xeb, 0xa7, 0x2c, 0xb4, 0x28, 0x7d, 0x96, 0xe1, 0x57, 0xfa, 0x87, 0xf3, 0x51, 0xcc, 0xe2, 0xeb, 0x84, 0x2e, 0xb6, 0xdc, 0xf2, 0x54, 0xf0, 0x63, 0x6b, 0xa7, 0x9e, 0x35, 0x4b, 0xf6, 0x97, 0xc4, 0xd9, 0x4d, 0xde, 0x71, 0x3, 0x15, 0x7c, 0xfd, 0x5c, 0xa3, 0xd5, 0x5c, 0x99, 0x3f, 0xdb, 0xf0, 0x9b, 0xdf, 0x3e, 0xf, 0x1e, 0x84, 0x21, 0xfa, 0x8b, 0x9, 0x4e, 0x1, 0xbf, 0x26, 0xdf, 0x44, 0xdd, 0xe1, 0x60, 0x83, 0x99, 0x5b, 0x2b, 0x94, - 0x7b, 0x86, 0xeb, 0x87, 0xb3, 0xd, 0xbf, 0xb4, 0xfc, 0x99, 0x83, 0xbd, 0x27, 0xbc, 0xb5, 0xcc, 0xcf, 0xff, 0x32, 0x7d, 0x4a, 0xf8, 0x38, 0xd5, 0xa9, 0x1, 0x1c, 0xe1, 0x49, 0xda, 0xf5, 0xda, 0xa1, 0x42, 0x1e, 0x37, 0x23, 0xb8, 0x26, 0x17, 0xbe, 0x29, 0xb2, 0x3, 0xab, 0xc7, 0x1a, 0x9f, 0xf, 0xd0, 0x1f, 0xfd, 0x27, 0xf3, 0x5f, 0x73, 0x47, 0x2e, 0x36, 0x12, 0xd7, 0x79, 0x7b, 0xba, 0xcb, 0xd4, 0x5d, 0xad, 0xcf, 0xd, 0xbb, 0x3f, 0x96, 0xef, 0x24, 0xe8, 0xb7, 0x9e, 0xf5, 0x3e, 0xf6, 0x4a, 0xbf, 0xff, 0x47, 0x8e, 0x88, 0xb5, 0x6c, 0x85, 0x8d, 0x7, 0x6a, 0x34, 0xdd, 0xf5, 0xea, 0xea, 0x17, 0x22, 0xa7, 0xeb, 0x39, 0xbc, 0xc3, 0x27, 0x6c, 0xfe, 0xb3, 0xfc, 0x71, 0x40, 0xb1, 0x52, 0x6, 0xb0, 0xf5, 0x47, 0xe4, 0xe4, 0xf5, 0x47, 0x37, 0x36, 0xf9, 0x42, 0x70, 0x5c, 0x4, 0x8f, 0x68, 0x10, 0xb1, 0x2f, 0xc2, 0x95, 0xd, 0xe5, 0xbf, 0x3f, 0x52, 0xfb, 0x25, 0x32, 0xf9, 0xbd, 0x41, 0xf6, 0x1c, 0x75, 0x7b, 0x70, 0xfe, 0x8e, 0x56, 0xfa, 0x7e, 0x25, 0x23, 0x88, 0x46, 0xed, 0x54, 0xb6, 0x7e, 0x3a, 0xce, 0xc5, 0x39, 0x93, 0x4f, 0x5a, 0x36, 0xd5, 0x74, 0x73, 0x6, 0xe4, 0x63, 0x81, 0xa4, 0xd0, 0x5d, 0x3e, 0x37, 0x24, 0xa, 0x28, 0xde, 0x56, 0x60, 0x75, 0x1e, 0x77, 0xcc, 0xad, 0xbb, 0x75, 0x61, 0x18, 0x3f, 0x56, 0x1, 0x49, 0xab, 0xf1, 0x86, 0xcd, 0xb5, 0x69, 0xfd, 0x9f, 0xe8, 0x52, 0xa8, 0x2d, 0x40, 0x1f, 0xca, 0x88, 0xa8, 0x40, 0x75, 0x5c, 0xaf, 0xc0, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x7b, 0x31, - 0xa3, 0xfe, 0x48, 0xf2, 0x8d, 0xa6, 0x8d, 0x8a, 0xce, 0x87, 0x30, 0xfe, 0xc5, 0x8, 0xe5, 0x5b, 0x28, 0x78, 0x35, 0x59, 0x47, 0x26, 0xf3, 0xf6, 0x22, 0xaf, 0xa0, 0xc1, 0x57, 0x9d, 0x76, 0x7e, 0xe3, 0x90, 0xc7, 0xee, 0x57, 0x4c, 0x3d, 0xb0, 0x74, 0xf8, 0x85, 0xc7, 0x4f, 0x40, 0xf4, 0xd2, 0xd7, 0xd9, 0xfa, 0x96, 0x44, 0x54, 0xf5, 0xb9, 0xce, 0x76, 0xfc, 0xc2, 0x5f, 0xb8, 0x49, 0x2f, 0xb8, 0x80, 0x30, 0xf7, 0x43, 0x10, 0x4e, 0x5, 0xbf, 0x99, 0x2f, 0x93, 0xee, 0xf2, 0xc4, 0x24, 0x88, 0x5, 0x8f, 0x25, 0x4d, 0xed, 0xac, 0xe7, 0xbf, 0xf0, 0x33, 0x13, 0xb1, 0x65, 0x92, 0x62, 0xe1, 0xc7, 0x9d, 0xa, 0x7e, 0x8f, 0xce, 0x40, 0xa1, 0xe6, 0x0, 0x95, 0xdf, 0x8f, 0x7d, 0xee, 0xee, 0xe1, 0xf8, 0x9c, 0x6d, 0xf8, 0xd5, 0x6c, 0xbb, 0x0, 0xb1, 0x62, 0x40, 0xed, 0xb0, 0x8f, 0xac, 0x88, 0x5e, 0x89, 0x22, 0xe4, 0xb5, 0x70, 0xf8, 0x11, 0x62, 0x12, 0xea, 0xa8, 0x3e, 0x38, 0x7c, 0x72, 0xfe, 0x97, 0xcf, 0xec, 0x2a, 0x86, 0x43, 0xb5, 0x0, 0x22, 0x5b, 0xdc, 0xf9, 0x99, 0xc8, 0x17, 0xd5, 0xcd, 0x51, 0x3f, 0xb9, 0x84, 0xaa, 0x80, 0x16, 0x24, 0xf9, 0x3f, 0x9a, 0xe5, 0x60, 0xcb, 0xdb, 0xba, 0xc, 0x8, 0x33, 0x3c, 0x3a, 0x9a, 0x76, 0x6c, 0x85, 0x3e, 0xde, 0x8a, 0x8f, 0xe2, 0x3c, 0x10, 0x22, 0x55, 0xca, 0xc7, 0xd9, 0x6c, 0xf0, 0xd, 0xd4, 0xe4, 0x69, 0x41, 0x89, 0x21, 0x8d, 0xb5, 0xbe, 0xfd, 0x80, 0xfb, 0x59, 0x64, 0xf2, 0xef, 0x62, 0x40, 0x48, 0xd2, 0x26, 0xee, 0xc2, 0x5a, 0xf9, 0x93, 0xa8, 0x96, 0x5b, 0x12, 0xd2, 0x42, 0x9b, 0x25, 0x32, 0xce, - 0xff, 0xb7, 0xee, 0x4a, 0xc8, 0x1, 0x8c, 0x87, 0x2b, 0xdf, 0xc5, 0xca, 0xf4, 0x28, 0xf, 0x35, 0x15, 0x1e, 0x8e, 0x22, 0xef, 0xb0, 0xf5, 0xee, 0xa1, 0xeb, 0x6f, 0x45, 0xbb, 0xc6, 0x4d, 0x5a, 0x6, 0xf5, 0xb7, 0xab, 0x15, 0xdf, 0x88, 0xf3, 0xb5, 0x64, 0xde, 0x7e, 0x71, 0x1c, 0xe3, 0xf6, 0xea, 0x92, 0x42, 0xd4, 0xd9, 0xcc, 0x21, 0x69, 0x8e, 0x4e, 0x84, 0x6c, 0x70, 0x61, 0x4f, 0x6f, 0x77, 0x77, 0x5f, 0x34, 0x92, 0x79, 0xfc, 0xde, 0xdd, 0xa4, 0xe5, 0x93, 0x9c, 0x1b, 0x2c, 0xf0, 0x5c, 0xf9, 0xf9, 0x96, 0xfd, 0x44, 0xcf, 0x44, 0x82, 0x3d, 0x37, 0xb1, 0x76, 0x84, 0x17, 0xe4, 0xeb, 0xfc, 0x63, 0xd3, 0xad, 0xda, 0x86, 0xb9, 0x4b, 0xb5, 0xf2, 0xbf, 0x38, 0xd9, 0x82, 0x1e, 0x8d, 0xeb, 0xd3, 0x92, 0x8d, 0x63, 0x8d, 0x57, 0xf8, 0x57, 0x9b, 0xd0, 0xfb, 0xba, 0xc, 0x29, 0xa5, 0x80, 0x9b, 0x93, 0xad, 0x89, 0x67, 0x1c, 0xc8, 0x53, 0x2d, 0x91, 0x23, 0xb2, 0xf1, 0x3f, 0x3e, 0xee, 0x3e, 0xcc, 0x8, 0xa7, 0x89, 0x2, 0x52, 0x2a, 0x80, 0x59, 0x7b, 0xff, 0xeb, 0xfc, 0xf5, 0x87, 0xe7, 0x77, 0x22, 0xd8, 0x96, 0x5f, 0x42, 0x30, 0xf9, 0xcd, 0xb0, 0xf0, 0xb1, 0x4f, 0x12, 0x69, 0x27, 0x54, 0xef, 0x43, 0x2e, 0xe8, 0x3, 0xbb, 0x25, 0xeb, 0x80, 0x1c, 0xd8, 0x19, 0xbe, 0x63, 0x3, 0x26, 0x90, 0xe7, 0x67, 0xe5, 0x96, 0xfb, 0x7d, 0xf4, 0x6f, 0xc6, 0x58, 0xe3, 0x67, 0xcf, 0xe7, 0xf, 0xae, 0x2f, 0x7, 0xbc, 0xdb, 0x9b, 0x10, 0xd, 0x2a, 0x41, 0xfa, 0x71, 0x8f, 0xd2, 0xa1, 0x23, 0x7c, 0x5d, 0x83, 0x71, 0x1f, 0x3d, 0xbf, 0xad, 0x9f, 0x45, 0x50, 0xe8, - 0x46, 0x55, 0x74, 0x35, 0x8b, 0xa5, 0x5d, 0x8c, 0x3b, 0x71, 0x4a, 0xeb, 0xdb, 0xfe, 0xde, 0xf1, 0xb, 0x6d, 0xff, 0x17, 0x92, 0xc, 0x50, 0x1b, 0x3e, 0xc7, 0x6e, 0x75, 0xcd, 0xb, 0xd4, 0xbe, 0xb, 0x36, 0x30, 0x13, 0x39, 0xc2, 0x1d, 0x89, 0x62, 0x6d, 0xb5, 0xc, 0x52, 0xdd, 0xbf, 0xc5, 0xd, 0x94, 0xc6, 0xdb, 0x4a, 0xcc, 0x70, 0xd3, 0x3f, 0x68, 0x14, 0xb8, 0xe2, 0x18, 0xb1, 0x7f, 0xe1, 0x6c, 0xc7, 0x4f, 0xca, 0x1b, 0x4f, 0xed, 0x3, 0xb2, 0xe6, 0x1b, 0x32, 0xed, 0x93, 0xe4, 0x6e, 0xf, 0xeb, 0xaf, 0x6e, 0x8f, 0x7d, 0xd6, 0xb5, 0xdf, 0x3c, 0xb9, 0xff, 0xe2, 0x69, 0xf3, 0xfe, 0xcb, 0x27, 0xc9, 0xf, 0x5, 0x13, 0x85, 0x8c, 0x4a, 0xe4, 0x67, 0xf1, 0xfb, 0x0, 0xfd, 0xf1, 0xe6, 0x2d, 0x2c, 0x14, 0x9a, 0xf1, 0x5f, 0xa7, 0x5e, 0xd6, 0x49, 0xed, 0xe5, 0x2d, 0xba, 0xee, 0xf, 0xe6, 0xf4, 0x9b, 0xd4, 0x27, 0x55, 0xcb, 0xcb, 0x33, 0xaf, 0xef, 0x3f, 0xda, 0xf8, 0xad, 0xe9, 0x5c, 0x4e, 0x59, 0x89, 0xba, 0x70, 0x64, 0xdf, 0x8d, 0x4c, 0xa, 0xae, 0x2d, 0xfe, 0x38, 0x64, 0x59, 0x62, 0x1f, 0x9d, 0x4f, 0x1b, 0x7c, 0xe, 0x5b, 0xcf, 0x2f, 0x27, 0x58, 0xe6, 0x35, 0x40, 0xe8, 0xe9, 0xee, 0xd, 0x3d, 0x3a, 0xd, 0xb8, 0x2b, 0x80, 0x1b, 0x2, 0x3e, 0x9f, 0x9c, 0xe5, 0xbf, 0x61, 0xb4, 0x77, 0x8e, 0x84, 0x8d, 0x1e, 0x44, 0xfe, 0x21, 0x95, 0x11, 0xc8, 0x5b, 0x16, 0x1, 0xcc, 0xdd, 0x2, 0xd9, 0xd0, 0x66, 0x69, 0xe8, 0xb4, 0xcf, 0xa3, 0xb6, 0x81, 0xa8, 0xf6, 0x82, 0xe, 0xff, 0xa9, 0xac, 0xff, 0x8, 0x97, 0xf9, 0x40, 0x16, 0x53, 0x81, 0xb1, - 0x4c, 0x55, 0xfd, 0x6e, 0x27, 0x1c, 0xff, 0x6c, 0xa9, 0x25, 0xfd, 0xcb, 0xcc, 0x4, 0x34, 0xa2, 0xca, 0x89, 0xf5, 0x49, 0xf0, 0x24, 0xee, 0xff, 0xed, 0x33, 0xa5, 0x7f, 0x70, 0xa1, 0xff, 0xfd, 0x95, 0x62, 0x59, 0x91, 0x2e, 0xfe, 0xf7, 0xd, 0x75, 0x2f, 0x87, 0x9e, 0xa9, 0x84, 0x56, 0x2c, 0x4d, 0x6c, 0x7, 0x7c, 0x3f, 0x5d, 0xad, 0xa8, 0xcd, 0x9d, 0xb9, 0x54, 0xdb, 0x85, 0xed, 0x6f, 0xd4, 0x36, 0x9e, 0xf6, 0xf5, 0x9b, 0x77, 0xb6, 0x97, 0x82, 0x7a, 0xb5, 0x2f, 0xec, 0x4e, 0x35, 0x7a, 0xae, 0xfc, 0x26, 0xed, 0xcf, 0xcc, 0xa0, 0xbd, 0xd7, 0xaf, 0x3f, 0x92, 0xf9, 0xfc, 0xa7, 0x2c, 0x7f, 0x8e, 0xc9, 0xd9, 0x63, 0xa7, 0x71, 0xe1, 0xcf, 0x94, 0xff, 0xc7, 0x43, 0xa9, 0x16, 0xca, 0xd9, 0x59, 0x97, 0xa9, 0xbb, 0xbd, 0x33, 0xc1, 0x26, 0xd7, 0xf6, 0x94, 0x2a, 0x84, 0x13, 0x7a, 0x66, 0x83, 0xda, 0xb, 0x17, 0xe1, 0x44, 0x19, 0xf5, 0xf8, 0xbe, 0xb4, 0xcf, 0x7f, 0xce, 0x42, 0xc4, 0x38, 0xd4, 0xde, 0x91, 0x32, 0x0, 0x97, 0x76, 0xde, 0xa9, 0xf3, 0x2e, 0x44, 0xdc, 0x8c, 0x79, 0x38, 0x4e, 0x58, 0x5b, 0xbf, 0x10, 0x8a, 0x6c, 0xa, 0x54, 0x59, 0x24, 0x74, 0xa9, 0x9c, 0xad, 0x8f, 0xff, 0x96, 0xd5, 0xf0, 0xd4, 0xd, 0x8c, 0xf8, 0xfa, 0x77, 0x4c, 0xc7, 0xbd, 0xc0, 0x7b, 0x4b, 0x5c, 0xbe, 0xf9, 0xaa, 0xcf, 0x55, 0xe0, 0xdd, 0x3e, 0x1e, 0x1d, 0x41, 0x7b, 0xc8, 0xaf, 0x37, 0x72, 0x4f, 0x59, 0x6a, 0xbe, 0xd4, 0x2a, 0x87, 0x4d, 0x37, 0xc5, 0xf7, 0x6a, 0x38, 0x98, 0xaf, 0xa9, 0x26, 0xa3, 0xa6, 0x21, 0x7c, 0x71, 0xac, 0xf1, 0x1b, 0x4a, 0x5f, 0x1b, - 0xdd, 0x0, 0x87, 0xe3, 0x8b, 0x6d, 0xd4, 0x7c, 0xde, 0xd8, 0xf5, 0x29, 0x2, 0xef, 0x4b, 0xb7, 0xc1, 0x28, 0xe6, 0x92, 0x2c, 0xab, 0x18, 0x6f, 0xf8, 0x22, 0x1f, 0xab, 0x2d, 0x7, 0x55, 0x25, 0x41, 0xbe, 0x1a, 0xcf, 0x31, 0x2b, 0xfa, 0x6c, 0xc7, 0x2f, 0x4c, 0xed, 0xbf, 0x7f, 0xd, 0x9c, 0x98, 0x4f, 0x60, 0xf3, 0x43, 0x25, 0x5d, 0xec, 0x93, 0x6a, 0x8, 0x33, 0x4d, 0x6b, 0xbe, 0xcd, 0x70, 0x53, 0xc4, 0xd0, 0x5, 0x77, 0x82, 0x6b, 0xc, 0xff, 0x33, 0x45, 0xf2, 0x5a, 0xc7, 0xc2, 0x84, 0x6e, 0xd7, 0x3f, 0xdb, 0xf1, 0x1b, 0xe6, 0x8f, 0xe4, 0xe0, 0x58, 0xa5, 0xc4, 0xd6, 0x27, 0x6b, 0x50, 0x4b, 0x35, 0x2e, 0xdc, 0x54, 0x8d, 0x19, 0x9, 0xc7, 0xb2, 0x64, 0xc2, 0xb2, 0x5f, 0x32, 0xee, 0xaf, 0x7f, 0xd4, 0xf1, 0xab, 0xa2, 0xfa, 0x21, 0x48, 0x82, 0x85, 0x71, 0xa1, 0xcb, 0x6a, 0x67, 0xf1, 0x85, 0xd4, 0x7e, 0x79, 0xad, 0x22, 0xc9, 0xc1, 0xe0, 0x4d, 0x2e, 0x2e, 0xd9, 0xf1, 0x19, 0xfa, 0x4, 0xab, 0x7a, 0xde, 0xc4, 0xcc, 0xe7, 0x1f, 0x5a, 0xe3, 0xd6, 0x9c, 0xfa, 0x62, 0x51, 0xd1, 0xa5, 0x2e, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x90, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xd1, 0xe, 0xd9, 0x52, 0xca, 0x88, 0x9b, 0x67, 0x5c, 0x3e, 0x84, 0xd2, 0x6d, 0x93, 0xb4, 0x69, 0xd0, 0x3a, 0xc5, 0x94, 0xb, 0x5c, 0xfa, 0x62, 0x23, 0x7c, 0x66, 0xd3, 0x8a, 0x72, 0x10, 0xae, 0xbb, 0x2b, 0xc2, 0x51, 0x7d, 0xb7, 0x2, 0x27, 0x8a, 0x1e, 0x7e, 0xe9, 0x35, 0xc4, 0x6e, 0x24, 0x53, 0x75, 0xc3, 0x3e, 0x70, 0xb6, 0xe3, 0x17, 0x9e, 0x7f, 0x2b, 0x7c, - 0xd3, 0x91, 0x87, 0x49, 0x76, 0x4e, 0x81, 0xf0, 0x2, 0x5, 0x21, 0xef, 0x32, 0x73, 0x61, 0x11, 0xed, 0xc1, 0xd1, 0xb2, 0x40, 0x78, 0x73, 0x14, 0xca, 0xeb, 0xf6, 0xb9, 0x44, 0xc2, 0x60, 0xf6, 0xc3, 0x6c, 0x64, 0x70, 0xfc, 0xe5, 0xa3, 0x8e, 0xdf, 0x50, 0x7a, 0x6d, 0xfd, 0x7a, 0x38, 0x94, 0xd6, 0x24, 0x25, 0x76, 0x87, 0xa7, 0xbb, 0xfd, 0xe1, 0x67, 0xc6, 0x69, 0x5e, 0x82, 0xab, 0xd9, 0x59, 0xc3, 0x30, 0x32, 0x3e, 0x1f, 0xfd, 0xf7, 0x86, 0x5f, 0x73, 0x72, 0x36, 0x35, 0x57, 0x8b, 0x15, 0x9, 0x82, 0xca, 0x89, 0x2a, 0x42, 0x97, 0xdc, 0xa0, 0xe9, 0x6f, 0x1c, 0x13, 0x56, 0xd4, 0xbb, 0x5c, 0x2f, 0xdf, 0x2e, 0x64, 0x3c, 0x1f, 0x39, 0x9b, 0x3f, 0x8f, 0xa7, 0xec, 0x67, 0x96, 0xf3, 0x68, 0x4d, 0xed, 0x2d, 0x64, 0x16, 0x7b, 0x56, 0xf8, 0x1c, 0x7d, 0xed, 0x56, 0x1c, 0xd7, 0xaf, 0x82, 0x97, 0xeb, 0x38, 0x3f, 0x68, 0x8d, 0x47, 0xde, 0x37, 0x7d, 0x5e, 0xb4, 0x1c, 0x8b, 0x25, 0x59, 0xaf, 0xe0, 0x8d, 0x8b, 0x81, 0xd6, 0xfe, 0xb1, 0xc6, 0x6b, 0x62, 0xde, 0x78, 0x74, 0x49, 0xf8, 0x5a, 0x98, 0xd9, 0xf9, 0x18, 0x77, 0x2e, 0xb3, 0x57, 0xbe, 0x1f, 0xb4, 0x55, 0x9e, 0xeb, 0x67, 0xa6, 0x44, 0xf5, 0x71, 0x82, 0x8b, 0x8a, 0x8c, 0x1f, 0x11, 0x5d, 0xde, 0xbf, 0x51, 0xcc, 0x7b, 0x28, 0xa8, 0x15, 0x2, 0xb1, 0x12, 0xfb, 0x17, 0x46, 0x2c, 0x3f, 0xde, 0x2f, 0xd2, 0xe5, 0x18, 0x8f, 0x4e, 0x2b, 0xfc, 0xcf, 0x1f, 0x68, 0xda, 0xc5, 0xc2, 0x6b, 0x22, 0x6c, 0x4, 0x28, 0x88, 0xbd, 0x44, 0x9d, 0xc7, 0xf2, 0xc3, 0x58, 0xb3, 0x43, 0x44, 0x82, 0xbe, 0xa, 0x55, - 0x1b, 0x37, 0x21, 0x91, 0x13, 0x4d, 0xc4, 0xb9, 0x38, 0x6f, 0xc2, 0xbc, 0x7f, 0xac, 0xf1, 0xfb, 0x0, 0xff, 0x83, 0xf5, 0x96, 0xe3, 0xfe, 0x87, 0xf7, 0xb6, 0x85, 0x8, 0x6, 0xdb, 0xd8, 0xf8, 0x1, 0x11, 0xcb, 0x14, 0x92, 0x69, 0xff, 0x63, 0x98, 0xff, 0xd6, 0x3e, 0x1e, 0xd5, 0x76, 0x6f, 0x45, 0xc8, 0xbc, 0x8b, 0xfa, 0x6f, 0x7e, 0x7b, 0xff, 0xc, 0x56, 0x7a, 0xe6, 0x1c, 0x62, 0xf3, 0x4d, 0x26, 0xdf, 0x88, 0x46, 0x16, 0x33, 0xe3, 0x24, 0x69, 0xf3, 0x5, 0x9e, 0x6e, 0x7a, 0xa8, 0xff, 0xd1, 0xf0, 0x88, 0xf, 0x1e, 0xe8, 0xe7, 0x3a, 0x1a, 0x23, 0xa2, 0x4, 0x4f, 0x34, 0xd3, 0xfe, 0xc7, 0x47, 0x1d, 0xbf, 0x53, 0xf3, 0x3f, 0x58, 0xf7, 0x1d, 0x1d, 0xff, 0xe3, 0xa3, 0x8e, 0x1f, 0x93, 0x7f, 0x1d, 0x12, 0xea, 0x7f, 0xc9, 0xec, 0x3f, 0x79, 0xdc, 0xb9, 0x35, 0x4b, 0x36, 0x22, 0x16, 0x8c, 0x72, 0xac, 0xfb, 0xb6, 0x29, 0x51, 0xe9, 0x5a, 0xe5, 0x46, 0x14, 0xf1, 0x5f, 0xec, 0x2d, 0xa3, 0x34, 0x79, 0xe0, 0xc0, 0xcd, 0x13, 0xf2, 0x1e, 0x42, 0x82, 0x5, 0xe4, 0x47, 0x5, 0x3d, 0x8b, 0xdf, 0x7, 0xd8, 0x2f, 0x7, 0x6e, 0xa1, 0x38, 0xba, 0xd9, 0x1d, 0xb8, 0x76, 0xc5, 0x9, 0x17, 0x7e, 0xa6, 0x15, 0x5e, 0x9f, 0xba, 0xc2, 0x4c, 0x8c, 0x8e, 0xff, 0xf6, 0xf7, 0x86, 0x5f, 0x8d, 0x80, 0x4b, 0xdb, 0x4e, 0x98, 0xc7, 0xa8, 0x59, 0xc2, 0x31, 0x4a, 0x43, 0x4f, 0xe4, 0x94, 0xf2, 0x37, 0x7d, 0x68, 0xf9, 0xf1, 0x6a, 0xb3, 0xde, 0x97, 0x13, 0xb9, 0x88, 0xfe, 0x78, 0x45, 0x5, 0xe5, 0xeb, 0x35, 0x96, 0xa6, 0x97, 0x29, 0xfb, 0xef, 0xa2, 0xef, 0xcf, 0xcb, - 0x6b, 0x8a, 0x8f, 0x90, 0x97, 0x3, 0x24, 0x35, 0x23, 0x83, 0xbb, 0xbd, 0xbf, 0xb8, 0x8, 0x78, 0x67, 0x37, 0x7c, 0xd0, 0x1b, 0x36, 0xd, 0x94, 0x9c, 0x71, 0xf6, 0x60, 0x73, 0xe4, 0x42, 0x44, 0x9b, 0xa9, 0xf4, 0x1b, 0xcc, 0xdf, 0xb9, 0x59, 0x40, 0x8, 0xfa, 0x39, 0xc9, 0x72, 0x9b, 0x29, 0x32, 0xcf, 0x7f, 0xc6, 0xa2, 0x7e, 0xee, 0xa7, 0x42, 0xf, 0xe5, 0x3f, 0x93, 0xfb, 0x33, 0xc2, 0xe3, 0xd7, 0x82, 0xd9, 0x2f, 0xb4, 0x9, 0x1e, 0xdf, 0x64, 0x77, 0x11, 0xe3, 0xbf, 0x6a, 0x92, 0x42, 0xaf, 0x67, 0xce, 0x1f, 0x6a, 0x4, 0xfe, 0xcf, 0x5c, 0x9f, 0x26, 0xee, 0x6d, 0xdf, 0xba, 0x42, 0x69, 0x14, 0x5f, 0x1c, 0x6b, 0xbc, 0x86, 0xce, 0x9f, 0xdf, 0xac, 0xf4, 0xea, 0x1a, 0x35, 0xc9, 0xc0, 0xb2, 0xca, 0x82, 0x13, 0x98, 0xfe, 0x88, 0xda, 0xe9, 0x87, 0x46, 0x65, 0xfe, 0xbc, 0xca, 0xac, 0x37, 0xf2, 0xd, 0x31, 0x44, 0x6d, 0x68, 0x77, 0xc2, 0x69, 0xeb, 0xab, 0xd4, 0x4f, 0x9b, 0x8, 0x10, 0xa7, 0xfc, 0x80, 0xb, 0x64, 0x82, 0x7d, 0xb9, 0xc5, 0x5d, 0xae, 0xef, 0x5f, 0x3, 0x2c, 0xd2, 0x8f, 0x8d, 0x47, 0x2b, 0x8f, 0x56, 0xe8, 0x15, 0x63, 0xce, 0x7f, 0x43, 0xe7, 0xcf, 0x99, 0x3f, 0x60, 0x5a, 0xf3, 0x17, 0x33, 0x21, 0x51, 0xad, 0xec, 0x9d, 0xb9, 0x1e, 0xb2, 0x4e, 0x38, 0x3b, 0x64, 0xc8, 0xa7, 0x65, 0x7a, 0xfe, 0xfc, 0xa3, 0x8e, 0xdf, 0xd0, 0xf9, 0xf3, 0xf0, 0x23, 0x4e, 0x7c, 0x53, 0xae, 0xbc, 0x48, 0x2c, 0x75, 0x39, 0xe0, 0x2f, 0x90, 0xc2, 0x9b, 0x9b, 0x10, 0xbc, 0xc0, 0x77, 0x91, 0x9f, 0xa2, 0xe5, 0x53, 0xcd, 0x44, 0xa6, 0xe7, 0xcf, 0x3f, - 0xea, 0xf8, 0xd, 0xd3, 0x1f, 0xb9, 0x1e, 0xe4, 0x26, 0x16, 0x89, 0x2c, 0x84, 0xcc, 0x9a, 0xff, 0x7d, 0xa2, 0x17, 0xc1, 0x4f, 0xec, 0x9f, 0xca, 0xf0, 0x53, 0x54, 0x35, 0xe3, 0xf9, 0x5d, 0xff, 0xde, 0xf0, 0xcb, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0x3e, 0xdd, 0xb4, 0x7c, 0xab, 0xa, 0x1e, 0xd2, 0x46, 0x5d, 0xda, 0x65, 0x9c, 0x4a, 0xfe, 0x94, 0x91, 0xd2, 0x73, 0xa3, 0x7c, 0x50, 0x13, 0xfb, 0x39, 0xe8, 0x9c, 0x3e, 0x1b, 0x71, 0x2b, 0xff, 0xa4, 0x7d, 0x8e, 0x38, 0x4d, 0xc1, 0x3c, 0xe3, 0xf6, 0xa7, 0x4b, 0x47, 0x87, 0x9b, 0x8b, 0x1, 0xb9, 0x3e, 0xe8, 0x70, 0x61, 0xce, 0xbc, 0x8a, 0xf9, 0x93, 0xff, 0x2a, 0xdf, 0x9, 0x37, 0x3c, 0x5f, 0x7f, 0x96, 0xfe, 0x6b, 0xba, 0xb9, 0x6b, 0x9, 0x5b, 0x1c, 0x10, 0xcc, 0x4d, 0x5a, 0x29, 0x8b, 0x50, 0x57, 0xfd, 0x69, 0xdc, 0x2d, 0xdf, 0xff, 0x8a, 0x70, 0x98, 0x2f, 0x47, 0x49, 0x7a, 0x7e, 0x2c, 0xcd, 0xc1, 0xef, 0x39, 0xb4, 0x25, 0xd7, 0x41, 0x50, 0xd8, 0xe, 0x31, 0xa7, 0x50, 0x3f, 0xc9, 0xa9, 0x4a, 0x24, 0xf9, 0x9c, 0x42, 0xb8, 0x3c, 0xf, 0x6a, 0x2e, 0x64, 0xfb, 0x41, 0x5b, 0xb1, 0xe4, 0x31, 0x74, 0x6b, 0x5c, 0xf8, 0x47, 0xb, 0xad, 0xd, 0xeb, - 0x7a, 0xd9, 0x11, 0x45, 0xf5, 0xaf, 0x88, 0xcf, 0xc3, 0x6f, 0x2, 0x45, 0x8d, 0x5c, 0xe7, 0x64, 0x52, 0x10, 0xcb, 0x55, 0x9a, 0xcd, 0xdb, 0xe9, 0x9, 0xc7, 0x22, 0x96, 0xfe, 0x18, 0x67, 0x40, 0x3e, 0x1b, 0xef, 0x76, 0x19, 0xed, 0xe4, 0x5a, 0xb1, 0xac, 0x5b, 0x79, 0x8a, 0xe5, 0x5c, 0x9, 0x3d, 0xa3, 0xa0, 0x57, 0x7b, 0x89, 0xbb, 0x84, 0x4, 0x3b, 0xe, 0xbc, 0xb1, 0x85, 0xe4, 0xcc, 0x8e, 0xb2, 0xed, 0x58, 0xac, 0x5, 0x7, 0x6c, 0x55, 0xfd, 0x88, 0xaf, 0xf7, 0xf6, 0x52, 0x96, 0xff, 0xf4, 0x63, 0x3a, 0x38, 0xc8, 0x91, 0xca, 0xa4, 0xf7, 0xb6, 0x8f, 0xd, 0xee, 0xa7, 0xdd, 0x17, 0xe5, 0xd4, 0xbd, 0x35, 0x42, 0x2a, 0x1f, 0x6c, 0x37, 0x11, 0x95, 0xda, 0x5d, 0x77, 0x84, 0xa, 0x2f, 0x9, 0x3a, 0x8b, 0x2b, 0xb, 0xab, 0x3f, 0xfe, 0xd5, 0x9f, 0x1d, 0x78, 0x7d, 0xff, 0xee, 0xb1, 0xc6, 0x6b, 0x58, 0xff, 0x6d, 0x72, 0x63, 0x62, 0xbf, 0x6b, 0xb1, 0xc7, 0xe3, 0xf3, 0x7, 0x9c, 0xf6, 0x7a, 0xc, 0xa9, 0x88, 0x2b, 0x47, 0x12, 0x26, 0x5b, 0x74, 0x9b, 0xee, 0xfb, 0x4d, 0xbb, 0x24, 0xcc, 0x0, 0x22, 0xd8, 0xa3, 0x89, 0x7d, 0xa7, 0x50, 0xdf, 0x9b, 0x5f, 0x64, 0xed, 0x87, 0x6c, 0xe1, 0x25, 0xaa, 0xc3, 0xf6, 0x1f, 0x77, 0xbc, 0xf4, 0x3b, 0x68, 0x3e, 0x6d, 0x30, 0x87, 0xc8, 0x4d, 0x2c, 0xdf, 0x37, 0x5f, 0xd8, 0xe6, 0x4e, 0x8, 0xa6, 0xf6, 0x74, 0xb2, 0xa4, 0x9c, 0xf2, 0xaf, 0x59, 0x79, 0x4f, 0x59, 0xa3, 0xb6, 0x7f, 0xd3, 0x91, 0x39, 0xb4, 0x42, 0x69, 0xe, 0x6f, 0xe, 0xae, 0xe5, 0xdc, 0x19, 0xbd, 0x63, 0xf9, 0x30, 0x7e, 0x17, 0xf0, 0x35, - 0xfa, 0x41, 0xd6, 0x53, 0x75, 0x32, 0x8e, 0xdf, 0xa3, 0x4e, 0x6c, 0xab, 0xaf, 0xe7, 0xc, 0xd1, 0xe5, 0x2f, 0x90, 0x4, 0x84, 0xb, 0x97, 0xc1, 0x55, 0x85, 0x2b, 0x5, 0x8f, 0x8f, 0x2d, 0xbf, 0x48, 0xdf, 0x1f, 0x3f, 0xe4, 0xfa, 0xa0, 0x9a, 0x37, 0x37, 0x53, 0x3e, 0xbe, 0x49, 0x8a, 0xa0, 0xfb, 0xca, 0xca, 0xb2, 0x5a, 0x34, 0xd7, 0xde, 0x2, 0x87, 0xa6, 0x29, 0xd6, 0x69, 0x51, 0xed, 0x39, 0x29, 0x7f, 0x17, 0x8e, 0x1d, 0xfe, 0x93, 0xf3, 0xda, 0xe2, 0x4f, 0x21, 0xf9, 0x46, 0x2b, 0x1, 0xf7, 0xf1, 0x3d, 0x15, 0x9f, 0x5f, 0xf, 0x6f, 0xfe, 0xb9, 0xe8, 0xd5, 0x5, 0x78, 0x74, 0x6d, 0xc5, 0xc6, 0xe7, 0xc7, 0x3e, 0x5f, 0xbf, 0x77, 0xfd, 0xf5, 0x70, 0x98, 0x1c, 0x8f, 0xde, 0x5a, 0x52, 0xa5, 0x96, 0x65, 0xf5, 0x45, 0x3a, 0x7e, 0xfb, 0xec, 0xbf, 0x4, 0x2f, 0x63, 0xdb, 0xf5, 0xa4, 0x98, 0xbe, 0x29, 0x59, 0x8d, 0xd0, 0x53, 0x5, 0x93, 0x6b, 0x41, 0x99, 0x41, 0x35, 0x10, 0x16, 0xb0, 0xe8, 0xe4, 0xfd, 0x44, 0xaf, 0xee, 0x50, 0xe0, 0x23, 0x56, 0x3a, 0x1b, 0x91, 0xc9, 0xf4, 0x11, 0xdb, 0x2f, 0x1b, 0x37, 0xe1, 0xce, 0x5, 0x8c, 0x67, 0x4b, 0x10, 0x94, 0x12, 0xfc, 0x35, 0x0, 0x7f, 0x40, 0x80, 0x41, 0x55, 0x55, 0x2b, 0xb0, 0x21, 0xed, 0xfe, 0xb3, 0x23, 0xa5, 0xeb, 0x8a, 0x97, 0x22, 0xe8, 0x62, 0x19, 0xe, 0x9c, 0xb4, 0x5, 0xe5, 0x98, 0x6c, 0xe5, 0xeb, 0x31, 0x58, 0x86, 0x4b, 0xdd, 0x21, 0xa4, 0xdf, 0xaf, 0xea, 0xea, 0xda, 0x6, 0xab, 0xc3, 0x51, 0xc9, 0x41, 0x98, 0x3e, 0x60, 0xf6, 0x97, 0x9b, 0xfe, 0xd2, 0x2, 0xb4, 0xc0, 0xe4, 0x13, - 0xce, 0x30, 0x87, 0xa7, 0x52, 0xd0, 0x59, 0xaf, 0x99, 0x6e, 0xff, 0x55, 0xdb, 0xd8, 0x72, 0x1f, 0xfe, 0xf1, 0x50, 0xe1, 0x83, 0x8d, 0x4b, 0x7f, 0x7e, 0xfe, 0x92, 0xd, 0xe0, 0x8f, 0x55, 0xba, 0x63, 0x2e, 0xac, 0xc3, 0x4d, 0x88, 0xf1, 0x6c, 0x7f, 0x8d, 0xc0, 0xe0, 0xb3, 0x3, 0x81, 0x41, 0xf1, 0xad, 0x62, 0xcb, 0x59, 0x91, 0xb0, 0xfe, 0x8d, 0x78, 0x7f, 0x26, 0x47, 0xe1, 0x26, 0x10, 0xbe, 0x4e, 0xbb, 0xeb, 0xc7, 0xf4, 0x57, 0x5d, 0xfb, 0x47, 0xbc, 0xbe, 0x89, 0xca, 0xe3, 0x3, 0x95, 0x6a, 0x77, 0x4, 0xc9, 0xfa, 0xad, 0x6c, 0x43, 0x9d, 0xd0, 0xbb, 0x9c, 0xd6, 0x33, 0xad, 0x9f, 0x2b, 0x8d, 0x2a, 0xbe, 0xcf, 0xdd, 0xcc, 0xb7, 0x65, 0x1a, 0xbf, 0xd0, 0x23, 0x51, 0x78, 0xf8, 0xa7, 0xb9, 0x56, 0x9d, 0x3e, 0x72, 0xf9, 0xa6, 0xa2, 0xb4, 0xf5, 0x1f, 0xe5, 0x58, 0xfe, 0xc9, 0x5e, 0x9b, 0x9e, 0xfd, 0xe4, 0x58, 0xf7, 0xdf, 0xa1, 0xf4, 0xd2, 0x1d, 0x6d, 0xd6, 0xf6, 0x5b, 0x52, 0x6a, 0x15, 0xd8, 0x68, 0x5f, 0x6f, 0x7a, 0x74, 0x1a, 0x92, 0x47, 0x18, 0x8b, 0xf1, 0x3f, 0xec, 0x77, 0xf3, 0x68, 0xde, 0x11, 0xa3, 0x9f, 0xc9, 0x24, 0xfb, 0x3c, 0x86, 0xf5, 0xdf, 0xe3, 0xfa, 0x24, 0x66, 0xb8, 0x6b, 0x4e, 0x43, 0xfb, 0x3e, 0x6a, 0x74, 0x8d, 0x60, 0xed, 0x6f, 0xe, 0x9d, 0x65, 0x4, 0xa2, 0xff, 0xc6, 0xba, 0x3d, 0x67, 0x3a, 0x5d, 0x57, 0xbd, 0xd2, 0xb2, 0x76, 0xe, 0xbb, 0x8f, 0x4a, 0xab, 0x90, 0xe5, 0xa7, 0x11, 0xcb, 0xc3, 0xcd, 0x2b, 0xb1, 0xb, 0xe2, 0x94, 0x76, 0x4a, 0xe9, 0x7, 0xa3, 0x19, 0x5f, 0xaf, 0x7a, 0xda, 0xf9, 0x63, 0x87, 0x1f, - 0x4a, 0xb5, 0xc9, 0x1d, 0x45, 0x0, 0x6e, 0xc, 0xf7, 0x67, 0x59, 0x3e, 0x11, 0x7d, 0xa, 0xfb, 0x1c, 0xb4, 0x64, 0x7a, 0xe8, 0x68, 0x18, 0x58, 0x20, 0x7a, 0xed, 0x84, 0xb, 0x3d, 0x69, 0xfd, 0xab, 0x8f, 0xf9, 0xdc, 0x86, 0x47, 0x60, 0xc9, 0x91, 0x6c, 0x17, 0xa3, 0x4e, 0xe6, 0xe0, 0xe8, 0x4a, 0x38, 0x4d, 0xbe, 0x85, 0x5e, 0x51, 0x2, 0xd5, 0xff, 0xf7, 0x9c, 0x6c, 0x3f, 0x31, 0x7f, 0x88, 0x2a, 0x5e, 0x93, 0x9a, 0x7, 0xb, 0x74, 0x77, 0xc2, 0x39, 0xe2, 0xfb, 0x93, 0x9b, 0xd9, 0x46, 0x5b, 0xd4, 0x1a, 0xd3, 0x17, 0x66, 0x62, 0x3f, 0xa, 0xea, 0x6f, 0x1e, 0xb3, 0xf6, 0xdb, 0xd0, 0xc4, 0x6e, 0x1d, 0x96, 0x3f, 0x94, 0xac, 0xe4, 0xba, 0x23, 0x5c, 0x4f, 0xe4, 0xdc, 0xd6, 0xba, 0xf4, 0xf6, 0xf4, 0x94, 0x3e, 0xb6, 0xd2, 0x3e, 0xc6, 0x3d, 0x3c, 0x63, 0x11, 0x69, 0x97, 0xc7, 0x9d, 0x9b, 0xae, 0x7e, 0x35, 0xa7, 0xf3, 0x8d, 0xcc, 0x52, 0x62, 0x59, 0x98, 0xe9, 0x7f, 0xb6, 0x7f, 0x89, 0xc1, 0x85, 0x35, 0xeb, 0x34, 0x51, 0xfc, 0x9b, 0xa8, 0xdb, 0x31, 0x88, 0x5f, 0xff, 0xfe, 0xff, 0xbc, 0x2b, 0x7c, 0x87, 0x82, 0x78, 0x82, 0xc3, 0x52, 0xb6, 0x81, 0x27, 0xc7, 0x9, 0x27, 0xed, 0xdf, 0x19, 0x1f, 0x8b, 0xfd, 0x3b, 0x87, 0xd2, 0x6b, 0x69, 0xc7, 0x51, 0x65, 0x24, 0xe2, 0x3d, 0xd6, 0x76, 0x3a, 0x70, 0x6c, 0x9e, 0x4e, 0x9b, 0xf6, 0x55, 0x5, 0x3b, 0x3c, 0xf7, 0x24, 0xd4, 0x82, 0x51, 0x97, 0x4f, 0x17, 0x75, 0xae, 0xa7, 0xef, 0x33, 0xad, 0xbd, 0x8, 0x61, 0x34, 0x20, 0xb4, 0x80, 0x1a, 0xb7, 0xed, 0xe, 0xdd, 0xce, 0x0, 0x78, 0x68, 0x73, 0x55, - 0xf5, 0x97, 0xa1, 0xff, 0xcf, 0x40, 0x0, 0x5b, 0x50, 0xc9, 0xfe, 0xc6, 0x1a, 0xaf, 0x61, 0xf8, 0xf5, 0x56, 0xd8, 0xde, 0xeb, 0x67, 0x4b, 0x4a, 0x42, 0xb0, 0xf2, 0x29, 0xf1, 0x7e, 0x83, 0x2b, 0xd5, 0x25, 0xd3, 0xca, 0x42, 0x9f, 0xe9, 0xeb, 0x95, 0x4e, 0x5f, 0x6, 0xcf, 0xa1, 0x27, 0x23, 0x39, 0x6e, 0xdb, 0x65, 0xe, 0xbf, 0x7f, 0x2d, 0x72, 0x21, 0xda, 0x1b, 0x98, 0xba, 0x3, 0xfe, 0x75, 0xdb, 0x28, 0x92, 0x8a, 0xb5, 0x25, 0xc7, 0x76, 0xf7, 0xfe, 0x87, 0x16, 0x96, 0xbe, 0x70, 0x3b, 0x60, 0x49, 0x7, 0xbe, 0xb4, 0x71, 0xf9, 0x56, 0x75, 0xac, 0xf1, 0x1a, 0x4a, 0x7b, 0x9f, 0xb8, 0x75, 0xd0, 0xf9, 0xdf, 0xc9, 0xd2, 0x50, 0xc9, 0xd, 0x39, 0x70, 0x20, 0x52, 0x6e, 0xb0, 0xb1, 0x60, 0x64, 0x9e, 0xff, 0xc2, 0x47, 0xab, 0x81, 0x19, 0xb2, 0xe2, 0xf7, 0xb1, 0x74, 0x6b, 0xb0, 0xf2, 0xff, 0xd4, 0xa7, 0x1a, 0xe0, 0x30, 0x75, 0x77, 0xa8, 0xf0, 0x5c, 0xe0, 0x3c, 0x2a, 0x52, 0xd9, 0x1, 0xe3, 0xd0, 0xe4, 0xd2, 0x1c, 0xf9, 0x18, 0xe7, 0xf4, 0xb1, 0x6c, 0x87, 0x15, 0x91, 0x3a, 0xe9, 0x8c, 0xc3, 0xaf, 0xe6, 0xc2, 0x65, 0x8, 0x86, 0x96, 0xa3, 0xac, 0xc3, 0xce, 0xa3, 0x60, 0xe5, 0xef, 0x62, 0xf7, 0x92, 0x80, 0x9b, 0xe1, 0x99, 0x79, 0x79, 0xf1, 0x9, 0x38, 0x28, 0x3b, 0xe9, 0xbb, 0x3, 0x4d, 0xc6, 0x62, 0x61, 0x58, 0x3e, 0xa4, 0x95, 0xe6, 0x8d, 0x30, 0xe8, 0x79, 0x97, 0xd5, 0x9a, 0x15, 0x1b, 0xbc, 0xb7, 0xcd, 0x44, 0x75, 0x19, 0x24, 0x57, 0xf1, 0xfa, 0xdb, 0x55, 0x91, 0x37, 0xc6, 0x1a, 0xaf, 0x61, 0xfc, 0x30, 0x75, 0x16, 0x59, 0x46, 0xf8, - 0x71, 0x70, 0xb9, 0x5c, 0x1, 0x37, 0xd0, 0x1c, 0xaf, 0x9, 0xe6, 0x13, 0x78, 0xe9, 0x49, 0x6d, 0x5d, 0x5f, 0xe6, 0xf1, 0x6b, 0xee, 0x5a, 0x8d, 0x2e, 0x82, 0x45, 0xec, 0x19, 0xc1, 0x91, 0x4c, 0x52, 0x7d, 0x31, 0x38, 0x7e, 0xa7, 0x49, 0xff, 0xb1, 0xba, 0xce, 0xca, 0xff, 0x33, 0x98, 0x1f, 0x66, 0x7f, 0xc5, 0xfe, 0xd2, 0xcf, 0x5e, 0x8d, 0xa0, 0xb9, 0xb2, 0x4d, 0x62, 0xfb, 0xe7, 0x90, 0x64, 0xed, 0x58, 0xe3, 0x35, 0x8c, 0xff, 0x96, 0x14, 0xd0, 0xf6, 0x2e, 0x92, 0x66, 0x47, 0xb8, 0x29, 0x84, 0x1e, 0xf1, 0xe6, 0xd8, 0xfb, 0x2b, 0xb3, 0x87, 0xbf, 0xb1, 0x2c, 0xf3, 0xf8, 0xd5, 0xac, 0x51, 0x89, 0x2b, 0x71, 0x95, 0xd8, 0x89, 0x6e, 0x72, 0x8f, 0xd2, 0x2e, 0x9d, 0x94, 0x3f, 0xc4, 0x3, 0x77, 0x9c, 0x6b, 0xae, 0xa5, 0xfa, 0xfc, 0xa6, 0x7a, 0x3b, 0x79, 0x53, 0x6d, 0x63, 0x77, 0xf8, 0xfd, 0xb9, 0xd8, 0xa6, 0x7f, 0x7d, 0x72, 0x7b, 0x81, 0x24, 0x89, 0x5, 0xfd, 0xe6, 0x58, 0xe3, 0x35, 0x94, 0x96, 0xc7, 0x85, 0x52, 0x4f, 0x7b, 0xe0, 0x1d, 0xf7, 0x24, 0x66, 0xbf, 0x50, 0xfb, 0x21, 0xa2, 0x4b, 0xdd, 0x9d, 0xa4, 0x62, 0x9d, 0x98, 0x79, 0xfc, 0x42, 0x6f, 0x76, 0x41, 0xfb, 0x27, 0x47, 0x80, 0xa, 0x37, 0xcd, 0x43, 0xe5, 0x5e, 0x5d, 0xf1, 0xe5, 0xa9, 0xd1, 0x57, 0x1e, 0xe5, 0x28, 0x1c, 0x76, 0xbd, 0x9a, 0x6f, 0x48, 0x28, 0x2e, 0x6, 0xab, 0x23, 0xfa, 0xa0, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xed, 0x3f, 0xc7, 0xb1, 0x4a, 0x55, 0x13, 0xbb, 0x74, 0x75, 0x27, 0xdb, 0xff, 0xca, 0xc2, 0xaf, 0x6b, 0x35, 0xa7, 0x52, 0x5f, 0xb4, 0xf1, 0x9e, 0x64, 0xc6, - 0xf1, 0xab, 0xdb, 0x51, 0x87, 0xe2, 0x6a, 0xb6, 0x7b, 0x6c, 0x92, 0x1b, 0xc0, 0x34, 0x96, 0xbf, 0xd5, 0xb8, 0x0, 0x2c, 0x79, 0xd, 0x4b, 0xfb, 0xdc, 0xad, 0x84, 0x99, 0xfe, 0x98, 0xc8, 0x86, 0xaa, 0xd8, 0xc1, 0x7e, 0xbf, 0xb5, 0xbf, 0x67, 0x4f, 0x84, 0xeb, 0xd3, 0x55, 0x4d, 0xaa, 0x55, 0xc7, 0x7c, 0xff, 0xab, 0x61, 0xf2, 0xef, 0x90, 0x17, 0x51, 0xae, 0x3a, 0xff, 0x4e, 0xbf, 0xcf, 0xef, 0x96, 0x2c, 0xfc, 0x4c, 0x4e, 0xa5, 0x68, 0x46, 0x51, 0xa1, 0x8d, 0x2, 0xff, 0x85, 0x7f, 0x70, 0x15, 0xa8, 0x58, 0x25, 0xdc, 0x3f, 0x51, 0x52, 0x72, 0xfb, 0xe7, 0xb6, 0xdf, 0x8d, 0x20, 0x34, 0xca, 0x8f, 0x78, 0xdd, 0xad, 0xbf, 0x8d, 0xf0, 0x4, 0xe, 0x6b, 0xdb, 0xbe, 0x7b, 0xbe, 0x55, 0xdd, 0x30, 0xbb, 0x9a, 0x54, 0x1f, 0x3a, 0x27, 0xe7, 0x79, 0x6a, 0xdb, 0x54, 0xe5, 0xb1, 0x8d, 0x9b, 0xce, 0x7a, 0x7f, 0x79, 0xa8, 0xbf, 0xfb, 0xf7, 0xe6, 0xff, 0x8e, 0xba, 0xbc, 0xd8, 0x96, 0x8b, 0x58, 0xd0, 0xda, 0x7e, 0x35, 0xc2, 0xbd, 0xa8, 0x71, 0x35, 0x2, 0x7f, 0x62, 0xfc, 0xaa, 0xeb, 0xa3, 0x37, 0x7e, 0xe5, 0xd8, 0xfe, 0x2f, 0xa4, 0xc7, 0xda, 0xdf, 0xca, 0xd6, 0xba, 0x96, 0x3e, 0xcc, 0x6f, 0x31, 0x6, 0x95, 0x62, 0xa6, 0xaf, 0xe7, 0xbd, 0x6d, 0x36, 0x12, 0x41, 0xa3, 0x83, 0xa8, 0xa5, 0x5a, 0x65, 0x5d, 0x95, 0x38, 0x4c, 0x3e, 0xca, 0x85, 0xb6, 0x7f, 0xcf, 0x30, 0x15, 0xf4, 0xdf, 0xbe, 0xbc, 0xb1, 0xa, 0xd5, 0x41, 0x87, 0x43, 0x31, 0xd, 0x9d, 0x1e, 0x1a, 0xf3, 0xf9, 0xb6, 0xb1, 0xa6, 0xa7, 0x47, 0xa8, 0x9b, 0x1d, 0xb, 0x24, 0x9b, 0xbe, 0xe1, - 0x7, 0x6e, 0xfc, 0x65, 0x41, 0x5a, 0xfb, 0x20, 0xc7, 0xb8, 0xb, 0xbf, 0x1f, 0x38, 0x66, 0x45, 0x47, 0xf4, 0xff, 0xa9, 0x75, 0xac, 0xdb, 0x3f, 0x94, 0x5e, 0xd3, 0x39, 0x97, 0x7c, 0xda, 0x21, 0xb3, 0x79, 0xa4, 0x1e, 0x96, 0x79, 0xbb, 0x54, 0xc0, 0xf3, 0xc8, 0x60, 0xbe, 0xc7, 0x61, 0xf2, 0xef, 0xd1, 0x3b, 0x61, 0x70, 0x3e, 0xdf, 0xd7, 0x3, 0x3f, 0x9, 0x52, 0x37, 0x43, 0xf4, 0x3a, 0xb, 0x51, 0x3c, 0x78, 0x31, 0xe4, 0x75, 0xf, 0xe3, 0xd7, 0x7c, 0xe, 0x13, 0x68, 0x85, 0x60, 0x24, 0xca, 0x8c, 0x82, 0x33, 0x8e, 0xff, 0x8e, 0xef, 0xdf, 0x55, 0x1f, 0xdd, 0x48, 0xdd, 0xf, 0x78, 0xdf, 0x9e, 0x40, 0xfd, 0xf9, 0x36, 0x49, 0xa5, 0x6, 0xa0, 0xba, 0x67, 0x14, 0xfa, 0xef, 0x76, 0x1e, 0x7a, 0x90, 0x3, 0x81, 0xda, 0xdd, 0x1b, 0xa4, 0xd7, 0x3b, 0x94, 0x8b, 0x8d, 0x14, 0x51, 0x7a, 0x72, 0x4f, 0x57, 0x84, 0xa0, 0x86, 0x43, 0xdf, 0x89, 0xf1, 0x3f, 0x9e, 0x34, 0x7b, 0x66, 0xe1, 0xb3, 0xfa, 0x15, 0x94, 0x69, 0x75, 0x1d, 0xa4, 0x56, 0x19, 0x6b, 0xbc, 0x86, 0xc9, 0x9b, 0x3, 0x8d, 0x28, 0x96, 0x9f, 0xb6, 0xc6, 0x2e, 0x59, 0xbb, 0x7, 0xf7, 0x3, 0x94, 0xd, 0xe4, 0x1f, 0x7e, 0xef, 0x90, 0x24, 0xe6, 0x3d, 0x4, 0x4c, 0x1, 0x2a, 0x2a, 0xe9, 0xc9, 0xf6, 0xf6, 0xf6, 0x87, 0x9c, 0xe3, 0x91, 0xa0, 0x9d, 0xe9, 0x9c, 0x5f, 0xbf, 0x3f, 0xe9, 0x5c, 0xca, 0xa5, 0xa1, 0x5f, 0x95, 0x91, 0xf7, 0xdc, 0x7b, 0x1c, 0xcd, 0x2d, 0xe5, 0xf4, 0x4b, 0xe5, 0xfd, 0xd6, 0x78, 0x62, 0x27, 0x7a, 0x88, 0x54, 0xcb, 0x95, 0x62, 0xf8, 0x7e, 0xe5, 0x35, 0x6b, 0x2e, - 0xc6, 0xae, 0xf9, 0xd4, 0xde, 0x84, 0x33, 0xc2, 0x75, 0x47, 0xac, 0x78, 0x11, 0x76, 0xc6, 0x69, 0xed, 0xc8, 0xdb, 0x68, 0x5d, 0xbf, 0x55, 0x7b, 0x8e, 0xb8, 0x13, 0x48, 0x72, 0xad, 0xc1, 0x7c, 0x76, 0x5e, 0x77, 0xc3, 0xad, 0x4b, 0x86, 0x33, 0xce, 0x6d, 0x66, 0xf3, 0x9b, 0x8b, 0x50, 0xa1, 0xbb, 0xd, 0x67, 0x42, 0x88, 0xf3, 0x76, 0x7b, 0x4d, 0xb7, 0x4e, 0x7f, 0xe1, 0x59, 0xf3, 0xfe, 0xfd, 0x5, 0x2d, 0xe1, 0xdb, 0xbe, 0x1a, 0x7b, 0x2f, 0xa0, 0xd9, 0x2e, 0x1, 0x89, 0x91, 0xba, 0xf6, 0x95, 0xf0, 0x17, 0xa0, 0x90, 0x7d, 0x83, 0x48, 0x64, 0x98, 0x7e, 0xba, 0x90, 0x4a, 0x91, 0x93, 0xc6, 0x6b, 0x83, 0xe1, 0xed, 0xdf, 0x3, 0x3e, 0x76, 0x47, 0x51, 0x8a, 0x2e, 0x4d, 0x87, 0x5f, 0x55, 0x47, 0x8e, 0x2e, 0xeb, 0x2, 0xb5, 0xfd, 0xdd, 0xf4, 0x1e, 0xac, 0xfd, 0xec, 0xdf, 0xe2, 0x6a, 0xa9, 0x73, 0x25, 0x75, 0x72, 0x73, 0x88, 0x3a, 0x1a, 0xfb, 0x87, 0x51, 0x3c, 0x88, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0x8d, 0x85, 0xae, 0x22, 0x5e, 0xab, 0xf9, 0x4a, 0x53, 0xad, 0xa2, 0x8b, 0x76, 0xaa, 0x53, 0x83, 0x50, 0x2f, 0x6f, 0x3, 0x70, 0x6c, 0x79, 0x1, 0x8e, 0xea, 0x9e, 0x67, 0xfd, 0x73, 0x10, 0x3d, 0xe3, 0xe2, 0x3, 0x6b, 0x5e, 0xb8, 0x6, 0xf2, 0xb9, 0x44, 0x2c, 0x85, 0xe4, 0x22, 0x15, 0x94, 0x9f, 0xae, 0xbe, 0x4c, 0xfb, 0xca, 0x34, 0x93, 0x3b, 0x4f, 0xdc, 0xb2, 0x65, 0x8b, 0x94, 0xf9, 0xfd, 0x23, 0x4a, 0x29, 0xff, 0xe9, 0x7f, 0x9a, 0xc, 0xc1, 0xa7, 0x57, 0x51, 0xf6, 0x93, 0x98, 0xff, 0x71, 0x1b, 0x3d, 0xa3, - 0x71, 0x6c, 0x52, 0xa0, 0x7b, 0xd6, 0x26, 0x1c, 0xdf, 0xf, 0x10, 0x33, 0xde, 0xf8, 0x4f, 0xbe, 0x34, 0x27, 0xef, 0xbd, 0x4a, 0x36, 0x78, 0xf0, 0x14, 0xe6, 0x34, 0xde, 0x50, 0x39, 0x4c, 0x5f, 0x8f, 0x35, 0x4d, 0xf9, 0xed, 0x3d, 0x6b, 0xfc, 0x3e, 0x22, 0x5a, 0xf3, 0xac, 0x72, 0xe, 0x59, 0x9c, 0x6a, 0xfe, 0xeb, 0x3, 0x87, 0xa5, 0x51, 0xe0, 0x3f, 0x7d, 0xd1, 0x33, 0x2c, 0x97, 0xb7, 0x60, 0xe7, 0x0, 0xf, 0x3f, 0xf1, 0x6b, 0x18, 0xb9, 0x4a, 0xc0, 0x3e, 0x2f, 0x8, 0xd7, 0xe1, 0xf8, 0x78, 0x82, 0xfe, 0xea, 0xfb, 0x15, 0x37, 0xda, 0xf9, 0x7a, 0xff, 0x77, 0x7d, 0xd6, 0x44, 0xbd, 0xbd, 0x93, 0xe7, 0x4b, 0x4e, 0x37, 0x7e, 0x4b, 0x6b, 0x27, 0xb2, 0xf1, 0xe, 0xf8, 0x67, 0x38, 0xc0, 0x57, 0xcc, 0x64, 0xf8, 0xf1, 0x92, 0x89, 0x85, 0xc4, 0x6d, 0x4a, 0x87, 0xe1, 0x48, 0xbf, 0x1f, 0x22, 0x87, 0x4b, 0xed, 0xf6, 0xeb, 0x1f, 0x78, 0x7f, 0x43, 0xe9, 0x79, 0xf5, 0x17, 0x23, 0x38, 0x95, 0x47, 0x5, 0x8c, 0x55, 0xe8, 0xfd, 0x4, 0xd6, 0xb2, 0x78, 0x94, 0x6a, 0xfb, 0xec, 0x63, 0xa6, 0xe4, 0xf6, 0x6e, 0xff, 0x24, 0xf2, 0x74, 0x7b, 0x6e, 0x49, 0xdf, 0x5f, 0x51, 0x56, 0xb3, 0xad, 0x9, 0x13, 0x94, 0x6, 0x51, 0xf5, 0x80, 0x27, 0xe8, 0x45, 0xf8, 0xfd, 0xba, 0x84, 0x93, 0xed, 0xb8, 0xc7, 0x36, 0x7, 0x36, 0x8c, 0x31, 0x8f, 0x9f, 0xac, 0x79, 0x33, 0x44, 0xdb, 0x5b, 0x49, 0xad, 0xff, 0xb2, 0x75, 0xc, 0x7, 0xc7, 0xaf, 0x6a, 0xc8, 0xbf, 0xaf, 0x42, 0x45, 0x30, 0x97, 0xa, 0xa0, 0x67, 0x87, 0xcb, 0xff, 0x91, 0xd2, 0xe1, 0x23, 0x45, 0xf0, 0x6f, - 0xab, 0xd4, 0xdb, 0xa6, 0xf8, 0x69, 0x29, 0xf4, 0xd7, 0xe4, 0x52, 0xab, 0xc9, 0x36, 0x60, 0x3a, 0x49, 0xb2, 0x5e, 0x5c, 0xea, 0x9b, 0x43, 0x35, 0xb1, 0xd3, 0x8e, 0x21, 0x8e, 0x1f, 0xbb, 0xc2, 0x3b, 0xbd, 0x12, 0xfb, 0x4, 0xd5, 0xe6, 0xbf, 0xbb, 0x2b, 0x76, 0x8e, 0x35, 0x5e, 0x1f, 0x84, 0x9f, 0xac, 0x53, 0xf9, 0x17, 0xfb, 0x6b, 0xfc, 0xc8, 0x68, 0xe2, 0xb7, 0xb4, 0x52, 0xe7, 0x82, 0x36, 0x7e, 0x6c, 0xff, 0x76, 0xf2, 0x37, 0xf6, 0x6f, 0x3f, 0xe3, 0xf1, 0x13, 0xf8, 0xe4, 0xc9, 0xf2, 0xef, 0x24, 0xf9, 0xdd, 0xf9, 0xf8, 0x1b, 0x39, 0xa7, 0x12, 0x3f, 0x79, 0x22, 0x99, 0xf8, 0x29, 0x8c, 0xd7, 0xd4, 0xb5, 0x53, 0xfe, 0x72, 0x3d, 0x63, 0xcd, 0x60, 0xe, 0xca, 0x3f, 0xe4, 0x9d, 0x90, 0x7f, 0x97, 0x9f, 0x34, 0x7f, 0xd9, 0xf5, 0xc8, 0xc3, 0x7, 0x9a, 0x7d, 0x33, 0xf1, 0xb4, 0x28, 0x47, 0x44, 0x7a, 0x70, 0xc6, 0x73, 0x25, 0x68, 0x52, 0xb, 0x80, 0x6a, 0x7d, 0x32, 0x76, 0x6b, 0x62, 0x1f, 0x51, 0x23, 0xd4, 0x5e, 0xfa, 0xda, 0x49, 0xf2, 0xef, 0xb4, 0xdb, 0xd7, 0x2b, 0xba, 0x4, 0xf0, 0x45, 0xf2, 0x1, 0xae, 0x73, 0xb2, 0xe1, 0x46, 0x10, 0x2c, 0x1e, 0x6f, 0x12, 0x30, 0xd, 0xb0, 0xe3, 0xc9, 0xd3, 0x7d, 0xbf, 0xc9, 0xbc, 0x86, 0xda, 0xc2, 0x7e, 0x26, 0xf3, 0x45, 0x1f, 0xd2, 0xeb, 0x9b, 0xf0, 0xd1, 0x22, 0xf2, 0xbc, 0x18, 0xb5, 0xb8, 0xcf, 0x1f, 0x8, 0x58, 0xfc, 0xa7, 0x9e, 0xc4, 0x7f, 0x4b, 0x95, 0x12, 0xc8, 0xf7, 0x71, 0xf6, 0x86, 0xb0, 0x9c, 0x20, 0x84, 0x9a, 0x34, 0x74, 0xcd, 0x7a, 0xff, 0x92, 0xd6, 0x36, 0x12, 0xf4, 0xc8, 0x7f, - 0xa9, 0xb8, 0x84, 0xc7, 0xeb, 0xc, 0xaf, 0x20, 0xfd, 0x9f, 0x63, 0xcd, 0xaf, 0x9f, 0xd8, 0x2f, 0x90, 0xda, 0x41, 0xa7, 0x7d, 0x7e, 0x24, 0xf4, 0xf6, 0x8f, 0xa1, 0xed, 0x4b, 0x4, 0x20, 0x6e, 0xd9, 0x6d, 0x36, 0x3, 0x55, 0xf1, 0x1a, 0xf8, 0x6, 0x5b, 0x93, 0xc8, 0xfc, 0xfc, 0xf4, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x2, 0x7d, 0x5c, 0xf4, 0x35, 0xb5, 0x7f, 0x98, 0xe3, 0x72, 0xf6, 0x1a, 0x8, 0x14, 0x54, 0xc9, 0x7b, 0xc1, 0x2, 0xd6, 0xad, 0xea, 0x9, 0xc4, 0xc7, 0xba, 0x7f, 0xa6, 0xa3, 0xbd, 0x6f, 0x4b, 0x98, 0x10, 0xa4, 0x3e, 0x15, 0xb8, 0xaf, 0x44, 0x57, 0x8, 0x8, 0xaf, 0xbf, 0x3c, 0xf8, 0x3e, 0x65, 0x3d, 0x5f, 0x22, 0x91, 0xa0, 0xea, 0x2d, 0xe3, 0xfa, 0x8d, 0xda, 0xc3, 0xf, 0x4e, 0xa6, 0x1c, 0x3b, 0x58, 0x2c, 0x7f, 0x5, 0xe8, 0x69, 0x5c, 0x2d, 0x75, 0x13, 0xce, 0x40, 0x78, 0xfa, 0x11, 0xfd, 0xd3, 0x1, 0x3d, 0x65, 0xc3, 0x18, 0x7a, 0x53, 0xfd, 0x5d, 0xb1, 0x5f, 0x5, 0x34, 0x99, 0x59, 0xd3, 0xa5, 0x44, 0x8d, 0x8e, 0x35, 0x5e, 0x43, 0x69, 0x47, 0xe1, 0x7c, 0x4, 0x85, 0x7a, 0xf0, 0x55, 0xf7, 0xec, 0xf7, 0x51, 0xf9, 0x15, 0x7e, 0xb4, 0xa, 0xdf, 0x53, 0x81, 0x2b, 0x54, 0x2b, 0x9c, 0x3c, 0x6d, 0x7f, 0x9c, 0x2f, 0x4f, 0xa5, 0xdc, 0x33, 0xd5, 0xa2, 0x5c, 0xea, 0xa9, 0xc8, 0x3f, 0x1, 0x8a, 0x7c, 0x98, 0x1b, 0x10, 0x7e, 0x21, 0x98, 0x82, 0xc9, 0x4d, 0xbc, 0xf7, 0x6, 0x8d, 0xa4, 0xf6, 0xb2, 0xc0, 0xf9, 0x1c, 0x42, 0xcf, 0x5c, 0x85, 0x95, 0xf4, 0x23, 0x1b, 0x4f, 0x85, 0xcf, 0xef, 0xa7, 0xfe, 0xdb, 0x22, 0xea, - 0x2f, 0x6, 0xd0, 0x6f, 0xc5, 0xc0, 0x4, 0x86, 0xc9, 0xdf, 0x1c, 0xdc, 0x75, 0xfc, 0x61, 0x88, 0xf2, 0x69, 0x1f, 0x9f, 0xe, 0x35, 0x2d, 0x85, 0xc2, 0x1d, 0xe6, 0x50, 0x74, 0x7f, 0xcf, 0x6b, 0xca, 0xe8, 0xc7, 0x93, 0x59, 0xf6, 0x5f, 0x9, 0x4f, 0x8d, 0x3f, 0xb4, 0x82, 0x2c, 0x44, 0x3a, 0xfb, 0x65, 0xac, 0xf9, 0x2b, 0xad, 0xfc, 0xdf, 0xe5, 0x60, 0x9b, 0x9d, 0x9e, 0xb3, 0x97, 0x88, 0xbf, 0x27, 0x39, 0xac, 0x3f, 0x39, 0xde, 0xe1, 0x76, 0x5d, 0x53, 0xeb, 0x5c, 0xa7, 0x97, 0x31, 0xc3, 0x3f, 0xdd, 0xf7, 0xe7, 0x6e, 0x9c, 0x62, 0x39, 0x7, 0xb9, 0xe8, 0x2d, 0xc0, 0x23, 0x5c, 0xda, 0xf8, 0x64, 0xaa, 0x6d, 0x16, 0x31, 0xe4, 0x6e, 0x80, 0xf1, 0x9, 0x98, 0x12, 0x42, 0x5f, 0x88, 0x82, 0x5e, 0xdf, 0x5e, 0x12, 0x62, 0x44, 0x87, 0xc5, 0x17, 0x5c, 0x1d, 0x3d, 0xf, 0xba, 0xc0, 0x66, 0xea, 0x64, 0xa2, 0xbe, 0xb2, 0xfa, 0x49, 0xb6, 0x1f, 0x2, 0xfa, 0x39, 0x24, 0x5, 0x26, 0x3d, 0x8d, 0x0, 0x1b, 0x6f, 0xd, 0x75, 0xd8, 0xb5, 0x75, 0xe7, 0xf0, 0xf1, 0x81, 0x51, 0xb7, 0x5f, 0xb6, 0x9, 0xe8, 0x28, 0x3e, 0xa8, 0xde, 0x1e, 0x29, 0x8b, 0xb2, 0x5, 0x46, 0xa5, 0xd3, 0x3, 0x68, 0x89, 0x76, 0x37, 0x12, 0xc9, 0x20, 0xcc, 0x32, 0x39, 0x15, 0xfd, 0xab, 0x70, 0x1f, 0x42, 0xff, 0xde, 0xf6, 0x6d, 0xe8, 0xbd, 0x47, 0x3, 0x7e, 0x6b, 0xff, 0x3f, 0xdf, 0x64, 0xef, 0x6d, 0x17, 0xc3, 0x8, 0xda, 0x67, 0x35, 0xa2, 0x26, 0xc3, 0x2f, 0x3d, 0x8e, 0x35, 0x1, 0xdd, 0xb6, 0x89, 0x38, 0x4e, 0x60, 0xe3, 0x2f, 0xcf, 0xe1, 0x2f, 0xfc, 0x7e, 0xe7, 0x67, 0x4b, - 0x9c, 0xcf, 0x3a, 0x93, 0x54, 0xff, 0x26, 0x4e, 0xd6, 0xbf, 0x2b, 0xe4, 0x2, 0x58, 0x1, 0xc8, 0xac, 0xf8, 0x46, 0x1e, 0x5f, 0x3e, 0x72, 0xfb, 0xf, 0x87, 0x39, 0x1d, 0x7b, 0x83, 0x73, 0xa, 0x3a, 0x4b, 0x4e, 0xc1, 0xfe, 0xb, 0xbf, 0x7b, 0x3b, 0xf5, 0xfd, 0x97, 0x49, 0xd1, 0x4, 0x55, 0x36, 0xa7, 0xc0, 0xaf, 0x43, 0xfd, 0xdf, 0x9a, 0x17, 0xa6, 0xa1, 0xda, 0x9e, 0x3b, 0x70, 0x10, 0x74, 0xe1, 0xf2, 0x62, 0x1e, 0xae, 0x94, 0x41, 0xf7, 0xe4, 0x3, 0xf, 0xef, 0xe, 0xe7, 0x50, 0x3b, 0x0, 0x27, 0xf6, 0x8b, 0x63, 0xe3, 0x37, 0x38, 0x8c, 0x85, 0x28, 0xa1, 0x7f, 0x6e, 0x14, 0x1e, 0x95, 0x3f, 0x7, 0x5d, 0xff, 0x53, 0xca, 0x0, 0x3a, 0xfd, 0xeb, 0x69, 0x9a, 0x93, 0x9f, 0xd2, 0xf9, 0x89, 0x32, 0xba, 0xbb, 0xf3, 0xc0, 0x25, 0x7b, 0xd8, 0xf8, 0xb, 0xf9, 0x4a, 0xc9, 0x61, 0xee, 0xfc, 0xd1, 0x1a, 0x7f, 0x39, 0xb8, 0x59, 0x6f, 0xa5, 0x58, 0x59, 0xe3, 0x2f, 0x1d, 0x5c, 0x41, 0xf8, 0x91, 0x75, 0xf4, 0xf8, 0xc7, 0xa8, 0x6f, 0x41, 0xdf, 0x5c, 0xfe, 0x61, 0xfb, 0x95, 0x1d, 0x1f, 0xdf, 0x5, 0x2e, 0x39, 0x43, 0xc7, 0x5f, 0x86, 0xf2, 0xdf, 0x5b, 0x36, 0xff, 0xf9, 0x4e, 0x99, 0xff, 0x4c, 0xd4, 0x8b, 0x99, 0xe2, 0x3f, 0xc7, 0xd1, 0x16, 0x98, 0x6d, 0xdc, 0x25, 0x9f, 0x7f, 0x9e, 0x1e, 0xe8, 0xf9, 0xcb, 0x97, 0x9a, 0x36, 0x5e, 0xb, 0x9f, 0x57, 0x35, 0xbe, 0x87, 0xd9, 0x44, 0xa5, 0x72, 0xae, 0xc9, 0xf4, 0xc0, 0xb3, 0xc6, 0xc1, 0xa3, 0xa7, 0x96, 0xcd, 0x51, 0xf7, 0xd9, 0xf1, 0x1f, 0x7e, 0xe2, 0x8e, 0x33, 0x69, 0x23, 0x9f, 0xf6, 0x78, 0x4a, - 0x8b, 0xff, 0xa6, 0x59, 0xfc, 0xe7, 0x60, 0xfc, 0x57, 0xba, 0xfc, 0x32, 0xb4, 0x98, 0xbb, 0x2b, 0xa9, 0x73, 0x54, 0x56, 0x2b, 0xee, 0xc9, 0xfc, 0xfc, 0xc7, 0xbb, 0x9b, 0x31, 0x40, 0xed, 0xcb, 0x4b, 0x5d, 0x8e, 0xf3, 0x1e, 0xd0, 0x94, 0xe2, 0x79, 0x54, 0xfe, 0x7b, 0x1c, 0x8, 0x2d, 0x79, 0x10, 0xae, 0xe, 0xe3, 0x13, 0x7a, 0xe9, 0xf4, 0x96, 0x54, 0x44, 0x91, 0xaf, 0x52, 0xad, 0x45, 0xcf, 0xda, 0x1d, 0x3c, 0x1c, 0x11, 0x13, 0x52, 0x69, 0x22, 0xfe, 0x8b, 0x3f, 0xec, 0x1e, 0xf5, 0xf5, 0x49, 0x1f, 0xda, 0x7e, 0x9e, 0x39, 0x5, 0xf1, 0xe0, 0x4a, 0x4e, 0xed, 0x53, 0xba, 0xa2, 0xf4, 0xf9, 0x96, 0xfe, 0x4c, 0xa0, 0x66, 0x96, 0x61, 0x59, 0xb8, 0xad, 0x2b, 0x32, 0x1f, 0xef, 0xe4, 0x7d, 0x69, 0x9a, 0x21, 0x7, 0x5, 0xdb, 0xe2, 0xeb, 0x20, 0xea, 0xd0, 0xf5, 0xab, 0x6b, 0x8b, 0xfd, 0x83, 0xfa, 0x54, 0x5f, 0xfc, 0xd3, 0x12, 0x77, 0x8d, 0x20, 0xf7, 0x73, 0x3d, 0x11, 0x74, 0x53, 0x5f, 0xb7, 0xac, 0x56, 0x3d, 0xe3, 0xe2, 0xaf, 0xc2, 0xaf, 0x4e, 0xd5, 0x5f, 0x6e, 0xac, 0x37, 0x58, 0x70, 0x71, 0xc5, 0xa7, 0x80, 0x66, 0xf9, 0x2b, 0xc6, 0x91, 0x40, 0x2c, 0x40, 0x68, 0x59, 0xb7, 0xf3, 0x14, 0xd6, 0x4f, 0xb, 0x28, 0xc0, 0x60, 0x39, 0x85, 0xf1, 0x3, 0xaa, 0x3f, 0xdf, 0xe3, 0xd8, 0x58, 0x3d, 0x6f, 0x9b, 0x7d, 0x53, 0xe5, 0x3f, 0xa0, 0x61, 0xea, 0xe0, 0xf, 0x44, 0xfc, 0xe1, 0x95, 0xe3, 0x10, 0x13, 0xf4, 0xe9, 0x36, 0x6d, 0x18, 0xf3, 0x6, 0xc7, 0x13, 0xe, 0xd8, 0xff, 0xc6, 0x1a, 0xaf, 0xe1, 0xf2, 0x8, 0xdd, 0x71, 0x2e, 0xce, 0x99, 0x7c, - 0xd2, 0x62, 0x83, 0xe9, 0xe6, 0xc, 0xc8, 0xc7, 0x2, 0x49, 0xa1, 0xbb, 0x7c, 0x6e, 0x48, 0x4c, 0x3f, 0x7e, 0x55, 0x85, 0xd4, 0x7a, 0x67, 0x9b, 0x65, 0xd3, 0xdb, 0x3b, 0xd1, 0xa5, 0x50, 0x69, 0x17, 0xed, 0x43, 0x19, 0x11, 0x15, 0xa8, 0x2c, 0x7e, 0xdc, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x6b, 0xf3, 0x67, 0xe8, 0x8f, 0x24, 0xdf, 0x68, 0xda, 0xa8, 0xe8, 0x7c, 0x8, 0xe3, 0x5f, 0x8c, 0x80, 0x27, 0x50, 0xf0, 0x6a, 0xb2, 0x8e, 0x4c, 0xe6, 0xed, 0x41, 0xea, 0xa0, 0xc1, 0x57, 0x8d, 0x35, 0x7e, 0x54, 0x7f, 0x1c, 0xe6, 0x4a, 0x51, 0x16, 0xa1, 0x2f, 0x2c, 0x92, 0xbe, 0xe6, 0xc2, 0x10, 0xa0, 0x12, 0xb1, 0xd1, 0xfa, 0x37, 0x1a, 0xfb, 0x27, 0xa2, 0x5b, 0xb2, 0xe6, 0xda, 0x5a, 0xd8, 0x12, 0x6d, 0xae, 0x69, 0x47, 0xc, 0xfa, 0x5b, 0xbf, 0xb7, 0xec, 0xf, 0x9d, 0x3e, 0x4, 0xc7, 0x33, 0xd, 0x40, 0xbd, 0x4b, 0xe3, 0xad, 0x31, 0xe9, 0xfb, 0xf6, 0xaf, 0x28, 0x9e, 0x85, 0x5e, 0x3d, 0xa0, 0xdf, 0xa, 0x3f, 0x76, 0xa, 0x2d, 0x19, 0xb7, 0x7, 0x46, 0x8c, 0xdf, 0x9b, 0x2a, 0x35, 0xfe, 0xc3, 0x2a, 0xc3, 0xaf, 0x4c, 0x7, 0xd8, 0xfe, 0xb2, 0x51, 0x8a, 0x9b, 0xb1, 0xd6, 0xae, 0x91, 0x96, 0xff, 0x7c, 0xcb, 0xe0, 0x58, 0x86, 0x3c, 0x93, 0x6b, 0x41, 0xe1, 0x29, 0xc4, 0x4b, 0xb3, 0xf9, 0xb4, 0x9b, 0xc5, 0x98, 0x8b, 0xaa, 0x5a, 0x6a, 0x6d, 0xb7, 0x70, 0xe1, 0x39, 0x25, 0x41, 0xf3, 0xf6, 0x4b, 0x39, 0x7b, 0xfd, 0x88, 0x20, 0x5c, 0xbb, 0x63, 0xd, 0xed, 0xd7, 0x29, 0x73, 0xee, 0xd9, 0x83, 0xbb, 0x58, 0xfd, 0xcb, - 0x12, 0x3f, 0x6e, 0xfb, 0xc7, 0x1b, 0x7c, 0x89, 0x3b, 0x84, 0x77, 0xb8, 0xd, 0xcc, 0x3e, 0x8d, 0x5, 0xb4, 0x3a, 0xcc, 0xc7, 0x1c, 0xe1, 0x93, 0x5c, 0x95, 0xcf, 0xd, 0xea, 0x50, 0xdb, 0xf5, 0x1b, 0xf1, 0xea, 0xe9, 0xc7, 0xcf, 0x83, 0x5, 0xc5, 0xb5, 0x98, 0x8d, 0x24, 0x51, 0x83, 0x40, 0x5d, 0x7b, 0x3e, 0x1c, 0x1d, 0x78, 0x4a, 0x2f, 0x89, 0x73, 0x77, 0x22, 0x34, 0x1a, 0xfc, 0xc7, 0x13, 0x29, 0x2e, 0x34, 0x5a, 0x33, 0xce, 0x25, 0x68, 0x18, 0x37, 0x8b, 0x24, 0x2, 0x9a, 0x4b, 0xcf, 0xb7, 0x2a, 0x28, 0xe1, 0xeb, 0x6f, 0xd1, 0x2f, 0x0, 0x89, 0xdb, 0x70, 0x4a, 0x45, 0xe1, 0x5f, 0xcc, 0x0, 0x66, 0xbd, 0xed, 0xde, 0xe4, 0x57, 0xa3, 0x89, 0x84, 0x3e, 0x6c, 0x7c, 0x2f, 0xb5, 0xfe, 0xdd, 0x2e, 0xe2, 0xe9, 0xcf, 0x17, 0xb2, 0x22, 0x7a, 0x25, 0x8a, 0x90, 0xd7, 0xc2, 0xe1, 0x47, 0x88, 0x49, 0xa8, 0xb3, 0xfb, 0x33, 0xb5, 0x7, 0xd9, 0xbf, 0x51, 0xea, 0xbf, 0x1c, 0x8e, 0xf7, 0x60, 0xfe, 0x8f, 0x66, 0x39, 0x8, 0xdb, 0x7c, 0xd0, 0x80, 0x30, 0xc3, 0xa3, 0xa3, 0x69, 0xc7, 0x56, 0xe8, 0xe3, 0x63, 0x8c, 0x1, 0x29, 0x4f, 0xa, 0x91, 0x2a, 0xe5, 0xe3, 0x6c, 0x36, 0xf8, 0x6, 0xda, 0xd9, 0x5b, 0x32, 0xb1, 0x5e, 0x28, 0xe3, 0xf6, 0x9f, 0x67, 0x7e, 0xcc, 0x69, 0xf0, 0xd7, 0x52, 0x62, 0xf, 0x4b, 0x61, 0x22, 0x2f, 0x9f, 0xa5, 0xf3, 0xe, 0xc4, 0xdb, 0xdc, 0xb, 0xf, 0xc, 0xb4, 0xe4, 0x66, 0x3e, 0xfe, 0x79, 0xc9, 0x78, 0xfc, 0x4e, 0x25, 0x6a, 0x5f, 0x44, 0xcc, 0xd3, 0xe9, 0x11, 0xef, 0x9c, 0xd9, 0x14, 0x18, 0x7b, 0xbc, 0xaf, 0x7e, 0xf9, - 0xae, 0xee, 0xb5, 0xb2, 0x1b, 0xb5, 0x6e, 0xbb, 0xb6, 0xfe, 0x6a, 0xeb, 0xb4, 0xf0, 0x8f, 0xc6, 0xe9, 0x79, 0xba, 0xf8, 0x27, 0xb6, 0x9e, 0x46, 0xd7, 0x8d, 0x61, 0xe3, 0x7f, 0x94, 0xff, 0x14, 0x9c, 0x28, 0xa3, 0x3e, 0x1f, 0x37, 0x5d, 0x91, 0x12, 0x47, 0x38, 0x1e, 0xc5, 0xfe, 0x7, 0x99, 0x89, 0x42, 0xa6, 0xd5, 0x7f, 0x1b, 0xda, 0x9c, 0x77, 0x2, 0x54, 0xe8, 0x74, 0x88, 0x64, 0x2e, 0x8b, 0x1f, 0x72, 0x9d, 0xdc, 0x9e, 0xaa, 0xe, 0x5, 0x62, 0x15, 0x55, 0x77, 0xbd, 0x28, 0x67, 0x7, 0x46, 0x7a, 0xfd, 0x49, 0xbc, 0x65, 0x8f, 0xdc, 0xbd, 0xa, 0xf6, 0xcb, 0x4, 0x3e, 0x65, 0x9f, 0xe8, 0x2b, 0xa9, 0xf1, 0x39, 0x3c, 0xfe, 0x39, 0xe3, 0xf6, 0xfb, 0xd1, 0x35, 0x2c, 0x30, 0xe, 0x4c, 0x3d, 0x99, 0x1b, 0xa3, 0x6a, 0xe8, 0x67, 0xbf, 0x4c, 0x9c, 0x97, 0x12, 0xb7, 0xd4, 0xe1, 0x49, 0xab, 0x9f, 0x58, 0x3c, 0x8b, 0x61, 0x49, 0x8c, 0x77, 0xac, 0x79, 0x3, 0x2b, 0x5f, 0x9, 0x95, 0x45, 0xd4, 0x6b, 0xe2, 0xc, 0xfa, 0x21, 0xcc, 0xe1, 0xc1, 0xf, 0x33, 0x9f, 0xfb, 0xa1, 0xed, 0xcd, 0xfc, 0x4, 0xb4, 0x9c, 0xe5, 0x83, 0x2d, 0x1e, 0xe6, 0x4f, 0x5c, 0xbd, 0x63, 0x1b, 0xb0, 0x23, 0x11, 0x40, 0x87, 0x65, 0xe2, 0x48, 0xac, 0x7d, 0x9, 0x81, 0xb8, 0x69, 0x13, 0x9f, 0xa6, 0x7d, 0x78, 0x98, 0x7f, 0x96, 0x5a, 0x5f, 0x48, 0x6, 0x1f, 0xf8, 0x87, 0x6e, 0xf, 0x87, 0x9b, 0x4e, 0x9a, 0x7f, 0xe2, 0x9a, 0xa2, 0xf3, 0xd9, 0x78, 0xdc, 0x22, 0x36, 0x98, 0xd3, 0xad, 0xab, 0x91, 0xa1, 0xf5, 0x8f, 0x76, 0x30, 0x76, 0x57, 0xae, 0xbb, 0xb3, 0xa2, 0xcc, 0x3a, - 0xf2, 0x72, 0x74, 0x55, 0x62, 0xe0, 0xf1, 0x1a, 0x8e, 0x5a, 0x2d, 0x3c, 0xcf, 0x9, 0xf3, 0xaf, 0x1, 0x5b, 0xef, 0x9d, 0xb0, 0xfe, 0x69, 0x40, 0x6c, 0x72, 0x1f, 0xdb, 0xd7, 0x3a, 0xe8, 0x87, 0x5f, 0xcc, 0x8, 0x9e, 0xa5, 0xd6, 0x78, 0x3d, 0xef, 0x81, 0x68, 0x10, 0xf6, 0x66, 0xf3, 0xe3, 0x2a, 0x76, 0xb, 0x5f, 0x62, 0x9d, 0x78, 0xde, 0xa0, 0x3d, 0xa9, 0xd9, 0xad, 0x10, 0xf9, 0xe3, 0xf3, 0x71, 0x6c, 0xa7, 0xed, 0xe4, 0x88, 0xe5, 0x55, 0xdc, 0xc1, 0xc6, 0xb6, 0x6b, 0x19, 0x55, 0x71, 0x44, 0x14, 0x27, 0xe7, 0xb1, 0xe1, 0x6b, 0x32, 0xd9, 0xe2, 0x18, 0xe1, 0xf1, 0xf, 0xdd, 0xff, 0xdf, 0xc9, 0x9d, 0x8c, 0x22, 0xf1, 0x91, 0xca, 0xcf, 0xe8, 0xa9, 0xfd, 0x78, 0xf, 0x9d, 0x43, 0xa1, 0xdf, 0xc7, 0x85, 0xa2, 0x9a, 0xc1, 0x22, 0x3e, 0x47, 0x43, 0xff, 0x5a, 0x1f, 0xf3, 0x89, 0x94, 0x10, 0xcc, 0xf4, 0xf9, 0x62, 0x52, 0xeb, 0xd3, 0xf7, 0x40, 0xd5, 0xd8, 0xa2, 0x91, 0xb1, 0xd6, 0x17, 0x67, 0x1a, 0x7d, 0xa9, 0xc2, 0xf8, 0xda, 0xe4, 0xa0, 0x7f, 0xbb, 0x95, 0xe1, 0x74, 0xa1, 0xcd, 0x6f, 0xc1, 0xca, 0xf3, 0xde, 0xb6, 0x6a, 0xa4, 0xfb, 0xfe, 0x54, 0xa5, 0x9, 0xb4, 0xb7, 0x43, 0x1f, 0x7, 0xfd, 0xe8, 0x29, 0xd4, 0x1f, 0x29, 0x3d, 0xb7, 0xb6, 0x81, 0xf6, 0x6f, 0xca, 0x2, 0x7a, 0x9, 0x5c, 0xd4, 0x4d, 0x72, 0x14, 0x9e, 0x8f, 0x29, 0x58, 0x40, 0x2c, 0x8f, 0xa9, 0xe7, 0xb5, 0x33, 0x2e, 0x3e, 0xf1, 0x4c, 0xa7, 0x7, 0xe3, 0x25, 0x7, 0x8b, 0x63, 0x65, 0x83, 0xf1, 0x19, 0x4f, 0x82, 0x19, 0xf4, 0x89, 0x9e, 0x51, 0x78, 0x9e, 0x6c, 0xbe, 0xdb, - 0x8e, 0x3c, 0xa0, 0xbd, 0x97, 0xdf, 0x8c, 0x93, 0xc6, 0x47, 0x89, 0xb4, 0x13, 0xaa, 0xf7, 0x21, 0x17, 0xf4, 0x81, 0xdd, 0xd6, 0xe4, 0x3d, 0x91, 0x3, 0x3b, 0xc3, 0x77, 0x6c, 0xc0, 0x4, 0xf2, 0xfc, 0xac, 0xdc, 0x72, 0xbf, 0x8f, 0xfe, 0xcd, 0x18, 0x6b, 0xbc, 0x3e, 0x40, 0x1e, 0x2d, 0xfa, 0x35, 0xf7, 0x73, 0x2e, 0xce, 0x9b, 0xbc, 0x49, 0x8f, 0xbc, 0x5d, 0xdb, 0x10, 0xeb, 0x29, 0xd2, 0x98, 0x8c, 0xd2, 0x3f, 0x35, 0xa, 0xf8, 0x85, 0xdf, 0x2f, 0x4a, 0xe4, 0xc5, 0x4, 0x7e, 0x26, 0x9b, 0xfd, 0x28, 0xf2, 0x7, 0xd6, 0xca, 0xb3, 0x2c, 0xfb, 0x99, 0x15, 0xbf, 0x29, 0x14, 0x5e, 0x7b, 0x60, 0x75, 0xd0, 0xe4, 0x52, 0x88, 0x3e, 0xf6, 0xc2, 0xe3, 0x4d, 0xd1, 0xf5, 0xb8, 0x17, 0x9c, 0x52, 0xdb, 0xa6, 0x46, 0xd1, 0xa3, 0x8f, 0x39, 0x5e, 0x43, 0xe9, 0x3b, 0xdb, 0x4b, 0xa9, 0xaa, 0xeb, 0x7f, 0x61, 0xb7, 0x7d, 0x0, 0x73, 0xe5, 0x37, 0xa9, 0xf4, 0x61, 0x1, 0x15, 0xf7, 0xfa, 0xf5, 0x47, 0xb8, 0xd1, 0xe0, 0xbf, 0x6e, 0x6a, 0x29, 0x59, 0x1c, 0x18, 0x17, 0xfe, 0x6c, 0xad, 0xff, 0xad, 0x4e, 0x59, 0x9c, 0x21, 0xf3, 0x2e, 0x77, 0xd, 0x5b, 0x3f, 0x6d, 0xe7, 0x3, 0x44, 0x69, 0x44, 0x6d, 0xfd, 0xab, 0x7c, 0x8e, 0x67, 0x40, 0xbe, 0xbf, 0x74, 0xfd, 0x37, 0xf4, 0x44, 0x3f, 0x82, 0x42, 0xa2, 0x10, 0x2d, 0xb, 0xb7, 0xec, 0xd6, 0x94, 0x51, 0xef, 0xbf, 0xac, 0xbf, 0x2, 0x86, 0xd5, 0x5f, 0x95, 0x88, 0xe8, 0xfc, 0xeb, 0xfe, 0x3b, 0xc9, 0xee, 0xbf, 0xc6, 0xd6, 0x6, 0x57, 0xb9, 0xdf, 0x45, 0xcb, 0x19, 0xd7, 0x7f, 0x87, 0xf2, 0x9f, 0xe3, 0xfa, 0x6, - 0x7d, 0xa2, 0xf5, 0x49, 0xb5, 0xb8, 0x22, 0xe3, 0xfd, 0xf7, 0x8e, 0xe9, 0xb4, 0x3f, 0xe2, 0xbd, 0x25, 0x2e, 0xdf, 0x7c, 0xd5, 0xe7, 0x2a, 0xf0, 0x6e, 0x1f, 0x8f, 0x8e, 0xa0, 0x6d, 0xd2, 0xf4, 0x46, 0xee, 0x29, 0x93, 0x73, 0x4e, 0xc4, 0x3, 0x1d, 0x36, 0xdd, 0x58, 0x5b, 0x7c, 0x35, 0x1b, 0xcf, 0xa0, 0xcd, 0x49, 0x46, 0x4d, 0x43, 0xf8, 0xe2, 0x58, 0xe3, 0xf5, 0x41, 0xf2, 0x2f, 0x89, 0x8d, 0x60, 0x11, 0xf8, 0x2c, 0x7e, 0x9c, 0xf2, 0xe3, 0x22, 0xfb, 0x9c, 0x2e, 0xf7, 0x53, 0xb3, 0x3f, 0xd3, 0xd7, 0x3b, 0x9a, 0x2c, 0xd2, 0x72, 0xcf, 0x45, 0x41, 0x35, 0xcf, 0xca, 0xec, 0x23, 0xe1, 0x6, 0x1e, 0xfa, 0xee, 0x44, 0x11, 0x11, 0x21, 0xfb, 0xb, 0xa, 0x86, 0xad, 0xa7, 0xb9, 0xb9, 0xeb, 0x49, 0x68, 0xf7, 0xfd, 0x2a, 0x60, 0xd3, 0xc6, 0x99, 0xb7, 0xfe, 0x77, 0x48, 0xff, 0xd, 0x5f, 0xd7, 0x10, 0x5b, 0xc6, 0x6c, 0xe9, 0xfe, 0x3, 0x16, 0x3d, 0xea, 0xfd, 0x77, 0x3b, 0x81, 0x1a, 0x8c, 0x5a, 0x67, 0x59, 0xff, 0xb5, 0xe6, 0x77, 0x8f, 0xe9, 0x25, 0x54, 0x3a, 0xf2, 0x66, 0xdc, 0x7c, 0xb6, 0x4a, 0x9d, 0x82, 0x60, 0xa3, 0x16, 0x34, 0x3, 0x71, 0xc1, 0xe0, 0x46, 0x1e, 0x9f, 0xb6, 0x16, 0xf8, 0xcd, 0x9, 0x7f, 0xcd, 0x10, 0x96, 0x0, 0x5f, 0x1c, 0x49, 0xfc, 0xb4, 0xad, 0x7f, 0xe3, 0xc7, 0xf5, 0xaf, 0x77, 0x65, 0x3, 0xb9, 0x93, 0xdd, 0x4e, 0x23, 0x19, 0x15, 0xfc, 0x2c, 0xfd, 0x4b, 0xd5, 0xbb, 0xa5, 0x7f, 0x7d, 0xfe, 0x80, 0x94, 0x37, 0x8b, 0xb6, 0x3a, 0x80, 0x87, 0x35, 0x20, 0xf2, 0x24, 0x87, 0xb9, 0xbb, 0xae, 0xc2, 0x4c, 0x58, 0x1, 0xe3, - 0xba, 0xb, 0xfb, 0xb8, 0xba, 0x7a, 0xd5, 0x70, 0x4, 0x13, 0x3c, 0xfb, 0x8b, 0xc3, 0x78, 0x63, 0xac, 0xf9, 0x6d, 0x28, 0xdd, 0xbc, 0xab, 0x5, 0xb2, 0x3, 0x91, 0x23, 0xd4, 0xbb, 0xe4, 0x7b, 0x54, 0x29, 0x15, 0xef, 0x3e, 0x58, 0x32, 0x3e, 0x9f, 0x5f, 0xb3, 0xc6, 0xad, 0x39, 0xf5, 0xc5, 0xd6, 0x6a, 0x4b, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x9f, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xa9, 0x7f, 0x2a, 0xdb, 0x1a, 0x39, 0x9e, 0xde, 0xbf, 0x1b, 0x6b, 0xda, 0xfb, 0x84, 0x80, 0x44, 0xb0, 0xb6, 0x85, 0x85, 0xfc, 0x45, 0xb4, 0x7b, 0x46, 0x7d, 0x7c, 0xb2, 0x66, 0x1b, 0x8f, 0xb, 0xe6, 0x2b, 0x50, 0x23, 0xe8, 0xd3, 0xa5, 0xc8, 0x8f, 0x6b, 0x4, 0xea, 0xbc, 0x3d, 0x45, 0xa4, 0x3e, 0x4d, 0xdc, 0x4b, 0x24, 0x5, 0x7f, 0x15, 0xf, 0x4c, 0x79, 0x90, 0xd2, 0xb, 0xc1, 0x82, 0x87, 0xc0, 0x7, 0xd9, 0x81, 0x91, 0x5e, 0x7f, 0xc2, 0xbd, 0xdf, 0x63, 0x6c, 0x61, 0xcb, 0x53, 0xe3, 0xf3, 0x23, 0xf6, 0xb7, 0xaa, 0xa2, 0x97, 0x20, 0x1, 0xe3, 0x7c, 0xd6, 0x3b, 0x4c, 0xae, 0x3, 0x7, 0x8f, 0x50, 0x24, 0x9, 0xd5, 0x85, 0xdf, 0xe9, 0x42, 0x26, 0xda, 0x3b, 0x94, 0x66, 0xf3, 0x19, 0x6d, 0x93, 0xf4, 0xcd, 0xdc, 0x57, 0xa7, 0xea, 0xb3, 0x51, 0xc3, 0x85, 0x57, 0x2e, 0x81, 0xb9, 0x68, 0x50, 0xe5, 0xca, 0xfe, 0xd2, 0x7, 0x1a, 0xd1, 0xd2, 0x65, 0x7, 0x24, 0xec, 0x89, 0x88, 0xb3, 0x43, 0x93, 0xeb, 0xc9, 0x41, 0x69, 0x19, 0x36, 0xf7, 0x4, 0x5c, 0x2e, 0x47, 0xcf, 0x19, 0x97, 0xff, 0x25, 0x85, 0xdf, 0x79, 0x83, 0xf8, 0x8d, 0xf6, 0xf5, 0xe6, - 0xd5, 0xab, 0x31, 0x36, 0xdd, 0xfb, 0x9, 0xe0, 0x62, 0xf6, 0x3a, 0x54, 0xfe, 0x8d, 0x35, 0x1e, 0x1f, 0xba, 0xff, 0x5e, 0x51, 0x44, 0x65, 0xf5, 0xbe, 0x73, 0x7, 0x43, 0x40, 0x4b, 0x73, 0xf0, 0xc7, 0xca, 0x6, 0x29, 0x99, 0x22, 0xd3, 0xde, 0x4f, 0xe8, 0x21, 0x5, 0x88, 0xed, 0xb, 0x20, 0x50, 0x7e, 0x4a, 0xf6, 0x22, 0xd5, 0x1f, 0xba, 0x1c, 0xe3, 0xd1, 0x99, 0xd2, 0x1f, 0x4d, 0xbb, 0x98, 0xb9, 0x14, 0x61, 0x32, 0x37, 0x88, 0xbd, 0x44, 0xad, 0x6b, 0x9f, 0x8e, 0x90, 0x66, 0xd7, 0x8e, 0xf3, 0x9, 0xc1, 0xb1, 0x79, 0x3, 0x36, 0x21, 0xc7, 0x28, 0xcf, 0x71, 0x54, 0x7a, 0x1c, 0xab, 0x9f, 0xae, 0xda, 0xb8, 0x9, 0x89, 0x9c, 0x68, 0xc2, 0xd2, 0x78, 0x30, 0xef, 0x67, 0xfa, 0x86, 0x36, 0x56, 0x66, 0xfa, 0xe6, 0x3c, 0x9c, 0xfe, 0xf9, 0xcd, 0xa1, 0xf8, 0x7d, 0x58, 0x3c, 0xfe, 0xf, 0xfa, 0xf7, 0x6f, 0xe2, 0x37, 0x4f, 0x66, 0xab, 0x90, 0x99, 0x3d, 0x4d, 0x24, 0xe8, 0xab, 0x30, 0x14, 0xaf, 0xb1, 0xe6, 0xb7, 0xa1, 0xf4, 0x50, 0xff, 0xa3, 0x49, 0x91, 0x10, 0x23, 0xf4, 0x8e, 0x92, 0x9a, 0x38, 0x1a, 0xf8, 0xa5, 0xf3, 0x7f, 0x59, 0xfe, 0x21, 0x79, 0x70, 0x9, 0x5c, 0xcf, 0x9c, 0x43, 0x6c, 0xbe, 0xce, 0xe4, 0x1b, 0xd1, 0xc8, 0x62, 0xb6, 0x9c, 0x64, 0x58, 0xbe, 0xa7, 0xb1, 0xa6, 0x6b, 0x96, 0x14, 0x51, 0x7b, 0x21, 0x2a, 0x4d, 0x4e, 0xe1, 0xc7, 0xfc, 0xb7, 0x71, 0xd6, 0xa7, 0xd1, 0xf1, 0xdf, 0xa8, 0xfe, 0x78, 0x87, 0x9b, 0x23, 0x24, 0x10, 0xb, 0x60, 0x6e, 0x6c, 0x1f, 0xe7, 0x38, 0xba, 0x6, 0xfe, 0x5f, 0x5e, 0x6, 0xfd, 0x6e, 0x57, 0x8f, - 0xb2, 0xf7, 0x90, 0xc2, 0xf2, 0x97, 0x6c, 0xc2, 0xbb, 0xc7, 0xf3, 0x97, 0x54, 0x45, 0xd7, 0x1b, 0xb2, 0x2e, 0x97, 0x1b, 0x12, 0xe5, 0x3e, 0x18, 0xd7, 0x8c, 0xf4, 0xfa, 0x52, 0xfb, 0x7f, 0xa1, 0x72, 0x70, 0x75, 0x2f, 0x66, 0x8f, 0xf8, 0xfe, 0x3e, 0x60, 0xfc, 0x2f, 0x71, 0x8b, 0x3d, 0x9f, 0x78, 0x5a, 0xc6, 0xff, 0x86, 0x8d, 0x1f, 0x34, 0x6f, 0x82, 0x92, 0xdc, 0x2d, 0x5, 0x78, 0xa3, 0x83, 0x70, 0xf3, 0x76, 0x86, 0x9b, 0x37, 0x40, 0xe3, 0x5d, 0x1b, 0x17, 0x3a, 0xac, 0x1, 0x84, 0x8c, 0x8f, 0x1f, 0x88, 0x14, 0x4f, 0x72, 0x1c, 0xcf, 0xc4, 0x87, 0x5e, 0x5f, 0xcc, 0xf8, 0x2f, 0x17, 0x7, 0xa4, 0xd4, 0x9a, 0x19, 0xbc, 0xf6, 0x0, 0xb5, 0x5b, 0x62, 0x9f, 0xf, 0xb0, 0x31, 0xf1, 0x2, 0x7e, 0x74, 0xec, 0x17, 0x6e, 0xe, 0x53, 0xf9, 0x1, 0xcc, 0x8b, 0xb5, 0x70, 0x43, 0xe5, 0xdf, 0x7, 0xe0, 0x2d, 0xa5, 0x9a, 0x56, 0x4e, 0x1d, 0x93, 0xc2, 0xb1, 0xee, 0xaf, 0x43, 0xe9, 0x95, 0x9d, 0xcb, 0x89, 0x87, 0x38, 0x34, 0x44, 0x5e, 0xb0, 0x8e, 0xc8, 0xb9, 0x6b, 0xe8, 0x2b, 0x6f, 0xb8, 0xf7, 0xd9, 0x35, 0x32, 0x7d, 0x3d, 0xaa, 0xdf, 0xff, 0xcc, 0xf5, 0x12, 0x20, 0x27, 0x8a, 0x9e, 0x88, 0xae, 0x9e, 0x18, 0xaf, 0xa0, 0xdd, 0xb3, 0x42, 0x97, 0x42, 0xd7, 0xe7, 0x51, 0x76, 0x3c, 0xdf, 0x16, 0x21, 0xe8, 0x69, 0xb0, 0xc6, 0xa7, 0x15, 0xc2, 0xf5, 0x69, 0xaa, 0x6f, 0x34, 0xda, 0x33, 0x52, 0x3a, 0x74, 0xc9, 0xb4, 0xa0, 0x29, 0x15, 0xa3, 0x4a, 0xdc, 0xd2, 0xa3, 0x9d, 0x86, 0xf6, 0x95, 0xde, 0xba, 0x90, 0xda, 0xc7, 0xa, 0x11, 0xf7, 0x44, 0x20, 0xac, - 0xdb, 0xb4, 0xc0, 0x7b, 0xc5, 0xb5, 0xcc, 0xb9, 0xb0, 0x4a, 0x2f, 0xc5, 0x33, 0x74, 0xc9, 0x65, 0x60, 0x53, 0x98, 0x9a, 0x8d, 0x1f, 0x77, 0x89, 0xe7, 0x3f, 0xd8, 0x7, 0xc2, 0xfa, 0x3, 0xf4, 0x33, 0x30, 0xff, 0xd5, 0x82, 0x5b, 0xd1, 0x33, 0xc9, 0x3, 0x7f, 0x6a, 0xc, 0x7d, 0x62, 0x6a, 0x1f, 0x1a, 0x8d, 0x9b, 0x41, 0xfd, 0x83, 0x68, 0xc6, 0xf1, 0xac, 0x32, 0xeb, 0x8d, 0x7c, 0x43, 0xc, 0xc5, 0x39, 0xc3, 0x9d, 0x70, 0x9a, 0x38, 0x29, 0x7f, 0x9d, 0x89, 0x0, 0x71, 0xca, 0xf, 0xb8, 0x40, 0x26, 0xd8, 0x8d, 0x59, 0xdc, 0xe5, 0xfa, 0x3e, 0x5b, 0xef, 0xa1, 0x1f, 0x1b, 0x8f, 0x56, 0x1e, 0xad, 0xd0, 0x2b, 0xce, 0x38, 0xfe, 0xb, 0x3f, 0x2a, 0xa1, 0xe3, 0x5c, 0x31, 0x10, 0x55, 0x6d, 0x25, 0x12, 0x3e, 0x18, 0xe, 0x12, 0xf, 0x82, 0xdd, 0x85, 0xfe, 0x51, 0xd2, 0xbf, 0xfc, 0xb1, 0xd7, 0xf2, 0x70, 0x80, 0xb, 0x96, 0x61, 0xa7, 0x10, 0xe5, 0x19, 0xff, 0xe5, 0xa6, 0x5c, 0x5e, 0xc6, 0x7f, 0xde, 0x99, 0x8d, 0x83, 0xf1, 0xbc, 0x54, 0x98, 0x78, 0x34, 0x4b, 0x5e, 0xe2, 0x11, 0xee, 0xdb, 0xd8, 0xeb, 0x8a, 0x49, 0xc6, 0x19, 0x97, 0x3f, 0xa2, 0x49, 0x29, 0x45, 0x1e, 0x75, 0x37, 0x35, 0xce, 0xd6, 0x20, 0x1f, 0xde, 0x1e, 0xbe, 0x86, 0xb4, 0xeb, 0xe, 0x2c, 0x48, 0x3d, 0x80, 0x74, 0xf5, 0x57, 0x98, 0x8b, 0x51, 0xe4, 0x5d, 0xf6, 0x5b, 0x74, 0x4c, 0xc5, 0x1c, 0x21, 0x2a, 0xda, 0xf8, 0xd, 0x8e, 0x3f, 0xeb, 0x6a, 0x4d, 0xae, 0x1b, 0xc9, 0x14, 0x7e, 0xba, 0xba, 0x6e, 0x75, 0x35, 0x67, 0x2c, 0x7a, 0x3f, 0xbe, 0xbf, 0x61, 0x77, 0x85, 0x6e, 0x25, - 0xa4, 0x66, 0xf6, 0x23, 0xdb, 0x97, 0xc1, 0xca, 0x5e, 0xdc, 0x82, 0x85, 0xe1, 0x1c, 0xec, 0xc4, 0x89, 0x72, 0xda, 0xe7, 0x47, 0x26, 0xd5, 0x36, 0xc0, 0x83, 0xb9, 0x8c, 0x78, 0xf, 0xf8, 0x3a, 0x58, 0x7e, 0xec, 0x84, 0x95, 0x1f, 0xfb, 0x5b, 0xd2, 0xff, 0x5, 0xcf, 0xf4, 0xf6, 0xb, 0xb5, 0x87, 0xb9, 0x56, 0x4, 0xf0, 0x1c, 0x92, 0xd4, 0x3f, 0xb, 0x5d, 0xbf, 0x16, 0x89, 0xe0, 0xe0, 0x8, 0xa6, 0xb6, 0x31, 0xbc, 0xbd, 0x4f, 0xe3, 0x16, 0x18, 0xb6, 0x39, 0xea, 0x53, 0xa3, 0x35, 0x82, 0x9c, 0xe4, 0x88, 0x1a, 0xa1, 0x88, 0x51, 0x35, 0x22, 0xf5, 0x8d, 0x35, 0xbf, 0xfd, 0x2f, 0xfd, 0xb7, 0x48, 0x39, 0xa9, 0xff, 0xea, 0x1e, 0xe8, 0x5f, 0x1e, 0xb5, 0xfe, 0x8b, 0xf7, 0x5e, 0x73, 0x9e, 0xe8, 0xbf, 0x75, 0xf5, 0xe3, 0x51, 0x2c, 0x3f, 0x6b, 0x65, 0x9f, 0x29, 0xc1, 0x51, 0x6b, 0xfd, 0xb6, 0xcd, 0x49, 0x56, 0xfc, 0xcb, 0x5b, 0x4d, 0x1b, 0x67, 0xd1, 0xde, 0x3d, 0x23, 0x82, 0xee, 0x48, 0x5b, 0x4f, 0x4, 0x65, 0x23, 0xd6, 0x97, 0x47, 0x99, 0x6a, 0x17, 0x27, 0x47, 0x2c, 0x5a, 0x29, 0x1f, 0xe9, 0xef, 0xfd, 0x63, 0x75, 0x11, 0xed, 0x6, 0xd5, 0x6d, 0xce, 0x8e, 0x7, 0xaf, 0xbc, 0x72, 0xe9, 0xd2, 0x25, 0xd3, 0xd8, 0xfc, 0x25, 0x28, 0x7b, 0x5c, 0x74, 0x1, 0xbe, 0x36, 0xa, 0xf1, 0x93, 0xa5, 0x7f, 0x28, 0x80, 0x6a, 0x2e, 0x27, 0x62, 0x99, 0x42, 0xa8, 0xa1, 0xa9, 0x5a, 0xeb, 0x2f, 0x83, 0xd6, 0x49, 0x8d, 0x54, 0xec, 0x60, 0xf6, 0xcc, 0x3d, 0x48, 0x95, 0x98, 0xe9, 0x6e, 0x2d, 0x7d, 0x73, 0xe, 0xf4, 0x5f, 0xf8, 0x98, 0x42, 0xf1, 0xe8, 0x62, - 0x4f, 0xda, 0x7c, 0x40, 0xa3, 0xce, 0x6f, 0x39, 0x78, 0x8c, 0x7d, 0x1a, 0xec, 0x31, 0xa5, 0x97, 0x9f, 0x4f, 0xef, 0x67, 0x16, 0x11, 0xfb, 0x22, 0x9c, 0xda, 0xd7, 0x81, 0xe6, 0xde, 0xdf, 0x25, 0x7e, 0x1f, 0x30, 0xbc, 0xa9, 0xd3, 0x1a, 0x8b, 0x87, 0xd6, 0x58, 0x4f, 0xf6, 0xe4, 0xad, 0x6c, 0x97, 0x47, 0x3e, 0xbe, 0xc4, 0xe2, 0x87, 0x9e, 0xa2, 0xa6, 0x70, 0x92, 0xd7, 0x4a, 0xe2, 0xb9, 0x4f, 0x61, 0xda, 0xc6, 0x99, 0xc0, 0x79, 0x41, 0x2f, 0xde, 0x44, 0x2c, 0x27, 0x76, 0xd3, 0xa8, 0xeb, 0xd7, 0xaa, 0x5d, 0x57, 0x21, 0x4, 0x8d, 0x76, 0x36, 0x81, 0x32, 0x49, 0x23, 0xbc, 0x57, 0x70, 0xc8, 0xb7, 0x76, 0x5e, 0x24, 0x22, 0xcb, 0x52, 0x91, 0xee, 0xfb, 0x4b, 0x77, 0xfc, 0x1b, 0x13, 0xbf, 0x53, 0x2, 0x29, 0x80, 0xd8, 0x7a, 0xdc, 0x8e, 0xbd, 0x3c, 0x6e, 0x80, 0x5e, 0x4, 0x52, 0x32, 0xea, 0xed, 0x97, 0x52, 0xf1, 0x68, 0xf7, 0xfb, 0x69, 0xff, 0x7c, 0x92, 0x4f, 0xc5, 0xaf, 0xe1, 0xbe, 0x7f, 0xa4, 0x2f, 0xaf, 0x7f, 0x69, 0xf4, 0xc7, 0xff, 0x9a, 0x92, 0x53, 0xe0, 0xb3, 0xd4, 0xbd, 0x23, 0x82, 0xbe, 0xe1, 0xfe, 0x4e, 0x3a, 0x9a, 0xc5, 0x4f, 0x6, 0x59, 0xbe, 0xc4, 0x9f, 0xf, 0x58, 0xf2, 0xad, 0x39, 0xaa, 0x21, 0x41, 0x14, 0x41, 0x64, 0x85, 0x17, 0xfa, 0xea, 0xac, 0x25, 0x70, 0xf6, 0xde, 0x43, 0xec, 0x7c, 0xa6, 0xdb, 0xbf, 0x26, 0xfa, 0x5b, 0xfd, 0xed, 0xa, 0x83, 0xd, 0xa1, 0x7e, 0xea, 0x3e, 0x10, 0x5f, 0xee, 0xba, 0x55, 0xc1, 0xa0, 0xfe, 0x69, 0x7, 0xaa, 0x21, 0xdf, 0xf6, 0xbb, 0x96, 0x6d, 0x5f, 0xca, 0xa3, 0xe2, 0x6f, 0x47, 0x7f, - 0x5b, 0x4e, 0x45, 0x52, 0x6b, 0xcb, 0x2b, 0xfc, 0x9f, 0xb5, 0x7, 0xa6, 0x42, 0x6e, 0x87, 0xe0, 0x8, 0x1a, 0xf1, 0x2d, 0x6e, 0x65, 0xc4, 0xfa, 0xf5, 0x78, 0xbc, 0x4d, 0xad, 0xb6, 0x55, 0xed, 0xee, 0x60, 0xfb, 0x3d, 0x2c, 0x1a, 0xc9, 0xfc, 0xdb, 0xe9, 0xa6, 0x8f, 0xb7, 0x9f, 0xc8, 0x1b, 0x8f, 0x3c, 0x95, 0xfe, 0xf9, 0xc, 0xce, 0xa7, 0x93, 0x92, 0xa3, 0x3, 0x71, 0xa7, 0xf, 0x79, 0x7d, 0x3f, 0x8, 0x6a, 0x83, 0x83, 0x45, 0x9, 0xf3, 0x8c, 0xcb, 0x67, 0x9c, 0xa5, 0xff, 0x36, 0x3d, 0xf0, 0x4d, 0x70, 0x97, 0x50, 0x6, 0xf8, 0xfe, 0x43, 0xc0, 0x52, 0xde, 0x9a, 0x2a, 0x62, 0xeb, 0xb8, 0x2d, 0x15, 0xc8, 0xd6, 0xa3, 0xe9, 0xcc, 0x70, 0xa0, 0xe7, 0x8d, 0x47, 0xed, 0x6f, 0x7c, 0x97, 0xfe, 0x57, 0x71, 0xa, 0x45, 0xca, 0x77, 0xbb, 0x3c, 0x92, 0xdb, 0x39, 0xc1, 0x59, 0xe0, 0x71, 0x4d, 0x70, 0x39, 0x5d, 0x79, 0x79, 0xf2, 0x78, 0x8f, 0x28, 0xe7, 0x39, 0xb, 0x7c, 0x93, 0x7d, 0xf9, 0x6e, 0xab, 0x4c, 0xf4, 0xb0, 0xd7, 0xbc, 0x3c, 0x67, 0xde, 0x39, 0xe3, 0x27, 0xb0, 0xe2, 0x9a, 0x70, 0xe, 0x2d, 0x1e, 0xb7, 0xc7, 0x3e, 0x3f, 0xc9, 0x55, 0x40, 0x4b, 0x1e, 0x2d, 0xa9, 0x3, 0x76, 0x49, 0x77, 0xed, 0x5c, 0x49, 0x9e, 0xe0, 0x99, 0x3c, 0xc1, 0x91, 0x9b, 0x5b, 0xe0, 0xca, 0x91, 0xc5, 0xf1, 0xe7, 0xb8, 0x3d, 0xac, 0x14, 0x78, 0x3c, 0x22, 0x6d, 0x56, 0x7e, 0x7e, 0x11, 0xa5, 0xcf, 0x71, 0xbb, 0xc7, 0x8f, 0xcf, 0x73, 0x8d, 0x73, 0x4f, 0x18, 0x3f, 0xc1, 0x3d, 0x81, 0x9e, 0x3d, 0xc7, 0xe3, 0xa3, 0xaf, 0x79, 0xe3, 0xf3, 0xdc, 0xe7, 0xc8, 0x6e, - 0xb7, 0xcb, 0x5d, 0xe0, 0xa2, 0x2d, 0xcb, 0x2d, 0x90, 0x26, 0xb1, 0x2b, 0x3a, 0xb, 0x9c, 0xee, 0x7c, 0x6f, 0x7e, 0x7e, 0x81, 0x53, 0x72, 0x8e, 0x3b, 0xf9, 0x52, 0xff, 0x1f, 0xc3, 0x4d, 0x47, 0xb3, -} ; + 120, 156, 237, 125, 13, 116, 19, 87, 150, 230, 43, 169, 44, 61, 9, 89, 146, 141, 13, 178, 35, 74, 2, 11, 16, 63, 14, 2, 28, 34, 130, 98, 21, 240, 136, 5, 193, 29, 51, 116, 186, 33, 157, 237, 40, 158, 52, 237, 36, 227, 30, 217, 132, 142, 8, 142, 85, 161, 233, 32, 50, 241, 180, 210, 233, 31, 102, 54, 147, 168, 123, 231, 204, 228, 236, 9, 167, 157, 179, 147, 109, 102, 54, 59, 81, 2, 19, 51, 115, 112, 143, 115, 210, 57, 211, 59, 155, 19, 202, 144, 237, 164, 103, 227, 165, 24, 146, 142, 166, 99, 172, 125, 247, 85, 25, 104, 203, 19, 217, 99, 201, 114, 39, 245, 14, 63, 250, 84, 85, 122, 85, 183, 238, 187, 239, 222, 251, 238, 189, 47, 118, 238, 147, 239, 10, 28, 66, 239, 255, 69, 0, 185, 56, 39, 66, 40, 251, 207, 59, 254, 114, 101, 238, 90, 19, 165, 190, 238, 246, 238, 175, 108, 232, 16, 191, 183, 238, 210, 250, 79, 214, 31, 93, 31, 220, 208, 27, 150, 186, 125, 41, 244, 191, 99, 25, 116, 86, 146, 150, 139, + 233, 220, 56, 66, 82, 85, 166, 70, 50, 190, 241, 212, 55, 69, 201, 248, 90, 213, 192, 15, 114, 78, 241, 199, 225, 1, 233, 104, 247, 174, 135, 14, 175, 235, 16, 119, 53, 29, 11, 195, 111, 60, 182, 225, 192, 134, 122, 218, 219, 218, 219, 92, 13, 71, 110, 185, 240, 224, 170, 63, 83, 123, 187, 173, 251, 239, 214, 94, 235, 105, 30, 122, 41, 252, 127, 247, 159, 145, 208, 192, 63, 228, 56, 233, 229, 23, 140, 63, 91, 75, 127, 201, 32, 253, 175, 174, 125, 27, 254, 140, 126, 251, 166, 246, 45, 220, 227, 190, 13, 175, 209, 111, 254, 153, 126, 195, 191, 98, 252, 217, 190, 13, 94, 138, 126, 153, 51, 116, 255, 141, 244, 178, 20, 16, 127, 73, 191, 143, 176, 239, 47, 210, 239, 199, 232, 247, 93, 146, 145, 254, 207, 73, 223, 160, 223, 238, 237, 230, 164, 47, 209, 255, 127, 190, 127, 104, 127, 123, 247, 79, 105, 31, 237, 221, 94, 73, 222, 127, 184, 123, 225, 134, 254, 13, 127, 27, 78, 207, 219, 123, 233, 168, 229, 160, 120, 105, 205, 83, 79, 242, + 191, 106, 191, 121, 221, 227, 206, 223, 228, 244, 166, 55, 189, 233, 77, 111, 122, 211, 155, 222, 244, 166, 55, 189, 233, 77, 111, 122, 155, 149, 102, 68, 123, 184, 187, 62, 165, 61, 252, 205, 47, 174, 115, 142, 189, 253, 55, 159, 118, 206, 232, 21, 245, 183, 144, 214, 72, 95, 45, 230, 3, 56, 112, 48, 24, 18, 60, 102, 35, 34, 173, 203, 49, 255, 66, 114, 199, 191, 253, 155, 9, 95, 226, 198, 208, 196, 243, 243, 174, 111, 180, 99, 62, 153, 60, 239, 245, 138, 210, 100, 199, 243, 206, 239, 140, 96, 30, 227, 122, 33, 180, 113, 211, 161, 253, 251, 247, 147, 193, 229, 254, 22, 51, 142, 178, 131, 70, 179, 221, 87, 233, 192, 56, 109, 89, 236, 5, 172, 152, 179, 164, 209, 130, 121, 55, 182, 26, 175, 140, 202, 146, 36, 101, 249, 155, 162, 88, 56, 159, 19, 4, 187, 23, 159, 114, 61, 126, 202, 87, 105, 183, 32, 52, 102, 94, 160, 254, 188, 84, 168, 127, 29, 207, 45, 76, 214, 155, 135, 127, 26, 227, 145, 88, 85, 169, 225, 166, 225, 155, 1, + 19, 95, 105, 250, 235, 220, 15, 252, 20, 53, 59, 154, 31, 253, 228, 242, 163, 205, 133, 249, 155, 243, 147, 32, 94, 25, 234, 201, 198, 162, 162, 247, 120, 185, 233, 165, 99, 29, 235, 88, 199, 58, 86, 27, 233, 179, 97, 222, 133, 3, 23, 46, 92, 200, 37, 194, 8, 89, 207, 4, 23, 35, 47, 202, 228, 114, 239, 222, 144, 187, 57, 151, 43, 118, 127, 190, 3, 113, 255, 186, 205, 209, 14, 23, 128, 44, 247, 39, 133, 206, 175, 235, 127, 180, 10, 33, 103, 187, 108, 164, 255, 34, 36, 150, 155, 94, 19, 177, 169, 109, 1, 215, 19, 120, 213, 188, 136, 222, 91, 8, 133, 74, 255, 190, 90, 27, 48, 31, 193, 109, 38, 187, 189, 55, 151, 176, 219, 201, 157, 207, 153, 142, 246, 94, 48, 179, 131, 210, 62, 19, 57, 97, 198, 188, 19, 167, 24, 150, 21, 84, 31, 219, 196, 241, 34, 61, 132, 118, 81, 124, 134, 43, 55, 189, 242, 158, 103, 228, 33, 204, 63, 147, 188, 175, 218, 194, 35, 83, 34, 129, 200, 183, 209, 24, 247, 5, 245, 105, 164, 146, + 244, 183, 25, 243, 94, 60, 196, 64, 34, 17, 42, 120, 62, 220, 207, 105, 13, 208, 59, 42, 55, 189, 242, 238, 111, 112, 21, 216, 27, 79, 244, 88, 120, 3, 223, 155, 64, 214, 254, 53, 92, 79, 58, 99, 158, 71, 249, 209, 118, 246, 108, 209, 251, 243, 189, 180, 27, 27, 182, 200, 199, 96, 229, 19, 101, 165, 187, 11, 142, 223, 248, 206, 225, 176, 102, 92, 212, 34, 20, 41, 55, 189, 76, 182, 6, 11, 125, 143, 235, 134, 206, 217, 145, 60, 72, 233, 87, 73, 237, 55, 31, 246, 194, 49, 37, 30, 47, 200, 15, 115, 29, 51, 126, 229, 17, 226, 138, 252, 123, 90, 203, 147, 31, 195, 199, 27, 57, 36, 191, 2, 221, 73, 254, 118, 152, 79, 126, 8, 212, 172, 55, 31, 158, 198, 239, 239, 211, 6, 251, 84, 206, 31, 249, 2, 204, 87, 109, 241, 120, 48, 228, 22, 4, 7, 105, 228, 253, 100, 29, 14, 100, 100, 89, 78, 167, 164, 175, 147, 19, 141, 152, 63, 153, 100, 198, 143, 237, 217, 230, 26, 50, 242, 159, 0, 159, 63, 235, 91, 86, 109, + 176, 88, 248, 153, 210, 99, 219, 243, 139, 96, 126, 148, 207, 37, 126, 226, 166, 95, 191, 82, 238, 247, 173, 99, 29, 235, 184, 140, 242, 246, 196, 22, 204, 251, 113, 128, 170, 99, 189, 189, 194, 108, 232, 75, 95, 6, 249, 167, 234, 119, 225, 176, 125, 74, 242, 85, 214, 192, 28, 212, 95, 116, 60, 51, 252, 181, 61, 93, 195, 107, 98, 53, 40, 198, 59, 191, 245, 52, 2, 125, 240, 94, 208, 255, 235, 229, 76, 105, 250, 35, 157, 123, 128, 255, 250, 247, 31, 122, 180, 217, 227, 240, 60, 90, 240, 252, 74, 11, 220, 79, 76, 202, 40, 217, 158, 80, 86, 41, 55, 189, 242, 238, 175, 111, 61, 248, 239, 99, 227, 227, 151, 84, 214, 249, 137, 5, 35, 11, 207, 27, 184, 41, 92, 95, 231, 186, 149, 19, 234, 17, 18, 108, 8, 85, 41, 225, 194, 253, 85, 174, 133, 254, 234, 225, 183, 195, 97, 143, 157, 141, 207, 29, 227, 71, 17, 71, 222, 220, 201, 181, 112, 242, 81, 167, 10, 79, 145, 206, 4, 230, 207, 38, 79, 55, 24, 159, 222, 190, 253, 133, + 63, 94, 64, 14, 188, 101, 106, 137, 41, 230, 215, 158, 127, 251, 23, 178, 18, 67, 76, 223, 121, 33, 153, 97, 167, 7, 179, 166, 89, 167, 95, 231, 141, 152, 223, 137, 235, 221, 238, 209, 209, 158, 144, 102, 207, 165, 147, 175, 87, 115, 152, 55, 76, 229, 122, 120, 126, 245, 238, 167, 100, 239, 145, 193, 29, 152, 111, 194, 105, 35, 199, 161, 222, 132, 199, 189, 34, 176, 134, 195, 98, 173, 1, 84, 212, 54, 132, 188, 236, 247, 254, 116, 156, 154, 156, 68, 245, 123, 63, 217, 136, 229, 140, 232, 237, 127, 106, 239, 106, 31, 105, 221, 14, 235, 39, 129, 120, 200, 29, 26, 29, 133, 223, 107, 244, 19, 140, 235, 217, 249, 189, 66, 255, 172, 211, 111, 130, 253, 198, 248, 111, 11, 142, 30, 67, 71, 14, 63, 38, 77, 131, 255, 240, 212, 248, 79, 181, 223, 154, 142, 57, 129, 1, 169, 253, 198, 232, 213, 59, 126, 244, 42, 255, 125, 231, 26, 255, 17, 208, 159, 187, 127, 244, 95, 190, 187, 119, 251, 159, 127, 239, 7, 164, 114, 30, 230, 131, 184, 126, 236, + 228, 201, 95, 200, 178, 162, 242, 223, 203, 229, 227, 63, 29, 235, 88, 199, 58, 214, 241, 103, 3, 179, 249, 104, 217, 56, 226, 138, 238, 175, 38, 157, 43, 49, 47, 82, 251, 41, 20, 106, 22, 0, 55, 58, 49, 111, 195, 82, 104, 145, 199, 225, 112, 152, 233, 252, 123, 59, 243, 7, 202, 178, 156, 201, 100, 36, 170, 207, 172, 0, 253, 166, 13, 201, 10, 213, 182, 138, 208, 255, 200, 2, 208, 231, 30, 73, 167, 159, 251, 206, 29, 17, 236, 191, 179, 99, 151, 5, 33, 167, 33, 10, 202, 18, 226, 219, 248, 3, 6, 206, 240, 196, 227, 8, 137, 20, 74, 195, 65, 50, 210, 237, 39, 117, 56, 230, 243, 38, 207, 100, 98, 138, 84, 238, 247, 163, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 158, 28, 147, 145, 0, 196, 31, 167, 144, 217, 108, 52, 2, 110, 221, 13, 241, 17, 129, 248, 245, 249, 131, 103, 147, 91, 56, 163, 13, 65, 254, 32, 25, 9, 97, 158, + 224, 40, 122, 230, 217, 119, 126, 54, 217, 239, 65, 254, 96, 122, 58, 249, 131, 54, 204, 31, 79, 90, 23, 250, 124, 56, 66, 27, 228, 15, 18, 211, 120, 254, 96, 133, 157, 175, 116, 96, 39, 58, 230, 101, 223, 72, 30, 197, 247, 71, 11, 135, 115, 203, 61, 8, 165, 181, 235, 193, 63, 127, 55, 135, 32, 222, 82, 81, 20, 121, 174, 229, 15, 214, 54, 197, 170, 144, 152, 65, 81, 30, 161, 245, 165, 120, 127, 79, 223, 133, 13, 59, 15, 187, 156, 193, 141, 203, 92, 107, 151, 109, 44, 120, 126, 227, 60, 88, 111, 232, 167, 244, 146, 144, 148, 201, 148, 155, 62, 58, 214, 177, 142, 117, 252, 121, 197, 228, 132, 1, 226, 191, 134, 144, 29, 86, 123, 65, 62, 239, 133, 120, 50, 111, 48, 24, 12, 133, 220, 128, 231, 179, 227, 102, 218, 28, 118, 237, 56, 100, 52, 208, 195, 161, 201, 126, 15, 230, 67, 19, 228, 87, 77, 177, 127, 152, 127, 159, 79, 254, 235, 2, 159, 215, 143, 105, 35, 35, 59, 32, 30, 80, 205, 71, 50, 59, 60, 164, 209, 13, + 247, 35, 50, 156, 29, 29, 99, 249, 94, 207, 39, 219, 93, 22, 142, 135, 198, 250, 19, 212, 223, 146, 104, 43, 55, 61, 117, 172, 227, 114, 98, 50, 114, 23, 196, 223, 15, 109, 162, 227, 211, 227, 113, 32, 210, 103, 132, 250, 4, 146, 28, 139, 199, 179, 138, 92, 252, 254, 58, 239, 246, 147, 8, 238, 15, 250, 105, 91, 113, 227, 74, 114, 224, 240, 7, 3, 107, 221, 21, 8, 5, 253, 171, 86, 173, 240, 147, 198, 70, 208, 215, 37, 56, 55, 163, 100, 227, 164, 113, 9, 196, 151, 88, 67, 110, 183, 59, 52, 58, 247, 226, 159, 117, 172, 99, 29, 235, 248, 243, 138, 73, 231, 106, 208, 183, 100, 80, 6, 221, 130, 96, 39, 173, 141, 16, 223, 62, 148, 85, 16, 82, 148, 120, 188, 232, 253, 245, 237, 5, 125, 110, 201, 158, 136, 24, 137, 120, 125, 11, 239, 239, 223, 93, 133, 16, 174, 175, 58, 12, 1, 249, 246, 122, 45, 158, 254, 22, 118, 242, 201, 56, 213, 15, 87, 131, 127, 71, 74, 70, 88, 59, 83, 110, 122, 233, 88, 199, 58, 214, 177, + 142, 117, 172, 227, 242, 99, 210, 217, 202, 244, 23, 106, 250, 170, 250, 75, 231, 14, 240, 87, 201, 212, 244, 45, 137, 254, 226, 251, 232, 235, 216, 176, 115, 29, 118, 217, 206, 93, 252, 193, 169, 181, 2, 25, 89, 10, 249, 139, 175, 177, 131, 14, 119, 131, 245, 164, 159, 51, 124, 219, 36, 34, 14, 50, 24, 20, 7, 203, 119, 112, 65, 126, 37, 88, 195, 241, 108, 185, 233, 165, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 229, 194, 100, 240, 97, 240, 55, 167, 194, 30, 4, 33, 6, 110, 50, 242, 40, 219, 79, 64, 150, 161, 124, 171, 82, 244, 245, 66, 114, 249, 14, 255, 58, 81, 196, 78, 87, 42, 37, 165, 44, 119, 144, 202, 69, 126, 178, 22, 199, 216, 65, 143, 183, 133, 213, 195, 89, 141, 51, 12, 103, 2, 41, 210, 217, 136, 249, 51, 73, 223, 158, 8, 198, 145, 200, 208, 208, 180, 251, 211, 226, 35, 160, 77, 165, 158, 210, 180, 127, 191, 47, 194, 246, 79, 168, 224, 89, 185, 33, 100, 177, 26, 44, 208, + 213, 243, 40, 227, 117, 150, 228, 125, 173, 103, 249, 248, 102, 132, 114, 72, 1, 251, 219, 4, 239, 79, 45, 151, 99, 119, 56, 242, 206, 127, 235, 231, 31, 12, 236, 114, 195, 71, 217, 253, 118, 249, 249, 45, 239, 254, 42, 235, 33, 62, 177, 13, 248, 143, 225, 145, 13, 224, 63, 136, 82, 99, 189, 68, 253, 25, 96, 125, 62, 211, 51, 250, 255, 46, 126, 188, 255, 80, 130, 12, 38, 192, 127, 16, 5, 250, 244, 223, 19, 125, 88, 227, 63, 137, 157, 44, 83, 254, 131, 245, 124, 130, 163, 241, 120, 48, 24, 204, 42, 114, 185, 233, 165, 99, 29, 235, 248, 179, 131, 73, 167, 17, 226, 135, 234, 131, 46, 205, 127, 218, 184, 15, 228, 97, 32, 24, 44, 209, 250, 239, 229, 175, 99, 195, 142, 243, 24, 251, 35, 145, 8, 246, 251, 181, 245, 223, 128, 182, 254, 123, 23, 147, 127, 183, 224, 126, 118, 50, 172, 255, 118, 117, 99, 225, 221, 156, 69, 48, 37, 233, 249, 24, 151, 155, 94, 58, 46, 50, 63, 116, 126, 9, 243, 33, 220, 22, 100, 109, 22, 250, + 83, 227, 213, 120, 136, 87, 131, 198, 226, 81, 189, 56, 0, 199, 226, 241, 158, 223, 185, 250, 231, 190, 3, 34, 54, 80, 125, 214, 134, 254, 243, 63, 94, 204, 93, 41, 251, 253, 252, 174, 97, 210, 183, 20, 244, 251, 215, 108, 46, 27, 7, 18, 136, 12, 186, 152, 61, 112, 144, 51, 55, 252, 254, 240, 112, 225, 235, 213, 122, 89, 43, 169, 176, 148, 50, 153, 76, 225, 243, 27, 59, 253, 196, 143, 149, 154, 234, 174, 120, 93, 5, 111, 34, 7, 62, 52, 29, 141, 125, 168, 238, 95, 225, 116, 187, 153, 189, 49, 190, 63, 67, 44, 22, 103, 245, 186, 78, 39, 119, 248, 189, 239, 93, 118, 214, 63, 209, 199, 236, 9, 31, 43, 55, 47, 149, 133, 94, 208, 127, 250, 90, 125, 125, 210, 250, 37, 136, 23, 143, 37, 14, 29, 186, 53, 236, 49, 114, 164, 86, 50, 153, 187, 222, 53, 75, 72, 236, 233, 233, 137, 138, 181, 138, 143, 163, 214, 84, 123, 6, 30, 15, 5, 139, 240, 190, 12, 160, 47, 91, 187, 13, 180, 153, 220, 33, 210, 103, 135, 248, 82, + 4, 181, 210, 194, 137, 196, 126, 82, 251, 226, 7, 3, 79, 229, 140, 8, 137, 98, 70, 118, 198, 201, 96, 3, 232, 207, 214, 151, 159, 121, 246, 217, 209, 209, 172, 92, 110, 126, 203, 127, 158, 53, 108, 254, 141, 197, 14, 134, 193, 6, 33, 149, 127, 200, 226, 241, 223, 123, 239, 194, 171, 240, 134, 11, 95, 223, 13, 252, 82, 47, 73, 25, 48, 153, 167, 32, 111, 43, 216, 252, 14, 159, 61, 225, 68, 215, 164, 239, 247, 55, 227, 136, 187, 64, 26, 111, 97, 239, 247, 194, 229, 67, 135, 254, 231, 219, 239, 92, 36, 157, 219, 129, 158, 233, 239, 28, 253, 206, 24, 212, 143, 245, 213, 214, 98, 195, 230, 244, 49, 182, 159, 141, 124, 40, 54, 235, 244, 131, 252, 65, 250, 60, 66, 72, 139, 127, 238, 100, 252, 144, 54, 119, 199, 98, 74, 41, 226, 159, 43, 239, 1, 121, 113, 154, 143, 68, 58, 150, 55, 204, 159, 175, 173, 255, 170, 21, 140, 29, 238, 6, 150, 191, 224, 211, 252, 7, 144, 191, 0, 246, 178, 5, 247, 123, 28, 230, 12, 10, 29, 53, + 147, 19, 127, 0, 247, 231, 165, 71, 149, 108, 214, 85, 126, 254, 107, 93, 12, 254, 150, 20, 138, 82, 114, 197, 98, 101, 191, 159, 185, 142, 235, 92, 157, 28, 146, 195, 156, 80, 47, 220, 182, 57, 171, 197, 51, 30, 79, 146, 20, 138, 68, 120, 159, 105, 65, 177, 251, 219, 150, 58, 200, 245, 164, 198, 32, 188, 161, 13, 38, 168, 23, 255, 186, 107, 113, 245, 78, 31, 236, 63, 227, 244, 154, 236, 34, 185, 92, 141, 77, 91, 211, 199, 172, 254, 142, 14, 250, 10, 211, 37, 231, 151, 19, 22, 45, 158, 1, 217, 237, 130, 123, 218, 250, 210, 182, 84, 128, 234, 251, 99, 11, 23, 245, 72, 72, 78, 211, 223, 219, 191, 11, 31, 190, 253, 54, 140, 171, 171, 145, 47, 218, 81, 242, 252, 128, 13, 17, 168, 55, 57, 150, 179, 36, 235, 144, 1, 85, 33, 50, 18, 129, 122, 211, 43, 155, 154, 156, 213, 213, 6, 84, 114, 251, 130, 197, 167, 212, 96, 250, 228, 72, 86, 98, 241, 224, 204, 127, 111, 158, 159, 172, 192, 43, 157, 24, 7, 123, 31, 105, 55, + 176, 122, 233, 84, 94, 43, 153, 12, 149, 47, 39, 165, 162, 223, 63, 200, 187, 179, 201, 118, 248, 108, 220, 31, 247, 21, 150, 151, 139, 88, 62, 10, 3, 206, 185, 23, 255, 178, 180, 109, 1, 135, 145, 161, 61, 74, 63, 139, 38, 83, 201, 251, 227, 63, 242, 191, 159, 51, 11, 53, 2, 66, 155, 223, 61, 120, 155, 147, 205, 183, 255, 50, 126, 20, 229, 213, 15, 39, 35, 55, 96, 30, 49, 255, 180, 172, 40, 83, 212, 207, 152, 191, 153, 169, 179, 101, 167, 111, 233, 199, 147, 27, 226, 201, 31, 160, 111, 47, 234, 77, 167, 218, 202, 125, 63, 115, 29, 51, 122, 249, 176, 149, 126, 28, 235, 157, 3, 247, 243, 187, 142, 153, 189, 22, 84, 237, 181, 88, 124, 230, 242, 188, 220, 152, 217, 167, 235, 112, 218, 23, 168, 166, 19, 61, 50, 48, 121, 66, 174, 217, 123, 181, 129, 24, 219, 143, 242, 71, 72, 181, 231, 200, 131, 13, 195, 57, 65, 45, 215, 140, 36, 209, 91, 240, 247, 97, 189, 42, 69, 245, 103, 58, 251, 50, 123, 27, 246, 39, 59, 158, + 12, 68, 252, 190, 154, 106, 171, 165, 34, 239, 252, 221, 127, 48, 124, 115, 204, 137, 196, 140, 136, 188, 78, 169, 99, 230, 239, 235, 206, 241, 252, 68, 40, 224, 49, 99, 255, 38, 25, 188, 139, 229, 55, 6, 67, 33, 193, 227, 48, 82, 253, 200, 167, 218, 31, 14, 143, 48, 54, 54, 90, 2, 126, 179, 97, 62, 147, 92, 178, 204, 231, 85, 235, 151, 64, 254, 180, 87, 219, 191, 3, 242, 167, 251, 118, 248, 201, 98, 172, 48, 28, 180, 157, 39, 125, 7, 48, 223, 159, 92, 82, 135, 121, 158, 206, 62, 188, 181, 127, 205, 112, 226, 181, 140, 153, 135, 87, 118, 246, 244, 140, 247, 131, 155, 57, 253, 162, 96, 239, 70, 183, 126, 114, 37, 236, 49, 35, 180, 34, 112, 128, 83, 179, 191, 185, 140, 243, 191, 119, 26, 139, 221, 223, 194, 36, 172, 143, 202, 185, 132, 49, 72, 233, 3, 253, 47, 247, 155, 205, 227, 235, 191, 30, 142, 249, 159, 3, 234, 126, 136, 72, 118, 225, 109, 29, 134, 225, 92, 46, 236, 67, 94, 216, 46, 51, 145, 40, 55, 189, 242, + 232, 215, 122, 47, 232, 147, 50, 125, 152, 112, 216, 161, 217, 247, 148, 31, 213, 108, 219, 18, 244, 7, 251, 219, 164, 146, 247, 45, 169, 194, 60, 171, 223, 3, 242, 225, 164, 38, 29, 194, 225, 144, 233, 73, 158, 237, 47, 41, 211, 107, 50, 244, 90, 210, 183, 11, 230, 231, 243, 8, 101, 210, 169, 51, 247, 21, 212, 23, 103, 159, 126, 55, 168, 245, 136, 168, 58, 27, 14, 83, 252, 209, 105, 83, 75, 236, 67, 243, 234, 213, 61, 144, 62, 93, 252, 254, 42, 59, 65, 31, 22, 67, 148, 247, 140, 70, 163, 170, 79, 191, 124, 157, 255, 0, 198, 239, 90, 102, 31, 32, 20, 192, 167, 201, 8, 130, 247, 41, 135, 220, 161, 108, 86, 201, 206, 57, 255, 52, 227, 135, 76, 242, 9, 182, 223, 17, 101, 3, 254, 208, 87, 57, 52, 230, 30, 232, 106, 67, 38, 228, 197, 134, 226, 247, 199, 131, 191, 167, 158, 141, 198, 120, 40, 143, 30, 164, 243, 32, 140, 7, 137, 129, 168, 34, 147, 3, 255, 96, 26, 136, 141, 154, 37, 73, 122, 246, 217, 148, 115, 206, + 233, 135, 100, 196, 7, 243, 81, 38, 24, 12, 170, 254, 191, 193, 149, 160, 159, 193, 253, 103, 193, 191, 86, 124, 126, 95, 192, 246, 223, 10, 2, 240, 132, 195, 252, 75, 187, 171, 232, 120, 221, 198, 54, 251, 202, 60, 214, 202, 248, 111, 139, 230, 191, 2, 254, 171, 20, 152, 189, 207, 242, 247, 179, 115, 208, 127, 90, 185, 134, 197, 15, 209, 233, 215, 65, 167, 95, 149, 126, 77, 236, 254, 229, 108, 182, 20, 250, 30, 171, 95, 210, 238, 243, 193, 2, 230, 237, 243, 152, 252, 123, 64, 147, 127, 227, 243, 239, 90, 124, 203, 85, 250, 141, 244, 176, 253, 53, 4, 193, 46, 8, 163, 163, 115, 174, 254, 1, 219, 15, 90, 196, 41, 120, 130, 68, 66, 171, 167, 118, 58, 25, 245, 246, 43, 241, 146, 208, 15, 246, 251, 74, 38, 119, 88, 44, 84, 25, 49, 24, 184, 218, 23, 218, 88, 188, 146, 203, 216, 253, 58, 122, 232, 150, 73, 244, 197, 58, 152, 111, 150, 32, 88, 240, 16, 11, 235, 151, 179, 175, 47, 215, 179, 253, 243, 60, 205, 161, 80, 24, 252, + 207, 48, 94, 68, 28, 80, 226, 193, 32, 21, 216, 37, 120, 95, 191, 199, 214, 43, 67, 212, 214, 104, 246, 56, 28, 108, 254, 120, 38, 111, 254, 136, 50, 60, 62, 126, 233, 253, 208, 241, 27, 234, 153, 131, 241, 67, 204, 127, 79, 229, 11, 125, 28, 32, 31, 125, 223, 155, 216, 122, 136, 192, 164, 77, 41, 248, 253, 17, 246, 251, 140, 92, 225, 112, 16, 246, 143, 111, 137, 125, 160, 174, 191, 213, 185, 140, 90, 252, 149, 200, 112, 38, 112, 156, 197, 71, 96, 156, 138, 135, 220, 194, 59, 239, 216, 133, 114, 211, 171, 220, 120, 162, 189, 251, 89, 179, 127, 75, 78, 191, 190, 85, 108, 61, 18, 230, 95, 22, 239, 170, 250, 131, 163, 204, 29, 92, 4, 127, 240, 236, 63, 207, 66, 255, 233, 5, 216, 106, 54, 104, 184, 113, 5, 155, 127, 153, 179, 178, 20, 253, 53, 114, 32, 47, 98, 70, 71, 184, 55, 222, 211, 236, 97, 243, 111, 96, 252, 40, 226, 248, 77, 27, 185, 163, 93, 174, 1, 240, 78, 208, 1, 60, 204, 246, 131, 245, 226, 33, 109, 63, + 88, 105, 218, 253, 93, 23, 191, 11, 94, 144, 114, 211, 123, 166, 120, 85, 100, 239, 112, 88, 64, 82, 211, 79, 214, 32, 228, 255, 222, 151, 11, 207, 215, 91, 217, 122, 180, 2, 202, 168, 60, 58, 90, 238, 251, 207, 231, 63, 59, 188, 223, 126, 202, 13, 197, 249, 61, 120, 223, 106, 49, 87, 110, 178, 120, 109, 114, 98, 9, 172, 127, 236, 88, 87, 87, 105, 68, 156, 217, 194, 234, 149, 4, 176, 198, 129, 177, 158, 188, 243, 43, 111, 85, 215, 123, 37, 86, 46, 54, 83, 110, 122, 77, 196, 190, 239, 223, 235, 95, 183, 37, 141, 41, 107, 203, 198, 44, 71, 233, 121, 23, 179, 71, 100, 5, 118, 128, 43, 193, 251, 58, 33, 0, 61, 50, 136, 167, 250, 48, 213, 216, 201, 72, 228, 106, 189, 48, 65, 240, 228, 199, 143, 119, 54, 12, 159, 171, 80, 221, 139, 83, 241, 47, 206, 58, 255, 141, 52, 128, 255, 114, 75, 181, 203, 98, 3, 3, 152, 244, 125, 197, 79, 172, 88, 241, 152, 233, 221, 58, 205, 226, 2, 230, 47, 69, 232, 136, 180, 245, 207, + 65, 201, 120, 99, 232, 27, 176, 254, 249, 49, 4, 168, 128, 19, 158, 244, 121, 64, 95, 11, 80, 93, 155, 51, 242, 202, 99, 164, 239, 78, 230, 15, 139, 197, 232, 11, 200, 72, 147, 244, 199, 252, 127, 1, 159, 207, 231, 245, 250, 124, 53, 76, 191, 131, 250, 200, 156, 209, 236, 16, 4, 55, 227, 223, 61, 28, 202, 229, 148, 12, 10, 39, 18, 44, 255, 252, 100, 178, 189, 202, 233, 116, 138, 145, 213, 107, 72, 35, 98, 252, 122, 73, 129, 217, 58, 40, 145, 62, 30, 252, 15, 79, 128, 174, 21, 206, 184, 47, 147, 74, 86, 79, 89, 29, 1, 210, 230, 31, 177, 235, 159, 79, 158, 79, 167, 82, 78, 145, 182, 137, 247, 243, 226, 95, 45, 163, 246, 99, 218, 128, 110, 3, 180, 233, 245, 133, 201, 13, 204, 191, 246, 39, 172, 70, 99, 127, 65, 127, 89, 161, 253, 7, 139, 255, 190, 62, 91, 251, 15, 146, 202, 27, 85, 127, 82, 200, 189, 136, 154, 243, 148, 158, 22, 198, 15, 118, 33, 52, 154, 149, 75, 64, 191, 143, 126, 243, 193, 192, 102, 183, + 1, 170, 255, 173, 106, 240, 249, 180, 248, 221, 254, 167, 190, 165, 197, 239, 170, 246, 199, 53, 255, 51, 228, 127, 44, 118, 243, 212, 252, 29, 11, 186, 71, 231, 156, 254, 60, 177, 254, 184, 239, 166, 157, 92, 75, 204, 173, 10, 156, 143, 63, 41, 193, 254, 155, 147, 212, 31, 55, 143, 215, 31, 55, 219, 125, 119, 210, 241, 52, 54, 111, 128, 225, 24, 255, 155, 114, 211, 167, 240, 243, 108, 101, 241, 96, 110, 183, 27, 121, 18, 148, 255, 90, 35, 108, 60, 59, 60, 205, 163, 89, 42, 130, 138, 207, 239, 247, 128, 124, 202, 120, 65, 250, 65, 131, 253, 188, 69, 249, 24, 75, 64, 202, 74, 95, 96, 252, 183, 121, 220, 254, 181, 189, 70, 70, 22, 193, 254, 230, 214, 42, 11, 43, 31, 203, 214, 63, 114, 169, 140, 217, 200, 214, 63, 206, 150, 127, 253, 67, 139, 255, 163, 178, 56, 71, 201, 55, 238, 191, 146, 16, 196, 135, 149, 194, 255, 7, 241, 253, 103, 146, 222, 8, 8, 243, 150, 22, 53, 255, 45, 168, 141, 215, 176, 120, 7, 163, 95, 157, 70, + 63, 197, 198, 147, 151, 94, 180, 30, 237, 117, 171, 23, 103, 2, 169, 114, 211, 107, 82, 249, 71, 245, 137, 144, 219, 157, 200, 243, 159, 142, 149, 160, 63, 77, 254, 121, 33, 120, 188, 97, 249, 114, 50, 242, 135, 96, 191, 137, 236, 160, 123, 18, 127, 52, 232, 135, 199, 147, 63, 102, 64, 118, 205, 185, 252, 5, 210, 186, 22, 232, 23, 165, 234, 64, 40, 204, 230, 223, 157, 160, 47, 176, 217, 48, 99, 8, 149, 96, 254, 237, 134, 120, 200, 91, 150, 137, 145, 182, 55, 47, 95, 74, 177, 245, 75, 124, 109, 253, 146, 197, 147, 138, 105, 117, 60, 203, 135, 206, 147, 19, 191, 143, 249, 39, 147, 247, 57, 204, 102, 227, 40, 202, 160, 193, 15, 191, 12, 250, 212, 192, 2, 216, 76, 128, 42, 8, 101, 167, 223, 139, 59, 177, 224, 22, 120, 161, 26, 172, 121, 55, 34, 7, 100, 182, 126, 84, 1, 194, 198, 96, 44, 120, 125, 93, 255, 26, 14, 75, 156, 65, 164, 159, 157, 98, 245, 235, 133, 249, 239, 125, 200, 167, 84, 249, 111, 57, 240, 31, 203, 95, + 104, 99, 7, 93, 161, 144, 182, 158, 41, 51, 108, 52, 27, 201, 75, 71, 33, 30, 218, 192, 132, 223, 40, 159, 103, 127, 252, 182, 125, 91, 124, 125, 161, 240, 252, 113, 35, 236, 47, 237, 116, 187, 5, 129, 249, 159, 225, 126, 158, 212, 238, 70, 42, 126, 127, 11, 59, 130, 195, 185, 4, 147, 254, 187, 16, 253, 227, 251, 254, 55, 184, 1, 14, 29, 85, 231, 143, 43, 65, 214, 255, 59, 227, 228, 152, 125, 122, 76, 23, 251, 238, 252, 10, 54, 16, 249, 24, 54, 60, 22, 149, 47, 12, 171, 249, 165, 1, 220, 150, 97, 163, 163, 248, 247, 127, 211, 25, 227, 112, 46, 231, 0, 226, 96, 100, 114, 210, 249, 171, 82, 141, 39, 202, 142, 246, 122, 232, 32, 173, 235, 127, 20, 226, 67, 12, 199, 140, 204, 3, 35, 178, 251, 233, 79, 198, 36, 36, 138, 147, 217, 15, 229, 198, 218, 248, 25, 10, 193, 232, 133, 250, 247, 125, 8, 214, 39, 72, 146, 44, 169, 194, 166, 41, 92, 15, 252, 130, 213, 207, 83, 138, 215, 215, 198, 175, 111, 217, 154, 53, 107, + 86, 45, 246, 154, 62, 88, 106, 65, 210, 227, 170, 255, 224, 237, 127, 164, 247, 19, 190, 106, 15, 35, 135, 167, 151, 52, 114, 160, 207, 196, 226, 138, 28, 21, 69, 175, 179, 220, 244, 202, 31, 191, 141, 44, 127, 58, 30, 7, 115, 114, 22, 250, 3, 253, 37, 165, 233, 47, 180, 21, 210, 95, 202, 77, 159, 194, 250, 31, 102, 246, 218, 166, 112, 216, 227, 1, 253, 5, 236, 115, 130, 189, 255, 227, 149, 231, 168, 65, 60, 133, 235, 7, 131, 152, 151, 240, 91, 212, 84, 102, 123, 48, 20, 230, 247, 5, 160, 143, 252, 107, 202, 217, 182, 107, 243, 246, 237, 243, 216, 122, 135, 150, 255, 134, 100, 41, 79, 191, 35, 39, 16, 232, 139, 75, 144, 188, 118, 109, 213, 222, 237, 15, 46, 61, 254, 224, 240, 57, 182, 90, 34, 152, 106, 188, 94, 145, 116, 54, 248, 91, 182, 178, 120, 66, 4, 1, 221, 179, 78, 63, 117, 253, 173, 62, 28, 14, 55, 11, 215, 205, 191, 223, 62, 82, 170, 249, 247, 58, 253, 111, 197, 138, 85, 191, 165, 255, 169, 243, 239, 175, + 18, 11, 5, 117, 70, 53, 154, 28, 76, 62, 124, 131, 131, 92, 155, 196, 199, 239, 189, 55, 80, 110, 126, 203, 215, 255, 62, 125, 255, 173, 194, 244, 255, 124, 239, 191, 69, 238, 252, 161, 117, 32, 225, 54, 82, 225, 183, 233, 214, 222, 132, 22, 63, 164, 152, 67, 77, 89, 48, 127, 75, 35, 255, 206, 38, 189, 170, 249, 182, 61, 162, 229, 11, 50, 253, 47, 22, 143, 229, 229, 95, 145, 65, 12, 227, 247, 48, 124, 150, 131, 201, 57, 24, 127, 85, 4, 254, 235, 79, 62, 80, 44, 254, 99, 241, 115, 127, 149, 220, 129, 56, 3, 143, 135, 95, 149, 89, 190, 155, 11, 15, 133, 55, 82, 226, 198, 52, 254, 187, 235, 26, 255, 145, 190, 69, 234, 126, 58, 138, 2, 34, 56, 79, 191, 46, 57, 253, 198, 249, 109, 245, 117, 254, 63, 27, 246, 10, 66, 207, 168, 82, 42, 255, 31, 213, 95, 252, 43, 86, 173, 2, 255, 95, 173, 109, 17, 135, 253, 84, 217, 51, 163, 95, 211, 9, 216, 196, 232, 231, 84, 231, 19, 161, 185, 39, 75, 26, 247, 192, 251, + 60, 172, 200, 162, 120, 252, 116, 180, 186, 220, 252, 150, 247, 60, 144, 111, 25, 192, 177, 112, 79, 60, 14, 1, 148, 90, 252, 98, 0, 93, 57, 151, 67, 111, 95, 201, 21, 95, 223, 92, 10, 246, 245, 22, 22, 112, 106, 180, 121, 201, 200, 35, 126, 178, 68, 165, 87, 184, 37, 17, 99, 227, 245, 100, 82, 2, 44, 7, 146, 247, 145, 145, 131, 204, 95, 31, 18, 224, 141, 206, 193, 248, 171, 59, 127, 248, 47, 119, 36, 220, 38, 35, 109, 185, 131, 64, 207, 37, 126, 194, 97, 25, 246, 102, 130, 5, 180, 98, 247, 183, 235, 152, 1, 116, 13, 251, 149, 173, 127, 154, 241, 74, 200, 84, 247, 139, 101, 180, 23, 161, 70, 112, 35, 209, 137, 196, 68, 93, 124, 231, 112, 66, 173, 70, 132, 106, 17, 74, 154, 164, 107, 246, 36, 202, 204, 254, 248, 44, 44, 191, 62, 125, 255, 173, 130, 215, 127, 206, 247, 223, 34, 39, 88, 60, 104, 32, 30, 135, 124, 95, 120, 190, 149, 224, 79, 77, 81, 98, 10, 118, 187, 189, 4, 243, 85, 2, 243, 17, 250, 126, + 28, 118, 65, 112, 135, 130, 228, 166, 35, 214, 150, 94, 183, 26, 0, 104, 168, 48, 147, 198, 135, 192, 126, 220, 205, 112, 70, 142, 50, 125, 59, 153, 124, 32, 45, 165, 156, 98, 36, 226, 47, 55, 189, 38, 213, 39, 2, 26, 253, 100, 132, 76, 182, 249, 156, 193, 130, 98, 104, 232, 226, 212, 174, 31, 167, 55, 56, 112, 166, 64, 111, 114, 98, 11, 235, 207, 1, 139, 149, 33, 74, 191, 55, 247, 85, 161, 152, 235, 40, 59, 104, 52, 155, 153, 253, 235, 210, 252, 89, 167, 78, 189, 71, 62, 250, 185, 169, 165, 235, 3, 243, 123, 127, 249, 147, 191, 253, 234, 221, 119, 239, 212, 232, 121, 62, 197, 200, 137, 253, 96, 127, 144, 213, 218, 252, 29, 245, 166, 103, 157, 126, 35, 221, 44, 223, 195, 19, 10, 81, 18, 130, 252, 219, 13, 254, 144, 116, 70, 86, 226, 33, 161, 4, 252, 215, 87, 9, 254, 0, 57, 21, 89, 106, 172, 194, 54, 251, 253, 193, 174, 225, 139, 189, 238, 22, 132, 54, 51, 138, 49, 254, 244, 106, 249, 12, 14, 79, 51, 105, 173, + 103, 245, 209, 33, 246, 79, 206, 72, 115, 79, 254, 13, 110, 98, 250, 74, 144, 82, 79, 81, 162, 106, 62, 144, 11, 226, 237, 216, 0, 46, 1, 253, 88, 127, 136, 74, 87, 198, 129, 172, 126, 29, 228, 79, 128, 192, 165, 115, 24, 105, 60, 232, 55, 223, 172, 250, 95, 36, 42, 225, 216, 126, 56, 199, 147, 237, 34, 242, 122, 233, 16, 142, 148, 155, 94, 249, 242, 136, 141, 167, 122, 132, 2, 106, 252, 120, 235, 60, 134, 149, 120, 207, 216, 88, 41, 214, 63, 32, 63, 108, 5, 246, 250, 170, 171, 45, 212, 192, 230, 216, 250, 219, 120, 253, 135, 236, 99, 95, 32, 212, 126, 227, 51, 73, 162, 94, 204, 113, 76, 30, 246, 39, 231, 51, 122, 138, 82, 217, 245, 23, 210, 184, 140, 249, 43, 175, 214, 251, 187, 220, 225, 255, 238, 86, 177, 195, 197, 170, 1, 249, 151, 79, 60, 127, 243, 83, 1, 150, 239, 182, 216, 128, 144, 232, 181, 205, 184, 127, 179, 18, 93, 76, 88, 240, 125, 77, 198, 143, 92, 237, 27, 58, 108, 24, 103, 230, 45, 206, 74, 24, + 217, 42, 68, 115, 233, 229, 213, 10, 45, 95, 8, 210, 117, 130, 65, 107, 255, 3, 92, 79, 63, 157, 190, 122, 210, 84, 107, 58, 87, 240, 122, 19, 139, 103, 25, 107, 89, 4, 30, 116, 144, 119, 176, 191, 159, 27, 75, 116, 52, 53, 135, 226, 89, 133, 233, 7, 252, 212, 245, 145, 233, 243, 251, 122, 240, 255, 177, 245, 52, 206, 96, 200, 243, 239, 145, 145, 133, 80, 143, 227, 117, 179, 113, 158, 177, 218, 224, 227, 73, 103, 179, 166, 31, 128, 252, 203, 95, 47, 98, 247, 155, 252, 143, 223, 47, 57, 65, 229, 237, 25, 252, 37, 6, 56, 42, 63, 58, 13, 224, 191, 19, 17, 228, 23, 78, 210, 223, 165, 191, 103, 254, 138, 92, 5, 247, 218, 77, 128, 205, 193, 61, 195, 225, 216, 187, 9, 40, 231, 128, 162, 255, 244, 67, 118, 63, 182, 210, 209, 111, 105, 199, 252, 197, 200, 139, 228, 92, 206, 195, 163, 209, 209, 209, 138, 7, 230, 211, 251, 193, 139, 157, 78, 43, 139, 121, 25, 239, 95, 109, 146, 196, 244, 103, 77, 223, 43, 134, 254, 204, 236, + 131, 141, 170, 189, 243, 216, 171, 230, 25, 243, 59, 203, 63, 74, 38, 125, 213, 84, 109, 134, 69, 75, 210, 232, 209, 226, 135, 32, 122, 168, 20, 227, 71, 212, 234, 25, 192, 146, 105, 176, 96, 62, 22, 57, 17, 1, 253, 40, 198, 22, 135, 233, 20, 87, 110, 249, 55, 215, 176, 239, 251, 137, 225, 135, 17, 26, 112, 74, 94, 5, 220, 202, 190, 183, 110, 174, 66, 99, 55, 80, 125, 38, 129, 28, 83, 184, 158, 241, 235, 135, 240, 105, 118, 234, 97, 177, 250, 176, 77, 216, 26, 87, 52, 172, 198, 223, 49, 255, 183, 93, 8, 21, 189, 94, 226, 103, 29, 243, 111, 109, 226, 12, 73, 201, 128, 196, 1, 102, 67, 241, 123, 187, 22, 87, 179, 35, 226, 182, 64, 9, 250, 251, 172, 237, 63, 72, 70, 234, 89, 254, 69, 34, 17, 131, 70, 159, 111, 55, 171, 231, 4, 182, 92, 73, 250, 3, 123, 241, 100, 178, 191, 13, 90, 36, 114, 199, 253, 123, 208, 112, 34, 230, 66, 49, 86, 2, 186, 249, 101, 210, 185, 11, 232, 197, 244, 61, 36, 165, 135, 152, + 127, 250, 120, 242, 252, 16, 84, 239, 140, 136, 211, 174, 159, 93, 114, 250, 173, 55, 211, 251, 231, 145, 232, 84, 39, 189, 218, 157, 189, 44, 31, 45, 105, 68, 209, 48, 66, 223, 44, 122, 127, 64, 143, 231, 147, 71, 220, 17, 96, 64, 219, 154, 137, 251, 71, 145, 145, 245, 224, 255, 81, 237, 95, 165, 248, 249, 99, 165, 30, 191, 164, 242, 203, 48, 255, 42, 217, 172, 90, 208, 115, 150, 198, 111, 224, 234, 248, 133, 245, 204, 141, 215, 213, 143, 189, 124, 43, 62, 188, 57, 131, 81, 22, 10, 104, 7, 231, 92, 253, 161, 137, 252, 199, 214, 51, 196, 210, 141, 223, 207, 218, 254, 101, 44, 254, 254, 76, 242, 188, 193, 106, 173, 180, 153, 140, 232, 126, 215, 61, 28, 138, 241, 71, 57, 240, 135, 100, 54, 22, 221, 158, 34, 173, 187, 88, 190, 62, 148, 159, 52, 116, 119, 117, 177, 248, 165, 0, 140, 87, 230, 111, 180, 79, 60, 127, 105, 112, 227, 240, 57, 129, 54, 12, 234, 245, 208, 156, 211, 255, 88, 61, 22, 42, 111, 60, 106, 6, 164, 58, 255, + 178, 145, 44, 110, 243, 150, 164, 191, 223, 30, 191, 164, 175, 133, 249, 3, 61, 80, 76, 194, 19, 14, 179, 227, 39, 147, 190, 116, 42, 19, 241, 166, 229, 119, 89, 61, 199, 38, 28, 205, 66, 120, 73, 96, 230, 235, 187, 117, 123, 182, 115, 2, 22, 88, 188, 97, 13, 66, 109, 75, 159, 95, 196, 236, 161, 115, 247, 12, 219, 81, 46, 247, 202, 244, 229, 249, 55, 213, 248, 131, 77, 170, 188, 43, 185, 254, 2, 246, 196, 217, 100, 191, 234, 174, 88, 214, 80, 219, 180, 179, 10, 137, 212, 116, 228, 165, 49, 132, 254, 155, 137, 197, 35, 52, 105, 241, 24, 224, 95, 189, 28, 29, 14, 119, 81, 249, 162, 94, 48, 7, 245, 151, 253, 76, 127, 238, 237, 157, 60, 255, 103, 218, 191, 7, 246, 192, 141, 215, 234, 21, 229, 191, 175, 27, 193, 31, 53, 84, 67, 155, 179, 186, 250, 17, 86, 127, 186, 70, 163, 151, 199, 227, 102, 245, 103, 50, 172, 158, 44, 236, 159, 113, 67, 81, 238, 7, 143, 35, 52, 237, 124, 2, 118, 189, 225, 223, 191, 158, 140, 4, + 217, 248, 128, 244, 188, 96, 40, 63, 254, 184, 248, 250, 139, 74, 191, 106, 104, 206, 154, 15, 41, 191, 65, 188, 149, 162, 116, 248, 87, 243, 53, 53, 69, 175, 127, 57, 17, 155, 98, 183, 131, 255, 233, 225, 69, 106, 134, 206, 140, 235, 205, 146, 253, 123, 168, 126, 32, 118, 184, 180, 2, 228, 100, 125, 211, 240, 195, 49, 8, 92, 108, 42, 13, 253, 94, 172, 195, 194, 175, 207, 93, 200, 213, 174, 15, 174, 246, 175, 240, 47, 112, 66, 60, 115, 234, 85, 9, 45, 64, 47, 27, 149, 175, 147, 167, 109, 85, 168, 119, 81, 11, 227, 223, 96, 80, 33, 35, 247, 250, 73, 3, 238, 7, 231, 189, 232, 117, 38, 203, 61, 94, 243, 158, 231, 114, 59, 54, 108, 110, 194, 124, 76, 181, 63, 74, 221, 223, 66, 255, 62, 181, 126, 83, 53, 138, 217, 232, 159, 107, 242, 15, 61, 100, 64, 123, 230, 92, 124, 85, 33, 204, 255, 181, 90, 167, 209, 187, 174, 141, 219, 75, 255, 175, 253, 226, 2, 238, 240, 14, 31, 138, 126, 113, 211, 67, 137, 95, 59, 11, 231, + 207, 157, 120, 136, 249, 187, 180, 116, 235, 169, 205, 31, 79, 38, 219, 97, 50, 192, 152, 55, 170, 244, 139, 2, 253, 232, 252, 177, 223, 68, 58, 217, 252, 145, 102, 39, 211, 1, 193, 206, 127, 57, 249, 99, 237, 252, 83, 87, 245, 105, 117, 188, 100, 175, 209, 95, 100, 243, 79, 185, 233, 199, 244, 103, 63, 110, 155, 42, 61, 254, 67, 243, 239, 167, 208, 111, 34, 61, 38, 210, 171, 220, 252, 150, 247, 60, 176, 255, 17, 190, 182, 255, 145, 86, 159, 215, 227, 233, 9, 32, 217, 91, 10, 121, 49, 187, 251, 111, 149, 26, 223, 207, 232, 133, 208, 83, 223, 170, 138, 176, 122, 134, 79, 247, 215, 163, 148, 148, 225, 148, 116, 73, 250, 35, 35, 55, 179, 249, 22, 99, 236, 247, 251, 124, 13, 26, 63, 170, 227, 211, 108, 116, 48, 250, 237, 28, 167, 159, 55, 165, 197, 123, 60, 209, 1, 249, 114, 94, 52, 99, 253, 111, 243, 222, 123, 224, 49, 229, 176, 64, 121, 133, 14, 187, 25, 143, 223, 201, 252, 127, 154, 253, 49, 139, 254, 191, 171, 254, 131, 165, + 241, 71, 57, 106, 13, 92, 60, 199, 9, 78, 206, 127, 166, 228, 254, 3, 211, 147, 27, 88, 189, 60, 6, 228, 139, 211, 127, 158, 245, 205, 156, 153, 147, 255, 169, 42, 188, 145, 225, 175, 1, 63, 74, 184, 214, 41, 178, 242, 218, 165, 226, 191, 152, 202, 127, 222, 134, 137, 242, 47, 95, 95, 116, 95, 173, 183, 35, 211, 86, 238, 241, 58, 169, 252, 187, 126, 255, 55, 152, 63, 192, 127, 90, 170, 249, 3, 226, 13, 157, 184, 63, 30, 227, 28, 158, 230, 96, 243, 85, 254, 51, 104, 254, 43, 136, 103, 105, 189, 58, 126, 157, 100, 208, 197, 242, 27, 149, 152, 2, 225, 196, 211, 238, 111, 5, 126, 112, 248, 156, 135, 91, 9, 245, 43, 81, 46, 113, 174, 248, 252, 192, 242, 103, 82, 90, 248, 90, 233, 223, 23, 200, 187, 103, 146, 10, 139, 191, 127, 255, 212, 41, 210, 247, 85, 63, 111, 214, 242, 23, 60, 158, 224, 224, 234, 131, 28, 191, 7, 33, 54, 161, 72, 25, 180, 189, 191, 99, 56, 241, 230, 171, 102, 117, 117, 19, 61, 89, 110, 126, 203, + 159, 15, 9, 215, 66, 5, 78, 85, 80, 197, 181, 182, 251, 153, 255, 25, 27, 37, 122, 206, 13, 69, 215, 167, 62, 107, 251, 111, 145, 221, 91, 40, 253, 80, 75, 149, 28, 101, 152, 255, 196, 204, 252, 127, 93, 59, 209, 31, 151, 100, 191, 77, 200, 95, 173, 199, 253, 203, 111, 191, 125, 235, 27, 151, 134, 37, 182, 31, 130, 168, 229, 175, 10, 158, 112, 254, 124, 211, 13, 241, 10, 237, 18, 36, 192, 121, 189, 115, 46, 127, 122, 156, 223, 92, 70, 244, 144, 17, 57, 11, 230, 191, 228, 211, 99, 3, 243, 223, 40, 74, 108, 106, 231, 119, 50, 127, 193, 45, 194, 234, 198, 21, 254, 142, 136, 72, 250, 150, 95, 139, 63, 117, 56, 60, 100, 240, 128, 90, 31, 6, 154, 253, 185, 231, 152, 255, 99, 7, 135, 94, 201, 125, 114, 249, 242, 165, 75, 247, 146, 155, 254, 174, 30, 245, 186, 13, 16, 124, 10, 4, 157, 43, 244, 195, 42, 253, 178, 87, 227, 39, 209, 21, 123, 41, 250, 99, 251, 181, 216, 112, 58, 28, 246, 56, 60, 225, 91, 227, 116, 188, + 94, 203, 23, 140, 198, 14, 146, 198, 16, 248, 7, 143, 48, 28, 63, 233, 36, 39, 60, 16, 175, 149, 134, 244, 8, 41, 51, 247, 248, 239, 223, 29, 191, 109, 37, 26, 191, 7, 82, 191, 76, 116, 41, 230, 208, 93, 95, 217, 253, 198, 27, 82, 154, 84, 122, 96, 190, 77, 55, 213, 84, 91, 113, 85, 85, 211, 164, 227, 55, 13, 227, 87, 132, 16, 192, 25, 211, 207, 180, 122, 179, 170, 239, 101, 70, 29, 72, 206, 229, 173, 23, 76, 23, 223, 168, 217, 31, 71, 48, 226, 222, 164, 255, 111, 83, 8, 215, 35, 67, 60, 23, 170, 154, 202, 126, 17, 211, 166, 31, 196, 255, 89, 177, 213, 231, 172, 182, 240, 6, 67, 88, 171, 191, 241, 43, 53, 254, 79, 178, 179, 249, 99, 179, 230, 63, 144, 93, 152, 233, 51, 219, 180, 120, 74, 49, 218, 95, 110, 126, 171, 101, 245, 151, 104, 227, 185, 214, 109, 240, 60, 80, 127, 170, 9, 71, 221, 208, 4, 135, 99, 239, 153, 125, 139, 89, 116, 28, 207, 206, 18, 181, 120, 55, 143, 27, 244, 135, 34, 208, 147, + 233, 75, 103, 147, 237, 53, 53, 53, 247, 189, 255, 254, 125, 53, 181, 31, 44, 230, 152, 246, 98, 110, 27, 67, 209, 77, 37, 247, 159, 176, 249, 74, 173, 87, 102, 116, 56, 4, 55, 105, 92, 48, 190, 222, 204, 2, 166, 10, 203, 187, 249, 28, 142, 178, 124, 159, 110, 112, 75, 143, 251, 227, 114, 60, 138, 186, 144, 104, 43, 245, 253, 87, 172, 220, 199, 226, 213, 178, 8, 61, 110, 64, 1, 171, 249, 136, 228, 201, 86, 34, 180, 250, 239, 41, 207, 167, 126, 90, 244, 122, 211, 249, 243, 87, 163, 182, 222, 135, 2, 144, 17, 54, 237, 241, 239, 12, 1, 63, 221, 204, 248, 233, 86, 144, 231, 243, 65, 159, 149, 44, 22, 174, 162, 210, 209, 92, 242, 250, 122, 108, 63, 128, 179, 201, 37, 28, 199, 209, 225, 203, 87, 108, 232, 128, 248, 191, 177, 143, 77, 78, 132, 172, 81, 140, 198, 227, 55, 181, 112, 42, 122, 127, 55, 141, 239, 223, 147, 129, 130, 112, 51, 238, 127, 176, 150, 229, 211, 209, 143, 241, 222, 102, 71, 201, 227, 93, 139, 78, 191, 202, + 175, 141, 231, 183, 13, 67, 193, 158, 194, 207, 91, 1, 245, 78, 152, 43, 99, 236, 224, 204, 227, 29, 103, 138, 115, 255, 21, 113, 55, 209, 161, 242, 211, 167, 17, 250, 63, 188, 106, 20, 85, 208, 191, 94, 250, 215, 143, 88, 204, 187, 186, 120, 6, 203, 231, 103, 115, 185, 151, 16, 219, 38, 97, 234, 173, 22, 49, 189, 103, 158, 205, 106, 197, 16, 5, 100, 69, 118, 87, 29, 155, 29, 88, 60, 223, 132, 147, 89, 208, 67, 181, 90, 172, 115, 252, 184, 253, 218, 113, 7, 164, 192, 79, 114, 221, 132, 102, 49, 227, 90, 103, 93, 45, 111, 177, 216, 109, 21, 216, 52, 191, 218, 225, 132, 102, 119, 58, 77, 230, 74, 71, 101, 165, 64, 113, 181, 195, 49, 127, 190, 213, 86, 229, 168, 157, 95, 235, 168, 165, 71, 171, 157, 46, 250, 175, 117, 190, 213, 81, 141, 29, 14, 155, 195, 110, 115, 56, 172, 22, 187, 121, 33, 237, 212, 49, 207, 62, 207, 81, 89, 83, 89, 105, 159, 103, 158, 87, 117, 125, 87, 185, 207, 121, 251, 255, 155, 255, 84, 91 +}; diff --git a/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft_data.h b/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft_data.h index fe01be7..9a44458 100644 --- a/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft_data.h +++ b/examples/EVE_Test_STM32_RiTFT50_PlatformIO/src/tft_data.h @@ -12,6 +12,6 @@ extern const uint8_t logo[239] PROGMEM; extern const uint8_t pic[3844] PROGMEM; -extern const uint8_t flash[12753] PROGMEM; +extern const uint8_t flash[8199] PROGMEM; #endif /* TFT_DATA_H */ \ No newline at end of file diff --git a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/.vs/Display_Test1/v14/.atsuo b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/.vs/Display_Test1/v14/.atsuo deleted file mode 100644 index 98b1c8a532b00e5ee764dda52cd2d9762eed8dc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15360 zcmeHNOOGR06|SDiV-i9_NC+Y1(FtKl($jYNZBH^GWmoyp?ruNI@A0H#m&ktg)+(cbKcU8mxGn** zF&5iyyLqRl!T-y+Nwz@anAh%L{aG>`P>yMVdmJ1krio(>d}B-p{1r%}&GaVC<{pXv z_0GSH-hQ;(BfYc#PIs_dCYwHkdv^hM178B}0cfst?>?MKhW7(s1s(t%1il751biKM z7@*hu2td!A(C1GApQioC-&!&3|C`Wf@ z|C`t5`Efk+1h5P|2|NXS3wRp%HgFdB4)6@{Ebtt#0-OU@0SiEVu{hKEYzG{G6L0}; zzyo*zYIh#z=Ybc13&4xOcY&7x4)6m3fCmI12!wzz5CPVJD6kG}0GmJzhyw{A35Y-n zNCO!l3*>-2V9wh-zl^#q;1!?*P`!k6Ww%V%pB9<%7sXv2L?RmEF&Ws4f-tB<$c%r? z@gCCj>aE96dYzOFbXfewBL?bDn$0~De~Kqh0W^lW4X18gLiygMNrfLX))0BM@Fu!A zFFJ3tyGOyFx}un8QT|1=CEX@Ufo~6d*D==~qCSzS8}C3zJV=pgZ_;e;k>*dLq}Xgx z{uj}fY@3M2PO>`Mt7IQx%J!v0D3i4Ga+)m#5>_D}YET>HJ(WSH*P? ztLr2)AY&Xl)@RxcQ%gGTdByYaUdD^xJsdS&x=%jNY{#Qt^0ckpp0nWJ#!9R)LySNJ zCk6cG@5NcnpZ3OPjBECL*x84h)?EjD82>c5lVo^EhH?_K$O8TpgVEl5QTb2LU&I_$ zW2KqQaU$m`W?VyU*Wf(4GmAULWT%!Mz%9xVEXv=Cwl9;?f@09R2BNAOcpZGl86$$5 zw3~N?{uwz+66d1)r{^EQ>}dt=A!<_~?cp_}n8$fi5C3;V`j>{bQPfp}&dI=jt>4r0 zd7~ivqj{S&uibS0^!$(Fe^fs1Eap!+9?JL77^eBmD_;+P9#R<~%BR?V7D4}RNd95G z^@<_;Hawq-w-Gcfg5E|KT5%MS{+Y5r&iws&^OX4`{nub|~AKWz}bJGJ)o|!(9 z|Gg3UlYW)KvxXnN@vPzTBt+q~1|3by;7|Km%7HE_f69lFza~1!-;XiK7()}gF%7!8 zf3=%DGktt!cm5>PMfsDh{(85QgZ#-`#QUe5{}aHX@~3!l-us_$A`dXhL~zi=4&nof{wNZo+G%nh zL;omWV8)-OkDWE|X+HDHj~|0SeN+9zZvJ6fvKz2_ih?Je$O7L;w$O$~RIn;hEJji4 zeoesqmuNpldD=zgPq8}f7l__C#WUxbBJyBeXuE94xQMJAWg&8EGDb*QBpPKAv3&;ELVLQ_QOe;>3h0l+`eR2gbl$?XfSj6hUw^B} zbV5F*z3_|a3MP-8C8rU#c@=kZ;A9hk7P*mFh@g?bk~rvj!a^m z;lKYo#`BIRR=Duqn?HH!aZ1?j^Js@lmE^elDw*%S{qE1`>FXkTm{^#d+(Ut}#OW#qM_6Y<8d9=XSa!$#)xZ{LPZM)6?aaC7`LQEa~X6X9>w|xvNN) zb)~1jV!L>8_F(vuUh;S4QnRBeZ9Sm1t4i(M^6a)Zb>NpSQNVM@mV$BjZr|!DWBJV1 zU?L8f^|{$Ym^Ivsmq^%W&fG;EnsldeVZM&ro?E;->Wub+pC*~(yb+!>?t^qAbqD)e zzSCQ%{9#N_jq;b+XOz%nwYBX|xsz6_Ap(hV=AqAa4^hvn05wTS$`1^%Om zy@P~u5&h6t{uX#h;PT2R$VtMeb@aa&nd{JEt*>oG@BgR3t>DG49sQo~oON%JI$FyK zM8~lO=-u7SU*G-c&u9O!v+-v0Og{RhxhZ|F(21 zyuSI9qs4WxMfl?{%uHv68%5^dhMr7R^`l!}7V|a20yo=%Bc#7}ku{x!ne<_pBoU^_ zdHT0{_3H4_^fOeR5aoV1u>jV}kw$$K(RYjo&}fPI*Ajo8#qU)< zAh-h_!Lcd`cK522_xM)5cDH|(^}2jczmMa+KF@2Hd8OA;OFLUBxu@HT`>rffr>iwC z^XH3Pw=64q@yWW@l8aA<6usUr7lSD;%dX;Ra}?!Ksnt>CUQx&hMps+84I#wY>|V~c z6%sa`lXj~vHjs+%=Ta0}Ww}z3D;cFCYeKuGv}L0kz0|GAx}|>k@~d9I!)wQH)oo|( zt2P^NTlIQ9>?#WidOa?WkGH=@E}bl!NO|cCEC&7yJNJ7?{Y<@i1BUR~YVK!0f)DN_ z6CpBe<-lQbheg`Lpvy|eA4?9|XsD)fpiMDd7t%G9{B+4B0$iTXRj<`orvjJT6q9U( z>-L%gcn9C-7IG*zxiLcJgjIgamb;L^i$Qf06mq6gN>Vmj&1@b!2u zv*9U?lF4A))oOMem6l}R=?~TDaJ?SYnx%viE(GLyR!;?llY+)BWk4v)fosV8Txq3V)3UnS@rHJG>T8J+%V*eVI8j&;n=7KoZKuj| zMvSaPV{BX&xRO1WjB5T+hT}C+@fRdn8Tz0l`ROhd|Jr59Hpu* z`@^ku)={&^YPFRno2t0I(#V=>##^It&fc%}bylnh{hA`IC56Gb(CGX7^-8@zs?^zp z+nw<>o85$6ZOhGaLa2ltAz4fnTAI>YQ(EJ8CZ{>P1^3!YN6hHu@(SNjU0SReks6wN zeN7yt>IKoN$gQkx+_uFVt+ux2P~DYA$rBrI?reAM)pSsFM;zVk(5JT9sMT%n>A8Tl zy3NJ8oMWZ#(_Ef%&}!HpC#Ey8WYiVNM)qb*VP*+iVM^f~BubG^!q0m{6=ok?fa}vE#=TBTbtPuI=q$w zC&FjHWYIY9c%j`_Rr-JMqU6d2Uw?Sx!}tDv?mpMC^8br6`h?n@Y|OhCly|JZcx^lo nfBT=!pFj3C37S60Ow)Yf-|F9gba=VN(|0HKe^3){b^HGxxA+{j diff --git a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE.h b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE.h index 5464d82..0831fc3 100644 --- a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE.h +++ b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE.h @@ -602,7 +602,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #define COLOR_MASK(r,g,b,a) ((DL_COLOR_MASK) | (((r) & 1UL) << 3U) | (((g) & 1UL) << 2U) | (((b) & 1UL) << 1U) | ((a) & 1UL)) #define COLOR_RGB(red,green,blue) ((DL_COLOR_RGB) | (((red) & 0xFFUL) << 16U) | (((green) & 0xFFUL) << 8U) | ((blue) & 0xFFUL)) #define JUMP(dest) ((DL_JUMP) | ((dest) & 0xFFFFUL)) -#define LINE_WIDTH(width) ((DL_LINE_WIDTH) | ((width) & 0xFFFUL)) +#define LINE_WIDTH(width) ((DL_LINE_WIDTH) | (((uint32_t) (width)) & 0xFFFUL)) #define MACRO(m) ((DL_MACRO) | ((m) & 1UL)) #define PALETTE_SOURCE(addr) ((DL_PALETTE_SOURCE) | ((addr) & 0x3FFFFF3UL)) #define POINT_SIZE(size) ((DL_POINT_SIZE) | ((size) & 0x1FFFUL)) @@ -613,7 +613,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #define STENCIL_OP(sfail,spass) ((DL_STENCIL_OP) | (((sfail) & 7UL) << 3U) | ((spass) & 7UL)) #define TAG(s) ((DL_TAG) | ((s) & 0xFFUL)) #define TAG_MASK(mask) ((DL_TAG_MASK) | ((mask) & 1UL)) -#define VERTEX2F(x,y) ((DL_VERTEX2F) | (((x) & 0x7FFFUL) << 15U) | ((y) & 0x7FFFUL)) +#define VERTEX2F(x,y) ((DL_VERTEX2F) | ((((uint32_t) (x)) & 0x7FFFUL) << 15U) | (((uint32_t) (y)) & 0x7FFFUL)) #define VERTEX2II(x,y,handle,cell) ((DL_VERTEX2II) | (((x) & 0x1FFUL) << 21U) | (((y) & 0x1FFUL) << 12U) | (((handle) & 0x1FUL) << 7U) | ((cell) & 0x7FUL)) #define VERTEX_FORMAT(frac) ((DL_VERTEX_FORMAT) | ((frac) & 7UL)) #define VERTEX_TRANSLATE_X(x) ((DL_VERTEX_TRANSLATE_X) | ((x) & 0x1FFFFUL)) diff --git a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE_commands.c b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE_commands.c index 5d1d311..10abc8e 100644 --- a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE_commands.c +++ b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE_commands.c @@ -2,7 +2,7 @@ @file EVE_commands.c @brief contains FT8xx / BT8xx functions @version 5.0 -@date 2022-12-19 +@date 2022-12-30 @author Rudolph Riedel @section info @@ -119,6 +119,8 @@ without the traling _burst in the name when exceution speed is not an issue - e. - basic maintenance: checked for violations of white space and indent rules - more linter fixes for minor issues like variables shorter than 3 characters - added EVE_color_a() / EVE_color_a_burst() +- more minor tweaks and fixes to make the static analyzer happy +- changed the burst variant of private_string_write() back to the older and faster version */ @@ -126,7 +128,7 @@ without the traling _burst in the name when exceution speed is not an issue - e. /* EVE Memory Commands - used with EVE_memWritexx and EVE_memReadxx */ #define MEM_WRITE 0x80U /* EVE Host Memory Write */ -//#define MEM_READ 0x00U /* EVE Host Memory Read */ +/* #define MEM_READ 0x00U */ /* EVE Host Memory Read */ /* define NULL if it not already is */ #ifndef NULL @@ -164,8 +166,8 @@ uint16_t EVE_memRead16(uint32_t ft_address) uint16_t data; EVE_cs_set(); spi_transmit_32(((ft_address >> 16U) & 0x0000007fUL) + (ft_address & 0x0000ff00UL) + ((ft_address & 0x000000ffUL) << 16U)); - data = ((uint16_t)spi_receive(0U)); /* read low byte */ - data = ((uint16_t)spi_receive(0U) << 8U) | data; /* read high byte */ + data = ((uint16_t) spi_receive(0U)); /* read low byte */ + data = (((uint16_t) spi_receive(0U)) << 8U) | data; /* read high byte */ EVE_cs_clear(); return data; } @@ -175,10 +177,10 @@ uint32_t EVE_memRead32(uint32_t ft_address) uint32_t data; EVE_cs_set(); spi_transmit_32(((ft_address >> 16U) & 0x0000007fUL) + (ft_address & 0x0000ff00UL) + ((ft_address & 0x000000ffUL) << 16U)); - data = ((uint32_t)spi_receive(0U)); /* read low byte */ - data = ((uint32_t)spi_receive(0U) << 8U) | data; - data = ((uint32_t)spi_receive(0U) << 16U) | data; - data = ((uint32_t)spi_receive(0U) << 24U) | data; /* read high byte */ + data = ((uint32_t) spi_receive(0U)); /* read low byte */ + data = ((uint32_t) spi_receive(0U) << 8U) | data; + data = ((uint32_t) spi_receive(0U) << 16U) | data; + data = ((uint32_t) spi_receive(0U) << 24U) | data; /* read high byte */ EVE_cs_clear(); return data; } @@ -933,15 +935,15 @@ void EVE_cmd_snapshot2(uint32_t fmt, uint32_t ptr, int16_t xc0, int16_t yc0, int spi_transmit_32(fmt); spi_transmit_32(ptr); - spi_transmit((uint8_t)(xc0)); - spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); - spi_transmit((uint8_t)(yc0)); - spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); - spi_transmit((uint8_t)(wid)); - spi_transmit((uint8_t)(((uint16_t) wid) >> 8U)); - spi_transmit((uint8_t)(hgt)); - spi_transmit((uint8_t)(((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); EVE_cs_clear(); EVE_execute_cmd(); @@ -952,18 +954,18 @@ void EVE_cmd_track(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t t { eve_begin_cmd(CMD_TRACK); - spi_transmit((uint8_t)(xc0)); - spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); - spi_transmit((uint8_t)(yc0)); - spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); - spi_transmit((uint8_t)(wid)); - spi_transmit((uint8_t)(((uint16_t) wid) >> 8U)); - spi_transmit((uint8_t)(hgt)); - spi_transmit((uint8_t)(((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); - spi_transmit((uint8_t)(tag)); - spi_transmit((uint8_t)(((uint16_t) tag) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) tag)); + spi_transmit((uint8_t) (((uint16_t) tag) >> 8U)); spi_transmit(0U); spi_transmit(0U); @@ -1070,7 +1072,6 @@ uint8_t EVE_init_flash(void) #endif /* EVE_GEN > 2 */ -/* FT811 / FT813 binary-blob from FTDIs AN_336 to patch the touch-engine for Goodix GT911 / GT9271 touch controllers */ #if defined(EVE_HAS_GT911) #if defined(__AVR__) @@ -1078,8 +1079,16 @@ uint8_t EVE_init_flash(void) #else #define PROGMEM #endif +void use_gt911(void); -const uint8_t EVE_GT911_data[1184U] PROGMEM = { +void use_gt911(void) +{ +#if EVE_GEN > 2 + EVE_memWrite16(REG_TOUCH_CONFIG, 0x05d0U); /* switch to Goodix touch controller */ +#else + +/* FT811 / FT813 binary-blob from FTDIs AN_336 to patch the touch-engine for Goodix GT911 / GT9271 touch controllers */ +const uint8_t eve_gt911_data[1184U] PROGMEM = { 26, 255, 255, 255, 32, 32, 48, 0, 4, 0, 0, 0, 2, 0, 0, 0, 34, 255, 255, 255, 0, 176, 48, 0, 120, 218, 237, 84, 221, 111, 84, 69, 20, 63, 51, 179, 93, 160, 148, 101, 111, 76, 5, 44, 141, 123, 111, 161, 11, 219, 154, 16, 9, 16, 17, 229, 156, 75, 26, 11, 13, 21, 227, 3, 16, 252, 184, 179, 45, @@ -1132,6 +1141,28 @@ const uint8_t EVE_GT911_data[1184U] PROGMEM = { 140, 175, 73, 112, 184, 252, 61, 184, 16, 90, 250, 35, 168, 82, 119, 176, 57, 116, 94, 200, 150, 22, 190, 179, 44, 104, 12, 235, 84, 149, 102, 252, 89, 154, 193, 99, 228, 106, 242, 125, 248, 64, 194, 255, 223, 127, 242, 83, 11, 255, 2, 70, 214, 226, 128, 0, 0}; + + EVE_cs_set(); + spi_transmit((uint8_t) 0xB0U); /* high-byte of REG_CMDB_WRITE + MEM_WRITE */ + spi_transmit((uint8_t) 0x25U); /* middle-byte of REG_CMDB_WRITE */ + spi_transmit((uint8_t) 0x78U); /* low-byte of REG_CMDB_WRITE */ + private_block_write(eve_gt911_data, sizeof(eve_gt911_data)); + EVE_cs_clear(); + EVE_execute_cmd(); + + EVE_memWrite8(REG_TOUCH_OVERSAMPLE, 0x0fU); /* setup oversample to 0x0f as "hidden" in binary-blob for AN_336 */ + EVE_memWrite16(REG_TOUCH_CONFIG, 0x05D0U); /* write magic cookie as requested by AN_336 */ + + /* specific to the EVE2 modules from Matrix-Orbital we have to use GPIO3 to reset GT911 */ + EVE_memWrite16(REG_GPIOX_DIR, 0x8008U); /* Reset-Value is 0x8000, adding 0x08 sets GPIO3 to output, default-value + for REG_GPIOX is 0x8000 -> Low output on GPIO3 */ + DELAY_MS(1U); /* wait more than 100�s */ + EVE_memWrite8(REG_CPURESET, 0U); /* clear all resets */ + DELAY_MS(110U); /* wait more than 55ms - does not work with multitouch, for some reason a minimum delay of 108ms is + required */ + EVE_memWrite16(REG_GPIOX_DIR, 0x8000U); /* setting GPIO3 back to input */ +#endif +} #endif /* EVE chip initialization, has to be executed with the SPI setup to 11 MHz or less as required by FT8xx / BT8xx! */ @@ -1167,17 +1198,20 @@ uint8_t EVE_init(void) EVE_cmdWrite(EVE_ACTIVE, 0U); /* start EVE */ /* - BRT AN033 BT81X_Series_Programming_Guide V1.2 added a delay of at least 300ms as a requirement after sending command - ACTIVE. Together with the sentence: "Ensure that there is no SPI access during this time." AN033 - BT81X_Series_Programming_Guide V2.0 removed this delay requirement again. From observation of the startup-behavior - of quite a number of displays, reading REG_ID immediately after sending command ACTIVE is not an issue, but a BT815 - running at 72MHzs needs about 42ms before it answers anyways. So I added a fixed delay of 40ms as a compromise, this - provides a moment of silence on the SPI without actually delaying the startup. + BRT AN033 BT81X_Series_Programming_Guide V1.2 added a delay of at least 300ms + as a requirement after sending command ACTIVE. + Together with the sentence: "Ensure that there is no SPI access during this time." + AN033 BT81X_Series_Programming_Guide V2.0 removed this delay requirement again. + From observation of the startup-behavior of quite a number of displays, + reading REG_ID immediately after sending command ACTIVE is not an issue, + but a BT815 running at 72MHzs needs about 42ms before it answers anyways. + So I added a fixed delay of 40ms as a compromise, this provides a moment + of silence on the SPI without actually delaying the startup. */ DELAY_MS(40U); - while (chipid != 0x7CU) /* if chipid is not 0x7c, continue to read it until it is, EVE needs a moment for its power - on self-test and configuration */ + while (chipid != 0x7CU) /* if chipid is not 0x7c, continue to read it until it is, + EVE needs a moment for its power on self-test and configuration */ { DELAY_MS(1U); chipid = EVE_memRead8(REG_ID); @@ -1193,8 +1227,8 @@ uint8_t EVE_init(void) { DELAY_MS(1U); timeout++; - if (timeout > 50U) /* experimental, 10 was the lowest value to get the BT815 started with, the touch-controller - was the last to get out of reset */ + if (timeout > 50U) /* experimental, 10 was the lowest value to get the BT815 started with, + the touch-controller was the last to get out of reset */ { return EVE_FAIL_RESET_TIMEOUT; } @@ -1202,36 +1236,13 @@ uint8_t EVE_init(void) /* tell EVE that we changed the frequency from default to 72MHz for BT8xx */ #if EVE_GEN > 2 - EVE_memWrite32(REG_FREQUENCY, 72000000U); + EVE_memWrite32(REG_FREQUENCY, 72000000UL); #endif /* we have a display with a Goodix GT911 / GT9271 touch-controller on it, so we patch our FT811 or FT813 according to - * AN_336 or setup a BT815 accordingly */ + * AN_336 or setup a BT815 / BT817 accordingly */ #if defined(EVE_HAS_GT911) - -#if EVE_GEN > 2 - EVE_memWrite16(REG_TOUCH_CONFIG, 0x05d0U); /* switch to Goodix touch controller */ -#else - EVE_cs_set(); - spi_transmit((uint8_t) 0xB0U); /* high-byte of REG_CMDB_WRITE + MEM_WRITE */ - spi_transmit((uint8_t) 0x25U); /* middle-byte of REG_CMDB_WRITE */ - spi_transmit((uint8_t) 0x78U); /* low-byte of REG_CMDB_WRITE */ - private_block_write(EVE_GT911_data, sizeof(EVE_GT911_data)); - EVE_cs_clear(); - EVE_execute_cmd(); - - EVE_memWrite8(REG_TOUCH_OVERSAMPLE, 0x0fU); /* setup oversample to 0x0f as "hidden" in binary-blob for AN_336 */ - EVE_memWrite16(REG_TOUCH_CONFIG, 0x05D0U); /* write magic cookie as requested by AN_336 */ - - /* specific to the EVE2 modules from Matrix-Orbital we have to use GPIO3 to reset GT911 */ - EVE_memWrite16(REG_GPIOX_DIR, 0x8008U); /* Reset-Value is 0x8000, adding 0x08 sets GPIO3 to output, default-value - for REG_GPIOX is 0x8000 -> Low output on GPIO3 */ - DELAY_MS(1U); /* wait more than 100�s */ - EVE_memWrite8(REG_CPURESET, 0U); /* clear all resets */ - DELAY_MS(110U); /* wait more than 55ms - does not work with multitouch, for some reason a minimum delay of 108ms is - required */ - EVE_memWrite16(REG_GPIOX_DIR, 0x8000U); /* setting GPIO3 back to input */ -#endif + use_gt911(); #endif /* EVE_memWrite8(REG_PCLK, 0U); */ /* set PCLK to zero - don't clock the LCD until later, line disabled because @@ -1417,28 +1428,43 @@ static void private_string_write(const char *p_text) } else { - uint8_t textindex = 0U; - uint32_t calc = 0U; - uint8_t byteindex = 0U; - uint8_t data; - - do + for(uint8_t textindex = 0U; textindex < 249U;) { - data = p_bytes[textindex]; - textindex++; - calc += (uint32_t)(data) << (8U * byteindex); - byteindex++; - if (byteindex > 3U) + uint32_t calc = 0U; + uint8_t data; + + data = p_bytes[textindex++]; + if(0U == data) + { + spi_transmit_burst(calc); + break; + } + calc += (uint32_t) (data); + + data = p_bytes[textindex++]; + if(0U == data) { spi_transmit_burst(calc); - calc = 0U; - byteindex = 0U; + break; } - } - while ((textindex < 249U) && (data != 0U)); + calc += ((uint32_t) data) << 8U; + + data = p_bytes[textindex++]; + if(0U == data) + { + spi_transmit_burst(calc); + break; + } + calc += ((uint32_t) data) << 16U; + + data = p_bytes[textindex++]; + if(0U == data) + { + spi_transmit_burst(calc); + break; + } + calc += ((uint32_t) data) << 24U; - if (byteindex > 0U) - { spi_transmit_burst(calc); } } @@ -1450,16 +1476,13 @@ static void private_string_write(const char *p_text) void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMFRAMERAM); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); spi_transmit_32(aoptr); spi_transmit_32(frame); EVE_cs_clear(); @@ -1467,7 +1490,7 @@ void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, else { spi_transmit_burst(CMD_ANIMFRAMERAM); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1476,11 +1499,8 @@ void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, void EVE_cmd_animframeram_burst(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_ANIMFRAMERAM); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1538,21 +1558,15 @@ void EVE_cmd_calibratesub(uint16_t xc0, uint16_t yc0, uint16_t width, { if (0U == cmd_burst) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - eve_begin_cmd(CMD_CALIBRATESUB); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(width)); - spi_transmit((uint8_t)(width >> 8U)); - spi_transmit((uint8_t)(height)); - spi_transmit((uint8_t)(height >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) (width)); + spi_transmit((uint8_t) (width >> 8U)); + spi_transmit((uint8_t) (height)); + spi_transmit((uint8_t) (height >> 8U)); EVE_cs_clear(); } } @@ -1651,18 +1665,13 @@ void EVE_cmd_animdraw_burst(int32_t chnl) void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMFRAME); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); spi_transmit_32(aoptr); spi_transmit_32(frame); EVE_cs_clear(); @@ -1670,7 +1679,7 @@ void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) else { spi_transmit_burst(CMD_ANIMFRAME); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1679,11 +1688,8 @@ void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) void EVE_cmd_animframe_burst(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_ANIMFRAME); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(aoptr); spi_transmit_burst(frame); } @@ -1693,7 +1699,6 @@ void EVE_cmd_animstart(int32_t chnl, uint32_t aoptr, uint32_t loop) if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMSTART); - spi_transmit_32((uint32_t) chnl); spi_transmit_32(aoptr); spi_transmit_32(loop); @@ -1739,37 +1744,29 @@ void EVE_cmd_animstop_burst(int32_t chnl) void EVE_cmd_animxy(int32_t chnl, int16_t xc0, int16_t yc0) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_ANIMXY); spi_transmit_32((uint32_t) chnl); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_ANIMXY); spi_transmit_burst((uint32_t) chnl); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); } } void EVE_cmd_animxy_burst(int32_t chnl, int16_t xc0, int16_t yc0) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_ANIMXY); spi_transmit_burst((uint32_t) chnl); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); } void EVE_cmd_appendf(uint32_t ptr, uint32_t num) @@ -1895,32 +1892,27 @@ void EVE_cmd_fillwidth_burst(uint32_t pixel) void EVE_cmd_gradienta(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, int16_t yc1, uint32_t argb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - if (0U == cmd_burst) { eve_begin_cmd(CMD_GRADIENTA); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); spi_transmit_32(argb0); - spi_transmit((uint8_t)(xcu1)); - spi_transmit((uint8_t)(xcu1 >> 8U)); - spi_transmit((uint8_t)(ycu1)); - spi_transmit((uint8_t)(ycu1 >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc1)); + spi_transmit((uint8_t) (((uint16_t) xc1) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc1)); + spi_transmit((uint8_t) (((uint16_t) yc1) >> 8U)); spi_transmit_32(argb1); EVE_cs_clear(); } else { spi_transmit_burst(CMD_GRADIENTA); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(argb0); - spi_transmit_burst((uint32_t) xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(argb1); } } @@ -1928,15 +1920,10 @@ void EVE_cmd_gradienta(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, void EVE_cmd_gradienta_burst(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, int16_t yc1, uint32_t argb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - spi_transmit_burst(CMD_GRADIENTA); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(argb0); - spi_transmit_burst((uint32_t) xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(argb1); } @@ -1976,31 +1963,21 @@ void EVE_cmd_button_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_BUTTON); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2018,9 +1995,9 @@ void EVE_cmd_button_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, else { spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + ((uint32_t)ycu0 << 16U)); - spi_transmit_burst((uint32_t) widu + ((uint32_t)hgtu << 16U)); - spi_transmit_burst((uint32_t) fontu + ((uint32_t)options << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + ((uint32_t) options << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2041,16 +2018,10 @@ void EVE_cmd_button_var_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + ((uint32_t) ycu0 << 16U)); - spi_transmit_burst((uint32_t) widu + ((uint32_t) hgtu << 16U)); - spi_transmit_burst((uint32_t) fontu + ((uint32_t) options << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + ((uint32_t) options << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2070,24 +2041,17 @@ void EVE_cmd_text_var(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TEXT); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2105,8 +2069,8 @@ void EVE_cmd_text_var(int16_t xc0, int16_t yc0, int16_t font, else { spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2127,13 +2091,9 @@ void EVE_cmd_text_var_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2153,30 +2113,21 @@ void EVE_cmd_toggle_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TOGGLE); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(state)); - spi_transmit((uint8_t)(state >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (state)); + spi_transmit((uint8_t) (state >> 8U)); private_string_write(p_text); if ((options & EVE_OPT_FORMAT) != 0U) @@ -2194,8 +2145,8 @@ void EVE_cmd_toggle_var(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, else { spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font) << 16U))); spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); private_string_write(p_text); @@ -2217,14 +2168,9 @@ void EVE_cmd_toggle_var_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t fon uint16_t options, uint16_t state, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font) << 16U))); spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); private_string_write(p_text); @@ -2301,9 +2247,9 @@ void EVE_cmd_bgcolor(uint32_t color) if (0U == cmd_burst) { eve_begin_cmd(CMD_BGCOLOR); - spi_transmit((uint8_t)(color)); - spi_transmit((uint8_t)(color >> 8U)); - spi_transmit((uint8_t)(color >> 16U)); + spi_transmit((uint8_t) (color)); + spi_transmit((uint8_t) (color >> 8U)); + spi_transmit((uint8_t) (color >> 16U)); spi_transmit(0U); EVE_cs_clear(); } @@ -2323,43 +2269,30 @@ void EVE_cmd_bgcolor_burst(uint32_t color) void EVE_cmd_button(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_BUTTON); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } } @@ -2367,16 +2300,10 @@ void EVE_cmd_button(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_BUTTON); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } @@ -2390,33 +2317,24 @@ void EVE_cmd_calibrate(void) } } -void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs) +void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, + uint16_t mins, uint16_t secs, uint16_t msecs) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - if (0U == cmd_burst) { eve_begin_cmd(CMD_CLOCK); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(radu)); - spi_transmit((uint8_t)(radu >> 8U)); + spi_transmit((uint8_t)((uint16_t) xc0)); + spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) yc0)); + spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) rad)); + spi_transmit((uint8_t)(((uint16_t) rad) >> 8U)); spi_transmit((uint8_t)(options)); spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(hours)); spi_transmit((uint8_t)(hours >> 8U)); spi_transmit((uint8_t)(mins)); spi_transmit((uint8_t)(mins >> 8U)); - spi_transmit((uint8_t)(secs)); spi_transmit((uint8_t)(secs >> 8U)); spi_transmit((uint8_t)(msecs)); @@ -2426,61 +2344,47 @@ void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, else { spi_transmit_burst(CMD_CLOCK); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) hours + (((uint32_t) mins) << 16U)); spi_transmit_burst((uint32_t) secs + (((uint32_t) msecs) << 16U)); } } -void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs) +void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, + uint16_t mins, uint16_t secs, uint16_t msecs) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - spi_transmit_burst(CMD_CLOCK); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) hours + (((uint32_t) mins) << 16U)); spi_transmit_burst((uint32_t) secs + (((uint32_t) msecs) << 16U)); } -void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, - uint16_t options, uint16_t val) +void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - if (0U == cmd_burst) { eve_begin_cmd(CMD_DIAL); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(radu)); - spi_transmit((uint8_t)(radu >> 8U)); + spi_transmit((uint8_t)((uint16_t) xc0)); + spi_transmit((uint8_t)(((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) yc0)); + spi_transmit((uint8_t)(((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t)((uint16_t) rad)); + spi_transmit((uint8_t)(((uint16_t) rad) >> 8U)); spi_transmit((uint8_t)(options)); spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); spi_transmit((uint8_t)(val >> 8U)); spi_transmit(0U); spi_transmit(0U); - EVE_cs_clear(); } else { spi_transmit_burst(CMD_DIAL); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst(val); } } @@ -2488,13 +2392,9 @@ void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, void EVE_cmd_dial_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - spi_transmit_burst(CMD_DIAL); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) xc0) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst((uint32_t) ((uint16_t) rad) + (((uint32_t) options) << 16U)); spi_transmit_burst(val); } @@ -2526,43 +2426,34 @@ void EVE_cmd_gauge(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - if (0U == cmd_burst) { eve_begin_cmd(CMD_GAUGE); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(radu)); - spi_transmit((uint8_t)(radu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - - spi_transmit((uint8_t)(major)); - spi_transmit((uint8_t)(major >> 8U)); - spi_transmit((uint8_t)(minor)); - spi_transmit((uint8_t)(minor >> 8U)); - - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) rad)); + spi_transmit((uint8_t) (((uint16_t) rad) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (major)); + spi_transmit((uint8_t) (major >> 8U)); + spi_transmit((uint8_t) (minor)); + spi_transmit((uint8_t) (minor >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_GAUGE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); - spi_transmit_burst((uint32_t) major + (((uint32_t) minor) << 16U)); - spi_transmit_burst((uint32_t) val + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) rad)) + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) major) + (((uint32_t) minor) << 16U)); + spi_transmit_burst(((uint32_t) val) + (((uint32_t) range) << 16U)); } } @@ -2570,15 +2461,11 @@ void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options uint16_t major, uint16_t minor, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t radu = (uint16_t) rad; - spi_transmit_burst(CMD_GAUGE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) radu + (((uint32_t) options) << 16U)); - spi_transmit_burst((uint32_t) major + (((uint32_t) minor) << 16U)); - spi_transmit_burst((uint32_t) val + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) rad)) + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) major) + (((uint32_t) minor) << 16U)); + spi_transmit_burst(((uint32_t) val) + (((uint32_t) range) << 16U)); } /* EVE_cmd_getmatrix() is meant to be called with display-list building. */ @@ -2665,43 +2552,33 @@ void EVE_cmd_gradcolor_burst(uint32_t color) void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - if (0U == cmd_burst) { eve_begin_cmd(CMD_GRADIENT); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(rgb0)); - spi_transmit((uint8_t)(rgb0 >> 8U)); - spi_transmit((uint8_t)(rgb0 >> 16U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) (rgb0)); + spi_transmit((uint8_t) (rgb0 >> 8U)); + spi_transmit((uint8_t) (rgb0 >> 16U)); spi_transmit(0U); - - spi_transmit((uint8_t)(xcu1)); - spi_transmit((uint8_t)(xcu1 >> 8U)); - spi_transmit((uint8_t)(ycu1)); - spi_transmit((uint8_t)(ycu1 >> 8U)); - - spi_transmit((uint8_t)(rgb1)); - spi_transmit((uint8_t)(rgb1 >> 8U)); - spi_transmit((uint8_t)(rgb1 >> 16U)); + spi_transmit((uint8_t) ((uint16_t) xc1)); + spi_transmit((uint8_t) (((uint16_t) xc1) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc1)); + spi_transmit((uint8_t) (((uint16_t) yc1) >> 8U)); + spi_transmit((uint8_t) (rgb1)); + spi_transmit((uint8_t) (rgb1 >> 8U)); + spi_transmit((uint8_t) (rgb1 >> 16U)); spi_transmit(0U); - EVE_cs_clear(); } else { spi_transmit_burst(CMD_GRADIENT); - spi_transmit_burst((uint32_t)xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(rgb0); - spi_transmit_burst((uint32_t)xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(rgb1); } } @@ -2709,56 +2586,40 @@ void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, void EVE_cmd_gradient_burst(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t xcu1 = (uint16_t) xc1; - uint16_t ycu1 = (uint16_t) yc1; - spi_transmit_burst(CMD_GRADIENT); - spi_transmit_burst((uint32_t)xcu0 + (((uint32_t) ycu0) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); spi_transmit_burst(rgb0); - spi_transmit_burst((uint32_t)xcu1 + (((uint32_t) ycu1) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U)); spi_transmit_burst(rgb1); } void EVE_cmd_keys(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_KEYS); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_KEYS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); - + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } } @@ -2766,49 +2627,35 @@ void EVE_cmd_keys(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_KEYS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); - + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } void EVE_cmd_number(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_NUMBER); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); spi_transmit_32((uint32_t) number); EVE_cs_clear(); } else { spi_transmit_burst(CMD_NUMBER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) number); } } @@ -2816,56 +2663,42 @@ void EVE_cmd_number(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, void EVE_cmd_number_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_NUMBER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); spi_transmit_burst((uint32_t) number); } void EVE_cmd_progress(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_PROGRESS); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); spi_transmit(0U); /* dummy byte for 4-byte alignment */ spi_transmit(0U); /* dummy byte for 4-byte alignment */ - EVE_cs_clear(); } else { spi_transmit_burst(CMD_PROGRESS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + ((uint32_t)val << 16U)); spi_transmit_burst((uint32_t) range); } } @@ -2873,15 +2706,10 @@ void EVE_cmd_progress(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_PROGRESS); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + ((uint32_t)val << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + ((uint32_t)val << 16U)); spi_transmit_burst((uint32_t) range); } @@ -2957,60 +2785,45 @@ void EVE_cmd_scale_burst(int32_t scx, int32_t scy) void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SCROLLBAR); - - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - - spi_transmit((uint8_t)(size)); - spi_transmit((uint8_t)(size >> 8U)); - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); - + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (size)); + spi_transmit((uint8_t) (size >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_SCROLLBAR); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); - spi_transmit_burst((uint32_t) size + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) size) + (((uint32_t) range) << 16U)); } } void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_SCROLLBAR); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); - spi_transmit_burst((uint32_t) size + (((uint32_t) range) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) size) + (((uint32_t) range) << 16U)); } void EVE_cmd_setbase(uint32_t base) @@ -3041,17 +2854,14 @@ void EVE_cmd_setbitmap(uint32_t addr, uint16_t fmt, uint16_t width, { eve_begin_cmd(CMD_SETBITMAP); spi_transmit_32(addr); - spi_transmit((uint8_t)(fmt)); spi_transmit((uint8_t)(fmt >> 8U)); spi_transmit((uint8_t)(width)); spi_transmit((uint8_t)(width >> 8U)); - spi_transmit((uint8_t)(height)); spi_transmit((uint8_t)(height >> 8U)); spi_transmit(0U); spi_transmit(0U); - EVE_cs_clear(); } else @@ -3147,25 +2957,20 @@ void EVE_cmd_setscratch_burst(uint32_t handle) void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SKETCH); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); spi_transmit_32(ptr); - spi_transmit((uint8_t)(format)); - spi_transmit((uint8_t)(format >> 8U)); + spi_transmit((uint8_t) (format)); + spi_transmit((uint8_t) (format >> 8U)); spi_transmit(0U); spi_transmit(0U); EVE_cs_clear(); @@ -3173,8 +2978,8 @@ void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, else { spi_transmit_burst(CMD_SKETCH); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); spi_transmit_burst(ptr); spi_transmit_burst((uint32_t) format); } @@ -3183,14 +2988,9 @@ void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_SKETCH); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); spi_transmit_burst(ptr); spi_transmit_burst((uint32_t) format); } @@ -3198,28 +2998,23 @@ void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SLIDER); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(hgtu)); - spi_transmit((uint8_t)(hgtu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(val)); - spi_transmit((uint8_t)(val >> 8U)); - spi_transmit((uint8_t)(range)); - spi_transmit((uint8_t)(range >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) hgt)); + spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (val)); + spi_transmit((uint8_t) (val >> 8U)); + spi_transmit((uint8_t) (range)); + spi_transmit((uint8_t) (range >> 8U)); spi_transmit(0U); /* dummy byte for 4-byte alignment */ spi_transmit(0U); /* dummy byte for 4-byte alignment */ EVE_cs_clear(); @@ -3227,9 +3022,9 @@ void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, else { spi_transmit_burst(CMD_SLIDER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); spi_transmit_burst((uint32_t) range); } } @@ -3237,81 +3032,66 @@ void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t hgtu = (uint16_t) hgt; - spi_transmit_burst(CMD_SLIDER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) hgtu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) val) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U)); spi_transmit_burst((uint32_t) range); } void EVE_cmd_spinner(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - if (0U == cmd_burst) { eve_begin_cmd(CMD_SPINNER); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(style)); - spi_transmit((uint8_t)(style >> 8U)); - spi_transmit((uint8_t)(scale)); - spi_transmit((uint8_t)(scale >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) (style)); + spi_transmit((uint8_t) (style >> 8U)); + spi_transmit((uint8_t) (scale)); + spi_transmit((uint8_t) (scale >> 8U)); EVE_cs_clear(); } else { spi_transmit_burst(CMD_SPINNER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) style + (((uint32_t) scale) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) style) + (((uint32_t) scale) << 16U)); } } void EVE_cmd_spinner_burst(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - spi_transmit_burst(CMD_SPINNER); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) style + (((uint32_t) scale) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) style) + (((uint32_t) scale) << 16U)); } void EVE_cmd_text(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TEXT); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } } @@ -3319,48 +3099,39 @@ void EVE_cmd_text(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, void EVE_cmd_text_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TEXT); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) fontu + (((uint32_t) options) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) font)) + (((uint32_t) options) << 16U)); private_string_write(p_text); } void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - if (0U == cmd_burst) { eve_begin_cmd(CMD_TOGGLE); - spi_transmit((uint8_t)(xcu0)); - spi_transmit((uint8_t)(xcu0 >> 8U)); - spi_transmit((uint8_t)(ycu0)); - spi_transmit((uint8_t)(ycu0 >> 8U)); - spi_transmit((uint8_t)(widu)); - spi_transmit((uint8_t)(widu >> 8U)); - spi_transmit((uint8_t)(fontu)); - spi_transmit((uint8_t)(fontu >> 8U)); - spi_transmit((uint8_t)(options)); - spi_transmit((uint8_t)(options >> 8U)); - spi_transmit((uint8_t)(state)); - spi_transmit((uint8_t)(state >> 8U)); + spi_transmit((uint8_t) ((uint16_t) xc0)); + spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) yc0)); + spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) wid)); + spi_transmit((uint8_t) (((uint16_t) wid) >> 8U)); + spi_transmit((uint8_t) ((uint16_t) font)); + spi_transmit((uint8_t) (((uint16_t) font) >> 8U)); + spi_transmit((uint8_t) (options)); + spi_transmit((uint8_t) (options >> 8U)); + spi_transmit((uint8_t) (state)); + spi_transmit((uint8_t) (state >> 8U)); private_string_write(p_text); EVE_cs_clear(); } else { spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) state) << 16U)); private_string_write(p_text); } } @@ -3368,15 +3139,10 @@ void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text) { - uint16_t xcu0 = (uint16_t) xc0; - uint16_t ycu0 = (uint16_t) yc0; - uint16_t widu = (uint16_t) wid; - uint16_t fontu = (uint16_t) font; - spi_transmit_burst(CMD_TOGGLE); - spi_transmit_burst((uint32_t) xcu0 + (((uint32_t) ycu0) << 16U)); - spi_transmit_burst((uint32_t) widu + (((uint32_t) fontu) << 16U)); - spi_transmit_burst((uint32_t) options + (((uint32_t) state) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U)); + spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) font)) << 16U)); + spi_transmit_burst(((uint32_t) options) + (((uint32_t) state) << 16U)); private_string_write(p_text); } @@ -3442,27 +3208,27 @@ void EVE_color_a_burst(uint8_t alpha) /* This code was taken from the MatrixOrbital EVE2-Library on Github, adapted and modified */ void EVE_calibrate_manual(uint16_t width, uint16_t height) { - uint32_t display_x[3U]; - uint32_t display_y[3U]; - uint32_t touch_x[3U]; - uint32_t touch_y[3U]; + int32_t display_x[3U]; + int32_t display_y[3U]; + int32_t touch_x[3U]; + int32_t touch_y[3U]; uint32_t touch_value; int32_t tmp; - int32_t coef; + int32_t div; int32_t trans_matrix[6U]; uint8_t count = 0U; char num[2U]; uint8_t touch_lock = 1U; /* these values determine where your calibration points will be drawn on your display */ - display_x[0U] = (uint32_t)(width / 6U); - display_y[0U] = (uint32_t)(height / 6U); + display_x[0U] = (int32_t) (width / 6U); + display_y[0U] = (int32_t) (height / 6U); - display_x[1U] = (uint32_t)(width - (width / 8U)); - display_y[1U] = (uint32_t)(height / 2U); + display_x[1U] = (int32_t) (width - (width / 8U)); + display_y[1U] = (int32_t) (height / 2U); - display_x[2U] = (uint32_t)(width / 2U); - display_y[2U] = (uint32_t)(height - (height / 8U)); + display_x[2U] = (int32_t) (width / 2U); + display_y[2U] = (int32_t) (height - (height / 8U)); while (count < 3U) { @@ -3501,8 +3267,8 @@ void EVE_calibrate_manual(uint16_t width, uint16_t height) { if (0UL == (touch_value & 0x80000000UL)) /* check if a touch is detected */ { - touch_x[count] = (touch_value >> 16U) & 0x03FFU; /* raw Touchscreen Y coordinate */ - touch_y[count] = touch_value & 0x03FFU; /* raw Touchscreen Y coordinate */ + touch_x[count] = (int32_t) ((touch_value >> 16U) & 0x03FFU); /* raw Touchscreen Y coordinate */ + touch_y[count] = (int32_t) (touch_value & 0x03FFU); /* raw Touchscreen Y coordinate */ touch_lock = 1U; count++; break; /* leave for ( ; ; ) */ @@ -3511,33 +3277,33 @@ void EVE_calibrate_manual(uint16_t width, uint16_t height) } } - coef = (int32_t) ((touch_x[0U] - touch_x[2U]) * (touch_y[1U] - touch_y[2U])) - ((touch_x[1U] - touch_x[2U]) * (touch_y[0U] - touch_y[2U])); + div = ((touch_x[0U] - touch_x[2U]) * (touch_y[1U] - touch_y[2U])) - ((touch_x[1U] - touch_x[2U]) * (touch_y[0U] - touch_y[2U])); - tmp = (int32_t) (((display_x[0U] - display_x[2U]) * (touch_y[1U] - touch_y[2U])) - + tmp = (((display_x[0U] - display_x[2U]) * (touch_y[1U] - touch_y[2U])) - ((display_x[1U] - display_x[2U]) * (touch_y[0U] - touch_y[2U]))); - trans_matrix[0U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[0U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) (((touch_x[0U] - touch_x[2U]) * (display_x[1U] - display_x[2U])) - + tmp = (((touch_x[0U] - touch_x[2U]) * (display_x[1U] - display_x[2U])) - ((display_x[0U] - display_x[2U]) * (touch_x[1U] - touch_x[2U]))); - trans_matrix[1U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[1U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) ((touch_y[0U] * (((touch_x[2U] * display_x[1U]) - (touch_x[1U] * display_x[2U])))) + + tmp = ((touch_y[0U] * (((touch_x[2U] * display_x[1U]) - (touch_x[1U] * display_x[2U])))) + (touch_y[1U] * (((touch_x[0U] * display_x[2U]) - (touch_x[2U] * display_x[0U])))) + (touch_y[2U] * (((touch_x[1U] * display_x[0U]) - (touch_x[0U] * display_x[1U]))))); - trans_matrix[2U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[2U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) (((display_y[0U] - display_y[2U]) * (touch_y[1U] - touch_y[2U])) - + tmp = (((display_y[0U] - display_y[2U]) * (touch_y[1U] - touch_y[2U])) - ((display_y[1U] - display_y[2U]) * (touch_y[0U] - touch_y[2U]))); - trans_matrix[3U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[3U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) (((touch_x[0U] - touch_x[2U]) * (display_y[1U] - display_y[2U])) - + tmp = (((touch_x[0U] - touch_x[2U]) * (display_y[1U] - display_y[2U])) - ((display_y[0U] - display_y[2U]) * (touch_x[1U] - touch_x[2U]))); - trans_matrix[4U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[4U] = (int32_t) (((int64_t) tmp * 65536) / div); - tmp = (int32_t) ((touch_y[0U] * (((touch_x[2U] * display_y[1U]) - (touch_x[1U] * display_y[2U])))) + + tmp = ((touch_y[0U] * (((touch_x[2U] * display_y[1U]) - (touch_x[1U] * display_y[2U])))) + (touch_y[1U] * (((touch_x[0U] * display_y[2U]) - (touch_x[2U] * display_y[0U])))) + (touch_y[2U] * (((touch_x[1U] * display_y[0U]) - (touch_x[0U] * display_y[1U]))))); - trans_matrix[5U] = (int32_t) (((uint64_t)tmp << 16U) / coef); + trans_matrix[5U] = (int32_t) (((int64_t) tmp * 65536) / div); EVE_memWrite32(REG_TOUCH_TRANSFORM_A, (uint32_t) trans_matrix[0U]); EVE_memWrite32(REG_TOUCH_TRANSFORM_B, (uint32_t) trans_matrix[1U]); diff --git a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE_commands.h b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE_commands.h index bd62935..20f124d 100644 --- a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE_commands.h +++ b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/EVE_commands.h @@ -2,7 +2,7 @@ @file EVE_commands.h @brief contains FT8xx / BT8xx function prototypes @version 5.0 -@date 2022-12-19 +@date 2022-12-30 @author Rudolph Riedel @section LICENSE @@ -67,6 +67,7 @@ EVE_cmd_animstartram_burst() - basic maintenance: checked for violations of white space and indent rules - more linter fixes for minor issues like variables shorter than 3 characters - added EVE_color_a() / EVE_color_a_burst() +- removed EVE_cmd_newlist_burst() prototype as the function got removed earlier */ @@ -141,6 +142,7 @@ void EVE_cmd_fontcache(uint32_t font, int32_t ptr, uint32_t num); void EVE_cmd_fontcachequery(uint32_t *p_total, int32_t *p_used); void EVE_cmd_getimage(uint32_t *p_source, uint32_t *p_fmt, uint32_t *p_width, uint32_t *p_height, uint32_t *p_palette); void EVE_cmd_linetime(uint32_t dest); +void EVE_cmd_newlist(uint32_t adr); uint32_t EVE_cmd_pclkfreq(uint32_t ftarget, int32_t rounding); void EVE_cmd_wait(uint32_t usec); @@ -217,8 +219,6 @@ void EVE_cmd_calllist(uint32_t adr); void EVE_cmd_calllist_burst(uint32_t adr); void EVE_cmd_hsf(uint32_t hsf); void EVE_cmd_hsf_burst(uint32_t hsf); -void EVE_cmd_newlist(uint32_t adr); -void EVE_cmd_newlist_burst(uint32_t adr); void EVE_cmd_runanim(uint32_t waitmask, uint32_t play); void EVE_cmd_runanim_burst(uint32_t waitmask, uint32_t play); @@ -267,46 +267,35 @@ void EVE_cmd_append_burst(uint32_t ptr, uint32_t num); void EVE_cmd_bgcolor(uint32_t color); void EVE_cmd_bgcolor_burst(uint32_t color); void EVE_cmd_button(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); -void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, - const char *p_text); +void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); void EVE_cmd_calibrate(void); -void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs); -void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, - uint16_t hours, uint16_t mins, - uint16_t secs, uint16_t msecs); +void EVE_cmd_clock(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, uint16_t mins, uint16_t secs, uint16_t msecs); +void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t hours, uint16_t mins, uint16_t secs, uint16_t msecs); void EVE_cmd_dial(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val); void EVE_cmd_dial_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t val); void EVE_cmd_fgcolor(uint32_t color); void EVE_cmd_fgcolor_burst(uint32_t color); -void EVE_cmd_gauge(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, - uint16_t range); -void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, - uint16_t val, uint16_t range); +void EVE_cmd_gauge(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range); +void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, int16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range); void EVE_cmd_getmatrix(int32_t *p_a, int32_t *p_b, int32_t *p_c, int32_t *p_d, int32_t *p_e, int32_t *p_f); void EVE_cmd_gradcolor(uint32_t color); void EVE_cmd_gradcolor_burst(uint32_t color); void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1); void EVE_cmd_gradient_burst(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1); void EVE_cmd_keys(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); -void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, - const char *p_text); +void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t font, uint16_t options, const char *p_text); void EVE_cmd_number(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number); void EVE_cmd_number_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, int32_t number); void EVE_cmd_progress(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); -void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, - uint16_t range); +void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); void EVE_cmd_romfont(uint32_t font, uint32_t romslot); void EVE_cmd_romfont_burst(uint32_t font, uint32_t romslot); void EVE_cmd_rotate(int32_t angle); void EVE_cmd_rotate_burst(int32_t angle); void EVE_cmd_scale(int32_t scx, int32_t scy); void EVE_cmd_scale_burst(int32_t scx, int32_t scy); -void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, - uint16_t range); -void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, - uint16_t size, uint16_t range); +void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range); +void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range); void EVE_cmd_setbase(uint32_t base); void EVE_cmd_setbase_burst(uint32_t base); void EVE_cmd_setbitmap(uint32_t addr, uint16_t fmt, uint16_t width, uint16_t height); @@ -320,16 +309,13 @@ void EVE_cmd_setscratch_burst(uint32_t handle); void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format); void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format); void EVE_cmd_slider(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); -void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, - uint16_t range); +void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, uint16_t options, uint16_t val, uint16_t range); void EVE_cmd_spinner(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale); void EVE_cmd_spinner_burst(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale); void EVE_cmd_text(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text); void EVE_cmd_text_burst(int16_t xc0, int16_t yc0, int16_t font, uint16_t options, const char *p_text); -void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, - const char *p_text); -void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, - const char *p_text); +void EVE_cmd_toggle(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text); +void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, int16_t wid, int16_t font, uint16_t options, uint16_t state, const char *p_text); void EVE_cmd_translate(int32_t tr_x, int32_t tr_y); void EVE_cmd_translate_burst(int32_t tr_x, int32_t tr_y); diff --git a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/README.md b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/README.md index 8c16778..cbd01af 100644 --- a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/README.md +++ b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/EmbeddedVideoEngine/README.md @@ -10,8 +10,7 @@ It contains code for and has been used with various micro-controllers and displa ## Controllers -I have used it so far with: - +I have used it so far with: - 8-Bit AVR, specifically the 90CAN series - Arduino: Uno, mini-pro, ESP8266, ESP32 (DMA), Metro-M4 (DMA), STM32 Nucleo_F446RE (DMA), XMC1100 - Renesas F1L RH850 @@ -23,8 +22,7 @@ I have used it so far with: - S32K144 (DMA) - GD32C103CBT6 (DMA) -I have reports of successfully using it with: - +I have reports of successfully using it with: - ATSAMV70 - ATSAMD20 - ATSAME4 @@ -36,8 +34,7 @@ I have reports of successfully using it with: ## Displays -The TFTs tested so far: - +The TFTs tested so far: - FT810CB-HY50HD http://www.hotmcu.com/5-graphical-lcd-touchscreen-800x480-spi-ft810-p-286.html - FT811CB-HY50HD http://www.hotmcu.com/5-graphical-lcd-capacitive-touch-screen-800x480-spi-ft811-p-301.html - RVT70UQFNWC0x https://riverdi.com/product/rvt70uqfnwc0x/ @@ -68,28 +65,26 @@ The TFTs tested so far: This is version 5 of this code library and there are a couple of changes from V4. -First of all, support for FT80x is gone. The main reason is that this allowed a nice speed improvement modification that only works with FT81x and beyond. +First of all, support for FT80x is gone. +The main reason is that this allowed a nice speed improvement modification that only works with FT81x and beyond. Then there is a hard break from FT80x to FT81x with ony 256k of memory in FT80x but 1MB in FT81x. The memory map is different and all the registers are located elsewhere. -FT810, FT811, FT812, FT813, BT815, BT816, BT817 and BT818 can use the exact same code as long none of the new features of BT81x are used - and there are plenty of modules with these available to choose from - -As a side effect all commands are automatically started now. - -Second is that there are two sets of display-list building command functions now: EVE_cmd_xxx() and EVE_cmd_xxx_burst(). +FT810, FT811, FT812, FT813, BT815, BT816, BT817 and BT818 can use the exact same code as long none of the new features of BT81x are used - and there are plenty of modules with these available to choose from. +As a side effect all commands are automatically started now. +Second is that there are two sets of display-list building command functions now: EVE_cmd_xxx() and EVE_cmd_xxx_burst(). The EVE_cmd_xxx_burst() functions are optimized for speed, these are pure data transfer functions and do not even check anymore if burst mode is active. ## Structure -This library currently has nine files that I hope are named to make clear what these do: - -- EVE.h - this has all defines for FT81x / BT81x itself, so here are options, registers, commands and macros defined -- EVE_commands.c - this has all the API functions that are to be called from an application -- EVE_commands.h - this contains the prototypes for the functions in EVE_commands.c -- EVE_config.h - this has all the parameters for the numerous supported display modules, here is definded which set of parameters is to be used -- EVE_target.c - this has non-portable specific code for a number of supported controllers, mostly to support DMA -- EVE_target.h - this has non-portable pin defines and code as "static inline" functions for all supported controllers -- EVE_target.cpp - this is for Arduino C++ targets -- EVE_cpp_wrapper.cpp - this is for Arduino C++ targets -- EVE_cpp_wrapper.h - this is for Arduino C++ targets +This library currently has nine files that I hope are named to make clear what these do: +- EVE.h - this has all defines for FT81x / BT81x itself, so here are options, registers, commands and macros defined +- EVE_commands.c - this has all the API functions that are to be called from an application +- EVE_commands.h - this contains the prototypes for the functions in EVE_commands.c +- EVE_config.h - this has all the parameters for the numerous supported display modules, here is definded which set of parameters is to be used +- EVE_target.c - this has non-portable specific code for a number of supported controllers, mostly to support DMA +- EVE_target.h - this has non-portable pin defines and code as "static inline" functions for all supported controllers +- EVE_target.cpp - this is for Arduino C++ targets +- EVE_cpp_wrapper.cpp - this is for Arduino C++ targets +- EVE_cpp_wrapper.h - this is for Arduino C++ targets ## Examples @@ -100,7 +95,7 @@ EVE_cmd_dl(DL_CLEAR_COLOR_RGB | WHITE); // sets the background color EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); EVE_color_rgb(BLACK); EVE_cmd_text(5, 15, 28, 0, "Hello there!"); -EVE_cmd_dl(DL_DISPLAY); // put in the display list to mark its end +EVE_cmd_dl(DL_DISPLAY); // put in the display list to mark the end EVE_cmd_dl(CMD_SWAP); // tell EVE to use the new display list while (EVE_busy()); ```` @@ -121,11 +116,11 @@ EVE_end_cmd_burst(); while (EVE_busy()); ```` -This does the same as the first example but faster. +This does the same as the first example but faster. The preceding EVE_start_cmd_burst() either sets chip-select to low and sends out the three byte address. -Or if DMA is available for the target you are compiling for with support code in EVE_target.c / EVE_target.cpp and EVE_target.h, it writes the address to EVE_dma_buffer and sets EVE_dma_buffer_index to 1. +Or if DMA is available for the target you are compiling for with support code in EVE_target.c / EVE_target.cpp and EVE_target.h, it writes the address to EVE_dma_buffer[] and sets EVE_dma_buffer_index to 1. -Note the trailing "_burst" in the following functions, these are special versions of these commands that can only be used within an EVE_start_cmd_burst()/EVE_end_cmd_bust() pair. +Note the trailing "_burst" in the following functions, these are special versions of these commands that can only be used within an EVE_start_cmd_burst()/EVE_end_cmd_bust() pair. These functions are optimized to push out data and nothing else. The final EVE_end_cmd_burst() either pulls back the chip-select to high. @@ -134,7 +129,7 @@ Or if we have DMA it calls EVE_start_dma_transfer() to start pushing out the buf As we have 7 commands for EVE in these simple examples, the second one has the address overhead removed from six commands and therefore needs to transfer 18 bytes less over SPI. So even with a small 8-bit controller that does not support DMA this is a usefull optimization for building display lists. -Using DMA has one caveat: we need to limit the transfer to <4k as we are writing to the FIFO of EVEs command co-processor. This is usually not an issue though as we can shorten the display list generation with previously generated snippets that we attach to the current list with CMD_APPEND. And when we use widgets like CMD_BUTTON or CMD_CLOCK the generated display list grows by a larger amount than what we need to put into the command-FIFO so we likely reach the 8k limit of the display-list before we hit the 4k limit of the command-FIFO. +Using DMA has one caveat: we need to limit the transfer to <4k as we are writing to the FIFO of EVEs command co-processor. This is usually not an issue though as we can shorten the display list generation with previously generated snippets that we attach to the current list with CMD_APPEND. And when we use widgets like CMD_BUTTON or CMD_CLOCK the generated display list grows by a larger amount than what we need to put into the command-FIFO so we likely reach the 8k limit of the display-list before we hit the 4k limit of the command-FIFO. It is possible to use two or more DMA transfers to the FIFO to build a single display list, either to get around the 4k limit of the FIFO or in order to distribute the workload better of the time necessary between two display renewals. You could for example do this, spread over three consecutive calls: @@ -160,9 +155,9 @@ EVE_cmd_dl_burst(CMD_SWAP); EVE_end_cmd_burst(); ```` -But you need to check with EVE_busy() before each of these blocks. -Maybe similar like this never compiled pseudo-code: - +But you need to check with EVE_busy() before each of these blocks. +Maybe similar like this never compiled pseudo-code: +```` thread_1ms_update_display() { static uint8_t state = 0; @@ -193,32 +188,39 @@ thread_1ms_update_display() } } } - +```` ## Remarks -The examples in the "example_projects" drawer are for use with AtmelStudio7. +The examples in the "example_projects" drawer are for use with AtmelStudio7. For Arduino I am using PlatformIO with Visual Studio Code. -The platform the code is compiled for is automatically detected thru compiler flags in EVE_target.h. - -The desired TFT is selected by adding a define for it to the build-environment, e.g. -DEVE_EVE3_50G -There is a list of available options at the start of EVE_config.h sorted by chipset. - -- Provide the pins used for Chip-Select and Power-Down in EVE_target.h for the target configuration you are using +The platform the code is compiled for is automatically detected thru compiler flags in EVE_target.h. +The desired TFT is selected by adding a define for it to the build-environment, for example: "-DEVE_EVE3_50G" +There is a list of available options at the start of EVE_config.h sorted by chipset. +The pins used for Chip-Select and Power-Down are configured in the EVE_target/EVE_target_xxxx.h files like this: +```` +#if !defined(EVE_CS) +#define EVE_CS 10 +#endif -When compiling for AVR you need to provide the clock it is running at in order to make the _delay_ms() calls used to initialize the TFT work with the intended timing. -For other plattforms you need to provide a DELAY_MS(ms) function that works at least between 1ms and 56ms and is not performing these delays shorter than requested. +#if !defined(EVE_PDN) +#define EVE_PDN 8 +#endif +```` +So you can override the default settings by adding your own defines to your build-environment, for example: "-DEVE_CS=9" +When compiling for AVR you need to provide the clock it is running at in order to make the _delay_ms() calls used to initialize the TFT work with the intended timing. +For other plattforms you need to provide a DELAY_MS(ms) function that works at least between 1ms and 56ms and is not performing these delays shorter than requested. The DELAY_MS(ms) is only used during initialization of the FT8xx/BT8xx. -See EVE_target.h for examples. +See EVE_target.h for examples. -In Addition you need to initialize the pins used for Chip-Select and Power-Down in your hardware correctly to output. -Plus setup the SPI accordingly, mode-0, 8-bit, MSB-first, not more than 11MHz for the init. -A couple of targets already have a function EVE_init_spi() in EVE_target.c. +In Addition you need to initialize the pins used for Chip-Select and Power-Down in your hardware correctly to output. +Plus setup the SPI accordingly, mode-0, 8-bit, MSB-first, not more than 11MHz for the init. +A couple of targets already have a function EVE_init_spi() in EVE_target.c or EVE_cpp_target.cpp. A word of "warning", you have to take a little care yourself to for example not send more than 4kB at once to the command co-processor -or to not generate display lists that are longer than 8kB. -My library does not check and re-check the command-FIFO on every step. +or to not generate display lists that are longer than 8kB. +My library does not check and re-check the command-FIFO on every step. This is optimized for speed, so the training wheels are off. ## Post questions here diff --git a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft.c b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft.c index 87f2027..41606fe 100644 --- a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft.c +++ b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft.c @@ -1,8 +1,8 @@ /* -@file tft.c / tft.cpp +@file tft.c @brief TFT handling functions for EVE_Test project -@version 1.20 -@date 2022-12-10 +@version 1.21 +@date 2023-01-08 @author Rudolph Riedel @section History @@ -19,12 +19,16 @@ - renamed PINK to MAGENTA 1.20 +- several minor changes + +1.21 - several minor changes */ #include "EmbeddedVideoEngine/EVE.h" #include "tft_data.h" +#include "tft.h" #define TEST_UTF8 0 @@ -47,16 +51,20 @@ #define MEM_LOGO 0x000f8000 /* start-address of logo, needs 6272 bytes of memory */ #define MEM_PIC1 0x000fa000 /* start of 100x100 pixel test image, ARGB565, needs 20000 bytes of memory */ - #define MEM_DL_STATIC (EVE_RAM_G_SIZE - 4096) /* 0xff000 - start-address of the static part of the display-list, upper 4k of gfx-mem */ -uint32_t num_dl_static; /* amount of bytes in the static part of our display-list */ +uint32_t num_dl_static = 0; /* amount of bytes in the static part of our display-list */ uint8_t tft_active = 0; -uint16_t num_profile_a, num_profile_b; +uint16_t num_profile_a = 0; +uint16_t num_profile_b = 0; #define LAYOUT_Y1 66 +void touch_calibrate(void); +void initStaticBackground(void); + + void touch_calibrate(void) { @@ -210,6 +218,8 @@ void touch_calibrate(void) /* write down the numbers on the screen and either place them in one of the pre-defined blocks above or make a new block */ #if 0 /* calibrate touch and displays values to screen */ + +#if 1 EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); @@ -218,15 +228,16 @@ void touch_calibrate(void) EVE_cmd_dl(DL_DISPLAY); EVE_cmd_dl(CMD_SWAP); EVE_execute_cmd(); +#else + EVE_calibrate_manual(EVE_HSIZE, EVE_VSIZE); +#endif - uint32_t touch_a, touch_b, touch_c, touch_d, touch_e, touch_f; - - touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); - touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); - touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); - touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); - touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); - touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); + uint32_t touch_a = EVE_memRead32(REG_TOUCH_TRANSFORM_A); + uint32_t touch_b = EVE_memRead32(REG_TOUCH_TRANSFORM_B); + uint32_t touch_c = EVE_memRead32(REG_TOUCH_TRANSFORM_C); + uint32_t touch_d = EVE_memRead32(REG_TOUCH_TRANSFORM_D); + uint32_t touch_e = EVE_memRead32(REG_TOUCH_TRANSFORM_E); + uint32_t touch_f = EVE_memRead32(REG_TOUCH_TRANSFORM_F); EVE_cmd_dl(CMD_DLSTART); EVE_cmd_dl(DL_CLEAR_COLOR_RGB | BLACK); @@ -260,25 +271,25 @@ void touch_calibrate(void) void initStaticBackground(void) { EVE_cmd_dl(CMD_DLSTART); /* Start the display list */ - EVE_cmd_dl(TAG(0)); /* do not use the following objects for touch-detection */ + EVE_cmd_dl(DL_TAG); /* no tag = 0 - do not use the following objects for touch-detection */ - EVE_cmd_bgcolor(0x00c0c0c0); /* light grey */ + EVE_cmd_bgcolor(0x00c0c0c0UL); /* light grey */ - EVE_cmd_dl(VERTEX_FORMAT(0)); /* reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ + EVE_cmd_dl(DL_VERTEX_FORMAT); /* set to 0 - reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */ /* draw a rectangle on top */ EVE_cmd_dl(DL_BEGIN | EVE_RECTS); - EVE_cmd_dl(LINE_WIDTH(1*16)); /* size is in 1/16 pixel */ + EVE_cmd_dl(LINE_WIDTH(1U*16U)); /* size is in 1/16 pixel */ EVE_color_rgb(BLUE_1); - EVE_cmd_dl(VERTEX2F(0,0)); + EVE_cmd_dl(DL_VERTEX2F); /* set to 0 / 0 */ EVE_cmd_dl(VERTEX2F(EVE_HSIZE,LAYOUT_Y1-2)); EVE_cmd_dl(DL_END); /* display the logo */ EVE_color_rgb(WHITE); EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS); - EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56, 56); + EVE_cmd_setbitmap(MEM_LOGO, EVE_ARGB1555, 56U, 56U); EVE_cmd_dl(VERTEX2F(EVE_HSIZE - 58, 5)); EVE_cmd_dl(DL_END); @@ -341,7 +352,7 @@ void TFT_init(void) if (E_OK == EVE_init_flash()) { - EVE_cmd_flashread(MEM_FONT, 84928, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ + EVE_cmd_flashread(MEM_FONT, 61376, 320); /* copy .xfont from FLASH to RAM_G, offset and length are from the .map file */ } #endif /* TEST_UTF8 */ @@ -353,7 +364,6 @@ void TFT_init(void) } } - uint16_t toggle_state = 0; uint16_t display_list_size = 0; @@ -394,11 +404,12 @@ void TFT_touch(void) } } break; + default: + break; } } } - /* dynamic portion of display-handling, meant to be called every 20ms or more */ @@ -406,7 +417,7 @@ void TFT_display(void) { static int32_t rotate = 0; - if(tft_active != 0) + if(tft_active != 0U) { #if defined (EVE_DMA) uint16_t cmd_fifo_size; @@ -418,18 +429,18 @@ void TFT_display(void) EVE_cmd_dl_burst(CMD_DLSTART); /* start the display list */ EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | WHITE); /* set the default clear color to white */ EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG); /* clear the screen - this and the previous prevent artifacts between lists, Attributes are the color, stencil and tag buffers */ - EVE_cmd_dl_burst(TAG(0)); + EVE_cmd_dl_burst(DL_TAG); EVE_cmd_append_burst(MEM_DL_STATIC, num_dl_static); /* insert static part of display-list from copy in gfx-mem */ /* display a button */ EVE_color_rgb_burst(WHITE); - EVE_cmd_fgcolor_burst(0x00c0c0c0); /* some grey */ - EVE_cmd_dl_burst(TAG(10)); /* assign tag-value '10' to the button that follows */ + EVE_cmd_fgcolor_burst(0x00c0c0c0UL); /* some grey */ + EVE_cmd_dl_burst(DL_TAG+10U); /* assign tag-value '10' to the button that follows */ EVE_cmd_button_burst(20,20,80,30, 28, toggle_state,"Touch!"); - EVE_cmd_dl_burst(TAG(0)); /* no touch */ + EVE_cmd_dl_burst(DL_TAG); /* no touch */ /* display a picture and rotate it when the button on top is activated */ - EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100, 100); + EVE_cmd_setbitmap_burst(MEM_PIC1, EVE_RGB565, 100U, 100U); EVE_cmd_dl_burst(DL_SAVE_CONTEXT); EVE_cmd_dl_burst(CMD_LOADIDENTITY); @@ -438,7 +449,7 @@ void TFT_display(void) EVE_cmd_translate_burst(65536 * -70, 65536 * -50); /* shift back */ EVE_cmd_dl_burst(CMD_SETMATRIX); - if(toggle_state != 0) + if(toggle_state != 0U) { rotate += 256; } diff --git a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft_data.c b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft_data.c index b274913..2d47234 100644 --- a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft_data.c +++ b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft_data.c @@ -86,69 +86,57 @@ const /*__flash*/ uint8_t pic[3844] PROGMEM = /* Source File: Funtype.zlib unified.blob : 0 : 4096 -Funtype_24_ASTC.glyph : 4096 : 80832 -Funtype_24_ASTC.xfont : 84928 : 320 -z-lib compressed, unpacked size is 85248 +Funtype_24_ASTC.glyph : 4096 : 57280 +Funtype_24_ASTC.xfont : 61376 : 320 +z-lib compressed, unpacked size is 61952 The font is this one: https://fontlibrary.org/de/font/funtype -Converted with EAB using an ASCII map file to reduce the number of glyphs from 364 to 187. -This is only included for the purpose to demonstrate how to handle UTF-8 fonts with BT81x. +Converted with EAB 2.7.1 using an ASCII map file to reduce the number of glyphs to 119. +Glyphs are ASCII plus a select few from "Latin 1 Supplement" : ©«°±²³´µ¹»¼½¾ÄÖ×Üßäëö÷øü +This is only included to demonstrate how to handle UTF-8 fonts with BT81x. */ -const uint8_t flash[12753] PROGMEM = +const uint8_t flash[8199] PROGMEM = { - 0x78, 0x9c, 0xed, 0x7d, 0xd, 0x7c, 0x14, 0xd5, 0xb9, 0xfe, 0x33, 0x33, 0x9b, 0x99, 0x49, 0x76, 0x93, 0x5d, 0x64, 0x81, 0x5, 0x36, 0xd9, 0x55, 0xd7, 0x12, 0x5, 0xcc, 0x0, 0x11, 0x26, 0x12, 0xc8, 0x9, 0xac, 0xb9, 0x1, 0xb1, 0x5d, 0x34, 0x62, 0xd0, 0x2a, 0x83, 0xd5, 0x18, 0xb0, 0xf6, 0x6e, 0x20, 0x41, 0x82, 0xc1, 0x4c, 0xc4, 0x2b, 0xc1, 0x4a, 0x8d, 0x1f, 0xb7, 0x37, 0xfe, 0xb4, 0xed, 0xf6, 0xe3, 0x5f, 0x69, 0x6f, 0xed, 0x8d, 0xd4, 0xb6, 0xb4, 0xf5, 0x63, 0x48, 0xa8, 0x8d, 0x11, 0xed, 0xf6, 0xeb, 0x96, 0xeb, 0xad, 0xb7, 0xeb, 0xc5, 0x5b, 0xb1, 0xd5, 0x76, 0x10, 0x6c, 0x17, 0xd, 0xe4, 0x7f, 0xce, 0xcc, 0x6, 0x68, 0xe2, 0xed, 0xe2, 0xcd, 0x86, 0x60, 0xd9, 0x13, 0xd8, 0xdd, 0x77, 0xe6, 0xec, 0xce, 0x99, 0x67, 0xde, 0xf3, 0x7e, 0x9c, 0xf3, 0x9e, 0xf7, 0x44, 0x7f, 0xfb, 0xfe, 0x83, 0x45, 0x1c, 0x70, 0xe0, 0xeb, 0xa, 0x7c, 0x9c, 0x7, 0x40, 0xf2, 0x95, 0xa5, 0x8f, 0x5f, 0x34, 0x70, 0xa2, 0x10, 0x7d, 0xfb, 0xba, 0x1b, 0xd7, 0x5d, 0x37, 0xb7, 0x9e, 0x3c, 0x3c, 0xfb, 0xe0, 0x9c, 0xf7, 0xe7, 0x6c, 0x9d, 0xa3, 0xce, 0xbd, 0xb3, 0x42, 0x5f, 0x17, 0xea, 0xc0, 0x7f, 0x46, 0xd, 0xec, 0xd5, 0xf5, 0x69, 0x24, 0x36, 0x30, 0x48, 0x41, 0x1f, 0x67, 0x78, 0x75, 0xe1, 0x67, 0xf, 0x6c, 0x20, 0xba, 0xd0, 0x3d, 0xee, 0x27, 0x9f, 0x1f, 0xf0, 0x90, 0xaf, 0x54, 0xfc, 0x44, 0xdf, 0xba, 0x6e, 0x79, 0xe3, 0x5d, 0xb3, 0xeb, 0xc9, 0xf2, 0xd2, 0x6d, 0x15, 0xec, 0x37, 0xda, 0xe6, 0x36, 0xcd, 0x9d, 0x42, 0xaf, 0x36, 0xab, 0xca, 0x77, 0xfe, 0xdd, - 0x97, 0xee, 0xbf, 0x75, 0xfa, 0x17, 0xec, 0xab, 0x55, 0xad, 0xfb, 0xf1, 0xac, 0x13, 0x57, 0x72, 0xe2, 0xbb, 0x15, 0x7f, 0x58, 0xdf, 0xab, 0xe3, 0x27, 0x7d, 0x3, 0x9c, 0xfe, 0xf4, 0xb7, 0x84, 0x97, 0x67, 0xd1, 0x5f, 0xe2, 0xf5, 0xff, 0x68, 0xa8, 0x9b, 0xfb, 0x5, 0x7a, 0xf4, 0x17, 0xa9, 0xa3, 0xac, 0x8d, 0x75, 0x73, 0xbb, 0xe9, 0x91, 0x57, 0xe8, 0x11, 0xc7, 0x73, 0xc2, 0xcb, 0x75, 0x73, 0x83, 0x94, 0xfa, 0xdd, 0x0, 0xbf, 0xee, 0x87, 0xfa, 0xd3, 0xba, 0x42, 0x7e, 0x47, 0x8f, 0x57, 0x5b, 0xc7, 0xff, 0x44, 0x8f, 0x1f, 0xa3, 0xc7, 0x1b, 0x74, 0x81, 0xbe, 0x73, 0xfa, 0x67, 0xe8, 0xd1, 0x95, 0xeb, 0x38, 0x7d, 0x5, 0x7d, 0xff, 0xe5, 0xfa, 0xf8, 0xfa, 0x1b, 0xd7, 0x7d, 0x9f, 0x5e, 0xe3, 0xc6, 0x75, 0x41, 0x3d, 0xb1, 0xfe, 0xae, 0x75, 0x93, 0xe6, 0x76, 0xcd, 0x7d, 0xb6, 0x22, 0xe6, 0x5c, 0x79, 0x70, 0x6b, 0x6e, 0x33, 0x39, 0x58, 0xf2, 0xc0, 0x7d, 0x8e, 0x37, 0x6f, 0x9c, 0x37, 0xfb, 0x1e, 0xcf, 0x7b, 0x3, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xd9, 0x92, 0x2d, 0xa7, 0xa5, 0x8, 0xa8, 0xe5, 0xae, 0xfd, 0x1b, 0xe5, 0xf6, 0xd, 0x35, 0xb3, 0x3d, 0xc7, 0x7e, 0xf3, 0xc3, 0xbf, 0x55, 0xa7, 0xff, 0xa8, 0xfd, 0x5b, 0xb0, 0xca, 0xc0, 0x40, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, - 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0xf4, 0xd9, 0x46, 0x4f, 0xc8, 0x7b, 0x28, 0x88, 0x22, 0xfa, 0x51, 0xcb, 0xb7, 0x8e, 0x8c, 0xf6, 0xf5, 0xbc, 0xb7, 0xa9, 0xa8, 0xc6, 0x4d, 0x9c, 0xc4, 0x3, 0xa4, 0x6a, 0x57, 0xd9, 0xdc, 0x3, 0xf7, 0x21, 0xf8, 0x3d, 0x33, 0x80, 0xd8, 0x54, 0x88, 0xe8, 0xe5, 0x46, 0xfb, 0xfa, 0xe2, 0xbd, 0xff, 0x15, 0xc4, 0x14, 0x9b, 0x42, 0xd2, 0x39, 0xe2, 0xfb, 0xad, 0xe6, 0xc0, 0xff, 0x9c, 0x3b, 0x8a, 0x0, 0x78, 0xeb, 0xc8, 0xda, 0x3, 0xb9, 0x70, 0x68, 0x10, 0x5c, 0xf3, 0xe, 0xeb, 0x82, 0x4b, 0xc9, 0x38, 0x9e, 0x1b, 0x80, 0x63, 0xff, 0xe3, 0xe, 0xfe, 0x9e, 0xe3, 0xca, 0xe4, 0x9d, 0xe7, 0x27, 0x50, 0x23, 0xe0, 0x73, 0x9c, 0x7d, 0xd2, 0xa1, 0xa3, 0x17, 0x6b, 0x8b, 0x39, 0x38, 0x52, 0xb7, 0x27, 0x14, 0x28, 0xf1, 0xa6, 0x88, 0xa0, 0xe7, 0x13, 0x47, 0x50, 0x4b, 0x76, 0x8b, 0x1e, 0xf0, 0x64, 0xac, 0xf9, 0x6d, 0x28, 0xbd, 0xc2, 0x43, 0x50, 0x54, 0xd4, 0xbd, 0x17, 0x9b, 0x50, 0xcb, 0x8e, 0xd4, 0xbc, 0x30, 0x7, 0x32, 0xc3, 0xd2, 0xd0, 0x57, 0x54, 0x44, 0xb9, 0x8c, 0xe3, 0xd7, 0xbc, 0x51, 0x46, 0xa3, 0x48, 0xaf, 0x40, 0xcb, 0x9c, 0xa4, 0xc0, 0x7f, 0xa6, 0xf3, 0x93, 0xf4, 0x38, 0x21, 0xec, 0x6c, 0xc2, 0x5c, 0xec, 0x94, 0x73, 0x48, 0x77, 0xa, 0x3e, 0xc4, 0xfa, 0x7f, 0xba, 0x2a, 0x7c, 0xfd, 0x2a, 0xdd, 0x4b, 0x10, 0x65, 0xb4, 0x91, 0xec, 0x1f, 0xf5, 0xfe, 0x91, 0xa5, 0x4f, 0x2f, 0x5d, - 0x23, 0xf0, 0xfd, 0x5c, 0x9f, 0xae, 0x46, 0xb8, 0x52, 0xa8, 0x31, 0xca, 0x7f, 0x82, 0xf8, 0x1e, 0x57, 0x4a, 0x24, 0xeb, 0x9f, 0x98, 0x79, 0x79, 0x28, 0xe7, 0x80, 0x1f, 0x78, 0x27, 0xc7, 0x19, 0x95, 0x8f, 0xee, 0x2f, 0xf1, 0x13, 0xe1, 0xd8, 0x81, 0x45, 0x90, 0x8b, 0xf0, 0x56, 0x90, 0x2f, 0xd6, 0x44, 0xd1, 0xd3, 0x3a, 0x6d, 0xc7, 0x56, 0xc4, 0xdc, 0x89, 0x80, 0x55, 0xdd, 0x81, 0xce, 0x66, 0xf3, 0xc2, 0x60, 0x2e, 0x1, 0xbf, 0x6e, 0xbd, 0xd6, 0xf1, 0xe2, 0x11, 0xc3, 0x28, 0xcd, 0x1, 0xb1, 0x7f, 0xb, 0x41, 0x8c, 0x42, 0xfb, 0xd2, 0xf6, 0x9f, 0x1d, 0xff, 0x6, 0x70, 0x7a, 0x20, 0x2f, 0xd5, 0x88, 0x15, 0xf5, 0x17, 0x23, 0xf1, 0x4a, 0xc0, 0x0, 0xca, 0x30, 0x7, 0x7, 0x46, 0x5d, 0x7e, 0x7b, 0x1b, 0x78, 0xe8, 0x39, 0xb6, 0xac, 0xd5, 0xda, 0xd4, 0x9e, 0xb, 0xd6, 0x5e, 0x8c, 0x46, 0x27, 0x3a, 0x80, 0xbb, 0x44, 0x44, 0x47, 0x2e, 0xcf, 0xd3, 0xd1, 0xe1, 0xef, 0xac, 0x87, 0xf6, 0xf0, 0x0, 0xb7, 0x94, 0x52, 0x7e, 0x5a, 0x46, 0xce, 0x7f, 0x38, 0xd6, 0x96, 0x24, 0x52, 0xa7, 0x5e, 0xb6, 0x93, 0x50, 0x41, 0xee, 0x7d, 0xe2, 0x53, 0x20, 0xc5, 0xa0, 0x78, 0xa2, 0x83, 0x24, 0x4b, 0x33, 0x7e, 0x3f, 0xa5, 0xf4, 0x7a, 0x1c, 0xf2, 0x22, 0x22, 0xe5, 0xee, 0x9e, 0xd9, 0x11, 0x8e, 0xf1, 0xa3, 0x64, 0xa, 0x1b, 0x90, 0x6f, 0x58, 0x2c, 0x45, 0xf9, 0x2b, 0xc9, 0x69, 0x55, 0xc9, 0x1e, 0x85, 0x88, 0x7d, 0x9a, 0xd4, 0x58, 0x9a, 0xc3, 0x1f, 0xe3, 0xba, 0xea, 0x64, 0x55, 0xd1, 0xcb, 0xa2, 0x62, 0x8f, 0x36, 0xd6, 0xfd, 0xf5, 0x3, 0xf4, 0x6f, 0x4a, - 0x5e, 0xdf, 0xe5, 0xee, 0x76, 0x27, 0xb8, 0xe6, 0x5d, 0xd, 0x40, 0x71, 0xb1, 0x75, 0x64, 0x5f, 0x34, 0xd2, 0x31, 0xd6, 0xed, 0x3b, 0xd3, 0x69, 0xef, 0x4c, 0xf, 0xf2, 0x70, 0x93, 0x28, 0xf5, 0xe4, 0x75, 0x33, 0xe, 0x28, 0xcd, 0x11, 0x4d, 0x6e, 0xdd, 0xea, 0x69, 0x50, 0xbb, 0xb4, 0xd6, 0x1b, 0xca, 0xd2, 0xf2, 0xdf, 0x6b, 0xf, 0xfc, 0x80, 0xbe, 0x13, 0x17, 0x93, 0x58, 0xa2, 0xc8, 0xa7, 0xad, 0x5f, 0xcd, 0x19, 0xdd, 0xcf, 0xc2, 0x44, 0x42, 0xe8, 0x16, 0x2a, 0x9d, 0x86, 0x50, 0xf3, 0xc2, 0x34, 0x6a, 0xf, 0x5a, 0x16, 0x8c, 0x83, 0xa0, 0xb, 0xd7, 0x21, 0x65, 0x48, 0x51, 0x75, 0xfb, 0xea, 0x40, 0xeb, 0x57, 0x28, 0x3f, 0xbe, 0xc5, 0x21, 0xb2, 0xf5, 0x39, 0xa8, 0x3e, 0x5d, 0xdc, 0x13, 0xa9, 0xe6, 0xc8, 0xf3, 0x38, 0x8c, 0x85, 0x70, 0x5b, 0x7f, 0x25, 0x47, 0xe5, 0xcf, 0x41, 0xd7, 0xff, 0x64, 0xcb, 0x4b, 0x4, 0x4f, 0xbb, 0x7d, 0xe3, 0x68, 0x72, 0x7, 0xb5, 0xfa, 0x37, 0xbf, 0x84, 0x80, 0x7c, 0x97, 0xf2, 0x53, 0x6a, 0xff, 0xd5, 0xf3, 0x8, 0x11, 0x43, 0x70, 0x97, 0x9b, 0x86, 0xe0, 0xc8, 0xbc, 0x7c, 0xe, 0xfd, 0x73, 0x63, 0xe2, 0x1, 0xa9, 0x1d, 0x97, 0x32, 0x32, 0xda, 0x32, 0x3b, 0xad, 0xbc, 0x9a, 0x30, 0xb, 0x61, 0x3d, 0x67, 0x91, 0x45, 0x26, 0x12, 0xc6, 0x58, 0xf3, 0xdb, 0x30, 0xfc, 0x9e, 0x59, 0x48, 0xf5, 0x49, 0xe4, 0x2, 0xf1, 0xa9, 0xcb, 0x2d, 0x26, 0x98, 0x17, 0x59, 0x4, 0x1f, 0x64, 0x52, 0xb1, 0x3a, 0xc1, 0x25, 0x42, 0x4b, 0xce, 0xc9, 0x38, 0xbf, 0xb3, 0xcb, 0xe4, 0x7a, 0x3c, 0x44, 0xfc, 0xef, 0x48, 0xae, 0xaa, - 0xaa, 0x69, 0xe5, 0x65, 0xe, 0x95, 0x97, 0xfc, 0x72, 0xf4, 0x68, 0xcc, 0x1e, 0x28, 0xeb, 0x1b, 0x6b, 0xbc, 0x86, 0xd2, 0x4b, 0x3b, 0x14, 0xfa, 0x1e, 0x16, 0x9e, 0xcb, 0xb1, 0x8f, 0xcc, 0xeb, 0x2d, 0x0, 0x22, 0xfc, 0x7b, 0x3, 0x3, 0xfb, 0x7e, 0x5d, 0x1b, 0x5a, 0xf2, 0x60, 0xa6, 0xaf, 0x77, 0xe9, 0x81, 0xff, 0x47, 0xdf, 0x83, 0x5, 0x36, 0x8d, 0xfa, 0x74, 0xf5, 0xf, 0x3e, 0xb2, 0x1e, 0x91, 0x20, 0x38, 0xd, 0xd0, 0xc5, 0xbd, 0xda, 0x9a, 0xb1, 0xc6, 0x2b, 0x4b, 0x67, 0x96, 0x1e, 0xae, 0x3f, 0xf2, 0xfe, 0xc8, 0x1d, 0xd2, 0x16, 0xec, 0x18, 0x35, 0xfd, 0x41, 0x52, 0xfa, 0xc3, 0x10, 0xc8, 0x29, 0xe8, 0x8f, 0xf0, 0x1d, 0x12, 0x92, 0x31, 0xc7, 0x64, 0x27, 0xc4, 0x97, 0xf7, 0xfd, 0xe6, 0xf9, 0xe7, 0xc7, 0x5a, 0x7f, 0x50, 0xfb, 0x4b, 0x5, 0x6, 0xad, 0x67, 0xe0, 0xcb, 0xce, 0x42, 0x98, 0x12, 0x83, 0xe0, 0xc6, 0x37, 0xae, 0xac, 0xde, 0xc9, 0x85, 0xbf, 0x3b, 0xb, 0x1b, 0x3e, 0x33, 0xe8, 0xc1, 0x7b, 0x4c, 0x5a, 0xff, 0x62, 0xfa, 0x61, 0xcf, 0x60, 0xfd, 0xb1, 0x7e, 0xde, 0x67, 0x1a, 0x6d, 0xc9, 0x67, 0x45, 0x17, 0xbb, 0x1f, 0x89, 0x56, 0x31, 0x18, 0x6b, 0xb6, 0x5d, 0x8d, 0xa5, 0xba, 0x43, 0x81, 0xaa, 0x89, 0x3e, 0xe4, 0x64, 0x7e, 0xfc, 0xa0, 0xa3, 0x51, 0x97, 0x7, 0x47, 0x58, 0xd4, 0x64, 0x6f, 0xba, 0xfa, 0xf2, 0xb6, 0xc9, 0x8, 0xf2, 0x83, 0xcf, 0x3b, 0xdf, 0x1c, 0x6b, 0xbc, 0x86, 0xd2, 0xf3, 0x77, 0x70, 0xa0, 0x1a, 0x24, 0xb0, 0x34, 0xd5, 0xc2, 0x51, 0xd7, 0x57, 0xd1, 0x69, 0x68, 0xaf, 0xa3, 0x1f, 0x79, 0x7e, 0xc7, 0xc0, - 0xc5, 0x3c, 0xff, 0xdf, 0xdb, 0x1c, 0xd4, 0xeb, 0xe8, 0xa7, 0x1d, 0xd8, 0x18, 0x38, 0x58, 0xf1, 0x30, 0x1f, 0xde, 0x76, 0x37, 0x73, 0x43, 0xec, 0xfe, 0x98, 0x30, 0xcd, 0xa6, 0x78, 0x8d, 0x96, 0x47, 0x64, 0x8b, 0x9c, 0x15, 0x51, 0xcf, 0x38, 0xfe, 0xf7, 0xbe, 0xb4, 0x8, 0x6a, 0xf0, 0xca, 0x8, 0x81, 0xc8, 0x47, 0xeb, 0x24, 0x84, 0xf, 0x5d, 0x43, 0x9f, 0x37, 0xbc, 0xad, 0x54, 0xdf, 0x19, 0x7a, 0xe6, 0xf1, 0xac, 0xc9, 0x9d, 0x45, 0xfd, 0x1b, 0x8b, 0x58, 0x57, 0x55, 0xa1, 0xbb, 0xd3, 0xd5, 0x5f, 0xb, 0xe6, 0xef, 0xa5, 0x8a, 0xcb, 0x73, 0xc6, 0xe1, 0xc7, 0xfc, 0xcf, 0x36, 0x13, 0x1c, 0x35, 0x11, 0x4c, 0xf7, 0x33, 0x40, 0xb3, 0xd2, 0x4, 0x17, 0x87, 0x1b, 0x34, 0x9d, 0x44, 0x28, 0xa8, 0x19, 0x6f, 0xaf, 0x77, 0xe6, 0x52, 0xc6, 0x5f, 0x56, 0xe9, 0x8a, 0xdc, 0xbf, 0x27, 0x6d, 0xfd, 0xe9, 0x8d, 0xa8, 0xd5, 0xbd, 0x36, 0x3, 0xf2, 0x9e, 0x31, 0xf7, 0x7f, 0x2f, 0xdb, 0x45, 0xed, 0x65, 0x17, 0x62, 0x66, 0x20, 0x96, 0xcb, 0x8c, 0x30, 0x79, 0xdb, 0x74, 0x78, 0xa8, 0x6, 0x64, 0xa5, 0xdc, 0x5c, 0xe4, 0x1c, 0xeb, 0xf6, 0x7d, 0xd4, 0xe8, 0xb0, 0x80, 0xb5, 0x56, 0xff, 0x48, 0x75, 0x92, 0xf0, 0x3, 0x54, 0x1a, 0xc6, 0xbe, 0x1b, 0x80, 0xa3, 0x8d, 0x30, 0x3a, 0xdd, 0xf7, 0x43, 0xf, 0xd1, 0xfa, 0xfa, 0x5b, 0x81, 0x98, 0xac, 0xb8, 0x4e, 0xa5, 0x3e, 0x9b, 0x2f, 0x48, 0xf2, 0x49, 0x3c, 0x8d, 0x22, 0x6a, 0x7e, 0x38, 0x11, 0x7e, 0x77, 0x72, 0x2c, 0x77, 0x35, 0xb7, 0x52, 0x51, 0x54, 0x55, 0x99, 0x1a, 0x28, 0x28, 0x7d, 0x71, 0x22, 0x5c, 0x26, - 0x6b, 0x8c, 0x41, 0xda, 0x92, 0x3, 0x2f, 0x36, 0xc5, 0x57, 0xe0, 0xde, 0x7a, 0xe0, 0x3b, 0x11, 0xb1, 0x9b, 0x50, 0xbf, 0xe8, 0x66, 0xdf, 0x2, 0x72, 0x31, 0xda, 0xb9, 0xef, 0x5a, 0xed, 0xd5, 0x8d, 0x70, 0xe, 0xd6, 0x61, 0xb0, 0xe8, 0xe9, 0xaf, 0x2f, 0x7e, 0xf3, 0x7b, 0xac, 0xa2, 0x3f, 0x1c, 0x6, 0x9, 0x87, 0xf, 0x8e, 0xd8, 0xde, 0xa9, 0x6b, 0xa7, 0x3c, 0x28, 0x1b, 0x42, 0x92, 0x6b, 0x5, 0x9b, 0x41, 0xa2, 0xfa, 0xf8, 0xf7, 0x9c, 0x42, 0xc4, 0xee, 0x48, 0xb8, 0xa2, 0x71, 0x14, 0xc6, 0x27, 0xbd, 0x2f, 0xcd, 0x87, 0x1e, 0x64, 0x37, 0x5f, 0x3e, 0x5b, 0xe3, 0xd4, 0xee, 0xa1, 0xe7, 0xe7, 0x15, 0xd7, 0x21, 0x41, 0x4d, 0xc0, 0x63, 0x2, 0xde, 0x19, 0x8f, 0xfe, 0xf1, 0xcd, 0xd1, 0xeb, 0xf1, 0xc5, 0x1b, 0x51, 0x53, 0x5c, 0x2c, 0xd7, 0x47, 0x15, 0x43, 0xc9, 0x74, 0x7b, 0x26, 0xdc, 0xcb, 0xf0, 0x4c, 0xd8, 0x33, 0x4a, 0xa4, 0x23, 0xe3, 0xbf, 0x9f, 0x69, 0x3a, 0xb4, 0x79, 0x25, 0x76, 0x41, 0x9c, 0xd2, 0xce, 0xb8, 0xe0, 0x60, 0xd4, 0x37, 0xd6, 0xed, 0xf9, 0xa8, 0xd3, 0xde, 0xfc, 0x5c, 0xda, 0x2b, 0x23, 0xab, 0x7f, 0x20, 0xa, 0x3e, 0x76, 0x64, 0xac, 0xdb, 0xf3, 0x61, 0xe9, 0xd2, 0x1c, 0xc7, 0xb1, 0x36, 0x71, 0x8f, 0x86, 0x47, 0x6b, 0xef, 0x91, 0x4e, 0x43, 0xfb, 0xeb, 0x64, 0x6a, 0xbf, 0x58, 0xda, 0x74, 0x80, 0x1b, 0xe0, 0x67, 0xa6, 0xbd, 0x5e, 0x95, 0xbc, 0x97, 0xbe, 0xeb, 0x1, 0x8b, 0x4c, 0x20, 0x3e, 0xd6, 0x78, 0xd, 0xc7, 0x2f, 0xeb, 0x7f, 0x8c, 0x84, 0x3e, 0xb8, 0xb2, 0x1, 0xb9, 0x3a, 0xbd, 0x9f, 0x6, 0xc3, 0xf2, 0xdb, - 0x97, 0x6c, 0xac, 0x2, 0x29, 0xd2, 0x27, 0x7, 0xe9, 0xa1, 0xfb, 0x90, 0x79, 0x7e, 0x64, 0xfc, 0xce, 0x79, 0x88, 0x58, 0xf6, 0x62, 0x17, 0x11, 0x4b, 0xf5, 0xb4, 0xe3, 0x7f, 0xde, 0x17, 0xf3, 0xa0, 0xf3, 0x1e, 0x78, 0x22, 0x91, 0xda, 0x88, 0xac, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xe5, 0xf9, 0xa, 0xa8, 0xc8, 0x19, 0xa7, 0x6e, 0xd9, 0x9d, 0x38, 0x44, 0x25, 0x50, 0xf8, 0x90, 0x23, 0xf1, 0x3b, 0xf7, 0x56, 0x6e, 0xaa, 0xc4, 0x59, 0x16, 0x42, 0xba, 0xef, 0x37, 0xfc, 0x40, 0x82, 0xc6, 0x97, 0xb2, 0x11, 0x6, 0x51, 0xe8, 0xe, 0xa6, 0xad, 0x4f, 0xed, 0xf5, 0xd4, 0x7c, 0x4b, 0xb1, 0xe9, 0x2c, 0x89, 0xf, 0xab, 0x1f, 0xfe, 0xd1, 0x55, 0xa8, 0xbf, 0x48, 0xb0, 0x27, 0xcc, 0x81, 0xd5, 0x35, 0x82, 0xf8, 0xe7, 0x4a, 0x52, 0xd0, 0xa7, 0x51, 0x8b, 0xe0, 0xdc, 0xb2, 0xeb, 0x10, 0x7e, 0x3f, 0x17, 0xdb, 0xc8, 0xe2, 0x71, 0xca, 0xc0, 0x7d, 0x7b, 0xb5, 0xa8, 0x2, 0xc7, 0x33, 0x57, 0x11, 0x8f, 0x83, 0x23, 0x9c, 0xc8, 0xaa, 0x57, 0x6e, 0x1a, 0x1b, 0xfc, 0x8c, 0xdc, 0xe4, 0x96, 0xdd, 0xaf, 0x33, 0xfc, 0x6a, 0xbe, 0xc1, 0x19, 0xd5, 0x7a, 0x14, 0x62, 0xd0, 0xae, 0x71, 0x2a, 0xf8, 0x2d, 0x45, 0x38, 0x85, 0x5f, 0x7a, 0xff, 0x8a, 0xe2, 0xf7, 0xbc, 0xfd, 0xf9, 0x87, 0xa6, 0xe0, 0x1e, 0x8e, 0x9f, 0x18, 0x7d, 0x91, 0xbe, 0x87, 0xa6, 0xda, 0x34, 0x54, 0x8a, 0xdf, 0x31, 0x8e, 0x88, 0x7b, 0x2d, 0xfc, 0x9c, 0xd7, 0x61, 0xed, 0x8e, 0x12, 0xdc, 0xbd, 0xbd, 0xb8, 0xd8, 0x63, 0xf0, 0x47, 0x4d, 0x9e, 0xc5, 0x4b, 0x4c, 0x1c, 0xf4, 0x67, 0xd6, 0x6d, 0x6c, 0xe5, - 0x9c, 0xd4, 0x1e, 0xdc, 0x88, 0xc1, 0xa2, 0xeb, 0xa3, 0x2e, 0xcf, 0x87, 0xfa, 0x6f, 0xde, 0xfc, 0x8b, 0x91, 0x13, 0x9c, 0xd3, 0xa5, 0x11, 0x5d, 0x14, 0xf6, 0xa4, 0xc7, 0x6f, 0xad, 0x3c, 0x1, 0x8e, 0x20, 0x78, 0x87, 0x6a, 0xea, 0xc2, 0x29, 0xe0, 0x9d, 0xce, 0x7f, 0x63, 0xfc, 0x57, 0x1b, 0x12, 0x10, 0xb3, 0xf, 0xac, 0x66, 0xf6, 0xb6, 0xf0, 0x34, 0x57, 0x48, 0xa4, 0x38, 0x97, 0x4c, 0x2c, 0x8c, 0x87, 0xf, 0x5d, 0x11, 0x3c, 0x3a, 0x69, 0x5f, 0xce, 0x86, 0x63, 0xed, 0x46, 0x42, 0xa3, 0xfc, 0xb7, 0xe0, 0x22, 0x8c, 0xef, 0xe5, 0x8a, 0xd9, 0xc, 0x32, 0xb0, 0x38, 0x79, 0xba, 0xf9, 0x8f, 0x3e, 0x2f, 0x7, 0xeb, 0xa8, 0x83, 0x3e, 0x3a, 0xf5, 0xd7, 0xff, 0x8b, 0x7e, 0x16, 0x6, 0x1f, 0x61, 0xc6, 0xf5, 0x47, 0x74, 0x15, 0xda, 0xa9, 0xa8, 0x15, 0x45, 0xaa, 0xad, 0x54, 0x55, 0x2c, 0x9d, 0x3e, 0x15, 0x2d, 0xc1, 0x75, 0xe8, 0x89, 0x40, 0xed, 0x6b, 0x5c, 0x81, 0xb5, 0xf2, 0x1a, 0x14, 0xcb, 0xe6, 0x21, 0x7b, 0x10, 0x35, 0x48, 0xc2, 0x65, 0xb3, 0x60, 0xf0, 0x54, 0x1c, 0x6b, 0x6c, 0x34, 0x43, 0x1f, 0xf1, 0xfc, 0xd1, 0x84, 0x6f, 0x7e, 0x83, 0xbe, 0xc7, 0x2c, 0x7d, 0x1e, 0x7b, 0x7, 0x98, 0x78, 0xef, 0x5c, 0x6a, 0xf, 0xfc, 0x32, 0x75, 0xfb, 0x7f, 0xb8, 0x3b, 0xdd, 0xf7, 0xe7, 0xb7, 0xaf, 0x40, 0xc4, 0x41, 0x58, 0xdb, 0xba, 0x12, 0xf4, 0x3e, 0xaa, 0x3a, 0x72, 0x74, 0x99, 0x72, 0x4e, 0xb9, 0xe5, 0x4d, 0xb1, 0xf8, 0xd, 0xfe, 0x2d, 0xae, 0x16, 0xdd, 0x44, 0xea, 0xe4, 0xe6, 0x10, 0x15, 0xe1, 0xed, 0xbf, 0xd2, 0xcf, 0x2d, 0x8f, 0x79, 0xa1, - 0x44, 0x13, 0x99, 0x18, 0x8f, 0xa9, 0xe6, 0x8, 0xaf, 0xbb, 0x89, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0xba, 0x6a, 0x58, 0x45, 0xbc, 0x16, 0x5e, 0x4a, 0x53, 0x2d, 0x35, 0x6, 0x60, 0xb9, 0x82, 0x6, 0x11, 0x3b, 0xc1, 0xe2, 0xb5, 0x96, 0x17, 0xe0, 0xa8, 0xee, 0x79, 0xd6, 0x3f, 0x7, 0x51, 0x7e, 0xac, 0xf5, 0x85, 0xe3, 0xd0, 0xb7, 0xe8, 0x7b, 0x22, 0x10, 0xcb, 0x85, 0xc2, 0xac, 0x88, 0x74, 0xf8, 0x79, 0xdf, 0xbe, 0x92, 0xea, 0x67, 0xc6, 0x9, 0xa4, 0x6a, 0xab, 0x9a, 0x7e, 0x7c, 0xfe, 0xef, 0x1d, 0xbf, 0xd0, 0xf4, 0xb7, 0x83, 0x89, 0x0, 0xa1, 0x50, 0xe9, 0xaf, 0x29, 0x72, 0x7a, 0xfc, 0xc2, 0xb7, 0xfd, 0x53, 0x42, 0xf7, 0xc7, 0x72, 0xe0, 0xf2, 0x97, 0x27, 0xcd, 0xc4, 0x59, 0x8f, 0x5f, 0xcd, 0x9b, 0x1c, 0xf5, 0xdf, 0x81, 0x1d, 0x70, 0xae, 0xd3, 0x7f, 0x92, 0x1e, 0x3f, 0x6a, 0xaf, 0xfd, 0x99, 0x9, 0x87, 0x17, 0x1b, 0x37, 0x29, 0x22, 0x97, 0xed, 0xbf, 0xe1, 0x71, 0xa, 0x82, 0x37, 0xef, 0x2f, 0x4, 0x1c, 0xa2, 0x5b, 0x4a, 0x8f, 0x5f, 0xa8, 0x89, 0x99, 0x3, 0x87, 0xb9, 0x8f, 0xc3, 0xb5, 0xb5, 0x7, 0x59, 0xfc, 0x4a, 0xc7, 0x51, 0x5b, 0xcd, 0x7c, 0x5e, 0x82, 0xa4, 0x40, 0xa2, 0xf6, 0x5a, 0x7a, 0xfe, 0x13, 0xd9, 0xf8, 0x79, 0x4f, 0x63, 0x84, 0x7d, 0x23, 0x59, 0x7b, 0xb6, 0xe3, 0x37, 0x4c, 0x1e, 0xbe, 0xeb, 0x20, 0xff, 0x7e, 0xcb, 0x77, 0xb8, 0xe0, 0x16, 0x12, 0x64, 0x47, 0x6a, 0x2e, 0x3c, 0x17, 0xd5, 0x70, 0xec, 0x8a, 0xec, 0x7e, 0xa5, 0x75, 0x20, 0x3f, 0x3d, 0xbf, 0x5d, 0x1d, 0xaf, 0x9, 0x5e, - 0x84, 0xa8, 0xe5, 0xd2, 0x56, 0xd4, 0x4a, 0x42, 0x7a, 0xfc, 0xc0, 0xa3, 0x84, 0x48, 0x3, 0xc2, 0x7b, 0x78, 0x1a, 0x85, 0x10, 0xcf, 0xe1, 0xd8, 0xb0, 0xe7, 0x79, 0x80, 0x46, 0x9d, 0xdc, 0x83, 0xb9, 0x47, 0x6b, 0x6f, 0x21, 0xb9, 0x10, 0x7d, 0x7, 0x58, 0xf5, 0xa4, 0xea, 0x64, 0xf8, 0x71, 0x12, 0xe, 0xb4, 0x69, 0xb, 0x7f, 0x3b, 0x1b, 0x9, 0xac, 0xad, 0x5e, 0x96, 0x1a, 0x7f, 0x0, 0xba, 0xdd, 0x1, 0xac, 0x54, 0x2f, 0xd2, 0x72, 0x89, 0x23, 0xaa, 0x5b, 0x16, 0xc8, 0xd5, 0x2f, 0x9f, 0x76, 0x79, 0x28, 0xf0, 0x76, 0xbc, 0x69, 0x44, 0xb4, 0xfc, 0x2a, 0x39, 0x87, 0x2c, 0xb6, 0xcf, 0xe1, 0xf5, 0x81, 0xc3, 0x52, 0xc6, 0xed, 0xbf, 0x6a, 0x4e, 0x5f, 0xf4, 0xc, 0x92, 0x88, 0xb, 0x86, 0x60, 0x38, 0xd, 0x21, 0xfc, 0xc4, 0xaf, 0xa9, 0xf7, 0xa3, 0x4, 0xec, 0xf3, 0x82, 0x40, 0xaf, 0x2f, 0xc4, 0x85, 0xd6, 0x2e, 0x38, 0x13, 0xe4, 0xb9, 0x81, 0xe7, 0x12, 0xa5, 0x2, 0xd8, 0x26, 0x4b, 0x29, 0xc4, 0x86, 0x3f, 0xcf, 0x26, 0x6a, 0xc2, 0x1d, 0x9f, 0x5f, 0xa2, 0x4a, 0x71, 0xb4, 0xf1, 0xba, 0xb6, 0x7d, 0x45, 0x70, 0x57, 0x9b, 0x45, 0x38, 0x94, 0x1e, 0x1e, 0x35, 0x6f, 0x86, 0x90, 0xa7, 0x57, 0x8a, 0x8a, 0x5e, 0xb6, 0x8e, 0xb5, 0xc3, 0xf1, 0xab, 0x1a, 0xf2, 0xef, 0xab, 0x50, 0x11, 0xcc, 0xa5, 0x1d, 0xe8, 0x59, 0x1, 0xe1, 0xa6, 0xeb, 0x49, 0xa7, 0xc1, 0x85, 0x10, 0xcd, 0x8c, 0xfd, 0x17, 0x3e, 0x52, 0x4, 0xff, 0xb6, 0x4a, 0xbd, 0x6d, 0xa, 0x8b, 0xfe, 0x2c, 0xf4, 0x9f, 0x34, 0x1f, 0xd7, 0x49, 0x92, 0xf5, 0xe2, 0x52, 0xdf, 0x1c, 0xea, 0xb, - 0x3a, 0x2f, 0xb2, 0x8e, 0xc4, 0x8f, 0x5d, 0xe1, 0x9d, 0x5e, 0x89, 0x7d, 0x82, 0x6a, 0xe3, 0x77, 0x77, 0xc5, 0xce, 0xb1, 0xee, 0xaf, 0x4b, 0xcd, 0x19, 0x4c, 0xde, 0x14, 0xc3, 0x2d, 0x58, 0x26, 0x7e, 0x3a, 0xfc, 0x9a, 0x3b, 0x27, 0xd0, 0xca, 0xb2, 0x7, 0x3a, 0x89, 0x74, 0x2a, 0xbd, 0x67, 0x3d, 0x7e, 0xa5, 0xff, 0xea, 0x47, 0xa9, 0xc9, 0xe9, 0x62, 0x52, 0x21, 0xa7, 0x82, 0x5f, 0xcd, 0x9a, 0x1c, 0x6a, 0x3f, 0xf3, 0x50, 0x70, 0x44, 0xaf, 0x20, 0x6a, 0xf0, 0x6c, 0xc7, 0xcf, 0xfb, 0x4, 0xf, 0x4f, 0x31, 0x47, 0xee, 0x51, 0xcb, 0xfa, 0x4e, 0x5, 0xbf, 0xd0, 0xe6, 0x9, 0x58, 0x10, 0xc, 0x53, 0x2a, 0x33, 0xf6, 0xcb, 0x47, 0x1d, 0xbf, 0x1a, 0x1, 0x7f, 0xe4, 0xd0, 0x8b, 0x24, 0x51, 0x23, 0xa2, 0xf, 0x8, 0xbd, 0xfd, 0x63, 0x68, 0xfb, 0x12, 0x1, 0x88, 0x5b, 0x76, 0x9b, 0xcd, 0xd4, 0x1e, 0x8c, 0xd7, 0xc0, 0x67, 0x57, 0x36, 0xa8, 0xba, 0x4b, 0x50, 0x7b, 0x63, 0x1a, 0xfd, 0x4c, 0x90, 0x2a, 0x23, 0xbd, 0xfe, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x82, 0xe1, 0x6, 0x7d, 0xd, 0x3f, 0xca, 0xd6, 0xcf, 0xc0, 0x71, 0x39, 0x7b, 0xd, 0x4, 0xa, 0xec, 0xf1, 0xfa, 0x44, 0x91, 0x55, 0xfd, 0x4c, 0x1c, 0xaf, 0x9f, 0x7e, 0x11, 0x5a, 0x22, 0x40, 0x59, 0x69, 0x2d, 0x11, 0xf9, 0xf4, 0xf8, 0xcd, 0x2f, 0x6e, 0x46, 0x9c, 0xb7, 0xe1, 0xf3, 0xfb, 0xa2, 0x67, 0x3d, 0x7e, 0xe1, 0x47, 0x35, 0xda, 0x5f, 0x85, 0xc9, 0x26, 0xb4, 0x86, 0xf9, 0x81, 0x82, 0xb4, 0xf8, 0x79, 0x2f, 0xbf, 0x3, 0x41, 0xe8, 0xe, 0x74, 0x58, 0x70, 0x9f, 0xf5, 0xf8, 0x35, - 0xc5, 0x2f, 0x81, 0x8f, 0xc3, 0x79, 0xdc, 0xa4, 0xae, 0xb0, 0xea, 0x49, 0xcf, 0x7f, 0x6c, 0xfe, 0xda, 0x87, 0x5c, 0xf, 0x88, 0x16, 0x89, 0x64, 0xf1, 0x1b, 0x46, 0x1f, 0x5c, 0x99, 0x1a, 0xff, 0xde, 0xab, 0xa1, 0x77, 0xdd, 0x6a, 0x49, 0xce, 0xc1, 0x22, 0xc9, 0x44, 0xa1, 0xe1, 0x36, 0xa5, 0xc3, 0x10, 0xd3, 0xe2, 0x15, 0xe6, 0xb0, 0xd1, 0xb6, 0x5f, 0x75, 0xeb, 0x35, 0xbd, 0xfd, 0xb4, 0x39, 0x48, 0xf9, 0x9f, 0x97, 0x69, 0xa9, 0x8, 0xc8, 0x8e, 0xb5, 0xc5, 0x4b, 0x91, 0xa, 0xbf, 0xc1, 0x63, 0xef, 0x48, 0x6e, 0xef, 0xf6, 0x4f, 0xc2, 0x69, 0xa4, 0x7e, 0x71, 0x7f, 0x45, 0x59, 0xf8, 0xb, 0xd7, 0x91, 0xcf, 0x8b, 0xc5, 0x71, 0x49, 0xe0, 0xb8, 0x83, 0x7, 0x39, 0xae, 0x4e, 0xe6, 0xa1, 0xe6, 0x5a, 0x4f, 0xd7, 0x64, 0x61, 0xac, 0xa7, 0xbd, 0xff, 0xe6, 0xff, 0x1b, 0x8c, 0xe9, 0x41, 0xfa, 0x7c, 0x45, 0x49, 0x12, 0xd8, 0x7c, 0xa5, 0x80, 0x8e, 0xe2, 0x83, 0xea, 0xed, 0x91, 0xb2, 0x28, 0xb, 0x4b, 0x2d, 0x9d, 0x1e, 0x40, 0x4b, 0xb4, 0xbb, 0x91, 0x48, 0x6, 0x61, 0x3e, 0x19, 0xf3, 0x7, 0xe8, 0x17, 0x5b, 0xcc, 0x8a, 0x7f, 0x8, 0x24, 0xe8, 0x87, 0xdc, 0xbc, 0x47, 0xd9, 0xf, 0x4d, 0x64, 0x2f, 0xb2, 0x8b, 0x47, 0x93, 0x79, 0xd, 0x14, 0xce, 0xcf, 0xba, 0x36, 0x55, 0x47, 0xe9, 0xfd, 0x95, 0xf0, 0x6d, 0xdf, 0x86, 0xde, 0x7b, 0x34, 0xe0, 0xf7, 0x59, 0x65, 0xb2, 0xf7, 0xb6, 0x8b, 0x61, 0x4, 0xed, 0xb3, 0x1a, 0x51, 0x93, 0xe1, 0x97, 0x1e, 0xc7, 0x9a, 0x80, 0x6e, 0x4f, 0x70, 0x72, 0x9c, 0xc0, 0xfc, 0xbd, 0xe7, 0xf0, 0x17, 0x7e, 0xbf, 0xf3, - 0xb3, 0x25, 0xce, 0x67, 0x9d, 0xc9, 0x4b, 0x78, 0x24, 0x18, 0xba, 0xec, 0x2b, 0x39, 0x14, 0xe2, 0x15, 0x72, 0x1, 0x82, 0xba, 0xcd, 0xae, 0xb4, 0xa3, 0x8c, 0xd8, 0xbe, 0xfa, 0xf0, 0xfa, 0x98, 0x4f, 0x9e, 0xec, 0xbf, 0x6d, 0x62, 0x83, 0x2d, 0x3a, 0xf6, 0x6, 0xe7, 0x14, 0x74, 0x96, 0xbc, 0x91, 0x83, 0xf0, 0x82, 0x29, 0x7a, 0x5e, 0xe9, 0x52, 0x1d, 0x2e, 0xbf, 0x1a, 0x35, 0x8d, 0xe1, 0xf3, 0x65, 0xef, 0xde, 0xe, 0x8d, 0x5b, 0x26, 0x31, 0xef, 0x44, 0x3f, 0x5, 0xfe, 0x1b, 0xea, 0xbf, 0xd, 0x8d, 0x7f, 0xbe, 0xbc, 0x98, 0x67, 0xf1, 0x73, 0x56, 0x79, 0xf2, 0x81, 0x87, 0x77, 0x87, 0x73, 0xac, 0xb5, 0x64, 0xc7, 0xe7, 0x17, 0xd8, 0xf8, 0x83, 0x15, 0xff, 0x5c, 0x42, 0xff, 0xdc, 0x28, 0x1c, 0xeb, 0xf5, 0x33, 0xe9, 0xf0, 0xf3, 0xde, 0x36, 0x1d, 0x17, 0xd0, 0x87, 0xdd, 0xdb, 0x59, 0x1b, 0x89, 0x54, 0xe, 0x5f, 0xf, 0x7c, 0xb6, 0xe1, 0x67, 0x8d, 0xdf, 0x6b, 0x89, 0x40, 0x22, 0xcf, 0x1e, 0xbf, 0x4f, 0x87, 0x1f, 0x9b, 0x9f, 0x43, 0x97, 0xee, 0x7e, 0xeb, 0x17, 0x8d, 0x52, 0x45, 0x2, 0xa0, 0xf7, 0xf3, 0x71, 0xeb, 0xa7, 0x2c, 0xb4, 0x28, 0x7d, 0x96, 0xe1, 0x57, 0xfa, 0x87, 0xf3, 0x51, 0xcc, 0xe2, 0xeb, 0x84, 0x2e, 0xb6, 0xdc, 0xf2, 0x54, 0xf0, 0x63, 0x6b, 0xa7, 0x9e, 0x35, 0x4b, 0xf6, 0x97, 0xc4, 0xd9, 0x4d, 0xde, 0x71, 0x3, 0x15, 0x7c, 0xfd, 0x5c, 0xa3, 0xd5, 0x5c, 0x99, 0x3f, 0xdb, 0xf0, 0x9b, 0xdf, 0x3e, 0xf, 0x1e, 0x84, 0x21, 0xfa, 0x8b, 0x9, 0x4e, 0x1, 0xbf, 0x26, 0xdf, 0x44, 0xdd, 0xe1, 0x60, 0x83, 0x99, 0x5b, 0x2b, 0x94, - 0x7b, 0x86, 0xeb, 0x87, 0xb3, 0xd, 0xbf, 0xb4, 0xfc, 0x99, 0x83, 0xbd, 0x27, 0xbc, 0xb5, 0xcc, 0xcf, 0xff, 0x32, 0x7d, 0x4a, 0xf8, 0x38, 0xd5, 0xa9, 0x1, 0x1c, 0xe1, 0x49, 0xda, 0xf5, 0xda, 0xa1, 0x42, 0x1e, 0x37, 0x23, 0xb8, 0x26, 0x17, 0xbe, 0x29, 0xb2, 0x3, 0xab, 0xc7, 0x1a, 0x9f, 0xf, 0xd0, 0x1f, 0xfd, 0x27, 0xf3, 0x5f, 0x73, 0x47, 0x2e, 0x36, 0x12, 0xd7, 0x79, 0x7b, 0xba, 0xcb, 0xd4, 0x5d, 0xad, 0xcf, 0xd, 0xbb, 0x3f, 0x96, 0xef, 0x24, 0xe8, 0xb7, 0x9e, 0xf5, 0x3e, 0xf6, 0x4a, 0xbf, 0xff, 0x47, 0x8e, 0x88, 0xb5, 0x6c, 0x85, 0x8d, 0x7, 0x6a, 0x34, 0xdd, 0xf5, 0xea, 0xea, 0x17, 0x22, 0xa7, 0xeb, 0x39, 0xbc, 0xc3, 0x27, 0x6c, 0xfe, 0xb3, 0xfc, 0x71, 0x40, 0xb1, 0x52, 0x6, 0xb0, 0xf5, 0x47, 0xe4, 0xe4, 0xf5, 0x47, 0x37, 0x36, 0xf9, 0x42, 0x70, 0x5c, 0x4, 0x8f, 0x68, 0x10, 0xb1, 0x2f, 0xc2, 0x95, 0xd, 0xe5, 0xbf, 0x3f, 0x52, 0xfb, 0x25, 0x32, 0xf9, 0xbd, 0x41, 0xf6, 0x1c, 0x75, 0x7b, 0x70, 0xfe, 0x8e, 0x56, 0xfa, 0x7e, 0x25, 0x23, 0x88, 0x46, 0xed, 0x54, 0xb6, 0x7e, 0x3a, 0xce, 0xc5, 0x39, 0x93, 0x4f, 0x5a, 0x36, 0xd5, 0x74, 0x73, 0x6, 0xe4, 0x63, 0x81, 0xa4, 0xd0, 0x5d, 0x3e, 0x37, 0x24, 0xa, 0x28, 0xde, 0x56, 0x60, 0x75, 0x1e, 0x77, 0xcc, 0xad, 0xbb, 0x75, 0x61, 0x18, 0x3f, 0x56, 0x1, 0x49, 0xab, 0xf1, 0x86, 0xcd, 0xb5, 0x69, 0xfd, 0x9f, 0xe8, 0x52, 0xa8, 0x2d, 0x40, 0x1f, 0xca, 0x88, 0xa8, 0x40, 0x75, 0x5c, 0xaf, 0xc0, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x7b, 0x31, - 0xa3, 0xfe, 0x48, 0xf2, 0x8d, 0xa6, 0x8d, 0x8a, 0xce, 0x87, 0x30, 0xfe, 0xc5, 0x8, 0xe5, 0x5b, 0x28, 0x78, 0x35, 0x59, 0x47, 0x26, 0xf3, 0xf6, 0x22, 0xaf, 0xa0, 0xc1, 0x57, 0x9d, 0x76, 0x7e, 0xe3, 0x90, 0xc7, 0xee, 0x57, 0x4c, 0x3d, 0xb0, 0x74, 0xf8, 0x85, 0xc7, 0x4f, 0x40, 0xf4, 0xd2, 0xd7, 0xd9, 0xfa, 0x96, 0x44, 0x54, 0xf5, 0xb9, 0xce, 0x76, 0xfc, 0xc2, 0x5f, 0xb8, 0x49, 0x2f, 0xb8, 0x80, 0x30, 0xf7, 0x43, 0x10, 0x4e, 0x5, 0xbf, 0x99, 0x2f, 0x93, 0xee, 0xf2, 0xc4, 0x24, 0x88, 0x5, 0x8f, 0x25, 0x4d, 0xed, 0xac, 0xe7, 0xbf, 0xf0, 0x33, 0x13, 0xb1, 0x65, 0x92, 0x62, 0xe1, 0xc7, 0x9d, 0xa, 0x7e, 0x8f, 0xce, 0x40, 0xa1, 0xe6, 0x0, 0x95, 0xdf, 0x8f, 0x7d, 0xee, 0xee, 0xe1, 0xf8, 0x9c, 0x6d, 0xf8, 0xd5, 0x6c, 0xbb, 0x0, 0xb1, 0x62, 0x40, 0xed, 0xb0, 0x8f, 0xac, 0x88, 0x5e, 0x89, 0x22, 0xe4, 0xb5, 0x70, 0xf8, 0x11, 0x62, 0x12, 0xea, 0xa8, 0x3e, 0x38, 0x7c, 0x72, 0xfe, 0x97, 0xcf, 0xec, 0x2a, 0x86, 0x43, 0xb5, 0x0, 0x22, 0x5b, 0xdc, 0xf9, 0x99, 0xc8, 0x17, 0xd5, 0xcd, 0x51, 0x3f, 0xb9, 0x84, 0xaa, 0x80, 0x16, 0x24, 0xf9, 0x3f, 0x9a, 0xe5, 0x60, 0xcb, 0xdb, 0xba, 0xc, 0x8, 0x33, 0x3c, 0x3a, 0x9a, 0x76, 0x6c, 0x85, 0x3e, 0xde, 0x8a, 0x8f, 0xe2, 0x3c, 0x10, 0x22, 0x55, 0xca, 0xc7, 0xd9, 0x6c, 0xf0, 0xd, 0xd4, 0xe4, 0x69, 0x41, 0x89, 0x21, 0x8d, 0xb5, 0xbe, 0xfd, 0x80, 0xfb, 0x59, 0x64, 0xf2, 0xef, 0x62, 0x40, 0x48, 0xd2, 0x26, 0xee, 0xc2, 0x5a, 0xf9, 0x93, 0xa8, 0x96, 0x5b, 0x12, 0xd2, 0x42, 0x9b, 0x25, 0x32, 0xce, - 0xff, 0xb7, 0xee, 0x4a, 0xc8, 0x1, 0x8c, 0x87, 0x2b, 0xdf, 0xc5, 0xca, 0xf4, 0x28, 0xf, 0x35, 0x15, 0x1e, 0x8e, 0x22, 0xef, 0xb0, 0xf5, 0xee, 0xa1, 0xeb, 0x6f, 0x45, 0xbb, 0xc6, 0x4d, 0x5a, 0x6, 0xf5, 0xb7, 0xab, 0x15, 0xdf, 0x88, 0xf3, 0xb5, 0x64, 0xde, 0x7e, 0x71, 0x1c, 0xe3, 0xf6, 0xea, 0x92, 0x42, 0xd4, 0xd9, 0xcc, 0x21, 0x69, 0x8e, 0x4e, 0x84, 0x6c, 0x70, 0x61, 0x4f, 0x6f, 0x77, 0x77, 0x5f, 0x34, 0x92, 0x79, 0xfc, 0xde, 0xdd, 0xa4, 0xe5, 0x93, 0x9c, 0x1b, 0x2c, 0xf0, 0x5c, 0xf9, 0xf9, 0x96, 0xfd, 0x44, 0xcf, 0x44, 0x82, 0x3d, 0x37, 0xb1, 0x76, 0x84, 0x17, 0xe4, 0xeb, 0xfc, 0x63, 0xd3, 0xad, 0xda, 0x86, 0xb9, 0x4b, 0xb5, 0xf2, 0xbf, 0x38, 0xd9, 0x82, 0x1e, 0x8d, 0xeb, 0xd3, 0x92, 0x8d, 0x63, 0x8d, 0x57, 0xf8, 0x57, 0x9b, 0xd0, 0xfb, 0xba, 0xc, 0x29, 0xa5, 0x80, 0x9b, 0x93, 0xad, 0x89, 0x67, 0x1c, 0xc8, 0x53, 0x2d, 0x91, 0x23, 0xb2, 0xf1, 0x3f, 0x3e, 0xee, 0x3e, 0xcc, 0x8, 0xa7, 0x89, 0x2, 0x52, 0x2a, 0x80, 0x59, 0x7b, 0xff, 0xeb, 0xfc, 0xf5, 0x87, 0xe7, 0x77, 0x22, 0xd8, 0x96, 0x5f, 0x42, 0x30, 0xf9, 0xcd, 0xb0, 0xf0, 0xb1, 0x4f, 0x12, 0x69, 0x27, 0x54, 0xef, 0x43, 0x2e, 0xe8, 0x3, 0xbb, 0x25, 0xeb, 0x80, 0x1c, 0xd8, 0x19, 0xbe, 0x63, 0x3, 0x26, 0x90, 0xe7, 0x67, 0xe5, 0x96, 0xfb, 0x7d, 0xf4, 0x6f, 0xc6, 0x58, 0xe3, 0x67, 0xcf, 0xe7, 0xf, 0xae, 0x2f, 0x7, 0xbc, 0xdb, 0x9b, 0x10, 0xd, 0x2a, 0x41, 0xfa, 0x71, 0x8f, 0xd2, 0xa1, 0x23, 0x7c, 0x5d, 0x83, 0x71, 0x1f, 0x3d, 0xbf, 0xad, 0x9f, 0x45, 0x50, 0xe8, - 0x46, 0x55, 0x74, 0x35, 0x8b, 0xa5, 0x5d, 0x8c, 0x3b, 0x71, 0x4a, 0xeb, 0xdb, 0xfe, 0xde, 0xf1, 0xb, 0x6d, 0xff, 0x17, 0x92, 0xc, 0x50, 0x1b, 0x3e, 0xc7, 0x6e, 0x75, 0xcd, 0xb, 0xd4, 0xbe, 0xb, 0x36, 0x30, 0x13, 0x39, 0xc2, 0x1d, 0x89, 0x62, 0x6d, 0xb5, 0xc, 0x52, 0xdd, 0xbf, 0xc5, 0xd, 0x94, 0xc6, 0xdb, 0x4a, 0xcc, 0x70, 0xd3, 0x3f, 0x68, 0x14, 0xb8, 0xe2, 0x18, 0xb1, 0x7f, 0xe1, 0x6c, 0xc7, 0x4f, 0xca, 0x1b, 0x4f, 0xed, 0x3, 0xb2, 0xe6, 0x1b, 0x32, 0xed, 0x93, 0xe4, 0x6e, 0xf, 0xeb, 0xaf, 0x6e, 0x8f, 0x7d, 0xd6, 0xb5, 0xdf, 0x3c, 0xb9, 0xff, 0xe2, 0x69, 0xf3, 0xfe, 0xcb, 0x27, 0xc9, 0xf, 0x5, 0x13, 0x85, 0x8c, 0x4a, 0xe4, 0x67, 0xf1, 0xfb, 0x0, 0xfd, 0xf1, 0xe6, 0x2d, 0x2c, 0x14, 0x9a, 0xf1, 0x5f, 0xa7, 0x5e, 0xd6, 0x49, 0xed, 0xe5, 0x2d, 0xba, 0xee, 0xf, 0xe6, 0xf4, 0x9b, 0xd4, 0x27, 0x55, 0xcb, 0xcb, 0x33, 0xaf, 0xef, 0x3f, 0xda, 0xf8, 0xad, 0xe9, 0x5c, 0x4e, 0x59, 0x89, 0xba, 0x70, 0x64, 0xdf, 0x8d, 0x4c, 0xa, 0xae, 0x2d, 0xfe, 0x38, 0x64, 0x59, 0x62, 0x1f, 0x9d, 0x4f, 0x1b, 0x7c, 0xe, 0x5b, 0xcf, 0x2f, 0x27, 0x58, 0xe6, 0x35, 0x40, 0xe8, 0xe9, 0xee, 0xd, 0x3d, 0x3a, 0xd, 0xb8, 0x2b, 0x80, 0x1b, 0x2, 0x3e, 0x9f, 0x9c, 0xe5, 0xbf, 0x61, 0xb4, 0x77, 0x8e, 0x84, 0x8d, 0x1e, 0x44, 0xfe, 0x21, 0x95, 0x11, 0xc8, 0x5b, 0x16, 0x1, 0xcc, 0xdd, 0x2, 0xd9, 0xd0, 0x66, 0x69, 0xe8, 0xb4, 0xcf, 0xa3, 0xb6, 0x81, 0xa8, 0xf6, 0x82, 0xe, 0xff, 0xa9, 0xac, 0xff, 0x8, 0x97, 0xf9, 0x40, 0x16, 0x53, 0x81, 0xb1, - 0x4c, 0x55, 0xfd, 0x6e, 0x27, 0x1c, 0xff, 0x6c, 0xa9, 0x25, 0xfd, 0xcb, 0xcc, 0x4, 0x34, 0xa2, 0xca, 0x89, 0xf5, 0x49, 0xf0, 0x24, 0xee, 0xff, 0xed, 0x33, 0xa5, 0x7f, 0x70, 0xa1, 0xff, 0xfd, 0x95, 0x62, 0x59, 0x91, 0x2e, 0xfe, 0xf7, 0xd, 0x75, 0x2f, 0x87, 0x9e, 0xa9, 0x84, 0x56, 0x2c, 0x4d, 0x6c, 0x7, 0x7c, 0x3f, 0x5d, 0xad, 0xa8, 0xcd, 0x9d, 0xb9, 0x54, 0xdb, 0x85, 0xed, 0x6f, 0xd4, 0x36, 0x9e, 0xf6, 0xf5, 0x9b, 0x77, 0xb6, 0x97, 0x82, 0x7a, 0xb5, 0x2f, 0xec, 0x4e, 0x35, 0x7a, 0xae, 0xfc, 0x26, 0xed, 0xcf, 0xcc, 0xa0, 0xbd, 0xd7, 0xaf, 0x3f, 0x92, 0xf9, 0xfc, 0xa7, 0x2c, 0x7f, 0x8e, 0xc9, 0xd9, 0x63, 0xa7, 0x71, 0xe1, 0xcf, 0x94, 0xff, 0xc7, 0x43, 0xa9, 0x16, 0xca, 0xd9, 0x59, 0x97, 0xa9, 0xbb, 0xbd, 0x33, 0xc1, 0x26, 0xd7, 0xf6, 0x94, 0x2a, 0x84, 0x13, 0x7a, 0x66, 0x83, 0xda, 0xb, 0x17, 0xe1, 0x44, 0x19, 0xf5, 0xf8, 0xbe, 0xb4, 0xcf, 0x7f, 0xce, 0x42, 0xc4, 0x38, 0xd4, 0xde, 0x91, 0x32, 0x0, 0x97, 0x76, 0xde, 0xa9, 0xf3, 0x2e, 0x44, 0xdc, 0x8c, 0x79, 0x38, 0x4e, 0x58, 0x5b, 0xbf, 0x10, 0x8a, 0x6c, 0xa, 0x54, 0x59, 0x24, 0x74, 0xa9, 0x9c, 0xad, 0x8f, 0xff, 0x96, 0xd5, 0xf0, 0xd4, 0xd, 0x8c, 0xf8, 0xfa, 0x77, 0x4c, 0xc7, 0xbd, 0xc0, 0x7b, 0x4b, 0x5c, 0xbe, 0xf9, 0xaa, 0xcf, 0x55, 0xe0, 0xdd, 0x3e, 0x1e, 0x1d, 0x41, 0x7b, 0xc8, 0xaf, 0x37, 0x72, 0x4f, 0x59, 0x6a, 0xbe, 0xd4, 0x2a, 0x87, 0x4d, 0x37, 0xc5, 0xf7, 0x6a, 0x38, 0x98, 0xaf, 0xa9, 0x26, 0xa3, 0xa6, 0x21, 0x7c, 0x71, 0xac, 0xf1, 0x1b, 0x4a, 0x5f, 0x1b, - 0xdd, 0x0, 0x87, 0xe3, 0x8b, 0x6d, 0xd4, 0x7c, 0xde, 0xd8, 0xf5, 0x29, 0x2, 0xef, 0x4b, 0xb7, 0xc1, 0x28, 0xe6, 0x92, 0x2c, 0xab, 0x18, 0x6f, 0xf8, 0x22, 0x1f, 0xab, 0x2d, 0x7, 0x55, 0x25, 0x41, 0xbe, 0x1a, 0xcf, 0x31, 0x2b, 0xfa, 0x6c, 0xc7, 0x2f, 0x4c, 0xed, 0xbf, 0x7f, 0xd, 0x9c, 0x98, 0x4f, 0x60, 0xf3, 0x43, 0x25, 0x5d, 0xec, 0x93, 0x6a, 0x8, 0x33, 0x4d, 0x6b, 0xbe, 0xcd, 0x70, 0x53, 0xc4, 0xd0, 0x5, 0x77, 0x82, 0x6b, 0xc, 0xff, 0x33, 0x45, 0xf2, 0x5a, 0xc7, 0xc2, 0x84, 0x6e, 0xd7, 0x3f, 0xdb, 0xf1, 0x1b, 0xe6, 0x8f, 0xe4, 0xe0, 0x58, 0xa5, 0xc4, 0xd6, 0x27, 0x6b, 0x50, 0x4b, 0x35, 0x2e, 0xdc, 0x54, 0x8d, 0x19, 0x9, 0xc7, 0xb2, 0x64, 0xc2, 0xb2, 0x5f, 0x32, 0xee, 0xaf, 0x7f, 0xd4, 0xf1, 0xab, 0xa2, 0xfa, 0x21, 0x48, 0x82, 0x85, 0x71, 0xa1, 0xcb, 0x6a, 0x67, 0xf1, 0x85, 0xd4, 0x7e, 0x79, 0xad, 0x22, 0xc9, 0xc1, 0xe0, 0x4d, 0x2e, 0x2e, 0xd9, 0xf1, 0x19, 0xfa, 0x4, 0xab, 0x7a, 0xde, 0xc4, 0xcc, 0xe7, 0x1f, 0x5a, 0xe3, 0xd6, 0x9c, 0xfa, 0x62, 0x51, 0xd1, 0xa5, 0x2e, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x90, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xd1, 0xe, 0xd9, 0x52, 0xca, 0x88, 0x9b, 0x67, 0x5c, 0x3e, 0x84, 0xd2, 0x6d, 0x93, 0xb4, 0x69, 0xd0, 0x3a, 0xc5, 0x94, 0xb, 0x5c, 0xfa, 0x62, 0x23, 0x7c, 0x66, 0xd3, 0x8a, 0x72, 0x10, 0xae, 0xbb, 0x2b, 0xc2, 0x51, 0x7d, 0xb7, 0x2, 0x27, 0x8a, 0x1e, 0x7e, 0xe9, 0x35, 0xc4, 0x6e, 0x24, 0x53, 0x75, 0xc3, 0x3e, 0x70, 0xb6, 0xe3, 0x17, 0x9e, 0x7f, 0x2b, 0x7c, - 0xd3, 0x91, 0x87, 0x49, 0x76, 0x4e, 0x81, 0xf0, 0x2, 0x5, 0x21, 0xef, 0x32, 0x73, 0x61, 0x11, 0xed, 0xc1, 0xd1, 0xb2, 0x40, 0x78, 0x73, 0x14, 0xca, 0xeb, 0xf6, 0xb9, 0x44, 0xc2, 0x60, 0xf6, 0xc3, 0x6c, 0x64, 0x70, 0xfc, 0xe5, 0xa3, 0x8e, 0xdf, 0x50, 0x7a, 0x6d, 0xfd, 0x7a, 0x38, 0x94, 0xd6, 0x24, 0x25, 0x76, 0x87, 0xa7, 0xbb, 0xfd, 0xe1, 0x67, 0xc6, 0x69, 0x5e, 0x82, 0xab, 0xd9, 0x59, 0xc3, 0x30, 0x32, 0x3e, 0x1f, 0xfd, 0xf7, 0x86, 0x5f, 0x73, 0x72, 0x36, 0x35, 0x57, 0x8b, 0x15, 0x9, 0x82, 0xca, 0x89, 0x2a, 0x42, 0x97, 0xdc, 0xa0, 0xe9, 0x6f, 0x1c, 0x13, 0x56, 0xd4, 0xbb, 0x5c, 0x2f, 0xdf, 0x2e, 0x64, 0x3c, 0x1f, 0x39, 0x9b, 0x3f, 0x8f, 0xa7, 0xec, 0x67, 0x96, 0xf3, 0x68, 0x4d, 0xed, 0x2d, 0x64, 0x16, 0x7b, 0x56, 0xf8, 0x1c, 0x7d, 0xed, 0x56, 0x1c, 0xd7, 0xaf, 0x82, 0x97, 0xeb, 0x38, 0x3f, 0x68, 0x8d, 0x47, 0xde, 0x37, 0x7d, 0x5e, 0xb4, 0x1c, 0x8b, 0x25, 0x59, 0xaf, 0xe0, 0x8d, 0x8b, 0x81, 0xd6, 0xfe, 0xb1, 0xc6, 0x6b, 0x62, 0xde, 0x78, 0x74, 0x49, 0xf8, 0x5a, 0x98, 0xd9, 0xf9, 0x18, 0x77, 0x2e, 0xb3, 0x57, 0xbe, 0x1f, 0xb4, 0x55, 0x9e, 0xeb, 0x67, 0xa6, 0x44, 0xf5, 0x71, 0x82, 0x8b, 0x8a, 0x8c, 0x1f, 0x11, 0x5d, 0xde, 0xbf, 0x51, 0xcc, 0x7b, 0x28, 0xa8, 0x15, 0x2, 0xb1, 0x12, 0xfb, 0x17, 0x46, 0x2c, 0x3f, 0xde, 0x2f, 0xd2, 0xe5, 0x18, 0x8f, 0x4e, 0x2b, 0xfc, 0xcf, 0x1f, 0x68, 0xda, 0xc5, 0xc2, 0x6b, 0x22, 0x6c, 0x4, 0x28, 0x88, 0xbd, 0x44, 0x9d, 0xc7, 0xf2, 0xc3, 0x58, 0xb3, 0x43, 0x44, 0x82, 0xbe, 0xa, 0x55, - 0x1b, 0x37, 0x21, 0x91, 0x13, 0x4d, 0xc4, 0xb9, 0x38, 0x6f, 0xc2, 0xbc, 0x7f, 0xac, 0xf1, 0xfb, 0x0, 0xff, 0x83, 0xf5, 0x96, 0xe3, 0xfe, 0x87, 0xf7, 0xb6, 0x85, 0x8, 0x6, 0xdb, 0xd8, 0xf8, 0x1, 0x11, 0xcb, 0x14, 0x92, 0x69, 0xff, 0x63, 0x98, 0xff, 0xd6, 0x3e, 0x1e, 0xd5, 0x76, 0x6f, 0x45, 0xc8, 0xbc, 0x8b, 0xfa, 0x6f, 0x7e, 0x7b, 0xff, 0xc, 0x56, 0x7a, 0xe6, 0x1c, 0x62, 0xf3, 0x4d, 0x26, 0xdf, 0x88, 0x46, 0x16, 0x33, 0xe3, 0x24, 0x69, 0xf3, 0x5, 0x9e, 0x6e, 0x7a, 0xa8, 0xff, 0xd1, 0xf0, 0x88, 0xf, 0x1e, 0xe8, 0xe7, 0x3a, 0x1a, 0x23, 0xa2, 0x4, 0x4f, 0x34, 0xd3, 0xfe, 0xc7, 0x47, 0x1d, 0xbf, 0x53, 0xf3, 0x3f, 0x58, 0xf7, 0x1d, 0x1d, 0xff, 0xe3, 0xa3, 0x8e, 0x1f, 0x93, 0x7f, 0x1d, 0x12, 0xea, 0x7f, 0xc9, 0xec, 0x3f, 0x79, 0xdc, 0xb9, 0x35, 0x4b, 0x36, 0x22, 0x16, 0x8c, 0x72, 0xac, 0xfb, 0xb6, 0x29, 0x51, 0xe9, 0x5a, 0xe5, 0x46, 0x14, 0xf1, 0x5f, 0xec, 0x2d, 0xa3, 0x34, 0x79, 0xe0, 0xc0, 0xcd, 0x13, 0xf2, 0x1e, 0x42, 0x82, 0x5, 0xe4, 0x47, 0x5, 0x3d, 0x8b, 0xdf, 0x7, 0xd8, 0x2f, 0x7, 0x6e, 0xa1, 0x38, 0xba, 0xd9, 0x1d, 0xb8, 0x76, 0xc5, 0x9, 0x17, 0x7e, 0xa6, 0x15, 0x5e, 0x9f, 0xba, 0xc2, 0x4c, 0x8c, 0x8e, 0xff, 0xf6, 0xf7, 0x86, 0x5f, 0x8d, 0x80, 0x4b, 0xdb, 0x4e, 0x98, 0xc7, 0xa8, 0x59, 0xc2, 0x31, 0x4a, 0x43, 0x4f, 0xe4, 0x94, 0xf2, 0x37, 0x7d, 0x68, 0xf9, 0xf1, 0x6a, 0xb3, 0xde, 0x97, 0x13, 0xb9, 0x88, 0xfe, 0x78, 0x45, 0x5, 0xe5, 0xeb, 0x35, 0x96, 0xa6, 0x97, 0x29, 0xfb, 0xef, 0xa2, 0xef, 0xcf, 0xcb, - 0x6b, 0x8a, 0x8f, 0x90, 0x97, 0x3, 0x24, 0x35, 0x23, 0x83, 0xbb, 0xbd, 0xbf, 0xb8, 0x8, 0x78, 0x67, 0x37, 0x7c, 0xd0, 0x1b, 0x36, 0xd, 0x94, 0x9c, 0x71, 0xf6, 0x60, 0x73, 0xe4, 0x42, 0x44, 0x9b, 0xa9, 0xf4, 0x1b, 0xcc, 0xdf, 0xb9, 0x59, 0x40, 0x8, 0xfa, 0x39, 0xc9, 0x72, 0x9b, 0x29, 0x32, 0xcf, 0x7f, 0xc6, 0xa2, 0x7e, 0xee, 0xa7, 0x42, 0xf, 0xe5, 0x3f, 0x93, 0xfb, 0x33, 0xc2, 0xe3, 0xd7, 0x82, 0xd9, 0x2f, 0xb4, 0x9, 0x1e, 0xdf, 0x64, 0x77, 0x11, 0xe3, 0xbf, 0x6a, 0x92, 0x42, 0xaf, 0x67, 0xce, 0x1f, 0x6a, 0x4, 0xfe, 0xcf, 0x5c, 0x9f, 0x26, 0xee, 0x6d, 0xdf, 0xba, 0x42, 0x69, 0x14, 0x5f, 0x1c, 0x6b, 0xbc, 0x86, 0xce, 0x9f, 0xdf, 0xac, 0xf4, 0xea, 0x1a, 0x35, 0xc9, 0xc0, 0xb2, 0xca, 0x82, 0x13, 0x98, 0xfe, 0x88, 0xda, 0xe9, 0x87, 0x46, 0x65, 0xfe, 0xbc, 0xca, 0xac, 0x37, 0xf2, 0xd, 0x31, 0x44, 0x6d, 0x68, 0x77, 0xc2, 0x69, 0xeb, 0xab, 0xd4, 0x4f, 0x9b, 0x8, 0x10, 0xa7, 0xfc, 0x80, 0xb, 0x64, 0x82, 0x7d, 0xb9, 0xc5, 0x5d, 0xae, 0xef, 0x5f, 0x3, 0x2c, 0xd2, 0x8f, 0x8d, 0x47, 0x2b, 0x8f, 0x56, 0xe8, 0x15, 0x63, 0xce, 0x7f, 0x43, 0xe7, 0xcf, 0x99, 0x3f, 0x60, 0x5a, 0xf3, 0x17, 0x33, 0x21, 0x51, 0xad, 0xec, 0x9d, 0xb9, 0x1e, 0xb2, 0x4e, 0x38, 0x3b, 0x64, 0xc8, 0xa7, 0x65, 0x7a, 0xfe, 0xfc, 0xa3, 0x8e, 0xdf, 0xd0, 0xf9, 0xf3, 0xf0, 0x23, 0x4e, 0x7c, 0x53, 0xae, 0xbc, 0x48, 0x2c, 0x75, 0x39, 0xe0, 0x2f, 0x90, 0xc2, 0x9b, 0x9b, 0x10, 0xbc, 0xc0, 0x77, 0x91, 0x9f, 0xa2, 0xe5, 0x53, 0xcd, 0x44, 0xa6, 0xe7, 0xcf, 0x3f, - 0xea, 0xf8, 0xd, 0xd3, 0x1f, 0xb9, 0x1e, 0xe4, 0x26, 0x16, 0x89, 0x2c, 0x84, 0xcc, 0x9a, 0xff, 0x7d, 0xa2, 0x17, 0xc1, 0x4f, 0xec, 0x9f, 0xca, 0xf0, 0x53, 0x54, 0x35, 0xe3, 0xf9, 0x5d, 0xff, 0xde, 0xf0, 0xcb, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0xce, 0xd2, 0x59, 0x3a, 0x4b, 0x67, 0xe9, 0x2c, 0x9d, 0xa5, 0xb3, 0x74, 0x96, 0x3e, 0xdd, 0xb4, 0x7c, 0xab, 0xa, 0x1e, 0xd2, 0x46, 0x5d, 0xda, 0x65, 0x9c, 0x4a, 0xfe, 0x94, 0x91, 0xd2, 0x73, 0xa3, 0x7c, 0x50, 0x13, 0xfb, 0x39, 0xe8, 0x9c, 0x3e, 0x1b, 0x71, 0x2b, 0xff, 0xa4, 0x7d, 0x8e, 0x38, 0x4d, 0xc1, 0x3c, 0xe3, 0xf6, 0xa7, 0x4b, 0x47, 0x87, 0x9b, 0x8b, 0x1, 0xb9, 0x3e, 0xe8, 0x70, 0x61, 0xce, 0xbc, 0x8a, 0xf9, 0x93, 0xff, 0x2a, 0xdf, 0x9, 0x37, 0x3c, 0x5f, 0x7f, 0x96, 0xfe, 0x6b, 0xba, 0xb9, 0x6b, 0x9, 0x5b, 0x1c, 0x10, 0xcc, 0x4d, 0x5a, 0x29, 0x8b, 0x50, 0x57, 0xfd, 0x69, 0xdc, 0x2d, 0xdf, 0xff, 0x8a, 0x70, 0x98, 0x2f, 0x47, 0x49, 0x7a, 0x7e, 0x2c, 0xcd, 0xc1, 0xef, 0x39, 0xb4, 0x25, 0xd7, 0x41, 0x50, 0xd8, 0xe, 0x31, 0xa7, 0x50, 0x3f, 0xc9, 0xa9, 0x4a, 0x24, 0xf9, 0x9c, 0x42, 0xb8, 0x3c, 0xf, 0x6a, 0x2e, 0x64, 0xfb, 0x41, 0x5b, 0xb1, 0xe4, 0x31, 0x74, 0x6b, 0x5c, 0xf8, 0x47, 0xb, 0xad, 0xd, 0xeb, - 0x7a, 0xd9, 0x11, 0x45, 0xf5, 0xaf, 0x88, 0xcf, 0xc3, 0x6f, 0x2, 0x45, 0x8d, 0x5c, 0xe7, 0x64, 0x52, 0x10, 0xcb, 0x55, 0x9a, 0xcd, 0xdb, 0xe9, 0x9, 0xc7, 0x22, 0x96, 0xfe, 0x18, 0x67, 0x40, 0x3e, 0x1b, 0xef, 0x76, 0x19, 0xed, 0xe4, 0x5a, 0xb1, 0xac, 0x5b, 0x79, 0x8a, 0xe5, 0x5c, 0x9, 0x3d, 0xa3, 0xa0, 0x57, 0x7b, 0x89, 0xbb, 0x84, 0x4, 0x3b, 0xe, 0xbc, 0xb1, 0x85, 0xe4, 0xcc, 0x8e, 0xb2, 0xed, 0x58, 0xac, 0x5, 0x7, 0x6c, 0x55, 0xfd, 0x88, 0xaf, 0xf7, 0xf6, 0x52, 0x96, 0xff, 0xf4, 0x63, 0x3a, 0x38, 0xc8, 0x91, 0xca, 0xa4, 0xf7, 0xb6, 0x8f, 0xd, 0xee, 0xa7, 0xdd, 0x17, 0xe5, 0xd4, 0xbd, 0x35, 0x42, 0x2a, 0x1f, 0x6c, 0x37, 0x11, 0x95, 0xda, 0x5d, 0x77, 0x84, 0xa, 0x2f, 0x9, 0x3a, 0x8b, 0x2b, 0xb, 0xab, 0x3f, 0xfe, 0xd5, 0x9f, 0x1d, 0x78, 0x7d, 0xff, 0xee, 0xb1, 0xc6, 0x6b, 0x58, 0xff, 0x6d, 0x72, 0x63, 0x62, 0xbf, 0x6b, 0xb1, 0xc7, 0xe3, 0xf3, 0x7, 0x9c, 0xf6, 0x7a, 0xc, 0xa9, 0x88, 0x2b, 0x47, 0x12, 0x26, 0x5b, 0x74, 0x9b, 0xee, 0xfb, 0x4d, 0xbb, 0x24, 0xcc, 0x0, 0x22, 0xd8, 0xa3, 0x89, 0x7d, 0xa7, 0x50, 0xdf, 0x9b, 0x5f, 0x64, 0xed, 0x87, 0x6c, 0xe1, 0x25, 0xaa, 0xc3, 0xf6, 0x1f, 0x77, 0xbc, 0xf4, 0x3b, 0x68, 0x3e, 0x6d, 0x30, 0x87, 0xc8, 0x4d, 0x2c, 0xdf, 0x37, 0x5f, 0xd8, 0xe6, 0x4e, 0x8, 0xa6, 0xf6, 0x74, 0xb2, 0xa4, 0x9c, 0xf2, 0xaf, 0x59, 0x79, 0x4f, 0x59, 0xa3, 0xb6, 0x7f, 0xd3, 0x91, 0x39, 0xb4, 0x42, 0x69, 0xe, 0x6f, 0xe, 0xae, 0xe5, 0xdc, 0x19, 0xbd, 0x63, 0xf9, 0x30, 0x7e, 0x17, 0xf0, 0x35, - 0xfa, 0x41, 0xd6, 0x53, 0x75, 0x32, 0x8e, 0xdf, 0xa3, 0x4e, 0x6c, 0xab, 0xaf, 0xe7, 0xc, 0xd1, 0xe5, 0x2f, 0x90, 0x4, 0x84, 0xb, 0x97, 0xc1, 0x55, 0x85, 0x2b, 0x5, 0x8f, 0x8f, 0x2d, 0xbf, 0x48, 0xdf, 0x1f, 0x3f, 0xe4, 0xfa, 0xa0, 0x9a, 0x37, 0x37, 0x53, 0x3e, 0xbe, 0x49, 0x8a, 0xa0, 0xfb, 0xca, 0xca, 0xb2, 0x5a, 0x34, 0xd7, 0xde, 0x2, 0x87, 0xa6, 0x29, 0xd6, 0x69, 0x51, 0xed, 0x39, 0x29, 0x7f, 0x17, 0x8e, 0x1d, 0xfe, 0x93, 0xf3, 0xda, 0xe2, 0x4f, 0x21, 0xf9, 0x46, 0x2b, 0x1, 0xf7, 0xf1, 0x3d, 0x15, 0x9f, 0x5f, 0xf, 0x6f, 0xfe, 0xb9, 0xe8, 0xd5, 0x5, 0x78, 0x74, 0x6d, 0xc5, 0xc6, 0xe7, 0xc7, 0x3e, 0x5f, 0xbf, 0x77, 0xfd, 0xf5, 0x70, 0x98, 0x1c, 0x8f, 0xde, 0x5a, 0x52, 0xa5, 0x96, 0x65, 0xf5, 0x45, 0x3a, 0x7e, 0xfb, 0xec, 0xbf, 0x4, 0x2f, 0x63, 0xdb, 0xf5, 0xa4, 0x98, 0xbe, 0x29, 0x59, 0x8d, 0xd0, 0x53, 0x5, 0x93, 0x6b, 0x41, 0x99, 0x41, 0x35, 0x10, 0x16, 0xb0, 0xe8, 0xe4, 0xfd, 0x44, 0xaf, 0xee, 0x50, 0xe0, 0x23, 0x56, 0x3a, 0x1b, 0x91, 0xc9, 0xf4, 0x11, 0xdb, 0x2f, 0x1b, 0x37, 0xe1, 0xce, 0x5, 0x8c, 0x67, 0x4b, 0x10, 0x94, 0x12, 0xfc, 0x35, 0x0, 0x7f, 0x40, 0x80, 0x41, 0x55, 0x55, 0x2b, 0xb0, 0x21, 0xed, 0xfe, 0xb3, 0x23, 0xa5, 0xeb, 0x8a, 0x97, 0x22, 0xe8, 0x62, 0x19, 0xe, 0x9c, 0xb4, 0x5, 0xe5, 0x98, 0x6c, 0xe5, 0xeb, 0x31, 0x58, 0x86, 0x4b, 0xdd, 0x21, 0xa4, 0xdf, 0xaf, 0xea, 0xea, 0xda, 0x6, 0xab, 0xc3, 0x51, 0xc9, 0x41, 0x98, 0x3e, 0x60, 0xf6, 0x97, 0x9b, 0xfe, 0xd2, 0x2, 0xb4, 0xc0, 0xe4, 0x13, - 0xce, 0x30, 0x87, 0xa7, 0x52, 0xd0, 0x59, 0xaf, 0x99, 0x6e, 0xff, 0x55, 0xdb, 0xd8, 0x72, 0x1f, 0xfe, 0xf1, 0x50, 0xe1, 0x83, 0x8d, 0x4b, 0x7f, 0x7e, 0xfe, 0x92, 0xd, 0xe0, 0x8f, 0x55, 0xba, 0x63, 0x2e, 0xac, 0xc3, 0x4d, 0x88, 0xf1, 0x6c, 0x7f, 0x8d, 0xc0, 0xe0, 0xb3, 0x3, 0x81, 0x41, 0xf1, 0xad, 0x62, 0xcb, 0x59, 0x91, 0xb0, 0xfe, 0x8d, 0x78, 0x7f, 0x26, 0x47, 0xe1, 0x26, 0x10, 0xbe, 0x4e, 0xbb, 0xeb, 0xc7, 0xf4, 0x57, 0x5d, 0xfb, 0x47, 0xbc, 0xbe, 0x89, 0xca, 0xe3, 0x3, 0x95, 0x6a, 0x77, 0x4, 0xc9, 0xfa, 0xad, 0x6c, 0x43, 0x9d, 0xd0, 0xbb, 0x9c, 0xd6, 0x33, 0xad, 0x9f, 0x2b, 0x8d, 0x2a, 0xbe, 0xcf, 0xdd, 0xcc, 0xb7, 0x65, 0x1a, 0xbf, 0xd0, 0x23, 0x51, 0x78, 0xf8, 0xa7, 0xb9, 0x56, 0x9d, 0x3e, 0x72, 0xf9, 0xa6, 0xa2, 0xb4, 0xf5, 0x1f, 0xe5, 0x58, 0xfe, 0xc9, 0x5e, 0x9b, 0x9e, 0xfd, 0xe4, 0x58, 0xf7, 0xdf, 0xa1, 0xf4, 0xd2, 0x1d, 0x6d, 0xd6, 0xf6, 0x5b, 0x52, 0x6a, 0x15, 0xd8, 0x68, 0x5f, 0x6f, 0x7a, 0x74, 0x1a, 0x92, 0x47, 0x18, 0x8b, 0xf1, 0x3f, 0xec, 0x77, 0xf3, 0x68, 0xde, 0x11, 0xa3, 0x9f, 0xc9, 0x24, 0xfb, 0x3c, 0x86, 0xf5, 0xdf, 0xe3, 0xfa, 0x24, 0x66, 0xb8, 0x6b, 0x4e, 0x43, 0xfb, 0x3e, 0x6a, 0x74, 0x8d, 0x60, 0xed, 0x6f, 0xe, 0x9d, 0x65, 0x4, 0xa2, 0xff, 0xc6, 0xba, 0x3d, 0x67, 0x3a, 0x5d, 0x57, 0xbd, 0xd2, 0xb2, 0x76, 0xe, 0xbb, 0x8f, 0x4a, 0xab, 0x90, 0xe5, 0xa7, 0x11, 0xcb, 0xc3, 0xcd, 0x2b, 0xb1, 0xb, 0xe2, 0x94, 0x76, 0x4a, 0xe9, 0x7, 0xa3, 0x19, 0x5f, 0xaf, 0x7a, 0xda, 0xf9, 0x63, 0x87, 0x1f, - 0x4a, 0xb5, 0xc9, 0x1d, 0x45, 0x0, 0x6e, 0xc, 0xf7, 0x67, 0x59, 0x3e, 0x11, 0x7d, 0xa, 0xfb, 0x1c, 0xb4, 0x64, 0x7a, 0xe8, 0x68, 0x18, 0x58, 0x20, 0x7a, 0xed, 0x84, 0xb, 0x3d, 0x69, 0xfd, 0xab, 0x8f, 0xf9, 0xdc, 0x86, 0x47, 0x60, 0xc9, 0x91, 0x6c, 0x17, 0xa3, 0x4e, 0xe6, 0xe0, 0xe8, 0x4a, 0x38, 0x4d, 0xbe, 0x85, 0x5e, 0x51, 0x2, 0xd5, 0xff, 0xf7, 0x9c, 0x6c, 0x3f, 0x31, 0x7f, 0x88, 0x2a, 0x5e, 0x93, 0x9a, 0x7, 0xb, 0x74, 0x77, 0xc2, 0x39, 0xe2, 0xfb, 0x93, 0x9b, 0xd9, 0x46, 0x5b, 0xd4, 0x1a, 0xd3, 0x17, 0x66, 0x62, 0x3f, 0xa, 0xea, 0x6f, 0x1e, 0xb3, 0xf6, 0xdb, 0xd0, 0xc4, 0x6e, 0x1d, 0x96, 0x3f, 0x94, 0xac, 0xe4, 0xba, 0x23, 0x5c, 0x4f, 0xe4, 0xdc, 0xd6, 0xba, 0xf4, 0xf6, 0xf4, 0x94, 0x3e, 0xb6, 0xd2, 0x3e, 0xc6, 0x3d, 0x3c, 0x63, 0x11, 0x69, 0x97, 0xc7, 0x9d, 0x9b, 0xae, 0x7e, 0x35, 0xa7, 0xf3, 0x8d, 0xcc, 0x52, 0x62, 0x59, 0x98, 0xe9, 0x7f, 0xb6, 0x7f, 0x89, 0xc1, 0x85, 0x35, 0xeb, 0x34, 0x51, 0xfc, 0x9b, 0xa8, 0xdb, 0x31, 0x88, 0x5f, 0xff, 0xfe, 0xff, 0xbc, 0x2b, 0x7c, 0x87, 0x82, 0x78, 0x82, 0xc3, 0x52, 0xb6, 0x81, 0x27, 0xc7, 0x9, 0x27, 0xed, 0xdf, 0x19, 0x1f, 0x8b, 0xfd, 0x3b, 0x87, 0xd2, 0x6b, 0x69, 0xc7, 0x51, 0x65, 0x24, 0xe2, 0x3d, 0xd6, 0x76, 0x3a, 0x70, 0x6c, 0x9e, 0x4e, 0x9b, 0xf6, 0x55, 0x5, 0x3b, 0x3c, 0xf7, 0x24, 0xd4, 0x82, 0x51, 0x97, 0x4f, 0x17, 0x75, 0xae, 0xa7, 0xef, 0x33, 0xad, 0xbd, 0x8, 0x61, 0x34, 0x20, 0xb4, 0x80, 0x1a, 0xb7, 0xed, 0xe, 0xdd, 0xce, 0x0, 0x78, 0x68, 0x73, 0x55, - 0xf5, 0x97, 0xa1, 0xff, 0xcf, 0x40, 0x0, 0x5b, 0x50, 0xc9, 0xfe, 0xc6, 0x1a, 0xaf, 0x61, 0xf8, 0xf5, 0x56, 0xd8, 0xde, 0xeb, 0x67, 0x4b, 0x4a, 0x42, 0xb0, 0xf2, 0x29, 0xf1, 0x7e, 0x83, 0x2b, 0xd5, 0x25, 0xd3, 0xca, 0x42, 0x9f, 0xe9, 0xeb, 0x95, 0x4e, 0x5f, 0x6, 0xcf, 0xa1, 0x27, 0x23, 0x39, 0x6e, 0xdb, 0x65, 0xe, 0xbf, 0x7f, 0x2d, 0x72, 0x21, 0xda, 0x1b, 0x98, 0xba, 0x3, 0xfe, 0x75, 0xdb, 0x28, 0x92, 0x8a, 0xb5, 0x25, 0xc7, 0x76, 0xf7, 0xfe, 0x87, 0x16, 0x96, 0xbe, 0x70, 0x3b, 0x60, 0x49, 0x7, 0xbe, 0xb4, 0x71, 0xf9, 0x56, 0x75, 0xac, 0xf1, 0x1a, 0x4a, 0x7b, 0x9f, 0xb8, 0x75, 0xd0, 0xf9, 0xdf, 0xc9, 0xd2, 0x50, 0xc9, 0xd, 0x39, 0x70, 0x20, 0x52, 0x6e, 0xb0, 0xb1, 0x60, 0x64, 0x9e, 0xff, 0xc2, 0x47, 0xab, 0x81, 0x19, 0xb2, 0xe2, 0xf7, 0xb1, 0x74, 0x6b, 0xb0, 0xf2, 0xff, 0xd4, 0xa7, 0x1a, 0xe0, 0x30, 0x75, 0x77, 0xa8, 0xf0, 0x5c, 0xe0, 0x3c, 0x2a, 0x52, 0xd9, 0x1, 0xe3, 0xd0, 0xe4, 0xd2, 0x1c, 0xf9, 0x18, 0xe7, 0xf4, 0xb1, 0x6c, 0x87, 0x15, 0x91, 0x3a, 0xe9, 0x8c, 0xc3, 0xaf, 0xe6, 0xc2, 0x65, 0x8, 0x86, 0x96, 0xa3, 0xac, 0xc3, 0xce, 0xa3, 0x60, 0xe5, 0xef, 0x62, 0xf7, 0x92, 0x80, 0x9b, 0xe1, 0x99, 0x79, 0x79, 0xf1, 0x9, 0x38, 0x28, 0x3b, 0xe9, 0xbb, 0x3, 0x4d, 0xc6, 0x62, 0x61, 0x58, 0x3e, 0xa4, 0x95, 0xe6, 0x8d, 0x30, 0xe8, 0x79, 0x97, 0xd5, 0x9a, 0x15, 0x1b, 0xbc, 0xb7, 0xcd, 0x44, 0x75, 0x19, 0x24, 0x57, 0xf1, 0xfa, 0xdb, 0x55, 0x91, 0x37, 0xc6, 0x1a, 0xaf, 0x61, 0xfc, 0x30, 0x75, 0x16, 0x59, 0x46, 0xf8, - 0x71, 0x70, 0xb9, 0x5c, 0x1, 0x37, 0xd0, 0x1c, 0xaf, 0x9, 0xe6, 0x13, 0x78, 0xe9, 0x49, 0x6d, 0x5d, 0x5f, 0xe6, 0xf1, 0x6b, 0xee, 0x5a, 0x8d, 0x2e, 0x82, 0x45, 0xec, 0x19, 0xc1, 0x91, 0x4c, 0x52, 0x7d, 0x31, 0x38, 0x7e, 0xa7, 0x49, 0xff, 0xb1, 0xba, 0xce, 0xca, 0xff, 0x33, 0x98, 0x1f, 0x66, 0x7f, 0xc5, 0xfe, 0xd2, 0xcf, 0x5e, 0x8d, 0xa0, 0xb9, 0xb2, 0x4d, 0x62, 0xfb, 0xe7, 0x90, 0x64, 0xed, 0x58, 0xe3, 0x35, 0x8c, 0xff, 0x96, 0x14, 0xd0, 0xf6, 0x2e, 0x92, 0x66, 0x47, 0xb8, 0x29, 0x84, 0x1e, 0xf1, 0xe6, 0xd8, 0xfb, 0x2b, 0xb3, 0x87, 0xbf, 0xb1, 0x2c, 0xf3, 0xf8, 0xd5, 0xac, 0x51, 0x89, 0x2b, 0x71, 0x95, 0xd8, 0x89, 0x6e, 0x72, 0x8f, 0xd2, 0x2e, 0x9d, 0x94, 0x3f, 0xc4, 0x3, 0x77, 0x9c, 0x6b, 0xae, 0xa5, 0xfa, 0xfc, 0xa6, 0x7a, 0x3b, 0x79, 0x53, 0x6d, 0x63, 0x77, 0xf8, 0xfd, 0xb9, 0xd8, 0xa6, 0x7f, 0x7d, 0x72, 0x7b, 0x81, 0x24, 0x89, 0x5, 0xfd, 0xe6, 0x58, 0xe3, 0x35, 0x94, 0x96, 0xc7, 0x85, 0x52, 0x4f, 0x7b, 0xe0, 0x1d, 0xf7, 0x24, 0x66, 0xbf, 0x50, 0xfb, 0x21, 0xa2, 0x4b, 0xdd, 0x9d, 0xa4, 0x62, 0x9d, 0x98, 0x79, 0xfc, 0x42, 0x6f, 0x76, 0x41, 0xfb, 0x27, 0x47, 0x80, 0xa, 0x37, 0xcd, 0x43, 0xe5, 0x5e, 0x5d, 0xf1, 0xe5, 0xa9, 0xd1, 0x57, 0x1e, 0xe5, 0x28, 0x1c, 0x76, 0xbd, 0x9a, 0x6f, 0x48, 0x28, 0x2e, 0x6, 0xab, 0x23, 0xfa, 0xa0, 0x76, 0x8d, 0x35, 0x5e, 0xc3, 0xed, 0x3f, 0xc7, 0xb1, 0x4a, 0x55, 0x13, 0xbb, 0x74, 0x75, 0x27, 0xdb, 0xff, 0xca, 0xc2, 0xaf, 0x6b, 0x35, 0xa7, 0x52, 0x5f, 0xb4, 0xf1, 0x9e, 0x64, 0xc6, - 0xf1, 0xab, 0xdb, 0x51, 0x87, 0xe2, 0x6a, 0xb6, 0x7b, 0x6c, 0x92, 0x1b, 0xc0, 0x34, 0x96, 0xbf, 0xd5, 0xb8, 0x0, 0x2c, 0x79, 0xd, 0x4b, 0xfb, 0xdc, 0xad, 0x84, 0x99, 0xfe, 0x98, 0xc8, 0x86, 0xaa, 0xd8, 0xc1, 0x7e, 0xbf, 0xb5, 0xbf, 0x67, 0x4f, 0x84, 0xeb, 0xd3, 0x55, 0x4d, 0xaa, 0x55, 0xc7, 0x7c, 0xff, 0xab, 0x61, 0xf2, 0xef, 0x90, 0x17, 0x51, 0xae, 0x3a, 0xff, 0x4e, 0xbf, 0xcf, 0xef, 0x96, 0x2c, 0xfc, 0x4c, 0x4e, 0xa5, 0x68, 0x46, 0x51, 0xa1, 0x8d, 0x2, 0xff, 0x85, 0x7f, 0x70, 0x15, 0xa8, 0x58, 0x25, 0xdc, 0x3f, 0x51, 0x52, 0x72, 0xfb, 0xe7, 0xb6, 0xdf, 0x8d, 0x20, 0x34, 0xca, 0x8f, 0x78, 0xdd, 0xad, 0xbf, 0x8d, 0xf0, 0x4, 0xe, 0x6b, 0xdb, 0xbe, 0x7b, 0xbe, 0x55, 0xdd, 0x30, 0xbb, 0x9a, 0x54, 0x1f, 0x3a, 0x27, 0xe7, 0x79, 0x6a, 0xdb, 0x54, 0xe5, 0xb1, 0x8d, 0x9b, 0xce, 0x7a, 0x7f, 0x79, 0xa8, 0xbf, 0xfb, 0xf7, 0xe6, 0xff, 0x8e, 0xba, 0xbc, 0xd8, 0x96, 0x8b, 0x58, 0xd0, 0xda, 0x7e, 0x35, 0xc2, 0xbd, 0xa8, 0x71, 0x35, 0x2, 0x7f, 0x62, 0xfc, 0xaa, 0xeb, 0xa3, 0x37, 0x7e, 0xe5, 0xd8, 0xfe, 0x2f, 0xa4, 0xc7, 0xda, 0xdf, 0xca, 0xd6, 0xba, 0x96, 0x3e, 0xcc, 0x6f, 0x31, 0x6, 0x95, 0x62, 0xa6, 0xaf, 0xe7, 0xbd, 0x6d, 0x36, 0x12, 0x41, 0xa3, 0x83, 0xa8, 0xa5, 0x5a, 0x65, 0x5d, 0x95, 0x38, 0x4c, 0x3e, 0xca, 0x85, 0xb6, 0x7f, 0xcf, 0x30, 0x15, 0xf4, 0xdf, 0xbe, 0xbc, 0xb1, 0xa, 0xd5, 0x41, 0x87, 0x43, 0x31, 0xd, 0x9d, 0x1e, 0x1a, 0xf3, 0xf9, 0xb6, 0xb1, 0xa6, 0xa7, 0x47, 0xa8, 0x9b, 0x1d, 0xb, 0x24, 0x9b, 0xbe, 0xe1, - 0x7, 0x6e, 0xfc, 0x65, 0x41, 0x5a, 0xfb, 0x20, 0xc7, 0xb8, 0xb, 0xbf, 0x1f, 0x38, 0x66, 0x45, 0x47, 0xf4, 0xff, 0xa9, 0x75, 0xac, 0xdb, 0x3f, 0x94, 0x5e, 0xd3, 0x39, 0x97, 0x7c, 0xda, 0x21, 0xb3, 0x79, 0xa4, 0x1e, 0x96, 0x79, 0xbb, 0x54, 0xc0, 0xf3, 0xc8, 0x60, 0xbe, 0xc7, 0x61, 0xf2, 0xef, 0xd1, 0x3b, 0x61, 0x70, 0x3e, 0xdf, 0xd7, 0x3, 0x3f, 0x9, 0x52, 0x37, 0x43, 0xf4, 0x3a, 0xb, 0x51, 0x3c, 0x78, 0x31, 0xe4, 0x75, 0xf, 0xe3, 0xd7, 0x7c, 0xe, 0x13, 0x68, 0x85, 0x60, 0x24, 0xca, 0x8c, 0x82, 0x33, 0x8e, 0xff, 0x8e, 0xef, 0xdf, 0x55, 0x1f, 0xdd, 0x48, 0xdd, 0xf, 0x78, 0xdf, 0x9e, 0x40, 0xfd, 0xf9, 0x36, 0x49, 0xa5, 0x6, 0xa0, 0xba, 0x67, 0x14, 0xfa, 0xef, 0x76, 0x1e, 0x7a, 0x90, 0x3, 0x81, 0xda, 0xdd, 0x1b, 0xa4, 0xd7, 0x3b, 0x94, 0x8b, 0x8d, 0x14, 0x51, 0x7a, 0x72, 0x4f, 0x57, 0x84, 0xa0, 0x86, 0x43, 0xdf, 0x89, 0xf1, 0x3f, 0x9e, 0x34, 0x7b, 0x66, 0xe1, 0xb3, 0xfa, 0x15, 0x94, 0x69, 0x75, 0x1d, 0xa4, 0x56, 0x19, 0x6b, 0xbc, 0x86, 0xc9, 0x9b, 0x3, 0x8d, 0x28, 0x96, 0x9f, 0xb6, 0xc6, 0x2e, 0x59, 0xbb, 0x7, 0xf7, 0x3, 0x94, 0xd, 0xe4, 0x1f, 0x7e, 0xef, 0x90, 0x24, 0xe6, 0x3d, 0x4, 0x4c, 0x1, 0x2a, 0x2a, 0xe9, 0xc9, 0xf6, 0xf6, 0xf6, 0x87, 0x9c, 0xe3, 0x91, 0xa0, 0x9d, 0xe9, 0x9c, 0x5f, 0xbf, 0x3f, 0xe9, 0x5c, 0xca, 0xa5, 0xa1, 0x5f, 0x95, 0x91, 0xf7, 0xdc, 0x7b, 0x1c, 0xcd, 0x2d, 0xe5, 0xf4, 0x4b, 0xe5, 0xfd, 0xd6, 0x78, 0x62, 0x27, 0x7a, 0x88, 0x54, 0xcb, 0x95, 0x62, 0xf8, 0x7e, 0xe5, 0x35, 0x6b, 0x2e, - 0xc6, 0xae, 0xf9, 0xd4, 0xde, 0x84, 0x33, 0xc2, 0x75, 0x47, 0xac, 0x78, 0x11, 0x76, 0xc6, 0x69, 0xed, 0xc8, 0xdb, 0x68, 0x5d, 0xbf, 0x55, 0x7b, 0x8e, 0xb8, 0x13, 0x48, 0x72, 0xad, 0xc1, 0x7c, 0x76, 0x5e, 0x77, 0xc3, 0xad, 0x4b, 0x86, 0x33, 0xce, 0x6d, 0x66, 0xf3, 0x9b, 0x8b, 0x50, 0xa1, 0xbb, 0xd, 0x67, 0x42, 0x88, 0xf3, 0x76, 0x7b, 0x4d, 0xb7, 0x4e, 0x7f, 0xe1, 0x59, 0xf3, 0xfe, 0xfd, 0x5, 0x2d, 0xe1, 0xdb, 0xbe, 0x1a, 0x7b, 0x2f, 0xa0, 0xd9, 0x2e, 0x1, 0x89, 0x91, 0xba, 0xf6, 0x95, 0xf0, 0x17, 0xa0, 0x90, 0x7d, 0x83, 0x48, 0x64, 0x98, 0x7e, 0xba, 0x90, 0x4a, 0x91, 0x93, 0xc6, 0x6b, 0x83, 0xe1, 0xed, 0xdf, 0x3, 0x3e, 0x76, 0x47, 0x51, 0x8a, 0x2e, 0x4d, 0x87, 0x5f, 0x55, 0x47, 0x8e, 0x2e, 0xeb, 0x2, 0xb5, 0xfd, 0xdd, 0xf4, 0x1e, 0xac, 0xfd, 0xec, 0xdf, 0xe2, 0x6a, 0xa9, 0x73, 0x25, 0x75, 0x72, 0x73, 0x88, 0x3a, 0x1a, 0xfb, 0x87, 0x51, 0x3c, 0x88, 0x73, 0x40, 0x78, 0x85, 0x33, 0xf1, 0x14, 0x2e, 0xeb, 0x78, 0x92, 0x8d, 0x85, 0xae, 0x22, 0x5e, 0xab, 0xf9, 0x4a, 0x53, 0xad, 0xa2, 0x8b, 0x76, 0xaa, 0x53, 0x83, 0x50, 0x2f, 0x6f, 0x3, 0x70, 0x6c, 0x79, 0x1, 0x8e, 0xea, 0x9e, 0x67, 0xfd, 0x73, 0x10, 0x3d, 0xe3, 0xe2, 0x3, 0x6b, 0x5e, 0xb8, 0x6, 0xf2, 0xb9, 0x44, 0x2c, 0x85, 0xe4, 0x22, 0x15, 0x94, 0x9f, 0xae, 0xbe, 0x4c, 0xfb, 0xca, 0x34, 0x93, 0x3b, 0x4f, 0xdc, 0xb2, 0x65, 0x8b, 0x94, 0xf9, 0xfd, 0x23, 0x4a, 0x29, 0xff, 0xe9, 0x7f, 0x9a, 0xc, 0xc1, 0xa7, 0x57, 0x51, 0xf6, 0x93, 0x98, 0xff, 0x71, 0x1b, 0x3d, 0xa3, - 0x71, 0x6c, 0x52, 0xa0, 0x7b, 0xd6, 0x26, 0x1c, 0xdf, 0xf, 0x10, 0x33, 0xde, 0xf8, 0x4f, 0xbe, 0x34, 0x27, 0xef, 0xbd, 0x4a, 0x36, 0x78, 0xf0, 0x14, 0xe6, 0x34, 0xde, 0x50, 0x39, 0x4c, 0x5f, 0x8f, 0x35, 0x4d, 0xf9, 0xed, 0x3d, 0x6b, 0xfc, 0x3e, 0x22, 0x5a, 0xf3, 0xac, 0x72, 0xe, 0x59, 0x9c, 0x6a, 0xfe, 0xeb, 0x3, 0x87, 0xa5, 0x51, 0xe0, 0x3f, 0x7d, 0xd1, 0x33, 0x2c, 0x97, 0xb7, 0x60, 0xe7, 0x0, 0xf, 0x3f, 0xf1, 0x6b, 0x18, 0xb9, 0x4a, 0xc0, 0x3e, 0x2f, 0x8, 0xd7, 0xe1, 0xf8, 0x78, 0x82, 0xfe, 0xea, 0xfb, 0x15, 0x37, 0xda, 0xf9, 0x7a, 0xff, 0x77, 0x7d, 0xd6, 0x44, 0xbd, 0xbd, 0x93, 0xe7, 0x4b, 0x4e, 0x37, 0x7e, 0x4b, 0x6b, 0x27, 0xb2, 0xf1, 0xe, 0xf8, 0x67, 0x38, 0xc0, 0x57, 0xcc, 0x64, 0xf8, 0xf1, 0x92, 0x89, 0x85, 0xc4, 0x6d, 0x4a, 0x87, 0xe1, 0x48, 0xbf, 0x1f, 0x22, 0x87, 0x4b, 0xed, 0xf6, 0xeb, 0x1f, 0x78, 0x7f, 0x43, 0xe9, 0x79, 0xf5, 0x17, 0x23, 0x38, 0x95, 0x47, 0x5, 0x8c, 0x55, 0xe8, 0xfd, 0x4, 0xd6, 0xb2, 0x78, 0x94, 0x6a, 0xfb, 0xec, 0x63, 0xa6, 0xe4, 0xf6, 0x6e, 0xff, 0x24, 0xf2, 0x74, 0x7b, 0x6e, 0x49, 0xdf, 0x5f, 0x51, 0x56, 0xb3, 0xad, 0x9, 0x13, 0x94, 0x6, 0x51, 0xf5, 0x80, 0x27, 0xe8, 0x45, 0xf8, 0xfd, 0xba, 0x84, 0x93, 0xed, 0xb8, 0xc7, 0x36, 0x7, 0x36, 0x8c, 0x31, 0x8f, 0x9f, 0xac, 0x79, 0x33, 0x44, 0xdb, 0x5b, 0x49, 0xad, 0xff, 0xb2, 0x75, 0xc, 0x7, 0xc7, 0xaf, 0x6a, 0xc8, 0xbf, 0xaf, 0x42, 0x45, 0x30, 0x97, 0xa, 0xa0, 0x67, 0x87, 0xcb, 0xff, 0x91, 0xd2, 0xe1, 0x23, 0x45, 0xf0, 0x6f, - 0xab, 0xd4, 0xdb, 0xa6, 0xf8, 0x69, 0x29, 0xf4, 0xd7, 0xe4, 0x52, 0xab, 0xc9, 0x36, 0x60, 0x3a, 0x49, 0xb2, 0x5e, 0x5c, 0xea, 0x9b, 0x43, 0x35, 0xb1, 0xd3, 0x8e, 0x21, 0x8e, 0x1f, 0xbb, 0xc2, 0x3b, 0xbd, 0x12, 0xfb, 0x4, 0xd5, 0xe6, 0xbf, 0xbb, 0x2b, 0x76, 0x8e, 0x35, 0x5e, 0x1f, 0x84, 0x9f, 0xac, 0x53, 0xf9, 0x17, 0xfb, 0x6b, 0xfc, 0xc8, 0x68, 0xe2, 0xb7, 0xb4, 0x52, 0xe7, 0x82, 0x36, 0x7e, 0x6c, 0xff, 0x76, 0xf2, 0x37, 0xf6, 0x6f, 0x3f, 0xe3, 0xf1, 0x13, 0xf8, 0xe4, 0xc9, 0xf2, 0xef, 0x24, 0xf9, 0xdd, 0xf9, 0xf8, 0x1b, 0x39, 0xa7, 0x12, 0x3f, 0x79, 0x22, 0x99, 0xf8, 0x29, 0x8c, 0xd7, 0xd4, 0xb5, 0x53, 0xfe, 0x72, 0x3d, 0x63, 0xcd, 0x60, 0xe, 0xca, 0x3f, 0xe4, 0x9d, 0x90, 0x7f, 0x97, 0x9f, 0x34, 0x7f, 0xd9, 0xf5, 0xc8, 0xc3, 0x7, 0x9a, 0x7d, 0x33, 0xf1, 0xb4, 0x28, 0x47, 0x44, 0x7a, 0x70, 0xc6, 0x73, 0x25, 0x68, 0x52, 0xb, 0x80, 0x6a, 0x7d, 0x32, 0x76, 0x6b, 0x62, 0x1f, 0x51, 0x23, 0xd4, 0x5e, 0xfa, 0xda, 0x49, 0xf2, 0xef, 0xb4, 0xdb, 0xd7, 0x2b, 0xba, 0x4, 0xf0, 0x45, 0xf2, 0x1, 0xae, 0x73, 0xb2, 0xe1, 0x46, 0x10, 0x2c, 0x1e, 0x6f, 0x12, 0x30, 0xd, 0xb0, 0xe3, 0xc9, 0xd3, 0x7d, 0xbf, 0xc9, 0xbc, 0x86, 0xda, 0xc2, 0x7e, 0x26, 0xf3, 0x45, 0x1f, 0xd2, 0xeb, 0x9b, 0xf0, 0xd1, 0x22, 0xf2, 0xbc, 0x18, 0xb5, 0xb8, 0xcf, 0x1f, 0x8, 0x58, 0xfc, 0xa7, 0x9e, 0xc4, 0x7f, 0x4b, 0x95, 0x12, 0xc8, 0xf7, 0x71, 0xf6, 0x86, 0xb0, 0x9c, 0x20, 0x84, 0x9a, 0x34, 0x74, 0xcd, 0x7a, 0xff, 0x92, 0xd6, 0x36, 0x12, 0xf4, 0xc8, 0x7f, - 0xa9, 0xb8, 0x84, 0xc7, 0xeb, 0xc, 0xaf, 0x20, 0xfd, 0x9f, 0x63, 0xcd, 0xaf, 0x9f, 0xd8, 0x2f, 0x90, 0xda, 0x41, 0xa7, 0x7d, 0x7e, 0x24, 0xf4, 0xf6, 0x8f, 0xa1, 0xed, 0x4b, 0x4, 0x20, 0x6e, 0xd9, 0x6d, 0x36, 0x3, 0x55, 0xf1, 0x1a, 0xf8, 0x6, 0x5b, 0x93, 0xc8, 0xfc, 0xfc, 0xf4, 0xbc, 0x7a, 0xb7, 0x36, 0xe, 0x4a, 0x5c, 0x2, 0x7d, 0x5c, 0xf4, 0x35, 0xb5, 0x7f, 0x98, 0xe3, 0x72, 0xf6, 0x1a, 0x8, 0x14, 0x54, 0xc9, 0x7b, 0xc1, 0x2, 0xd6, 0xad, 0xea, 0x9, 0xc4, 0xc7, 0xba, 0x7f, 0xa6, 0xa3, 0xbd, 0x6f, 0x4b, 0x98, 0x10, 0xa4, 0x3e, 0x15, 0xb8, 0xaf, 0x44, 0x57, 0x8, 0x8, 0xaf, 0xbf, 0x3c, 0xf8, 0x3e, 0x65, 0x3d, 0x5f, 0x22, 0x91, 0xa0, 0xea, 0x2d, 0xe3, 0xfa, 0x8d, 0xda, 0xc3, 0xf, 0x4e, 0xa6, 0x1c, 0x3b, 0x58, 0x2c, 0x7f, 0x5, 0xe8, 0x69, 0x5c, 0x2d, 0x75, 0x13, 0xce, 0x40, 0x78, 0xfa, 0x11, 0xfd, 0xd3, 0x1, 0x3d, 0x65, 0xc3, 0x18, 0x7a, 0x53, 0xfd, 0x5d, 0xb1, 0x5f, 0x5, 0x34, 0x99, 0x59, 0xd3, 0xa5, 0x44, 0x8d, 0x8e, 0x35, 0x5e, 0x43, 0x69, 0x47, 0xe1, 0x7c, 0x4, 0x85, 0x7a, 0xf0, 0x55, 0xf7, 0xec, 0xf7, 0x51, 0xf9, 0x15, 0x7e, 0xb4, 0xa, 0xdf, 0x53, 0x81, 0x2b, 0x54, 0x2b, 0x9c, 0x3c, 0x6d, 0x7f, 0x9c, 0x2f, 0x4f, 0xa5, 0xdc, 0x33, 0xd5, 0xa2, 0x5c, 0xea, 0xa9, 0xc8, 0x3f, 0x1, 0x8a, 0x7c, 0x98, 0x1b, 0x10, 0x7e, 0x21, 0x98, 0x82, 0xc9, 0x4d, 0xbc, 0xf7, 0x6, 0x8d, 0xa4, 0xf6, 0xb2, 0xc0, 0xf9, 0x1c, 0x42, 0xcf, 0x5c, 0x85, 0x95, 0xf4, 0x23, 0x1b, 0x4f, 0x85, 0xcf, 0xef, 0xa7, 0xfe, 0xdb, 0x22, 0xea, - 0x2f, 0x6, 0xd0, 0x6f, 0xc5, 0xc0, 0x4, 0x86, 0xc9, 0xdf, 0x1c, 0xdc, 0x75, 0xfc, 0x61, 0x88, 0xf2, 0x69, 0x1f, 0x9f, 0xe, 0x35, 0x2d, 0x85, 0xc2, 0x1d, 0xe6, 0x50, 0x74, 0x7f, 0xcf, 0x6b, 0xca, 0xe8, 0xc7, 0x93, 0x59, 0xf6, 0x5f, 0x9, 0x4f, 0x8d, 0x3f, 0xb4, 0x82, 0x2c, 0x44, 0x3a, 0xfb, 0x65, 0xac, 0xf9, 0x2b, 0xad, 0xfc, 0xdf, 0xe5, 0x60, 0x9b, 0x9d, 0x9e, 0xb3, 0x97, 0x88, 0xbf, 0x27, 0x39, 0xac, 0x3f, 0x39, 0xde, 0xe1, 0x76, 0x5d, 0x53, 0xeb, 0x5c, 0xa7, 0x97, 0x31, 0xc3, 0x3f, 0xdd, 0xf7, 0xe7, 0x6e, 0x9c, 0x62, 0x39, 0x7, 0xb9, 0xe8, 0x2d, 0xc0, 0x23, 0x5c, 0xda, 0xf8, 0x64, 0xaa, 0x6d, 0x16, 0x31, 0xe4, 0x6e, 0x80, 0xf1, 0x9, 0x98, 0x12, 0x42, 0x5f, 0x88, 0x82, 0x5e, 0xdf, 0x5e, 0x12, 0x62, 0x44, 0x87, 0xc5, 0x17, 0x5c, 0x1d, 0x3d, 0xf, 0xba, 0xc0, 0x66, 0xea, 0x64, 0xa2, 0xbe, 0xb2, 0xfa, 0x49, 0xb6, 0x1f, 0x2, 0xfa, 0x39, 0x24, 0x5, 0x26, 0x3d, 0x8d, 0x0, 0x1b, 0x6f, 0xd, 0x75, 0xd8, 0xb5, 0x75, 0xe7, 0xf0, 0xf1, 0x81, 0x51, 0xb7, 0x5f, 0xb6, 0x9, 0xe8, 0x28, 0x3e, 0xa8, 0xde, 0x1e, 0x29, 0x8b, 0xb2, 0x5, 0x46, 0xa5, 0xd3, 0x3, 0x68, 0x89, 0x76, 0x37, 0x12, 0xc9, 0x20, 0xcc, 0x32, 0x39, 0x15, 0xfd, 0xab, 0x70, 0x1f, 0x42, 0xff, 0xde, 0xf6, 0x6d, 0xe8, 0xbd, 0x47, 0x3, 0x7e, 0x6b, 0xff, 0x3f, 0xdf, 0x64, 0xef, 0x6d, 0x17, 0xc3, 0x8, 0xda, 0x67, 0x35, 0xa2, 0x26, 0xc3, 0x2f, 0x3d, 0x8e, 0x35, 0x1, 0xdd, 0xb6, 0x89, 0x38, 0x4e, 0x60, 0xe3, 0x2f, 0xcf, 0xe1, 0x2f, 0xfc, 0x7e, 0xe7, 0x67, 0x4b, - 0x9c, 0xcf, 0x3a, 0x93, 0x54, 0xff, 0x26, 0x4e, 0xd6, 0xbf, 0x2b, 0xe4, 0x2, 0x58, 0x1, 0xc8, 0xac, 0xf8, 0x46, 0x1e, 0x5f, 0x3e, 0x72, 0xfb, 0xf, 0x87, 0x39, 0x1d, 0x7b, 0x83, 0x73, 0xa, 0x3a, 0x4b, 0x4e, 0xc1, 0xfe, 0xb, 0xbf, 0x7b, 0x3b, 0xf5, 0xfd, 0x97, 0x49, 0xd1, 0x4, 0x55, 0x36, 0xa7, 0xc0, 0xaf, 0x43, 0xfd, 0xdf, 0x9a, 0x17, 0xa6, 0xa1, 0xda, 0x9e, 0x3b, 0x70, 0x10, 0x74, 0xe1, 0xf2, 0x62, 0x1e, 0xae, 0x94, 0x41, 0xf7, 0xe4, 0x3, 0xf, 0xef, 0xe, 0xe7, 0x50, 0x3b, 0x0, 0x27, 0xf6, 0x8b, 0x63, 0xe3, 0x37, 0x38, 0x8c, 0x85, 0x28, 0xa1, 0x7f, 0x6e, 0x14, 0x1e, 0x95, 0x3f, 0x7, 0x5d, 0xff, 0x53, 0xca, 0x0, 0x3a, 0xfd, 0xeb, 0x69, 0x9a, 0x93, 0x9f, 0xd2, 0xf9, 0x89, 0x32, 0xba, 0xbb, 0xf3, 0xc0, 0x25, 0x7b, 0xd8, 0xf8, 0xb, 0xf9, 0x4a, 0xc9, 0x61, 0xee, 0xfc, 0xd1, 0x1a, 0x7f, 0x39, 0xb8, 0x59, 0x6f, 0xa5, 0x58, 0x59, 0xe3, 0x2f, 0x1d, 0x5c, 0x41, 0xf8, 0x91, 0x75, 0xf4, 0xf8, 0xc7, 0xa8, 0x6f, 0x41, 0xdf, 0x5c, 0xfe, 0x61, 0xfb, 0x95, 0x1d, 0x1f, 0xdf, 0x5, 0x2e, 0x39, 0x43, 0xc7, 0x5f, 0x86, 0xf2, 0xdf, 0x5b, 0x36, 0xff, 0xf9, 0x4e, 0x99, 0xff, 0x4c, 0xd4, 0x8b, 0x99, 0xe2, 0x3f, 0xc7, 0xd1, 0x16, 0x98, 0x6d, 0xdc, 0x25, 0x9f, 0x7f, 0x9e, 0x1e, 0xe8, 0xf9, 0xcb, 0x97, 0x9a, 0x36, 0x5e, 0xb, 0x9f, 0x57, 0x35, 0xbe, 0x87, 0xd9, 0x44, 0xa5, 0x72, 0xae, 0xc9, 0xf4, 0xc0, 0xb3, 0xc6, 0xc1, 0xa3, 0xa7, 0x96, 0xcd, 0x51, 0xf7, 0xd9, 0xf1, 0x1f, 0x7e, 0xe2, 0x8e, 0x33, 0x69, 0x23, 0x9f, 0xf6, 0x78, 0x4a, - 0x8b, 0xff, 0xa6, 0x59, 0xfc, 0xe7, 0x60, 0xfc, 0x57, 0xba, 0xfc, 0x32, 0xb4, 0x98, 0xbb, 0x2b, 0xa9, 0x73, 0x54, 0x56, 0x2b, 0xee, 0xc9, 0xfc, 0xfc, 0xc7, 0xbb, 0x9b, 0x31, 0x40, 0xed, 0xcb, 0x4b, 0x5d, 0x8e, 0xf3, 0x1e, 0xd0, 0x94, 0xe2, 0x79, 0x54, 0xfe, 0x7b, 0x1c, 0x8, 0x2d, 0x79, 0x10, 0xae, 0xe, 0xe3, 0x13, 0x7a, 0xe9, 0xf4, 0x96, 0x54, 0x44, 0x91, 0xaf, 0x52, 0xad, 0x45, 0xcf, 0xda, 0x1d, 0x3c, 0x1c, 0x11, 0x13, 0x52, 0x69, 0x22, 0xfe, 0x8b, 0x3f, 0xec, 0x1e, 0xf5, 0xf5, 0x49, 0x1f, 0xda, 0x7e, 0x9e, 0x39, 0x5, 0xf1, 0xe0, 0x4a, 0x4e, 0xed, 0x53, 0xba, 0xa2, 0xf4, 0xf9, 0x96, 0xfe, 0x4c, 0xa0, 0x66, 0x96, 0x61, 0x59, 0xb8, 0xad, 0x2b, 0x32, 0x1f, 0xef, 0xe4, 0x7d, 0x69, 0x9a, 0x21, 0x7, 0x5, 0xdb, 0xe2, 0xeb, 0x20, 0xea, 0xd0, 0xf5, 0xab, 0x6b, 0x8b, 0xfd, 0x83, 0xfa, 0x54, 0x5f, 0xfc, 0xd3, 0x12, 0x77, 0x8d, 0x20, 0xf7, 0x73, 0x3d, 0x11, 0x74, 0x53, 0x5f, 0xb7, 0xac, 0x56, 0x3d, 0xe3, 0xe2, 0xaf, 0xc2, 0xaf, 0x4e, 0xd5, 0x5f, 0x6e, 0xac, 0x37, 0x58, 0x70, 0x71, 0xc5, 0xa7, 0x80, 0x66, 0xf9, 0x2b, 0xc6, 0x91, 0x40, 0x2c, 0x40, 0x68, 0x59, 0xb7, 0xf3, 0x14, 0xd6, 0x4f, 0xb, 0x28, 0xc0, 0x60, 0x39, 0x85, 0xf1, 0x3, 0xaa, 0x3f, 0xdf, 0xe3, 0xd8, 0x58, 0x3d, 0x6f, 0x9b, 0x7d, 0x53, 0xe5, 0x3f, 0xa0, 0x61, 0xea, 0xe0, 0xf, 0x44, 0xfc, 0xe1, 0x95, 0xe3, 0x10, 0x13, 0xf4, 0xe9, 0x36, 0x6d, 0x18, 0xf3, 0x6, 0xc7, 0x13, 0xe, 0xd8, 0xff, 0xc6, 0x1a, 0xaf, 0xe1, 0xf2, 0x8, 0xdd, 0x71, 0x2e, 0xce, 0x99, 0x7c, - 0xd2, 0x62, 0x83, 0xe9, 0xe6, 0xc, 0xc8, 0xc7, 0x2, 0x49, 0xa1, 0xbb, 0x7c, 0x6e, 0x48, 0x4c, 0x3f, 0x7e, 0x55, 0x85, 0xd4, 0x7a, 0x67, 0x9b, 0x65, 0xd3, 0xdb, 0x3b, 0xd1, 0xa5, 0x50, 0x69, 0x17, 0xed, 0x43, 0x19, 0x11, 0x15, 0xa8, 0x2c, 0x7e, 0xdc, 0xe4, 0x45, 0xcd, 0x3a, 0x4d, 0x14, 0xff, 0xb5, 0xd5, 0x22, 0xfd, 0x41, 0x6b, 0xf3, 0x67, 0xe8, 0x8f, 0x24, 0xdf, 0x68, 0xda, 0xa8, 0xe8, 0x7c, 0x8, 0xe3, 0x5f, 0x8c, 0x80, 0x27, 0x50, 0xf0, 0x6a, 0xb2, 0x8e, 0x4c, 0xe6, 0xed, 0x41, 0xea, 0xa0, 0xc1, 0x57, 0x8d, 0x35, 0x7e, 0x54, 0x7f, 0x1c, 0xe6, 0x4a, 0x51, 0x16, 0xa1, 0x2f, 0x2c, 0x92, 0xbe, 0xe6, 0xc2, 0x10, 0xa0, 0x12, 0xb1, 0xd1, 0xfa, 0x37, 0x1a, 0xfb, 0x27, 0xa2, 0x5b, 0xb2, 0xe6, 0xda, 0x5a, 0xd8, 0x12, 0x6d, 0xae, 0x69, 0x47, 0xc, 0xfa, 0x5b, 0xbf, 0xb7, 0xec, 0xf, 0x9d, 0x3e, 0x4, 0xc7, 0x33, 0xd, 0x40, 0xbd, 0x4b, 0xe3, 0xad, 0x31, 0xe9, 0xfb, 0xf6, 0xaf, 0x28, 0x9e, 0x85, 0x5e, 0x3d, 0xa0, 0xdf, 0xa, 0x3f, 0x76, 0xa, 0x2d, 0x19, 0xb7, 0x7, 0x46, 0x8c, 0xdf, 0x9b, 0x2a, 0x35, 0xfe, 0xc3, 0x2a, 0xc3, 0xaf, 0x4c, 0x7, 0xd8, 0xfe, 0xb2, 0x51, 0x8a, 0x9b, 0xb1, 0xd6, 0xae, 0x91, 0x96, 0xff, 0x7c, 0xcb, 0xe0, 0x58, 0x86, 0x3c, 0x93, 0x6b, 0x41, 0xe1, 0x29, 0xc4, 0x4b, 0xb3, 0xf9, 0xb4, 0x9b, 0xc5, 0x98, 0x8b, 0xaa, 0x5a, 0x6a, 0x6d, 0xb7, 0x70, 0xe1, 0x39, 0x25, 0x41, 0xf3, 0xf6, 0x4b, 0x39, 0x7b, 0xfd, 0x88, 0x20, 0x5c, 0xbb, 0x63, 0xd, 0xed, 0xd7, 0x29, 0x73, 0xee, 0xd9, 0x83, 0xbb, 0x58, 0xfd, 0xcb, - 0x12, 0x3f, 0x6e, 0xfb, 0xc7, 0x1b, 0x7c, 0x89, 0x3b, 0x84, 0x77, 0xb8, 0xd, 0xcc, 0x3e, 0x8d, 0x5, 0xb4, 0x3a, 0xcc, 0xc7, 0x1c, 0xe1, 0x93, 0x5c, 0x95, 0xcf, 0xd, 0xea, 0x50, 0xdb, 0xf5, 0x1b, 0xf1, 0xea, 0xe9, 0xc7, 0xcf, 0x83, 0x5, 0xc5, 0xb5, 0x98, 0x8d, 0x24, 0x51, 0x83, 0x40, 0x5d, 0x7b, 0x3e, 0x1c, 0x1d, 0x78, 0x4a, 0x2f, 0x89, 0x73, 0x77, 0x22, 0x34, 0x1a, 0xfc, 0xc7, 0x13, 0x29, 0x2e, 0x34, 0x5a, 0x33, 0xce, 0x25, 0x68, 0x18, 0x37, 0x8b, 0x24, 0x2, 0x9a, 0x4b, 0xcf, 0xb7, 0x2a, 0x28, 0xe1, 0xeb, 0x6f, 0xd1, 0x2f, 0x0, 0x89, 0xdb, 0x70, 0x4a, 0x45, 0xe1, 0x5f, 0xcc, 0x0, 0x66, 0xbd, 0xed, 0xde, 0xe4, 0x57, 0xa3, 0x89, 0x84, 0x3e, 0x6c, 0x7c, 0x2f, 0xb5, 0xfe, 0xdd, 0x2e, 0xe2, 0xe9, 0xcf, 0x17, 0xb2, 0x22, 0x7a, 0x25, 0x8a, 0x90, 0xd7, 0xc2, 0xe1, 0x47, 0x88, 0x49, 0xa8, 0xb3, 0xfb, 0x33, 0xb5, 0x7, 0xd9, 0xbf, 0x51, 0xea, 0xbf, 0x1c, 0x8e, 0xf7, 0x60, 0xfe, 0x8f, 0x66, 0x39, 0x8, 0xdb, 0x7c, 0xd0, 0x80, 0x30, 0xc3, 0xa3, 0xa3, 0x69, 0xc7, 0x56, 0xe8, 0xe3, 0x63, 0x8c, 0x1, 0x29, 0x4f, 0xa, 0x91, 0x2a, 0xe5, 0xe3, 0x6c, 0x36, 0xf8, 0x6, 0xda, 0xd9, 0x5b, 0x32, 0xb1, 0x5e, 0x28, 0xe3, 0xf6, 0x9f, 0x67, 0x7e, 0xcc, 0x69, 0xf0, 0xd7, 0x52, 0x62, 0xf, 0x4b, 0x61, 0x22, 0x2f, 0x9f, 0xa5, 0xf3, 0xe, 0xc4, 0xdb, 0xdc, 0xb, 0xf, 0xc, 0xb4, 0xe4, 0x66, 0x3e, 0xfe, 0x79, 0xc9, 0x78, 0xfc, 0x4e, 0x25, 0x6a, 0x5f, 0x44, 0xcc, 0xd3, 0xe9, 0x11, 0xef, 0x9c, 0xd9, 0x14, 0x18, 0x7b, 0xbc, 0xaf, 0x7e, 0xf9, - 0xae, 0xee, 0xb5, 0xb2, 0x1b, 0xb5, 0x6e, 0xbb, 0xb6, 0xfe, 0x6a, 0xeb, 0xb4, 0xf0, 0x8f, 0xc6, 0xe9, 0x79, 0xba, 0xf8, 0x27, 0xb6, 0x9e, 0x46, 0xd7, 0x8d, 0x61, 0xe3, 0x7f, 0x94, 0xff, 0x14, 0x9c, 0x28, 0xa3, 0x3e, 0x1f, 0x37, 0x5d, 0x91, 0x12, 0x47, 0x38, 0x1e, 0xc5, 0xfe, 0x7, 0x99, 0x89, 0x42, 0xa6, 0xd5, 0x7f, 0x1b, 0xda, 0x9c, 0x77, 0x2, 0x54, 0xe8, 0x74, 0x88, 0x64, 0x2e, 0x8b, 0x1f, 0x72, 0x9d, 0xdc, 0x9e, 0xaa, 0xe, 0x5, 0x62, 0x15, 0x55, 0x77, 0xbd, 0x28, 0x67, 0x7, 0x46, 0x7a, 0xfd, 0x49, 0xbc, 0x65, 0x8f, 0xdc, 0xbd, 0xa, 0xf6, 0xcb, 0x4, 0x3e, 0x65, 0x9f, 0xe8, 0x2b, 0xa9, 0xf1, 0x39, 0x3c, 0xfe, 0x39, 0xe3, 0xf6, 0xfb, 0xd1, 0x35, 0x2c, 0x30, 0xe, 0x4c, 0x3d, 0x99, 0x1b, 0xa3, 0x6a, 0xe8, 0x67, 0xbf, 0x4c, 0x9c, 0x97, 0x12, 0xb7, 0xd4, 0xe1, 0x49, 0xab, 0x9f, 0x58, 0x3c, 0x8b, 0x61, 0x49, 0x8c, 0x77, 0xac, 0x79, 0x3, 0x2b, 0x5f, 0x9, 0x95, 0x45, 0xd4, 0x6b, 0xe2, 0xc, 0xfa, 0x21, 0xcc, 0xe1, 0xc1, 0xf, 0x33, 0x9f, 0xfb, 0xa1, 0xed, 0xcd, 0xfc, 0x4, 0xb4, 0x9c, 0xe5, 0x83, 0x2d, 0x1e, 0xe6, 0x4f, 0x5c, 0xbd, 0x63, 0x1b, 0xb0, 0x23, 0x11, 0x40, 0x87, 0x65, 0xe2, 0x48, 0xac, 0x7d, 0x9, 0x81, 0xb8, 0x69, 0x13, 0x9f, 0xa6, 0x7d, 0x78, 0x98, 0x7f, 0x96, 0x5a, 0x5f, 0x48, 0x6, 0x1f, 0xf8, 0x87, 0x6e, 0xf, 0x87, 0x9b, 0x4e, 0x9a, 0x7f, 0xe2, 0x9a, 0xa2, 0xf3, 0xd9, 0x78, 0xdc, 0x22, 0x36, 0x98, 0xd3, 0xad, 0xab, 0x91, 0xa1, 0xf5, 0x8f, 0x76, 0x30, 0x76, 0x57, 0xae, 0xbb, 0xb3, 0xa2, 0xcc, 0x3a, - 0xf2, 0x72, 0x74, 0x55, 0x62, 0xe0, 0xf1, 0x1a, 0x8e, 0x5a, 0x2d, 0x3c, 0xcf, 0x9, 0xf3, 0xaf, 0x1, 0x5b, 0xef, 0x9d, 0xb0, 0xfe, 0x69, 0x40, 0x6c, 0x72, 0x1f, 0xdb, 0xd7, 0x3a, 0xe8, 0x87, 0x5f, 0xcc, 0x8, 0x9e, 0xa5, 0xd6, 0x78, 0x3d, 0xef, 0x81, 0x68, 0x10, 0xf6, 0x66, 0xf3, 0xe3, 0x2a, 0x76, 0xb, 0x5f, 0x62, 0x9d, 0x78, 0xde, 0xa0, 0x3d, 0xa9, 0xd9, 0xad, 0x10, 0xf9, 0xe3, 0xf3, 0x71, 0x6c, 0xa7, 0xed, 0xe4, 0x88, 0xe5, 0x55, 0xdc, 0xc1, 0xc6, 0xb6, 0x6b, 0x19, 0x55, 0x71, 0x44, 0x14, 0x27, 0xe7, 0xb1, 0xe1, 0x6b, 0x32, 0xd9, 0xe2, 0x18, 0xe1, 0xf1, 0xf, 0xdd, 0xff, 0xdf, 0xc9, 0x9d, 0x8c, 0x22, 0xf1, 0x91, 0xca, 0xcf, 0xe8, 0xa9, 0xfd, 0x78, 0xf, 0x9d, 0x43, 0xa1, 0xdf, 0xc7, 0x85, 0xa2, 0x9a, 0xc1, 0x22, 0x3e, 0x47, 0x43, 0xff, 0x5a, 0x1f, 0xf3, 0x89, 0x94, 0x10, 0xcc, 0xf4, 0xf9, 0x62, 0x52, 0xeb, 0xd3, 0xf7, 0x40, 0xd5, 0xd8, 0xa2, 0x91, 0xb1, 0xd6, 0x17, 0x67, 0x1a, 0x7d, 0xa9, 0xc2, 0xf8, 0xda, 0xe4, 0xa0, 0x7f, 0xbb, 0x95, 0xe1, 0x74, 0xa1, 0xcd, 0x6f, 0xc1, 0xca, 0xf3, 0xde, 0xb6, 0x6a, 0xa4, 0xfb, 0xfe, 0x54, 0xa5, 0x9, 0xb4, 0xb7, 0x43, 0x1f, 0x7, 0xfd, 0xe8, 0x29, 0xd4, 0x1f, 0x29, 0x3d, 0xb7, 0xb6, 0x81, 0xf6, 0x6f, 0xca, 0x2, 0x7a, 0x9, 0x5c, 0xd4, 0x4d, 0x72, 0x14, 0x9e, 0x8f, 0x29, 0x58, 0x40, 0x2c, 0x8f, 0xa9, 0xe7, 0xb5, 0x33, 0x2e, 0x3e, 0xf1, 0x4c, 0xa7, 0x7, 0xe3, 0x25, 0x7, 0x8b, 0x63, 0x65, 0x83, 0xf1, 0x19, 0x4f, 0x82, 0x19, 0xf4, 0x89, 0x9e, 0x51, 0x78, 0x9e, 0x6c, 0xbe, 0xdb, - 0x8e, 0x3c, 0xa0, 0xbd, 0x97, 0xdf, 0x8c, 0x93, 0xc6, 0x47, 0x89, 0xb4, 0x13, 0xaa, 0xf7, 0x21, 0x17, 0xf4, 0x81, 0xdd, 0xd6, 0xe4, 0x3d, 0x91, 0x3, 0x3b, 0xc3, 0x77, 0x6c, 0xc0, 0x4, 0xf2, 0xfc, 0xac, 0xdc, 0x72, 0xbf, 0x8f, 0xfe, 0xcd, 0x18, 0x6b, 0xbc, 0x3e, 0x40, 0x1e, 0x2d, 0xfa, 0x35, 0xf7, 0x73, 0x2e, 0xce, 0x9b, 0xbc, 0x49, 0x8f, 0xbc, 0x5d, 0xdb, 0x10, 0xeb, 0x29, 0xd2, 0x98, 0x8c, 0xd2, 0x3f, 0x35, 0xa, 0xf8, 0x85, 0xdf, 0x2f, 0x4a, 0xe4, 0xc5, 0x4, 0x7e, 0x26, 0x9b, 0xfd, 0x28, 0xf2, 0x7, 0xd6, 0xca, 0xb3, 0x2c, 0xfb, 0x99, 0x15, 0xbf, 0x29, 0x14, 0x5e, 0x7b, 0x60, 0x75, 0xd0, 0xe4, 0x52, 0x88, 0x3e, 0xf6, 0xc2, 0xe3, 0x4d, 0xd1, 0xf5, 0xb8, 0x17, 0x9c, 0x52, 0xdb, 0xa6, 0x46, 0xd1, 0xa3, 0x8f, 0x39, 0x5e, 0x43, 0xe9, 0x3b, 0xdb, 0x4b, 0xa9, 0xaa, 0xeb, 0x7f, 0x61, 0xb7, 0x7d, 0x0, 0x73, 0xe5, 0x37, 0xa9, 0xf4, 0x61, 0x1, 0x15, 0xf7, 0xfa, 0xf5, 0x47, 0xb8, 0xd1, 0xe0, 0xbf, 0x6e, 0x6a, 0x29, 0x59, 0x1c, 0x18, 0x17, 0xfe, 0x6c, 0xad, 0xff, 0xad, 0x4e, 0x59, 0x9c, 0x21, 0xf3, 0x2e, 0x77, 0xd, 0x5b, 0x3f, 0x6d, 0xe7, 0x3, 0x44, 0x69, 0x44, 0x6d, 0xfd, 0xab, 0x7c, 0x8e, 0x67, 0x40, 0xbe, 0xbf, 0x74, 0xfd, 0x37, 0xf4, 0x44, 0x3f, 0x82, 0x42, 0xa2, 0x10, 0x2d, 0xb, 0xb7, 0xec, 0xd6, 0x94, 0x51, 0xef, 0xbf, 0xac, 0xbf, 0x2, 0x86, 0xd5, 0x5f, 0x95, 0x88, 0xe8, 0xfc, 0xeb, 0xfe, 0x3b, 0xc9, 0xee, 0xbf, 0xc6, 0xd6, 0x6, 0x57, 0xb9, 0xdf, 0x45, 0xcb, 0x19, 0xd7, 0x7f, 0x87, 0xf2, 0x9f, 0xe3, 0xfa, 0x6, - 0x7d, 0xa2, 0xf5, 0x49, 0xb5, 0xb8, 0x22, 0xe3, 0xfd, 0xf7, 0x8e, 0xe9, 0xb4, 0x3f, 0xe2, 0xbd, 0x25, 0x2e, 0xdf, 0x7c, 0xd5, 0xe7, 0x2a, 0xf0, 0x6e, 0x1f, 0x8f, 0x8e, 0xa0, 0x6d, 0xd2, 0xf4, 0x46, 0xee, 0x29, 0x93, 0x73, 0x4e, 0xc4, 0x3, 0x1d, 0x36, 0xdd, 0x58, 0x5b, 0x7c, 0x35, 0x1b, 0xcf, 0xa0, 0xcd, 0x49, 0x46, 0x4d, 0x43, 0xf8, 0xe2, 0x58, 0xe3, 0xf5, 0x41, 0xf2, 0x2f, 0x89, 0x8d, 0x60, 0x11, 0xf8, 0x2c, 0x7e, 0x9c, 0xf2, 0xe3, 0x22, 0xfb, 0x9c, 0x2e, 0xf7, 0x53, 0xb3, 0x3f, 0xd3, 0xd7, 0x3b, 0x9a, 0x2c, 0xd2, 0x72, 0xcf, 0x45, 0x41, 0x35, 0xcf, 0xca, 0xec, 0x23, 0xe1, 0x6, 0x1e, 0xfa, 0xee, 0x44, 0x11, 0x11, 0x21, 0xfb, 0xb, 0xa, 0x86, 0xad, 0xa7, 0xb9, 0xb9, 0xeb, 0x49, 0x68, 0xf7, 0xfd, 0x2a, 0x60, 0xd3, 0xc6, 0x99, 0xb7, 0xfe, 0x77, 0x48, 0xff, 0xd, 0x5f, 0xd7, 0x10, 0x5b, 0xc6, 0x6c, 0xe9, 0xfe, 0x3, 0x16, 0x3d, 0xea, 0xfd, 0x77, 0x3b, 0x81, 0x1a, 0x8c, 0x5a, 0x67, 0x59, 0xff, 0xb5, 0xe6, 0x77, 0x8f, 0xe9, 0x25, 0x54, 0x3a, 0xf2, 0x66, 0xdc, 0x7c, 0xb6, 0x4a, 0x9d, 0x82, 0x60, 0xa3, 0x16, 0x34, 0x3, 0x71, 0xc1, 0xe0, 0x46, 0x1e, 0x9f, 0xb6, 0x16, 0xf8, 0xcd, 0x9, 0x7f, 0xcd, 0x10, 0x96, 0x0, 0x5f, 0x1c, 0x49, 0xfc, 0xb4, 0xad, 0x7f, 0xe3, 0xc7, 0xf5, 0xaf, 0x77, 0x65, 0x3, 0xb9, 0x93, 0xdd, 0x4e, 0x23, 0x19, 0x15, 0xfc, 0x2c, 0xfd, 0x4b, 0xd5, 0xbb, 0xa5, 0x7f, 0x7d, 0xfe, 0x80, 0x94, 0x37, 0x8b, 0xb6, 0x3a, 0x80, 0x87, 0x35, 0x20, 0xf2, 0x24, 0x87, 0xb9, 0xbb, 0xae, 0xc2, 0x4c, 0x58, 0x1, 0xe3, - 0xba, 0xb, 0xfb, 0xb8, 0xba, 0x7a, 0xd5, 0x70, 0x4, 0x13, 0x3c, 0xfb, 0x8b, 0xc3, 0x78, 0x63, 0xac, 0xf9, 0x6d, 0x28, 0xdd, 0xbc, 0xab, 0x5, 0xb2, 0x3, 0x91, 0x23, 0xd4, 0xbb, 0xe4, 0x7b, 0x54, 0x29, 0x15, 0xef, 0x3e, 0x58, 0x32, 0x3e, 0x9f, 0x5f, 0xb3, 0xc6, 0xad, 0x39, 0xf5, 0xc5, 0xd6, 0x6a, 0x4b, 0xa8, 0x9d, 0xae, 0x54, 0xfc, 0x9f, 0x77, 0x1b, 0x7b, 0x95, 0xa4, 0x82, 0xa5, 0x5d, 0x6b, 0xa9, 0x7f, 0x2a, 0xdb, 0x1a, 0x39, 0x9e, 0xde, 0xbf, 0x1b, 0x6b, 0xda, 0xfb, 0x84, 0x80, 0x44, 0xb0, 0xb6, 0x85, 0x85, 0xfc, 0x45, 0xb4, 0x7b, 0x46, 0x7d, 0x7c, 0xb2, 0x66, 0x1b, 0x8f, 0xb, 0xe6, 0x2b, 0x50, 0x23, 0xe8, 0xd3, 0xa5, 0xc8, 0x8f, 0x6b, 0x4, 0xea, 0xbc, 0x3d, 0x45, 0xa4, 0x3e, 0x4d, 0xdc, 0x4b, 0x24, 0x5, 0x7f, 0x15, 0xf, 0x4c, 0x79, 0x90, 0xd2, 0xb, 0xc1, 0x82, 0x87, 0xc0, 0x7, 0xd9, 0x81, 0x91, 0x5e, 0x7f, 0xc2, 0xbd, 0xdf, 0x63, 0x6c, 0x61, 0xcb, 0x53, 0xe3, 0xf3, 0x23, 0xf6, 0xb7, 0xaa, 0xa2, 0x97, 0x20, 0x1, 0xe3, 0x7c, 0xd6, 0x3b, 0x4c, 0xae, 0x3, 0x7, 0x8f, 0x50, 0x24, 0x9, 0xd5, 0x85, 0xdf, 0xe9, 0x42, 0x26, 0xda, 0x3b, 0x94, 0x66, 0xf3, 0x19, 0x6d, 0x93, 0xf4, 0xcd, 0xdc, 0x57, 0xa7, 0xea, 0xb3, 0x51, 0xc3, 0x85, 0x57, 0x2e, 0x81, 0xb9, 0x68, 0x50, 0xe5, 0xca, 0xfe, 0xd2, 0x7, 0x1a, 0xd1, 0xd2, 0x65, 0x7, 0x24, 0xec, 0x89, 0x88, 0xb3, 0x43, 0x93, 0xeb, 0xc9, 0x41, 0x69, 0x19, 0x36, 0xf7, 0x4, 0x5c, 0x2e, 0x47, 0xcf, 0x19, 0x97, 0xff, 0x25, 0x85, 0xdf, 0x79, 0x83, 0xf8, 0x8d, 0xf6, 0xf5, 0xe6, - 0xd5, 0xab, 0x31, 0x36, 0xdd, 0xfb, 0x9, 0xe0, 0x62, 0xf6, 0x3a, 0x54, 0xfe, 0x8d, 0x35, 0x1e, 0x1f, 0xba, 0xff, 0x5e, 0x51, 0x44, 0x65, 0xf5, 0xbe, 0x73, 0x7, 0x43, 0x40, 0x4b, 0x73, 0xf0, 0xc7, 0xca, 0x6, 0x29, 0x99, 0x22, 0xd3, 0xde, 0x4f, 0xe8, 0x21, 0x5, 0x88, 0xed, 0xb, 0x20, 0x50, 0x7e, 0x4a, 0xf6, 0x22, 0xd5, 0x1f, 0xba, 0x1c, 0xe3, 0xd1, 0x99, 0xd2, 0x1f, 0x4d, 0xbb, 0x98, 0xb9, 0x14, 0x61, 0x32, 0x37, 0x88, 0xbd, 0x44, 0xad, 0x6b, 0x9f, 0x8e, 0x90, 0x66, 0xd7, 0x8e, 0xf3, 0x9, 0xc1, 0xb1, 0x79, 0x3, 0x36, 0x21, 0xc7, 0x28, 0xcf, 0x71, 0x54, 0x7a, 0x1c, 0xab, 0x9f, 0xae, 0xda, 0xb8, 0x9, 0x89, 0x9c, 0x68, 0xc2, 0xd2, 0x78, 0x30, 0xef, 0x67, 0xfa, 0x86, 0x36, 0x56, 0x66, 0xfa, 0xe6, 0x3c, 0x9c, 0xfe, 0xf9, 0xcd, 0xa1, 0xf8, 0x7d, 0x58, 0x3c, 0xfe, 0xf, 0xfa, 0xf7, 0x6f, 0xe2, 0x37, 0x4f, 0x66, 0xab, 0x90, 0x99, 0x3d, 0x4d, 0x24, 0xe8, 0xab, 0x30, 0x14, 0xaf, 0xb1, 0xe6, 0xb7, 0xa1, 0xf4, 0x50, 0xff, 0xa3, 0x49, 0x91, 0x10, 0x23, 0xf4, 0x8e, 0x92, 0x9a, 0x38, 0x1a, 0xf8, 0xa5, 0xf3, 0x7f, 0x59, 0xfe, 0x21, 0x79, 0x70, 0x9, 0x5c, 0xcf, 0x9c, 0x43, 0x6c, 0xbe, 0xce, 0xe4, 0x1b, 0xd1, 0xc8, 0x62, 0xb6, 0x9c, 0x64, 0x58, 0xbe, 0xa7, 0xb1, 0xa6, 0x6b, 0x96, 0x14, 0x51, 0x7b, 0x21, 0x2a, 0x4d, 0x4e, 0xe1, 0xc7, 0xfc, 0xb7, 0x71, 0xd6, 0xa7, 0xd1, 0xf1, 0xdf, 0xa8, 0xfe, 0x78, 0x87, 0x9b, 0x23, 0x24, 0x10, 0xb, 0x60, 0x6e, 0x6c, 0x1f, 0xe7, 0x38, 0xba, 0x6, 0xfe, 0x5f, 0x5e, 0x6, 0xfd, 0x6e, 0x57, 0x8f, - 0xb2, 0xf7, 0x90, 0xc2, 0xf2, 0x97, 0x6c, 0xc2, 0xbb, 0xc7, 0xf3, 0x97, 0x54, 0x45, 0xd7, 0x1b, 0xb2, 0x2e, 0x97, 0x1b, 0x12, 0xe5, 0x3e, 0x18, 0xd7, 0x8c, 0xf4, 0xfa, 0x52, 0xfb, 0x7f, 0xa1, 0x72, 0x70, 0x75, 0x2f, 0x66, 0x8f, 0xf8, 0xfe, 0x3e, 0x60, 0xfc, 0x2f, 0x71, 0x8b, 0x3d, 0x9f, 0x78, 0x5a, 0xc6, 0xff, 0x86, 0x8d, 0x1f, 0x34, 0x6f, 0x82, 0x92, 0xdc, 0x2d, 0x5, 0x78, 0xa3, 0x83, 0x70, 0xf3, 0x76, 0x86, 0x9b, 0x37, 0x40, 0xe3, 0x5d, 0x1b, 0x17, 0x3a, 0xac, 0x1, 0x84, 0x8c, 0x8f, 0x1f, 0x88, 0x14, 0x4f, 0x72, 0x1c, 0xcf, 0xc4, 0x87, 0x5e, 0x5f, 0xcc, 0xf8, 0x2f, 0x17, 0x7, 0xa4, 0xd4, 0x9a, 0x19, 0xbc, 0xf6, 0x0, 0xb5, 0x5b, 0x62, 0x9f, 0xf, 0xb0, 0x31, 0xf1, 0x2, 0x7e, 0x74, 0xec, 0x17, 0x6e, 0xe, 0x53, 0xf9, 0x1, 0xcc, 0x8b, 0xb5, 0x70, 0x43, 0xe5, 0xdf, 0x7, 0xe0, 0x2d, 0xa5, 0x9a, 0x56, 0x4e, 0x1d, 0x93, 0xc2, 0xb1, 0xee, 0xaf, 0x43, 0xe9, 0x95, 0x9d, 0xcb, 0x89, 0x87, 0x38, 0x34, 0x44, 0x5e, 0xb0, 0x8e, 0xc8, 0xb9, 0x6b, 0xe8, 0x2b, 0x6f, 0xb8, 0xf7, 0xd9, 0x35, 0x32, 0x7d, 0x3d, 0xaa, 0xdf, 0xff, 0xcc, 0xf5, 0x12, 0x20, 0x27, 0x8a, 0x9e, 0x88, 0xae, 0x9e, 0x18, 0xaf, 0xa0, 0xdd, 0xb3, 0x42, 0x97, 0x42, 0xd7, 0xe7, 0x51, 0x76, 0x3c, 0xdf, 0x16, 0x21, 0xe8, 0x69, 0xb0, 0xc6, 0xa7, 0x15, 0xc2, 0xf5, 0x69, 0xaa, 0x6f, 0x34, 0xda, 0x33, 0x52, 0x3a, 0x74, 0xc9, 0xb4, 0xa0, 0x29, 0x15, 0xa3, 0x4a, 0xdc, 0xd2, 0xa3, 0x9d, 0x86, 0xf6, 0x95, 0xde, 0xba, 0x90, 0xda, 0xc7, 0xa, 0x11, 0xf7, 0x44, 0x20, 0xac, - 0xdb, 0xb4, 0xc0, 0x7b, 0xc5, 0xb5, 0xcc, 0xb9, 0xb0, 0x4a, 0x2f, 0xc5, 0x33, 0x74, 0xc9, 0x65, 0x60, 0x53, 0x98, 0x9a, 0x8d, 0x1f, 0x77, 0x89, 0xe7, 0x3f, 0xd8, 0x7, 0xc2, 0xfa, 0x3, 0xf4, 0x33, 0x30, 0xff, 0xd5, 0x82, 0x5b, 0xd1, 0x33, 0xc9, 0x3, 0x7f, 0x6a, 0xc, 0x7d, 0x62, 0x6a, 0x1f, 0x1a, 0x8d, 0x9b, 0x41, 0xfd, 0x83, 0x68, 0xc6, 0xf1, 0xac, 0x32, 0xeb, 0x8d, 0x7c, 0x43, 0xc, 0xc5, 0x39, 0xc3, 0x9d, 0x70, 0x9a, 0x38, 0x29, 0x7f, 0x9d, 0x89, 0x0, 0x71, 0xca, 0xf, 0xb8, 0x40, 0x26, 0xd8, 0x8d, 0x59, 0xdc, 0xe5, 0xfa, 0x3e, 0x5b, 0xef, 0xa1, 0x1f, 0x1b, 0x8f, 0x56, 0x1e, 0xad, 0xd0, 0x2b, 0xce, 0x38, 0xfe, 0xb, 0x3f, 0x2a, 0xa1, 0xe3, 0x5c, 0x31, 0x10, 0x55, 0x6d, 0x25, 0x12, 0x3e, 0x18, 0xe, 0x12, 0xf, 0x82, 0xdd, 0x85, 0xfe, 0x51, 0xd2, 0xbf, 0xfc, 0xb1, 0xd7, 0xf2, 0x70, 0x80, 0xb, 0x96, 0x61, 0xa7, 0x10, 0xe5, 0x19, 0xff, 0xe5, 0xa6, 0x5c, 0x5e, 0xc6, 0x7f, 0xde, 0x99, 0x8d, 0x83, 0xf1, 0xbc, 0x54, 0x98, 0x78, 0x34, 0x4b, 0x5e, 0xe2, 0x11, 0xee, 0xdb, 0xd8, 0xeb, 0x8a, 0x49, 0xc6, 0x19, 0x97, 0x3f, 0xa2, 0x49, 0x29, 0x45, 0x1e, 0x75, 0x37, 0x35, 0xce, 0xd6, 0x20, 0x1f, 0xde, 0x1e, 0xbe, 0x86, 0xb4, 0xeb, 0xe, 0x2c, 0x48, 0x3d, 0x80, 0x74, 0xf5, 0x57, 0x98, 0x8b, 0x51, 0xe4, 0x5d, 0xf6, 0x5b, 0x74, 0x4c, 0xc5, 0x1c, 0x21, 0x2a, 0xda, 0xf8, 0xd, 0x8e, 0x3f, 0xeb, 0x6a, 0x4d, 0xae, 0x1b, 0xc9, 0x14, 0x7e, 0xba, 0xba, 0x6e, 0x75, 0x35, 0x67, 0x2c, 0x7a, 0x3f, 0xbe, 0xbf, 0x61, 0x77, 0x85, 0x6e, 0x25, - 0xa4, 0x66, 0xf6, 0x23, 0xdb, 0x97, 0xc1, 0xca, 0x5e, 0xdc, 0x82, 0x85, 0xe1, 0x1c, 0xec, 0xc4, 0x89, 0x72, 0xda, 0xe7, 0x47, 0x26, 0xd5, 0x36, 0xc0, 0x83, 0xb9, 0x8c, 0x78, 0xf, 0xf8, 0x3a, 0x58, 0x7e, 0xec, 0x84, 0x95, 0x1f, 0xfb, 0x5b, 0xd2, 0xff, 0x5, 0xcf, 0xf4, 0xf6, 0xb, 0xb5, 0x87, 0xb9, 0x56, 0x4, 0xf0, 0x1c, 0x92, 0xd4, 0x3f, 0xb, 0x5d, 0xbf, 0x16, 0x89, 0xe0, 0xe0, 0x8, 0xa6, 0xb6, 0x31, 0xbc, 0xbd, 0x4f, 0xe3, 0x16, 0x18, 0xb6, 0x39, 0xea, 0x53, 0xa3, 0x35, 0x82, 0x9c, 0xe4, 0x88, 0x1a, 0xa1, 0x88, 0x51, 0x35, 0x22, 0xf5, 0x8d, 0x35, 0xbf, 0xfd, 0x2f, 0xfd, 0xb7, 0x48, 0x39, 0xa9, 0xff, 0xea, 0x1e, 0xe8, 0x5f, 0x1e, 0xb5, 0xfe, 0x8b, 0xf7, 0x5e, 0x73, 0x9e, 0xe8, 0xbf, 0x75, 0xf5, 0xe3, 0x51, 0x2c, 0x3f, 0x6b, 0x65, 0x9f, 0x29, 0xc1, 0x51, 0x6b, 0xfd, 0xb6, 0xcd, 0x49, 0x56, 0xfc, 0xcb, 0x5b, 0x4d, 0x1b, 0x67, 0xd1, 0xde, 0x3d, 0x23, 0x82, 0xee, 0x48, 0x5b, 0x4f, 0x4, 0x65, 0x23, 0xd6, 0x97, 0x47, 0x99, 0x6a, 0x17, 0x27, 0x47, 0x2c, 0x5a, 0x29, 0x1f, 0xe9, 0xef, 0xfd, 0x63, 0x75, 0x11, 0xed, 0x6, 0xd5, 0x6d, 0xce, 0x8e, 0x7, 0xaf, 0xbc, 0x72, 0xe9, 0xd2, 0x25, 0xd3, 0xd8, 0xfc, 0x25, 0x28, 0x7b, 0x5c, 0x74, 0x1, 0xbe, 0x36, 0xa, 0xf1, 0x93, 0xa5, 0x7f, 0x28, 0x80, 0x6a, 0x2e, 0x27, 0x62, 0x99, 0x42, 0xa8, 0xa1, 0xa9, 0x5a, 0xeb, 0x2f, 0x83, 0xd6, 0x49, 0x8d, 0x54, 0xec, 0x60, 0xf6, 0xcc, 0x3d, 0x48, 0x95, 0x98, 0xe9, 0x6e, 0x2d, 0x7d, 0x73, 0xe, 0xf4, 0x5f, 0xf8, 0x98, 0x42, 0xf1, 0xe8, 0x62, - 0x4f, 0xda, 0x7c, 0x40, 0xa3, 0xce, 0x6f, 0x39, 0x78, 0x8c, 0x7d, 0x1a, 0xec, 0x31, 0xa5, 0x97, 0x9f, 0x4f, 0xef, 0x67, 0x16, 0x11, 0xfb, 0x22, 0x9c, 0xda, 0xd7, 0x81, 0xe6, 0xde, 0xdf, 0x25, 0x7e, 0x1f, 0x30, 0xbc, 0xa9, 0xd3, 0x1a, 0x8b, 0x87, 0xd6, 0x58, 0x4f, 0xf6, 0xe4, 0xad, 0x6c, 0x97, 0x47, 0x3e, 0xbe, 0xc4, 0xe2, 0x87, 0x9e, 0xa2, 0xa6, 0x70, 0x92, 0xd7, 0x4a, 0xe2, 0xb9, 0x4f, 0x61, 0xda, 0xc6, 0x99, 0xc0, 0x79, 0x41, 0x2f, 0xde, 0x44, 0x2c, 0x27, 0x76, 0xd3, 0xa8, 0xeb, 0xd7, 0xaa, 0x5d, 0x57, 0x21, 0x4, 0x8d, 0x76, 0x36, 0x81, 0x32, 0x49, 0x23, 0xbc, 0x57, 0x70, 0xc8, 0xb7, 0x76, 0x5e, 0x24, 0x22, 0xcb, 0x52, 0x91, 0xee, 0xfb, 0x4b, 0x77, 0xfc, 0x1b, 0x13, 0xbf, 0x53, 0x2, 0x29, 0x80, 0xd8, 0x7a, 0xdc, 0x8e, 0xbd, 0x3c, 0x6e, 0x80, 0x5e, 0x4, 0x52, 0x32, 0xea, 0xed, 0x97, 0x52, 0xf1, 0x68, 0xf7, 0xfb, 0x69, 0xff, 0x7c, 0x92, 0x4f, 0xc5, 0xaf, 0xe1, 0xbe, 0x7f, 0xa4, 0x2f, 0xaf, 0x7f, 0x69, 0xf4, 0xc7, 0xff, 0x9a, 0x92, 0x53, 0xe0, 0xb3, 0xd4, 0xbd, 0x23, 0x82, 0xbe, 0xe1, 0xfe, 0x4e, 0x3a, 0x9a, 0xc5, 0x4f, 0x6, 0x59, 0xbe, 0xc4, 0x9f, 0xf, 0x58, 0xf2, 0xad, 0x39, 0xaa, 0x21, 0x41, 0x14, 0x41, 0x64, 0x85, 0x17, 0xfa, 0xea, 0xac, 0x25, 0x70, 0xf6, 0xde, 0x43, 0xec, 0x7c, 0xa6, 0xdb, 0xbf, 0x26, 0xfa, 0x5b, 0xfd, 0xed, 0xa, 0x83, 0xd, 0xa1, 0x7e, 0xea, 0x3e, 0x10, 0x5f, 0xee, 0xba, 0x55, 0xc1, 0xa0, 0xfe, 0x69, 0x7, 0xaa, 0x21, 0xdf, 0xf6, 0xbb, 0x96, 0x6d, 0x5f, 0xca, 0xa3, 0xe2, 0x6f, 0x47, 0x7f, - 0x5b, 0x4e, 0x45, 0x52, 0x6b, 0xcb, 0x2b, 0xfc, 0x9f, 0xb5, 0x7, 0xa6, 0x42, 0x6e, 0x87, 0xe0, 0x8, 0x1a, 0xf1, 0x2d, 0x6e, 0x65, 0xc4, 0xfa, 0xf5, 0x78, 0xbc, 0x4d, 0xad, 0xb6, 0x55, 0xed, 0xee, 0x60, 0xfb, 0x3d, 0x2c, 0x1a, 0xc9, 0xfc, 0xdb, 0xe9, 0xa6, 0x8f, 0xb7, 0x9f, 0xc8, 0x1b, 0x8f, 0x3c, 0x95, 0xfe, 0xf9, 0xc, 0xce, 0xa7, 0x93, 0x92, 0xa3, 0x3, 0x71, 0xa7, 0xf, 0x79, 0x7d, 0x3f, 0x8, 0x6a, 0x83, 0x83, 0x45, 0x9, 0xf3, 0x8c, 0xcb, 0x67, 0x9c, 0xa5, 0xff, 0x36, 0x3d, 0xf0, 0x4d, 0x70, 0x97, 0x50, 0x6, 0xf8, 0xfe, 0x43, 0xc0, 0x52, 0xde, 0x9a, 0x2a, 0x62, 0xeb, 0xb8, 0x2d, 0x15, 0xc8, 0xd6, 0xa3, 0xe9, 0xcc, 0x70, 0xa0, 0xe7, 0x8d, 0x47, 0xed, 0x6f, 0x7c, 0x97, 0xfe, 0x57, 0x71, 0xa, 0x45, 0xca, 0x77, 0xbb, 0x3c, 0x92, 0xdb, 0x39, 0xc1, 0x59, 0xe0, 0x71, 0x4d, 0x70, 0x39, 0x5d, 0x79, 0x79, 0xf2, 0x78, 0x8f, 0x28, 0xe7, 0x39, 0xb, 0x7c, 0x93, 0x7d, 0xf9, 0x6e, 0xab, 0x4c, 0xf4, 0xb0, 0xd7, 0xbc, 0x3c, 0x67, 0xde, 0x39, 0xe3, 0x27, 0xb0, 0xe2, 0x9a, 0x70, 0xe, 0x2d, 0x1e, 0xb7, 0xc7, 0x3e, 0x3f, 0xc9, 0x55, 0x40, 0x4b, 0x1e, 0x2d, 0xa9, 0x3, 0x76, 0x49, 0x77, 0xed, 0x5c, 0x49, 0x9e, 0xe0, 0x99, 0x3c, 0xc1, 0x91, 0x9b, 0x5b, 0xe0, 0xca, 0x91, 0xc5, 0xf1, 0xe7, 0xb8, 0x3d, 0xac, 0x14, 0x78, 0x3c, 0x22, 0x6d, 0x56, 0x7e, 0x7e, 0x11, 0xa5, 0xcf, 0x71, 0xbb, 0xc7, 0x8f, 0xcf, 0x73, 0x8d, 0x73, 0x4f, 0x18, 0x3f, 0xc1, 0x3d, 0x81, 0x9e, 0x3d, 0xc7, 0xe3, 0xa3, 0xaf, 0x79, 0xe3, 0xf3, 0xdc, 0xe7, 0xc8, 0x6e, - 0xb7, 0xcb, 0x5d, 0xe0, 0xa2, 0x2d, 0xcb, 0x2d, 0x90, 0x26, 0xb1, 0x2b, 0x3a, 0xb, 0x9c, 0xee, 0x7c, 0x6f, 0x7e, 0x7e, 0x81, 0x53, 0x72, 0x8e, 0x3b, 0xf9, 0x52, 0xff, 0x1f, 0xc3, 0x4d, 0x47, 0xb3, -} ; + 120, 156, 237, 125, 13, 116, 19, 87, 150, 230, 43, 169, 44, 61, 9, 89, 146, 141, 13, 178, 35, 74, 2, 11, 16, 63, 14, 2, 28, 34, 130, 98, 21, 240, 136, 5, 193, 29, 51, 116, 186, 33, 157, 237, 40, 158, 52, 237, 36, 227, 30, 217, 132, 142, 8, 142, 85, 161, 233, 32, 50, 241, 180, 210, 233, 31, 102, 54, 147, 168, 123, 231, 204, 228, 236, 9, 167, 157, 179, 147, 109, 102, 54, 59, 81, 2, 19, 51, 115, 112, 143, 115, 210, 57, 211, 59, 155, 19, 202, 144, 237, 164, 103, 227, 165, 24, 146, 142, 166, 99, 172, 125, 247, 85, 25, 104, 203, 19, 217, 99, 201, 114, 39, 245, 14, 63, 250, 84, 85, 122, 85, 183, 238, 187, 239, 222, 251, 238, 189, 47, 118, 238, 147, 239, 10, 28, 66, 239, 255, 69, 0, 185, 56, 39, 66, 40, 251, 207, 59, 254, 114, 101, 238, 90, 19, 165, 190, 238, 246, 238, 175, 108, 232, 16, 191, 183, 238, 210, 250, 79, 214, 31, 93, 31, 220, 208, 27, 150, 186, 125, 41, 244, 191, 99, 25, 116, 86, 146, 150, 139, + 233, 220, 56, 66, 82, 85, 166, 70, 50, 190, 241, 212, 55, 69, 201, 248, 90, 213, 192, 15, 114, 78, 241, 199, 225, 1, 233, 104, 247, 174, 135, 14, 175, 235, 16, 119, 53, 29, 11, 195, 111, 60, 182, 225, 192, 134, 122, 218, 219, 218, 219, 92, 13, 71, 110, 185, 240, 224, 170, 63, 83, 123, 187, 173, 251, 239, 214, 94, 235, 105, 30, 122, 41, 252, 127, 247, 159, 145, 208, 192, 63, 228, 56, 233, 229, 23, 140, 63, 91, 75, 127, 201, 32, 253, 175, 174, 125, 27, 254, 140, 126, 251, 166, 246, 45, 220, 227, 190, 13, 175, 209, 111, 254, 153, 126, 195, 191, 98, 252, 217, 190, 13, 94, 138, 126, 153, 51, 116, 255, 141, 244, 178, 20, 16, 127, 73, 191, 143, 176, 239, 47, 210, 239, 199, 232, 247, 93, 146, 145, 254, 207, 73, 223, 160, 223, 238, 237, 230, 164, 47, 209, 255, 127, 190, 127, 104, 127, 123, 247, 79, 105, 31, 237, 221, 94, 73, 222, 127, 184, 123, 225, 134, 254, 13, 127, 27, 78, 207, 219, 123, 233, 168, 229, 160, 120, 105, 205, 83, 79, 242, + 191, 106, 191, 121, 221, 227, 206, 223, 228, 244, 166, 55, 189, 233, 77, 111, 122, 211, 155, 222, 244, 166, 55, 189, 233, 77, 111, 122, 155, 149, 102, 68, 123, 184, 187, 62, 165, 61, 252, 205, 47, 174, 115, 142, 189, 253, 55, 159, 118, 206, 232, 21, 245, 183, 144, 214, 72, 95, 45, 230, 3, 56, 112, 48, 24, 18, 60, 102, 35, 34, 173, 203, 49, 255, 66, 114, 199, 191, 253, 155, 9, 95, 226, 198, 208, 196, 243, 243, 174, 111, 180, 99, 62, 153, 60, 239, 245, 138, 210, 100, 199, 243, 206, 239, 140, 96, 30, 227, 122, 33, 180, 113, 211, 161, 253, 251, 247, 147, 193, 229, 254, 22, 51, 142, 178, 131, 70, 179, 221, 87, 233, 192, 56, 109, 89, 236, 5, 172, 152, 179, 164, 209, 130, 121, 55, 182, 26, 175, 140, 202, 146, 36, 101, 249, 155, 162, 88, 56, 159, 19, 4, 187, 23, 159, 114, 61, 126, 202, 87, 105, 183, 32, 52, 102, 94, 160, 254, 188, 84, 168, 127, 29, 207, 45, 76, 214, 155, 135, 127, 26, 227, 145, 88, 85, 169, 225, 166, 225, 155, 1, + 19, 95, 105, 250, 235, 220, 15, 252, 20, 53, 59, 154, 31, 253, 228, 242, 163, 205, 133, 249, 155, 243, 147, 32, 94, 25, 234, 201, 198, 162, 162, 247, 120, 185, 233, 165, 99, 29, 235, 88, 199, 58, 86, 27, 233, 179, 97, 222, 133, 3, 23, 46, 92, 200, 37, 194, 8, 89, 207, 4, 23, 35, 47, 202, 228, 114, 239, 222, 144, 187, 57, 151, 43, 118, 127, 190, 3, 113, 255, 186, 205, 209, 14, 23, 128, 44, 247, 39, 133, 206, 175, 235, 127, 180, 10, 33, 103, 187, 108, 164, 255, 34, 36, 150, 155, 94, 19, 177, 169, 109, 1, 215, 19, 120, 213, 188, 136, 222, 91, 8, 133, 74, 255, 190, 90, 27, 48, 31, 193, 109, 38, 187, 189, 55, 151, 176, 219, 201, 157, 207, 153, 142, 246, 94, 48, 179, 131, 210, 62, 19, 57, 97, 198, 188, 19, 167, 24, 150, 21, 84, 31, 219, 196, 241, 34, 61, 132, 118, 81, 124, 134, 43, 55, 189, 242, 158, 103, 228, 33, 204, 63, 147, 188, 175, 218, 194, 35, 83, 34, 129, 200, 183, 209, 24, 247, 5, 245, 105, 164, 146, + 244, 183, 25, 243, 94, 60, 196, 64, 34, 17, 42, 120, 62, 220, 207, 105, 13, 208, 59, 42, 55, 189, 242, 238, 111, 112, 21, 216, 27, 79, 244, 88, 120, 3, 223, 155, 64, 214, 254, 53, 92, 79, 58, 99, 158, 71, 249, 209, 118, 246, 108, 209, 251, 243, 189, 180, 27, 27, 182, 200, 199, 96, 229, 19, 101, 165, 187, 11, 142, 223, 248, 206, 225, 176, 102, 92, 212, 34, 20, 41, 55, 189, 76, 182, 6, 11, 125, 143, 235, 134, 206, 217, 145, 60, 72, 233, 87, 73, 237, 55, 31, 246, 194, 49, 37, 30, 47, 200, 15, 115, 29, 51, 126, 229, 17, 226, 138, 252, 123, 90, 203, 147, 31, 195, 199, 27, 57, 36, 191, 2, 221, 73, 254, 118, 152, 79, 126, 8, 212, 172, 55, 31, 158, 198, 239, 239, 211, 6, 251, 84, 206, 31, 249, 2, 204, 87, 109, 241, 120, 48, 228, 22, 4, 7, 105, 228, 253, 100, 29, 14, 100, 100, 89, 78, 167, 164, 175, 147, 19, 141, 152, 63, 153, 100, 198, 143, 237, 217, 230, 26, 50, 242, 159, 0, 159, 63, 235, 91, 86, 109, + 176, 88, 248, 153, 210, 99, 219, 243, 139, 96, 126, 148, 207, 37, 126, 226, 166, 95, 191, 82, 238, 247, 173, 99, 29, 235, 184, 140, 242, 246, 196, 22, 204, 251, 113, 128, 170, 99, 189, 189, 194, 108, 232, 75, 95, 6, 249, 167, 234, 119, 225, 176, 125, 74, 242, 85, 214, 192, 28, 212, 95, 116, 60, 51, 252, 181, 61, 93, 195, 107, 98, 53, 40, 198, 59, 191, 245, 52, 2, 125, 240, 94, 208, 255, 235, 229, 76, 105, 250, 35, 157, 123, 128, 255, 250, 247, 31, 122, 180, 217, 227, 240, 60, 90, 240, 252, 74, 11, 220, 79, 76, 202, 40, 217, 158, 80, 86, 41, 55, 189, 242, 238, 175, 111, 61, 248, 239, 99, 227, 227, 151, 84, 214, 249, 137, 5, 35, 11, 207, 27, 184, 41, 92, 95, 231, 186, 149, 19, 234, 17, 18, 108, 8, 85, 41, 225, 194, 253, 85, 174, 133, 254, 234, 225, 183, 195, 97, 143, 157, 141, 207, 29, 227, 71, 17, 71, 222, 220, 201, 181, 112, 242, 81, 167, 10, 79, 145, 206, 4, 230, 207, 38, 79, 55, 24, 159, 222, 190, 253, 133, + 63, 94, 64, 14, 188, 101, 106, 137, 41, 230, 215, 158, 127, 251, 23, 178, 18, 67, 76, 223, 121, 33, 153, 97, 167, 7, 179, 166, 89, 167, 95, 231, 141, 152, 223, 137, 235, 221, 238, 209, 209, 158, 144, 102, 207, 165, 147, 175, 87, 115, 152, 55, 76, 229, 122, 120, 126, 245, 238, 167, 100, 239, 145, 193, 29, 152, 111, 194, 105, 35, 199, 161, 222, 132, 199, 189, 34, 176, 134, 195, 98, 173, 1, 84, 212, 54, 132, 188, 236, 247, 254, 116, 156, 154, 156, 68, 245, 123, 63, 217, 136, 229, 140, 232, 237, 127, 106, 239, 106, 31, 105, 221, 14, 235, 39, 129, 120, 200, 29, 26, 29, 133, 223, 107, 244, 19, 140, 235, 217, 249, 189, 66, 255, 172, 211, 111, 130, 253, 198, 248, 111, 11, 142, 30, 67, 71, 14, 63, 38, 77, 131, 255, 240, 212, 248, 79, 181, 223, 154, 142, 57, 129, 1, 169, 253, 198, 232, 213, 59, 126, 244, 42, 255, 125, 231, 26, 255, 17, 208, 159, 187, 127, 244, 95, 190, 187, 119, 251, 159, 127, 239, 7, 164, 114, 30, 230, 131, 184, 126, 236, + 228, 201, 95, 200, 178, 162, 242, 223, 203, 229, 227, 63, 29, 235, 88, 199, 58, 214, 241, 103, 3, 179, 249, 104, 217, 56, 226, 138, 238, 175, 38, 157, 43, 49, 47, 82, 251, 41, 20, 106, 22, 0, 55, 58, 49, 111, 195, 82, 104, 145, 199, 225, 112, 152, 233, 252, 123, 59, 243, 7, 202, 178, 156, 201, 100, 36, 170, 207, 172, 0, 253, 166, 13, 201, 10, 213, 182, 138, 208, 255, 200, 2, 208, 231, 30, 73, 167, 159, 251, 206, 29, 17, 236, 191, 179, 99, 151, 5, 33, 167, 33, 10, 202, 18, 226, 219, 248, 3, 6, 206, 240, 196, 227, 8, 137, 20, 74, 195, 65, 50, 210, 237, 39, 117, 56, 230, 243, 38, 207, 100, 98, 138, 84, 238, 247, 163, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 58, 158, 28, 147, 145, 0, 196, 31, 167, 144, 217, 108, 52, 2, 110, 221, 13, 241, 17, 129, 248, 245, 249, 131, 103, 147, 91, 56, 163, 13, 65, 254, 32, 25, 9, 97, 158, + 224, 40, 122, 230, 217, 119, 126, 54, 217, 239, 65, 254, 96, 122, 58, 249, 131, 54, 204, 31, 79, 90, 23, 250, 124, 56, 66, 27, 228, 15, 18, 211, 120, 254, 96, 133, 157, 175, 116, 96, 39, 58, 230, 101, 223, 72, 30, 197, 247, 71, 11, 135, 115, 203, 61, 8, 165, 181, 235, 193, 63, 127, 55, 135, 32, 222, 82, 81, 20, 121, 174, 229, 15, 214, 54, 197, 170, 144, 152, 65, 81, 30, 161, 245, 165, 120, 127, 79, 223, 133, 13, 59, 15, 187, 156, 193, 141, 203, 92, 107, 151, 109, 44, 120, 126, 227, 60, 88, 111, 232, 167, 244, 146, 144, 148, 201, 148, 155, 62, 58, 214, 177, 142, 117, 252, 121, 197, 228, 132, 1, 226, 191, 134, 144, 29, 86, 123, 65, 62, 239, 133, 120, 50, 111, 48, 24, 12, 133, 220, 128, 231, 179, 227, 102, 218, 28, 118, 237, 56, 100, 52, 208, 195, 161, 201, 126, 15, 230, 67, 19, 228, 87, 77, 177, 127, 152, 127, 159, 79, 254, 235, 2, 159, 215, 143, 105, 35, 35, 59, 32, 30, 80, 205, 71, 50, 59, 60, 164, 209, 13, + 247, 35, 50, 156, 29, 29, 99, 249, 94, 207, 39, 219, 93, 22, 142, 135, 198, 250, 19, 212, 223, 146, 104, 43, 55, 61, 117, 172, 227, 114, 98, 50, 114, 23, 196, 223, 15, 109, 162, 227, 211, 227, 113, 32, 210, 103, 132, 250, 4, 146, 28, 139, 199, 179, 138, 92, 252, 254, 58, 239, 246, 147, 8, 238, 15, 250, 105, 91, 113, 227, 74, 114, 224, 240, 7, 3, 107, 221, 21, 8, 5, 253, 171, 86, 173, 240, 147, 198, 70, 208, 215, 37, 56, 55, 163, 100, 227, 164, 113, 9, 196, 151, 88, 67, 110, 183, 59, 52, 58, 247, 226, 159, 117, 172, 99, 29, 235, 248, 243, 138, 73, 231, 106, 208, 183, 100, 80, 6, 221, 130, 96, 39, 173, 141, 16, 223, 62, 148, 85, 16, 82, 148, 120, 188, 232, 253, 245, 237, 5, 125, 110, 201, 158, 136, 24, 137, 120, 125, 11, 239, 239, 223, 93, 133, 16, 174, 175, 58, 12, 1, 249, 246, 122, 45, 158, 254, 22, 118, 242, 201, 56, 213, 15, 87, 131, 127, 71, 74, 70, 88, 59, 83, 110, 122, 233, 88, 199, 58, 214, 177, + 142, 117, 172, 227, 242, 99, 210, 217, 202, 244, 23, 106, 250, 170, 250, 75, 231, 14, 240, 87, 201, 212, 244, 45, 137, 254, 226, 251, 232, 235, 216, 176, 115, 29, 118, 217, 206, 93, 252, 193, 169, 181, 2, 25, 89, 10, 249, 139, 175, 177, 131, 14, 119, 131, 245, 164, 159, 51, 124, 219, 36, 34, 14, 50, 24, 20, 7, 203, 119, 112, 65, 126, 37, 88, 195, 241, 108, 185, 233, 165, 99, 29, 235, 88, 199, 58, 214, 177, 142, 117, 172, 99, 29, 235, 88, 199, 229, 194, 100, 240, 97, 240, 55, 167, 194, 30, 4, 33, 6, 110, 50, 242, 40, 219, 79, 64, 150, 161, 124, 171, 82, 244, 245, 66, 114, 249, 14, 255, 58, 81, 196, 78, 87, 42, 37, 165, 44, 119, 144, 202, 69, 126, 178, 22, 199, 216, 65, 143, 183, 133, 213, 195, 89, 141, 51, 12, 103, 2, 41, 210, 217, 136, 249, 51, 73, 223, 158, 8, 198, 145, 200, 208, 208, 180, 251, 211, 226, 35, 160, 77, 165, 158, 210, 180, 127, 191, 47, 194, 246, 79, 168, 224, 89, 185, 33, 100, 177, 26, 44, 208, + 213, 243, 40, 227, 117, 150, 228, 125, 173, 103, 249, 248, 102, 132, 114, 72, 1, 251, 219, 4, 239, 79, 45, 151, 99, 119, 56, 242, 206, 127, 235, 231, 31, 12, 236, 114, 195, 71, 217, 253, 118, 249, 249, 45, 239, 254, 42, 235, 33, 62, 177, 13, 248, 143, 225, 145, 13, 224, 63, 136, 82, 99, 189, 68, 253, 25, 96, 125, 62, 211, 51, 250, 255, 46, 126, 188, 255, 80, 130, 12, 38, 192, 127, 16, 5, 250, 244, 223, 19, 125, 88, 227, 63, 137, 157, 44, 83, 254, 131, 245, 124, 130, 163, 241, 120, 48, 24, 204, 42, 114, 185, 233, 165, 99, 29, 235, 248, 179, 131, 73, 167, 17, 226, 135, 234, 131, 46, 205, 127, 218, 184, 15, 228, 97, 32, 24, 44, 209, 250, 239, 229, 175, 99, 195, 142, 243, 24, 251, 35, 145, 8, 246, 251, 181, 245, 223, 128, 182, 254, 123, 23, 147, 127, 183, 224, 126, 118, 50, 172, 255, 118, 117, 99, 225, 221, 156, 69, 48, 37, 233, 249, 24, 151, 155, 94, 58, 46, 50, 63, 116, 126, 9, 243, 33, 220, 22, 100, 109, 22, 250, + 83, 227, 213, 120, 136, 87, 131, 198, 226, 81, 189, 56, 0, 199, 226, 241, 158, 223, 185, 250, 231, 190, 3, 34, 54, 80, 125, 214, 134, 254, 243, 63, 94, 204, 93, 41, 251, 253, 252, 174, 97, 210, 183, 20, 244, 251, 215, 108, 46, 27, 7, 18, 136, 12, 186, 152, 61, 112, 144, 51, 55, 252, 254, 240, 112, 225, 235, 213, 122, 89, 43, 169, 176, 148, 50, 153, 76, 225, 243, 27, 59, 253, 196, 143, 149, 154, 234, 174, 120, 93, 5, 111, 34, 7, 62, 52, 29, 141, 125, 168, 238, 95, 225, 116, 187, 153, 189, 49, 190, 63, 67, 44, 22, 103, 245, 186, 78, 39, 119, 248, 189, 239, 93, 118, 214, 63, 209, 199, 236, 9, 31, 43, 55, 47, 149, 133, 94, 208, 127, 250, 90, 125, 125, 210, 250, 37, 136, 23, 143, 37, 14, 29, 186, 53, 236, 49, 114, 164, 86, 50, 153, 187, 222, 53, 75, 72, 236, 233, 233, 137, 138, 181, 138, 143, 163, 214, 84, 123, 6, 30, 15, 5, 139, 240, 190, 12, 160, 47, 91, 187, 13, 180, 153, 220, 33, 210, 103, 135, 248, 82, + 4, 181, 210, 194, 137, 196, 126, 82, 251, 226, 7, 3, 79, 229, 140, 8, 137, 98, 70, 118, 198, 201, 96, 3, 232, 207, 214, 151, 159, 121, 246, 217, 209, 209, 172, 92, 110, 126, 203, 127, 158, 53, 108, 254, 141, 197, 14, 134, 193, 6, 33, 149, 127, 200, 226, 241, 223, 123, 239, 194, 171, 240, 134, 11, 95, 223, 13, 252, 82, 47, 73, 25, 48, 153, 167, 32, 111, 43, 216, 252, 14, 159, 61, 225, 68, 215, 164, 239, 247, 55, 227, 136, 187, 64, 26, 111, 97, 239, 247, 194, 229, 67, 135, 254, 231, 219, 239, 92, 36, 157, 219, 129, 158, 233, 239, 28, 253, 206, 24, 212, 143, 245, 213, 214, 98, 195, 230, 244, 49, 182, 159, 141, 124, 40, 54, 235, 244, 131, 252, 65, 250, 60, 66, 72, 139, 127, 238, 100, 252, 144, 54, 119, 199, 98, 74, 41, 226, 159, 43, 239, 1, 121, 113, 154, 143, 68, 58, 150, 55, 204, 159, 175, 173, 255, 170, 21, 140, 29, 238, 6, 150, 191, 224, 211, 252, 7, 144, 191, 0, 246, 178, 5, 247, 123, 28, 230, 12, 10, 29, 53, + 147, 19, 127, 0, 247, 231, 165, 71, 149, 108, 214, 85, 126, 254, 107, 93, 12, 254, 150, 20, 138, 82, 114, 197, 98, 101, 191, 159, 185, 142, 235, 92, 157, 28, 146, 195, 156, 80, 47, 220, 182, 57, 171, 197, 51, 30, 79, 146, 20, 138, 68, 120, 159, 105, 65, 177, 251, 219, 150, 58, 200, 245, 164, 198, 32, 188, 161, 13, 38, 168, 23, 255, 186, 107, 113, 245, 78, 31, 236, 63, 227, 244, 154, 236, 34, 185, 92, 141, 77, 91, 211, 199, 172, 254, 142, 14, 250, 10, 211, 37, 231, 151, 19, 22, 45, 158, 1, 217, 237, 130, 123, 218, 250, 210, 182, 84, 128, 234, 251, 99, 11, 23, 245, 72, 72, 78, 211, 223, 219, 191, 11, 31, 190, 253, 54, 140, 171, 171, 145, 47, 218, 81, 242, 252, 128, 13, 17, 168, 55, 57, 150, 179, 36, 235, 144, 1, 85, 33, 50, 18, 129, 122, 211, 43, 155, 154, 156, 213, 213, 6, 84, 114, 251, 130, 197, 167, 212, 96, 250, 228, 72, 86, 98, 241, 224, 204, 127, 111, 158, 159, 172, 192, 43, 157, 24, 7, 123, 31, 105, 55, + 176, 122, 233, 84, 94, 43, 153, 12, 149, 47, 39, 165, 162, 223, 63, 200, 187, 179, 201, 118, 248, 108, 220, 31, 247, 21, 150, 151, 139, 88, 62, 10, 3, 206, 185, 23, 255, 178, 180, 109, 1, 135, 145, 161, 61, 74, 63, 139, 38, 83, 201, 251, 227, 63, 242, 191, 159, 51, 11, 53, 2, 66, 155, 223, 61, 120, 155, 147, 205, 183, 255, 50, 126, 20, 229, 213, 15, 39, 35, 55, 96, 30, 49, 255, 180, 172, 40, 83, 212, 207, 152, 191, 153, 169, 179, 101, 167, 111, 233, 199, 147, 27, 226, 201, 31, 160, 111, 47, 234, 77, 167, 218, 202, 125, 63, 115, 29, 51, 122, 249, 176, 149, 126, 28, 235, 157, 3, 247, 243, 187, 142, 153, 189, 22, 84, 237, 181, 88, 124, 230, 242, 188, 220, 152, 217, 167, 235, 112, 218, 23, 168, 166, 19, 61, 50, 48, 121, 66, 174, 217, 123, 181, 129, 24, 219, 143, 242, 71, 72, 181, 231, 200, 131, 13, 195, 57, 65, 45, 215, 140, 36, 209, 91, 240, 247, 97, 189, 42, 69, 245, 103, 58, 251, 50, 123, 27, 246, 39, 59, 158, + 12, 68, 252, 190, 154, 106, 171, 165, 34, 239, 252, 221, 127, 48, 124, 115, 204, 137, 196, 140, 136, 188, 78, 169, 99, 230, 239, 235, 206, 241, 252, 68, 40, 224, 49, 99, 255, 38, 25, 188, 139, 229, 55, 6, 67, 33, 193, 227, 48, 82, 253, 200, 167, 218, 31, 14, 143, 48, 54, 54, 90, 2, 126, 179, 97, 62, 147, 92, 178, 204, 231, 85, 235, 151, 64, 254, 180, 87, 219, 191, 3, 242, 167, 251, 118, 248, 201, 98, 172, 48, 28, 180, 157, 39, 125, 7, 48, 223, 159, 92, 82, 135, 121, 158, 206, 62, 188, 181, 127, 205, 112, 226, 181, 140, 153, 135, 87, 118, 246, 244, 140, 247, 131, 155, 57, 253, 162, 96, 239, 70, 183, 126, 114, 37, 236, 49, 35, 180, 34, 112, 128, 83, 179, 191, 185, 140, 243, 191, 119, 26, 139, 221, 223, 194, 36, 172, 143, 202, 185, 132, 49, 72, 233, 3, 253, 47, 247, 155, 205, 227, 235, 191, 30, 142, 249, 159, 3, 234, 126, 136, 72, 118, 225, 109, 29, 134, 225, 92, 46, 236, 67, 94, 216, 46, 51, 145, 40, 55, 189, 242, + 232, 215, 122, 47, 232, 147, 50, 125, 152, 112, 216, 161, 217, 247, 148, 31, 213, 108, 219, 18, 244, 7, 251, 219, 164, 146, 247, 45, 169, 194, 60, 171, 223, 3, 242, 225, 164, 38, 29, 194, 225, 144, 233, 73, 158, 237, 47, 41, 211, 107, 50, 244, 90, 210, 183, 11, 230, 231, 243, 8, 101, 210, 169, 51, 247, 21, 212, 23, 103, 159, 126, 55, 168, 245, 136, 168, 58, 27, 14, 83, 252, 209, 105, 83, 75, 236, 67, 243, 234, 213, 61, 144, 62, 93, 252, 254, 42, 59, 65, 31, 22, 67, 148, 247, 140, 70, 163, 170, 79, 191, 124, 157, 255, 0, 198, 239, 90, 102, 31, 32, 20, 192, 167, 201, 8, 130, 247, 41, 135, 220, 161, 108, 86, 201, 206, 57, 255, 52, 227, 135, 76, 242, 9, 182, 223, 17, 101, 3, 254, 208, 87, 57, 52, 230, 30, 232, 106, 67, 38, 228, 197, 134, 226, 247, 199, 131, 191, 167, 158, 141, 198, 120, 40, 143, 30, 164, 243, 32, 140, 7, 137, 129, 168, 34, 147, 3, 255, 96, 26, 136, 141, 154, 37, 73, 122, 246, 217, 148, 115, 206, + 233, 135, 100, 196, 7, 243, 81, 38, 24, 12, 170, 254, 191, 193, 149, 160, 159, 193, 253, 103, 193, 191, 86, 124, 126, 95, 192, 246, 223, 10, 2, 240, 132, 195, 252, 75, 187, 171, 232, 120, 221, 198, 54, 251, 202, 60, 214, 202, 248, 111, 139, 230, 191, 2, 254, 171, 20, 152, 189, 207, 242, 247, 179, 115, 208, 127, 90, 185, 134, 197, 15, 209, 233, 215, 65, 167, 95, 149, 126, 77, 236, 254, 229, 108, 182, 20, 250, 30, 171, 95, 210, 238, 243, 193, 2, 230, 237, 243, 152, 252, 123, 64, 147, 127, 227, 243, 239, 90, 124, 203, 85, 250, 141, 244, 176, 253, 53, 4, 193, 46, 8, 163, 163, 115, 174, 254, 1, 219, 15, 90, 196, 41, 120, 130, 68, 66, 171, 167, 118, 58, 25, 245, 246, 43, 241, 146, 208, 15, 246, 251, 74, 38, 119, 88, 44, 84, 25, 49, 24, 184, 218, 23, 218, 88, 188, 146, 203, 216, 253, 58, 122, 232, 150, 73, 244, 197, 58, 152, 111, 150, 32, 88, 240, 16, 11, 235, 151, 179, 175, 47, 215, 179, 253, 243, 60, 205, 161, 80, 24, 252, + 207, 48, 94, 68, 28, 80, 226, 193, 32, 21, 216, 37, 120, 95, 191, 199, 214, 43, 67, 212, 214, 104, 246, 56, 28, 108, 254, 120, 38, 111, 254, 136, 50, 60, 62, 126, 233, 253, 208, 241, 27, 234, 153, 131, 241, 67, 204, 127, 79, 229, 11, 125, 28, 32, 31, 125, 223, 155, 216, 122, 136, 192, 164, 77, 41, 248, 253, 17, 246, 251, 140, 92, 225, 112, 16, 246, 143, 111, 137, 125, 160, 174, 191, 213, 185, 140, 90, 252, 149, 200, 112, 38, 112, 156, 197, 71, 96, 156, 138, 135, 220, 194, 59, 239, 216, 133, 114, 211, 171, 220, 120, 162, 189, 251, 89, 179, 127, 75, 78, 191, 190, 85, 108, 61, 18, 230, 95, 22, 239, 170, 250, 131, 163, 204, 29, 92, 4, 127, 240, 236, 63, 207, 66, 255, 233, 5, 216, 106, 54, 104, 184, 113, 5, 155, 127, 153, 179, 178, 20, 253, 53, 114, 32, 47, 98, 70, 71, 184, 55, 222, 211, 236, 97, 243, 111, 96, 252, 40, 226, 248, 77, 27, 185, 163, 93, 174, 1, 240, 78, 208, 1, 60, 204, 246, 131, 245, 226, 33, 109, 63, + 88, 105, 218, 253, 93, 23, 191, 11, 94, 144, 114, 211, 123, 166, 120, 85, 100, 239, 112, 88, 64, 82, 211, 79, 214, 32, 228, 255, 222, 151, 11, 207, 215, 91, 217, 122, 180, 2, 202, 168, 60, 58, 90, 238, 251, 207, 231, 63, 59, 188, 223, 126, 202, 13, 197, 249, 61, 120, 223, 106, 49, 87, 110, 178, 120, 109, 114, 98, 9, 172, 127, 236, 88, 87, 87, 105, 68, 156, 217, 194, 234, 149, 4, 176, 198, 129, 177, 158, 188, 243, 43, 111, 85, 215, 123, 37, 86, 46, 54, 83, 110, 122, 77, 196, 190, 239, 223, 235, 95, 183, 37, 141, 41, 107, 203, 198, 44, 71, 233, 121, 23, 179, 71, 100, 5, 118, 128, 43, 193, 251, 58, 33, 0, 61, 50, 136, 167, 250, 48, 213, 216, 201, 72, 228, 106, 189, 48, 65, 240, 228, 199, 143, 119, 54, 12, 159, 171, 80, 221, 139, 83, 241, 47, 206, 58, 255, 141, 52, 128, 255, 114, 75, 181, 203, 98, 3, 3, 152, 244, 125, 197, 79, 172, 88, 241, 152, 233, 221, 58, 205, 226, 2, 230, 47, 69, 232, 136, 180, 245, 207, + 65, 201, 120, 99, 232, 27, 176, 254, 249, 49, 4, 168, 128, 19, 158, 244, 121, 64, 95, 11, 80, 93, 155, 51, 242, 202, 99, 164, 239, 78, 230, 15, 139, 197, 232, 11, 200, 72, 147, 244, 199, 252, 127, 1, 159, 207, 231, 245, 250, 124, 53, 76, 191, 131, 250, 200, 156, 209, 236, 16, 4, 55, 227, 223, 61, 28, 202, 229, 148, 12, 10, 39, 18, 44, 255, 252, 100, 178, 189, 202, 233, 116, 138, 145, 213, 107, 72, 35, 98, 252, 122, 73, 129, 217, 58, 40, 145, 62, 30, 252, 15, 79, 128, 174, 21, 206, 184, 47, 147, 74, 86, 79, 89, 29, 1, 210, 230, 31, 177, 235, 159, 79, 158, 79, 167, 82, 78, 145, 182, 137, 247, 243, 226, 95, 45, 163, 246, 99, 218, 128, 110, 3, 180, 233, 245, 133, 201, 13, 204, 191, 246, 39, 172, 70, 99, 127, 65, 127, 89, 161, 253, 7, 139, 255, 190, 62, 91, 251, 15, 146, 202, 27, 85, 127, 82, 200, 189, 136, 154, 243, 148, 158, 22, 198, 15, 118, 33, 52, 154, 149, 75, 64, 191, 143, 126, 243, 193, 192, 102, 183, + 1, 170, 255, 173, 106, 240, 249, 180, 248, 221, 254, 167, 190, 165, 197, 239, 170, 246, 199, 53, 255, 51, 228, 127, 44, 118, 243, 212, 252, 29, 11, 186, 71, 231, 156, 254, 60, 177, 254, 184, 239, 166, 157, 92, 75, 204, 173, 10, 156, 143, 63, 41, 193, 254, 155, 147, 212, 31, 55, 143, 215, 31, 55, 219, 125, 119, 210, 241, 52, 54, 111, 128, 225, 24, 255, 155, 114, 211, 167, 240, 243, 108, 101, 241, 96, 110, 183, 27, 121, 18, 148, 255, 90, 35, 108, 60, 59, 60, 205, 163, 89, 42, 130, 138, 207, 239, 247, 128, 124, 202, 120, 65, 250, 65, 131, 253, 188, 69, 249, 24, 75, 64, 202, 74, 95, 96, 252, 183, 121, 220, 254, 181, 189, 70, 70, 22, 193, 254, 230, 214, 42, 11, 43, 31, 203, 214, 63, 114, 169, 140, 217, 200, 214, 63, 206, 150, 127, 253, 67, 139, 255, 163, 178, 56, 71, 201, 55, 238, 191, 146, 16, 196, 135, 149, 194, 255, 7, 241, 253, 103, 146, 222, 8, 8, 243, 150, 22, 53, 255, 45, 168, 141, 215, 176, 120, 7, 163, 95, 157, 70, + 63, 197, 198, 147, 151, 94, 180, 30, 237, 117, 171, 23, 103, 2, 169, 114, 211, 107, 82, 249, 71, 245, 137, 144, 219, 157, 200, 243, 159, 142, 149, 160, 63, 77, 254, 121, 33, 120, 188, 97, 249, 114, 50, 242, 135, 96, 191, 137, 236, 160, 123, 18, 127, 52, 232, 135, 199, 147, 63, 102, 64, 118, 205, 185, 252, 5, 210, 186, 22, 232, 23, 165, 234, 64, 40, 204, 230, 223, 157, 160, 47, 176, 217, 48, 99, 8, 149, 96, 254, 237, 134, 120, 200, 91, 150, 137, 145, 182, 55, 47, 95, 74, 177, 245, 75, 124, 109, 253, 146, 197, 147, 138, 105, 117, 60, 203, 135, 206, 147, 19, 191, 143, 249, 39, 147, 247, 57, 204, 102, 227, 40, 202, 160, 193, 15, 191, 12, 250, 212, 192, 2, 216, 76, 128, 42, 8, 101, 167, 223, 139, 59, 177, 224, 22, 120, 161, 26, 172, 121, 55, 34, 7, 100, 182, 126, 84, 1, 194, 198, 96, 44, 120, 125, 93, 255, 26, 14, 75, 156, 65, 164, 159, 157, 98, 245, 235, 133, 249, 239, 125, 200, 167, 84, 249, 111, 57, 240, 31, 203, 95, + 104, 99, 7, 93, 161, 144, 182, 158, 41, 51, 108, 52, 27, 201, 75, 71, 33, 30, 218, 192, 132, 223, 40, 159, 103, 127, 252, 182, 125, 91, 124, 125, 161, 240, 252, 113, 35, 236, 47, 237, 116, 187, 5, 129, 249, 159, 225, 126, 158, 212, 238, 70, 42, 126, 127, 11, 59, 130, 195, 185, 4, 147, 254, 187, 16, 253, 227, 251, 254, 55, 184, 1, 14, 29, 85, 231, 143, 43, 65, 214, 255, 59, 227, 228, 152, 125, 122, 76, 23, 251, 238, 252, 10, 54, 16, 249, 24, 54, 60, 22, 149, 47, 12, 171, 249, 165, 1, 220, 150, 97, 163, 163, 248, 247, 127, 211, 25, 227, 112, 46, 231, 0, 226, 96, 100, 114, 210, 249, 171, 82, 141, 39, 202, 142, 246, 122, 232, 32, 173, 235, 127, 20, 226, 67, 12, 199, 140, 204, 3, 35, 178, 251, 233, 79, 198, 36, 36, 138, 147, 217, 15, 229, 198, 218, 248, 25, 10, 193, 232, 133, 250, 247, 125, 8, 214, 39, 72, 146, 44, 169, 194, 166, 41, 92, 15, 252, 130, 213, 207, 83, 138, 215, 215, 198, 175, 111, 217, 154, 53, 107, + 86, 45, 246, 154, 62, 88, 106, 65, 210, 227, 170, 255, 224, 237, 127, 164, 247, 19, 190, 106, 15, 35, 135, 167, 151, 52, 114, 160, 207, 196, 226, 138, 28, 21, 69, 175, 179, 220, 244, 202, 31, 191, 141, 44, 127, 58, 30, 7, 115, 114, 22, 250, 3, 253, 37, 165, 233, 47, 180, 21, 210, 95, 202, 77, 159, 194, 250, 31, 102, 246, 218, 166, 112, 216, 227, 1, 253, 5, 236, 115, 130, 189, 255, 227, 149, 231, 168, 65, 60, 133, 235, 7, 131, 152, 151, 240, 91, 212, 84, 102, 123, 48, 20, 230, 247, 5, 160, 143, 252, 107, 202, 217, 182, 107, 243, 246, 237, 243, 216, 122, 135, 150, 255, 134, 100, 41, 79, 191, 35, 39, 16, 232, 139, 75, 144, 188, 118, 109, 213, 222, 237, 15, 46, 61, 254, 224, 240, 57, 182, 90, 34, 152, 106, 188, 94, 145, 116, 54, 248, 91, 182, 178, 120, 66, 4, 1, 221, 179, 78, 63, 117, 253, 173, 62, 28, 14, 55, 11, 215, 205, 191, 223, 62, 82, 170, 249, 247, 58, 253, 111, 197, 138, 85, 191, 165, 255, 169, 243, 239, 175, + 18, 11, 5, 117, 70, 53, 154, 28, 76, 62, 124, 131, 131, 92, 155, 196, 199, 239, 189, 55, 80, 110, 126, 203, 215, 255, 62, 125, 255, 173, 194, 244, 255, 124, 239, 191, 69, 238, 252, 161, 117, 32, 225, 54, 82, 225, 183, 233, 214, 222, 132, 22, 63, 164, 152, 67, 77, 89, 48, 127, 75, 35, 255, 206, 38, 189, 170, 249, 182, 61, 162, 229, 11, 50, 253, 47, 22, 143, 229, 229, 95, 145, 65, 12, 227, 247, 48, 124, 150, 131, 201, 57, 24, 127, 85, 4, 254, 235, 79, 62, 80, 44, 254, 99, 241, 115, 127, 149, 220, 129, 56, 3, 143, 135, 95, 149, 89, 190, 155, 11, 15, 133, 55, 82, 226, 198, 52, 254, 187, 235, 26, 255, 145, 190, 69, 234, 126, 58, 138, 2, 34, 56, 79, 191, 46, 57, 253, 198, 249, 109, 245, 117, 254, 63, 27, 246, 10, 66, 207, 168, 82, 42, 255, 31, 213, 95, 252, 43, 86, 173, 2, 255, 95, 173, 109, 17, 135, 253, 84, 217, 51, 163, 95, 211, 9, 216, 196, 232, 231, 84, 231, 19, 161, 185, 39, 75, 26, 247, 192, 251, + 60, 172, 200, 162, 120, 252, 116, 180, 186, 220, 252, 150, 247, 60, 144, 111, 25, 192, 177, 112, 79, 60, 14, 1, 148, 90, 252, 98, 0, 93, 57, 151, 67, 111, 95, 201, 21, 95, 223, 92, 10, 246, 245, 22, 22, 112, 106, 180, 121, 201, 200, 35, 126, 178, 68, 165, 87, 184, 37, 17, 99, 227, 245, 100, 82, 2, 44, 7, 146, 247, 145, 145, 131, 204, 95, 31, 18, 224, 141, 206, 193, 248, 171, 59, 127, 248, 47, 119, 36, 220, 38, 35, 109, 185, 131, 64, 207, 37, 126, 194, 97, 25, 246, 102, 130, 5, 180, 98, 247, 183, 235, 152, 1, 116, 13, 251, 149, 173, 127, 154, 241, 74, 200, 84, 247, 139, 101, 180, 23, 161, 70, 112, 35, 209, 137, 196, 68, 93, 124, 231, 112, 66, 173, 70, 132, 106, 17, 74, 154, 164, 107, 246, 36, 202, 204, 254, 248, 44, 44, 191, 62, 125, 255, 173, 130, 215, 127, 206, 247, 223, 34, 39, 88, 60, 104, 32, 30, 135, 124, 95, 120, 190, 149, 224, 79, 77, 81, 98, 10, 118, 187, 189, 4, 243, 85, 2, 243, 17, 250, 126, + 28, 118, 65, 112, 135, 130, 228, 166, 35, 214, 150, 94, 183, 26, 0, 104, 168, 48, 147, 198, 135, 192, 126, 220, 205, 112, 70, 142, 50, 125, 59, 153, 124, 32, 45, 165, 156, 98, 36, 226, 47, 55, 189, 38, 213, 39, 2, 26, 253, 100, 132, 76, 182, 249, 156, 193, 130, 98, 104, 232, 226, 212, 174, 31, 167, 55, 56, 112, 166, 64, 111, 114, 98, 11, 235, 207, 1, 139, 149, 33, 74, 191, 55, 247, 85, 161, 152, 235, 40, 59, 104, 52, 155, 153, 253, 235, 210, 252, 89, 167, 78, 189, 71, 62, 250, 185, 169, 165, 235, 3, 243, 123, 127, 249, 147, 191, 253, 234, 221, 119, 239, 212, 232, 121, 62, 197, 200, 137, 253, 96, 127, 144, 213, 218, 252, 29, 245, 166, 103, 157, 126, 35, 221, 44, 223, 195, 19, 10, 81, 18, 130, 252, 219, 13, 254, 144, 116, 70, 86, 226, 33, 161, 4, 252, 215, 87, 9, 254, 0, 57, 21, 89, 106, 172, 194, 54, 251, 253, 193, 174, 225, 139, 189, 238, 22, 132, 54, 51, 138, 49, 254, 244, 106, 249, 12, 14, 79, 51, 105, 173, + 103, 245, 209, 33, 246, 79, 206, 72, 115, 79, 254, 13, 110, 98, 250, 74, 144, 82, 79, 81, 162, 106, 62, 144, 11, 226, 237, 216, 0, 46, 1, 253, 88, 127, 136, 74, 87, 198, 129, 172, 126, 29, 228, 79, 128, 192, 165, 115, 24, 105, 60, 232, 55, 223, 172, 250, 95, 36, 42, 225, 216, 126, 56, 199, 147, 237, 34, 242, 122, 233, 16, 142, 148, 155, 94, 249, 242, 136, 141, 167, 122, 132, 2, 106, 252, 120, 235, 60, 134, 149, 120, 207, 216, 88, 41, 214, 63, 32, 63, 108, 5, 246, 250, 170, 171, 45, 212, 192, 230, 216, 250, 219, 120, 253, 135, 236, 99, 95, 32, 212, 126, 227, 51, 73, 162, 94, 204, 113, 76, 30, 246, 39, 231, 51, 122, 138, 82, 217, 245, 23, 210, 184, 140, 249, 43, 175, 214, 251, 187, 220, 225, 255, 238, 86, 177, 195, 197, 170, 1, 249, 151, 79, 60, 127, 243, 83, 1, 150, 239, 182, 216, 128, 144, 232, 181, 205, 184, 127, 179, 18, 93, 76, 88, 240, 125, 77, 198, 143, 92, 237, 27, 58, 108, 24, 103, 230, 45, 206, 74, 24, + 217, 42, 68, 115, 233, 229, 213, 10, 45, 95, 8, 210, 117, 130, 65, 107, 255, 3, 92, 79, 63, 157, 190, 122, 210, 84, 107, 58, 87, 240, 122, 19, 139, 103, 25, 107, 89, 4, 30, 116, 144, 119, 176, 191, 159, 27, 75, 116, 52, 53, 135, 226, 89, 133, 233, 7, 252, 212, 245, 145, 233, 243, 251, 122, 240, 255, 177, 245, 52, 206, 96, 200, 243, 239, 145, 145, 133, 80, 143, 227, 117, 179, 113, 158, 177, 218, 224, 227, 73, 103, 179, 166, 31, 128, 252, 203, 95, 47, 98, 247, 155, 252, 143, 223, 47, 57, 65, 229, 237, 25, 252, 37, 6, 56, 42, 63, 58, 13, 224, 191, 19, 17, 228, 23, 78, 210, 223, 165, 191, 103, 254, 138, 92, 5, 247, 218, 77, 128, 205, 193, 61, 195, 225, 216, 187, 9, 40, 231, 128, 162, 255, 244, 67, 118, 63, 182, 210, 209, 111, 105, 199, 252, 197, 200, 139, 228, 92, 206, 195, 163, 209, 209, 209, 138, 7, 230, 211, 251, 193, 139, 157, 78, 43, 139, 121, 25, 239, 95, 109, 146, 196, 244, 103, 77, 223, 43, 134, 254, 204, 236, + 131, 141, 170, 189, 243, 216, 171, 230, 25, 243, 59, 203, 63, 74, 38, 125, 213, 84, 109, 134, 69, 75, 210, 232, 209, 226, 135, 32, 122, 168, 20, 227, 71, 212, 234, 25, 192, 146, 105, 176, 96, 62, 22, 57, 17, 1, 253, 40, 198, 22, 135, 233, 20, 87, 110, 249, 55, 215, 176, 239, 251, 137, 225, 135, 17, 26, 112, 74, 94, 5, 220, 202, 190, 183, 110, 174, 66, 99, 55, 80, 125, 38, 129, 28, 83, 184, 158, 241, 235, 135, 240, 105, 118, 234, 97, 177, 250, 176, 77, 216, 26, 87, 52, 172, 198, 223, 49, 255, 183, 93, 8, 21, 189, 94, 226, 103, 29, 243, 111, 109, 226, 12, 73, 201, 128, 196, 1, 102, 67, 241, 123, 187, 22, 87, 179, 35, 226, 182, 64, 9, 250, 251, 172, 237, 63, 72, 70, 234, 89, 254, 69, 34, 17, 131, 70, 159, 111, 55, 171, 231, 4, 182, 92, 73, 250, 3, 123, 241, 100, 178, 191, 13, 90, 36, 114, 199, 253, 123, 208, 112, 34, 230, 66, 49, 86, 2, 186, 249, 101, 210, 185, 11, 232, 197, 244, 61, 36, 165, 135, 152, + 127, 250, 120, 242, 252, 16, 84, 239, 140, 136, 211, 174, 159, 93, 114, 250, 173, 55, 211, 251, 231, 145, 232, 84, 39, 189, 218, 157, 189, 44, 31, 45, 105, 68, 209, 48, 66, 223, 44, 122, 127, 64, 143, 231, 147, 71, 220, 17, 96, 64, 219, 154, 137, 251, 71, 145, 145, 245, 224, 255, 81, 237, 95, 165, 248, 249, 99, 165, 30, 191, 164, 242, 203, 48, 255, 42, 217, 172, 90, 208, 115, 150, 198, 111, 224, 234, 248, 133, 245, 204, 141, 215, 213, 143, 189, 124, 43, 62, 188, 57, 131, 81, 22, 10, 104, 7, 231, 92, 253, 161, 137, 252, 199, 214, 51, 196, 210, 141, 223, 207, 218, 254, 101, 44, 254, 254, 76, 242, 188, 193, 106, 173, 180, 153, 140, 232, 126, 215, 61, 28, 138, 241, 71, 57, 240, 135, 100, 54, 22, 221, 158, 34, 173, 187, 88, 190, 62, 148, 159, 52, 116, 119, 117, 177, 248, 165, 0, 140, 87, 230, 111, 180, 79, 60, 127, 105, 112, 227, 240, 57, 129, 54, 12, 234, 245, 208, 156, 211, 255, 88, 61, 22, 42, 111, 60, 106, 6, 164, 58, 255, + 178, 145, 44, 110, 243, 150, 164, 191, 223, 30, 191, 164, 175, 133, 249, 3, 61, 80, 76, 194, 19, 14, 179, 227, 39, 147, 190, 116, 42, 19, 241, 166, 229, 119, 89, 61, 199, 38, 28, 205, 66, 120, 73, 96, 230, 235, 187, 117, 123, 182, 115, 2, 22, 88, 188, 97, 13, 66, 109, 75, 159, 95, 196, 236, 161, 115, 247, 12, 219, 81, 46, 247, 202, 244, 229, 249, 55, 213, 248, 131, 77, 170, 188, 43, 185, 254, 2, 246, 196, 217, 100, 191, 234, 174, 88, 214, 80, 219, 180, 179, 10, 137, 212, 116, 228, 165, 49, 132, 254, 155, 137, 197, 35, 52, 105, 241, 24, 224, 95, 189, 28, 29, 14, 119, 81, 249, 162, 94, 48, 7, 245, 151, 253, 76, 127, 238, 237, 157, 60, 255, 103, 218, 191, 7, 246, 192, 141, 215, 234, 21, 229, 191, 175, 27, 193, 31, 53, 84, 67, 155, 179, 186, 250, 17, 86, 127, 186, 70, 163, 151, 199, 227, 102, 245, 103, 50, 172, 158, 44, 236, 159, 113, 67, 81, 238, 7, 143, 35, 52, 237, 124, 2, 118, 189, 225, 223, 191, 158, 140, 4, + 217, 248, 128, 244, 188, 96, 40, 63, 254, 184, 248, 250, 139, 74, 191, 106, 104, 206, 154, 15, 41, 191, 65, 188, 149, 162, 116, 248, 87, 243, 53, 53, 69, 175, 127, 57, 17, 155, 98, 183, 131, 255, 233, 225, 69, 106, 134, 206, 140, 235, 205, 146, 253, 123, 168, 126, 32, 118, 184, 180, 2, 228, 100, 125, 211, 240, 195, 49, 8, 92, 108, 42, 13, 253, 94, 172, 195, 194, 175, 207, 93, 200, 213, 174, 15, 174, 246, 175, 240, 47, 112, 66, 60, 115, 234, 85, 9, 45, 64, 47, 27, 149, 175, 147, 167, 109, 85, 168, 119, 81, 11, 227, 223, 96, 80, 33, 35, 247, 250, 73, 3, 238, 7, 231, 189, 232, 117, 38, 203, 61, 94, 243, 158, 231, 114, 59, 54, 108, 110, 194, 124, 76, 181, 63, 74, 221, 223, 66, 255, 62, 181, 126, 83, 53, 138, 217, 232, 159, 107, 242, 15, 61, 100, 64, 123, 230, 92, 124, 85, 33, 204, 255, 181, 90, 167, 209, 187, 174, 141, 219, 75, 255, 175, 253, 226, 2, 238, 240, 14, 31, 138, 126, 113, 211, 67, 137, 95, 59, 11, 231, + 207, 157, 120, 136, 249, 187, 180, 116, 235, 169, 205, 31, 79, 38, 219, 97, 50, 192, 152, 55, 170, 244, 139, 2, 253, 232, 252, 177, 223, 68, 58, 217, 252, 145, 102, 39, 211, 1, 193, 206, 127, 57, 249, 99, 237, 252, 83, 87, 245, 105, 117, 188, 100, 175, 209, 95, 100, 243, 79, 185, 233, 199, 244, 103, 63, 110, 155, 42, 61, 254, 67, 243, 239, 167, 208, 111, 34, 61, 38, 210, 171, 220, 252, 150, 247, 60, 176, 255, 17, 190, 182, 255, 145, 86, 159, 215, 227, 233, 9, 32, 217, 91, 10, 121, 49, 187, 251, 111, 149, 26, 223, 207, 232, 133, 208, 83, 223, 170, 138, 176, 122, 134, 79, 247, 215, 163, 148, 148, 225, 148, 116, 73, 250, 35, 35, 55, 179, 249, 22, 99, 236, 247, 251, 124, 13, 26, 63, 170, 227, 211, 108, 116, 48, 250, 237, 28, 167, 159, 55, 165, 197, 123, 60, 209, 1, 249, 114, 94, 52, 99, 253, 111, 243, 222, 123, 224, 49, 229, 176, 64, 121, 133, 14, 187, 25, 143, 223, 201, 252, 127, 154, 253, 49, 139, 254, 191, 171, 254, 131, 165, + 241, 71, 57, 106, 13, 92, 60, 199, 9, 78, 206, 127, 166, 228, 254, 3, 211, 147, 27, 88, 189, 60, 6, 228, 139, 211, 127, 158, 245, 205, 156, 153, 147, 255, 169, 42, 188, 145, 225, 175, 1, 63, 74, 184, 214, 41, 178, 242, 218, 165, 226, 191, 152, 202, 127, 222, 134, 137, 242, 47, 95, 95, 116, 95, 173, 183, 35, 211, 86, 238, 241, 58, 169, 252, 187, 126, 255, 55, 152, 63, 192, 127, 90, 170, 249, 3, 226, 13, 157, 184, 63, 30, 227, 28, 158, 230, 96, 243, 85, 254, 51, 104, 254, 43, 136, 103, 105, 189, 58, 126, 157, 100, 208, 197, 242, 27, 149, 152, 2, 225, 196, 211, 238, 111, 5, 126, 112, 248, 156, 135, 91, 9, 245, 43, 81, 46, 113, 174, 248, 252, 192, 242, 103, 82, 90, 248, 90, 233, 223, 23, 200, 187, 103, 146, 10, 139, 191, 127, 255, 212, 41, 210, 247, 85, 63, 111, 214, 242, 23, 60, 158, 224, 224, 234, 131, 28, 191, 7, 33, 54, 161, 72, 25, 180, 189, 191, 99, 56, 241, 230, 171, 102, 117, 117, 19, 61, 89, 110, 126, 203, + 159, 15, 9, 215, 66, 5, 78, 85, 80, 197, 181, 182, 251, 153, 255, 25, 27, 37, 122, 206, 13, 69, 215, 167, 62, 107, 251, 111, 145, 221, 91, 40, 253, 80, 75, 149, 28, 101, 152, 255, 196, 204, 252, 127, 93, 59, 209, 31, 151, 100, 191, 77, 200, 95, 173, 199, 253, 203, 111, 191, 125, 235, 27, 151, 134, 37, 182, 31, 130, 168, 229, 175, 10, 158, 112, 254, 124, 211, 13, 241, 10, 237, 18, 36, 192, 121, 189, 115, 46, 127, 122, 156, 223, 92, 70, 244, 144, 17, 57, 11, 230, 191, 228, 211, 99, 3, 243, 223, 40, 74, 108, 106, 231, 119, 50, 127, 193, 45, 194, 234, 198, 21, 254, 142, 136, 72, 250, 150, 95, 139, 63, 117, 56, 60, 100, 240, 128, 90, 31, 6, 154, 253, 185, 231, 152, 255, 99, 7, 135, 94, 201, 125, 114, 249, 242, 165, 75, 247, 146, 155, 254, 174, 30, 245, 186, 13, 16, 124, 10, 4, 157, 43, 244, 195, 42, 253, 178, 87, 227, 39, 209, 21, 123, 41, 250, 99, 251, 181, 216, 112, 58, 28, 246, 56, 60, 225, 91, 227, 116, 188, + 94, 203, 23, 140, 198, 14, 146, 198, 16, 248, 7, 143, 48, 28, 63, 233, 36, 39, 60, 16, 175, 149, 134, 244, 8, 41, 51, 247, 248, 239, 223, 29, 191, 109, 37, 26, 191, 7, 82, 191, 76, 116, 41, 230, 208, 93, 95, 217, 253, 198, 27, 82, 154, 84, 122, 96, 190, 77, 55, 213, 84, 91, 113, 85, 85, 211, 164, 227, 55, 13, 227, 87, 132, 16, 192, 25, 211, 207, 180, 122, 179, 170, 239, 101, 70, 29, 72, 206, 229, 173, 23, 76, 23, 223, 168, 217, 31, 71, 48, 226, 222, 164, 255, 111, 83, 8, 215, 35, 67, 60, 23, 170, 154, 202, 126, 17, 211, 166, 31, 196, 255, 89, 177, 213, 231, 172, 182, 240, 6, 67, 88, 171, 191, 241, 43, 53, 254, 79, 178, 179, 249, 99, 179, 230, 63, 144, 93, 152, 233, 51, 219, 180, 120, 74, 49, 218, 95, 110, 126, 171, 101, 245, 151, 104, 227, 185, 214, 109, 240, 60, 80, 127, 170, 9, 71, 221, 208, 4, 135, 99, 239, 153, 125, 139, 89, 116, 28, 207, 206, 18, 181, 120, 55, 143, 27, 244, 135, 34, 208, 147, + 233, 75, 103, 147, 237, 53, 53, 53, 247, 189, 255, 254, 125, 53, 181, 31, 44, 230, 152, 246, 98, 110, 27, 67, 209, 77, 37, 247, 159, 176, 249, 74, 173, 87, 102, 116, 56, 4, 55, 105, 92, 48, 190, 222, 204, 2, 166, 10, 203, 187, 249, 28, 142, 178, 124, 159, 110, 112, 75, 143, 251, 227, 114, 60, 138, 186, 144, 104, 43, 245, 253, 87, 172, 220, 199, 226, 213, 178, 8, 61, 110, 64, 1, 171, 249, 136, 228, 201, 86, 34, 180, 250, 239, 41, 207, 167, 126, 90, 244, 122, 211, 249, 243, 87, 163, 182, 222, 135, 2, 144, 17, 54, 237, 241, 239, 12, 1, 63, 221, 204, 248, 233, 86, 144, 231, 243, 65, 159, 149, 44, 22, 174, 162, 210, 209, 92, 242, 250, 122, 108, 63, 128, 179, 201, 37, 28, 199, 209, 225, 203, 87, 108, 232, 128, 248, 191, 177, 143, 77, 78, 132, 172, 81, 140, 198, 227, 55, 181, 112, 42, 122, 127, 55, 141, 239, 223, 147, 129, 130, 112, 51, 238, 127, 176, 150, 229, 211, 209, 143, 241, 222, 102, 71, 201, 227, 93, 139, 78, 191, 202, + 175, 141, 231, 183, 13, 67, 193, 158, 194, 207, 91, 1, 245, 78, 152, 43, 99, 236, 224, 204, 227, 29, 103, 138, 115, 255, 21, 113, 55, 209, 161, 242, 211, 167, 17, 250, 63, 188, 106, 20, 85, 208, 191, 94, 250, 215, 143, 88, 204, 187, 186, 120, 6, 203, 231, 103, 115, 185, 151, 16, 219, 38, 97, 234, 173, 22, 49, 189, 103, 158, 205, 106, 197, 16, 5, 100, 69, 118, 87, 29, 155, 29, 88, 60, 223, 132, 147, 89, 208, 67, 181, 90, 172, 115, 252, 184, 253, 218, 113, 7, 164, 192, 79, 114, 221, 132, 102, 49, 227, 90, 103, 93, 45, 111, 177, 216, 109, 21, 216, 52, 191, 218, 225, 132, 102, 119, 58, 77, 230, 74, 71, 101, 165, 64, 113, 181, 195, 49, 127, 190, 213, 86, 229, 168, 157, 95, 235, 168, 165, 71, 171, 157, 46, 250, 175, 117, 190, 213, 81, 141, 29, 14, 155, 195, 110, 115, 56, 172, 22, 187, 121, 33, 237, 212, 49, 207, 62, 207, 81, 89, 83, 89, 105, 159, 103, 158, 87, 117, 125, 87, 185, 207, 121, 251, 255, 155, 255, 84, 91 +}; diff --git a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft_data.h b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft_data.h index fe01be7..9a44458 100644 --- a/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft_data.h +++ b/examples/EVE_Test_XMEGA128A1_GEN4-FT813-50CTP/Display_Test1/tft_data.h @@ -12,6 +12,6 @@ extern const uint8_t logo[239] PROGMEM; extern const uint8_t pic[3844] PROGMEM; -extern const uint8_t flash[12753] PROGMEM; +extern const uint8_t flash[8199] PROGMEM; #endif /* TFT_DATA_H */ \ No newline at end of file diff --git a/examples/README.md b/examples/README.md index 79b3449..427b1ce 100644 --- a/examples/README.md +++ b/examples/README.md @@ -3,24 +3,24 @@ ## Examples using PlatformIO -PlatformIO ( https://platformio.org/ ) is a multi-plattform build system for 1000+ boards and dev-kits supporting 20+ frameworks. +PlatformIO ( https://platformio.org/ ) is a multi-plattform build system for 1000+ boards and dev-kits supporting 20+ frameworks. PlatformIO is available as an extension for VSCode ( https://code.visualstudio.com/ ). -The configuration of the PlatformIO examples is done thru the file "platformio.ini". +The configuration of the PlatformIO examples is done thru the file "platformio.ini". +All examples use these four files and these are identical for all examples: +tft.h - makes TFT_init(), TFT_touch(), TFT_display(), num_profile_a and num_profile_b from tft.c available +tft_data.h - makes the arrays logo[], pic[] and flash[] from tft_data.c available +tft.c +TFT_init() - this initializes the EVE chip, writes calibration values, uploads images and builds a display-list fragment +TFT_touch() - this polls the EVE chip for touch events and processes them, meant to be called every 5ms +TFT_display() - this builds the display list and either sends it to the EVE chip directly or triggers DMA transfer, meant to be called every 20ms -All examples use these four files and these are identical for all examples: -tft.h - makes TFT_init(), TFT_touch(), TFT_display(), num_profile_a and num_profile_b from tft.c available -tft_data.h - makes the arrays logo[], pic[] and flash[] from tft_data.c available -tft.c - TFT_init() - this initializes the EVE chip, writes calibration values, uploads images and builds a display-list fragment - TFT_touch() - this polls the EVE chip for touch events and processes them, meant to be called every 5ms - TFT_display() - this builds the display list and either sends it to the EVE chip directly or triggers DMA transfer, meant to be called every 20ms -tft_data.c - logo[239] - my "logo", displayed in the top right, 56x56 pixel, ARGB1555 format and zlib compressed - pic[3844] - a test-image, 100x100 pixel, .jpg format - flash[12753] - a zlib compressed flash-container to be used with BT81x modules, it contains a glyph-reduced UTF-8 font +tft_data.c +logo[239] - my "logo", displayed in the top right, 56x56 pixel, ARGB1555 format and zlib compressed +pic[3844] - a test-image, 100x100 pixel, .jpg format +flash[8199] - a zlib compressed flash-container to be used with BT81x modules, it contains a glyph-reduced UTF-8 font -The library code itself is downloaded from my Github repository by PlatformIO. +The library code itself is downloaded from my Github repository by PlatformIO. ## EVE_Test_Arduino_PlatformIO @@ -42,6 +42,9 @@ This is an example for Arduino and it builds for a number of different boards: |bbcmicrobit_v2|SUCCESS| |teensy35|SUCCESS| |xmc1100_xmc2go|SUCCESS| +|pico|SUCCESS| +|wizio-pico|SUCCESS| + These all share a single "EVE_Test.cpp" which contains the setup() and loop() functions. @@ -51,20 +54,20 @@ This has a "main.c" for ESP32 ESP-IDF. ## EVE_Test_SAMC21_DMA_EVE3-50G_Dev_PlatformIO -This has a "main.c" for an ATSAMC21 controller from Microchip. -This is Bare-Metal with ARM CMSIS for SysTick. -I am using a fork ( https://github.com/glingy/platform-atmelsam/tree/feat-cmsis-build-2 ) of platform-atmelsam to which I added my board files since the main repository "only" supports Arduino, Mbed, Simba and Zephyr and requests to add CMSIS supports are mostly ignored, therefore it does not allow bare-metal programming. +This has a "main.c" for an ATSAMC21 controller from Microchip. +This is Bare-Metal with ARM CMSIS for SysTick. +I am using a fork ( https://github.com/glingy/platform-atmelsam/tree/feat-cmsis-build-2 ) of platform-atmelsam to which I added my board files since the main repository "only" supports Arduino and Zephyr and requests to add CMSIS support are mostly ignored, therefore it does not allow bare-metal programming. ## EVE_Test_SAME51_DMA_EVE3-50G_Dev_PlatformIO -This has a "main.c" for an ATSAME51 controller from Microchip. -This is Bare-Metal with ARM CMSIS for SysTick. -I am using a fork ( https://github.com/glingy/platform-atmelsam/tree/feat-cmsis-build-2 ) of platform-atmelsam to which I added my board files since the main repository "only" supports Arduino, Mbed, Simba and Zephyr and requests to add CMSIS supports are mostly ignored, therefore it does not allow bare-metal programming. +This has a "main.c" for an ATSAME51 controller from Microchip. +This is Bare-Metal with ARM CMSIS for SysTick. +I am using a fork ( https://github.com/glingy/platform-atmelsam/tree/feat-cmsis-build-2 ) of platform-atmelsam to which I added my board files since the main repository "only" supports Arduino and Zephyr and requests to add CMSIS support are mostly ignored, therefore it does not allow bare-metal programming. ## EVE_Test_STM32_RiTFT50_PlatformIO -This is a non-functional example. -It builds for several STM32 across almost all families: +This is a non-functional example. +It builds for several STM32 across almost all families: |Environment|Status| |---|---| @@ -78,16 +81,16 @@ It builds for several STM32 across almost all families: |nucleo_f439zi|SUCCESS| |nucleo_h743zi|SUCCESS| -These all share a single "main.c" with the functions SysTick_Handler() and main(). -It builds the complete EVE code including hardware agnostic SPI functions due to use -of the STM32 HAL library in EVE_target.h. +These all share a single "main.c" with the functions SysTick_Handler() and main(). +It builds the complete EVE code including hardware specific SPI functions due to use +of the STM32 HAL library in EVE_target.h. But it does not initialize any of the controllers, not the clock, not the pins, not the SPI. ## Examples using Microchip Studio -Microchip Studio, formerly known as Atmel Studio, is an IDE based on Visual Studio. -The board specific settings are set as global defines in the project properties: +Microchip Studio, formerly known as Atmel Studio, is an IDE based on Visual Studio. +The board specific settings are set as global defines in the project properties: Toolchain/Compiler/Symbols/Defined Symbols These examples have a copy of the library in a folder "EmbeddedVideoEngine".