perf(nxp): v9.1.0 upstream vglite optimization (#6646)

Signed-off-by: Nicușor Cîțu <nicusor.citu@nxp.com>
Signed-off-by: Ana Grad <ana.grad@nxp.com>
Signed-off-by: Cosmin-Daniel Radu <cosmin.radu_1@nxp.com>
Signed-off-by: Cristian Stoica <cristianmarian.stoica@nxp.com>
Co-authored-by: Ana Grad <ana.grad@nxp.com>
Co-authored-by: Cristian Stoica <cristianmarian.stoica@nxp.com>
This commit is contained in:
nicusorcitu
2024-08-26 21:11:26 +03:00
committed by GitHub
parent 0bd8cbcc9e
commit 2b33f8b0a7
16 changed files with 354 additions and 144 deletions

20
Kconfig
View File

@@ -346,26 +346,36 @@ menu "LVGL configuration"
depends on LV_USE_DRAW_VGLITE
default n
config LV_USE_VGLITE_DRAW_ASYNC
bool "Enable VGLite draw async"
config LV_USE_VGLITE_DRAW_THREAD
bool "Use additional draw thread for VG-Lite processing"
depends on LV_USE_DRAW_VGLITE && LV_USE_OS > 0
default y
config LV_USE_VGLITE_DRAW_ASYNC
bool "Enable VGLite draw async"
depends on LV_USE_VGLITE_DRAW_THREAD
default y
help
Queue multiple tasks and flash them once to the GPU.
Queue multiple tasks and flash them once to the GPU. The task ready state will be send asynchronous to dispatcher.
config LV_USE_VGLITE_ASSERT
bool "Enable VGLite asserts"
default n
depends on LV_USE_DRAW_VGLITE
default n
config LV_USE_DRAW_PXP
bool "Use NXP's PXP on iMX RTxxx platforms"
default n
config LV_USE_PXP_DRAW_THREAD
bool "Use additional draw thread for PXP processing"
depends on LV_USE_DRAW_PXP && LV_USE_OS > 0
default y
config LV_USE_PXP_ASSERT
bool "Enable PXP asserts"
default n
depends on LV_USE_DRAW_PXP
default n
config LV_USE_DRAW_DAVE2D
bool "Use Renesas Dave2D on RA platforms"

View File

@@ -25,48 +25,48 @@ static const
LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMAGE_IMG_LVGL_LOGO
uint8_t img_lvgl_logo_map[] = {
0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xda,0xda,0xd9,0x27,0x90,0x8f,0x8d,0x7d,0x74,0x74,0x71,0xa0,0x77,0x76,0x73,0x9f,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x76,0x76,0x73,0xa0,0x77,0x76,0x73,0x9b,0xa4,0xa4,0xa2,0x64,0xef,0xef,0xee,0x0f,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,
0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x9d,0x9c,0x9a,0x72,0x44,0x43,0x3f,0xe2,0x37,0x36,0x32,0xfe,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xf8,0x55,0x54,0x50,0xc9,0xc5,0xc5,0xc3,0x3f,0xff,0xff,0xff,0x00,
0xff,0xff,0xff,0x00,0x9e,0x9d,0x9b,0x6f,0x29,0x27,0x23,0xff,0x35,0x33,0x2f,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x35,0x34,0x30,0xff,0x30,0x2f,0x2a,0xff,0x34,0x33,0x2f,0xff,0x39,0x38,0x34,0xff,0x30,0x2f,0x2a,0xff,0x38,0x37,0x33,0xf1,0xcf,0xce,0xcd,0x33,
0xdc,0xdb,0xdb,0x25,0x44,0x43,0x40,0xe5,0x35,0x34,0x30,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x30,0x2f,0x2b,0xff,0x48,0x47,0x43,0xff,0x6b,0x6a,0x67,0xff,0x4e,0x4d,0x49,0xff,0x31,0x30,0x2c,0xff,0x3a,0x39,0x35,0xff,0x2d,0x2c,0x28,0xff,0x6b,0x6b,0x67,0xb1,
0x8f,0x8f,0x8d,0x7d,0x37,0x36,0x32,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x32,0x31,0x2c,0xff,0x67,0x66,0x63,0xff,0xe6,0xe5,0xe5,0xff,0xff,0xff,0xff,0xff,0xed,0xed,0xed,0xff,0x70,0x6f,0x6d,0xff,0x30,0x2f,0x2b,0xff,0x37,0x36,0x32,0xff,0x44,0x43,0x3f,0xe7,
0x75,0x74,0x71,0x9f,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x34,0x33,0x2e,0xff,0xcf,0xcf,0xce,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdb,0xdb,0xdb,0xff,0x39,0x38,0x34,0xff,0x36,0x35,0x31,0xff,0x40,0x3f,0x3b,0xef,
0x77,0x76,0x73,0x9e,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x36,0x35,0x31,0xff,0xd9,0xd8,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xe7,0xe6,0xff,0x3e,0x3d,0x39,0xff,0x35,0x34,0x30,0xff,0x41,0x40,0x3c,0xee,
0x77,0x76,0x73,0x9e,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x2f,0x2e,0x2a,0xff,0x88,0x88,0x85,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0x95,0x92,0xff,0x30,0x2f,0x2b,0xff,0x38,0x36,0x33,0xff,0x41,0x40,0x3c,0xee,
0x77,0x76,0x73,0x9e,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x38,0x37,0x33,0xff,0x33,0x32,0x2e,0xff,0x75,0x75,0x72,0xff,0xa0,0x9f,0x9d,0xff,0x7d,0x7d,0x7a,0xff,0x36,0x35,0x31,0xff,0x37,0x36,0x32,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x77,0x76,0x73,0x9e,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x38,0x37,0x33,0xff,0x2f,0x2e,0x2a,0xff,0x2c,0x2b,0x27,0xff,0x2e,0x2d,0x29,0xff,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x77,0x76,0x73,0x9f,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x72,0x72,0x6f,0xa2,0x35,0x34,0x30,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0xb8,0xb8,0xb6,0x4d,0x40,0x3f,0x3c,0xea,0x2e,0x2d,0x28,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x31,0x2f,0x2b,0xff,0x2e,0x2d,0x29,0xff,0x32,0x31,0x2d,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0xff,0xff,0xff,0x00,0xdd,0xdc,0xd9,0x25,0xbf,0xbc,0xb7,0x4b,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc3,0xc1,0xbc,0x47,0xaa,0xa9,0xa5,0x63,0x58,0x57,0x53,0xcc,0x30,0x2f,0x2b,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0xff,0xff,0xff,0x00,0xfd,0xff,0xff,0x02,0xee,0xf6,0xff,0x13,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xee,0xf6,0xff,0x13,0xff,0xff,0xff,0x00,0xf3,0xf2,0xf0,0x0a,0x64,0x63,0x61,0xb9,0x31,0x30,0x2c,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0xd1,0xde,0xfd,0x30,0x49,0x7d,0xf6,0xc8,0x24,0x63,0xf4,0xf7,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x23,0x62,0xf4,0xf6,0x50,0x81,0xf6,0xbf,0xf3,0xf9,0xff,0x0c,0xd3,0xd2,0xce,0x2f,0x35,0x34,0x30,0xfa,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x68,0x93,0xf7,0x9f,0x18,0x59,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x0f,0x53,0xf3,0xff,0xba,0xcf,0xff,0x4a,0xf5,0xf1,0xea,0x0a,0x41,0x40,0x3c,0xed,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x64,0x90,0xf7,0xa4,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb7,0xcc,0xff,0x4f,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x62,0x8e,0xf7,0xa7,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x15,0x57,0xf3,0xff,0xb6,0xcc,0xff,0x50,0xf2,0xef,0xe8,0x0f,0x3f,0x3e,0x3a,0xf1,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x7f,0xa3,0xf8,0x87,0x15,0x57,0xf3,0xff,0x14,0x56,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x13,0x56,0xf2,0xff,0x10,0x53,0xf3,0xff,0xc5,0xd7,0xff,0x3e,0xf8,0xf5,0xef,0x08,0x42,0x41,0x3d,0xe8,0x2a,0x29,0x24,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x30,0x2f,0x2a,0xff,0x35,0x34,0x30,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0xef,0xf4,0xfe,0x0f,0x81,0xa5,0xf8,0x88,0x52,0x83,0xf6,0xbc,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x52,0x83,0xf6,0xbb,0x8a,0xab,0xf9,0x7e,0xfb,0xfd,0xff,0x04,0xff,0xff,0xff,0x00,0xb7,0xb6,0xb5,0x50,0x67,0x67,0x63,0xb1,0x69,0x68,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6b,0x6a,0x67,0xb3,0x67,0x66,0x63,0xb6,0x46,0x45,0x41,0xe5,0x30,0x2f,0x2a,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xe5,0xe8,0xe8,0x17,0x69,0x68,0x65,0xb3,0x30,0x2f,0x2b,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0xfa,0xfd,0xfa,0x02,0xbb,0xec,0xb8,0x54,0x9d,0xe3,0x99,0x8c,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0x9d,0xe3,0x98,0x8b,0xc1,0xed,0xbe,0x49,0xfe,0xff,0xfe,0x00,0xff,0xff,0xff,0x00,0xfe,0xd6,0xca,0x38,0xfc,0x9d,0x83,0x8e,0xfc,0x9f,0x84,0x95,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9d,0x82,0x96,0xfd,0xa7,0x8f,0x81,0xff,0xf4,0xf0,0x0f,0xeb,0xec,0xeb,0x14,0x47,0x46,0x43,0xe0,0x35,0x34,0x30,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0xae,0xe7,0xab,0x61,0x61,0xd1,0x5b,0xfc,0x5e,0xd0,0x58,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5d,0xd0,0x58,0xff,0x5e,0xd1,0x59,0xf5,0xd8,0xf7,0xdb,0x28,0xff,0xf6,0xf7,0x07,0xf9,0x70,0x4a,0xdd,0xf8,0x58,0x2b,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x53,0x26,0xff,0xfb,0x98,0x7c,0x9b,0xff,0xff,0xff,0x00,0x7c,0x7c,0x7a,0x9d,0x2e,0x2d,0x29,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x93,0xe0,0x90,0x9a,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x5f,0xd1,0x5a,0xff,0xc9,0xf4,0xcc,0x42,0xff,0xef,0xef,0x0e,0xf8,0x69,0x41,0xf0,0xf8,0x63,0x3a,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x89,0x69,0xb6,0xff,0xff,0xff,0x00,0x83,0x83,0x81,0x93,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x96,0xe1,0x93,0x95,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x96,0xe1,0x93,0x95,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x96,0xe1,0x93,0x95,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x96,0xe1,0x93,0x95,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x95,0xe1,0x93,0x97,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,
0x97,0xe1,0x93,0x8d,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x40,0x3f,0x3b,0xee,
0xba,0xeb,0xb8,0x51,0x66,0xd3,0x61,0xf8,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x35,0x34,0x30,0xff,0x4b,0x49,0x46,0xde,
0xf2,0xfc,0xf2,0x0a,0x7c,0xd9,0x78,0xbf,0x60,0xd1,0x5b,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x40,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xed,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6b,0xb2,0xff,0xff,0xff,0x00,0x81,0x81,0x7f,0x96,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x3a,0x39,0x35,0xff,0x29,0x28,0x24,0xff,0x85,0x85,0x82,0x8e,
0xff,0xff,0xff,0x00,0xd3,0xf2,0xd1,0x30,0x66,0xd2,0x61,0xe2,0x5e,0xd0,0x59,0xff,0x65,0xd3,0x60,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x5c,0xd0,0x57,0xff,0xcb,0xf4,0xce,0x3b,0xff,0xf1,0xf1,0x0c,0xf8,0x68,0x3f,0xf1,0xf8,0x61,0x37,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3b,0xff,0xf8,0x5a,0x2f,0xff,0xfa,0x89,0x69,0xb5,0xff,0xff,0xff,0x00,0x7f,0x7f,0x7d,0x97,0x2a,0x29,0x24,0xff,0x38,0x37,0x33,0xff,0x37,0x36,0x32,0xff,0x37,0x36,0x32,0xff,0x37,0x36,0x32,0xff,0x37,0x36,0x32,0xff,0x37,0x36,0x32,0xff,0x38,0x37,0x33,0xff,0x35,0x34,0x30,0xff,0x29,0x28,0x24,0xff,0x57,0x56,0x53,0xc8,0xeb,0xeb,0xea,0x14,
0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xda,0xf4,0xd9,0x26,0x8d,0xdf,0x8a,0x9f,0x6f,0xd6,0x6b,0xdd,0x6c,0xd4,0x67,0xed,0x6d,0xd5,0x68,0xed,0x6d,0xd5,0x68,0xec,0x6d,0xd5,0x68,0xec,0x6d,0xd5,0x68,0xec,0x6d,0xd5,0x68,0xed,0x69,0xd4,0x64,0xec,0x82,0xdb,0x7e,0xb0,0xee,0xfb,0xef,0x0c,0xff,0xfd,0xfd,0x01,0xfb,0x9b,0x81,0x92,0xf9,0x66,0x3e,0xeb,0xf9,0x6b,0x44,0xef,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6a,0x42,0xef,0xf9,0x6a,0x42,0xe3,0xfc,0xc2,0xb1,0x57,0xff,0xff,0xff,0x00,0xc3,0xc3,0xc2,0x42,0x44,0x43,0x3f,0xe0,0x3e,0x3e,0x3a,0xf0,0x41,0x40,0x3c,0xee,0x41,0x40,0x3c,0xee,0x41,0x40,0x3c,0xee,0x41,0x40,0x3c,0xee,0x41,0x40,0x3c,0xee,0x40,0x3f,0x3b,0xee,0x4a,0x49,0x46,0xdb,0x85,0x84,0x82,0x8f,0xec,0xec,0xec,0x13,0xff,0xff,0xff,0x00,
0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xda,0xda,0xd9,0x27,0x90,0x8f,0x8d,0x7d,0x74,0x74,0x71,0xa0,0x77,0x76,0x73,0x9f,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x77,0x76,0x73,0x9e,0x76,0x76,0x73,0xa0,0x77,0x76,0x73,0x9b,0xa4,0xa4,0xa2,0x64,0xef,0xef,0xee,0x0f,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x9d,0x9c,0x9a,0x72,0x44,0x43,0x3f,0xe2,0x37,0x36,0x32,0xfe,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xff,0x38,0x37,0x33,0xf8,0x55,0x54,0x50,0xc9,0xc5,0xc5,0xc3,0x3f,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xff,0xff,0xff,0x00,0x9e,0x9d,0x9b,0x6f,0x29,0x27,0x23,0xff,0x35,0x33,0x2f,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x35,0x34,0x30,0xff,0x30,0x2f,0x2a,0xff,0x34,0x33,0x2f,0xff,0x39,0x38,0x34,0xff,0x30,0x2f,0x2a,0xff,0x38,0x37,0x33,0xf1,0xcf,0xce,0xcd,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xdc,0xdb,0xdb,0x25,0x44,0x43,0x40,0xe5,0x35,0x34,0x30,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x30,0x2f,0x2b,0xff,0x48,0x47,0x43,0xff,0x6b,0x6a,0x67,0xff,0x4e,0x4d,0x49,0xff,0x31,0x30,0x2c,0xff,0x3a,0x39,0x35,0xff,0x2d,0x2c,0x28,0xff,0x6b,0x6b,0x67,0xb1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x8f,0x8f,0x8d,0x7d,0x37,0x36,0x32,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x32,0x31,0x2c,0xff,0x67,0x66,0x63,0xff,0xe6,0xe5,0xe5,0xff,0xff,0xff,0xff,0xff,0xed,0xed,0xed,0xff,0x70,0x6f,0x6d,0xff,0x30,0x2f,0x2b,0xff,0x37,0x36,0x32,0xff,0x44,0x43,0x3f,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x75,0x74,0x71,0x9f,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x34,0x33,0x2e,0xff,0xcf,0xcf,0xce,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdb,0xdb,0xdb,0xff,0x39,0x38,0x34,0xff,0x36,0x35,0x31,0xff,0x40,0x3f,0x3b,0xef,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x77,0x76,0x73,0x9e,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x36,0x35,0x31,0xff,0xd9,0xd8,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xe7,0xe6,0xff,0x3e,0x3d,0x39,0xff,0x35,0x34,0x30,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x77,0x76,0x73,0x9e,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x2f,0x2e,0x2a,0xff,0x88,0x88,0x85,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0x95,0x92,0xff,0x30,0x2f,0x2b,0xff,0x38,0x36,0x33,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x77,0x76,0x73,0x9e,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x38,0x37,0x33,0xff,0x33,0x32,0x2e,0xff,0x75,0x75,0x72,0xff,0xa0,0x9f,0x9d,0xff,0x7d,0x7d,0x7a,0xff,0x36,0x35,0x31,0xff,0x37,0x36,0x32,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x77,0x76,0x73,0x9e,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x38,0x37,0x33,0xff,0x2f,0x2e,0x2a,0xff,0x2c,0x2b,0x27,0xff,0x2e,0x2d,0x29,0xff,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x77,0x76,0x73,0x9f,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x72,0x72,0x6f,0xa2,0x35,0x34,0x30,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xb8,0xb8,0xb6,0x4d,0x40,0x3f,0x3c,0xea,0x2e,0x2d,0x28,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x30,0x2f,0x2b,0xff,0x31,0x2f,0x2b,0xff,0x2e,0x2d,0x29,0xff,0x32,0x31,0x2d,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xff,0xff,0xff,0x00,0xdd,0xdc,0xd9,0x25,0xbf,0xbc,0xb7,0x4b,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc1,0xbf,0xba,0x49,0xc3,0xc1,0xbc,0x47,0xaa,0xa9,0xa5,0x63,0x58,0x57,0x53,0xcc,0x30,0x2f,0x2b,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xff,0xff,0xff,0x00,0xfd,0xff,0xff,0x02,0xee,0xf6,0xff,0x13,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xef,0xf6,0xff,0x12,0xee,0xf6,0xff,0x13,0xff,0xff,0xff,0x00,0xf3,0xf2,0xf0,0x0a,0x64,0x63,0x61,0xb9,0x31,0x30,0x2c,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xd1,0xde,0xfd,0x30,0x49,0x7d,0xf6,0xc8,0x24,0x63,0xf4,0xf7,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x28,0x65,0xf4,0xf4,0x23,0x62,0xf4,0xf6,0x50,0x81,0xf6,0xbf,0xf3,0xf9,0xff,0x0c,0xd3,0xd2,0xce,0x2f,0x35,0x34,0x30,0xfa,0x38,0x37,0x33,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x68,0x93,0xf7,0x9f,0x18,0x59,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x1d,0x5d,0xf3,0xff,0x0f,0x53,0xf3,0xff,0xba,0xcf,0xff,0x4a,0xf5,0xf1,0xea,0x0a,0x41,0x40,0x3c,0xed,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x64,0x90,0xf7,0xa4,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb7,0xcc,0xff,0x4f,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x66,0x91,0xf7,0xa2,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x16,0x58,0xf3,0xff,0xb8,0xcd,0xff,0x4e,0xf3,0xf0,0xe9,0x0e,0x41,0x40,0x3c,0xee,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x62,0x8e,0xf7,0xa7,0x1f,0x5e,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x20,0x5f,0xf3,0xff,0x15,0x57,0xf3,0xff,0xb6,0xcc,0xff,0x50,0xf2,0xef,0xe8,0x0f,0x3f,0x3e,0x3a,0xf1,0x36,0x35,0x31,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x7f,0xa3,0xf8,0x87,0x15,0x57,0xf3,0xff,0x14,0x56,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x15,0x57,0xf2,0xff,0x13,0x56,0xf2,0xff,0x10,0x53,0xf3,0xff,0xc5,0xd7,0xff,0x3e,0xf8,0xf5,0xef,0x08,0x42,0x41,0x3d,0xe8,0x2a,0x29,0x24,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x2f,0x2e,0x2a,0xff,0x30,0x2f,0x2a,0xff,0x35,0x34,0x30,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xef,0xf4,0xfe,0x0f,0x81,0xa5,0xf8,0x88,0x52,0x83,0xf6,0xbc,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x57,0x87,0xf6,0xba,0x52,0x83,0xf6,0xbb,0x8a,0xab,0xf9,0x7e,0xfb,0xfd,0xff,0x04,0xff,0xff,0xff,0x00,0xb7,0xb6,0xb5,0x50,0x67,0x67,0x63,0xb1,0x69,0x68,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6a,0x69,0x66,0xb4,0x6b,0x6a,0x67,0xb3,0x67,0x66,0x63,0xb6,0x46,0x45,0x41,0xe5,0x30,0x2f,0x2a,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xe5,0xe8,0xe8,0x17,0x69,0x68,0x65,0xb3,0x30,0x2f,0x2b,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfa,0xfd,0xfa,0x02,0xbb,0xec,0xb8,0x54,0x9d,0xe3,0x99,0x8c,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0xa0,0xe4,0x9c,0x8b,0x9d,0xe3,0x98,0x8b,0xc1,0xed,0xbe,0x49,0xfe,0xff,0xfe,0x00,0xff,0xff,0xff,0x00,0xfe,0xd6,0xca,0x38,0xfc,0x9d,0x83,0x8e,0xfc,0x9f,0x84,0x95,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9f,0x85,0x93,0xfc,0x9d,0x82,0x96,0xfd,0xa7,0x8f,0x81,0xff,0xf4,0xf0,0x0f,0xeb,0xec,0xeb,0x14,0x47,0x46,0x43,0xe0,0x35,0x34,0x30,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xae,0xe7,0xab,0x61,0x61,0xd1,0x5b,0xfc,0x5e,0xd0,0x58,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5f,0xd1,0x59,0xff,0x5d,0xd0,0x58,0xff,0x5e,0xd1,0x59,0xf5,0xd8,0xf7,0xdb,0x28,0xff,0xf6,0xf7,0x07,0xf9,0x70,0x4a,0xdd,0xf8,0x58,0x2b,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x5c,0x31,0xff,0xf8,0x53,0x26,0xff,0xfb,0x98,0x7c,0x9b,0xff,0xff,0xff,0x00,0x7c,0x7c,0x7a,0x9d,0x2e,0x2d,0x29,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x93,0xe0,0x90,0x9a,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x5f,0xd1,0x5a,0xff,0xc9,0xf4,0xcc,0x42,0xff,0xef,0xef,0x0e,0xf8,0x69,0x41,0xf0,0xf8,0x63,0x3a,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x89,0x69,0xb6,0xff,0xff,0xff,0x00,0x83,0x83,0x81,0x93,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x96,0xe1,0x93,0x95,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x96,0xe1,0x93,0x95,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x96,0xe1,0x93,0x95,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x96,0xe1,0x93,0x95,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x95,0xe1,0x93,0x97,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x41,0x40,0x3c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x97,0xe1,0x93,0x8d,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x37,0x36,0x32,0xff,0x40,0x3f,0x3b,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xba,0xeb,0xb8,0x51,0x66,0xd3,0x61,0xf8,0x66,0xd3,0x61,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x3f,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xec,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6c,0xb1,0xff,0xff,0xff,0x00,0x82,0x82,0x80,0x95,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x35,0x34,0x30,0xff,0x4b,0x49,0x46,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xf2,0xfc,0xf2,0x0a,0x7c,0xd9,0x78,0xbf,0x60,0xd1,0x5b,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x67,0xd3,0x62,0xff,0x60,0xd1,0x5b,0xff,0xcb,0xf4,0xce,0x40,0xff,0xf0,0xf0,0x0d,0xf8,0x6b,0x43,0xed,0xf8,0x63,0x39,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x65,0x3c,0xff,0xf8,0x5d,0x32,0xff,0xfa,0x8b,0x6b,0xb2,0xff,0xff,0xff,0x00,0x81,0x81,0x7f,0x96,0x2e,0x2d,0x28,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x39,0x38,0x34,0xff,0x3a,0x39,0x35,0xff,0x29,0x28,0x24,0xff,0x85,0x85,0x82,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xff,0xff,0xff,0x00,0xd3,0xf2,0xd1,0x30,0x66,0xd2,0x61,0xe2,0x5e,0xd0,0x59,0xff,0x65,0xd3,0x60,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x66,0xd3,0x61,0xff,0x5c,0xd0,0x57,0xff,0xcb,0xf4,0xce,0x3b,0xff,0xf1,0xf1,0x0c,0xf8,0x68,0x3f,0xf1,0xf8,0x61,0x37,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3a,0xff,0xf8,0x64,0x3b,0xff,0xf8,0x5a,0x2f,0xff,0xfa,0x89,0x69,0xb5,0xff,0xff,0xff,0x00,0x7f,0x7f,0x7d,0x97,0x2a,0x29,0x24,0xff,0x38,0x37,0x33,0xff,0x37,0x36,0x32,0xff,0x37,0x36,0x32,0xff,0x37,0x36,0x32,0xff,0x37,0x36,0x32,0xff,0x37,0x36,0x32,0xff,0x38,0x37,0x33,0xff,0x35,0x34,0x30,0xff,0x29,0x28,0x24,0xff,0x57,0x56,0x53,0xc8,0xeb,0xeb,0xea,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xda,0xf4,0xd9,0x26,0x8d,0xdf,0x8a,0x9f,0x6f,0xd6,0x6b,0xdd,0x6c,0xd4,0x67,0xed,0x6d,0xd5,0x68,0xed,0x6d,0xd5,0x68,0xec,0x6d,0xd5,0x68,0xec,0x6d,0xd5,0x68,0xec,0x6d,0xd5,0x68,0xed,0x69,0xd4,0x64,0xec,0x82,0xdb,0x7e,0xb0,0xee,0xfb,0xef,0x0c,0xff,0xfd,0xfd,0x01,0xfb,0x9b,0x81,0x92,0xf9,0x66,0x3e,0xeb,0xf9,0x6b,0x44,0xef,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6b,0x44,0xee,0xf9,0x6a,0x42,0xef,0xf9,0x6a,0x42,0xe3,0xfc,0xc2,0xb1,0x57,0xff,0xff,0xff,0x00,0xc3,0xc3,0xc2,0x42,0x44,0x43,0x3f,0xe0,0x3e,0x3e,0x3a,0xf0,0x41,0x40,0x3c,0xee,0x41,0x40,0x3c,0xee,0x41,0x40,0x3c,0xee,0x41,0x40,0x3c,0xee,0x41,0x40,0x3c,0xee,0x40,0x3f,0x3b,0xee,0x4a,0x49,0x46,0xdb,0x85,0x84,0x82,0x8f,0xec,0xec,0xec,0x13,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
@@ -76,7 +76,7 @@ const lv_img_dsc_t img_lvgl_logo = {
.header.flags = 0,
.header.w = 42,
.header.h = 42,
.header.stride = 168,
.header.stride = 192,
.data_size = sizeof(img_lvgl_logo_map),
.data = img_lvgl_logo_map,
};

View File

@@ -71,11 +71,11 @@ handle the supported draw tasks.
.. code:: c
#if LV_USE_OS
#if LV_USE_PXP_DRAW_THREAD
lv_thread_init(&draw_pxp_unit->thread, LV_THREAD_PRIO_HIGH, _pxp_render_thread_cb, 2 * 1024, draw_pxp_unit);
#endif
If `LV_USE_OS` is not defined, then no additional draw thread will be created
If `LV_USE_PXP_DRAW_THREAD` is not defined, then no additional draw thread will be created
and the PXP drawing task will get executed on the same LVGL main thread.
`_pxp_evaluate()` will get called after each task is being created and will
@@ -218,7 +218,7 @@ and height, and command buffer size are in the SDK file "vglite_support.h".
.. code:: c
#if LV_USE_GPU_NXP_VG_LITE
#if LV_USE_DRAW_VGLITE
#include "vg_lite.h"
#include "vglite_support.h"
#endif
@@ -265,11 +265,11 @@ handle the supported draw tasks.
.. code:: c
#if LV_USE_OS
#if LV_USE_VGLITE_DRAW_THREAD
lv_thread_init(&draw_vglite_unit->thread, LV_THREAD_PRIO_HIGH, _vglite_render_thread_cb, 2 * 1024, draw_vglite_unit);
#endif
If `LV_USE_OS` is not defined, then no additional draw thread will be created
If `LV_USE_VGLITE_DRAW_THREAD` is not defined, then no additional draw thread will be created
and the VGLite drawing task will get executed on the same LVGL main thread.
`_vglite_evaluate()` will get called after each task is being created and will

View File

@@ -191,9 +191,14 @@
#define LV_USE_VGLITE_BLIT_SPLIT 0
#if LV_USE_OS
/* Use additional draw thread for VG-Lite processing.*/
#define LV_USE_VGLITE_DRAW_THREAD 1
#if LV_USE_VGLITE_DRAW_THREAD
/* Enable VGLite draw async. Queue multiple tasks and flash them once to the GPU. */
#define LV_USE_VGLITE_DRAW_ASYNC 1
#endif
#endif
/* Enable VGLite asserts. */
#define LV_USE_VGLITE_ASSERT 0
@@ -203,6 +208,11 @@
#define LV_USE_DRAW_PXP 0
#if LV_USE_DRAW_PXP
#if LV_USE_OS
/* Use additional draw thread for PXP processing.*/
#define LV_USE_PXP_DRAW_THREAD 1
#endif
/* Enable PXP asserts. */
#define LV_USE_PXP_ASSERT 0
#endif

View File

@@ -3,6 +3,10 @@
*
*/
/**
* Modified by NXP in 2024
*/
/*********************
* INCLUDES
*********************/
@@ -78,6 +82,7 @@ void * lv_draw_create_unit(size_t size)
new_unit->next = _draw_info.unit_head;
_draw_info.unit_head = new_unit;
_draw_info.unit_cnt++;
return new_unit;
}
@@ -154,20 +159,33 @@ void lv_draw_finalize_task_creation(lv_layer_t * layer, lv_draw_task_t * t)
LV_PROFILER_END;
}
void lv_draw_wait_for_finish(void)
{
#if LV_USE_OS
lv_draw_unit_t * u = _draw_info.unit_head;
while(u) {
if(u->wait_for_finish_cb)
u->wait_for_finish_cb(u);
u = u->next;
}
#endif
}
void lv_draw_dispatch(void)
{
LV_PROFILER_BEGIN;
bool render_running = false;
bool task_dispatched = false;
lv_display_t * disp = lv_display_get_next(NULL);
while(disp) {
lv_layer_t * layer = disp->layer_head;
while(layer) {
/* If there are no tasks in the layer, skip it */
if(layer->draw_task_head && lv_draw_dispatch_layer(disp, layer))
render_running = true;
task_dispatched = true;
layer = layer->next;
}
if(!render_running) {
if(!task_dispatched) {
lv_draw_wait_for_finish();
lv_draw_dispatch_request();
}
disp = lv_display_get_next(disp);
@@ -232,7 +250,7 @@ bool lv_draw_dispatch_layer(lv_display_t * disp, lv_layer_t * layer)
t = t_next;
}
bool render_running = false;
bool task_dispatched = false;
/*This layer is ready, enable blending its buffer*/
if(layer->parent && layer->all_tasks_added && layer->draw_task_head == NULL) {
@@ -257,13 +275,13 @@ bool lv_draw_dispatch_layer(lv_display_t * disp, lv_layer_t * layer)
lv_draw_unit_t * u = _draw_info.unit_head;
while(u) {
int32_t taken_cnt = u->dispatch_cb(u, layer);
if(taken_cnt != LV_DRAW_UNIT_IDLE) render_running = true;
if(taken_cnt != LV_DRAW_UNIT_IDLE) task_dispatched = true;
u = u->next;
}
}
LV_PROFILER_END;
return render_running;
return task_dispatched;
}
void lv_draw_dispatch_wait_for_request(void)
@@ -285,6 +303,11 @@ void lv_draw_dispatch_request(void)
#endif
}
uint32_t lv_draw_get_unit_count(void)
{
return _draw_info.unit_cnt;
}
lv_draw_task_t * lv_draw_get_next_available_task(lv_layer_t * layer, lv_draw_task_t * t_prev, uint8_t draw_unit_id)
{
LV_PROFILER_BEGIN;

View File

@@ -3,6 +3,10 @@
*
*/
/**
* Modified by NXP in 2024
*/
#ifndef LV_DRAW_H
#define LV_DRAW_H
@@ -171,12 +175,23 @@ bool lv_draw_dispatch_layer(lv_display_t * disp, lv_layer_t * layer);
*/
void lv_draw_dispatch_wait_for_request(void);
/**
* Wait for draw finish in case of asynchronous task execution.
* If `LV_USE_OS == 0` it just return.
*/
void lv_draw_wait_for_finish(void);
/**
* When a draw unit finished a draw task it needs to request dispatching
* to let LVGL assign a new draw task to it
*/
void lv_draw_dispatch_request(void);
/**
* Get the total number of draw units.
*/
uint32_t lv_draw_get_unit_count(void);
/**
* Find and available draw task
* @param layer the draw ctx to search in

View File

@@ -3,6 +3,10 @@
*
*/
/**
* Modified by NXP in 2024
*/
#ifndef LV_DRAW_PRIVATE_H
#define LV_DRAW_PRIVATE_H
@@ -111,6 +115,51 @@ struct lv_draw_unit_t {
*/
int32_t (*evaluate_cb)(lv_draw_unit_t * draw_unit, lv_draw_task_t * task);
/**
* Called to signal the unit to complete all tasks in order to return their ready status.
* This callback can be implemented in case of asynchronous task processing.
* Below is an example to show the difference between synchronous and asynchronous:
*
* Synchronous:
* LVGL thread DRAW thread HW
*
* task1 --> submit --> Receive task1
* wait_for_finish()
* <-- task1->state = READY <-- Complete task1
* task2 --> submit --> Receive task2
* wait_for_finish()
* task2->state = READY <-- Complete task2
* task3 --> submit --> Receive task3
* wait_for_finish()
* <-- task3->state = READY <-- Complete task3
* task4 --> submit --> Receive task4
* wait_for_finish()
* <-- task4->state = READY <-- Complete task4
* NO MORE TASKS
*
*
* Asynchronous:
* LVGL thread DRAW thread HW
* is IDLE
* task1 --> queue task1
* submit --> Receive task1
* task2 --> queue task2 is BUSY (with task1)
* task3 --> queue task3 still BUSY (with task1)
* task4 --> queue task4 becomes IDLE
* <-- task1->state = READY <-- Complete task1
* submit --> Receive task2, task3, task4
* NO MORE TASKS
* wait_for_finish_cb() wait_for_finish()
* <-- Complete task2, task3, task4
* <-- task2->state = READY <--
* <-- task3->state = READY <--
* <-- task4->state = READY <--
*
* @param draw_unit
* @return
*/
int32_t (*wait_for_finish_cb)(lv_draw_unit_t * draw_unit);
/**
* Called to delete draw unit.
* @param draw_unit
@@ -121,6 +170,7 @@ struct lv_draw_unit_t {
typedef struct {
lv_draw_unit_t * unit_head;
uint32_t unit_cnt;
uint32_t used_memory_for_layers_kb;
#if LV_USE_OS
lv_thread_sync_t sync;

View File

@@ -54,7 +54,7 @@ static int32_t _pxp_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer);
*/
static int32_t _pxp_delete(lv_draw_unit_t * draw_unit);
#if LV_USE_OS
#if LV_USE_PXP_DRAW_THREAD
static void _pxp_render_thread_cb(void * ptr);
#endif
@@ -91,7 +91,7 @@ void lv_draw_pxp_init(void)
lv_pxp_init();
#if LV_USE_OS
#if LV_USE_PXP_DRAW_THREAD
lv_thread_init(&draw_pxp_unit->thread, LV_THREAD_PRIO_HIGH, _pxp_render_thread_cb, 2 * 1024, draw_pxp_unit);
#endif
}
@@ -330,7 +330,7 @@ static int32_t _pxp_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
draw_pxp_unit->base_unit.clip_area = &t->clip_area;
draw_pxp_unit->task_act = t;
#if LV_USE_OS
#if LV_USE_PXP_DRAW_THREAD
/* Let the render thread work. */
if(draw_pxp_unit->inited)
lv_thread_sync_signal(&draw_pxp_unit->sync);
@@ -349,7 +349,7 @@ static int32_t _pxp_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
static int32_t _pxp_delete(lv_draw_unit_t * draw_unit)
{
#if LV_USE_OS
#if LV_USE_PXP_DRAW_THREAD
lv_draw_pxp_unit_t * draw_pxp_unit = (lv_draw_pxp_unit_t *) draw_unit;
LV_LOG_INFO("Cancel PXP draw thread.");
@@ -445,7 +445,7 @@ static void _pxp_execute_drawing(lv_draw_pxp_unit_t * u)
#endif
}
#if LV_USE_OS
#if LV_USE_PXP_DRAW_THREAD
static void _pxp_render_thread_cb(void * ptr)
{
lv_draw_pxp_unit_t * u = ptr;

View File

@@ -19,9 +19,7 @@
#include "lv_vglite_buf.h"
#include "lv_vglite_utils.h"
#if LV_USE_PARALLEL_DRAW_DEBUG
#include "../../../core/lv_global.h"
#endif
#include "../../../core/lv_global.h"
/*********************
* DEFINES
@@ -30,7 +28,7 @@
#define DRAW_UNIT_ID_VGLITE 2
#if LV_USE_VGLITE_DRAW_ASYNC
#define VGLITE_TASK_BUF_SIZE 10
#define VGLITE_TASK_BUF_SIZE 100
#endif
/**********************
@@ -63,12 +61,19 @@ static int32_t _vglite_evaluate(lv_draw_unit_t * draw_unit, lv_draw_task_t * tas
*/
static int32_t _vglite_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer);
/*
* Wait for VG-Lite draw unit to finish.
*/
#if LV_USE_VGLITE_DRAW_ASYNC
static int32_t _vglite_wait_for_finish(lv_draw_unit_t * draw_unit);
#endif
/*
* Delete the VGLite draw unit.
*/
static int32_t _vglite_delete(lv_draw_unit_t * draw_unit);
#if LV_USE_OS
#if LV_USE_VGLITE_DRAW_THREAD
static void _vglite_render_thread_cb(void * ptr);
#endif
@@ -78,9 +83,7 @@ static void _vglite_execute_drawing(lv_draw_vglite_unit_t * u);
* STATIC VARIABLES
**********************/
#if LV_USE_PARALLEL_DRAW_DEBUG
#define _draw_info LV_GLOBAL_DEFAULT()->draw_info
#endif
#define _draw_info LV_GLOBAL_DEFAULT()->draw_info
#if LV_USE_VGLITE_DRAW_ASYNC
/*
@@ -108,9 +111,12 @@ void lv_draw_vglite_init(void)
lv_draw_vglite_unit_t * draw_vglite_unit = lv_draw_create_unit(sizeof(lv_draw_vglite_unit_t));
draw_vglite_unit->base_unit.evaluate_cb = _vglite_evaluate;
draw_vglite_unit->base_unit.dispatch_cb = _vglite_dispatch;
#if LV_USE_VGLITE_DRAW_ASYNC
draw_vglite_unit->base_unit.wait_for_finish_cb = _vglite_wait_for_finish;
#endif
draw_vglite_unit->base_unit.delete_cb = _vglite_delete;
#if LV_USE_OS
#if LV_USE_VGLITE_DRAW_THREAD
lv_thread_init(&draw_vglite_unit->thread, LV_THREAD_PRIO_HIGH, _vglite_render_thread_cb, 2 * 1024, draw_vglite_unit);
#endif
}
@@ -282,9 +288,26 @@ static int32_t _vglite_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
/* Try to get an ready to draw. */
lv_draw_task_t * t = lv_draw_get_next_available_task(layer, NULL, DRAW_UNIT_ID_VGLITE);
if(t == NULL || t->preferred_draw_unit_id != DRAW_UNIT_ID_VGLITE)
if(t == NULL)
return LV_DRAW_UNIT_IDLE;
if(lv_draw_get_unit_count() > 1) {
/* Let the SW unit to draw this task. */
if(t->preferred_draw_unit_id != DRAW_UNIT_ID_VGLITE)
return LV_DRAW_UNIT_IDLE;
}
else {
/* Fake unsupported tasks as ready. */
if(t->preferred_draw_unit_id != DRAW_UNIT_ID_VGLITE) {
t->state = LV_DRAW_TASK_STATE_READY;
/* Request a new dispatching as it can get a new task. */
lv_draw_dispatch_request();
return 1;
}
}
void * buf = lv_draw_layer_alloc_buf(layer);
if(buf == NULL)
return LV_DRAW_UNIT_IDLE;
@@ -294,7 +317,7 @@ static int32_t _vglite_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
draw_vglite_unit->base_unit.clip_area = &t->clip_area;
draw_vglite_unit->task_act = t;
#if LV_USE_OS
#if LV_USE_VGLITE_DRAW_THREAD
/* Let the render thread work. */
if(draw_vglite_unit->inited)
lv_thread_sync_signal(&draw_vglite_unit->sync);
@@ -311,9 +334,22 @@ static int32_t _vglite_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
return 1;
}
#if LV_USE_VGLITE_DRAW_ASYNC
static int32_t _vglite_wait_for_finish(lv_draw_unit_t * draw_unit)
{
lv_draw_vglite_unit_t * draw_vglite_unit = (lv_draw_vglite_unit_t *) draw_unit;
draw_vglite_unit->wait_for_finish = true;
if(draw_vglite_unit->inited)
lv_thread_sync_signal(&draw_vglite_unit->sync);
return 1;
}
#endif
static int32_t _vglite_delete(lv_draw_unit_t * draw_unit)
{
#if LV_USE_OS
#if LV_USE_VGLITE_DRAW_THREAD
lv_draw_vglite_unit_t * draw_vglite_unit = (lv_draw_vglite_unit_t *) draw_unit;
LV_LOG_INFO("Cancel VGLite draw thread.");
@@ -328,7 +364,7 @@ static int32_t _vglite_delete(lv_draw_unit_t * draw_unit)
#else
LV_UNUSED(draw_unit);
return 0;
return 1;
#endif
}
@@ -354,7 +390,7 @@ static void _vglite_execute_drawing(lv_draw_vglite_unit_t * u)
if(!lv_area_intersect(&draw_area, &draw_area, &clip_area))
return; /*Fully clipped, nothing to do*/
/* Invalidate the drawing area */
if(_draw_info.unit_cnt > 1)
lv_draw_buf_invalidate_cache(draw_buf, &draw_area);
/* Set scissor area, excluding the split blit case */
@@ -442,27 +478,46 @@ static void _vglite_execute_drawing(lv_draw_vglite_unit_t * u)
}
#if LV_USE_VGLITE_DRAW_ASYNC
static inline void _vglite_queue_task(lv_draw_task_t * task_act)
static inline void _vglite_queue_task(lv_draw_task_t * task)
{
_draw_task_buf[_tail].task = task_act;
VGLITE_ASSERT_MSG(((_tail + 1) % VGLITE_TASK_BUF_SIZE) != _head, "VGLite task buffer full.");
_draw_task_buf[_tail].task = task;
_draw_task_buf[_tail].flushed = false;
_tail = (_tail + 1) % VGLITE_TASK_BUF_SIZE;
}
static inline void _vglite_signal_task_ready(lv_draw_task_t * task_act)
static inline void _vglite_signal_task_ready(lv_draw_task_t * task)
{
if(vglite_cmd_buf_is_flushed()) {
int end = (_head < _tail) ? _tail : _tail + VGLITE_TASK_BUF_SIZE;
for(int i = _head; i < end; i++) {
/* Previous flushed tasks are ready now. */
if(_draw_task_buf[i % VGLITE_TASK_BUF_SIZE].flushed) {
lv_draw_task_t * task = _draw_task_buf[i % VGLITE_TASK_BUF_SIZE].task;
/* Signal the ready state to dispatcher. */
task->state = LV_DRAW_TASK_STATE_READY;
_head = (_head + 1) % VGLITE_TASK_BUF_SIZE;
/* No need to cleanup the tasks in buffer as we advance with the _head. */
}
static inline void _vglite_signal_all_task_ready(void)
{
int end = (_head <= _tail) ? _tail : _tail + VGLITE_TASK_BUF_SIZE;
for(int i = _head; i < end; i++) {
lv_draw_task_t * task = _draw_task_buf[i % VGLITE_TASK_BUF_SIZE].task;
_vglite_signal_task_ready(task);
}
}
static inline void _vglite_signal_flushed_task_ready(void)
{
if(vglite_cmd_buf_is_flushed()) {
int end = (_head <= _tail) ? _tail : _tail + VGLITE_TASK_BUF_SIZE;
for(int i = _head; i < end; i++) {
if(_draw_task_buf[i % VGLITE_TASK_BUF_SIZE].flushed) {
lv_draw_task_t * task = _draw_task_buf[i % VGLITE_TASK_BUF_SIZE].task;
_vglite_signal_task_ready(task);
}
else {
/* Those tasks have been flushed now. */
@@ -470,13 +525,10 @@ static inline void _vglite_signal_task_ready(lv_draw_task_t * task_act)
}
}
}
if(task_act)
VGLITE_ASSERT_MSG(_tail != _head, "VGLite task buffer full.");
}
#endif
#if LV_USE_OS
#if LV_USE_VGLITE_DRAW_THREAD
static void _vglite_render_thread_cb(void * ptr)
{
lv_draw_vglite_unit_t * u = ptr;
@@ -490,9 +542,9 @@ static void _vglite_render_thread_cb(void * ptr)
#if LV_USE_VGLITE_DRAW_ASYNC
/*
* Wait for sync if _draw_task_buf is empty.
* The thread will have to run as much as there are pending tasks.
* The thread will have to run to complete any pending tasks.
*/
&& _head == _tail
&& !u->wait_for_finish
#endif
) {
if(u->exit_status)
@@ -513,16 +565,14 @@ static void _vglite_render_thread_cb(void * ptr)
_vglite_execute_drawing(u);
}
#if LV_USE_VGLITE_DRAW_ASYNC
else {
/*
* Update the flush status for last pending tasks.
* vg_lite_flush() will early return if there is nothing to submit.
*/
vglite_run();
if(u->wait_for_finish) {
u->wait_for_finish = false;
vglite_wait_for_finish();
_vglite_signal_all_task_ready();
}
else { /* u->task_act */
_vglite_signal_flushed_task_ready();
}
#endif
#if LV_USE_VGLITE_DRAW_ASYNC
_vglite_signal_task_ready((void *)u->task_act);
#else
/* Signal the ready state to dispatcher. */
u->task_act->state = LV_DRAW_TASK_STATE_READY;

View File

@@ -23,7 +23,9 @@ extern "C" {
#include "../../../lv_conf_internal.h"
#if LV_USE_DRAW_VGLITE
#include "../../sw/lv_draw_sw.h"
#include "../../lv_draw_private.h"
#include "../../sw/lv_draw_sw_private.h"
#include "../../../misc/lv_area_private.h"
/*********************
* DEFINES
@@ -33,7 +35,12 @@ extern "C" {
* TYPEDEFS
**********************/
typedef lv_draw_sw_unit_t lv_draw_vglite_unit_t;
typedef struct lv_draw_vglite_unit {
lv_draw_sw_unit_t;
#if LV_USE_VGLITE_DRAW_ASYNC
volatile bool wait_for_finish;
#endif
} lv_draw_vglite_unit_t;
/**********************
* GLOBAL PROTOTYPES

View File

@@ -20,6 +20,7 @@
#include "lv_vglite_matrix.h"
#include "lv_vglite_utils.h"
#include "../../lv_draw_label_private.h"
#include "../../../stdlib/lv_string.h"
/*********************
@@ -118,16 +119,6 @@ static void _draw_vglite_letter(lv_draw_unit_t * draw_unit, lv_draw_glyph_dsc_t
mask_area.x2 = mask_width - 1;
mask_area.y2 = mask_height - 1;
if(!vglite_src_buf_aligned(mask_buf, mask_stride, LV_COLOR_FORMAT_A8)) {
/* Draw a placeholder rectangle*/
lv_draw_border_dsc_t border_draw_dsc;
lv_draw_border_dsc_init(&border_draw_dsc);
border_draw_dsc.opa = glyph_draw_dsc->opa;
border_draw_dsc.color = glyph_draw_dsc->color;
border_draw_dsc.width = 1;
lv_draw_vglite_border(draw_unit, &border_draw_dsc, glyph_draw_dsc->bg_coords);
}
else {
/* Set src_vgbuf structure. */
vglite_set_src_buf(mask_buf, mask_width, mask_height, mask_stride, LV_COLOR_FORMAT_A8);
@@ -138,7 +129,6 @@ static void _draw_vglite_letter(lv_draw_unit_t * draw_unit, lv_draw_glyph_dsc_t
_vglite_draw_letter(&mask_area, glyph_draw_dsc->color, glyph_draw_dsc->opa);
}
}
break;
case LV_FONT_GLYPH_FORMAT_IMAGE: {
#if LV_USE_IMGFONT

View File

@@ -18,9 +18,7 @@
#if LV_USE_DRAW_VGLITE
#include "../../../stdlib/lv_string.h"
#if LV_USE_PARALLEL_DRAW_DEBUG
#include "../../../core/lv_global.h"
#endif
#include "../../../core/lv_global.h"
/*********************
* DEFINES
@@ -38,9 +36,7 @@
* STATIC VARIABLES
**********************/
#if LV_USE_PARALLEL_DRAW_DEBUG
#define _draw_info LV_GLOBAL_DEFAULT()->draw_info
#endif
#define _draw_info LV_GLOBAL_DEFAULT()->draw_info
/**********************
* MACROS
@@ -62,6 +58,7 @@ void lv_draw_vglite_layer(lv_draw_unit_t * draw_unit, const lv_draw_image_dsc_t
if(draw_buf == NULL)
return;
if(_draw_info.unit_cnt > 1) {
const lv_area_t area_to_draw = {
.x1 = 0,
.y1 = 0,
@@ -69,6 +66,7 @@ void lv_draw_vglite_layer(lv_draw_unit_t * draw_unit, const lv_draw_image_dsc_t
.y2 = draw_buf->header.h - 1
};
lv_draw_buf_invalidate_cache(draw_buf, &area_to_draw);
}
lv_draw_image_dsc_t new_draw_dsc = *draw_dsc;
new_draw_dsc.src = draw_buf;

View File

@@ -104,6 +104,13 @@ void vglite_run(void)
#endif
}
#if LV_USE_VGLITE_DRAW_ASYNC
void vglite_wait_for_finish(void)
{
VGLITE_CHECK_ERROR(vg_lite_finish());
}
#endif
vg_lite_color_t vglite_get_color(lv_color32_t lv_col32, bool gradient)
{
vg_lite_color_t vg_col32;

View File

@@ -95,6 +95,14 @@ bool vglite_cmd_buf_is_flushed(void);
*/
void vglite_run(void);
/**
* Wait for VG-Lite finish.
*
*/
#if LV_USE_VGLITE_DRAW_ASYNC
void vglite_wait_for_finish(void);
#endif
/**
* Get vglite color. Premultiplies (if not hw already) and swizzles the given
* LVGL 32bit color to obtain vglite color.

View File

@@ -570,6 +570,20 @@
#endif
#if LV_USE_OS
/* Use additional draw thread for VG-Lite processing.*/
#ifndef LV_USE_VGLITE_DRAW_THREAD
#ifdef LV_KCONFIG_PRESENT
#ifdef CONFIG_LV_USE_VGLITE_DRAW_THREAD
#define LV_USE_VGLITE_DRAW_THREAD CONFIG_LV_USE_VGLITE_DRAW_THREAD
#else
#define LV_USE_VGLITE_DRAW_THREAD 0
#endif
#else
#define LV_USE_VGLITE_DRAW_THREAD 1
#endif
#endif
#if LV_USE_VGLITE_DRAW_THREAD
/* Enable VGLite draw async. Queue multiple tasks and flash them once to the GPU. */
#ifndef LV_USE_VGLITE_DRAW_ASYNC
#ifdef LV_KCONFIG_PRESENT
@@ -583,6 +597,7 @@
#endif
#endif
#endif
#endif
/* Enable VGLite asserts. */
#ifndef LV_USE_VGLITE_ASSERT
@@ -604,6 +619,21 @@
#endif
#if LV_USE_DRAW_PXP
#if LV_USE_OS
/* Use additional draw thread for PXP processing.*/
#ifndef LV_USE_PXP_DRAW_THREAD
#ifdef LV_KCONFIG_PRESENT
#ifdef CONFIG_LV_USE_PXP_DRAW_THREAD
#define LV_USE_PXP_DRAW_THREAD CONFIG_LV_USE_PXP_DRAW_THREAD
#else
#define LV_USE_PXP_DRAW_THREAD 0
#endif
#else
#define LV_USE_PXP_DRAW_THREAD 1
#endif
#endif
#endif
/* Enable PXP asserts. */
#ifndef LV_USE_PXP_ASSERT
#ifdef CONFIG_LV_USE_PXP_ASSERT

View File

@@ -3,6 +3,10 @@
*
*/
/**
* Modified by NXP in 2024
*/
/*********************
* INCLUDES
*********************/
@@ -387,9 +391,17 @@ void lv_canvas_init_layer(lv_obj_t * obj, lv_layer_t * layer)
void lv_canvas_finish_layer(lv_obj_t * canvas, lv_layer_t * layer)
{
if(layer->draw_task_head == NULL) return;
bool task_dispatched;
while(layer->draw_task_head) {
lv_draw_dispatch_wait_for_request();
lv_draw_dispatch_layer(lv_obj_get_display(canvas), layer);
task_dispatched = lv_draw_dispatch_layer(lv_obj_get_display(canvas), layer);
if(!task_dispatched) {
lv_draw_wait_for_finish();
lv_draw_dispatch_request();
}
}
lv_obj_invalidate(canvas);
}