diff options
author | Joel Bodenmann <joel@unormal.org> | 2013-07-14 20:02:28 +0200 |
---|---|---|
committer | Joel Bodenmann <joel@unormal.org> | 2013-07-14 20:02:28 +0200 |
commit | 38a2a44b3d27ca29019cd0d75e60233ee9188c71 (patch) | |
tree | 6cd0e65ba5ce5b0884d5cd4085795e347b5fa509 /demos/modules/gwin | |
parent | b7e6967886a25277af53e04ce6942b715b538644 (diff) | |
parent | c5ec72027787c9cd5f5b36a46eb55f03fd95d894 (diff) | |
download | uGFX-38a2a44b3d27ca29019cd0d75e60233ee9188c71.tar.gz uGFX-38a2a44b3d27ca29019cd0d75e60233ee9188c71.tar.bz2 uGFX-38a2a44b3d27ca29019cd0d75e60233ee9188c71.zip |
Merge branch 'GWIN'
Diffstat (limited to 'demos/modules/gwin')
-rw-r--r-- | demos/modules/gwin/basic/main.c | 14 | ||||
-rw-r--r-- | demos/modules/gwin/console/main.c | 41 | ||||
-rw-r--r-- | demos/modules/gwin/slider/main.c | 97 | ||||
-rw-r--r-- | demos/modules/gwin/slider/result_647x490.png | bin | 24141 -> 0 bytes | |||
-rw-r--r-- | demos/modules/gwin/widgets/gfxconf.h (renamed from demos/modules/gwin/slider/gfxconf.h) | 24 | ||||
-rw-r--r-- | demos/modules/gwin/widgets/image_chibios.h | 637 | ||||
-rw-r--r-- | demos/modules/gwin/widgets/main.c | 338 | ||||
-rw-r--r-- | demos/modules/gwin/widgets/readme.txt (renamed from demos/modules/gwin/slider/readme.txt) | 4 |
8 files changed, 1026 insertions, 129 deletions
diff --git a/demos/modules/gwin/basic/main.c b/demos/modules/gwin/basic/main.c index 5dc1bab7..c46e6969 100644 --- a/demos/modules/gwin/basic/main.c +++ b/demos/modules/gwin/basic/main.c @@ -40,8 +40,14 @@ int main(void) { gdispClear(Lime); /* Create two windows */ - GW1 = gwinCreateWindow(NULL, 20, 10, 200, 150); - GW2 = gwinCreateWindow(NULL, 50, 190, 150, 100); + { + GWindowInit wi; + + wi.show = TRUE; wi.x = 20; wi.y = 10; wi.width = 200; wi.height = 150; + GW1 = gwinWindowCreate(NULL, &wi); + wi.show = TRUE; wi.x = 50; wi.y = 190; wi.width = 150; wi.height = 100; + GW2 = gwinWindowCreate(NULL, &wi); + } /* Set fore- and background colors for both windows */ gwinSetColor(GW1, Black); @@ -53,9 +59,9 @@ int main(void) { gwinClear(GW1); gwinClear(GW2); - gwinDrawLine (GW1, 5, 30, 150, 110); + gwinDrawLine(GW1, 5, 30, 150, 110); for(i=5, j=0; i < 200 && j < 150; i+=3, j+=i/20) - gwinDrawPixel (GW1, i, j); + gwinDrawPixel(GW1, i, j); /* * Draw two filled circles at the same coordinate diff --git a/demos/modules/gwin/console/main.c b/demos/modules/gwin/console/main.c index aa3de40d..197a8ad6 100644 --- a/demos/modules/gwin/console/main.c +++ b/demos/modules/gwin/console/main.c @@ -28,27 +28,37 @@ */ #include "gfx.h" -#include "chprintf.h" /* The handles for our three consoles */ GHandle GW1, GW2, GW3; -/* The streams for our three consoles */ -BaseSequentialStream *S1, *S2, *S3; - int main(void) { uint8_t i; font_t font1, font2; /* initialize and clear the display */ gfxInit(); - font1 = gdispOpenFont("UI2 Double"); - font2 = gdispOpenFont("Small"); - /* create the three console windows and set a font for each */ - GW1 = gwinCreateConsole(NULL, 0, 0, gdispGetWidth(), gdispGetHeight()/2, font1); - GW2 = gwinCreateConsole(NULL, 0, gdispGetHeight()/2, gdispGetWidth()/2, gdispGetHeight(), font2); - GW3 = gwinCreateConsole(NULL, gdispGetWidth()/2, gdispGetHeight()/2, gdispGetWidth(), gdispGetHeight(), font2); + /* Set some fonts */ + font1 = gdispOpenFont("Small"); + font2 = gdispOpenFont("UI2 Double"); + gwinSetDefaultFont(font1); + + /* create the three console windows */ + { + GWindowInit wi; + + wi.show = TRUE; + wi.x = 0; wi.y = 0; wi.width = gdispGetWidth(); wi.height = gdispGetHeight()/2; + GW1 = gwinConsoleCreate(NULL, &wi); + wi.y = gdispGetHeight()/2; wi.width = gdispGetWidth()/2; wi.height = gdispGetHeight(); + GW2 = gwinConsoleCreate(NULL, &wi); + wi.x = gdispGetWidth()/2; wi.height = gdispGetHeight(); + GW3 = gwinConsoleCreate(NULL, &wi); + } + + /* Use a special font for GW1 */ + gwinSetFont(GW1, font2); /* Set the fore- and background colors for each console */ gwinSetColor(GW1, Green); @@ -63,24 +73,19 @@ int main(void) { gwinClear(GW2); gwinClear(GW3); - /* receive the stream pointers of each console */ - S1 = gwinGetConsoleStream(GW1); - S2 = gwinGetConsoleStream(GW2); - S3 = gwinGetConsoleStream(GW3); - /* Output some data on the first console */ for(i = 0; i < 10; i++) { - chprintf(S1, "Hello ChibiOS/GFX!\r\n"); + gwinPrintf(GW1, "Hello ChibiOS/GFX!\r\n"); } /* Output some data on the second console */ for(i = 0; i < 16; i++) { - chprintf(S2, "Message Nr.: %d\r\n", i+1); + gwinPrintf(GW2, "Message Nr.: %d\r\n", i+1); } /* Output some data on the third console */ for(i = 0; i < 18; i++) { - chprintf(S3, "Message Nr.: %d\r\n", i+1); + gwinPrintf(GW3, "Message Nr.: %d\r\n", i+1); } while(TRUE) { diff --git a/demos/modules/gwin/slider/main.c b/demos/modules/gwin/slider/main.c deleted file mode 100644 index 15dc3e26..00000000 --- a/demos/modules/gwin/slider/main.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2012, 2013, Joel Bodenmann aka Tectu <joel@unormal.org> - * Copyright (c) 2012, 2013, Andrew Hannam aka inmarket - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the <organization> nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "gfx.h" -#include "chprintf.h" - -static GListener gl; - -#define SLIDER_WIDTH 20 - -int main(void) { - coord_t swidth, sheight; - GHandle ghSliderH, ghSliderV, ghConsole; - font_t fui2; - GEvent * pe; - GEventGWinSlider * pSliderEvent; - BaseSequentialStream *consout; - - gfxInit(); // Initialize the display - - // Get the display dimensions - swidth = gdispGetWidth(); - sheight = gdispGetHeight(); - - // Get the font - fui2 = gdispOpenFont("UI2"); - - // Create out gwin windows/widgets - ghSliderH = gwinCreateSlider(NULL, 5, 5, swidth-10, SLIDER_WIDTH); - ghSliderV = gwinCreateSlider(NULL, 5, 10+SLIDER_WIDTH, SLIDER_WIDTH, sheight-15+SLIDER_WIDTH); - ghConsole = gwinCreateConsole(NULL, 10+SLIDER_WIDTH, 10+SLIDER_WIDTH, swidth-15-SLIDER_WIDTH, sheight-15-SLIDER_WIDTH, fui2); - consout = gwinGetConsoleStream(ghConsole); - - // Color up the console window - gwinSetColor(ghConsole, White); - gwinSetBgColor(ghConsole, Blue); - - // Assign the mouse and dials to the sliders. -#if GINPUT_NEED_MOUSE - gwinAttachSliderMouse(ghSliderH, 0); - gwinAttachSliderMouse(ghSliderV, 0); -#endif -#if GINPUT_NEED_DIAL - gwinAttachSliderDial(ghSliderV, 0); - gwinAttachSliderDial(ghSliderH, 1); -#endif - - // We want to listen for slider events - geventListenerInit(&gl); - geventAttachSource(&gl, gwinGetSliderSource(ghSliderH), 0); - geventAttachSource(&gl, gwinGetSliderSource(ghSliderV), 0); - - // Draw everything on the screen - gwinClear(ghConsole); - gwinSliderDraw(ghSliderH); - gwinSliderDraw(ghSliderV); - - while(1) { - // Get an Event - pe = geventEventWait(&gl, TIME_INFINITE); - - switch(pe->type) { - case GEVENT_GWIN_SLIDER: - pSliderEvent = (GEventGWinSlider *)pe; - chprintf(consout, "%c=%d\n", pSliderEvent->slider == ghSliderH ? 'H' : 'V', pSliderEvent->position); - break; - } - } - - return 0; -} diff --git a/demos/modules/gwin/slider/result_647x490.png b/demos/modules/gwin/slider/result_647x490.png Binary files differdeleted file mode 100644 index c7b12a93..00000000 --- a/demos/modules/gwin/slider/result_647x490.png +++ /dev/null diff --git a/demos/modules/gwin/slider/gfxconf.h b/demos/modules/gwin/widgets/gfxconf.h index b7b39a3f..1665047c 100644 --- a/demos/modules/gwin/slider/gfxconf.h +++ b/demos/modules/gwin/widgets/gfxconf.h @@ -1,7 +1,6 @@ /* * Copyright (c) 2012, 2013, Joel Bodenmann aka Tectu <joel@unormal.org> * Copyright (c) 2012, 2013, Andrew Hannam aka inmarket - * * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -30,10 +29,9 @@ #ifndef _GFXCONF_H #define _GFXCONF_H -/* The operating system to use - one of these must be defined */ #define GFX_USE_OS_CHIBIOS TRUE -#define GFX_USE_OS_WIN32 FALSE -#define GFX_USE_OS_POSIX FALSE +//#define GFX_USE_OS_WIN32 TRUE +//#define GFX_USE_OS_POSIX TRUE /* GFX sub-systems to turn on */ #define GFX_USE_GDISP TRUE @@ -46,14 +44,14 @@ #define GDISP_NEED_VALIDATION TRUE #define GDISP_NEED_CLIP TRUE #define GDISP_NEED_TEXT TRUE -#define GDISP_NEED_CIRCLE FALSE +#define GDISP_NEED_CIRCLE TRUE #define GDISP_NEED_ELLIPSE FALSE #define GDISP_NEED_ARC FALSE #define GDISP_NEED_CONVEX_POLYGON FALSE #define GDISP_NEED_SCROLL FALSE #define GDISP_NEED_PIXELREAD FALSE #define GDISP_NEED_CONTROL FALSE -#define GDISP_NEED_IMAGE FALSE +#define GDISP_NEED_IMAGE TRUE #define GDISP_NEED_MULTITHREAD TRUE #define GDISP_NEED_ASYNC FALSE #define GDISP_NEED_MSGAPI FALSE @@ -67,18 +65,26 @@ /* GDISP image decoders */ #define GDISP_NEED_IMAGE_NATIVE FALSE -#define GDISP_NEED_IMAGE_GIF FALSE +#define GDISP_NEED_IMAGE_GIF TRUE #define GDISP_NEED_IMAGE_BMP FALSE #define GDISP_NEED_IMAGE_JPG FALSE #define GDISP_NEED_IMAGE_PNG FALSE /* Features for the GWIN sub-system. */ -#define GWIN_NEED_BUTTON FALSE +#define GWIN_NEED_WINDOWMANAGER TRUE #define GWIN_NEED_CONSOLE TRUE +#define GWIN_NEED_GRAPH TRUE +#define GWIN_NEED_WIDGET TRUE +#define GWIN_NEED_BUTTON TRUE #define GWIN_NEED_SLIDER TRUE +#define GWIN_NEED_CHECKBOX TRUE +#define GWIN_NEED_LABEL TRUE +#define GWIN_NEED_IMAGE TRUE +#define GWIN_NEED_RADIO TRUE /* Features for the GINPUT sub-system. */ #define GINPUT_NEED_MOUSE TRUE -#define GINPUT_NEED_DIAL TRUE +#define GINPUT_NEED_TOGGLE FALSE +#define GINPUT_NEED_DIAL FALSE #endif /* _GFXCONF_H */ diff --git a/demos/modules/gwin/widgets/image_chibios.h b/demos/modules/gwin/widgets/image_chibios.h new file mode 100644 index 00000000..a052395f --- /dev/null +++ b/demos/modules/gwin/widgets/image_chibios.h @@ -0,0 +1,637 @@ +static const unsigned char image_chibios[] = { + 0x47, 0x49, 0x46, 0x38, 0x37, 0x61, 0x74, 0x00, 0x74, 0x00, 0xE7, 0xFE, 0x00, 0x08, 0x07, 0x02, + 0x00, 0x0A, 0x03, 0x08, 0x07, 0x0E, 0x05, 0x0D, 0x00, 0x00, 0x11, 0x02, 0x03, 0x16, 0x01, 0x09, + 0x15, 0x00, 0x00, 0x19, 0x03, 0x14, 0x16, 0x06, 0x00, 0x1D, 0x02, 0x07, 0x1C, 0x01, 0x0F, 0x1A, + 0x01, 0x2D, 0x12, 0x0F, 0x09, 0x1F, 0x00, 0x1F, 0x18, 0x10, 0x03, 0x22, 0x02, 0x10, 0x1F, 0x00, + 0x19, 0x1B, 0x1E, 0x01, 0x26, 0x00, 0x1C, 0x1D, 0x0B, 0x18, 0x21, 0x04, 0x17, 0x20, 0x13, 0x12, + 0x24, 0x00, 0x0B, 0x26, 0x01, 0x0A, 0x22, 0x2F, 0x17, 0x22, 0x0E, 0x02, 0x2C, 0x00, 0x0A, 0x2B, + 0x00, 0x3B, 0x1A, 0x1A, 0x14, 0x27, 0x0D, 0x11, 0x2A, 0x00, 0x17, 0x2A, 0x06, 0x00, 0x33, 0x00, + 0x08, 0x31, 0x00, 0x12, 0x30, 0x00, 0x21, 0x2A, 0x11, 0x23, 0x27, 0x2C, 0x0E, 0x32, 0x0A, 0x1D, + 0x2F, 0x01, 0x0D, 0x35, 0x05, 0x07, 0x38, 0x00, 0x18, 0x32, 0x0C, 0x24, 0x2D, 0x1B, 0x2D, 0x2A, + 0x21, 0x10, 0x36, 0x00, 0x1F, 0x31, 0x12, 0x18, 0x35, 0x00, 0x16, 0x35, 0x06, 0x20, 0x33, 0x0D, + 0x20, 0x32, 0x19, 0x0D, 0x3D, 0x06, 0x15, 0x3B, 0x05, 0x10, 0x3D, 0x00, 0x06, 0x40, 0x00, 0x23, + 0x34, 0x3B, 0x1F, 0x3B, 0x0E, 0x2C, 0x36, 0x1A, 0x49, 0x2D, 0x22, 0x3F, 0x31, 0x1F, 0x1F, 0x3D, + 0x08, 0x1B, 0x3F, 0x01, 0x15, 0x41, 0x03, 0x21, 0x3E, 0x02, 0x12, 0x43, 0x00, 0x1A, 0x40, 0x0B, + 0x28, 0x3B, 0x16, 0x29, 0x3C, 0x10, 0x2F, 0x38, 0x2C, 0x22, 0x3E, 0x17, 0x2F, 0x39, 0x25, 0x29, + 0x3C, 0x1F, 0x38, 0x37, 0x3A, 0x11, 0x48, 0x08, 0x14, 0x48, 0x00, 0x0C, 0x4B, 0x03, 0x1A, 0x47, + 0x09, 0x1D, 0x47, 0x01, 0x23, 0x46, 0x12, 0x12, 0x4E, 0x00, 0x1B, 0x4C, 0x00, 0x25, 0x48, 0x0B, + 0x1A, 0x4D, 0x05, 0x1F, 0x4C, 0x0E, 0x22, 0x4C, 0x06, 0x33, 0x46, 0x1A, 0x2E, 0x47, 0x21, 0x0D, + 0x54, 0x02, 0x37, 0x43, 0x2F, 0x2A, 0x4C, 0x06, 0x39, 0x44, 0x2A, 0x18, 0x52, 0x01, 0x17, 0x53, + 0x0B, 0x31, 0x4A, 0x1D, 0x20, 0x52, 0x0B, 0x38, 0x48, 0x28, 0x34, 0x49, 0x2E, 0x1B, 0x55, 0x04, + 0x16, 0x58, 0x00, 0x25, 0x52, 0x14, 0x25, 0x54, 0x04, 0x14, 0x59, 0x07, 0x1F, 0x57, 0x00, 0x29, + 0x53, 0x0E, 0x2F, 0x51, 0x15, 0x3C, 0x49, 0x41, 0x1F, 0x58, 0x07, 0x2F, 0x51, 0x1E, 0x25, 0x57, + 0x10, 0x1C, 0x5C, 0x01, 0x13, 0x60, 0x03, 0x44, 0x4C, 0x3A, 0x1B, 0x5D, 0x0D, 0x47, 0x4A, 0x4D, + 0x5A, 0x47, 0x3C, 0x24, 0x5C, 0x0D, 0x27, 0x5D, 0x03, 0x20, 0x60, 0x05, 0x1B, 0x64, 0x00, 0x1A, + 0x64, 0x09, 0x3E, 0x51, 0x5D, 0x25, 0x62, 0x00, 0x2F, 0x5D, 0x18, 0x41, 0x55, 0x36, 0x42, 0x52, + 0x52, 0x31, 0x5E, 0x10, 0x32, 0x5C, 0x21, 0x24, 0x63, 0x0A, 0x40, 0x5B, 0x19, 0x2C, 0x63, 0x15, + 0x3C, 0x5E, 0x1A, 0x4C, 0x56, 0x3C, 0x19, 0x6B, 0x05, 0x4D, 0x56, 0x43, 0x1F, 0x69, 0x0F, 0x24, + 0x6A, 0x05, 0x7D, 0x49, 0x47, 0x51, 0x59, 0x33, 0x4C, 0x58, 0x4F, 0x2D, 0x6A, 0x06, 0x5B, 0x55, + 0x52, 0x2C, 0x6A, 0x12, 0x44, 0x61, 0x2C, 0x23, 0x70, 0x00, 0x20, 0x71, 0x0D, 0x34, 0x6A, 0x18, + 0x3B, 0x68, 0x19, 0x2A, 0x6F, 0x0D, 0x3D, 0x69, 0x25, 0x44, 0x68, 0x2B, 0x20, 0x79, 0x0A, 0x2A, + 0x77, 0x09, 0x30, 0x75, 0x14, 0x58, 0x64, 0x48, 0x4F, 0x68, 0x42, 0x34, 0x77, 0x0A, 0x55, 0x64, + 0x67, 0x3B, 0x73, 0x1F, 0x3A, 0x75, 0x15, 0x53, 0x68, 0x4D, 0x5C, 0x65, 0x5C, 0x61, 0x66, 0x54, + 0x49, 0x72, 0x30, 0x2D, 0x7F, 0x05, 0x2D, 0x7E, 0x12, 0x4A, 0x77, 0x29, 0x58, 0x72, 0x4A, 0x3D, + 0x81, 0x22, 0x48, 0x80, 0x2A, 0x62, 0x74, 0x5A, 0x61, 0x75, 0x6D, 0x6C, 0x73, 0x62, 0x5F, 0x75, + 0x76, 0x55, 0x7F, 0x3C, 0x6E, 0x73, 0x6D, 0x72, 0x75, 0x7C, 0x56, 0x8D, 0x2F, 0x46, 0x92, 0x30, + 0x54, 0x8D, 0x3B, 0x62, 0x89, 0x3F, 0x7A, 0x81, 0x73, 0x7B, 0x82, 0x6C, 0x6F, 0x89, 0x5D, 0x76, + 0x86, 0x6B, 0x76, 0x85, 0x89, 0x69, 0x8F, 0x50, 0x7C, 0x87, 0x82, 0x6E, 0x95, 0x4C, 0x82, 0x93, + 0x8D, 0x7B, 0x96, 0x84, 0x8C, 0x92, 0x7C, 0x67, 0xA2, 0x4F, 0x8B, 0x93, 0x84, 0x81, 0x96, 0x9B, + 0x87, 0x98, 0x79, 0x8D, 0x93, 0x99, 0x91, 0xA5, 0x84, 0x90, 0xA3, 0x9C, 0xA1, 0x9F, 0x95, 0x89, + 0xAB, 0x6D, 0x9B, 0xA4, 0x96, 0x91, 0xA7, 0xA6, 0x8F, 0xA8, 0xB0, 0xA2, 0xA7, 0x91, 0xA0, 0xA6, + 0xB1, 0xAA, 0xB1, 0xA1, 0x9F, 0xB7, 0xA7, 0xA6, 0xB4, 0xBB, 0xA2, 0xB8, 0xB0, 0x9C, 0xB9, 0xBE, + 0xA8, 0xB9, 0x9B, 0xB2, 0xB7, 0x9D, 0xBC, 0xB7, 0xB5, 0xC2, 0xC0, 0xA5, 0xAD, 0xC7, 0xC4, 0xA4, + 0xC9, 0xD5, 0xC1, 0xC4, 0xB7, 0xBD, 0xC7, 0xB3, 0xAB, 0xCA, 0xCD, 0xB7, 0xCC, 0xB2, 0xBD, 0xCB, + 0xD5, 0xC9, 0xCD, 0xCB, 0xC8, 0xD3, 0xAD, 0xBB, 0xD6, 0xD2, 0xAF, 0xDC, 0xE4, 0xBE, 0xD9, 0xE2, + 0xC7, 0xDA, 0xC1, 0xD3, 0xD6, 0xC8, 0xD0, 0xDA, 0xC5, 0xCA, 0xD9, 0xE6, 0xDE, 0xDD, 0xC0, 0xD6, + 0xE5, 0xDF, 0xD9, 0xE5, 0xF2, 0xDF, 0xEA, 0xD3, 0xC5, 0xEF, 0xF4, 0xDC, 0xEA, 0xEA, 0xE7, 0xE9, + 0xD9, 0xD3, 0xED, 0xF5, 0xEA, 0xE8, 0xEC, 0xEB, 0xEC, 0xE9, 0xE6, 0xF2, 0xFC, 0xF6, 0xF4, 0xEB, + 0xF0, 0xFA, 0xDA, 0xEC, 0xFB, 0xFB, 0xFA, 0xF7, 0xFC, 0xF2, 0xFC, 0xE3, 0xF7, 0xF9, 0xF5, 0xF3, + 0xFE, 0xEB, 0xFF, 0xFB, 0xFA, 0xFA, 0xFE, 0xEC, 0xFB, 0xFD, 0xF9, 0xF5, 0xFF, 0xFA, 0xF8, 0xFF, + 0xF4, 0xF9, 0xFE, 0xFF, 0xFF, 0xFE, 0xF5, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0xFC, 0x2C, 0x00, 0x00, + 0x00, 0x00, 0x74, 0x00, 0x74, 0x00, 0x00, 0x08, 0xFE, 0x00, 0xFF, 0xFD, 0xF3, 0xE7, 0x4F, 0xA0, + 0x40, 0x82, 0xFE, 0xF8, 0xC9, 0x93, 0xF7, 0xEF, 0x5E, 0xC1, 0x7C, 0xFC, 0xFE, 0xE9, 0x3B, 0x88, + 0xB0, 0x5F, 0xBF, 0x81, 0x06, 0x33, 0x6A, 0xDC, 0x48, 0x11, 0x21, 0xC7, 0x8C, 0x08, 0x43, 0x8A, + 0x2C, 0xD8, 0x51, 0xE4, 0xC7, 0x93, 0x1C, 0x23, 0x7A, 0xA4, 0xF8, 0x8F, 0x9F, 0xCB, 0x86, 0x04, + 0xF9, 0x4D, 0xFC, 0x57, 0x6F, 0xE0, 0x4A, 0x94, 0x38, 0x73, 0x6A, 0x2C, 0x48, 0xD2, 0x60, 0x48, + 0x90, 0x23, 0x7B, 0xEA, 0x44, 0xF9, 0x53, 0x60, 0x3E, 0x81, 0xFC, 0xF2, 0xDD, 0x73, 0xE8, 0xEF, + 0xDE, 0x3F, 0x8B, 0x30, 0x85, 0x0E, 0xD5, 0x18, 0x91, 0xE3, 0xC8, 0xA9, 0x58, 0xB3, 0x66, 0x9C, + 0x68, 0xF2, 0x68, 0xD4, 0xA5, 0x4E, 0x9F, 0xDA, 0xB3, 0xD7, 0x8F, 0x69, 0x55, 0xAD, 0x27, 0x83, + 0x4A, 0x35, 0xE8, 0xF2, 0x2C, 0xDA, 0xB7, 0x25, 0x0D, 0x2E, 0x6D, 0x9A, 0x11, 0xDF, 0xB8, 0x6E, + 0xE8, 0x2E, 0xC6, 0x3C, 0x08, 0xF7, 0x23, 0xC9, 0x97, 0x7D, 0xAD, 0xAE, 0xD5, 0x4A, 0xD0, 0x60, + 0xCD, 0x7C, 0x47, 0xBD, 0x62, 0x33, 0x02, 0xC1, 0xC3, 0x0D, 0x6D, 0x17, 0x5B, 0xFA, 0x1C, 0x9C, + 0xF6, 0x66, 0x60, 0xAC, 0x85, 0x2F, 0x03, 0x7E, 0x6A, 0x71, 0x9F, 0xBE, 0xCF, 0x05, 0x44, 0xF4, + 0xE8, 0x21, 0xC2, 0xC2, 0x38, 0xB6, 0x72, 0x29, 0x6F, 0xBC, 0xBA, 0xDA, 0xB2, 0xE0, 0xAB, 0xAA, + 0xFB, 0x66, 0x6E, 0x59, 0xB5, 0x9F, 0x8A, 0x01, 0x04, 0x3A, 0x64, 0xD9, 0x37, 0xAB, 0xC1, 0x24, + 0x48, 0x63, 0xCC, 0x5C, 0xC0, 0xC1, 0x57, 0xE0, 0xDC, 0xA1, 0x57, 0x37, 0xDB, 0x9C, 0x8D, 0xF4, + 0xAC, 0xDA, 0xA2, 0x97, 0x81, 0xB2, 0xAD, 0xEA, 0xA6, 0xC1, 0x0E, 0x1E, 0x40, 0x0E, 0x60, 0xFA, + 0x95, 0x22, 0xD4, 0x2B, 0x48, 0x7C, 0x76, 0xFE, 0x28, 0xD8, 0x67, 0xD3, 0x28, 0x73, 0x83, 0x89, + 0x77, 0x86, 0x8C, 0xE8, 0x36, 0xE3, 0x3E, 0x7C, 0xFB, 0x3C, 0xD3, 0x6E, 0x5B, 0xF5, 0x28, 0x41, + 0xA6, 0x09, 0x41, 0x1E, 0xAD, 0xF9, 0x76, 0x76, 0x55, 0x7C, 0x10, 0x9C, 0xD1, 0x85, 0x16, 0x5D, + 0xB0, 0xF0, 0x81, 0x36, 0x05, 0xC8, 0x72, 0xCA, 0x2B, 0x7C, 0xB8, 0xD0, 0xC0, 0x45, 0x4E, 0x79, + 0xE5, 0xD5, 0x49, 0x12, 0x7A, 0x55, 0x9F, 0x40, 0x13, 0xF5, 0x13, 0xDF, 0x38, 0xCC, 0xD8, 0x12, + 0x04, 0x11, 0x29, 0x5C, 0x90, 0x80, 0x02, 0x31, 0x5C, 0x81, 0xC6, 0x27, 0xC7, 0x88, 0xB3, 0x8F, + 0x86, 0x91, 0xFD, 0xB3, 0x9F, 0x57, 0xCC, 0x4D, 0x98, 0x95, 0x54, 0x05, 0x81, 0xD2, 0x00, 0x29, + 0x8A, 0x28, 0x52, 0x46, 0x1E, 0x1E, 0xE0, 0x33, 0x82, 0x0F, 0xA4, 0x8C, 0x31, 0xC5, 0x0D, 0x0B, + 0x90, 0x07, 0x15, 0x44, 0xED, 0x65, 0x74, 0x18, 0x47, 0xFA, 0x68, 0x68, 0xCF, 0x38, 0x98, 0xE0, + 0x10, 0x44, 0x03, 0x0F, 0xA4, 0x20, 0xC2, 0x03, 0x12, 0x84, 0xC0, 0xC2, 0x0C, 0x40, 0x9C, 0x70, + 0xC2, 0x0B, 0x25, 0x5C, 0x70, 0x40, 0x01, 0x0D, 0xE8, 0x86, 0x09, 0x36, 0x1A, 0xBA, 0xB8, 0x51, + 0x4D, 0xF5, 0xC8, 0x08, 0x97, 0x47, 0x6E, 0x08, 0x41, 0xCA, 0x2B, 0x92, 0x94, 0x81, 0x85, 0x09, + 0xF1, 0xD0, 0x53, 0x80, 0x0F, 0x53, 0xF0, 0xF0, 0xC1, 0x02, 0xFD, 0xCC, 0x92, 0x41, 0x00, 0x6E, + 0xF4, 0x03, 0x51, 0x4E, 0x32, 0x6A, 0xB8, 0x8F, 0x36, 0x99, 0xDC, 0x70, 0xC1, 0x05, 0x21, 0xF0, + 0x20, 0x85, 0x18, 0x94, 0x4A, 0x11, 0x45, 0x17, 0x98, 0x66, 0xBA, 0x44, 0x0F, 0x34, 0x60, 0xF7, + 0xC2, 0x06, 0x0F, 0x8C, 0xA8, 0x40, 0x06, 0xBF, 0xC4, 0x17, 0x19, 0x7F, 0xD1, 0xF1, 0x55, 0x18, + 0x28, 0x10, 0xE0, 0xC2, 0x09, 0x24, 0xFE, 0x69, 0x60, 0x01, 0x01, 0x35, 0xF1, 0x50, 0x21, 0x81, + 0x0C, 0x33, 0x18, 0xA0, 0xCC, 0x35, 0x03, 0x64, 0xA2, 0x06, 0x01, 0x57, 0x60, 0x44, 0x21, 0x7F, + 0x47, 0x59, 0xE4, 0xE1, 0x05, 0x2C, 0x4C, 0x31, 0x06, 0x24, 0x7E, 0x34, 0x0B, 0x06, 0x18, 0x98, + 0x3A, 0xE1, 0x84, 0x16, 0x69, 0xC8, 0x01, 0x86, 0x16, 0x5A, 0x3C, 0x31, 0x46, 0x14, 0x49, 0x6C, + 0x8A, 0x02, 0x0B, 0x1B, 0x5C, 0xD0, 0x40, 0x01, 0x0A, 0x5C, 0x81, 0x66, 0x8B, 0x46, 0xA5, 0x8A, + 0x51, 0x3F, 0x0B, 0x78, 0x70, 0x86, 0x18, 0x4B, 0xF8, 0x60, 0x01, 0x0E, 0xF1, 0xA4, 0xF0, 0xC0, + 0x0C, 0x23, 0xD2, 0x23, 0x08, 0x0C, 0x8D, 0x50, 0xF2, 0xEB, 0x31, 0x0E, 0x71, 0xE4, 0xE6, 0x3F, + 0xFB, 0xEC, 0x7B, 0xC1, 0x0C, 0x81, 0x00, 0x32, 0x87, 0x1F, 0x75, 0x18, 0xC2, 0x46, 0x18, 0x74, + 0xA4, 0x21, 0xED, 0xB4, 0x60, 0xB0, 0x41, 0x07, 0x1B, 0x5A, 0x28, 0x31, 0x6D, 0x1A, 0x69, 0x60, + 0x1A, 0x05, 0x0D, 0x34, 0xB0, 0xC0, 0xC2, 0x0B, 0x0D, 0x10, 0x40, 0xC0, 0x02, 0xC7, 0x5C, 0x84, + 0xEA, 0xC0, 0xC8, 0xAD, 0xE5, 0x4E, 0xA0, 0x7A, 0x28, 0xE0, 0xC1, 0x0B, 0x2F, 0x28, 0x60, 0x41, + 0x01, 0x25, 0x6C, 0x70, 0x40, 0x38, 0xF4, 0x58, 0x27, 0x8B, 0x2C, 0xAC, 0x98, 0x60, 0x80, 0x6A, + 0x4B, 0xFE, 0xD3, 0x8A, 0x02, 0x33, 0xAC, 0x11, 0x0B, 0x20, 0xD8, 0xA6, 0xC1, 0xC6, 0xD3, 0x61, + 0x58, 0x11, 0x46, 0xB5, 0x5A, 0x80, 0x51, 0x6D, 0x1A, 0x56, 0x6F, 0xB1, 0x85, 0x12, 0x4A, 0x68, + 0xCD, 0xF1, 0xB3, 0x49, 0x24, 0xD1, 0xC3, 0x0C, 0x22, 0xA4, 0x00, 0x81, 0x01, 0x03, 0x0C, 0x31, + 0xCD, 0x64, 0xFD, 0xE5, 0xD7, 0xA4, 0x45, 0x91, 0x69, 0xD8, 0xC1, 0x05, 0x37, 0xB8, 0x10, 0x02, + 0x97, 0x27, 0x48, 0xE0, 0x41, 0xFE, 0x13, 0x09, 0x48, 0x61, 0x46, 0x24, 0x66, 0x88, 0xD0, 0x41, + 0x4E, 0xFD, 0x60, 0xD3, 0x01, 0x04, 0xB5, 0x70, 0xC2, 0x48, 0x18, 0x61, 0xB0, 0x41, 0x06, 0x19, + 0x6F, 0x00, 0x42, 0x86, 0xB5, 0x69, 0xBC, 0x51, 0xB5, 0x16, 0xDC, 0x86, 0x5D, 0xC3, 0xE6, 0x9C, + 0xFF, 0xE0, 0x84, 0xD5, 0xD8, 0x42, 0x2B, 0xC5, 0x12, 0x3B, 0x78, 0xF0, 0x41, 0x0B, 0x01, 0x0C, + 0xF0, 0x8B, 0x71, 0x85, 0xF1, 0x34, 0x55, 0x53, 0x49, 0x11, 0x4C, 0x8F, 0x1E, 0x2D, 0x74, 0x40, + 0x88, 0x86, 0xF8, 0x3C, 0xC0, 0xC2, 0x12, 0x97, 0x76, 0x21, 0xB6, 0x06, 0x1A, 0xD0, 0x30, 0x45, + 0x14, 0x79, 0x48, 0x11, 0xC2, 0x03, 0x2B, 0x22, 0x25, 0x10, 0xAA, 0xFB, 0xD8, 0x72, 0xC0, 0x12, + 0xC6, 0x30, 0xCB, 0xC6, 0xB5, 0x56, 0x58, 0x41, 0x86, 0x1F, 0x6F, 0xC8, 0x81, 0x75, 0xD6, 0x3F, + 0x2C, 0x21, 0x03, 0xF0, 0x21, 0xD0, 0x90, 0x04, 0xD7, 0x35, 0xA0, 0x60, 0x7E, 0x12, 0x72, 0x68, + 0x9F, 0x7E, 0x1A, 0x51, 0xF4, 0xC0, 0x42, 0x08, 0x1B, 0xA4, 0xD0, 0xC0, 0x00, 0xB3, 0xD8, 0xC7, + 0x5A, 0x6B, 0x1F, 0xF5, 0x43, 0x4F, 0x10, 0x0F, 0xC0, 0x5F, 0x40, 0x01, 0xA0, 0xF0, 0xC4, 0x03, + 0x7A, 0x10, 0x05, 0x6C, 0x59, 0xE1, 0x59, 0x9B, 0xE2, 0xC1, 0x0C, 0x78, 0xA0, 0xC0, 0x0B, 0xB4, + 0x80, 0x2C, 0x18, 0x39, 0x4B, 0xE1, 0x3E, 0xF0, 0x82, 0x3C, 0x70, 0x42, 0x11, 0x86, 0xA0, 0x43, + 0x18, 0xA8, 0x95, 0x86, 0xC7, 0x91, 0xE1, 0x59, 0x63, 0x18, 0x83, 0xEF, 0x6A, 0x40, 0x03, 0x0D, + 0x68, 0x69, 0x06, 0x3D, 0xE0, 0xDD, 0xB3, 0xB6, 0x10, 0x05, 0x26, 0xD0, 0xA0, 0x06, 0x5A, 0x20, + 0x03, 0xE3, 0xB4, 0x20, 0x2D, 0x6E, 0xF5, 0x00, 0x04, 0x33, 0x08, 0x17, 0xA1, 0xA2, 0x12, 0x92, + 0x7B, 0x0C, 0x8C, 0x39, 0xFE, 0x24, 0x89, 0x8F, 0x11, 0x24, 0xD0, 0x83, 0x1A, 0x20, 0x61, 0x06, + 0x12, 0x38, 0x40, 0xFF, 0x92, 0xC0, 0x31, 0x3A, 0xD0, 0x81, 0x0C, 0x5A, 0x58, 0xC2, 0x0C, 0x52, + 0xF0, 0x01, 0x0B, 0x10, 0x60, 0x00, 0x45, 0x10, 0x87, 0x45, 0xEA, 0x11, 0x93, 0x26, 0xE1, 0xA3, + 0x05, 0x0A, 0x08, 0x41, 0x2C, 0x3A, 0xE1, 0x07, 0x46, 0x3C, 0xAC, 0x0C, 0x73, 0x80, 0xDA, 0x01, + 0xD3, 0x30, 0x06, 0x26, 0xF0, 0xC0, 0x6E, 0x28, 0x48, 0x02, 0x12, 0x96, 0x40, 0xC7, 0x24, 0x44, + 0x01, 0x0C, 0x8F, 0x4B, 0xC3, 0x16, 0x7C, 0xE7, 0x39, 0x32, 0x3C, 0xED, 0x83, 0xD8, 0xE2, 0x16, + 0xC8, 0x58, 0x70, 0x03, 0x18, 0x10, 0x60, 0x02, 0xEB, 0x18, 0x08, 0x7E, 0x06, 0x03, 0xC4, 0xA4, + 0xEC, 0xC3, 0x1E, 0x1E, 0x98, 0x41, 0x17, 0xAE, 0x25, 0x36, 0x20, 0xB0, 0xA0, 0x07, 0x5D, 0x90, + 0x83, 0xC5, 0xDA, 0x40, 0x06, 0x25, 0x2C, 0x41, 0x04, 0x05, 0x58, 0x80, 0x0A, 0x7E, 0x21, 0x8E, + 0x74, 0x09, 0x6B, 0x1F, 0xE8, 0xA8, 0xC2, 0x05, 0xCC, 0x70, 0x41, 0x3C, 0x64, 0xD0, 0x8F, 0x69, + 0x0C, 0xC3, 0xB3, 0xA8, 0x56, 0x03, 0xF8, 0x89, 0x80, 0x07, 0x49, 0xD0, 0xDA, 0x1E, 0xB7, 0x70, + 0x35, 0x0E, 0x66, 0x6C, 0x0B, 0x4E, 0xB0, 0xC2, 0x1B, 0xDA, 0xD0, 0x06, 0xEC, 0x5D, 0x2B, 0x0A, + 0x51, 0xF8, 0x41, 0x0D, 0xC4, 0x30, 0x83, 0x17, 0x98, 0x20, 0x94, 0xA5, 0x64, 0x5D, 0xC0, 0xD4, + 0x03, 0x92, 0x79, 0x10, 0x2C, 0x1A, 0x0D, 0x90, 0x82, 0x1C, 0xEC, 0xD0, 0x06, 0x40, 0x44, 0x01, + 0x05, 0x52, 0xC8, 0x24, 0x23, 0xCC, 0x38, 0xB5, 0x28, 0x00, 0xE1, 0x02, 0x46, 0x18, 0x07, 0x79, + 0x5C, 0x72, 0x9F, 0x84, 0xF0, 0xA3, 0x1F, 0xA8, 0xB8, 0xC0, 0x12, 0xE4, 0xC0, 0x88, 0x39, 0xD0, + 0xC1, 0x0F, 0xC4, 0xFE, 0x2C, 0x44, 0x18, 0x3C, 0xA8, 0x47, 0x24, 0xD4, 0x00, 0x04, 0xE2, 0x0B, + 0xDB, 0xE7, 0xC8, 0x60, 0x05, 0x2D, 0x58, 0xEF, 0x0D, 0x6F, 0x48, 0x03, 0x07, 0xA5, 0x55, 0xBD, + 0x30, 0x10, 0x73, 0x83, 0xD9, 0x7A, 0xC2, 0x13, 0xC0, 0x30, 0xAD, 0x1F, 0xAC, 0x61, 0x09, 0x21, + 0xF0, 0x80, 0x02, 0x46, 0x90, 0x3C, 0xD6, 0xE1, 0x8F, 0x6D, 0xEF, 0x69, 0xC0, 0x19, 0x00, 0xC1, + 0x88, 0x4B, 0x90, 0x22, 0x0F, 0x7D, 0x98, 0x41, 0x08, 0xCC, 0x20, 0x07, 0x4E, 0xD0, 0x81, 0x86, + 0x4B, 0x78, 0x41, 0x02, 0xC8, 0x43, 0x9B, 0x96, 0x78, 0x64, 0x1F, 0x59, 0x28, 0x80, 0x19, 0x00, + 0xF1, 0x30, 0x30, 0xDC, 0xB3, 0x0D, 0x86, 0x68, 0xC3, 0x1A, 0xBB, 0xF0, 0x03, 0xF3, 0xA1, 0xE0, + 0x52, 0x55, 0xAB, 0x5C, 0xC6, 0x18, 0xC7, 0xD4, 0xA7, 0x5D, 0xEC, 0x61, 0x8C, 0x6B, 0x43, 0xC3, + 0xDA, 0xB0, 0x41, 0x27, 0x84, 0xED, 0x09, 0xE9, 0xA3, 0x43, 0x41, 0x93, 0x10, 0xB2, 0x0B, 0x40, + 0x60, 0x00, 0x2B, 0x8A, 0xCC, 0x5A, 0x80, 0x58, 0x90, 0x7E, 0xAC, 0xA3, 0x03, 0x2F, 0x60, 0x05, + 0x29, 0x9E, 0x10, 0x0A, 0x11, 0x10, 0xA0, 0x00, 0x30, 0xB8, 0x00, 0x08, 0x18, 0x41, 0xD1, 0x24, + 0x00, 0x61, 0x03, 0x1D, 0xA0, 0x29, 0x7F, 0xE8, 0xD3, 0x0F, 0x2F, 0x5C, 0x80, 0x0F, 0xE4, 0x7C, + 0x9C, 0x26, 0xFD, 0x60, 0x07, 0x3B, 0xF8, 0xA1, 0x0B, 0x3D, 0x08, 0x81, 0x06, 0x60, 0x38, 0x4E, + 0x0D, 0xCA, 0x12, 0x0C, 0x5B, 0xC0, 0x16, 0xC4, 0xEC, 0x50, 0x87, 0x3A, 0x38, 0xE2, 0xB2, 0x8E, + 0x30, 0x84, 0x21, 0x1A, 0x76, 0xD9, 0xCA, 0xDA, 0x21, 0x0C, 0x13, 0x4B, 0x03, 0xE3, 0x5E, 0xDA, + 0xAD, 0x26, 0x88, 0x20, 0x08, 0x0B, 0x18, 0x00, 0x3E, 0x54, 0x36, 0x15, 0xA7, 0xF4, 0x63, 0x1C, + 0x05, 0x70, 0xFE, 0x17, 0x14, 0xC8, 0x04, 0x1F, 0x7C, 0x0C, 0x43, 0x02, 0x90, 0x78, 0x02, 0x57, + 0x6B, 0x96, 0xD7, 0x8C, 0x58, 0xE8, 0x1F, 0x59, 0xB8, 0x40, 0x24, 0x3A, 0x51, 0x59, 0xC6, 0x59, + 0xCF, 0x89, 0xF7, 0x5C, 0x43, 0x0F, 0x36, 0xA0, 0x01, 0x26, 0xA4, 0x01, 0x9F, 0x75, 0x68, 0x83, + 0xC5, 0xA6, 0x57, 0x35, 0xE4, 0xFA, 0xC1, 0x10, 0x96, 0x10, 0x85, 0x76, 0x45, 0x61, 0x89, 0xEE, + 0x5A, 0x62, 0x14, 0xDD, 0x7D, 0x84, 0x24, 0xA8, 0xCA, 0x54, 0x3F, 0xB0, 0xC1, 0x09, 0xEC, 0x93, + 0x01, 0x0F, 0x9A, 0x40, 0x04, 0x0B, 0x28, 0xA0, 0x48, 0xE8, 0x42, 0xC9, 0x4C, 0x0C, 0x52, 0xB0, + 0x50, 0x6A, 0x23, 0x79, 0xC7, 0x30, 0x00, 0x14, 0x10, 0xDB, 0xCC, 0x71, 0x11, 0x22, 0xAC, 0x70, + 0xD3, 0x10, 0x33, 0x16, 0x30, 0x83, 0xE1, 0x4A, 0x42, 0x12, 0x41, 0x15, 0xEA, 0xC5, 0x38, 0xD6, + 0x05, 0x20, 0x48, 0x00, 0x05, 0x6B, 0x90, 0xC3, 0x1B, 0x20, 0xC6, 0x86, 0xCA, 0xD6, 0xC1, 0x89, + 0x5A, 0x58, 0x58, 0x19, 0x4B, 0x7A, 0x89, 0x51, 0x6C, 0xD7, 0xBB, 0x1F, 0x1E, 0xC5, 0x23, 0x1E, + 0xB1, 0x59, 0x0B, 0x6B, 0x10, 0x73, 0x53, 0x90, 0x82, 0x1A, 0x5E, 0x70, 0x03, 0x0F, 0x14, 0x20, + 0x03, 0x34, 0x45, 0xCA, 0x43, 0x36, 0xF2, 0x19, 0xF4, 0x10, 0x0C, 0x1F, 0x38, 0xDE, 0x07, 0x33, + 0x06, 0x60, 0x80, 0x20, 0x84, 0x93, 0x74, 0x1F, 0x30, 0x40, 0x0C, 0xC2, 0xF1, 0x1E, 0x66, 0x08, + 0x42, 0x05, 0x06, 0x48, 0xB2, 0x02, 0x24, 0xD0, 0x05, 0x4E, 0x48, 0xA2, 0x61, 0x78, 0xA0, 0xAC, + 0xC3, 0x36, 0xF8, 0x4D, 0x09, 0x2C, 0x61, 0x0D, 0x6F, 0x90, 0xA1, 0x1F, 0xE9, 0x50, 0x08, 0xA7, + 0xA6, 0x61, 0x0E, 0x72, 0x80, 0x04, 0x20, 0xD6, 0xC0, 0x84, 0x3B, 0xF2, 0xB4, 0x10, 0x8A, 0x83, + 0x44, 0xFE, 0x27, 0xB0, 0xFB, 0xDD, 0x4B, 0x74, 0x17, 0xBC, 0x8E, 0x20, 0x71, 0x06, 0x15, 0x6A, + 0x43, 0x28, 0x8C, 0xCC, 0xC5, 0xAA, 0xB8, 0xC8, 0xA1, 0x92, 0xB4, 0x91, 0x79, 0x04, 0x11, 0x1D, + 0xB3, 0x2B, 0x00, 0x10, 0xFA, 0x10, 0x0A, 0x39, 0x68, 0x01, 0x5C, 0x1F, 0xF8, 0x9F, 0x02, 0x08, + 0xA0, 0x80, 0x07, 0x3C, 0xE0, 0x02, 0x55, 0xAC, 0x42, 0x08, 0xBA, 0x50, 0x61, 0xCD, 0x4A, 0xB7, + 0x59, 0x8A, 0xC0, 0xC3, 0xD4, 0xDE, 0x57, 0x03, 0x46, 0xF8, 0x61, 0x9F, 0x08, 0x8D, 0x61, 0xE8, + 0xB4, 0xE6, 0xCD, 0xEC, 0x0C, 0x40, 0x37, 0x10, 0x50, 0x80, 0x98, 0xFE, 0x77, 0x01, 0x11, 0xEC, + 0xB4, 0x9E, 0xD7, 0x75, 0x84, 0x28, 0x2A, 0x41, 0x6B, 0x47, 0x0C, 0xA2, 0x10, 0x6F, 0xB8, 0x96, + 0x16, 0xB6, 0xC0, 0xD5, 0xFE, 0x16, 0x20, 0xC6, 0x44, 0xE9, 0xA1, 0x41, 0xEC, 0x11, 0x0D, 0x02, + 0x2C, 0x81, 0x13, 0x12, 0x66, 0x83, 0x12, 0x6A, 0xD0, 0x83, 0x1D, 0x38, 0x5B, 0x04, 0x33, 0x88, + 0xF6, 0x09, 0x44, 0x40, 0xED, 0x10, 0x44, 0x21, 0x0C, 0x9A, 0xAD, 0x03, 0x1B, 0x84, 0xD9, 0xAC, + 0xA7, 0xC9, 0x21, 0x09, 0x12, 0xA0, 0x81, 0x1F, 0x24, 0x81, 0xB1, 0xAA, 0x69, 0x0F, 0x5A, 0x4A, + 0x08, 0x1B, 0x12, 0x68, 0xF0, 0x80, 0x0F, 0x94, 0x0A, 0x26, 0x06, 0xB9, 0x46, 0x31, 0x7E, 0x81, + 0x03, 0x02, 0x3C, 0x40, 0x0A, 0xA1, 0x70, 0x1A, 0x1B, 0x1C, 0x51, 0x09, 0xED, 0x56, 0xC2, 0x12, + 0xAF, 0xAC, 0x1E, 0xB6, 0x40, 0xF6, 0x82, 0x14, 0x14, 0x20, 0xCF, 0xE9, 0xF9, 0x08, 0x53, 0xAC, + 0xA9, 0xA6, 0x7F, 0xA0, 0x23, 0x08, 0x2C, 0x80, 0x84, 0x24, 0x46, 0xFC, 0x08, 0xA1, 0x42, 0x0B, + 0x53, 0x6B, 0x68, 0xDF, 0x68, 0x36, 0xD5, 0x83, 0x24, 0x58, 0xC1, 0x10, 0x92, 0xF8, 0xB4, 0xF5, + 0xFE, 0xA6, 0x4B, 0x06, 0x27, 0x44, 0x41, 0x03, 0x3F, 0xE8, 0x02, 0x24, 0x9C, 0x50, 0x83, 0xB0, + 0x21, 0xD3, 0x77, 0x9A, 0x03, 0x41, 0x13, 0x1A, 0xC0, 0x51, 0x08, 0x9D, 0xE7, 0x29, 0xF8, 0xB0, + 0xC5, 0x05, 0x4E, 0x00, 0xE1, 0x37, 0x60, 0xF7, 0xC3, 0x0E, 0x9B, 0x18, 0x0D, 0x9D, 0xE0, 0xBE, + 0x0B, 0x28, 0xC0, 0x00, 0xF1, 0x65, 0x8F, 0x46, 0xEE, 0xE1, 0xE7, 0x8C, 0xDC, 0x63, 0x1F, 0x41, + 0x98, 0x01, 0x27, 0x0C, 0x31, 0x88, 0xE8, 0xB6, 0xC1, 0x72, 0x5A, 0x48, 0x9F, 0xC6, 0xEC, 0x68, + 0xC7, 0x2E, 0x38, 0x21, 0x0C, 0x8F, 0x00, 0xB8, 0xE3, 0xDE, 0xF0, 0xE9, 0x87, 0x75, 0x0C, 0x04, + 0x28, 0x00, 0x04, 0x20, 0xBA, 0x80, 0xF6, 0x1A, 0xFC, 0x20, 0x99, 0xA3, 0xE1, 0x94, 0xFB, 0x52, + 0xB0, 0x80, 0x68, 0x22, 0x24, 0x2C, 0x34, 0x69, 0xBA, 0x3E, 0x1E, 0x39, 0x0C, 0x22, 0x48, 0x40, + 0x0C, 0x80, 0x50, 0x44, 0x77, 0xB9, 0xEB, 0x88, 0x3A, 0x58, 0x41, 0x63, 0x55, 0xB3, 0x6A, 0x08, + 0x44, 0x00, 0x83, 0x01, 0xE4, 0xD9, 0x27, 0x1C, 0x81, 0x07, 0x5B, 0x6A, 0x4C, 0x10, 0x71, 0xF8, + 0x26, 0x16, 0x5A, 0x35, 0x45, 0x2C, 0x94, 0x00, 0xBA, 0xC6, 0xED, 0x93, 0x5A, 0x60, 0xB0, 0x02, + 0x1B, 0xA4, 0x3A, 0x08, 0xF1, 0x4A, 0xF7, 0x69, 0x68, 0xD4, 0x2D, 0x0A, 0xE8, 0xF9, 0x06, 0x1C, + 0x2E, 0x21, 0x09, 0x9C, 0x1B, 0x0D, 0x0D, 0x50, 0x70, 0x02, 0xA3, 0x1B, 0x00, 0x1F, 0x92, 0xF7, + 0xCB, 0x5E, 0x70, 0x1E, 0x83, 0x04, 0xCC, 0x60, 0x12, 0x8C, 0xD0, 0x44, 0x76, 0xB9, 0x5B, 0x07, + 0xD0, 0x2A, 0x01, 0x8A, 0x95, 0xF4, 0x40, 0x0C, 0x0C, 0x70, 0x8D, 0x86, 0x4B, 0x26, 0x23, 0x91, + 0x01, 0x4C, 0x3E, 0x0A, 0x83, 0x03, 0x35, 0x4C, 0x62, 0x0C, 0x5A, 0x60, 0x43, 0x2C, 0xC0, 0xFE, + 0x90, 0x04, 0x30, 0xCC, 0x81, 0xC2, 0x0A, 0x8D, 0x61, 0x85, 0x07, 0xE1, 0x08, 0x4B, 0x3C, 0xA2, + 0x61, 0xDA, 0x6E, 0xDC, 0x1C, 0x9E, 0x00, 0x82, 0x30, 0x7F, 0x9B, 0x05, 0x50, 0x00, 0xD9, 0xE6, + 0x40, 0x66, 0xBE, 0xDA, 0x8F, 0xCB, 0x00, 0xE4, 0x91, 0x90, 0xD3, 0x3D, 0x22, 0x41, 0x69, 0x18, + 0x40, 0x04, 0xA1, 0x50, 0x06, 0x92, 0xD0, 0x5D, 0x99, 0x85, 0x31, 0xC1, 0x44, 0x06, 0x95, 0x44, + 0x04, 0xA8, 0x45, 0x08, 0xA6, 0xD4, 0x32, 0x04, 0x73, 0x01, 0x8D, 0x30, 0x09, 0x65, 0x30, 0x7A, + 0x52, 0x63, 0x31, 0xC5, 0xE7, 0x04, 0x4C, 0x30, 0x3C, 0xCF, 0xC5, 0x66, 0x96, 0x30, 0x08, 0x9B, + 0xA5, 0x69, 0xA0, 0x17, 0x47, 0x90, 0x20, 0x07, 0xEF, 0x23, 0x7B, 0x32, 0x60, 0x3E, 0x20, 0x03, + 0x02, 0xB5, 0x37, 0x2A, 0x06, 0x00, 0x00, 0xCA, 0xE3, 0x5B, 0x1E, 0x71, 0x77, 0x47, 0xE1, 0x5A, + 0x10, 0xF0, 0x00, 0x81, 0x20, 0x07, 0x20, 0x67, 0x08, 0xDD, 0x66, 0x05, 0xD3, 0x62, 0x55, 0xB8, + 0xF2, 0x02, 0x8D, 0x77, 0x0C, 0x88, 0x61, 0x10, 0xF1, 0x35, 0x56, 0x24, 0xA1, 0x0D, 0x04, 0x40, + 0x09, 0x91, 0x00, 0x72, 0x7E, 0x40, 0x07, 0xAE, 0x64, 0x08, 0xA0, 0x35, 0x09, 0x79, 0xD0, 0x05, + 0x65, 0x50, 0x07, 0xA6, 0x60, 0x09, 0x99, 0x55, 0x08, 0x94, 0x55, 0x07, 0x73, 0x20, 0x24, 0x37, + 0x14, 0x09, 0x63, 0x90, 0x04, 0x1A, 0x00, 0x6D, 0x3D, 0xF0, 0x2D, 0x21, 0x10, 0x02, 0xDF, 0x32, + 0x03, 0x1E, 0xD0, 0x00, 0x14, 0x90, 0x01, 0x08, 0x00, 0x00, 0xDC, 0xC0, 0x1C, 0x5C, 0xE4, 0x0F, + 0x0C, 0xC7, 0x43, 0x4C, 0x91, 0x0F, 0xEC, 0x22, 0x01, 0x11, 0x86, 0x7A, 0x8E, 0x35, 0x43, 0x4E, + 0xB0, 0x6E, 0x33, 0x60, 0x02, 0x10, 0x30, 0x04, 0xFA, 0xC0, 0x45, 0x02, 0x81, 0x2E, 0xFE, 0x37, + 0x77, 0x53, 0x7A, 0xE0, 0x01, 0xC7, 0x76, 0x09, 0x9E, 0x56, 0x62, 0xC5, 0x87, 0x2D, 0xD9, 0x67, + 0x08, 0xE5, 0xA7, 0x6D, 0x17, 0xD3, 0x06, 0x76, 0x00, 0x08, 0x66, 0xE0, 0x02, 0x16, 0x80, 0x05, + 0xB2, 0xB0, 0x04, 0x1A, 0xF0, 0x00, 0x5E, 0x22, 0x32, 0xF0, 0x23, 0x01, 0x8F, 0x52, 0x00, 0x16, + 0x00, 0x01, 0x23, 0x30, 0x02, 0x13, 0x00, 0x00, 0x8B, 0x80, 0x10, 0xF5, 0x90, 0x14, 0x31, 0x51, + 0x15, 0x5C, 0xD1, 0x3A, 0x65, 0x85, 0x0E, 0x0A, 0x20, 0x02, 0x4C, 0xA0, 0x05, 0x65, 0x40, 0x43, + 0x6C, 0xC0, 0x30, 0xDA, 0xC6, 0x83, 0x49, 0xC0, 0x03, 0x22, 0x80, 0x3A, 0xCF, 0xE0, 0x67, 0xE7, + 0x31, 0x18, 0xC7, 0xF1, 0x48, 0x7A, 0x70, 0x03, 0x93, 0xA0, 0x76, 0x73, 0xC0, 0x08, 0x4F, 0xC5, + 0x38, 0x0F, 0xD3, 0x06, 0x97, 0x50, 0x75, 0x52, 0x93, 0x65, 0x10, 0x23, 0x07, 0x52, 0xF0, 0x01, + 0x1F, 0xA0, 0x0B, 0x66, 0xF0, 0x02, 0x90, 0x02, 0x3F, 0x1B, 0x40, 0x6D, 0xA0, 0x92, 0x6A, 0x38, + 0x40, 0x01, 0x06, 0xB0, 0x00, 0x06, 0x80, 0x00, 0x0E, 0x70, 0x04, 0x33, 0x58, 0x53, 0x32, 0x11, + 0x1F, 0x7B, 0xE7, 0x22, 0x24, 0xD1, 0x13, 0xFB, 0x10, 0x0D, 0x10, 0xE0, 0x6A, 0x86, 0xF6, 0x75, + 0x76, 0x30, 0x71, 0x19, 0xB4, 0x41, 0x4C, 0xC0, 0x02, 0x06, 0x37, 0x04, 0xFC, 0x40, 0x87, 0x40, + 0x24, 0x2C, 0xFB, 0x17, 0x44, 0xF1, 0xF4, 0x77, 0x94, 0x90, 0x39, 0xD7, 0xE2, 0x54, 0xCD, 0xA2, + 0x55, 0xD3, 0x32, 0x07, 0x0A, 0x05, 0x06, 0x1F, 0xF3, 0x00, 0x50, 0x30, 0x09, 0x53, 0x00, 0x01, + 0x16, 0x60, 0x8E, 0x17, 0xB0, 0x01, 0x1B, 0x20, 0x01, 0x0D, 0x30, 0x01, 0x13, 0xB0, 0x00, 0xEA, + 0xB8, 0x00, 0x05, 0x60, 0x00, 0x2B, 0x00, 0x00, 0xC7, 0x40, 0x1E, 0x3D, 0x71, 0xFE, 0x0C, 0x10, + 0x40, 0x00, 0x82, 0x60, 0x2A, 0xF3, 0x61, 0x4A, 0xFD, 0xC0, 0x0C, 0x06, 0xE0, 0x02, 0x53, 0x30, + 0x61, 0x6C, 0x30, 0x80, 0x95, 0x90, 0x59, 0xDA, 0xB6, 0x5B, 0x1F, 0x10, 0x00, 0x2A, 0x41, 0x56, + 0x1B, 0xA1, 0x14, 0x2B, 0xB1, 0x0F, 0xE1, 0xC0, 0x3F, 0x8E, 0x76, 0x02, 0x33, 0x20, 0x3E, 0xA2, + 0x67, 0x31, 0x7E, 0xA0, 0x05, 0x9E, 0xE3, 0x7D, 0x10, 0x95, 0x58, 0x21, 0x10, 0x08, 0x6B, 0x30, + 0x03, 0x16, 0x00, 0x03, 0x76, 0x33, 0x92, 0x22, 0x69, 0x7B, 0x13, 0x40, 0x01, 0xEC, 0x48, 0x00, + 0x06, 0x50, 0x00, 0x13, 0x30, 0x00, 0x2A, 0x10, 0x63, 0xFB, 0x50, 0x04, 0x05, 0x50, 0x05, 0x55, + 0x00, 0x01, 0x31, 0x40, 0x1E, 0x9F, 0x11, 0x11, 0xFC, 0xC1, 0x45, 0xF7, 0xD0, 0x0F, 0xB4, 0x60, + 0x00, 0x3C, 0xE0, 0x04, 0x66, 0xE4, 0x66, 0xFF, 0x96, 0x59, 0x74, 0x40, 0x74, 0x2C, 0xE0, 0x01, + 0x03, 0x40, 0x0C, 0x47, 0xD1, 0x74, 0x6C, 0xB3, 0x74, 0x0B, 0x97, 0x19, 0xFD, 0x80, 0x0F, 0xA8, + 0x10, 0x03, 0x1D, 0x50, 0x00, 0x44, 0x40, 0x03, 0xD9, 0x67, 0x4C, 0x49, 0xF0, 0x03, 0x60, 0x10, + 0x06, 0x94, 0x35, 0x3D, 0x3C, 0xB0, 0x01, 0x81, 0x10, 0x0A, 0x50, 0xB0, 0x01, 0x2F, 0x70, 0x4B, + 0xA5, 0x68, 0x8A, 0x0F, 0x30, 0x2E, 0x2B, 0x99, 0x96, 0x1F, 0x00, 0x03, 0x47, 0x87, 0x96, 0x06, + 0x30, 0x04, 0xAD, 0x50, 0x0C, 0x01, 0x70, 0x01, 0x4D, 0xD0, 0x04, 0x6A, 0x20, 0x04, 0x5E, 0x80, + 0x00, 0xBE, 0x95, 0x1A, 0x04, 0xD1, 0x0F, 0x38, 0xE0, 0x01, 0x03, 0x52, 0x08, 0x40, 0x89, 0x85, + 0x41, 0xE7, 0x3E, 0x2E, 0x56, 0x01, 0x72, 0xB1, 0x1A, 0x3B, 0xE1, 0x10, 0x8B, 0x54, 0x56, 0xF1, + 0xB1, 0x0F, 0x57, 0xA0, 0x00, 0x40, 0x40, 0x69, 0x4D, 0xF8, 0x6D, 0xD9, 0xFE, 0x47, 0x07, 0x52, + 0x46, 0x07, 0xCB, 0x25, 0x0B, 0x9B, 0xD8, 0x00, 0x28, 0x84, 0x86, 0x1A, 0x20, 0x01, 0xAB, 0xD9, + 0x00, 0x0D, 0x90, 0x00, 0x63, 0xD2, 0x02, 0x41, 0xD0, 0x01, 0x1D, 0x10, 0x03, 0x89, 0x86, 0x9E, + 0xFF, 0x63, 0x00, 0x01, 0x40, 0x04, 0xA0, 0xA4, 0x00, 0x0A, 0x80, 0x0A, 0x15, 0xD0, 0x0A, 0xAF, + 0xD1, 0x14, 0xEB, 0x10, 0x04, 0x1B, 0x10, 0x05, 0x6C, 0x70, 0x85, 0x58, 0x48, 0x62, 0x61, 0xB0, + 0x6C, 0x23, 0x73, 0x74, 0xEB, 0x10, 0x5F, 0x90, 0x07, 0x79, 0x42, 0xF1, 0x13, 0x46, 0x82, 0x0F, + 0x05, 0xD0, 0x04, 0x60, 0x60, 0x07, 0x96, 0xE6, 0x79, 0xDC, 0x09, 0x54, 0x7E, 0x00, 0x32, 0x9C, + 0x30, 0x06, 0x16, 0xF0, 0x01, 0x3B, 0x30, 0x7B, 0x1A, 0x00, 0x2A, 0x0A, 0x10, 0x4A, 0x10, 0xA0, + 0x44, 0x5C, 0xD0, 0x78, 0xA9, 0xB3, 0x00, 0x29, 0x20, 0x01, 0x5E, 0x22, 0x02, 0x25, 0xE0, 0x01, + 0x10, 0x10, 0x00, 0x4F, 0x11, 0x1F, 0xB9, 0x41, 0x00, 0x1D, 0x65, 0x1E, 0x21, 0xF1, 0x5A, 0x05, + 0xC0, 0x03, 0x72, 0x70, 0x60, 0xE5, 0x37, 0x65, 0x2C, 0xA7, 0x01, 0x2F, 0x10, 0x64, 0xCC, 0x10, + 0x56, 0x56, 0x01, 0x12, 0x1F, 0x45, 0x5F, 0x05, 0x00, 0x05, 0x69, 0x60, 0x59, 0x8F, 0x50, 0x75, + 0x96, 0x08, 0x5D, 0x74, 0x70, 0x54, 0x7E, 0xF0, 0x04, 0x10, 0x40, 0x41, 0x2C, 0x50, 0x9E, 0x09, + 0x90, 0x00, 0x05, 0x80, 0x64, 0x0B, 0x90, 0x00, 0x5C, 0x90, 0x02, 0x38, 0xFA, 0x14, 0x06, 0x90, + 0x02, 0x28, 0x24, 0x36, 0x28, 0xA0, 0x01, 0x29, 0x00, 0x00, 0xFE, 0x20, 0x00, 0x11, 0xF0, 0x0F, + 0x01, 0xB0, 0x00, 0x1D, 0x50, 0x73, 0x34, 0x21, 0x63, 0x99, 0x81, 0x0F, 0x46, 0x70, 0x01, 0x6B, + 0xE0, 0x07, 0xAF, 0xA0, 0x09, 0x4F, 0x16, 0x4C, 0x2C, 0x17, 0x02, 0xFE, 0x61, 0x52, 0x00, 0x57, + 0xF0, 0x1E, 0x0C, 0x8A, 0x11, 0xB1, 0xF1, 0x7C, 0x4F, 0x31, 0x0E, 0x09, 0x20, 0x06, 0x74, 0x40, + 0x89, 0x83, 0x69, 0x08, 0x78, 0x30, 0x5D, 0xB2, 0xA4, 0x01, 0x6B, 0xA0, 0x05, 0xE0, 0xE6, 0x01, + 0x22, 0x00, 0x2A, 0x5E, 0x9A, 0x3A, 0x03, 0x00, 0x00, 0x00, 0x90, 0x9B, 0x01, 0xE0, 0x0E, 0xA2, + 0x0A, 0x00, 0xFD, 0xF0, 0x01, 0x4D, 0x10, 0x05, 0x9F, 0x23, 0x36, 0x2F, 0x30, 0x00, 0xF9, 0x20, + 0x00, 0xB2, 0xFA, 0x0F, 0xB9, 0xB1, 0x00, 0x79, 0xE1, 0x7C, 0x47, 0xF1, 0x12, 0xFD, 0x80, 0x0E, + 0x0D, 0xC0, 0x03, 0x63, 0xA0, 0x08, 0x9A, 0xA0, 0x09, 0x86, 0xC0, 0x83, 0xDC, 0x47, 0xA8, 0xF2, + 0x03, 0x63, 0x50, 0xD1, 0xA0, 0xCA, 0xFA, 0x11, 0x0C, 0xB7, 0x0F, 0x46, 0xB0, 0x01, 0x5D, 0x70, + 0x5D, 0x96, 0x50, 0x09, 0xE0, 0xB5, 0x59, 0x6C, 0x90, 0x65, 0x60, 0xF0, 0x03, 0x20, 0x30, 0x85, + 0x62, 0x38, 0x96, 0x25, 0x3A, 0x00, 0x08, 0x00, 0x37, 0x06, 0xD0, 0x08, 0x03, 0xF0, 0x0F, 0x02, + 0x70, 0xAA, 0xFD, 0xA0, 0x00, 0x62, 0x20, 0x07, 0x7E, 0x70, 0x40, 0x51, 0xB0, 0x01, 0x1F, 0x10, + 0xAA, 0xE7, 0xFA, 0x0F, 0x15, 0xD0, 0x01, 0x0D, 0xA0, 0x07, 0x89, 0xFA, 0x12, 0x78, 0x88, 0x09, + 0xAB, 0x34, 0x07, 0x9D, 0x20, 0xAC, 0xA0, 0xA5, 0xA9, 0x20, 0xB0, 0x78, 0x37, 0x23, 0x1F, 0x95, + 0x71, 0x73, 0x77, 0x4A, 0x17, 0xE3, 0x80, 0x34, 0xD1, 0x3A, 0x80, 0xDE, 0x55, 0x62, 0x1C, 0xB3, + 0x06, 0x20, 0x50, 0x03, 0x6B, 0xC7, 0x04, 0x8B, 0x17, 0x2E, 0x07, 0x40, 0x00, 0x00, 0x80, 0x87, + 0xFB, 0x30, 0x00, 0x5E, 0x00, 0x56, 0x00, 0x10, 0xB2, 0xD3, 0x00, 0x00, 0xFB, 0xF0, 0x00, 0x63, + 0x70, 0x5D, 0xD2, 0xD5, 0x05, 0x1A, 0xD0, 0x08, 0x01, 0x00, 0xFE, 0x00, 0x23, 0x0B, 0x00, 0xE2, + 0x60, 0x00, 0x1E, 0x90, 0x02, 0xFD, 0x40, 0x12, 0x43, 0x78, 0x93, 0x91, 0xF9, 0x01, 0x1B, 0xC0, + 0xAE, 0x78, 0x20, 0x09, 0x2F, 0xC5, 0x3E, 0x89, 0xF5, 0x02, 0x41, 0x30, 0x1E, 0x0A, 0xF9, 0x1A, + 0x1F, 0x31, 0x7D, 0xFE, 0xD0, 0x0F, 0x59, 0xB0, 0x01, 0x4B, 0xB0, 0x81, 0xE5, 0xD7, 0x5D, 0x9B, + 0x65, 0x07, 0x69, 0xB0, 0x06, 0x62, 0xA0, 0x01, 0x4E, 0xE0, 0x07, 0x60, 0x30, 0x05, 0xEF, 0x83, + 0xB1, 0x04, 0x70, 0x14, 0xFB, 0xD0, 0x7B, 0x7A, 0x40, 0xA3, 0xB2, 0x0A, 0x00, 0x03, 0x50, 0xB6, + 0xBE, 0x8A, 0x4F, 0x4F, 0x03, 0x06, 0x28, 0x00, 0x05, 0x09, 0x10, 0xAA, 0x21, 0x0B, 0x0F, 0x67, + 0x7A, 0x01, 0x71, 0x48, 0x23, 0xEE, 0xC1, 0x0C, 0x0D, 0x10, 0x05, 0x17, 0x33, 0x4E, 0x9F, 0x97, + 0x04, 0x2C, 0xB0, 0x03, 0x41, 0x00, 0x01, 0xC7, 0xB0, 0x11, 0xCA, 0xB1, 0x1C, 0x3C, 0xB1, 0x12, + 0x4E, 0x81, 0x0F, 0x16, 0x30, 0x03, 0x15, 0x53, 0x59, 0x4F, 0x7B, 0x09, 0x51, 0x3B, 0x3D, 0x52, + 0x00, 0x02, 0x56, 0x60, 0x07, 0x11, 0x53, 0x3E, 0x1A, 0x70, 0x01, 0x05, 0x00, 0xAB, 0xFF, 0x60, + 0x04, 0x0F, 0xB0, 0x04, 0x2C, 0xFB, 0xA6, 0xE7, 0x6A, 0x6F, 0x28, 0x40, 0x0A, 0x49, 0xF5, 0x47, + 0xDC, 0x77, 0x02, 0x0F, 0x90, 0x3A, 0x00, 0x00, 0xB7, 0x33, 0xB9, 0x09, 0xDB, 0xE0, 0x0F, 0xC4, + 0x62, 0x19, 0xFD, 0xD0, 0x01, 0x28, 0xF0, 0x06, 0x52, 0xA3, 0x59, 0x09, 0xF5, 0x04, 0x4C, 0xE0, + 0x02, 0x37, 0xD0, 0x02, 0x6E, 0x50, 0xB4, 0x83, 0xFB, 0x1C, 0x7C, 0x81, 0x0D, 0x0D, 0x30, 0x05, + 0xD9, 0x37, 0x7A, 0x86, 0x30, 0x62, 0x4F, 0x16, 0x5D, 0x8E, 0x03, 0x7B, 0x93, 0xEB, 0x07, 0x73, + 0x90, 0x04, 0x6B, 0x9A, 0x44, 0x04, 0x40, 0x30, 0x09, 0xFE, 0xC0, 0x0A, 0xED, 0x03, 0xB2, 0x03, + 0x10, 0x5B, 0xDA, 0x74, 0x6E, 0xD5, 0x62, 0x05, 0x74, 0xF0, 0x06, 0x51, 0x20, 0x05, 0x6A, 0x78, + 0x45, 0xF4, 0x90, 0x1B, 0x0A, 0x00, 0x00, 0xAE, 0xB0, 0x90, 0x24, 0x31, 0x13, 0xA0, 0xA0, 0x01, + 0x4A, 0x30, 0xB9, 0x08, 0x46, 0x07, 0x60, 0xA0, 0xBB, 0xEB, 0x05, 0x03, 0x14, 0x50, 0xB4, 0xAF, + 0x73, 0x1F, 0xFF, 0xF0, 0x05, 0x56, 0x46, 0x51, 0x4A, 0x10, 0x06, 0x85, 0x90, 0x6D, 0x75, 0x50, + 0x58, 0x16, 0xA3, 0x05, 0x35, 0xA0, 0x04, 0xF7, 0xC4, 0x06, 0x61, 0xC3, 0x02, 0x17, 0x40, 0x00, + 0x6D, 0x39, 0x00, 0xCF, 0x15, 0x0B, 0x1A, 0xB0, 0x04, 0x63, 0x62, 0x6D, 0x4B, 0x73, 0xAD, 0x55, + 0xE9, 0x04, 0x1E, 0x54, 0x95, 0x5D, 0xC0, 0x04, 0x52, 0xB0, 0xA5, 0x8D, 0xD0, 0x62, 0x1F, 0x70, + 0x74, 0x5A, 0xC4, 0x43, 0x3B, 0xB1, 0x0F, 0x09, 0x10, 0xAD, 0xC9, 0x4B, 0x62, 0x69, 0x10, 0x36, + 0x63, 0x23, 0x04, 0x80, 0xB2, 0xA8, 0xBA, 0xE7, 0x0F, 0xF9, 0xB0, 0x0F, 0xC8, 0x72, 0x47, 0x4E, + 0xC0, 0x79, 0xD7, 0x65, 0x89, 0x8C, 0x60, 0xC0, 0x69, 0xB0, 0x6C, 0x80, 0x60, 0x5E, 0x9A, 0x1A, + 0x02, 0x98, 0xBB, 0x0F, 0x01, 0xA0, 0x06, 0x6D, 0x00, 0x0B, 0x97, 0x40, 0x07, 0xE3, 0xC4, 0x06, + 0xBE, 0x20, 0x09, 0xE0, 0xDB, 0x84, 0x0A, 0xC5, 0xC1, 0x6F, 0xE0, 0x6D, 0x21, 0x14, 0x05, 0x48, + 0x80, 0x02, 0x4B, 0x80, 0x02, 0x65, 0xD3, 0x02, 0x03, 0xC0, 0x0C, 0x7A, 0xE1, 0x1A, 0xFE, 0x50, + 0xB2, 0x51, 0xE0, 0x07, 0x61, 0x97, 0x59, 0x34, 0x24, 0x36, 0xCD, 0xC4, 0x7C, 0x78, 0x37, 0x23, + 0x4F, 0x11, 0x0E, 0x0F, 0xC0, 0x03, 0x3A, 0xAC, 0x04, 0x69, 0xC0, 0x08, 0x41, 0x25, 0x7A, 0xDC, + 0x54, 0x08, 0x07, 0xF4, 0x04, 0x98, 0xBA, 0x38, 0xFE, 0x87, 0x07, 0x04, 0x1E, 0x80, 0xA3, 0x04, + 0x20, 0x06, 0xA6, 0x50, 0x09, 0x75, 0xF0, 0x08, 0x1E, 0x06, 0x0B, 0x52, 0x55, 0x59, 0x78, 0x30, + 0x07, 0x16, 0xA9, 0x3D, 0x4E, 0x03, 0xBD, 0xD7, 0xB2, 0x05, 0xEB, 0x26, 0x03, 0x40, 0x40, 0xB0, + 0x05, 0xF0, 0x0B, 0x36, 0x97, 0x8C, 0x2A, 0xDC, 0x03, 0x68, 0xDC, 0x5D, 0x52, 0x8C, 0x39, 0x63, + 0x63, 0x02, 0x0A, 0x30, 0x0B, 0x34, 0x8C, 0x12, 0xFB, 0x80, 0x0A, 0x56, 0x16, 0x05, 0x12, 0xF3, + 0x75, 0x9A, 0x75, 0x5E, 0x61, 0x50, 0x59, 0x7C, 0x8C, 0x91, 0x21, 0xB0, 0x04, 0xCC, 0x12, 0xC8, + 0x25, 0x50, 0x24, 0x03, 0xB0, 0x04, 0x61, 0x00, 0x0B, 0x4E, 0xF0, 0x08, 0xFF, 0xD6, 0x06, 0xA6, + 0xE0, 0x0B, 0x8A, 0xB3, 0x7E, 0x66, 0xD0, 0x03, 0x52, 0x00, 0x05, 0x3D, 0xB0, 0x06, 0x99, 0xA2, + 0xC5, 0x40, 0xD0, 0x04, 0x5E, 0xB2, 0x01, 0xA6, 0x53, 0x00, 0xB3, 0x60, 0x28, 0xF8, 0x91, 0xC2, + 0x29, 0x80, 0x02, 0x7E, 0x70, 0x59, 0x96, 0x70, 0x09, 0xA0, 0x15, 0x05, 0x35, 0x20, 0x03, 0x82, + 0x98, 0x08, 0x7D, 0xA1, 0x0F, 0xF6, 0x20, 0x69, 0x03, 0x22, 0x31, 0x93, 0x38, 0x08, 0x07, 0xAA, + 0x05, 0xB4, 0x9C, 0x50, 0x63, 0x40, 0x03, 0x21, 0x30, 0xC4, 0x56, 0xC0, 0x42, 0x2C, 0xD0, 0x00, + 0x57, 0x50, 0x9F, 0xB1, 0x20, 0x01, 0x64, 0xE0, 0xB8, 0x78, 0x20, 0x07, 0x62, 0x80, 0x02, 0x8A, + 0x85, 0x25, 0x23, 0x32, 0x00, 0x14, 0x40, 0x01, 0x23, 0xF0, 0x01, 0x26, 0x30, 0x33, 0xEC, 0x25, + 0x97, 0x06, 0xD7, 0x02, 0x46, 0x3A, 0xC6, 0x9E, 0x5C, 0x05, 0xDC, 0x8C, 0x85, 0xDF, 0xBC, 0x41, + 0x5B, 0xF0, 0x03, 0x87, 0x09, 0x01, 0xBF, 0x0B, 0x17, 0xE8, 0xCC, 0x05, 0x3D, 0x20, 0x31, 0x58, + 0x23, 0x07, 0x89, 0x6C, 0x09, 0x6D, 0xA0, 0xFE, 0x04, 0xF0, 0x5C, 0xC0, 0xD0, 0x2B, 0x24, 0x1A, + 0xD0, 0x05, 0xBA, 0x10, 0x7E, 0x9F, 0x54, 0x00, 0x01, 0x50, 0x05, 0xBA, 0x60, 0x9E, 0x49, 0x30, + 0xCF, 0x1B, 0x30, 0x00, 0x17, 0xF0, 0x05, 0x8F, 0x66, 0x04, 0x09, 0x50, 0x01, 0x00, 0xA0, 0x03, + 0x3A, 0x90, 0x03, 0x44, 0xAD, 0x92, 0x05, 0xF0, 0x56, 0x26, 0xE3, 0x09, 0x03, 0x10, 0x03, 0xAA, + 0x45, 0xD1, 0x1C, 0xD1, 0x0F, 0x41, 0x10, 0x02, 0x6C, 0xE0, 0x5D, 0xE0, 0xBC, 0x55, 0xE0, 0xA2, + 0x00, 0x1F, 0xFD, 0x16, 0xFD, 0x60, 0x0F, 0x4D, 0xC0, 0x99, 0x1C, 0x24, 0xAD, 0xA3, 0x30, 0x08, + 0x05, 0x85, 0x7E, 0x8A, 0x20, 0x8D, 0x69, 0xE0, 0x3E, 0x81, 0x40, 0x0A, 0x73, 0xF0, 0x39, 0x52, + 0x70, 0x03, 0x06, 0x40, 0x00, 0xAC, 0xE0, 0x0B, 0x60, 0x30, 0x86, 0x30, 0x70, 0x26, 0xE3, 0xE0, + 0x0D, 0xDE, 0x60, 0x0E, 0xEB, 0x60, 0x0F, 0xEB, 0xB0, 0x08, 0x0E, 0x90, 0x03, 0x87, 0x70, 0x08, + 0x71, 0x30, 0x01, 0x45, 0xC0, 0x0C, 0xC7, 0xD0, 0x0C, 0x8A, 0x7D, 0x0D, 0xC7, 0x50, 0x01, 0x6D, + 0xD9, 0x0F, 0x73, 0x38, 0x18, 0xFD, 0x20, 0x08, 0x12, 0x90, 0x06, 0x94, 0x68, 0x09, 0xE4, 0x86, + 0x2D, 0xE5, 0xB3, 0x01, 0x0D, 0x40, 0x88, 0x70, 0xF1, 0x48, 0x5C, 0x40, 0x03, 0xDE, 0xC7, 0x8B, + 0x7E, 0x40, 0x7E, 0xA3, 0xE0, 0x08, 0x8C, 0xE3, 0xC8, 0x3D, 0xFB, 0x69, 0x60, 0x70, 0x37, 0xA4, + 0x10, 0x09, 0x4F, 0x13, 0x1C, 0x3B, 0xD0, 0x00, 0x7D, 0xC0, 0x07, 0x80, 0x80, 0x0B, 0xC1, 0x70, + 0x0D, 0xD7, 0xC0, 0x0D, 0xD9, 0x00, 0x0E, 0xEC, 0x40, 0x0E, 0xEA, 0x60, 0x0E, 0xEE, 0x00, 0x0F, + 0x81, 0x3D, 0xD8, 0x71, 0xB0, 0x02, 0x2B, 0x60, 0x0E, 0xDE, 0x50, 0x0D, 0xCC, 0x5D, 0x0D, 0xC4, + 0x30, 0x00, 0xEB, 0x40, 0x53, 0x4C, 0xFE, 0xF1, 0x11, 0xC7, 0x70, 0x01, 0x63, 0xD0, 0x30, 0x24, + 0x56, 0x6E, 0xE5, 0x23, 0x02, 0x0D, 0x50, 0x04, 0x81, 0xB1, 0x0F, 0x55, 0x20, 0x03, 0x03, 0xF2, + 0x34, 0xAE, 0x34, 0xAD, 0x00, 0x87, 0x7E, 0x78, 0x10, 0x65, 0xDC, 0x54, 0x06, 0x3D, 0xF0, 0x00, + 0x9E, 0x08, 0x09, 0xEA, 0x97, 0x07, 0x28, 0x40, 0x03, 0x93, 0xC0, 0x07, 0xC6, 0x70, 0x0C, 0xD3, + 0x40, 0x0E, 0xD0, 0x00, 0x0E, 0xE9, 0x20, 0x0F, 0xEA, 0x90, 0x0F, 0xC3, 0x0D, 0x0F, 0x2B, 0xC0, + 0x00, 0xC6, 0xED, 0x00, 0x2B, 0x20, 0x0F, 0xCB, 0x0D, 0x0E, 0xD9, 0x90, 0x0D, 0x9B, 0x80, 0x06, + 0xC0, 0x86, 0xB0, 0x04, 0x63, 0x01, 0x6B, 0xC0, 0x38, 0x07, 0x06, 0x51, 0xDB, 0xDD, 0x00, 0x19, + 0x90, 0xA8, 0x53, 0xB1, 0xCA, 0x01, 0xAA, 0x6F, 0x9C, 0x65, 0xDE, 0x71, 0x36, 0xA5, 0x52, 0xC5, + 0x06, 0x51, 0xC0, 0x03, 0x12, 0x10, 0x0A, 0x90, 0xF0, 0x54, 0x6C, 0x20, 0x07, 0x21, 0x10, 0x0A, + 0x91, 0x80, 0x0B, 0xC7, 0xE0, 0x0C, 0xCE, 0xC0, 0x0E, 0xDF, 0xF0, 0x0D, 0xEC, 0xF0, 0x0E, 0xEA, + 0x50, 0x0F, 0xEE, 0x50, 0x0F, 0xC5, 0x00, 0x00, 0x0C, 0xC0, 0x01, 0x0E, 0x00, 0x00, 0xCE, 0x60, + 0x0E, 0xEC, 0x90, 0x0E, 0xE0, 0x60, 0x0D, 0xE0, 0x60, 0x03, 0xC4, 0xF0, 0x9C, 0xF9, 0xD3, 0x01, + 0x66, 0xA0, 0x05, 0xD8, 0xA6, 0x4F, 0x94, 0x24, 0x03, 0x9C, 0x5D, 0x97, 0x6F, 0x11, 0x11, 0xFD, + 0x70, 0x0C, 0x09, 0xD0, 0xB4, 0xD1, 0x55, 0x59, 0x97, 0x3D, 0x0A, 0xE0, 0x55, 0x7C, 0x8F, 0xD3, + 0x38, 0x74, 0xB0, 0x76, 0x67, 0xC8, 0x0A, 0x90, 0x60, 0x61, 0x7E, 0x00, 0x7F, 0xB2, 0x40, 0x09, + 0x89, 0x40, 0x0E, 0xDB, 0x60, 0x0D, 0xE9, 0x60, 0xE3, 0xEC, 0xA0, 0x0E, 0x0B, 0x21, 0x0F, 0xFA, + 0xB0, 0x0B, 0x41, 0x0E, 0x00, 0xFE, 0xC8, 0x20, 0x0F, 0xDF, 0x90, 0x0E, 0xE9, 0x60, 0x0D, 0xD6, + 0x90, 0x0C, 0x36, 0x70, 0x16, 0x2C, 0xA3, 0x11, 0x1D, 0x20, 0x05, 0x50, 0x6E, 0x08, 0xFA, 0x24, + 0x31, 0x35, 0x40, 0x36, 0x0A, 0xA0, 0x02, 0x1A, 0x9E, 0x13, 0x55, 0x71, 0x0D, 0x10, 0x30, 0x03, + 0x69, 0x30, 0xE2, 0x6C, 0x80, 0x07, 0x0D, 0x93, 0x5D, 0x63, 0xCD, 0x49, 0x15, 0x78, 0x4F, 0x5A, + 0x20, 0x06, 0x21, 0xC0, 0x04, 0xB1, 0x30, 0x71, 0x75, 0xC0, 0x08, 0x5D, 0x20, 0x01, 0x91, 0x60, + 0x0C, 0xA8, 0x70, 0x0B, 0x71, 0x5E, 0xE3, 0x45, 0xCE, 0x0E, 0xF2, 0x40, 0xEB, 0x39, 0xFE, 0x0F, + 0xDC, 0xB0, 0x10, 0x80, 0x3E, 0xE7, 0x48, 0x7E, 0x07, 0xB7, 0x10, 0x11, 0xFA, 0x87, 0x12, 0x1D, + 0x20, 0x06, 0x5A, 0x00, 0x54, 0x50, 0x28, 0x31, 0x34, 0x30, 0x45, 0x05, 0xB0, 0xD5, 0x6F, 0xB1, + 0x97, 0x05, 0xF0, 0x02, 0x5A, 0xE0, 0x44, 0x61, 0x50, 0x06, 0x4E, 0xD4, 0x06, 0x83, 0x00, 0xE6, + 0x96, 0x50, 0x7C, 0xD5, 0xF3, 0x34, 0x8E, 0x33, 0xBE, 0x2C, 0xF0, 0x03, 0x25, 0xD5, 0x09, 0x90, + 0x10, 0x09, 0x28, 0xE0, 0x04, 0x7C, 0x10, 0x0D, 0x82, 0x90, 0x0A, 0xE0, 0x00, 0x0D, 0x35, 0x9E, + 0x0E, 0xEC, 0x70, 0xE3, 0xED, 0xE0, 0x0F, 0x3B, 0xEE, 0x0E, 0xEE, 0xA0, 0x0E, 0x80, 0x5E, 0xE3, + 0x35, 0x8E, 0x01, 0xE4, 0xC0, 0x98, 0x3A, 0x01, 0x01, 0x66, 0x30, 0xCB, 0xD9, 0x7D, 0x5E, 0x52, + 0x74, 0x01, 0x06, 0xB0, 0x3A, 0x70, 0x31, 0x7D, 0xB3, 0xBB, 0x01, 0x49, 0xF0, 0x38, 0x07, 0xA4, + 0x49, 0x56, 0xD0, 0x06, 0xDE, 0x55, 0x78, 0x15, 0x18, 0x35, 0x11, 0xD3, 0x3E, 0x20, 0xF0, 0x03, + 0x5A, 0x70, 0x0A, 0x7C, 0x90, 0x07, 0xB0, 0x07, 0x09, 0x81, 0x30, 0x0C, 0x99, 0xC0, 0x0B, 0xDE, + 0x90, 0x0D, 0x73, 0x7E, 0xFE, 0xE3, 0xEF, 0xD0, 0x0E, 0xED, 0x70, 0x0F, 0xF3, 0x5E, 0xEB, 0xDF, + 0x00, 0x0D, 0x81, 0x0E, 0x0C, 0x85, 0xEE, 0x11, 0x87, 0x4E, 0x84, 0x0A, 0x70, 0xDD, 0x41, 0x7A, + 0x31, 0x44, 0xE7, 0x02, 0xF1, 0x7A, 0x0D, 0x33, 0xAF, 0x13, 0x37, 0xDC, 0x01, 0x1B, 0x50, 0xEE, + 0xD8, 0xC2, 0x4B, 0x04, 0x35, 0xCB, 0xC3, 0x57, 0x78, 0xC4, 0x54, 0x4C, 0xF7, 0x34, 0x07, 0xDC, + 0x62, 0xB9, 0x2C, 0x20, 0x01, 0xC0, 0x53, 0xDF, 0x54, 0x5B, 0x02, 0xCD, 0x50, 0x0D, 0xE0, 0x40, + 0x0E, 0xE4, 0xF0, 0x0E, 0xEF, 0x70, 0x0E, 0xFC, 0x20, 0x0C, 0xD3, 0x50, 0x0F, 0x0B, 0xC1, 0x0E, + 0xD0, 0x90, 0x0C, 0x47, 0x6E, 0x03, 0xC2, 0x40, 0x10, 0xC8, 0xD8, 0xF3, 0x04, 0xF3, 0x00, 0x3F, + 0x4A, 0xAD, 0x1E, 0x78, 0x5E, 0x34, 0x50, 0xA4, 0x01, 0x10, 0x4D, 0x6F, 0xE1, 0x15, 0x19, 0x80, + 0x2C, 0x35, 0x70, 0x47, 0x1D, 0x24, 0x70, 0xD8, 0x36, 0x7C, 0x09, 0x66, 0x58, 0x65, 0xD4, 0xD6, + 0xDC, 0x22, 0x45, 0x2E, 0xB0, 0x03, 0x94, 0xB0, 0x01, 0x4C, 0xC0, 0x09, 0x9C, 0x30, 0x09, 0x6A, + 0x50, 0x00, 0xDC, 0xF0, 0x0C, 0xE7, 0x70, 0x0E, 0xE4, 0x70, 0x0E, 0xFE, 0x6D, 0xE7, 0xEA, 0xA0, + 0x0E, 0xE4, 0xF0, 0xEE, 0xDB, 0xB0, 0xF9, 0x02, 0x10, 0xEF, 0x08, 0x01, 0xEC, 0x28, 0xC1, 0xAB, + 0x6D, 0x8F, 0xC8, 0xE6, 0x45, 0x74, 0x27, 0x30, 0x3F, 0xA8, 0x42, 0xE9, 0x1A, 0x61, 0x1F, 0xFF, + 0x30, 0x04, 0x0B, 0xF0, 0x02, 0x71, 0x64, 0x50, 0x51, 0xD3, 0x49, 0x57, 0x3B, 0x80, 0x0E, 0x63, + 0xA9, 0x18, 0x63, 0x2D, 0xC8, 0xA4, 0x01, 0x09, 0x60, 0x02, 0x26, 0x20, 0x22, 0x58, 0x40, 0x27, + 0x74, 0xB0, 0x06, 0x1E, 0x70, 0x0C, 0xDE, 0x00, 0x0E, 0x92, 0xBF, 0xF5, 0xFC, 0xD0, 0x0E, 0x76, + 0xBE, 0xF5, 0xE0, 0xFE, 0xF0, 0xFC, 0xDB, 0x70, 0x0B, 0x24, 0x50, 0x1E, 0x40, 0x51, 0x18, 0xD2, + 0x07, 0x0A, 0xD6, 0x4D, 0x75, 0x98, 0xCD, 0x06, 0x2F, 0x5C, 0x03, 0x0E, 0x5C, 0x00, 0xF0, 0x86, + 0x12, 0xEC, 0x21, 0x13, 0x9C, 0x91, 0x11, 0xEB, 0xD0, 0x2E, 0x2C, 0xE0, 0xCA, 0xC6, 0x45, 0x06, + 0x5B, 0x03, 0xCF, 0x08, 0x86, 0xBC, 0x9B, 0xC5, 0x83, 0x4E, 0x90, 0x3E, 0xDF, 0xB2, 0x03, 0x35, + 0xE8, 0x20, 0x58, 0xB0, 0x66, 0x6C, 0xC0, 0x07, 0x2F, 0x10, 0x0C, 0x23, 0x1F, 0xF9, 0x00, 0x41, + 0xAE, 0xDD, 0x3C, 0x6E, 0xF2, 0xC8, 0x91, 0x03, 0x47, 0xCE, 0x9A, 0x35, 0x72, 0x24, 0x84, 0xFD, + 0xF3, 0xF7, 0x4F, 0x22, 0x3F, 0x89, 0xFE, 0x2C, 0xFA, 0xE3, 0x97, 0x91, 0xDF, 0xBD, 0x7E, 0x82, + 0x3C, 0x8C, 0x09, 0x53, 0x67, 0x90, 0x1D, 0x30, 0x4F, 0xA2, 0x20, 0x61, 0xF1, 0xA0, 0x40, 0x45, + 0x89, 0x2D, 0x5D, 0x5E, 0x6C, 0xB9, 0x0F, 0x5B, 0x91, 0x11, 0x6E, 0xC6, 0xED, 0xB3, 0x47, 0xAF, + 0x85, 0x97, 0x0D, 0x20, 0x94, 0xC8, 0x61, 0x63, 0x85, 0x8C, 0x16, 0x2D, 0x4E, 0xEA, 0x48, 0x72, + 0x24, 0xD2, 0x91, 0xA5, 0x41, 0x6D, 0xC2, 0xB0, 0xA1, 0xC3, 0x28, 0x49, 0x97, 0x0D, 0x3E, 0xFA, + 0x98, 0xF1, 0x80, 0x85, 0x51, 0x9D, 0x30, 0x6B, 0x76, 0xA0, 0xD2, 0x56, 0xED, 0xE0, 0xB9, 0x79, + 0xDB, 0xD4, 0x79, 0x33, 0x07, 0xCE, 0x1A, 0x34, 0x68, 0xDB, 0x36, 0x91, 0xE0, 0x67, 0xB1, 0x25, + 0xC5, 0x97, 0xFF, 0x34, 0xFE, 0xEB, 0xD7, 0xC2, 0x05, 0x18, 0x2B, 0x83, 0x1E, 0x31, 0x9A, 0xA3, + 0xA5, 0x0B, 0x8D, 0x10, 0x07, 0x7E, 0x41, 0x74, 0x99, 0x18, 0xE2, 0xC5, 0x7A, 0xFB, 0x54, 0x0D, + 0x50, 0xF0, 0xE1, 0x02, 0x81, 0x0B, 0xA5, 0xE2, 0x65, 0x1A, 0x40, 0xA4, 0x89, 0x14, 0x30, 0x69, + 0xCA, 0xCC, 0xFE, 0x01, 0x03, 0x26, 0x24, 0xD2, 0xA5, 0xA2, 0x4C, 0x3B, 0x32, 0x24, 0x49, 0xD3, + 0x25, 0x3F, 0x20, 0xCC, 0x04, 0xCA, 0x83, 0x82, 0x07, 0x29, 0x46, 0x4E, 0xBB, 0x34, 0xA9, 0x12, + 0x76, 0xDB, 0x32, 0x57, 0xDB, 0xB8, 0xA9, 0x7B, 0x56, 0x8D, 0x6D, 0xB2, 0x64, 0xC0, 0x04, 0x6C, + 0xAB, 0x18, 0xD1, 0x6E, 0xE2, 0x7C, 0x76, 0xE9, 0xF6, 0x5B, 0xC0, 0x43, 0x4E, 0x98, 0x41, 0x83, + 0xFC, 0xA4, 0x49, 0x93, 0x04, 0x85, 0x88, 0x02, 0xFB, 0x9A, 0x2B, 0x7E, 0x69, 0xF1, 0xDE, 0xBF, + 0x7D, 0x04, 0x82, 0xEC, 0xE0, 0xB1, 0x64, 0x89, 0x8B, 0x0B, 0x1E, 0x54, 0x5A, 0xB8, 0x31, 0x23, + 0x4A, 0x9A, 0x31, 0x60, 0xCA, 0xB0, 0xF1, 0x63, 0x48, 0x93, 0xA3, 0x47, 0x96, 0x4C, 0x9F, 0x1E, + 0x25, 0x40, 0x49, 0x6A, 0xF0, 0x03, 0x90, 0x48, 0x7A, 0x48, 0x63, 0x0E, 0x36, 0xD8, 0xD0, 0x62, + 0x0B, 0x29, 0x36, 0xD0, 0xE6, 0x19, 0x67, 0x84, 0x71, 0x66, 0x1B, 0x61, 0xD0, 0x78, 0x86, 0x98, + 0x55, 0x90, 0x01, 0xC6, 0xB8, 0x65, 0x32, 0xF2, 0xE7, 0x1E, 0xE5, 0x96, 0x73, 0x29, 0xA3, 0x96, + 0xF0, 0x69, 0x40, 0x8C, 0xAD, 0x50, 0xA3, 0x43, 0x8B, 0x93, 0x66, 0x78, 0x60, 0x81, 0x7E, 0x14, + 0x1B, 0xB1, 0x25, 0x8B, 0xF2, 0xE9, 0xA7, 0x97, 0x06, 0x76, 0x30, 0x63, 0x0C, 0x39, 0xE4, 0x30, + 0x03, 0x0A, 0x20, 0x80, 0x78, 0x41, 0x84, 0x0B, 0x24, 0xA0, 0x21, 0x8A, 0x27, 0xC0, 0x80, 0xCA, + 0x8E, 0xD4, 0x24, 0xB1, 0xC3, 0x49, 0x4B, 0x96, 0x1A, 0xC5, 0x11, 0x51, 0x2C, 0x91, 0xE4, 0x12, + 0x3B, 0xC2, 0xE0, 0x23, 0x89, 0x32, 0xAC, 0xF0, 0x83, 0x28, 0x07, 0x35, 0x68, 0x86, 0x98, 0x64, + 0x9C, 0x59, 0xC6, 0x99, 0x6A, 0x76, 0x69, 0x26, 0x95, 0x3D, 0x76, 0xB9, 0x45, 0x00, 0x57, 0x28, + 0xCA, 0xFE, 0x07, 0xA6, 0x89, 0x14, 0xA3, 0x2B, 0x1F, 0x65, 0x36, 0xE0, 0x43, 0x92, 0x47, 0x58, + 0x74, 0xB1, 0x87, 0x17, 0x08, 0x98, 0xE5, 0xBB, 0xF0, 0xEE, 0x5C, 0x2C, 0x1F, 0x7C, 0x5A, 0xB8, + 0xA0, 0x0B, 0x2D, 0x18, 0x64, 0x44, 0x8B, 0x34, 0xA2, 0x88, 0x02, 0x90, 0x2D, 0x06, 0x63, 0x21, + 0x84, 0x1F, 0xC8, 0xF0, 0x03, 0x8F, 0x3A, 0x9C, 0xF4, 0xC3, 0x0A, 0x27, 0xAC, 0x60, 0x43, 0x11, + 0x45, 0x0C, 0x31, 0xC4, 0x12, 0x4B, 0xEA, 0x30, 0x84, 0x2B, 0x36, 0xCA, 0xE0, 0xEB, 0x0D, 0x30, + 0xB4, 0x58, 0x63, 0x89, 0x12, 0xCA, 0x3C, 0xD3, 0x99, 0x64, 0x90, 0x79, 0x66, 0x17, 0x62, 0x76, + 0xD9, 0x65, 0x8F, 0x23, 0xE8, 0xFA, 0x67, 0xBC, 0x11, 0x89, 0x75, 0x69, 0xBC, 0x7E, 0xB2, 0x08, + 0x41, 0x0E, 0x49, 0xA6, 0xE4, 0x0A, 0x8C, 0x2E, 0x42, 0x48, 0xC1, 0x80, 0x7D, 0x16, 0x3B, 0xD4, + 0x39, 0x6C, 0xF1, 0x09, 0x42, 0x03, 0xA0, 0x5A, 0x0D, 0xA3, 0x0D, 0x36, 0xDE, 0x20, 0xC3, 0x89, + 0xA2, 0xA2, 0x80, 0x82, 0x05, 0x14, 0x94, 0xA0, 0x83, 0x8E, 0x05, 0x17, 0xD4, 0x22, 0x89, 0x24, + 0x94, 0x30, 0x17, 0xBF, 0x3A, 0x8E, 0xAA, 0xA3, 0x8D, 0x36, 0xAC, 0x48, 0xE3, 0x8D, 0x37, 0x44, + 0x7D, 0xA2, 0x0B, 0x19, 0x6E, 0x7D, 0x86, 0xB8, 0x33, 0x91, 0x41, 0x66, 0x97, 0x5C, 0x76, 0xD9, + 0x24, 0x02, 0x13, 0xFF, 0x69, 0xAE, 0xCE, 0x1A, 0xC3, 0xF3, 0x07, 0x47, 0x05, 0x7A, 0xF0, 0xE3, + 0x12, 0x4B, 0x0C, 0xD9, 0x77, 0xB0, 0x19, 0x5A, 0x90, 0x11, 0x3C, 0xB9, 0xEE, 0xBC, 0x11, 0x1F, + 0x18, 0x50, 0x00, 0xA4, 0xBF, 0x3A, 0xD8, 0x90, 0xA4, 0x55, 0x3C, 0xCA, 0x20, 0xEA, 0x89, 0x24, + 0xA2, 0x48, 0xA2, 0x06, 0x25, 0xB4, 0x20, 0xE3, 0x29, 0x36, 0x66, 0x8D, 0xF7, 0x07, 0x39, 0xD2, + 0xFE, 0x70, 0x82, 0x8D, 0x7B, 0x57, 0x0E, 0x83, 0x0C, 0x32, 0xD2, 0xE0, 0x39, 0x8A, 0x25, 0x24, + 0xF0, 0xA4, 0x19, 0x64, 0xA0, 0x39, 0x33, 0x19, 0x61, 0x7E, 0x6D, 0xA5, 0x15, 0x01, 0xB8, 0x41, + 0xD4, 0x50, 0xF0, 0xB0, 0xC5, 0xAB, 0x80, 0x35, 0x0A, 0xB9, 0x44, 0x13, 0xAE, 0xAC, 0x88, 0x62, + 0x86, 0x41, 0x8F, 0xB1, 0x31, 0x5B, 0x12, 0x2B, 0xC6, 0xE7, 0x81, 0x25, 0xD8, 0x58, 0xCA, 0x94, + 0x4B, 0x0C, 0x79, 0x84, 0x63, 0x45, 0xE6, 0x80, 0x59, 0x52, 0x30, 0x9C, 0x30, 0x17, 0xE7, 0x76, + 0xE7, 0xF8, 0x59, 0x8B, 0x9B, 0xF9, 0x0E, 0xC3, 0x8F, 0x28, 0xF3, 0xBE, 0x34, 0x0A, 0x27, 0x92, + 0xA0, 0x01, 0x8A, 0x02, 0x8E, 0x21, 0x06, 0x18, 0x64, 0x92, 0xB9, 0x03, 0x98, 0x5B, 0x6E, 0xF9, + 0xE5, 0x13, 0x00, 0xA6, 0x81, 0x88, 0xA2, 0x7A, 0x24, 0xD2, 0x3A, 0x31, 0x8B, 0xE6, 0x81, 0xF8, + 0x9A, 0x0B, 0xD2, 0x38, 0x0A, 0x5C, 0x2D, 0x90, 0x78, 0x01, 0x86, 0x01, 0xFA, 0xC9, 0x27, 0xAE, + 0x1A, 0x47, 0x5E, 0xFB, 0x1F, 0x7B, 0x88, 0x90, 0x42, 0x0E, 0x55, 0x15, 0xF1, 0xA3, 0x90, 0x56, + 0x97, 0xDA, 0xD8, 0xDD, 0x37, 0xD6, 0xD8, 0x82, 0x28, 0x26, 0xDB, 0x85, 0xCA, 0x5D, 0x36, 0xC2, + 0x10, 0x6A, 0x41, 0x3F, 0xE8, 0x28, 0xE9, 0x24, 0x24, 0x6A, 0xE8, 0xA1, 0x07, 0x1A, 0x44, 0x80, + 0xE0, 0x18, 0x61, 0x6E, 0xE9, 0x70, 0x93, 0xCB, 0x73, 0xF9, 0x64, 0x00, 0x07, 0x16, 0x89, 0x58, + 0x64, 0x1A, 0xE5, 0xEA, 0x07, 0x95, 0x17, 0x50, 0x37, 0x44, 0x11, 0x3A, 0xC2, 0xD8, 0x02, 0x08, + 0x0F, 0x5A, 0x50, 0x61, 0x39, 0xDA, 0xB9, 0x4E, 0x96, 0x3C, 0x2F, 0xA0, 0x70, 0xD6, 0x12, 0x36, + 0x08, 0x0C, 0xD7, 0x20, 0x02, 0x14, 0x3C, 0x32, 0x6C, 0x61, 0x0B, 0xA1, 0xD1, 0x82, 0xCE, 0xFE, + 0x74, 0xF6, 0xAE, 0x05, 0x15, 0xED, 0x0D, 0x93, 0x4A, 0x42, 0xF5, 0x68, 0x30, 0xC1, 0x19, 0xC8, + 0x4F, 0x15, 0xB9, 0xD8, 0xDE, 0x2A, 0x56, 0x71, 0x8B, 0x4D, 0x80, 0x6F, 0x00, 0x43, 0x58, 0x01, + 0x00, 0x3E, 0xB1, 0x35, 0xFC, 0x25, 0x27, 0x22, 0xE8, 0xF8, 0xC0, 0x0C, 0xC8, 0x50, 0x07, 0x53, + 0xB1, 0x81, 0x0C, 0x65, 0x0B, 0xC2, 0x00, 0x98, 0xE1, 0x9C, 0x10, 0xA9, 0xCD, 0x46, 0x8D, 0x49, + 0x61, 0x1E, 0xFC, 0x60, 0x0A, 0x3A, 0x24, 0xE1, 0x01, 0x6B, 0x00, 0x43, 0x21, 0x54, 0xA3, 0x09, + 0x43, 0x30, 0x48, 0x09, 0x51, 0x00, 0x43, 0x60, 0xC2, 0x90, 0x86, 0xA2, 0x91, 0xE1, 0x5D, 0xEE, + 0x0A, 0x83, 0x98, 0xBA, 0xB0, 0x84, 0x1E, 0xC8, 0x00, 0x05, 0x2C, 0x60, 0xC1, 0x0C, 0x4E, 0x50, + 0x82, 0x18, 0xFC, 0xA2, 0x15, 0xAE, 0x70, 0xC5, 0x26, 0x56, 0xB1, 0x89, 0x54, 0x84, 0x2F, 0x0B, + 0x23, 0xC0, 0x81, 0x0A, 0x00, 0x70, 0x8D, 0x6B, 0x85, 0xCE, 0x4E, 0x8B, 0x89, 0xC8, 0x3E, 0x7A, + 0x71, 0x81, 0xB7, 0xB1, 0x0A, 0x0F, 0x51, 0x44, 0xC2, 0x09, 0x0A, 0xA0, 0x02, 0xD8, 0xD1, 0x49, + 0x74, 0xE6, 0xDB, 0xC7, 0x02, 0x84, 0x60, 0x06, 0x48, 0x9C, 0x62, 0x0E, 0x4F, 0x08, 0x81, 0x04, + 0xD6, 0x90, 0x86, 0x4E, 0xB4, 0x0C, 0x0F, 0x43, 0x51, 0x82, 0x12, 0x3A, 0xD3, 0x19, 0xEC, 0x54, + 0x32, 0x0D, 0x81, 0x13, 0x0C, 0xA5, 0x90, 0x50, 0x45, 0x2B, 0xB2, 0xE0, 0x05, 0x5B, 0x24, 0x82, + 0x27, 0x52, 0xE1, 0x0A, 0x38, 0xC0, 0x61, 0x13, 0x9B, 0xF8, 0x44, 0x2A, 0x02, 0xA0, 0x07, 0x18, + 0x58, 0x00, 0x02, 0x10, 0x50, 0x63, 0x3F, 0x66, 0x74, 0x3E, 0xE5, 0xC0, 0x04, 0x1D, 0x5E, 0x10, + 0x41, 0x17, 0xF2, 0x83, 0x07, 0x3A, 0x58, 0x61, 0x0B, 0x32, 0x10, 0x01, 0x01, 0xD0, 0xFE, 0xD6, + 0x92, 0xCF, 0xD5, 0x45, 0x74, 0x11, 0xC9, 0x51, 0x03, 0xCE, 0x20, 0x0B, 0x33, 0x44, 0x62, 0x12, + 0x62, 0x90, 0x00, 0x08, 0xA2, 0x20, 0x87, 0xE7, 0xED, 0xAC, 0x28, 0x44, 0x11, 0xD3, 0x16, 0x28, + 0x45, 0xB3, 0x93, 0xD4, 0x80, 0x7A, 0xD5, 0xAB, 0x9E, 0x0C, 0xAC, 0x88, 0x82, 0x10, 0xBC, 0xC0, + 0x3D, 0x31, 0xF8, 0xC4, 0x1E, 0x36, 0x71, 0x84, 0x23, 0x6C, 0x22, 0x11, 0x89, 0x18, 0x80, 0x11, + 0xAA, 0x70, 0x03, 0x13, 0x28, 0xC0, 0x02, 0x31, 0x30, 0x00, 0x02, 0xAE, 0xF5, 0x8F, 0x79, 0x8C, + 0xC8, 0x4E, 0x35, 0xEC, 0x07, 0x36, 0x2C, 0xC0, 0x83, 0x31, 0xF8, 0xE1, 0x5E, 0x0C, 0x2A, 0x5B, + 0x03, 0xB2, 0x80, 0x8F, 0x96, 0x90, 0x8E, 0x84, 0x36, 0xAA, 0x18, 0x79, 0x6C, 0x51, 0x00, 0x13, + 0xFC, 0x21, 0x10, 0xA1, 0x58, 0x42, 0x14, 0x34, 0x40, 0x03, 0x33, 0x50, 0x6A, 0x71, 0x49, 0x58, + 0x02, 0x13, 0x98, 0xB0, 0x04, 0x19, 0xCC, 0x40, 0x5D, 0x28, 0x20, 0x27, 0x0B, 0x4E, 0x20, 0x82, + 0x17, 0xBC, 0x20, 0x04, 0x21, 0xC8, 0x94, 0x16, 0x43, 0xB0, 0x81, 0x0D, 0x5C, 0xA0, 0x01, 0x05, + 0x70, 0x43, 0x22, 0x4A, 0x59, 0xCA, 0x3D, 0xA0, 0x01, 0x00, 0x59, 0xC8, 0xC4, 0x0E, 0x66, 0x00, + 0xD3, 0x9A, 0x76, 0x60, 0x01, 0x6E, 0x98, 0xD1, 0xC8, 0x2E, 0xA2, 0x9C, 0xF1, 0xFC, 0x03, 0x1F, + 0xC3, 0x28, 0x80, 0x19, 0xE6, 0xD0, 0x2E, 0x77, 0x6D, 0x61, 0x09, 0x1B, 0x18, 0x00, 0x36, 0x66, + 0xF4, 0xB0, 0x87, 0x2A, 0x46, 0x96, 0xE3, 0xC8, 0x82, 0x02, 0x78, 0x90, 0x87, 0x2E, 0x4C, 0x51, + 0x02, 0x22, 0x68, 0xC2, 0x0E, 0x5A, 0x2A, 0x02, 0x21, 0x40, 0xE0, 0x03, 0x0A, 0x20, 0x00, 0x01, + 0x3A, 0x90, 0x02, 0x2E, 0xCC, 0xA0, 0x09, 0x25, 0x50, 0x80, 0x01, 0xF4, 0x5A, 0xFE, 0x80, 0x06, + 0x7C, 0xC0, 0x02, 0xEE, 0x91, 0xC0, 0x03, 0x1A, 0xA0, 0x80, 0x3D, 0x26, 0x02, 0x0D, 0xA5, 0x3C, + 0x02, 0x1C, 0x48, 0x00, 0x80, 0x21, 0xA0, 0x42, 0x0D, 0x4B, 0xE8, 0x42, 0x04, 0x97, 0x30, 0x83, + 0x1B, 0x5C, 0xC0, 0x00, 0xB3, 0x48, 0xEA, 0x45, 0x9A, 0x0A, 0x91, 0xF1, 0xC0, 0x03, 0x1F, 0x62, + 0x05, 0x84, 0xBB, 0xAC, 0x60, 0x05, 0x2D, 0xF4, 0xE0, 0x06, 0x04, 0x00, 0x05, 0xC4, 0xBA, 0xBA, + 0x5A, 0x88, 0xED, 0xA3, 0x00, 0x3D, 0xC8, 0x43, 0x14, 0x6A, 0xE5, 0x82, 0x04, 0x0C, 0xB6, 0x01, + 0x06, 0x98, 0x40, 0x2F, 0x40, 0x21, 0x0D, 0x71, 0xAC, 0x03, 0x1D, 0x30, 0x78, 0xC0, 0x03, 0x36, + 0x10, 0x8F, 0x75, 0xF4, 0xE3, 0x1A, 0xBF, 0x40, 0x03, 0x01, 0x06, 0x60, 0x00, 0x05, 0x0C, 0x96, + 0xB0, 0x03, 0xA8, 0x40, 0x22, 0xF6, 0xB0, 0x88, 0x23, 0x90, 0x40, 0x00, 0x72, 0x6A, 0x05, 0x00, + 0x0A, 0x20, 0x04, 0x31, 0x00, 0x71, 0x66, 0x9B, 0x04, 0x42, 0x0A, 0x02, 0x30, 0x82, 0x7D, 0xC0, + 0xAE, 0x58, 0xE3, 0xF9, 0x9C, 0x3B, 0x24, 0xB2, 0x0F, 0x2F, 0x68, 0x20, 0x0F, 0xF7, 0x99, 0xD5, + 0x16, 0x7E, 0x30, 0x83, 0x0B, 0x4C, 0xC0, 0x39, 0xFC, 0x28, 0x26, 0x6B, 0x15, 0xF3, 0xB9, 0x7D, + 0xEC, 0x43, 0x01, 0x21, 0x20, 0x6B, 0xBC, 0x7A, 0xB0, 0x01, 0x18, 0x18, 0x40, 0x19, 0xF8, 0x58, + 0x07, 0x3C, 0xF6, 0x81, 0x0F, 0x7A, 0x34, 0xD7, 0xA4, 0x0F, 0x50, 0xC0, 0x35, 0x66, 0xA9, 0x0F, + 0x7D, 0xFC, 0xE2, 0x0A, 0x06, 0x18, 0x40, 0x00, 0x32, 0x3C, 0x00, 0x00, 0x44, 0x00, 0x00, 0x1D, + 0x86, 0x83, 0x30, 0xE4, 0xB2, 0x8F, 0x2B, 0x0C, 0x00, 0x06, 0x6A, 0x98, 0x04, 0x18, 0xC8, 0x00, + 0x06, 0x25, 0x6C, 0xB2, 0x09, 0x0F, 0x20, 0x40, 0x16, 0xFA, 0x2B, 0x91, 0xFE, 0xCD, 0xE2, 0x05, + 0x1B, 0x05, 0xE8, 0x82, 0x13, 0x8B, 0xD2, 0x05, 0x14, 0xD0, 0x77, 0x00, 0xE2, 0xE0, 0x5A, 0x88, + 0xEE, 0xD7, 0xD5, 0xFC, 0xFE, 0x83, 0xC2, 0x1D, 0x90, 0x40, 0x1E, 0xFC, 0x55, 0x03, 0x4F, 0x52, + 0x00, 0x01, 0xF8, 0x80, 0xC7, 0x3F, 0xD6, 0xB1, 0x0E, 0x44, 0x34, 0x60, 0x33, 0x62, 0x68, 0x02, + 0x0C, 0x10, 0xA0, 0xDE, 0x7F, 0xD4, 0x43, 0x1F, 0xFD, 0xDD, 0x87, 0x38, 0x98, 0x71, 0x0C, 0x20, + 0x73, 0x63, 0x1A, 0x22, 0xF2, 0x47, 0x3F, 0x47, 0x8C, 0x8F, 0x7E, 0xA8, 0x80, 0x00, 0x4D, 0x90, + 0xC3, 0xA8, 0x9C, 0x90, 0x86, 0x35, 0x74, 0xA1, 0x07, 0x30, 0x52, 0x80, 0x11, 0x8A, 0xDB, 0xE5, + 0x7F, 0xB8, 0xA3, 0x1F, 0xEB, 0xB0, 0xF2, 0x16, 0x00, 0x61, 0xAE, 0x28, 0xF4, 0x60, 0xA6, 0x04, + 0xE8, 0x85, 0x2C, 0x55, 0x5B, 0xAC, 0xA5, 0xAE, 0xF6, 0x3B, 0xE5, 0x6B, 0x6D, 0x0B, 0x92, 0x1C, + 0x1A, 0x26, 0x6C, 0xC0, 0x95, 0x0B, 0xB0, 0xC7, 0x82, 0xCB, 0x81, 0x00, 0x0F, 0x40, 0xA1, 0x0B, + 0x51, 0xA0, 0xC1, 0x06, 0x20, 0x80, 0x8F, 0x7B, 0xDC, 0xA3, 0x1E, 0x8F, 0x6E, 0x89, 0x88, 0xD0, + 0xBC, 0xD4, 0x88, 0xE0, 0xE8, 0x5A, 0xFD, 0x60, 0x86, 0x02, 0x92, 0x9C, 0x40, 0xD2, 0x4E, 0x45, + 0x0C, 0x3C, 0xA0, 0x2D, 0x01, 0x04, 0x01, 0xE4, 0xE6, 0xE0, 0xC3, 0x0B, 0x3F, 0x5C, 0xA4, 0x80, + 0x8D, 0x04, 0x01, 0x23, 0xA0, 0xE3, 0x1A, 0xE2, 0x28, 0x6F, 0x3F, 0x9A, 0xFA, 0xC6, 0x87, 0x86, + 0x6E, 0x1E, 0xA4, 0xC3, 0x47, 0x0A, 0x42, 0x30, 0x09, 0x17, 0x49, 0x81, 0x05, 0x17, 0x38, 0x40, + 0x73, 0x41, 0x46, 0x01, 0xF4, 0xD8, 0xF5, 0x06, 0x09, 0x10, 0xC4, 0x3A, 0xEA, 0xB4, 0x9C, 0xE6, + 0x08, 0x79, 0x74, 0xAC, 0x8E, 0x28, 0x73, 0xC6, 0xF1, 0x01, 0x3E, 0xFE, 0x5D, 0x33, 0x0D, 0x5D, + 0x60, 0x42, 0x14, 0x98, 0x00, 0x85, 0x1D, 0x34, 0x20, 0x00, 0x2A, 0xF8, 0xC5, 0x3E, 0x04, 0x91, + 0x00, 0x20, 0x20, 0x41, 0x0C, 0x91, 0x9D, 0x6F, 0x3D, 0x0D, 0x60, 0x04, 0x03, 0x2C, 0xC0, 0x00, + 0x1D, 0x40, 0x85, 0xA2, 0xE1, 0xC8, 0xDA, 0x62, 0x16, 0xB3, 0x39, 0x1C, 0xB1, 0x47, 0x15, 0x36, + 0x30, 0x89, 0x31, 0x78, 0xB3, 0x07, 0x3D, 0x3E, 0xC1, 0x06, 0x58, 0x20, 0x02, 0x11, 0x78, 0x20, + 0xAF, 0x03, 0x70, 0x03, 0xA3, 0xF9, 0x99, 0x6A, 0xD9, 0xB1, 0x1A, 0x74, 0x10, 0xAB, 0x07, 0xB2, + 0x38, 0xB2, 0x0E, 0x05, 0x88, 0x20, 0x0F, 0xD7, 0x34, 0x17, 0x76, 0x64, 0xD6, 0x04, 0x22, 0x2C, + 0x60, 0x00, 0xCB, 0x85, 0xC1, 0x0B, 0x66, 0x40, 0x45, 0x1A, 0x6C, 0x47, 0x01, 0x0B, 0xA0, 0x00, + 0x65, 0x3C, 0x70, 0x83, 0x06, 0x40, 0x00, 0x1B, 0x0C, 0x65, 0x89, 0x7E, 0xCD, 0xF7, 0x0F, 0x74, + 0x54, 0xC1, 0xE5, 0x83, 0x76, 0xC2, 0x16, 0x6A, 0x20, 0x85, 0x25, 0x6C, 0x72, 0x03, 0x05, 0x10, + 0x04, 0x36, 0xC4, 0x21, 0x4B, 0xF5, 0x96, 0xDB, 0x50, 0x14, 0xC1, 0xC8, 0xC4, 0x52, 0x9E, 0xB5, + 0x88, 0xC0, 0x43, 0x1C, 0x06, 0x68, 0x42, 0x1E, 0x90, 0xE6, 0x07, 0x3F, 0x30, 0x48, 0xC0, 0x40, + 0xB8, 0x01, 0x0C, 0x3E, 0xD0, 0x00, 0x0F, 0x6C, 0xE0, 0x06, 0x27, 0xC0, 0xFB, 0x06, 0xE0, 0x8A, + 0x83, 0x05, 0x78, 0xE0, 0x05, 0x4D, 0x98, 0xC1, 0x0E, 0x12, 0x40, 0x8B, 0x59, 0x2A, 0x9D, 0x84, + 0x4D, 0xC5, 0x89, 0x08, 0x98, 0x10, 0x0B, 0x46, 0xB8, 0x0B, 0x0C, 0x63, 0xA0, 0x94, 0x14, 0x24, + 0x50, 0x0B, 0x7A, 0xD0, 0x23, 0x18, 0x10, 0xB0, 0xA7, 0x02, 0x8E, 0xD1, 0x8F, 0xFC, 0x22, 0x0B, + 0x3C, 0x1A, 0x01, 0x51, 0xBA, 0xFB, 0xF1, 0x0B, 0x05, 0x9C, 0xFE, 0x41, 0x0B, 0xF9, 0x69, 0x43, + 0x8B, 0x9C, 0xB0, 0x4D, 0x26, 0x58, 0x6F, 0x03, 0x0F, 0x48, 0x41, 0x02, 0x52, 0xE0, 0xD7, 0x01, + 0x8C, 0xA0, 0x1C, 0x14, 0x68, 0xC1, 0x06, 0x64, 0x20, 0x05, 0x29, 0x34, 0xE1, 0x02, 0x09, 0x47, + 0x94, 0xE1, 0x5B, 0xF2, 0x1D, 0x8C, 0x90, 0x27, 0x1A, 0x09, 0x98, 0xC4, 0x29, 0x24, 0x51, 0x87, + 0x97, 0x69, 0x41, 0x5A, 0x17, 0xA8, 0x42, 0x34, 0x2C, 0x50, 0x00, 0x9D, 0xB3, 0x00, 0x06, 0x14, + 0x90, 0xF0, 0x77, 0x3C, 0xFF, 0x50, 0x35, 0x27, 0xE6, 0x0A, 0x17, 0xC0, 0x05, 0x1D, 0x52, 0xB3, + 0xB2, 0xA2, 0xF4, 0xCD, 0x09, 0x3F, 0x00, 0x42, 0x02, 0x0A, 0xD0, 0x02, 0x08, 0x50, 0x60, 0x00, + 0x98, 0x3D, 0x06, 0x00, 0x5A, 0x10, 0x02, 0x19, 0xD4, 0x40, 0x0C, 0x6A, 0x68, 0x00, 0x36, 0xA2, + 0xBC, 0x7D, 0xE1, 0xE7, 0x43, 0x44, 0x31, 0x81, 0x80, 0x26, 0x90, 0x85, 0x67, 0xB1, 0x0E, 0x36, + 0x90, 0x83, 0x24, 0x00, 0x02, 0x0B, 0x50, 0x00, 0x13, 0x00, 0x02, 0x31, 0xD8, 0x02, 0x24, 0xD8, + 0x01, 0x02, 0xD0, 0xAA, 0x87, 0x42, 0x37, 0x98, 0xA8, 0x98, 0x88, 0xC9, 0x88, 0x7D, 0xF8, 0x00, + 0x35, 0x08, 0x04, 0x48, 0x68, 0xA4, 0xE5, 0x0B, 0x83, 0x32, 0x80, 0x19, 0x90, 0xA2, 0x96, 0xB8, + 0x9A, 0x80, 0x01, 0x28, 0x82, 0x04, 0x7B, 0x8C, 0x0F, 0x08, 0x01, 0x20, 0x58, 0x82, 0x26, 0x90, + 0x80, 0x0E, 0x50, 0x36, 0xBB, 0xE8, 0x27, 0xE1, 0x73, 0x09, 0xF5, 0x12, 0x11, 0xBA, 0x90, 0x86, + 0x06, 0xC0, 0x05, 0x46, 0xF0, 0x93, 0xE5, 0x71, 0x02, 0x26, 0x70, 0x01, 0x0F, 0xF8, 0x80, 0x1D, + 0xE8, 0x02, 0x30, 0x60, 0x84, 0x34, 0xE0, 0x01, 0x0B, 0xB0, 0x05, 0xCE, 0x23, 0xA1, 0x0A, 0x94, + 0x8B, 0xAF, 0x33, 0x91, 0x7D, 0x80, 0x80, 0x07, 0x30, 0xFE, 0x03, 0x4E, 0xE8, 0x84, 0x4B, 0xD0, + 0xC2, 0x4E, 0xB8, 0x1B, 0x3B, 0xB3, 0xAB, 0x0F, 0xB8, 0xB9, 0x75, 0xE8, 0xAF, 0x75, 0x20, 0x84, + 0x0E, 0xB0, 0x80, 0x97, 0x92, 0x80, 0x0B, 0xC8, 0x84, 0x6B, 0x59, 0xB5, 0x89, 0xB1, 0xC1, 0x52, + 0xAB, 0xA1, 0x5F, 0x20, 0x80, 0x46, 0xD0, 0xA5, 0xF7, 0x89, 0x17, 0x20, 0xF8, 0x00, 0x13, 0x70, + 0x81, 0x1E, 0x80, 0x04, 0x49, 0x50, 0x04, 0x48, 0xC0, 0x02, 0x08, 0x48, 0x34, 0x13, 0x81, 0x42, + 0x28, 0x7C, 0x34, 0x3B, 0xE9, 0x07, 0x7C, 0x08, 0x86, 0x04, 0xD0, 0x80, 0x1A, 0xE0, 0x03, 0x0F, + 0xEC, 0x84, 0x58, 0x20, 0x05, 0x3E, 0x98, 0x82, 0x1F, 0xE8, 0x01, 0x11, 0x88, 0xA1, 0x5F, 0x50, + 0xB0, 0x70, 0x80, 0x0C, 0xBF, 0x93, 0x80, 0x14, 0xC8, 0x34, 0x36, 0x4C, 0xB3, 0x21, 0xB3, 0xC1, + 0x96, 0xF8, 0xB3, 0x05, 0xB0, 0x00, 0x2E, 0x80, 0x02, 0x26, 0x98, 0x97, 0x1A, 0x08, 0x81, 0xDB, + 0x82, 0x00, 0x13, 0x10, 0x83, 0x34, 0x30, 0x85, 0x57, 0x20, 0x05, 0x28, 0x80, 0x00, 0x74, 0x88, + 0x1D, 0x13, 0x8A, 0x88, 0x5E, 0x84, 0x28, 0xF1, 0x80, 0x98, 0xEF, 0x40, 0xAF, 0x7E, 0x90, 0x09, + 0x2F, 0x48, 0x00, 0x14, 0x78, 0x02, 0x0D, 0x40, 0x81, 0x1A, 0x00, 0x84, 0x49, 0xC0, 0x05, 0x5C, + 0x98, 0x84, 0x99, 0xE9, 0x81, 0x1D, 0xB0, 0x80, 0x01, 0x50, 0x05, 0x6D, 0xB8, 0x80, 0x07, 0x68, + 0x82, 0x17, 0x08, 0xAC, 0x4C, 0xEB, 0x07, 0x7D, 0x28, 0x45, 0x1A, 0x19, 0x8F, 0x5D, 0xDC, 0x07, + 0x5B, 0x80, 0x80, 0x04, 0xD8, 0x01, 0x13, 0x30, 0x81, 0xBF, 0x32, 0xA9, 0x04, 0xF8, 0x02, 0x7A, + 0x10, 0x84, 0x00, 0xD8, 0x81, 0x48, 0xE0, 0x04, 0x52, 0xC8, 0x03, 0x05, 0xB0, 0x85, 0x6B, 0x61, + 0xB6, 0xAE, 0xF2, 0x3C, 0x59, 0xEA, 0x87, 0x62, 0xFE, 0x20, 0x84, 0x0F, 0x10, 0x01, 0x3E, 0x4C, + 0x03, 0x52, 0x60, 0x82, 0x44, 0x7A, 0x80, 0x0B, 0xD8, 0x81, 0x33, 0x30, 0x83, 0x24, 0x90, 0x19, + 0x28, 0x70, 0x81, 0xE6, 0x0A, 0x81, 0x25, 0xA0, 0x01, 0x19, 0x78, 0x81, 0x06, 0x60, 0x33, 0x53, + 0x94, 0xA5, 0xD0, 0x51, 0xBA, 0x56, 0x5B, 0x2F, 0x4F, 0xF8, 0x2F, 0x29, 0xE0, 0x81, 0x0B, 0x80, + 0x00, 0x03, 0xB0, 0x80, 0x17, 0xB8, 0xBA, 0x60, 0xC0, 0x07, 0x7C, 0xD8, 0xC1, 0x19, 0xE0, 0x81, + 0x1D, 0x50, 0x00, 0x54, 0xD8, 0x07, 0x7D, 0x90, 0x18, 0x37, 0x7C, 0xA8, 0x62, 0x5A, 0x30, 0x6D, + 0xC8, 0x02, 0xE6, 0x4A, 0x81, 0x46, 0xE8, 0x83, 0x35, 0xD0, 0x82, 0x31, 0x60, 0x02, 0x1E, 0xA0, + 0xB9, 0x0F, 0xD0, 0x2B, 0x08, 0xF0, 0x80, 0x33, 0x98, 0x8F, 0x99, 0xA1, 0xBA, 0x28, 0x50, 0x82, + 0x29, 0x9A, 0x01, 0x85, 0xFA, 0x85, 0x22, 0x38, 0x80, 0x05, 0x80, 0x80, 0x02, 0x58, 0x80, 0xF2, + 0x0A, 0x47, 0x46, 0xEB, 0x07, 0x5A, 0x28, 0x00, 0x3E, 0xF0, 0x03, 0x30, 0xE8, 0x01, 0x05, 0x40, + 0xB0, 0x01, 0x28, 0x92, 0x10, 0x80, 0xBE, 0x70, 0xB0, 0x07, 0x7C, 0xC0, 0x86, 0x59, 0xC0, 0x86, + 0xF2, 0x02, 0x47, 0xD9, 0x61, 0x8E, 0x60, 0x94, 0x88, 0x7A, 0x90, 0xA5, 0xFE, 0x32, 0xAE, 0x59, + 0x70, 0x83, 0x14, 0xB8, 0x00, 0x0D, 0x08, 0x01, 0x31, 0xC8, 0x83, 0x3A, 0xFB, 0x34, 0x4B, 0x04, + 0x02, 0x11, 0x50, 0x89, 0x21, 0x28, 0x06, 0x89, 0x00, 0x85, 0x01, 0x80, 0x82, 0x35, 0x48, 0x02, + 0x2D, 0x90, 0x03, 0xA3, 0x19, 0x8A, 0x93, 0x38, 0x01, 0x0B, 0x68, 0x80, 0x89, 0xAC, 0xB3, 0x3C, + 0xD0, 0xBB, 0x75, 0xD8, 0x4A, 0x88, 0x61, 0x06, 0x02, 0xA0, 0x04, 0x4E, 0xB8, 0x04, 0x36, 0x48, + 0x82, 0x0F, 0xC0, 0x07, 0x71, 0x20, 0x80, 0xFE, 0x17, 0xE0, 0x81, 0xA1, 0x4C, 0x80, 0x20, 0xC8, + 0xC8, 0x52, 0x5B, 0xB4, 0xC5, 0xB8, 0x87, 0xD0, 0xC9, 0x07, 0x71, 0xB8, 0x86, 0xDB, 0x54, 0x06, + 0x54, 0x30, 0x82, 0x06, 0x58, 0x2E, 0x08, 0xB8, 0x80, 0x19, 0x90, 0x82, 0x35, 0x20, 0x1E, 0x30, + 0xD0, 0x26, 0xF5, 0xD8, 0x38, 0xF5, 0xCB, 0x02, 0x74, 0xE8, 0x07, 0xCD, 0xF2, 0x4A, 0x29, 0x48, + 0x83, 0x05, 0x29, 0x04, 0x3A, 0x58, 0xB1, 0x08, 0x32, 0x9B, 0x81, 0x94, 0x03, 0x4E, 0x80, 0x04, + 0x39, 0xE8, 0x83, 0x05, 0xB8, 0x86, 0xCE, 0xEC, 0x87, 0x22, 0x68, 0x84, 0x49, 0x88, 0x85, 0x4E, + 0x48, 0x83, 0x10, 0x68, 0x81, 0x7E, 0x50, 0x86, 0x02, 0xE8, 0x83, 0x77, 0x9B, 0x46, 0x0B, 0x40, + 0x07, 0x7D, 0xF4, 0x07, 0x87, 0xAB, 0xC9, 0x1B, 0xF9, 0x07, 0x71, 0x18, 0x02, 0x04, 0xD8, 0x2B, + 0xBE, 0x92, 0x00, 0x0D, 0x60, 0x81, 0x33, 0x80, 0x82, 0x33, 0x10, 0x03, 0x31, 0x98, 0x02, 0x26, + 0x98, 0xA0, 0x97, 0x34, 0xCC, 0xC8, 0xF8, 0x00, 0x41, 0xC0, 0x87, 0x19, 0x43, 0x33, 0xA7, 0xBA, + 0x00, 0x16, 0x50, 0x9C, 0x34, 0x20, 0x8A, 0xD5, 0x93, 0x82, 0x0B, 0xB0, 0x27, 0x13, 0xA0, 0x84, + 0x2E, 0x88, 0x84, 0x48, 0xE0, 0x03, 0x4A, 0x80, 0x00, 0x20, 0xDB, 0xCA, 0x7E, 0x20, 0x80, 0x61, + 0x98, 0x04, 0x4E, 0x98, 0x83, 0x35, 0xD8, 0x00, 0x37, 0xD0, 0xB7, 0x0B, 0x00, 0x84, 0x53, 0x88, + 0x04, 0x33, 0xF0, 0x01, 0x05, 0x08, 0x06, 0xEF, 0x20, 0xC5, 0x46, 0xFB, 0x87, 0xF0, 0x31, 0x80, + 0x0C, 0xE8, 0x80, 0x16, 0x20, 0x82, 0x1B, 0x00, 0x82, 0xDD, 0xEB, 0x81, 0x2E, 0x30, 0x83, 0xD6, + 0xE3, 0x01, 0x1F, 0xD8, 0x81, 0x1B, 0xF8, 0xB9, 0x05, 0x18, 0x81, 0x59, 0x58, 0x50, 0x30, 0x03, + 0xC7, 0xEF, 0x48, 0xC4, 0x14, 0x10, 0xFE, 0x01, 0x2A, 0xFA, 0xB4, 0x24, 0x98, 0x82, 0x1E, 0x90, + 0x00, 0x08, 0x90, 0x06, 0x69, 0x28, 0x00, 0x09, 0xA0, 0x04, 0x5D, 0x90, 0x05, 0x56, 0x50, 0x03, + 0x0B, 0x40, 0xBA, 0x37, 0xC4, 0x8B, 0x0E, 0x28, 0x85, 0x33, 0x60, 0x82, 0x29, 0x70, 0x81, 0x0F, + 0xED, 0x87, 0x18, 0xB8, 0x01, 0x0F, 0xB4, 0xC7, 0x33, 0x48, 0x00, 0x99, 0x64, 0x89, 0x7C, 0x40, + 0x35, 0x3B, 0xD1, 0x07, 0x71, 0x50, 0x81, 0x0C, 0xD8, 0xAB, 0x04, 0x48, 0x80, 0x07, 0xD0, 0x80, + 0x41, 0xCD, 0xA2, 0x6C, 0xB4, 0x00, 0x25, 0x2D, 0x02, 0x09, 0x33, 0xAF, 0xB9, 0x34, 0xB2, 0x7D, + 0x08, 0x87, 0x23, 0xA9, 0x20, 0x11, 0x00, 0x82, 0x3B, 0x5B, 0xC7, 0x5E, 0x58, 0xC9, 0x45, 0x59, + 0x40, 0x17, 0xB8, 0x81, 0x0F, 0x18, 0x87, 0xC2, 0x13, 0x3E, 0xE5, 0x98, 0x05, 0x02, 0x30, 0x81, + 0x6D, 0x5C, 0x00, 0x42, 0x90, 0xA5, 0x00, 0xA8, 0x85, 0x28, 0xE0, 0x04, 0x5D, 0x08, 0x84, 0x26, + 0x28, 0x80, 0x68, 0x80, 0x9D, 0x34, 0x73, 0x09, 0x61, 0x74, 0xC3, 0xBB, 0xC4, 0x86, 0x60, 0xF0, + 0x84, 0x2F, 0x20, 0x82, 0x79, 0x22, 0x82, 0x14, 0x08, 0x02, 0x5B, 0xB8, 0x89, 0x19, 0xC1, 0xD3, + 0x73, 0x4B, 0xB7, 0x88, 0xF8, 0xB2, 0x70, 0x08, 0x82, 0x0B, 0x20, 0x12, 0x7B, 0x6A, 0x80, 0x22, + 0xF9, 0x00, 0x37, 0x25, 0x8F, 0x05, 0x8B, 0x86, 0x61, 0x08, 0x06, 0x7B, 0x58, 0xD4, 0x37, 0xAC, + 0x18, 0x7D, 0x60, 0x86, 0x11, 0x78, 0x25, 0x65, 0x98, 0xA5, 0x6B, 0x98, 0x43, 0x5C, 0xA0, 0x04, + 0x28, 0xC8, 0xB3, 0x8C, 0xB4, 0x93, 0x43, 0x44, 0x35, 0x34, 0x2B, 0xB5, 0xCD, 0xDA, 0x07, 0x31, + 0x4C, 0x36, 0x3E, 0x2B, 0x37, 0xC5, 0xA8, 0x93, 0x1A, 0xDC, 0x07, 0x54, 0xB8, 0x00, 0x11, 0xE0, + 0x81, 0x6B, 0x73, 0xCD, 0x0C, 0xFE, 0x68, 0x80, 0x1B, 0x48, 0x01, 0x08, 0x40, 0x2A, 0x48, 0xD3, + 0x4A, 0xC4, 0x28, 0xC5, 0x1A, 0x92, 0x08, 0x59, 0x82, 0xB2, 0x62, 0xAA, 0xB0, 0x02, 0xC8, 0x43, + 0x08, 0xF0, 0x82, 0x05, 0x65, 0xB4, 0xFB, 0xE1, 0x48, 0x38, 0xAA, 0xC0, 0x36, 0x24, 0xD8, 0x3B, + 0xF1, 0x23, 0xCE, 0x3A, 0x53, 0x13, 0x08, 0x05, 0x33, 0x98, 0xA2, 0x06, 0x08, 0x86, 0x7E, 0x98, + 0x05, 0x0B, 0x10, 0x81, 0x1D, 0x10, 0x01, 0x05, 0x90, 0x06, 0xF3, 0x82, 0x09, 0xB9, 0x2C, 0x58, + 0x93, 0x9B, 0xA5, 0x91, 0x59, 0x07, 0x65, 0x50, 0x86, 0x71, 0xB0, 0x56, 0x88, 0xB1, 0xD1, 0xAE, + 0x42, 0xB7, 0x5F, 0x1C, 0x19, 0xD0, 0x83, 0xA8, 0xE1, 0xEB, 0x07, 0x0A, 0x10, 0x02, 0x63, 0xD0, + 0x05, 0x3E, 0x18, 0x83, 0x25, 0x28, 0x00, 0x69, 0xC8, 0x87, 0x6B, 0x38, 0x80, 0x55, 0x1C, 0xCA, + 0x0B, 0xA0, 0x05, 0x8A, 0x4D, 0x9B, 0x96, 0x5D, 0x2A, 0xD8, 0xFC, 0x9C, 0xE2, 0xFB, 0x07, 0x78, + 0xF0, 0xC7, 0xE4, 0x68, 0xD0, 0x8E, 0x3C, 0x26, 0x9B, 0xFC, 0x45, 0x12, 0xB9, 0x06, 0x0A, 0x30, + 0x86, 0x2F, 0xE5, 0x03, 0x33, 0xE0, 0x01, 0x08, 0xB0, 0x07, 0xF2, 0xB8, 0x00, 0x2C, 0xE0, 0x03, + 0x3E, 0xD0, 0x02, 0x29, 0x30, 0x80, 0x6B, 0xB8, 0xD9, 0xAD, 0xF4, 0x45, 0xFE, 0xD3, 0x2C, 0x88, + 0x81, 0x43, 0x93, 0x0B, 0x47, 0xBA, 0xE0, 0x3F, 0x5E, 0x2C, 0xBE, 0x80, 0xB2, 0x80, 0x5A, 0xA0, + 0x04, 0x56, 0x08, 0x12, 0x13, 0x90, 0x41, 0xF2, 0xD8, 0x80, 0x40, 0xD0, 0x85, 0x48, 0x88, 0x94, + 0x06, 0x48, 0x2D, 0x52, 0x2C, 0x58, 0x6D, 0x21, 0xA6, 0x89, 0x28, 0x44, 0xBD, 0xDD, 0x5B, 0xAE, + 0xA2, 0x25, 0xB9, 0xB0, 0xCB, 0x45, 0x49, 0xCA, 0x3F, 0x68, 0x82, 0x1B, 0x80, 0x80, 0x60, 0x75, + 0x83, 0x06, 0xF8, 0x52, 0xB1, 0x59, 0x60, 0x84, 0x2E, 0x30, 0x81, 0x59, 0xB8, 0xD8, 0xCE, 0x5C, + 0xDD, 0x9E, 0xA5, 0x93, 0xF9, 0x9C, 0x5B, 0xD6, 0xEA, 0x45, 0x93, 0xC3, 0xDC, 0x9E, 0x2D, 0x91, + 0xF5, 0xC2, 0x87, 0x79, 0xB2, 0x80, 0x0F, 0x58, 0x80, 0x5F, 0x98, 0xA5, 0x7D, 0xE8, 0x80, 0x5A, + 0x30, 0x06, 0x5C, 0x60, 0x85, 0x1D, 0x18, 0x80, 0xEE, 0x64, 0x5D, 0x1B, 0x4A, 0x0E, 0xCF, 0xDB, + 0xDA, 0xBE, 0xDD, 0x9A, 0xFB, 0x89, 0x5D, 0x8A, 0xB5, 0xC9, 0xEF, 0x58, 0xB0, 0xB5, 0xAC, 0x59, + 0xEA, 0x05, 0x85, 0x05, 0x08, 0x82, 0x1B, 0xF0, 0x80, 0x20, 0xF0, 0x56, 0x12, 0x49, 0x5E, 0xE8, + 0x3D, 0x57, 0xE6, 0x88, 0x9D, 0xDA, 0x7D, 0x5E, 0xAF, 0x9D, 0x98, 0x9C, 0x4D, 0x0C, 0x70, 0x94, + 0x4D, 0x0A, 0x03, 0x9D, 0xB8, 0x70, 0x28, 0x58, 0xEB, 0x85, 0xF9, 0x45, 0x07, 0x71, 0x88, 0xB2, + 0xE4, 0xB5, 0x5D, 0xE9, 0xAD, 0x31, 0x3C, 0x31, 0xDF, 0xF3, 0xD1, 0x2F, 0xF5, 0x15, 0x99, 0x1A, + 0x5C, 0x8E, 0x92, 0x1B, 0x11, 0x7F, 0x54, 0xB8, 0x63, 0xC2, 0xDF, 0x85, 0x4B, 0xE0, 0x05, 0x46, + 0xE0, 0x3F, 0x62, 0xE0, 0x07, 0x86, 0xE0, 0x08, 0x96, 0xE0, 0x09, 0xA6, 0xE0, 0x0A, 0xB6, 0xE0, + 0x0B, 0xC6, 0x60, 0xF0, 0x08, 0x08, 0x00, 0x3B, +}; diff --git a/demos/modules/gwin/widgets/main.c b/demos/modules/gwin/widgets/main.c new file mode 100644 index 00000000..bff842f4 --- /dev/null +++ b/demos/modules/gwin/widgets/main.c @@ -0,0 +1,338 @@ +/* + * Copyright (c) 2012, 2013, Joel Bodenmann aka Tectu <joel@unormal.org> + * Copyright (c) 2012, 2013, Andrew Hannam aka inmarket + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the <organization> nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "gfx.h" + +// include our chibios logo in a .gif format +#include "image_chibios.h" + +/** + * This demo demonstrates many of the GWIN widgets. + * On the "Radio" tab try playing with the color radio buttons. + * On the "Checkbox" tab try playing with the "Disable All" checkbox. + */ + +/* Our custom yellow style */ +static const GWidgetStyle YellowWidgetStyle = { + Yellow, // window background + + // enabled color set + { + HTML2COLOR(0x0000FF), // text + HTML2COLOR(0x404040), // edge + HTML2COLOR(0xE0E0E0), // fill + HTML2COLOR(0xE0E0E0), // progress - inactive area + }, + + // disabled color set + { + HTML2COLOR(0xC0C0C0), // text + HTML2COLOR(0x808080), // edge + HTML2COLOR(0xE0E0E0), // fill + HTML2COLOR(0xC0E0C0), // progress - active area + }, + + // pressed color set + { + HTML2COLOR(0xFF00FF), // text + HTML2COLOR(0x404040), // edge + HTML2COLOR(0x808080), // fill + HTML2COLOR(0x00E000), // progress - active area + }, +}; + +/* The variables we need */ +static GListener gl; +static GHandle ghConsole; +static GHandle ghTabButtons, ghTabSliders, ghTabCheckboxes, ghTabLabels, ghTabRadios, ghTabImages; +static GHandle ghButton1, ghButton2, ghButton3, ghButton4; +static GHandle ghSlider1, ghSlider2, ghSlider3, ghSlider4; +static GHandle ghCheckbox1, ghCheckbox2, ghCheckDisableAll; +static GHandle ghLabel1; +static GHandle ghRadio1, ghRadio2; +static GHandle ghRadioBlack, ghRadioWhite, ghRadioYellow; +static GHandle ghImage1; + +/* Some useful macros */ +#define ScrWidth gdispGetWidth() +#define ScrHeight gdispGetHeight() + +#define TAB_HEIGHT 30 +#define LABEL_HEIGHT 40 +#define BUTTON_WIDTH 50 +#define BUTTON_HEIGHT 30 +#define SLIDER_WIDTH 20 +#define CHECKBOX_WIDTH 80 +#define CHECKBOX_HEIGHT 20 +#define RADIO_WIDTH 50 +#define RADIO_HEIGHT 20 +#define COLOR_WIDTH 80 +#define DISABLEALL_WIDTH 100 +#define GROUP_TABS 0 +#define GROUP_YESNO 1 +#define GROUP_COLORS 2 + +/** + * Create all the widgets. + * With the exception of the Tabs they are all created invisible. + */ +static void createWidgets(void) { + GWidgetInit wi; + + wi.customDraw = 0; wi.customParam = 0; wi.customStyle = 0; + + // Create the Tabs + wi.g.show = TRUE; wi.customDraw = gwinRadioDraw_Tab; + wi.g.width = ScrWidth/6; wi.g.height = TAB_HEIGHT; wi.g.y = 0; + wi.g.x = 0*wi.g.width; wi.text = "Buttons"; ghTabButtons = gwinRadioCreate(NULL, &wi, GROUP_TABS); + wi.g.x = 1*wi.g.width; wi.text = "Sliders"; ghTabSliders = gwinRadioCreate(NULL, &wi, GROUP_TABS); + wi.g.x = 2*wi.g.width; wi.text = "Checkbox"; ghTabCheckboxes = gwinRadioCreate(NULL, &wi, GROUP_TABS); + wi.g.x = 3*wi.g.width; wi.text = "Radios"; ghTabRadios = gwinRadioCreate(NULL, &wi, GROUP_TABS); + wi.g.x = 4*wi.g.width; wi.text = "Labels"; ghTabLabels = gwinRadioCreate(NULL, &wi, GROUP_TABS); + wi.g.x = 5*wi.g.width; wi.text = "Images"; ghTabImages = gwinRadioCreate(NULL, &wi, GROUP_TABS); + + // Buttons + wi.g.show = FALSE; wi.customDraw = 0; + wi.g.width = BUTTON_WIDTH; wi.g.height = BUTTON_HEIGHT; wi.g.y = TAB_HEIGHT+5; + wi.g.x = 0+0*(BUTTON_WIDTH+1); wi.text = "B1"; ghButton1 = gwinButtonCreate(NULL, &wi); + wi.g.x = 0+1*(BUTTON_WIDTH+1); wi.text = "B2"; ghButton2 = gwinButtonCreate(NULL, &wi); + wi.g.x = 0+2*(BUTTON_WIDTH+1); wi.text = "B3"; ghButton3 = gwinButtonCreate(NULL, &wi); + wi.g.x = 0+3*(BUTTON_WIDTH+1); wi.text = "B4"; ghButton4 = gwinButtonCreate(NULL, &wi); + + // Horizontal Sliders + wi.g.width = ScrWidth/2-2; wi.g.height = SLIDER_WIDTH; wi.g.x = ScrWidth/2+1; + wi.g.y = ScrHeight/2-2*(SLIDER_WIDTH+1); wi.text = "S1"; ghSlider1 = gwinSliderCreate(NULL, &wi); + wi.g.y = ScrHeight/2-1*(SLIDER_WIDTH+1); wi.text = "S2"; ghSlider2 = gwinSliderCreate(NULL, &wi); + + // Vertical Sliders + wi.g.width = SLIDER_WIDTH; wi.g.height = ScrHeight/2-2; wi.g.y = ScrHeight/2+1; + wi.g.x = 0+0*(SLIDER_WIDTH+1); wi.text = "S3"; ghSlider3 = gwinSliderCreate(NULL, &wi); + wi.g.x = 0+1*(SLIDER_WIDTH+1); wi.text = "S4"; ghSlider4 = gwinSliderCreate(NULL, &wi); + + // Checkboxes - for the 2nd checkbox we apply special drawing before making it visible + wi.g.width = CHECKBOX_WIDTH; wi.g.height = CHECKBOX_HEIGHT; wi.g.x = 0; + wi.g.y = TAB_HEIGHT+5+0*(CHECKBOX_HEIGHT+1); wi.text = "C1"; ghCheckbox1 = gwinCheckboxCreate(NULL, &wi); + wi.customDraw = gwinCheckboxDraw_CheckOnRight; + wi.g.y = TAB_HEIGHT+5+1*(CHECKBOX_HEIGHT+1); wi.text = "C2"; ghCheckbox2 = gwinCheckboxCreate(NULL, &wi); + wi.customDraw = 0; wi.g.width = DISABLEALL_WIDTH; + wi.g.y = TAB_HEIGHT+5+2*(CHECKBOX_HEIGHT+1); wi.text = "Disable All"; ghCheckDisableAll = gwinCheckboxCreate(NULL, &wi); + + // Labels + wi.g.width = 0; wi.g.height = LABEL_HEIGHT; // dynamic width, fixed height + wi.g.y = TAB_HEIGHT+5+2*(CHECKBOX_HEIGHT+1); wi.text = "Label"; ghLabel1 = gwinLabelCreate(NULL, &wi); + + // Radio Buttons + wi.g.width = RADIO_WIDTH; wi.g.height = RADIO_HEIGHT; wi.g.y = TAB_HEIGHT+5; + wi.g.x = 0*wi.g.width; wi.text = "Yes"; ghRadio1 = gwinRadioCreate(NULL, &wi, GROUP_YESNO); + wi.g.x = 1*wi.g.width; wi.text = "No"; ghRadio2 = gwinRadioCreate(NULL, &wi, GROUP_YESNO); + wi.g.width = COLOR_WIDTH; wi.g.y += RADIO_HEIGHT+5; + wi.g.x = 0*wi.g.width; wi.text = "Black"; ghRadioBlack = gwinRadioCreate(NULL, &wi, GROUP_COLORS); + wi.g.x = 1*wi.g.width; wi.text = "White"; ghRadioWhite = gwinRadioCreate(NULL, &wi, GROUP_COLORS); + wi.g.x = 2*wi.g.width; wi.text = "Yellow"; ghRadioYellow = gwinRadioCreate(NULL, &wi, GROUP_COLORS); + gwinRadioPress(ghRadioWhite); + + // Image + wi.g.x = ScrWidth-210; wi.g.y = TAB_HEIGHT + 10; wi.g.width = 200; wi.g.height = 200; + ghImage1 = gwinImageCreate(NULL, &wi.g); + gwinImageOpenMemory(ghImage1, image_chibios); + gwinImageCache(ghImage1); + + // Console - we apply some special colors before making it visible + wi.g.width = ScrWidth/2-1; wi.g.height = ScrHeight/2-1; + wi.g.x = ScrWidth/2+1; wi.g.y = ScrHeight/2+1; + ghConsole = gwinConsoleCreate(NULL, &wi.g); + gwinSetColor(ghConsole, Yellow); + gwinSetBgColor(ghConsole, Black); +} + +/** + * Set the visibility of widgets based on which tab is selected. + */ +static void setTab(GHandle tab) { + /* Make sure everything is invisible first */ + gwinSetVisible(ghButton1, FALSE); gwinSetVisible(ghButton2, FALSE); + gwinSetVisible(ghButton3, FALSE); gwinSetVisible(ghButton4, FALSE); + gwinSetVisible(ghSlider1, FALSE); gwinSetVisible(ghSlider2, FALSE); + gwinSetVisible(ghSlider3, FALSE); gwinSetVisible(ghSlider4, FALSE); + gwinSetVisible(ghCheckbox1, FALSE); gwinSetVisible(ghCheckbox2, FALSE); gwinSetVisible(ghCheckDisableAll, FALSE); + gwinSetVisible(ghLabel1, FALSE); + gwinSetVisible(ghRadio1, FALSE); gwinSetVisible(ghRadio2, FALSE); + gwinSetVisible(ghRadioWhite, FALSE);gwinSetVisible(ghRadioBlack, FALSE);gwinSetVisible(ghRadioYellow, FALSE); + gwinSetVisible(ghImage1, FALSE); + + /* Turn on widgets depending on the tab selected */ + if (tab == ghTabButtons) { + gwinSetVisible(ghButton1, TRUE); gwinSetVisible(ghButton2, TRUE); + gwinSetVisible(ghButton3, TRUE); gwinSetVisible(ghButton4, TRUE); + } else if (tab == ghTabSliders) { + gwinSetVisible(ghSlider1, TRUE); gwinSetVisible(ghSlider2, TRUE); + gwinSetVisible(ghSlider3, TRUE); gwinSetVisible(ghSlider4, TRUE); + } else if (tab == ghTabCheckboxes) { + gwinSetVisible(ghCheckbox1, TRUE); gwinSetVisible(ghCheckbox2, TRUE); gwinSetVisible(ghCheckDisableAll, TRUE); + } else if (tab == ghTabLabels) { + gwinSetVisible(ghLabel1, TRUE); + } else if (tab == ghTabRadios) { + gwinSetVisible(ghRadio1, TRUE); gwinSetVisible(ghRadio2, TRUE); + gwinSetVisible(ghRadioWhite, TRUE); gwinSetVisible(ghRadioBlack, TRUE); gwinSetVisible(ghRadioYellow, TRUE); + } else if (tab == ghTabImages) { + gwinSetVisible(ghImage1, TRUE); + } +} + +/** + * Set the enabled state of every widget (except the tabs etc) + */ +static void setEnabled(bool_t ena) { + gwinSetEnabled(ghButton1, ena); gwinSetEnabled(ghButton2, ena); + gwinSetEnabled(ghButton3, ena); gwinSetEnabled(ghButton4, ena); + gwinSetEnabled(ghSlider1, ena); gwinSetEnabled(ghSlider2, ena); + gwinSetEnabled(ghSlider3, ena); gwinSetEnabled(ghSlider4, ena); + gwinSetEnabled(ghCheckbox1, ena); gwinSetEnabled(ghCheckbox2, ena); //gwinSetEnabled(ghCheckDisableAll, TRUE); + gwinSetEnabled(ghLabel1, ena); + gwinSetEnabled(ghRadio1, ena); gwinSetEnabled(ghRadio2, ena); + gwinSetEnabled(ghRadioWhite, ena); gwinSetEnabled(ghRadioBlack, ena); gwinSetEnabled(ghRadioYellow, ena); + gwinSetEnabled(ghImage1, ena); +} + +int main(void) { + GEvent * pe; + + // Initialize the display + gfxInit(); + + // Set the widget defaults + gwinSetDefaultFont(gdispOpenFont("UI2")); + gwinSetDefaultStyle(&WhiteWidgetStyle, FALSE); + gdispClear(White); + + // Connect the mouse + #if GINPUT_NEED_MOUSE + gwinAttachMouse(0); + #endif + + // Create the gwin windows/widgets + createWidgets(); + + // Assign toggles and dials to specific buttons & sliders etc. + #if GINPUT_NEED_TOGGLE + gwinAttachToggle(ghButton1, 0, 0); + gwinAttachToggle(ghButton2, 0, 1); + #endif + #if GINPUT_NEED_DIAL + gwinAttachDial(ghSlider1, 0, 0); + gwinAttachDial(ghSlider3, 0, 1); + #endif + + // Make the console visible + gwinSetVisible(ghConsole, TRUE); + gwinClear(ghConsole); + + // We want to listen for widget events + geventListenerInit(&gl); + gwinAttachListener(&gl); + + // Press the Tab we want visible + gwinRadioPress(ghTabButtons); + + while(1) { + // Get an Event + pe = geventEventWait(&gl, TIME_INFINITE); + + switch(pe->type) { + case GEVENT_GWIN_BUTTON: + gwinPrintf(ghConsole, "Button %s\n", gwinGetText(((GEventGWinButton *)pe)->button)); + break; + + case GEVENT_GWIN_SLIDER: + gwinPrintf(ghConsole, "Slider %s=%d\n", gwinGetText(((GEventGWinSlider *)pe)->slider), ((GEventGWinSlider *)pe)->position); + break; + + case GEVENT_GWIN_CHECKBOX: + gwinPrintf(ghConsole, "Checkbox %s=%s\n", gwinGetText(((GEventGWinCheckbox *)pe)->checkbox), ((GEventGWinCheckbox *)pe)->isChecked ? "Checked" : "UnChecked"); + + // If it is the Disable All checkbox then do that. + if (((GEventGWinCheckbox *)pe)->checkbox == ghCheckDisableAll) { + gwinPrintf(ghConsole, "%s All\n", ((GEventGWinCheckbox *)pe)->isChecked ? "Disable" : "Enable"); + setEnabled(!((GEventGWinCheckbox *)pe)->isChecked); + } + break; + + case GEVENT_GWIN_RADIO: + gwinPrintf(ghConsole, "Radio Group %u=%s\n", ((GEventGWinRadio *)pe)->group, gwinGetText(((GEventGWinRadio *)pe)->radio)); + + switch(((GEventGWinRadio *)pe)->group) { + case GROUP_TABS: + + // Set control visibility depending on the tab selected + setTab(((GEventGWinRadio *)pe)->radio); + + // Do some special animation for Label1 to demonstrate auto width sizing + if (((GEventGWinRadio *)pe)->radio == ghTabLabels) { + gwinPrintf(ghConsole, "Change Label Text\n"); + gfxSleepMilliseconds(1000); + gwinSetText(ghLabel1, "Very Big Label", FALSE); + + gfxSleepMilliseconds(1000); + gwinSetText(ghLabel1, "Label", FALSE); + } + break; + + case GROUP_COLORS: + { + const GWidgetStyle *pstyle; + + gwinPrintf(ghConsole, "Change Color Scheme\n"); + + if (((GEventGWinRadio *)pe)->radio == ghRadioYellow) + pstyle = &YellowWidgetStyle; + else if (((GEventGWinRadio *)pe)->radio == ghRadioBlack) + pstyle = &BlackWidgetStyle; + else + pstyle = &WhiteWidgetStyle; + + // Clear the screen to the new color - we avoid the console area as it can't redraw itself + #if GDISP_NEED_CLIP + gdispUnsetClip(); + #endif + gdispFillArea(0, 0, ScrWidth, ScrHeight/2, pstyle->background); + gdispFillArea(0, ScrHeight/2, ScrWidth/2, ScrHeight/2, pstyle->background); + + // Update the style on all controls + gwinSetDefaultStyle(pstyle, TRUE); + } + break; + } + break; + + default: + gwinPrintf(ghConsole, "Unknown %d\n", pe->type); + break; + } + } + return 0; +} diff --git a/demos/modules/gwin/slider/readme.txt b/demos/modules/gwin/widgets/readme.txt index 02d733e9..b5777061 100644 --- a/demos/modules/gwin/slider/readme.txt +++ b/demos/modules/gwin/widgets/readme.txt @@ -1,6 +1,8 @@ -This demo supports input from both a mouse/touch and/or a dial input. +This demo supports input from both a mouse/touch, toggles and/or a dial input. If your platform does not support one or the other, turn it off in gfxconf.h Note that you will need to include the drivers into your project makefile for whichever inputs you decide to use. + +For some fun have a play with the "colors" radio group and the "Disable All" checkbox. |