From 85230bb460e2f5cb341fe0730d8fe9ca03f8e1f7 Mon Sep 17 00:00:00 2001 From: "sober.song" Date: Sat, 23 Dec 2023 16:51:21 +0800 Subject: [PATCH 1/8] =?UTF-8?q?EMMC=E5=92=8CSD=E5=8D=A1=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BB=A3=E7=A0=81=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/include/sf_mmc_dev.h | 82 ++++++ .../source/sf_app/code/source/app/sf_common.c | 3 + .../sf_app/code/source/storeMng/sf_mmc_dev.c | 277 ++++++++++++++++++ .../source/cardv/SrcCode/System/sys_filesys.c | 23 +- .../cardv/SrcCode/UIApp/MovieFast/MovieFast.c | 111 ++++++- .../cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c | 52 ++-- .../driver/na51089/include/sf_sd_common.h | 66 +++++ .../driver/na51089/source/mcu/sf_sd_common.c | 123 +++++++- rtos/code/lib/include/FileSysTsk.h | 4 + 9 files changed, 702 insertions(+), 39 deletions(-) create mode 100755 code/application/source/sf_app/code/include/sf_mmc_dev.h create mode 100755 code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c create mode 100755 rtos/code/driver/na51089/include/sf_sd_common.h diff --git a/code/application/source/sf_app/code/include/sf_mmc_dev.h b/code/application/source/sf_app/code/include/sf_mmc_dev.h new file mode 100755 index 000000000..16cbb8c7a --- /dev/null +++ b/code/application/source/sf_app/code/include/sf_mmc_dev.h @@ -0,0 +1,82 @@ +/************************************************************************** + * + * Copyright (c) 2015-2021 by WuYuan Technology, Inc. + * + * This software is copyrighted by and is the property of SiFar + * Technology, Inc.. All rights are reserved by SiFar Technology, Inc.. + * This software may only be used in accordance with the corresponding + * license agreement. Any unauthorized use, duplication, distribution, + * or disclosure of this software is expressly forbidden. + * + * This Copyright notice MUST not be removed or modified without prior + * written consent of SiFar Technology, Inc.. + * + * WuYuan Technology, Inc. reserves the right to modify this software without notice. + * + * Author: Sober + * Ver: 1.0.0 2023.12.23 + * Description: Creat +**************************************************************************/ +#ifndef _SF_MMC_DEV_H_ +#define _SF_MMC_DEV_H_ +#include "sf_type.h" +#include "sf_param_common.h" + +#define MMC_DEV_MAX_NUM (2) + +#define SD_NODES_NAME "/dev/mmcblk0" +#define SD_DEVICE_NAME "/dev/mmcblk0p1" +#define SD_MOUNT_ROOT "/mnt/sd" + +#define EMMC_NODES_NAME "/dev/mmcblk1" +#define EMMC_DEVICE_NAME "/dev/mmcblk1p1" +#define EMMC_MOUNT_ROOT "/mnt/sd2" + + +typedef enum +{ + MMC_DEV_SD = 0, + MMC_DEV_EMMC = 1, + MMC_DEV_NO = 2, +}MMC_DEV_TYPE; + +typedef enum +{ + MMC_DEV_NODE_STATE_NO = 0, + MMC_DEV_NODE_STATE_EXIST = 1, + MMC_DEV_NODE_STATE_NO_EXIST = 2, +}MMC_DEV_NODE_STATE; + +typedef enum +{ + MMC_DEV_MOUNT_STATE_NO = 0, + MMC_DEV_MOUNT_STATE_MOUNTED = 1, + MMC_DEV_MOUNT_STATE_UNMOUNTED = 2, +}MMC_DEV_MOUNT_STATE; + +typedef enum +{ + MMC_DEV_SPACE_STATE_NO = 0, + MMC_DEV_SPACE_STATE_ENOUGH = 1, + MMC_DEV_SPACE_STATE_NO_ENOUGH = 2, +}MMC_DEV_SPACE_STATE; + +typedef enum +{ + MMC_DEV_LOOP_STATE_NO = 0, + MMC_DEV_LOOP_STATE_ON = 1, + MMC_DEV_LOOP_STATE_OFF = 2, +}MMC_DEV_LOOP_STATE; + +typedef struct +{ + MMC_DEV_NODE_STATE node; + MMC_DEV_MOUNT_STATE moumted_state; + MMC_DEV_SPACE_STATE space_state; + MMC_DEV_LOOP_STATE loop_state; +}SF_ST_MMC_DEV; + + + +#endif + diff --git a/code/application/source/sf_app/code/source/app/sf_common.c b/code/application/source/sf_app/code/source/app/sf_common.c index 5ac84f093..82b740490 100755 --- a/code/application/source/sf_app/code/source/app/sf_common.c +++ b/code/application/source/sf_app/code/source/app/sf_common.c @@ -596,6 +596,9 @@ static SINT32 sf_app_process_cmd_SD(SF_MESSAGE_BUF_S *pMessageBuf) SINT16 startup = sf_poweron_type_get(); MLOGD("[%d,%s]\n",pMessageBuf->arg1,app_process_SD_getstatusstring(pMessageBuf->arg1)); + + sf_mmc_dev_register(pMessageBuf); + switch(pMessageBuf->arg1) { case CMD_SD_STRG_CB_UNKNOWN: diff --git a/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c b/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c new file mode 100755 index 000000000..852a6462a --- /dev/null +++ b/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c @@ -0,0 +1,277 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "DCF.h" +#include "sf_type.h" +#include "sf_log.h" +#include "sf_fileMng.h" +#include "sf_storeMng.h" + +typedef struct +{ + int event; + int dev_id; + int mounted_status; +}STRG_CB_PARAM; + + +static SF_ST_MMC_DEV sf_mmc_dev[SF_ST_MMC_DEV] = {0}; + +SINT32 sf_mmc_dev_space_check_full(const char *mountPath, SF_STORE_ATTR_S *pstoreattrs) +{ + SF_COMM_CHECK_POINTER(pstoreattrs,SF_FAILURE); + + SINT32 fd = -1; + UINT32 Isfull = 0; + fd = open(mountPath, O_RDONLY,0); + if(fd >= 0) + { + struct statfs diskInfo; + statfs(mountPath, &diskInfo); + + if(diskInfo.f_bsize > 1024) + { + pstoreattrs->SDTotalSize = (diskInfo.f_blocks * (diskInfo.f_bsize >> 10)) >> 10 ; //blocks * 4096 / 1024 /1024 = MB + pstoreattrs->SDFree = (diskInfo.f_bavail * (diskInfo.f_bsize >> 10)) >> 10 ; + } + else + { + pstoreattrs->SDTotalSize = (diskInfo.f_blocks * diskInfo.f_bsize) >> 10 ; //blocks * 4096 / 1024 /1024 = MB + pstoreattrs->SDFree = (diskInfo.f_bavail * diskInfo.f_bsize) >> 10 ; + } + close(fd); + + if(pstoreattrs->SDTotalSize > 0) + pstoreattrs->SDStatus = 0; //SD card SUCESS + else + pstoreattrs->SDStatus = 2; //SD card ERROR + } + else + { + pstoreattrs->SDStatus = 1; //SD card not insert + pstoreattrs->SDFree = 0; + pstoreattrs->SDTotalSize = 0; + return SF_FAILURE; + } + + MLOGD("SDStatus = %d,SDFree = %d MB,SDTotalSize = %d MB\n", pstoreattrs->SDStatus, pstoreattrs->SDFree,pstoreattrs->SDTotalSize); + + if(pstoreattrs.SDStatus != 0) + return pstoreattrs.SDStatus; + + Isfull = (pstoreattrs.SDFree <= SD_WARNING_SPACE)?1:0; + return Isfull; + +} + + +static int sf_mmc_dev_node_check(const char *devName) +{ + int tryCnt = 200; + int ret = access(devName, F_OK); + while (ret != 0 && tryCnt--) + { + usleep(10*1000); + ret = access(devName, F_OK); + } + + if (tryCnt < 0) + { + HAL_MMC_LOG("no found %s\n", devName); + return -1; + } + return ret; +} + +void sf_mmc_dev_register(SF_MESSAGE_BUF_S *pMessageBuf) +{ + STRG_CB_PARAM strg_cb_param; + + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + strg_cb_param.event = pMessageBuf->arg1; + strg_cb_param.dev_id = pMessageBuf->arg2; + strg_cb_param.mounted_status = pMessageBuf->arg3; + + if(strg_cb_param.dev_id == MMC_DEV_SD) + { + if(strg_cb_param.event == CMD_SD_STRG_CB_INSERTED) + { + sf_mmc_dev[MMC_DEV_SD].node == MMC_DEV_NODE_STATE_EXIST; + } + else if(strg_cb_param.event == CMD_SD_STRG_CB_REMOVED) + { + sf_mmc_dev[MMC_DEV_SD].node == MMC_DEV_NODE_STATE_NO_EXIST; + } + else if(strg_cb_param.event == CMD_SD_STRG_CB_MOUNT_FINISH) + { + sf_mmc_dev[MMC_DEV_SD].moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; + } + else if(strg_cb_param.event == CMD_SD_STRG_CB_UNMOUNT_FINISH) + { + sf_mmc_dev[MMC_DEV_SD].moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; + } + + UINT32 isfull = sf_mmc_dev_space_check_full(SD_MOUNT_ROOT); + if(isfull == 1) + { + sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_NO_ENOUGH; + } + else if(isfull == 0) + { + sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH; + } + + if(puiPara->SdLoopSwitch == 1) + { + sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON; + } + else if(puiPara->SdLoopSwitch == 0) + { + sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_OFF; + } + + } + else if(strg_cb_param.dev_id == MMC_DEV_EMMC) + { + if(sf_mmc_dev_node_check(EMMC_DEVICE_NAME) == 0) + { + sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_EXIST; + } + else + { + sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST; + } + + if(strg_cb_param.event == CMD_SD_STRG_CB_MOUNT_FINISH) + { + sf_mmc_dev[MMC_DEV_EMMC].moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; + } + else if(strg_cb_param.event == CMD_SD_STRG_CB_UNMOUNT_FINISH) + { + sf_mmc_dev[MMC_DEV_EMMC].moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; + } + + UINT32 isfull = sf_mmc_dev_space_check_full(EMMC_MOUNT_ROOT); + if(isfull == 1) + { + sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_NO_ENOUGH; + } + else if(isfull == 0) + { + sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH; + } + + if(puiPara->SdLoopSwitch == 1) + { + sf_mmc_dev[MMC_DEV_EMMC].loop_state == MMC_DEV_LOOP_STATE_ON; + } + else if(puiPara->SdLoopSwitch == 0) + { + sf_mmc_dev[MMC_DEV_EMMC].loop_state == MMC_DEV_LOOP_STATE_OFF; + } + } +} + +MMC_DEV_TYPE sf_mmc_check_workable_dev(void) +{ + MMC_DEV_TYPE workable_dev = MMC_DEV_NO; + + if(sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST) //EMMC节点不存在 + { + if(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_MOUNTED) + { + if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_NO_ENOUGH) + { + if(sf_mmc_dev[MMC_DEV_EMMC].loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_EMMC; + } + } + } + } + else if(sf_mmc_dev[MMC_DEV_SD].node == MMC_DEV_NODE_STATE_NO_EXIST) //SD节点不存在 + { + if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_MOUNTED) + { + if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_SD; + } + else if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_NO_ENOUGH) + { + if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_SD; + } + } + } + } + else //MMC节点都存在 + { + if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + { + if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else + { + if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_EMMC; + } + } + } + else if(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + { + if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_SD; + } + else + { + if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_SD; + } + } + } + else + { + if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH && + sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_SD; + } + else + { + if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_EMMC; + } + } + } + } + return workable_dev; +} diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c index ae1dc14be..ce0bf9376 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c @@ -105,18 +105,20 @@ static void card_insert_job(void) // call the function to wait init finish FileSys_WaitFinishEx('A'); FileSys_SetParamEx('A', FST_PARM_UPDATE_FSINFO , TRUE); + + sf_rtos_mmc_dev_register(0, ret); #if HUNTING_CAMERA_MCU == ENABLE - if(TRUE == sf_check_card_full()) - { - DBG_WRN("ERR card full\r\n"); - fastboot_set_done(BOOT_INIT_FILESYSOK); - } - else - { - fastboot_set_done(BOOT_INIT_FILESYSOK); + //if(TRUE == sf_check_card_full()) + //{ + //DBG_WRN("ERR card full\r\n"); + //fastboot_set_done(BOOT_INIT_FILESYSOK); + //} + //else + //{ + // sf_log_confg(); // sf_log_open(); - } + //} #endif #if FS_MULTI_STRG_FUNC @@ -139,10 +141,11 @@ static void card_insert_job(void) } // call the function to wait init finish FileSys_WaitFinishEx('B'); + sf_rtos_mmc_dev_register(1, ret); // FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE); #endif - //fastboot_set_done(BOOT_INIT_FILESYSOK); + fastboot_set_done(BOOT_INIT_FILESYSOK); DBG_WRN("filesys_init e\r\n"); } diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c index 6252c77a2..fc41998b8 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -102,6 +102,7 @@ static lfqueue_t write_queue = {0}; //local variable static DCF_HANDLE g_dcf_hdl = 0; +static DCF_HANDLE g_dcf_hdl2 = 0; static ID MOVIEFAST_FLG_ID = 0; static UINT32 g_moviefast_tsk_run = 1; static UINT32 g_moviefast_poweroff_tsk_run = 1; @@ -119,6 +120,11 @@ static VOS_TICK g_vprc_trigger_frm_time= 0; static UINT32 g_vprc_trigger_frm_count= 0; UINT32 Movie2_nextFolderID = 0, Movie2_nextFileID = 0; + +#if FS_MULTI_STRG_FUNC +CHAR FilePath2[NMC_TOTALFILEPATH_MAX_LEN]; +#endif + //local function static void MovieFast_OnRecStart(void); static void MovieFast_OnRecStop(void); @@ -308,6 +314,7 @@ static void MovieFast_ShutDown(void) fastboot_msg_en(ENABLE); #endif sf_file_thumb_cfg_sava(); + printf("%s %d\n", __FUNCTION__, __LINE__); sf_para_print(); #if (LOGFILE_FUNC==ENABLE) UIMenuStoreInfo *puiPara = sf_ui_para_get(); @@ -859,6 +866,8 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) //3. If the working mode is normal and it is cyclic recording, please judge the DirID and FileID by yourself before enering next new file recording. UINT32 nextFolderID = 0, nextFileID = 0; UINT32 max_cnt = 0; + + if (DCF_GetDBInfo(DCF_INFO_IS_9999)) { DBG_ERR("Exceed max dcf file!\r\n"); pFileName[0] = '\0'; @@ -903,6 +912,20 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) DCF_MakeObjPath(nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); DCF_AddDBfile(pFileName); DBG_DUMP("%s added to DCF\r\n", pFileName); + +#if FS_MULTI_STRG_FUNC + printf("%s %d\n", __FUNCTION__, __LINE__); + if (DCF_GetDBInfoEx(g_dcf_hdl2, DCF_INFO_IS_9999)) { + printf("Exceed max dcf file!\r\n"); + } + else { + //DCF_GetNextIDEx(g_dcf_hdl2, &nextFolderID,&nextFileID); + DCF_MakeObjPathEx(g_dcf_hdl2, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, FilePath2); + DCF_AddDBfileEx(g_dcf_hdl2, FilePath2); + printf("%s added to DCF2\r\n", FilePath2); + } +#endif + #if HUNTING_CAMERA_MCU == ENABLE char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'}; sprintf(tmp, "S%03ld%04ld.JPG", nextFolderID, nextFileID); @@ -992,10 +1015,14 @@ static void MovieFast_WriteFile_Task(void* arg) { lfqueue_t* queue = (lfqueue_t*)arg; MOVIEFAST_WRITE_QUEUE_PARAM* param; + INT32 rt; + printf("%s %d\n", __FUNCTION__, __LINE__); fastboot_wait_done(BOOT_INIT_FILESYSOK); #if HUNTING_CAMERA_MCU == ENABLE - if(TRUE == sf_is_card_full()) + //if(TRUE == sf_is_card_full()) + MMC_DEV_TYPE mmc_dev = sf_rtos_mmc_check_workable_dev(); + if(mmc_dev == MMC_DEV_NO) { DBG_ERR("ERR card full\r\n"); //return ; @@ -1012,26 +1039,71 @@ static void MovieFast_WriteFile_Task(void* arg) if(param->va){ DBG_DUMP("Write %s\n", param->path); #if HUNTING_CAMERA_MCU == ENABLE - if(TRUE != sf_is_card_full()) + //if(TRUE != sf_is_card_full()) + if(mmc_dev == MMC_DEV_SD) #endif { FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE); FileSys_WriteFile(fp, (UINT8*)param->va, ¶m->size, 0, NULL); FileSys_CloseFile(fp); } - +#if FS_MULTI_STRG_FUNC + if(mmc_dev == MMC_DEV_EMMC) + { + DBG_WRN("write %s\n", FilePath2); + FST_FILE fp = FileSys_OpenFile(FilePath2, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + if ((fp != NULL)) { + rt = FileSys_WriteFile(fp, (UINT8*)param->va, ¶m->size, 0, NULL); + //FileSys_FlushFile(fp); + FileSys_CloseFile(fp); + if (rt == FST_STA_OK) { + // DCF_AddDBfile(FilePath); + // DBG_DUMP("%s added to DCF\r\n", FilePath); + } else { + DBG_ERR("Addr=0x%x,Size=0x%x\r\n", (UINT8*)param->va, ¶m->size); + } + } + else { + DBG_ERR("FileSys_OpenFile fail\r\n"); + } + } +#endif free(param->va); } else if(param->frame.phy_addr[0]){ DBG_DUMP("Write %s\n", param->path); #if HUNTING_CAMERA_MCU == ENABLE - if(TRUE != sf_is_card_full()) + //if(TRUE != sf_is_card_full()) + if(mmc_dev == MMC_DEV_SD) #endif { FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE); FileSys_WriteFile(fp, (UINT8*)param->frame.phy_addr[0], ¶m->size, 0, NULL); FileSys_CloseFile(fp); } + +#if FS_MULTI_STRG_FUNC + if(mmc_dev == MMC_DEV_EMMC) + { + DBG_WRN("write %s\n", FilePath2); + FST_FILE fp = FileSys_OpenFile(FilePath2, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + if ((fp != NULL)) { + rt = FileSys_WriteFile(fp, (UINT8*)param->frame.phy_addr[0], ¶m->size, 0, NULL); + //FileSys_FlushFile(fp); + FileSys_CloseFile(fp); + if (rt == FST_STA_OK) { + // DCF_AddDBfile(FilePath); + // DBG_DUMP("%s added to DCF\r\n", FilePath); + } else { + DBG_ERR("Addr=0x%x,Size=0x%x\r\n", (UINT8*)param->frame.phy_addr[0], ¶m->size); + } + } + else { + DBG_ERR("FileSys_OpenFile fail\r\n"); + } + } + +#endif hd_videoproc_release_out_buf(param->vprc_path_id, ¶m->frame); } @@ -1198,6 +1270,31 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) DCF_SetDirFreeChars(DCF_DIR_NAME); DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); DCF_ScanObj(); + +#if (FS_MULTI_STRG_FUNC) + { + DCF_OPEN_PARM dcfParm = { + .Drive = 'B', + .WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER, + .WorkbuffSize = POOL_SIZE_DCF_BUFFER, + }; + g_dcf_hdl2 = DCF_Open(&dcfParm); + if(g_dcf_hdl2 < 0){ + DBG_ERR("get dcf handle error!\n"); + } + + + printf("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2); + // DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FOLDER, TRUE); + // DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE); + // DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); + // DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); + // DCF_SetDirFreeChars(DCF_DIR_NAME); + // DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); + DCF_ScanObjEx(g_dcf_hdl2); + } +#endif + #if HUNTING_CAMERA_MCU == ENABLE if(TRUE != sf_is_card_full()) #endif @@ -1894,6 +1991,12 @@ static void MovieFast_Close(void) EXIT: DCF_Close(g_dcf_hdl); + g_dcf_hdl = -1; + +#if (FS_MULTI_STRG_FUNC) + DCF_Close(g_dcf_hdl2); + g_dcf_hdl2 = -1; +#endif DCF_UnInstallID(); vos_flag_destroy(MOVIEFAST_FLG_ID); diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c index 4b9102435..c847c3385 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -938,7 +938,7 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, DBG_DUMP("%s added to DCF\r\n", FilePath); } -#if 0//FS_MULTI_STRG_FUNC +#if FS_MULTI_STRG_FUNC if (DCF_GetDBInfoEx(g_dcf_hdl2, DCF_INFO_IS_9999)) { DBG_ERR("Exceed max dcf file!\r\n"); @@ -973,7 +973,9 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, //sprintf(tmp, "W%03ld%04ld.JPG", nextFolderID, nextFileID); strncpy(g_photo_fast_write_file_Path, tmp, sizeof(g_photo_fast_write_file_Path) - 1); DBG_IND("last send file:%s\r\n", tmp); - if(TRUE == sf_is_card_full()) + //if(TRUE == sf_is_card_full()) + MMC_DEV_TYPE mmc_dev = sf_rtos_mmc_check_workable_dev(); + if(mmc_dev == MMC_DEV_NO) { DBG_ERR("ERR Addr=0x%x,Size=0x%x,Fmt=%d card full\r\n", Addr, Size, Fmt); rt =FST_STA_ERROR; @@ -988,7 +990,9 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, open_flag = FST_CREATE_ALWAYS | FST_OPEN_WRITE; - if ((fp = FileSys_OpenFile(FilePath, open_flag)) != NULL) { + if(mmc_dev == MMC_DEV_SD) + { + if ((fp = FileSys_OpenFile(FilePath, open_flag)) != NULL) { Length = Size; rt = FileSys_WriteFile(fp, (UINT8 *)Addr, &Length, 0, NULL); @@ -1000,34 +1004,34 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, } else { DBG_ERR("Addr=0x%x,Size=0x%x,Fmt=%d\r\n", Addr, Size, Fmt); } - }else{ - DBG_ERR("FileSys_OpenFile fail\r\n"); - rt =FST_STA_ERROR; + }else{ + DBG_ERR("FileSys_OpenFile fail\r\n"); + rt =FST_STA_ERROR; + } } - #if FS_MULTI_STRG_FUNC + if(mmc_dev == MMC_DEV_EMMC) + { + DBG_WRN("write %s\n", FilePath2); + if ((fp = FileSys_OpenFile(FilePath2, open_flag)) != NULL) { + Length = Size; - DBG_WRN("write %s\n", FilePath2); - if ((fp = FileSys_OpenFile(FilePath2, open_flag)) != NULL) { - Length = Size; - - rt = FileSys_WriteFile(fp, (UINT8 *)Addr, &Length, 0, NULL); - FileSys_FlushFile(fp); - FileSys_CloseFile(fp); - if (rt == FST_STA_OK) { - // DCF_AddDBfile(FilePath); - // DBG_DUMP("%s added to DCF\r\n", FilePath); - } else { - DBG_ERR("Addr=0x%x,Size=0x%x,Fmt=%d\r\n", Addr, Size, Fmt); + rt = FileSys_WriteFile(fp, (UINT8 *)Addr, &Length, 0, NULL); + FileSys_FlushFile(fp); + FileSys_CloseFile(fp); + if (rt == FST_STA_OK) { + // DCF_AddDBfile(FilePath); + // DBG_DUMP("%s added to DCF\r\n", FilePath); + } else { + DBG_ERR("Addr=0x%x,Size=0x%x,Fmt=%d\r\n", Addr, Size, Fmt); + } + }else{ + DBG_ERR("FileSys_OpenFile fail\r\n"); + rt =FST_STA_ERROR; } - }else{ - DBG_ERR("FileSys_OpenFile fail\r\n"); - rt =FST_STA_ERROR; } #endif - - return rt; } diff --git a/rtos/code/driver/na51089/include/sf_sd_common.h b/rtos/code/driver/na51089/include/sf_sd_common.h new file mode 100755 index 000000000..1789534b8 --- /dev/null +++ b/rtos/code/driver/na51089/include/sf_sd_common.h @@ -0,0 +1,66 @@ +/************************************************************************** + * + * Copyright (c) 2015-2021 by WuYuan Technology, Inc. + * + * This software is copyrighted by and is the property of SiFar + * Technology, Inc.. All rights are reserved by SiFar Technology, Inc.. + * This software may only be used in accordance with the corresponding + * license agreement. Any unauthorized use, duplication, distribution, + * or disclosure of this software is expressly forbidden. + * + * This Copyright notice MUST not be removed or modified without prior + * written consent of SiFar Technology, Inc.. + * + * WuYuan Technology, Inc. reserves the right to modify this software without notice. + * + * Author: Sober + * Ver: 1.0.0 2023.12.23 + * Description: Creat +**************************************************************************/ +#ifndef _SF_SD_COMM_H_ +#define _SF_SD_COMM_H_ + +typedef enum +{ + MMC_DEV_SD = 0, + MMC_DEV_EMMC = 1, + MMC_DEV_NO = 2, +}MMC_DEV_TYPE; + +typedef enum +{ + MMC_DEV_NODE_STATE_NO = 0, + MMC_DEV_NODE_STATE_EXIST = 1, + MMC_DEV_NODE_STATE_NO_EXIST = 2, +}MMC_DEV_NODE_STATE; + +typedef enum +{ + MMC_DEV_MOUNT_STATE_NO = 0, + MMC_DEV_MOUNT_STATE_MOUNTED = 1, + MMC_DEV_MOUNT_STATE_UNMOUNTED = 2, +}MMC_DEV_MOUNT_STATE; + +typedef enum +{ + MMC_DEV_SPACE_STATE_NO = 0, + MMC_DEV_SPACE_STATE_ENOUGH = 1, + MMC_DEV_SPACE_STATE_NO_ENOUGH = 2, +}MMC_DEV_SPACE_STATE; + +typedef enum +{ + MMC_DEV_LOOP_STATE_NO = 0, + MMC_DEV_LOOP_STATE_ON = 1, + MMC_DEV_LOOP_STATE_OFF = 2, +}MMC_DEV_LOOP_STATE; + +typedef struct +{ + //MMC_DEV_NODE_STATE node; + MMC_DEV_MOUNT_STATE moumted_state; + MMC_DEV_SPACE_STATE space_state; + //MMC_DEV_LOOP_STATE loop_state; +}SF_RTOS_ST_MMC_DEV; + +#endif \ No newline at end of file diff --git a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c index 1c4df5db2..eaa2ef96b 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c +++ b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c @@ -90,6 +90,49 @@ UINT32 sf_check_card_full(void) return ret; } +static UINT32 sf_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev) +{ + UINT64 diskFree = 0; + UINT32 ret = 0; + + //UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if(!sf_in_card_exist()) + { + return 1; + } + + /*check disk free size*/ + if(mmc_dev == MMC_DEV_SD) + { + diskFree = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); + } + else + { + diskFree = FileSys_GetEMMCDiskInfo(FST_INFO_FREE_SPACE); + } + + diskFree = diskFree/1024/1024; + + if(diskFree < 30) /* 30MB */ + { + ret = TRUE; + //if(0 == puiPara->SdLoopSwitch) + { + IsCardFull = TRUE; + } + //printf("%s:%d sd card is full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); + } + else + { + ret = FALSE; + + } + + printf("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); + + return ret; +} + void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB) { g_fpSd_Exist_CB = fpCB; @@ -110,6 +153,84 @@ BOOL sf_in_card_exist(void) } - +int sf_rtos_mmc_dev_register(int devid, int mounted_state) +{ + if(mounted_state == FST_STA_OK) + { + sf_mmc_dev[devid].moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; + } + else + { + sf_mmc_dev[devid].moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; + } + + int isfull = sf_mmc_dev_space_check_full(devid); + if(isfull) + { + sf_mmc_dev[devid].space_state = MMC_DEV_SPACE_STATE_ENOUGH; + } + else{ + sf_mmc_dev[devid].space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; + } +} + +MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void) +{ + MMC_DEV_TYPE workable_dev = MMC_DEV_NO; + + if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + { + if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else + { + if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_EMMC; + } + } + } + else if(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + { + if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_SD; + } + else + { + if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_SD; + } + } + } + else + { + if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH && + sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_SD; + } + else + { + if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_EMMC; + } + } + } + + return workable_dev; +} diff --git a/rtos/code/lib/include/FileSysTsk.h b/rtos/code/lib/include/FileSysTsk.h index efaf12657..edab30250 100755 --- a/rtos/code/lib/include/FileSysTsk.h +++ b/rtos/code/lib/include/FileSysTsk.h @@ -1722,5 +1722,9 @@ extern int FileSys_SearchFileRewind(FS_SEARCH_HDL pSearch); #define fs_SearchFile FileSys_SearchFile #define fs_SearchFileClose FileSys_SearchFileClose #define fs_SearchFileRewind FileSys_SearchFileRewind + +#define FileSys_GetEMMCDiskInfo(parm1) FileSys_GetDiskInfoEx('B', parm1) + + //@} #endif From 2a20d7fd2a2fda8a56189c171853f2454b2bf703 Mon Sep 17 00:00:00 2001 From: "sober.song" Date: Sat, 23 Dec 2023 19:15:22 +0800 Subject: [PATCH 2/8] =?UTF-8?q?rtos=E5=92=8Clinux=E4=B8=8B=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E8=AE=BE=E5=A4=87=E5=88=87=E6=8D=A2=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/cardv/SrcCode/System/SysStrg_Exe.c | 1 + .../SrcCode/UIApp/Movie/UIAppMovie_Exe.c | 29 +++++++++++++++++-- code/application/source/sf_app/Makefile | 1 + .../source/sf_app/code/include/sf_mmc_dev.h | 2 +- .../sf_app/code/source/storeMng/sf_mmc_dev.c | 21 +++++++++----- code/lib/source/sifar/Makefile | 1 + .../sifar/code/source/common/sf_sd_common.c | 1 + .../source/cardv/SrcCode/System/sys_filesys.c | 1 + .../cardv/SrcCode/UIApp/MovieFast/MovieFast.c | 2 +- .../cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c | 4 ++- .../driver/na51089/include/sf_sd_common.h | 4 +++ .../driver/na51089/source/mcu/sf_sd_common.c | 18 ++++++++---- 12 files changed, 65 insertions(+), 20 deletions(-) diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c index fe4a9b0f2..e940a5390 100644 --- a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c @@ -75,6 +75,7 @@ #include #include #include "sf_sd_common.h" +#include #endif #if (LOGFILE_FUNC==ENABLE) #include "LogFile.h" diff --git a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c index 9306ca6bf..31608796d 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c @@ -37,6 +37,7 @@ #endif #include "vendor_videoout.h" #include "IOCfg.h" +#include "sf_mmc_dev.h" #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER /////////////////////////////////////////////////////////////////////////////// @@ -1217,6 +1218,11 @@ BOOL MovieExe_CheckSNFull(void) static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) { + MMC_DEV_TYPE mmc_dev = sf_mmc_check_workable_dev(); + if(mmc_dev == MMC_DEV_NO) + { + DBG_ERR("No Strg dev can use!\n"); + } #if USE_FILEDB static struct tm CurDateTime = {0}; @@ -1226,10 +1232,19 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) g_FileSerialNum = FILE_SN_MAX; Ux_PostEvent(NVTEVT_CB_MOVIE_FULL, 0); } - GxTime_GetTime(&CurDateTime); #if(SENSOR_CAPS_COUNT>=2 || ((defined(_NVT_ETHREARCAM_RX_)) && (ETH_REARCAM_CAPS_COUNT >= 2))) - char NH_endChar='A'; + char NH_endChar='A'; + + if(mmc_dev == MMC_DEV_SD) + { + NH_endChar='A'; + } + else if(mmc_dev == MMC_DEV_EMMC) + { + NH_endChar='B'; + } + if(id < _CFG_REC_ID_MAX){ NH_endChar+=id; }else if(id <_CFG_CLONE_ID_MAX){ @@ -1247,8 +1262,16 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) CurDateTime.tm_hour, CurDateTime.tm_min, CurDateTime.tm_sec, g_FileSerialNum); #endif #elif USE_DCF + UINT32 dcf_path = 1; - UINT32 dcf_path = 1; /* 0:emmc 1:sd */ + if(mmc_dev == MMC_DEV_SD) + { + dcf_path = 1; /* 0:emmc 1:sd */ + } + else if(mmc_dev == MMC_DEV_EMMC) + { + dcf_path = 0; /* 0:emmc 1:sd */ + } UINT32 nextFolderID = 0, nextFileID = 0; if (DCF_GetDBInfoEx(dcf_path, DCF_INFO_IS_9999)) { diff --git a/code/application/source/sf_app/Makefile b/code/application/source/sf_app/Makefile index 0ee1de076..877ed739e 100755 --- a/code/application/source/sf_app/Makefile +++ b/code/application/source/sf_app/Makefile @@ -298,6 +298,7 @@ SRC = \ ./code/source/qrcodeMng/sf_qrcode.c \ ./code/source/qrcodeMng/split.c \ ./code/source/storeMng/sf_storeMng.c \ + ./code/source/storeMng/sf_mmc_dev.c \ ./code/source/ttyusb/sf_hal_ttyusb.c \ ./code/source/4gMng/sf_4g_lpa.c \ ./code/source/4gMng/sf_4G_sms_lpa_cmd.c \ diff --git a/code/application/source/sf_app/code/include/sf_mmc_dev.h b/code/application/source/sf_app/code/include/sf_mmc_dev.h index 16cbb8c7a..67d3ba384 100755 --- a/code/application/source/sf_app/code/include/sf_mmc_dev.h +++ b/code/application/source/sf_app/code/include/sf_mmc_dev.h @@ -76,7 +76,7 @@ typedef struct MMC_DEV_LOOP_STATE loop_state; }SF_ST_MMC_DEV; - +MMC_DEV_TYPE sf_mmc_check_workable_dev(void); #endif diff --git a/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c b/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c index 852a6462a..acce9090b 100755 --- a/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c +++ b/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c @@ -16,6 +16,11 @@ #include "sf_fileMng.h" #include "sf_storeMng.h" +#include "sf_mmc_dev.h" +#include + + + typedef struct { int event; @@ -24,12 +29,12 @@ typedef struct }STRG_CB_PARAM; -static SF_ST_MMC_DEV sf_mmc_dev[SF_ST_MMC_DEV] = {0}; +static SF_ST_MMC_DEV sf_mmc_dev[MMC_DEV_MAX_NUM] = {0}; -SINT32 sf_mmc_dev_space_check_full(const char *mountPath, SF_STORE_ATTR_S *pstoreattrs) +SINT32 sf_mmc_dev_space_check_full(const char *mountPath) { + SF_STORE_ATTR_S *pstoreattrs = NULL; SF_COMM_CHECK_POINTER(pstoreattrs,SF_FAILURE); - SINT32 fd = -1; UINT32 Isfull = 0; fd = open(mountPath, O_RDONLY,0); @@ -65,10 +70,10 @@ SINT32 sf_mmc_dev_space_check_full(const char *mountPath, SF_STORE_ATTR_S *pstor MLOGD("SDStatus = %d,SDFree = %d MB,SDTotalSize = %d MB\n", pstoreattrs->SDStatus, pstoreattrs->SDFree,pstoreattrs->SDTotalSize); - if(pstoreattrs.SDStatus != 0) - return pstoreattrs.SDStatus; + if(pstoreattrs->SDStatus != 0) + return pstoreattrs->SDStatus; - Isfull = (pstoreattrs.SDFree <= SD_WARNING_SPACE)?1:0; + Isfull = (pstoreattrs->SDFree <= SD_WARNING_SPACE)?1:0; return Isfull; } @@ -86,7 +91,7 @@ static int sf_mmc_dev_node_check(const char *devName) if (tryCnt < 0) { - HAL_MMC_LOG("no found %s\n", devName); + printf("no found %s\n", devName); return -1; } return ret; @@ -96,7 +101,7 @@ void sf_mmc_dev_register(SF_MESSAGE_BUF_S *pMessageBuf) { STRG_CB_PARAM strg_cb_param; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); strg_cb_param.event = pMessageBuf->arg1; strg_cb_param.dev_id = pMessageBuf->arg2; strg_cb_param.mounted_status = pMessageBuf->arg3; diff --git a/code/lib/source/sifar/Makefile b/code/lib/source/sifar/Makefile index 6f2ab65bf..12a051898 100755 --- a/code/lib/source/sifar/Makefile +++ b/code/lib/source/sifar/Makefile @@ -84,6 +84,7 @@ SRC = \ $(APP_DIR)/source/sf_app/code/source/qrcodeMng/sf_base64.c \ $(APP_DIR)/source/sf_app/code/source/paramMng/sf_param_common.c \ $(APP_DIR)/source/sf_app/code/source/commMng/sf_message_queue.c \ + $(APP_DIR)/source/sf_app/code/source/storeMng/sf_mmc_dev.c \ $(APP_DIR)/source/sf_app/code/source/commMng/sf_share_mem.c \ $(APP_DIR)/source/sf_app/code/source/fileMng/sf_fileMng.c \ $(APP_DIR)/source/sf_app/code/source/wifi/sf_data_transfer.c \ diff --git a/code/lib/source/sifar/code/source/common/sf_sd_common.c b/code/lib/source/sifar/code/source/common/sf_sd_common.c index 981b5d3e1..39a4ae4c9 100644 --- a/code/lib/source/sifar/code/source/common/sf_sd_common.c +++ b/code/lib/source/sifar/code/source/common/sf_sd_common.c @@ -43,6 +43,7 @@ #include #include "UIInfo/UIInfo.h" #include +#include "sf_sd_common.h" SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL; static int formatSD = CMD_FORMAT_SD_ERR; diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c index ce0bf9376..e90e46ac0 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c @@ -21,6 +21,7 @@ #if (HUNTING_CAMERA_MODEL == ENABLE) #include "IOCfg.h" +#include "sf_sd_common.h" #define GPIO_CARD_INSERT_LEVEL (FALSE) // low active #define MAX_OPENED_FILE_NUM 10 diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c index fc41998b8..d190fff89 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -38,7 +38,7 @@ #include "UIAppPhoto_Param.h" #include "sys_fwload.h" #include "../lfqueue/lfqueue.h" - +#include "sf_sd_common.h" #include #include diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c index c847c3385..1b6b1a91e 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -41,6 +41,8 @@ #if HUNTING_CAMERA_MCU == ENABLE #include #include "sf_led.h" +#include "sf_sd_common.h" + #endif #if POWERON_FAST_SLICE_ENC == ENABLE @@ -884,7 +886,7 @@ void PhotoFast_FileNaming_SetSortBySN(CHAR *pDelimStr, UINT32 nDelimCount, UINT3 INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path) { FST_FILE fp; - INT32 rt; + INT32 rt = 0; UINT32 Length; CHAR FilePath[NMC_TOTALFILEPATH_MAX_LEN]; diff --git a/rtos/code/driver/na51089/include/sf_sd_common.h b/rtos/code/driver/na51089/include/sf_sd_common.h index 1789534b8..53e57b379 100755 --- a/rtos/code/driver/na51089/include/sf_sd_common.h +++ b/rtos/code/driver/na51089/include/sf_sd_common.h @@ -20,6 +20,8 @@ #ifndef _SF_SD_COMM_H_ #define _SF_SD_COMM_H_ +#define MMC_DEV_MAX_NUM (2) + typedef enum { MMC_DEV_SD = 0, @@ -63,4 +65,6 @@ typedef struct //MMC_DEV_LOOP_STATE loop_state; }SF_RTOS_ST_MMC_DEV; +int sf_rtos_mmc_dev_register(int devid, int mounted_state); +MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void); #endif \ No newline at end of file diff --git a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c index eaa2ef96b..b914a508b 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c +++ b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c @@ -43,11 +43,15 @@ //#include #include "UIInfo/UIInfo.h" #include +#include "sf_sd_common.h" static BOOL IsCardFull = FALSE; SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL; extern BOOL DrvCARD_DetStrgCard(void); +static SF_RTOS_ST_MMC_DEV sf_mmc_dev[MMC_DEV_MAX_NUM] = {0}; + + BOOL sf_is_card_full(void) { //printf("[%s]:%d IsCardFull:%d\n", __FUNCTION__, __LINE__, IsCardFull); @@ -172,6 +176,8 @@ int sf_rtos_mmc_dev_register(int devid, int mounted_state) else{ sf_mmc_dev[devid].space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; } + + return 0; } MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void) @@ -186,9 +192,9 @@ MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void) } else { - if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + //if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) { - workable_dev = MMC_DEV_EMMC; + //workable_dev = MMC_DEV_EMMC; } } } @@ -200,9 +206,9 @@ MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void) } else { - if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + //if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) { - workable_dev = MMC_DEV_SD; + //workable_dev = MMC_DEV_SD; } } } @@ -223,9 +229,9 @@ MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void) } else { - if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + //if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) { - workable_dev = MMC_DEV_EMMC; + //workable_dev = MMC_DEV_EMMC; } } } From 69dc8b618cbb9734d84edbbc21faabeb1f8618a2 Mon Sep 17 00:00:00 2001 From: "sober.song" Date: Mon, 25 Dec 2023 11:30:44 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86EMMC?= =?UTF-8?q?=E5=92=8CSD=E5=8D=A1=E5=88=87=E6=8D=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SrcCode/UIApp/Movie/UIAppMovie_Exe.c | 8 ++--- .../source/sf_app/code/source/app/sf_common.c | 2 +- .../sf_app/code/source/storeMng/sf_mmc_dev.c | 33 ++++++++++++++----- .../source/cardv/SrcCode/System/sys_filesys.c | 4 +-- .../driver/na51089/source/mcu/sf_sd_common.c | 9 +++-- 5 files changed, 39 insertions(+), 17 deletions(-) diff --git a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c index 31608796d..78b03f071 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c @@ -1236,13 +1236,13 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) #if(SENSOR_CAPS_COUNT>=2 || ((defined(_NVT_ETHREARCAM_RX_)) && (ETH_REARCAM_CAPS_COUNT >= 2))) char NH_endChar='A'; - if(mmc_dev == MMC_DEV_SD) + //if(mmc_dev == MMC_DEV_SD) { - NH_endChar='A'; + //NH_endChar='A'; } - else if(mmc_dev == MMC_DEV_EMMC) + //else if(mmc_dev == MMC_DEV_EMMC) { - NH_endChar='B'; + //NH_endChar='B'; } if(id < _CFG_REC_ID_MAX){ diff --git a/code/application/source/sf_app/code/source/app/sf_common.c b/code/application/source/sf_app/code/source/app/sf_common.c index 82b740490..0dd30706d 100755 --- a/code/application/source/sf_app/code/source/app/sf_common.c +++ b/code/application/source/sf_app/code/source/app/sf_common.c @@ -595,7 +595,7 @@ static SINT32 sf_app_process_cmd_SD(SF_MESSAGE_BUF_S *pMessageBuf) UINT32 status; SINT16 startup = sf_poweron_type_get(); - MLOGD("[%d,%s]\n",pMessageBuf->arg1,app_process_SD_getstatusstring(pMessageBuf->arg1)); + MLOGD("[dev_id:%d,evt:%s]\n",pMessageBuf->arg2,app_process_SD_getstatusstring(pMessageBuf->arg1)); sf_mmc_dev_register(pMessageBuf); diff --git a/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c b/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c index acce9090b..335881f79 100755 --- a/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c +++ b/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c @@ -19,8 +19,6 @@ #include "sf_mmc_dev.h" #include - - typedef struct { int event; @@ -28,13 +26,12 @@ typedef struct int mounted_status; }STRG_CB_PARAM; - static SF_ST_MMC_DEV sf_mmc_dev[MMC_DEV_MAX_NUM] = {0}; SINT32 sf_mmc_dev_space_check_full(const char *mountPath) { SF_STORE_ATTR_S *pstoreattrs = NULL; - SF_COMM_CHECK_POINTER(pstoreattrs,SF_FAILURE); + //SF_COMM_CHECK_POINTER(pstoreattrs,SF_FAILURE); SINT32 fd = -1; UINT32 Isfull = 0; fd = open(mountPath, O_RDONLY,0); @@ -100,12 +97,14 @@ static int sf_mmc_dev_node_check(const char *devName) void sf_mmc_dev_register(SF_MESSAGE_BUF_S *pMessageBuf) { STRG_CB_PARAM strg_cb_param; - + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); strg_cb_param.event = pMessageBuf->arg1; strg_cb_param.dev_id = pMessageBuf->arg2; strg_cb_param.mounted_status = pMessageBuf->arg3; + MLOGD("[dev_id:%d, evt:%d]\n",strg_cb_param.dev_id, strg_cb_param.event); + if(strg_cb_param.dev_id == MMC_DEV_SD) { if(strg_cb_param.event == CMD_SD_STRG_CB_INSERTED) @@ -189,8 +188,13 @@ void sf_mmc_dev_register(SF_MESSAGE_BUF_S *pMessageBuf) MMC_DEV_TYPE sf_mmc_check_workable_dev(void) { MMC_DEV_TYPE workable_dev = MMC_DEV_NO; - - if(sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST) //EMMC节点不存在 + MLOGD("sf mmc check workable dev start!!!\n"); + if((sf_mmc_dev[MMC_DEV_SD].node == MMC_DEV_NODE_STATE_NO_EXIST) && + (sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST)) + { + workable_dev = MMC_DEV_NO; + } + else if(sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST) //EMMC节点不存在 { if(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_MOUNTED) { @@ -226,7 +230,12 @@ MMC_DEV_TYPE sf_mmc_check_workable_dev(void) } else //MMC节点都存在 { - if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + if((sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) && + (sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)) + { + workable_dev = MMC_DEV_NO; + } + else if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) { if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) { @@ -278,5 +287,13 @@ MMC_DEV_TYPE sf_mmc_check_workable_dev(void) } } } + MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev); + for(int i = 0; i < 2; i++) + { + MLOGD("node:%d, mount:%d, space:%d, loop:%d\n", + sf_mmc_dev[i].node, sf_mmc_dev[i].moumted_state, + sf_mmc_dev[i].space_state, sf_mmc_dev[i].loop_state); + } + return workable_dev; } diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c index e90e46ac0..76e08e3e4 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c @@ -112,7 +112,7 @@ static void card_insert_job(void) //if(TRUE == sf_check_card_full()) //{ //DBG_WRN("ERR card full\r\n"); - //fastboot_set_done(BOOT_INIT_FILESYSOK); + fastboot_set_done(BOOT_INIT_FILESYSOK); //} //else //{ @@ -146,7 +146,7 @@ static void card_insert_job(void) // FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE); #endif - fastboot_set_done(BOOT_INIT_FILESYSOK); + //fastboot_set_done(BOOT_INIT_FILESYSOK); DBG_WRN("filesys_init e\r\n"); } diff --git a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c index b914a508b..6238d2d1e 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c +++ b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c @@ -183,8 +183,13 @@ int sf_rtos_mmc_dev_register(int devid, int mounted_state) MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void) { MMC_DEV_TYPE workable_dev = MMC_DEV_NO; - - if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + + if((sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) && + (sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)) + { + workable_dev = MMC_DEV_NO; + } + else if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) { if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) { From 1a18ae504a5de470b79d0603d062b050859999b0 Mon Sep 17 00:00:00 2001 From: "sober.song" Date: Mon, 25 Dec 2023 15:41:01 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=8E=9F=E5=8E=82EMMC?= =?UTF-8?q?=E5=92=8CSD=E5=8D=A1=E5=85=BC=E5=AE=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dx/565_HUNTING_EVB_LINUX_4G_S550/DxCfg.c | 4 +- .../source/cardv/SrcCode/Gx/GxStrg/GxStrg.c | 6 +- .../cardv/SrcCode/Gx/GxStrg/GxStrgDevice.c | 2 +- .../cardv/SrcCode/Gx/GxStrg/GxStrgLnx.c | 83 +- .../source/cardv/SrcCode/PrjCfg_DVCam.h | 2 +- .../cardv/SrcCode/PrjCfg_HUNTING_S550.h | 13 +- .../source/cardv/SrcCode/System/SysMain.c | 41 +- .../source/cardv/SrcCode/System/SysMain_Exe.c | 46 +- .../source/cardv/SrcCode/System/SysMain_cmd.c | 22 +- .../source/cardv/SrcCode/System/SysStrg_Exe.c | 401 +++-- .../cardv/SrcCode/System/SysStrg_Exe.c.bak | 1593 +++++++++++++++++ .../UIApp/Background/UIBackgroundObj.c | 8 - .../UIApp/Background/UIBackgroundObj.h | 1 - .../SrcCode/UIApp/Movie/UIAppMovie_Exe.c | 66 +- .../SrcCode/UIApp/Photo/UIAppPhoto_Exe.c | 48 +- .../SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c | 27 +- .../LVGL_SPORTCAM/Resource/Images/images.c | 576 ------ .../Resource/Languages/Language_DE.c | 2 - .../Resource/Languages/Language_EN.c | 4 +- .../Resource/Languages/Language_ES.c | 2 - .../Resource/Languages/Language_FR.c | 2 - .../Resource/Languages/Language_IT.c | 2 - .../Resource/Languages/Language_JP.c | 2 - .../Resource/Languages/Language_PO.c | 2 - .../Resource/Languages/Language_RU.c | 2 - .../Resource/Languages/Language_SC.c | 2 - .../Resource/Languages/Language_TC.c | 2 - .../UIFlowLVGL.UIFlowMenuCommonOption.lvglscr | 45 +- .../UIFlowLVGL.UIFlowMovie.lvglscr | 120 +- .../UIFlowLVGL.UIFlowPhoto.lvglscr | 32 +- .../UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvgllang | 28 +- .../UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp | 15 - .../UIFlowClose/UIFlowCloseEventCallback.c | 8 +- .../UIFlowClose/UIFlowCloseEventCallback.h | 7 +- .../LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c | 5 - .../LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.h | 128 +- .../UIFlowMenuCommonConfirmEventCallback.c | 12 +- .../UIFlowMenuCommonItem/MenuGeneral.c | 49 +- .../UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h | 3 - .../UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c | 201 +-- .../UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h | 1 - .../UIFlowMenuCommonItem/MenuSend.c | 58 +- .../UIFlowMenuCommonItem/MenuSend.h | 4 +- .../UIFlowMenuCommonItemEventCallback.c | 70 +- .../UIFlowMenuCommonOption.c | 30 +- .../UIFlowMenuCommonOptionEventCallback.c | 590 +----- .../UIFlowLVGL/UIFlowMovie/UIFlowMovie.c | 118 +- .../UIFlowLVGL/UIFlowMovie/UIFlowMovie.h | 2 +- .../UIFlowMovie/UIFlowMovieEventCallback.c | 53 +- .../UIFlowPasswordEventCallback.c | 23 +- .../UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.c | 108 +- .../UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.h | 2 +- .../UIFlowPhoto/UIFlowPhotoEventCallback.c | 174 +- .../UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c | 8 +- .../UIFlowPlay/UIFlowPlayEventCallback.c | 36 +- .../UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c | 57 +- .../UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h | 2 +- .../UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c | 16 +- .../UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h | 2 - 59 files changed, 2501 insertions(+), 2467 deletions(-) create mode 100755 code/application/source/cardv/SrcCode/System/SysStrg_Exe.c.bak diff --git a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/DxCfg.c b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/DxCfg.c index 5a39261e8..6ffd2ba1d 100755 --- a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/DxCfg.c +++ b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/DxCfg.c @@ -110,13 +110,13 @@ DX_HANDLE Dx_GetObject(UINT32 DxClassType) // Query device object hDevice = (UINT32)(&gDevEmbMem7); } else if ((DxClassType & DX_TYPE_MASK) == DX_TYPE_EMBMEM8) { hDevice = (UINT32)(&gDevEmbMem8); - DBG_ERR("DX_TYPE_EMBMEM8 hDevice = %lx\n", hDevice); + DBG_IND("DX_TYPE_EMBMEM8 hDevice = %lx\n", hDevice); } #endif #if !defined(_CARD1_NONE_) if ((DxClassType & DX_TYPE_MASK) == DX_TYPE_CARD1) { hDevice = (UINT32)(&gDevCARD1); - DBG_ERR("DX_TYPE_CARD1 hDevice = %lx\n", hDevice); + DBG_IND("DX_TYPE_CARD1 hDevice = %lx\n", hDevice); } #endif #if !defined(_CARD3_NONE_) diff --git a/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrg.c b/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrg.c index 822eda4e2..54f0f1145 100755 --- a/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrg.c +++ b/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrg.c @@ -47,6 +47,7 @@ BOOL GxStrg_OpenDevice(UINT32 DevID, DX_HANDLE NewStrgDXH) return FALSE; } + DBG_WRN("FileSys_OpenEx %c\n", GXSTRG_ID2DRV(DevID)); if (FileSys_OpenEx(GXSTRG_ID2DRV(DevID), (FS_HANDLE)NewStrgDXH, &g_FSInitParam[DevID]) != FST_STA_OK) { DBG_WRN("FileSys_Open(DevID %d)\r\n", DevID); return FALSE; @@ -101,11 +102,14 @@ void GxStrg_SendMountStatus(UINT32 DevId, UINT32 MsgId) if (FST_FS_TYPE_LINUX == g_FsType) { if (g_LnxStrgStatus[DevId].IsFormatted) { + CHKPNT; MountStatus = FST_STA_OK; } else { + CHKPNT; MountStatus = FST_STA_DISK_UNFORMAT; } } else { + CHKPNT; MountStatus = MsgId; } @@ -174,4 +178,4 @@ void GxStrg_SetStrgMountStatus(UINT32 DevID, BOOL bMountOK) } else { g_LnxStrgStatus[DevID].IsFormatted = FALSE; } -} \ No newline at end of file +} diff --git a/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrgDevice.c b/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrgDevice.c index c2e0ce689..675d5953e 100644 --- a/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrgDevice.c +++ b/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrgDevice.c @@ -45,7 +45,7 @@ void GxStrg_Det(UINT32 DevID, DX_HANDLE StrgDXH) (uiStrgCardCurSts != uiStrgCardStatus)) { isFormat = g_LnxStrgStatus[DevID].IsFormatted; - DBG_DUMP("isFormat = %lu\n", isFormat); + DBG_DUMP("DevID=%lu, isFormat = %lu\n", DevID, isFormat); switch (uiStrgCardCurSts) { case DET_CARD_INSERTED: diff --git a/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrgLnx.c b/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrgLnx.c index 912928260..de4a77cb2 100644 --- a/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrgLnx.c +++ b/code/application/source/cardv/SrcCode/Gx/GxStrg/GxStrgLnx.c @@ -137,6 +137,73 @@ static int GxStrgLnx_GetSD1DevByBus(char *out_path, int out_size) } } +static int GxStrgLnx_GetSD2DevByBus(char *out_path, int out_size) +{ + #define MMC_SYS_PATH "/sys/bus/mmc/devices" + #define MMC1BUS_PREFIX "mmc1" + #define MMC0BUS "mmc2" + #define MMCDEV "mmc" + + char find_path[64] = {0};//e.g. /sys/devices/platform/nt96660_mmc.0/mmc_host/mmc0/mmc0:b368/block + char dev_path[32] = {0};//e.g. /dev/mmcblk0p1, /dev/mmcblk0, /dev/mmcblk1p1, /dev/mmcblk1 + char mmc_bus_name[16] = {0}; //e.g. mmc0:b368 + char mmc_dev_name[16] = {0}; + int bFound = 0, beMMCFound = 0;; + + out_path[0] = '\0';//set empty first + + //1. find the mmc2 to check eMMC is existed or not. + if(0 == GxStrgLnx_FindEntryByPrefix(MMC_SYS_PATH, MMC0BUS, mmc_bus_name, sizeof(mmc_bus_name))) { + DBG_IND("mmc0 bus not found\r\n"); + beMMCFound = 1; + //return -1; + } else if(0 != GxStrgLnx_FindEntryByPrefix(MMC_SYS_PATH, MMC1BUS_PREFIX, mmc_bus_name, sizeof(mmc_bus_name))) { // find the bus mmc0 to check the card is inserted or not + DBG_IND("mmc0 bus not found\r\n"); + return -1; + } + + //2. get the device name from mmc0 information + snprintf(find_path, sizeof(find_path), "%s/%s/block", MMC_SYS_PATH, mmc_bus_name); + if (!GxStrgLnx_IsPathExist(find_path)) { + DBG_ERR("%s not found\r\n", find_path); + return -1; + } + + if(0 != GxStrgLnx_FindEntryByPrefix(find_path, MMCDEV, mmc_dev_name, sizeof(mmc_dev_name))) { + DBG_IND("device not found\r\n"); + return -1; + } + + //3. try the real device name is mmcblk0/mmcblk1 or mmcblk0p1/mmcblk1p1 + //find dev name with p1 (e.g. mmcblk0p1) + if (beMMCFound) { // emmc is mmcblk2p5. + snprintf(dev_path, sizeof(dev_path), "/dev/%sp5", mmc_dev_name); + DBG_IND("GxStrgLnx_GetSD2DevByBus: found emmc\r\n"); + } + else { + snprintf(dev_path, sizeof(dev_path), "/dev/%sp1", mmc_dev_name); + } + if (GxStrgLnx_IsPathExist(dev_path)) { + bFound = 1; + } + + if(!bFound) {//find dev name without p1. (e.g. mmcblk0) + snprintf(dev_path, sizeof(dev_path), "/dev/%s", mmc_dev_name); + if(GxStrgLnx_IsPathExist(dev_path)) { + bFound = 1; + } + } + + if(bFound) { + DBG_IND("SD2Dev = %s\r\n", out_path); + GXSTRG_STRCPY(out_path, dev_path, out_size); + return 0; + } else { + DBG_ERR("The dev partition name not found\r\n"); + return -1; + } +} + static int GxStrgLnx_GetDevByMountPath(char *pDevPath, const char* pMountPath, int BufSize) { struct mntent *ent; @@ -177,7 +244,7 @@ static INT32 GxStrgLnx_ChkStatus(UINT32 DevId) UINT32 StrgCbVal; BOOL bIsReadOnly = FALSE; BOOL bIsFormatted; - static UINT32 StrgCbValPrev = STRG_CB_UNKNOWN; + static UINT32 StrgCbValPrev[2] = {STRG_CB_UNKNOWN, STRG_CB_UNKNOWN}; //1. get the device name from the mount list ret = GxStrgLnx_GetDevByMountPath(DevPath, pMountPath, sizeof(DevPath)); @@ -203,7 +270,11 @@ static INT32 GxStrgLnx_ChkStatus(UINT32 DevId) } //2. if the device is not mounted, get the dev name from the mmc0 bus - ret = GxStrgLnx_GetSD1DevByBus(DevPath, sizeof(DevPath)); + if(DevId == 0) + ret = GxStrgLnx_GetSD1DevByBus(DevPath, sizeof(DevPath)); + else + ret = GxStrgLnx_GetSD2DevByBus(DevPath, sizeof(DevPath)); + if (ret == 0) { //0. if the storage object is set, detect card insert if (g_pCurStrgDXH[DevId]) { @@ -246,16 +317,16 @@ static INT32 GxStrgLnx_ChkStatus(UINT32 DevId) } label_exit: - if (StrgCbValPrev != StrgCbVal) { + if (StrgCbValPrev[DevId] != StrgCbVal) { g_LnxStrgStatus[DevId].IsInserted = (StrgCbVal == STRG_CB_INSERTED); g_LnxStrgStatus[DevId].IsReadOnly = bIsReadOnly; g_LnxStrgStatus[DevId].IsFormatted = bIsFormatted; - DBG_IND("MntPath %s, IsInserted %d, IsReadOnly %d, bIsFormatted %d\r\n", + DBG_DUMP("MntPath %s, IsInserted %d, IsReadOnly %d, bIsFormatted %d\r\n", g_FSInitParam[DevId].FSParam.szMountPath, g_LnxStrgStatus[DevId].IsInserted, g_LnxStrgStatus[DevId].IsReadOnly, g_LnxStrgStatus[DevId].IsFormatted); - StrgCbValPrev = StrgCbVal; + StrgCbValPrev[DevId] = StrgCbVal; } if(g_LnxStrgStatus[DevId].IsInserted && bIsFormatted && !g_LnxStrgStatus[DevId].IsFormatted){ @@ -275,4 +346,4 @@ INT32 GxStrgLnx_Det(UINT32 DevId) } else { return DET_CARD_REMOVED; } -} \ No newline at end of file +} diff --git a/code/application/source/cardv/SrcCode/PrjCfg_DVCam.h b/code/application/source/cardv/SrcCode/PrjCfg_DVCam.h index de92a323f..15b1eb972 100755 --- a/code/application/source/cardv/SrcCode/PrjCfg_DVCam.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_DVCam.h @@ -830,7 +830,7 @@ // 2. enable FS_DX_TYPE_DRIVE_B as DX_TYPE_CARD2 // 3. enable FS_MULTI_STRG_FUNC // 4. NETWORK = NETWORK_NONE (Both uITRON and eCos) -#define FS_MULTI_STRG_FUNC DISABLE +#define FS_MULTI_STRG_FUNC ENABLE //MULTI_DRIVE #if defined(_EMBMEM_EMMC_) && (FS_MULTI_STRG_FUNC==DISABLE) #define FS_DX_TYPE_DRIVE_A USER_DX_TYPE_EMBMEM_FAT diff --git a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h index 4812f681f..3f4c08c93 100755 --- a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h @@ -922,12 +922,13 @@ #define HUNTING_MCU_UART ENABLE #define HUNTING_IR_LED_940 ENABLE #define SF_EXIF_MN_BUF_SIZE 256 -#define SF_BASE_VERSION "7MR5RCwDC05" +#define SF_BASE_VERSION "7MR5RCwDC01" #define HW_S530 DISABLE #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ #define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */ -#define PHOTO_THUMB_PATH "A:\\THUMB\\" -#define MOVIE_THUMB_PATH "A:\\THUMB\\" +#define PHOTO_THUMB_PATH ":\\THUMB\\" +#define MOVIE_THUMB_PATH ":\\THUMB\\" + #define SF_SD_ROOT "/mnt/sd/" #define SF_SEND_LIST_DIR "/mnt/sd/THUMB/" #define SF_THUMB_SEND_LIST SF_SEND_LIST_DIR"send.list" @@ -945,7 +946,7 @@ #define SF_IS_RELEASE ENABLE #define PHOTO_ISP_STAMP DISABLE -#define SF_BASE_VERSION_FEA "R6.0" +#define SF_BASE_VERSION_FEA "R2.3" #define SF_GPS_SUPPORT 1 #define SF_SEND_LIST_ITEM_LENGTH 15 #define SF_4G_REGISTER_NETWORK_COUNT 230 @@ -966,8 +967,8 @@ #define SF_HW_TEST DISABLE #define SF_MODULE_UP_FILE "EG915QNA.tar.bz2" #define SF_MODULE_UP_FILE_PATH "/mnt/sd/EG915QNA.tar.bz2" -#define SF_CAM_UP_FILE "CAM_OTA_S550/SPHOST_REVEAL.BIN" -#define SF_CAM_UP_FILE_PATH "/mnt/sd/FW98565A.bin" +#define SF_CAM_UP_FILE "S530.tar.bz2" +#define SF_CAM_UP_FILE_PATH "/mnt/sd/S530.tar.bz2" #define SF_CAMERA_GPS_INFO_FILENAME "/tmp/gps.txt" #define SF_UBOOT_UPDATA_FW ENABLE diff --git a/code/application/source/cardv/SrcCode/System/SysMain.c b/code/application/source/cardv/SrcCode/System/SysMain.c index 514ee476b..82d051e3a 100644 --- a/code/application/source/cardv/SrcCode/System/SysMain.c +++ b/code/application/source/cardv/SrcCode/System/SysMain.c @@ -569,7 +569,7 @@ void UserMainProc(void) lv_task_set_prio(indev_keypad->driver.read_task, LV_TASK_PRIO_OFF); while(!bUI_Quit) { - bool printKey = true; + Ux_WaitEvent(&evt, ¶mNum, paramArray); if(!evt) { @@ -595,43 +595,6 @@ void UserMainProc(void) DBG_WRN("received key event(%lx) without key state\r\n", evt); } - if(printKey){ - switch((uint32_t)lv_user_keymap_find(evt)){ - case LV_KEY_DOWN: - case LV_KEY_NEXT: - case 134: - { - printf("[Key]>>>DOWN\n"); - break; - } - case LV_KEY_UP: - case LV_KEY_PREV: - case 133: - { - printf("[Key]>>>UP\n"); - break; - } - case LV_KEY_LEFT: - { - printf("[Key]>>>LEFT\n"); - break; - } - case LV_KEY_RIGHT: - { - printf("[Key]>>>RIGHT\n"); - break; - } - case LV_KEY_ENTER: - { - printf("[Key]>>>ENTER\n"); - break; - } - } - printKey = false; - } - - - g_keyboard_value = evt; if((paramArray[0] > NVTEVT_KEY_PRESS_START && paramArray[0] < NVTEVT_KEY_PRESS_END) || @@ -810,8 +773,6 @@ exit: { DBG_DUMP("LogFile_Close ...\n"); LogFile_Close(); - system("rm -rf /mnt/sd/LOG/*dummy*");//Clear intermediate files. - system("sync"); } #endif #else diff --git a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c index a13a8cc02..16099b46b 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c @@ -156,9 +156,9 @@ INT32 System_GetBootFirstMode(void) printf("%s:%d CamMode :%d\n", __FUNCTION__, __LINE__,puiPara->CamMode); if(GxUSB_GetIsUSBPlug()) { - return PRIMARY_MODE_USBMSDC; + return PRIMARY_MODE_PHOTO; } - else if((PWR_ON_SETUP != PowerOnMode) && (PWR_ON_MCU_UPDATA != PowerOnMode)/*|| (sf_get_fw_update())*/) + else if((PWR_ON_SETUP != PowerOnMode) /*|| (sf_get_fw_update())*/) { return PRIMARY_MODE_TRANSCODE; } @@ -417,20 +417,11 @@ BOOL System_GetShutdownBegin(void) { return g_IsShutdownBegin; } -#define DO_NOT_SHOW_POWER_OFF 0 -#define SHOW_POWER_OFF 1 + INT32 System_OnShutdown(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { - UINT32 displayShow = SHOW_POWER_OFF; - BOOL isMenu = sf_is_menu_open(); - if ( paramNum >= 2) - { - DBG_DUMP("^MOn Shutdown begin paramNum:%d paramArray[0]:%d paramArray[1]:%d\r\n",paramNum, paramArray[0], paramArray[1]); - displayShow = paramArray[1]; - } - if (paramNum >= 1 /*&& paramArray[0] == 0*/) - { //power-off begin DBG_DUMP("^MOn Shutdown begin paramNum:%d paramArray:%d\r\n",paramNum, paramArray[0]); + if (paramNum == 1 /*&& paramArray[0] == 0*/) { //power-off begin g_IsShutdownBegin=TRUE; #if (DISPLAY_FUNC == ENABLE) @@ -477,27 +468,14 @@ INT32 System_OnShutdown(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) } else { #if (POWEROFFLOGO_FUNCTION == ENABLE) #if HUNTING_CAMERA_MCU == ENABLE - if(sf_get_mode_flag() && SHOW_POWER_OFF == displayShow) + if(sf_get_mode_flag()) #endif { - if (FALSE == isMenu) - { - GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1 - GxDisplay_Flush(LAYER_OSD1); - Display_ShowSplash(SPLASH_POWEROFF); - SwTimer_DelayMs(500); - } - else - { - Display_ShowSplash(SPLASH_POWEROFF); - SwTimer_DelayMs(500); - GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1 - GxDisplay_Flush(LAYER_OSD1); - } - // Display_ShowSplash(SPLASH_POWEROFF); - // SwTimer_DelayMs(500); - // GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1 - // GxDisplay_Flush(LAYER_OSD1); + GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1 + GxDisplay_Flush(LAYER_OSD1); + + Display_ShowSplash(SPLASH_POWEROFF); + SwTimer_DelayMs(500); } #endif } @@ -714,6 +692,8 @@ INT32 System_OnLensAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) } */ +extern INT32 System_OnStrgSetActDrive(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray); + EVENT_ENTRY SystemObjCmdMap[] = { //////////////////////////////////////////////////////////// @@ -751,6 +731,8 @@ EVENT_ENTRY SystemObjCmdMap[] = { {NVTEVT_STRG_REMOVE, System_OnStrgRemove }, {NVTEVT_STRG_ATTACH, System_OnStrgAttach }, {NVTEVT_STRG_DETACH, System_OnStrgDetach }, + {NVTEVT_STRG_SET_ACT_DRIVE, System_OnStrgSetActDrive}, + #endif #if(USB_MODE==ENABLE) //Usb device event diff --git a/code/application/source/cardv/SrcCode/System/SysMain_cmd.c b/code/application/source/cardv/SrcCode/System/SysMain_cmd.c index 2dea0e44e..85fb60065 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_cmd.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_cmd.c @@ -185,6 +185,23 @@ static BOOL Cmd_user_EventTest(unsigned char argc, char **argv) #endif +#if FS_MULTI_STRG_FUNC /* test cmd */ + +static BOOL cmd_storage_set_act_drive(unsigned char argc, char **argv) +{ + /* A or B*/ + UINT32 drive_idx = strtoul(argv[0], NULL, 10); + + if(drive_idx == 0 || drive_idx == 1) + Ux_PostEvent(NVTEVT_STRG_SET_ACT_DRIVE, 1, (UINT32)drive_idx); + else + DBG_ERR("invalid drive(%c)\n", drive_idx); + + return TRUE; +} + +#endif + SXCMD_BEGIN(sys_cmd_tbl, "system command") SXCMD_ITEM("mem %", cmd_sys_mem, "system memory layout") @@ -263,9 +280,12 @@ SXCMD_ITEM("gprssw %", sf_cmd_gprs_switch, "gprssw 0/1") SXCMD_ITEM("uiprint %", sf_cmd_para_printf, "uiprint") SXCMD_ITEM("blusw %", cmd_blu_switch, "blusw 0/1") SXCMD_ITEM("wifisw %", cmd_wifi_switch, "wifisw 0/1") -SXCMD_ITEM("lcdbk %", sf_set_backlight_status, "lcdbk 0/1") + #endif +#if FS_MULTI_STRG_FUNC /* test cmd */ +SXCMD_ITEM("strg_set_act_drvie %", cmd_storage_set_act_drive, "set storage act drive (0 / 1)") +#endif SXCMD_END() diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c index e940a5390..7472f7f4b 100644 --- a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c @@ -75,7 +75,6 @@ #include #include #include "sf_sd_common.h" -#include #endif #if (LOGFILE_FUNC==ENABLE) #include "LogFile.h" @@ -133,6 +132,26 @@ static FST_FS_TYPE m_GxStrgType = FST_FS_TYPE_UITRON; static void *mp_fwsrv_work_buf = NULL; #endif static BOOL g_bSupportExfat = FALSE; + +#define STRG_NUM 2 +#define STRG_ID_SD 0 +#define STRG_ID_EMMC 1 + +typedef struct { + char name[16]; + UINT8 strg_id; + DCF_HANDLE dcf_hdl; + CHAR drive; +} STRG_MAPPING_TABLE; + + +STRG_MAPPING_TABLE g_strg_mapping_table[STRG_NUM] = { + [STRG_ID_SD] = { "SD", .strg_id = STRG_ID_SD, .dcf_hdl = -1, .drive = 'A'}, + [STRG_ID_EMMC] = { "EMMC", .strg_id = STRG_ID_EMMC, .dcf_hdl = -1, .drive = 'B'}, +}; + +static DCF_HANDLE g_dcf_hdl_act = -1; + /////////////////////////////////////////////////////////////////////////////// // // EMBMEM @@ -317,68 +336,53 @@ void System_OnStrgInit_FS(void) #if (FS_MULTI_STRG_FUNC == ENABLE) MEM_RANGE Pool2; Pool.size = POOL_SIZE_FILESYS; - GxStrg_SetConfigEx(0, FILE_CFG_BUF, (UINT32)&Pool); + GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_BUF, (UINT32)&Pool); Pool2.addr = Pool.addr + POOL_SIZE_FILESYS; Pool2.size = POOL_SIZE_FILESYS; - GxStrg_SetConfigEx(1, FILE_CFG_BUF, (UINT32)&Pool2); -#if defined(_CPU2_LINUX_) && defined(_EMBMEM_EMMC_) - // 3rd is for linux-pstore mounted by filesys - MEM_RANGE Pool3; - Pool3.Addr = Pool2.Addr + POOL_SIZE_FS_BUFFER; - Pool3.Size = POOL_SIZE_FS_BUFFER; - GxStrg_SetConfigEx(PST_DEV_ID, FILE_CFG_BUF, (UINT32)&Pool3); -#endif + GxStrg_SetConfigEx(STRG_ID_EMMC, FILE_CFG_BUF, (UINT32)&Pool2); #else Pool.size = POOL_SIZE_FILESYS; - GxStrg_SetConfigEx(0, FILE_CFG_BUF, (UINT32)&Pool); + GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_BUF, (UINT32)&Pool); #endif } - - //#NT#2017/06/02#Nestor Yang -begin - //#NT# Do not link uITRON if not use - //GxStrg_SetConfigEx(0, FILE_CFG_FS_TYPE, m_GxStrgType); #if !defined(__FREERTOS) - GxStrg_SetConfigEx(0, FILE_CFG_FS_TYPE, FileSys_GetOPS_Linux()); //for FILE_CFG_FS_TYPE, DevID is don't care -#else - GxStrg_SetConfigEx(0, FILE_CFG_FS_TYPE, FileSys_GetOPS_uITRON()); -#endif - //#NT#2017/06/02#Nestor Yang -end -#if 0 -#if (LOGFILE_FUNC==ENABLE) - GxStrg_SetConfigEx(0, FILE_CFG_MAX_OPEN_FILE, 6); -#endif -#if (USERLOG_FUNC == ENABLE) - GxStrg_SetConfigEx(0, FILE_CFG_MAX_OPEN_FILE, 6); -#endif -#if (CURL_FUNC == ENABLE) - GxStrg_SetConfigEx(0, FILE_CFG_MAX_OPEN_FILE, 8); -#endif -#if (IPCAM_FUNC == DISABLE) - GxStrg_SetConfigEx(0, FILE_CFG_MAX_OPEN_FILE, 8); -#endif -#else - GxStrg_SetConfigEx(0, FILE_CFG_MAX_OPEN_FILE, 10); + GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_FS_TYPE, FileSys_GetOPS_Linux()); //for FILE_CFG_FS_TYPE, DevID is don't care + +#if (FS_MULTI_STRG_FUNC == ENABLE) + GxStrg_SetConfigEx(STRG_ID_EMMC, FILE_CFG_FS_TYPE, FileSys_GetOPS_Linux()); #endif - GxStrg_SetConfigEx(0, FILE_CFG_SUPPORT_EXFAT, TRUE); +#else + GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_FS_TYPE, FileSys_GetOPS_uITRON()); + +#if (FS_MULTI_STRG_FUNC == ENABLE) + GxStrg_SetConfigEx(STRG_ID_EMMC, FILE_CFG_FS_TYPE, FileSys_GetOPS_uITRON()); +#endif + +#endif + + GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_MAX_OPEN_FILE, 10); + +#if (FS_MULTI_STRG_FUNC == ENABLE) + GxStrg_SetConfigEx(STRG_ID_EMMC, FILE_CFG_MAX_OPEN_FILE, 10); +#endif + + + GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_SUPPORT_EXFAT, TRUE); g_bSupportExfat = TRUE; - //set the device node of msdc mode for emmc only -#if (defined(_EMBMEM_EMMC_) && !defined(__FREERTOS)) - emmc_set_dev_node("/dev/mmcblk2p5"); //This devicde node is related to storate-partition, it is last rootfslX logical partition. Using "cat /proc/nvt_info/emmc" to get. + +#if (FS_MULTI_STRG_FUNC == ENABLE) + GxStrg_SetConfigEx(STRG_ID_EMMC, FILE_CFG_SUPPORT_EXFAT, FALSE); #endif - // mount path -#if (defined(_EMBMEM_EMMC_) && !defined(__FREERTOS)) - strncpy(mount_path, "/mnt/emmc1", sizeof(mount_path) - 1); -#else + strncpy(mount_path, "/mnt/sd", sizeof(mount_path) - 1); -#endif mount_path[sizeof(mount_path) - 1] = '\0'; - GxStrg_SetConfigEx(0, FILE_CFG_MOUNT_PATH, (UINT32)mount_path); + GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_MOUNT_PATH, (UINT32)mount_path); #if !defined(__FREERTOS) - GxStrg_SetConfigEx(0, FILE_CFG_STRG_OBJECT, (UINT32)Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A)); + GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_STRG_OBJECT, (UINT32)Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A)); #endif @@ -386,19 +390,10 @@ void System_OnStrgInit_FS(void) emmc_set_dev_node("/dev/mmcblk1p1"); /* msdc strg obj */ strncpy(mount_path, "/mnt/sd2", sizeof(mount_path) - 1); mount_path[sizeof(mount_path) - 1] = '\0'; - GxStrg_SetConfigEx(1, FILE_CFG_MOUNT_PATH, (UINT32)mount_path); - GxStrg_SetConfigEx(1, FILE_CFG_STRG_OBJECT, (UINT32)Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B)); + GxStrg_SetConfigEx(STRG_ID_EMMC, FILE_CFG_MOUNT_PATH, (UINT32)mount_path); + GxStrg_SetConfigEx(STRG_ID_EMMC, FILE_CFG_STRG_OBJECT, (UINT32)Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B)); #endif - - //#NT#2018/12/18#Philex Lin - begin - // unused now - #if 0 - // Enable 32MB alignment recording. - GxStrg_SetConfigEx(0, FILE_CFG_ALIGNED_SIZE, 32 * 1024 * 1024); - #endif - //#NT#2018/12/18#Philex Lin - end - #if (LOGFILE_FUNC==ENABLE) { LOGFILE_CFG cfg = {0}; @@ -425,7 +420,6 @@ void System_OnStrgInit_FS(void) cfg.LogBuffSize2 = gLogFile_Buff2_Size; #endif LogFile_Config(&cfg); - DBG_DUMP("LogFile_Config ...\n"); } #endif @@ -458,43 +452,31 @@ void System_OnStrgInit_FS(void) if (m_GxStrgType == FST_FS_TYPE_UITRON) { #if (FS_MULTI_STRG_FUNC) + + /************************************************ + * EMMC + ************************************************/ + GxStrg_Det(1, Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B)); + UINT32 uiDxState = 0; DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B); if (Dx_GetState((DX_HANDLE)pStrgDev, STORAGE_STATE_INSERT, &uiDxState) != DX_OK || uiDxState == FALSE) { - Ux_PostEvent(NVTEVT_STRG_REMOVE, 1, 1); + Ux_PostEvent(NVTEVT_STRG_REMOVE, 1, STRG_ID_EMMC); } else { - Ux_PostEvent(NVTEVT_STRG_INSERT, 1, 1); + Ux_PostEvent(NVTEVT_STRG_INSERT, 1, STRG_ID_EMMC); } #endif } #if (USE_DCF == ENABLE) - { - // init DCF -// CHAR pFolderName[9] = {0}; -// CHAR pFileName[5] = {0}; -// // init DCF FolderID/FileID with RTC data -// struct tm tm_cur = hwclock_get_time(TIME_ID_CURRENT); -// snprintf(pFolderName, sizeof(pFolderName), "%1d%02d%02d", tm_cur.tm_year % 0x0A, tm_cur.tm_mon, tm_cur.tm_mday); -// snprintf(pFileName, sizeof(pFileName), "%02d%02d", tm_cur.tm_hour, tm_cur.tm_min); -// //DCF dir-name -// DCF_SetDirFreeChars(pFolderName); -// //DCF file-name -// DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, pFileName); -// -// //DCF format -// DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_SUPPORT_FORMAT); -// DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG | DCF_FILE_TYPE_WAV | DCF_FILE_TYPE_MPO); -// //TODO: [DCF] How to add an new format & its ext? + DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FOLDER, TRUE); + DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE); + DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); + DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); + DCF_SetDirFreeChars(DCF_DIR_NAME); + DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); - DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FOLDER, TRUE); - DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE); - DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); - DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); - DCF_SetDirFreeChars(DCF_DIR_NAME); - DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); - } #endif } void System_OnStrgInit_FS2(void) @@ -560,13 +542,10 @@ static BOOL FileSys_DetBusy(void) void Card_DetInsert(void) { -#if defined(__FREERTOS) - GxStrg_Det(0, Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A)); -#if (0)//FS_MULTI_STRG_FUNC) - GxStrg_Det(1, Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B)); -#endif -#else GxStrg_Det(0, 0); + +#if 0 //FS_MULTI_STRG_FUNC + GxStrg_Det(1, Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B)); #endif } @@ -740,24 +719,94 @@ int System_umount_storage(char *pMountPath) } #endif +const char* System_Get_Strg_Name(UINT32 strg_id) +{ + if(strg_id >= STRG_NUM){ + DBG_ERR("invalid storage id(%d)!\n", strg_id); + return NULL; + } + + return g_strg_mapping_table[strg_id].name; +} + +INT32 System_Set_Storage_Act_Drive(char drive) +{ + DCF_HANDLE act_handle = -1; + + + for(int i=0 ; i0 ? TRUE : FALSE; #else //defined(__LINUX_USER__) @@ -1132,9 +1205,9 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) INT32 System_OnStrgDetach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { if (m_GxStrgType == FST_FS_TYPE_LINUX) { - UINT32 stg_id = paramArray[0]; + UINT32 strg_id = paramArray[0]; - if (stg_id != 0) { //not sd-1 + if (strg_id != 0) { //not sd-1 return NVTEVT_CONSUME; } } diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c.bak b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c.bak new file mode 100755 index 000000000..179b9b53a --- /dev/null +++ b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c.bak @@ -0,0 +1,1593 @@ +/* + System Storage Callback + + System Callback for Storage Module. + + @file SysStrg_Exe.c + @ingroup mIPRJSYS + + @note �o���ɮ׭t�d�@��� + + 1.����Storage Event������ + �i�઺event��: + + STRG_INSERT --- �N���CARD���J + ����unmount���e�ݭn�����Ʊ� + �I�sFile unmound (NAND), + ����mount���e�ݭn�����Ʊ� + �I�sFile mount (CARD) + + STRG_REMOVE --- �N���CARD�ޥX + ����unmount���e�ݭn�����Ʊ� + �I�sFile unmount (CARD) + ����mount���e�ݭn�����Ʊ� + �I�sFile_mount (NAND) + + STRG_ATTACH --- �N��File mount���� + ����mount����ݭn�����Ʊ� + �o��|�ǤJmount�����Gstatus + + STRG_DETACH --- �N��File unmount���� + ����unmount����ݭn�����Ʊ� + �o��|�ǤJunmount�����Gstatus + + + Copyright Novatek Microelectronics Corp. 2010. All rights reserved. +*/ + +//////////////////////////////////////////////////////////////////////////////// +#include +#include +#include +#include +#include +#include +#include "PrjInc.h" +#include "PrjCfg.h" +//#include "sys_storage_partition.h" +//////////////////////////////////////////////////////////////////////////////// +#include "UIFrameworkExt.h" +#include "UICommon.h" +//#include "dma.h" +#include "PStore.h" +#include "sf_sd_common.h" +#if (USE_DCF == ENABLE) +#include "DCF.h" +#endif +//#include "ExifVendor.h" +#include "FileSysTsk.h" +#include "SysCommon.h" +#include "sys_mempool.h" +#include "DxType.h" +#include "Dx.h" +#include "DxApi.h" +#include "DxStorage.h" +#include +#include "FwSrvApi.h" +#include +#include +#include "GxStrg.h" +#include "sdio.h" +#include +#include +#include "emmc.h" +#if HUNTING_CAMERA_MCU == ENABLE +#include +#include +#include "sf_sd_common.h" +#endif +#if (LOGFILE_FUNC==ENABLE) +#include "LogFile.h" +#endif +#if (USERLOG_FUNC == ENABLE) +#include "userlog.h" +#endif +//#include "wdt.h" + +#if defined(_EMBMEM_SPI_NOR_) +#define MAX_BLK_PER_SEC 128 +#define MAX_SEC_NUM 8 +#else +#define MAX_BLK_PER_SEC 512 +#define MAX_SEC_NUM 64 +#endif +#define LDC_HEADER_SIZE 16 +#define FW_UPD_FW_TMP_MEM_SIZE 0xA00000 + +#define LOADER_UPD_FW_PATH "A:\\"_BIN_NAME_".BIN" +#define FW_DEL_INDIACTION_PATH "A:\\NVTDELFW" + +//#NT#2018/04/02#Niven Cho -begin +//#NT#PARTIAL_COMPRESS, we use last 10MB of APP as working buffer +#define FW_PARTIAL_COMPRESS_WORK_BUF_SIZE 0xA00000 +//#NT#2018/04/02#Niven Cho -end + +//global debug level: PRJ_DBG_LVL +#include "PrjCfg.h" +//local debug level: THIS_DBGLVL +#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER +/////////////////////////////////////////////////////////////////////////////// +#define __MODULE__ SysStrgExe +#define __DBGLVL__ ((THIS_DBGLVL>=PRJ_DBG_LVL)?THIS_DBGLVL:PRJ_DBG_LVL) +#define __DBGFLT__ "*" //*=All, [mark]=CustomClass +#include +/////////////////////////////////////////////////////////////////////////////// +//Check definition options +#if defined(_CPU2_ECOS_) +#if (LOGFILE_FUNC == ENABLE && ECOS_DBG_MSG_FORCE_UART1_DIRECT == ENABLE) +//#error "LOGFILE_FUNC must turn off ECOS_DBG_MSG_FORCE_UART1_DIRECT" +#endif +#endif + +#if 0 +#define FW_UPDATE_FILE_LEN 16 +static char uiUpdateFWName[FW_UPDATE_FILE_LEN] = FW_UPDATE_NAME; +static BOOL m_bUpdRename = FALSE; +#endif + +#if (FS_FUNC == ENABLE) +static FST_FS_TYPE m_GxStrgType = FST_FS_TYPE_UITRON; +#endif +#if (FWS_FUNC == ENABLE) +static void *mp_fwsrv_work_buf = NULL; +#endif +static BOOL g_bSupportExfat = FALSE; +/////////////////////////////////////////////////////////////////////////////// +// +// EMBMEM +// +/////////////////////////////////////////////////////////////////////////////// +//Caculate FAT Start Addr +#if defined(_CPU2_LINUX_) +static BOOL xSysStrg_LinuxRun(void); +#endif +#if defined(_CPU2_ECOS_) +static BOOL xSysStrg_eCosRun(void); +#endif +#if (defined(_DSP1_FREERTOS_) || defined(_DSP2_FREERTOS_)) +static BOOL xSysStrg_DspRun(DSP_CORE_ID CoreID); +#endif + +#if (FWS_FUNC == ENABLE) +UINT32 System_OnStrgInit_EMBMEM_GetGxStrgType(void) +{ + return m_GxStrgType; +} + +void System_OnStrgInit_EMBMEM(void) +{ +#if defined(_EMBMEM_SPI_NOR_) + { + //if stoarge is SPI, use ram disk as internal FAT + DXSTRG_INIT UserEmbMemInit = {0}; + UserEmbMemInit.prt.uiDxClassType = DX_CLASS_STORAGE_EXT | USER_DX_TYPE_EMBMEM_FAT; + UserEmbMemInit.buf.Addr = OS_GetMempoolAddr(POOL_ID_STORAGE_RAMDISK); + UserEmbMemInit.buf.Size = OS_GetMempoolSize(POOL_ID_STORAGE_RAMDISK); + DX_HANDLE DxNandDev = Dx_GetObject(UserEmbMemInit.prt.uiDxClassType); + Dx_Init(DxNandDev, &UserEmbMemInit, 0, STORAGE_VER); + } +#endif +} + +void System_OnStrgExit_EMBMEM(void) +{ + //PHASE-1 : Close Drv or DrvExt +} +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// EXMEM +// +/////////////////////////////////////////////////////////////////////////////// +//Drv or DrvExt +#if (FS_FUNC == ENABLE) +DXSTRG_INIT UserSdioInit; +#if(COPYCARD2CARD_FUNCTION == ENABLE) +DXSTRG_INIT UserSdio2Init; +#endif +DX_HANDLE DxCardDev1 = 0; +typedef enum _BOOT_CARD_STATE { + BOOT_CARD_STATE_UNKNOWN, + BOOT_CARD_STATE_INSERTED, + BOOT_CARD_STATE_REMOVED, + ENUM_DUMMY4WORD(BOOT_CARD_STATE) +} BOOT_CARD_STATE; +static BOOT_CARD_STATE m_BootState_Drive[16] = {BOOT_CARD_STATE_UNKNOWN}; //DriveA, DriveB +static UINT32 m_FsDxTypeMap[2] = {FS_DX_TYPE_DRIVE_A, FS_DX_TYPE_DRIVE_B}; + +void System_OnStrgInit_EXMEM(void) +{ + static BOOL bStrg_init_EXMEM = FALSE; + if (bStrg_init_EXMEM) { + return; + } + TM_BOOT_BEGIN("sdio", "init"); + +#if (FS_DX_TYPE_DRIVE_A >= DX_TYPE_CARD1 && FS_DX_TYPE_DRIVE_A <= DX_TYPE_CARD3) + DX_HANDLE DxCardDev1 = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A); + UserSdioInit.buf.addr = mempool_storage_sdio; + UserSdioInit.buf.size = POOL_SIZE_STORAGE_SDIO; + Dx_Init(DxCardDev1, &UserSdioInit, 0, STORAGE_VER); +#endif +#if (FS_MULTI_STRG_FUNC && FS_DX_TYPE_DRIVE_B >= DX_TYPE_CARD1 && FS_DX_TYPE_DRIVE_B <= DX_TYPE_CARD3) + DX_HANDLE DxCardDev2 = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B); + UserSdio2Init.buf.Addr = OS_GetMempoolAddr(POOL_ID_STORAGE_SDIO2); + UserSdio2Init.buf.Size = OS_GetMempoolSize(POOL_ID_STORAGE_SDIO2); + Dx_Init(DxCardDev2, &UserSdio2Init, 0, STORAGE_VER); +#endif + bStrg_init_EXMEM = TRUE; + TM_BOOT_END("sdio", "init"); +} + +void System_OnStrgExit_EXMEM(void) +{ + //PHASE-1 : Close Drv or DrvExt + +} +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// FILESYS +// +/////////////////////////////////////////////////////////////////////////////// +//Lib or LibExt +#if (FS_FUNC == ENABLE) + +extern void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2); +void Card_DetInsert(void); +void Card_DetBusy(void); +#if (LOGFILE_FUNC==ENABLE) +void System_DetErr(void); +#endif +#if (SDINSERT_FUNCTION == ENABLE) +SX_TIMER_ITEM(Card_DetInsert, Card_DetInsert, 2, FALSE) +#endif +SX_TIMER_ITEM(System_DetBusy, Card_DetBusy, 25, FALSE) +#if (LOGFILE_FUNC==ENABLE) +SX_TIMER_ITEM(System_DetErr, System_DetErr,50, FALSE) +#endif +int SX_TIMER_DET_STRG_ID = -1; +int SX_TIMER_DET_SYSTEM_BUSY_ID = -1; +#if (LOGFILE_FUNC==ENABLE) +int SX_TIMER_DET_SYSTEM_ERROR_ID = -1; +#endif + +#if (LOGFILE_FUNC==ENABLE) +#if defined(__FREERTOS) +_ALIGNED(64) static CHAR gLogFile_Buff[LOGFILE_BUFFER_SIZE]= {0}; +static UINT32 gLogFile_Buff_Size = sizeof(gLogFile_Buff); +#else //defined(__LINUX_USER__) +#include +#include +/* begin/end dma-buf functions used for userspace mmap. */ +struct dma_buf_sync { + unsigned long long flags; +}; +#define DMA_BUF_SYNC_READ (1 << 0) +#define DMA_BUF_SYNC_WRITE (2 << 0) +#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE) +#define DMA_BUF_SYNC_START (0 << 2) +#define DMA_BUF_SYNC_END (1 << 2) +#define DMA_BUF_SYNC_VALID_FLAGS_MASK \ + (DMA_BUF_SYNC_RW | DMA_BUF_SYNC_END) +#define DMA_BUF_BASE 'b' +#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) +#define LOGFILE_BASE 'l' +#define LOGFILE_IOCTL_FD _IOR(LOGFILE_BASE, 0, int) + +static CHAR *gLogFile_Buff = NULL; +static UINT32 gLogFile_Buff_Size = 0; + +static void logfile_init_dma_buff(void) +{ + int fd; + + fd = open("/dev/logfile", O_RDWR | O_CLOEXEC); + if (fd < 0) { + printf("open /dev/logfile failed, %s\n", strerror(errno)); + return; + } + + gLogFile_Buff = mmap(NULL, LOGFILE_BUFFER_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); + if (gLogFile_Buff == MAP_FAILED) { + printf("mmap dmabuf failed: %s\n", strerror(errno)); + return; + } + gLogFile_Buff_Size = LOGFILE_BUFFER_SIZE; + + close(fd); +} +#endif +#if defined(_CPU2_LINUX_) +_ALIGNED(64) static CHAR gLogFile_Buff2[LOGFILE_BUFFER_SIZE]= {0}; +static UINT32 gLogFile_Buff2_Size = sizeof(gLogFile_Buff2); +#endif +#endif + +void System_OnStrgInit_FS(void) +{ + CHAR mount_path[KFS_LONGNAME_PATH_MAX_LENG] = {0}; + TM_BOOT_BEGIN("sdio", "init_fs"); + { + MEM_RANGE Pool; + Pool.addr = mempool_filesys; +#if (FS_MULTI_STRG_FUNC == ENABLE) + MEM_RANGE Pool2; + Pool.size = POOL_SIZE_FILESYS; + GxStrg_SetConfigEx(0, FILE_CFG_BUF, (UINT32)&Pool); + Pool2.addr = Pool.addr + POOL_SIZE_FILESYS; + Pool2.size = POOL_SIZE_FILESYS; + GxStrg_SetConfigEx(1, FILE_CFG_BUF, (UINT32)&Pool2); +#if defined(_CPU2_LINUX_) && defined(_EMBMEM_EMMC_) + // 3rd is for linux-pstore mounted by filesys + MEM_RANGE Pool3; + Pool3.Addr = Pool2.Addr + POOL_SIZE_FS_BUFFER; + Pool3.Size = POOL_SIZE_FS_BUFFER; + GxStrg_SetConfigEx(PST_DEV_ID, FILE_CFG_BUF, (UINT32)&Pool3); +#endif +#else + Pool.size = POOL_SIZE_FILESYS; + GxStrg_SetConfigEx(0, FILE_CFG_BUF, (UINT32)&Pool); +#endif + } + + + //#NT#2017/06/02#Nestor Yang -begin + //#NT# Do not link uITRON if not use + //GxStrg_SetConfigEx(0, FILE_CFG_FS_TYPE, m_GxStrgType); +#if !defined(__FREERTOS) + GxStrg_SetConfigEx(0, FILE_CFG_FS_TYPE, FileSys_GetOPS_Linux()); //for FILE_CFG_FS_TYPE, DevID is don't care +#else + GxStrg_SetConfigEx(0, FILE_CFG_FS_TYPE, FileSys_GetOPS_uITRON()); +#endif + //#NT#2017/06/02#Nestor Yang -end +#if 0 +#if (LOGFILE_FUNC==ENABLE) + GxStrg_SetConfigEx(0, FILE_CFG_MAX_OPEN_FILE, 6); +#endif +#if (USERLOG_FUNC == ENABLE) + GxStrg_SetConfigEx(0, FILE_CFG_MAX_OPEN_FILE, 6); +#endif +#if (CURL_FUNC == ENABLE) + GxStrg_SetConfigEx(0, FILE_CFG_MAX_OPEN_FILE, 8); +#endif +#if (IPCAM_FUNC == DISABLE) + GxStrg_SetConfigEx(0, FILE_CFG_MAX_OPEN_FILE, 8); +#endif +#else + GxStrg_SetConfigEx(0, FILE_CFG_MAX_OPEN_FILE, 10); +#endif + + GxStrg_SetConfigEx(0, FILE_CFG_SUPPORT_EXFAT, TRUE); + g_bSupportExfat = TRUE; + //set the device node of msdc mode for emmc only +#if (defined(_EMBMEM_EMMC_) && !defined(__FREERTOS)) + emmc_set_dev_node("/dev/mmcblk2p5"); //This devicde node is related to storate-partition, it is last rootfslX logical partition. Using "cat /proc/nvt_info/emmc" to get. +#endif + + // mount path +#if (defined(_EMBMEM_EMMC_) && !defined(__FREERTOS)) + strncpy(mount_path, "/mnt/emmc1", sizeof(mount_path) - 1); +#else + strncpy(mount_path, "/mnt/sd", sizeof(mount_path) - 1); +#endif + mount_path[sizeof(mount_path) - 1] = '\0'; + GxStrg_SetConfigEx(0, FILE_CFG_MOUNT_PATH, (UINT32)mount_path); + +#if !defined(__FREERTOS) + GxStrg_SetConfigEx(0, FILE_CFG_STRG_OBJECT, (UINT32)Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A)); +#endif + + +#if (FS_MULTI_STRG_FUNC == ENABLE) + emmc_set_dev_node("/dev/mmcblk1p1"); /* msdc strg obj */ + strncpy(mount_path, "/mnt/sd2", sizeof(mount_path) - 1); + mount_path[sizeof(mount_path) - 1] = '\0'; + GxStrg_SetConfigEx(1, FILE_CFG_MOUNT_PATH, (UINT32)mount_path); + GxStrg_SetConfigEx(1, FILE_CFG_STRG_OBJECT, (UINT32)Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B)); +#endif + + + //#NT#2018/12/18#Philex Lin - begin + // unused now + #if 0 + // Enable 32MB alignment recording. + GxStrg_SetConfigEx(0, FILE_CFG_ALIGNED_SIZE, 32 * 1024 * 1024); + #endif + //#NT#2018/12/18#Philex Lin - end + +#if (LOGFILE_FUNC==ENABLE) + { + LOGFILE_CFG cfg = {0}; + #if 0 + // only store system error log + cfg.ConType = LOGFILE_CON_UART|LOGFILE_CON_MEM; + #else + // store normal log and system error log + #if defined(_MODEL_CARDV_HS880C_) + cfg.ConType = LOGFILE_CON_MEM|LOGFILE_CON_STORE; + #else + cfg.ConType = LOGFILE_CON_UART|LOGFILE_CON_STORE; + #endif + #endif + cfg.TimeType = LOGFILE_TIME_TYPE_DATETIME; + #if defined(__FREERTOS) + #else //defined(__LINUX_USER__) + logfile_init_dma_buff(); + #endif + cfg.LogBuffAddr = (UINT32)gLogFile_Buff; + cfg.LogBuffSize = gLogFile_Buff_Size; + #if defined(_CPU2_LINUX_) + cfg.LogBuffAddr2 = (UINT32)gLogFile_Buff2; + cfg.LogBuffSize2 = gLogFile_Buff2_Size; + #endif + LogFile_Config(&cfg); + } +#endif + + GxStrg_RegCB(Strg_CB); //Register CB function of GxStorage (NANR or CARD) + { + //1.�]�winit�� + //FileSys: + //2.�]�wCB��, + //3.���USxJob�A�� ---------> System Job + //4.���USxTimer�A�� ---------> Detect Job +#if (SDINSERT_FUNCTION == ENABLE) + ////if (m_GxStrgType == FST_FS_TYPE_UITRON) { + SX_TIMER_DET_STRG_ID = SxTimer_AddItem(&Timer_Card_DetInsert); + ////} +#endif +#if (LOGFILE_FUNC==ENABLE) + { + SX_TIMER_DET_SYSTEM_ERROR_ID = SxTimer_AddItem(&Timer_System_DetErr); + } +#endif + //SX_TIMER_DET_SYSTEM_BUSY_ID = SxTimer_AddItem(&Timer_System_DetBusy); + //5.���USxCmd�A�� ---------> Cmd Function + //System_AddSxCmd(Storage_OnCommand); //GxStorage + + //start scan + SxTimer_SetFuncActive(SX_TIMER_DET_STRG_ID, TRUE); + SxTimer_SetFuncActive(SX_TIMER_DET_SYSTEM_BUSY_ID, TRUE); + } + TM_BOOT_END("sdio", "init_fs"); + + if (m_GxStrgType == FST_FS_TYPE_UITRON) { +#if (FS_MULTI_STRG_FUNC) + UINT32 uiDxState = 0; + DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B); + if (Dx_GetState((DX_HANDLE)pStrgDev, STORAGE_STATE_INSERT, &uiDxState) != DX_OK || uiDxState == FALSE) { + Ux_PostEvent(NVTEVT_STRG_REMOVE, 1, 1); + } else { + Ux_PostEvent(NVTEVT_STRG_INSERT, 1, 1); + } +#endif + } + +#if (USE_DCF == ENABLE) + { + // init DCF + +// CHAR pFolderName[9] = {0}; +// CHAR pFileName[5] = {0}; +// // init DCF FolderID/FileID with RTC data +// struct tm tm_cur = hwclock_get_time(TIME_ID_CURRENT); +// snprintf(pFolderName, sizeof(pFolderName), "%1d%02d%02d", tm_cur.tm_year % 0x0A, tm_cur.tm_mon, tm_cur.tm_mday); +// snprintf(pFileName, sizeof(pFileName), "%02d%02d", tm_cur.tm_hour, tm_cur.tm_min); +// //DCF dir-name +// DCF_SetDirFreeChars(pFolderName); +// //DCF file-name +// DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, pFileName); +// +// //DCF format +// DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_SUPPORT_FORMAT); +// DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG | DCF_FILE_TYPE_WAV | DCF_FILE_TYPE_MPO); +// //TODO: [DCF] How to add an new format & its ext? + + DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FOLDER, TRUE); + DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE); + DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); + DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); + DCF_SetDirFreeChars(DCF_DIR_NAME); + DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); + } +#endif +} +void System_OnStrgInit_FS2(void) +{ + // update card status again + if (GxStrg_GetDeviceCtrl(0, CARD_READONLY)) { + System_SetState(SYS_STATE_CARD, CARD_LOCKED); + } else if (GxStrg_GetDeviceCtrl(0, CARD_INSERT)) { + System_SetState(SYS_STATE_CARD, CARD_INSERTED); + } else { + System_SetState(SYS_STATE_CARD, CARD_REMOVED); + } +} +void System_OnStrgInit_FS3(void) +{ + static BOOL bFirst = TRUE; + if (bFirst) { + TM_BOOT_BEGIN("sdio", "fdb_create"); + } +#if 0 +#if(MOVIE_MODE==ENABLE) + INT32 iCurrMode = System_GetBootFirstMode(); + if (iCurrMode == PRIMARY_MODE_MOVIE) { + FlowMovie_FileDBCreate_Fast(); + } +#endif +#endif + if (bFirst) { + TM_BOOT_END("sdio", "fdb_create"); + } + bFirst = FALSE; +} + +void System_OnStrgExit_FS(void) +{ + //PHASE-2 : Close Lib or LibExt +#if (LOGFILE_FUNC==ENABLE) + #if HUNTING_CAMERA_MCU == ENABLE + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if (puiPara->DebugMode) + { + LogFile_Close(); + } + #else + LogFile_Close(); + #endif + +#endif + // unmount file system + GxStrg_CloseDevice(0); +#if (FS_MULTI_STRG_FUNC) + GxStrg_CloseDevice(1); +#endif + +} + +#if (PWR_FUNC == ENABLE) +static BOOL FileSys_DetBusy(void) +{ + return (BOOL)((INT32)FileSys_GetParam(FST_PARM_TASK_STS, 0) == FST_STA_BUSY); +} +#endif + +void Card_DetInsert(void) +{ +#if defined(__FREERTOS) + GxStrg_Det(0, Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A)); +#if (0)//FS_MULTI_STRG_FUNC) + GxStrg_Det(1, Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B)); +#endif +#else + GxStrg_Det(0, 0); +#endif +} + +void Card_DetBusy(void) +{ +#if (PWR_FUNC == ENABLE) + static BOOL bBusyLED = FALSE; + + if (GxPower_GetControl(GXPWR_CTRL_SLEEP_LEVEL) <= 1 && (!GxPower_GetControl(GXPWR_CTRL_BATTERY_CHARGE_EN))) { + if (FileSys_DetBusy()) { + if (bBusyLED == FALSE) { + DBG_IND("System - busy\r\n"); + bBusyLED = TRUE; +#if (OUTPUT_FUNC == ENABLE) + GxLED_SetCtrl(KEYSCAN_LED_GREEN, SETLED_SPEED, GXLED_1SEC_LED_TOGGLE_CNT / 5); + GxLED_SetCtrl(KEYSCAN_LED_GREEN, TURNON_LED, FALSE); + GxLED_SetCtrl(KEYSCAN_LED_GREEN, SET_TOGGLE_LED, TRUE); +#endif + } + } else { + if (bBusyLED == TRUE) { + DBG_IND("System - not busy\r\n"); + bBusyLED = FALSE; +#if (OUTPUT_FUNC == ENABLE) + GxLED_SetCtrl(KEYSCAN_LED_GREEN, SET_TOGGLE_LED, FALSE); + GxLED_SetCtrl(KEYSCAN_LED_GREEN, TURNON_LED, FALSE); +#endif + } + } + } +#endif +} + +#if (FSCK_FUNC == ENABLE) +int search_str_in_file(char *path, char *str) +{ + FILE *fp = NULL; + UINT32 u32ize = 0; + int found = 0; + char *pStrSrc = NULL; + + fp = fopen(path, "r"); + if (fp) { + fseek(fp, 0, SEEK_END); + u32ize = ftell(fp); // take file size + fseek(fp, 0, SEEK_SET); // move to position zero + pStrSrc = (char *)malloc(u32ize * sizeof(char)); + + if (pStrSrc) { + fread(pStrSrc, 1, u32ize, fp); + if (strstr(pStrSrc, str)) { + found = 1; + } + free(pStrSrc); + } + + fclose(fp); + fp = NULL; + pStrSrc = NULL; + u32ize = 0; + } + + return found; +} + +int System_check_mmcblk0p1(void) +{ + SysMain_system("ls /dev/mmcblk0p1 > /tmp/lsdev.txt"); + vos_util_delay_ms(100); + if (search_str_in_file("/tmp/lsdev.txt", "/dev/mmcblk0p1")) { + return 1; + } else { + return 0; + } +} + +int System_mount_storage(char *pMountPath) +{ + int ret = 0; + time_t t, t_local, t_gmt; + struct tm tt_local, tt_gmt; + char opts[20]; + char *pDevSrc; + char *pFileSysType = "vfat"; + char *pFileSysExType = "exfat"; + BOOL bexfat = FALSE; + + if (System_check_mmcblk0p1()) { + pDevSrc = "/dev/mmcblk0p1"; + } else { + pDevSrc = "/dev/mmcblk0"; + } + + time(&t); + localtime_r(&t, &tt_local); + gmtime_r(&t, &tt_gmt); + t_local = mktime(&tt_local); + t_gmt = mktime(&tt_gmt); + + snprintf(opts, 19, "time_offset=%d", (t_local-t_gmt)/60); + DBG_IND("gtime=%d, ltime=%d, diff=%d, m=%d, %s\r\n", t_gmt, t_local, (t_local-t_gmt), (t_local-t_gmt)/60, opts); + + { + long long DevSize = 0; + int fd = 0; + long long size = 0; + + DevSize = 0;//set to zero first + + fd = open(pDevSrc, O_RDONLY); + if(fd < 0) { + DBG_ERR("open %s: errno = %d, errmsg = %s\r\n", pDevSrc, errno, strerror(errno)); + } else { + if(ioctl(fd, BLKGETSIZE64, &size) < 0) { + DBG_ERR("ioctl BLKGETSIZE64 failed\r\n"); + } + + if (0 != close(fd)) { + DBG_ERR("close %s: errno = %d, errmsg = %s\r\n", pDevSrc, errno, strerror(errno)); + } + } + + DBG_DUMP("%s: %s size = %lld\r\n", __func__, pDevSrc, size); + + DevSize = size; + + //original SD card + if(g_bSupportExfat && DevSize > 32*1024*1024*1024LL) + { + bexfat = TRUE; + } + else + { + bexfat = FALSE; + } + } + + // mount sd card + if (bexfat == FALSE) { + ret = mount(pDevSrc, pMountPath, pFileSysType, MS_DIRSYNC, opts); + } else { + ret = mount(pDevSrc, pMountPath, pFileSysExType, MS_DIRSYNC, opts); + } + + if(ret) { + if (errno == EBUSY) { + DBG_ERR("%s is existed, don't need to mount again\r\n", pMountPath); + } else { + DBG_ERR("mount /mnt/sd failed, errno = %d\r\n",errno); + } + } + + return ret; +} + +int System_umount_storage(char *pMountPath) +{ + int ret = 0; + + ret = umount(pMountPath); + + if (ret) { + if (errno == EBUSY) { + DBG_ERR("Catn't umount, please use 'lsof' to check the resource\r\n"); + } else if (errno == EINVAL) { + DBG_ERR("%s isn't existed, don't need to umount again\r\n", pMountPath); + } + } + + return ret; +} +#endif + + +INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) +{ + UINT32 stg_id = paramArray[0]; + #if (FSCK_FUNC == ENABLE) + int ret_val = 0; + char *pMountPath = "/mnt/sd"; + #endif + + if (m_BootState_Drive[stg_id] != BOOT_CARD_STATE_UNKNOWN) { + if (stg_id == 0) { +#if(IPCAM_FUNC==DISABLE && SDHOTPLUG_FUNCTION == DISABLE) + System_PowerOff(SYS_POWEROFF_NORMAL); +#endif + } + } else { + TM_BOOT_BEGIN("sdio", "mount_fs"); + m_BootState_Drive[stg_id] = BOOT_CARD_STATE_INSERTED; + } + + #if (FSCK_FUNC == ENABLE) + //SysMain_system("df"); //only for debug, the "/mnt/sd" path must not be existed. + System_umount_storage(pMountPath); + /*Under normal situation, fsck checking doesn't need to print the message via UART port. + We sotre the message to /tmp/fsck.txt (on DRAM). */ + if (System_check_mmcblk0p1()) { + DBG_IND("fsck /dev/mmcblk0p1\r\n"); + SysMain_system("fsck.fat -a /dev/mmcblk0p1 > /tmp/fsck.txt"); //Store to /tmp/fsck.txt and use "cat /tmp/fsck.txt". + //SysMain_system("fsck.fat -a /dev/mmcblk0p1"); //The fsck checking will print the message directly. + } else { + DBG_IND("no /dev/mmcblk0p1, try to fsck /dev/mmcblk0\r\n"); + SysMain_system("fsck.fat -a /dev/mmcblk0 > /tmp/fsck.txt"); //Store to /tmp/fsck.txt and use "cat /tmp/fsck.txt". + //SysMain_system("fsck.fat -a /dev/mmcblk0"); //The fsck checking will print the message directly. + } + + ret_val = System_mount_storage(pMountPath); + if (ret_val) { + GxStrg_SetStrgMountStatus(stg_id, FALSE); + DBG_ERR("mount /mnt/sd failed, ret_val is %d; errno = %d\r\n", ret_val, errno); + } else { + GxStrg_SetStrgMountStatus(stg_id, TRUE); + } + //SysMain_system("df"); //only for debug, the "/mnt/sd" path must be existed. + #endif + + // linux partition as PStore + if (stg_id == PST_DEV_ID) { +#if defined(_CPU2_LINUX_) + if (GxStrg_OpenDevice(stg_id, NULL) != TRUE) { + DBG_ERR("Storage mount pstore fail\r\n"); + } + return NVTEVT_CONSUME; +#else + DBG_FATAL("stg_id cannot be %d.\r\n", PST_DEV_ID); +#endif + } + + DX_HANDLE pStrgDev = (DX_HANDLE)sdio_getStorageObject(STRG_OBJ_FAT1); + if (GxStrg_OpenDevice(stg_id, pStrgDev) != TRUE) { + char *pDxName = "unknown"; + Dx_GetInfo(pStrgDev, DX_INFO_NAME, &pDxName); + DBG_ERR("Storage mount %s fail\r\n", pDxName); + return NVTEVT_CONSUME; + } + +#if (USE_DCF == ENABLE) + { + DCF_OPEN_PARM dcfParm = {0}; + // Open DCF + dcfParm.Drive = (stg_id == 0) ? 'A' : 'B'; +#if (FS_MULTI_STRG_FUNC) +// if (POOL_CNT_DCF_BUFFER !=2) { +// DBG_FATAL("POOL_CNT_DCF_BUFFER be 2 for FS_MULTI_STRG_FUNC.\r\n"); +// } else { + switch(stg_id) { + case 0: +// dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)); + dcfParm.WorkbuffAddr = mempool_dcf; + break; + case 1: +// dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)) + POOL_SIZE_DCF_BUFFER; + dcfParm.WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER; + break; + default: + DBG_ERR("unknown stg_id=%d\r\n", stg_id); + dcfParm.WorkbuffAddr = 0; + break; + } +// } +#else + + dcfParm.WorkbuffAddr = mempool_dcf;//dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)); +#endif + + dcfParm.WorkbuffSize = POOL_SIZE_DCF_BUFFER; + + UINT32 handle = DCF_Open(&dcfParm); + + DBG_DUMP("Handle = %lu, drive = %c\n", handle, dcfParm.Drive); + // DCF_ScanObj(); + } +#endif + if(stg_id == 0){ + if (GxStrg_GetDeviceCtrl(stg_id, CARD_READONLY)) { + System_SetState(SYS_STATE_CARD, CARD_LOCKED); + DBG_IND("Card Locked\r\n"); + } else { + System_SetState(SYS_STATE_CARD, CARD_INSERTED); + DBG_IND("Card inserted\r\n"); + } + } + return NVTEVT_CONSUME; +} + + +INT32 System_OnStrgRemove(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) +{ + UINT32 stg_id = paramArray[0]; + if (m_BootState_Drive[stg_id] != BOOT_CARD_STATE_UNKNOWN) { + if (stg_id == 0) { +#if (LOGFILE_FUNC==ENABLE) + #if HUNTING_CAMERA_MCU == ENABLE + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if (puiPara->DebugMode) + { + LogFile_Suspend(); + LogFile_Close(); + } + #else + LogFile_Suspend(); + LogFile_Close(); + #endif + +#endif +#if (USERLOG_FUNC == ENABLE) + { + userlog_close(); + } +#endif +#if (USE_DCF == ENABLE) + //Fix the error "DCF_GetInfoByHandle() Dcf Handle 0 Data may be overwritted" when card plug out/in + DCF_Close(0); +#endif + System_SetState(SYS_STATE_CARD, CARD_REMOVED); + + GxStrg_CloseDevice(stg_id); +#if(IPCAM_FUNC==DISABLE && SDHOTPLUG_FUNCTION == DISABLE) + System_PowerOff(SYS_POWEROFF_NORMAL); +#endif + } + } else { + TM_BOOT_BEGIN("sdio", "mount_fs"); + m_BootState_Drive[stg_id] = BOOT_CARD_STATE_REMOVED; + #if (FS_SWITCH_STRG_FUNC == ENABLE) + if (stg_id==0) { + DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT|FS_DX_TYPE_DRIVE_B); + if (GxStrg_OpenDevice(stg_id, pStrgDev)!= TRUE) { + char* pDxName="unknown"; + Dx_GetInfo(pStrgDev, DX_INFO_NAME,&pDxName); + DBG_ERR("Storage mount %s fail\r\n",pDxName); + return NVTEVT_CONSUME; + } + System_SetState(SYS_STATE_CARD, CARD_INSERTED); + return NVTEVT_CONSUME; + } + #else + // boot without card, send attach to continue UI flow. + // because of UserWaitEvent(NVTEVT_STRG_ATTACH, ¶mNum, paramArray); + Ux_PostEvent(NVTEVT_STRG_ATTACH, 2, stg_id, 0xFF); + #endif + } + + DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | m_FsDxTypeMap[stg_id]); + if (GxStrg_CloseDevice(stg_id) != TRUE) { + char *pDxName = "unknown"; + Dx_GetInfo(pStrgDev, DX_INFO_NAME, &pDxName); + DBG_ERR("Storage mount %s fail\r\n", pDxName); + return NVTEVT_CONSUME; + } + + return NVTEVT_CONSUME; +} + +INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) +{ + #if defined(__FREERTOS) + SHMINFO *p_shm; + unsigned char *p_fdt = (unsigned char *)fdt_get_base(); + int len; + int nodeoffset; + const void *nodep; /* property node pointer */ + unsigned int *p_data; + #endif + UINT32 result = paramArray[1]; + #if HUNTING_CAMERA_MCU == ENABLE + SF_MESSAGE_BUF_S stMessageBuf = {0}; + UINT32 strg_id = paramArray[0]; + + #endif +#if defined(__FREERTOS) + if (p_fdt== NULL) { + DBG_ERR("p_fdt is NULL.\n"); + return NVTEVT_CONSUME; + } + + // read SHMEM_PATH + nodeoffset = fdt_path_offset(p_fdt, SHMEM_PATH); + if (nodeoffset < 0) { + DBG_ERR("failed to offset for %s = %d \n", SHMEM_PATH, nodeoffset); + } else { + DBG_DUMP("offset for %s = %d \n", SHMEM_PATH, nodeoffset); + } + nodep = fdt_getprop(p_fdt, nodeoffset, "reg", &len); + if (len == 0 || nodep == NULL) { + DBG_ERR("failed to access reg.\n"); + return NVTEVT_CONSUME; + } else { + p_data = (unsigned int *)nodep; + p_shm = (SHMINFO *)be32_to_cpu(p_data[0]); + DBG_DUMP("p_shm = 0x%08X\n", (int)p_shm); + } + ////////////////////////////////////////////////// +#endif + + if (m_GxStrgType == FST_FS_TYPE_LINUX) { + //Do Nothing + } else { //m_GxStrgType == FST_FS_TYPE_UITRON + //if spi use RamDisk as inner Memory,need to format RamDisk +#if defined(_EMBMEM_SPI_NOR_) + FS_HANDLE pStrgDevCur = (FS_HANDLE)GxStrg_GetDevice(0); + FS_HANDLE pStrgDevRAM = (FS_HANDLE)Dx_GetObject(DX_CLASS_STORAGE_EXT | USER_DX_TYPE_EMBMEM_FAT); + + if ((pStrgDevCur == pStrgDevRAM) && (result != FST_STA_OK)) { + result = FileSys_FormatDisk(pStrgDevCur, TRUE); + } +#endif + } + + DBG_WRN("stg_id = %lu\n", paramArray[0]); + + switch (result) { + case FST_STA_OK: + printf("read only = %llu\n", FileSys_GetDiskInfoEx('A', FST_INFO_IS_READ_ONLY)); + if(FileSys_GetDiskInfoEx('A', FST_INFO_IS_READ_ONLY)){ + system("mount -t vfat /dev/mmcblk0 /mnt/sd/ -o remount,rw"); + } +//#if (USE_DCF == ENABLE) +// if (!UI_GetData(FL_IsCopyToCarding)) { + DCF_ScanObj(); +// } +//#endif + //FileSys_GetDiskInfo(FST_INFO_DISK_SIZE); + System_SetState(SYS_STATE_FS, FS_INIT_OK); + + #if HUNTING_CAMERA_MCU == ENABLE + INT32 uiStatus = 0; + UINT8 ucAttrib = 0; + uiStatus = FileSys_GetAttrib(PHOTO_THUMB_PATH, &ucAttrib); + if (uiStatus == FST_STA_OK) { + if(!(ucAttrib&FST_ATTRIB_HIDDEN)){ + #if SF_IQ_TEST != ENABLE + FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); + #endif + } + } + else { + FileSys_MakeDir(PHOTO_THUMB_PATH); + #if SF_IQ_TEST != ENABLE + FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); + #endif + } + #if HUNTING_CAMERA_MCU == ENABLE + + if((CMD_FORMAT_SD_STA != sf_get_card_statu())){ + stMessageBuf.arg1 = STRG_CB_MOUNT_FINISH; + stMessageBuf.arg2 = result; + stMessageBuf.arg3 = FST_STA_OK; + stMessageBuf.cmdId = CMD_SD; + sf_com_message_send_to_app(&stMessageBuf); + Ux_PostEvent(NVTEVT_STRG_MOUNT_OK, 0); + } + #endif + #endif +#if defined(__FREERTOS) + if (p_shm && p_shm->boot.LdCtrl2 & LDCF_UPDATE_FW) { + FST_FILE hFile = FileSys_OpenFile(FW_DEL_INDIACTION_PATH, FST_OPEN_READ | FST_OPEN_EXISTING); + if (hFile != NULL) { + DBG_DUMP("Detected %s, delete %s \r\n", FW_DEL_INDIACTION_PATH, LOADER_UPD_FW_PATH); + FileSys_CloseFile(hFile); + // Delete FW bin from A: + if (FileSys_DeleteFile(LOADER_UPD_FW_PATH) != FST_STA_OK) { + DBG_ERR("delete "_BIN_NAME_".BIN failed .\r\n"); + } + if (FileSys_DeleteFile(FW_DEL_INDIACTION_PATH) != FST_STA_OK) { + DBG_ERR("delete %s failed .\r\n", FW_DEL_INDIACTION_PATH); + } + } + } +#endif + +#if (LOGFILE_FUNC==ENABLE) + #if HUNTING_CAMERA_MCU == ENABLE + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + if ((puiPara->DebugMode) && SxTimer_GetFuncActive(SX_TIMER_DET_SYSTEM_ERROR_ID) == 0) + #else + if (SxTimer_GetFuncActive(SX_TIMER_DET_SYSTEM_ERROR_ID) == 0) + #endif + { + LOGFILE_OPEN logOpenParm = {0}; + UINT32 maxFileNum = 32; + UINT32 maxFileSize = 0x100000; // 1MB + CHAR rootDir[LOGFILE_ROOT_DIR_MAX_LEN + 1] = "A:\\LOG\\"; + #if defined(_CPU2_LINUX_) + CHAR rootDir2[LOGFILE_ROOT_DIR_MAX_LEN + 1] = "A:\\Novatek\\LOG2\\"; + #endif + CHAR sysErrRootDir[LOGFILE_ROOT_DIR_MAX_LEN + 1] = "A:\\SYS\\"; + + logOpenParm.maxFileNum = maxFileNum; + logOpenParm.maxFileSize = maxFileSize; + logOpenParm.isPreAllocAllFiles = TRUE; + #if defined(__FREERTOS) + logOpenParm.isSaveLastTimeSysErrLog = wdt_getResetNum()>0 ? TRUE : FALSE; + #else //defined(__LINUX_USER__) + logOpenParm.isSaveLastTimeSysErrLog = FALSE; + #endif + logOpenParm.lastTimeSysErrLogBuffAddr = mempool_logfile; + logOpenParm.lastTimeSysErrLogBuffSize = POOL_SIZE_LOGFILE; + strncpy(logOpenParm.rootDir, rootDir, LOGFILE_ROOT_DIR_MAX_LEN); + #if defined(_CPU2_LINUX_) + strncpy(logOpenParm.rootDir2, rootDir2, LOGFILE_ROOT_DIR_MAX_LEN); + #endif + strncpy(logOpenParm.sysErrRootDir, sysErrRootDir, LOGFILE_ROOT_DIR_MAX_LEN); + logOpenParm.isZeroFile = TRUE; + LogFile_Open(&logOpenParm); + + //start scan + SxTimer_SetFuncActive(SX_TIMER_DET_SYSTEM_ERROR_ID, TRUE); + + } +#endif +#if (USERLOG_FUNC == ENABLE) + { + userlog_open(); + } +#endif + break; + case FST_STA_DISK_UNFORMAT: + if(strg_id == 0) + System_SetState(SYS_STATE_FS, FS_UNFORMATTED); + break; + case FST_STA_DISK_UNKNOWN_FORMAT: + if(strg_id == 0) + System_SetState(SYS_STATE_FS, FS_UNKNOWN_FORMAT); + break; + case FST_STA_CARD_ERR: + if(strg_id == 0) + System_SetState(SYS_STATE_FS, FS_DISK_ERROR); + break; + default: + if(strg_id == 0) + System_SetState(SYS_STATE_FS, FS_DISK_ERROR); + break; + } + + #if HUNTING_CAMERA_MCU == ENABLE + + if((FS_DISK_ERROR == System_GetState(SYS_STATE_FS))){ + stMessageBuf.arg1 = CMD_SD_STRG_CB_UNMOUNT_FINISH; + stMessageBuf.cmdId = CMD_SD; + sf_com_message_send_to_app(&stMessageBuf); + } + #endif +#if (POWERON_FAST_BOOT == ENABLE) + INIT_SETFLAG(FLGINIT_STRGATH); +#endif + Ux_PostEvent(NVTEVT_STORAGE_INIT, 0, 0); +#if (PWR_FUNC == ENABLE) + GxPower_SetControl(GXPWR_CTRL_AUTOSLEEP_EN, 0xff); //reset +#endif + return NVTEVT_CONSUME; +} + +INT32 System_OnStrgDetach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) +{ + if (m_GxStrgType == FST_FS_TYPE_LINUX) { + UINT32 stg_id = paramArray[0]; + + if (stg_id != 0) { //not sd-1 + return NVTEVT_CONSUME; + } + } + + switch (paramArray[1]) { + case FST_STA_OK: + DBG_IND("FS: unmount OK\r\n"); + break; + + default: + DBG_ERR("^RFS: unmount FAIL\r\n"); + break; + } + return NVTEVT_CONSUME; +} + +BOOL gChkCardPwrOn = FALSE; +BOOL gChkCardChange = FALSE; + +void Storage_PowerOn_Start(void) +{ + gChkCardPwrOn = GxStrg_GetDeviceCtrl(0, CARD_INSERT); + DBG_IND("^BStg Power On = %d\r\n", gChkCardPwrOn); +} +void Storage_UpdateSource(void) +{ + DBG_IND("^Y-------------CARD det\r\n"); + if (gChkCardPwrOn) { + if (FALSE == GxStrg_GetDeviceCtrl(0, CARD_INSERT)) { //CARD�w�ް� + gChkCardChange = TRUE; + } + } else { + if (TRUE == GxStrg_GetDeviceCtrl(0, CARD_INSERT)) { //CARD�w���J + gChkCardChange = TRUE; + } + } +} +void Storage_PowerOn_End(void) +{ + Storage_UpdateSource(); + gChkCardPwrOn = GxStrg_GetDeviceCtrl(0, CARD_INSERT); + + if (TRUE == gChkCardChange) { //CARD���g���� + System_PowerOff(SYS_POWEROFF_NORMAL); //���� + return; + } +} + + +/////////////////////////////////////////////////////////////////////////////// +// +// PSTORE +// +/////////////////////////////////////////////////////////////////////////////// +#if (PST_FUNC == ENABLE) +#define PST_IND_FILE "/mnt/pstore/.psinit" + +void System_PS_Format(void) +{ + PSFMT gFmtStruct = {MAX_BLK_PER_SEC, MAX_SEC_NUM}; + PStore_Format(&gFmtStruct); +} +void System_OnStrgInit_PS(void) +{ + struct stat st; + char ind_file_name[64]; + + //PHASE-2 : Init & Open Lib or LibExt + TM_BOOT_BEGIN("nand", "init_ps"); +#if (PST_FUNC == ENABLE) + // Open PStore + PSFMT gFmtStruct = {MAX_BLK_PER_SEC, MAX_SEC_NUM}; + PSTORE_INIT_PARAM gPStoreParam; + UINT32 result = 0; +#if defined(__FREERTOS) + UINT8 *pBuf; +#endif +#if defined(_CPU2_LINUX_) && defined(_EMBMEM_EMMC_) + PStore_Init(PS_TYPE_FILESYS, PST_FS_DRIVE[0]); + UINT32 paramNum; + UINT32 paramArray[MAX_MESSAGE_PARAM_NUM]; + do { + UserWaitEvent(NVTEVT_STRG_ATTACH, ¶mNum, paramArray); + } while(paramArray[0] != PST_DEV_ID); //PStore will mount first before dev[0],dev[1] +#else + PStore_Init(PS_TYPE_EMBEDED, 0); +#endif +#if defined(__FREERTOS) + pBuf = (UINT8 *)mempool_pstore; + if(!pBuf){ + DBG_ERR("fail to allocate pstore buffer of %d bytes\n", POOL_SIZE_PS_BUFFER); + return; + } + + gPStoreParam.pBuf = pBuf; + gPStoreParam.uiBufSize = POOL_SIZE_PS_BUFFER; + DBG_DUMP("PStore uiBufSize=%d\r\n", gPStoreParam.uiBufSize); +#else + gPStoreParam.pBuf = NULL; + gPStoreParam.uiBufSize = 0; +#endif + result = PStore_Open(NULL, &gPStoreParam); + + if ((result != E_PS_OK) || (stat(PST_IND_FILE, &st) != 0)) { + DBG_ERR("PStore Open fail %d format \r\n", result); + // close pstore to umount pstore partition + PStore_Close(); + // after format, pstore partition will be re-mounted, so don't call open again + PStore_Format(&gFmtStruct); + // create indicated file + strncpy(ind_file_name, "touch ", 10); + strncat(ind_file_name, PST_IND_FILE, 50); + system(ind_file_name); + } + +#if defined(_CPU2_LINUX_) + { + PSTOREIPC_OPEN PsopenObj = {0}; + // open pstore ipc + PstoreIpc_Open(&PsopenObj); + } +#endif +#endif +#if (POWERON_FAST_BOOT == ENABLE) + INIT_SETFLAG(FLGINIT_MOUNTPS); +#endif + TM_BOOT_END("nand", "init_ps"); +} +void System_OnStrgExit_PS(void) +{ +#if (PST_FUNC == ENABLE) +#if defined(_CPU2_LINUX_) + PstoreIpc_Close(); +#endif + PStore_Close(); +#endif +} +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// FWSTORE +// +/////////////////////////////////////////////////////////////////////////////// +#if (FWS_FUNC == ENABLE) +#include "FileSysTsk.h" +#if (FWS_FUNC == ENABLE) +#include "FwSrvApi.h" +#endif +#include "MemCheck.h" + +typedef enum { + CODE_SECTION_01 = 0, + CODE_SECTION_02, + CODE_SECTION_03, + CODE_SECTION_04, + CODE_SECTION_05, + CODE_SECTION_06, + CODE_SECTION_07, + CODE_SECTION_08, + CODE_SECTION_09, + CODE_SECTION_10, + CODE_SECTION_11, + CODE_SECTION_12, + CODE_SECTION_13, + CODE_SECTION_14, + CODE_SECTION_15, + CODE_SECTION_16, + ENUM_DUMMY4WORD(_CODE_SECTION_) +} +CODE_SECTION; + +UINT32 UserSection_Load[10] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +UINT32 UserSection_Order_full[] = { + CODE_SECTION_02, CODE_SECTION_03, CODE_SECTION_04, CODE_SECTION_05, CODE_SECTION_06, + CODE_SECTION_07, CODE_SECTION_08, CODE_SECTION_09, CODE_SECTION_10, FWSRV_PL_BURST_END_TAG +}; + +int order = 1; +void UserSection_LoadCb(const UINT32 Idx) +{ + DBG_DUMP("Section-%.2ld: (LOAD)\r\n", Idx + 1); + + UserSection_Load[Idx] = 1; //mark loaded + order++; + + if (Idx == 9) { //Section-10 + if (mp_fwsrv_work_buf) { + free(mp_fwsrv_work_buf); + mp_fwsrv_work_buf = NULL; + } + } +#if (POWERON_FAST_BOOT == ENABLE) + if (Idx == 0) { //Section-01 + INIT_SETFLAG(FLGINIT_LOADCODE1); + } + if (Idx == 1) { //Section-02 + INIT_SETFLAG(FLGINIT_LOADCODE2); + } + if (Idx == 2) { //Section-03 + INIT_SETFLAG(FLGINIT_LOADCODE3); + } + if (Idx == 9) { //Section-10 + } +#endif +} + +void System_OnStrgInit_FWS(void) +{ + SHMINFO *p_shm; + FWSRV_INIT Init = {0}; + unsigned char *p_fdt = (unsigned char *)fdt_get_base(); + + + if (p_fdt == NULL) { + DBG_ERR("p_fdt is NULL.\n"); + return; + } + + int len; + int nodeoffset; + const void *nodep; /* property node pointer */ + + // read SHMEM_PATH + nodeoffset = fdt_path_offset(p_fdt, SHMEM_PATH); + if (nodeoffset < 0) { + DBG_ERR("failed to offset for %s = %d \n", SHMEM_PATH, nodeoffset); + } else { + DBG_DUMP("offset for %s = %d \n", SHMEM_PATH, nodeoffset); + } + nodep = fdt_getprop(p_fdt, nodeoffset, "reg", &len); + if (len == 0 || nodep == NULL) { + DBG_ERR("failed to access reg.\n"); + return; + } else { + unsigned int *p_data = (unsigned int *)nodep; + p_shm = (SHMINFO *)be32_to_cpu(p_data[0]); + DBG_DUMP("p_shm = 0x%08X\n", (int)p_shm); + if (p_shm->boot.LdCtrl2 & LDCF_BOOT_CARD) { + DBG_DUMP(DBG_COLOR_HI_YELLOW"\r\nNotice: Boot from T.bin. app.dtb will load from flash!!!\r\n\r\n"DBG_COLOR_END); + } + } + + // init fwsrv + Init.uiApiVer = FWSRV_API_VERSION; + Init.StrgMap.pStrgFdt = EMB_GETSTRGOBJ(STRG_OBJ_FW_FDT); + Init.StrgMap.pStrgApp = EMB_GETSTRGOBJ(STRG_OBJ_FW_APP); + Init.StrgMap.pStrgUboot = EMB_GETSTRGOBJ(STRG_OBJ_FW_UBOOT); + Init.StrgMap.pStrgRtos = EMB_GETSTRGOBJ(STRG_OBJ_FW_RTOS); + Init.PlInit.uiApiVer = PARTLOAD_API_VERSION; + Init.PlInit.pStrg = EMB_GETSTRGOBJ(STRG_OBJ_FW_RTOS); +#if defined(_FW_TYPE_PARTIAL_COMPRESS_) + mp_fwsrv_work_buf = (void *)malloc(FW_PARTIAL_COMPRESS_WORK_BUF_SIZE); + Init.PlInit.DataType = PARTLOAD_DATA_TYPE_COMPRESS_GZ; + Init.PlInit.uiWorkingAddr = (UINT32)mp_fwsrv_work_buf; + Init.PlInit.uiWorkingSize = FW_PARTIAL_COMPRESS_WORK_BUF_SIZE ; + +#elif defined(_FW_TYPE_PARTIAL_) + mp_fwsrv_work_buf = (void *)malloc(_EMBMEM_BLK_SIZE_); + Init.PlInit.DataType = PARTLOAD_DATA_TYPE_UNCOMPRESS; + Init.PlInit.uiWorkingAddr = (UINT32)mp_fwsrv_work_buf; + Init.PlInit.uiWorkingSize = _EMBMEM_BLK_SIZE_ ; +#endif + Init.PlInit.uiAddrBegin = _BOARD_RTOS_ADDR_ + p_shm->boot.LdLoadSize; + FwSrv_Init(&Init); + FwSrv_Open(); +} + +void System_OnStrgExit_FWS(void) +{ +#if (FWS_FUNC == ENABLE) + ER er; + er = FwSrv_Close(); + if (er != FWSRV_ER_OK) { + DBG_ERR("Close failed!\r\n"); + } +#endif +} + +void System_CPU2_Start(void) +{ +} + +void System_CPU2_Stop(void) +{ +} + +void System_CPU2_WaitReady(void) +{ +} + +void System_DSP_Start(void) +{ +} + +void System_DSP_WaitReady(void) +{ +} + +void System_OnStrg_DownloadFW(void) +{ +#if defined(_FW_TYPE_PARTIAL_) || defined(_FW_TYPE_PARTIAL_COMPRESS_) + SHMINFO *p_shm; + unsigned char *p_fdt = (unsigned char *)fdt_get_base(); + + if (p_fdt == NULL) { + DBG_ERR("p_fdt is NULL.\n"); + return; + } + + int len; + int nodeoffset; + const void *nodep; /* property node pointer */ + + // read SHMEM_PATH + nodeoffset = fdt_path_offset(p_fdt, SHMEM_PATH); + if (nodeoffset < 0) { + DBG_ERR("failed to offset for %s = %d \n", SHMEM_PATH, nodeoffset); + } else { + DBG_DUMP("offset for %s = %d \n", SHMEM_PATH, nodeoffset); + } + nodep = fdt_getprop(p_fdt, nodeoffset, "reg", &len); + if (len == 0 || nodep == NULL) { + DBG_ERR("failed to access reg.\n"); + return; + } else { + unsigned int *p_data = (unsigned int *)nodep; + p_shm = (SHMINFO *)be32_to_cpu(p_data[0]); + DBG_DUMP("p_shm = 0x%08X\n", (int)p_shm); + } + + if ((p_shm->boot.LdCtrl2 & LDCF_BOOT_CARD) == 0) { + FWSRV_CMD Cmd = {0}; + FWSRV_PL_LOAD_BURST_IN pl_in = {0}; + + // start partial load + void (*LoadCallback)(const UINT32 Idx) = UserSection_LoadCb; + UINT32 *SecOrderTable = UserSection_Order_full; + + LoadCallback(CODE_SECTION_01); // 1st part has loaded by loader + + ER er; + pl_in.puiIdxSequence = SecOrderTable; + pl_in.fpLoadedCb = LoadCallback; + Cmd.Idx = FWSRV_CMD_IDX_PL_LOAD_BURST; //continue load + Cmd.In.pData = &pl_in; + Cmd.In.uiNumByte = sizeof(pl_in); + Cmd.Prop.bExitCmdFinish = TRUE; + + er = FwSrv_Cmd(&Cmd); + if (er != FWSRV_ER_OK) { + DBG_ERR("Process failed!\r\n"); + return; + } + } +#endif + return; +} +#endif + +#if (IPCAM_FUNC != ENABLE) + +#include "SysFW_Upgrade.h" + +UINT32 System_OnStrg_UploadFW(UINT32 DevID) +{ + INT32 fst_er; +// ER fws_er; + unsigned char *p_Mem = NULL; + FST_FILE hFile = NULL; + UINT32 uiFwSize = 0; + DBG_FUNC_BEGIN("\r\n"); + + //m_bUpdRename = FALSE; + + uiFwSize = FileSys_GetFileLen(FW_UPDATE_NAME); + uiFwSize += _EMBMEM_BLK_SIZE_; /* IMPOARTANT!! */ + + hFile = FileSys_OpenFile(FW_UPDATE_NAME, FST_OPEN_READ); + + if (hFile == 0) { + DBG_ERR("cannot find %s\r\n", FW_UPDATE_NAME); + return UPDNAND_STS_FW_INVALID_STG; + } + + + + p_Mem = (unsigned char *)SxCmd_GetTempMem(uiFwSize); + if(NULL == p_Mem){ + DBG_ERR("Alloc Temp Mem is NULL(uiFwSize=%d)\r\n",uiFwSize); + return UPDNAND_STS_FW_READ2_ERR; + } + + fst_er = FileSys_ReadFile(hFile, (UINT8 *)p_Mem, &uiFwSize, 0, NULL); + DBG_IND("Update Filename=%s, File Size=%d\r\n",FW_UPDATE_NAME,uiFwSize); + FileSys_CloseFile(hFile); + if (fst_er != FST_STA_OK) { + DBG_ERR("FW bin read fail\r\n"); + return UPDNAND_STS_FW_READ_ERR; + } + + DBG_DUMP("p_Mem = %lx size = %lx\n", (UINT32)p_Mem, (UINT32)uiFwSize); + + SysFW_Upgrade_Init(); + SysFW_Upgrade((UINT32)p_Mem, (UINT32)uiFwSize); + +// FWSRV_BIN_UPDATE_ALL_IN_ONE Desc = {0}; +// Desc.uiSrcBufAddr = (UINT32)p_Mem; +// Desc.uiSrcBufSize = (UINT32)uiFwSize; +// Desc.fpCheckSumCb = CheckSumOKCb; //we rename bin after check sum OK +// +// FWSRV_CMD Cmd = {0}; +// Cmd.Idx = FWSRV_CMD_IDX_BIN_UPDATE_ALL_IN_ONE; //continue load +// Cmd.In.pData = &Desc; +// Cmd.In.uiNumByte = sizeof(Desc); +// Cmd.Prop.bExitCmdFinish = TRUE; +// +// fws_er = FwSrv_Cmd(&Cmd); + + + SxCmd_RelTempMem((UINT32)p_Mem); + + /* + if(fws_er == FWSRV_ER_INVALID_UPDATED_DATA || fws_er == FWSRV_ER_WRITE_BLOCK) + { + DBG_ERR("update failed, start to use loader update mechanism.\r\n"); + //GxSystem_EnableHWReset(0); + //GxSystem_PowerOff(); + return UPDNAND_STS_FW_WRITE_CHK_ERR; + } + else if(fws_er != FWSRV_ER_OK) + { + DBG_ERR("FW bin check failed %d\r\n",fws_er); + if(m_bUpdRename) + { + if(FileSys_RenameFile(&uiUpdateFWName[3],LOADER_UPD_FW_PATH, TRUE)==FST_STA_OK) //[3]: remove "A:\\" + { + FileSys_DeleteFile(FW_DEL_INDIACTION_PATH); + } + } + return UPDNAND_STS_FW_READ_CHK_ERR; + } + */ + DBG_FUNC_END("\r\n"); + return UPDNAND_STS_FW_OK; +} +#endif + +#if (LOGFILE_FUNC==ENABLE) +void System_DetErr(void) +{ + #if 0 //LOGFILE_FUNC TODO + extern void LogFile_DumpMemAndSwReset(void); + + #if (LOGFILE_FUNC==ENABLE) + if (LogFile_ChkSysErr() != E_OK) { + LogFile_DumpMemAndSwReset(); + } + #endif + #endif //LOGFILE_FUNC TODO +} +#endif + +/////////////////////////////////////////////////////////////////////////////// diff --git a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c index 5bc501f51..933e6a002 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c +++ b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c @@ -1,5 +1,4 @@ #include "PrjInc.h" -#include "UIApp/Background/UIBackgroundObj.h" #include "sf_param_common.h" #include "sys_mempool.h" #include "Dx.h" @@ -54,7 +53,6 @@ static UINT32 BackgroundCopyCard2ToCard1(void); #endif static UINT32 BackgroundFormat(void); static UINT32 BackgroundFormatCard(void); -static UINT32 BackgroundFormatEmmc(void); static UINT32 BackgroundFormatNand(void); static UINT32 BackgroundNumReset(void); #if (USE_DPOF==ENABLE) @@ -145,7 +143,6 @@ BKG_JOB_ENTRY gBackgroundExtFuncTable[] = { #endif {NVTEVT_BKW_FORMAT, BackgroundFormat}, {NVTEVT_BKW_FORMAT_CARD, BackgroundFormatCard}, - {NVTEVT_BKW_FORMAT_EMMC, BackgroundFormatEmmc}, {NVTEVT_BKW_FORMAT_NAND, BackgroundFormatNand}, {NVTEVT_BKW_NUM_RESET, BackgroundNumReset}, #if (USB_MODE==ENABLE) @@ -859,11 +856,6 @@ UINT32 BackgroundFormat(void) return (UINT32)ret; } -UINT32 BackgroundFormatEmmc(void) -{ - printf(" BackgroundFormatEmmc\n "); - return TRUE; -} UINT32 BackgroundFormatCard(void) { int ret; diff --git a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.h b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.h index 79bdda107..4eb1528eb 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.h +++ b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.h @@ -11,7 +11,6 @@ typedef enum { NVTEVT_BKW_COPYCARD2ToCARD1, NVTEVT_BKW_FORMAT, NVTEVT_BKW_FORMAT_CARD, - NVTEVT_BKW_FORMAT_EMMC, NVTEVT_BKW_FORMAT_NAND, NVTEVT_BKW_NUM_RESET, NVTEVT_BKW_SETDPOF, diff --git a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c index 78b03f071..46809a47c 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c @@ -37,7 +37,6 @@ #endif #include "vendor_videoout.h" #include "IOCfg.h" -#include "sf_mmc_dev.h" #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER /////////////////////////////////////////////////////////////////////////////// @@ -59,6 +58,8 @@ static UINT32 g_FileSerialNum = 0; static BOOL g_bAllowRawEnc = TRUE; static UINT32 raw_enc_path = 0; +extern DCF_HANDLE System_Get_DCF_Handle(void); +extern CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle); /********************************************************************************** * independent thumbnail *********************************************************************************/ @@ -834,7 +835,7 @@ static void MovieExe_WifiCB(HD_VIDEO_FRAME *pEthcamSrc) //#if (MOVIE_UVAC_FUNC == DISABLE) //if (System_GetState(SYS_STATE_CURRSUBMODE) != SYS_SUBMODE_WIFI) { if (ImageApp_MovieMulti_IsStreamRunning(_CFG_STRM_ID_1) == FALSE) { - vos_util_delay_ms(10); + vos_util_delay_ms(10); return; } //#endif @@ -1218,11 +1219,6 @@ BOOL MovieExe_CheckSNFull(void) static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) { - MMC_DEV_TYPE mmc_dev = sf_mmc_check_workable_dev(); - if(mmc_dev == MMC_DEV_NO) - { - DBG_ERR("No Strg dev can use!\n"); - } #if USE_FILEDB static struct tm CurDateTime = {0}; @@ -1232,19 +1228,10 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) g_FileSerialNum = FILE_SN_MAX; Ux_PostEvent(NVTEVT_CB_MOVIE_FULL, 0); } + GxTime_GetTime(&CurDateTime); #if(SENSOR_CAPS_COUNT>=2 || ((defined(_NVT_ETHREARCAM_RX_)) && (ETH_REARCAM_CAPS_COUNT >= 2))) - char NH_endChar='A'; - - //if(mmc_dev == MMC_DEV_SD) - { - //NH_endChar='A'; - } - //else if(mmc_dev == MMC_DEV_EMMC) - { - //NH_endChar='B'; - } - + char NH_endChar='A'; if(id < _CFG_REC_ID_MAX){ NH_endChar+=id; }else if(id <_CFG_CLONE_ID_MAX){ @@ -1262,26 +1249,18 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) CurDateTime.tm_hour, CurDateTime.tm_min, CurDateTime.tm_sec, g_FileSerialNum); #endif #elif USE_DCF - UINT32 dcf_path = 1; - if(mmc_dev == MMC_DEV_SD) - { - dcf_path = 1; /* 0:emmc 1:sd */ - } - else if(mmc_dev == MMC_DEV_EMMC) - { - dcf_path = 0; /* 0:emmc 1:sd */ - } + UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle(); UINT32 nextFolderID = 0, nextFileID = 0; - if (DCF_GetDBInfoEx(dcf_path, DCF_INFO_IS_9999)) { + if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) { DBG_ERR("Exceed max dcf file!\r\n"); pFileName[0] = '\0'; } else { - DCF_GetNextIDEx(dcf_path, &nextFolderID,&nextFileID); - DCF_MakeObjPathEx(dcf_path, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); - DCF_AddDBfileEx(dcf_path, pFileName); - DBG_DUMP("%s added to DCF Path%lu\r\n", pFileName, dcf_path); + DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID); + DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); + DCF_AddDBfileEx(dcf_handle, pFileName); + DBG_DUMP("%s added to DCF Path%lu\r\n", pFileName, dcf_handle); #if HUNTING_CAMERA_MCU == ENABLE char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'}; sprintf(tmp, "S%03d%04d.JPG", nextFolderID, nextFileID); @@ -1342,14 +1321,14 @@ static void MovieExe_RawEncodeFileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) #elif USE_DCF UINT32 nextFolderID = 0, nextFileID = 0; - UINT32 dcf_path = 1; + UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle(); - if (DCF_GetDBInfoEx(dcf_path, DCF_INFO_IS_9999)) { + if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) { DBG_ERR("Exceed max dcf file!\r\n"); pFileName[0] = '\0'; } else { - DCF_GetNextIDEx(dcf_path, &nextFolderID,&nextFileID); - DCF_MakeObjPathEx(dcf_path, nextFolderID, nextFileID, DCF_FILE_TYPE_JPG, pFileName); + DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID); + DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_JPG, pFileName); } #endif @@ -1586,9 +1565,9 @@ static void MovieExe_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT32 #if HUNTING_CAMERA_MCU == ENABLE - snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */ + snprintf(tmp, sizeof(tmp), "%c%s%s", System_Get_DCF_Disk_Drive(System_Get_DCF_Handle()), MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */ #else - snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */ + snprintf(tmp, sizeof(tmp), "%c%s%s", System_Get_DCF_Disk_Drive(System_Get_DCF_Handle()), MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */ snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); #endif @@ -1931,7 +1910,16 @@ INT32 MovieExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) DBG_FUNC("\r\n"); - FileSys_MakeDir(MOVIE_THUMB_PATH); + char thumb_dir[128] = {'\0'}; + sprintf(thumb_dir, "%c%s", 'A', MOVIE_THUMB_PATH); + FileSys_MakeDir(thumb_dir); + +#if FS_MULTI_STRG_FUNC + sprintf(thumb_dir, "%c%s", 'B', MOVIE_THUMB_PATH); + FileSys_MakeDir(thumb_dir); +#endif + + GOIO_Turn_Onoff_IRCUT(1); Movie_CommPoolInit(); diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index c0740a58b..33bfdd015 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -52,7 +52,8 @@ #define DZOOM_MAX_STEP 6 //Please setting acording the DZoom table BOOL _g_bFirstPhoto = TRUE; - +extern DCF_HANDLE System_Get_DCF_Handle(void); +extern CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle); /********************************************************************************** * independent thumbnail *********************************************************************************/ @@ -2596,10 +2597,23 @@ INT32 PhotoExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) g_photo_ImageRatioSize = IMAGERATIO_SIZE[ImageRatioIdx]; // g_photo_ImageRatioSize = IMAGERATIO_SIZE[4]; - FileSys_MakeDir(PHOTO_THUMB_PATH); - #if SF_IQ_TEST != ENABLE - FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); - #endif + char thumb_dir[128] = {'\0'}; + + sprintf(thumb_dir, "%c%s", 'A', PHOTO_THUMB_PATH); + FileSys_MakeDir(thumb_dir); + +#if SF_IQ_TEST != ENABLE + FileSys_SetAttrib(thumb_dir, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); +#endif + +#if FS_MULTI_STRG_FUNC + sprintf(thumb_dir, "%c%s", 'B', PHOTO_THUMB_PATH); + FileSys_MakeDir(thumb_dir); +#if SF_IQ_TEST != ENABLE + FileSys_SetAttrib(thumb_dir, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); +#endif +#endif + GOIO_Turn_Onoff_IRCUT(1); //sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode,0); @@ -6185,19 +6199,19 @@ INT32 PhotoExe_Preview_SliceEncode(VControl *pCtrl, UINT32 paramNum, UINT32 *par DBG_ERR("primary buffer overflow during combine jpg!\r\n"); } - UINT32 dcf_path = 1; /* 0:emmc , 1:sd */ + UINT32 dcf_handle = (UINT32)System_Get_DCF_Handle(); FstStatus.Status = ImageApp_Photo_WriteCB( dst_jpg_file.addr, dst_jpg_file.size, - HD_CODEC_TYPE_JPEG, dcf_path); + HD_CODEC_TYPE_JPEG, dcf_handle); { char* file_path = ImageApp_Photo_GetLastWriteFilePath(); char tmp[256] = {'\0'}; UINT32 length = strlen(file_path); - snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */ + snprintf(tmp, sizeof(tmp), "%c%s%s", System_Get_DCF_Disk_Drive(dcf_handle), PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */ snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); DBG_DUMP("PHOTO THUMB %s\n", tmp); @@ -6783,12 +6797,12 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data) extern INT32 ImageApp_Photo_WriteCB(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId); IMG_CAP_FST_INFO FstStatus = {FST_STA_OK}; - UINT32 dcf_path = 1; /* 0:emmc 1:sd */ + UINT32 dcf_handle = (UINT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */ FstStatus.Status = ImageApp_Photo_WriteCB( (UINT32)queue_ele_in->jpg_combined_addr, queue_ele_in->jpg_combined_size, - HD_CODEC_TYPE_JPEG, dcf_path); + HD_CODEC_TYPE_JPEG, dcf_handle); { char* file_path = ImageApp_Photo_GetLastWriteFilePath(); @@ -6803,11 +6817,11 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data) strncpy(number, file_path + length - 8, 4); number[4] = '\0'; - snprintf(tmp, sizeof(tmp), "%sW%s%s.JPG", PHOTO_THUMB_PATH, folder, number); /* DCF 8.3 naming rule */ + snprintf(tmp, sizeof(tmp), "%c%sW%s%s.JPG", System_Get_DCF_Disk_Drive(dcf_handle), PHOTO_THUMB_PATH, folder, number); /* DCF 8.3 naming rule */ #else - snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */ + snprintf(tmp, sizeof(tmp), "%c%s%s", System_Get_DCF_Disk_Drive(dcf_handle), PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */ snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); #endif DBG_IND("PHOTO THUMB %s\n", tmp); @@ -6818,22 +6832,22 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data) FileSys_CloseFile(fp); #if HUNTING_CAMERA_MCU == ENABLE char tmp2[64] = {'\0'}; - //UIMenuStoreInfo *puiPara = sf_ui_para_get(); + UIMenuStoreInfo *puiPara = sf_ui_para_get(); memset(tmp, '\0', sizeof(tmp)); SF_FILE_TYPE_E enFileType = 0; - if(SF_CAM_MODE_PHOTO == sf_get_cammode_statu()){ + if(SF_CAM_MODE_PHOTO == puiPara->CamMode){ enFileType = SF_FILE_TYPE_PIC_SMALL; - }else if(SF_CAM_MODE_PHOTO_VIDEO == sf_get_cammode_statu()){ + }else if(SF_CAM_MODE_PHOTO_VIDEO == puiPara->CamMode){ enFileType = SF_FILE_TYPE_PIC_VIDEO; } - else if(SF_CAM_MODE_VIDEO2 == sf_get_cammode_statu()){ + else if(SF_CAM_MODE_VIDEO2 == puiPara->CamMode){ enFileType = SF_FILE_TYPE_PIC_VIDEO; } snprintf(tmp, sizeof(tmp), "%sW%s%s.JPG", SF_SEND_LIST_DIR, folder, number); /* DCF 8.3 naming rule */ snprintf(tmp2, sizeof(tmp2), "W%s%s.JPG", folder, number); /* DCF 8.3 naming rule */ DBG_DUMP("PHOTO THUMB %s \n %s\n", tmp, tmp2); sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, enFileType); - if((!sf_get_mode_flag()) || ((FALSE == sf_check_net_work_flag()) && (0 < sf_cardv_get_cq_signal()) && (SF_CAM_MODE_PHOTO == sf_get_cammode_statu()))) + if((!sf_get_mode_flag()) || ((FALSE == sf_check_net_work_flag()) && (0 < sf_cardv_get_cq_signal()) && (SF_CAM_MODE_PHOTO == puiPara->CamMode))) { if(SUCCESS == sf_share_mem_file_down(0, 0)){ sf_set_send_statu(TRUE); diff --git a/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c b/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c index 5835176fd..8e199bc73 100755 --- a/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c @@ -150,12 +150,6 @@ ER AppInit_ModeUSBMSDC(void) //If project doesn't need the MSDC Vendor command, set this callback function as NULL. MSDCInfo.msdc_check_cb = NULL; MSDCInfo.msdc_vendor_cb = NULL; - //#NT#2016/12/20#Niven Cho -begin - //#NT#MULTI_DRIVE -//#if (FS_MULTI_STRG_FUNC == ENABLE) -// char *pDxName2 = NULL; -// DX_HANDLE pStrgDev2 = 0; -//#endif pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A); @@ -166,10 +160,6 @@ ER AppInit_ModeUSBMSDC(void) } #endif -//#if (FS_MULTI_STRG_FUNC == ENABLE) -// pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B); -//#endif - MSDCInfo.pStrgHandle[0] = (PSTRG_TAB)Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0); if (Dx_GetInfo(pStrgDev, DX_INFO_NAME, &pDxName) != DX_OK) { @@ -192,14 +182,6 @@ ER AppInit_ModeUSBMSDC(void) DBG_DUMP("handle = %lx, open = %lx, pDxName2 ===>%s, type=%lu, status=%lu\r\n", MSDCInfo.pStrgHandle[1], MSDCInfo.pStrgHandle[1]->Open, pDxName2, MSDCInfo.pStrgHandle[1]->uiStrgType, MSDCInfo.pStrgHandle[1]->uiStrgStatus); #endif -//#if (FS_MULTI_STRG_FUNC == ENABLE) -// MSDCInfo.pStrgHandle[1] = pStrgDev2; -// -// if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) { -// pDxName2 = NULL; -// } -//#endif - #if (FS_MULTI_STRG_FUNC == ENABLE) MSDCInfo.msdc_storage_detCB[0] = (MSDC_StorageDet_CB)DrvCARD_DetStrgCard; @@ -210,13 +192,6 @@ ER AppInit_ModeUSBMSDC(void) MSDCInfo.msdc_type[1] = MSDC_STRG; MSDCInfo.LUNs = 2; -// MSDCInfo.msdc_storage_detCB[0] = NULL; -// MSDCInfo.msdc_strgLock_detCB[0] = NULL; -// MSDCInfo.pStrgHandle[0] = MSDCInfo.pStrgHandle[1]; -// MSDCInfo.msdc_type[0] = MSDC_STRG; -// MSDCInfo.LUNs = 1; - - #else if (pDxName == NULL || strcmp(pDxName, "Storage_EmbMem5") == 0) { MSDCInfo.msdc_storage_detCB[0] = NULL; @@ -292,7 +267,7 @@ INT32 MSDCExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) pLastStrgDev = GxStrg_GetDevice(0); if (pLastStrgDev == 0) { - //PowerOn_CB() POWERON_CB_SXOPEN SҰFile System + //PowerOn_CB() POWERON_CB_SXOPEN �S�������Ұ�File System DBG_ERR("MSDC: Wait for FS start...\r\n"); FileSys_WaitFinish(); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c index 5bf5029c6..4fe92433c 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c @@ -95943,390 +95943,6 @@ const lv_img_dsc_t sf_list_selected = { }; -#ifndef LV_ATTRIBUTE_MEM_ALIGN -#define LV_ATTRIBUTE_MEM_ALIGN -#endif - -#ifndef LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT1 -#define LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT1 -#endif - -const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT1 uint8_t sf_list_selected_next1_map[] = { - /*Pixel format: Red: 8 bit, Green: 8 bit, Blue: 8 bit*/ -#if LV_COLOR_DEPTH == 8 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -#elif LV_COLOR_DEPTH == 16 - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, -#elif LV_COLOR_DEPTH == 24 - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, -#elif LV_COLOR_DEPTH == 32 - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, -#endif - -}; - -const lv_img_dsc_t sf_list_selected_next1 = { - .header.always_zero = 0, - .header.w = 56, - .header.h = 40, - .data_size = 2240 * LV_COLOR_SIZE / 8, -#if ((LV_COLOR_DEPTH == 32) || (LV_COLOR_DEPTH == 24)) - .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, -#else - .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, -#endif - .data = sf_list_selected_next1_map -}; - - -#ifndef LV_ATTRIBUTE_MEM_ALIGN -#define LV_ATTRIBUTE_MEM_ALIGN -#endif - -#ifndef LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT2 -#define LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT2 -#endif - -const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT2 uint8_t sf_list_selected_next2_map[] = { - /*Pixel format: Red: 8 bit, Green: 8 bit, Blue: 8 bit*/ -#if LV_COLOR_DEPTH == 8 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -#elif LV_COLOR_DEPTH == 16 - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, -#elif LV_COLOR_DEPTH == 24 - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, -#elif LV_COLOR_DEPTH == 32 - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, -#endif - -}; - -const lv_img_dsc_t sf_list_selected_next2 = { - .header.always_zero = 0, - .header.w = 56, - .header.h = 40, - .data_size = 2240 * LV_COLOR_SIZE / 8, -#if ((LV_COLOR_DEPTH == 32) || (LV_COLOR_DEPTH == 24)) - .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, -#else - .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, -#endif - .data = sf_list_selected_next2_map -}; - - #ifndef LV_ATTRIBUTE_MEM_ALIGN #define LV_ATTRIBUTE_MEM_ALIGN #endif @@ -101927,198 +101543,6 @@ const lv_img_dsc_t sf_qr = { }; -#ifndef LV_ATTRIBUTE_MEM_ALIGN -#define LV_ATTRIBUTE_MEM_ALIGN -#endif - -#ifndef LV_ATTRIBUTE_IMG_SF_QR_PAGE -#define LV_ATTRIBUTE_IMG_SF_QR_PAGE -#endif - -const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_SF_QR_PAGE uint8_t sf_qr_page_map[] = { - /*Pixel format: Red: 8 bit, Green: 8 bit, Blue: 8 bit*/ -#if LV_COLOR_DEPTH == 8 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -#elif LV_COLOR_DEPTH == 16 - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, - 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, -#elif LV_COLOR_DEPTH == 24 - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, - 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, -#elif LV_COLOR_DEPTH == 32 - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, - 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, -#endif - -}; - -const lv_img_dsc_t sf_qr_page = { - .header.always_zero = 0, - .header.w = 48, - .header.h = 40, - .data_size = 1920 * LV_COLOR_SIZE / 8, -#if ((LV_COLOR_DEPTH == 32) || (LV_COLOR_DEPTH == 24)) - .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, -#else - .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, -#endif - .data = sf_qr_page_map -}; - - #ifndef LV_ATTRIBUTE_MEM_ALIGN #define LV_ATTRIBUTE_MEM_ALIGN #endif diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_DE.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_DE.c index d85aa8471..146442ad2 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_DE.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_DE.c @@ -682,8 +682,6 @@ lv_plugin_string_t lv_plugin_DE_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_EN.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_EN.c index 3defc1f1d..8296a1963 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_EN.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_EN.c @@ -585,7 +585,7 @@ lv_plugin_string_t lv_plugin_EN_string_table[] = { { "Sensitivity", 11 }, /* LV_PLUGIN_STRING_ID_STRING_SENSITIVITY */ { "Delay", 5 }, /* LV_PLUGIN_STRING_ID_STRING_DELAY */ { "Operating Time", 14 }, /* LV_PLUGIN_STRING_ID_STRING_OPERATING_TIME */ - { "Format", 6 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD */ + { "Format SD", 9 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD */ { "Date&Time", 9 }, /* LV_PLUGIN_STRING_ID_STRING_DATE_AND_TIME */ { "Max Num/Day", 11 }, /* LV_PLUGIN_STRING_ID_STRING_MAX_NUM_DAY */ { "Settings Check", 14 }, /* LV_PLUGIN_STRING_ID_STRING_SETTINGS_CHECK */ @@ -682,8 +682,6 @@ lv_plugin_string_t lv_plugin_EN_string_table[] = { { "40M", 3 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "Enter Work Mode?", 16 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "Confirm delete?", 15 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ - { "EMMC", 4 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ - { "SD Card", 7 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_ES.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_ES.c index 28a0c207e..462adf18c 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_ES.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_ES.c @@ -682,8 +682,6 @@ lv_plugin_string_t lv_plugin_ES_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_FR.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_FR.c index 2532a6975..68f97dbad 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_FR.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_FR.c @@ -682,8 +682,6 @@ lv_plugin_string_t lv_plugin_FR_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_IT.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_IT.c index a2c00ecff..83324ea73 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_IT.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_IT.c @@ -682,8 +682,6 @@ lv_plugin_string_t lv_plugin_IT_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_JP.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_JP.c index 1cd303643..d06665454 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_JP.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_JP.c @@ -682,8 +682,6 @@ lv_plugin_string_t lv_plugin_JP_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_PO.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_PO.c index 260de90e3..457787f16 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_PO.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_PO.c @@ -682,8 +682,6 @@ lv_plugin_string_t lv_plugin_PO_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_RU.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_RU.c index 9f75910ef..2a8eb2956 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_RU.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_RU.c @@ -682,8 +682,6 @@ lv_plugin_string_t lv_plugin_RU_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_SC.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_SC.c index 54cc8a378..fd58a31fd 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_SC.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_SC.c @@ -682,8 +682,6 @@ lv_plugin_string_t lv_plugin_SC_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_TC.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_TC.c index 7ac4da87d..ce9da501d 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_TC.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_TC.c @@ -682,8 +682,6 @@ lv_plugin_string_t lv_plugin_TC_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ - { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr index 2947216da..de0cce347 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr @@ -20,7 +20,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 0, + "width": 81, "x": 10, "y": 10 }, @@ -29,7 +29,7 @@ "long mode": "Expand", "name": "label_option1", "recolor": false, - "string id": "STRID_NULL_", + "string id": "None", "styles": [ { "Text": { @@ -68,14 +68,11 @@ "state": 5 }, { - "Text": { - "text_color": "0x575757" - }, "part": 0, "state": 6 } ], - "text": "", + "text": "1080P30", "widget": "Label" }, { @@ -202,7 +199,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 0, + "width": 81, "x": 10, "y": 10 }, @@ -211,7 +208,7 @@ "long mode": "Expand", "name": "label_option2", "recolor": false, - "string id": "STRID_NULL_", + "string id": "None", "styles": [ { "Text": { @@ -247,14 +244,11 @@ "state": 5 }, { - "Text": { - "text_color": "0x575757" - }, "part": 0, "state": 6 } ], - "text": "", + "text": "1080P30", "widget": "Label" }, { @@ -381,7 +375,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 0, + "width": 81, "x": 10, "y": 10 }, @@ -390,7 +384,7 @@ "long mode": "Expand", "name": "label_option3", "recolor": false, - "string id": "STRID_NULL_", + "string id": "None", "styles": [ { "Text": { @@ -426,14 +420,11 @@ "state": 5 }, { - "Text": { - "text_color": "0x575757" - }, "part": 0, "state": 6 } ], - "text": "", + "text": "1080P30", "widget": "Label" }, { @@ -560,7 +551,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 0, + "width": 81, "x": 10, "y": 10 }, @@ -569,7 +560,7 @@ "long mode": "Expand", "name": "label_option4", "recolor": false, - "string id": "STRID_NULL_", + "string id": "None", "styles": [ { "Text": { @@ -605,14 +596,11 @@ "state": 5 }, { - "Text": { - "text_color": "0x575757" - }, "part": 0, "state": 6 } ], - "text": "", + "text": "1080P30", "widget": "Label" }, { @@ -739,7 +727,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 0, + "width": 81, "x": 10, "y": 10 }, @@ -748,7 +736,7 @@ "long mode": "Expand", "name": "label_option5", "recolor": false, - "string id": "STRID_NULL_", + "string id": "None", "styles": [ { "Text": { @@ -784,14 +772,11 @@ "state": 5 }, { - "Text": { - "text_color": "0x575757" - }, "part": 0, "state": 6 } ], - "text": "", + "text": "1080P30", "widget": "Label" }, { diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMovie.lvglscr b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMovie.lvglscr index 9aae795c2..c3f853793 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMovie.lvglscr +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMovie.lvglscr @@ -1289,7 +1289,7 @@ "height": 30, "width": 90, "x": 38, - "y": 5 + "y": 10 }, "hidden": false, "locked": false, @@ -1346,7 +1346,7 @@ "height": 40, "width": 38, "x": 0, - "y": -5 + "y": 0 }, "hidden": true, "locked": false, @@ -1820,6 +1820,58 @@ "text": "", "widget": "Label" }, + { + "auto size": true, + "class": "lv_img", + "click": false, + "drag": false, + "event callback": "", + "geometry": { + "height": 3, + "width": 320, + "x": 0, + "y": 119 + }, + "hidden": false, + "locked": false, + "name": "image_line", + "offset": { + "X": 0, + "Y": 0 + }, + "source": "sy_redline2", + "styles": [ + { + "part": 0, + "state": 0 + }, + { + "part": 0, + "state": 1 + }, + { + "part": 0, + "state": 2 + }, + { + "part": 0, + "state": 3 + }, + { + "part": 0, + "state": 4 + }, + { + "part": 0, + "state": 5 + }, + { + "part": 0, + "state": 6 + } + ], + "widget": "Image" + }, { "align": "Center", "class": "lv_label", @@ -1877,70 +1929,6 @@ ], "text": "Searching...", "widget": "Label" - }, - { - "align": "Center", - "class": "lv_label", - "click": false, - "drag": false, - "event callback": "", - "font type": "Font_Type0", - "geometry": { - "height": 2, - "width": 320, - "x": 0, - "y": 119 - }, - "hidden": false, - "locked": false, - "long mode": "Roll", - "name": "label_line", - "recolor": false, - "string id": "None", - "styles": [ - { - "Background": { - "bg_color": "0xff0000", - "bg_grad_color": "0xff0000", - "bg_opa": 255 - }, - "Text": { - "text_color": "0xff0000", - "text_font": "SF-UI-Text-Medium 16 1bpp", - "text_opa": 0, - "text_sel_bg_color": "0x00b495", - "text_sel_color": "0x3c3c3c" - }, - "part": 0, - "state": 0 - }, - { - "part": 0, - "state": 1 - }, - { - "part": 0, - "state": 2 - }, - { - "part": 0, - "state": 3 - }, - { - "part": 0, - "state": 4 - }, - { - "part": 0, - "state": 5 - }, - { - "part": 0, - "state": 6 - } - ], - "text": "", - "widget": "Label" } ] } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowPhoto.lvglscr b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowPhoto.lvglscr index 4056df4ae..7c3a31f66 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowPhoto.lvglscr +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowPhoto.lvglscr @@ -2395,38 +2395,27 @@ "widget": "Label" }, { - "align": "Center", - "class": "lv_label", + "auto size": true, + "class": "lv_img", "click": false, "drag": false, "event callback": "", - "font type": "Font_Type0", "geometry": { - "height": 2, + "height": 3, "width": 320, "x": 0, "y": 119 }, "hidden": false, "locked": false, - "long mode": "Roll", - "name": "label_line", - "recolor": false, - "string id": "None", + "name": "image_line", + "offset": { + "X": 0, + "Y": 0 + }, + "source": "sy_redline2", "styles": [ { - "Background": { - "bg_color": "0xff0000", - "bg_grad_color": "0xff0000", - "bg_opa": 255 - }, - "Text": { - "text_color": "0xff0000", - "text_font": "SF-UI-Text-Medium 16 1bpp", - "text_opa": 0, - "text_sel_bg_color": "0x00b495", - "text_sel_color": "0x3c3c3c" - }, "part": 0, "state": 0 }, @@ -2455,8 +2444,7 @@ "state": 6 } ], - "text": "", - "widget": "Label" + "widget": "Image" } ] } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvgllang b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvgllang index 79f8bbcc3..68708169e 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvgllang +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvgllang @@ -852,7 +852,7 @@ "Sensitivity", "Delay", "Operating Time", - "Format", + "Format SD", "Date&Time", "Max Num/Day", "Settings Check", @@ -948,9 +948,7 @@ "32M", "40M", "Enter Work Mode?", - "Confirm delete?", - "EMMC", - "SD Card" + "Confirm delete?" ] }, { @@ -1635,8 +1633,6 @@ "", "", "", - "", - "", "" ] }, @@ -2322,8 +2318,6 @@ "", "", "", - "", - "", "" ] }, @@ -3009,8 +3003,6 @@ "", "", "", - "", - "", "" ] }, @@ -3696,8 +3688,6 @@ "", "", "", - "", - "", "" ] }, @@ -4383,8 +4373,6 @@ "", "", "", - "", - "", "" ] }, @@ -5070,8 +5058,6 @@ "", "", "", - "", - "", "" ] }, @@ -5757,8 +5743,6 @@ "", "", "", - "", - "", "" ] }, @@ -6444,8 +6428,6 @@ "", "", "", - "", - "", "" ] }, @@ -7131,8 +7113,6 @@ "", "", "", - "", - "", "" ] } @@ -7818,8 +7798,6 @@ "STRING_SIZE_32M", "STRING_SIZE_40M", "STRING_ENTER_WORK_MODE", - "STRING_CONFIRM_DELETE", - "STRING_FORMAT_EMMC", - "STRING_FORMAT_SD_CARD" + "STRING_CONFIRM_DELETE" ] } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp index 42d91c0ae..63d0febcf 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp @@ -4672,16 +4672,6 @@ "filename": "icons/sf_list_Selected.bmp", "name": "sf_list_Selected" }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_list_Selected_next1.bmp", - "name": "sf_list_Selected_next1" - }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_list_Selected_next2.bmp", - "name": "sf_list_Selected_next2" - }, { "colorFormat": "Indexed 256 in RGB332", "filename": "icons/sf_menu_bg.bmp", @@ -4802,11 +4792,6 @@ "filename": "icons/sf_qr.bmp", "name": "sf_qr" }, - { - "colorFormat": "Indexed 256 in RGB332", - "filename": "icons/sf_qr_page.bmp", - "name": "sf_qr_page" - }, { "colorFormat": "Indexed 256 in RGB332", "filename": "icons/sf_reset.bmp", diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.c index 2d64deba0..2141d19fe 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.c @@ -1,4 +1,3 @@ -#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h" #include "UIFlowLVGL/UIFlowLVGL.h" #include "PrjInc.h" #include "ImageApp/ImageApp_Photo.h" @@ -10,7 +9,6 @@ #define UPDATE_TIMEER_MS 200 static lv_task_t* update_timer = NULL; static lv_group_t* gp = NULL; -static DISPLAY_FINAL_E gPowerOff = DISPLAY_FINAL_END; static void set_indev_keypad_group(lv_obj_t* obj) { if(gp == NULL){ @@ -39,8 +37,7 @@ static void task_update_timer_cb(lv_task_t* task) closing_index ++; if (time_ms == 0) { - printf("task_update_timer_cb gPowerOff = %d\n", gPowerOff); - Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 2, APP_POWER_OFF_APO, gPowerOff); + Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); if(update_timer){ lv_task_del(update_timer); update_timer = NULL; @@ -48,9 +45,8 @@ static void task_update_timer_cb(lv_task_t* task) } } } -void OpenClosingScreen(const DISPLAY_FINAL_E powerOff) +void OpenClosingScreen(void) { - gPowerOff = powerOff; lv_plugin_scr_open(UIFlowClose, NULL); } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h index 88535d321..c23661bc4 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h @@ -3,10 +3,5 @@ #include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h" #include "UIFlowLVGL/UIFlowLVGL.h" #include "Resource/Plugin/lvgl_plugin.h" -typedef enum { - DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF = 0, - DISPLAY_FINAL_SHOW_POWER_OFF, - DISPLAY_FINAL_END -} DISPLAY_FINAL_E; -void OpenClosingScreen(const DISPLAY_FINAL_E powerOff); +void OpenClosingScreen(void); #endif /*UIFLOW_CLOSE_EVENT_CALLBACK_H*/ \ No newline at end of file diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c index 8b3a3ac2f..0b6289f9a 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c @@ -472,8 +472,6 @@ lv_plugin_img_t lv_plugin_UIFlowLVGL_img_table[] = { &sf_image_size }, { &sf_left }, { &sf_list_selected }, - { &sf_list_selected_next1 }, - { &sf_list_selected_next2 }, { &sf_menu_bg }, { &sf_menu_option_select }, { &sf_menu_release }, @@ -498,7 +496,6 @@ lv_plugin_img_t lv_plugin_UIFlowLVGL_img_table[] = { &sf_play }, { &sf_pwd_down_up }, { &sf_qr }, - { &sf_qr_page }, { &sf_reset }, { &sf_right }, { &sf_send_type }, @@ -1348,8 +1345,6 @@ lv_plugin_res_id lv_plugin_fixed_language_string_id_table[] = { LV_PLUGIN_RES_ID_NONE, /* 679*/ LV_PLUGIN_RES_ID_NONE, /* 680*/ LV_PLUGIN_RES_ID_NONE, /* 681*/ - LV_PLUGIN_RES_ID_NONE, /* 682*/ - LV_PLUGIN_RES_ID_NONE, /* 683*/ }; lv_plugin_res_t lv_plugin_UIFlowLVGL_res = diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.h index c13cb2191..905572623 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.h @@ -518,8 +518,6 @@ LV_IMG_DECLARE(sf_green_square); LV_IMG_DECLARE(sf_image_size); LV_IMG_DECLARE(sf_left); LV_IMG_DECLARE(sf_list_selected); -LV_IMG_DECLARE(sf_list_selected_next1); -LV_IMG_DECLARE(sf_list_selected_next2); LV_IMG_DECLARE(sf_menu_bg); LV_IMG_DECLARE(sf_menu_option_select); LV_IMG_DECLARE(sf_menu_release); @@ -544,7 +542,6 @@ LV_IMG_DECLARE(sf_picture_upon_daily_report); LV_IMG_DECLARE(sf_play); LV_IMG_DECLARE(sf_pwd_down_up); LV_IMG_DECLARE(sf_qr); -LV_IMG_DECLARE(sf_qr_page); LV_IMG_DECLARE(sf_reset); LV_IMG_DECLARE(sf_right); LV_IMG_DECLARE(sf_send_type); @@ -1013,68 +1010,65 @@ LV_IMG_DECLARE(work_mode); #define LV_PLUGIN_IMG_ID_SF_IMAGE_SIZE 431 #define LV_PLUGIN_IMG_ID_SF_LEFT 432 #define LV_PLUGIN_IMG_ID_SF_LIST_SELECTED 433 -#define LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT1 434 -#define LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2 435 -#define LV_PLUGIN_IMG_ID_SF_MENU_BG 436 -#define LV_PLUGIN_IMG_ID_SF_MENU_OPTION_SELECT 437 -#define LV_PLUGIN_IMG_ID_SF_MENU_RELEASE 438 -#define LV_PLUGIN_IMG_ID_SF_MENU_SELECT 439 -#define LV_PLUGIN_IMG_ID_SF_MODE_STILL_VIDEO 440 -#define LV_PLUGIN_IMG_ID_SF_MODULE_FW_UPGRADE 441 -#define LV_PLUGIN_IMG_ID_SF_MODULE_FW_UPGRADE_DIS 442 -#define LV_PLUGIN_IMG_ID_SF_NET2G 443 -#define LV_PLUGIN_IMG_ID_SF_NET3G 444 -#define LV_PLUGIN_IMG_ID_SF_NET4G 445 -#define LV_PLUGIN_IMG_ID_SF_NEXT 446 -#define LV_PLUGIN_IMG_ID_SF_NEXT1 447 -#define LV_PLUGIN_IMG_ID_SF_NEXT2 448 -#define LV_PLUGIN_IMG_ID_SF_NEXT3 449 -#define LV_PLUGIN_IMG_ID_SF_NEXT4 450 -#define LV_PLUGIN_IMG_ID_SF_NEXT_DIS 451 -#define LV_PLUGIN_IMG_ID_SF_OFF 452 -#define LV_PLUGIN_IMG_ID_SF_ON 453 -#define LV_PLUGIN_IMG_ID_SF_OPERATING_TIME 454 -#define LV_PLUGIN_IMG_ID_SF_PASSWORD 455 -#define LV_PLUGIN_IMG_ID_SF_PICTURE_UPON_DAILY_REPORT 456 -#define LV_PLUGIN_IMG_ID_SF_PLAY 457 -#define LV_PLUGIN_IMG_ID_SF_PWD_DOWN_UP 458 -#define LV_PLUGIN_IMG_ID_SF_QR 459 -#define LV_PLUGIN_IMG_ID_SF_QR_PAGE 460 -#define LV_PLUGIN_IMG_ID_SF_RESET 461 -#define LV_PLUGIN_IMG_ID_SF_RIGHT 462 -#define LV_PLUGIN_IMG_ID_SF_SEND_TYPE 463 -#define LV_PLUGIN_IMG_ID_SF_SEND_TYPE_DIS 464 -#define LV_PLUGIN_IMG_ID_SF_SENSITVITY 465 -#define LV_PLUGIN_IMG_ID_SF_SHOOT_1 466 -#define LV_PLUGIN_IMG_ID_SF_SIGNAL0 467 -#define LV_PLUGIN_IMG_ID_SF_SIGNAL1 468 -#define LV_PLUGIN_IMG_ID_SF_SIGNAL2 469 -#define LV_PLUGIN_IMG_ID_SF_SIGNAL3 470 -#define LV_PLUGIN_IMG_ID_SF_SIGNAL4 471 -#define LV_PLUGIN_IMG_ID_SF_SMS_CTRL 472 -#define LV_PLUGIN_IMG_ID_SF_STOP 473 -#define LV_PLUGIN_IMG_ID_SF_TAB_RELEASE 474 -#define LV_PLUGIN_IMG_ID_SF_TAB_SELECT 475 -#define LV_PLUGIN_IMG_ID_SF_VIDEO_LENGTH 476 -#define LV_PLUGIN_IMG_ID_SF_VIDEO_SIZE 477 -#define LV_PLUGIN_IMG_ID_SF_WARNING_BG 478 -#define LV_PLUGIN_IMG_ID_SF_WARNING_NOT_SELECT 479 -#define LV_PLUGIN_IMG_ID_SF_WARNING_SELECTED 480 -#define LV_PLUGIN_IMG_ID_SF_WIFI_CONNECTED 481 -#define LV_PLUGIN_IMG_ID_SF_WIFI_UNCONNECTED 482 -#define LV_PLUGIN_IMG_ID_SF_WIFI_UNSUPPORT 483 -#define LV_PLUGIN_IMG_ID_SY_BG_102X28 484 -#define LV_PLUGIN_IMG_ID_SY_BG_32X28 485 -#define LV_PLUGIN_IMG_ID_SY_BG_40X28 486 -#define LV_PLUGIN_IMG_ID_SY_BG_MSG 487 -#define LV_PLUGIN_IMG_ID_SY_BG_MSG2 488 -#define LV_PLUGIN_IMG_ID_SY_LANYA2 489 -#define LV_PLUGIN_IMG_ID_SY_LUZHI 490 -#define LV_PLUGIN_IMG_ID_SY_REDLINE 491 -#define LV_PLUGIN_IMG_ID_SY_REDLINE2 492 -#define LV_PLUGIN_IMG_ID_SY_WIFI2 493 -#define LV_PLUGIN_IMG_ID_WORK_MODE 494 -#define LV_PLUGIN_IMG_TABLE_SIZE 495 +#define LV_PLUGIN_IMG_ID_SF_MENU_BG 434 +#define LV_PLUGIN_IMG_ID_SF_MENU_OPTION_SELECT 435 +#define LV_PLUGIN_IMG_ID_SF_MENU_RELEASE 436 +#define LV_PLUGIN_IMG_ID_SF_MENU_SELECT 437 +#define LV_PLUGIN_IMG_ID_SF_MODE_STILL_VIDEO 438 +#define LV_PLUGIN_IMG_ID_SF_MODULE_FW_UPGRADE 439 +#define LV_PLUGIN_IMG_ID_SF_MODULE_FW_UPGRADE_DIS 440 +#define LV_PLUGIN_IMG_ID_SF_NET2G 441 +#define LV_PLUGIN_IMG_ID_SF_NET3G 442 +#define LV_PLUGIN_IMG_ID_SF_NET4G 443 +#define LV_PLUGIN_IMG_ID_SF_NEXT 444 +#define LV_PLUGIN_IMG_ID_SF_NEXT1 445 +#define LV_PLUGIN_IMG_ID_SF_NEXT2 446 +#define LV_PLUGIN_IMG_ID_SF_NEXT3 447 +#define LV_PLUGIN_IMG_ID_SF_NEXT4 448 +#define LV_PLUGIN_IMG_ID_SF_NEXT_DIS 449 +#define LV_PLUGIN_IMG_ID_SF_OFF 450 +#define LV_PLUGIN_IMG_ID_SF_ON 451 +#define LV_PLUGIN_IMG_ID_SF_OPERATING_TIME 452 +#define LV_PLUGIN_IMG_ID_SF_PASSWORD 453 +#define LV_PLUGIN_IMG_ID_SF_PICTURE_UPON_DAILY_REPORT 454 +#define LV_PLUGIN_IMG_ID_SF_PLAY 455 +#define LV_PLUGIN_IMG_ID_SF_PWD_DOWN_UP 456 +#define LV_PLUGIN_IMG_ID_SF_QR 457 +#define LV_PLUGIN_IMG_ID_SF_RESET 458 +#define LV_PLUGIN_IMG_ID_SF_RIGHT 459 +#define LV_PLUGIN_IMG_ID_SF_SEND_TYPE 460 +#define LV_PLUGIN_IMG_ID_SF_SEND_TYPE_DIS 461 +#define LV_PLUGIN_IMG_ID_SF_SENSITVITY 462 +#define LV_PLUGIN_IMG_ID_SF_SHOOT_1 463 +#define LV_PLUGIN_IMG_ID_SF_SIGNAL0 464 +#define LV_PLUGIN_IMG_ID_SF_SIGNAL1 465 +#define LV_PLUGIN_IMG_ID_SF_SIGNAL2 466 +#define LV_PLUGIN_IMG_ID_SF_SIGNAL3 467 +#define LV_PLUGIN_IMG_ID_SF_SIGNAL4 468 +#define LV_PLUGIN_IMG_ID_SF_SMS_CTRL 469 +#define LV_PLUGIN_IMG_ID_SF_STOP 470 +#define LV_PLUGIN_IMG_ID_SF_TAB_RELEASE 471 +#define LV_PLUGIN_IMG_ID_SF_TAB_SELECT 472 +#define LV_PLUGIN_IMG_ID_SF_VIDEO_LENGTH 473 +#define LV_PLUGIN_IMG_ID_SF_VIDEO_SIZE 474 +#define LV_PLUGIN_IMG_ID_SF_WARNING_BG 475 +#define LV_PLUGIN_IMG_ID_SF_WARNING_NOT_SELECT 476 +#define LV_PLUGIN_IMG_ID_SF_WARNING_SELECTED 477 +#define LV_PLUGIN_IMG_ID_SF_WIFI_CONNECTED 478 +#define LV_PLUGIN_IMG_ID_SF_WIFI_UNCONNECTED 479 +#define LV_PLUGIN_IMG_ID_SF_WIFI_UNSUPPORT 480 +#define LV_PLUGIN_IMG_ID_SY_BG_102X28 481 +#define LV_PLUGIN_IMG_ID_SY_BG_32X28 482 +#define LV_PLUGIN_IMG_ID_SY_BG_40X28 483 +#define LV_PLUGIN_IMG_ID_SY_BG_MSG 484 +#define LV_PLUGIN_IMG_ID_SY_BG_MSG2 485 +#define LV_PLUGIN_IMG_ID_SY_LANYA2 486 +#define LV_PLUGIN_IMG_ID_SY_LUZHI 487 +#define LV_PLUGIN_IMG_ID_SY_REDLINE 488 +#define LV_PLUGIN_IMG_ID_SY_REDLINE2 489 +#define LV_PLUGIN_IMG_ID_SY_WIFI2 490 +#define LV_PLUGIN_IMG_ID_WORK_MODE 491 +#define LV_PLUGIN_IMG_TABLE_SIZE 492 #define LV_PLUGIN_FONT_ID_LV_FONT_MONTSERRAT_16 1 #define LV_PLUGIN_FONT_ID_NOTOSANSCJKSC_BLACK_16_1BPP 2 @@ -1776,9 +1770,7 @@ LV_IMG_DECLARE(work_mode); #define LV_PLUGIN_STRING_ID_STRING_SIZE_40M 679 #define LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE 680 #define LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE 681 -#define LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC 682 -#define LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD 683 -#define LV_PLUGIN_STRING_TABLE_SIZE 684 +#define LV_PLUGIN_STRING_TABLE_SIZE 682 #define LV_PLUGIN_LANGUAGE_ID_EN 1 #define LV_PLUGIN_LANGUAGE_ID_FR 2 diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmEventCallback.c index 2cfaecd40..7c5d01aad 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmEventCallback.c @@ -1,5 +1,4 @@ #include "PrjInc.h" -#include "UIApp/Background/UIBackgroundObj.h" #include "UIFlowLVGL/UIFlowLVGL.h" #include "UIApp/Play/UIPlayComm.h" #include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h" @@ -302,11 +301,6 @@ void UIFlowMenuCommonConfirmAPI_Open(uint32_t itemID) gBKGEvt = NVTEVT_BKW_FORMAT_CARD; lv_label_set_text(Confirm_label, "Format SD"); break; - case IDM_FORMAT_EMMC: - strID = LV_PLUGIN_STRING_ID_STRING_FORMAT_SD; - gBKGEvt = NVTEVT_BKW_FORMAT_EMMC; - lv_label_set_text(Confirm_label, "Format EMMC"); - break; case IDM_CAMERA_FW_UPGRADE: strID = LV_PLUGIN_STRING_ID_STRING_CAMERA_FW_UPGRADE; gBKGEvt = NVTEVT_BKW_CAMERA_FW_UPGRADE; @@ -507,10 +501,6 @@ static void UIFlowMenuCommonConfirm_MessageBox_ValueChanged(lv_obj_t* obj, uint3 set_msbox_hidden( true); UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRING_NO_SD, 3000); } - } else if (gBKGEvt == NVTEVT_BKW_FORMAT_EMMC) { - set_msbox_hidden( true); - UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRING_FORMATING, 20000); - BKG_PostEvent(NVTEVT_BKW_FORMAT_EMMC); } else if (gBKGEvt == NVTEVT_BKW_CAMERA_FW_UPGRADE) { if(sf_cardv_battery_value_get() < 40) { @@ -541,7 +531,7 @@ static void UIFlowMenuCommonConfirm_MessageBox_ValueChanged(lv_obj_t* obj, uint3 BKG_PostEvent(gBKGEvt); } else if (gBKGEvt == NVTEVT_BKW_ENTER_WORK_MODE) { - OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); + OpenClosingScreen(); // BKG_PostEvent(gBKGEvt); // UIFlowMenuCommonConfirm_CloseScr(); } else if (gBKGEvt) { diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c index 6ce0b775d..6247c0f37 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c @@ -55,8 +55,7 @@ TMDEF_OPTION_TEXT_S(OPERATING_TIME_OFF, TM_OPTION_ENABLE) TMDEF_OPTION_TEXT_S(OPERATING_TIME_ON, TM_OPTION_ENABLE) TMDEF_END_OPTIONS() TMDEF_BEGIN_OPTIONS(FORMAT_SD) -TMDEF_OPTION_TEXT_S(FORMAT_SD_EMMC, TM_OPTION_ENABLE) -TMDEF_OPTION_TEXT_S(FORMAT_SD_CARD, TM_OPTION_ENABLE) +TMDEF_OPTION_TEXT_S(END, TM_OPTION_ENABLE) TMDEF_END_OPTIONS() TMDEF_BEGIN_OPTIONS(DATE_AND_TIME) TMDEF_OPTION_TEXT_S(DATE_AND_TIME_AUTO_UTC, TM_OPTION_ENABLE) @@ -1046,36 +1045,7 @@ void Option_Operating_Time_Key(lv_obj_t* obj, uint32_t key) break; } } -UINT16 sf_get_month_days(UINT16 year, UINT16 month) -{ - UINT16 maxday = 0; - - printf("sf_get_month_days year=%d, month=%d\n", year, month); - - switch(month) - { - case 4: - case 6: - case 9: - case 11: - maxday = 30; - break; - case 2: - if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) - maxday = 29; - else - maxday = 28; - break; - default: - maxday = 31; - break; - } - - printf("maxday=%d\n", maxday); - - return maxday; -} // -------------------------------------------------------------------------- // DateTime // -------------------------------------------------------------------------- @@ -1114,10 +1084,7 @@ static void update_DateTime_Time_msg(lv_obj_t* obj) DBG_ERR("DateTime component is not initialized"); return; } - if (gDateTime.Day > sf_get_month_days(gDateTime.Year, gDateTime.Mon)) - { - gDateTime.Day = sf_get_month_days(gDateTime.Year, gDateTime.Mon); - } + // UIMenuStoreInfo *puiPara = sf_ui_para_get(); snprintf(DateTimeMOBuf, 3, "%02d", gDateTime.Mon); snprintf(DateTimeDDBuf, 3, "%02d", gDateTime.Day); @@ -1275,10 +1242,10 @@ void Option_DateTime_Key(lv_obj_t* obj, uint32_t key) } else if(DateTimeIndex == 2) { - if(gDateTime.Day > 1 && gDateTime.Day <= sf_get_month_days(gDateTime.Year, gDateTime.Mon)) + if(gDateTime.Day > 1 && gDateTime.Day <= 31) gDateTime.Day--; else - gDateTime.Day = sf_get_month_days(gDateTime.Year, gDateTime.Mon); + gDateTime.Day = 31; } else if(DateTimeIndex == 4) { @@ -1320,7 +1287,7 @@ void Option_DateTime_Key(lv_obj_t* obj, uint32_t key) } else if(DateTimeIndex == 2) { - if(gDateTime.Day >= sf_get_month_days(gDateTime.Year, gDateTime.Mon)) + if(gDateTime.Day >= 31) gDateTime.Day = 1; else gDateTime.Day++; @@ -1393,10 +1360,10 @@ void Option_DateTime_Key_Long_Press(lv_obj_t* obj, uint32_t key) } else if(DateTimeIndex == 2) { - if(gDateTime.Day > 0 && gDateTime.Day <= sf_get_month_days(gDateTime.Year, gDateTime.Mon)) + if(gDateTime.Day > 0 && gDateTime.Day <= 31) gDateTime.Day--; else - gDateTime.Day = sf_get_month_days(gDateTime.Year, gDateTime.Mon); + gDateTime.Day = 31; } else if(DateTimeIndex == 4) { @@ -1438,7 +1405,7 @@ void Option_DateTime_Key_Long_Press(lv_obj_t* obj, uint32_t key) } else if(DateTimeIndex == 2) { - if(gDateTime.Day >= sf_get_month_days(gDateTime.Year, gDateTime.Mon)) + if(gDateTime.Day >= 31) gDateTime.Day = 0; else gDateTime.Day++; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h index 7d58dceae..84f774395 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h @@ -121,7 +121,6 @@ enum _MENU_ID { IDM_DELAY, IDM_OPERATING_TIME, IDM_FORMAT_SD, - IDM_FORMAT_EMMC, IDM_DATE_AND_TIME, // Setting Send page @@ -713,8 +712,6 @@ enum _MENU_IDS { IDS_OPERATING_TIME_OFF = LV_PLUGIN_STRING_ID_STRID_OFF, IDS_OPERATING_TIME_ON = LV_PLUGIN_STRING_ID_STRID_ON, IDS_FORMAT_SD = LV_PLUGIN_STRING_ID_STRING_FORMAT_SD, - IDS_FORMAT_SD_EMMC = LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC, - IDS_FORMAT_SD_CARD = LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD, IDS_DATE_AND_TIME = LV_PLUGIN_STRING_ID_STRING_DATE_AND_TIME, IDS_DATE_AND_TIME_AUTO_UTC = LV_PLUGIN_STRING_ID_STRING_AUTO_UTC, IDS_DATE_AND_TIME_MANUAL = LV_PLUGIN_STRING_ID_STRING_MANUAL, diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c index 1c8d09f13..966c1ce16 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c @@ -367,7 +367,7 @@ static void update_Network_Selection_msg(lv_obj_t* obj) static void network_scan_task_end(void) { - if(NULL != network_scan_task) + if(network_scan_task) { lv_task_del(network_scan_task); network_scan_task = NULL; @@ -380,9 +380,9 @@ static void network_scan_task_cb(lv_task_t* task) int fd = -1; int BuffLen; unsigned char Buff[1024] = { 0 }; - + lv_obj_t* obj = (lv_obj_t*)task->user_data; - printf("[%s]Check simcard...\n", __FUNCTION__); + if(Countdown) { printf("[%s]Countdown:%d\n", __FUNCTION__, Countdown); @@ -399,6 +399,7 @@ static void network_scan_task_cb(lv_task_t* task) return; } } + if(sf_cardv_4G_status_get() == SF_4G_SEARCHING) { printf("[%s]Searching...\n", __FUNCTION__); @@ -550,17 +551,15 @@ void show_Network_Selection_page(lv_obj_t* obj, lv_obj_t* menu_obj) plabel = lv_label_create(obj, NULL); lv_label_set_long_mode(plabel, LV_LABEL_LONG_BREAK); - //lv_label_set_align(plabel, LV_LABEL_ALIGN_CENTER); + // lv_label_set_align(plabel, LV_LABEL_ALIGN_CENTER); lv_label_set_text(plabel, ""); - lv_obj_set_pos(plabel, 32, 67); + lv_obj_set_pos(plabel, 32, 55); lv_obj_set_width(plabel, 256); lv_obj_add_style(plabel, 0, &gMatrixStylebtn); - lv_task_t tas = {0,0,NULL,NULL,0,3}; - Countdown = 0; - network_scan_task_cb(&tas); + if(network_scan_task == NULL){ Countdown = 0; - network_scan_task = lv_task_create(network_scan_task_cb, 1000, LV_TASK_PRIO_HIGHEST, (void*)obj); + network_scan_task = lv_task_create(network_scan_task_cb, 1000, LV_TASK_PRIO_MID, (void*)obj); } } @@ -571,7 +570,7 @@ void hidde_Network_Selection_page(void) pMenu = NULL; - if(NULL != plabel) + if(plabel) { lv_obj_del(plabel); plabel = NULL; @@ -647,170 +646,60 @@ void Option_Network_Selection_Key(lv_obj_t* obj, uint32_t key) char *qr_code_str = "{\"imei\":\"%s\",\"verizonICCID\":\"%s\",\"attICCID\":\"%s\",\"isEsim\":%s}"; static lv_obj_t *qr = NULL; static lv_obj_t *label = NULL; -static lv_obj_t *labelInit = NULL; -static lv_obj_t* QRImage = NULL; -static lv_obj_t *qr_info_msgbox = NULL; -static lv_task_t* qr_page_task = NULL; - -static void qr_page_task_cb(lv_task_t* task){ - lv_obj_t* obj = (lv_obj_t*)task->user_data; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - - #define QR_DATA_LENGTH 1024 - char qr_date[QR_DATA_LENGTH] = {0}; - if(sf_cardv_get_sim_insert() == 0){ - lv_label_set_text(labelInit, "Please insert the SIM card and restart the camera"); - } - else if(sf_cardv_4G_status_get() == SF_4G_SEARCHING) - { - lv_label_set_text(labelInit, "\nQR code loading..."); - } - else if (sf_cardv_get_is_esim() == 1) - { - snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidV, puiPara->SimIccidA, "true"); - if(obj){ - /*Create a 100x100 QR code*/ - qr = lv_qrcode_create(obj, 120, (lv_color_t) { .full = 0x02}, (lv_color_t) { .full = 0x23}); - if(qr) - { - /*Set data*/ - lv_obj_set_hidden(qr_info_msgbox, true); - lv_qrcode_update(qr, qr_date, strlen(qr_date)); - lv_obj_set_pos(qr, 32, 70); - lv_obj_set_hidden(QRImage, false); - lv_obj_set_pos(label, 180, 80); - lv_obj_set_size(label, 130, 70); - lv_label_set_text(labelInit, ""); - lv_label_set_text(label, "Add Camera to Tactacam APP"); - } - } - } - else if (sf_cardv_get_is_esim() == 0) - { - snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidA, puiPara->SimIccidA, "false"); - lv_label_set_text(labelInit, "\nPlease restart the camera"); - } -} - -static void qr_page_task_end(void) -{ - if(NULL != qr_page_task) - { - lv_task_del(qr_page_task); - qr_page_task = NULL; - } -} - void show_qr_picture_page(lv_obj_t* obj) { - init_Matrix_style(); // lv_color_t colorDrak = {0}; // lv_color_t colorLight = {0}; - + UIMenuStoreInfo *puiPara = sf_ui_para_get(); // const char *data = "https://github.com/topics/littlevgl"; +#define QR_DATA_LENGTH 1024 + char qr_date[QR_DATA_LENGTH] = {0}; + if (sf_cardv_get_is_esim() == 1) + { + snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidV, puiPara->SimIccidA, "true"); + } + // else if (sf_cardv_get_is_esim() == 0) + // { + // snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidA, puiPara->SimIccidA, "false"); + // } + else + { + snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidA, puiPara->SimIccidA, "false"); + } - //text qr page - label = lv_label_create(obj, NULL); - lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK); - lv_label_set_text(label, ""); - lv_obj_set_pos(label, 180, 70); - lv_obj_set_size(label, 130, 60); + if(obj){ - static lv_style_t labelStyle; + /*Create a 100x100 QR code*/ + qr = lv_qrcode_create(obj, 120, (lv_color_t) { .full = 0x02}, (lv_color_t) { .full = 0x23}); + + if(qr){ + /*Set data*/ + lv_qrcode_update(qr, qr_date, strlen(qr_date)); + lv_obj_set_pos(qr, 32, 70); + } + } + lv_color_t color = {0}; + static lv_style_t labelStyle; lv_style_init(&labelStyle); - lv_color_t color = {0}; - STYLE_COLOR_PROP(0xff, 0xff, 0xff, 0xff); - lv_style_set_text_color(&labelStyle, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0xff, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&labelStyle, LV_STATE_DEFAULT, color); lv_style_set_text_font(&labelStyle,LV_STATE_DEFAULT,&sf_ui_text_medium_16_1bpp); + label = lv_label_create(obj, NULL); + lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK); + lv_label_set_text(label, "Add Camera to Tactacam App"); + lv_obj_set_pos(label, 180, 78); + lv_obj_set_size(label, 110, 63); lv_obj_add_style(label, 0, &labelStyle); - - //text qr msgbox - qr_info_msgbox = lv_btn_create(obj, button_msg_bg_scr_uiflowwrnmsg); - lv_obj_set_hidden(qr_info_msgbox, false); - labelInit = lv_label_create(qr_info_msgbox, label_msg_scr_uiflowwrnmsg); - lv_obj_align(labelInit, qr_info_msgbox, LV_ALIGN_CENTER, 0, -30); - lv_label_set_align(labelInit, LV_LABEL_ALIGN_CENTER); - lv_obj_add_style(labelInit, 0, &gMatrixStylebtn); - if(sf_cardv_get_sim_insert() == 0){ - lv_label_set_text(labelInit, "Please insert the SIM card and restart the camera"); - } - else{ - lv_label_set_text(labelInit, "\nQR code loading..."); - } - - - //icon - QRImage = lv_img_create(obj, NULL); - lv_obj_set_hidden(QRImage, true); - lv_obj_set_click(QRImage, false); - lv_obj_set_drag(QRImage, false); - lv_obj_set_pos(QRImage, 207, 122); - lv_obj_set_size(QRImage, 32, 32); - lv_img_set_src(QRImage, &sf_qr_page); - - if(qr_page_task == NULL){ - qr_page_task = lv_task_create(qr_page_task_cb, 1000, LV_TASK_PRIO_HIGHEST, (void*)obj); - } } - - void hidde_qr_picture_page(void) { - qr_page_task_end(); - - printf("[hidde_qr_picture_page]hidde qr page\n"); if(NULL != qr) { lv_qrcode_delete(qr); - qr = NULL; } - if(NULL != label) + if(label) { lv_obj_del(label); - label = NULL; } - if(NULL != labelInit) - { - lv_obj_del(labelInit); - labelInit = NULL; - } - if(NULL != QRImage) - { - lv_obj_del(QRImage); - QRImage = NULL; - } - if(NULL != qr_info_msgbox){ - lv_obj_del(qr_info_msgbox); - qr_info_msgbox = NULL; - } -} - -void Option_qr_picture_Key(lv_obj_t* obj, uint32_t key) -{ - printf("[%s]key:%d\n", __FUNCTION__, key); - - switch(key) - { - case LV_USER_KEY_NEXT: - - break; - case LV_USER_KEY_PREV: - - break; - case LV_USER_KEY_LEFT: - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); - hidde_qr_picture_page(); - break; - case LV_USER_KEY_RIGHT: - - break; - case LV_KEY_ENTER: - lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); - hidde_qr_picture_page(); - break; - default: - break; - } } // -------------------------------------------------------------------------- @@ -1130,7 +1019,7 @@ void show_Camera_Info_page(lv_obj_t* obj) init_Matrix_style(); - btnm = lv_btnmatrix_create(obj, NULL); + btnm = lv_btnmatrix_create(lv_scr_act(), NULL); lv_btnmatrix_set_map(btnm, map); lv_obj_add_style(btnm, 0, &gMatrixStylebg); lv_obj_add_style(btnm, 1, &gMatrixStylebtn); @@ -1139,7 +1028,7 @@ void show_Camera_Info_page(lv_obj_t* obj) lv_btnmatrix_set_btn_ctrl_all(btnm, LV_BTNMATRIX_CTRL_CHECKABLE); lv_btnmatrix_set_focused_btn(btnm, 0); - CameraInfoImage = lv_img_create(obj, NULL); + CameraInfoImage = lv_img_create(lv_scr_act(), NULL); lv_obj_set_hidden(CameraInfoImage, false); lv_obj_set_click(CameraInfoImage, false); lv_obj_set_drag(CameraInfoImage, false); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h index d2fcdd04d..af8aa5c88 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h @@ -16,7 +16,6 @@ extern void show_Camera_Name_page(lv_obj_t* obj); extern void hidde_Camera_Name_page(void); extern void Option_Network_Selection_Key(lv_obj_t* obj, uint32_t key); -extern void Option_qr_picture_Key(lv_obj_t* obj, uint32_t key); extern void Option_Password_Key(lv_obj_t* obj, uint32_t key); extern void Option_Password_Key_Long_Press(lv_obj_t* obj, uint32_t key); extern void Option_CAMERA_INFO_Key(lv_obj_t* obj, uint32_t key); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c index 553ec3484..cce29470d 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c @@ -75,7 +75,6 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) { puiPara->GprsMode = uwOption; #define INSTANT_OPTION 1 - #define HYBIRD_OPTION 2 if (INSTANT_OPTION == puiPara->GprsMode && SF_OFF == puiPara->PirDelaySwitch) { puiPara->PirDelaySwitch = SF_ON; @@ -84,41 +83,28 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) puiPara->PirDelayTime.Sec = 15; } printf("\033[33m[Send_MenuCallback]GprsMode:%d\033[0m\n", puiPara->GprsMode); - if (INSTANT_OPTION == puiPara->GprsMode || HYBIRD_OPTION == puiPara->GprsMode) - { - #define SYNC_SEND_TYPE_SETTING 0 - uwOption = SYNC_SEND_TYPE_SETTING; - printf("Sync send type settings.\n"); - memset(&(puiPara->TimeSend1), 0, sizeof(SF_PARA_TIME_S)); - memset(&(puiPara->TimeSend2), 0, sizeof(SF_PARA_TIME_S)); - memset(&(puiPara->TimeSend3), 0, sizeof(SF_PARA_TIME_S)); - memset(&(puiPara->TimeSend4), 0, sizeof(SF_PARA_TIME_S)); - } - else - { - break; - } + break; } case IDM_SEND_TYPE: { - puiPara->SendType = (uwOption == 3 ? 4 : uwOption); + puiPara->SendType = uwOption; puiPara->TimeSend4Switch = 0; puiPara->TimeSend3Switch = 0; puiPara->TimeSend2Switch = 0; puiPara->TimeSend1Switch = 0; - switch (puiPara->SendType) + switch (uwOption) { case FOUR_TIME_DAY: puiPara->TimeSend4Switch = 1; - puiPara->TimeSend3Switch = 1; // break; case TWICE_DAY: - puiPara->TimeSend2Switch = 1; + puiPara->TimeSend3Switch = 1; // break; case ONCE_DAY: - puiPara->TimeSend1Switch = 1; + puiPara->TimeSend2Switch = 1; // break; default: + puiPara->TimeSend1Switch = 1; break; } printf("\033[33m[Send_MenuCallback]SendType:%d\033[0m\n", puiPara->SendType); @@ -133,8 +119,8 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) case IDM_GPS: { #define GPRS_OFF_OPTION 0 - puiPara->GpsSwitch = (GPRS_OFF_OPTION == uwOption ? SF_OFF : SF_ON); - printf("\033[33m[Send_MenuCallback]GpsSwitch:%d\033[0m\n", puiPara->GpsSwitch); + puiPara->GprsSwitch = (GPRS_OFF_OPTION == uwOption ? SF_OFF : SF_ON); + printf("\033[33m[Send_MenuCallback]GprsSwitch:%d\033[0m\n", puiPara->GprsSwitch); break; } default: @@ -312,7 +298,6 @@ static void init_Matrix_style(void) } -static lv_obj_t* SelectedImage = NULL; // -------------------------------------------------------------------------- // MaxNum // -------------------------------------------------------------------------- @@ -339,17 +324,10 @@ void show_MaxNum_page(lv_obj_t* obj) sprintf(result, "%02d", puiPara->SendMaxNum); MaxNumValueLabel = lv_label_create(obj, NULL); lv_obj_set_pos(MaxNumValueLabel, 145, 93); - lv_obj_set_size(MaxNumValueLabel, 32, 24); + lv_obj_set_size(MaxNumValueLabel, 30, 24); lv_obj_add_style(MaxNumValueLabel, 0, &gMatrixStylebtn); - lv_obj_set_state(MaxNumValueLabel, LV_STATE_FOCUSED); + lv_obj_set_state(MaxNumValueLabel, LV_STATE_DEFAULT); lv_label_set_text(MaxNumValueLabel, result); - SelectedImage = lv_img_create(obj, NULL); - lv_obj_set_hidden(SelectedImage, false); - lv_obj_set_click(SelectedImage, false); - lv_obj_set_drag(SelectedImage, false); - lv_obj_set_size(SelectedImage, 32, 88); - lv_img_set_src(SelectedImage, &sf_pwd_down_up); - lv_obj_set_pos(SelectedImage, 145, 62); } void hidde_MaxNum_page(void) @@ -357,17 +335,10 @@ void hidde_MaxNum_page(void) if(MaxNumTitleLabel) { lv_obj_del(MaxNumTitleLabel); - MaxNumTitleLabel = NULL; } if(MaxNumValueLabel) { lv_obj_del(MaxNumValueLabel); - MaxNumValueLabel = NULL; - } - if(SelectedImage) - { - lv_obj_del(SelectedImage); - SelectedImage = NULL; } } @@ -391,7 +362,7 @@ void Option_MaxNum_Key(lv_obj_t* obj, uint32_t key) puiPara->SendMaxNum--; else puiPara->SendMaxNum = 99; - sprintf(result, "%02d", puiPara->SendMaxNum); + sprintf(result, "%d", puiPara->SendMaxNum); lv_label_set_text(MaxNumValueLabel, result); break; case LV_USER_KEY_PREV: @@ -400,7 +371,7 @@ void Option_MaxNum_Key(lv_obj_t* obj, uint32_t key) puiPara->SendMaxNum++; else puiPara->SendMaxNum = 1; - sprintf(result, "%02d", puiPara->SendMaxNum); + sprintf(result, "%d", puiPara->SendMaxNum); lv_label_set_text(MaxNumValueLabel, result); break; case LV_USER_KEY_LEFT: @@ -465,6 +436,7 @@ static const char* SendTimeMap_1[BUTTON_NUM_4] = // static int CameraInfoIndex = 0; // static lv_obj_t *CameraInfolabel = NULL; static lv_obj_t *SendTypeImage = NULL; +static lv_obj_t* SelectedImage = NULL; static lv_obj_t * btnm = NULL; static const char * map[] = {"1", "2", ""}; @@ -513,13 +485,13 @@ void show_send_time_page(lv_obj_t* obj, const int sendType) gMatrixIndex = 0; SendTimeIndex_0 = 0; SendTimeIndex_1 = 0; - #define OPTION_3 3 - gSendType = sendType == OPTION_3 ? FOUR_TIME_DAY : sendType; + gSendType = sendType; gPageNum = FIRST_PAGE; unsigned short settingIndex = gPageNum * 2; SendTimeMatrixObj_1 = NULL; SendTimeMatrixObj_0 = NULL; btnm = NULL; + SelectedImage = NULL; init_Matrix_style(); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h index 331bc4e85..233ea450e 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h @@ -7,8 +7,8 @@ extern TM_ITEM gTM_ITEMS_SEND[]; enum SendType { ONCE_DAY = 1, - TWICE_DAY = 2, - FOUR_TIME_DAY = 4, + TWICE_DAY, + FOUR_TIME_DAY, END }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c index db0102798..329172162 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c @@ -174,9 +174,9 @@ static void load_info_from_sf(void) SysSetFlag(IDF_DATE_AND_TIME, puiPara->DateAuto == SF_DATE_AUTO ? OPTION_0 : OPTION_1); SysSetFlag(IDF_MAX_NUM_DAY, puiPara->SendMaxNum == 0 ? OPTION_0 : OPTION_1); SysSetFlag(IDF_SETTINGS_CHECK, puiPara->GprsMode); - SysSetFlag(IDF_SEND_TYPE, (puiPara->SendType == 4 ? 3 : puiPara->SendType)); + SysSetFlag(IDF_SEND_TYPE, puiPara->SendType); SysSetFlag(IDF_CHECK_IN_PHOTO, puiPara->PicUpDailyReport); - SysSetFlag(IDF_GPS, puiPara->GpsSwitch); + SysSetFlag(IDF_GPS, puiPara->GprsSwitch); SysSetFlag(IDF_BATTERY_TYPE, puiPara->BatteryType); SysSetFlag(IDF_SD_LOOP, puiPara->SdLoopSwitch); } @@ -214,9 +214,8 @@ static void LV_MenuItem_OnPrev(lv_obj_t* obj) TM_PAGE *pPage; TM_ITEM *pItem; BOOL uSel_Jump = false; - + pPage = &pMenu->pPages[pMenu->SelPage]; - // pItem = &pPage->pItems[pPage->SelItem]; if (pMenu->Status == TMS_ON_TAB){ if(pPage->SelItem == 0){ // DBG_WRN("already foucs on tab !"); @@ -228,10 +227,6 @@ static void LV_MenuItem_OnPrev(lv_obj_t* obj) } }else{ OneMore: - // pItem = &pPage->pItems[pPage->SelItem - 1]; - // if(((pItem->ItemId == IDM_BATTERY_TYPE) && 0)){ - // pPage->SelItem = 0; - // } //if item = 0; up key foucs to tab if(pPage->SelItem == 0){ pMenu->Status = TMS_ON_TAB; @@ -241,6 +236,8 @@ static void LV_MenuItem_OnPrev(lv_obj_t* obj) } pPage->SelItem--; pItem = &pPage->pItems[pPage->SelItem]; + // BOOL uItem_Locked = true; // TODO: + // if(((pItem->ItemId == IDM_CAMERA_FW_UPGRADE) || (pItem->ItemId == IDM_MODULE_FW_UPGRADE)) && uItem_Locked){ if((pItem->ItemId == IDM_CAMERA_FW_UPGRADE && is_camera_fw_upgrade() == NOT_UPGRADABLE) || (pItem->ItemId == IDM_MODULE_FW_UPGRADE && is_module_fw_upgrade() == NOT_UPGRADABLE) || (pItem->ItemId == IDM_SEND_TYPE && is_send_type_disabel() == SEND_TYPE_DISABLE)) { @@ -263,28 +260,20 @@ static void LV_MenuItem_OnNext(lv_obj_t* obj) TM_PAGE *pPage; TM_ITEM *pItem; BOOL uSel_Jump = false; - // static BOOL FisrtSel_Jump = false; pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - +// DBG_DUMP("\r\n %s pMenu Status= %d\r\n", __func__, pMenu->Status); if (pMenu->Status == TMS_ON_TAB){ - pMenu->Status = TMS_ON_ITEM; - pPage->SelItem = 0; - // pMenu->Status = TMS_ON_ITEM; - // if(((pItem->ItemId == IDM_BATTERY_TYPE) && 0)){ - // pPage->SelItem = 1; - // FisrtSel_Jump = true; - // }else{ - // pPage->SelItem = 0; - // } + pMenu->Status = TMS_ON_ITEM; + pPage->SelItem = 0; LV_MenuCommonItem_UpdateContent(pMenu); lv_plugin_menu_select_item(menu_item, 0); - // lv_plugin_menu_select_item(menu_item, pPage->SelItem); }else{ Onetime: pPage->SelItem++; pItem = &pPage->pItems[pPage->SelItem]; + // BOOL uItem_Locked = true; // TODO: + // if(((pItem->ItemId == IDM_CAMERA_FW_UPGRADE) || (pItem->ItemId == IDM_MODULE_FW_UPGRADE)) && uItem_Locked){ if((pItem->ItemId == IDM_CAMERA_FW_UPGRADE && is_camera_fw_upgrade() == NOT_UPGRADABLE) || (pItem->ItemId == IDM_MODULE_FW_UPGRADE && is_module_fw_upgrade() == NOT_UPGRADABLE) || (pItem->ItemId == IDM_SEND_TYPE && is_send_type_disabel() == SEND_TYPE_DISABLE)){ @@ -295,20 +284,14 @@ static void LV_MenuItem_OnNext(lv_obj_t* obj) if(pPage->SelItem >= pPage->Count){ pPage->SelItem = 0; - // if(FisrtSel_Jump /**&& uItem_Locked**/){ - // pPage->SelItem = 1; - // }else{ - // pPage->SelItem = 0; - // } LV_MenuCommonItem_UpdateContent(pMenu); lv_plugin_menu_select_item(menu_item, pPage->SelItem); return; - } + } //#NT#2023/11/03#Eric - begin //#NT#Support IVOT_N12144_CO-148 -5 PrevSel_Img = false; //#NT#2023/11/03#Eric - end - LV_MenuCommonItem_UpdateContent(pMenu); lv_plugin_menu_select_next_item(menu_item); if(uSel_Jump){ @@ -724,11 +707,6 @@ static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu) lv_plugin_menu_set_item_state(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_SF_SEND_TYPE_DIS); } - else if (pItem->ItemId == IDM_BATTERY_TYPE && 0) - { - lv_plugin_menu_set_item_state(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_SF_SEND_TYPE_DIS); - } else { lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); } @@ -744,11 +722,7 @@ static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu) if(((pPage->SelItem%PER_PAGE_NUM) == 0)&&(pMenu->Status == TMS_ON_ITEM)){ lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT2); }else{ - if(pItem->ItemId == IDM_BATTERY_TYPE && 0){ - lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT_DIS); - } else { - lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT1); - } + lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT1); } //#NT#2023/11/03#Eric - end if(pItem->ItemId == IDM_NETWORK_SELECTION) @@ -826,10 +800,7 @@ static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu) } } //#NT#2023/11/03#Eric - end - if(pItem->ItemId == IDM_FORMAT_SD) - lv_plugin_label_set_text(label_option_4_scr_uiflowmenucommonitem, IDS_END); - else - lv_plugin_label_set_text(label_option_4_scr_uiflowmenucommonitem, pOption->TextId); + lv_plugin_label_set_text(label_option_4_scr_uiflowmenucommonitem, pOption->TextId); lv_plugin_label_update_font(label_option_4_scr_uiflowmenucommonitem, LV_OBJ_PART_MAIN); lv_obj_set_hidden(container_option_4_scr_uiflowmenucommonitem, false); }else if(i == 4){ @@ -964,33 +935,28 @@ static void UIFlowMenuCommonItem_Key(lv_obj_t* obj, uint32_t key) printf("[UIFlowMenuCommonItem_Key]key: %d\n",key); - switch(key) { case LV_USER_KEY_UP: - case LV_USER_KEY_DOWN: { - //printf("[UIFlowMenuCommonItem_Key]error input\n",key); + printf("[UIFlowMenuCommonItem_Key]error input\n",key); } case LV_USER_KEY_NEXT: { - //printf("[UIFlowMenuCommonItem_Key]>>>DOWN\n"); LV_MenuItem_OnNext(obj); break; } case LV_USER_KEY_PREV: { - //printf("[UIFlowMenuCommonItem_Key]>>>UP\n"); LV_MenuItem_OnPrev(obj); break; } case LV_KEY_LEFT: { - //printf("[UIFlowMenuCommonItem_Key]>>>LEFT\n"); load_info_from_sf(); LV_MenuItem_OnUp(obj); break; @@ -998,7 +964,6 @@ static void UIFlowMenuCommonItem_Key(lv_obj_t* obj, uint32_t key) case LV_KEY_RIGHT: { - //printf("[UIFlowMenuCommonItem_Key]>>>RIGHT\n"); load_info_from_sf(); LV_MenuItem_OnDown(obj); break; @@ -1043,9 +1008,6 @@ static void UIFlowMenuCommonItem_ScrClose(lv_obj_t* obj) Save_MenuInfo(); LV_MenuItem_OnClose(obj); gMenuLuck = MENU_CLOSED; - #if HUNTING_CAMERA_MCU == ENABLE - sf_set_menu_open(FALSE); - #endif } @@ -1056,7 +1018,6 @@ static void UIFlowMenuCommonItem_ChildScrClose(lv_obj_t* obj,const LV_USER_EVENT set_indev_keypad_group(obj); if(msg){ if(msg->event == NVTRET_ENTER_MENU){ - load_info_from_sf(); TM_MENU* pMenu = TM_GetMenu(); TM_PAGE *pPage; // TM_ITEM *pItem; @@ -1071,6 +1032,9 @@ static void UIFlowMenuCommonItem_ChildScrClose(lv_obj_t* obj,const LV_USER_EVENT } gMenuLuck = MENU_UNLUCK; + #if HUNTING_CAMERA_MCU == ENABLE + sf_set_menu_open(FALSE); + #endif } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c index 24303ae2c..af4b2037e 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c @@ -256,7 +256,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option1_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option1_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option1_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option1 = lv_label_create(image_button_option_1, NULL); @@ -264,11 +264,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option1, false); lv_obj_set_drag(label_option1, false); lv_plugin_label_allocate_ext_attr(label_option1); - lv_plugin_label_set_text(label_option1, LV_PLUGIN_STRING_ID_STRID_NULL_); + lv_label_set_text(label_option1,"1080P30"); lv_plugin_label_allocate_ext_attr(label_option1); lv_plugin_label_set_font_type(label_option1, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option1, 10, 10); - lv_obj_set_size(label_option1, 0, 22); + lv_obj_set_size(label_option1, 81, 22); lv_obj_add_style(label_option1, 0, &label_option1_s0); label_option1_scr_uiflowmenucommonoption = label_option1; @@ -419,7 +419,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option2_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option2_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option2_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option2 = lv_label_create(image_button_option_2, NULL); @@ -427,11 +427,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option2, false); lv_obj_set_drag(label_option2, false); lv_plugin_label_allocate_ext_attr(label_option2); - lv_plugin_label_set_text(label_option2, LV_PLUGIN_STRING_ID_STRID_NULL_); + lv_label_set_text(label_option2,"1080P30"); lv_plugin_label_allocate_ext_attr(label_option2); lv_plugin_label_set_font_type(label_option2, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option2, 10, 10); - lv_obj_set_size(label_option2, 0, 22); + lv_obj_set_size(label_option2, 81, 22); lv_obj_add_style(label_option2, 0, &label_option2_s0); label_option2_scr_uiflowmenucommonoption = label_option2; @@ -582,7 +582,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option3_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option3_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option3_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option3 = lv_label_create(image_button_option_3, NULL); @@ -590,11 +590,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option3, false); lv_obj_set_drag(label_option3, false); lv_plugin_label_allocate_ext_attr(label_option3); - lv_plugin_label_set_text(label_option3, LV_PLUGIN_STRING_ID_STRID_NULL_); + lv_label_set_text(label_option3,"1080P30"); lv_plugin_label_allocate_ext_attr(label_option3); lv_plugin_label_set_font_type(label_option3, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option3, 10, 10); - lv_obj_set_size(label_option3, 0, 22); + lv_obj_set_size(label_option3, 81, 22); lv_obj_add_style(label_option3, 0, &label_option3_s0); label_option3_scr_uiflowmenucommonoption = label_option3; @@ -745,7 +745,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option4_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option4_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option4_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option4 = lv_label_create(image_button_option_4, NULL); @@ -753,11 +753,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option4, false); lv_obj_set_drag(label_option4, false); lv_plugin_label_allocate_ext_attr(label_option4); - lv_plugin_label_set_text(label_option4, LV_PLUGIN_STRING_ID_STRID_NULL_); + lv_label_set_text(label_option4,"1080P30"); lv_plugin_label_allocate_ext_attr(label_option4); lv_plugin_label_set_font_type(label_option4, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option4, 10, 10); - lv_obj_set_size(label_option4, 0, 22); + lv_obj_set_size(label_option4, 81, 22); lv_obj_add_style(label_option4, 0, &label_option4_s0); label_option4_scr_uiflowmenucommonoption = label_option4; @@ -908,7 +908,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option5_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option5_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option5_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option5 = lv_label_create(image_button_option_5, NULL); @@ -916,11 +916,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option5, false); lv_obj_set_drag(label_option5, false); lv_plugin_label_allocate_ext_attr(label_option5); - lv_plugin_label_set_text(label_option5, LV_PLUGIN_STRING_ID_STRID_NULL_); + lv_label_set_text(label_option5,"1080P30"); lv_plugin_label_allocate_ext_attr(label_option5); lv_plugin_label_set_font_type(label_option5, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option5, 10, 10); - lv_obj_set_size(label_option5, 0, 22); + lv_obj_set_size(label_option5, 81, 22); lv_obj_add_style(label_option5, 0, &label_option5_s0); label_option5_scr_uiflowmenucommonoption = label_option5; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c index 1c39ef231..874fb5998 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c @@ -26,7 +26,7 @@ static int isSetting = 0; //static TM_MENU *g_pOptionMenu = 0; UINT16 PrevOption = 0; -UINT16 s_SelOption = 100; +UINT16 s_SelOption = 0; UINT16 OptionEN_Num = 0; UINT16 enableIndex[30] = {}; @@ -150,7 +150,6 @@ static int is_message_item(lv_obj_t* obj) case IDM_OPERATING_TIME: break; case IDM_FORMAT_SD: - break; { printf("[is_message_item]IDM_FORMAT_SD\n"); UIFlowMenuCommonConfirmAPI_Open(itemID); @@ -217,13 +216,12 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) UINT32 i; // UINT16 startIndex = 0; UINT16 itemIndex = 0; - UINT16 itemIconId = 0; #if 1 UINT16 SelOption = 0; UINT32 Selindex = 0; BOOL ui_hidden = true; #endif - UIMenuStoreInfo *puiPara = sf_ui_para_get(); + pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; #if 0 @@ -356,436 +354,32 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) lv_plugin_menu_set_item_hidden(menu_option, i, true); ui_hidden = true; }else{ - itemIconId = pOption->IconId; - ui_hidden = true; printf("\033[33m[LV_MenuCommonOption_UpdateContent] 3 \033[0m\n"); lv_plugin_menu_set_item_string_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); - - printf("[LV_MenuCommonOption_UpdateContent]s_SelOption: %d\n", s_SelOption); - if (IDM_FORMAT_SD == pItem->ItemId) { - if (0 == SelOption && i == 0) { - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ - lv_obj_set_pos(image_option1_scr_uiflowmenucommonoption, 272, 0); - ui_hidden = false; - } else if (1 == SelOption && i == 1) { - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); - ui_hidden = false; - } else if (0 == SelOption && i == 1) { - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//> - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); - ui_hidden = false; - } else if (1 == SelOption && i == 0) { - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//> - lv_obj_set_pos(image_option1_scr_uiflowmenucommonoption, 288, 0); - ui_hidden = false; - } - } else if (s_SelOption == 100){//first init page add select icon - if (enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption) - { - s_SelOption = i + (Selindex * OPTION_PAGE_NUM); - switch (pItem->ItemId) { - case IDM_DELAY:{} - case IDM_OPERATING_TIME:{} - case IDM_DATE_AND_TIME:{} - case IDM_MAX_NUM_DAY:{} - case IDM_PASSWORD:{} - case IDM_CAMERA_NAME: - { - if (i == 1) - { - printf("[LV_MenuCommonOption_UpdateContent]first init black > √\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); - } - else{ - printf("[LV_MenuCommonOption_UpdateContent]first init √\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); - } - break; - } - case IDM_SEND_TYPE:{ - if(i == 1) - { - printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE black > √\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); - } - else if (i == 2) - { - printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE black > √\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 259, 0); - } - else if (i == 3) - { - printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE black > √\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 259, 0); - } - break; - } - default: - { - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ - if(i == 1) - { - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); - } - else if (i == 2) - { - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 272, 0); - } - else if (i == 3) - { - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 272, 0); - } - - - } - } - ui_hidden = false; - } - else if (enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption && i == 1) - { - printf("[LV_MenuCommonOption_UpdateContent]first init white >\n"); - switch (pItem->ItemId) { - case IDM_DELAY:{} - case IDM_OPERATING_TIME:{} - case IDM_DATE_AND_TIME:{} - case IDM_MAX_NUM_DAY:{} - case IDM_PASSWORD:{} - case IDM_SEND_TYPE:{} - case IDM_CAMERA_NAME: - { - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); - ui_hidden = false; - break; - } - } - - } - else if(enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption && i > 1) - { - if (pItem->ItemId == IDM_SEND_TYPE) - { - printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE white >\n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > - if (i == 2) - { - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 288, 0); - } - else if (i == 3) - { - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 288, 0); - } - ui_hidden = false; - } - } - - if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption < 3) - { - if (puiPara->BatteryType == SF_BATT_LI_PACK){ - printf("[LV_MenuCommonOption_UpdateContent]first init change battery to lith\n"); - if (i < 1) - { - lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - if (i < 2) - { - lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - if (i < 3) - { - lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); - ui_hidden = true; - lv_plugin_menu_select_item(menu_option, 3); - s_SelOption = 3; - SelOption = 3; - SysSetFlag(pItem->SysFlag,3); - } - else - { - printf("[LV_MenuCommonOption_UpdateContent]first init is not lith\n"); - lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - - } - else if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption == 3) - { - if (puiPara->BatteryType == SF_BATT_LI_PACK) - { - printf("[LV_MenuCommonOption_UpdateContent]first init and is lith\n"); - if (i < 1) - { - lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - if (i < 2) - { - lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - if (i < 3) - { - lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); - } - else - { - printf("[LV_MenuCommonOption_UpdateContent]first init change battery\n"); - lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - ui_hidden = true; - lv_plugin_menu_select_item(menu_option, 0); - s_SelOption = 0; - SelOption = 0; - SysSetFlag(pItem->SysFlag,0); - lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, true); - } - - } - } - else{ - if (pItem->ItemId == IDM_SEND_TYPE){ - if (i == s_SelOption) - { - switch(i) - { - case 1: - { - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); - break; - } - case 2: - { - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 259, 0); - break; - } - case 3: - { - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 259, 0); - break; - } - default: - { - break; - } - } - - if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption) - { - printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add black √ > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - } - else if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption) - { - printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add white √ > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT1;//white > √ - } - ui_hidden = false; - } - else{ - switch(i) - { - case 1: - { - printf("[LV_MenuCommonOption_UpdateContent]set 1 option \n"); - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); - break; - } - case 2: - { - printf("[LV_MenuCommonOption_UpdateContent]set 2 option \n"); - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 288, 0); - break; - } - case 3: - { - printf("[LV_MenuCommonOption_UpdateContent]set 3 option \n"); - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 288, 0); - break; - } - default: - { - break; - } - } - if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption) - { - printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add black > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT2;//black > - ui_hidden = false; - } - else if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption) - { - printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add white > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > - ui_hidden = false; - } - } - } - else if (i == 1) - { - //printf("[LV_MenuCommonOption_UpdateContent] add > icon\n"); - switch (pItem->ItemId) { - case IDM_DELAY:{} - case IDM_OPERATING_TIME:{} - case IDM_DATE_AND_TIME:{} - case IDM_MAX_NUM_DAY:{} - case IDM_PASSWORD:{} - case IDM_CAMERA_NAME: - { - if (s_SelOption == 0 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ - printf("[LV_MenuCommonOption_UpdateContent] add black > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT2;//black > - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); - } - else if (s_SelOption == 0 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption){ - printf("[LV_MenuCommonOption_UpdateContent] add white > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); - } - else if (s_SelOption == 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ - printf("[LV_MenuCommonOption_UpdateContent] add black √ > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); - } - else{ - printf("[LV_MenuCommonOption_UpdateContent] add white √ > \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT1;//white > √ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); - } - ui_hidden = false; - break; - } - default: - { - printf("[LV_MenuCommonOption_UpdateContent] add √ \n"); - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ - lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); - if (s_SelOption == 1) - { - ui_hidden = false; - } - break; - } - } - - } - else if (i == s_SelOption) - { - itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ - if (i == 2) - { - lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 272, 0); - } - else if (i == 3) - { - lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 272, 0); - } - ui_hidden = false; - } - - if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption < 3) - { - - if (puiPara->BatteryType == SF_BATT_LI_PACK){ - if (i < 1) - { - lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - if (i < 2) - { - lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - if (i < 3) - { - lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); - ui_hidden = true; - lv_plugin_menu_select_item(menu_option, 3); - s_SelOption = 3; - SelOption = 3; - SysSetFlag(pItem->SysFlag,3); - } - else - { - printf("[LV_MenuCommonOption_UpdateContent]is not lith\n"); - lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - - } - else if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption == 3) - { - - if (puiPara->BatteryType == SF_BATT_LI_PACK) - { - printf("[LV_MenuCommonOption_UpdateContent]is lith\n"); - if (i < 1) - { - lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - if (i < 2) - { - lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - if (i < 3) - { - lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); - lv_plugin_menu_select_item(menu_option, 3); - } - else - { - printf("[LV_MenuCommonOption_UpdateContent]change battery\n"); - lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - ui_hidden = true; - lv_plugin_menu_select_item(menu_option, 0); - s_SelOption = 0; - SelOption = 0; - SysSetFlag(pItem->SysFlag,0); - lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, true); - } - - } - } - - - lv_plugin_menu_set_item_img_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, itemIconId); + lv_plugin_menu_set_item_img_id(menu_option, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED, pOption->IconId); lv_plugin_menu_set_item_hidden(menu_option, i, false); - - if (enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ + ui_hidden = true; + if(enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ + printf("\033[33m[LV_MenuCommonOption_UpdateContent] 4 %d %d \033[0m\n", i, Selindex); + s_SelOption = i + (Selindex * OPTION_PAGE_NUM); lv_plugin_menu_select_item(menu_option, i); + ui_hidden = false; } - } - - DBG_DUMP("%s ui_hidden %d=%d\r\n", __func__,i,ui_hidden); - if (i==0) - { + + DBG_DUMP("%s ui_hidden=%d\r\n", __func__,ui_hidden); + if(i==0){ lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, ui_hidden); - } - else if (i == 1) - { + }else if(i == 1){ lv_obj_set_hidden(image_option2_scr_uiflowmenucommonoption, ui_hidden); - } - else if (i == 2) - { + }else if(i == 2){ lv_obj_set_hidden(image_option3_scr_uiflowmenucommonoption, ui_hidden); - } - else if (i == 3) - { + }else if(i == 3){ lv_obj_set_hidden(image_option4_scr_uiflowmenucommonoption, ui_hidden); - } - else if (i == 4) - { + }else if(i == 4){ lv_obj_set_hidden(image_option5_scr_uiflowmenucommonoption, ui_hidden); } + } #else itemIndex = PAGE * (1 + (SelOption / PAGE)); @@ -834,7 +428,6 @@ static void LV_MenuOption_OnOpen(lv_obj_t* obj, TM_MENU *data) TM_ITEM* pItem; //TM_OPTION *pOption; UINT16 SelOption = 0; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; // pPage->SelItem = 0; @@ -869,18 +462,7 @@ static void LV_MenuOption_OnOpen(lv_obj_t* obj, TM_MENU *data) // lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); // } LV_MenuCommonOption_UpdateContent(pMenu); - if (pItem->ItemId == IDM_BATTERY_TYPE) - { - if(puiPara->BatteryType == SF_BATT_LI_PACK) - { - lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - else{ - lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - } + lv_plugin_menu_select_item(menu_option, SelOption); } @@ -891,7 +473,6 @@ static void LV_MenuOption_OnNext(lv_obj_t* obj) TM_PAGE *pPage; TM_ITEM *pItem; UINT16 SelOption = 0; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; @@ -900,40 +481,18 @@ static void LV_MenuOption_OnNext(lv_obj_t* obj) // DBG_DUMP("%s SelItem=%d\r\n", __func__,pPage->SelItem); // DBG_DUMP("%s Count=%d\r\n", __func__,pItem->Count); // DBG_DUMP("%s SelOption=%d\r\n", __func__,SelOption); - - SelOption++; - if (pItem->ItemId == IDM_BATTERY_TYPE) - { - if(puiPara->BatteryType == SF_BATT_LI_PACK) - { - SelOption = 3; - SysSetFlag(pItem->SysFlag, SelOption); - lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - else{ - if (SelOption >= 3) - { - SelOption = 0; - } - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); - lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - return; - } + SelOption++; if (SelOption >= pItem->Count){ // Close current UI Window now //SysSetFlag(pItem->SysFlag, PrevOption); //lv_plugin_scr_close(obj, NULL); SelOption = 0; -// lv_plugin_menu_select_item(menu_option, SelOption); + SysSetFlag(pItem->SysFlag, SelOption); + lv_plugin_menu_select_item(menu_option, SelOption); }else{ -// lv_plugin_menu_select_next_item(menu_option); + SysSetFlag(pItem->SysFlag, SelOption); + lv_plugin_menu_select_next_item(menu_option); } - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); // DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); } @@ -943,50 +502,23 @@ static void LV_MenuOption_OnPrev(lv_obj_t* obj) TM_PAGE *pPage; TM_ITEM *pItem; UINT16 SelOption = 0; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; SelOption = SysGetFlag(pItem->SysFlag); - - if (pItem->ItemId == IDM_BATTERY_TYPE) - { - if(puiPara->BatteryType == SF_BATT_LI_PACK) - { - SelOption = 3; - SysSetFlag(pItem->SysFlag, SelOption); - lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - else{ - if (SelOption == 0) - { - SelOption = (pItem->Count - 2); - } - else - { - SelOption--; - } - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); - lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); - } - return; - } - if (SelOption == 0) { // Close current UI Window now //SysSetFlag(pItem->SysFlag, PrevOption); //lv_plugin_scr_close(obj, NULL); SelOption = (pItem->Count - 1); -// lv_plugin_menu_select_item(menu_option, SelOption); + SysSetFlag(pItem->SysFlag, SelOption); + lv_plugin_menu_select_item(menu_option, SelOption); } else { SelOption--; -// lv_plugin_menu_select_prev_item(menu_option); + SysSetFlag(pItem->SysFlag, SelOption); +// LV_MenuCommonOption_UpdateContent(pMenu); + lv_plugin_menu_select_prev_item(menu_option); } - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); // DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); } @@ -1070,15 +602,13 @@ static void LV_MenuOption_OnSelected(lv_obj_t* obj) pItem->ItemId == IDM_OPERATING_TIME || pItem->ItemId == IDM_DATE_AND_TIME || pItem->ItemId == IDM_MAX_NUM_DAY || - pItem->ItemId == IDM_SEND_TYPE || - pItem->ItemId == IDM_FORMAT_SD) + pItem->ItemId == IDM_SEND_TYPE) && (pOption->TextId == IDS_CAMERA_NAME_ON || pOption->TextId == IDS_DATE_AND_TIME_MANUAL || pOption->TextId == IDS_SEND_TYPE_ONCE_DAY || pOption->TextId == IDS_SEND_TYPE_TWICE_DAY || pOption->TextId == IDS_SEND_TYPE_4_TIMES_DAY || - pOption->TextId == IDS_MAX_NUM_DAY_NUMBER || - pItem->ItemId == IDM_FORMAT_SD)) + pOption->TextId == IDS_MAX_NUM_DAY_NUMBER)) { lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); isSetting = 1; @@ -1103,22 +633,8 @@ static void LV_MenuOption_OnSelected(lv_obj_t* obj) show_MaxNum_page(obj); break; case IDM_SEND_TYPE: - show_send_time_page(obj, SelOption); - break; - case IDM_FORMAT_SD: - if (0 == SelOption) - { - printf("format emmc.\n"); - UIFlowMenuCommonConfirmAPI_Open(IDM_FORMAT_EMMC); - break; - } - if (1 == SelOption) - { - printf("format sd card.\n"); - UIFlowMenuCommonConfirmAPI_Open(IDM_FORMAT_SD); - break; - } - break; + show_send_time_page(obj, SelOption); + break; default: break; } @@ -1280,7 +796,7 @@ static void CommondOptionCloseSencondPage(lv_obj_t* obj, uint32_t* key) pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; UINT16 itemID = pItem->ItemId; - printf("\033[33m[CommondOptionCloseSencondPage]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); + printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); /* handle key event */ switch(itemID) { @@ -1344,7 +860,6 @@ static void CommondOptionCloseSencondPage(lv_obj_t* obj, uint32_t* key) } break; case IDM_FORMAT_SD: - break; case IDM_DATE_AND_TIME: if(isSetting) { @@ -1402,49 +917,15 @@ static void CommondOptionKeyCallback(lv_obj_t* obj, uint32_t* key) pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; UINT16 itemID = pItem->ItemId; - printf("\033[33m[CommondOptionKeyCallback]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); + printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); /* handle key event */ - switch(*key) - { - case LV_USER_KEY_NEXT: - case LV_USER_KEY_DOWN: - { - //printf("[CommondOptionKeyCallback]>>>DOWN\n"); - break; - } - - case LV_USER_KEY_PREV: - case LV_USER_KEY_UP: - { - //printf("[CommondOptionKeyCallback]>>>UP\n"); - break; - } - - case LV_KEY_LEFT: - { - //printf("[CommondOptionKeyCallback]>>>LEFT\n"); - break; - } - - case LV_KEY_RIGHT: - { - //printf("[CommondOptionKeyCallback]>>>RIGHT\n"); - break; - } - case LV_KEY_ENTER: - { - //printf("[CommondOptionKeyCallback]>>>ENTER\n"); - break; - } - } - switch(itemID) { case IDM_NETWORK_SELECTION: Option_Network_Selection_Key(obj, *key); break; case IDM_QR_PICTURE: - Option_qr_picture_Key(obj, *key); + UIFlowMenuCommonOption_Key(obj, *key); break; case IDM_PASSWORD: if(isSetting) @@ -1500,8 +981,6 @@ static void CommondOptionKeyCallback(lv_obj_t* obj, uint32_t* key) } break; case IDM_FORMAT_SD: - UIFlowMenuCommonOption_Key(obj, *key); - break; case IDM_DATE_AND_TIME: if(isSetting) { @@ -1575,7 +1054,6 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event) uint32_t key = LV_KEY_ENTER; CommondOptionCloseSencondPage(obj, &key); isSetting = 0; - s_SelOption = 100; UIFlowMenuCommonOption_ScrClose(obj); break; } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.c index 6420fd164..b0898b075 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.c @@ -42,8 +42,8 @@ lv_obj_t* image_wifi_scr_uiflowmovie; lv_obj_t* image_motiondetect_scr_uiflowmovie; lv_obj_t* label_zoom_scr_uiflowmovie; lv_obj_t* label_maxtime_scr_uiflowmovie; +lv_obj_t* image_line_scr_uiflowmovie; lv_obj_t* label_sim_scr_uiflowmovie; -lv_obj_t* label_line_scr_uiflowmovie; lv_obj_t* UIFlowMovie_create(){ lv_obj_t *parent = lv_plugin_scr_create(); @@ -1285,7 +1285,7 @@ lv_obj_t* UIFlowMovie_create(){ lv_plugin_label_allocate_ext_attr(label_rec_time); lv_plugin_label_set_font_type(label_rec_time, LV_PLUGIN_LANGUAGE_FONT_TYPE_0); lv_label_set_long_mode(label_rec_time, LV_LABEL_LONG_CROP); - lv_obj_set_pos(label_rec_time, 38, 5); + lv_obj_set_pos(label_rec_time, 38, 10); lv_obj_set_size(label_rec_time, 90, 30); lv_obj_add_style(label_rec_time, 0, &label_rec_time_s0); @@ -1333,7 +1333,7 @@ lv_obj_t* UIFlowMovie_create(){ lv_obj_set_hidden(image_rec_ellipse, true); lv_obj_set_click(image_rec_ellipse, false); lv_obj_set_drag(image_rec_ellipse, false); - lv_obj_set_pos(image_rec_ellipse, 0, -5); + lv_obj_set_pos(image_rec_ellipse, 0, 0); lv_obj_set_size(image_rec_ellipse, 38, 40); lv_img_set_src(image_rec_ellipse, &sy_luzhi); lv_obj_add_style(image_rec_ellipse, 0, &image_rec_ellipse_s0); @@ -1770,6 +1770,55 @@ lv_obj_t* UIFlowMovie_create(){ label_maxtime_scr_uiflowmovie = label_maxtime; + static lv_style_t image_line_s0; + lv_style_init(&image_line_s0); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_DISABLED, color); + lv_obj_t *image_line = lv_img_create(parent, NULL); + lv_obj_set_hidden(image_line, false); + lv_obj_set_click(image_line, false); + lv_obj_set_drag(image_line, false); + lv_obj_set_pos(image_line, 0, 119); + lv_obj_set_size(image_line, 320, 3); + lv_img_set_src(image_line, &sy_redline2); + lv_obj_add_style(image_line, 0, &image_line_s0); + + image_line_scr_uiflowmovie = image_line; + + static lv_style_t label_sim_s0; lv_style_init(&label_sim_s0); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_sim_s0, LV_STATE_DEFAULT, color); @@ -1832,68 +1881,5 @@ lv_obj_t* UIFlowMovie_create(){ label_sim_scr_uiflowmovie = label_sim; - static lv_style_t label_line_s0; - lv_style_init(&label_line_s0); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_DEFAULT, color); - lv_style_set_bg_opa(&label_line_s0,LV_STATE_DEFAULT,255); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_DEFAULT, color); - lv_style_set_text_opa(&label_line_s0,LV_STATE_DEFAULT,0); - lv_style_set_text_font(&label_line_s0,LV_STATE_DEFAULT,&sf_ui_text_medium_16_1bpp); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_DISABLED, color); - lv_obj_t *label_line = lv_label_create(parent, NULL); - lv_obj_set_hidden(label_line, false); - lv_obj_set_click(label_line, false); - lv_obj_set_drag(label_line, false); - lv_plugin_label_allocate_ext_attr(label_line); - lv_plugin_label_allocate_ext_attr(label_line); - lv_plugin_label_set_font_type(label_line, LV_PLUGIN_LANGUAGE_FONT_TYPE_0); - lv_label_set_align(label_line, LV_LABEL_ALIGN_CENTER); - lv_label_set_long_mode(label_line, LV_LABEL_LONG_SROLL); - lv_obj_set_pos(label_line, 0, 119); - lv_obj_set_size(label_line, 320, 2); - lv_obj_add_style(label_line, 0, &label_line_s0); - - label_line_scr_uiflowmovie = label_line; - - return parent; } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.h index b0b3b2320..5411e5245 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.h @@ -50,8 +50,8 @@ extern lv_obj_t* image_wifi_scr_uiflowmovie; extern lv_obj_t* image_motiondetect_scr_uiflowmovie; extern lv_obj_t* label_zoom_scr_uiflowmovie; extern lv_obj_t* label_maxtime_scr_uiflowmovie; +extern lv_obj_t* image_line_scr_uiflowmovie; extern lv_obj_t* label_sim_scr_uiflowmovie; -extern lv_obj_t* label_line_scr_uiflowmovie; /********************** * GLOBAL PROTOTYPES diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c index 71338921e..380c689db 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c @@ -256,12 +256,12 @@ static void signal_icon_show(const short signal) } static void update_4g_module_icon(void) { - //UIMenuStoreInfo *puiPara = sf_ui_para_get(); + UIMenuStoreInfo *puiPara = sf_ui_para_get(); static short signal = SIGNAL_NOT_YET_GET; static short searching_index = -1; short signal_new = sf_cardv_get_cq_signal(); unsigned short signal_level = 0; - network_signal_level_get(sf_get_net_generation(), signal_new, &signal_level); + network_signal_level_get(puiPara->NetGeneration, signal_new, &signal_level); // printf("new signal = %d, old signal = %d\n", signal_new, signal); if(SIGNAL_NOT_YET_GET == signal_new) { @@ -294,20 +294,20 @@ const int EMPTY_IMAGE = 0; LV_PLUGIN_IMG_ID_SF_NET3G, LV_PLUGIN_IMG_ID_SF_NET4G }; -// printf("NetGeneration:%d\n", sf_get_net_generation()); +// printf("NetGeneration:%d\n", puiPara->NetGeneration); const int SIM_CARD_NOT_INIT = 0; const int NET_GENERATION_2G = 2; // const int NET_GENERATION_3G = 3; const int NET_GENERATION_4G = 4; // puiPara->NetGeneration = NET_GENERATION_4G; // Test - if (SIM_CARD_NOT_INIT == sf_get_net_generation() - || sf_get_net_generation() < NET_GENERATION_2G - || sf_get_net_generation() > NET_GENERATION_4G) + if (SIM_CARD_NOT_INIT == puiPara->NetGeneration + || puiPara->NetGeneration < NET_GENERATION_2G + || puiPara->NetGeneration > NET_GENERATION_4G) { lv_obj_set_hidden(image_4g_scr_uiflowmovie, true); return; } - int index = sf_get_net_generation(); + int index = puiPara->NetGeneration; lv_obj_set_hidden(image_4g_scr_uiflowmovie, false); lv_plugin_img_set_src(image_4g_scr_uiflowmovie, res[index]); } @@ -397,7 +397,7 @@ static void update_rec_time(void) lv_obj_set_hidden(label_maxtime_scr_uiflowmovie,true); } - lv_label_set_text_fmt(label_rec_time_scr_uiflowmovie, "%02d:%02d:%02d", rec_sec / 3600, (rec_sec % 3600) / 60, (rec_sec % 3600) % 60 + 1); + lv_label_set_text_fmt(label_rec_time_scr_uiflowmovie, "%02d:%02d:%02d", rec_sec / 3600, (rec_sec % 3600) / 60, (rec_sec % 3600) % 60); } static void update_wifi(void) @@ -707,9 +707,9 @@ static void UIFlowMovie_ScrOpen(lv_obj_t* obj) { DBG_DUMP("%s\r\n", __func__); - // #if HUNTING_CAMERA_MCU == ENABLE - // UIMenuStoreInfo *puiPara = sf_ui_para_get(); - // #endif + #if HUNTING_CAMERA_MCU == ENABLE + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + #endif set_indev_keypad_group(obj); @@ -765,7 +765,7 @@ static void UIFlowMovie_ScrOpen(lv_obj_t* obj) } //#NT#2018/08/10#KCHong -end #if HUNTING_CAMERA_MCU == ENABLE - if(sf_get_cammode_statu() == SF_CAM_MODE_PHOTO_VIDEO || sf_get_cammode_statu() == SF_CAM_MODE_VIDEO2) + if(puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO || puiPara->CamMode == SF_CAM_MODE_VIDEO2) #else if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO) #endif @@ -1391,9 +1391,9 @@ void UIFlowMovie_KeyRelease(lv_obj_t* obj, uint32_t key) static void UIFlowMovie_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) { -// #if HUNTING_CAMERA_MCU == ENABLE -// UIMenuStoreInfo *puiPara = sf_ui_para_get(); -// #endif +#if HUNTING_CAMERA_MCU == ENABLE + UIMenuStoreInfo *puiPara = sf_ui_para_get(); +#endif switch(msg->event) { @@ -1414,24 +1414,23 @@ static void UIFlowMovie_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* m UIFlowMovie_REC_FINISH(obj,msg); #if HUNTING_CAMERA_MCU == ENABLE - if(sf_get_cammode_statu() == SF_CAM_MODE_PHOTO_VIDEO || sf_get_cammode_statu() == SF_CAM_MODE_VIDEO2){ - sf_set_phone_shot_status(PHONE_SHOT_STOP); + if(puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO || puiPara->CamMode == SF_CAM_MODE_VIDEO2){ if(sf_get_mode_flag()) { sf_wifi_server_stop_shoot_respond(0); } #else - if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO){ + if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO){ #endif - - int iCurrMode = System_GetState(SYS_STATE_CURRMODE); - int iNextMode = PRIMARY_MODE_PHOTO; - UI_SetData(FL_PreMode, iCurrMode); - UI_SetData(FL_NextMode, iNextMode); - Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode); - } + + int iCurrMode = System_GetState(SYS_STATE_CURRMODE); + int iNextMode = PRIMARY_MODE_PHOTO; + UI_SetData(FL_PreMode, iCurrMode); + UI_SetData(FL_NextMode, iNextMode); + Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode); + } break; - } + } case NVTEVT_CB_MOVIE_WR_ERROR: { @@ -1540,7 +1539,7 @@ void UIFlowMovieEventCallback(lv_obj_t* obj, lv_event_t event) case LV_USER_EVENT_KEY_RELEASE: { uint32_t* key = (uint32_t*)lv_event_get_data(); - if (LV_KEY_ENTER != *key || PHONE_SHOT_START == sf_get_phone_shot_status()) + if (LV_KEY_ENTER != *key) { lv_indev_wait_release(lv_indev_get_act()); break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c index 83c1617fd..ae788d685 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c @@ -367,25 +367,21 @@ printf(" UIFlowPasswordEventCallback %d\n", event); { case LV_PLUGIN_EVENT_SCR_OPEN: - { - UIFlowPassword_ScrOpen(obj); + UIFlowPassword_ScrOpen(obj); break; - } + case LV_PLUGIN_EVENT_SCR_CLOSE: - { - UIFlowPassword_ScrClose(obj); + UIFlowPassword_ScrClose(obj); break; - } + case LV_PLUGIN_EVENT_CHILD_SCR_CLOSE: - { set_indev_keypad_group(obj); break; - } + /* enter key state changed(pressed -> released) */ case LV_EVENT_CLICKED: - { break; - } + // case LV_EVENT_KEY: case LV_USER_EVENT_KEY_RELEASE: { @@ -414,20 +410,13 @@ printf(" UIFlowPasswordEventCallback %d\n", event); } case LV_EVENT_DRAG_BEGIN: - { break; - } - case LV_EVENT_DRAG_END: - { break; - } case LV_EVENT_DRAG_THROW_BEGIN: - { break; - } default: break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.c index c39679d9d..f51cc58e4 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.c @@ -51,7 +51,7 @@ lv_obj_t* label_2_scr_uiflowphoto; lv_obj_t* button_3_scr_uiflowphoto; lv_obj_t* label_3_scr_uiflowphoto; lv_obj_t* label_sim_scr_uiflowphoto; -lv_obj_t* label_line_scr_uiflowphoto; +lv_obj_t* image_line_scr_uiflowphoto; lv_obj_t* UIFlowPhoto_create(){ lv_obj_t *parent = lv_plugin_scr_create(); @@ -2317,67 +2317,53 @@ lv_obj_t* UIFlowPhoto_create(){ label_sim_scr_uiflowphoto = label_sim; - static lv_style_t label_line_s0; - lv_style_init(&label_line_s0); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_DEFAULT, color); - lv_style_set_bg_opa(&label_line_s0,LV_STATE_DEFAULT,255); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_DEFAULT, color); - lv_style_set_text_opa(&label_line_s0,LV_STATE_DEFAULT,0); - lv_style_set_text_font(&label_line_s0,LV_STATE_DEFAULT,&sf_ui_text_medium_16_1bpp); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_DISABLED, color); - lv_obj_t *label_line = lv_label_create(parent, NULL); - lv_obj_set_hidden(label_line, false); - lv_obj_set_click(label_line, false); - lv_obj_set_drag(label_line, false); - lv_plugin_label_allocate_ext_attr(label_line); - lv_plugin_label_allocate_ext_attr(label_line); - lv_plugin_label_set_font_type(label_line, LV_PLUGIN_LANGUAGE_FONT_TYPE_0); - lv_label_set_align(label_line, LV_LABEL_ALIGN_CENTER); - lv_label_set_long_mode(label_line, LV_LABEL_LONG_SROLL); - lv_obj_set_pos(label_line, 0, 119); - lv_obj_set_size(label_line, 320, 2); - lv_obj_add_style(label_line, 0, &label_line_s0); + static lv_style_t image_line_s0; + lv_style_init(&image_line_s0); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_DISABLED, color); + lv_obj_t *image_line = lv_img_create(parent, NULL); + lv_obj_set_hidden(image_line, false); + lv_obj_set_click(image_line, false); + lv_obj_set_drag(image_line, false); + lv_obj_set_pos(image_line, 0, 119); + lv_obj_set_size(image_line, 320, 3); + lv_img_set_src(image_line, &sy_redline2); + lv_obj_add_style(image_line, 0, &image_line_s0); - label_line_scr_uiflowphoto = label_line; + image_line_scr_uiflowphoto = image_line; return parent; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.h index 6e7ad595e..810da22e0 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.h @@ -59,7 +59,7 @@ extern lv_obj_t* label_2_scr_uiflowphoto; extern lv_obj_t* button_3_scr_uiflowphoto; extern lv_obj_t* label_3_scr_uiflowphoto; extern lv_obj_t* label_sim_scr_uiflowphoto; -extern lv_obj_t* label_line_scr_uiflowphoto; +extern lv_obj_t* image_line_scr_uiflowphoto; /********************** * GLOBAL PROTOTYPES diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index 82ddeb6f4..59d4bf69a 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -47,9 +47,9 @@ static CHAR g_cSelftimerCntStr[8] = {0}; static lv_group_t* gp = NULL; static lv_task_t* task_selftimer = NULL; static lv_task_t* update_icons_timer = NULL; -#define GO_TO_WORK_MODE_TIME 59 +#define GO_TO_WORK_MODE_TIME 57 #define PASSWORD_GO_TO_WORK_MODE_TIME_S 62 -#define MENU_GO_TO_WORK_MODE_TIME_S 29 +#define MENU_GO_TO_WORK_MODE_TIME_S 27 static unsigned int ShutDownTime = GO_TO_WORK_MODE_TIME; static lv_task_t* task_qview = NULL; @@ -59,7 +59,6 @@ static void task_update_icons_timer_cb(lv_task_t* task); #define LONG_PRESS_INTERVAL 500 static unsigned long KeyLeftPressingTimeMs = 0; static unsigned long KeyDownPressingTimeMs = 0; -static int gSendingStatus = FILE_SENDING_GUI_END; #define SENDING_KEEP_SHOW -1 #define SENDING_NOT_SHOW 0 @@ -71,7 +70,6 @@ static BOOL g_PhotoBgInitFileSys = FALSE; static BOOL g_SysStrg_Chg = FALSE; //#NT#2023/11/21#Eric - end -static void sf_show_send_text(lv_obj_t* obj, const unsigned short status); static lv_obj_t *g_preview_info_msgbox = NULL; static lv_obj_t *g_preview_info_label = NULL; static int g_preview_info_ishidden = true; @@ -546,12 +544,12 @@ static void update_4g_module_icon(void) const int NET_GENERATION_2G = 2; // const int NET_GENERATION_3G = 3; const int NET_GENERATION_4G = 4; - //UIMenuStoreInfo *puiPara = sf_ui_para_get(); + UIMenuStoreInfo *puiPara = sf_ui_para_get(); static short signal = SIGNAL_NOT_YET_GET; static short searching_index = -1; short signal_new = sf_cardv_get_cq_signal(); unsigned short signal_level = 0; - network_signal_level_get(sf_get_net_generation(), signal_new, &signal_level); + network_signal_level_get(puiPara->NetGeneration, signal_new, &signal_level); // printf("new signal = %d, old signal = %d\n", signal_new, signal); if(SIGNAL_NOT_YET_GET == signal_new) { @@ -561,18 +559,19 @@ static void update_4g_module_icon(void) // printf(" searching ... [%d]\n", searching_index); signal_icon_show(searching_index); } - else if(signal != signal_new && SIM_CARD_NOT_INIT != sf_get_net_generation()) + else if(signal != signal_new && SIM_CARD_NOT_INIT != puiPara->NetGeneration) { lv_obj_set_hidden(label_tips_scr_uiflowphoto, true); // Update the icon. - printf("old signal = %d new signal = %d signal_level = %d generation = %d\n", signal, signal_new, signal_level, sf_get_net_generation()); + printf("old signal = %d new signal = %d signal_level = %d\n", signal, signal_new, signal_level); lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); signal_icon_hidden(searching_index); signal_icon_hidden(signal); signal_icon_show(signal_level); signal = signal_new; } - else if (sf_cardv_get_sim_insert() == NO_SIM_CARD) + // else if (sf_cardv_get_sim_insert() == NO_SIM_CARD) + else if (SIM_CARD_NOT_INIT == puiPara->NetGeneration) { signal_icon_hidden(0); signal_icon_hidden(1); @@ -583,28 +582,18 @@ static void update_4g_module_icon(void) set_warning_label_text(label_tips_scr_uiflowphoto); lv_label_set_text(label_tips_scr_uiflowphoto,"Check Sim"); lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); - } - else if (signal != signal_new && 0 == signal_new) - { - signal_icon_hidden(0); - signal_icon_hidden(1); - signal_icon_hidden(2); - signal_icon_hidden(3); - signal_icon_hidden(4); - lv_obj_set_hidden(label_tips_scr_uiflowphoto, false); - set_warning_label_text(label_tips_scr_uiflowphoto); - lv_label_set_text(label_tips_scr_uiflowphoto,"No Signal"); - lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); - signal = signal_new; - } - else { + } else { // Nothing changed. // printf(" nothing changed.\n"); } - // if(sf_cardv_4G_status_get() == SF_4G_SENDING) - // { - - // } + if (SENDING_NOT_SHOW < SendMsgShow) + { + SendMsgShow--; + if (SENDING_NOT_SHOW == SendMsgShow) + { + lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); + } + } const int EMPTY_IMAGE = 0; lv_plugin_res_id res[] = { EMPTY_IMAGE, @@ -613,61 +602,20 @@ const int EMPTY_IMAGE = 0; LV_PLUGIN_IMG_ID_SF_NET3G, LV_PLUGIN_IMG_ID_SF_NET4G }; -// printf("NetGeneration:%d\n", sf_get_net_generation()); +// printf("NetGeneration:%d\n", puiPara->NetGeneration); // puiPara->NetGeneration = NET_GENERATION_4G; // Test - if (SIM_CARD_NOT_INIT == sf_get_net_generation() - || sf_get_net_generation() < NET_GENERATION_2G - || sf_get_net_generation() > NET_GENERATION_4G) + if (SIM_CARD_NOT_INIT == puiPara->NetGeneration + || puiPara->NetGeneration < NET_GENERATION_2G + || puiPara->NetGeneration > NET_GENERATION_4G) { lv_obj_set_hidden(image_4g_scr_uiflowphoto, true); return; } - int index = sf_get_net_generation(); + int index = puiPara->NetGeneration; lv_obj_set_hidden(image_4g_scr_uiflowphoto, false); lv_plugin_img_set_src(image_4g_scr_uiflowphoto, res[index]); } -static void update_gps_status(void) -{ - if (SENDING_NOT_SHOW < SendMsgShow) - { - SendMsgShow--; - if (SENDING_NOT_SHOW == SendMsgShow) - { - lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); - } - return; - } - if (TRUE == sf_get_send_statu()) - { - sf_show_send_text(UIFlowPhoto, FILE_SENDING_GUI_START_SENDING); - return; - } - if (FTP_CONNECTING_FTP_CONNECTING == sf_cardv_get_ftp_status()) - { - sf_show_send_text(UIFlowPhoto, FTP_CONNECTING_FTP_CONNECTING); - return; - } - else if (FTP_CONNECTING_END != sf_cardv_get_ftp_status()) { - sf_show_send_text(UIFlowPhoto, sf_cardv_get_ftp_status()); - } - SF_GPS_STATUS_E status = sf_cardv_get_gps_status(); - switch (status) - { - case SF_GPS_SEARCHING_START: - { - lv_obj_set_hidden(label_sim_scr_uiflowphoto, false); - lv_label_set_text(label_sim_scr_uiflowphoto, "GPS searching..."); - break; - } - case SF_GPS_SEARCHING_STOP: - { - lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); - break; - } - default: - break; - } -} + static void update_camera_message(void) { UIMenuStoreInfo *puiPara = sf_ui_para_get(); @@ -888,7 +836,6 @@ static void update_icons(void) update_wifi(); update_bluetooth(); update_camera_mode(); - update_gps_status(); } static void FlowPhoto_InitStartupFuncs(void) @@ -1064,7 +1011,7 @@ static void UIFlowPhoto_OnExeCaptureStart(lv_obj_t* obj) id = (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) ? LV_PLUGIN_STRING_ID_STRID_PLEASE_INSERT_SD : LV_PLUGIN_STRING_ID_STRID_CARD_FULL; gPhotoData.State = PHOTO_ST_WARNING_MENU; // Ux_OpenWindow(&UIFlowWndWrnMsgCtrl, 2, uiMsg, FLOWWRNMSG_TIMER_2SEC); - UIFlowWrnMsgAPI_Open_StringID(id, 2000); +// UIFlowWrnMsgAPI_Open_StringID(id, 2000); return; #endif } @@ -1383,8 +1330,6 @@ void UIFlowPhoto_OnBatteryLow(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* ms static void UIFlowPhoto_ScrOpen(lv_obj_t* obj) { - lv_obj_set_hidden(container_photo_scr_uiflowphoto, false); - lv_obj_set_hidden(label_line_scr_uiflowphoto, false); set_indev_keypad_group(obj); update_fd_frame(); //#NT#2016/10/04#Lincy Lin -begin @@ -1400,7 +1345,7 @@ static void UIFlowPhoto_ScrOpen(lv_obj_t* obj) /* never closed */ gPhotoData.State = PHOTO_ST_WARNING_MENU; - // UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_PLEASE_INSERT_SD, 1000); +// UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_PLEASE_INSERT_SD, 1000); // UIFlowMenuCommonConfirmAPI_Open(IDM_FORMAT); // return; #endif @@ -1491,8 +1436,6 @@ static void UIFlowPhoto_ScrClose(lv_obj_t* obj) /* Reset key press/release/continue mask to default */ Ux_FlushEventByRange(NVTEVT_KEY_EVT_START, NVTEVT_KEY_EVT_END); - lv_obj_set_hidden(container_photo_scr_uiflowphoto, true); - lv_obj_set_hidden(label_line_scr_uiflowphoto, true); return; } @@ -1636,7 +1579,7 @@ static void task_update_icons_timer_cb(lv_task_t* task) } else { - OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); + OpenClosingScreen(); } } return; @@ -1665,7 +1608,6 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) case UIAPPPHOTO_CB_CAPSTART: #if HUNTING_CAMERA_MCU == ENABLE sf_set_cap_statu(TRUE); - sf_set_cammode_statu(puiPara->CamMode); #endif if(obj == UIFlowPhoto) @@ -1692,7 +1634,7 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) UIFlowPhoto_BackPreviewHandle(); #if HUNTING_CAMERA_MCU == ENABLE - if((sf_get_mode_flag()) && (sf_get_cammode_statu() == SF_CAM_MODE_PHOTO_VIDEO || sf_get_cammode_statu() == SF_CAM_MODE_VIDEO2)){ + if((sf_get_mode_flag()) && (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO || puiPara->CamMode == SF_CAM_MODE_VIDEO2)){ #else if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO){ #endif @@ -1703,7 +1645,6 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode); } else { - sf_set_phone_shot_status(PHONE_SHOT_STOP); if(sf_get_mode_flag()) { sf_wifi_server_stop_shoot_respond(0); @@ -1745,7 +1686,6 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) static void sf_show_send_text(lv_obj_t* obj, const unsigned short status) { #define SENDING_KEEP_SHOW_TIME_S 3 - gSendingStatus = FILE_SENDING_GUI_END; switch (status) { case FILE_SENDING_GUI_START_SENDING: @@ -1753,7 +1693,6 @@ static void sf_show_send_text(lv_obj_t* obj, const unsigned short status) lv_obj_set_hidden(label_sim_scr_uiflowphoto, false); lv_label_set_text(label_sim_scr_uiflowphoto, "Sending ... "); SendMsgShow = SENDING_KEEP_SHOW; - gSendingStatus = FILE_SENDING_GUI_START_SENDING; break; } case FILE_SENDING_GUI_STOP_SENDING: @@ -1776,19 +1715,6 @@ static void sf_show_send_text(lv_obj_t* obj, const unsigned short status) SendMsgShow = SENDING_KEEP_SHOW_TIME_S; break; } - case FTP_CONNECTING_FTP_CONNECTING: - { - lv_obj_set_hidden(label_sim_scr_uiflowphoto, false); - lv_label_set_text(label_sim_scr_uiflowphoto, "Connecting ... "); - SendMsgShow = SENDING_KEEP_SHOW; - break; - } - case FTP_CONNECTING_FTP_CONNECT_SUCCESSFUL: - case FTP_CONNECTING_FTP_CONNECT_FAILED: - { - SendMsgShow = SENDING_NOT_SHOW; - break; - } default: break; } @@ -1884,7 +1810,6 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) { case LV_USER_KEY_LEFT: { - //printf("[UIFlowPhoto_Key]>>>LEFT\n"); if (KeyLeftPressingTimeMs < LONG_PRESS_INTERVAL) { UIFlowMenuCommonConfirmAPI_Open(IDM_ENTER_WORK_MODE); @@ -1894,7 +1819,6 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) } case LV_KEY_ENTER: { - //printf("[UIFlowPhoto_Key]>>>ENTER\n"); #if HUNTING_CAMERA_MCU == ENABLE // sf_rtsp_stop(); if(TRUE == sf_get_send_statu()) @@ -1911,7 +1835,6 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_NEXT: case LV_USER_KEY_ZOOMIN: { - //printf("[UIFlowPhoto_Key]>>>DOWN\n"); g_preview_info_ishidden = true; lv_obj_set_hidden(g_preview_info_msgbox, g_preview_info_ishidden); KeyDownPressingTimeMs = 0; @@ -1925,13 +1848,12 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_PREV: case LV_USER_KEY_ZOOMOUT: { - //printf("[UIFlowPhoto_Key]>>>UP\n"); if(TRUE == sf_get_send_statu()) { printf("\r\n[%s] line:%d %d running\n", __FUNCTION__, __LINE__,key); break; } - // if (0 > appSvrResponseSocketGet() && SF_BLE_CON != sf_get_ble_status()) + if (0 > appSvrResponseSocketGet() && SF_BLE_CON != sf_get_ble_status()) { // UIFlowPhoto_OnExeZoomOutStart(obj); UIFlowPhoto_OnExeOpenPlayScreen(obj); @@ -1942,8 +1864,8 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_MENU: case LV_USER_KEY_RIGHT: { - //printf("[UIFlowPhoto_Key]>>>RIGHT\n"); //SF_WIFI_STATUS_E status = sf_get_wifi_status(); + ShutDownTime = MENU_GO_TO_WORK_MODE_TIME_S; if(TRUE == sf_get_send_statu()) { printf("\r\n[%s] line:%d %d running\n", __FUNCTION__, __LINE__,key); @@ -2015,7 +1937,7 @@ void UIFlowPhtot_KeyLongPress(lv_obj_t* obj, uint32_t key) if (3 * 1000 <= KeyLeftPressingTimeMs) { // Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); - OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); + OpenClosingScreen(); KeyLeftPressingTimeMs = 0; } break; @@ -2044,10 +1966,18 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) switch(event) { case LV_PLUGIN_EVENT_SCR_OPEN: - { - UIFlowPhoto_ScrOpen(obj);//LV_ALIGN_IN_RIGHT_MID - + + if(preview_info_task == NULL && g_preview_info_msgbox == NULL && g_preview_info_label == NULL){ + g_preview_info_msgbox = lv_btn_create(obj, button_msg_bg_scr_uiflowwrnmsg); + g_preview_info_ishidden = true; + lv_obj_set_hidden(g_preview_info_msgbox, g_preview_info_ishidden); + g_preview_info_label = lv_label_create(g_preview_info_msgbox, label_msg_scr_uiflowwrnmsg); + lv_obj_align(g_preview_info_label, g_preview_info_msgbox, LV_ALIGN_CENTER, 0, -30); + lv_label_set_align(g_preview_info_label, LV_LABEL_ALIGN_CENTER); + preview_info_task = lv_task_create(preview_info_task_cb, 100, LV_TASK_PRIO_MID, NULL); + } + #define PASSWORD_OPENED 1 #define PASSWORD_NOT_OPENED 0 static int passwordOpened = PASSWORD_NOT_OPENED; @@ -2060,20 +1990,6 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) { passwordOpened = PASSWORD_OPENED; } - - - - if(preview_info_task == NULL && g_preview_info_msgbox == NULL && g_preview_info_label == NULL){ - g_preview_info_msgbox = lv_btn_create(obj, button_msg_bg_scr_uiflowwrnmsg); - g_preview_info_ishidden = true; - lv_obj_set_hidden(g_preview_info_msgbox, g_preview_info_ishidden); - g_preview_info_label = lv_label_create(g_preview_info_msgbox, label_msg_scr_uiflowwrnmsg); - lv_obj_align(g_preview_info_label, g_preview_info_msgbox, LV_ALIGN_CENTER, 0, -30); - lv_label_set_align(g_preview_info_label, LV_LABEL_ALIGN_CENTER); - preview_info_task = lv_task_create(preview_info_task_cb, 100, LV_TASK_PRIO_MID, NULL); - } - - // #if HUNTING_CAMERA_MCU == ENABLE // UIMenuStoreInfo *puiPara = sf_ui_para_get(); // if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2)) @@ -2082,7 +1998,7 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) // } // #endif break; - } + case LV_PLUGIN_EVENT_SCR_CLOSE: UIFlowPhoto_ScrClose(obj); break; @@ -2099,8 +2015,7 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) case LV_EVENT_KEY: { - if (PHOTO_ST_CAPTURE == gPhotoData.State || FILE_SENDING_GUI_START_SENDING == gSendingStatus || - PHONE_SHOT_START == sf_get_phone_shot_status()) + if (PHOTO_ST_CAPTURE == gPhotoData.State) { printf("PHOTO_ST_CAPTURE not handl key event.\n"); break; @@ -2113,8 +2028,7 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) } case LV_USER_EVENT_KEY_RELEASE: { - if (PHOTO_ST_CAPTURE == gPhotoData.State || FILE_SENDING_GUI_START_SENDING == gSendingStatus || - PHONE_SHOT_START == sf_get_phone_shot_status()) + if (PHOTO_ST_CAPTURE == gPhotoData.State) { printf("PHOTO_ST_CAPTURE not handl key event.\n"); break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c index a66781439..d3516fb75 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c @@ -127,22 +127,22 @@ BOOL FlowPhoto_IsStorageErr(void) #if (FS_FUNC == ENABLE) if (UIStorageCheck(STORAGE_CHECK_ERROR, NULL) == TRUE) { // Ux_OpenWindow(&UIFlowWndWrnMsgCtrl, 2, FLOWWRNMSG_ISSUE_MEM_ERR, FLOWWRNMSG_TIMER_KEEP); - // UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRING_NO_SD, 1000 * 2); /* keep msgbox */ + UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRING_NO_SD, 1000 * 2); /* keep msgbox */ return TRUE; } if (UIStorageCheck(STORAGE_CHECK_FULL, &(g_uiFreePicNum)) == TRUE) { if (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) { //Ux_OpenWindow(&UIFlowWndWrnMsgCtrl, 2, UIFlowWndWrnMsg_StatusTXT_Msg_STRID_PLEASE_INSERT_SD, FLOWWRNMSG_TIMER_2SEC); - // UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_PLEASE_INSERT_SD, 2000); + UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_PLEASE_INSERT_SD, 2000); } else { //Ux_OpenWindow(&UIFlowWndWrnMsgCtrl, 2, UIFlowWndWrnMsg_StatusTXT_Msg_STRID_CARD_FULL, FLOWWRNMSG_TIMER_2SEC); - // UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_CARD_FULL, 2000); + UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_CARD_FULL, 2000); } return TRUE; } if (UIStorageCheck(STORAGE_CHECK_LOCKED, NULL) == TRUE) { //Ux_OpenWindow(&UIFlowWndWrnMsgCtrl, 2, UIFlowWndWrnMsg_StatusTXT_Msg_STRID_CARD_LOCKED, FLOWWRNMSG_TIMER_2SEC); - // UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_CARD_LOCKED, 2000); + UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_CARD_LOCKED, 2000); return TRUE; } #endif diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c index d1b0a01c1..cd0eec929 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c @@ -110,17 +110,12 @@ static void UIFlowPlay_IconImageSize(BOOL bShow) } else { OriImgHeight = (UINT32)hd_vdoframe_info.dim.h; } - if (uiFileFmt & (PBFMT_MOVMJPG | PBFMT_AVI | PBFMT_MP4 | PBFMT_TS)) { - lv_obj_set_hidden(container_play_scr_uiflowplay, false); - } else { - lv_obj_set_hidden(container_play_scr_uiflowplay, true); - } //hide icon if (bShow == FALSE) { // UxCtrl_SetShow(&UIFlowWndPlay_StaticTXT_SizeCtrl, FALSE); lv_obj_set_hidden(label_file_size_scr_uiflowplay, true); - // lv_obj_set_hidden(container_play_scr_uiflowplay, true); + lv_obj_set_hidden(container_play_scr_uiflowplay, true); return; } //show icon @@ -129,11 +124,8 @@ static void UIFlowPlay_IconImageSize(BOOL bShow) lv_obj_set_hidden(container_play_scr_uiflowplay, false); lv_plugin_img_set_src(image_play_scr_uiflowplay, LV_PLUGIN_IMG_ID_SF_STOP); PB_GetParam(PBPRMID_INFO_VDO, (UINT32 *)&MovieInfo); - if (0 < MovieInfo.uiToltalSecs) - { - lv_slider_set_range(slider_1_scr_uiflowplay, 0, MovieInfo.uiToltalSecs); - lv_slider_set_value(slider_1_scr_uiflowplay, 0, LV_ANIM_OFF); - } + lv_slider_set_range(slider_1_scr_uiflowplay, 0, MovieInfo.uiToltalSecs); + lv_slider_set_value(slider_1_scr_uiflowplay, 0, LV_ANIM_OFF); switch (MovieInfo.uiVidWidth) { case 3840: if (MovieInfo.uiVidRate == 50) { @@ -993,7 +985,6 @@ static void UIFlowPlay_ScrOpen(lv_obj_t* obj) update_playicons(g_PlbData.State); // Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_PHOTO); UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRING_NO_FILE, 3000); - lv_obj_set_hidden(container_play_scr_uiflowplay, true); return; } @@ -2023,26 +2014,16 @@ static void UIFlowPlay_Key(lv_obj_t* obj, uint32_t key) break; } case LV_USER_KEY_LEFT: - { - UINT32 uiFileSeq; - PB_GetParam(PBPRMID_CURR_FILESEQ, &uiFileSeq); - if (0 != uiFileSeq) { stop_play(); UIFlowPlay_OnKeyUp(obj); - } - break; + break; } case LV_USER_KEY_RIGHT: - { - UINT32 uiFileSeq; - PB_GetParam(PBPRMID_CURR_FILESEQ, &uiFileSeq); - if (0 != uiFileSeq) { stop_play(); UIFlowPlay_OnKeyDown(obj); - } - break; + break; } case LV_USER_KEY_UP: @@ -2055,18 +2036,13 @@ static void UIFlowPlay_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_DOWN: case LV_USER_KEY_NEXT: { - UINT32 uiFileSeq; - PB_GetParam(PBPRMID_CURR_FILESEQ, &uiFileSeq); - if (0 != uiFileSeq) - { stop_play(); UIFlowMenuCommonConfirmAPI_Open(IDM_DELETE_THIS); break; UIFlowPlay_OnKeyNext(obj); break; } - break; - } + case LV_USER_KEY_ZOOMIN: { break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c index 3263f67e7..44cfa7555 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c @@ -1,5 +1,4 @@ #include "PrjInc.h" -#include "UIApp/Background/UIBackgroundObj.h" #include "UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgAPI.h" #include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h" #include "UIFlowLVGL/UIFlowLVGL.h" @@ -42,46 +41,26 @@ static void task_msgbox_timer_cb(lv_task_t* task) UINT16 autoOffTime = sf_get_auto_off_time(); const lv_plugin_string_t* string = lv_plugin_get_string(msgID); + autoClose = autoClose - 1000; if (0 == autoClose || autoOffTime <= 10) { lv_task_del(msgbox_timer); msgbox_timer = NULL; if (msgbox) { - printf("msg box close delay 1000.\n"); - lv_msgbox_start_auto_close(msgbox, 1000); + lv_msgbox_start_auto_close(msgbox, 0); } if (0 == autoClose) { - // OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); - #define DO_NOT_SHOW_POWER_OFF 0 - Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 2, APP_POWER_OFF_APO, DO_NOT_SHOW_POWER_OFF); + OpenClosingScreen(); } return; } - autoClose = autoClose - 1000; if(string){ snprintf(buf, BUF_LENGTH, "%s\n\n%ds\r\n", string->ptr, autoClose/1000); // lv_msgbox_set_text(msgbox, buf); lv_label_set_text_fmt(label_msg_scr_uiflowwrnmsg, "%s", buf); } - if (0 == autoClose || autoOffTime <= 10) - { - // lv_task_del(msgbox_timer); - // msgbox_timer = NULL; - // if (msgbox) - // { - // printf("msg box close delay 1000.\n"); - // lv_msgbox_start_auto_close(msgbox, 1000); - // } - // if (0 == autoClose) - // { - // // OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); - // #define DO_NOT_SHOW_POWER_OFF 0 - // Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 2, APP_POWER_OFF_APO, DO_NOT_SHOW_POWER_OFF); - // } - return; - } } // update_icons(); return; @@ -130,9 +109,6 @@ void UIFlowWrnMsgAPI_Open_StringID(lv_plugin_res_id id, uint16_t auto_close_time { lv_plugin_msgbox_set_text(msgbox, id); } - if(auto_close_time_ms){ - lv_msgbox_start_auto_close(msgbox, auto_close_time_ms); - } // if(LV_PLUGIN_STRING_ID_STRING_UPGRADING == msgID) // { @@ -152,9 +128,6 @@ void UIFlowWrnMsgAPI_Open_StringID(lv_plugin_res_id id, uint16_t auto_close_time { snprintf(buf, BUF_LENGTH, "%s\n\n%ds\r\n", tmpstr1->ptr, autoClose/1000); lv_label_set_text_fmt(label_msg_scr_uiflowwrnmsg, "%s", buf); - if(auto_close_time_ms){ - lv_msgbox_start_auto_close(msgbox, auto_close_time_ms + 1000 * 2); - } } else if (LV_PLUGIN_STRING_ID_STRING_UPGRADING == msgID) { lv_label_set_text_fmt(label_msg_scr_uiflowwrnmsg, "Upgrading...\nCamera will automatically restart after upgrade complete"); @@ -188,9 +161,9 @@ void UIFlowWrnMsgAPI_Open_StringID(lv_plugin_res_id id, uint16_t auto_close_time } - // if(auto_close_time_ms){ - // lv_msgbox_start_auto_close(msgbox, auto_close_time_ms); - // } + if(auto_close_time_ms){ + lv_msgbox_start_auto_close(msgbox, auto_close_time_ms); + } set_indev_keypad_group(msgbox); if(msgbox_timer == NULL){ @@ -215,14 +188,6 @@ static void UIFlowWrnMsg_OnNVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA case NVTEVT_BACKGROUND_DONE: switch (message) { - case NVTEVT_BKW_FORMAT_EMMC: - { - printf("Complete format emmc.\n"); - lv_plugin_msgbox_set_text(msgbox, LV_PLUGIN_STRING_ID_STRING_COMPLETED); - lv_plugin_label_set_text(label_msg_scr_uiflowwrnmsg, LV_PLUGIN_STRING_ID_STRING_COMPLETED); - lv_msgbox_start_auto_close(msgbox, 3000); - break; - } case NVTEVT_BKW_FORMAT_CARD: { @@ -230,12 +195,10 @@ static void UIFlowWrnMsg_OnNVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA if(ret == CMD_FORMAT_SD_OK) { lv_plugin_msgbox_set_text(msgbox, LV_PLUGIN_STRING_ID_STRING_COMPLETED); - lv_plugin_label_set_text(label_msg_scr_uiflowwrnmsg, LV_PLUGIN_STRING_ID_STRING_COMPLETED); } else { lv_plugin_msgbox_set_text(msgbox, LV_PLUGIN_STRING_ID_STRING_FORMAT_ERR); - lv_plugin_label_set_text(label_msg_scr_uiflowwrnmsg, LV_PLUGIN_STRING_ID_STRING_FORMAT_ERR); } lv_msgbox_start_auto_close(msgbox, 3000); printf("[%s]start auto close 3000ms", __FUNCTION__); @@ -319,19 +282,15 @@ void message_box_wrnmsg_OnKeyMenu(lv_obj_t* msgbox) void message_box_wrnmsg_OnKey(lv_obj_t* msgbox, uint32_t key) { - // static uint32_t key22 = LV_KEY_END; - // key22 = key; - // lv_event_send(lv_obj_get_parent(UIFlowWrnMsg), LV_USER_EVENT_KEY_RELEASE, &key22); - return; switch(key) { case LV_USER_KEY_MENU: - // message_box_wrnmsg_OnKeyMenu(msgbox); + message_box_wrnmsg_OnKeyMenu(msgbox); break; //#NT#2023/11/14#Eric - begin //#NT#Support IVOT_N12144_CO-148_A case LV_KEY_ENTER: - // UIFlowWrnMsg_CloseScr(NVTEVT_NULL); + UIFlowWrnMsg_CloseScr(NVTEVT_NULL); break; //#NT#2023/11/14#Eric - end default: diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h index b487b056f..47eecf343 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h @@ -69,7 +69,7 @@ #if SF_HW_TEST == ENABLE #define DEFAULT_MOVIE_SIZE MOVIE_SIZE_FRONT_1280x720P30 #else - #define DEFAULT_MOVIE_SIZE MOVIE_SIZE_FRONT_1920x1080P30 + #define DEFAULT_MOVIE_SIZE MOVIE_SIZE_CLONE_1920x1080P30_1920x1080P25 #endif #endif #else diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c index 59f340237..ddff14480 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c @@ -505,10 +505,6 @@ void Load_MenuInfo(void) #if HUNTING_CAMERA_MCU == ENABLE if(sf_get_ui_para_flag()) { - if(!sf_is_usb_flag()) - { - sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); - } memcpy(&origInfo, ¤tInfo, sizeof(currentInfo)); memcpy(&origInfo_check, ¤tInfo, sizeof(currentInfo)); return; @@ -519,14 +515,10 @@ void Load_MenuInfo(void) #if HUNTING_CAMERA_MCU == ENABLE sf_power_on_para_check_init(); - if(sf_is_usb_flag()) - { - Save_MenuInfo(); - } - else - { - sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); - } + if(sf_is_usb_flag()) + { + Save_MenuInfo(); + } #endif #if HUNTING_CAMERA_MCU == ENABLE //origInfo = currentInfo; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h index bbad5e1d6..177d8aef6 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h @@ -2052,8 +2052,6 @@ typedef enum { SF_SEND_TIMELY = 0, SF_SEND_TIMELY1, SF_SEND_TIMELY2, - SF_SEND_TIMELY3, - SF_SEND_TIMELY4, SF_SEND_TIMELY_MAX, } SF_SEND_TYPE_e; From 8bbe9651b29d73681aa8382c5ac1fc27b05bdfd8 Mon Sep 17 00:00:00 2001 From: "sober.song" Date: Tue, 26 Dec 2023 21:16:40 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E5=90=88=E5=85=A5=E5=8E=9F=E5=8E=82Linux?= =?UTF-8?q?=E5=92=8CRtos=E4=B8=8BEMMC=E6=9C=80=E6=96=B0=E6=94=B9=E5=8A=A8?= =?UTF-8?q?=E5=92=8C=E5=AD=98=E5=82=A8=E8=AE=BE=E5=A4=87=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/application/source/cardv/Makefile | 1 + .../cardv/SrcCode/System/SF_SysStrgMng.c | 320 +++++++++ .../SrcCode/System/SF_SysStrgMng.h} | 15 +- .../source/cardv/SrcCode/System/SysStrg_CB.c | 6 +- .../source/cardv/SrcCode/System/SysStrg_Exe.c | 44 +- .../SrcCode/UIApp/Movie/UIAppMovie_Exe.c | 15 +- .../UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c | 2 +- .../UIFlowMenuCommonOptionEventCallback.c | 619 ++++++++++++++++-- code/application/source/mem/mem.c | 2 +- code/application/source/sf_app/Makefile | 1 - .../source/sf_app/code/source/app/sf_common.c | 2 - .../sf_app/code/source/storeMng/sf_mmc_dev.c | 299 --------- code/lib/include/FileSysTsk.h | 3 + code/lib/source/sifar/Makefile | 1 - .../source/cardv/SrcCode/System/sys_filesys.c | 7 +- .../cardv/SrcCode/UIApp/MovieFast/MovieFast.c | 21 +- .../cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c | 25 +- .../driver/na51089/include/sf_sd_common.h | 9 +- .../driver/na51089/source/mcu/sf_sd_common.c | 151 +++-- 19 files changed, 1110 insertions(+), 433 deletions(-) create mode 100755 code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c rename code/application/source/{sf_app/code/include/sf_mmc_dev.h => cardv/SrcCode/System/SF_SysStrgMng.h} (83%) delete mode 100755 code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c diff --git a/code/application/source/cardv/Makefile b/code/application/source/cardv/Makefile index b7ad8541b..9c39f8166 100755 --- a/code/application/source/cardv/Makefile +++ b/code/application/source/cardv/Makefile @@ -118,6 +118,7 @@ SRC = \ ./SrcCode/System/SysAudio_Exe.c \ ./SrcCode/System/SysStrg_CB.c \ ./SrcCode/System/SysStrg_Exe.c \ + ./SrcCode/System/SF_SysStrgMng.c \ ./SrcCode/System/SysSensor_Exe.c \ ./SrcCode/System/SysFW_Upgrade_Strg_Obj.c \ ./SrcCode/System/SysFW_Upgrade.c \ diff --git a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c new file mode 100755 index 000000000..4df6c7828 --- /dev/null +++ b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c @@ -0,0 +1,320 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "DCF.h" +#include "sf_type.h" +#include "sf_log.h" + +#include "SF_SysStrgMng.h" +#include +#include +#include + +typedef struct +{ + int event; + int dev_id; + int mounted_status; +}STRG_CB_PARAM; + +static SF_ST_MMC_DEV *sf_mmc_dev[MMC_DEV_MAX_NUM] = {NULL}; + +void SF_StrgInit(void) +{ + for(int i = 0; i < MMC_DEV_MAX_NUM; i++) + { + sf_mmc_dev[i] = (SF_ST_MMC_DEV *)malloc(sizeof(SF_ST_MMC_DEV)); + if(sf_mmc_dev[i] == NULL) { + // 处理内存分配失败的情况 + } + sf_mmc_dev[i]->dcf_handle = -1; + sf_mmc_dev[i]->node = MMC_DEV_NODE_STATE_NO; + sf_mmc_dev[i]->moumted_state = MMC_DEV_MOUNT_STATE_NO; + sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_NO; + sf_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_NO; + } +} + +void SF_StrgUnInit(void) +{ + for(int i = 0; i < MMC_DEV_MAX_NUM; i++) + { + if(sf_mmc_dev[i] != NULL) { + free(sf_mmc_dev[i]); + sf_mmc_dev[i] = NULL; + } + } +} + +void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle) +{ + sf_mmc_dev[strg_id]->dcf_handle = handle; +} + +static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev) +{ + UINT64 diskFree = 0; + UINT32 ret = 0; + + /*check disk free size*/ + if(mmc_dev == MMC_DEV_SD) + { + diskFree = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); + } + else + { + diskFree = FileSys_GetEMMCDiskInfo(FST_INFO_FREE_SPACE); + } + + diskFree = diskFree/1024/1024; + + if(diskFree < 30) /* 30MB */ + { + ret = TRUE; + } + else + { + ret = FALSE; + } + MLOGD("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); + return ret; +} + +static int SF_StrgNodeCheck(const char *devName) +{ + int tryCnt = 200; + int ret = access(devName, F_OK); + while (ret != 0 && tryCnt--) + { + usleep(10*1000); + ret = access(devName, F_OK); + } + + if (tryCnt < 0) + { + printf("no found %s\n", devName); + return -1; + } + return ret; +} + +void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf) +{ + MLOGD("[dev_id:%d, evt:%d]\n",pMessageBuf->arg2, pMessageBuf->arg1); + + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + if(pMessageBuf->arg2 == MMC_DEV_SD) + { + if(pMessageBuf->arg1 == CMD_SD_STRG_CB_INSERTED) + { + sf_mmc_dev[MMC_DEV_SD]->node = MMC_DEV_NODE_STATE_EXIST; + } + else if(pMessageBuf->arg1 == CMD_SD_STRG_CB_REMOVED) + { + sf_mmc_dev[MMC_DEV_SD]->node = MMC_DEV_NODE_STATE_NO_EXIST; + } + else if(pMessageBuf->arg1 == CMD_SD_STRG_CB_MOUNT_FINISH) + { + sf_mmc_dev[MMC_DEV_SD]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; + } + else if(pMessageBuf->arg1 == CMD_SD_STRG_CB_UNMOUNT_FINISH) + { + sf_mmc_dev[MMC_DEV_SD]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; + } + + UINT32 isfull = SF_StrgSpaceCheckFull(MMC_DEV_SD); + if(isfull == 1) + { + sf_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; + } + else if(isfull == 0) + { + sf_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; + } + + if(puiPara->SdLoopSwitch == 1) + { + sf_mmc_dev[MMC_DEV_SD]->loop_state = MMC_DEV_LOOP_STATE_ON; + } + else if(puiPara->SdLoopSwitch == 0) + { + sf_mmc_dev[MMC_DEV_SD]->loop_state = MMC_DEV_LOOP_STATE_OFF; + } + + } + else if(pMessageBuf->arg2 == MMC_DEV_EMMC) + { + if(SF_StrgNodeCheck(EMMC_DEVICE_NAME) == 0) + { + sf_mmc_dev[MMC_DEV_EMMC]->node = MMC_DEV_NODE_STATE_EXIST; + } + else + { + sf_mmc_dev[MMC_DEV_EMMC]->node = MMC_DEV_NODE_STATE_NO_EXIST; + } + + if(pMessageBuf->arg1 == CMD_SD_STRG_CB_MOUNT_FINISH) + { + sf_mmc_dev[MMC_DEV_EMMC]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; + } + else if(pMessageBuf->arg1 == CMD_SD_STRG_CB_UNMOUNT_FINISH) + { + sf_mmc_dev[MMC_DEV_EMMC]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; + } + + UINT32 isfull = SF_StrgSpaceCheckFull(MMC_DEV_EMMC); + if(isfull == 1) + { + sf_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; + } + else if(isfull == 0) + { + sf_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; + } + + if(puiPara->SdLoopSwitch == 1) + { + sf_mmc_dev[MMC_DEV_EMMC]->loop_state = MMC_DEV_LOOP_STATE_ON; + } + else if(puiPara->SdLoopSwitch == 0) + { + sf_mmc_dev[MMC_DEV_EMMC]->loop_state = MMC_DEV_LOOP_STATE_OFF; + } + } + + for(int i = 0; i < 2; i++) + { + MLOGD("node:%d, mount:%d, space:%d, loop:%d\n", + sf_mmc_dev[i]->node, sf_mmc_dev[i]->moumted_state, + sf_mmc_dev[i]->space_state, sf_mmc_dev[i]->loop_state); + } +} + +SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void) +{ + MMC_DEV_TYPE workable_dev = MMC_DEV_NO; + MLOGD("sf mmc check workable dev start!!!\n"); + if((sf_mmc_dev[MMC_DEV_SD]->node == MMC_DEV_NODE_STATE_NO_EXIST) && + (sf_mmc_dev[MMC_DEV_EMMC]->node == MMC_DEV_NODE_STATE_NO_EXIST)) + { + workable_dev = MMC_DEV_NO; + } + else if(sf_mmc_dev[MMC_DEV_EMMC]->node == MMC_DEV_NODE_STATE_NO_EXIST) //EMMC节点不存在 + { + if(sf_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_MOUNTED) + { + if(sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_SD; + } + else if(sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_NO_ENOUGH) + { + if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_SD; + } + } + } + } + else if(sf_mmc_dev[MMC_DEV_SD]->node == MMC_DEV_NODE_STATE_NO_EXIST) //SD节点不存在 + { + if(sf_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_MOUNTED) + { + if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_NO_ENOUGH) + { + if(sf_mmc_dev[MMC_DEV_EMMC]->loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_EMMC; + } + } + } + } + else //MMC节点都存在 + { + if((sf_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) && + (sf_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)) + { + workable_dev = MMC_DEV_NO; + } + else if(sf_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + { + if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else + { + if(sf_mmc_dev[MMC_DEV_EMMC]->loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_EMMC; + } + } + } + else if(sf_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + { + if(sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_SD; + } + else + { + if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_SD; + } + } + } + else + { + if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH && + sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_EMMC; + } + else if(sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + { + workable_dev = MMC_DEV_SD; + } + else + { + if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) + { + workable_dev = MMC_DEV_SD; + } + } + } + } + MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev); + for(int i = 0; i < 2; i++) + { + MLOGD("node:%d, mount:%d, space:%d, loop:%d\n", + sf_mmc_dev[i]->node, sf_mmc_dev[i]->moumted_state, + sf_mmc_dev[i]->space_state, sf_mmc_dev[i]->loop_state); + } + + if(workable_dev != MMC_DEV_NO) + { + MLOGD("dcf_handle = %d\n", sf_mmc_dev[workable_dev]->dcf_handle); + return sf_mmc_dev[workable_dev]; + } + else + return NULL; +} diff --git a/code/application/source/sf_app/code/include/sf_mmc_dev.h b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h similarity index 83% rename from code/application/source/sf_app/code/include/sf_mmc_dev.h rename to code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h index 67d3ba384..6ab9f6c96 100755 --- a/code/application/source/sf_app/code/include/sf_mmc_dev.h +++ b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h @@ -17,8 +17,8 @@ * Ver: 1.0.0 2023.12.23 * Description: Creat **************************************************************************/ -#ifndef _SF_MMC_DEV_H_ -#define _SF_MMC_DEV_H_ +#ifndef _SF_SYS_STRG_MNG_H_ +#define _SF_SYS_STRG_MNG_H_ #include "sf_type.h" #include "sf_param_common.h" @@ -74,9 +74,16 @@ typedef struct MMC_DEV_MOUNT_STATE moumted_state; MMC_DEV_SPACE_STATE space_state; MMC_DEV_LOOP_STATE loop_state; + int dcf_handle; }SF_ST_MMC_DEV; -MMC_DEV_TYPE sf_mmc_check_workable_dev(void); -#endif +void SF_StrgInit(void); +void SF_StrgUnInit(void); +void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle); +void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf); +SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void); + + +#endif //_SF_SYS_STRG_MNG_H_ diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_CB.c b/code/application/source/cardv/SrcCode/System/SysStrg_CB.c index 35e2b2872..83e77adef 100755 --- a/code/application/source/cardv/SrcCode/System/SysStrg_CB.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_CB.c @@ -42,6 +42,7 @@ #include #include #include "sf_sd_common.h" +#include "SF_SysStrgMng.h" #endif void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2); @@ -52,7 +53,8 @@ void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2) #if HUNTING_CAMERA_MCU == ENABLE SF_MESSAGE_BUF_S stMessageBuf = {0}; #endif - + + DBG_IND("Strg_CB: strg_id = %d, status = %d\n", param1, param2); switch (event) { // part-1 case SYSTEM_CB_CONFIG: @@ -175,6 +177,8 @@ void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2) stMessageBuf.arg3 = param2; stMessageBuf.cmdId = CMD_SD; sf_com_message_send_to_app(&stMessageBuf); + printf("strg_cb send MOUNT! dev_id = %d\n", param1); + SF_StrgRegister(&stMessageBuf); } #endif diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c index 7472f7f4b..22418d3ce 100644 --- a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c @@ -83,6 +83,8 @@ #include "userlog.h" #endif //#include "wdt.h" +#include "SF_SysStrgMng.h" + #if defined(_EMBMEM_SPI_NOR_) #define MAX_BLK_PER_SEC 128 @@ -329,6 +331,7 @@ static UINT32 gLogFile_Buff2_Size = sizeof(gLogFile_Buff2); void System_OnStrgInit_FS(void) { CHAR mount_path[KFS_LONGNAME_PATH_MAX_LENG] = {0}; + TM_BOOT_BEGIN("sdio", "init_fs"); { MEM_RANGE Pool; @@ -346,6 +349,8 @@ void System_OnStrgInit_FS(void) #endif } + SF_StrgInit();// 初始化sf_mmc设备Obj + #if !defined(__FREERTOS) GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_FS_TYPE, FileSys_GetOPS_Linux()); //for FILE_CFG_FS_TYPE, DevID is don't care @@ -525,6 +530,8 @@ void System_OnStrgExit_FS(void) #endif #endif + + SF_StrgUnInit();// 反初始化sf_mmc设备Obj // unmount file system GxStrg_CloseDevice(0); #if (FS_MULTI_STRG_FUNC) @@ -733,7 +740,6 @@ INT32 System_Set_Storage_Act_Drive(char drive) { DCF_HANDLE act_handle = -1; - for(int i=0 ; idcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return -1; } - - return g_dcf_hdl_act; + DBG_WRN("DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle); + return mmc_dev->dcf_handle; } CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle) @@ -798,6 +807,8 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) char *pMountPath = "/mnt/sd"; #endif + DBG_DUMP("System_OnStrgInsert: strg_id = %d\n", strg_id); + if (m_BootState_Drive[strg_id] != BOOT_CARD_STATE_UNKNOWN) { if (strg_id == 0) { #if(IPCAM_FUNC==DISABLE && SDHOTPLUG_FUNCTION == DISABLE) @@ -843,7 +854,8 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) return NVTEVT_CONSUME; } } - else if(strg_id == STRG_ID_EMMC){ + else if(strg_id == STRG_ID_EMMC) + { DX_HANDLE pStrgDev = (DX_HANDLE)emmc_getStorageObject(STRG_OBJ_FAT1); if (GxStrg_OpenDevice(strg_id, pStrgDev) != TRUE) { char *pDxName = "unknown"; @@ -894,18 +906,24 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) * init dcf act handle with sd card *****************************************************************/ if(strg_id == STRG_ID_SD){ + DBG_WRN("sd act\n"); System_Set_Storage_Act_Drive(g_strg_mapping_table[strg_id].drive); } + else if(strg_id == STRG_ID_EMMC){ + DBG_WRN("emmc act\n"); + System_Set_Storage_Act_Drive(g_strg_mapping_table[strg_id].drive); + } + SF_StrgSetDcfHandle(strg_id, g_strg_mapping_table[strg_id].dcf_hdl); //获取mmc设备dcf_handle } #endif if(strg_id == STRG_ID_SD){ if (GxStrg_GetDeviceCtrl(strg_id, CARD_READONLY)) { System_SetState(SYS_STATE_CARD, CARD_LOCKED); - DBG_IND("Card Locked\r\n"); + DBG_WRN("Card Locked\r\n"); } else { System_SetState(SYS_STATE_CARD, CARD_INSERTED); - DBG_IND("Card inserted\r\n"); + DBG_WRN("Card inserted\r\n"); } } /************************************************ @@ -1033,6 +1051,7 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) ////////////////////////////////////////////////// #endif + //DBG_IND("System_OnStrgAttach: strg_id = %d\n", strg_id); if (m_GxStrgType == FST_FS_TYPE_LINUX) { //Do Nothing } else { //m_GxStrgType == FST_FS_TYPE_UITRON @@ -1094,10 +1113,12 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) if((CMD_FORMAT_SD_STA != sf_get_card_statu())){ stMessageBuf.arg1 = STRG_CB_MOUNT_FINISH; - stMessageBuf.arg2 = result; + stMessageBuf.arg2 = strg_id;//result; stMessageBuf.arg3 = FST_STA_OK; stMessageBuf.cmdId = CMD_SD; sf_com_message_send_to_app(&stMessageBuf); + SF_StrgRegister(&stMessageBuf); + printf("System_OnStrgAttach send MOUNT! dev_id = %d\n", strg_id); Ux_PostEvent(NVTEVT_STRG_MOUNT_OK, 0); } #endif @@ -1188,8 +1209,11 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) if((FS_DISK_ERROR == System_GetState(SYS_STATE_FS))){ stMessageBuf.arg1 = CMD_SD_STRG_CB_UNMOUNT_FINISH; + stMessageBuf.arg2 = strg_id; stMessageBuf.cmdId = CMD_SD; sf_com_message_send_to_app(&stMessageBuf); + SF_StrgRegister(&stMessageBuf); + printf("System_OnStrgAttach send UNMOUNT! dev_id = %d\n", strg_id); } #endif #if (POWERON_FAST_BOOT == ENABLE) diff --git a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c index 46809a47c..00f002dee 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c @@ -37,6 +37,9 @@ #endif #include "vendor_videoout.h" #include "IOCfg.h" +#include "SF_SysStrgMng.h" + + #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER /////////////////////////////////////////////////////////////////////////////// @@ -1218,7 +1221,6 @@ BOOL MovieExe_CheckSNFull(void) static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) { - #if USE_FILEDB static struct tm CurDateTime = {0}; @@ -1251,6 +1253,9 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) #elif USE_DCF UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle(); + + DBG_DUMP("System_Get_DCF_Handle, dcf_handle: %d\n", dcf_handle); + UINT32 nextFolderID = 0, nextFileID = 0; if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) { @@ -1260,7 +1265,7 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID); DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); DCF_AddDBfileEx(dcf_handle, pFileName); - DBG_DUMP("%s added to DCF Path%lu\r\n", pFileName, dcf_handle); + DBG_WRN("0000 %s added to DCF Path%lu\r\n", pFileName, dcf_handle); #if HUNTING_CAMERA_MCU == ENABLE char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'}; sprintf(tmp, "S%03d%04d.JPG", nextFolderID, nextFileID); @@ -1279,8 +1284,6 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) snprintf(thumb_current_path_clone, sizeof(thumb_current_path_clone), "%s", pFileName); } #endif - - } #endif @@ -1321,7 +1324,8 @@ static void MovieExe_RawEncodeFileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) #elif USE_DCF UINT32 nextFolderID = 0, nextFileID = 0; - UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle(); + + UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle(); if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) { DBG_ERR("Exceed max dcf file!\r\n"); @@ -1329,6 +1333,7 @@ static void MovieExe_RawEncodeFileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) } else { DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID); DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_JPG, pFileName); + DBG_WRN("1111 %s added to DCF Path%lu\r\n", pFileName, dcf_handle); } #endif diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c index 17adf2d29..acb903f0e 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c @@ -782,7 +782,7 @@ void show_qr_picture_page(lv_obj_t* obj) lv_obj_set_drag(QRImage, false); lv_obj_set_pos(QRImage, 210, 141); lv_obj_set_size(QRImage, 32, 32); - lv_img_set_src(QRImage, &sf_qr_page); + //lv_img_set_src(QRImage, &sf_qr_page); if(NULL != qr){ lv_obj_set_hidden(qr, false); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c index 874fb5998..68cdbe142 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c @@ -26,7 +26,7 @@ static int isSetting = 0; //static TM_MENU *g_pOptionMenu = 0; UINT16 PrevOption = 0; -UINT16 s_SelOption = 0; +UINT16 s_SelOption = 100; UINT16 OptionEN_Num = 0; UINT16 enableIndex[30] = {}; @@ -150,6 +150,7 @@ static int is_message_item(lv_obj_t* obj) case IDM_OPERATING_TIME: break; case IDM_FORMAT_SD: + break; { printf("[is_message_item]IDM_FORMAT_SD\n"); UIFlowMenuCommonConfirmAPI_Open(itemID); @@ -216,12 +217,13 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) UINT32 i; // UINT16 startIndex = 0; UINT16 itemIndex = 0; + UINT16 itemIconId = 0; #if 1 UINT16 SelOption = 0; UINT32 Selindex = 0; BOOL ui_hidden = true; #endif - + UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; #if 0 @@ -354,32 +356,459 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) lv_plugin_menu_set_item_hidden(menu_option, i, true); ui_hidden = true; }else{ + itemIconId = pOption->IconId; + ui_hidden = true; printf("\033[33m[LV_MenuCommonOption_UpdateContent] 3 \033[0m\n"); lv_plugin_menu_set_item_string_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); - lv_plugin_menu_set_item_img_id(menu_option, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED, pOption->IconId); - lv_plugin_menu_set_item_hidden(menu_option, i, false); - ui_hidden = true; - if(enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ - printf("\033[33m[LV_MenuCommonOption_UpdateContent] 4 %d %d \033[0m\n", i, Selindex); - s_SelOption = i + (Selindex * OPTION_PAGE_NUM); - lv_plugin_menu_select_item(menu_option, i); - ui_hidden = false; - } - } + + printf("[LV_MenuCommonOption_UpdateContent]s_SelOption: %d\n", s_SelOption); + if (IDM_FORMAT_SD == pItem->ItemId) { + if (0 == SelOption && i == 0) { + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ + lv_obj_set_pos(image_option1_scr_uiflowmenucommonoption, 272, 0); + ui_hidden = false; + } else if (1 == SelOption && i == 1) { + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); + ui_hidden = false; + } else if (0 == SelOption && i == 1) { + itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//> + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); + ui_hidden = false; + } else if (1 == SelOption && i == 0) { + itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//> + lv_obj_set_pos(image_option1_scr_uiflowmenucommonoption, 288, 0); + ui_hidden = false; + } + } else if (s_SelOption == 100){//first init page add select icon + if (enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption) + { + s_SelOption = i + (Selindex * OPTION_PAGE_NUM); + switch (pItem->ItemId) { + case IDM_DELAY:{} + case IDM_OPERATING_TIME:{} + case IDM_DATE_AND_TIME:{} + case IDM_MAX_NUM_DAY:{} + case IDM_PASSWORD:{} + case IDM_CAMERA_NAME: + { + if (i == 1) + { + printf("[LV_MenuCommonOption_UpdateContent]first init black > √\n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); + } + else if (i==0){ + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ + lv_obj_set_pos(image_option1_scr_uiflowmenucommonoption, 272, 0); + } + else{ + printf("[LV_MenuCommonOption_UpdateContent]first init √\n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); + } + break; + } + case IDM_SEND_TYPE:{ + if(i == 1) + { + printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE black > √\n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); + } + else if (i == 0){ + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ + lv_obj_set_pos(image_option1_scr_uiflowmenucommonoption, 272, 0); + } + else if (i == 2) + { + printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE black > √\n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ + lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 259, 0); + } + else if (i == 3) + { + printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE black > √\n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ + lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 259, 0); + } + break; + } + default: + { + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ + if(i == 1) + { + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); + } + else if (i == 0){ + lv_obj_set_pos(image_option1_scr_uiflowmenucommonoption, 272, 0); + } + else if (i == 2) + { + lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 272, 0); + } + else if (i == 3) + { + lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 272, 0); + } + + + } + } + ui_hidden = false; + } + else if (enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption && i == 1) + { + printf("[LV_MenuCommonOption_UpdateContent]first init white >\n"); + switch (pItem->ItemId) { + case IDM_DELAY:{} + case IDM_OPERATING_TIME:{} + case IDM_DATE_AND_TIME:{} + case IDM_MAX_NUM_DAY:{} + case IDM_PASSWORD:{} + case IDM_SEND_TYPE:{} + case IDM_CAMERA_NAME: + { + itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); + ui_hidden = false; + break; + } + } - DBG_DUMP("%s ui_hidden=%d\r\n", __func__,ui_hidden); - if(i==0){ + } + else if(enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption && i > 1) + { + if (pItem->ItemId == IDM_SEND_TYPE) + { + printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE white >\n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > + if (i == 2) + { + lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 288, 0); + } + else if (i == 3) + { + lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 288, 0); + } + ui_hidden = false; + } + } + + if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption < 3) + { + if (puiPara->BatteryType == SF_BATT_LI_PACK){ + printf("[LV_MenuCommonOption_UpdateContent]first init change battery to lith\n"); + if (i < 1) + { + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 2) + { + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 3) + { + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); + ui_hidden = true; + lv_plugin_menu_select_item(menu_option, 3); + s_SelOption = 3; + SelOption = 3; + SysSetFlag(pItem->SysFlag,3); + } + else + { + printf("[LV_MenuCommonOption_UpdateContent]first init is not lith\n"); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + + } + else if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption == 3) + { + if (puiPara->BatteryType == SF_BATT_LI_PACK) + { + printf("[LV_MenuCommonOption_UpdateContent]first init and is lith\n"); + if (i < 1) + { + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 2) + { + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 3) + { + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); + } + else + { + printf("[LV_MenuCommonOption_UpdateContent]first init change battery\n"); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + ui_hidden = true; + lv_plugin_menu_select_item(menu_option, 0); + s_SelOption = 0; + SelOption = 0; + SysSetFlag(pItem->SysFlag,0); + lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, true); + } + + } + } + else{ + if (pItem->ItemId == IDM_SEND_TYPE){ + if (i == s_SelOption) + { + switch(i) + { + case 0: + { + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ + lv_obj_set_pos(image_option1_scr_uiflowmenucommonoption, 272, 0); + break; + } + case 1: + { + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); + break; + } + case 2: + { + lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 259, 0); + break; + } + case 3: + { + lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 259, 0); + break; + } + default: + { + break; + } + } + + if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption) + { + printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add black √ > \n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ + } + else if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption) + { + printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add white √ > \n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT1;//white > √ + } + ui_hidden = false; + } + else{ + switch(i) + { + case 0: + { + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ + lv_obj_set_pos(image_option1_scr_uiflowmenucommonoption, 272, 0); + break; + } + case 1: + { + printf("[LV_MenuCommonOption_UpdateContent]set 1 option \n"); + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); + break; + } + case 2: + { + printf("[LV_MenuCommonOption_UpdateContent]set 2 option \n"); + lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 288, 0); + break; + } + case 3: + { + printf("[LV_MenuCommonOption_UpdateContent]set 3 option \n"); + lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 288, 0); + break; + } + default: + { + break; + } + } + if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption) + { + printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add black > \n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT2;//black > + ui_hidden = false; + } + else if (i >= 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption) + { + printf("[LV_MenuCommonOption_UpdateContent]IDM_SEND_TYPE add white > \n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > + ui_hidden = false; + } + } + } + else if (i == 1) + { + //printf("[LV_MenuCommonOption_UpdateContent] add > icon\n"); + switch (pItem->ItemId) { + case IDM_DELAY:{} + case IDM_OPERATING_TIME:{} + case IDM_DATE_AND_TIME:{} + case IDM_MAX_NUM_DAY:{} + case IDM_PASSWORD:{} + case IDM_CAMERA_NAME: + { + if (s_SelOption == 0 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ + printf("[LV_MenuCommonOption_UpdateContent] add black > \n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT2;//black > + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); + } + else if (s_SelOption == 0 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption){ + printf("[LV_MenuCommonOption_UpdateContent] add white > \n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 288, 0); + } + else if (s_SelOption == 1 && enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ + printf("[LV_MenuCommonOption_UpdateContent] add black √ > \n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); + } + else{ + printf("[LV_MenuCommonOption_UpdateContent] add white √ > \n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT1;//white > √ + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); + } + ui_hidden = false; + break; + } + default: + { + printf("[LV_MenuCommonOption_UpdateContent] add √ \n"); + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ + lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); + if (s_SelOption == 1) + { + ui_hidden = false; + } + break; + } + } + + } + else if (i == s_SelOption) + { + itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ + if (i == 2) + { + lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 272, 0); + } + else if (i == 3) + { + lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 272, 0); + } + ui_hidden = false; + } + + if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption < 3) + { + + if (puiPara->BatteryType == SF_BATT_LI_PACK){ + if (i < 1) + { + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 2) + { + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 3) + { + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); + ui_hidden = true; + lv_plugin_menu_select_item(menu_option, 3); + s_SelOption = 3; + SelOption = 3; + SysSetFlag(pItem->SysFlag,3); + } + else + { + printf("[LV_MenuCommonOption_UpdateContent]is not lith\n"); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + + } + else if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption == 3) + { + + if (puiPara->BatteryType == SF_BATT_LI_PACK) + { + printf("[LV_MenuCommonOption_UpdateContent]is lith\n"); + if (i < 1) + { + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 2) + { + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 3) + { + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); + lv_plugin_menu_select_item(menu_option, 3); + } + else + { + printf("[LV_MenuCommonOption_UpdateContent]change battery\n"); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + ui_hidden = true; + lv_plugin_menu_select_item(menu_option, 0); + s_SelOption = 0; + SelOption = 0; + SysSetFlag(pItem->SysFlag,0); + lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, true); + } + + } + } + + + lv_plugin_menu_set_item_img_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, itemIconId); + lv_plugin_menu_set_item_hidden(menu_option, i, false); + + if (enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ + lv_plugin_menu_select_item(menu_option, i); + } + + } + + DBG_DUMP("%s ui_hidden %d=%d\r\n", __func__,i,ui_hidden); + if (i==0) + { lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, ui_hidden); - }else if(i == 1){ + } + else if (i == 1) + { lv_obj_set_hidden(image_option2_scr_uiflowmenucommonoption, ui_hidden); - }else if(i == 2){ + } + else if (i == 2) + { lv_obj_set_hidden(image_option3_scr_uiflowmenucommonoption, ui_hidden); - }else if(i == 3){ + } + else if (i == 3) + { lv_obj_set_hidden(image_option4_scr_uiflowmenucommonoption, ui_hidden); - }else if(i == 4){ + } + else if (i == 4) + { lv_obj_set_hidden(image_option5_scr_uiflowmenucommonoption, ui_hidden); } - } #else itemIndex = PAGE * (1 + (SelOption / PAGE)); @@ -428,6 +857,7 @@ static void LV_MenuOption_OnOpen(lv_obj_t* obj, TM_MENU *data) TM_ITEM* pItem; //TM_OPTION *pOption; UINT16 SelOption = 0; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; // pPage->SelItem = 0; @@ -462,7 +892,18 @@ static void LV_MenuOption_OnOpen(lv_obj_t* obj, TM_MENU *data) // lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); // } LV_MenuCommonOption_UpdateContent(pMenu); - + if (pItem->ItemId == IDM_BATTERY_TYPE) + { + if(puiPara->BatteryType == SF_BATT_LI_PACK) + { + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + else{ + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + } lv_plugin_menu_select_item(menu_option, SelOption); } @@ -473,6 +914,7 @@ static void LV_MenuOption_OnNext(lv_obj_t* obj) TM_PAGE *pPage; TM_ITEM *pItem; UINT16 SelOption = 0; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; @@ -481,18 +923,40 @@ static void LV_MenuOption_OnNext(lv_obj_t* obj) // DBG_DUMP("%s SelItem=%d\r\n", __func__,pPage->SelItem); // DBG_DUMP("%s Count=%d\r\n", __func__,pItem->Count); // DBG_DUMP("%s SelOption=%d\r\n", __func__,SelOption); - SelOption++; + + SelOption++; + if (pItem->ItemId == IDM_BATTERY_TYPE) + { + if(puiPara->BatteryType == SF_BATT_LI_PACK) + { + SelOption = 3; + SysSetFlag(pItem->SysFlag, SelOption); + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + else{ + if (SelOption >= 3) + { + SelOption = 0; + } + SysSetFlag(pItem->SysFlag, SelOption); + LV_MenuCommonOption_UpdateContent(pMenu); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + return; + } if (SelOption >= pItem->Count){ // Close current UI Window now //SysSetFlag(pItem->SysFlag, PrevOption); //lv_plugin_scr_close(obj, NULL); SelOption = 0; - SysSetFlag(pItem->SysFlag, SelOption); - lv_plugin_menu_select_item(menu_option, SelOption); +// lv_plugin_menu_select_item(menu_option, SelOption); }else{ - SysSetFlag(pItem->SysFlag, SelOption); - lv_plugin_menu_select_next_item(menu_option); +// lv_plugin_menu_select_next_item(menu_option); } + SysSetFlag(pItem->SysFlag, SelOption); + LV_MenuCommonOption_UpdateContent(pMenu); // DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); } @@ -502,23 +966,50 @@ static void LV_MenuOption_OnPrev(lv_obj_t* obj) TM_PAGE *pPage; TM_ITEM *pItem; UINT16 SelOption = 0; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; SelOption = SysGetFlag(pItem->SysFlag); + + if (pItem->ItemId == IDM_BATTERY_TYPE) + { + if(puiPara->BatteryType == SF_BATT_LI_PACK) + { + SelOption = 3; + SysSetFlag(pItem->SysFlag, SelOption); + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + else{ + if (SelOption == 0) + { + SelOption = (pItem->Count - 2); + } + else + { + SelOption--; + } + SysSetFlag(pItem->SysFlag, SelOption); + LV_MenuCommonOption_UpdateContent(pMenu); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + return; + } + if (SelOption == 0) { // Close current UI Window now //SysSetFlag(pItem->SysFlag, PrevOption); //lv_plugin_scr_close(obj, NULL); SelOption = (pItem->Count - 1); - SysSetFlag(pItem->SysFlag, SelOption); - lv_plugin_menu_select_item(menu_option, SelOption); +// lv_plugin_menu_select_item(menu_option, SelOption); } else { SelOption--; - SysSetFlag(pItem->SysFlag, SelOption); -// LV_MenuCommonOption_UpdateContent(pMenu); - lv_plugin_menu_select_prev_item(menu_option); +// lv_plugin_menu_select_prev_item(menu_option); } + SysSetFlag(pItem->SysFlag, SelOption); + LV_MenuCommonOption_UpdateContent(pMenu); // DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); } @@ -602,13 +1093,15 @@ static void LV_MenuOption_OnSelected(lv_obj_t* obj) pItem->ItemId == IDM_OPERATING_TIME || pItem->ItemId == IDM_DATE_AND_TIME || pItem->ItemId == IDM_MAX_NUM_DAY || - pItem->ItemId == IDM_SEND_TYPE) + pItem->ItemId == IDM_SEND_TYPE || + pItem->ItemId == IDM_FORMAT_SD) && (pOption->TextId == IDS_CAMERA_NAME_ON || pOption->TextId == IDS_DATE_AND_TIME_MANUAL || pOption->TextId == IDS_SEND_TYPE_ONCE_DAY || pOption->TextId == IDS_SEND_TYPE_TWICE_DAY || pOption->TextId == IDS_SEND_TYPE_4_TIMES_DAY || - pOption->TextId == IDS_MAX_NUM_DAY_NUMBER)) + pOption->TextId == IDS_MAX_NUM_DAY_NUMBER || + pItem->ItemId == IDM_FORMAT_SD)) { lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); isSetting = 1; @@ -633,8 +1126,22 @@ static void LV_MenuOption_OnSelected(lv_obj_t* obj) show_MaxNum_page(obj); break; case IDM_SEND_TYPE: - show_send_time_page(obj, SelOption); - break; + show_send_time_page(obj, SelOption); + break; + case IDM_FORMAT_SD: + if (0 == SelOption) + { + printf("format emmc.\n"); + //UIFlowMenuCommonConfirmAPI_Open(IDM_FORMAT_EMMC); + break; + } + if (1 == SelOption) + { + printf("format sd card.\n"); + UIFlowMenuCommonConfirmAPI_Open(IDM_FORMAT_SD); + break; + } + break; default: break; } @@ -796,7 +1303,7 @@ static void CommondOptionCloseSencondPage(lv_obj_t* obj, uint32_t* key) pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; UINT16 itemID = pItem->ItemId; - printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); + printf("\033[33m[CommondOptionCloseSencondPage]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); /* handle key event */ switch(itemID) { @@ -860,6 +1367,7 @@ static void CommondOptionCloseSencondPage(lv_obj_t* obj, uint32_t* key) } break; case IDM_FORMAT_SD: + break; case IDM_DATE_AND_TIME: if(isSetting) { @@ -917,15 +1425,49 @@ static void CommondOptionKeyCallback(lv_obj_t* obj, uint32_t* key) pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; UINT16 itemID = pItem->ItemId; - printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); + printf("\033[33m[CommondOptionKeyCallback]LV_USER_EVENT_KEY_RELEASE key:%d\033[0m\n", *key); /* handle key event */ + switch(*key) + { + case LV_USER_KEY_NEXT: + case LV_USER_KEY_DOWN: + { + //printf("[CommondOptionKeyCallback]>>>DOWN\n"); + break; + } + + case LV_USER_KEY_PREV: + case LV_USER_KEY_UP: + { + //printf("[CommondOptionKeyCallback]>>>UP\n"); + break; + } + + case LV_KEY_LEFT: + { + //printf("[CommondOptionKeyCallback]>>>LEFT\n"); + break; + } + + case LV_KEY_RIGHT: + { + //printf("[CommondOptionKeyCallback]>>>RIGHT\n"); + break; + } + case LV_KEY_ENTER: + { + //printf("[CommondOptionKeyCallback]>>>ENTER\n"); + break; + } + } + switch(itemID) { case IDM_NETWORK_SELECTION: Option_Network_Selection_Key(obj, *key); break; case IDM_QR_PICTURE: - UIFlowMenuCommonOption_Key(obj, *key); + //Option_qr_picture_Key(obj, *key); break; case IDM_PASSWORD: if(isSetting) @@ -981,6 +1523,8 @@ static void CommondOptionKeyCallback(lv_obj_t* obj, uint32_t* key) } break; case IDM_FORMAT_SD: + UIFlowMenuCommonOption_Key(obj, *key); + break; case IDM_DATE_AND_TIME: if(isSetting) { @@ -1054,6 +1598,7 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event) uint32_t key = LV_KEY_ENTER; CommondOptionCloseSencondPage(obj, &key); isSetting = 0; + s_SelOption = 100; UIFlowMenuCommonOption_ScrClose(obj); break; } diff --git a/code/application/source/mem/mem.c b/code/application/source/mem/mem.c index a3f811ee3..0ba91ca30 100755 --- a/code/application/source/mem/mem.c +++ b/code/application/source/mem/mem.c @@ -17,7 +17,7 @@ #define DBG_WRN(fmtstr, args...) printf("\033[33m%s(): \033[0m" fmtstr,__func__, ##args) #define DBG_ERR(fmtstr, args...) printf("\033[31m%s(): \033[0m" fmtstr,__func__, ##args) -#if 1 +#if 0 #define DBG_IND(fmtstr, args...) #else #define DBG_IND(fmtstr, args...) printf("%s(): " fmtstr, \ diff --git a/code/application/source/sf_app/Makefile b/code/application/source/sf_app/Makefile index 877ed739e..0ee1de076 100755 --- a/code/application/source/sf_app/Makefile +++ b/code/application/source/sf_app/Makefile @@ -298,7 +298,6 @@ SRC = \ ./code/source/qrcodeMng/sf_qrcode.c \ ./code/source/qrcodeMng/split.c \ ./code/source/storeMng/sf_storeMng.c \ - ./code/source/storeMng/sf_mmc_dev.c \ ./code/source/ttyusb/sf_hal_ttyusb.c \ ./code/source/4gMng/sf_4g_lpa.c \ ./code/source/4gMng/sf_4G_sms_lpa_cmd.c \ diff --git a/code/application/source/sf_app/code/source/app/sf_common.c b/code/application/source/sf_app/code/source/app/sf_common.c index 0dd30706d..fd8048023 100755 --- a/code/application/source/sf_app/code/source/app/sf_common.c +++ b/code/application/source/sf_app/code/source/app/sf_common.c @@ -596,8 +596,6 @@ static SINT32 sf_app_process_cmd_SD(SF_MESSAGE_BUF_S *pMessageBuf) SINT16 startup = sf_poweron_type_get(); MLOGD("[dev_id:%d,evt:%s]\n",pMessageBuf->arg2,app_process_SD_getstatusstring(pMessageBuf->arg1)); - - sf_mmc_dev_register(pMessageBuf); switch(pMessageBuf->arg1) { diff --git a/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c b/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c deleted file mode 100755 index 335881f79..000000000 --- a/code/application/source/sf_app/code/source/storeMng/sf_mmc_dev.c +++ /dev/null @@ -1,299 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "DCF.h" -#include "sf_type.h" -#include "sf_log.h" -#include "sf_fileMng.h" -#include "sf_storeMng.h" - -#include "sf_mmc_dev.h" -#include - -typedef struct -{ - int event; - int dev_id; - int mounted_status; -}STRG_CB_PARAM; - -static SF_ST_MMC_DEV sf_mmc_dev[MMC_DEV_MAX_NUM] = {0}; - -SINT32 sf_mmc_dev_space_check_full(const char *mountPath) -{ - SF_STORE_ATTR_S *pstoreattrs = NULL; - //SF_COMM_CHECK_POINTER(pstoreattrs,SF_FAILURE); - SINT32 fd = -1; - UINT32 Isfull = 0; - fd = open(mountPath, O_RDONLY,0); - if(fd >= 0) - { - struct statfs diskInfo; - statfs(mountPath, &diskInfo); - - if(diskInfo.f_bsize > 1024) - { - pstoreattrs->SDTotalSize = (diskInfo.f_blocks * (diskInfo.f_bsize >> 10)) >> 10 ; //blocks * 4096 / 1024 /1024 = MB - pstoreattrs->SDFree = (diskInfo.f_bavail * (diskInfo.f_bsize >> 10)) >> 10 ; - } - else - { - pstoreattrs->SDTotalSize = (diskInfo.f_blocks * diskInfo.f_bsize) >> 10 ; //blocks * 4096 / 1024 /1024 = MB - pstoreattrs->SDFree = (diskInfo.f_bavail * diskInfo.f_bsize) >> 10 ; - } - close(fd); - - if(pstoreattrs->SDTotalSize > 0) - pstoreattrs->SDStatus = 0; //SD card SUCESS - else - pstoreattrs->SDStatus = 2; //SD card ERROR - } - else - { - pstoreattrs->SDStatus = 1; //SD card not insert - pstoreattrs->SDFree = 0; - pstoreattrs->SDTotalSize = 0; - return SF_FAILURE; - } - - MLOGD("SDStatus = %d,SDFree = %d MB,SDTotalSize = %d MB\n", pstoreattrs->SDStatus, pstoreattrs->SDFree,pstoreattrs->SDTotalSize); - - if(pstoreattrs->SDStatus != 0) - return pstoreattrs->SDStatus; - - Isfull = (pstoreattrs->SDFree <= SD_WARNING_SPACE)?1:0; - return Isfull; - -} - - -static int sf_mmc_dev_node_check(const char *devName) -{ - int tryCnt = 200; - int ret = access(devName, F_OK); - while (ret != 0 && tryCnt--) - { - usleep(10*1000); - ret = access(devName, F_OK); - } - - if (tryCnt < 0) - { - printf("no found %s\n", devName); - return -1; - } - return ret; -} - -void sf_mmc_dev_register(SF_MESSAGE_BUF_S *pMessageBuf) -{ - STRG_CB_PARAM strg_cb_param; - - UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); - strg_cb_param.event = pMessageBuf->arg1; - strg_cb_param.dev_id = pMessageBuf->arg2; - strg_cb_param.mounted_status = pMessageBuf->arg3; - - MLOGD("[dev_id:%d, evt:%d]\n",strg_cb_param.dev_id, strg_cb_param.event); - - if(strg_cb_param.dev_id == MMC_DEV_SD) - { - if(strg_cb_param.event == CMD_SD_STRG_CB_INSERTED) - { - sf_mmc_dev[MMC_DEV_SD].node == MMC_DEV_NODE_STATE_EXIST; - } - else if(strg_cb_param.event == CMD_SD_STRG_CB_REMOVED) - { - sf_mmc_dev[MMC_DEV_SD].node == MMC_DEV_NODE_STATE_NO_EXIST; - } - else if(strg_cb_param.event == CMD_SD_STRG_CB_MOUNT_FINISH) - { - sf_mmc_dev[MMC_DEV_SD].moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; - } - else if(strg_cb_param.event == CMD_SD_STRG_CB_UNMOUNT_FINISH) - { - sf_mmc_dev[MMC_DEV_SD].moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; - } - - UINT32 isfull = sf_mmc_dev_space_check_full(SD_MOUNT_ROOT); - if(isfull == 1) - { - sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_NO_ENOUGH; - } - else if(isfull == 0) - { - sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH; - } - - if(puiPara->SdLoopSwitch == 1) - { - sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON; - } - else if(puiPara->SdLoopSwitch == 0) - { - sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_OFF; - } - - } - else if(strg_cb_param.dev_id == MMC_DEV_EMMC) - { - if(sf_mmc_dev_node_check(EMMC_DEVICE_NAME) == 0) - { - sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_EXIST; - } - else - { - sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST; - } - - if(strg_cb_param.event == CMD_SD_STRG_CB_MOUNT_FINISH) - { - sf_mmc_dev[MMC_DEV_EMMC].moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; - } - else if(strg_cb_param.event == CMD_SD_STRG_CB_UNMOUNT_FINISH) - { - sf_mmc_dev[MMC_DEV_EMMC].moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; - } - - UINT32 isfull = sf_mmc_dev_space_check_full(EMMC_MOUNT_ROOT); - if(isfull == 1) - { - sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_NO_ENOUGH; - } - else if(isfull == 0) - { - sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH; - } - - if(puiPara->SdLoopSwitch == 1) - { - sf_mmc_dev[MMC_DEV_EMMC].loop_state == MMC_DEV_LOOP_STATE_ON; - } - else if(puiPara->SdLoopSwitch == 0) - { - sf_mmc_dev[MMC_DEV_EMMC].loop_state == MMC_DEV_LOOP_STATE_OFF; - } - } -} - -MMC_DEV_TYPE sf_mmc_check_workable_dev(void) -{ - MMC_DEV_TYPE workable_dev = MMC_DEV_NO; - MLOGD("sf mmc check workable dev start!!!\n"); - if((sf_mmc_dev[MMC_DEV_SD].node == MMC_DEV_NODE_STATE_NO_EXIST) && - (sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST)) - { - workable_dev = MMC_DEV_NO; - } - else if(sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST) //EMMC节点不存在 - { - if(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_MOUNTED) - { - if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) - { - workable_dev = MMC_DEV_EMMC; - } - else if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_NO_ENOUGH) - { - if(sf_mmc_dev[MMC_DEV_EMMC].loop_state == MMC_DEV_LOOP_STATE_ON) - { - workable_dev = MMC_DEV_EMMC; - } - } - } - } - else if(sf_mmc_dev[MMC_DEV_SD].node == MMC_DEV_NODE_STATE_NO_EXIST) //SD节点不存在 - { - if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_MOUNTED) - { - if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) - { - workable_dev = MMC_DEV_SD; - } - else if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_NO_ENOUGH) - { - if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) - { - workable_dev = MMC_DEV_SD; - } - } - } - } - else //MMC节点都存在 - { - if((sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) && - (sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)) - { - workable_dev = MMC_DEV_NO; - } - else if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) - { - if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) - { - workable_dev = MMC_DEV_EMMC; - } - else - { - if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) - { - workable_dev = MMC_DEV_EMMC; - } - } - } - else if(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) - { - if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) - { - workable_dev = MMC_DEV_SD; - } - else - { - if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) - { - workable_dev = MMC_DEV_SD; - } - } - } - else - { - if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH && - sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) - { - workable_dev = MMC_DEV_EMMC; - } - else if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) - { - workable_dev = MMC_DEV_EMMC; - } - else if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) - { - workable_dev = MMC_DEV_SD; - } - else - { - if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) - { - workable_dev = MMC_DEV_EMMC; - } - } - } - } - MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev); - for(int i = 0; i < 2; i++) - { - MLOGD("node:%d, mount:%d, space:%d, loop:%d\n", - sf_mmc_dev[i].node, sf_mmc_dev[i].moumted_state, - sf_mmc_dev[i].space_state, sf_mmc_dev[i].loop_state); - } - - return workable_dev; -} diff --git a/code/lib/include/FileSysTsk.h b/code/lib/include/FileSysTsk.h index 777487a35..dd9c3e874 100644 --- a/code/lib/include/FileSysTsk.h +++ b/code/lib/include/FileSysTsk.h @@ -1715,6 +1715,9 @@ extern int FileSys_SearchFileRewind(FS_SEARCH_HDL pSearch); #define FileSys_RegisterCB(parm1) FileSys_RegisterCBEx('A', parm1) #define FileSys_Benchmark(parm1,parm2,parm3) FileSys_BenchmarkEx('A', parm1,parm2,parm3) +#define FileSys_GetEMMCDiskInfo(parm1) FileSys_GetDiskInfoEx('B', parm1) + + #define fs_getcwd FileSys_GetCwd #define fs_setcwd FileSys_SetCwd #define fs_dir_getParent FileSys_GetParentDir diff --git a/code/lib/source/sifar/Makefile b/code/lib/source/sifar/Makefile index 12a051898..6f2ab65bf 100755 --- a/code/lib/source/sifar/Makefile +++ b/code/lib/source/sifar/Makefile @@ -84,7 +84,6 @@ SRC = \ $(APP_DIR)/source/sf_app/code/source/qrcodeMng/sf_base64.c \ $(APP_DIR)/source/sf_app/code/source/paramMng/sf_param_common.c \ $(APP_DIR)/source/sf_app/code/source/commMng/sf_message_queue.c \ - $(APP_DIR)/source/sf_app/code/source/storeMng/sf_mmc_dev.c \ $(APP_DIR)/source/sf_app/code/source/commMng/sf_share_mem.c \ $(APP_DIR)/source/sf_app/code/source/fileMng/sf_fileMng.c \ $(APP_DIR)/source/sf_app/code/source/wifi/sf_data_transfer.c \ diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c index 76e08e3e4..6511fedcf 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c @@ -107,7 +107,7 @@ static void card_insert_job(void) FileSys_WaitFinishEx('A'); FileSys_SetParamEx('A', FST_PARM_UPDATE_FSINFO , TRUE); - sf_rtos_mmc_dev_register(0, ret); + SF_RtosStrgRegister(0, ret); #if HUNTING_CAMERA_MCU == ENABLE //if(TRUE == sf_check_card_full()) //{ @@ -142,7 +142,7 @@ static void card_insert_job(void) } // call the function to wait init finish FileSys_WaitFinishEx('B'); - sf_rtos_mmc_dev_register(1, ret); + SF_RtosStrgRegister(1, ret); // FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE); #endif @@ -163,6 +163,7 @@ static void sys_detect_card_task(void) #if defined(_EMBMEM_EMMC_) THREAD_ENTRY(); + SF_RtosStrgInit(); card_insert_job(); THREAD_RETURN(0); @@ -195,7 +196,7 @@ static void sys_detect_card_task(void) vTaskDelay(pdMS_TO_TICKS(1000)); } - + SF_RtosStrgUnInit(); THREAD_RETURN(0); #endif } diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c index c2079f0a6..e0472d576 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -64,6 +64,7 @@ #endif #include "IOCfg.h" #include +#include "sf_sd_common.h" /** Flags for control */ @@ -859,12 +860,20 @@ static void MovieFast_OnRecStop(void) static DCF_HANDLE MovieFast_Get_DCF_Handle(void) { -#if (FS_MULTI_STRG_FUNC) +//#if (FS_MULTI_STRG_FUNC) /* check free space here */ - return g_dcf_hdl2; -#else - return g_dcf_hdl; -#endif + //return g_dcf_hdl2; +//#else + //return g_dcf_hdl; +//#endif + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return -1; + } + DBG_WRN("photofast DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle); + return mmc_dev->dcf_handle; } static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) @@ -1233,6 +1242,8 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) } #endif + SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl); + SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2); #if HUNTING_CAMERA_MCU == ENABLE if(TRUE != sf_is_card_full()) diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c index 5484fb608..149595b58 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -42,6 +42,8 @@ #include #include "sf_led.h" #endif +#include "sf_sd_common.h" + #if POWERON_FAST_SLICE_ENC == ENABLE #include "PhotoFastSliceEncode.h" @@ -739,9 +741,10 @@ INT32 PhotoFast_FileNaming_Open(void) DBG_ERR("get dcf handle error!\n"); } - DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2); DCF_ScanObjEx(g_dcf_hdl2); + SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl); + SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2); } #endif @@ -767,6 +770,8 @@ INT32 PhotoFast_FileNaming_Close(void) DCF_UnInstallID(); } + SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl); + SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2); return 0; } @@ -883,12 +888,20 @@ void PhotoFast_FileNaming_SetSortBySN(CHAR *pDelimStr, UINT32 nDelimCount, UINT3 DCF_HANDLE PhotoFast_Get_DCF_Handle() { -#if (FS_MULTI_STRG_FUNC) +//#if (FS_MULTI_STRG_FUNC) /* check free space here */ - return g_dcf_hdl2; -#else - return g_dcf_hdl; -#endif + //return g_dcf_hdl2; +//#else + //return g_dcf_hdl; +//#endif + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return -1; + } + DBG_WRN("photofast DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle); + return mmc_dev->dcf_handle; } INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path) diff --git a/rtos/code/driver/na51089/include/sf_sd_common.h b/rtos/code/driver/na51089/include/sf_sd_common.h index 53e57b379..89838456f 100755 --- a/rtos/code/driver/na51089/include/sf_sd_common.h +++ b/rtos/code/driver/na51089/include/sf_sd_common.h @@ -63,8 +63,13 @@ typedef struct MMC_DEV_MOUNT_STATE moumted_state; MMC_DEV_SPACE_STATE space_state; //MMC_DEV_LOOP_STATE loop_state; + int dcf_handle; }SF_RTOS_ST_MMC_DEV; -int sf_rtos_mmc_dev_register(int devid, int mounted_state); -MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void); +void SF_RtosStrgInit(void); +void SF_RtosStrgUnInit(void); +int SF_RtosStrgRegister(int devid, int mounted_state); +void SF_RtosStrgSetDcfHandle(UINT32 strg_id, UINT32 handle); +SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void); + #endif \ No newline at end of file diff --git a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c index 6238d2d1e..43b8c7263 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c +++ b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c @@ -49,14 +49,12 @@ static BOOL IsCardFull = FALSE; SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL; extern BOOL DrvCARD_DetStrgCard(void); -static SF_RTOS_ST_MMC_DEV sf_mmc_dev[MMC_DEV_MAX_NUM] = {0}; - +static SF_RTOS_ST_MMC_DEV *sf_mmc_dev[MMC_DEV_MAX_NUM] = {NULL}; BOOL sf_is_card_full(void) { //printf("[%s]:%d IsCardFull:%d\n", __FUNCTION__, __LINE__, IsCardFull); return IsCardFull; - } UINT32 sf_check_card_full(void) @@ -94,6 +92,56 @@ UINT32 sf_check_card_full(void) return ret; } + +void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB) +{ + g_fpSd_Exist_CB = fpCB; +} + +BOOL sf_in_card_exist(void) +{ + return DrvCARD_DetStrgCard(); + /* + if(g_fpSd_Exist_CB) + { + return g_fpSd_Exist_CB(); + } + else + { + return FALSE; + }*/ + +} + +void SF_RtosStrgInit(void) +{ + for(int i = 0; i < MMC_DEV_MAX_NUM; i++) + { + sf_mmc_dev[i] = (SF_RTOS_ST_MMC_DEV *)malloc(sizeof(SF_RTOS_ST_MMC_DEV)); + if(sf_mmc_dev[i] == NULL) { + // 处理内存分配失败的情况 + } + sf_mmc_dev[i]->dcf_handle = -1; + //sf_mmc_dev[i]->node = MMC_DEV_NODE_STATE_NO; + sf_mmc_dev[i]->moumted_state = MMC_DEV_MOUNT_STATE_NO; + sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_NO; + //sf_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_NO; + } + DBG_WRN("SF_RtosStrgInit!\n"); +} + +void SF_RtosStrgUnInit(void) +{ + for(int i = 0; i < MMC_DEV_MAX_NUM; i++) + { + if(sf_mmc_dev[i] != NULL) { + free(sf_mmc_dev[i]); + sf_mmc_dev[i] = NULL; + } + } + DBG_WRN("SF_RtosStrgUnInit!\n"); +} + static UINT32 sf_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev) { UINT64 diskFree = 0; @@ -119,99 +167,79 @@ static UINT32 sf_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev) if(diskFree < 30) /* 30MB */ { - ret = TRUE; - //if(0 == puiPara->SdLoopSwitch) - { - IsCardFull = TRUE; - } - //printf("%s:%d sd card is full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); + ret = TRUE; + IsCardFull = TRUE; } else { - ret = FALSE; - + ret = FALSE; } - - printf("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); - + DBG_WRN("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); return ret; } -void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB) -{ - g_fpSd_Exist_CB = fpCB; -} - -BOOL sf_in_card_exist(void) -{ - return DrvCARD_DetStrgCard(); - /* - if(g_fpSd_Exist_CB) - { - return g_fpSd_Exist_CB(); - } - else - { - return FALSE; - }*/ - -} - -int sf_rtos_mmc_dev_register(int devid, int mounted_state) +int SF_RtosStrgRegister(int devid, int mounted_state) { if(mounted_state == FST_STA_OK) { - sf_mmc_dev[devid].moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; + sf_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; } else { - sf_mmc_dev[devid].moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; + sf_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; } int isfull = sf_mmc_dev_space_check_full(devid); if(isfull) { - sf_mmc_dev[devid].space_state = MMC_DEV_SPACE_STATE_ENOUGH; + sf_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; } else{ - sf_mmc_dev[devid].space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; + sf_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; } - + DBG_WRN("devid = %d, state = %d\n", devid, mounted_state); return 0; } -MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void) +void SF_RtosStrgSetDcfHandle(UINT32 strg_id, UINT32 handle) +{ + sf_mmc_dev[strg_id]->dcf_handle = handle; + DBG_WRN("strg_id = %d, handle = %d\n", strg_id, handle); +} + + +SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void) { MMC_DEV_TYPE workable_dev = MMC_DEV_NO; - if((sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) && - (sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)) + if((sf_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) && + (sf_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)) { workable_dev = MMC_DEV_NO; } - else if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + else if(sf_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) { - if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) { workable_dev = MMC_DEV_EMMC; } else { - //if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + //if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) { //workable_dev = MMC_DEV_EMMC; } } } - else if(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + else if(sf_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) { - if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + if(sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) { workable_dev = MMC_DEV_SD; } else { - //if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + //if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) { //workable_dev = MMC_DEV_SD; } @@ -219,29 +247,42 @@ MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void) } else { - if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH && - sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH && + sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) { workable_dev = MMC_DEV_EMMC; } - else if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + else if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) { workable_dev = MMC_DEV_EMMC; } - else if(sf_mmc_dev[MMC_DEV_SD].space_state == MMC_DEV_SPACE_STATE_ENOUGH) + else if(sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) { workable_dev = MMC_DEV_SD; } else { - //if(sf_mmc_dev[MMC_DEV_SD].loop_state == MMC_DEV_LOOP_STATE_ON) + //if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) { //workable_dev = MMC_DEV_EMMC; } } } - return workable_dev; + DBG_WRN("dev_id = %d!!!\n", workable_dev); + for(int i = 0; i < 2; i++) + { + DBG_WRN("mount:%d, space:%d\n", + sf_mmc_dev[i]->moumted_state, sf_mmc_dev[i]->space_state); + } + + if(workable_dev != MMC_DEV_NO) + { + DBG_WRN("dcf_handle = %d\n", sf_mmc_dev[workable_dev]->dcf_handle); + return sf_mmc_dev[workable_dev]; + } + else + return NULL; } From 49b78482b13750b568d154b2f8e49d90501d4f24 Mon Sep 17 00:00:00 2001 From: "sober.song" Date: Wed, 27 Dec 2023 13:41:11 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9RTOS=E4=B8=8B=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=BF=9D=E5=AD=98=E7=BC=A9=E7=95=A5=E5=9B=BE=E5=88=B0?= =?UTF-8?q?EMMC=E9=97=AE=E9=A2=98=E5=92=8C=E4=BC=98=E5=8C=96=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E8=AE=BE=E5=A4=87=E5=88=87=E6=8D=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/System/SF_SysStrgMng.c | 16 ++-- .../cardv/SrcCode/System/SF_SysStrgMng.h | 3 +- .../source/cardv/SrcCode/System/SysStrg_Exe.c | 8 +- loader/Project/Model/tmp_awk1 | 0 .../cardv/SrcCode/PrjCfg_HUNTING_S550.h | 4 +- .../cardv/SrcCode/UIApp/MovieFast/MovieFast.c | 21 +++- .../cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c | 2 +- .../UIApp/PhotoFast/PhotoFastSliceEncode.c | 18 +++- .../driver/na51089/include/sf_sd_common.h | 3 +- .../driver/na51089/source/mcu/sf_sd_common.c | 95 ++++++++++--------- 10 files changed, 104 insertions(+), 66 deletions(-) delete mode 100644 loader/Project/Model/tmp_awk1 diff --git a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c index 4df6c7828..c90b0d2ee 100755 --- a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c +++ b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c @@ -26,7 +26,7 @@ typedef struct int mounted_status; }STRG_CB_PARAM; -static SF_ST_MMC_DEV *sf_mmc_dev[MMC_DEV_MAX_NUM] = {NULL}; +SF_ST_MMC_DEV *sf_mmc_dev[MMC_DEV_MAX_NUM] = {NULL}; void SF_StrgInit(void) { @@ -37,6 +37,7 @@ void SF_StrgInit(void) // 处理内存分配失败的情况 } sf_mmc_dev[i]->dcf_handle = -1; + sf_mmc_dev[i]->dev_type = MMC_DEV_NO; sf_mmc_dev[i]->node = MMC_DEV_NODE_STATE_NO; sf_mmc_dev[i]->moumted_state = MMC_DEV_MOUNT_STATE_NO; sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_NO; @@ -79,11 +80,11 @@ static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev) if(diskFree < 30) /* 30MB */ { - ret = TRUE; + ret = 1; } else { - ret = FALSE; + ret = 0; } MLOGD("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); return ret; @@ -200,7 +201,7 @@ void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf) } } -SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void) +int SF_StrgCheckWorkableDev(void) { MMC_DEV_TYPE workable_dev = MMC_DEV_NO; MLOGD("sf mmc check workable dev start!!!\n"); @@ -302,19 +303,20 @@ SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void) } } } + MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev); for(int i = 0; i < 2; i++) { + sf_mmc_dev[i]->dev_type = workable_dev; MLOGD("node:%d, mount:%d, space:%d, loop:%d\n", sf_mmc_dev[i]->node, sf_mmc_dev[i]->moumted_state, sf_mmc_dev[i]->space_state, sf_mmc_dev[i]->loop_state); } - if(workable_dev != MMC_DEV_NO) { MLOGD("dcf_handle = %d\n", sf_mmc_dev[workable_dev]->dcf_handle); - return sf_mmc_dev[workable_dev]; + return sf_mmc_dev[workable_dev]->dcf_handle; } else - return NULL; + return -1; } diff --git a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h index 6ab9f6c96..c168818b7 100755 --- a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h +++ b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h @@ -70,6 +70,7 @@ typedef enum typedef struct { + MMC_DEV_TYPE dev_type; MMC_DEV_NODE_STATE node; MMC_DEV_MOUNT_STATE moumted_state; MMC_DEV_SPACE_STATE space_state; @@ -82,7 +83,7 @@ void SF_StrgInit(void); void SF_StrgUnInit(void); void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle); void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf); -SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void); +int SF_StrgCheckWorkableDev(void); #endif //_SF_SYS_STRG_MNG_H_ diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c index 22418d3ce..d434740b7 100644 --- a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c @@ -760,14 +760,14 @@ INT32 System_Set_Storage_Act_Drive(char drive) DCF_HANDLE System_Get_DCF_Handle(void) { - SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev(); - if(mmc_dev->dcf_handle < 0) + int dcf_handle = SF_StrgCheckWorkableDev(); + if(dcf_handle < 0) { DBG_ERR("No MMC_Dev Can use!\n"); return -1; } - DBG_WRN("DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle); - return mmc_dev->dcf_handle; + DBG_WRN("DCF_GET_HANDLE, %d\n", dcf_handle); + return dcf_handle; } CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle) diff --git a/loader/Project/Model/tmp_awk1 b/loader/Project/Model/tmp_awk1 deleted file mode 100644 index e69de29bb..000000000 diff --git a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h index 22dfe1b7a..fe543acaa 100755 --- a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h +++ b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h @@ -948,8 +948,8 @@ #define SF_BASE_VERSION "7MR5RCwDC05" #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ #define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */ -#define PHOTO_THUMB_PATH "A:\\THUMB\\" -#define MOVIE_THUMB_PATH "A:\\THUMB\\" +#define PHOTO_THUMB_PATH ":\\THUMB\\" +#define MOVIE_THUMB_PATH ":\\THUMB\\" #define SF_SEND_LIST_DIR "/mnt/sd/THUMB" #define SF_THUMB_SEND_LIST PHOTO_THUMB_PATH"send.list" #define SF_THUMB_SEND_AUTO PHOTO_THUMB_PATH"auto.list" diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c index e0472d576..d5ca7334d 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -866,7 +866,7 @@ static DCF_HANDLE MovieFast_Get_DCF_Handle(void) //#else //return g_dcf_hdl; //#endif - SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); if(mmc_dev->dcf_handle < 0) { DBG_ERR("No MMC_Dev Can use!\n"); @@ -1127,9 +1127,24 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3 char tmp[256] = {'\0'}; - #if HUNTING_CAMERA_MCU == ENABLE - snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */ + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + } + else + { + if(mmc_dev->dev_type == MMC_DEV_SD) + { + snprintf(tmp, sizeof(tmp), "%c%s%s", 'A', MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */ + } + else + { + snprintf(tmp, sizeof(tmp), "%c%s%s", 'B', MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */ + } + } + #else snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */ snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c index 149595b58..486d71eeb 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -894,7 +894,7 @@ DCF_HANDLE PhotoFast_Get_DCF_Handle() //#else //return g_dcf_hdl; //#endif - SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); if(mmc_dev->dcf_handle < 0) { DBG_ERR("No MMC_Dev Can use!\n"); diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c index 7c1cb9984..c9e94f248 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c @@ -21,6 +21,7 @@ #include "sys_usrmem.h" #if HUNTING_CAMERA_MCU == ENABLE #include +#include "sf_sd_common.h" #endif #define VDO_YUV_BUFSIZE(w, h, pxlfmt) ALIGN_CEIL_4(((w) * (h) * HD_VIDEO_PXLFMT_BPP(pxlfmt)) / 8) @@ -2384,7 +2385,22 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) #endif #if HUNTING_CAMERA_MCU == ENABLE - snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */ + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + } + else + { + if(mmc_dev->dev_type == MMC_DEV_SD) + { + snprintf(tmp, sizeof(tmp), "%c%s%s", 'A', PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */ + } + else + { + snprintf(tmp, sizeof(tmp), "%c%s%s", 'B', PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */ + } + } #else UINT32 length = strlen(file_path); snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */ diff --git a/rtos/code/driver/na51089/include/sf_sd_common.h b/rtos/code/driver/na51089/include/sf_sd_common.h index 89838456f..2f267f451 100755 --- a/rtos/code/driver/na51089/include/sf_sd_common.h +++ b/rtos/code/driver/na51089/include/sf_sd_common.h @@ -59,10 +59,9 @@ typedef enum typedef struct { - //MMC_DEV_NODE_STATE node; + MMC_DEV_TYPE dev_type; MMC_DEV_MOUNT_STATE moumted_state; MMC_DEV_SPACE_STATE space_state; - //MMC_DEV_LOOP_STATE loop_state; int dcf_handle; }SF_RTOS_ST_MMC_DEV; diff --git a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c index 43b8c7263..9d04409c7 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c +++ b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c @@ -49,7 +49,7 @@ static BOOL IsCardFull = FALSE; SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL; extern BOOL DrvCARD_DetStrgCard(void); -static SF_RTOS_ST_MMC_DEV *sf_mmc_dev[MMC_DEV_MAX_NUM] = {NULL}; +SF_RTOS_ST_MMC_DEV *sf_rtos_mmc_dev[MMC_DEV_MAX_NUM] = {NULL}; BOOL sf_is_card_full(void) { @@ -117,15 +117,16 @@ void SF_RtosStrgInit(void) { for(int i = 0; i < MMC_DEV_MAX_NUM; i++) { - sf_mmc_dev[i] = (SF_RTOS_ST_MMC_DEV *)malloc(sizeof(SF_RTOS_ST_MMC_DEV)); - if(sf_mmc_dev[i] == NULL) { + sf_rtos_mmc_dev[i] = (SF_RTOS_ST_MMC_DEV *)malloc(sizeof(SF_RTOS_ST_MMC_DEV)); + if(sf_rtos_mmc_dev[i] == NULL) { // 处理内存分配失败的情况 } - sf_mmc_dev[i]->dcf_handle = -1; - //sf_mmc_dev[i]->node = MMC_DEV_NODE_STATE_NO; - sf_mmc_dev[i]->moumted_state = MMC_DEV_MOUNT_STATE_NO; - sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_NO; - //sf_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_NO; + sf_rtos_mmc_dev[i]->dcf_handle = -1; + sf_rtos_mmc_dev[i]->dev_type = MMC_DEV_NO; + //sf_rtos_mmc_dev[i]->node = MMC_DEV_NODE_STATE_NO; + sf_rtos_mmc_dev[i]->moumted_state = MMC_DEV_MOUNT_STATE_NO; + sf_rtos_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_NO; + //sf_rtos_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_NO; } DBG_WRN("SF_RtosStrgInit!\n"); } @@ -134,15 +135,15 @@ void SF_RtosStrgUnInit(void) { for(int i = 0; i < MMC_DEV_MAX_NUM; i++) { - if(sf_mmc_dev[i] != NULL) { - free(sf_mmc_dev[i]); - sf_mmc_dev[i] = NULL; + if(sf_rtos_mmc_dev[i] != NULL) { + free(sf_rtos_mmc_dev[i]); + sf_rtos_mmc_dev[i] = NULL; } } DBG_WRN("SF_RtosStrgUnInit!\n"); } -static UINT32 sf_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev) +static UINT32 sf_rtos_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev) { UINT64 diskFree = 0; UINT32 ret = 0; @@ -167,14 +168,14 @@ static UINT32 sf_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev) if(diskFree < 30) /* 30MB */ { - ret = TRUE; + ret = 1; IsCardFull = TRUE; } else { - ret = FALSE; + ret = 0; } - DBG_WRN("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); + DBG_WRN("[%d]sd card diskFree=%lluM, ret = %d\n", __LINE__, diskFree, ret); return ret; } @@ -182,28 +183,29 @@ int SF_RtosStrgRegister(int devid, int mounted_state) { if(mounted_state == FST_STA_OK) { - sf_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; + sf_rtos_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; } else { - sf_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; + sf_rtos_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; } - int isfull = sf_mmc_dev_space_check_full(devid); - if(isfull) + UINT32 isfull = sf_rtos_mmc_dev_space_check_full(devid); + if(isfull == 1) { - sf_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; + sf_rtos_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; } - else{ - sf_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; + else if(isfull == 0) + { + sf_rtos_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; } - DBG_WRN("devid = %d, state = %d\n", devid, mounted_state); + DBG_WRN("11devid = %d, state = %d\n", devid, mounted_state); return 0; } void SF_RtosStrgSetDcfHandle(UINT32 strg_id, UINT32 handle) { - sf_mmc_dev[strg_id]->dcf_handle = handle; + sf_rtos_mmc_dev[strg_id]->dcf_handle = handle; DBG_WRN("strg_id = %d, handle = %d\n", strg_id, handle); } @@ -212,34 +214,34 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void) { MMC_DEV_TYPE workable_dev = MMC_DEV_NO; - if((sf_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) && - (sf_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)) + if((sf_rtos_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) && + (sf_rtos_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)) { workable_dev = MMC_DEV_NO; } - else if(sf_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + else if(sf_rtos_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) { - if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) { workable_dev = MMC_DEV_EMMC; } else { - //if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) + //if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) { //workable_dev = MMC_DEV_EMMC; } } } - else if(sf_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) + else if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) { - if(sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + if(sf_rtos_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) { workable_dev = MMC_DEV_SD; } else { - //if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) + //if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) { //workable_dev = MMC_DEV_SD; } @@ -247,42 +249,45 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void) } else { - if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH && - sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH && + sf_rtos_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) { workable_dev = MMC_DEV_EMMC; } - else if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + else if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) { workable_dev = MMC_DEV_EMMC; } - else if(sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) + else if(sf_rtos_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH) { workable_dev = MMC_DEV_SD; } else { - //if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) + //if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) { //workable_dev = MMC_DEV_EMMC; } } } + DBG_WRN("dev_id = %d!!!\n", workable_dev); for(int i = 0; i < 2; i++) { - DBG_WRN("mount:%d, space:%d\n", - sf_mmc_dev[i]->moumted_state, sf_mmc_dev[i]->space_state); + sf_rtos_mmc_dev[i]->dev_type = workable_dev; + DBG_WRN("mount:%d, space:%d\n", sf_rtos_mmc_dev[i]->moumted_state, + sf_rtos_mmc_dev[i]->space_state); } - - if(workable_dev != MMC_DEV_NO) + if(workable_dev == MMC_DEV_NO) { - DBG_WRN("dcf_handle = %d\n", sf_mmc_dev[workable_dev]->dcf_handle); - return sf_mmc_dev[workable_dev]; - } - else return NULL; + } + else + { + return sf_rtos_mmc_dev[workable_dev]; + } + } From b9e1fda503c87d9b5b43502e525c5574d708c113 Mon Sep 17 00:00:00 2001 From: "sober.song" Date: Wed, 27 Dec 2023 15:33:04 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9merge=20Branch=5FS550=5FF?= =?UTF-8?q?ast=5FEmmc=E6=96=87=E4=BB=B6=E5=86=B2=E7=AA=81=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/PrjCfg_HUNTING_S550.h | 8 +- .../source/cardv/SrcCode/System/SysMain.c | 41 +- .../source/cardv/SrcCode/System/SysMain_Exe.c | 42 +- .../source/cardv/SrcCode/System/SysMain_cmd.c | 2 +- .../UIApp/Background/UIBackgroundObj.c | 8 + .../UIApp/Background/UIBackgroundObj.h | 1 + .../SrcCode/UIApp/Movie/UIAppMovie_Exe.c | 15 +- .../SrcCode/UIApp/Photo/UIAppPhoto_Exe.c | 10 +- .../SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c | 2 +- .../LVGL_SPORTCAM/Resource/Images/images.c | 576 ++++++++++++++++++ .../Resource/Languages/Language_DE.c | 2 + .../Resource/Languages/Language_EN.c | 4 +- .../Resource/Languages/Language_ES.c | 2 + .../Resource/Languages/Language_FR.c | 2 + .../Resource/Languages/Language_IT.c | 2 + .../Resource/Languages/Language_JP.c | 2 + .../Resource/Languages/Language_PO.c | 2 + .../Resource/Languages/Language_RU.c | 2 + .../Resource/Languages/Language_SC.c | 2 + .../Resource/Languages/Language_TC.c | 2 + .../UIFlowLVGL.UIFlowMenuCommonOption.lvglscr | 45 +- .../UIFlowLVGL.UIFlowMovie.lvglscr | 120 ++-- .../UIFlowLVGL.UIFlowPhoto.lvglscr | 32 +- .../UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvgllang | 28 +- .../UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp | 15 + .../UIFlowClose/UIFlowCloseEventCallback.c | 8 +- .../UIFlowClose/UIFlowCloseEventCallback.h | 7 +- .../LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c | 5 + .../UIFlowMenuCommonConfirmEventCallback.c | 12 +- .../UIFlowMenuCommonItem/MenuGeneral.c | 49 +- .../UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h | 3 + .../UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c | 2 +- .../UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h | 1 + .../UIFlowMenuCommonItem/MenuSend.c | 60 +- .../UIFlowMenuCommonItem/MenuSend.h | 4 +- .../UIFlowMenuCommonItemEventCallback.c | 70 ++- .../UIFlowMenuCommonOption.c | 30 +- .../UIFlowMenuCommonOptionEventCallback.c | 4 +- .../UIFlowLVGL/UIFlowMovie/UIFlowMovie.c | 118 ++-- .../UIFlowLVGL/UIFlowMovie/UIFlowMovie.h | 2 +- .../UIFlowMovie/UIFlowMovieEventCallback.c | 53 +- .../UIFlowPasswordEventCallback.c | 23 +- .../UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.c | 108 ++-- .../UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.h | 2 +- .../UIFlowPhoto/UIFlowPhotoEventCallback.c | 174 ++++-- .../UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c | 8 +- .../UIFlowPlay/UIFlowPlayEventCallback.c | 36 +- .../UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c | 57 +- .../UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h | 2 +- .../UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c | 16 +- .../UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h | 2 + code/application/source/mem/mem.c | 2 +- 52 files changed, 1444 insertions(+), 381 deletions(-) diff --git a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h index 3f4c08c93..e3a882150 100755 --- a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h @@ -922,7 +922,7 @@ #define HUNTING_MCU_UART ENABLE #define HUNTING_IR_LED_940 ENABLE #define SF_EXIF_MN_BUF_SIZE 256 -#define SF_BASE_VERSION "7MR5RCwDC01" +#define SF_BASE_VERSION "7MR5RCwDC05" #define HW_S530 DISABLE #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ #define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */ @@ -946,7 +946,7 @@ #define SF_IS_RELEASE ENABLE #define PHOTO_ISP_STAMP DISABLE -#define SF_BASE_VERSION_FEA "R2.3" +#define SF_BASE_VERSION_FEA "R6.0" #define SF_GPS_SUPPORT 1 #define SF_SEND_LIST_ITEM_LENGTH 15 #define SF_4G_REGISTER_NETWORK_COUNT 230 @@ -967,8 +967,8 @@ #define SF_HW_TEST DISABLE #define SF_MODULE_UP_FILE "EG915QNA.tar.bz2" #define SF_MODULE_UP_FILE_PATH "/mnt/sd/EG915QNA.tar.bz2" -#define SF_CAM_UP_FILE "S530.tar.bz2" -#define SF_CAM_UP_FILE_PATH "/mnt/sd/S530.tar.bz2" +#define SF_CAM_UP_FILE "CAM_OTA_S550/SPHOST_REVEAL.BIN" +#define SF_CAM_UP_FILE_PATH "/mnt/sd/FW98565A.bin" #define SF_CAMERA_GPS_INFO_FILENAME "/tmp/gps.txt" #define SF_UBOOT_UPDATA_FW ENABLE diff --git a/code/application/source/cardv/SrcCode/System/SysMain.c b/code/application/source/cardv/SrcCode/System/SysMain.c index 82d051e3a..514ee476b 100644 --- a/code/application/source/cardv/SrcCode/System/SysMain.c +++ b/code/application/source/cardv/SrcCode/System/SysMain.c @@ -569,7 +569,7 @@ void UserMainProc(void) lv_task_set_prio(indev_keypad->driver.read_task, LV_TASK_PRIO_OFF); while(!bUI_Quit) { - + bool printKey = true; Ux_WaitEvent(&evt, ¶mNum, paramArray); if(!evt) { @@ -595,6 +595,43 @@ void UserMainProc(void) DBG_WRN("received key event(%lx) without key state\r\n", evt); } + if(printKey){ + switch((uint32_t)lv_user_keymap_find(evt)){ + case LV_KEY_DOWN: + case LV_KEY_NEXT: + case 134: + { + printf("[Key]>>>DOWN\n"); + break; + } + case LV_KEY_UP: + case LV_KEY_PREV: + case 133: + { + printf("[Key]>>>UP\n"); + break; + } + case LV_KEY_LEFT: + { + printf("[Key]>>>LEFT\n"); + break; + } + case LV_KEY_RIGHT: + { + printf("[Key]>>>RIGHT\n"); + break; + } + case LV_KEY_ENTER: + { + printf("[Key]>>>ENTER\n"); + break; + } + } + printKey = false; + } + + + g_keyboard_value = evt; if((paramArray[0] > NVTEVT_KEY_PRESS_START && paramArray[0] < NVTEVT_KEY_PRESS_END) || @@ -773,6 +810,8 @@ exit: { DBG_DUMP("LogFile_Close ...\n"); LogFile_Close(); + system("rm -rf /mnt/sd/LOG/*dummy*");//Clear intermediate files. + system("sync"); } #endif #else diff --git a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c index 16099b46b..c1d5c49af 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c @@ -156,9 +156,9 @@ INT32 System_GetBootFirstMode(void) printf("%s:%d CamMode :%d\n", __FUNCTION__, __LINE__,puiPara->CamMode); if(GxUSB_GetIsUSBPlug()) { - return PRIMARY_MODE_PHOTO; + return PRIMARY_MODE_USBMSDC; } - else if((PWR_ON_SETUP != PowerOnMode) /*|| (sf_get_fw_update())*/) + else if((PWR_ON_SETUP != PowerOnMode) && (PWR_ON_MCU_UPDATA != PowerOnMode)/*|| (sf_get_fw_update())*/) { return PRIMARY_MODE_TRANSCODE; } @@ -417,11 +417,20 @@ BOOL System_GetShutdownBegin(void) { return g_IsShutdownBegin; } - +#define DO_NOT_SHOW_POWER_OFF 0 +#define SHOW_POWER_OFF 1 INT32 System_OnShutdown(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { + UINT32 displayShow = SHOW_POWER_OFF; + BOOL isMenu = sf_is_menu_open(); + if ( paramNum >= 2) + { + DBG_DUMP("^MOn Shutdown begin paramNum:%d paramArray[0]:%d paramArray[1]:%d\r\n",paramNum, paramArray[0], paramArray[1]); + displayShow = paramArray[1]; + } + if (paramNum >= 1 /*&& paramArray[0] == 0*/) + { //power-off begin DBG_DUMP("^MOn Shutdown begin paramNum:%d paramArray:%d\r\n",paramNum, paramArray[0]); - if (paramNum == 1 /*&& paramArray[0] == 0*/) { //power-off begin g_IsShutdownBegin=TRUE; #if (DISPLAY_FUNC == ENABLE) @@ -468,14 +477,27 @@ INT32 System_OnShutdown(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) } else { #if (POWEROFFLOGO_FUNCTION == ENABLE) #if HUNTING_CAMERA_MCU == ENABLE - if(sf_get_mode_flag()) + if(sf_get_mode_flag() && SHOW_POWER_OFF == displayShow) #endif { - GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1 - GxDisplay_Flush(LAYER_OSD1); - - Display_ShowSplash(SPLASH_POWEROFF); - SwTimer_DelayMs(500); + if (FALSE == isMenu) + { + GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1 + GxDisplay_Flush(LAYER_OSD1); + Display_ShowSplash(SPLASH_POWEROFF); + SwTimer_DelayMs(500); + } + else + { + Display_ShowSplash(SPLASH_POWEROFF); + SwTimer_DelayMs(500); + GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1 + GxDisplay_Flush(LAYER_OSD1); + } + // Display_ShowSplash(SPLASH_POWEROFF); + // SwTimer_DelayMs(500); + // GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1 + // GxDisplay_Flush(LAYER_OSD1); } #endif } diff --git a/code/application/source/cardv/SrcCode/System/SysMain_cmd.c b/code/application/source/cardv/SrcCode/System/SysMain_cmd.c index 85fb60065..814ef68dd 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_cmd.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_cmd.c @@ -280,7 +280,7 @@ SXCMD_ITEM("gprssw %", sf_cmd_gprs_switch, "gprssw 0/1") SXCMD_ITEM("uiprint %", sf_cmd_para_printf, "uiprint") SXCMD_ITEM("blusw %", cmd_blu_switch, "blusw 0/1") SXCMD_ITEM("wifisw %", cmd_wifi_switch, "wifisw 0/1") - +SXCMD_ITEM("lcdbk %", sf_set_backlight_status, "lcdbk 0/1") #endif #if FS_MULTI_STRG_FUNC /* test cmd */ diff --git a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c index 933e6a002..5bc501f51 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c +++ b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c @@ -1,4 +1,5 @@ #include "PrjInc.h" +#include "UIApp/Background/UIBackgroundObj.h" #include "sf_param_common.h" #include "sys_mempool.h" #include "Dx.h" @@ -53,6 +54,7 @@ static UINT32 BackgroundCopyCard2ToCard1(void); #endif static UINT32 BackgroundFormat(void); static UINT32 BackgroundFormatCard(void); +static UINT32 BackgroundFormatEmmc(void); static UINT32 BackgroundFormatNand(void); static UINT32 BackgroundNumReset(void); #if (USE_DPOF==ENABLE) @@ -143,6 +145,7 @@ BKG_JOB_ENTRY gBackgroundExtFuncTable[] = { #endif {NVTEVT_BKW_FORMAT, BackgroundFormat}, {NVTEVT_BKW_FORMAT_CARD, BackgroundFormatCard}, + {NVTEVT_BKW_FORMAT_EMMC, BackgroundFormatEmmc}, {NVTEVT_BKW_FORMAT_NAND, BackgroundFormatNand}, {NVTEVT_BKW_NUM_RESET, BackgroundNumReset}, #if (USB_MODE==ENABLE) @@ -856,6 +859,11 @@ UINT32 BackgroundFormat(void) return (UINT32)ret; } +UINT32 BackgroundFormatEmmc(void) +{ + printf(" BackgroundFormatEmmc\n "); + return TRUE; +} UINT32 BackgroundFormatCard(void) { int ret; diff --git a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.h b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.h index 4eb1528eb..79bdda107 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.h +++ b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.h @@ -11,6 +11,7 @@ typedef enum { NVTEVT_BKW_COPYCARD2ToCARD1, NVTEVT_BKW_FORMAT, NVTEVT_BKW_FORMAT_CARD, + NVTEVT_BKW_FORMAT_EMMC, NVTEVT_BKW_FORMAT_NAND, NVTEVT_BKW_NUM_RESET, NVTEVT_BKW_SETDPOF, diff --git a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c index 00f002dee..46809a47c 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c @@ -37,9 +37,6 @@ #endif #include "vendor_videoout.h" #include "IOCfg.h" -#include "SF_SysStrgMng.h" - - #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER /////////////////////////////////////////////////////////////////////////////// @@ -1221,6 +1218,7 @@ BOOL MovieExe_CheckSNFull(void) static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) { + #if USE_FILEDB static struct tm CurDateTime = {0}; @@ -1253,9 +1251,6 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) #elif USE_DCF UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle(); - - DBG_DUMP("System_Get_DCF_Handle, dcf_handle: %d\n", dcf_handle); - UINT32 nextFolderID = 0, nextFileID = 0; if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) { @@ -1265,7 +1260,7 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID); DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); DCF_AddDBfileEx(dcf_handle, pFileName); - DBG_WRN("0000 %s added to DCF Path%lu\r\n", pFileName, dcf_handle); + DBG_DUMP("%s added to DCF Path%lu\r\n", pFileName, dcf_handle); #if HUNTING_CAMERA_MCU == ENABLE char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'}; sprintf(tmp, "S%03d%04d.JPG", nextFolderID, nextFileID); @@ -1284,6 +1279,8 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) snprintf(thumb_current_path_clone, sizeof(thumb_current_path_clone), "%s", pFileName); } #endif + + } #endif @@ -1324,8 +1321,7 @@ static void MovieExe_RawEncodeFileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) #elif USE_DCF UINT32 nextFolderID = 0, nextFileID = 0; - - UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle(); + UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle(); if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) { DBG_ERR("Exceed max dcf file!\r\n"); @@ -1333,7 +1329,6 @@ static void MovieExe_RawEncodeFileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) } else { DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID); DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_JPG, pFileName); - DBG_WRN("1111 %s added to DCF Path%lu\r\n", pFileName, dcf_handle); } #endif diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index 33bfdd015..896fab468 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -6832,22 +6832,22 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data) FileSys_CloseFile(fp); #if HUNTING_CAMERA_MCU == ENABLE char tmp2[64] = {'\0'}; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); + //UIMenuStoreInfo *puiPara = sf_ui_para_get(); memset(tmp, '\0', sizeof(tmp)); SF_FILE_TYPE_E enFileType = 0; - if(SF_CAM_MODE_PHOTO == puiPara->CamMode){ + if(SF_CAM_MODE_PHOTO == sf_get_cammode_statu()){ enFileType = SF_FILE_TYPE_PIC_SMALL; - }else if(SF_CAM_MODE_PHOTO_VIDEO == puiPara->CamMode){ + }else if(SF_CAM_MODE_PHOTO_VIDEO == sf_get_cammode_statu()){ enFileType = SF_FILE_TYPE_PIC_VIDEO; } - else if(SF_CAM_MODE_VIDEO2 == puiPara->CamMode){ + else if(SF_CAM_MODE_VIDEO2 == sf_get_cammode_statu()){ enFileType = SF_FILE_TYPE_PIC_VIDEO; } snprintf(tmp, sizeof(tmp), "%sW%s%s.JPG", SF_SEND_LIST_DIR, folder, number); /* DCF 8.3 naming rule */ snprintf(tmp2, sizeof(tmp2), "W%s%s.JPG", folder, number); /* DCF 8.3 naming rule */ DBG_DUMP("PHOTO THUMB %s \n %s\n", tmp, tmp2); sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, enFileType); - if((!sf_get_mode_flag()) || ((FALSE == sf_check_net_work_flag()) && (0 < sf_cardv_get_cq_signal()) && (SF_CAM_MODE_PHOTO == puiPara->CamMode))) + if((!sf_get_mode_flag()) || ((FALSE == sf_check_net_work_flag()) && (0 < sf_cardv_get_cq_signal()) && (SF_CAM_MODE_PHOTO == sf_get_cammode_statu()))) { if(SUCCESS == sf_share_mem_file_down(0, 0)){ sf_set_send_statu(TRUE); diff --git a/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c b/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c index 8e199bc73..281a37e04 100755 --- a/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c @@ -267,7 +267,7 @@ INT32 MSDCExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) pLastStrgDev = GxStrg_GetDevice(0); if (pLastStrgDev == 0) { - //PowerOn_CB() POWERON_CB_SXOPEN �S�������Ұ�File System + //PowerOn_CB() POWERON_CB_SXOPEN SҰFile System DBG_ERR("MSDC: Wait for FS start...\r\n"); FileSys_WaitFinish(); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c index ba2e7cac2..821102229 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Images/images.c @@ -95943,6 +95943,390 @@ const lv_img_dsc_t sf_list_selected = { }; +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT1 +#define LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT1 +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT1 uint8_t sf_list_selected_next1_map[] = { + /*Pixel format: Red: 8 bit, Green: 8 bit, Blue: 8 bit*/ +#if LV_COLOR_DEPTH == 8 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +#elif LV_COLOR_DEPTH == 16 + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, +#elif LV_COLOR_DEPTH == 24 + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, +#elif LV_COLOR_DEPTH == 32 + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, +#endif + +}; + +const lv_img_dsc_t sf_list_selected_next1 = { + .header.always_zero = 0, + .header.w = 56, + .header.h = 40, + .data_size = 2240 * LV_COLOR_SIZE / 8, +#if ((LV_COLOR_DEPTH == 32) || (LV_COLOR_DEPTH == 24)) + .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, +#else + .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, +#endif + .data = sf_list_selected_next1_map +}; + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT2 +#define LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT2 +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_SF_LIST_SELECTED_NEXT2 uint8_t sf_list_selected_next2_map[] = { + /*Pixel format: Red: 8 bit, Green: 8 bit, Blue: 8 bit*/ +#if LV_COLOR_DEPTH == 8 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +#elif LV_COLOR_DEPTH == 16 + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, +#elif LV_COLOR_DEPTH == 24 + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, +#elif LV_COLOR_DEPTH == 32 + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, +#endif + +}; + +const lv_img_dsc_t sf_list_selected_next2 = { + .header.always_zero = 0, + .header.w = 56, + .header.h = 40, + .data_size = 2240 * LV_COLOR_SIZE / 8, +#if ((LV_COLOR_DEPTH == 32) || (LV_COLOR_DEPTH == 24)) + .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, +#else + .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, +#endif + .data = sf_list_selected_next2_map +}; + + #ifndef LV_ATTRIBUTE_MEM_ALIGN #define LV_ATTRIBUTE_MEM_ALIGN #endif @@ -101543,6 +101927,198 @@ const lv_img_dsc_t sf_qr = { }; +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_SF_QR_PAGE +#define LV_ATTRIBUTE_IMG_SF_QR_PAGE +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_SF_QR_PAGE uint8_t sf_qr_page_map[] = { + /*Pixel format: Red: 8 bit, Green: 8 bit, Blue: 8 bit*/ +#if LV_COLOR_DEPTH == 8 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +#elif LV_COLOR_DEPTH == 16 + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0x65,0x45,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, + 0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50,0xea,0x50, +#elif LV_COLOR_DEPTH == 24 + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0x65,0x45,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, + 0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff,0xea,0x50,0xff, +#elif LV_COLOR_DEPTH == 32 + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x29,0xaf,0x42,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, + 0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff,0x57,0x1f,0x55,0xff, +#endif + +}; + +const lv_img_dsc_t sf_qr_page = { + .header.always_zero = 0, + .header.w = 48, + .header.h = 40, + .data_size = 1920 * LV_COLOR_SIZE / 8, +#if ((LV_COLOR_DEPTH == 32) || (LV_COLOR_DEPTH == 24)) + .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, +#else + .header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED, +#endif + .data = sf_qr_page_map +}; + + #ifndef LV_ATTRIBUTE_MEM_ALIGN #define LV_ATTRIBUTE_MEM_ALIGN #endif diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_DE.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_DE.c index 146442ad2..d85aa8471 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_DE.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_DE.c @@ -682,6 +682,8 @@ lv_plugin_string_t lv_plugin_DE_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_EN.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_EN.c index 2dadcd4cb..9151db178 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_EN.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_EN.c @@ -585,7 +585,7 @@ lv_plugin_string_t lv_plugin_EN_string_table[] = { { "Sensitivity", 11 }, /* LV_PLUGIN_STRING_ID_STRING_SENSITIVITY */ { "Delay", 5 }, /* LV_PLUGIN_STRING_ID_STRING_DELAY */ { "Operating Time", 14 }, /* LV_PLUGIN_STRING_ID_STRING_OPERATING_TIME */ - { "Format SD", 9 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD */ + { "Format", 6 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD */ { "Date&Time", 9 }, /* LV_PLUGIN_STRING_ID_STRING_DATE_AND_TIME */ { "Max Num/Day", 11 }, /* LV_PLUGIN_STRING_ID_STRING_MAX_NUM_DAY */ { "Settings Check", 14 }, /* LV_PLUGIN_STRING_ID_STRING_SETTINGS_CHECK */ @@ -682,6 +682,8 @@ lv_plugin_string_t lv_plugin_EN_string_table[] = { { "40M", 3 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "Enter Work Mode?", 16 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "Confirm delete?", 15 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ + { "EMMC", 4 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ + { "SD Card", 7 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_ES.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_ES.c index 462adf18c..28a0c207e 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_ES.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_ES.c @@ -682,6 +682,8 @@ lv_plugin_string_t lv_plugin_ES_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_FR.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_FR.c index 68f97dbad..2532a6975 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_FR.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_FR.c @@ -682,6 +682,8 @@ lv_plugin_string_t lv_plugin_FR_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_IT.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_IT.c index 83324ea73..a2c00ecff 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_IT.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_IT.c @@ -682,6 +682,8 @@ lv_plugin_string_t lv_plugin_IT_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_JP.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_JP.c index d06665454..1cd303643 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_JP.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_JP.c @@ -682,6 +682,8 @@ lv_plugin_string_t lv_plugin_JP_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_PO.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_PO.c index 457787f16..260de90e3 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_PO.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_PO.c @@ -682,6 +682,8 @@ lv_plugin_string_t lv_plugin_PO_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_RU.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_RU.c index 2a8eb2956..9f75910ef 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_RU.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_RU.c @@ -682,6 +682,8 @@ lv_plugin_string_t lv_plugin_RU_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_SC.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_SC.c index fd58a31fd..54cc8a378 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_SC.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_SC.c @@ -682,6 +682,8 @@ lv_plugin_string_t lv_plugin_SC_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_TC.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_TC.c index ce9da501d..7ac4da87d 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_TC.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/Resource/Languages/Language_TC.c @@ -682,6 +682,8 @@ lv_plugin_string_t lv_plugin_TC_string_table[] = { { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_SIZE_40M */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_ENTER_WORK_MODE */ { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_CONFIRM_DELETE */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC */ + { "", 0 }, /* LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD */ }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr index de0cce347..2947216da 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr @@ -20,7 +20,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 81, + "width": 0, "x": 10, "y": 10 }, @@ -29,7 +29,7 @@ "long mode": "Expand", "name": "label_option1", "recolor": false, - "string id": "None", + "string id": "STRID_NULL_", "styles": [ { "Text": { @@ -68,11 +68,14 @@ "state": 5 }, { + "Text": { + "text_color": "0x575757" + }, "part": 0, "state": 6 } ], - "text": "1080P30", + "text": "", "widget": "Label" }, { @@ -199,7 +202,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 81, + "width": 0, "x": 10, "y": 10 }, @@ -208,7 +211,7 @@ "long mode": "Expand", "name": "label_option2", "recolor": false, - "string id": "None", + "string id": "STRID_NULL_", "styles": [ { "Text": { @@ -244,11 +247,14 @@ "state": 5 }, { + "Text": { + "text_color": "0x575757" + }, "part": 0, "state": 6 } ], - "text": "1080P30", + "text": "", "widget": "Label" }, { @@ -375,7 +381,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 81, + "width": 0, "x": 10, "y": 10 }, @@ -384,7 +390,7 @@ "long mode": "Expand", "name": "label_option3", "recolor": false, - "string id": "None", + "string id": "STRID_NULL_", "styles": [ { "Text": { @@ -420,11 +426,14 @@ "state": 5 }, { + "Text": { + "text_color": "0x575757" + }, "part": 0, "state": 6 } ], - "text": "1080P30", + "text": "", "widget": "Label" }, { @@ -551,7 +560,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 81, + "width": 0, "x": 10, "y": 10 }, @@ -560,7 +569,7 @@ "long mode": "Expand", "name": "label_option4", "recolor": false, - "string id": "None", + "string id": "STRID_NULL_", "styles": [ { "Text": { @@ -596,11 +605,14 @@ "state": 5 }, { + "Text": { + "text_color": "0x575757" + }, "part": 0, "state": 6 } ], - "text": "1080P30", + "text": "", "widget": "Label" }, { @@ -727,7 +739,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 81, + "width": 0, "x": 10, "y": 10 }, @@ -736,7 +748,7 @@ "long mode": "Expand", "name": "label_option5", "recolor": false, - "string id": "None", + "string id": "STRID_NULL_", "styles": [ { "Text": { @@ -772,11 +784,14 @@ "state": 5 }, { + "Text": { + "text_color": "0x575757" + }, "part": 0, "state": 6 } ], - "text": "1080P30", + "text": "", "widget": "Label" }, { diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMovie.lvglscr b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMovie.lvglscr index c3f853793..9aae795c2 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMovie.lvglscr +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMovie.lvglscr @@ -1289,7 +1289,7 @@ "height": 30, "width": 90, "x": 38, - "y": 10 + "y": 5 }, "hidden": false, "locked": false, @@ -1346,7 +1346,7 @@ "height": 40, "width": 38, "x": 0, - "y": 0 + "y": -5 }, "hidden": true, "locked": false, @@ -1820,58 +1820,6 @@ "text": "", "widget": "Label" }, - { - "auto size": true, - "class": "lv_img", - "click": false, - "drag": false, - "event callback": "", - "geometry": { - "height": 3, - "width": 320, - "x": 0, - "y": 119 - }, - "hidden": false, - "locked": false, - "name": "image_line", - "offset": { - "X": 0, - "Y": 0 - }, - "source": "sy_redline2", - "styles": [ - { - "part": 0, - "state": 0 - }, - { - "part": 0, - "state": 1 - }, - { - "part": 0, - "state": 2 - }, - { - "part": 0, - "state": 3 - }, - { - "part": 0, - "state": 4 - }, - { - "part": 0, - "state": 5 - }, - { - "part": 0, - "state": 6 - } - ], - "widget": "Image" - }, { "align": "Center", "class": "lv_label", @@ -1929,6 +1877,70 @@ ], "text": "Searching...", "widget": "Label" + }, + { + "align": "Center", + "class": "lv_label", + "click": false, + "drag": false, + "event callback": "", + "font type": "Font_Type0", + "geometry": { + "height": 2, + "width": 320, + "x": 0, + "y": 119 + }, + "hidden": false, + "locked": false, + "long mode": "Roll", + "name": "label_line", + "recolor": false, + "string id": "None", + "styles": [ + { + "Background": { + "bg_color": "0xff0000", + "bg_grad_color": "0xff0000", + "bg_opa": 255 + }, + "Text": { + "text_color": "0xff0000", + "text_font": "SF-UI-Text-Medium 16 1bpp", + "text_opa": 0, + "text_sel_bg_color": "0x00b495", + "text_sel_color": "0x3c3c3c" + }, + "part": 0, + "state": 0 + }, + { + "part": 0, + "state": 1 + }, + { + "part": 0, + "state": 2 + }, + { + "part": 0, + "state": 3 + }, + { + "part": 0, + "state": 4 + }, + { + "part": 0, + "state": 5 + }, + { + "part": 0, + "state": 6 + } + ], + "text": "", + "widget": "Label" } ] } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowPhoto.lvglscr b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowPhoto.lvglscr index 7c3a31f66..4056df4ae 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowPhoto.lvglscr +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowPhoto.lvglscr @@ -2395,27 +2395,38 @@ "widget": "Label" }, { - "auto size": true, - "class": "lv_img", + "align": "Center", + "class": "lv_label", "click": false, "drag": false, "event callback": "", + "font type": "Font_Type0", "geometry": { - "height": 3, + "height": 2, "width": 320, "x": 0, "y": 119 }, "hidden": false, "locked": false, - "name": "image_line", - "offset": { - "X": 0, - "Y": 0 - }, - "source": "sy_redline2", + "long mode": "Roll", + "name": "label_line", + "recolor": false, + "string id": "None", "styles": [ { + "Background": { + "bg_color": "0xff0000", + "bg_grad_color": "0xff0000", + "bg_opa": 255 + }, + "Text": { + "text_color": "0xff0000", + "text_font": "SF-UI-Text-Medium 16 1bpp", + "text_opa": 0, + "text_sel_bg_color": "0x00b495", + "text_sel_color": "0x3c3c3c" + }, "part": 0, "state": 0 }, @@ -2444,7 +2455,8 @@ "state": 6 } ], - "widget": "Image" + "text": "", + "widget": "Label" } ] } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvgllang b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvgllang index 75b154271..2a976375c 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvgllang +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvgllang @@ -852,7 +852,7 @@ "Sensitivity", "Delay", "Operating Time", - "Format SD", + "Format", "Date&Time", "Max Num/Day", "Settings Check", @@ -948,7 +948,9 @@ "32M", "40M", "Enter Work Mode?", - "Confirm delete?" + "Confirm delete?", + "EMMC", + "SD Card" ] }, { @@ -1633,6 +1635,8 @@ "", "", "", + "", + "", "" ] }, @@ -2318,6 +2322,8 @@ "", "", "", + "", + "", "" ] }, @@ -3003,6 +3009,8 @@ "", "", "", + "", + "", "" ] }, @@ -3688,6 +3696,8 @@ "", "", "", + "", + "", "" ] }, @@ -4373,6 +4383,8 @@ "", "", "", + "", + "", "" ] }, @@ -5058,6 +5070,8 @@ "", "", "", + "", + "", "" ] }, @@ -5743,6 +5757,8 @@ "", "", "", + "", + "", "" ] }, @@ -6428,6 +6444,8 @@ "", "", "", + "", + "", "" ] }, @@ -7113,6 +7131,8 @@ "", "", "", + "", + "", "" ] } @@ -7798,6 +7818,8 @@ "STRING_SIZE_32M", "STRING_SIZE_40M", "STRING_ENTER_WORK_MODE", - "STRING_CONFIRM_DELETE" + "STRING_CONFIRM_DELETE", + "STRING_FORMAT_EMMC", + "STRING_FORMAT_SD_CARD" ] } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp index 137dac68b..a998ce35d 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.lvglp @@ -4672,6 +4672,16 @@ "filename": "icons/sf_list_Selected.bmp", "name": "sf_list_Selected" }, + { + "colorFormat": "Indexed 256 in RGB332", + "filename": "icons/sf_list_Selected_next1.bmp", + "name": "sf_list_Selected_next1" + }, + { + "colorFormat": "Indexed 256 in RGB332", + "filename": "icons/sf_list_Selected_next2.bmp", + "name": "sf_list_Selected_next2" + }, { "colorFormat": "Indexed 256 in RGB332", "filename": "icons/sf_menu_bg.bmp", @@ -4792,6 +4802,11 @@ "filename": "icons/sf_qr.bmp", "name": "sf_qr" }, + { + "colorFormat": "Indexed 256 in RGB332", + "filename": "icons/sf_qr_page.bmp", + "name": "sf_qr_page" + }, { "colorFormat": "Indexed 256 in RGB332", "filename": "icons/sf_reset.bmp", diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.c index 2141d19fe..2d64deba0 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.c @@ -1,3 +1,4 @@ +#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h" #include "UIFlowLVGL/UIFlowLVGL.h" #include "PrjInc.h" #include "ImageApp/ImageApp_Photo.h" @@ -9,6 +10,7 @@ #define UPDATE_TIMEER_MS 200 static lv_task_t* update_timer = NULL; static lv_group_t* gp = NULL; +static DISPLAY_FINAL_E gPowerOff = DISPLAY_FINAL_END; static void set_indev_keypad_group(lv_obj_t* obj) { if(gp == NULL){ @@ -37,7 +39,8 @@ static void task_update_timer_cb(lv_task_t* task) closing_index ++; if (time_ms == 0) { - Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); + printf("task_update_timer_cb gPowerOff = %d\n", gPowerOff); + Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 2, APP_POWER_OFF_APO, gPowerOff); if(update_timer){ lv_task_del(update_timer); update_timer = NULL; @@ -45,8 +48,9 @@ static void task_update_timer_cb(lv_task_t* task) } } } -void OpenClosingScreen(void) +void OpenClosingScreen(const DISPLAY_FINAL_E powerOff) { + gPowerOff = powerOff; lv_plugin_scr_open(UIFlowClose, NULL); } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h index c23661bc4..88535d321 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h @@ -3,5 +3,10 @@ #include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h" #include "UIFlowLVGL/UIFlowLVGL.h" #include "Resource/Plugin/lvgl_plugin.h" -void OpenClosingScreen(void); +typedef enum { + DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF = 0, + DISPLAY_FINAL_SHOW_POWER_OFF, + DISPLAY_FINAL_END +} DISPLAY_FINAL_E; +void OpenClosingScreen(const DISPLAY_FINAL_E powerOff); #endif /*UIFLOW_CLOSE_EVENT_CALLBACK_H*/ \ No newline at end of file diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c index 39a071dd3..58dc62217 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowLVGL.c @@ -472,6 +472,8 @@ lv_plugin_img_t lv_plugin_UIFlowLVGL_img_table[] = { &sf_image_size }, { &sf_left }, { &sf_list_selected }, + { &sf_list_selected_next1 }, + { &sf_list_selected_next2 }, { &sf_menu_bg }, { &sf_menu_option_select }, { &sf_menu_release }, @@ -496,6 +498,7 @@ lv_plugin_img_t lv_plugin_UIFlowLVGL_img_table[] = { &sf_play }, { &sf_pwd_down_up }, { &sf_qr }, + { &sf_qr_page }, { &sf_reset }, { &sf_right }, { &sf_sd_128gb }, @@ -1359,6 +1362,8 @@ lv_plugin_res_id lv_plugin_fixed_language_string_id_table[] = { LV_PLUGIN_RES_ID_NONE, /* 679*/ LV_PLUGIN_RES_ID_NONE, /* 680*/ LV_PLUGIN_RES_ID_NONE, /* 681*/ + LV_PLUGIN_RES_ID_NONE, /* 682*/ + LV_PLUGIN_RES_ID_NONE, /* 683*/ }; lv_plugin_res_t lv_plugin_UIFlowLVGL_res = diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmEventCallback.c index afc5d8d88..7628eb348 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmEventCallback.c @@ -1,4 +1,5 @@ #include "PrjInc.h" +#include "UIApp/Background/UIBackgroundObj.h" #include "UIFlowLVGL/UIFlowLVGL.h" #include "UIApp/Play/UIPlayComm.h" #include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h" @@ -301,6 +302,11 @@ void UIFlowMenuCommonConfirmAPI_Open(uint32_t itemID) gBKGEvt = NVTEVT_BKW_FORMAT_CARD; lv_label_set_text(Confirm_label, "Format SD"); break; + case IDM_FORMAT_EMMC: + strID = LV_PLUGIN_STRING_ID_STRING_FORMAT_SD; + gBKGEvt = NVTEVT_BKW_FORMAT_EMMC; + lv_label_set_text(Confirm_label, "Format EMMC"); + break; case IDM_CAMERA_FW_UPGRADE: strID = LV_PLUGIN_STRING_ID_STRING_CAMERA_FW_UPGRADE; gBKGEvt = NVTEVT_BKW_CAMERA_FW_UPGRADE; @@ -501,6 +507,10 @@ static void UIFlowMenuCommonConfirm_MessageBox_ValueChanged(lv_obj_t* obj, uint3 set_msbox_hidden( true); UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRING_NO_SD, 3000); } + } else if (gBKGEvt == NVTEVT_BKW_FORMAT_EMMC) { + set_msbox_hidden( true); + UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRING_FORMATING, 20000); + BKG_PostEvent(NVTEVT_BKW_FORMAT_EMMC); } else if (gBKGEvt == NVTEVT_BKW_CAMERA_FW_UPGRADE) { if(sf_cardv_battery_value_get() < 40) { @@ -531,7 +541,7 @@ static void UIFlowMenuCommonConfirm_MessageBox_ValueChanged(lv_obj_t* obj, uint3 BKG_PostEvent(gBKGEvt); } else if (gBKGEvt == NVTEVT_BKW_ENTER_WORK_MODE) { - OpenClosingScreen(); + OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); // BKG_PostEvent(gBKGEvt); // UIFlowMenuCommonConfirm_CloseScr(); } else if (gBKGEvt) { diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c index 6247c0f37..6ce0b775d 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c @@ -55,7 +55,8 @@ TMDEF_OPTION_TEXT_S(OPERATING_TIME_OFF, TM_OPTION_ENABLE) TMDEF_OPTION_TEXT_S(OPERATING_TIME_ON, TM_OPTION_ENABLE) TMDEF_END_OPTIONS() TMDEF_BEGIN_OPTIONS(FORMAT_SD) -TMDEF_OPTION_TEXT_S(END, TM_OPTION_ENABLE) +TMDEF_OPTION_TEXT_S(FORMAT_SD_EMMC, TM_OPTION_ENABLE) +TMDEF_OPTION_TEXT_S(FORMAT_SD_CARD, TM_OPTION_ENABLE) TMDEF_END_OPTIONS() TMDEF_BEGIN_OPTIONS(DATE_AND_TIME) TMDEF_OPTION_TEXT_S(DATE_AND_TIME_AUTO_UTC, TM_OPTION_ENABLE) @@ -1045,7 +1046,36 @@ void Option_Operating_Time_Key(lv_obj_t* obj, uint32_t key) break; } } +UINT16 sf_get_month_days(UINT16 year, UINT16 month) +{ + UINT16 maxday = 0; + + printf("sf_get_month_days year=%d, month=%d\n", year, month); + + switch(month) + { + case 4: + case 6: + case 9: + case 11: + maxday = 30; + break; + case 2: + if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) + maxday = 29; + else + maxday = 28; + break; + default: + maxday = 31; + break; + } + + printf("maxday=%d\n", maxday); + + return maxday; +} // -------------------------------------------------------------------------- // DateTime // -------------------------------------------------------------------------- @@ -1084,7 +1114,10 @@ static void update_DateTime_Time_msg(lv_obj_t* obj) DBG_ERR("DateTime component is not initialized"); return; } - + if (gDateTime.Day > sf_get_month_days(gDateTime.Year, gDateTime.Mon)) + { + gDateTime.Day = sf_get_month_days(gDateTime.Year, gDateTime.Mon); + } // UIMenuStoreInfo *puiPara = sf_ui_para_get(); snprintf(DateTimeMOBuf, 3, "%02d", gDateTime.Mon); snprintf(DateTimeDDBuf, 3, "%02d", gDateTime.Day); @@ -1242,10 +1275,10 @@ void Option_DateTime_Key(lv_obj_t* obj, uint32_t key) } else if(DateTimeIndex == 2) { - if(gDateTime.Day > 1 && gDateTime.Day <= 31) + if(gDateTime.Day > 1 && gDateTime.Day <= sf_get_month_days(gDateTime.Year, gDateTime.Mon)) gDateTime.Day--; else - gDateTime.Day = 31; + gDateTime.Day = sf_get_month_days(gDateTime.Year, gDateTime.Mon); } else if(DateTimeIndex == 4) { @@ -1287,7 +1320,7 @@ void Option_DateTime_Key(lv_obj_t* obj, uint32_t key) } else if(DateTimeIndex == 2) { - if(gDateTime.Day >= 31) + if(gDateTime.Day >= sf_get_month_days(gDateTime.Year, gDateTime.Mon)) gDateTime.Day = 1; else gDateTime.Day++; @@ -1360,10 +1393,10 @@ void Option_DateTime_Key_Long_Press(lv_obj_t* obj, uint32_t key) } else if(DateTimeIndex == 2) { - if(gDateTime.Day > 0 && gDateTime.Day <= 31) + if(gDateTime.Day > 0 && gDateTime.Day <= sf_get_month_days(gDateTime.Year, gDateTime.Mon)) gDateTime.Day--; else - gDateTime.Day = 31; + gDateTime.Day = sf_get_month_days(gDateTime.Year, gDateTime.Mon); } else if(DateTimeIndex == 4) { @@ -1405,7 +1438,7 @@ void Option_DateTime_Key_Long_Press(lv_obj_t* obj, uint32_t key) } else if(DateTimeIndex == 2) { - if(gDateTime.Day >= 31) + if(gDateTime.Day >= sf_get_month_days(gDateTime.Year, gDateTime.Mon)) gDateTime.Day = 0; else gDateTime.Day++; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h index 2fb0a4c6c..e902053e8 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h @@ -121,6 +121,7 @@ enum _MENU_ID { IDM_DELAY, IDM_OPERATING_TIME, IDM_FORMAT_SD, + IDM_FORMAT_EMMC, IDM_DATE_AND_TIME, // Setting Send page @@ -712,6 +713,8 @@ enum _MENU_IDS { IDS_OPERATING_TIME_OFF = LV_PLUGIN_STRING_ID_STRID_OFF, IDS_OPERATING_TIME_ON = LV_PLUGIN_STRING_ID_STRID_ON, IDS_FORMAT_SD = LV_PLUGIN_STRING_ID_STRING_FORMAT_SD, + IDS_FORMAT_SD_EMMC = LV_PLUGIN_STRING_ID_STRING_FORMAT_EMMC, + IDS_FORMAT_SD_CARD = LV_PLUGIN_STRING_ID_STRING_FORMAT_SD_CARD, IDS_DATE_AND_TIME = LV_PLUGIN_STRING_ID_STRING_DATE_AND_TIME, IDS_DATE_AND_TIME_AUTO_UTC = LV_PLUGIN_STRING_ID_STRING_AUTO_UTC, IDS_DATE_AND_TIME_MANUAL = LV_PLUGIN_STRING_ID_STRING_MANUAL, diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c index 693ce2e30..60c8954d3 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c @@ -793,7 +793,7 @@ void show_qr_picture_page(lv_obj_t* obj) lv_obj_set_drag(QRImage, false); lv_obj_set_pos(QRImage, 210, 141); lv_obj_set_size(QRImage, 32, 32); - //lv_img_set_src(QRImage, &sf_qr_page); + lv_img_set_src(QRImage, &sf_qr_page); if(NULL != qr){ lv_obj_set_hidden(qr, false); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h index af8aa5c88..d2fcdd04d 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h @@ -16,6 +16,7 @@ extern void show_Camera_Name_page(lv_obj_t* obj); extern void hidde_Camera_Name_page(void); extern void Option_Network_Selection_Key(lv_obj_t* obj, uint32_t key); +extern void Option_qr_picture_Key(lv_obj_t* obj, uint32_t key); extern void Option_Password_Key(lv_obj_t* obj, uint32_t key); extern void Option_Password_Key_Long_Press(lv_obj_t* obj, uint32_t key); extern void Option_CAMERA_INFO_Key(lv_obj_t* obj, uint32_t key); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c index cce29470d..553ec3484 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c @@ -75,6 +75,7 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) { puiPara->GprsMode = uwOption; #define INSTANT_OPTION 1 + #define HYBIRD_OPTION 2 if (INSTANT_OPTION == puiPara->GprsMode && SF_OFF == puiPara->PirDelaySwitch) { puiPara->PirDelaySwitch = SF_ON; @@ -83,28 +84,41 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) puiPara->PirDelayTime.Sec = 15; } printf("\033[33m[Send_MenuCallback]GprsMode:%d\033[0m\n", puiPara->GprsMode); - break; + if (INSTANT_OPTION == puiPara->GprsMode || HYBIRD_OPTION == puiPara->GprsMode) + { + #define SYNC_SEND_TYPE_SETTING 0 + uwOption = SYNC_SEND_TYPE_SETTING; + printf("Sync send type settings.\n"); + memset(&(puiPara->TimeSend1), 0, sizeof(SF_PARA_TIME_S)); + memset(&(puiPara->TimeSend2), 0, sizeof(SF_PARA_TIME_S)); + memset(&(puiPara->TimeSend3), 0, sizeof(SF_PARA_TIME_S)); + memset(&(puiPara->TimeSend4), 0, sizeof(SF_PARA_TIME_S)); + } + else + { + break; + } } case IDM_SEND_TYPE: { - puiPara->SendType = uwOption; + puiPara->SendType = (uwOption == 3 ? 4 : uwOption); puiPara->TimeSend4Switch = 0; puiPara->TimeSend3Switch = 0; puiPara->TimeSend2Switch = 0; puiPara->TimeSend1Switch = 0; - switch (uwOption) + switch (puiPara->SendType) { case FOUR_TIME_DAY: puiPara->TimeSend4Switch = 1; - // break; - case TWICE_DAY: puiPara->TimeSend3Switch = 1; // break; - case ONCE_DAY: + case TWICE_DAY: puiPara->TimeSend2Switch = 1; // break; - default: + case ONCE_DAY: puiPara->TimeSend1Switch = 1; + // break; + default: break; } printf("\033[33m[Send_MenuCallback]SendType:%d\033[0m\n", puiPara->SendType); @@ -119,8 +133,8 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) case IDM_GPS: { #define GPRS_OFF_OPTION 0 - puiPara->GprsSwitch = (GPRS_OFF_OPTION == uwOption ? SF_OFF : SF_ON); - printf("\033[33m[Send_MenuCallback]GprsSwitch:%d\033[0m\n", puiPara->GprsSwitch); + puiPara->GpsSwitch = (GPRS_OFF_OPTION == uwOption ? SF_OFF : SF_ON); + printf("\033[33m[Send_MenuCallback]GpsSwitch:%d\033[0m\n", puiPara->GpsSwitch); break; } default: @@ -298,6 +312,7 @@ static void init_Matrix_style(void) } +static lv_obj_t* SelectedImage = NULL; // -------------------------------------------------------------------------- // MaxNum // -------------------------------------------------------------------------- @@ -324,10 +339,17 @@ void show_MaxNum_page(lv_obj_t* obj) sprintf(result, "%02d", puiPara->SendMaxNum); MaxNumValueLabel = lv_label_create(obj, NULL); lv_obj_set_pos(MaxNumValueLabel, 145, 93); - lv_obj_set_size(MaxNumValueLabel, 30, 24); + lv_obj_set_size(MaxNumValueLabel, 32, 24); lv_obj_add_style(MaxNumValueLabel, 0, &gMatrixStylebtn); - lv_obj_set_state(MaxNumValueLabel, LV_STATE_DEFAULT); + lv_obj_set_state(MaxNumValueLabel, LV_STATE_FOCUSED); lv_label_set_text(MaxNumValueLabel, result); + SelectedImage = lv_img_create(obj, NULL); + lv_obj_set_hidden(SelectedImage, false); + lv_obj_set_click(SelectedImage, false); + lv_obj_set_drag(SelectedImage, false); + lv_obj_set_size(SelectedImage, 32, 88); + lv_img_set_src(SelectedImage, &sf_pwd_down_up); + lv_obj_set_pos(SelectedImage, 145, 62); } void hidde_MaxNum_page(void) @@ -335,10 +357,17 @@ void hidde_MaxNum_page(void) if(MaxNumTitleLabel) { lv_obj_del(MaxNumTitleLabel); + MaxNumTitleLabel = NULL; } if(MaxNumValueLabel) { lv_obj_del(MaxNumValueLabel); + MaxNumValueLabel = NULL; + } + if(SelectedImage) + { + lv_obj_del(SelectedImage); + SelectedImage = NULL; } } @@ -362,7 +391,7 @@ void Option_MaxNum_Key(lv_obj_t* obj, uint32_t key) puiPara->SendMaxNum--; else puiPara->SendMaxNum = 99; - sprintf(result, "%d", puiPara->SendMaxNum); + sprintf(result, "%02d", puiPara->SendMaxNum); lv_label_set_text(MaxNumValueLabel, result); break; case LV_USER_KEY_PREV: @@ -371,7 +400,7 @@ void Option_MaxNum_Key(lv_obj_t* obj, uint32_t key) puiPara->SendMaxNum++; else puiPara->SendMaxNum = 1; - sprintf(result, "%d", puiPara->SendMaxNum); + sprintf(result, "%02d", puiPara->SendMaxNum); lv_label_set_text(MaxNumValueLabel, result); break; case LV_USER_KEY_LEFT: @@ -436,7 +465,6 @@ static const char* SendTimeMap_1[BUTTON_NUM_4] = // static int CameraInfoIndex = 0; // static lv_obj_t *CameraInfolabel = NULL; static lv_obj_t *SendTypeImage = NULL; -static lv_obj_t* SelectedImage = NULL; static lv_obj_t * btnm = NULL; static const char * map[] = {"1", "2", ""}; @@ -485,13 +513,13 @@ void show_send_time_page(lv_obj_t* obj, const int sendType) gMatrixIndex = 0; SendTimeIndex_0 = 0; SendTimeIndex_1 = 0; - gSendType = sendType; + #define OPTION_3 3 + gSendType = sendType == OPTION_3 ? FOUR_TIME_DAY : sendType; gPageNum = FIRST_PAGE; unsigned short settingIndex = gPageNum * 2; SendTimeMatrixObj_1 = NULL; SendTimeMatrixObj_0 = NULL; btnm = NULL; - SelectedImage = NULL; init_Matrix_style(); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h index 233ea450e..331bc4e85 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h @@ -7,8 +7,8 @@ extern TM_ITEM gTM_ITEMS_SEND[]; enum SendType { ONCE_DAY = 1, - TWICE_DAY, - FOUR_TIME_DAY, + TWICE_DAY = 2, + FOUR_TIME_DAY = 4, END }; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c index 329172162..db0102798 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c @@ -174,9 +174,9 @@ static void load_info_from_sf(void) SysSetFlag(IDF_DATE_AND_TIME, puiPara->DateAuto == SF_DATE_AUTO ? OPTION_0 : OPTION_1); SysSetFlag(IDF_MAX_NUM_DAY, puiPara->SendMaxNum == 0 ? OPTION_0 : OPTION_1); SysSetFlag(IDF_SETTINGS_CHECK, puiPara->GprsMode); - SysSetFlag(IDF_SEND_TYPE, puiPara->SendType); + SysSetFlag(IDF_SEND_TYPE, (puiPara->SendType == 4 ? 3 : puiPara->SendType)); SysSetFlag(IDF_CHECK_IN_PHOTO, puiPara->PicUpDailyReport); - SysSetFlag(IDF_GPS, puiPara->GprsSwitch); + SysSetFlag(IDF_GPS, puiPara->GpsSwitch); SysSetFlag(IDF_BATTERY_TYPE, puiPara->BatteryType); SysSetFlag(IDF_SD_LOOP, puiPara->SdLoopSwitch); } @@ -214,8 +214,9 @@ static void LV_MenuItem_OnPrev(lv_obj_t* obj) TM_PAGE *pPage; TM_ITEM *pItem; BOOL uSel_Jump = false; - + pPage = &pMenu->pPages[pMenu->SelPage]; + // pItem = &pPage->pItems[pPage->SelItem]; if (pMenu->Status == TMS_ON_TAB){ if(pPage->SelItem == 0){ // DBG_WRN("already foucs on tab !"); @@ -227,6 +228,10 @@ static void LV_MenuItem_OnPrev(lv_obj_t* obj) } }else{ OneMore: + // pItem = &pPage->pItems[pPage->SelItem - 1]; + // if(((pItem->ItemId == IDM_BATTERY_TYPE) && 0)){ + // pPage->SelItem = 0; + // } //if item = 0; up key foucs to tab if(pPage->SelItem == 0){ pMenu->Status = TMS_ON_TAB; @@ -236,8 +241,6 @@ static void LV_MenuItem_OnPrev(lv_obj_t* obj) } pPage->SelItem--; pItem = &pPage->pItems[pPage->SelItem]; - // BOOL uItem_Locked = true; // TODO: - // if(((pItem->ItemId == IDM_CAMERA_FW_UPGRADE) || (pItem->ItemId == IDM_MODULE_FW_UPGRADE)) && uItem_Locked){ if((pItem->ItemId == IDM_CAMERA_FW_UPGRADE && is_camera_fw_upgrade() == NOT_UPGRADABLE) || (pItem->ItemId == IDM_MODULE_FW_UPGRADE && is_module_fw_upgrade() == NOT_UPGRADABLE) || (pItem->ItemId == IDM_SEND_TYPE && is_send_type_disabel() == SEND_TYPE_DISABLE)) { @@ -260,20 +263,28 @@ static void LV_MenuItem_OnNext(lv_obj_t* obj) TM_PAGE *pPage; TM_ITEM *pItem; BOOL uSel_Jump = false; + // static BOOL FisrtSel_Jump = false; pPage = &pMenu->pPages[pMenu->SelPage]; -// DBG_DUMP("\r\n %s pMenu Status= %d\r\n", __func__, pMenu->Status); + pItem = &pPage->pItems[pPage->SelItem]; + if (pMenu->Status == TMS_ON_TAB){ - pMenu->Status = TMS_ON_ITEM; - pPage->SelItem = 0; + pMenu->Status = TMS_ON_ITEM; + pPage->SelItem = 0; + // pMenu->Status = TMS_ON_ITEM; + // if(((pItem->ItemId == IDM_BATTERY_TYPE) && 0)){ + // pPage->SelItem = 1; + // FisrtSel_Jump = true; + // }else{ + // pPage->SelItem = 0; + // } LV_MenuCommonItem_UpdateContent(pMenu); lv_plugin_menu_select_item(menu_item, 0); + // lv_plugin_menu_select_item(menu_item, pPage->SelItem); }else{ Onetime: pPage->SelItem++; pItem = &pPage->pItems[pPage->SelItem]; - // BOOL uItem_Locked = true; // TODO: - // if(((pItem->ItemId == IDM_CAMERA_FW_UPGRADE) || (pItem->ItemId == IDM_MODULE_FW_UPGRADE)) && uItem_Locked){ if((pItem->ItemId == IDM_CAMERA_FW_UPGRADE && is_camera_fw_upgrade() == NOT_UPGRADABLE) || (pItem->ItemId == IDM_MODULE_FW_UPGRADE && is_module_fw_upgrade() == NOT_UPGRADABLE) || (pItem->ItemId == IDM_SEND_TYPE && is_send_type_disabel() == SEND_TYPE_DISABLE)){ @@ -284,14 +295,20 @@ static void LV_MenuItem_OnNext(lv_obj_t* obj) if(pPage->SelItem >= pPage->Count){ pPage->SelItem = 0; + // if(FisrtSel_Jump /**&& uItem_Locked**/){ + // pPage->SelItem = 1; + // }else{ + // pPage->SelItem = 0; + // } LV_MenuCommonItem_UpdateContent(pMenu); lv_plugin_menu_select_item(menu_item, pPage->SelItem); return; - } + } //#NT#2023/11/03#Eric - begin //#NT#Support IVOT_N12144_CO-148 -5 PrevSel_Img = false; //#NT#2023/11/03#Eric - end + LV_MenuCommonItem_UpdateContent(pMenu); lv_plugin_menu_select_next_item(menu_item); if(uSel_Jump){ @@ -707,6 +724,11 @@ static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu) lv_plugin_menu_set_item_state(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_SF_SEND_TYPE_DIS); } + else if (pItem->ItemId == IDM_BATTERY_TYPE && 0) + { + lv_plugin_menu_set_item_state(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_SF_SEND_TYPE_DIS); + } else { lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); } @@ -722,7 +744,11 @@ static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu) if(((pPage->SelItem%PER_PAGE_NUM) == 0)&&(pMenu->Status == TMS_ON_ITEM)){ lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT2); }else{ - lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT1); + if(pItem->ItemId == IDM_BATTERY_TYPE && 0){ + lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT_DIS); + } else { + lv_plugin_img_set_src(image_option_1_scr_uiflowmenucommonitem, LV_PLUGIN_IMG_ID_SF_NEXT1); + } } //#NT#2023/11/03#Eric - end if(pItem->ItemId == IDM_NETWORK_SELECTION) @@ -800,7 +826,10 @@ static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu) } } //#NT#2023/11/03#Eric - end - lv_plugin_label_set_text(label_option_4_scr_uiflowmenucommonitem, pOption->TextId); + if(pItem->ItemId == IDM_FORMAT_SD) + lv_plugin_label_set_text(label_option_4_scr_uiflowmenucommonitem, IDS_END); + else + lv_plugin_label_set_text(label_option_4_scr_uiflowmenucommonitem, pOption->TextId); lv_plugin_label_update_font(label_option_4_scr_uiflowmenucommonitem, LV_OBJ_PART_MAIN); lv_obj_set_hidden(container_option_4_scr_uiflowmenucommonitem, false); }else if(i == 4){ @@ -935,28 +964,33 @@ static void UIFlowMenuCommonItem_Key(lv_obj_t* obj, uint32_t key) printf("[UIFlowMenuCommonItem_Key]key: %d\n",key); + switch(key) { case LV_USER_KEY_UP: + case LV_USER_KEY_DOWN: { - printf("[UIFlowMenuCommonItem_Key]error input\n",key); + //printf("[UIFlowMenuCommonItem_Key]error input\n",key); } case LV_USER_KEY_NEXT: { + //printf("[UIFlowMenuCommonItem_Key]>>>DOWN\n"); LV_MenuItem_OnNext(obj); break; } case LV_USER_KEY_PREV: { + //printf("[UIFlowMenuCommonItem_Key]>>>UP\n"); LV_MenuItem_OnPrev(obj); break; } case LV_KEY_LEFT: { + //printf("[UIFlowMenuCommonItem_Key]>>>LEFT\n"); load_info_from_sf(); LV_MenuItem_OnUp(obj); break; @@ -964,6 +998,7 @@ static void UIFlowMenuCommonItem_Key(lv_obj_t* obj, uint32_t key) case LV_KEY_RIGHT: { + //printf("[UIFlowMenuCommonItem_Key]>>>RIGHT\n"); load_info_from_sf(); LV_MenuItem_OnDown(obj); break; @@ -1008,6 +1043,9 @@ static void UIFlowMenuCommonItem_ScrClose(lv_obj_t* obj) Save_MenuInfo(); LV_MenuItem_OnClose(obj); gMenuLuck = MENU_CLOSED; + #if HUNTING_CAMERA_MCU == ENABLE + sf_set_menu_open(FALSE); + #endif } @@ -1018,6 +1056,7 @@ static void UIFlowMenuCommonItem_ChildScrClose(lv_obj_t* obj,const LV_USER_EVENT set_indev_keypad_group(obj); if(msg){ if(msg->event == NVTRET_ENTER_MENU){ + load_info_from_sf(); TM_MENU* pMenu = TM_GetMenu(); TM_PAGE *pPage; // TM_ITEM *pItem; @@ -1032,9 +1071,6 @@ static void UIFlowMenuCommonItem_ChildScrClose(lv_obj_t* obj,const LV_USER_EVENT } gMenuLuck = MENU_UNLUCK; - #if HUNTING_CAMERA_MCU == ENABLE - sf_set_menu_open(FALSE); - #endif } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c index af4b2037e..24303ae2c 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c @@ -256,7 +256,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option1_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option1_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option1_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option1 = lv_label_create(image_button_option_1, NULL); @@ -264,11 +264,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option1, false); lv_obj_set_drag(label_option1, false); lv_plugin_label_allocate_ext_attr(label_option1); - lv_label_set_text(label_option1,"1080P30"); + lv_plugin_label_set_text(label_option1, LV_PLUGIN_STRING_ID_STRID_NULL_); lv_plugin_label_allocate_ext_attr(label_option1); lv_plugin_label_set_font_type(label_option1, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option1, 10, 10); - lv_obj_set_size(label_option1, 81, 22); + lv_obj_set_size(label_option1, 0, 22); lv_obj_add_style(label_option1, 0, &label_option1_s0); label_option1_scr_uiflowmenucommonoption = label_option1; @@ -419,7 +419,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option2_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option2_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option2_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option2 = lv_label_create(image_button_option_2, NULL); @@ -427,11 +427,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option2, false); lv_obj_set_drag(label_option2, false); lv_plugin_label_allocate_ext_attr(label_option2); - lv_label_set_text(label_option2,"1080P30"); + lv_plugin_label_set_text(label_option2, LV_PLUGIN_STRING_ID_STRID_NULL_); lv_plugin_label_allocate_ext_attr(label_option2); lv_plugin_label_set_font_type(label_option2, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option2, 10, 10); - lv_obj_set_size(label_option2, 81, 22); + lv_obj_set_size(label_option2, 0, 22); lv_obj_add_style(label_option2, 0, &label_option2_s0); label_option2_scr_uiflowmenucommonoption = label_option2; @@ -582,7 +582,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option3_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option3_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option3_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option3 = lv_label_create(image_button_option_3, NULL); @@ -590,11 +590,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option3, false); lv_obj_set_drag(label_option3, false); lv_plugin_label_allocate_ext_attr(label_option3); - lv_label_set_text(label_option3,"1080P30"); + lv_plugin_label_set_text(label_option3, LV_PLUGIN_STRING_ID_STRID_NULL_); lv_plugin_label_allocate_ext_attr(label_option3); lv_plugin_label_set_font_type(label_option3, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option3, 10, 10); - lv_obj_set_size(label_option3, 81, 22); + lv_obj_set_size(label_option3, 0, 22); lv_obj_add_style(label_option3, 0, &label_option3_s0); label_option3_scr_uiflowmenucommonoption = label_option3; @@ -745,7 +745,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option4_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option4_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option4_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option4 = lv_label_create(image_button_option_4, NULL); @@ -753,11 +753,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option4, false); lv_obj_set_drag(label_option4, false); lv_plugin_label_allocate_ext_attr(label_option4); - lv_label_set_text(label_option4,"1080P30"); + lv_plugin_label_set_text(label_option4, LV_PLUGIN_STRING_ID_STRID_NULL_); lv_plugin_label_allocate_ext_attr(label_option4); lv_plugin_label_set_font_type(label_option4, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option4, 10, 10); - lv_obj_set_size(label_option4, 81, 22); + lv_obj_set_size(label_option4, 0, 22); lv_obj_add_style(label_option4, 0, &label_option4_s0); label_option4_scr_uiflowmenucommonoption = label_option4; @@ -908,7 +908,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option5_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option5_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option5_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option5 = lv_label_create(image_button_option_5, NULL); @@ -916,11 +916,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option5, false); lv_obj_set_drag(label_option5, false); lv_plugin_label_allocate_ext_attr(label_option5); - lv_label_set_text(label_option5,"1080P30"); + lv_plugin_label_set_text(label_option5, LV_PLUGIN_STRING_ID_STRID_NULL_); lv_plugin_label_allocate_ext_attr(label_option5); lv_plugin_label_set_font_type(label_option5, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option5, 10, 10); - lv_obj_set_size(label_option5, 81, 22); + lv_obj_set_size(label_option5, 0, 22); lv_obj_add_style(label_option5, 0, &label_option5_s0); label_option5_scr_uiflowmenucommonoption = label_option5; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c index 9d3d86e86..0ea6b2679 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c @@ -1138,7 +1138,7 @@ static void LV_MenuOption_OnSelected(lv_obj_t* obj) if (0 == SelOption) { printf("format emmc.\n"); - //UIFlowMenuCommonConfirmAPI_Open(IDM_FORMAT_EMMC); + UIFlowMenuCommonConfirmAPI_Open(IDM_FORMAT_EMMC); break; } if (1 == SelOption) @@ -1482,7 +1482,7 @@ static void CommondOptionKeyCallback(lv_obj_t* obj, uint32_t* key) Option_Network_Selection_Key(obj, *key); break; case IDM_QR_PICTURE: - //Option_qr_picture_Key(obj, *key); + Option_qr_picture_Key(obj, *key); break; case IDM_PASSWORD: if(isSetting) diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.c index b0898b075..6420fd164 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.c @@ -42,8 +42,8 @@ lv_obj_t* image_wifi_scr_uiflowmovie; lv_obj_t* image_motiondetect_scr_uiflowmovie; lv_obj_t* label_zoom_scr_uiflowmovie; lv_obj_t* label_maxtime_scr_uiflowmovie; -lv_obj_t* image_line_scr_uiflowmovie; lv_obj_t* label_sim_scr_uiflowmovie; +lv_obj_t* label_line_scr_uiflowmovie; lv_obj_t* UIFlowMovie_create(){ lv_obj_t *parent = lv_plugin_scr_create(); @@ -1285,7 +1285,7 @@ lv_obj_t* UIFlowMovie_create(){ lv_plugin_label_allocate_ext_attr(label_rec_time); lv_plugin_label_set_font_type(label_rec_time, LV_PLUGIN_LANGUAGE_FONT_TYPE_0); lv_label_set_long_mode(label_rec_time, LV_LABEL_LONG_CROP); - lv_obj_set_pos(label_rec_time, 38, 10); + lv_obj_set_pos(label_rec_time, 38, 5); lv_obj_set_size(label_rec_time, 90, 30); lv_obj_add_style(label_rec_time, 0, &label_rec_time_s0); @@ -1333,7 +1333,7 @@ lv_obj_t* UIFlowMovie_create(){ lv_obj_set_hidden(image_rec_ellipse, true); lv_obj_set_click(image_rec_ellipse, false); lv_obj_set_drag(image_rec_ellipse, false); - lv_obj_set_pos(image_rec_ellipse, 0, 0); + lv_obj_set_pos(image_rec_ellipse, 0, -5); lv_obj_set_size(image_rec_ellipse, 38, 40); lv_img_set_src(image_rec_ellipse, &sy_luzhi); lv_obj_add_style(image_rec_ellipse, 0, &image_rec_ellipse_s0); @@ -1770,55 +1770,6 @@ lv_obj_t* UIFlowMovie_create(){ label_maxtime_scr_uiflowmovie = label_maxtime; - static lv_style_t image_line_s0; - lv_style_init(&image_line_s0); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_DISABLED, color); - lv_obj_t *image_line = lv_img_create(parent, NULL); - lv_obj_set_hidden(image_line, false); - lv_obj_set_click(image_line, false); - lv_obj_set_drag(image_line, false); - lv_obj_set_pos(image_line, 0, 119); - lv_obj_set_size(image_line, 320, 3); - lv_img_set_src(image_line, &sy_redline2); - lv_obj_add_style(image_line, 0, &image_line_s0); - - image_line_scr_uiflowmovie = image_line; - - static lv_style_t label_sim_s0; lv_style_init(&label_sim_s0); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_sim_s0, LV_STATE_DEFAULT, color); @@ -1881,5 +1832,68 @@ lv_obj_t* UIFlowMovie_create(){ label_sim_scr_uiflowmovie = label_sim; + static lv_style_t label_line_s0; + lv_style_init(&label_line_s0); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_DEFAULT, color); + lv_style_set_bg_opa(&label_line_s0,LV_STATE_DEFAULT,255); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_DEFAULT, color); + lv_style_set_text_opa(&label_line_s0,LV_STATE_DEFAULT,0); + lv_style_set_text_font(&label_line_s0,LV_STATE_DEFAULT,&sf_ui_text_medium_16_1bpp); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_DISABLED, color); + lv_obj_t *label_line = lv_label_create(parent, NULL); + lv_obj_set_hidden(label_line, false); + lv_obj_set_click(label_line, false); + lv_obj_set_drag(label_line, false); + lv_plugin_label_allocate_ext_attr(label_line); + lv_plugin_label_allocate_ext_attr(label_line); + lv_plugin_label_set_font_type(label_line, LV_PLUGIN_LANGUAGE_FONT_TYPE_0); + lv_label_set_align(label_line, LV_LABEL_ALIGN_CENTER); + lv_label_set_long_mode(label_line, LV_LABEL_LONG_SROLL); + lv_obj_set_pos(label_line, 0, 119); + lv_obj_set_size(label_line, 320, 2); + lv_obj_add_style(label_line, 0, &label_line_s0); + + label_line_scr_uiflowmovie = label_line; + + return parent; } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.h index 5411e5245..b0b3b2320 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovie.h @@ -50,8 +50,8 @@ extern lv_obj_t* image_wifi_scr_uiflowmovie; extern lv_obj_t* image_motiondetect_scr_uiflowmovie; extern lv_obj_t* label_zoom_scr_uiflowmovie; extern lv_obj_t* label_maxtime_scr_uiflowmovie; -extern lv_obj_t* image_line_scr_uiflowmovie; extern lv_obj_t* label_sim_scr_uiflowmovie; +extern lv_obj_t* label_line_scr_uiflowmovie; /********************** * GLOBAL PROTOTYPES diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c index 380c689db..71338921e 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c @@ -256,12 +256,12 @@ static void signal_icon_show(const short signal) } static void update_4g_module_icon(void) { - UIMenuStoreInfo *puiPara = sf_ui_para_get(); + //UIMenuStoreInfo *puiPara = sf_ui_para_get(); static short signal = SIGNAL_NOT_YET_GET; static short searching_index = -1; short signal_new = sf_cardv_get_cq_signal(); unsigned short signal_level = 0; - network_signal_level_get(puiPara->NetGeneration, signal_new, &signal_level); + network_signal_level_get(sf_get_net_generation(), signal_new, &signal_level); // printf("new signal = %d, old signal = %d\n", signal_new, signal); if(SIGNAL_NOT_YET_GET == signal_new) { @@ -294,20 +294,20 @@ const int EMPTY_IMAGE = 0; LV_PLUGIN_IMG_ID_SF_NET3G, LV_PLUGIN_IMG_ID_SF_NET4G }; -// printf("NetGeneration:%d\n", puiPara->NetGeneration); +// printf("NetGeneration:%d\n", sf_get_net_generation()); const int SIM_CARD_NOT_INIT = 0; const int NET_GENERATION_2G = 2; // const int NET_GENERATION_3G = 3; const int NET_GENERATION_4G = 4; // puiPara->NetGeneration = NET_GENERATION_4G; // Test - if (SIM_CARD_NOT_INIT == puiPara->NetGeneration - || puiPara->NetGeneration < NET_GENERATION_2G - || puiPara->NetGeneration > NET_GENERATION_4G) + if (SIM_CARD_NOT_INIT == sf_get_net_generation() + || sf_get_net_generation() < NET_GENERATION_2G + || sf_get_net_generation() > NET_GENERATION_4G) { lv_obj_set_hidden(image_4g_scr_uiflowmovie, true); return; } - int index = puiPara->NetGeneration; + int index = sf_get_net_generation(); lv_obj_set_hidden(image_4g_scr_uiflowmovie, false); lv_plugin_img_set_src(image_4g_scr_uiflowmovie, res[index]); } @@ -397,7 +397,7 @@ static void update_rec_time(void) lv_obj_set_hidden(label_maxtime_scr_uiflowmovie,true); } - lv_label_set_text_fmt(label_rec_time_scr_uiflowmovie, "%02d:%02d:%02d", rec_sec / 3600, (rec_sec % 3600) / 60, (rec_sec % 3600) % 60); + lv_label_set_text_fmt(label_rec_time_scr_uiflowmovie, "%02d:%02d:%02d", rec_sec / 3600, (rec_sec % 3600) / 60, (rec_sec % 3600) % 60 + 1); } static void update_wifi(void) @@ -707,9 +707,9 @@ static void UIFlowMovie_ScrOpen(lv_obj_t* obj) { DBG_DUMP("%s\r\n", __func__); - #if HUNTING_CAMERA_MCU == ENABLE - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - #endif + // #if HUNTING_CAMERA_MCU == ENABLE + // UIMenuStoreInfo *puiPara = sf_ui_para_get(); + // #endif set_indev_keypad_group(obj); @@ -765,7 +765,7 @@ static void UIFlowMovie_ScrOpen(lv_obj_t* obj) } //#NT#2018/08/10#KCHong -end #if HUNTING_CAMERA_MCU == ENABLE - if(puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO || puiPara->CamMode == SF_CAM_MODE_VIDEO2) + if(sf_get_cammode_statu() == SF_CAM_MODE_PHOTO_VIDEO || sf_get_cammode_statu() == SF_CAM_MODE_VIDEO2) #else if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO) #endif @@ -1391,9 +1391,9 @@ void UIFlowMovie_KeyRelease(lv_obj_t* obj, uint32_t key) static void UIFlowMovie_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) { -#if HUNTING_CAMERA_MCU == ENABLE - UIMenuStoreInfo *puiPara = sf_ui_para_get(); -#endif +// #if HUNTING_CAMERA_MCU == ENABLE +// UIMenuStoreInfo *puiPara = sf_ui_para_get(); +// #endif switch(msg->event) { @@ -1414,23 +1414,24 @@ static void UIFlowMovie_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* m UIFlowMovie_REC_FINISH(obj,msg); #if HUNTING_CAMERA_MCU == ENABLE - if(puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO || puiPara->CamMode == SF_CAM_MODE_VIDEO2){ + if(sf_get_cammode_statu() == SF_CAM_MODE_PHOTO_VIDEO || sf_get_cammode_statu() == SF_CAM_MODE_VIDEO2){ + sf_set_phone_shot_status(PHONE_SHOT_STOP); if(sf_get_mode_flag()) { sf_wifi_server_stop_shoot_respond(0); } #else - if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO){ + if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO){ #endif - - int iCurrMode = System_GetState(SYS_STATE_CURRMODE); - int iNextMode = PRIMARY_MODE_PHOTO; - UI_SetData(FL_PreMode, iCurrMode); - UI_SetData(FL_NextMode, iNextMode); - Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode); - } + + int iCurrMode = System_GetState(SYS_STATE_CURRMODE); + int iNextMode = PRIMARY_MODE_PHOTO; + UI_SetData(FL_PreMode, iCurrMode); + UI_SetData(FL_NextMode, iNextMode); + Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode); + } break; - } + } case NVTEVT_CB_MOVIE_WR_ERROR: { @@ -1539,7 +1540,7 @@ void UIFlowMovieEventCallback(lv_obj_t* obj, lv_event_t event) case LV_USER_EVENT_KEY_RELEASE: { uint32_t* key = (uint32_t*)lv_event_get_data(); - if (LV_KEY_ENTER != *key) + if (LV_KEY_ENTER != *key || PHONE_SHOT_START == sf_get_phone_shot_status()) { lv_indev_wait_release(lv_indev_get_act()); break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c index ae788d685..83c1617fd 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.c @@ -367,21 +367,25 @@ printf(" UIFlowPasswordEventCallback %d\n", event); { case LV_PLUGIN_EVENT_SCR_OPEN: - UIFlowPassword_ScrOpen(obj); + { + UIFlowPassword_ScrOpen(obj); break; - + } case LV_PLUGIN_EVENT_SCR_CLOSE: - UIFlowPassword_ScrClose(obj); + { + UIFlowPassword_ScrClose(obj); break; - + } case LV_PLUGIN_EVENT_CHILD_SCR_CLOSE: + { set_indev_keypad_group(obj); break; - + } /* enter key state changed(pressed -> released) */ case LV_EVENT_CLICKED: + { break; - + } // case LV_EVENT_KEY: case LV_USER_EVENT_KEY_RELEASE: { @@ -410,13 +414,20 @@ printf(" UIFlowPasswordEventCallback %d\n", event); } case LV_EVENT_DRAG_BEGIN: + { break; + } + case LV_EVENT_DRAG_END: + { break; + } case LV_EVENT_DRAG_THROW_BEGIN: + { break; + } default: break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.c index f51cc58e4..c39679d9d 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.c @@ -51,7 +51,7 @@ lv_obj_t* label_2_scr_uiflowphoto; lv_obj_t* button_3_scr_uiflowphoto; lv_obj_t* label_3_scr_uiflowphoto; lv_obj_t* label_sim_scr_uiflowphoto; -lv_obj_t* image_line_scr_uiflowphoto; +lv_obj_t* label_line_scr_uiflowphoto; lv_obj_t* UIFlowPhoto_create(){ lv_obj_t *parent = lv_plugin_scr_create(); @@ -2317,53 +2317,67 @@ lv_obj_t* UIFlowPhoto_create(){ label_sim_scr_uiflowphoto = label_sim; - static lv_style_t image_line_s0; - lv_style_init(&image_line_s0); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_DEFAULT, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_CHECKED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_FOCUSED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_EDITED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_HOVERED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_PRESSED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_line_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_line_s0, LV_STATE_DISABLED, color); - lv_obj_t *image_line = lv_img_create(parent, NULL); - lv_obj_set_hidden(image_line, false); - lv_obj_set_click(image_line, false); - lv_obj_set_drag(image_line, false); - lv_obj_set_pos(image_line, 0, 119); - lv_obj_set_size(image_line, 320, 3); - lv_img_set_src(image_line, &sy_redline2); - lv_obj_add_style(image_line, 0, &image_line_s0); + static lv_style_t label_line_s0; + lv_style_init(&label_line_s0); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_DEFAULT, color); + lv_style_set_bg_opa(&label_line_s0,LV_STATE_DEFAULT,255); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_DEFAULT, color); + lv_style_set_text_opa(&label_line_s0,LV_STATE_DEFAULT,0); + lv_style_set_text_font(&label_line_s0,LV_STATE_DEFAULT,&sf_ui_text_medium_16_1bpp); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_color(&label_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_bg_grad_color(&label_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x03, 0xff, 0x00, 0x00) ; lv_style_set_text_color(&label_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_line_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_line_s0, LV_STATE_DISABLED, color); + lv_obj_t *label_line = lv_label_create(parent, NULL); + lv_obj_set_hidden(label_line, false); + lv_obj_set_click(label_line, false); + lv_obj_set_drag(label_line, false); + lv_plugin_label_allocate_ext_attr(label_line); + lv_plugin_label_allocate_ext_attr(label_line); + lv_plugin_label_set_font_type(label_line, LV_PLUGIN_LANGUAGE_FONT_TYPE_0); + lv_label_set_align(label_line, LV_LABEL_ALIGN_CENTER); + lv_label_set_long_mode(label_line, LV_LABEL_LONG_SROLL); + lv_obj_set_pos(label_line, 0, 119); + lv_obj_set_size(label_line, 320, 2); + lv_obj_add_style(label_line, 0, &label_line_s0); - image_line_scr_uiflowphoto = image_line; + label_line_scr_uiflowphoto = label_line; return parent; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.h index 810da22e0..6e7ad595e 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhoto.h @@ -59,7 +59,7 @@ extern lv_obj_t* label_2_scr_uiflowphoto; extern lv_obj_t* button_3_scr_uiflowphoto; extern lv_obj_t* label_3_scr_uiflowphoto; extern lv_obj_t* label_sim_scr_uiflowphoto; -extern lv_obj_t* image_line_scr_uiflowphoto; +extern lv_obj_t* label_line_scr_uiflowphoto; /********************** * GLOBAL PROTOTYPES diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index 5f739df6d..ac73f54f6 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -47,9 +47,9 @@ static CHAR g_cSelftimerCntStr[8] = {0}; static lv_group_t* gp = NULL; static lv_task_t* task_selftimer = NULL; static lv_task_t* update_icons_timer = NULL; -#define GO_TO_WORK_MODE_TIME 57 +#define GO_TO_WORK_MODE_TIME 59 #define PASSWORD_GO_TO_WORK_MODE_TIME_S 62 -#define MENU_GO_TO_WORK_MODE_TIME_S 27 +#define MENU_GO_TO_WORK_MODE_TIME_S 29 static unsigned int ShutDownTime = GO_TO_WORK_MODE_TIME; static lv_task_t* task_qview = NULL; @@ -59,6 +59,7 @@ static void task_update_icons_timer_cb(lv_task_t* task); #define LONG_PRESS_INTERVAL 500 static unsigned long KeyLeftPressingTimeMs = 0; static unsigned long KeyDownPressingTimeMs = 0; +static int gSendingStatus = FILE_SENDING_GUI_END; #define SENDING_KEEP_SHOW -1 #define SENDING_NOT_SHOW 0 @@ -70,6 +71,7 @@ static BOOL g_PhotoBgInitFileSys = FALSE; static BOOL g_SysStrg_Chg = FALSE; //#NT#2023/11/21#Eric - end +static void sf_show_send_text(lv_obj_t* obj, const unsigned short status); static lv_obj_t *g_preview_info_msgbox = NULL; static lv_obj_t *g_preview_info_label = NULL; static int g_preview_info_ishidden = true; @@ -544,12 +546,12 @@ static void update_4g_module_icon(void) const int NET_GENERATION_2G = 2; // const int NET_GENERATION_3G = 3; const int NET_GENERATION_4G = 4; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); + //UIMenuStoreInfo *puiPara = sf_ui_para_get(); static short signal = SIGNAL_NOT_YET_GET; static short searching_index = -1; short signal_new = sf_cardv_get_cq_signal(); unsigned short signal_level = 0; - network_signal_level_get(puiPara->NetGeneration, signal_new, &signal_level); + network_signal_level_get(sf_get_net_generation(), signal_new, &signal_level); // printf("new signal = %d, old signal = %d\n", signal_new, signal); if(SIGNAL_NOT_YET_GET == signal_new) { @@ -559,19 +561,18 @@ static void update_4g_module_icon(void) // printf(" searching ... [%d]\n", searching_index); signal_icon_show(searching_index); } - else if(signal != signal_new && SIM_CARD_NOT_INIT != puiPara->NetGeneration) + else if(signal != signal_new && SIM_CARD_NOT_INIT != sf_get_net_generation()) { lv_obj_set_hidden(label_tips_scr_uiflowphoto, true); // Update the icon. - printf("old signal = %d new signal = %d signal_level = %d\n", signal, signal_new, signal_level); + printf("old signal = %d new signal = %d signal_level = %d generation = %d\n", signal, signal_new, signal_level, sf_get_net_generation()); lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); signal_icon_hidden(searching_index); signal_icon_hidden(signal); signal_icon_show(signal_level); signal = signal_new; } - // else if (sf_cardv_get_sim_insert() == NO_SIM_CARD) - else if (SIM_CARD_NOT_INIT == puiPara->NetGeneration) + else if (sf_cardv_get_sim_insert() == NO_SIM_CARD) { signal_icon_hidden(0); signal_icon_hidden(1); @@ -582,18 +583,28 @@ static void update_4g_module_icon(void) set_warning_label_text(label_tips_scr_uiflowphoto); lv_label_set_text(label_tips_scr_uiflowphoto,"Check Sim"); lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); - } else { + } + else if (signal != signal_new && 0 == signal_new) + { + signal_icon_hidden(0); + signal_icon_hidden(1); + signal_icon_hidden(2); + signal_icon_hidden(3); + signal_icon_hidden(4); + lv_obj_set_hidden(label_tips_scr_uiflowphoto, false); + set_warning_label_text(label_tips_scr_uiflowphoto); + lv_label_set_text(label_tips_scr_uiflowphoto,"No Signal"); + lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); + signal = signal_new; + } + else { // Nothing changed. // printf(" nothing changed.\n"); } - if (SENDING_NOT_SHOW < SendMsgShow) - { - SendMsgShow--; - if (SENDING_NOT_SHOW == SendMsgShow) - { - lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); - } - } + // if(sf_cardv_4G_status_get() == SF_4G_SENDING) + // { + + // } const int EMPTY_IMAGE = 0; lv_plugin_res_id res[] = { EMPTY_IMAGE, @@ -602,20 +613,61 @@ const int EMPTY_IMAGE = 0; LV_PLUGIN_IMG_ID_SF_NET3G, LV_PLUGIN_IMG_ID_SF_NET4G }; -// printf("NetGeneration:%d\n", puiPara->NetGeneration); +// printf("NetGeneration:%d\n", sf_get_net_generation()); // puiPara->NetGeneration = NET_GENERATION_4G; // Test - if (SIM_CARD_NOT_INIT == puiPara->NetGeneration - || puiPara->NetGeneration < NET_GENERATION_2G - || puiPara->NetGeneration > NET_GENERATION_4G) + if (SIM_CARD_NOT_INIT == sf_get_net_generation() + || sf_get_net_generation() < NET_GENERATION_2G + || sf_get_net_generation() > NET_GENERATION_4G) { lv_obj_set_hidden(image_4g_scr_uiflowphoto, true); return; } - int index = puiPara->NetGeneration; + int index = sf_get_net_generation(); lv_obj_set_hidden(image_4g_scr_uiflowphoto, false); lv_plugin_img_set_src(image_4g_scr_uiflowphoto, res[index]); } - +static void update_gps_status(void) +{ + if (SENDING_NOT_SHOW < SendMsgShow) + { + SendMsgShow--; + if (SENDING_NOT_SHOW == SendMsgShow) + { + lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); + } + return; + } + if (TRUE == sf_get_send_statu()) + { + sf_show_send_text(UIFlowPhoto, FILE_SENDING_GUI_START_SENDING); + return; + } + if (FTP_CONNECTING_FTP_CONNECTING == sf_cardv_get_ftp_status()) + { + sf_show_send_text(UIFlowPhoto, FTP_CONNECTING_FTP_CONNECTING); + return; + } + else if (FTP_CONNECTING_END != sf_cardv_get_ftp_status()) { + sf_show_send_text(UIFlowPhoto, sf_cardv_get_ftp_status()); + } + SF_GPS_STATUS_E status = sf_cardv_get_gps_status(); + switch (status) + { + case SF_GPS_SEARCHING_START: + { + lv_obj_set_hidden(label_sim_scr_uiflowphoto, false); + lv_label_set_text(label_sim_scr_uiflowphoto, "GPS searching..."); + break; + } + case SF_GPS_SEARCHING_STOP: + { + lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); + break; + } + default: + break; + } +} static void update_camera_message(void) { UIMenuStoreInfo *puiPara = sf_ui_para_get(); @@ -836,6 +888,7 @@ static void update_icons(void) update_wifi(); update_bluetooth(); update_camera_mode(); + update_gps_status(); } static void FlowPhoto_InitStartupFuncs(void) @@ -1011,7 +1064,7 @@ static void UIFlowPhoto_OnExeCaptureStart(lv_obj_t* obj) id = (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) ? LV_PLUGIN_STRING_ID_STRID_PLEASE_INSERT_SD : LV_PLUGIN_STRING_ID_STRID_CARD_FULL; gPhotoData.State = PHOTO_ST_WARNING_MENU; // Ux_OpenWindow(&UIFlowWndWrnMsgCtrl, 2, uiMsg, FLOWWRNMSG_TIMER_2SEC); -// UIFlowWrnMsgAPI_Open_StringID(id, 2000); + UIFlowWrnMsgAPI_Open_StringID(id, 2000); return; #endif } @@ -1330,6 +1383,8 @@ void UIFlowPhoto_OnBatteryLow(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* ms static void UIFlowPhoto_ScrOpen(lv_obj_t* obj) { + lv_obj_set_hidden(container_photo_scr_uiflowphoto, false); + lv_obj_set_hidden(label_line_scr_uiflowphoto, false); set_indev_keypad_group(obj); update_fd_frame(); //#NT#2016/10/04#Lincy Lin -begin @@ -1345,7 +1400,7 @@ static void UIFlowPhoto_ScrOpen(lv_obj_t* obj) /* never closed */ gPhotoData.State = PHOTO_ST_WARNING_MENU; -// UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_PLEASE_INSERT_SD, 1000); + // UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_PLEASE_INSERT_SD, 1000); // UIFlowMenuCommonConfirmAPI_Open(IDM_FORMAT); // return; #endif @@ -1436,6 +1491,8 @@ static void UIFlowPhoto_ScrClose(lv_obj_t* obj) /* Reset key press/release/continue mask to default */ Ux_FlushEventByRange(NVTEVT_KEY_EVT_START, NVTEVT_KEY_EVT_END); + lv_obj_set_hidden(container_photo_scr_uiflowphoto, true); + lv_obj_set_hidden(label_line_scr_uiflowphoto, true); return; } @@ -1579,7 +1636,7 @@ static void task_update_icons_timer_cb(lv_task_t* task) } else { - OpenClosingScreen(); + OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); } } return; @@ -1608,6 +1665,7 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) case UIAPPPHOTO_CB_CAPSTART: #if HUNTING_CAMERA_MCU == ENABLE sf_set_cap_statu(TRUE); + sf_set_cammode_statu(puiPara->CamMode); #endif if(obj == UIFlowPhoto) @@ -1634,7 +1692,7 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) UIFlowPhoto_BackPreviewHandle(); #if HUNTING_CAMERA_MCU == ENABLE - if((sf_get_mode_flag()) && (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO || puiPara->CamMode == SF_CAM_MODE_VIDEO2)){ + if((sf_get_mode_flag()) && (sf_get_cammode_statu() == SF_CAM_MODE_PHOTO_VIDEO || sf_get_cammode_statu() == SF_CAM_MODE_VIDEO2)){ #else if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO){ #endif @@ -1645,6 +1703,7 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode); } else { + sf_set_phone_shot_status(PHONE_SHOT_STOP); if(sf_get_mode_flag()) { sf_wifi_server_stop_shoot_respond(0); @@ -1686,6 +1745,7 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) static void sf_show_send_text(lv_obj_t* obj, const unsigned short status) { #define SENDING_KEEP_SHOW_TIME_S 3 + gSendingStatus = FILE_SENDING_GUI_END; switch (status) { case FILE_SENDING_GUI_START_SENDING: @@ -1693,6 +1753,7 @@ static void sf_show_send_text(lv_obj_t* obj, const unsigned short status) lv_obj_set_hidden(label_sim_scr_uiflowphoto, false); lv_label_set_text(label_sim_scr_uiflowphoto, "Sending ... "); SendMsgShow = SENDING_KEEP_SHOW; + gSendingStatus = FILE_SENDING_GUI_START_SENDING; break; } case FILE_SENDING_GUI_STOP_SENDING: @@ -1715,6 +1776,19 @@ static void sf_show_send_text(lv_obj_t* obj, const unsigned short status) SendMsgShow = SENDING_KEEP_SHOW_TIME_S; break; } + case FTP_CONNECTING_FTP_CONNECTING: + { + lv_obj_set_hidden(label_sim_scr_uiflowphoto, false); + lv_label_set_text(label_sim_scr_uiflowphoto, "Connecting ... "); + SendMsgShow = SENDING_KEEP_SHOW; + break; + } + case FTP_CONNECTING_FTP_CONNECT_SUCCESSFUL: + case FTP_CONNECTING_FTP_CONNECT_FAILED: + { + SendMsgShow = SENDING_NOT_SHOW; + break; + } default: break; } @@ -1810,6 +1884,7 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) { case LV_USER_KEY_LEFT: { + //printf("[UIFlowPhoto_Key]>>>LEFT\n"); if (KeyLeftPressingTimeMs < LONG_PRESS_INTERVAL) { UIFlowMenuCommonConfirmAPI_Open(IDM_ENTER_WORK_MODE); @@ -1819,6 +1894,7 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) } case LV_KEY_ENTER: { + //printf("[UIFlowPhoto_Key]>>>ENTER\n"); #if HUNTING_CAMERA_MCU == ENABLE // sf_rtsp_stop(); if(TRUE == sf_get_send_statu()) @@ -1835,6 +1911,7 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_NEXT: case LV_USER_KEY_ZOOMIN: { + //printf("[UIFlowPhoto_Key]>>>DOWN\n"); g_preview_info_ishidden = true; lv_obj_set_hidden(g_preview_info_msgbox, g_preview_info_ishidden); KeyDownPressingTimeMs = 0; @@ -1848,12 +1925,13 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_PREV: case LV_USER_KEY_ZOOMOUT: { + //printf("[UIFlowPhoto_Key]>>>UP\n"); if(TRUE == sf_get_send_statu()) { printf("\r\n[%s] line:%d %d running\n", __FUNCTION__, __LINE__,key); break; } - if (0 > appSvrResponseSocketGet() && SF_BLE_CON != sf_get_ble_status()) + // if (0 > appSvrResponseSocketGet() && SF_BLE_CON != sf_get_ble_status()) { // UIFlowPhoto_OnExeZoomOutStart(obj); UIFlowPhoto_OnExeOpenPlayScreen(obj); @@ -1864,8 +1942,8 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_MENU: case LV_USER_KEY_RIGHT: { + //printf("[UIFlowPhoto_Key]>>>RIGHT\n"); //SF_WIFI_STATUS_E status = sf_get_wifi_status(); - ShutDownTime = MENU_GO_TO_WORK_MODE_TIME_S; if(TRUE == sf_get_send_statu()) { printf("\r\n[%s] line:%d %d running\n", __FUNCTION__, __LINE__,key); @@ -1937,7 +2015,7 @@ void UIFlowPhtot_KeyLongPress(lv_obj_t* obj, uint32_t key) if (3 * 1000 <= KeyLeftPressingTimeMs) { // Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); - OpenClosingScreen(); + OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); KeyLeftPressingTimeMs = 0; } break; @@ -1966,18 +2044,10 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) switch(event) { case LV_PLUGIN_EVENT_SCR_OPEN: + { + UIFlowPhoto_ScrOpen(obj);//LV_ALIGN_IN_RIGHT_MID - - if(preview_info_task == NULL && g_preview_info_msgbox == NULL && g_preview_info_label == NULL){ - g_preview_info_msgbox = lv_btn_create(obj, button_msg_bg_scr_uiflowwrnmsg); - g_preview_info_ishidden = true; - lv_obj_set_hidden(g_preview_info_msgbox, g_preview_info_ishidden); - g_preview_info_label = lv_label_create(g_preview_info_msgbox, label_msg_scr_uiflowwrnmsg); - lv_obj_align(g_preview_info_label, g_preview_info_msgbox, LV_ALIGN_CENTER, 0, -30); - lv_label_set_align(g_preview_info_label, LV_LABEL_ALIGN_CENTER); - preview_info_task = lv_task_create(preview_info_task_cb, 100, LV_TASK_PRIO_MID, NULL); - } - + #define PASSWORD_OPENED 1 #define PASSWORD_NOT_OPENED 0 static int passwordOpened = PASSWORD_NOT_OPENED; @@ -1990,6 +2060,20 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) { passwordOpened = PASSWORD_OPENED; } + + + + if(preview_info_task == NULL && g_preview_info_msgbox == NULL && g_preview_info_label == NULL){ + g_preview_info_msgbox = lv_btn_create(obj, button_msg_bg_scr_uiflowwrnmsg); + g_preview_info_ishidden = true; + lv_obj_set_hidden(g_preview_info_msgbox, g_preview_info_ishidden); + g_preview_info_label = lv_label_create(g_preview_info_msgbox, label_msg_scr_uiflowwrnmsg); + lv_obj_align(g_preview_info_label, g_preview_info_msgbox, LV_ALIGN_CENTER, 0, -30); + lv_label_set_align(g_preview_info_label, LV_LABEL_ALIGN_CENTER); + preview_info_task = lv_task_create(preview_info_task_cb, 100, LV_TASK_PRIO_MID, NULL); + } + + // #if HUNTING_CAMERA_MCU == ENABLE // UIMenuStoreInfo *puiPara = sf_ui_para_get(); // if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2)) @@ -1998,7 +2082,7 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) // } // #endif break; - + } case LV_PLUGIN_EVENT_SCR_CLOSE: UIFlowPhoto_ScrClose(obj); break; @@ -2015,7 +2099,8 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) case LV_EVENT_KEY: { - if (PHOTO_ST_CAPTURE == gPhotoData.State) + if (PHOTO_ST_CAPTURE == gPhotoData.State || FILE_SENDING_GUI_START_SENDING == gSendingStatus || + PHONE_SHOT_START == sf_get_phone_shot_status()) { printf("PHOTO_ST_CAPTURE not handl key event.\n"); break; @@ -2028,7 +2113,8 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) } case LV_USER_EVENT_KEY_RELEASE: { - if (PHOTO_ST_CAPTURE == gPhotoData.State) + if (PHOTO_ST_CAPTURE == gPhotoData.State || FILE_SENDING_GUI_START_SENDING == gSendingStatus || + PHONE_SHOT_START == sf_get_phone_shot_status()) { printf("PHOTO_ST_CAPTURE not handl key event.\n"); break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c index d3516fb75..a66781439 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c @@ -127,22 +127,22 @@ BOOL FlowPhoto_IsStorageErr(void) #if (FS_FUNC == ENABLE) if (UIStorageCheck(STORAGE_CHECK_ERROR, NULL) == TRUE) { // Ux_OpenWindow(&UIFlowWndWrnMsgCtrl, 2, FLOWWRNMSG_ISSUE_MEM_ERR, FLOWWRNMSG_TIMER_KEEP); - UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRING_NO_SD, 1000 * 2); /* keep msgbox */ + // UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRING_NO_SD, 1000 * 2); /* keep msgbox */ return TRUE; } if (UIStorageCheck(STORAGE_CHECK_FULL, &(g_uiFreePicNum)) == TRUE) { if (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) { //Ux_OpenWindow(&UIFlowWndWrnMsgCtrl, 2, UIFlowWndWrnMsg_StatusTXT_Msg_STRID_PLEASE_INSERT_SD, FLOWWRNMSG_TIMER_2SEC); - UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_PLEASE_INSERT_SD, 2000); + // UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_PLEASE_INSERT_SD, 2000); } else { //Ux_OpenWindow(&UIFlowWndWrnMsgCtrl, 2, UIFlowWndWrnMsg_StatusTXT_Msg_STRID_CARD_FULL, FLOWWRNMSG_TIMER_2SEC); - UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_CARD_FULL, 2000); + // UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_CARD_FULL, 2000); } return TRUE; } if (UIStorageCheck(STORAGE_CHECK_LOCKED, NULL) == TRUE) { //Ux_OpenWindow(&UIFlowWndWrnMsgCtrl, 2, UIFlowWndWrnMsg_StatusTXT_Msg_STRID_CARD_LOCKED, FLOWWRNMSG_TIMER_2SEC); - UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_CARD_LOCKED, 2000); + // UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRID_CARD_LOCKED, 2000); return TRUE; } #endif diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c index cd0eec929..d1b0a01c1 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c @@ -110,12 +110,17 @@ static void UIFlowPlay_IconImageSize(BOOL bShow) } else { OriImgHeight = (UINT32)hd_vdoframe_info.dim.h; } + if (uiFileFmt & (PBFMT_MOVMJPG | PBFMT_AVI | PBFMT_MP4 | PBFMT_TS)) { + lv_obj_set_hidden(container_play_scr_uiflowplay, false); + } else { + lv_obj_set_hidden(container_play_scr_uiflowplay, true); + } //hide icon if (bShow == FALSE) { // UxCtrl_SetShow(&UIFlowWndPlay_StaticTXT_SizeCtrl, FALSE); lv_obj_set_hidden(label_file_size_scr_uiflowplay, true); - lv_obj_set_hidden(container_play_scr_uiflowplay, true); + // lv_obj_set_hidden(container_play_scr_uiflowplay, true); return; } //show icon @@ -124,8 +129,11 @@ static void UIFlowPlay_IconImageSize(BOOL bShow) lv_obj_set_hidden(container_play_scr_uiflowplay, false); lv_plugin_img_set_src(image_play_scr_uiflowplay, LV_PLUGIN_IMG_ID_SF_STOP); PB_GetParam(PBPRMID_INFO_VDO, (UINT32 *)&MovieInfo); - lv_slider_set_range(slider_1_scr_uiflowplay, 0, MovieInfo.uiToltalSecs); - lv_slider_set_value(slider_1_scr_uiflowplay, 0, LV_ANIM_OFF); + if (0 < MovieInfo.uiToltalSecs) + { + lv_slider_set_range(slider_1_scr_uiflowplay, 0, MovieInfo.uiToltalSecs); + lv_slider_set_value(slider_1_scr_uiflowplay, 0, LV_ANIM_OFF); + } switch (MovieInfo.uiVidWidth) { case 3840: if (MovieInfo.uiVidRate == 50) { @@ -985,6 +993,7 @@ static void UIFlowPlay_ScrOpen(lv_obj_t* obj) update_playicons(g_PlbData.State); // Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_PHOTO); UIFlowWrnMsgAPI_Open_StringID(LV_PLUGIN_STRING_ID_STRING_NO_FILE, 3000); + lv_obj_set_hidden(container_play_scr_uiflowplay, true); return; } @@ -2014,16 +2023,26 @@ static void UIFlowPlay_Key(lv_obj_t* obj, uint32_t key) break; } case LV_USER_KEY_LEFT: + { + UINT32 uiFileSeq; + PB_GetParam(PBPRMID_CURR_FILESEQ, &uiFileSeq); + if (0 != uiFileSeq) { stop_play(); UIFlowPlay_OnKeyUp(obj); - break; + } + break; } case LV_USER_KEY_RIGHT: + { + UINT32 uiFileSeq; + PB_GetParam(PBPRMID_CURR_FILESEQ, &uiFileSeq); + if (0 != uiFileSeq) { stop_play(); UIFlowPlay_OnKeyDown(obj); - break; + } + break; } case LV_USER_KEY_UP: @@ -2036,13 +2055,18 @@ static void UIFlowPlay_Key(lv_obj_t* obj, uint32_t key) case LV_USER_KEY_DOWN: case LV_USER_KEY_NEXT: { + UINT32 uiFileSeq; + PB_GetParam(PBPRMID_CURR_FILESEQ, &uiFileSeq); + if (0 != uiFileSeq) + { stop_play(); UIFlowMenuCommonConfirmAPI_Open(IDM_DELETE_THIS); break; UIFlowPlay_OnKeyNext(obj); break; } - + break; + } case LV_USER_KEY_ZOOMIN: { break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c index 44cfa7555..3263f67e7 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c @@ -1,4 +1,5 @@ #include "PrjInc.h" +#include "UIApp/Background/UIBackgroundObj.h" #include "UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgAPI.h" #include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h" #include "UIFlowLVGL/UIFlowLVGL.h" @@ -41,26 +42,46 @@ static void task_msgbox_timer_cb(lv_task_t* task) UINT16 autoOffTime = sf_get_auto_off_time(); const lv_plugin_string_t* string = lv_plugin_get_string(msgID); - autoClose = autoClose - 1000; if (0 == autoClose || autoOffTime <= 10) { lv_task_del(msgbox_timer); msgbox_timer = NULL; if (msgbox) { - lv_msgbox_start_auto_close(msgbox, 0); + printf("msg box close delay 1000.\n"); + lv_msgbox_start_auto_close(msgbox, 1000); } if (0 == autoClose) { - OpenClosingScreen(); + // OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); + #define DO_NOT_SHOW_POWER_OFF 0 + Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 2, APP_POWER_OFF_APO, DO_NOT_SHOW_POWER_OFF); } return; } + autoClose = autoClose - 1000; if(string){ snprintf(buf, BUF_LENGTH, "%s\n\n%ds\r\n", string->ptr, autoClose/1000); // lv_msgbox_set_text(msgbox, buf); lv_label_set_text_fmt(label_msg_scr_uiflowwrnmsg, "%s", buf); } + if (0 == autoClose || autoOffTime <= 10) + { + // lv_task_del(msgbox_timer); + // msgbox_timer = NULL; + // if (msgbox) + // { + // printf("msg box close delay 1000.\n"); + // lv_msgbox_start_auto_close(msgbox, 1000); + // } + // if (0 == autoClose) + // { + // // OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); + // #define DO_NOT_SHOW_POWER_OFF 0 + // Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 2, APP_POWER_OFF_APO, DO_NOT_SHOW_POWER_OFF); + // } + return; + } } // update_icons(); return; @@ -109,6 +130,9 @@ void UIFlowWrnMsgAPI_Open_StringID(lv_plugin_res_id id, uint16_t auto_close_time { lv_plugin_msgbox_set_text(msgbox, id); } + if(auto_close_time_ms){ + lv_msgbox_start_auto_close(msgbox, auto_close_time_ms); + } // if(LV_PLUGIN_STRING_ID_STRING_UPGRADING == msgID) // { @@ -128,6 +152,9 @@ void UIFlowWrnMsgAPI_Open_StringID(lv_plugin_res_id id, uint16_t auto_close_time { snprintf(buf, BUF_LENGTH, "%s\n\n%ds\r\n", tmpstr1->ptr, autoClose/1000); lv_label_set_text_fmt(label_msg_scr_uiflowwrnmsg, "%s", buf); + if(auto_close_time_ms){ + lv_msgbox_start_auto_close(msgbox, auto_close_time_ms + 1000 * 2); + } } else if (LV_PLUGIN_STRING_ID_STRING_UPGRADING == msgID) { lv_label_set_text_fmt(label_msg_scr_uiflowwrnmsg, "Upgrading...\nCamera will automatically restart after upgrade complete"); @@ -161,9 +188,9 @@ void UIFlowWrnMsgAPI_Open_StringID(lv_plugin_res_id id, uint16_t auto_close_time } - if(auto_close_time_ms){ - lv_msgbox_start_auto_close(msgbox, auto_close_time_ms); - } + // if(auto_close_time_ms){ + // lv_msgbox_start_auto_close(msgbox, auto_close_time_ms); + // } set_indev_keypad_group(msgbox); if(msgbox_timer == NULL){ @@ -188,6 +215,14 @@ static void UIFlowWrnMsg_OnNVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA case NVTEVT_BACKGROUND_DONE: switch (message) { + case NVTEVT_BKW_FORMAT_EMMC: + { + printf("Complete format emmc.\n"); + lv_plugin_msgbox_set_text(msgbox, LV_PLUGIN_STRING_ID_STRING_COMPLETED); + lv_plugin_label_set_text(label_msg_scr_uiflowwrnmsg, LV_PLUGIN_STRING_ID_STRING_COMPLETED); + lv_msgbox_start_auto_close(msgbox, 3000); + break; + } case NVTEVT_BKW_FORMAT_CARD: { @@ -195,10 +230,12 @@ static void UIFlowWrnMsg_OnNVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA if(ret == CMD_FORMAT_SD_OK) { lv_plugin_msgbox_set_text(msgbox, LV_PLUGIN_STRING_ID_STRING_COMPLETED); + lv_plugin_label_set_text(label_msg_scr_uiflowwrnmsg, LV_PLUGIN_STRING_ID_STRING_COMPLETED); } else { lv_plugin_msgbox_set_text(msgbox, LV_PLUGIN_STRING_ID_STRING_FORMAT_ERR); + lv_plugin_label_set_text(label_msg_scr_uiflowwrnmsg, LV_PLUGIN_STRING_ID_STRING_FORMAT_ERR); } lv_msgbox_start_auto_close(msgbox, 3000); printf("[%s]start auto close 3000ms", __FUNCTION__); @@ -282,15 +319,19 @@ void message_box_wrnmsg_OnKeyMenu(lv_obj_t* msgbox) void message_box_wrnmsg_OnKey(lv_obj_t* msgbox, uint32_t key) { + // static uint32_t key22 = LV_KEY_END; + // key22 = key; + // lv_event_send(lv_obj_get_parent(UIFlowWrnMsg), LV_USER_EVENT_KEY_RELEASE, &key22); + return; switch(key) { case LV_USER_KEY_MENU: - message_box_wrnmsg_OnKeyMenu(msgbox); + // message_box_wrnmsg_OnKeyMenu(msgbox); break; //#NT#2023/11/14#Eric - begin //#NT#Support IVOT_N12144_CO-148_A case LV_KEY_ENTER: - UIFlowWrnMsg_CloseScr(NVTEVT_NULL); + // UIFlowWrnMsg_CloseScr(NVTEVT_NULL); break; //#NT#2023/11/14#Eric - end default: diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h index 47eecf343..b487b056f 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h @@ -69,7 +69,7 @@ #if SF_HW_TEST == ENABLE #define DEFAULT_MOVIE_SIZE MOVIE_SIZE_FRONT_1280x720P30 #else - #define DEFAULT_MOVIE_SIZE MOVIE_SIZE_CLONE_1920x1080P30_1920x1080P25 + #define DEFAULT_MOVIE_SIZE MOVIE_SIZE_FRONT_1920x1080P30 #endif #endif #else diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c index ddff14480..59f340237 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c @@ -505,6 +505,10 @@ void Load_MenuInfo(void) #if HUNTING_CAMERA_MCU == ENABLE if(sf_get_ui_para_flag()) { + if(!sf_is_usb_flag()) + { + sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); + } memcpy(&origInfo, ¤tInfo, sizeof(currentInfo)); memcpy(&origInfo_check, ¤tInfo, sizeof(currentInfo)); return; @@ -515,10 +519,14 @@ void Load_MenuInfo(void) #if HUNTING_CAMERA_MCU == ENABLE sf_power_on_para_check_init(); - if(sf_is_usb_flag()) - { - Save_MenuInfo(); - } + if(sf_is_usb_flag()) + { + Save_MenuInfo(); + } + else + { + sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); + } #endif #if HUNTING_CAMERA_MCU == ENABLE //origInfo = currentInfo; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h index 177d8aef6..bbad5e1d6 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h @@ -2052,6 +2052,8 @@ typedef enum { SF_SEND_TIMELY = 0, SF_SEND_TIMELY1, SF_SEND_TIMELY2, + SF_SEND_TIMELY3, + SF_SEND_TIMELY4, SF_SEND_TIMELY_MAX, } SF_SEND_TYPE_e; diff --git a/code/application/source/mem/mem.c b/code/application/source/mem/mem.c index 0ba91ca30..a3f811ee3 100755 --- a/code/application/source/mem/mem.c +++ b/code/application/source/mem/mem.c @@ -17,7 +17,7 @@ #define DBG_WRN(fmtstr, args...) printf("\033[33m%s(): \033[0m" fmtstr,__func__, ##args) #define DBG_ERR(fmtstr, args...) printf("\033[31m%s(): \033[0m" fmtstr,__func__, ##args) -#if 0 +#if 1 #define DBG_IND(fmtstr, args...) #else #define DBG_IND(fmtstr, args...) printf("%s(): " fmtstr, \ From 57420f5c1552eed18641c6c92c97055af7781599 Mon Sep 17 00:00:00 2001 From: "sober.song" Date: Thu, 28 Dec 2023 13:39:43 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0UIStorageCheckEMMC?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E5=92=8CUI=E6=A0=BC=E5=BC=8F=E5=8C=96EMMC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/System/SF_SysStrgMng.c | 74 ++++---- .../cardv/SrcCode/System/SF_SysStrgMng.h | 3 +- .../source/cardv/SrcCode/System/SysStrg_Exe.c | 8 +- .../UIApp/Background/UIBackgroundObj.c | 99 +++++++++- .../SrcCode/UIApp/Photo/UIAppPhoto_Exe.c | 20 +- .../SrcCode/UIApp/Photo/UIStorageCheck.c | 171 +++++++++++------ .../UIFlowPhoto/UIFlowPhotoEventCallback.c | 11 ++ code/lib/include/FileSysTsk.h | 2 - .../SrcCode/UIApp/Photo/UIAppPhoto_Exe.c | 21 ++- .../SrcCode/UIApp/Photo/UIStorageCheck.c | 177 +++++++++++------- .../driver/na51089/include/sf_sd_common.h | 1 + .../driver/na51089/source/mcu/sf_sd_common.c | 55 ++++-- 12 files changed, 451 insertions(+), 191 deletions(-) diff --git a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c index c90b0d2ee..208aee78c 100755 --- a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c +++ b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c @@ -69,11 +69,11 @@ static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev) /*check disk free size*/ if(mmc_dev == MMC_DEV_SD) { - diskFree = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); + diskFree = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); } else { - diskFree = FileSys_GetEMMCDiskInfo(FST_INFO_FREE_SPACE); + diskFree = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE); } diskFree = diskFree/1024/1024; @@ -133,16 +133,6 @@ void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf) sf_mmc_dev[MMC_DEV_SD]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; } - UINT32 isfull = SF_StrgSpaceCheckFull(MMC_DEV_SD); - if(isfull == 1) - { - sf_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; - } - else if(isfull == 0) - { - sf_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; - } - if(puiPara->SdLoopSwitch == 1) { sf_mmc_dev[MMC_DEV_SD]->loop_state = MMC_DEV_LOOP_STATE_ON; @@ -173,16 +163,6 @@ void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf) sf_mmc_dev[MMC_DEV_EMMC]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; } - UINT32 isfull = SF_StrgSpaceCheckFull(MMC_DEV_EMMC); - if(isfull == 1) - { - sf_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; - } - else if(isfull == 0) - { - sf_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; - } - if(puiPara->SdLoopSwitch == 1) { sf_mmc_dev[MMC_DEV_EMMC]->loop_state = MMC_DEV_LOOP_STATE_ON; @@ -201,10 +181,32 @@ void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf) } } -int SF_StrgCheckWorkableDev(void) +SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void) { MMC_DEV_TYPE workable_dev = MMC_DEV_NO; - MLOGD("sf mmc check workable dev start!!!\n"); + //MLOGD("sf mmc check workable dev start!!!\n"); + + UINT32 isfull = 0; + isfull = SF_StrgSpaceCheckFull(MMC_DEV_EMMC); + if(isfull == 1) + { + sf_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; + } + else if(isfull == 0) + { + sf_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; + } + + isfull = SF_StrgSpaceCheckFull(MMC_DEV_SD); + if(isfull == 1) + { + sf_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; + } + else if(isfull == 0) + { + sf_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; + } + if((sf_mmc_dev[MMC_DEV_SD]->node == MMC_DEV_NODE_STATE_NO_EXIST) && (sf_mmc_dev[MMC_DEV_EMMC]->node == MMC_DEV_NODE_STATE_NO_EXIST)) { @@ -304,19 +306,21 @@ int SF_StrgCheckWorkableDev(void) } } - MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev); + //MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev); for(int i = 0; i < 2; i++) { sf_mmc_dev[i]->dev_type = workable_dev; - MLOGD("node:%d, mount:%d, space:%d, loop:%d\n", - sf_mmc_dev[i]->node, sf_mmc_dev[i]->moumted_state, - sf_mmc_dev[i]->space_state, sf_mmc_dev[i]->loop_state); + //MLOGD("node:%d, mount:%d, space:%d, loop:%d\n", + //sf_mmc_dev[i]->node, sf_mmc_dev[i]->moumted_state, + //sf_mmc_dev[i]->space_state, sf_mmc_dev[i]->loop_state); + } + + if(workable_dev == MMC_DEV_NO) + { + return NULL; + } + else + { + return sf_mmc_dev[workable_dev]; } - if(workable_dev != MMC_DEV_NO) - { - MLOGD("dcf_handle = %d\n", sf_mmc_dev[workable_dev]->dcf_handle); - return sf_mmc_dev[workable_dev]->dcf_handle; - } - else - return -1; } diff --git a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h index c168818b7..cf5f67873 100755 --- a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h +++ b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.h @@ -83,7 +83,8 @@ void SF_StrgInit(void); void SF_StrgUnInit(void); void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle); void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf); -int SF_StrgCheckWorkableDev(void); +SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void); + #endif //_SF_SYS_STRG_MNG_H_ diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c index d434740b7..705b5fc53 100644 --- a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c @@ -760,14 +760,14 @@ INT32 System_Set_Storage_Act_Drive(char drive) DCF_HANDLE System_Get_DCF_Handle(void) { - int dcf_handle = SF_StrgCheckWorkableDev(); - if(dcf_handle < 0) + SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) { DBG_ERR("No MMC_Dev Can use!\n"); return -1; } - DBG_WRN("DCF_GET_HANDLE, %d\n", dcf_handle); - return dcf_handle; + DBG_WRN("DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle); + return mmc_dev->dcf_handle; } CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle) diff --git a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c index 5bc501f51..ec905f8a1 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c +++ b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c @@ -26,6 +26,7 @@ #include "UIApp/Network/EthCamAppCmd.h" #if (USE_DCF == ENABLE) #include "DCF.h" + #endif #include "Utility/SwTimer.h" @@ -861,9 +862,103 @@ UINT32 BackgroundFormat(void) UINT32 BackgroundFormatEmmc(void) { - printf(" BackgroundFormatEmmc\n "); - return TRUE; + int ret; + DBG_FUNC_BEGIN("\r\n"); +#if HUNTING_CAMERA_MCU == ENABLE + sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_START); + //sf_sys_status_led_set(SF_LED_SYS_STATE_EXIT_GO_TO_PIR); +#endif + //DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT|DX_TYPE_CARD1); + //UINT32 hStrgObj = Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0); + //ret = FileSys_FormatDisk((HNVT_STRG)hStrgObj, FALSE); + FS_HANDLE pStrgDXH = (FS_HANDLE)Dx_GetObject(DX_CLASS_STORAGE_EXT | DX_TYPE_CARD1); + //FS_HANDLE pStrgDXH = (FS_HANDLE)sdio_getStorageObject(STRG_OBJ_FAT1); + DBG_FUNC("pStrgDXH=0x%08X\r\n",pStrgDXH); + //#NT#2016/05/30#Lincy Lin -begin + //#NT#Support logfile function +#if (LOGFILE_FUNC==ENABLE) +#if HUNTING_CAMERA_MCU == ENABLE + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if (puiPara->DebugMode) + { + LogFile_Suspend(); + LogFile_Complete(); + } +#else + LogFile_Suspend(); + LogFile_Complete(); +#endif + + +#endif + //#NT#2016/05/30#Lincy Lin -end + ret = FileSys_FormatAndLabel('B', pStrgDXH, FALSE, NULL); + DBG_FUNC("Call FileSys_FormatDisk() ret=%d\r\n", ret); + + if (ret == FST_STA_OK) { + // reset file ID (for FileDB) +#if USE_FILEDB + if (UI_GetData(FL_IsUseFileDB)) { + Ux_SendEvent(&UISetupObjCtrl, NVTEVT_FILEID_RESET, 0); + } +#endif +#if (USE_DCF == ENABLE) + //reset next id 100 , 1 + DCF_SetNextID(MIN_DCF_DIR_NUM, MIN_DCF_FILE_NUM); + UI_SetData(FL_DCF_DIR_ID, MIN_DCF_DIR_NUM); + UI_SetData(FL_DCF_FILE_ID, MIN_DCF_FILE_NUM); + UI_SetData(FL_IsDCIMReadOnly, FALSE); +#endif +#if (PLAY_MODE==ENABLE) + if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PLAYBACK) { + UIPlay_PlaySingle(PB_SINGLE_CURR); + } +#endif + //#NT#2016/05/30#Lincy Lin -begin + //#NT#Support logfile function +#if (LOGFILE_FUNC==ENABLE) + #if HUNTING_CAMERA_MCU == ENABLE + if (puiPara->DebugMode) + { + LogFile_ReOpen(); + } + #else + LogFile_ReOpen(); + #endif + +#endif + //#NT#2016/05/30#Lincy Lin -end + // vos_util_delay_ms(1000); + SysMain_system("sync"); + #if HUNTING_CAMERA_MCU == ENABLE + //vos_util_delay_ms(1000); + // sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_SUCCESS); + // if(sf_get_pir_statu_flag()){ + // vos_util_delay_ms(3000); + // } + #endif + } + else + { + #if HUNTING_CAMERA_MCU == ENABLE + // sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_FAIL); + // if(sf_get_pir_statu_flag()){ + // vos_util_delay_ms(3000); + // } + #endif + } + MovieExe_ResetFileSN(); +#if HUNTING_CAMERA_MCU == ENABLE + // sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_EXIT); + // if(sf_get_pir_statu_flag()){ + // vos_util_delay_ms(1000); + // } + sf_set_card_statu(ret); +#endif + DBG_FUNC_END("\r\n"); + return (UINT32)ret; } + UINT32 BackgroundFormatCard(void) { int ret; diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index 896fab468..0b294eb9e 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -39,6 +39,8 @@ #if (USE_DCF == ENABLE) #include "DCF.h" #endif +#include "SF_SysStrgMng.h" + #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER @@ -690,7 +692,7 @@ UINT32 PhotoExe_GetExpectSize_RhoBRCrtl(UINT32 ImgIdx, BOOL bPrimaryOnly) UINT32 PhotoExe_GetFreePicNum(void) { - UINT64 uiFreeSpace; + UINT64 uiFreeSpace = 0; UINT32 uiMaxImageSize; UINT32 freeImgNum; // UINT32 reserveSize = 0x80000; // 500KB @@ -698,10 +700,24 @@ UINT32 PhotoExe_GetFreePicNum(void) UINT32 CaptureSize; UINT32 size; + SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return FALSE; + } + #if (FILESIZE_ALIGN_FUNC) reserveSize += FS_ALIGN_RESERVED_SIZE; #endif - uiFreeSpace = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); + if(mmc_dev->dev_type == MMC_DEV_SD) + { + uiFreeSpace = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); + } + else if(mmc_dev->dev_type == MMC_DEV_EMMC) + { + uiFreeSpace = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE); + } //DBG_IND("[cap]Free Space = %d KB\r\n", uiFreeSpace / 1024); diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIStorageCheck.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIStorageCheck.c index 23a4c9ceb..96ce8437d 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIStorageCheck.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIStorageCheck.c @@ -37,6 +37,8 @@ #define __DBGLVL__ 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER #define __DBGFLT__ "*" //*=All, [mark]=CustomClass #include +#include "SF_SysStrgMng.h" + void UIStorageCheck_AllSize(UINT64 *uiTotal, UINT64 *uiRemain) { @@ -56,6 +58,12 @@ void UIStorageCheck_ResetFileReachMax(void) //#NT#Add check for folder attribute static BOOL check_CurrDir_writable(void) { + SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return FALSE; + } UINT32 useFileDB = 0; useFileDB = UI_GetData(FL_IsUseFileDB); @@ -66,9 +74,9 @@ static BOOL check_CurrDir_writable(void) UINT32 CurrDirID; SDCFDIRINFO dirinfo = {0}; - CurrDirID = DCF_GetDBInfo(DCF_INFO_CUR_DIR_ID); + CurrDirID = DCF_GetDBInfoEx(mmc_dev->dcf_handle, DCF_INFO_CUR_DIR_ID); if (CurrDirID) { - if (DCF_GetDirInfo(CurrDirID, &dirinfo)) { + if (DCF_GetDirInfoEx(mmc_dev->dcf_handle, CurrDirID, &dirinfo)) { if (M_IsReadOnly(dirinfo.ucAttrib)) { DBG_IND("DCF folder %d is READONLY.\r\n", CurrDirID); return FALSE; @@ -90,18 +98,32 @@ static BOOL check_CurrDir_writable(void) BOOL UIStorageCheck_DCIMWritable(void) { + SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return FALSE; + } + UINT32 useFileDB = 0; useFileDB = UI_GetData(FL_IsUseFileDB); if (useFileDB) { return TRUE; } else { - char DCIM_DIR[9] = "A:\\DCIM"; + INT32 uiStatus = 0; UINT8 ucAttrib = 0; BOOL ret = FALSE; - - uiStatus = FileSys_GetAttrib(DCIM_DIR, &ucAttrib); + if(mmc_dev->dev_type == MMC_DEV_SD) + { + uiStatus = FileSys_GetAttrib("A:\\DCIM", &ucAttrib); + } + else + { + uiStatus = FileSys_GetAttrib("B:\\DCIM", &ucAttrib); + } + if (uiStatus == FST_STA_OK) { if (ucAttrib & FS_ATTRIB_DIRECTORY) { if (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) { @@ -127,11 +149,90 @@ BOOL UIStorageCheck_DCIMWritable(void) } } -BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) +static BOOL UIStrgCheckFolderFull(DCF_HANDLE DcfHandle) +{ +#if (USE_DCF == ENABLE) + BOOL bIsFileReachMax = FALSE; + UINT32 DCF_DirId = 0, DCF_FileId = 0; + BOOL ret; + + if (System_GetState(SYS_STATE_FS) == FS_NUM_FULL) { + DBG_ERR("UI_Validate_Storage: DIR:999 is existing!\r\n"); + return TRUE; + } + bIsFileReachMax = FALSE; + + ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId); + if (ret && DCF_DirId == 0 && DCF_FileId == 0) { + bIsFileReachMax = TRUE; + DBG_IND("Next dir_id =%d, file_id = %d \r\n", DCF_DirId, DCF_FileId); + } else if (ret && DCF_GetDBInfoEx(DcfHandle, DCF_INFO_IS_9999) == TRUE) + { + bIsFileReachMax = TRUE; + } + return bIsFileReachMax; +#else + return FALSE; +#endif +} + +static BOOL UIStrgCheckFull(UINT32 *pFreeCount) { #if (PHOTO_MODE==ENABLE) UINT32 uiCountTmp = 0; #endif +#if (PHOTO_MODE==ENABLE) + uiCountTmp = PhotoExe_GetFreePicNum(); + DBG_IND("uiCountTmp = %d, pFreeCount=%d\r\n",uiCountTmp,pFreeCount); + if (pFreeCount) { + *pFreeCount = uiCountTmp; + } + if (uiCountTmp == 0) { + return TRUE; + } else { + return FALSE; + } +#else + return FALSE; +#endif +} + +static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id) +{ + if(dev_id == MMC_DEV_SD) + { + FileSys_WaitFinishEx('A'); + } + else if(dev_id == MMC_DEV_EMMC) + { + FileSys_WaitFinishEx('B'); + } + + if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR + || System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT + || System_GetState(SYS_STATE_FS) == FS_UNFORMATTED + //#NT#2016/12/06#Niven Cho -begin + //#NT#MULTI_DRIVE + || System_GetState(SYS_STATE_CARD) == CARD_REMOVED) + //#NT#2016/12/06#Niven Cho -end + //|| UIStorageCheck_Error() ) + { + DBG_ERR("UIStorageCheck: %d Card Error\r\n", System_GetState(SYS_STATE_FS)); + return TRUE; + } else { + return FALSE; + } +} + +BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) +{ + SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return FALSE; + } + UINT32 useFileDB = 0; useFileDB = UI_GetData(FL_IsUseFileDB); @@ -142,49 +243,11 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) if (useFileDB) { return FALSE; } else { -#if (USE_DCF == ENABLE) - BOOL bIsFileReachMax = FALSE; - UINT32 DCF_DirId = 0, DCF_FileId = 0; - BOOL ret; - - if (System_GetState(SYS_STATE_FS) == FS_NUM_FULL) { - DBG_ERR("UI_Validate_Storage: DIR:999 is existing!\r\n"); - return TRUE; - } - bIsFileReachMax = FALSE; - //#NT#2011/03/28#Lincy Lin -begin - //#NT#fix delete the 9999th file in 999 folder cause capture not save - ret = DCF_GetNextID(&DCF_DirId, &DCF_FileId); - if (ret && DCF_DirId == 0 && DCF_FileId == 0) { - bIsFileReachMax = TRUE; - DBG_IND("Next dir_id =%d, file_id = %d \r\n", DCF_DirId, DCF_FileId); - } else if (ret && DCF_GetDBInfo(DCF_INFO_IS_9999) == TRUE) - //#NT#2011/03/28#Lincy Lin -end - { - bIsFileReachMax = TRUE; - } - return bIsFileReachMax; -#else - return FALSE; -#endif + UIStrgCheckFolderFull(mmc_dev->dcf_handle); } break; case STORAGE_CHECK_FULL: -#if (PHOTO_MODE==ENABLE) - uiCountTmp = PhotoExe_GetFreePicNum(); - DBG_IND("uiCountTmp = %d, pFreeCount=%d\r\n",uiCountTmp,pFreeCount); - if (pFreeCount) { - *pFreeCount = uiCountTmp; - } - if (uiCountTmp == 0) { - return TRUE; - } else { - return FALSE; - } -#else - return FALSE; -#endif - + UIStrgCheckFull(pFreeCount); break; case STORAGE_CHECK_LOCKED: if (System_GetState(SYS_STATE_CARD) == CARD_LOCKED) { @@ -195,21 +258,7 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) } break; case STORAGE_CHECK_ERROR: - FileSys_WaitFinish(); - if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR - || System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT - || System_GetState(SYS_STATE_FS) == FS_UNFORMATTED - //#NT#2016/12/06#Niven Cho -begin - //#NT#MULTI_DRIVE - || System_GetState(SYS_STATE_CARD) == CARD_REMOVED) - //#NT#2016/12/06#Niven Cho -end - //|| UIStorageCheck_Error() ) - { - DBG_ERR("UIStorageCheck: %d Card Error\r\n", System_GetState(SYS_STATE_FS)); - return TRUE; - } else { - return FALSE; - } + UIStrgCheckErr(mmc_dev->dev_type); break; case STORAGE_CHECK_DCIM_READONLY: if ((UIStorageCheck_DCIMWritable() == FALSE) diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index ac73f54f6..127f5e88c 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -22,6 +22,7 @@ #include "sf_common.h" #if (USE_DCF == ENABLE) #include "DCF.h" +#include "SF_SysStrgMng.h" #endif #if HUNTING_CAMERA_MCU == ENABLE #include @@ -673,6 +674,12 @@ static void update_camera_message(void) UIMenuStoreInfo *puiPara = sf_ui_para_get(); // if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)) + SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + } + switch (puiPara->ImgSize) { case PHOTO_SIZE_40M: @@ -719,6 +726,8 @@ static void update_camera_message(void) default: break; } + + #if 1 if (System_GetState(SYS_STATE_FS) == FS_INIT_OK) { UINT32 cardStatus = System_GetState(SYS_STATE_CARD); @@ -771,6 +780,8 @@ static void update_camera_message(void) set_warning_label_text(label_6_scr_uiflowphoto); lv_label_set_text(label_6_scr_uiflowphoto, "SD Card Error"); } + #endif + } extern int is_menu_screen_luck(void); diff --git a/code/lib/include/FileSysTsk.h b/code/lib/include/FileSysTsk.h index dd9c3e874..2a7c7a800 100644 --- a/code/lib/include/FileSysTsk.h +++ b/code/lib/include/FileSysTsk.h @@ -1715,8 +1715,6 @@ extern int FileSys_SearchFileRewind(FS_SEARCH_HDL pSearch); #define FileSys_RegisterCB(parm1) FileSys_RegisterCBEx('A', parm1) #define FileSys_Benchmark(parm1,parm2,parm3) FileSys_BenchmarkEx('A', parm1,parm2,parm3) -#define FileSys_GetEMMCDiskInfo(parm1) FileSys_GetDiskInfoEx('B', parm1) - #define fs_getcwd FileSys_GetCwd #define fs_setcwd FileSys_SetCwd diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index 323351ecb..329f61430 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -27,6 +27,8 @@ #include "UIApp/AppDisp_PipView.h" #include #include "vendor_videocapture.h" +#include "sf_sd_common.h" + #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER @@ -615,17 +617,31 @@ UINT32 PhotoExe_GetExpectSize_RhoBRCrtl(UINT32 ImgIdx, BOOL bPrimaryOnly) UINT32 PhotoExe_GetFreePicNum(void) { - UINT64 uiFreeSpace; + UINT64 uiFreeSpace = 0; UINT32 uiMaxImageSize; UINT32 freeImgNum; UINT32 reserveSize = 0x80000; // 500KB UINT32 CaptureSize; UINT32 size; + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return FALSE; + } + #if (FILESIZE_ALIGN_FUNC) reserveSize += FS_ALIGN_RESERVED_SIZE; #endif - uiFreeSpace = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); + if(mmc_dev->dev_type == MMC_DEV_SD) + { + uiFreeSpace = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); + } + else if(mmc_dev->dev_type == MMC_DEV_EMMC) + { + uiFreeSpace = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE); + } DBG_IND("[cap]Free Space = %d KB\r\n", uiFreeSpace / 1024); @@ -659,7 +675,6 @@ UINT32 PhotoExe_GetFreePicNum(void) return freeImgNum; } - void PhotoExe_GetDispCord(URECT *dispCord) { UINT32 ImageRatioIdx = 0; diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIStorageCheck.c b/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIStorageCheck.c index 23a4c9ceb..65e981cf7 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIStorageCheck.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIStorageCheck.c @@ -30,6 +30,8 @@ #include "FileSysTsk.h" #include "PlaybackTsk.h" #include "DCF.h" +#include "sf_sd_common.h" + #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER /////////////////////////////////////////////////////////////////////////////// @@ -46,16 +48,22 @@ void UIStorageCheck_AllSize(UINT64 *uiTotal, UINT64 *uiRemain) (*uiRemain) /= (1024 * 1024); } + static BOOL bIsFileReachMax = FALSE; void UIStorageCheck_ResetFileReachMax(void) { bIsFileReachMax = FALSE; } -//#NT#2009/12/30#Ben Wang -begin -//#NT#Add check for folder attribute + static BOOL check_CurrDir_writable(void) { + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return FALSE; + } UINT32 useFileDB = 0; useFileDB = UI_GetData(FL_IsUseFileDB); @@ -66,9 +74,9 @@ static BOOL check_CurrDir_writable(void) UINT32 CurrDirID; SDCFDIRINFO dirinfo = {0}; - CurrDirID = DCF_GetDBInfo(DCF_INFO_CUR_DIR_ID); + CurrDirID = DCF_GetDBInfoEx(mmc_dev->dcf_handle, DCF_INFO_CUR_DIR_ID); if (CurrDirID) { - if (DCF_GetDirInfo(CurrDirID, &dirinfo)) { + if (DCF_GetDirInfoEx(mmc_dev->dcf_handle, CurrDirID, &dirinfo)) { if (M_IsReadOnly(dirinfo.ucAttrib)) { DBG_IND("DCF folder %d is READONLY.\r\n", CurrDirID); return FALSE; @@ -88,20 +96,34 @@ static BOOL check_CurrDir_writable(void) } } + + BOOL UIStorageCheck_DCIMWritable(void) { + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return FALSE; + } + UINT32 useFileDB = 0; useFileDB = UI_GetData(FL_IsUseFileDB); if (useFileDB) { return TRUE; - } else { - char DCIM_DIR[9] = "A:\\DCIM"; + } else { INT32 uiStatus = 0; UINT8 ucAttrib = 0; BOOL ret = FALSE; + if(mmc_dev->dev_type == MMC_DEV_SD) + { + uiStatus = FileSys_GetAttrib("A:\\DCIM", &ucAttrib); + } + else + { + uiStatus = FileSys_GetAttrib("B:\\DCIM", &ucAttrib); + } - - uiStatus = FileSys_GetAttrib(DCIM_DIR, &ucAttrib); if (uiStatus == FST_STA_OK) { if (ucAttrib & FS_ATTRIB_DIRECTORY) { if (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) { @@ -127,11 +149,90 @@ BOOL UIStorageCheck_DCIMWritable(void) } } -BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) +static BOOL UIStrgCheckFolderFull(DCF_HANDLE DcfHandle) +{ +#if (USE_DCF == ENABLE) + BOOL bIsFileReachMax = FALSE; + UINT32 DCF_DirId = 0, DCF_FileId = 0; + BOOL ret; + + if (System_GetState(SYS_STATE_FS) == FS_NUM_FULL) { + DBG_ERR("UI_Validate_Storage: DIR:999 is existing!\r\n"); + return TRUE; + } + bIsFileReachMax = FALSE; + + ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId); + if (ret && DCF_DirId == 0 && DCF_FileId == 0) { + bIsFileReachMax = TRUE; + DBG_IND("Next dir_id =%d, file_id = %d \r\n", DCF_DirId, DCF_FileId); + } else if (ret && DCF_GetDBInfoEx(DcfHandle, DCF_INFO_IS_9999) == TRUE) + { + bIsFileReachMax = TRUE; + } + return bIsFileReachMax; +#else + return FALSE; +#endif +} + +static BOOL UIStrgCheckFull(UINT32 *pFreeCount) { #if (PHOTO_MODE==ENABLE) UINT32 uiCountTmp = 0; #endif +#if (PHOTO_MODE==ENABLE) + uiCountTmp = PhotoExe_GetFreePicNum(); + DBG_IND("uiCountTmp = %d, pFreeCount=%d\r\n",uiCountTmp,pFreeCount); + if (pFreeCount) { + *pFreeCount = uiCountTmp; + } + if (uiCountTmp == 0) { + return TRUE; + } else { + return FALSE; + } +#else + return FALSE; +#endif +} + +static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id) +{ + if(dev_id == MMC_DEV_SD) + { + FileSys_WaitFinishEx('A'); + } + else if(dev_id == MMC_DEV_EMMC) + { + FileSys_WaitFinishEx('B'); + } + + if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR + || System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT + || System_GetState(SYS_STATE_FS) == FS_UNFORMATTED + //#NT#2016/12/06#Niven Cho -begin + //#NT#MULTI_DRIVE + || System_GetState(SYS_STATE_CARD) == CARD_REMOVED) + //#NT#2016/12/06#Niven Cho -end + //|| UIStorageCheck_Error() ) + { + DBG_ERR("UIStorageCheck: %d Card Error\r\n", System_GetState(SYS_STATE_FS)); + return TRUE; + } else { + return FALSE; + } +} + +BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) +{ + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return FALSE; + } + UINT32 useFileDB = 0; useFileDB = UI_GetData(FL_IsUseFileDB); @@ -142,49 +243,11 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) if (useFileDB) { return FALSE; } else { -#if (USE_DCF == ENABLE) - BOOL bIsFileReachMax = FALSE; - UINT32 DCF_DirId = 0, DCF_FileId = 0; - BOOL ret; - - if (System_GetState(SYS_STATE_FS) == FS_NUM_FULL) { - DBG_ERR("UI_Validate_Storage: DIR:999 is existing!\r\n"); - return TRUE; - } - bIsFileReachMax = FALSE; - //#NT#2011/03/28#Lincy Lin -begin - //#NT#fix delete the 9999th file in 999 folder cause capture not save - ret = DCF_GetNextID(&DCF_DirId, &DCF_FileId); - if (ret && DCF_DirId == 0 && DCF_FileId == 0) { - bIsFileReachMax = TRUE; - DBG_IND("Next dir_id =%d, file_id = %d \r\n", DCF_DirId, DCF_FileId); - } else if (ret && DCF_GetDBInfo(DCF_INFO_IS_9999) == TRUE) - //#NT#2011/03/28#Lincy Lin -end - { - bIsFileReachMax = TRUE; - } - return bIsFileReachMax; -#else - return FALSE; -#endif + UIStrgCheckFolderFull(mmc_dev->dcf_handle); } break; case STORAGE_CHECK_FULL: -#if (PHOTO_MODE==ENABLE) - uiCountTmp = PhotoExe_GetFreePicNum(); - DBG_IND("uiCountTmp = %d, pFreeCount=%d\r\n",uiCountTmp,pFreeCount); - if (pFreeCount) { - *pFreeCount = uiCountTmp; - } - if (uiCountTmp == 0) { - return TRUE; - } else { - return FALSE; - } -#else - return FALSE; -#endif - + UIStrgCheckFull(pFreeCount); break; case STORAGE_CHECK_LOCKED: if (System_GetState(SYS_STATE_CARD) == CARD_LOCKED) { @@ -195,21 +258,7 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) } break; case STORAGE_CHECK_ERROR: - FileSys_WaitFinish(); - if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR - || System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT - || System_GetState(SYS_STATE_FS) == FS_UNFORMATTED - //#NT#2016/12/06#Niven Cho -begin - //#NT#MULTI_DRIVE - || System_GetState(SYS_STATE_CARD) == CARD_REMOVED) - //#NT#2016/12/06#Niven Cho -end - //|| UIStorageCheck_Error() ) - { - DBG_ERR("UIStorageCheck: %d Card Error\r\n", System_GetState(SYS_STATE_FS)); - return TRUE; - } else { - return FALSE; - } + UIStrgCheckErr(mmc_dev->dev_type); break; case STORAGE_CHECK_DCIM_READONLY: if ((UIStorageCheck_DCIMWritable() == FALSE) diff --git a/rtos/code/driver/na51089/include/sf_sd_common.h b/rtos/code/driver/na51089/include/sf_sd_common.h index 2f267f451..6c6635ab9 100755 --- a/rtos/code/driver/na51089/include/sf_sd_common.h +++ b/rtos/code/driver/na51089/include/sf_sd_common.h @@ -62,6 +62,7 @@ typedef struct MMC_DEV_TYPE dev_type; MMC_DEV_MOUNT_STATE moumted_state; MMC_DEV_SPACE_STATE space_state; + MMC_DEV_LOOP_STATE loop_state; int dcf_handle; }SF_RTOS_ST_MMC_DEV; diff --git a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c index 9d04409c7..7fdd216b6 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c +++ b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c @@ -157,19 +157,19 @@ static UINT32 sf_rtos_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev) /*check disk free size*/ if(mmc_dev == MMC_DEV_SD) { - diskFree = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); + diskFree = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); } else { - diskFree = FileSys_GetEMMCDiskInfo(FST_INFO_FREE_SPACE); + diskFree = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE); } + diskFree = diskFree/1024/1024; if(diskFree < 30) /* 30MB */ { ret = 1; - IsCardFull = TRUE; } else { @@ -181,6 +181,7 @@ static UINT32 sf_rtos_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev) int SF_RtosStrgRegister(int devid, int mounted_state) { + UIMenuStoreInfo *puiPara = sf_ui_para_get(); if(mounted_state == FST_STA_OK) { sf_rtos_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; @@ -190,16 +191,15 @@ int SF_RtosStrgRegister(int devid, int mounted_state) sf_rtos_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; } - UINT32 isfull = sf_rtos_mmc_dev_space_check_full(devid); - if(isfull == 1) + if(puiPara->SdLoopSwitch == 1) { - sf_rtos_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; + sf_rtos_mmc_dev[devid]->loop_state = MMC_DEV_LOOP_STATE_ON; } - else if(isfull == 0) - { - sf_rtos_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; - } - DBG_WRN("11devid = %d, state = %d\n", devid, mounted_state); + else + sf_rtos_mmc_dev[devid]->loop_state = MMC_DEV_LOOP_STATE_OFF; + + + DBG_WRN("devid = %d, state = %d\n", devid, mounted_state); return 0; } @@ -214,6 +214,27 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void) { MMC_DEV_TYPE workable_dev = MMC_DEV_NO; + UINT32 isfull = 0; + isfull = sf_rtos_mmc_dev_space_check_full(MMC_DEV_SD); + if(isfull == 1) + { + sf_rtos_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; + } + else if(isfull == 0) + { + sf_rtos_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; + } + + isfull = sf_rtos_mmc_dev_space_check_full(MMC_DEV_EMMC); + if(isfull == 1) + { + sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; + } + else if(isfull == 0) + { + sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; + } + if((sf_rtos_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) && (sf_rtos_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)) { @@ -227,9 +248,9 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void) } else { - //if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) + if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) { - //workable_dev = MMC_DEV_EMMC; + workable_dev = MMC_DEV_EMMC; } } } @@ -241,9 +262,9 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void) } else { - //if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) + if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) { - //workable_dev = MMC_DEV_SD; + workable_dev = MMC_DEV_SD; } } } @@ -264,9 +285,9 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void) } else { - //if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) + if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) { - //workable_dev = MMC_DEV_EMMC; + workable_dev = MMC_DEV_EMMC; } } }