From cb85cef1aec6196044703d789d8058d1c641566d Mon Sep 17 00:00:00 2001 From: hukaisunny Date: Tue, 11 Dec 2018 02:04:03 -0800 Subject: [PATCH] First openmv version with 8.2.0 toolchain --- CMakeLists.txt | 11 +- LICENSE | 14 + README.md | 9 + cmake/common.cmake | 2 +- cmake/compile-flags.cmake | 16 +- cmake/dump-config.cmake | 11 +- cmake/executable.cmake | 21 +- cmake/macros.cmake | 7 + cmake/toolchain.cmake | 44 +- lds/kendryte.ld | 6 +- lib/CMakeLists.txt | 8 +- lib/bsp/crt.S | 18 +- lib/bsp/entry_user.c | 7 +- lib/bsp/include/atomic.h | 13 +- lib/bsp/include/dump.h | 8 +- lib/bsp/interrupt.c | 2 +- lib/bsp/printf.c | 15 - lib/bsp/syscalls.c | 2 +- lib/drivers/aes.c | 382 ++++++++++++++++ lib/drivers/clint.c | 4 +- lib/drivers/common.c | 44 -- lib/drivers/dmac.c | 117 ++++- lib/drivers/dvp.c | 18 +- lib/drivers/i2c.c | 60 +++ lib/drivers/i2s.c | 69 ++- lib/drivers/include/aes.h | 356 +++++++++++++++ lib/drivers/include/clint.h | 4 +- lib/drivers/include/dmac.h | 84 +++- lib/drivers/include/dvp.h | 9 +- lib/drivers/include/fft.h | 21 +- lib/drivers/include/i2c.h | 25 + lib/drivers/include/i2s.h | 36 +- lib/drivers/include/kpu.h | 368 +++++++++++++++ lib/drivers/include/plic.h | 11 + lib/drivers/include/sysctl.h | 7 + lib/drivers/include/timer.h | 35 +- lib/drivers/include/uart.h | 130 ++++++ lib/drivers/include/uarths.h | 69 +++ lib/drivers/kpu.c | 176 +++++++ lib/drivers/plic.c | 7 +- lib/drivers/rtc.c | 6 +- lib/drivers/spi.c | 118 +++-- lib/drivers/sysctl.c | 28 +- lib/drivers/timer.c | 201 +++++++- lib/drivers/uart.c | 269 ++++++++--- lib/drivers/uarths.c | 104 +++++ lib/drivers/wdt.c | 11 +- logo/deepvision_log.jpg | Bin 0 -> 227459 bytes src/openmv/main/main.c | 3 +- src/openmv/src/micropython/lib/utils/pyexec.c | 1 + .../src/micropython/mpy-cross/mpconfigport.h | 6 +- .../ports/k210-standalone/Makefile | 2 + .../ports/k210-standalone/Makefile_back | 377 +++++++++++++++ .../board-drivers/include/ov5640cfg.h | 17 +- .../k210-standalone/board-drivers/ov2640.c | 2 +- .../k210-standalone/board-drivers/uart_core.c | 2 +- .../ports/k210-standalone/buildin-py/boot.py | 11 +- .../mpy-mod/machine/machine_uarths.c | 2 +- .../ports/k210-standalone/spiffs/afltests/100 | 30 +- .../src/micropython/py/makeqstrdata.pyc | Bin 0 -> 6541 bytes src/openmv/src/micropython/py/nlr.c | 1 - .../tests/cmdline/repl_autocomplete.py.exp | 28 +- .../tests/cmdline/repl_emacs_keys.py.exp | 38 +- src/openmv/src/omv/fb_alloc.c | 2 +- src/openmv/src/omv/ff_wrapper.c | 2 +- src/openmv/src/omv/img/dmtx.c | 18 +- src/openmv/src/omv/img/edge.c | 4 +- src/openmv/src/omv/img/fmath.c | 3 +- src/openmv/src/omv/img/haar.c | 2 +- src/openmv/src/omv/img/imlib.c | 31 +- src/openmv/src/omv/img/imlib.h | 2 +- src/openmv/src/omv/img/phasecorrelation.c | 36 +- src/openmv/src/omv/img/qrcode.c | 1 - src/openmv/src/omv/py/py_image.c | 432 +++++++++++++----- src/openmv/src/omv/py/py_nn.c | 24 +- src/openmv/src/omv/py/py_sensor.c | 9 +- 76 files changed, 3511 insertions(+), 558 deletions(-) create mode 100755 LICENSE create mode 100755 README.md delete mode 100755 lib/drivers/common.c create mode 100755 lib/drivers/include/kpu.h create mode 100755 lib/drivers/kpu.c create mode 100755 logo/deepvision_log.jpg create mode 100755 src/openmv/src/micropython/ports/k210-standalone/Makefile_back create mode 100755 src/openmv/src/micropython/py/makeqstrdata.pyc diff --git a/CMakeLists.txt b/CMakeLists.txt index dacc18a..e83bb8c 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,12 @@ set(BUILDING_SDK "yes" CACHE INTERNAL "") # basic config if (NOT PROJ) - message(FATAL_ERROR "PROJ must be set. e.g. -DPROJ=hello_world") + get_filename_component(PROJ ${CMAKE_CURRENT_BINARY_DIR} DIRECTORY) + get_filename_component(PROJ ${PROJ} NAME) + string(REPLACE " " "_" PROJ ${PROJ}) + message(STATUS "PROJ not set, use ${PROJ} as PROJ. Also, you can set it manually. e.g. -DPROJ=hello_world") +else() + message("PROJ = ${PROJ}") endif () cmake_minimum_required(VERSION 3.0) include(./cmake/common.cmake) @@ -17,10 +22,8 @@ header_directories(${SDK_ROOT}/lib) # build library first add_subdirectory(lib) -# TODO -#add_subdirectory(third_party) - # compile project +#add_source_files(src/${PROJ}/*.c src/${PROJ}/*.s src/${PROJ}/*.S src/${PROJ}/*.cpp) add_custom_target(build_metis ALL COMMAND ${CMAKE_MAKE_PROGRAM} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/openmv/src/micropython/ports/k210-standalone diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..1b89f14 --- /dev/null +++ b/LICENSE @@ -0,0 +1,14 @@ +/* Copyright 2018 Canaan Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100755 index 0000000..30b9951 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +Kendryte-standalone-opemv build steps: +1. download V8.2.0 toolchain from https://kendryte.com/downloads/ +2. export PATH=/opt/maix-toolchain/bin/:$PATH (riscv toolchain path for micropython build) +3. mkdir build +4. cd build +5. cmake .. -DPROJ=openmv -DTOOLCHAIN=/opt/maix-toolchain/bin (riscv toolchain path for kendryte sdk build) +6. make + +The default example is face detect, you can change src/openmv/src/micropython/ports/k210-standalone/buildin-py/boot.py to implement other openmv functions. diff --git a/cmake/common.cmake b/cmake/common.cmake index e9ba31a..ec2ecb8 100755 --- a/cmake/common.cmake +++ b/cmake/common.cmake @@ -20,7 +20,7 @@ IF (CMAKE_BUILD_TYPE STREQUAL Debug) ENDIF () # definitions in macros -add_definitions(-DCONFIG_LOG_LEVEL=LOG_VERBOSE -DCONFIG_LOG_ENABLE -DCONFIG_LOG_COLORS -DLOG_KERNEL -D__riscv64 -DFPGA_PLL) +add_definitions(-DCONFIG_LOG_LEVEL=LOG_VERBOSE -DCONFIG_LOG_ENABLE -DCONFIG_LOG_COLORS -DLOG_KERNEL -D__riscv64) if (NOT SDK_ROOT) get_filename_component(_SDK_ROOT ${CMAKE_CURRENT_LIST_DIR} DIRECTORY) diff --git a/cmake/compile-flags.cmake b/cmake/compile-flags.cmake index 76f1fea..cf74d23 100755 --- a/cmake/compile-flags.cmake +++ b/cmake/compile-flags.cmake @@ -19,11 +19,19 @@ add_compile_flags(BOTH -fdata-sections -fstrict-volatile-bitfields -fno-zero-initialized-in-bss - -Os + -Os + -ffloat-store -ggdb - ) + ) + +#hukai +#add_compile_flags(C +# -fstack-protector +# -fstack-protector-all +# -fstack-usage +# ) -add_compile_flags(C -std=gnu11) +add_compile_flags(C -std=gnu11 -Wno-pointer-to-int-cast) add_compile_flags(CXX -std=gnu++17) if (BUILDING_SDK) @@ -42,9 +50,9 @@ if (BUILDING_SDK) -Wno-error=return-type -Wno-error=pointer-sign -Wno-missing-braces - -Wno-pointer-to-int-cast -Wno-strict-aliasing -Wno-implicit-fallthrough + -Wno-missing-field-initializers ) add_compile_flags(C -Wno-old-style-declaration) diff --git a/cmake/dump-config.cmake b/cmake/dump-config.cmake index d843858..8531f6c 100755 --- a/cmake/dump-config.cmake +++ b/cmake/dump-config.cmake @@ -1,13 +1,22 @@ message("") message("Project: ${PROJECT_NAME}") +message(" LIST_FILE=${CMAKE_PARENT_LIST_FILE}") message(" TOOLCHAIN=${TOOLCHAIN}") -message(" KENDRYTE IDE=${KENDRYTE_IDE}") +message(" KENDRYTE_IDE=${KENDRYTE_IDE}") +message(" BUILDING_SDK=${BUILDING_SDK}") message("") message(" CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}") message(" CMAKE_C_COMPILER=${CMAKE_C_COMPILER}") message(" CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") message(" CMAKE_LINKER=${CMAKE_LINKER}") message(" CMAKE_OBJCOPY=${CMAKE_OBJCOPY}") +message(" CMAKE_OBJDUMP=${CMAKE_OBJDUMP}") +message(" CMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}") +message("") +message(" CMAKE_C_FLAGS=${CMAKE_C_FLAGS}") +message(" CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}") +message(" LDFLAGS=${LDFLAGS}") +message(" CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}") message("Makefile created.") message("") message("") diff --git a/cmake/executable.cmake b/cmake/executable.cmake index 6d1ffc4..e336d03 100755 --- a/cmake/executable.cmake +++ b/cmake/executable.cmake @@ -1,37 +1,40 @@ if (NOT BUILDING_SDK) add_library(kendryte STATIC IMPORTED) - set_property(TARGET kendryte PROPERTY IMPORTED_LOCATION ${SDK_ROOT}/libmaix.a) + set_property(TARGET kendryte PROPERTY IMPORTED_LOCATION ${SDK_ROOT}/libkendryte.a) include_directories(${SDK_ROOT}/include/) endif () +removeDuplicateSubstring(${CMAKE_C_FLAGS} CMAKE_C_FLAGS) +removeDuplicateSubstring(${CMAKE_CXX_FLAGS} CMAKE_CXX_FLAGS) + +message("SOURCE_FILES=${SOURCE_FILES}") add_executable(${PROJECT_NAME} ${SOURCE_FILES}) -# add_dependencies(${PROJECT_NAME} kendryte) # TODO: third_party -# target_link_libraries(${PROJECT_NAME} kendryte) # TODO: third_party -# link_directories(${CMAKE_BINARY_DIR}) + target_link_libraries(${PROJECT_NAME} ${SDK_ROOT}/src/openmv/src/micropython/ports/k210-standalone/micropython.a ) + set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE C) target_link_libraries(${PROJECT_NAME} -Wl,--start-group - gcc m c kendryte + gcc m c + -Wl,--whole-archive + kendryte + -Wl,--no-whole-archive -Wl,--end-group ) + IF(SUFFIX) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SUFFIX ${SUFFIX}) ENDIF() -#message("CMAKE_OBJCOPY=${CMAKE_OBJCOPY}") - # Build target add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_OBJCOPY} --output-format=binary ${CMAKE_BINARY_DIR}/${PROJECT_NAME}${SUFFIX} ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.bin DEPENDS ${PROJECT_NAME} COMMENT "Generating .bin file ...") - add_custom_target(firmware DEPENDS ${PROJECT_NAME}.firmware.bin) - # show information include(${CMAKE_CURRENT_LIST_DIR}/dump-config.cmake) diff --git a/cmake/macros.cmake b/cmake/macros.cmake index 9ef8728..ab75e24 100755 --- a/cmake/macros.cmake +++ b/cmake/macros.cmake @@ -36,6 +36,13 @@ global_set(CMAKE_EXE_LINKER_FLAGS "") global_set(CMAKE_SHARED_LINKER_FLAGS "") global_set(CMAKE_MODULE_LINKER_FLAGS "") +function(removeDuplicateSubstring stringIn stringOut) + separate_arguments(stringIn) + list(REMOVE_DUPLICATES stringIn) + string(REPLACE ";" " " stringIn "${stringIn}") + set(${stringOut} "${stringIn}" PARENT_SCOPE) +endfunction() + macro(add_compile_flags WHERE) JOIN("${ARGN}" " " STRING_ARGS) if (${WHERE} STREQUAL C) diff --git a/cmake/toolchain.cmake b/cmake/toolchain.cmake index 163ddac..83707b1 100755 --- a/cmake/toolchain.cmake +++ b/cmake/toolchain.cmake @@ -1,20 +1,42 @@ -if (NOT TOOLCHAIN) - message(FATAL_ERROR "TOOLCHAIN must be set, to absolute path of kendryte-toolchain dist/bin folder.") -endif () - if (WIN32) set(EXT ".exe") else () set(EXT "") endif () -condition_set(CMAKE_C_COMPILER "${TOOLCHAIN}/riscv64-unknown-elf-gcc${EXT}" CACHE INTERNAL "") -condition_set(CMAKE_CXX_COMPILER "${TOOLCHAIN}/riscv64-unknown-elf-g++${EXT}" CACHE INTERNAL "") -condition_set(CMAKE_LINKER "${TOOLCHAIN}/riscv64-unknown-elf-ld${EXT}" CACHE INTERNAL "") -condition_set(CMAKE_AR "${TOOLCHAIN}/riscv64-unknown-elf-ar${EXT}" CACHE INTERNAL "") -condition_set(CMAKE_CXX_COMPILER_AR "${CMAKE_AR}${EXT}" CACHE INTERNAL "") -condition_set(CMAKE_C_COMPILER_AR "${CMAKE_AR}${EXT}" CACHE INTERNAL "") -condition_set(CMAKE_OBJCOPY "${TOOLCHAIN}/riscv64-unknown-elf-objcopy${EXT}" CACHE INTERNAL "") +message(STATUS "Check for RISCV toolchain ...") +if(NOT TOOLCHAIN) + find_path(_TOOLCHAIN riscv64-unknown-elf-gcc${EXT}) + global_set(TOOLCHAIN "${_TOOLCHAIN}") +elseif(NOT "${TOOLCHAIN}" MATCHES "/$") + global_set(TOOLCHAIN "${TOOLCHAIN}") +endif() + +if (NOT TOOLCHAIN) + message(FATAL_ERROR "TOOLCHAIN must be set, to absolute path of kendryte-toolchain dist/bin folder.") +endif () + +message(STATUS "Using ${TOOLCHAIN} RISCV toolchain") + +global_set(CMAKE_C_COMPILER "${TOOLCHAIN}/riscv64-unknown-elf-gcc${EXT}") +global_set(CMAKE_CXX_COMPILER "${TOOLCHAIN}/riscv64-unknown-elf-g++${EXT}") +global_set(CMAKE_LINKER "${TOOLCHAIN}/riscv64-unknown-elf-ld${EXT}") +global_set(CMAKE_AR "${TOOLCHAIN}/riscv64-unknown-elf-ar${EXT}") +global_set(CMAKE_OBJCOPY "${TOOLCHAIN}/riscv64-unknown-elf-objcopy${EXT}") +global_set(CMAKE_SIZE "${TOOLCHAIN}/riscv64-unknown-elf-size${EXT}") +global_set(CMAKE_OBJDUMP "${TOOLCHAIN}/riscv64-unknown-elf-objdump${EXT}") + +execute_process(COMMAND ${CMAKE_C_COMPILER} -print-file-name=crt0.o OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE CRT0_OBJ) +execute_process(COMMAND ${CMAKE_C_COMPILER} -print-file-name=crtbegin.o OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE CRTBEGIN_OBJ) +execute_process(COMMAND ${CMAKE_C_COMPILER} -print-file-name=crtend.o OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE CRTEND_OBJ) +execute_process(COMMAND ${CMAKE_C_COMPILER} -print-file-name=crti.o OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE CRTI_OBJ) +execute_process(COMMAND ${CMAKE_C_COMPILER} -print-file-name=crtn.o OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE CRTN_OBJ) + +global_set(CMAKE_C_LINK_EXECUTABLE + " \"${CRTI_OBJ}\" \"${CRTBEGIN_OBJ}\" \"${CRTEND_OBJ}\" \"${CRTN_OBJ}\" -o ") + +global_set(CMAKE_CXX_LINK_EXECUTABLE + " \"${CRTI_OBJ}\" \"${CRTBEGIN_OBJ}\" \"${CRTEND_OBJ}\" \"${CRTN_OBJ}\" -o ") get_filename_component(_BIN_DIR "${CMAKE_C_COMPILER}" DIRECTORY) if (NOT "${TOOLCHAIN}" STREQUAL "${_BIN_DIR}") diff --git a/lds/kendryte.ld b/lds/kendryte.ld index b2fdbe8..97a20d6 100755 --- a/lds/kendryte.ld +++ b/lds/kendryte.ld @@ -9,7 +9,8 @@ MEMORY * Memory with CPU cache. *6M CPU SRAM */ - ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = (6 * 1024 * 1024) + /*ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = (6 * 1024 * 1024)*/ + ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = (6 * 1024 * 1024) /* * Memory without CPU cache * 6M CPU SRAM @@ -23,7 +24,7 @@ PROVIDE( _ram_start = ORIGIN(ram) ); PROVIDE( _ram_end = ORIGIN(ram) + LENGTH(ram) ); PROVIDE( _io_start = 0x40000000 ); PROVIDE( _io_end = _io_start + LENGTH(ram) ); -PROVIDE( _stack_size = 1 << 17 ); +PROVIDE( _stack_size = 1 << 16 ); /* @@ -244,6 +245,7 @@ SECTIONS PROVIDE( _tp1 = _tp0 + _stack_size ); PROVIDE( _sp0 = _tp0 + _stack_size ); PROVIDE( _sp1 = _tp1 + _stack_size ); + /* Heap end is at the end of memory, the memory size can set in kconfig */ PROVIDE( _heap_end = _ram_end ); } diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index c6c2d82..c2f8a81 100755 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -16,17 +16,11 @@ FILE(GLOB_RECURSE ASSEMBLY_FILES "${CMAKE_CURRENT_LIST_DIR}/*.S" ) -include_directories(${CMAKE_CURRENT_LIST_DIR}/drivers/include ${CMAKE_CURRENT_LIST_DIR}/bsp/include ${CMAKE_CURRENT_LIST_DIR}/firmware/include) -# -#HEADER_DIRECTORIES(LIB_HEADERS) -# -#INCLUDE_DIRECTORIES(${LIB_HEADERS}) +include_directories(${CMAKE_CURRENT_LIST_DIR}/drivers/include ${CMAKE_CURRENT_LIST_DIR}/bsp/include) SET_PROPERTY(SOURCE ${ASSEMBLY_FILES} PROPERTY LANGUAGE C) SET_SOURCE_FILES_PROPERTIES(${ASSEMBLY_FILES} PROPERTIES COMPILE_FLAGS "-x assembler-with-cpp -D __riscv64") -#MESSAGE("CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") - ADD_LIBRARY(kendryte ${LIB_SRC} ) diff --git a/lib/bsp/crt.S b/lib/bsp/crt.S index 6d4e6a7..e255365 100755 --- a/lib/bsp/crt.S +++ b/lib/bsp/crt.S @@ -19,7 +19,7 @@ # define LFREG fld # define SFREG fsd # define REGBYTES 8 -# define STKSHIFT 17 +# define STKSHIFT 16 .section .text.start, "ax", @progbits @@ -72,14 +72,6 @@ _start: li x30,0 li x31,0 - csrr t0, misa - bltz t0, 1f - li a0, 1234 - j sys_exit -1: - - andi t0, t0, 1 << ('f' - 'a') - beqz t0, 1f li t0, MSTATUS_FS csrs mstatus, t0 @@ -116,18 +108,14 @@ _start: fmv.d.x f29,x0 fmv.d.x f30,x0 fmv.d.x f31,x0 - -1: + .option push .option norelax - la gp, __global_pointer$ + la gp, __global_pointer$ .option pop la tp, _end + 63 and tp, tp, -64 csrr a0, mhartid - li a1, 2 - -1:bgeu a0, a1, 1b sll a2, a0, STKSHIFT add tp, tp, a2 diff --git a/lib/bsp/entry_user.c b/lib/bsp/entry_user.c index 0b44fae..59f96d2 100755 --- a/lib/bsp/entry_user.c +++ b/lib/bsp/entry_user.c @@ -66,8 +66,6 @@ void _init_bsp(int core_id, int number_of_cores) extern int main(int argc, char* argv[]); extern void __libc_init_array(void); extern void __libc_fini_array(void); - /* Initialize thread local data */ - init_tls(); if (core_id == 0) { @@ -101,3 +99,8 @@ void _init_bsp(int core_id, int number_of_cores) exit(ret); } +int pthread_setcancelstate(int __state, int *__oldstate) +{ + return 0; +} + diff --git a/lib/bsp/include/atomic.h b/lib/bsp/include/atomic.h index 1728b5c..1e2e07a 100755 --- a/lib/bsp/include/atomic.h +++ b/lib/bsp/include/atomic.h @@ -72,7 +72,6 @@ typedef struct _corelock int core; } corelock_t; - static inline int spinlock_trylock(spinlock_t *lock) { int res = atomic_swap(&lock->lock, -1); @@ -83,11 +82,7 @@ static inline int spinlock_trylock(spinlock_t *lock) static inline void spinlock_lock(spinlock_t *lock) { - do - { - while (atomic_read(&lock->lock)) - ; - } while (spinlock_trylock(lock)); + while (spinlock_trylock(lock)); } static inline void spinlock_unlock(spinlock_t *lock) @@ -95,6 +90,7 @@ static inline void spinlock_unlock(spinlock_t *lock) /* Use memory barrier to keep coherency */ mb(); atomic_set(&lock->lock, 0); + asm volatile ("nop"); } static inline void semaphore_signal(semaphore_t *semaphore, int i) @@ -143,7 +139,10 @@ static inline int corelock_trylock(corelock_t *lock) asm volatile("csrr %0, mhartid;" : "=r"(core)); - spinlock_lock(&lock->lock); + if(spinlock_trylock(&lock->lock)) + { + return -1; + } if (lock->count == 0) { diff --git a/lib/bsp/include/dump.h b/lib/bsp/include/dump.h index b2012a5..da807b1 100755 --- a/lib/bsp/include/dump.h +++ b/lib/bsp/include/dump.h @@ -109,14 +109,14 @@ dump_core(const char *reason, uintptr_t cause, uintptr_t epc, uintptr_t regs[32] if (!reason) reason = unknown_reason; - DUMP_PRINTF("\r\ncore dump: %s\n", reason); - DUMP_PRINTF("\r\nCause 0x%016lx, EPC 0x%016lx\n", cause, epc); + DUMP_PRINTF("core dump: %s\n", reason); + DUMP_PRINTF("Cause 0x%016lx, EPC 0x%016lx\n", cause, epc); int i = 0; for (i = 0; i < 32 / 2; i++) { DUMP_PRINTF( - "\r\nreg[%02d](%s) = 0x%016lx, reg[%02d](%s) = 0x%016lx\n", + "reg[%02d](%s) = 0x%016lx, reg[%02d](%s) = 0x%016lx\n", i * 2, reg_usage[i * 2][0], regs[i * 2], i * 2 + 1, reg_usage[i * 2 + 1][0], regs[i * 2 + 1]); } @@ -124,7 +124,7 @@ dump_core(const char *reason, uintptr_t cause, uintptr_t epc, uintptr_t regs[32] for (i = 0; i < 32 / 2; i++) { DUMP_PRINTF( - "\r\nfreg[%02d](%s) = 0x%016lx(%f), freg[%02d](%s) = 0x%016lx(%f)\n", + "freg[%02d](%s) = 0x%016lx(%f), freg[%02d](%s) = 0x%016lx(%f)\n", i * 2, regf_usage[i * 2][0], fregs[i * 2], (float)fregs[i * 2], i * 2 + 1, regf_usage[i * 2 + 1][0], fregs[i * 2 + 1], (float)fregs[i * 2 + 1]); } diff --git a/lib/bsp/interrupt.c b/lib/bsp/interrupt.c index 4695f99..a82fea8 100755 --- a/lib/bsp/interrupt.c +++ b/lib/bsp/interrupt.c @@ -36,7 +36,7 @@ handle_irq_m_soft(uintptr_t cause, uintptr_t epc, uintptr_t regs[32], uintptr_t uintptr_t __attribute__((weak, alias("handle_irq_dummy"))) handle_irq_m_timer(uintptr_t cause, uintptr_t epc, uintptr_t regs[32], uintptr_t fregs[32]); -uintptr_t __attribute__((weak, alias("handle_irq_dummy"))) +extern uintptr_t handle_irq_m_ext(uintptr_t cause, uintptr_t epc, uintptr_t regs[32], uintptr_t fregs[32]); uintptr_t __attribute__((weak)) diff --git a/lib/bsp/printf.c b/lib/bsp/printf.c index 5995e93..3be8d51 100755 --- a/lib/bsp/printf.c +++ b/lib/bsp/printf.c @@ -1,18 +1,3 @@ -/* Copyright 2018 Canaan Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - /** * File: printf.c * diff --git a/lib/bsp/syscalls.c b/lib/bsp/syscalls.c index ccd05f2..63ded7a 100755 --- a/lib/bsp/syscalls.c +++ b/lib/bsp/syscalls.c @@ -390,7 +390,7 @@ handle_ecall(uintptr_t cause, uintptr_t epc, uintptr_t regs[32], uintptr_t fregs regs[17] /* n */ ); - return epc + ((*(unsigned short *)epc & 3) == 3 ? 4 : 2); + return epc + 4; } uintptr_t __attribute__((weak, alias("handle_ecall"))) diff --git a/lib/drivers/aes.c b/lib/drivers/aes.c index 5fc3696..2e7e61b 100755 --- a/lib/drivers/aes.c +++ b/lib/drivers/aes.c @@ -13,6 +13,7 @@ * limitations under the License. */ #include +#include #include "sysctl.h" #include "aes.h" #include "utils.h" @@ -195,6 +196,60 @@ void aes_init(uint8_t *input_key, size_t input_key_len, uint8_t *iv,size_t iv_le } } +static void aes_input_bytes(const uint8_t *input_data, size_t input_data_len, aes_cipher_mode_t cipher_mode) +{ + size_t padding_len, uint32_num, uint8_num, remainder, i; + uint32_t uint32_data; + uint8_t uint8_data[4] = {0}; + + padding_len = ((input_data_len + 15) / 16) * 16; + uint32_num = input_data_len / 4; + for (i = 0; i < uint32_num; i++) + { + uint32_data = *((uint32_t *)(&input_data[i * 4])); + while (!aes_get_data_in_flag()) + ; + aes_write_text(uint32_data); + } + uint8_num = 4 * uint32_num; + remainder = input_data_len % 4; + if (remainder) + { + switch (remainder) + { + case 1: + uint8_data[0] = input_data[uint8_num]; + break; + case 2: + uint8_data[0] = input_data[uint8_num]; + uint8_data[1] = input_data[uint8_num + 1]; + break; + case 3: + uint8_data[0] = input_data[uint8_num]; + uint8_data[1] = input_data[uint8_num + 1]; + uint8_data[2] = input_data[uint8_num + 2]; + break; + default: + break; + } + uint32_data = *((uint32_t *)(&uint8_data[0])); + while (!aes_get_data_in_flag()) + ; + aes_write_text(uint32_data); + } + if ((cipher_mode == AES_ECB) || (cipher_mode == AES_CBC)) + { + uint32_num = (padding_len - input_data_len) / 4; + for (i = 0; i < uint32_num; i++) + { + while (!aes_get_data_in_flag()) + ; + aes_write_text(0); + } + uint32_num = padding_len / 4; + } +} + static void process_less_80_bytes(uint8_t *input_data, uint8_t *output_data, size_t input_data_len, aes_cipher_mode_t cipher_mode) { size_t padding_len, uint32_num, uint8_num, remainder, i; @@ -419,3 +474,330 @@ void aes_gcm256_hard_encrypt(gcm_context_t *context, uint8_t *input_data, size_t gcm_get_tag(gcm_tag); } +void aes_ecb128_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + size_t padding_len = ((input_len + 15) / 16) * 16; + aes_init(input_key, AES_128, NULL, 0L, NULL, AES_ECB, AES_HARD_DECRYPTION, 0L, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_ECB); + + dmac_wait_done(dma_receive_channel_num); +} + + +void aes_ecb128_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + aes_init(input_key, AES_128, NULL, 0L, NULL, AES_ECB, AES_HARD_ENCRYPTION, 0L, input_len); + size_t padding_len = ((input_len + 15) / 16) * 16; + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_ECB); + dmac_wait_done(dma_receive_channel_num); +} + +void aes_ecb192_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + size_t padding_len = ((input_len + 15) / 16) * 16; + aes_init(input_key, AES_192, NULL, 0L, NULL, AES_ECB, AES_HARD_DECRYPTION, 0L, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_ECB); + dmac_wait_done(dma_receive_channel_num); +} + +void aes_ecb192_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + aes_init(input_key, AES_192, NULL, 0L, NULL, AES_ECB, AES_HARD_ENCRYPTION, 0L, input_len); + size_t padding_len = ((input_len + 15) / 16) * 16; + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_ECB); + dmac_wait_done(dma_receive_channel_num); +} + +void aes_ecb256_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + size_t padding_len = ((input_len + 15) / 16) * 16; + aes_init(input_key, AES_256, NULL, 0L, NULL, AES_ECB, AES_HARD_DECRYPTION, 0L, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_ECB); + dmac_wait_done(dma_receive_channel_num); +} + +void aes_ecb256_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + aes_init(input_key, AES_256, NULL, 0L, NULL, AES_ECB, AES_HARD_ENCRYPTION, 0L, input_len); + size_t padding_len = ((input_len + 15) / 16) * 16; + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_ECB); + + dmac_wait_done(dma_receive_channel_num); +} + +void aes_cbc128_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + size_t padding_len = ((input_len + 15) / 16) * 16; + aes_init(context->input_key, AES_128, context->iv, IV_LEN_128, NULL, AES_CBC, AES_HARD_DECRYPTION, 0L, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_CBC); + dmac_wait_done(dma_receive_channel_num); +} + +void aes_cbc128_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + aes_init(context->input_key, AES_128, context->iv, IV_LEN_128, NULL, AES_CBC, AES_HARD_ENCRYPTION, 0L, input_len); + size_t padding_len = ((input_len + 15) / 16) * 16; + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_CBC); + dmac_wait_done(dma_receive_channel_num); +} + +void aes_cbc192_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + size_t padding_len = ((input_len + 15) / 16) * 16; + aes_init(context->input_key, AES_192, context->iv, IV_LEN_128, NULL, AES_CBC, AES_HARD_DECRYPTION, 0L, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_CBC); + dmac_wait_done(dma_receive_channel_num); +} + +void aes_cbc192_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + aes_init(context->input_key, AES_192, context->iv, IV_LEN_128, NULL, AES_CBC, AES_HARD_ENCRYPTION, 0L, input_len); + size_t padding_len = ((input_len + 15) / 16) * 16; + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_CBC); + dmac_wait_done(dma_receive_channel_num); +} + +void aes_cbc256_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + size_t padding_len = ((input_len + 15) / 16) * 16; + aes_init(context->input_key, AES_256, context->iv, IV_LEN_128, NULL, AES_CBC, AES_HARD_DECRYPTION, 0L, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_CBC); + dmac_wait_done(dma_receive_channel_num); +} + +void aes_cbc256_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data) +{ + aes_init(context->input_key, AES_256, context->iv, IV_LEN_128, NULL, AES_CBC, AES_HARD_ENCRYPTION, 0L, input_len); + size_t padding_len = ((input_len + 15) / 16) * 16; + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, padding_len >> 2); + aes_input_bytes(input_data, input_len, AES_CBC); + dmac_wait_done(dma_receive_channel_num); +} + +void aes_gcm128_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag) +{ + aes_init(context->input_key, AES_128, context->iv, IV_LEN_96, context->gcm_aad, + AES_GCM, AES_HARD_DECRYPTION, context->gcm_aad_len, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, (input_len + 3) >> 2); + aes_input_bytes(input_data, input_len, AES_GCM); + dmac_wait_done(dma_receive_channel_num); + + gcm_get_tag(gcm_tag); +} + +void aes_gcm128_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag) +{ + aes_init(context->input_key, AES_128, context->iv, IV_LEN_96, context->gcm_aad, + AES_GCM, AES_HARD_ENCRYPTION, context->gcm_aad_len, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, (input_len + 3) >> 2); + aes_input_bytes(input_data, input_len, AES_GCM); + dmac_wait_done(dma_receive_channel_num); + + gcm_get_tag(gcm_tag); +} + +void aes_gcm192_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag) +{ + aes_init(context->input_key, AES_192, context->iv, IV_LEN_96, context->gcm_aad, + AES_GCM, AES_HARD_DECRYPTION, context->gcm_aad_len, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, (input_len + 3) >> 2); + aes_input_bytes(input_data, input_len, AES_GCM); + dmac_wait_done(dma_receive_channel_num); + + gcm_get_tag(gcm_tag); +} + +void aes_gcm192_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag) +{ + aes_init(context->input_key, AES_192, context->iv, IV_LEN_96, context->gcm_aad, + AES_GCM, AES_HARD_ENCRYPTION, context->gcm_aad_len, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, (input_len + 3) >> 2); + aes_input_bytes(input_data, input_len, AES_GCM); + dmac_wait_done(dma_receive_channel_num); + + gcm_get_tag(gcm_tag); +} + +void aes_gcm256_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag) +{ + aes_init(context->input_key, AES_256, context->iv, IV_LEN_96, context->gcm_aad, + AES_GCM, AES_HARD_DECRYPTION, context->gcm_aad_len, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, (input_len + 3) >> 2); + aes_input_bytes(input_data, input_len, AES_GCM); + dmac_wait_done(dma_receive_channel_num); + + gcm_get_tag(gcm_tag); +} + +void aes_gcm256_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag) +{ + aes_init(context->input_key, AES_256, context->iv, IV_LEN_96, context->gcm_aad, + AES_GCM, AES_HARD_ENCRYPTION, context->gcm_aad_len, input_len); + + sysctl_dma_select(dma_receive_channel_num, SYSCTL_DMA_SELECT_AES_REQ); + aes->dma_sel = 1; + dmac_set_single_mode(dma_receive_channel_num, (void *)(&aes->aes_out_data), output_data, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, (input_len + 3) >> 2); + aes_input_bytes(input_data, input_len, AES_GCM); + dmac_wait_done(dma_receive_channel_num); + + gcm_get_tag(gcm_tag); +} + diff --git a/lib/drivers/clint.c b/lib/drivers/clint.c index 4b59a42..a1eba58 100755 --- a/lib/drivers/clint.c +++ b/lib/drivers/clint.c @@ -141,7 +141,7 @@ int clint_timer_register(clint_timer_callback_t callback, void *ctx) return 0; } -int clint_timer_deregister(void) +int clint_timer_unregister(void) { /* Just assign NULL to user callback function and context */ return clint_timer_register(NULL, NULL); @@ -211,7 +211,7 @@ int clint_ipi_register(clint_ipi_callback_t callback, void *ctx) return 0; } -int clint_ipi_deregister(void) +int clint_ipi_unregister(void) { /* Just assign NULL to user callback function and context */ return clint_ipi_register(NULL, NULL); diff --git a/lib/drivers/common.c b/lib/drivers/common.c deleted file mode 100755 index d21a3b3..0000000 --- a/lib/drivers/common.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2018 Canaan Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#include -#include "encoding.h" -#include "utils.h" - -void set_bit(volatile uint32_t *bits, uint32_t mask, uint32_t value) -{ - uint32_t org = (*bits) & ~mask; - *bits = org | (value & mask); -} - -void set_bit_offset(volatile uint32_t *bits, uint32_t mask, size_t offset, uint32_t value) -{ - set_bit(bits, mask << offset, value << offset); -} - -void set_gpio_bit(volatile uint32_t *bits, size_t offset, uint32_t value) -{ - set_bit_offset(bits, 1, offset, value); -} - -uint32_t get_bit(volatile uint32_t *bits, uint32_t mask, size_t offset) -{ - return ((*bits) & (mask << offset)) >> offset; -} - -uint32_t get_gpio_bit(volatile uint32_t *bits, size_t offset) -{ - return get_bit(bits, 1, offset); -} - diff --git a/lib/drivers/dmac.c b/lib/drivers/dmac.c index 35ff345..a80fcaf 100755 --- a/lib/drivers/dmac.c +++ b/lib/drivers/dmac.c @@ -24,6 +24,15 @@ volatile dmac_t *const dmac = (dmac_t *)DMAC_BASE_ADDR; +typedef struct _dmac_context +{ + dmac_channel_number_t dmac_channel; + plic_irq_callback_t callback; + void *ctx; +} dmac_context_t; + +dmac_context_t dmac_context[6]; + static int is_memory(uintptr_t address) { enum { @@ -78,7 +87,7 @@ void src_transaction_complete_int_enable(dmac_channel_number_t channel_num) writeq(ch_intstat.data, &dmac->channel[channel_num].intstatus_en); } -static void dmac_channel_enable(dmac_channel_number_t channel_num) +void dmac_channel_enable(dmac_channel_number_t channel_num) { dmac_chen_u_t chen; @@ -116,36 +125,37 @@ static void dmac_channel_enable(dmac_channel_number_t channel_num) writeq(chen.data, &dmac->chen); } -static void dmac_channel_disable(dmac_channel_number_t channel_num) +void dmac_channel_disable(dmac_channel_number_t channel_num) { dmac_chen_u_t chen; chen.data = readq(&dmac->chen); - switch (channel_num) { + switch (channel_num) + { case DMAC_CHANNEL0: chen.dmac_chen.ch1_en = 0; - chen.dmac_chen.ch1_en_we = 0; + chen.dmac_chen.ch1_en_we = 1; break; case DMAC_CHANNEL1: chen.dmac_chen.ch2_en = 0; - chen.dmac_chen.ch2_en_we = 0; + chen.dmac_chen.ch2_en_we = 1; break; case DMAC_CHANNEL2: chen.dmac_chen.ch3_en = 0; - chen.dmac_chen.ch3_en_we = 0; + chen.dmac_chen.ch3_en_we = 1; break; case DMAC_CHANNEL3: chen.dmac_chen.ch4_en = 0; - chen.dmac_chen.ch4_en_we = 0; + chen.dmac_chen.ch4_en_we = 1; break; case DMAC_CHANNEL4: chen.dmac_chen.ch5_en = 0; - chen.dmac_chen.ch5_en_we = 0; + chen.dmac_chen.ch5_en_we = 1; break; case DMAC_CHANNEL5: chen.dmac_chen.ch6_en = 0; - chen.dmac_chen.ch6_en_we = 0; + chen.dmac_chen.ch6_en_we = 1; break; default: break; @@ -244,23 +254,17 @@ void dmac_enable_common_interrupt_signal(void) writeq(intsignal.data, &dmac->com_intsignal_en); } -static void dmac_enable_channel_interrupt_status(dmac_channel_number_t channel_num) +static void dmac_enable_channel_interrupt(dmac_channel_number_t channel_num) { writeq(0xffffffff, &dmac->channel[channel_num].intclear); - writeq(0xffffffff, &dmac->channel[channel_num].intstatus_en); + writeq(0x2, &dmac->channel[channel_num].intstatus_en); } -void dmac_disable_channel_interrupt_status(dmac_channel_number_t channel_num) +void dmac_disable_channel_interrupt(dmac_channel_number_t channel_num) { writeq(0, &dmac->channel[channel_num].intstatus_en); } -void dmac_enable_channel_interrupt_signal(dmac_channel_number_t channel_num, - dmac_common_int_t which_interrupt) -{ - -} - static void dmac_chanel_interrupt_clear(dmac_channel_number_t channel_num) { writeq(0xffffffff, &dmac->channel[channel_num].intclear); @@ -336,7 +340,7 @@ int dmac_set_channel_config(dmac_channel_number_t channel_num, return 0; } -static int dmac_set_channel_param(dmac_channel_number_t channel_num, +int dmac_set_channel_param(dmac_channel_number_t channel_num, const void *src, void *dest, dmac_address_increment_t src_inc, dmac_address_increment_t dest_inc, dmac_burst_trans_length_t dmac_burst_size, dmac_transfer_width_t dmac_trans_width, @@ -581,6 +585,7 @@ void dmac_init(void) tmp &= ~0xf; writeq(tmp, &dmac->chen); /* disable all channel before configure */ + dmac_enable(); } static void list_add(struct list_head_t *new, struct list_head_t *prev, @@ -592,12 +597,12 @@ static void list_add(struct list_head_t *new, struct list_head_t *prev, prev->next = new; } -static void list_add_tail(struct list_head_t *new, struct list_head_t *head) +void list_add_tail(struct list_head_t *new, struct list_head_t *head) { list_add(new, head->prev, head); } -static void INIT_LIST_HEAD(struct list_head_t *list) +void INIT_LIST_HEAD(struct list_head_t *list) { list->next = list; list->prev = list; @@ -702,18 +707,84 @@ void dmac_set_single_mode(dmac_channel_number_t channel_num, dmac_burst_trans_length_t dmac_burst_size, dmac_transfer_width_t dmac_trans_width, size_t block_size) { + dmac_chanel_interrupt_clear(channel_num); dmac_channel_disable(channel_num); + dmac_wait_idle(channel_num); dmac_set_channel_param(channel_num, src, dest, src_inc, dest_inc, dmac_burst_size, dmac_trans_width, block_size); dmac_enable(); - dmac_chanel_interrupt_clear(channel_num); /* clear interrupt */ - dmac_enable_channel_interrupt_status(channel_num); dmac_channel_enable(channel_num); } +int dmac_is_done(dmac_channel_number_t channel_num) +{ + if(readq(&dmac->channel[channel_num].intstatus) & 0x2) + return 1; + else + return 0; +} + void dmac_wait_done(dmac_channel_number_t channel_num) { while (!(readq(&dmac->channel[channel_num].intstatus) & 0x2)) ; dmac_chanel_interrupt_clear(channel_num); /* clear interrupt */ } + +int dmac_is_idle(dmac_channel_number_t channel_num) +{ + dmac_chen_u_t chen; + chen.data = readq(&dmac->chen); + if((chen.data >> channel_num) & 0x1UL) + return 0; + else + return 1; +} + +void dmac_wait_idle(dmac_channel_number_t channel_num) +{ + while(!dmac_is_idle(channel_num)); + dmac_chanel_interrupt_clear(channel_num); /* clear interrupt */ +} + +void dmac_set_src_dest_length(dmac_channel_number_t channel_num, const void *src, void *dest, size_t len) +{ + if(src != NULL) + dmac->channel[channel_num].sar = (uint64_t)src; + if(dest != NULL) + dmac->channel[channel_num].dar = (uint64_t)dest; + if(len > 0) + dmac_set_block_ts(channel_num, len - 1); + dmac_channel_enable(channel_num); +} + +static int dmac_irq_callback(void *ctx) +{ + dmac_context_t *v_dmac_context = (dmac_context_t *)(ctx); + dmac_channel_number_t v_dmac_channel = v_dmac_context->dmac_channel; + dmac_chanel_interrupt_clear(v_dmac_channel); + if(v_dmac_context->callback != NULL) + v_dmac_context->callback(v_dmac_context->ctx); + + return 0; +} + +void dmac_set_irq(dmac_channel_number_t channel_num , plic_irq_callback_t dmac_callback, void *ctx, uint32_t priority) +{ + dmac_context[channel_num].dmac_channel = channel_num; + dmac_context[channel_num].callback = dmac_callback; + dmac_context[channel_num].ctx = ctx; + dmac_enable_channel_interrupt(channel_num); + plic_set_priority(IRQN_DMA0_INTERRUPT + channel_num, priority); + plic_irq_enable(IRQN_DMA0_INTERRUPT + channel_num); + plic_irq_register(IRQN_DMA0_INTERRUPT + channel_num, dmac_irq_callback, &dmac_context[channel_num]); +} + +void dmac_free_irq(dmac_channel_number_t channel_num) +{ + dmac_context[channel_num].callback = NULL; + dmac_context[channel_num].ctx = NULL; + dmac_disable_channel_interrupt(channel_num); + plic_irq_unregister(IRQN_DMA0_INTERRUPT + channel_num); +} + diff --git a/lib/drivers/dvp.c b/lib/drivers/dvp.c index a448c3e..9233656 100755 --- a/lib/drivers/dvp.c +++ b/lib/drivers/dvp.c @@ -18,6 +18,7 @@ #include "utils.h" #include "fpioa.h" #include "sysctl.h" +#include volatile dvp_t* const dvp = (volatile dvp_t*)DVP_BASE_ADDR; static uint8_t g_sccb_reg_len = 8; @@ -43,6 +44,21 @@ static void dvp_sccb_clk_init(void) dvp->sccb_cfg = tmp; } +uint32_t dvp_sccb_set_clk_rate(uint32_t clk_rate) +{ + uint32_t tmp; + uint32_t v_sccb_freq = sysctl_clock_get_freq(SYSCTL_CLOCK_APB1); + uint16_t v_period_clk_cnt = round(v_sccb_freq / clk_rate / 2.0); + if(v_period_clk_cnt > 255) + { + return 0; + } + tmp = dvp->sccb_cfg & (~(DVP_SCCB_SCL_LCNT_MASK | DVP_SCCB_SCL_HCNT_MASK)); + tmp |= DVP_SCCB_SCL_LCNT(v_period_clk_cnt) | DVP_SCCB_SCL_HCNT(v_period_clk_cnt); + dvp->sccb_cfg = tmp; + return sysctl_clock_get_freq(SYSCTL_CLOCK_DVP) / (v_period_clk_cnt * 2); +} + static void dvp_sccb_start_transfer(void) { while (dvp->sts & DVP_STS_SCCB_EN) @@ -103,7 +119,7 @@ uint8_t dvp_sccb_receive_data(uint8_t dev_addr, uint16_t reg_addr) return (uint8_t) DVP_SCCB_RDATA_BYTE(dvp->sccb_cfg); } -void dvp_reset(void) +static void dvp_reset(void) { /* First power down */ dvp->cmos_cfg |= DVP_CMOS_POWER_DOWN; diff --git a/lib/drivers/i2c.c b/lib/drivers/i2c.c index 857979a..313f6ab 100755 --- a/lib/drivers/i2c.c +++ b/lib/drivers/i2c.c @@ -21,6 +21,14 @@ #include "string.h" #include "sysctl.h" +typedef struct _i2c_slave_context +{ + uint32_t i2c_num; + const i2c_slave_handler_t *slave_handler; +} i2c_slave_context_t; + +i2c_slave_context_t slave_context; + volatile i2c_t* const i2c[3] = { (volatile i2c_t*)I2C0_BASE_ADDR, @@ -65,6 +73,58 @@ void i2c_init(i2c_device_number_t i2c_num, uint32_t slave_address, uint32_t addr i2c_adapter->enable = I2C_ENABLE_ENABLE; } +static int i2c_slave_irq(void *userdata) +{ + i2c_slave_context_t *context = (i2c_slave_context_t *)userdata; + volatile i2c_t *i2c_adapter = i2c[context->i2c_num]; + uint32_t status = i2c_adapter->intr_stat; + if (status & I2C_INTR_STAT_START_DET) + { + context->slave_handler->on_event(I2C_EV_START); + readl(&i2c_adapter->clr_start_det); + } + if (status & I2C_INTR_STAT_STOP_DET) + { + context->slave_handler->on_event(I2C_EV_STOP); + readl(&i2c_adapter->clr_stop_det); + } + if (status & I2C_INTR_STAT_RX_FULL) + { + context->slave_handler->on_receive(i2c_adapter->data_cmd); + } + if (status & I2C_INTR_STAT_RD_REQ) + { + i2c_adapter->data_cmd = context->slave_handler->on_transmit(); + readl(&i2c_adapter->clr_rd_req); + } + return 0; +} + +void i2c_init_as_slave(i2c_device_number_t i2c_num, uint32_t slave_address, uint32_t address_width, + const i2c_slave_handler_t *handler) +{ + configASSERT(address_width == 7 || address_width == 10); + volatile i2c_t *i2c_adapter = i2c[i2c_num]; + slave_context.i2c_num = i2c_num; + slave_context.slave_handler = handler; + + i2c_clk_init(i2c_num); + i2c_adapter->enable = 0; + i2c_adapter->con = (address_width == 10 ? I2C_CON_10BITADDR_SLAVE : 0) | I2C_CON_SPEED(1) | I2C_CON_STOP_DET_IFADDRESSED; + i2c_adapter->ss_scl_hcnt = I2C_SS_SCL_HCNT_COUNT(37); + i2c_adapter->ss_scl_lcnt = I2C_SS_SCL_LCNT_COUNT(40); + i2c_adapter->sar = I2C_SAR_ADDRESS(slave_address); + i2c_adapter->rx_tl = I2C_RX_TL_VALUE(0); + i2c_adapter->tx_tl = I2C_TX_TL_VALUE(0); + i2c_adapter->intr_mask = I2C_INTR_MASK_RX_FULL | I2C_INTR_MASK_START_DET | I2C_INTR_MASK_STOP_DET | I2C_INTR_MASK_RD_REQ; + + plic_set_priority(IRQN_I2C0_INTERRUPT + i2c_num, 1); + plic_irq_register(IRQN_I2C0_INTERRUPT + i2c_num, i2c_slave_irq, &slave_context); + plic_irq_enable(IRQN_I2C0_INTERRUPT + i2c_num); + + i2c_adapter->enable = I2C_ENABLE_ENABLE; +} + int i2c_send_data(i2c_device_number_t i2c_num, const uint8_t *send_buf, size_t send_buf_len) { configASSERT(i2c_num < I2C_MAX_NUM); diff --git a/lib/drivers/i2s.c b/lib/drivers/i2s.c index ccbe0af..07a90cd 100755 --- a/lib/drivers/i2s.c +++ b/lib/drivers/i2s.c @@ -14,6 +14,7 @@ */ #include #include +#include #include "i2s.h" #include "sysctl.h" #include "stdlib.h" @@ -264,7 +265,7 @@ static int i2s_receive_dma_enable(i2s_device_number_t device_num, uint32_t enabl return 0; } -static int i2s_transmit_dma_divide(i2s_device_number_t device_num, uint32_t enable) +int i2s_set_dma_divide_16(i2s_device_number_t device_num, uint32_t enable) { ccr_t u_ccr; @@ -278,6 +279,15 @@ static int i2s_transmit_dma_divide(i2s_device_number_t device_num, uint32_t enab return 0; } +int i2s_get_dma_divide_16(i2s_device_number_t device_num) +{ + if (device_num >= I2S_DEVICE_MAX) + return -1; + ccr_t u_ccr; + u_ccr.reg_data = readl(&i2s[device_num]->ccr); + return u_ccr.ccr.dma_divide_16; +} + int i2s_receive_data(i2s_device_number_t device_num, i2s_channel_num_t channel_num, uint64_t *buf, size_t buf_len) { uint32_t i = 0; @@ -302,11 +312,7 @@ int i2s_receive_data(i2s_device_number_t device_num, i2s_channel_num_t channel_n void i2s_receive_data_dma(i2s_device_number_t device_num, uint32_t *buf, size_t buf_len, dmac_channel_number_t channel_num) { - static uint8_t dmac_recv_flag[6] = {0,0,0,0,0,0}; - if(dmac_recv_flag[channel_num]) - dmac_wait_done(channel_num); - else - dmac_recv_flag[channel_num] = 1; + dmac_wait_idle(channel_num); sysctl_dma_select((sysctl_dma_channel_t)channel_num, SYSCTL_DMA_SELECT_I2S0_RX_REQ + device_num * 2); dmac_set_single_mode(channel_num, (void *)(&i2s[device_num]->rxdma), buf, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, DMAC_MSIZE_1, DMAC_TRANS_WIDTH_32, buf_len); @@ -381,17 +387,14 @@ int i2s_send_data(i2s_device_number_t device_num, i2s_channel_num_t channel_num, void i2s_send_data_dma(i2s_device_number_t device_num, const void *buf, size_t buf_len, dmac_channel_number_t channel_num) { - static uint8_t dmac_init_flag[6] = {0,0,0,0,0,0}; - if(dmac_init_flag[channel_num]) - dmac_wait_done(channel_num); - else - dmac_init_flag[channel_num] = 1; + + dmac_wait_idle(channel_num); sysctl_dma_select((sysctl_dma_channel_t)channel_num, SYSCTL_DMA_SELECT_I2S0_TX_REQ + device_num * 2); dmac_set_single_mode(channel_num, buf, (void *)(&i2s[device_num]->txdma), DMAC_ADDR_INCREMENT, DMAC_ADDR_NOCHANGE, DMAC_MSIZE_1, DMAC_TRANS_WIDTH_32, buf_len); } -static void i2s_parse_voice(uint32_t *buf, const uint8_t *pcm, size_t length, size_t bits_per_sample, +static void i2s_parse_voice(i2s_device_number_t device_num, uint32_t *buf, const uint8_t *pcm, size_t length, size_t bits_per_sample, uint8_t track_num, size_t *send_len) { uint32_t i,j=0; @@ -399,12 +402,11 @@ static void i2s_parse_voice(uint32_t *buf, const uint8_t *pcm, size_t length, s switch(bits_per_sample) { case 16: - i2s_transmit_dma_divide(I2S_DEVICE_0, 1); for(i = 0; i < length; i++) { - buf[i] = ((uint16_t *)pcm)[i]; + buf[2*i] = ((uint16_t *)pcm)[i]; + buf[2*i+1] = 0; } - *send_len = length; break; case 24: for(i = 0; i < length; i++) @@ -423,14 +425,13 @@ static void i2s_parse_voice(uint32_t *buf, const uint8_t *pcm, size_t length, s } break; case 32: + default: for(i = 0; i < length; i++) { buf[2*i] = ((uint32_t *)pcm)[i]; buf[2*i+1] = 0; } break; - default: - break; } } @@ -443,9 +444,11 @@ void i2s_play(i2s_device_number_t device_num, dmac_channel_number_t channel_num, size_t sample_cnt = buf_len / ( bits_per_sample / 8 ) / track_num; size_t frame_cnt = sample_cnt / frame; size_t frame_remain = sample_cnt % frame; + i2s_set_dma_divide_16(device_num, 0); if (bits_per_sample == 16 && track_num == 2) { + i2s_set_dma_divide_16(device_num, 1); for (i = 0; i < frame_cnt; i++) { trans_buf = buf + i * frame * (bits_per_sample / 8) * track_num; @@ -480,20 +483,28 @@ void i2s_play(i2s_device_number_t device_num, dmac_channel_number_t channel_num, for (i = 0; i < frame_cnt; i++) { trans_buf = buf + i * frame * (bits_per_sample / 8) * track_num; - i2s_parse_voice(buff[flag], trans_buf, frame, bits_per_sample, track_num, &send_len); + i2s_parse_voice(device_num, buff[flag], trans_buf, frame, bits_per_sample, track_num, &send_len); i2s_send_data_dma(device_num,buff[flag], send_len, channel_num); flag = !flag; } if (frame_remain) { trans_buf = buf + frame_cnt * frame * (bits_per_sample / 8) * track_num; - i2s_parse_voice(buff[flag], trans_buf, frame_remain, bits_per_sample, track_num, &send_len); + i2s_parse_voice(device_num, buff[flag], trans_buf, frame_remain, bits_per_sample, track_num, &send_len); i2s_send_data_dma(device_num, trans_buf, send_len, channel_num); } free(buff[0]); } } +static inline void i2s_set_sign_expand_en(i2s_device_number_t device_num, uint32_t enable) +{ + ccr_t u_ccr; + u_ccr.reg_data = readl(&i2s[device_num]->ccr); + u_ccr.ccr.sign_expand_en = enable; + writel(u_ccr.reg_data, &i2s[device_num]->ccr); +} + void i2s_rx_channel_config(i2s_device_number_t device_num, i2s_channel_num_t channel_num, i2s_word_length_t word_length, @@ -547,10 +558,6 @@ void i2s_tx_channel_config(i2s_device_number_t device_num, writel(1, &i2s[device_num]->channel[channel_num].tff); /* flush individual fifo */ - if (word_length == RESOLUTION_16_BIT) - { - i2s_transmit_dma_divide(I2S_DEVICE_0, 1); - } i2s_set_tx_word_length(device_num, word_length, channel_num); /* Word buf_len is RESOLUTION_16_BIT */ @@ -607,7 +614,23 @@ void i2s_init(i2s_device_number_t device_num, i2s_transmit_t rxtx_mode, uint32_t } channel_mask >>= 2; } + /* Set expand_en when receive */ + i2s_set_sign_expand_en(device_num, 1); i2s_receive_dma_enable(device_num, 1); } } +uint32_t i2s_set_sample_rate(i2s_device_number_t device_num, uint32_t sample_rate) +{ + ccr_t u_ccr; + uint32_t pll2_clock = 0; + pll2_clock = sysctl_pll_get_freq(SYSCTL_PLL2); + + u_ccr.reg_data = readl(&i2s[device_num]->ccr); + /* 0x0 for 16sclk cycles, 0x1 for 24 sclk cycles 0x2 for 32 sclk */ + uint32_t v_clk_word_size = (u_ccr.ccr.clk_word_size + 2) * 8; + uint32_t threshold = round(pll2_clock / (sample_rate * 2.0 * v_clk_word_size * 2.0) - 1); + sysctl_clock_set_threshold(SYSCTL_THRESHOLD_I2S0 + device_num, threshold); + return sysctl_clock_get_freq(SYSCTL_CLOCK_I2S0 + device_num); +} + diff --git a/lib/drivers/include/aes.h b/lib/drivers/include/aes.h index 0cbac8e..97085d0 100755 --- a/lib/drivers/include/aes.h +++ b/lib/drivers/include/aes.h @@ -16,6 +16,8 @@ #define _DRIVER_AES_H #include #include +#include "platform.h" +#include "dmac.h" #ifdef __cplusplus extern "C" { @@ -144,6 +146,7 @@ typedef struct _cbc_context * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_ecb128_hard_decrypt(uint8_t *input_key, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -156,6 +159,7 @@ void aes_ecb128_hard_decrypt(uint8_t *input_key, uint8_t *input_data, size_t inp * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_ecb128_hard_encrypt(uint8_t *input_key, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -168,6 +172,7 @@ void aes_ecb128_hard_encrypt(uint8_t *input_key, uint8_t *input_data, size_t inp * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_ecb192_hard_decrypt(uint8_t *input_key, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -180,6 +185,7 @@ void aes_ecb192_hard_decrypt(uint8_t *input_key, uint8_t *input_data, size_t inp * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_ecb192_hard_encrypt(uint8_t *input_key, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -192,6 +198,7 @@ void aes_ecb192_hard_encrypt(uint8_t *input_key, uint8_t *input_data, size_t inp * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_ecb256_hard_decrypt(uint8_t *input_key, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -204,6 +211,7 @@ void aes_ecb256_hard_decrypt(uint8_t *input_key, uint8_t *input_data, size_t inp * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_ecb256_hard_encrypt(uint8_t *input_key, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -217,6 +225,7 @@ void aes_ecb256_hard_encrypt(uint8_t *input_key, uint8_t *input_data, size_t inp * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_cbc128_hard_decrypt(cbc_context_t *context, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -230,6 +239,7 @@ void aes_cbc128_hard_decrypt(cbc_context_t *context, uint8_t *input_data, size_t * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_cbc128_hard_encrypt(cbc_context_t *context, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -243,6 +253,7 @@ void aes_cbc128_hard_encrypt(cbc_context_t *context, uint8_t *input_data, size_t * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_cbc192_hard_decrypt(cbc_context_t *context, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -256,6 +267,7 @@ void aes_cbc192_hard_decrypt(cbc_context_t *context, uint8_t *input_data, size_t * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_cbc192_hard_encrypt(cbc_context_t *context, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -269,6 +281,7 @@ void aes_cbc192_hard_encrypt(cbc_context_t *context, uint8_t *input_data, size_t * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_cbc256_hard_decrypt(cbc_context_t *context, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -282,6 +295,7 @@ void aes_cbc256_hard_decrypt(cbc_context_t *context, uint8_t *input_data, size_t * This can be any length between 16 bytes and 2^31 bytes inclusive * (between 1 and 2^27 block cipher blocks). * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. */ void aes_cbc256_hard_encrypt(cbc_context_t *context, uint8_t *input_data, size_t input_len, uint8_t *output_data); @@ -369,6 +383,348 @@ void aes_gcm256_hard_decrypt(gcm_context_t *context, uint8_t *input_data, size_t */ void aes_gcm256_hard_encrypt(gcm_context_t *context, uint8_t *input_data, size_t input_len, uint8_t *output_data, uint8_t *gcm_tag); +/** + * @brief AES-ECB-128 decryption by dma + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] input_key The decryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_ecb128_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-ECB-128 encryption by dma + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] input_key The encryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_ecb128_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-ECB-192 decryption by dma + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] input_key The decryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_ecb192_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-ECB-192 encryption by dma + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] input_key The encryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_ecb192_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-ECB-256 decryption by dma + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] input_key The decryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_ecb256_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-ECB-256 encryption by dma + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] input_key The encryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_ecb256_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + uint8_t *input_key, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-CBC-128 decryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The cbc context to use for encryption or decryption. + * @param[in] input_key The encryption key. must be 24bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_cbc128_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-CBC-128 encryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The cbc context to use for encryption or decryption. + * @param[in] input_key The encryption key. must be 24bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_cbc128_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-CBC-192 decryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The cbc context to use for encryption or decryption. + * @param[in] input_key The decryption key. must be 24bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_cbc192_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-CBC-192 encryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The cbc context to use for encryption or decryption. + * @param[in] input_key The encryption key. must be 24bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_cbc192_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-CBC-256 decryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The cbc context to use for encryption or decryption. + * @param[in] input_key The decryption key. must be 24bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_cbc256_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-CBC-256 encryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The cbc context to use for encryption or decryption. + * @param[in] input_key The encryption key. must be 24bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * The buffer size must be larger than the size after padding by 16 byte multiples. + */ +void aes_cbc256_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + cbc_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data); + +/** + * @brief AES-GCM-128 decryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The gcm context to use for encryption or decryption. + * @param[in] input_key The decryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. Must be 4 byte multiples. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * @param[out] gcm_tag The buffer for holding the tag.The length of the tag must be 4 bytes. + */ +void aes_gcm128_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag); + +/** + * @brief AES-GCM-128 encryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The gcm context to use for encryption or decryption. + * @param[in] input_key The encryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. Must be 4 byte multiples. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * @param[out] gcm_tag The buffer for holding the tag.The length of the tag must be 4 bytes. + */ +void aes_gcm128_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag); + +/** + * @brief AES-GCM-192 decryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The gcm context to use for encryption or decryption. + * @param[in] input_key The decryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. Must be 4 byte multiples. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * @param[out] gcm_tag The buffer for holding the tag.The length of the tag must be 4 bytes. + */ +void aes_gcm192_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag); + +/** + * @brief AES-GCM-192 encryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The gcm context to use for encryption or decryption. + * @param[in] input_key The encryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. Must be 4 byte multiples. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * @param[out] gcm_tag The buffer for holding the tag.The length of the tag must be 4 bytes. + */ +void aes_gcm192_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag); + +/** + * @brief AES-GCM-256 decryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The gcm context to use for encryption or decryption. + * @param[in] input_key The decryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. Must be 4 byte multiples. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * @param[out] gcm_tag The buffer for holding the tag.The length of the tag must be 4 bytes. + */ +void aes_gcm256_hard_decrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag); + +/** + * @brief AES-GCM-256 encryption + * + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] context The gcm context to use for encryption or decryption. + * @param[in] input_key The encryption key. must be 16bytes. + * @param[in] input_data The buffer holding the input data. + * @param[in] input_len The length of a data unit in bytes. Must be 4 byte multiples. + * This can be any length between 16 bytes and 2^31 bytes inclusive + * (between 1 and 2^27 block cipher blocks). + * @param[out] output_data The buffer holding the output data. + * @param[out] gcm_tag The buffer for holding the tag.The length of the tag must be 4 bytes. + */ +void aes_gcm256_hard_encrypt_dma(dmac_channel_number_t dma_receive_channel_num, + gcm_context_t *context, + uint8_t *input_data, + size_t input_len, + uint8_t *output_data, + uint8_t *gcm_tag); + /** * @brief This function initializes the AES hard module. * diff --git a/lib/drivers/include/clint.h b/lib/drivers/include/clint.h index 3e8b1b1..07c2f4c 100755 --- a/lib/drivers/include/clint.h +++ b/lib/drivers/include/clint.h @@ -257,7 +257,7 @@ int clint_timer_register(clint_timer_callback_t callback, void *ctx); * - 0 Success * - Other Fail */ -int clint_timer_deregister(void); +int clint_timer_unregister(void); /** * @brief Initialize local interprocessor interrupt @@ -328,7 +328,7 @@ int clint_ipi_register(clint_ipi_callback_t callback, void *ctx); * - 0 Success * - Other Fail */ -int clint_ipi_deregister(void); +int clint_ipi_unregister(void); #ifdef __cplusplus } diff --git a/lib/drivers/include/dmac.h b/lib/drivers/include/dmac.h index 614551c..55255fc 100755 --- a/lib/drivers/include/dmac.h +++ b/lib/drivers/include/dmac.h @@ -19,6 +19,8 @@ #include "io.h" #include "platform.h" #include "stdbool.h" +#include "plic.h" +#include #ifdef __cplusplus extern "C" { @@ -1424,6 +1426,17 @@ void dmac_set_single_mode(dmac_channel_number_t channel_num, dmac_transfer_width_t dmac_trans_width, size_t block_size); +/** + * @brief Determine the transfer is complete or not + * + * @param[in] channel_num Dmac channel + * + * @return result + * - 0 uncompleted + * - 1 completed +*/ +int dmac_is_done(dmac_channel_number_t channel_num); + /** * @brief Wait for dmac work done * @@ -1432,9 +1445,78 @@ void dmac_set_single_mode(dmac_channel_number_t channel_num, */ void dmac_wait_done(dmac_channel_number_t channel_num); -void dmac_enable(void); +/** + * @brief Determine the dma is idle or not + * + * @param[in] channel_num Dmac channel + * + * @return result + * - 0 busy + * - 1 idel +*/ +int dmac_is_idle(dmac_channel_number_t channel_num); + +/** + * @brief Wait for dmac idle + * + * @param[in] channel_num Dmac channel + * + */ +void dmac_wait_idle(dmac_channel_number_t channel_num); +/** + * @brief Set interrupt param + * + * @param[in] channel_num Dmac channel + * @param[in] dmac_callback Dmac interrupt callback + * @param[in] ctx The param of callback + * @param[in] priority Interrupt priority + */ +void dmac_set_irq(dmac_channel_number_t channel_num , plic_irq_callback_t dmac_callback, void *ctx, uint32_t priority); +/** + * @brief Disable dmac interrupt + * + * @param[in] channel_num Dmac channel + * + */ +void dmac_free_irq(dmac_channel_number_t channel_num); + +/** + * @brief Set source dest and length + * + * @param[in] channel_num Dmac channel + * @param[in] src Source + * @param[in] dest Dest + * @param[in] len The length of dmac transfer + */ +void dmac_set_src_dest_length(dmac_channel_number_t channel_num, const void *src, void *dest, size_t len); + +/** + * @brief Disable dmac channel interrupt + * + * @param[in] channel_num Dmac channel + * +*/ +void dmac_disable_channel_interrupt(dmac_channel_number_t channel_num); + +/** + * @brief Disable dmac channel + * + * @param[in] channel_num Dmac channel + * +*/ +void dmac_channel_disable(dmac_channel_number_t channel_num); + +/** + * @brief Enable dmac channel + * + * @param[in] channel_num Dmac channel + * +*/ +void dmac_channel_enable(dmac_channel_number_t channel_num); + +void dmac_enable(void); #ifdef __cplusplus } #endif diff --git a/lib/drivers/include/dvp.h b/lib/drivers/include/dvp.h index 42334a7..6e154f6 100755 --- a/lib/drivers/include/dvp.h +++ b/lib/drivers/include/dvp.h @@ -244,7 +244,14 @@ void dvp_disable_auto(void); */ void dvp_set_output_enable(dvp_output_mode_t index, int enable); -void dvp_reset(void); +/** + * @brief Set sccb clock rate + * + * @param[in] clk_rate Sccb clock rate + * + * @return The real sccb clock rate + */ +uint32_t dvp_sccb_set_clk_rate(uint32_t clk_rate); #ifdef __cplusplus } diff --git a/lib/drivers/include/fft.h b/lib/drivers/include/fft.h index fcef54f..6faa8c5 100755 --- a/lib/drivers/include/fft.h +++ b/lib/drivers/include/fft.h @@ -220,9 +220,24 @@ typedef struct _fft fft_output_fifo_t fft_output_fifo; } __attribute__((packed, aligned(8))) fft_t; - -void fft_complex_uint16_dma(dmac_channel_number_t dma_send_channel_num, dmac_channel_number_t dma_receive_channel_num, - uint16_t shift, fft_direction_t direction, const uint64_t *input, size_t point_num, uint64_t *output); +/** + * @brief Do 16bit quantized complex FFT by DMA + * + * @param[in] dma_send_channel_num Dmac send channel number. + * @param[in] dma_receive_channel_num Dmac receive channel number. + * @param[in] shift The shifts selection in 9 stage + * @param[in] direction The direction + * @param[in] input The input data + * @param[in] point The FFT points count + * @param[out] output The output data + */ +void fft_complex_uint16_dma(dmac_channel_number_t dma_send_channel_num, + dmac_channel_number_t dma_receive_channel_num, + uint16_t shift, + fft_direction_t direction, + const uint64_t *input, + size_t point_num, + uint64_t *output); #ifdef __cplusplus } diff --git a/lib/drivers/include/i2c.h b/lib/drivers/include/i2c.h index a6a2e44..6b0bb5c 100755 --- a/lib/drivers/include/i2c.h +++ b/lib/drivers/include/i2c.h @@ -340,6 +340,20 @@ typedef enum _i2c_bus_speed_mode I2C_BS_HIGHSPEED } i2c_bus_speed_mode_t; +typedef enum _i2c_event +{ + I2C_EV_START, + I2C_EV_RESTART, + I2C_EV_STOP +} i2c_event_t; + +typedef struct _i2c_slave_handler +{ + void(*on_receive)(uint32_t data); + uint32_t(*on_transmit)(); + void(*on_event)(i2c_event_t event); +} i2c_slave_handler_t; + /** * @brief Set i2c params * @@ -364,6 +378,17 @@ void i2c_init(i2c_device_number_t i2c_num, uint32_t slave_address, uint32_t addr */ int i2c_send_data(i2c_device_number_t i2c_num, const uint8_t *send_buf, size_t send_buf_len); +/** + * @brief Init i2c as slave mode. + * + * @param[in] i2c_num i2c number + * @param[in] slave_address i2c slave device address + * @param[in] address_width address width 7bit or 10bit + * @param[in] handler Handle of i2c slave interrupt function. + */ +void i2c_init_as_slave(i2c_device_number_t i2c_num, uint32_t slave_address, uint32_t address_width, + const i2c_slave_handler_t *handler); + /** * @brief I2c send data by dma * diff --git a/lib/drivers/include/i2s.h b/lib/drivers/include/i2s.h index c64b2d7..16eb0c1 100755 --- a/lib/drivers/include/i2s.h +++ b/lib/drivers/include/i2s.h @@ -697,7 +697,6 @@ void i2s_tx_channel_config(i2s_device_number_t device_num, i2s_fifo_threshold_t trigger_level, i2s_work_mode_t word_mode); - /** * @brief Play PCM format audio * @@ -712,6 +711,41 @@ void i2s_tx_channel_config(i2s_device_number_t device_num, void i2s_play(i2s_device_number_t device_num, dmac_channel_number_t channel_num, const uint8_t *buf, size_t buf_len, size_t frame, size_t bits_per_sample, uint8_t track_num); +/** + * @brief Play PCM format audio + * + * @param[in] device_num The device number + * @param[in] sample_rate The Sample rate + * + * + * @return The real sample rate + */ +uint32_t i2s_set_sample_rate(i2s_device_number_t device_num, uint32_t sample_rate); + +/** + * @brief Set dma_divide_16 split 32bit data to two 16 bit data and filled in left +* and right channel. Used with dma_tx_en or dma_rx_en + * + * @param[in] device_num The device number + * @param[in] enable The value of dma_divide_16 0:disable 1:enable + * + * @return result + * - 0 Success + * - Other Fail + */ +int i2s_set_dma_divide_16(i2s_device_number_t device_num, uint32_t enable); + +/** + * @brief Get dma_divide_16. + * + * @param[in] device_num The device number + * + * @return result + * - <0 Fail + * - other value of dma_divide_16 + */ +int i2s_get_dma_divide_16(i2s_device_number_t device_num); + #ifdef __cplusplus } #endif diff --git a/lib/drivers/include/kpu.h b/lib/drivers/include/kpu.h new file mode 100755 index 0000000..1acbb4f --- /dev/null +++ b/lib/drivers/include/kpu.h @@ -0,0 +1,368 @@ +#ifndef _KPU_H +#define _KPU_H + +#include +#include +#include "dmac.h" + +typedef int (*plic_irq_callback_t)(void *ctx); + +typedef struct +{ + union + { + uint64_t reg; + struct + { + uint64_t int_en:1; + uint64_t ram_flag:1; + uint64_t full_add:1; + uint64_t depth_wise_layer:1; + uint64_t reserved:60; + } data; + } interrupt_enabe; + + union + { + uint64_t reg; + struct + { + uint64_t image_src_addr:15; + uint64_t reserved0:17; + uint64_t image_dst_addr:15; + uint64_t reserved1:17; + } data; + } image_addr; + + union + { + uint64_t reg; + struct + { + uint64_t i_ch_num:10; + uint64_t reserved0:22; + uint64_t o_ch_num:10; + uint64_t reserved1:6; + uint64_t o_ch_num_coef:10; + uint64_t reserved2:6; + } data; + } image_channel_num; + + union + { + uint64_t reg; + struct + { + uint64_t i_row_wid:10; + uint64_t i_col_high:9; + uint64_t reserved0:13; + uint64_t o_row_wid:10; + uint64_t o_col_high:9; + uint64_t reserved1:13; + } data; + } image_size; + + union + { + uint64_t reg; + struct + { + uint64_t kernel_type:3; + uint64_t pad_type:1; + uint64_t pool_type:4; + uint64_t first_stride:1; + uint64_t bypass_conv:1; + uint64_t load_para:1; + uint64_t reserved0:5; + uint64_t dma_burst_size:8; + uint64_t pad_value:8; + uint64_t bwsx_base_addr:32; + } data; + } kernel_pool_type_cfg; + + union + { + uint64_t reg; + struct + { + uint64_t load_coor:1; + uint64_t load_time:6; + uint64_t reserved0:8; + uint64_t para_size:17; + uint64_t para_start_addr:32; + } data; + } kernel_load_cfg; + + union + { + uint64_t reg; + struct + { + uint64_t coef_column_offset:4; + uint64_t coef_row_offset:12; + uint64_t reserved0:48; + } data; + } kernel_offset; + + union + { + uint64_t reg; + struct + { + uint64_t channel_switch_addr:15; + uint64_t reserved:1; + uint64_t row_switch_addr:4; + uint64_t coef_size:8; + uint64_t coef_group:3; + uint64_t load_act:1; + uint64_t active_addr:32; + } data; + } kernel_calc_type_cfg; + + union + { + uint64_t reg; + struct + { + uint64_t wb_channel_switch_addr:15; + uint64_t reserved0:1; + uint64_t wb_row_switch_addr:4; + uint64_t wb_group:3; + uint64_t reserved1:41; + } data; + } write_back_cfg; + + union + { + uint64_t reg; + struct + { + uint64_t shr_w:4; + uint64_t shr_x:4; + uint64_t arg_w:24; + uint64_t arg_x:24; + uint64_t reserved0:8; + } data; + } conv_value; + + union + { + uint64_t reg; + struct + { + uint64_t arg_add:40; + uint64_t reserved:24; + } data; + } conv_value2; + + union + { + uint64_t reg; + struct + { + uint64_t send_data_out:1; + uint64_t reserved:15; + uint64_t channel_byte_num:16; + uint64_t dma_total_byte:32; + } data; + } dma_parameter; +} kpu_layer_argument_t; + +typedef struct +{ + union + { + uint64_t reg; + struct + { + uint64_t shift_number:8; + uint64_t y_mul:16; + uint64_t x_start:36; + } data; + } activate_para[16]; + + union + { + uint64_t reg; + struct + { + uint8_t result_bias[8]; + } data; + } activate_para_bias0; + + union + { + uint64_t reg; + struct + { + uint8_t result_bias[8]; + } data; + } activate_para_bias1; +} kpu_activate_table_t; + +typedef struct +{ + union + { + uint64_t reg; + struct + { + uint64_t norm_mul:24; + uint64_t norm_add:32; + uint64_t norm_shift:4; + } data; + } batchnorm; +} kpu_batchnorm_argument_t; + + +typedef struct +{ + union + { + uint64_t reg; + struct + { + uint16_t weight[9]; + } data; + } weights; +} kpu_weights_kernel_16_3x3_t; + +typedef struct +{ + uint64_t calc_done_int:1; + uint64_t layer_cfg_almost_empty_int:1; + uint64_t layer_cfg_almost_full_int:1; + uint64_t reserved:61; +} kpu_config_interrupt_t; + +typedef struct +{ + uint64_t fifo_full_threshold:4; + uint64_t fifo_empty_threshold:4; + uint64_t reserved:56; +} kpu_config_fifo_threshold_t; + +typedef struct +{ + uint64_t dma_fifo_flush_n:1; + uint64_t gs_fifo_flush_n:1; + uint64_t cfg_fifo_flush_n:1; + uint64_t cmd_fifo_flush_n:1; + uint64_t resp_fifo_flush_n:1; + uint64_t reserved:59; +} kpu_config_fifo_ctrl_t; + +typedef struct +{ + uint64_t eight_bit_mode:1; + uint64_t reserved:63; +} kpu_config_eight_bit_mode_t; + + +typedef struct +{ + volatile uint64_t layer_argument_fifo; + + volatile union + { + uint64_t reg; + kpu_config_interrupt_t data; + } interrupt_status; + + volatile union + { + uint64_t reg; + kpu_config_interrupt_t data; + } interrupt_raw; + + volatile union { + uint64_t reg; + kpu_config_interrupt_t data; + } interrupt_mask; + + volatile union + { + uint64_t reg; + kpu_config_interrupt_t data; + } interrupt_clear; + + volatile union + { + uint64_t reg; + kpu_config_fifo_threshold_t data; + } fifo_threshold; + + volatile uint64_t fifo_data_out; + + volatile union + { + uint64_t reg; + kpu_config_fifo_ctrl_t data; + } fifo_ctrl; + + volatile union + { + uint64_t reg; + kpu_config_eight_bit_mode_t data; + } eight_bit_mode; +} kpu_config_t; + +extern volatile kpu_config_t *const kpu; + +typedef struct +{ + kpu_layer_argument_t* layers; + kpu_layer_argument_t* remain_layers; + uint64_t* dst; + plic_irq_callback_t cb; + uint32_t layers_length; + uint32_t remain_layers_length; + uint32_t dst_length; + uint32_t dma_ch; + uint32_t eight_bit_mode; + volatile float output_scale; + volatile float output_bias; +} kpu_task_t; + +/** + * @brief Modle complier init kpu handler + * + * @param[in] task Kpu handler + * + * @return Kpu handler + */ +extern kpu_task_t* kpu_task_init(kpu_task_t* task); + +/** + * @brief Kpu run for AI + * + * @param[in] task Kpu handler + * @param[in] dma_ch DMA for kpu + * @param[in] src The picture data + * @param[in] dest The result of kpu + * @param[in] callback The callback of kpu + * + * @return result + * - 0 Success + * - Other Fail.Kpu is busy. + */ +int kpu_run(kpu_task_t* task, dmac_channel_number_t dma_ch, const void *src, void* dest, plic_irq_callback_t callback); + +/** + * @brief Get kpu result buf + * + * @param[in] task Kpu handler + * + * @return Kpu result buf + */ +uint8_t *kpu_get_output_buf(kpu_task_t* task); + +/** + * @brief Release kpu output buf + * + * @param[in] output_buf Kpu output buf + * + */ +void kpu_release_output_buf(uint8_t *output_buf); + +#endif diff --git a/lib/drivers/include/plic.h b/lib/drivers/include/plic.h index 1215c68..38fb833 100755 --- a/lib/drivers/include/plic.h +++ b/lib/drivers/include/plic.h @@ -455,6 +455,17 @@ void plic_irq_register(plic_irq_t irq, plic_irq_callback_t callback, void *ctx); */ void plic_irq_deregister(plic_irq_t irq); +/** + * @brief Deegister user callback function by IRQ number + * + * @param[in] irq The irq + * + * @return result + * - 0 Success + * - Other Fail + */ +void plic_irq_unregister(plic_irq_t irq); + /* For c++ compatibility */ #ifdef __cplusplus } diff --git a/lib/drivers/include/sysctl.h b/lib/drivers/include/sysctl.h index be394d0..ea8e8f8 100755 --- a/lib/drivers/include/sysctl.h +++ b/lib/drivers/include/sysctl.h @@ -1035,6 +1035,13 @@ void sysctl_enable_irq(void); */ void sysctl_disable_irq(void); +/** + * @brief Get the time start up to now + * + * @return The time of microsecond + */ +uint64_t sysctl_get_time_us(void); + #ifdef __cplusplus } #endif diff --git a/lib/drivers/include/timer.h b/lib/drivers/include/timer.h index b9ae89b..01dbece 100755 --- a/lib/drivers/include/timer.h +++ b/lib/drivers/include/timer.h @@ -82,6 +82,10 @@ typedef enum _timer_channel_number extern volatile kendryte_timer_t *const timer[3]; +/** + * @brief Definitions for the timer callbacks + */ +typedef int (*timer_callback_t)(void *ctx); /** * @brief Set timer timeout @@ -102,7 +106,7 @@ size_t timer_set_interval(timer_device_number_t timer_number, timer_channel_numb void timer_init(timer_device_number_t timer_number); /** - * @brief Set timer timeout function + * @brief [DEPRECATED] Set timer timeout function * * @param[in] timer timer * @param[in] channel channel @@ -112,6 +116,34 @@ void timer_init(timer_device_number_t timer_number); */ void timer_set_irq(timer_device_number_t timer_number, timer_channel_number_t channel, void(*func)(), uint32_t priority); +/** + * @brief Register timer interrupt user callback function + * + * @param[in] device The timer device number + * @param[in] channel The channel + * @param[in] is_one_shot Indicates if single shot + * @param[in] priority The priority + * @param[in] callback The callback function + * @param[in] ctx The context + * + * @return result + * - 0 Success + * - Other Fail + */ +int timer_irq_register(timer_device_number_t device, timer_channel_number_t channel, int is_single_shot, uint32_t priority, timer_callback_t callback, void *ctx); + +/** + * @brief Deregister timer interrupt user callback function + * + * @param[in] device The timer device number + * @param[in] channel The channel + * + * @return result + * - 0 Success + * - Other Fail + */ +int timer_irq_unregister(timer_device_number_t device, timer_channel_number_t channel); + /** * @brief Enable timer * @@ -132,7 +164,6 @@ void timer_enable_interrupt(timer_device_number_t timer_number, timer_channel_nu void timer_set_clock_div(timer_device_number_t timer_number, uint32_t div); void timer_disable(timer_device_number_t timer_number, timer_channel_number_t channel); void timer_channel_clear_interrupt(timer_device_number_t timer_number, timer_channel_number_t channel); - #ifdef __cplusplus } #endif diff --git a/lib/drivers/include/uart.h b/lib/drivers/include/uart.h index 0532d3a..09d07da 100755 --- a/lib/drivers/include/uart.h +++ b/lib/drivers/include/uart.h @@ -39,6 +39,8 @@ #include #include "platform.h" +#include "plic.h" +#include "dmac.h" #ifdef __cplusplus extern "C" { @@ -146,6 +148,28 @@ typedef enum _uart_parity UART_PARITY_EVEN } uart_parity_t; +typedef enum _uart_interrupt_mode +{ + UART_SEND = 1, + UART_RECEIVE = 2, +} uart_interrupt_mode_t; + +typedef enum _uart_send_trigger +{ + UART_SEND_FIFO_0, + UART_SEND_FIFO_2, + UART_SEND_FIFO_4, + UART_SEND_FIFO_8, +} uart_send_trigger_t; + +typedef enum _uart_receive_trigger +{ + UART_RECEIVE_FIFO_1, + UART_RECEIVE_FIFO_4, + UART_RECEIVE_FIFO_8, + UART_RECEIVE_FIFO_14, +} uart_receive_trigger_t; + /** * @brief Send data from uart * @@ -188,6 +212,112 @@ void uart_init(uart_device_number_t channel); */ void uart_config(uart_device_number_t channel, uint32_t baud_rate, uart_bitwidth_t data_width, uart_stopbit_t stopbit, uart_parity_t parity); +/** + * @brief Set uart param + * + * @param[in] channel Uart index + * @param[in] baud_rate Baudrate + * @param[in] data_width Data width + * @param[in] stopbit Stop bit + * @param[in] parity Odd Even parity + * + */ +void uart_configure(uart_device_number_t channel, uint32_t baud_rate, uart_bitwidth_t data_width, uart_stopbit_t stopbit, uart_parity_t parity); + +/** + * @brief Register uart interrupt + * + * @param[in] channel Uart index + * @param[in] interrupt_mode Interrupt Mode receive or send + * @param[in] uart_callback Call back + * @param[in] ctx Param of call back + * @param[in] priority Interrupt priority + * + */ +void uart_irq_register(uart_device_number_t channel, uart_interrupt_mode_t interrupt_mode, plic_irq_callback_t uart_callback, void *ctx, uint32_t priority); + +/** + * @brief Deregister uart interrupt + * + * @param[in] channel Uart index + * @param[in] interrupt_mode Interrupt Mode receive or send + * + */ +void uart_irq_unregister(uart_device_number_t channel, uart_interrupt_mode_t interrupt_mode); + +/** + * @brief Set send interrupt threshold + * + * @param[in] channel Uart index + * @param[in] trigger Threshold of send interrupt + * + */ +void uart_set_send_trigger(uart_device_number_t channel, uart_send_trigger_t trigger); + +/** + * @brief Set receive interrupt threshold + * + * @param[in] channel Uart index + * @param[in] trigger Threshold of receive interrupt + * + */ +void uart_set_receive_trigger(uart_device_number_t channel, uart_receive_trigger_t trigger); + +/** + * @brief Send data by dma + * + * @param[in] channel Uart index + * @param[in] dmac_channel Dmac channel + * @param[in] buffer Send data + * @param[in] buf_len Data length + * + */ +void uart_send_data_dma(uart_device_number_t uart_channel, dmac_channel_number_t dmac_channel, const uint8_t *buffer, size_t buf_len); + +/** + * @brief Receive data by dma + * + * @param[in] channel Uart index + * @param[in] dmac_channel Dmac channel + * @param[in] buffer Receive data + * @param[in] buf_len Data length + * + */ +void uart_receive_data_dma(uart_device_number_t uart_channel, dmac_channel_number_t dmac_channel, uint8_t *buffer, size_t buf_len); + + +/** + * @brief Send data by dma + * + * @param[in] uart_channel Uart index + * @param[in] dmac_channel Dmac channel + * @param[in] buffer Send data + * @param[in] buf_len Data length + * @param[in] uart_callback Call back + * @param[in] ctx Param of call back + * @param[in] priority Interrupt priority + * + */ +void uart_send_data_dma_irq(uart_device_number_t uart_channel, dmac_channel_number_t dmac_channel, + const uint8_t *buffer, size_t buf_len, plic_irq_callback_t uart_callback, + void *ctx, uint32_t priority); + +/** + * @brief Receive data by dma + * + * @param[in] uart_channel Uart index + * @param[in] dmac_channel Dmac channel + * @param[in] buffer Receive data + * @param[in] buf_len Data length + * @param[in] uart_callback Call back + * @param[in] ctx Param of call back + * @param[in] priority Interrupt priority + * + */ +void uart_receive_data_dma_irq(uart_device_number_t uart_channel, dmac_channel_number_t dmac_channel, + uint8_t *buffer, size_t buf_len, plic_irq_callback_t uart_callback, + void *ctx, uint32_t priority); + #ifdef __cplusplus } #endif diff --git a/lib/drivers/include/uarths.h b/lib/drivers/include/uarths.h index 4cf17de..5782ee8 100755 --- a/lib/drivers/include/uarths.h +++ b/lib/drivers/include/uarths.h @@ -50,6 +50,7 @@ #include #include "platform.h" +#include "plic.h" #ifdef __cplusplus extern "C" { @@ -170,6 +171,19 @@ typedef struct _uarths uarths_div_t div; } __attribute__((packed, aligned(4))) uarths_t; +typedef enum _uarths_interrupt_mode +{ + UARTHS_SEND = 1, + UARTHS_RECEIVE = 2, + UARTHS_SEND_RECEIVE = 3, +} uarths_interrupt_mode_t; + +typedef enum _uarths_stopbit +{ + UART_STOP_1, + UART_STOP_2 +} uarths_stopbit_t; + extern volatile uarths_t *const uarths; /** @@ -215,6 +229,61 @@ int uarths_puts(const char *s); */ int uarths_getc(void); +/** + * @brief Set uarths interrupt callback + * + * @param[in] interrupt_mode Interrupt mode recevice or send + * @param[in] uarths_callback Interrupt callback + * @param[in] ctx Param of callback + * @param[in] priority Interrupt priority + * + */ +void uarths_set_irq(uarths_interrupt_mode_t interrupt_mode, plic_irq_callback_t uarths_callback, void *ctx, uint32_t priority); + +/** + * @brief Uarths receive data + * + * @param[in] buf The data received + * @param[in] buf_len The length of data + * + * @return Number of received data + */ +size_t uarths_receive_data(uint8_t *buf, size_t buf_len); + +/** + * @brief Uarths receive data + * + * @param[in] buf The data sended + * @param[in] buf_len The length of data + * + * @return Number of sended data + */ +size_t uarths_send_data(const uint8_t *buf, size_t buf_len); + +/** + * @brief Get interrupt mode + * + * @return Mode of interrupt + */ +uarths_interrupt_mode_t uarths_get_interrupt_mode(void); + +/** + * @brief Set uarths baud rate and stopbit + * + * @param[in] baud_rate The baud rate + * @param[in] stopbit The stopbit of data + * + */ +void uarths_config(uint32_t baud_rate, uarths_stopbit_t stopbit); + +/** + * @brief Set uart interrupt condition + * + * @param[in] interrupt_mode The interrupt mode + * @param[in] cnt The count of tigger + * + */ +void uarths_set_interrupt_cnt(uarths_interrupt_mode_t interrupt_mode, uint8_t cnt); #ifdef __cplusplus } diff --git a/lib/drivers/kpu.c b/lib/drivers/kpu.c new file mode 100755 index 0000000..12889cc --- /dev/null +++ b/lib/drivers/kpu.c @@ -0,0 +1,176 @@ +#include "kpu.h" +#include +#include +#include +#include +#include "printf.h" +#include "dmac.h" +#include +#include "bsp.h" + +volatile kpu_config_t *const kpu = (volatile kpu_config_t *)AI_BASE_ADDR; + +typedef struct kpu_context +{ + kpu_task_t kpu_task; + uint32_t kpu_status; +} kpu_context_t; + +volatile kpu_context_t g_kpu_context; + +static int kpu_run_all_done(void* _task) +{ + atomic_swap(&g_kpu_context.kpu_status, 0); + kpu_task_t* task = (kpu_task_t*)_task; + task->cb(task); + return 0; +} + +int kpu_continue(void* _task) +{ + kpu_task_t* task = (kpu_task_t*)_task; + int layer_burst_size = 1; + kpu->interrupt_clear.data = (kpu_config_interrupt_t) + { + .calc_done_int=1, + .layer_cfg_almost_empty_int=1, + .layer_cfg_almost_full_int=1 + }; + + if(task->remain_layers_length == 0) + { + return 0; + } + if(task->remain_layers_length <= layer_burst_size) + { + for(uint32_t i=0; iremain_layers_length; i++) + { + kpu->layer_argument_fifo = task->remain_layers[i].interrupt_enabe.reg; + kpu->layer_argument_fifo = task->remain_layers[i].image_addr.reg; + kpu->layer_argument_fifo = task->remain_layers[i].image_channel_num.reg; + kpu->layer_argument_fifo = task->remain_layers[i].image_size.reg; + kpu->layer_argument_fifo = task->remain_layers[i].kernel_pool_type_cfg.reg; + kpu->layer_argument_fifo = task->remain_layers[i].kernel_load_cfg.reg; + kpu->layer_argument_fifo = task->remain_layers[i].kernel_offset.reg; + kpu->layer_argument_fifo = task->remain_layers[i].kernel_calc_type_cfg.reg; + kpu->layer_argument_fifo = task->remain_layers[i].write_back_cfg.reg; + kpu->layer_argument_fifo = task->remain_layers[i].conv_value.reg; + kpu->layer_argument_fifo = task->remain_layers[i].conv_value2.reg; + kpu->layer_argument_fifo = task->remain_layers[i].dma_parameter.reg; + } + task->remain_layers_length = 0; + } + else + { + for(uint32_t i=0; ilayer_argument_fifo = task->remain_layers[i].interrupt_enabe.reg; + kpu->layer_argument_fifo = task->remain_layers[i].image_addr.reg; + kpu->layer_argument_fifo = task->remain_layers[i].image_channel_num.reg; + kpu->layer_argument_fifo = task->remain_layers[i].image_size.reg; + kpu->layer_argument_fifo = task->remain_layers[i].kernel_pool_type_cfg.reg; + kpu->layer_argument_fifo = task->remain_layers[i].kernel_load_cfg.reg; + kpu->layer_argument_fifo = task->remain_layers[i].kernel_offset.reg; + kpu->layer_argument_fifo = task->remain_layers[i].kernel_calc_type_cfg.reg; + kpu->layer_argument_fifo = task->remain_layers[i].write_back_cfg.reg; + kpu->layer_argument_fifo = task->remain_layers[i].conv_value.reg; + kpu->layer_argument_fifo = task->remain_layers[i].conv_value2.reg; + kpu->layer_argument_fifo = task->remain_layers[i].dma_parameter.reg; + } + task->remain_layers += layer_burst_size; + task->remain_layers_length -= layer_burst_size; + } + return 0; +} + +static int kpu_run_dma_output(uint32_t dma_ch, void* dst, uint32_t length, plic_irq_callback_t cb, void* _task) +{ + sysctl_dma_select(dma_ch, SYSCTL_DMA_SELECT_AI_RX_REQ); + dmac_set_irq(dma_ch, kpu_run_all_done, _task, 1); + dmac_set_single_mode(dma_ch, (void *)(&kpu->fifo_data_out), (void *)(dst), DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_8, DMAC_TRANS_WIDTH_64, (length+7)/8); + return 0; +} + +static int kpu_run_dma_input_done_push_layers(void* _task) +{ + kpu_task_t* task = (kpu_task_t*)_task; + kpu->interrupt_clear.reg = 7; + dmac->channel[task->dma_ch].intclear = 0xFFFFFFFF; + kpu->fifo_threshold.data = (kpu_config_fifo_threshold_t) + { + .fifo_full_threshold = 10, .fifo_empty_threshold=1 + }; + kpu->eight_bit_mode.data = (kpu_config_eight_bit_mode_t) + { + .eight_bit_mode=task->eight_bit_mode + }; + + kpu_layer_argument_t* last_layer = &task->layers[task->layers_length-1]; + + kpu_run_dma_output(task->dma_ch, task->dst, last_layer->dma_parameter.data.dma_total_byte+1, kpu_run_all_done, task); + + kpu->interrupt_mask.data = (kpu_config_interrupt_t) + { + .calc_done_int=0, + .layer_cfg_almost_empty_int=0, + .layer_cfg_almost_full_int=1 + }; + kpu_continue(task); + return 0; +} + +static void kpu_run_dma_input(uint32_t dma_ch, const void* src, plic_irq_callback_t cb, void* _task) +{ + kpu_task_t* task = _task; + kpu_layer_argument_t* first_layer = &task->layers[0]; + uint64_t input_size = first_layer->kernel_calc_type_cfg.data.channel_switch_addr * 64 * (first_layer->image_channel_num.data.i_ch_num+1); + dmac_set_irq(dma_ch, cb, _task, 1); + dmac_set_single_mode(dma_ch, (void *)src, (void *)(AI_IO_BASE_ADDR), DMAC_ADDR_INCREMENT, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_16, DMAC_TRANS_WIDTH_64, input_size / 8); +} + +int kpu_run(kpu_task_t* v_task, dmac_channel_number_t dma_ch, const void *src, void* dest, plic_irq_callback_t callback) +{ + if(atomic_cas(&g_kpu_context.kpu_status, 0, 1)) + return -1; + + memcpy((void *)&g_kpu_context.kpu_task, v_task, sizeof(kpu_task_t)); + kpu_task_t *task = (kpu_task_t *)&g_kpu_context.kpu_task; + + kpu_layer_argument_t* last_layer = &task->layers[task->layers_length-1]; + + uint64_t output_size = last_layer->dma_parameter.data.dma_total_byte+1; + + last_layer->dma_parameter.data.send_data_out = 1; + last_layer->interrupt_enabe.data.int_en = 1; + + task->dma_ch = dma_ch; + task->dst = dest; + task->dst_length = output_size; + task->cb = callback; + task->remain_layers_length = task->layers_length; + task->remain_layers = task->layers; + + plic_irq_enable(IRQN_AI_INTERRUPT); + plic_set_priority(IRQN_AI_INTERRUPT, 1); + plic_irq_register(IRQN_AI_INTERRUPT, kpu_continue, task); + + kpu_run_dma_input(dma_ch, src, kpu_run_dma_input_done_push_layers, task); + + return 0; +} + +uint8_t *kpu_get_output_buf(kpu_task_t* task) +{ + kpu_layer_argument_t* last_layer = &task->layers[task->layers_length-1]; + size_t output_size = ((last_layer->dma_parameter.data.dma_total_byte+1) + 7) / 8 * 8; + return malloc(output_size); +} + +void kpu_release_output_buf(uint8_t *output_buf) +{ + if(output_buf != NULL) + free(output_buf); +} + diff --git a/lib/drivers/plic.c b/lib/drivers/plic.c index 72bed79..185c595 100755 --- a/lib/drivers/plic.c +++ b/lib/drivers/plic.c @@ -148,14 +148,17 @@ void plic_irq_register(plic_irq_t irq, plic_irq_callback_t callback, void *ctx) plic_instance[core_id][irq].ctx = ctx; } -void plic_irq_deregister(plic_irq_t irq) +void plic_irq_unregister(plic_irq_t irq) { /* Just assign NULL to user callback function and context */ plic_irq_register(irq, NULL, NULL); } +void __attribute__((weak, alias("plic_irq_unregister"))) plic_irq_deregister(plic_irq_t irq); + /*Entry Point for PLIC Interrupt Handler*/ -uintptr_t handle_irq_m_ext(uintptr_t cause, uintptr_t epc) +uintptr_t __attribute__((weak)) +handle_irq_m_ext(uintptr_t cause, uintptr_t epc) { /* * After the highest-priority pending interrupt is claimed by a target diff --git a/lib/drivers/rtc.c b/lib/drivers/rtc.c index c16d5a1..473069a 100755 --- a/lib/drivers/rtc.c +++ b/lib/drivers/rtc.c @@ -66,7 +66,7 @@ rtc_timer_mode_t rtc_timer_get_mode(void) } else if ((!register_ctrl.read_enable) && (register_ctrl.write_enable)) { /* RTC_TIMER_SETTING */ - timer_mode = RTC_TIMER_RUNNING; + timer_mode = RTC_TIMER_SETTING; } else { @@ -288,8 +288,8 @@ struct tm *rtc_timer_get_tm(void) tm->tm_sec = timer_time.second % 60; tm->tm_min = timer_time.minute % 60; tm->tm_hour = timer_time.hour % 24; - tm->tm_mday = timer_date.day % 31; - tm->tm_mon = (timer_date.month % 12) - 1; + tm->tm_mday = (timer_date.day - 1) % 31 + 1; + tm->tm_mon = (timer_date.month - 1)% 12; tm->tm_year = (timer_date.year % 100) + (timer_extended.century * 100) - 1900; tm->tm_wday = timer_date.week; tm->tm_yday = rtc_get_yday(tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); diff --git a/lib/drivers/spi.c b/lib/drivers/spi.c index e679c9a..2eb292a 100755 --- a/lib/drivers/spi.c +++ b/lib/drivers/spi.c @@ -28,7 +28,28 @@ volatile spi_t *const spi[4] = (volatile spi_t *)SPI3_BASE_ADDR }; -static spi_transfer_width_t get_frame_size(size_t data_bit_length) +static spi_frame_format_t spi_get_frame_format(spi_device_num_t spi_num) +{ + uint8_t frf_offset; + switch(spi_num) + { + case 0: + case 1: + frf_offset = 21; + break; + case 2: + configASSERT(!"Spi Bus 2 Not Support!"); + break; + case 3: + default: + frf_offset = 22; + break; + } + volatile spi_t *spi_adapter = spi[spi_num]; + return ((spi_adapter->ctrlr0 >> frf_offset) & 0x3); +} + +static spi_transfer_width_t spi_get_frame_size(size_t data_bit_length) { if (data_bit_length < 8) return SPI_TRANS_CHAR; @@ -111,7 +132,8 @@ void spi_init(spi_device_num_t spi_num, spi_work_mode_t work_mode, spi_frame_for break; } volatile spi_t *spi_adapter = spi[spi_num]; - spi_adapter->baudr = 0x14; + if(spi_adapter->baudr == 0) + spi_adapter->baudr = 0x14; spi_adapter->imr = 0x00; spi_adapter->dmacr = 0x00; spi_adapter->dmatdlr = 0x10; @@ -196,7 +218,7 @@ void spi_send_data_normal(spi_device_num_t spi_num, spi_chip_select_t chip_selec break; } uint32_t data_bit_length = (spi_handle->ctrlr0 >> dfs_offset) & 0x1F; - spi_transfer_width_t frame_width = get_frame_size(data_bit_length); + spi_transfer_width_t frame_width = spi_get_frame_size(data_bit_length); spi_handle->ssienr = 0x01; spi_handle->ser = 1U << chip_select; @@ -269,7 +291,7 @@ void spi_send_data_standard_dma(dmac_channel_number_t channel_num, spi_device_nu break; } uint32_t data_bit_length = (spi_handle->ctrlr0 >> dfs_offset) & 0x1F; - spi_transfer_width_t frame_width = get_frame_size(data_bit_length); + spi_transfer_width_t frame_width = spi_get_frame_size(data_bit_length); uint32_t *buf; size_t v_send_len; @@ -354,10 +376,12 @@ void spi_receive_data_standard(spi_device_num_t spi_num, spi_chip_select_t chip_ size_t cmd_len, uint8_t *rx_buff, size_t rx_len) { configASSERT(spi_num < SPI_DEVICE_MAX && spi_num != 2); - + size_t v_cmd_len = cmd_len; size_t index, fifo_len; - - spi_set_tmod(spi_num, SPI_TMOD_EEROM); + if(cmd_len == 0) + spi_set_tmod(spi_num, SPI_TMOD_RECV); + else + spi_set_tmod(spi_num, SPI_TMOD_EEROM); volatile spi_t *spi_handle = spi[spi_num]; uint8_t dfs_offset; @@ -375,20 +399,19 @@ void spi_receive_data_standard(spi_device_num_t spi_num, spi_chip_select_t chip_ break; } uint32_t data_bit_length = (spi_handle->ctrlr0 >> dfs_offset) & 0x1F; - spi_transfer_width_t frame_width = get_frame_size(data_bit_length); + spi_transfer_width_t frame_width = spi_get_frame_size(data_bit_length); uint32_t v_rx_len = 0; uint32_t i = 0; - v_rx_len = rx_len / frame_width; spi_handle->ctrlr1 = (uint32_t)(v_rx_len - 1); spi_handle->ssienr = 0x01; - while (cmd_len) + while (v_cmd_len) { fifo_len = 32 - spi_handle->txflr; - fifo_len = fifo_len < cmd_len ? fifo_len : cmd_len; + fifo_len = fifo_len < v_cmd_len ? fifo_len : v_cmd_len; switch(frame_width) { case SPI_TRANS_INT: @@ -407,7 +430,13 @@ void spi_receive_data_standard(spi_device_num_t spi_num, spi_chip_select_t chip_ break; } spi_handle->ser = 1U << chip_select; - cmd_len -= fifo_len; + v_cmd_len -= fifo_len; + } + + if(cmd_len == 0) + { + spi_handle->dr[0] = 0xffffffff; + spi_handle->ser = 1U << chip_select; } i = 0; @@ -426,8 +455,7 @@ void spi_receive_data_standard(spi_device_num_t spi_num, spi_chip_select_t chip_ fifo_len = fifo_len / 2 * 2; for (index = 0; index < fifo_len / 2; index++) ((uint16_t *)rx_buff)[i++] = (uint16_t)spi_handle->dr[0]; - - break; + break; default: for (index = 0; index < fifo_len; index++) rx_buff[i++] = (uint8_t)spi_handle->dr[0]; @@ -467,7 +495,8 @@ void spi_receive_data_normal_dma(dmac_channel_number_t dma_send_channel_num, if(cmd_len) dmac_set_single_mode(dma_send_channel_num, cmd_buff, (void *)(&spi_handle->dr[0]), DMAC_ADDR_INCREMENT, DMAC_ADDR_NOCHANGE, DMAC_MSIZE_4, DMAC_TRANS_WIDTH_32, cmd_len); - + if(cmd_len == 0 && spi_get_frame_format(spi_num) == SPI_FF_STANDARD) + spi[spi_num]->dr[0] = 0xffffffff; spi_handle->ser = 1U << chip_select; if(cmd_len) dmac_wait_done(dma_send_channel_num); @@ -501,7 +530,7 @@ void spi_receive_data_standard_dma(dmac_channel_number_t dma_send_channel_num, break; } uint32_t data_bit_length = (spi_handle->ctrlr0 >> dfs_offset) & 0x1F; - spi_transfer_width_t frame_width = get_frame_size(data_bit_length); + spi_transfer_width_t frame_width = spi_get_frame_size(data_bit_length); size_t i; @@ -565,7 +594,10 @@ void spi_receive_data_multiple(spi_device_num_t spi_num, spi_chip_select_t chip_ configASSERT(spi_num < SPI_DEVICE_MAX && spi_num != 2); size_t index, fifo_len; - spi_set_tmod(spi_num, SPI_TMOD_EEROM); + if(cmd_len == 0) + spi_set_tmod(spi_num, SPI_TMOD_RECV); + else + spi_set_tmod(spi_num, SPI_TMOD_EEROM); volatile spi_t *spi_handle = spi[spi_num]; uint8_t dfs_offset; @@ -583,7 +615,7 @@ void spi_receive_data_multiple(spi_device_num_t spi_num, spi_chip_select_t chip_ break; } uint32_t data_bit_length = (spi_handle->ctrlr0 >> dfs_offset) & 0x1F; - spi_transfer_width_t frame_width = get_frame_size(data_bit_length); + spi_transfer_width_t frame_width = spi_get_frame_size(data_bit_length); uint32_t v_cmd_len = cmd_len * 4; uint32_t i = 0; @@ -606,6 +638,11 @@ void spi_receive_data_multiple(spi_device_num_t spi_num, spi_chip_select_t chip_ v_cmd_len -= fifo_len; } + if(cmd_len == 0) + { + spi_handle->ser = 1U << chip_select; + } + while (rx_len) { fifo_len = spi_handle->rxflr; @@ -642,13 +679,12 @@ void spi_receive_data_multiple_dma(dmac_channel_number_t dma_send_channel_num, spi_device_num_t spi_num, spi_chip_select_t chip_select, const uint32_t *cmd_buff, size_t cmd_len, uint8_t *rx_buff, size_t rx_len) { - configASSERT(spi_num < SPI_DEVICE_MAX && spi_num != 2); + configASSERT(spi_num < SPI_DEVICE_MAX && spi_num != 2); - spi_set_tmod(spi_num, SPI_TMOD_RECV); - volatile spi_t *spi_handle = spi[spi_num]; + volatile spi_t *spi_handle = spi[spi_num]; - uint8_t dfs_offset; - switch(spi_num){ + uint8_t dfs_offset; + switch(spi_num){ case 0: case 1: dfs_offset = 16; @@ -660,25 +696,23 @@ void spi_receive_data_multiple_dma(dmac_channel_number_t dma_send_channel_num, default: dfs_offset = 0; break; - } - uint32_t data_bit_length = (spi_handle->ctrlr0 >> dfs_offset) & 0x1F; - spi_transfer_width_t frame_width = get_frame_size(data_bit_length); + } + uint32_t data_bit_length = (spi_handle->ctrlr0 >> dfs_offset) & 0x1F; + spi_transfer_width_t frame_width = spi_get_frame_size(data_bit_length); - size_t i; + size_t i; - uint32_t *write_cmd; - uint32_t *read_buf; - size_t v_recv_len; - size_t v_cmd_len; - switch(frame_width) - { + uint32_t *write_cmd; + uint32_t *read_buf; + size_t v_recv_len; + switch(frame_width) + { case SPI_TRANS_INT: write_cmd = malloc(cmd_len + rx_len); for(i = 0; i < cmd_len; i++) write_cmd[i] = cmd_buff[i]; read_buf = &write_cmd[i]; v_recv_len = rx_len / 4; - v_cmd_len = cmd_len / 4; break; case SPI_TRANS_SHORT: write_cmd = malloc(cmd_len + rx_len /2 * sizeof(uint32_t)); @@ -686,7 +720,6 @@ void spi_receive_data_multiple_dma(dmac_channel_number_t dma_send_channel_num, write_cmd[i] = cmd_buff[i]; read_buf = &write_cmd[i]; v_recv_len = rx_len / 2; - v_cmd_len = cmd_len / 2; break; default: write_cmd = malloc(cmd_len + rx_len * sizeof(uint32_t)); @@ -694,14 +727,13 @@ void spi_receive_data_multiple_dma(dmac_channel_number_t dma_send_channel_num, write_cmd[i] = cmd_buff[i]; read_buf = &write_cmd[i]; v_recv_len = rx_len; - v_cmd_len = cmd_len; break; - } + } - spi_receive_data_normal_dma(dma_send_channel_num, dma_receive_channel_num, spi_num, chip_select, write_cmd, v_cmd_len, read_buf, v_recv_len); + spi_receive_data_normal_dma(dma_send_channel_num, dma_receive_channel_num, spi_num, chip_select, write_cmd, cmd_len, read_buf, v_recv_len); - switch(frame_width) - { + switch(frame_width) + { case SPI_TRANS_INT: for(i = 0; i < v_recv_len; i++) ((uint32_t *)rx_buff)[i] = read_buf[i]; @@ -714,9 +746,9 @@ void spi_receive_data_multiple_dma(dmac_channel_number_t dma_send_channel_num, for(i = 0; i < v_recv_len; i++) rx_buff[i] = read_buf[i]; break; - } + } - free(write_cmd); + free(write_cmd); } @@ -766,7 +798,7 @@ void spi_send_data_multiple_dma(dmac_channel_number_t channel_num, spi_device_nu break; } uint32_t data_bit_length = (spi_handle->ctrlr0 >> dfs_offset) & 0x1F; - spi_transfer_width_t frame_width = get_frame_size(data_bit_length); + spi_transfer_width_t frame_width = spi_get_frame_size(data_bit_length); uint32_t *buf; size_t v_send_len; diff --git a/lib/drivers/sysctl.c b/lib/drivers/sysctl.c index d085058..0e8ab8d 100755 --- a/lib/drivers/sysctl.c +++ b/lib/drivers/sysctl.c @@ -19,6 +19,7 @@ #include "sysctl.h" #include "string.h" #include "encoding.h" +#include "bsp.h" #define SYSCTRL_CLOCK_FREQ_IN0 (26000000UL) @@ -752,32 +753,24 @@ static int sysctl_pll_is_lock(sysctl_pll_t pll) * */ - uint8_t lock = 0; - if (pll >= SYSCTL_PLL_MAX) return 0; switch (pll) { case SYSCTL_PLL0: - lock = sysctl->pll_lock.pll_lock0; - break; + return sysctl->pll_lock.pll_lock0 == 3; case SYSCTL_PLL1: - lock = sysctl->pll_lock.pll_lock1; - break; + return sysctl->pll_lock.pll_lock1 & 1; case SYSCTL_PLL2: - lock = sysctl->pll_lock.pll_lock2; - break; + return sysctl->pll_lock.pll_lock2 & 1; default: break; } - if (lock == 3) - return 1; - return 0; } @@ -1778,13 +1771,14 @@ uint32_t sysctl_pll_set_freq(sysctl_pll_t pll, uint32_t pll_freq) /* 5. Power on PLL */ v_pll_t->pll_pwrd = 1; + /* wait >100ns */ + usleep(1); /* 6. Reset PLL then Release Reset*/ v_pll_t->pll_reset = 0; v_pll_t->pll_reset = 1; - /* wait 100ns */ - asm volatile ("nop"); - asm volatile ("nop"); + /* wait >100ns */ + usleep(1); v_pll_t->pll_reset = 0; /* 7. Get lock status, wait PLL stable */ @@ -1821,3 +1815,9 @@ void sysctl_disable_irq(void) clear_csr(mstatus, MSTATUS_MIE); } +uint64_t sysctl_get_time_us(void) +{ + uint64_t v_cycle = read_cycle(); + return v_cycle * 1000000 / sysctl_clock_get_freq(SYSCTL_CLOCK_CPU); +} + diff --git a/lib/drivers/timer.c b/lib/drivers/timer.c index 3566446..b638ccc 100755 --- a/lib/drivers/timer.c +++ b/lib/drivers/timer.c @@ -12,6 +12,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +#include #include "timer.h" #include "sysctl.h" #include "stddef.h" @@ -19,6 +21,18 @@ #include "plic.h" #include "io.h" +/** + * @brief Private definitions for the timer instance + */ +typedef struct timer_instance +{ + timer_callback_t callback; + void *ctx; + bool single_shot; +} timer_instance_t; + +volatile timer_instance_t timer_instance[TIMER_DEVICE_MAX][TIMER_CHANNEL_MAX]; + volatile kendryte_timer_t *const timer[3] = { (volatile kendryte_timer_t *)TIMER0_BASE_ADDR, @@ -28,6 +42,13 @@ volatile kendryte_timer_t *const timer[3] = void timer_init(timer_device_number_t timer_number) { + for(size_t i = 0; i < TIMER_CHANNEL_MAX; i++) + timer_instance[timer_number][i] = (const timer_instance_t) { + .callback = NULL, + .ctx = NULL, + .single_shot = 0, + }; + sysctl_clock_enable(SYSCTL_CLOCK_TIMER0 + timer_number); } @@ -185,8 +206,186 @@ void timer_set_irq(timer_device_number_t timer_number, timer_channel_number_t ch else { plic_set_priority(IRQN_TIMER0B_INTERRUPT + timer_number * 2, priority); - plic_irq_register(IRQN_TIMER0B_INTERRUPT + timer_number * 2, timer_isr, NULL); + plic_irq_register(IRQN_TIMER0B_INTERRUPT + timer_number * 2, timer_isr, (void *)timer[timer_number]); plic_irq_enable(IRQN_TIMER0B_INTERRUPT + timer_number * 2); } } +/** + * @brief Get the timer irqn by device and channel object + * + * @note Internal function, not public + * @param device The device + * @param channel The channel + * @return plic_irq_t IRQ number + */ +static plic_irq_t get_timer_irqn_by_device_and_channel(timer_device_number_t device, timer_channel_number_t channel) +{ + if (device < TIMER_DEVICE_MAX && channel < TIMER_CHANNEL_MAX) { + /* + * Select timer interrupt part + * Hierarchy of Timer interrupt to PLIC + * +---------+ +-----------+ + * | 0+----+ | | + * | | +--+0A | + * | 1+----+ | | + * | TIMER0 | | | + * | 2+----+ | | + * | | +--+0B | + * | 3+----+ | | + * +---------+ | | + * | | + * +---------+ | | + * | 0+----+ | | + * | | +--+1A | + * | 1+----+ | | + * | TIMER1 | | PLIC | + * | 2+----+ | | + * | | +--+1B | + * | 3+----+ | | + * +---------+ | | + * | | + * +---------+ | | + * | 0+----+ | | + * | | +--+2A | + * | 1+----+ | | + * | TIMER2 | | | + * | 2+----+ | | + * | | +--+2B | + * | 3+----+ | | + * +---------+ +-----------+ + * + */ + if (channel < 2) { + /* It is part A interrupt, offset + 0 */ + return IRQN_TIMER0A_INTERRUPT + device * 2; + } + else { + /* It is part B interrupt, offset + 1 */ + return IRQN_TIMER0B_INTERRUPT + device * 2; + } + } + return IRQN_NO_INTERRUPT; +} + +/** + * @brief Process user callback function + * + * @note Internal function, not public + * @param device The timer device + * @param ctx The context + * @return int The callback result + */ +static int timer_interrupt_handler(timer_device_number_t device, void *ctx) +{ + uint32_t channel_int_stat = timer[device]->intr_stat; + + for (size_t i = 0; i < TIMER_CHANNEL_MAX; i++) + { + /* Check every bit for interrupt status */ + if (channel_int_stat & 1) + { + if (timer_instance[device][i].callback) { + /* Process user callback function */ + timer_instance[device][i].callback(timer_instance[device][i].ctx); + /* Check if this timer is a single shot timer */ + if (timer_instance[device][i].single_shot) { + /* Single shot timer, disable it */ + timer_set_enable(device, i, 0); + } + } + /* Clear timer interrupt flag for specific channel */ + readl(&timer[device]->channel[i].eoi); + } + channel_int_stat >>= 1; + } + + /* + * NOTE: + * Don't read timer[device]->eoi here, or you will lost some interrupt + * readl(&timer[device]->eoi); + */ + + return 0; +} + +/** + * @brief Callback function bus for timer interrupt + * + * @note Internal function, not public + * @param ctx The context + * @return int The callback result + */ +static int timer0_interrupt_callback(void *ctx) +{ + return timer_interrupt_handler(TIMER_DEVICE_0, ctx); +} + +/** + * @brief Callback function bus for timer interrupt + * + * @note Internal function, not public + * @param ctx The context + * @return int The callback result + */ +static int timer1_interrupt_callback(void *ctx) +{ + return timer_interrupt_handler(TIMER_DEVICE_1, ctx); +} + +/** + * @brief Callback function bus for timer interrupt + * + * @note Internal function, not public + * @param ctx The context + * @return int The callback result + */ +static int timer2_interrupt_callback(void *ctx) +{ + return timer_interrupt_handler(TIMER_DEVICE_2, ctx); +} + +int timer_irq_register(timer_device_number_t device, timer_channel_number_t channel, int is_single_shot, uint32_t priority, timer_callback_t callback, void *ctx) +{ + if (device < TIMER_DEVICE_MAX && channel < TIMER_CHANNEL_MAX) { + plic_irq_t irq_number = get_timer_irqn_by_device_and_channel(device, channel); + plic_irq_callback_t plic_irq_callback[TIMER_DEVICE_MAX] = { + timer0_interrupt_callback, + timer1_interrupt_callback, + timer2_interrupt_callback, + }; + + timer_instance[device][channel] = (const timer_instance_t) { + .callback = callback, + .ctx = ctx, + .single_shot = is_single_shot, + }; + plic_set_priority(irq_number, priority); + plic_irq_register(irq_number, plic_irq_callback[device], (void *)&timer_instance[device]); + plic_irq_enable(irq_number); + return 0; + } + return -1; +} + +int timer_irq_unregister(timer_device_number_t device, timer_channel_number_t channel) +{ + if (device < TIMER_DEVICE_MAX && channel < TIMER_CHANNEL_MAX) { + timer_instance[device][channel] = (const timer_instance_t) { + .callback = NULL, + .ctx = NULL, + .single_shot = 0, + }; + + /* Combine 0 and 1 to A interrupt, 2 and 3 to B interrupt */ + if ((!(timer_instance[device][TIMER_CHANNEL_0].callback || + timer_instance[device][TIMER_CHANNEL_1].callback)) || + (!(timer_instance[device][TIMER_CHANNEL_2].callback || + timer_instance[device][TIMER_CHANNEL_3].callback))) { + plic_irq_t irq_number = get_timer_irqn_by_device_and_channel(device, channel); + plic_irq_unregister(irq_number); + } + return 0; + } + return -1; +} \ No newline at end of file diff --git a/lib/drivers/uart.c b/lib/drivers/uart.c index bf0fb96..2db6d5e 100755 --- a/lib/drivers/uart.c +++ b/lib/drivers/uart.c @@ -29,65 +29,66 @@ volatile uart_t* const uart[3] = (volatile uart_t*)UART3_BASE_ADDR }; -#define RING_BUFF_LEN 64U +#define UART_INTERRUPT_SEND 0x02U +#define UART_INTERRUPT_RECEIVE 0x04U +#define UART_INTERRUPT_CHARACTER_TIMEOUT 0x0CU -typedef struct _ring_buff_t +typedef struct _uart_interrupt_context { - size_t head; - size_t tail; - size_t length; - char ring_buff[RING_BUFF_LEN]; -} ring_buff_t; + plic_irq_callback_t callback; + void *ctx; +} uart_interrupt_context_t; -ring_buff_t *ring_recv[3] = {NULL, NULL, NULL}; - -static int write_ringbuff(uint8_t channel, uint8_t rdata) +typedef struct _uart_context { - ring_buff_t *rb = ring_recv[channel]; + uart_interrupt_context_t uart_receive_context; + uart_interrupt_context_t uart_send_context; + uint32_t uart_num; + uint32_t send_fifo_intterupt : 2; + uint32_t receive_fifo_intterupt : 2; + uint32_t reserved:28; +} uart_context_t; - if (rb->length >= RING_BUFF_LEN) - { - return -1; - } - rb->ring_buff[rb->tail] = rdata; - rb->tail = (rb->tail + 1) % RING_BUFF_LEN; - atomic_add(&rb->length, 1); - return 0; -} +uart_context_t g_uart_context[3]; -static int read_ringbuff(uart_device_number_t channel, char *rdata, size_t len) +typedef struct _uart_dma_context { - ring_buff_t *rb = ring_recv[channel]; - size_t cnt = 0; - while ((len--) && rb->length) - { - *(rdata++) = rb->ring_buff[rb->head]; - rb->head = (rb->head + 1) % RING_BUFF_LEN; - atomic_add(&rb->length, -1); - cnt++; - } - return cnt; -} + uint8_t *buffer; + size_t buf_len; + uint32_t *malloc_buffer; + uart_interrupt_mode_t int_mode; + dmac_channel_number_t dmac_channel; + uart_device_number_t uart_num; + uart_interrupt_context_t uart_int_context; +} uart_dma_context_t; -static int on_irq_apbuart_recv(void *param) +uart_dma_context_t uart_send_dma_context[3]; +uart_dma_context_t uart_recv_dma_context[3]; + +volatile int g_write_count = 0; + +static int uart_irq_callback(void *param) { - int i = 0; - for (i = 0; i < 3; i++) + uart_context_t *uart_context = (uart_context_t *)param; + uint32_t v_channel = uart_context->uart_num; + uint8_t v_int_status = uart[v_channel]->IIR & 0xF; + + if(v_int_status == UART_INTERRUPT_SEND && g_write_count != 0) { - if (param == uart[i]) - break; + if(uart_context->uart_send_context.callback != NULL) + uart_context->uart_send_context.callback(uart_context->uart_send_context.ctx); } - - while (uart[i]->LSR & 1) + else if(v_int_status == UART_INTERRUPT_RECEIVE || v_int_status == UART_INTERRUPT_CHARACTER_TIMEOUT) { - write_ringbuff(i, ((uint8_t)(uart[i]->RBR & 0xff))); + if(uart_context->uart_receive_context.callback != NULL) + uart_context->uart_receive_context.callback(uart_context->uart_receive_context.ctx); } return 0; } static int uartapb_putc(uart_device_number_t channel, char c) { - while (!(uart[channel]->LSR & (1u << 6))) + while (uart[channel]->LSR & (1u << 5)) continue; uart[channel]->THR = c; return 0; @@ -101,27 +102,131 @@ int uartapb_getc(uart_device_number_t channel) return (char)(uart[channel]->RBR & 0xff); } +static int uart_dma_callback(void *ctx) +{ + uart_dma_context_t *v_uart_dma_context = (uart_dma_context_t *)ctx; + dmac_channel_number_t dmac_channel = v_uart_dma_context->dmac_channel; + dmac_free_irq(dmac_channel); + + if(v_uart_dma_context->int_mode == UART_RECEIVE) + { + size_t v_buf_len = v_uart_dma_context->buf_len; + uint8_t *v_buffer = v_uart_dma_context->buffer; + uint32_t *v_recv_buffer = v_uart_dma_context->malloc_buffer; + for(size_t i = 0; i < v_buf_len; i++) + { + v_buffer[i] = v_recv_buffer[i]; + } + } + free(v_uart_dma_context->malloc_buffer); + if(v_uart_dma_context->uart_int_context.callback) + v_uart_dma_context->uart_int_context.callback(v_uart_dma_context->uart_int_context.ctx); + return 0; +} int uart_receive_data(uart_device_number_t channel, char *buffer, size_t buf_len) { - return read_ringbuff(channel, buffer, buf_len); + size_t i = 0; + for(i = 0;i < buf_len; i++) + { + if(uart[channel]->LSR & 1) + buffer[i] = (char)(uart[channel]->RBR & 0xff); + else + break; + } + return i; +} + +void uart_receive_data_dma(uart_device_number_t uart_channel, dmac_channel_number_t dmac_channel, uint8_t *buffer, size_t buf_len) +{ + uint32_t *v_recv_buf = malloc(buf_len * sizeof(uint32_t)); + configASSERT(v_recv_buf!=NULL); + + sysctl_dma_select((sysctl_dma_channel_t)dmac_channel, SYSCTL_DMA_SELECT_UART1_RX_REQ + uart_channel * 2); + dmac_set_single_mode(dmac_channel, (void *)(&uart[uart_channel]->RBR), v_recv_buf, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_1, DMAC_TRANS_WIDTH_32, buf_len); + dmac_wait_done(dmac_channel); + for(uint32_t i = 0; i < buf_len; i++) + { + buffer[i] = (uint8_t)(v_recv_buf[i] & 0xff); + } +} + +void uart_receive_data_dma_irq(uart_device_number_t uart_channel, dmac_channel_number_t dmac_channel, + uint8_t *buffer, size_t buf_len, plic_irq_callback_t uart_callback, + void *ctx, uint32_t priority) +{ + uint32_t *v_recv_buf = malloc(buf_len * sizeof(uint32_t)); + configASSERT(v_recv_buf!=NULL); + + uart_recv_dma_context[uart_channel].dmac_channel = dmac_channel; + uart_recv_dma_context[uart_channel].uart_num = uart_channel; + uart_recv_dma_context[uart_channel].malloc_buffer = v_recv_buf; + uart_recv_dma_context[uart_channel].buffer = buffer; + uart_recv_dma_context[uart_channel].buf_len = buf_len; + uart_recv_dma_context[uart_channel].int_mode = UART_RECEIVE; + uart_recv_dma_context[uart_channel].uart_int_context.callback = uart_callback; + uart_recv_dma_context[uart_channel].uart_int_context.ctx = ctx; + + dmac_set_irq(dmac_channel, uart_dma_callback, &uart_recv_dma_context[uart_channel], priority); + sysctl_dma_select((sysctl_dma_channel_t)dmac_channel, SYSCTL_DMA_SELECT_UART1_RX_REQ + uart_channel * 2); + dmac_set_single_mode(dmac_channel, (void *)(&uart[uart_channel]->RBR), v_recv_buf, DMAC_ADDR_NOCHANGE, DMAC_ADDR_INCREMENT, + DMAC_MSIZE_1, DMAC_TRANS_WIDTH_32, buf_len); } int uart_send_data(uart_device_number_t channel, const char *buffer, size_t buf_len) { - int write = 0; - while (write < buf_len) + g_write_count = 0; + while (g_write_count < buf_len) { uartapb_putc(channel, *buffer++); - write++; + g_write_count++; } + return g_write_count; +} - return write; +void uart_send_data_dma(uart_device_number_t uart_channel, dmac_channel_number_t dmac_channel, const uint8_t *buffer, size_t buf_len) +{ + uint32_t *v_send_buf = malloc(buf_len * sizeof(uint32_t)); + configASSERT(v_send_buf!=NULL); + for(uint32_t i = 0; i < buf_len; i++) + v_send_buf[i] = buffer[i]; + sysctl_dma_select((sysctl_dma_channel_t)dmac_channel, SYSCTL_DMA_SELECT_UART1_TX_REQ + uart_channel * 2); + dmac_set_single_mode(dmac_channel, v_send_buf, (void *)(&uart[uart_channel]->THR), DMAC_ADDR_INCREMENT, DMAC_ADDR_NOCHANGE, + DMAC_MSIZE_1, DMAC_TRANS_WIDTH_32, buf_len); + dmac_wait_done(dmac_channel); + free((void *)v_send_buf); } -void uart_config(uart_device_number_t channel, uint32_t baud_rate, uart_bitwidth_t data_width, uart_stopbit_t stopbit, uart_parity_t parity) +void uart_send_data_dma_irq(uart_device_number_t uart_channel, dmac_channel_number_t dmac_channel, + const uint8_t *buffer, size_t buf_len, plic_irq_callback_t uart_callback, + void *ctx, uint32_t priority) { + uint32_t *v_send_buf = malloc(buf_len * sizeof(uint32_t)); + configASSERT(v_send_buf!=NULL); + + uart_send_dma_context[uart_channel] = (uart_dma_context_t) { + .dmac_channel = dmac_channel, + .uart_num = uart_channel, + .malloc_buffer = v_send_buf, + .buffer = (uint8_t *)buffer, + .buf_len = buf_len, + .int_mode = UART_SEND, + .uart_int_context.callback = uart_callback, + .uart_int_context.ctx = ctx, + }; + for(uint32_t i = 0; i < buf_len; i++) + v_send_buf[i] = buffer[i]; + dmac_set_irq(dmac_channel, uart_dma_callback, &uart_send_dma_context[uart_channel], priority); + sysctl_dma_select((sysctl_dma_channel_t)dmac_channel, SYSCTL_DMA_SELECT_UART1_TX_REQ + uart_channel * 2); + dmac_set_single_mode(dmac_channel, v_send_buf, (void *)(&uart[uart_channel]->THR), DMAC_ADDR_INCREMENT, DMAC_ADDR_NOCHANGE, + DMAC_MSIZE_1, DMAC_TRANS_WIDTH_32, buf_len); + +} + +void uart_configure(uart_device_number_t channel, uint32_t baud_rate, uart_bitwidth_t data_width, uart_stopbit_t stopbit, uart_parity_t parity) +{ configASSERT(data_width >= 5 && data_width <= 8); if (data_width == 5) { @@ -169,19 +274,71 @@ void uart_config(uart_device_number_t channel, uint32_t baud_rate, uart_bitwidth uart[channel]->LCR = (data_width - 5) | (stopbit_val << 2) | (parity_val << 3); uart[channel]->LCR &= ~(1u << 7); uart[channel]->MCR &= ~3; - uart[channel]->IER = 1; /*RX INT enable*/ + uart[channel]->IER |= 0x80; /* THRE */ + g_uart_context[channel].receive_fifo_intterupt = UART_RECEIVE_FIFO_1; + g_uart_context[channel].send_fifo_intterupt = UART_SEND_FIFO_8; + uart[channel]->FCR = UART_RECEIVE_FIFO_1 << 6 | UART_SEND_FIFO_8 << 4 | 0x1 << 3 | 0x1; } +void __attribute__((weak, alias("uart_configure"))) +uart_config(uart_device_number_t channel, uint32_t baud_rate, uart_bitwidth_t data_width, uart_stopbit_t stopbit, uart_parity_t parity); + void uart_init(uart_device_number_t channel) { sysctl_clock_enable(SYSCTL_CLOCK_UART1 + channel); +} + +void uart_set_send_trigger(uart_device_number_t channel, uart_send_trigger_t trigger) +{ + g_uart_context[channel].send_fifo_intterupt = trigger; + uart[channel]->FCR = g_uart_context[channel].receive_fifo_intterupt << 6 | g_uart_context[channel].send_fifo_intterupt | 0x1; +} - ring_buff_t *rb = malloc(sizeof(ring_buff_t)); - rb->head = 0; - rb->tail = 0; - rb->length = 0; - ring_recv[channel] = rb; - plic_irq_register(IRQN_UART1_INTERRUPT + channel, on_irq_apbuart_recv, (void *)uart[channel]); - plic_set_priority(IRQN_UART1_INTERRUPT + channel, 1); - plic_irq_enable(IRQN_UART1_INTERRUPT); +void uart_set_receive_trigger(uart_device_number_t channel, uart_receive_trigger_t trigger) +{ + g_uart_context[channel].receive_fifo_intterupt = trigger; + uart[channel]->FCR = g_uart_context[channel].receive_fifo_intterupt << 6 | g_uart_context[channel].send_fifo_intterupt | 0x1; } + +void uart_irq_register(uart_device_number_t channel, uart_interrupt_mode_t interrupt_mode, plic_irq_callback_t uart_callback, void *ctx, uint32_t priority) +{ + if(interrupt_mode == UART_SEND) + { + uart[channel]->IER |= 0x2; + g_uart_context[channel].uart_send_context.callback = uart_callback; + g_uart_context[channel].uart_send_context.ctx = ctx; + } + else if(interrupt_mode == UART_RECEIVE) + { + uart[channel]->IER |= 0x1; + g_uart_context[channel].uart_receive_context.callback = uart_callback; + g_uart_context[channel].uart_receive_context.ctx = ctx; + } + g_uart_context[channel].uart_num = channel; + plic_irq_disable(IRQN_UART1_INTERRUPT + channel); + plic_set_priority(IRQN_UART1_INTERRUPT + channel, priority); + plic_irq_register(IRQN_UART1_INTERRUPT + channel, uart_irq_callback, &g_uart_context[channel]); + plic_irq_enable(IRQN_UART1_INTERRUPT + channel); +} + +void uart_irq_unregister(uart_device_number_t channel, uart_interrupt_mode_t interrupt_mode) +{ + if(interrupt_mode == UART_SEND) + { + uart[channel]->IER &= ~(0x2); + g_uart_context[channel].uart_send_context.callback = NULL; + g_uart_context[channel].uart_send_context.ctx = NULL; + } + else if(interrupt_mode == UART_RECEIVE) + { + uart[channel]->IER &= ~(0x1); + g_uart_context[channel].uart_receive_context.callback = NULL; + g_uart_context[channel].uart_receive_context.ctx = NULL; + } + if(uart[channel]->IER == 0) + { + plic_irq_disable(IRQN_UART1_INTERRUPT + channel); + plic_irq_unregister(IRQN_UART1_INTERRUPT + channel); + } +} + diff --git a/lib/drivers/uarths.c b/lib/drivers/uarths.c index c935119..ac199f4 100755 --- a/lib/drivers/uarths.c +++ b/lib/drivers/uarths.c @@ -21,6 +21,76 @@ volatile uarths_t *const uarths = (volatile uarths_t *)UARTHS_BASE_ADDR; +typedef struct _uarths_context +{ + plic_irq_callback_t callback; + void *ctx; + uarths_interrupt_mode_t uarths_interrupt_mode; +} uarths_context_t; + +uarths_context_t g_uarths_context; + +uarths_interrupt_mode_t uarths_get_interrupt_mode(void) +{ + uint32_t v_rx_interrupt = uarths->ip.rxwm; + uint32_t v_tx_interrupt = uarths->ip.txwm; + return (v_rx_interrupt << 1) | v_tx_interrupt; +} + +int uarths_irq_callback(void *ctx) +{ + uarths_context_t *uart_context = (uarths_context_t *)ctx; + + if(uart_context->callback) + uart_context->callback(uart_context->ctx); + return 0; +} + +void uarths_set_interrupt_cnt(uarths_interrupt_mode_t interrupt_mode, uint8_t cnt) +{ + switch(interrupt_mode) + { + case UARTHS_SEND: + uarths->txctrl.txcnt = cnt; + break; + case UARTHS_RECEIVE: + uarths->rxctrl.rxcnt = cnt; + break; + case UARTHS_SEND_RECEIVE: + default: + uarths->txctrl.txcnt = cnt; + uarths->rxctrl.rxcnt = cnt; + break; + } +} + +void uarths_set_irq(uarths_interrupt_mode_t interrupt_mode, plic_irq_callback_t uarths_callback, void *ctx, uint32_t priority) +{ + g_uarths_context.callback = uarths_callback; + g_uarths_context.ctx = ctx; + + switch(interrupt_mode) + { + case UARTHS_SEND: + uarths->ie.txwm = 1; + uarths->ie.rxwm = 0; + break; + case UARTHS_RECEIVE: + uarths->ie.txwm = 0; + uarths->ie.rxwm = 1; + break; + default: + uarths->ie.txwm = 1; + uarths->ie.rxwm = 1; + break; + } + g_uarths_context.uarths_interrupt_mode = interrupt_mode; + + plic_set_priority(IRQN_UARTHS_INTERRUPT, priority); + plic_irq_register(IRQN_UARTHS_INTERRUPT, uarths_irq_callback, &g_uarths_context); + plic_irq_enable(IRQN_UARTHS_INTERRUPT); +} + static inline int uarths_putc(char c) { while (uarths->txdata.full) @@ -30,6 +100,31 @@ static inline int uarths_putc(char c) return 0; } +size_t uarths_receive_data(uint8_t *buf, size_t buf_len) +{ + size_t i; + for(i = 0; i < buf_len; i++) + { + uarths_rxdata_t recv = uarths->rxdata; + if(recv.empty) + break; + else + buf[i] = (recv.data & 0xFF); + } + return i; +} + +size_t uarths_send_data(const uint8_t *buf, size_t buf_len) +{ + size_t write = 0; + while (write < buf_len) + { + uarths_putc(*buf++); + write++; + } + return write; +} + int uarths_getc(void) { /* while not empty */ @@ -70,3 +165,12 @@ void uarths_init(void) uarths->ie.txwm = 0; uarths->ie.rxwm = 1; } + +void uarths_config(uint32_t baud_rate, uarths_stopbit_t stopbit) +{ + uint32_t freq = sysctl_clock_get_freq(SYSCTL_CLOCK_CPU); + uint16_t div = freq / baud_rate - 1; + uarths->div.div = div; + uarths->txctrl.nstop = stopbit; +} + diff --git a/lib/drivers/wdt.c b/lib/drivers/wdt.c index b99edd3..02bb07b 100755 --- a/lib/drivers/wdt.c +++ b/lib/drivers/wdt.c @@ -77,15 +77,14 @@ void wdt_clear_interrupt(wdt_device_number_t id) void wdt_start(wdt_device_number_t id, uint64_t time_out_ms, plic_irq_callback_t on_irq) { - wdt_disable(id); - wdt_clear_interrupt(id); - plic_irq_register(id ? IRQN_WDT1_INTERRUPT : IRQN_WDT0_INTERRUPT, on_irq, NULL); - plic_set_priority(id ? IRQN_WDT1_INTERRUPT : IRQN_WDT0_INTERRUPT, 1); - plic_irq_enable(id ? IRQN_WDT1_INTERRUPT : IRQN_WDT0_INTERRUPT); - sysctl_reset(id ? SYSCTL_RESET_WDT1 : SYSCTL_RESET_WDT0); sysctl_clock_set_threshold(id ? SYSCTL_THRESHOLD_WDT1 : SYSCTL_THRESHOLD_WDT0, 0); sysctl_clock_enable(id ? SYSCTL_CLOCK_WDT1 : SYSCTL_CLOCK_WDT0); + + plic_set_priority(id ? IRQN_WDT1_INTERRUPT : IRQN_WDT0_INTERRUPT, 1); + plic_irq_enable(id ? IRQN_WDT1_INTERRUPT : IRQN_WDT0_INTERRUPT); + plic_irq_register(id ? IRQN_WDT1_INTERRUPT : IRQN_WDT0_INTERRUPT, on_irq, NULL); + wdt_response_mode(id, WDT_CR_RMOD_INTERRUPT); uint8_t m_top = wdt_get_top(id, time_out_ms); wdt_set_timeout(id, m_top); diff --git a/logo/deepvision_log.jpg b/logo/deepvision_log.jpg new file mode 100755 index 0000000000000000000000000000000000000000..89e633f1397ae59611c862349297197b43abc197 GIT binary patch literal 227459 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 AzW@LL literal 0 HcmV?d00001 diff --git a/src/openmv/main/main.c b/src/openmv/main/main.c index 6fb973a..2026c82 100755 --- a/src/openmv/main/main.c +++ b/src/openmv/main/main.c @@ -18,9 +18,8 @@ extern void mpy_main(void); //extern int dvp_ov_main(void); int main() { - uint64_t core = current_coreid(); //printf("Core %ld Hello world\n", core); - mpy_main(); + mpy_main(); //dvp_ov_main(); while(1); } diff --git a/src/openmv/src/micropython/lib/utils/pyexec.c b/src/openmv/src/micropython/lib/utils/pyexec.c index 3515c30..d8dc60b 100755 --- a/src/openmv/src/micropython/lib/utils/pyexec.c +++ b/src/openmv/src/micropython/lib/utils/pyexec.c @@ -94,6 +94,7 @@ STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input mp_raise_msg(&mp_type_RuntimeError, "script compilation not supported"); #endif } + // execute code mp_hal_set_interrupt_char(CHAR_CTRL_C); // allow ctrl-C to interrupt us start = mp_hal_ticks_ms(); diff --git a/src/openmv/src/micropython/mpy-cross/mpconfigport.h b/src/openmv/src/micropython/mpy-cross/mpconfigport.h index 66da53e..8a7bab0 100755 --- a/src/openmv/src/micropython/mpy-cross/mpconfigport.h +++ b/src/openmv/src/micropython/mpy-cross/mpconfigport.h @@ -59,7 +59,7 @@ #define MICROPY_ERROR_REPORTING (MICROPY_ERROR_REPORTING_DETAILED) #define MICROPY_WARNINGS (1) -#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE) +#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT) #define MICROPY_CPYTHON_COMPAT (1) #define MICROPY_USE_INTERNAL_PRINTF (0) @@ -97,8 +97,8 @@ typedef unsigned __int64 mp_uint_t; #else // These are definitions for machines where sizeof(int) == sizeof(void*), // regardless for actual size. -typedef long mp_int_t; // must be pointer size -typedef unsigned long mp_uint_t; // must be pointer size +typedef int mp_int_t; // must be pointer size +typedef unsigned int mp_uint_t; // must be pointer size #endif // Cannot include , as it may lead to symbol name clashes diff --git a/src/openmv/src/micropython/ports/k210-standalone/Makefile b/src/openmv/src/micropython/ports/k210-standalone/Makefile index 0c11641..fd808dd 100755 --- a/src/openmv/src/micropython/ports/k210-standalone/Makefile +++ b/src/openmv/src/micropython/ports/k210-standalone/Makefile @@ -81,6 +81,7 @@ BOTH_FLAGS = -mcmodel=medany \ -fstrict-volatile-bitfields \ -fno-zero-initialized-in-bss \ -Os \ + -ffloat-store \ -ggdb \ -Wall \ -Werror=all \ @@ -99,6 +100,7 @@ BOTH_FLAGS = -mcmodel=medany \ -Wno-pointer-to-int-cast \ -Wno-strict-aliasing \ -Wno-implicit-fallthrough \ + -Wno-error=stringop-truncation \ -Linclude/ CFLAGS_RV64_K210 = -lm \ diff --git a/src/openmv/src/micropython/ports/k210-standalone/Makefile_back b/src/openmv/src/micropython/ports/k210-standalone/Makefile_back new file mode 100755 index 0000000..914c07f --- /dev/null +++ b/src/openmv/src/micropython/ports/k210-standalone/Makefile_back @@ -0,0 +1,377 @@ +.PHONY: clean_all build +include ../../py/mkenv.mk + +CROSS_COMPILE=riscv64-unknown-elf- +SDK_PATH ?= ../../../../../.. +MPY_MOD_PATH ?= mpy-mod +FS_PORT_PATH ?= spiffs-port +BOARD_DRIVERS_PATH ?= board-drivers + +#hutu +MPY_ROOT_PATH ?= ../.. +OMV_MOD_PATH ?= ../../../omv + +# qstr definitions (must come before including py.mk) +QSTR_DEFS = qstrdefsport.h + +FROZEN_MPY_DIR ?= buildin-py + +# include py core make definitionsvers/uarths.c +include $(TOP)/py/py.mk + +# mpy header +INC += -I. +INC += -I$(TOP) +INC += -I$(BUILD) +INC += -Iconfig +INC += -Iinclude +INC += -I$(TOP)/lib/timeutils +INC += -I$(SDK_PATH)/lib/bsp/include +INC += -I$(SDK_PATH)/lib/drivers/include +INC += -I$(SDK_PATH)/lib/syslog/include +INC += -I$(SDK_PATH)/lib/math + +# mpy mod header +INC += -I$(MPY_MOD_PATH)/machine/include +INC += -I$(MPY_MOD_PATH)/uos/include + +# board drivers header +INC += -I$(BOARD_DRIVERS_PATH)/include + +# spiffs ports header +INC += -Ispiffs-port/include + +# sdk header +INC += -I$(SDK_PATH)/lib/bsp/include +INC += -I$(SDK_PATH)/lib/drivers/include +INC += -I$(SDK_PATH)/lib/utils/include +INC += -I$(SDK_PATH)/lib/math + +# spiffs header +INC += -Ispiffs/src +INC += -Ispiffs/src/default + +#hutu omv header +INC += -I$(OMV_MOD_PATH) +INC += -I$(OMV_MOD_PATH)/py +INC += -I$(OMV_MOD_PATH)/nn +INC += -I$(OMV_MOD_PATH)/img +INC += -I$(OMV_MOD_PATH)/boards/OPENMV3 + +INC += -I$(MPY_ROOT_PATH)/py +INC += -I$(MPY_ROOT_PATH)//lib/mp-readline +INC += -I$(MPY_ROOT_PATH)//lib/oofatfs + +# compile option +C_DEFINES ?= +C_DEFINES += -DCONFIG_LOG_COLORS \ + -DCONFIG_LOG_ENABLE \ + -DCONFIG_LOG_LEVEL=LOG_VERBOSE \ + -DDEBUG=1 \ + -DFPGA_PLL \ + -DLOG_KERNEL \ + -D__riscv64 + +ARCH_FLAGS = -march=rv64imafdc -mabi=lp64d + +BOTH_FLAGS = -mcmodel=medany \ + -fno-common \ + -ffunction-sections \ + -fdata-sections \ + -fstrict-volatile-bitfields \ + -fno-zero-initialized-in-bss \ + -O1 \ + -ggdb \ + -Wall \ + -Werror=all \ + -Wno-error=unused-function \ + -Wno-error=unused-but-set-variable \ + -Wno-error=unused-variable \ + -Wno-error=deprecated-declarations \ + -Wextra \ + -Werror=frame-larger-than=65536 \ + -Wno-unused-parameter \ + -Wno-sign-compare \ + -Wno-error=missing-braces \ + -Wno-error=return-type \ + -Wno-error=pointer-sign \ + -Wno-missing-braces \ + -Wno-pointer-to-int-cast \ + -Wno-strict-aliasing \ + -Wno-implicit-fallthrough \ + -Wno-error=stringop-truncation \ + -fcombine-stack-adjustments \ + -fcompare-elim \ + -fcprop-registers \ + -fdefer-pop \ + -fforward-propagate \ + -fguess-branch-probability \ + -fif-conversion \ + -fif-conversion2 \ + -finline-functions-called-once \ + -fipa-profile \ + -fipa-pure-const \ + -fipa-reference \ + -fmove-loop-invariants \ + -fomit-frame-pointer \ + -freorder-blocks \ + -fsection-anchors \ + -fshrink-wrap \ + -fsplit-wide-types \ + -fssa-phiopt \ + -ftree-bit-ccp \ + -ftree-builtin-call-dce \ + -ftree-ccp \ + -ftree-ch \ + -ftree-coalesce-vars \ + -ftree-copy-prop \ + -ftree-dce \ + -ftree-dominator-opts \ + -ftree-dse \ + -ftree-fre \ + -ftree-pta \ + -ftree-sink \ + -ftree-slsr \ + -ftree-sra \ + -ftree-ter \ + -Linclude/ + +CFLAGS_RV64_K210 = -lm \ + -mfdiv \ + -mdiv \ + -std=gnu11 \ + -Wno-old-style-declaration \ + -g \ + $(C_DEFINES) \ + $(BOTH_FLAGS) + +CFLAGS = $(INC) \ + -std=gnu11 \ + $(CFLAGS_RV64_K210) \ + -g -Wno-error=unused-label \ + -Wno-error=unused-const-variable= \ + -Wno-error=format= \ + -Wno-error=parentheses + + +CFLAGS_MOD += $(C_DEFINES) +CFLAGS += $(CFLAGS_MOD) + +LDPPFLAGS += \ + -DDUSE_BINUTILS_2_19=1 +LDFLAGS += --gc-sections + +LDFLAGS = -lm $(BOTH_FLAGS) -T $(SDK_PATH)/lds/kendryte.ld \ + -nostartfiles \ + -static \ + -Wl,--gc-sections \ + -Wl,-static \ + -Wl,--start-group \ + -Wl,--whole-archive \ + -Wl,--no-whole-archive \ + -Wl,--end-group \ + -Wl,-EL + +LIBS = + +MODULES_SRC_C= \ + $(MPY_MOD_PATH)/uos/moduos.c \ + $(MPY_MOD_PATH)/machine/modmachine.c \ + $(MPY_MOD_PATH)/machine/machine_uarths.c\ + $(MPY_MOD_PATH)/machine/machine_uart.c \ + $(MPY_MOD_PATH)/machine/machine_pin.c \ + $(MPY_MOD_PATH)/machine/machine_pwm.c \ + $(MPY_MOD_PATH)/machine/machine_timer.c\ + $(MPY_MOD_PATH)/machine/machine_nt35310.c\ + $(MPY_MOD_PATH)/machine/machine_ov5640.c\ + $(MPY_MOD_PATH)/machine/machine_burner.c\ + $(MPY_MOD_PATH)/machine/machine_face_detect.c\ + $(MPY_MOD_PATH)/machine/machine_spiflash.c\ + $(MPY_MOD_PATH)/machine/machine_zmodem.c\ + $(MPY_MOD_PATH)/machine/machine_fpioa.c\ + $(MPY_MOD_PATH)/machine/machine_ws2812.c\ + $(MPY_MOD_PATH)/machine/machine_led.c + +LIB_SRC_C ?= +MICROPY_FATFS=1 +ifeq ($(MICROPY_FATFS), 1) +LIB_SRC_C += \ +lib/oofatfs/ff.c \ +lib/oofatfs/option/unicode.c +endif + +FS_SRC_C = \ + $(FS_PORT_PATH)/spiffs-port.c \ + spiffs/src/spiffs_cache.c \ + spiffs/src/spiffs_check.c \ + spiffs/src/spiffs_gc.c \ + spiffs/src/spiffs_hydrogen.c \ + spiffs/src/spiffs_nucleus.c \ + file_io.c + +BOARD_DRIVERS = $(BOARD_DRIVERS_PATH)/lcd.c\ + $(BOARD_DRIVERS_PATH)/nt35310.c\ + $(BOARD_DRIVERS_PATH)/ov2640.c\ + $(BOARD_DRIVERS_PATH)/ov5640.c\ + $(BOARD_DRIVERS_PATH)/w25qxx.c\ + $(BOARD_DRIVERS_PATH)/face_detect.c\ + $(BOARD_DRIVERS_PATH)/region_layer.c\ + $(BOARD_DRIVERS_PATH)/uart_core.c\ + $(BOARD_DRIVERS_PATH)/ws2812b.c\ + $(BOARD_DRIVERS_PATH)/systick.c\ + $(BOARD_DRIVERS_PATH)/led.c + +MPY_LIB_SRC = lib/timeutils/timeutils.c \ + lib/utils/sys_stdio_mphal.c + +#OMV_SRC_C = \ + $(OMV_MOD_PATH)/xalloc.c \ + $(OMV_MOD_PATH)fb_alloc.c \ + $(OMV_MOD_PATH)umm_malloc.c \ + $(OMV_MOD_PATH)ff_wrapper.c \ + $(OMV_MOD_PATH)ini.c \ + $(OMV_MOD_PATH)framebuffer.c \ + $(OMV_MOD_PATH)array.c \ + $(OMV_MOD_PATH)cambus.c \ + $(OMV_MOD_PATH)ov9650.c \ + $(OMV_MOD_PATH)ov2640.c \ + $(OMV_MOD_PATH)ov7725.c \ + $(OMV_MOD_PATH)mt9v034.c \ + $(OMV_MOD_PATH)lepton.c \ + $(OMV_MOD_PATH)sensor.c \ + $(OMV_MOD_PATH)soft_i2c.c \ + $(OMV_MOD_PATH)mutex.c \ + $(OMV_MOD_PATH)trace.c + +OMV_SRC_C += \ + $(OMV_MOD_PATH)/xalloc.c \ + $(OMV_MOD_PATH)/fb_alloc.c \ + $(OMV_MOD_PATH)/umm_malloc.c \ + $(OMV_MOD_PATH)/ff_wrapper.c \ + $(OMV_MOD_PATH)/ini.c \ + $(OMV_MOD_PATH)/framebuffer.c \ + $(OMV_MOD_PATH)/array.c \ + $(OMV_MOD_PATH)/mutex.c \ + $(OMV_MOD_PATH)/trace.c + +OMV_SRC_C += \ + $(OMV_MOD_PATH)/img/binary.c \ + $(OMV_MOD_PATH)/img/blob.c \ + $(OMV_MOD_PATH)/img/clahe.c \ + $(OMV_MOD_PATH)/img/draw.c \ + $(OMV_MOD_PATH)/img/qrcode.c \ + $(OMV_MOD_PATH)/img/apriltag.c \ + $(OMV_MOD_PATH)/img/dmtx.c \ + $(OMV_MOD_PATH)/img/zbar.c \ + $(OMV_MOD_PATH)/img/fmath.c \ + $(OMV_MOD_PATH)/img/fsort.c \ + $(OMV_MOD_PATH)/img/qsort.c \ + $(OMV_MOD_PATH)/img/fft.c \ + $(OMV_MOD_PATH)/img/filter.c \ + $(OMV_MOD_PATH)/img/haar.c \ + $(OMV_MOD_PATH)/img/imlib.c \ + $(OMV_MOD_PATH)/img/collections.c \ + $(OMV_MOD_PATH)/img/stats.c \ + $(OMV_MOD_PATH)/img/integral.c \ + $(OMV_MOD_PATH)/img/integral_mw.c \ + $(OMV_MOD_PATH)/img/kmeans.c \ + $(OMV_MOD_PATH)/img/lab_tab.c \ + $(OMV_MOD_PATH)/img/xyz_tab.c \ + $(OMV_MOD_PATH)/img/yuv_tab.c \ + $(OMV_MOD_PATH)/img/rainbow_tab.c \ + $(OMV_MOD_PATH)/img/rgb2rgb_tab.c \ + $(OMV_MOD_PATH)/img/invariant_tab.c \ + $(OMV_MOD_PATH)/img/mathop.c \ + $(OMV_MOD_PATH)/img/pool.c \ + $(OMV_MOD_PATH)/img/point.c \ + $(OMV_MOD_PATH)/img/rectangle.c \ + $(OMV_MOD_PATH)/img/bmp.c \ + $(OMV_MOD_PATH)/img/ppm.c \ + $(OMV_MOD_PATH)/img/gif.c \ + $(OMV_MOD_PATH)/img/mjpeg.c \ + $(OMV_MOD_PATH)/img/fast.c \ + $(OMV_MOD_PATH)/img/agast.c \ + $(OMV_MOD_PATH)/img/orb.c \ + $(OMV_MOD_PATH)/img/template.c \ + $(OMV_MOD_PATH)/img/phasecorrelation.c \ + $(OMV_MOD_PATH)/img/shadow_removal.c \ + $(OMV_MOD_PATH)/img/font.c \ + $(OMV_MOD_PATH)/img/jpeg.c \ + $(OMV_MOD_PATH)/img/lbp.c \ + $(OMV_MOD_PATH)/img/eye.c \ + $(OMV_MOD_PATH)/img/hough.c \ + $(OMV_MOD_PATH)/img/line.c \ + $(OMV_MOD_PATH)/img/lsd.c \ + $(OMV_MOD_PATH)/img/sincos_tab.c \ + $(OMV_MOD_PATH)/img/edge.c \ + $(OMV_MOD_PATH)/img/hog.c \ + $(OMV_MOD_PATH)/img/selective_search.c + +#OMV_SRC_C += \ + $(OMV_MOD_PATH)/nn/nn.c + + +#OMV_SRC_C += \ + $(OMV_MOD_PATH)/py/py_helper.c \ + $(OMV_MOD_PATH)/py/py_omv.c \ + $(OMV_MOD_PATH)/py/py_sensor.c \ + $(OMV_MOD_PATH)/py/py_image.c \ + $(OMV_MOD_PATH)/py/py_time.c \ + $(OMV_MOD_PATH)/py/py_lcd.c \ + $(OMV_MOD_PATH)/py/py_gif.c \ + $(OMV_MOD_PATH)/py/py_mjpeg.c \ + $(OMV_MOD_PATH)/py/py_cpufreq.c \ + $(OMV_MOD_PATH)/py/py_nn.c + +OMV_SRC_C += \ + $(OMV_MOD_PATH)/py/py_helper.c \ + $(OMV_MOD_PATH)/py/py_omv.c \ + $(OMV_MOD_PATH)/py/py_image.c \ + $(OMV_MOD_PATH)/py/py_gif.c \ + $(OMV_MOD_PATH)/py/py_mjpeg.c +SRC_C = \ + $(MODULES_SRC_C)\ + main.c \ + $(BOARD_DRIVERS) \ + $(MPY_LIB_SRC) \ + $(FS_SRC_C) \ + $(LIB_SRC_C) \ + $(OMV_SRC_C) + +PY_SRC_C = \ + help.c \ + lib/utils/stdout_helpers.c \ + lib/utils/interrupt_char.c \ + lib/utils/pyexec.c \ + lib/libc/string0.c \ + lib/mp-readline/readline.c + + +# List of sources for qstr extraction +SRC_QSTR += $(SRC_C) +# Append any auto-generated sources that are needed by sources listed in SRC_QSTR +SRC_QSTR_AUTO_DEPS += + +OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o)) $(addprefix $(BUILD)/, $(PY_SRC_C:.c=.o)) + +$(BUILD)/_frozen_mpy.c: frozentest.mpy $(BUILD)/genhdr/qstrdefs.generated.h + $(ECHO) "MISC freezing bytecode" + $(Q)$(TOP)/tools/mpy-tool.py -f -q $(BUILD)/genhdr/qstrdefs.preprocessed.h -mlongint-impl=none $< > $@ + +all: micropython + +micropython: $(OBJ) + $(AR) r micropython.a $(OBJ) + + +clean: clean_py + rm -rf *.a + make -C ../../mpy-cross clean + rm -rf ../../mpy-cross/build + rm -rf ../../omv + + + +include $(TOP)/py/mkrules.mk + + diff --git a/src/openmv/src/micropython/ports/k210-standalone/board-drivers/include/ov5640cfg.h b/src/openmv/src/micropython/ports/k210-standalone/board-drivers/include/ov5640cfg.h index df43ce9..8116627 100755 --- a/src/openmv/src/micropython/ports/k210-standalone/board-drivers/include/ov5640cfg.h +++ b/src/openmv/src/micropython/ports/k210-standalone/board-drivers/include/ov5640cfg.h @@ -123,7 +123,22 @@ const uint16_t ov5640_init_reg_tbl[][2]= {0x4837, 0x16}, // MIPI global timing {0x3824, 0x04}, // PCLK manual divider {0x5001, 0xA3}, // SDE on, scale on, UV average off, color matrix on, AWB on +#if 1 {0x3503, 0x00}, // AEC/AGC on +#else //deepvision + {0x3503, 0x02}, // AEC/AGC on + {0x3500, 0xff}, + {0x3501, 0xff}, + {0x3502, 0xff}, + + {0x350a, 0x00}, + {0x350b, 0x7f}, + {0x3212, 0x03}, + {0x5586, 0x7f}, + {0x5585, 0x2c}, + {0x3212, 0x1c}, + {0x3212, 0xa3}, +#endif {0x440e, 0x00}, {0x5000, 0xa7}, // Lenc on, raw gamma on, BPC on, WPC on, CIP on {0x3a0f, 0x30}, // stable range in high @@ -251,7 +266,7 @@ const uint16_t ov5640_init_reg_tbl[][2]= {0x5387, 0x7c}, // CMX7 for V {0x5388, 0x6c}, // CMX8 for V {0x5389, 0x10}, // CMX9 for V - {0x538a, 0x01}, // sign[9] + {0x538a, 0x01}, // sign[9] {0x538b, 0x98}, // sign[8:1] {0x5580, 0x06}, // saturation on, bit[1] {0x5583, 0x40}, diff --git a/src/openmv/src/micropython/ports/k210-standalone/board-drivers/ov2640.c b/src/openmv/src/micropython/ports/k210-standalone/board-drivers/ov2640.c index 5f0228f..f89e33e 100755 --- a/src/openmv/src/micropython/ports/k210-standalone/board-drivers/ov2640.c +++ b/src/openmv/src/micropython/ports/k210-standalone/board-drivers/ov2640.c @@ -233,7 +233,7 @@ int ov2640_init(void) dvp_init(8); dvp_io_init(); dvp->cmos_cfg |= DVP_CMOS_CLK_DIV(1) | DVP_CMOS_CLK_ENABLE; - dvp_reset(); + //dvp_reset(); dvp_enable_burst(); dvp->dvp_cfg |= (DVP_CFG_AI_OUTPUT_ENABLE | DVP_CFG_DISPLAY_OUTPUT_ENABLE); printf("Enter the ov2640_init\n"); diff --git a/src/openmv/src/micropython/ports/k210-standalone/board-drivers/uart_core.c b/src/openmv/src/micropython/ports/k210-standalone/board-drivers/uart_core.c index 5194e50..0b00f03 100755 --- a/src/openmv/src/micropython/ports/k210-standalone/board-drivers/uart_core.c +++ b/src/openmv/src/micropython/ports/k210-standalone/board-drivers/uart_core.c @@ -7,7 +7,7 @@ #include "extmod/misc.h" #include "lib/utils/pyexec.h" -#include "uart.h" + #include "uarths.h" /* diff --git a/src/openmv/src/micropython/ports/k210-standalone/buildin-py/boot.py b/src/openmv/src/micropython/ports/k210-standalone/buildin-py/boot.py index 3ffaa18..f0e255d 100755 --- a/src/openmv/src/micropython/ports/k210-standalone/buildin-py/boot.py +++ b/src/openmv/src/micropython/ports/k210-standalone/buildin-py/boot.py @@ -41,24 +41,24 @@ # nop = img.show() #example2: find circles -#roi=(80,60,160,120) #roi为中心区域160X120范围 +#roi=(80,60,160,120) #roi?????160X120?? #while(True): # img = sensor.snapshot() # for c in img.find_circles(roi): # img.draw_circle(c.x(),c.y(),c.r(),color=(255,0,0)) # print(c) -# dr = img.draw_rectangle(roi) #画出ROI +# dr = img.draw_rectangle(roi) #??ROI # nop = img.show() #examle3: find rects -#roi=(80,60,160,120) #roi为中心区域160X120范围 +#roi=(80,60,160,120) #roi?????160X120?? #while(True): # img = sensor.snapshot() -# for r in img.find_rects(threshold = 10000 , roi=roi): +# for r in img.find_rects(threshold = 18000 , roi=roi): # img.draw_rectangle(r.rect(), color = (255, 0, 0)) # for p in r.corners(): img.draw_circle(p[0], p[1], 5, color = (0, 255, 0)) # print(r) -# dr = img.draw_rectangle(roi) #画出ROI +# dr = img.draw_rectangle(roi) #??ROI # nop = img.show() #examle4: face detect @@ -71,6 +71,7 @@ img.draw_rectangle(r,color=(0,255,255)) print(r) nop = img.show() + #examle5: data matrix #while(True): # img = sensor.snapshot() diff --git a/src/openmv/src/micropython/ports/k210-standalone/mpy-mod/machine/machine_uarths.c b/src/openmv/src/micropython/ports/k210-standalone/mpy-mod/machine/machine_uarths.c index 8c962fa..78d8942 100755 --- a/src/openmv/src/micropython/ports/k210-standalone/mpy-mod/machine/machine_uarths.c +++ b/src/openmv/src/micropython/ports/k210-standalone/mpy-mod/machine/machine_uarths.c @@ -33,7 +33,7 @@ #include "py/mperrno.h" #include "modmachine.h" -#include "uart.h" + #include "uarths.h" typedef struct _machine_uarths_obj_t { diff --git a/src/openmv/src/micropython/ports/k210-standalone/spiffs/afltests/100 b/src/openmv/src/micropython/ports/k210-standalone/spiffs/afltests/100 index 5336a71..6bb2239 100755 --- a/src/openmv/src/micropython/ports/k210-standalone/spiffs/afltests/100 +++ b/src/openmv/src/micropython/ports/k210-standalone/spiffs/afltests/100 @@ -1,15 +1,15 @@ -‰5S-C4 -d5rh -OlWkR#C4 -d5rh -O4W4R4O4W4êC4#d5rh -O4d5rh -OlWkRh -O4Y5rh -OlWkR4C44R45ŠË -O4W4ê4C4C4 -O4O4W4R4O4W4êC4#d5rh -O4d5rh -W4R45rË -O4W4ê4#d5rh -rz +‰5S-C4 +d5rh +OlWkR#C4 +d5rh +O4W4R4O4W4êC4#d5rh +O4d5rh +OlWkRh +O4Y5rh +OlWkR4C44R45ŠË +O4W4ê4C4C4 +O4O4W4R4O4W4êC4#d5rh +O4d5rh +W4R45rË +O4W4ê4#d5rh +rz diff --git a/src/openmv/src/micropython/py/makeqstrdata.pyc b/src/openmv/src/micropython/py/makeqstrdata.pyc new file mode 100755 index 0000000000000000000000000000000000000000..fe88a16e28658c5f69f4b1224dcf1b24f26f29cf GIT binary patch literal 6541 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 NDPJrf#BblA^IzB?Zu$TK literal 0 HcmV?d00001 diff --git a/src/openmv/src/micropython/py/nlr.c b/src/openmv/src/micropython/py/nlr.c index 03d0157..fd92015 100755 --- a/src/openmv/src/micropython/py/nlr.c +++ b/src/openmv/src/micropython/py/nlr.c @@ -36,7 +36,6 @@ unsigned int nlr_push_tail(nlr_buf_t *nlr) asm("nlr_push_tail"); __attribute__((used)) unsigned int nlr_push_tail(nlr_buf_t *nlr); #endif #endif - unsigned int nlr_push_tail(nlr_buf_t *nlr) { nlr_buf_t **top = &MP_STATE_THREAD(nlr_top); nlr->prev = *top; diff --git a/src/openmv/src/micropython/tests/cmdline/repl_autocomplete.py.exp b/src/openmv/src/micropython/tests/cmdline/repl_autocomplete.py.exp index a43f0d5..7500298 100755 --- a/src/openmv/src/micropython/tests/cmdline/repl_autocomplete.py.exp +++ b/src/openmv/src/micropython/tests/cmdline/repl_autocomplete.py.exp @@ -1,14 +1,14 @@ -MicroPython \.\+ version -Use \.\+ ->>> # tests for autocompletion ->>> import sys ->>> not_exist. ->>> not_exist ->>> x = '123' ->>> 1, x.isdigit() -(1, True) ->>> i = str ->>> i.lower('ABC') -'abc' ->>> None. ->>> +MicroPython \.\+ version +Use \.\+ +>>> # tests for autocompletion +>>> import sys +>>> not_exist. +>>> not_exist +>>> x = '123' +>>> 1, x.isdigit() +(1, True) +>>> i = str +>>> i.lower('ABC') +'abc' +>>> None. +>>> diff --git a/src/openmv/src/micropython/tests/cmdline/repl_emacs_keys.py.exp b/src/openmv/src/micropython/tests/cmdline/repl_emacs_keys.py.exp index 9b2dee0..6102c19 100755 --- a/src/openmv/src/micropython/tests/cmdline/repl_emacs_keys.py.exp +++ b/src/openmv/src/micropython/tests/cmdline/repl_emacs_keys.py.exp @@ -1,19 +1,19 @@ -MicroPython \.\+ version -Use \.\+ ->>> # REPL tests of GNU-ish readline navigation ->>> # history buffer navigation ->>> 1 -1 ->>> 2 -2 ->>> 3 -3 ->>> 321 -1 ->>> 1323 -3 ->>> # input line motion ->>> t = 121 ->>> \.\+ -'foobar' ->>> +MicroPython \.\+ version +Use \.\+ +>>> # REPL tests of GNU-ish readline navigation +>>> # history buffer navigation +>>> 1 +1 +>>> 2 +2 +>>> 3 +3 +>>> 321 +1 +>>> 1323 +3 +>>> # input line motion +>>> t = 121 +>>> \.\+ +'foobar' +>>> diff --git a/src/openmv/src/omv/fb_alloc.c b/src/openmv/src/omv/fb_alloc.c index e41d915..28f28cb 100755 --- a/src/openmv/src/omv/fb_alloc.c +++ b/src/openmv/src/omv/fb_alloc.c @@ -38,7 +38,7 @@ void fb_alloc_mark() // Check if allocation overwrites the framebuffer pixels if (new_pointer < (char *) MAIN_FB_PIXELS()) { - /*hutu nlr_raise_for_fb_alloc_mark*/ + nlr_raise(mp_obj_new_exception_msg(&mp_type_MemoryError, "Out of fast Frame Buffer Stack Memory!" " Please reduce the resolution of the image you are running this algorithm on to bypass this issue!")); diff --git a/src/openmv/src/omv/ff_wrapper.c b/src/openmv/src/omv/ff_wrapper.c index 6036748..50dba01 100755 --- a/src/openmv/src/omv/ff_wrapper.c +++ b/src/openmv/src/omv/ff_wrapper.c @@ -12,7 +12,7 @@ #include "ff_wrapper.h" #define FF_MIN(x,y) (((x)<(y))?(x):(y)) -/*hutu*/ + static char *ffs_strerr(FRESULT res) { static const char *ffs_errors[]={ diff --git a/src/openmv/src/omv/img/dmtx.c b/src/openmv/src/omv/img/dmtx.c index 945f115..128c93f 100755 --- a/src/openmv/src/omv/img/dmtx.c +++ b/src/openmv/src/omv/img/dmtx.c @@ -6,9 +6,7 @@ #include #include "imlib.h" #ifdef IMLIB_ENABLE_DATAMATRICES -//#pragma GCC diagnostic push -//#pragma GCC diagnostic ignored "-Wunused-variable" -//#pragma GCC diagnostic ignored "-Wunused-but-set-variable" + //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -821,7 +819,6 @@ static int rHvY[] = #ifndef CALLBACK_FINAL #define CALLBACK_FINAL(a,b) #endif - extern char * dmtxVersion(void) { @@ -1324,8 +1321,7 @@ dmtxDecodeCreateDiagnostic(DmtxDecode *dec, int *totalBytes, int *headerBytes, i height = dmtxDecodeGetProp(dec, DmtxPropHeight); channelCount = dmtxImageGetProp(dec->image, DmtxPropChannelCount); - //style = 1; /* this doesn't mean anything yet , deleted for compile*/ - + /* Count width digits */ for(widthDigits = 0, i = width; i > 0; i /= 10) widthDigits++; @@ -2558,9 +2554,7 @@ dmtxRegionUpdateCorners(DmtxDecode *dec, DmtxRegion *reg, DmtxVector2 p00, { double xMax, yMax; double tx, ty, phi, shx, scx, scy, skx, sky; - //double dimOT, dimOR, dimTX, dimRX, ratio; - volatile double dimOT, dimOR, dimTX, dimRX; - double ratio; + double dimOT, dimOR, dimTX, dimRX, ratio; DmtxVector2 vOT, vOR, vTX, vRX, vTmp; DmtxMatrix3 m, mtxy, mphi, mshx, mscx, mscy, mscxy, msky, mskx; @@ -2652,11 +2646,11 @@ dmtxRegionUpdateCorners(DmtxDecode *dec, DmtxRegion *reg, DmtxVector2 p00, return DmtxPass; } - /** * * */ + extern DmtxPassFail dmtxRegionUpdateXfrms(DmtxDecode *dec, DmtxRegion *reg) { @@ -2808,6 +2802,7 @@ ReadModuleColor(DmtxDecode *dec, DmtxRegion *reg, int symbolRow, int symbolCol, * \param reg * \return DmtxPass | DmtxFail */ + static DmtxPassFail MatrixRegionFindSize(DmtxDecode *dec, DmtxRegion *reg) { @@ -6388,5 +6383,6 @@ void imlib_find_datamatrices(list_t *out, image_t *ptr, rectangle_t *roi, int ef if (ptr->bpp != IMAGE_BPP_GRAYSCALE) fb_free(); // grayscale_image; } -//#pragma GCC diagnostic pop + + #endif //IMLIB_ENABLE_DATAMATRICES diff --git a/src/openmv/src/omv/img/edge.c b/src/openmv/src/omv/img/edge.c index 7c1a21f..f1b2155 100755 --- a/src/openmv/src/omv/img/edge.c +++ b/src/openmv/src/omv/img/edge.c @@ -20,9 +20,7 @@ typedef struct gvec { void imlib_edge_simple(image_t *src, rectangle_t *roi, int low_thresh, int high_thresh) { - volatile float input_1 = 1.0f; - volatile float input_2 = 0.0f; - imlib_morph(src, 1, kernel_high_pass_3, input_1, input_2, false, 0, false, NULL); + imlib_morph(src, 1, kernel_high_pass_3, 1.0f, 0.0f, false, 0, false, NULL); list_t thresholds; list_init(&thresholds, sizeof(color_thresholds_list_lnk_data_t)); color_thresholds_list_lnk_data_t lnk_data; diff --git a/src/openmv/src/omv/img/fmath.c b/src/openmv/src/omv/img/fmath.c index c8b2255..9feb68d 100755 --- a/src/openmv/src/omv/img/fmath.c +++ b/src/openmv/src/omv/img/fmath.c @@ -137,6 +137,7 @@ int ALWAYS_INLINE fast_roundf(float x) return (int)roundf(x); } +#if 0 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstrict-aliasing" typedef union{ @@ -159,7 +160,7 @@ float fast_expf(float x) return *((float*)&packed); } #pragma GCC diagnostic pop - +#endif /* * From Hackers Delight: * This is a very approximate but very fast version of acbrt. It is just eight diff --git a/src/openmv/src/omv/img/haar.c b/src/openmv/src/omv/img/haar.c index d12c31a..abee8a3 100755 --- a/src/openmv/src/omv/img/haar.c +++ b/src/openmv/src/omv/img/haar.c @@ -104,7 +104,7 @@ array_t *imlib_detect_objects(image_t *image, cascade_t *cascade, rectangle_t *r imlib_integral_mw_alloc(&ssq, roi->w, cascade->window.h+1); // Iterate over the image pyramid - for(volatile float factor=1.0f; ; factor *= cascade->scale_factor) { + for(float factor=1.0f; ; factor *= cascade->scale_factor) { // Set the scaled width and height int szw = roi->w/factor; int szh = roi->h/factor; diff --git a/src/openmv/src/omv/img/imlib.c b/src/openmv/src/omv/img/imlib.c index 35b49f7..dd95dab 100755 --- a/src/openmv/src/omv/img/imlib.c +++ b/src/openmv/src/omv/img/imlib.c @@ -664,13 +664,12 @@ void imlib_save_image(image_t *img, const char *path, rectangle_t *roi, int qual // A simple algorithm for correcting lens distortion. // See http://www.tannerhelland.com/4743/simple-algorithm-correcting-lens-distortion/ -void imlib_lens_corr(image_t *img, float strength, float zoom_in) +void imlib_lens_corr(image_t *img, float strength, float zoom) { - volatile float zoom; - zoom = 1 / zoom_in; + zoom = 1 / zoom; int halfWidth = img->w / 2; int halfHeight = img->h / 2; - volatile float lens_corr_radius = strength / fast_sqrtf((img->w * img->w) + (img->h * img->h)); + float lens_corr_radius = strength / fast_sqrtf((img->w * img->w) + (img->h * img->h)); switch(img->bpp) { case IMAGE_BPP_BINARY: { @@ -683,15 +682,15 @@ void imlib_lens_corr(image_t *img, float strength, float zoom_in) uint32_t *row_ptr = IMAGE_COMPUTE_BINARY_PIXEL_ROW_PTR(img, y); int newY = y - halfHeight; int newY2 = newY * newY; - volatile float zoomedY = newY * zoom; + float zoomedY = newY * zoom; for (int x = 0, xx = img->w; x < xx; x++) { int newX = x - halfWidth; int newX2 = newX * newX; - volatile float zoomedX = newX * zoom; + float zoomedX = newX * zoom; - volatile float r = lens_corr_radius * fast_sqrtf(newX2 + newY2); - volatile float theta = (r < 0.0000001f) ? 1.0f : (fast_atanf(r) / r); + float r = lens_corr_radius * fast_sqrtf(newX2 + newY2); + float theta = (r < 0.0000001f) ? 1.0f : (fast_atanf(r) / r); int sourceX = halfWidth + fast_roundf(theta * zoomedX); int sourceY = halfHeight + fast_roundf(theta * zoomedY); @@ -716,15 +715,15 @@ void imlib_lens_corr(image_t *img, float strength, float zoom_in) uint8_t *row_ptr = IMAGE_COMPUTE_GRAYSCALE_PIXEL_ROW_PTR(img, y); int newY = y - halfHeight; int newY2 = newY * newY; - volatile float zoomedY = newY * zoom; + float zoomedY = newY * zoom; for (int x = 0, xx = img->w; x < xx; x++) { int newX = x - halfWidth; int newX2 = newX * newX; - volatile float zoomedX = newX * zoom; + float zoomedX = newX * zoom; - volatile float r = lens_corr_radius * fast_sqrtf(newX2 + newY2); - volatile float theta = (r < 0.0000001f) ? 1.0f : (fast_atanf(r) / r); + float r = lens_corr_radius * fast_sqrtf(newX2 + newY2); + float theta = (r < 0.0000001f) ? 1.0f : (fast_atanf(r) / r); int sourceX = halfWidth + fast_roundf(theta * zoomedX); int sourceY = halfHeight + fast_roundf(theta * zoomedY); @@ -749,15 +748,15 @@ void imlib_lens_corr(image_t *img, float strength, float zoom_in) uint16_t *row_ptr = IMAGE_COMPUTE_RGB565_PIXEL_ROW_PTR(img, y); int newY = y - halfHeight; int newY2 = newY * newY; - volatile float zoomedY = newY * zoom; + float zoomedY = newY * zoom; for (int x = 0, xx = img->w; x < xx; x++) { int newX = x - halfWidth; int newX2 = newX * newX; - volatile float zoomedX = newX * zoom; + float zoomedX = newX * zoom; - volatile float r = lens_corr_radius * fast_sqrtf(newX2 + newY2); - volatile float theta = (r < 0.0000001f) ? 1.0f : (fast_atanf(r) / r); + float r = lens_corr_radius * fast_sqrtf(newX2 + newY2); + float theta = (r < 0.0000001f) ? 1.0f : (fast_atanf(r) / r); int sourceX = halfWidth + fast_roundf(theta * zoomedX); int sourceY = halfHeight + fast_roundf(theta * zoomedY); diff --git a/src/openmv/src/omv/img/imlib.h b/src/openmv/src/omv/img/imlib.h index 1bb4777..b0d1e01 100755 --- a/src/openmv/src/omv/img/imlib.h +++ b/src/openmv/src/omv/img/imlib.h @@ -1323,7 +1323,7 @@ void imlib_remove_shadows(image_t *img, const char *path, image_t *other, int sc void imlib_chrominvar(image_t *img); void imlib_illuminvar(image_t *img); // Lens/Rotation Correction -void imlib_lens_corr(image_t *img, float strength, float zoom_in); +void imlib_lens_corr(image_t *img, float strength, float zoom); void imlib_rotation_corr(image_t *img, float x_rotation, float y_rotation, float z_rotation, float x_translation, float y_translation, float zoom); diff --git a/src/openmv/src/omv/img/phasecorrelation.c b/src/openmv/src/omv/img/phasecorrelation.c index 16b230e..15025dc 100755 --- a/src/openmv/src/omv/img/phasecorrelation.c +++ b/src/openmv/src/omv/img/phasecorrelation.c @@ -10,18 +10,18 @@ void imlib_logpolar_int(image_t *dst, image_t *src, rectangle_t *roi, bool linear, bool reverse) { - volatile float w_2 = roi->w / 2.0f; - volatile float h_2 = roi->h / 2.0f; - volatile float rho_scale = alt_fast_log(fast_sqrtf((w_2 * w_2) + (h_2 * h_2)), linear) / roi->h; - volatile float rho_scale_inv = 1.0 / rho_scale; - volatile float theta_scale = 360.0f / roi->w; - volatile float theta_scale_inv = 1.0 / theta_scale; + float w_2 = roi->w / 2.0f; + float h_2 = roi->h / 2.0f; + float rho_scale = alt_fast_log(fast_sqrtf((w_2 * w_2) + (h_2 * h_2)), linear) / roi->h; + float rho_scale_inv = 1.0 / rho_scale; + float theta_scale = 360.0f / roi->w; + float theta_scale_inv = 1.0 / theta_scale; switch (src->bpp) { case IMAGE_BPP_BINARY: { for (int y = 0, yy = roi->h; y < yy; y++) { uint32_t *row_ptr = IMAGE_COMPUTE_BINARY_PIXEL_ROW_PTR(dst, y); - volatile float rho = y * rho_scale; + float rho = y * rho_scale; for (int x = 0, xx = roi->w; x < xx; x++) { int sourceX, sourceY; @@ -31,9 +31,9 @@ void imlib_logpolar_int(image_t *dst, image_t *src, rectangle_t *roi, bool linea sourceX = fast_roundf((alt_fast_exp(rho, linear) * cos_table[theta]) + w_2); sourceY = fast_roundf((alt_fast_exp(rho, linear) * sin_table[theta]) + h_2); } else { - volatile float x_2 = x - w_2; - volatile float y_2 = y - h_2; - volatile float rho = alt_fast_log(fast_sqrtf((x_2 * x_2) + (y_2 * y_2)), linear); + float x_2 = x - w_2; + float y_2 = y - h_2; + float rho = alt_fast_log(fast_sqrtf((x_2 * x_2) + (y_2 * y_2)), linear); int theta = 630 - (x_2 ? fast_roundf(fast_atan2f(y_2, x_2) * (180 / M_PI)) : ((y_2 < 0) ? 270 : 90)); if (theta >= 360) theta -= 360; sourceX = fast_roundf(theta * theta_scale_inv); @@ -52,7 +52,7 @@ void imlib_logpolar_int(image_t *dst, image_t *src, rectangle_t *roi, bool linea case IMAGE_BPP_GRAYSCALE: { for (int y = 0, yy = roi->h; y < yy; y++) { uint8_t *row_ptr = IMAGE_COMPUTE_GRAYSCALE_PIXEL_ROW_PTR(dst, y); - volatile float rho = y * rho_scale; + float rho = y * rho_scale; for (int x = 0, xx = roi->w; x < xx; x++) { int sourceX, sourceY; @@ -62,9 +62,9 @@ void imlib_logpolar_int(image_t *dst, image_t *src, rectangle_t *roi, bool linea sourceX = fast_roundf((alt_fast_exp(rho, linear) * cos_table[theta]) + w_2); sourceY = fast_roundf((alt_fast_exp(rho, linear) * sin_table[theta]) + h_2); } else { - volatile float x_2 = x - w_2; - volatile float y_2 = y - h_2; - volatile float rho = alt_fast_log(fast_sqrtf((x_2 * x_2) + (y_2 * y_2)), linear); + float x_2 = x - w_2; + float y_2 = y - h_2; + float rho = alt_fast_log(fast_sqrtf((x_2 * x_2) + (y_2 * y_2)), linear); int theta = 630 - (x_2 ? fast_roundf(fast_atan2f(y_2, x_2) * (180 / M_PI)) : ((y_2 < 0) ? 270 : 90)); if (theta >= 360) theta -= 360; sourceX = fast_roundf(theta * theta_scale_inv); @@ -83,7 +83,7 @@ void imlib_logpolar_int(image_t *dst, image_t *src, rectangle_t *roi, bool linea case IMAGE_BPP_RGB565: { for (int y = 0, yy = roi->h; y < yy; y++) { uint16_t *row_ptr = IMAGE_COMPUTE_RGB565_PIXEL_ROW_PTR(dst, y); - volatile float rho = y * rho_scale; + float rho = y * rho_scale; for (int x = 0, xx = roi->w; x < xx; x++) { int sourceX, sourceY; @@ -93,9 +93,9 @@ void imlib_logpolar_int(image_t *dst, image_t *src, rectangle_t *roi, bool linea sourceX = fast_roundf((alt_fast_exp(rho, linear) * cos_table[theta]) + w_2); sourceY = fast_roundf((alt_fast_exp(rho, linear) * sin_table[theta]) + h_2); } else { - volatile float x_2 = x - w_2; - volatile float y_2 = y - h_2; - volatile float rho = alt_fast_log(fast_sqrtf((x_2 * x_2) + (y_2 * y_2)), linear); + float x_2 = x - w_2; + float y_2 = y - h_2; + float rho = alt_fast_log(fast_sqrtf((x_2 * x_2) + (y_2 * y_2)), linear); int theta = 630 - (x_2 ? fast_roundf(fast_atan2f(y_2, x_2) * (180 / M_PI)) : ((y_2 < 0) ? 270 : 90)); if (theta >= 360) theta -= 360; sourceX = IM_MIN(IM_MAX(fast_roundf(theta * theta_scale_inv), 0), (roi->w-1)); diff --git a/src/openmv/src/omv/img/qrcode.c b/src/openmv/src/omv/img/qrcode.c index 7d322a4..d6b78e6 100755 --- a/src/openmv/src/omv/img/qrcode.c +++ b/src/openmv/src/omv/img/qrcode.c @@ -4,7 +4,6 @@ */ #include "imlib.h" - #ifdef IMLIB_ENABLE_QRCODES //////////////////////////////////////////////////////////////////////////////////////////////////// //////// "quirc.h" diff --git a/src/openmv/src/omv/py/py_image.c b/src/openmv/src/omv/py/py_image.c index f228ccc..3f31dfa 100755 --- a/src/openmv/src/omv/py/py_image.c +++ b/src/openmv/src/omv/py/py_image.c @@ -29,6 +29,251 @@ //extern uint32_t g_lcd_gram0[38400] __attribute__((aligned(8))); +//datamatrix_565 +#if 1 +uint8_t test_image[320*240*2] = { +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,162,0,0,8,65,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,247,158,0,32,0,0,0,0,0,0,8,97,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,255,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,255,0,0,0,0,8,65,8,97,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,162,0,0,8,65,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,247,158,0,32,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,255,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,255,0,0,0,0,8,65,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,16,162,0,0,8,65,0,0,0,0,0,0,0,32,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,247,158,0,32,0,0,0,0,0,0,8,97,0,0,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,255,255,255,0,0,0,0,8,65,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,0,0,8,65,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,0,0,0,0,8,97,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,65,8,97,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,0,0,8,65,0,0,0,0,0,0,0,32,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,0,0,8,65,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,247,158,0,32,0,0,0,0,0,0,8,97,0,0,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,0,0,0,0,8,97,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,255,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,65,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,65,8,97,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,16,162,0,0,8,65,0,0,0,0,0,0,0,32,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,247,158,0,32,0,0,0,0,0,0,8,97,0,0,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,255,255,255,0,0,0,0,8,65,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,0,0,8,65,0,0,0,0,0,0,0,32,8,97,0,0,8,97,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,0,0,8,65,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,247,158,0,32,0,0,0,0,0,0,8,97,0,0,0,0,16,130,255,255,255,255,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,0,32,0,0,0,0,0,0,8,97,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,255,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,255,255,255,223,247,190,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,32,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,255,223,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,0,0,0,0,8,65,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,65,8,97,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,223,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,0,0,0,255,255,255,255,255,255,247,190,255,255,255,223,255,255,255,255,0,0,0,0,0,0,8,65,0,0,0,32,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,247,158,255,255,255,255,255,223,255,255,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,162,255,223,255,223,255,255,255,255,222,251,255,255,255,255,239,93,0,32,0,32,0,0,0,0,33,4,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,0,32,0,0,0,0,0,0,8,97,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,247,158,0,32,0,0,8,65,0,0,16,130,0,0,0,0,8,97,255,223,255,255,247,190,255,255,239,125,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,32,8,65,0,0,0,32,0,0,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,247,190,255,255,0,0,0,0,0,0,0,0,16,130,8,97,8,65,0,0,255,255,255,255,255,255,255,255,239,125,247,158,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,65,0,0,0,0,0,0,0,0,16,130,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,247,158,0,32,0,0,0,0,8,97,0,0,0,0,0,0,8,97,255,223,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,8,97,0,0,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,223,255,255,0,0,8,65,0,0,0,0,16,130,0,0,0,32,0,0,255,255,247,190,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,223,0,0,0,0,0,0,0,32,0,32,0,32,0,0,0,32,255,255,255,255,255,255,255,223,255,223,255,223,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,8,97,0,0,8,65,0,0,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,0,32,0,0,0,0,0,32,0,0,0,32,0,0,0,0,255,223,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,255,255,255,255,255,255,255,255,247,190,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,125,8,97,0,0,0,0,0,32,0,0,0,0,0,0,16,162,247,158,255,255,255,255,255,255,255,255,255,255,255,255,239,93,255,255,247,190,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,16,130,0,0,0,0,0,32,0,0,0,0,8,65,8,97,0,0,0,32,0,0,0,0,0,0,8,65,0,0,0,0,8,97,255,223,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,32,0,32,0,0,0,0,0,0,0,0,8,97,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,0,0,0,0,0,255,255,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,0,0,0,0,8,97,0,32,0,32,0,0,0,0,0,32,8,65,0,0,0,0,0,0,0,0,16,130,0,0,0,0,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,0,8,97,0,32,0,0,0,0,0,0,0,0,8,65,16,130,0,0,0,0,0,0,0,0,255,255,255,255,247,190,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,223,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,0,32,0,32,0,0,0,32,0,0,0,32,0,0,0,0,0,0,0,0,8,65,0,0,8,65,0,0,0,0,0,0,255,255,255,255,247,158,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,8,65,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,93,8,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,130,247,158,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,255,255,223,255,255,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,223,255,255,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,255,255,255,255,255,247,158,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,247,190,255,255,255,255,255,255,255,255,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,158,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,239,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,255,255,255,247,158,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,255,255,223,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,190,255,255,247,190,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,223,255,223,255,255,255,223,255,255,255,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +}; +#endif uint32_t g_framebuffer[FRAMEBUFFER_SIZE] __attribute__((aligned(8))); uint32_t g_display_buff[38400] __attribute__((aligned(8))); @@ -751,10 +996,8 @@ static mp_obj_t py_image_midpoint_pool(uint n_args, const mp_obj_t *args, mp_map PY_ASSERT_TRUE_MSG(y_div >= 1, "Height divisor must be greater than >= 1"); PY_ASSERT_TRUE_MSG(y_div <= arg_img->h, "Height divisor must be less than <= img height"); - volatile float input_1=0.5f; - volatile float input_2=0.0f; int bias = IM_MAX(IM_MIN(py_helper_keyword_float(n_args, args, 3, kw_args, - MP_OBJ_NEW_QSTR(MP_QSTR_bias), input_1) * 256, 256), input_2); + MP_OBJ_NEW_QSTR(MP_QSTR_bias), 0.5) * 256, 256), 0); image_t out_img; out_img.w = arg_img->w / x_div; @@ -786,10 +1029,8 @@ static mp_obj_t py_image_midpoint_pooled(uint n_args, const mp_obj_t *args, mp_m PY_ASSERT_TRUE_MSG(y_div >= 1, "Height divisor must be greater than >= 1"); PY_ASSERT_TRUE_MSG(y_div <= arg_img->h, "Height divisor must be less than <= img height"); - volatile float input_1=0.5f; - volatile float input_2=0.0f; int bias = IM_MAX(IM_MIN(py_helper_keyword_float(n_args, args, 3, kw_args, - MP_OBJ_NEW_QSTR(MP_QSTR_bias), input_1) * 256, 256), input_2); + MP_OBJ_NEW_QSTR(MP_QSTR_bias), 0.5) * 256, 256), 0); image_t out_img; out_img.w = arg_img->w / x_div; @@ -1472,13 +1713,11 @@ STATIC mp_obj_t py_image_draw_image(uint n_args, const mp_obj_t *args, mp_map_t int arg_cx = mp_obj_get_int(arg_vec[0]); int arg_cy = mp_obj_get_int(arg_vec[1]); - volatile float input_1 = 1.0f; - volatile float arg_x_scale = - py_helper_keyword_float(n_args, args, offset + 0, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_x_scale), input_1); + float arg_x_scale = + py_helper_keyword_float(n_args, args, offset + 0, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_x_scale), 1.0f); PY_ASSERT_TRUE_MSG((0.0f <= arg_x_scale), "Error: 0.0 <= x_scale!"); - volatile float input_2 = 1.0f; - volatile float arg_y_scale = - py_helper_keyword_float(n_args, args, offset + 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_y_scale), input_2); + float arg_y_scale = + py_helper_keyword_float(n_args, args, offset + 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_y_scale), 1.0f); PY_ASSERT_TRUE_MSG((0.0f <= arg_y_scale), "Error: 0.0 <= y_scale!"); image_t *arg_msk = py_helper_keyword_to_image_mutable_mask(n_args, args, offset + 2, kw_args); @@ -1526,23 +1765,20 @@ STATIC mp_obj_t py_image_flood_fill(uint n_args, const mp_obj_t *args, mp_map_t int arg_x_off = mp_obj_get_int(arg_vec[0]); int arg_y_off = mp_obj_get_int(arg_vec[1]); - volatile float input_1 = 0.05f; - volatile float arg_seed_threshold = - py_helper_keyword_float(n_args, args, offset + 0, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_seed_threshold), input_1); + float arg_seed_threshold = + py_helper_keyword_float(n_args, args, offset + 0, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_seed_threshold), 0.05); PY_ASSERT_TRUE_MSG((0.0f <= arg_seed_threshold) && (arg_seed_threshold <= 1.0f), "Error: 0.0 <= seed_threshold <= 1.0!"); - volatile float input_2 = 0.05f; - volatile float arg_floating_threshold = - py_helper_keyword_float(n_args, args, offset + 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_floating_threshold), input_2); + float arg_floating_threshold = + py_helper_keyword_float(n_args, args, offset + 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_floating_threshold), 0.05); PY_ASSERT_TRUE_MSG((0.0f <= arg_floating_threshold) && (arg_floating_threshold <= 1.0f), "Error: 0.0 <= floating_threshold <= 1.0!"); int arg_c = py_helper_keyword_color(arg_img, n_args, args, offset + 2, kw_args, -1); // White. - volatile float input_3 = false; - volatile bool arg_invert = - py_helper_keyword_float(n_args, args, offset + 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_invert), input_3); - volatile bool clear_background = - py_helper_keyword_float(n_args, args, offset + 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_clear_background), input_3); + bool arg_invert = + py_helper_keyword_float(n_args, args, offset + 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_invert), false); + bool clear_background = + py_helper_keyword_float(n_args, args, offset + 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_clear_background), false); image_t *arg_msk = py_helper_keyword_to_image_mutable_mask(n_args, args, offset + 5, kw_args); @@ -2123,9 +2359,8 @@ static mp_obj_t py_image_histeq(uint n_args, const mp_obj_t *args, mp_map_t *kw_ py_helper_arg_to_image_mutable(args[0]); bool arg_adaptive = py_helper_keyword_int(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_adaptive), false); - volatile float input_1 = -1; - volatile float arg_clip_limit = - py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_clip_limit), input_1); + float arg_clip_limit = + py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_clip_limit), -1); image_t *arg_msk = py_helper_keyword_to_image_mutable_mask(n_args, args, 3, kw_args); @@ -2167,9 +2402,8 @@ STATIC mp_obj_t py_image_median(uint n_args, const mp_obj_t *args, mp_map_t *kw_ py_helper_arg_to_image_mutable(args[0]); int arg_ksize = py_helper_arg_to_ksize(args[1]); - volatile float input_1 = 0.5f; - volatile float arg_percentile = - py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_percentile), input_1); + float arg_percentile = + py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_percentile), 0.5f); PY_ASSERT_TRUE_MSG((0 <= arg_percentile) && (arg_percentile <= 1), "Error: 0 <= percentile <= 1!"); bool arg_threshold = py_helper_keyword_int(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), false); @@ -2219,9 +2453,8 @@ STATIC mp_obj_t py_image_midpoint(uint n_args, const mp_obj_t *args, mp_map_t *k py_helper_arg_to_image_mutable(args[0]); int arg_ksize = py_helper_arg_to_ksize(args[1]); - volatile float input_1 = 0.5f; - volatile float arg_bias = - py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_bias), input_1); + float arg_bias = + py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_bias), 0.5f); PY_ASSERT_TRUE_MSG((0 <= arg_bias) && (arg_bias <= 1), "Error: 0 <= bias <= 1!"); bool arg_threshold = py_helper_keyword_int(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), false); @@ -2256,7 +2489,7 @@ STATIC mp_obj_t py_image_morph(uint n_args, const mp_obj_t *args, mp_map_t *kw_a fb_alloc_mark(); int *arg_krn = fb_alloc(n * sizeof(int)); - volatile int arg_m = 0; + int arg_m = 0; for (int i = 0; i < n; i++) { arg_krn[i] = mp_obj_get_int(krn[i]); @@ -2266,12 +2499,11 @@ STATIC mp_obj_t py_image_morph(uint n_args, const mp_obj_t *args, mp_map_t *kw_a if (arg_m == 0) { arg_m = 1; } - volatile float input_1 = 1.0f / arg_m; - volatile float arg_mul = - py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_mul), input_1); - volatile float input_2 = 0.0f; - volatile float arg_add = - py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_add), input_2); + + float arg_mul = + py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_mul), 1.0f / arg_m); + float arg_add = + py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_add), 0.0f); bool arg_threshold = py_helper_keyword_int(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), false); int arg_offset = @@ -2310,9 +2542,7 @@ STATIC mp_obj_t py_image_gaussian(uint n_args, const mp_obj_t *args, mp_map_t *k } int64_t *arg_krn = fb_alloc(n * n * sizeof(int64_t)); - volatile int arg_m = 0; - volatile float arg_input_1 = 0; - volatile float arg_input_2 = 0; + int arg_m = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { @@ -2326,12 +2556,11 @@ STATIC mp_obj_t py_image_gaussian(uint n_args, const mp_obj_t *args, mp_map_t *k arg_krn[((n/2)*n)+(n/2)] -= arg_m * 2; arg_m = -arg_m; } - arg_input_1 = 1.0f / arg_m; - volatile float arg_mul = - py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_mul), arg_input_1/*1.0f / arg_m*/); - arg_input_2 = 0.0f; - volatile float arg_add = - py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_add), /*0.0f*/arg_input_2); + + float arg_mul = + py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_mul), 1.0f / arg_m); + float arg_add = + py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_add), 0.0f); bool arg_threshold = py_helper_keyword_int(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), false); int arg_offset = @@ -2347,8 +2576,6 @@ STATIC mp_obj_t py_image_gaussian(uint n_args, const mp_obj_t *args, mp_map_t *k fb_alloc_free_till_mark(); return args[0]; } - - STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_gaussian_obj, 2, py_image_gaussian); #endif // IMLIB_ENABLE_GAUSSIAN @@ -2389,12 +2616,11 @@ STATIC mp_obj_t py_image_laplacian(uint n_args, const mp_obj_t *args, mp_map_t * if (py_helper_keyword_int(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_sharpen), false)) { arg_krn[((n/2)*n)+(n/2)] += arg_m; } - volatile float input_1 = 1.0f / arg_m; - volatile float arg_mul = - py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_mul), input_1); - volatile float input_2 = 0.0f; - volatile float arg_add = - py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_add), input_2); + + float arg_mul = + py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_mul), 1.0f / arg_m); + float arg_add = + py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_add), 0.0f); bool arg_threshold = py_helper_keyword_int(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), false); int arg_offset = @@ -2403,6 +2629,7 @@ STATIC mp_obj_t py_image_laplacian(uint n_args, const mp_obj_t *args, mp_map_t * py_helper_keyword_int(n_args, args, 7, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_invert), false); image_t *arg_msk = py_helper_keyword_to_image_mutable_mask(n_args, args, 8, kw_args); + imlib_morph(arg_img, arg_ksize, arg_krn, arg_mul, arg_add, arg_threshold, arg_offset, arg_invert, arg_msk); fb_free(); fb_free(); @@ -2419,12 +2646,10 @@ STATIC mp_obj_t py_image_bilateral(uint n_args, const mp_obj_t *args, mp_map_t * py_helper_arg_to_image_mutable(args[0]); int arg_ksize = py_helper_arg_to_ksize(args[1]); - volatile float input_1 = 0.1f; - volatile float arg_color_sigma = - py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_color_sigma), input_1); - volatile float input_2 = 1.0f; - volatile float arg_space_sigma = - py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_space_sigma), input_2); + float arg_color_sigma = + py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_color_sigma), 0.1); + float arg_space_sigma = + py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_space_sigma), 1); bool arg_threshold = py_helper_keyword_int(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), false); int arg_offset = @@ -2447,14 +2672,12 @@ STATIC mp_obj_t py_image_cartoon(uint n_args, const mp_obj_t *args, mp_map_t *kw { image_t *arg_img = py_helper_arg_to_image_mutable(args[0]); - volatile float input_1 = 0.05f; - volatile float arg_seed_threshold = - py_helper_keyword_float(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_seed_threshold), input_1); + float arg_seed_threshold = + py_helper_keyword_float(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_seed_threshold), 0.05); PY_ASSERT_TRUE_MSG((0.0f <= arg_seed_threshold) && (arg_seed_threshold <= 1.0f), "Error: 0.0 <= seed_threshold <= 1.0!"); - volatile float input_2 = 0.05f; - volatile float arg_floating_threshold = - py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_floating_threshold), input_2); + float arg_floating_threshold = + py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_floating_threshold), 0.05); PY_ASSERT_TRUE_MSG((0.0f <= arg_floating_threshold) && (arg_floating_threshold <= 1.0f), "Error: 0.0 <= floating_threshold <= 1.0!"); image_t *arg_msk = @@ -2561,13 +2784,11 @@ STATIC mp_obj_t py_image_lens_corr(uint n_args, const mp_obj_t *args, mp_map_t * { image_t *arg_img = py_helper_arg_to_image_mutable(args[0]); - volatile float input_1 = 1.8f; - volatile float arg_strength = - py_helper_keyword_float(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_strength), input_1); + float arg_strength = + py_helper_keyword_float(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_strength), 1.8); PY_ASSERT_TRUE_MSG(arg_strength > 0.0, "Strength must be > 0!"); - volatile float input_2 = 1.0f; - volatile float arg_zoom = - py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_zoom), input_2); + float arg_zoom = + py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_zoom), 1.0); PY_ASSERT_TRUE_MSG(arg_zoom > 0.0, "Zoom must be > 0!"); fb_alloc_mark(); @@ -2582,20 +2803,18 @@ STATIC mp_obj_t py_image_rotation_corr(uint n_args, const mp_obj_t *args, mp_map { image_t *arg_img = py_helper_arg_to_image_mutable(args[0]); - volatile float input_1 = 0.0f; - volatile float arg_x_rotation = - IM_DEG2RAD(py_helper_keyword_float(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_x_rotation), input_1)); - volatile float arg_y_rotation = - IM_DEG2RAD(py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_y_rotation), input_1)); - volatile float arg_z_rotation = - IM_DEG2RAD(py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_z_rotation), input_1)); - volatile float arg_x_translation = - py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_x_translation), input_1); - volatile float arg_y_translation = - py_helper_keyword_float(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_y_translation), input_1); - volatile float input_2 = 1.0f; - volatile float arg_zoom = - py_helper_keyword_float(n_args, args, 6, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_zoom), input_2); + float arg_x_rotation = + IM_DEG2RAD(py_helper_keyword_float(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_x_rotation), 0.0)); + float arg_y_rotation = + IM_DEG2RAD(py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_y_rotation), 0.0)); + float arg_z_rotation = + IM_DEG2RAD(py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_z_rotation), 0.0)); + float arg_x_translation = + py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_x_translation), 0.0); + float arg_y_translation = + py_helper_keyword_float(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_y_translation), 0.0); + float arg_zoom = + py_helper_keyword_float(n_args, args, 6, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_zoom), 1.0); PY_ASSERT_TRUE_MSG(arg_zoom > 0.0, "Zoom must be > 0!"); fb_alloc_mark(); @@ -4251,8 +4470,7 @@ static const mp_obj_type_t py_rect_type = { static mp_obj_t py_image_find_rects(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { - - image_t *arg_img = py_helper_arg_to_image_mutable(args[0]); + image_t *arg_img = py_helper_arg_to_image_mutable(args[0]); rectangle_t roi; py_helper_keyword_rectangle_roi(arg_img, n_args, args, 1, kw_args, &roi); @@ -4631,17 +4849,13 @@ static mp_obj_t py_image_find_apriltags(uint n_args, const mp_obj_t *args, mp_ma apriltag_families_t families = py_helper_keyword_int(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_families), TAG36H11); // 2.8mm Focal Length w/ OV7725 sensor for reference. - volatile float input_1 = (2.8 / 3.984) * arg_img->w; - volatile float fx = py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_fx), input_1); + float fx = py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_fx), (2.8 / 3.984) * arg_img->w); // 2.8mm Focal Length w/ OV7725 sensor for reference. - volatile float input_2 = (2.8 / 2.952) * arg_img->h; - volatile float fy = py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_fy), input_2); + float fy = py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_fy), (2.8 / 2.952) * arg_img->h); // Use the image versus the roi here since the image should be projected from the camera center. - volatile float input_3 = arg_img->w * 0.5; - volatile float cx = py_helper_keyword_float(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_cx), input_3); + float cx = py_helper_keyword_float(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_cx), arg_img->w * 0.5); // Use the image versus the roi here since the image should be projected from the camera center. - volatile float input_4 = arg_img->h * 0.5; - volatile float cy = py_helper_keyword_float(n_args, args, 6, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_cy), input_4); + float cy = py_helper_keyword_float(n_args, args, 6, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_cy), arg_img->h * 0.5); list_t out; fb_alloc_mark(); @@ -5147,10 +5361,8 @@ static mp_obj_t py_image_find_features(uint n_args, const mp_obj_t *args, mp_map { image_t *arg_img = py_helper_arg_to_image_mutable(args[0]); cascade_t *cascade = py_cascade_cobj(args[1]); - volatile float input_1 = 0.5f; - cascade->threshold = py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), input_1); - volatile float input_2 = 1.5f; - cascade->scale_factor = py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_scale_factor), input_2); + cascade->threshold = py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), 0.5f); + cascade->scale_factor = py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_scale_factor), 1.5f); rectangle_t roi; py_helper_keyword_rectangle_roi(arg_img, n_args, args, 4, kw_args, &roi); @@ -5223,9 +5435,8 @@ static mp_obj_t py_image_find_keypoints(uint n_args, const mp_obj_t *args, mp_ma py_helper_keyword_int(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), 20); bool normalized = py_helper_keyword_int(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_normalized), false); - volatile float input_1 = 1.5f; - volatile float scale_factor = - py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_scale_factor), input_1); + float scale_factor = + py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_scale_factor), 1.5f); int max_keypoints = py_helper_keyword_int(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_max_keypoints), 100); corner_detector_t corner_detector = @@ -5310,10 +5521,9 @@ static mp_obj_t py_image_selective_search(uint n_args, const mp_obj_t *args, mp_ image_t *img = py_helper_arg_to_image_mutable(args[0]); int t = py_helper_keyword_int(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), 500); int s = py_helper_keyword_int(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_size), 20); - volatile float input_1 = 1.0f; - volatile float a1 = py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_a1), input_1); - volatile float a2 = py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_a1), input_1); - volatile float a3 = py_helper_keyword_float(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_a1), input_1); + float a1 = py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_a1), 1.0f); + float a2 = py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_a1), 1.0f); + float a3 = py_helper_keyword_float(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_a1), 1.0f); array_t *proposals_array = imlib_selective_search(img, t, s, a1, a2, a3); // Add proposals to a new Python list... @@ -5676,6 +5886,7 @@ static const mp_rom_map_elem_t locals_dict_table[] = { STATIC MP_DEFINE_CONST_DICT(locals_dict, locals_dict_table); +#undef _DATA_MARIX_TEST_ /*deepvision*/ static mp_obj_t py_sensor_snapshot(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { // Snapshot image @@ -5724,6 +5935,9 @@ static mp_obj_t py_sensor_snapshot(uint n_args, const mp_obj_t *args, mp_map_t * // Set the user image. MAIN_FB()->bpp = 2; +#ifdef _DATA_MARIX_TEST_ + memcpy(g_framebuffer,test_image,320*240*MAIN_FB()->bpp); +#endif img->w = MAIN_FB()->w; img->h = MAIN_FB()->h; img->bpp = MAIN_FB()->bpp; diff --git a/src/openmv/src/omv/py/py_nn.c b/src/openmv/src/omv/py/py_nn.c index 3ffecb2..88982a9 100755 --- a/src/openmv/src/omv/py/py_nn.c +++ b/src/openmv/src/omv/py/py_nn.c @@ -161,28 +161,22 @@ STATIC mp_obj_t py_net_search(uint n_args, const mp_obj_t *args, mp_map_t *kw_ar rectangle_t roi; py_helper_keyword_rectangle_roi(arg_img, n_args, args, 2, kw_args, &roi); - volatile float input_1 = 0.6f; - volatile float input_2 = 1.0f; - volatile float input_3 = 0.5f; - volatile float input_4 = 0.0f; - volatile float arg_threshold = py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), input_1); + float arg_threshold = py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_threshold), 0.6); PY_ASSERT_TRUE_MSG((0 <= arg_threshold) && (arg_threshold <= 1), "0 <= threshold <= 1"); - - volatile float arg_min_scale = py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_min_scale), input_2); + float arg_min_scale = py_helper_keyword_float(n_args, args, 4, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_min_scale), 1.0); PY_ASSERT_TRUE_MSG((0 < arg_min_scale) && (arg_min_scale <= 1), "0 < min_scale <= 1"); - - volatile float arg_scale_mul = py_helper_keyword_float(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_scale_mul), input_3); + float arg_scale_mul = py_helper_keyword_float(n_args, args, 5, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_scale_mul), 0.5); PY_ASSERT_TRUE_MSG((0 <= arg_scale_mul) && (arg_scale_mul < 1), "0 <= scale_mul < 1"); - volatile float arg_x_overlap = py_helper_keyword_float(n_args, args, 6, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_x_overlap), input_4); + float arg_x_overlap = py_helper_keyword_float(n_args, args, 6, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_x_overlap), 0); PY_ASSERT_TRUE_MSG(((0 <= arg_x_overlap) && (arg_x_overlap < 1)) || (arg_x_overlap == -1), "0 <= x_overlap < 1"); - volatile float arg_y_overlap = py_helper_keyword_float(n_args, args, 7, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_y_overlap), input_4); + float arg_y_overlap = py_helper_keyword_float(n_args, args, 7, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_y_overlap), 0); PY_ASSERT_TRUE_MSG(((0 <= arg_y_overlap) && (arg_y_overlap < 1)) || (arg_y_overlap == -1), "0 <= y_overlap < 1"); - volatile float arg_contrast_threshold = py_helper_keyword_float(n_args, args, 8, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_contrast_threshold), input_2); + float arg_contrast_threshold = py_helper_keyword_float(n_args, args, 8, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_contrast_threshold), 1); PY_ASSERT_TRUE_MSG(0 <= arg_contrast_threshold, "0 <= contrast_threshold"); bool softmax = py_helper_keyword_int(n_args, args, 9, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_softmax), false); @@ -192,7 +186,7 @@ STATIC mp_obj_t py_net_search(uint n_args, const mp_obj_t *args, mp_map_t *kw_ar fb_alloc_mark(); - for (volatile float scale = 1; scale >= arg_min_scale; scale *= arg_scale_mul) { + for (float scale = 1; scale >= arg_min_scale; scale *= arg_scale_mul) { // Either provide a subtle offset to center multiple detection windows or center the only detection window. for (int y = roi.y + ((arg_y_overlap != -1) ? (fmodf(roi.h, (roi.h * scale)) / 2) : ((roi.h - (roi.h * scale)) / 2)); // Finish when the detection window is outside of the ROI. @@ -241,9 +235,9 @@ STATIC mp_obj_t py_net_search(uint n_args, const mp_obj_t *args, mp_map_t *kw_ar nn_run_network(arg_net, arg_img, &new_roi, softmax); int max_index = -1; - volatile float max_value = -1; + float max_value = -1; for (int i=0; ioutput_size; i++) { - volatile float value = ((float) (arg_net->output_data[i] + 128)) / 255; + float value = ((float) (arg_net->output_data[i] + 128)) / 255; if ((value >= arg_threshold) && (value > max_value)) { max_index = i; max_value = value; diff --git a/src/openmv/src/omv/py/py_sensor.c b/src/openmv/src/omv/py/py_sensor.c index bfb688f..5dae5cc 100755 --- a/src/openmv/src/omv/py/py_sensor.c +++ b/src/openmv/src/omv/py/py_sensor.c @@ -366,9 +366,8 @@ static mp_obj_t py_sensor_set_colorbar(mp_obj_t enable) { static mp_obj_t py_sensor_set_auto_gain(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { int enable = mp_obj_get_int(args[0]); - volatile float input_1 = NAN; - volatile float gain_db = py_helper_keyword_float(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_gain_db), input_1); - volatile float gain_db_ceiling = py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_gain_db_ceiling), input_1); + float gain_db = py_helper_keyword_float(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_gain_db), NAN); + float gain_db_ceiling = py_helper_keyword_float(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_gain_db_ceiling), NAN); if (sensor_set_auto_gain(enable, gain_db, gain_db_ceiling) != 0) { nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError, "Sensor control failed!")); } @@ -376,7 +375,7 @@ static mp_obj_t py_sensor_set_auto_gain(uint n_args, const mp_obj_t *args, mp_ma } static mp_obj_t py_sensor_get_gain_db() { - volatile float gain_db; + float gain_db; if (sensor_get_gain_db(&gain_db) != 0) { nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError, "Sensor control failed!")); } @@ -401,7 +400,7 @@ static mp_obj_t py_sensor_get_exposure_us() { static mp_obj_t py_sensor_set_auto_whitebal(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { int enable = mp_obj_get_int(args[0]); - volatile float rgb_gain_db[3] = {NAN, NAN, NAN}; + float rgb_gain_db[3] = {NAN, NAN, NAN}; py_helper_keyword_float_array(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_rgb_gain_db), rgb_gain_db, 3); if (sensor_set_auto_whitebal(enable, rgb_gain_db[0], rgb_gain_db[1], rgb_gain_db[2]) != 0) { nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError, "Sensor control failed!"));