diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 9b5ce609ed..cdacd0fb50 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -12,5 +12,3 @@ contact_links: - name: Hardware-related services url: https://www.espressif.com/en/products/hardware-services about: Espressif service providing hardware design and certification support - - diff --git a/.gitignore b/.gitignore index 99d3ecf01f..61e02dae70 100644 --- a/.gitignore +++ b/.gitignore @@ -87,4 +87,4 @@ flake8_output.txt build # lock files for examples and components -dependencies.lock \ No newline at end of file +dependencies.lock diff --git a/.readthedocs.yml b/.readthedocs.yml index 4eeb372430..64de8bb9d7 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -16,6 +16,6 @@ python: - requirements: docs/requirements.txt # We need to list all the submodules included in documenation build by DOxygen -submodules: +submodules: include: - - components/mqtt/esp-mqtt \ No newline at end of file + - components/mqtt/esp-mqtt diff --git a/add_path.sh b/add_path.sh index f48c9b0c2c..9029b1b4e9 100644 --- a/add_path.sh +++ b/add_path.sh @@ -16,5 +16,3 @@ else export PATH="${IDF_ADD_PATHS_EXTRAS}:${PATH}" echo "Added to PATH: ${IDF_ADD_PATHS_EXTRAS}" fi - - diff --git a/components/app_trace/CMakeLists.txt b/components/app_trace/CMakeLists.txt index 3ee0ff6555..df9447a8cd 100644 --- a/components/app_trace/CMakeLists.txt +++ b/components/app_trace/CMakeLists.txt @@ -1,4 +1,4 @@ -set(srcs +set(srcs "app_trace.c" "app_trace_util.c" "host_file_io.c" @@ -12,7 +12,7 @@ if(CONFIG_SYSVIEW_ENABLE) sys_view/SEGGER sys_view/Sample/OS) - list(APPEND srcs + list(APPEND srcs "sys_view/SEGGER/SEGGER_SYSVIEW.c" "sys_view/Sample/Config/SEGGER_SYSVIEW_Config_FreeRTOS.c" "sys_view/Sample/OS/SEGGER_SYSVIEW_FreeRTOS.c" diff --git a/components/app_trace/heap_trace_tohost.c b/components/app_trace/heap_trace_tohost.c index 41dd92a65e..d1d2495571 100644 --- a/components/app_trace/heap_trace_tohost.c +++ b/components/app_trace/heap_trace_tohost.c @@ -111,4 +111,3 @@ static IRAM_ATTR void record_free(void *p, void **callers) #include "heap_trace.inc" #endif /*CONFIG_HEAP_TRACING_TOHOST*/ - diff --git a/components/app_trace/host_file_io.c b/components/app_trace/host_file_io.c index 021fe21acc..19bfa51e4f 100644 --- a/components/app_trace/host_file_io.c +++ b/components/app_trace/host_file_io.c @@ -146,7 +146,7 @@ void *esp_apptrace_fopen(esp_apptrace_dest_t dest, const char *path, const char ESP_EARLY_LOGV(TAG, "esp_apptrace_fopen '%s' '%s'", path, mode); if (path == NULL || mode == NULL) { - return 0; + return 0; } cmd_args.path = path; @@ -217,7 +217,7 @@ size_t esp_apptrace_fwrite(esp_apptrace_dest_t dest, const void *ptr, size_t siz ESP_EARLY_LOGV(TAG, "esp_apptrace_fwrite f %p l %d", stream, size*nmemb); if (ptr == NULL) { - return 0; + return 0; } cmd_args.buf = (void *)ptr; @@ -256,7 +256,7 @@ size_t esp_apptrace_fread(esp_apptrace_dest_t dest, void *ptr, size_t size, size ESP_EARLY_LOGV(TAG, "esp_apptrace_fread f %p l %d", stream, size*nmemb); if (ptr == NULL) { - return 0; + return 0; } cmd_args.size = size * nmemb; diff --git a/components/app_trace/include/esp_app_trace_util.h b/components/app_trace/include/esp_app_trace_util.h index cda26c7a79..57c4f94fb9 100644 --- a/components/app_trace/include/esp_app_trace_util.h +++ b/components/app_trace/include/esp_app_trace_util.h @@ -24,7 +24,7 @@ extern "C" { /** Infinite waiting timeout */ #define ESP_APPTRACE_TMO_INFINITE ((uint32_t)-1) -/** Structure which holds data necessary for measuring time intervals. +/** Structure which holds data necessary for measuring time intervals. * * After initialization via esp_apptrace_tmo_init() user needs to call esp_apptrace_tmo_check() * periodically to check timeout for expiration. @@ -100,7 +100,7 @@ esp_err_t esp_apptrace_lock_give(esp_apptrace_lock_t *lock); /** Ring buffer control structure. * - * @note For purposes of application tracing module if there is no enough space for user data and write pointer can be wrapped + * @note For purposes of application tracing module if there is no enough space for user data and write pointer can be wrapped * current ring buffer size can be temporarily shrinked in order to provide buffer with requested size. */ typedef struct { diff --git a/components/app_trace/linker.lf b/components/app_trace/linker.lf index a30377b8ee..9cdcf6b342 100644 --- a/components/app_trace/linker.lf +++ b/components/app_trace/linker.lf @@ -1,6 +1,6 @@ [mapping:app_trace] archive: libapp_trace.a -entries: +entries: app_trace (noflash) app_trace_util (noflash) SEGGER_SYSVIEW (noflash) diff --git a/components/app_trace/sdkconfig.rename b/components/app_trace/sdkconfig.rename index c8f6693691..61c71a933f 100644 --- a/components/app_trace/sdkconfig.rename +++ b/components/app_trace/sdkconfig.rename @@ -9,4 +9,4 @@ CONFIG_ESP32_APPTRACE_LOCK_ENABLE CONFIG_APPTRACE_LOCK_ENABLE CONFIG_ESP32_APPTRACE_ONPANIC_HOST_FLUSH_TMO CONFIG_APPTRACE_ONPANIC_HOST_FLUSH_TMO CONFIG_ESP32_APPTRACE_POSTMORTEM_FLUSH_TRAX_THRESH CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX -CONFIG_ESP32_GCOV_ENABLE CONFIG_APPTRACE_GCOV_ENABLE \ No newline at end of file +CONFIG_ESP32_GCOV_ENABLE CONFIG_APPTRACE_GCOV_ENABLE diff --git a/components/app_trace/sys_view/Config/Global.h b/components/app_trace/sys_view/Config/Global.h index bd767ee085..274340f04a 100644 --- a/components/app_trace/sys_view/Config/Global.h +++ b/components/app_trace/sys_view/Config/Global.h @@ -88,7 +88,7 @@ Purpose : Global types #else #define U64_C(x) x##ULL #endif -#else +#else // // C99 compliant compiler // diff --git a/components/app_trace/sys_view/SEGGER/SEGGER_RTT.h b/components/app_trace/sys_view/SEGGER/SEGGER_RTT.h index 877d6ee331..50916223df 100644 --- a/components/app_trace/sys_view/SEGGER/SEGGER_RTT.h +++ b/components/app_trace/sys_view/SEGGER/SEGGER_RTT.h @@ -58,7 +58,7 @@ ---------------------------END-OF-HEADER------------------------------ File : SEGGER_RTT.h Purpose : Implementation of SEGGER real-time transfer which allows - real-time communication on targets which support debugger + real-time communication on targets which support debugger memory accesses while the CPU is running. Revision: $Rev: 5626 $ ---------------------------------------------------------------------- diff --git a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.c b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.c index bc21811cc3..e1599cc1b9 100644 --- a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.c +++ b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.c @@ -402,7 +402,7 @@ static U8 *_EncodeStr(U8 *pPayload, const char *pText, unsigned int Limit) { // Write Len // if (Len < 255) { - *pPayload++ = Len; + *pPayload++ = Len; } else { *pPayload++ = 255; *pPayload++ = (Len & 255); @@ -556,7 +556,7 @@ static int _TrySendOverflowPacket(void) { * _SendSyncInfo() * * Function description -* Send SystemView sync packet and system information in +* Send SystemView sync packet and system information in * post mortem mode. * * Additional information @@ -792,7 +792,7 @@ static void _VPrintHost(const char* s, U32 Options, va_list* pParamList) { U32 aParas[SEGGER_SYSVIEW_MAX_ARGUMENTS]; U32 NumArguments; const char* p; - + p = s; NumArguments = 0; while (*p) { diff --git a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_ConfDefaults.h b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_ConfDefaults.h index f1622c6d19..0acd593921 100644 --- a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_ConfDefaults.h +++ b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_ConfDefaults.h @@ -118,7 +118,7 @@ extern "C" { #endif // Lowest Id reported by the Application. -#ifndef SEGGER_SYSVIEW_ID_BASE +#ifndef SEGGER_SYSVIEW_ID_BASE #define SEGGER_SYSVIEW_ID_BASE 0 #endif diff --git a/components/app_trace/sys_view/Sample/OS/SEGGER_SYSVIEW_FreeRTOS.c b/components/app_trace/sys_view/Sample/OS/SEGGER_SYSVIEW_FreeRTOS.c index 6b55c4f565..e9f36a33d4 100644 --- a/components/app_trace/sys_view/Sample/OS/SEGGER_SYSVIEW_FreeRTOS.c +++ b/components/app_trace/sys_view/Sample/OS/SEGGER_SYSVIEW_FreeRTOS.c @@ -136,11 +136,11 @@ static U64 _cbGetTime(void) { */ void SYSVIEW_AddTask(U32 xHandle, const char* pcTaskName, unsigned uxCurrentPriority, U32 pxStack, unsigned uStackHighWaterMark) { unsigned n; - + if (memcmp(pcTaskName, "IDLE", 5) == 0) { return; } - + for (n = 0; n < SYSVIEW_FREERTOS_MAX_NOF_TASKS; n++) { if (_aTasks[n].xHandle == 0) { break; @@ -170,7 +170,7 @@ void SYSVIEW_AddTask(U32 xHandle, const char* pcTaskName, unsigned uxCurrentPrio */ void SYSVIEW_UpdateTask(U32 xHandle, const char* pcTaskName, unsigned uxCurrentPriority, U32 pxStack, unsigned uStackHighWaterMark) { unsigned n; - + if (memcmp(pcTaskName, "IDLE", 5) == 0) { return; } diff --git a/components/app_update/CMakeLists.txt b/components/app_update/CMakeLists.txt index 06ee04315a..f1d6b11697 100644 --- a/components/app_update/CMakeLists.txt +++ b/components/app_update/CMakeLists.txt @@ -1,4 +1,4 @@ -idf_component_register(SRCS "esp_ota_ops.c" +idf_component_register(SRCS "esp_ota_ops.c" "esp_app_desc.c" INCLUDE_DIRS "include" REQUIRES spi_flash partition_table bootloader_support) @@ -52,7 +52,7 @@ if(NOT BOOTLOADER_BUILD) add_custom_target(read_otadata DEPENDS "${PARTITION_CSV_PATH}" COMMAND ${otatool_py} ${esptool_args} - --partition-table-file ${PARTITION_CSV_PATH} + --partition-table-file ${PARTITION_CSV_PATH} --partition-table-offset ${PARTITION_TABLE_OFFSET} read_otadata) diff --git a/components/app_update/Makefile.projbuild b/components/app_update/Makefile.projbuild index 886ca569ab..f6387635fa 100644 --- a/components/app_update/Makefile.projbuild +++ b/components/app_update/Makefile.projbuild @@ -24,7 +24,7 @@ $(BLANK_OTA_DATA_FILE): partition_table_get_info $(PARTITION_TABLE_CSV_PATH) | c blank_ota_data: $(BLANK_OTA_DATA_FILE) -# If there is no otadata partition, both OTA_DATA_OFFSET and BLANK_OTA_DATA_FILE +# If there is no otadata partition, both OTA_DATA_OFFSET and BLANK_OTA_DATA_FILE # expand to empty values. ESPTOOL_ALL_FLASH_ARGS += $(OTA_DATA_OFFSET) $(BLANK_OTA_DATA_FILE) @@ -36,8 +36,8 @@ erase_otadata: $(PARTITION_TABLE_CSV_PATH) partition_table_get_info | check_pyth erase_otadata read_otadata: $(PARTITION_TABLE_CSV_PATH) partition_table_get_info | check_python_dependencies - $(OTATOOL_PY) $(ESPTOOL_ARGS) --partition-table-file $(PARTITION_TABLE_CSV_PATH) \ - --partition-table-offset $(partition_table_offset) \ + $(OTATOOL_PY) $(ESPTOOL_ARGS) --partition-table-file $(PARTITION_TABLE_CSV_PATH) \ + --partition-table-offset $(partition_table_offset) \ read_otadata all: blank_ota_data diff --git a/components/app_update/component.mk b/components/app_update/component.mk index 23470d575c..b100d97903 100644 --- a/components/app_update/component.mk +++ b/components/app_update/component.mk @@ -3,7 +3,7 @@ # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) -# esp_app_desc structure is added as an undefined symbol because otherwise the +# esp_app_desc structure is added as an undefined symbol because otherwise the # linker will ignore this structure as it has no other files depending on it. COMPONENT_ADD_LDFLAGS += -u esp_app_desc diff --git a/components/app_update/esp_app_desc.c b/components/app_update/esp_app_desc.c index 8a60b298bc..af3e4a5e82 100644 --- a/components/app_update/esp_app_desc.c +++ b/components/app_update/esp_app_desc.c @@ -80,7 +80,7 @@ __attribute__((constructor)) void esp_ota_init_app_elf_sha256(void) /* The esp_app_desc.app_elf_sha256 should be possible to print in panic handler during cache is disabled. * But because the cache is disabled the reading esp_app_desc.app_elf_sha256 is not right and * can lead to a complete lock-up of the CPU. - * For this reason we do a reading of esp_app_desc.app_elf_sha256 while start up in esp_ota_init_app_elf_sha256() + * For this reason we do a reading of esp_app_desc.app_elf_sha256 while start up in esp_ota_init_app_elf_sha256() * and keep it in the static s_app_elf_sha256 value. */ int IRAM_ATTR esp_ota_get_app_elf_sha256(char* dst, size_t size) diff --git a/components/app_update/include/esp_ota_ops.h b/components/app_update/include/esp_ota_ops.h index cf24e75fa7..f16ed6b1f6 100644 --- a/components/app_update/include/esp_ota_ops.h +++ b/components/app_update/include/esp_ota_ops.h @@ -50,7 +50,7 @@ typedef uint32_t esp_ota_handle_t; /** * @brief Return esp_app_desc structure. This structure includes app version. - * + * * Return description for running app. * @return Pointer to esp_app_desc structure. */ @@ -225,7 +225,7 @@ const esp_partition_t* esp_ota_get_next_update_partition(const esp_partition_t * /** * @brief Returns esp_app_desc structure for app partition. This structure includes app version. - * + * * Returns a description for the requested app partition. * @param[in] partition Pointer to app partition. (only app partition) * @param[out] app_desc Structure of info about app. diff --git a/components/asio/port/include/esp_exception.h b/components/asio/port/include/esp_exception.h index a4a3160131..cbf20d7a63 100644 --- a/components/asio/port/include/esp_exception.h +++ b/components/asio/port/include/esp_exception.h @@ -30,7 +30,7 @@ namespace detail { template void throw_exception(const Exception& e) { - ESP_LOGE("esp32_asio_exception", "Caught exception: %s!", e.what()); + ESP_LOGE("esp32_asio_exception", "Caught exception: %s!", e.what()); abort(); } }} diff --git a/components/bootloader/CMakeLists.txt b/components/bootloader/CMakeLists.txt index b73a351fe6..d8ea49c954 100644 --- a/components/bootloader/CMakeLists.txt +++ b/components/bootloader/CMakeLists.txt @@ -23,4 +23,3 @@ if(NOT CONFIG_SECURE_BOOT) ${CONFIG_BOOTLOADER_OFFSET_IN_FLASH} "${BOOTLOADER_BUILD_DIR}/bootloader.bin") endif() - diff --git a/components/bootloader/Kconfig.projbuild b/components/bootloader/Kconfig.projbuild index f7b9977dc0..c77875e635 100644 --- a/components/bootloader/Kconfig.projbuild +++ b/components/bootloader/Kconfig.projbuild @@ -788,4 +788,3 @@ menu "Security features" endmenu # Security features - diff --git a/components/bootloader/Makefile.projbuild b/components/bootloader/Makefile.projbuild index ffd8f43c85..e624ee7499 100644 --- a/components/bootloader/Makefile.projbuild +++ b/components/bootloader/Makefile.projbuild @@ -157,4 +157,4 @@ ifdef CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME ifdef CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES rm -f $(BOOTLOADER_SIGNED_BIN) endif -endif \ No newline at end of file +endif diff --git a/components/bootloader/component.mk b/components/bootloader/component.mk index b3e40ee2f4..0ec5d93c38 100644 --- a/components/bootloader/component.mk +++ b/components/bootloader/component.mk @@ -4,4 +4,3 @@ # # See Makefile.projbuild for the targets which actually build the bootloader. COMPONENT_CONFIG_ONLY := 1 - diff --git a/components/bootloader/subproject/components/micro-ecc/uECC_verify_antifault.c b/components/bootloader/subproject/components/micro-ecc/uECC_verify_antifault.c index bde8e91976..0e5a4e6652 100644 --- a/components/bootloader/subproject/components/micro-ecc/uECC_verify_antifault.c +++ b/components/bootloader/subproject/components/micro-ecc/uECC_verify_antifault.c @@ -34,7 +34,7 @@ int uECC_verify_antifault(const uint8_t *public_key, uECC_word_t *_public = (uECC_word_t *)public_key; #else uECC_word_t _public[uECC_MAX_WORDS * 2]; -#endif +#endif uECC_word_t r[uECC_MAX_WORDS], s[uECC_MAX_WORDS]; wordcount_t num_words = curve->num_words; wordcount_t num_n_words = BITS_TO_WORDS(curve->num_n_bits); diff --git a/components/bootloader/subproject/main/CMakeLists.txt b/components/bootloader/subproject/main/CMakeLists.txt index 82760cad09..da00c55e11 100644 --- a/components/bootloader/subproject/main/CMakeLists.txt +++ b/components/bootloader/subproject/main/CMakeLists.txt @@ -6,4 +6,3 @@ set(scripts "ld/${target}/bootloader.ld" "ld/${target}/bootloader.rom.ld") target_linker_script(${COMPONENT_LIB} INTERFACE "${scripts}") - diff --git a/components/bootloader/subproject/main/component.mk b/components/bootloader/subproject/main/component.mk index 2b647712e4..29702b9175 100644 --- a/components/bootloader/subproject/main/component.mk +++ b/components/bootloader/subproject/main/component.mk @@ -18,7 +18,7 @@ ifdef CONFIG_IDF_TARGET_ESP32 ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH LINKER_SCRIPTS += $(IDF_PATH)/components/esp_rom/$(IDF_TARGET)/ld/$(IDF_TARGET).rom.spiflash.ld endif - ifdef CONFIG_ESP32_REV_MIN_3 + ifdef CONFIG_ESP32_REV_MIN_3 LINKER_SCRIPTS += $(IDF_PATH)/components/esp_rom/$(IDF_TARGET)/ld/$(IDF_TARGET).rom.eco3.ld endif endif diff --git a/components/bootloader_support/include/bootloader_clock.h b/components/bootloader_support/include/bootloader_clock.h index da3bc9e646..98546e8290 100644 --- a/components/bootloader_support/include/bootloader_clock.h +++ b/components/bootloader_support/include/bootloader_clock.h @@ -31,4 +31,3 @@ int bootloader_clock_get_rated_freq_mhz(void); #ifdef __cplusplus } #endif - diff --git a/components/bootloader_support/include/bootloader_flash.h b/components/bootloader_support/include/bootloader_flash.h index 5b74596544..8bf7485252 100644 --- a/components/bootloader_support/include/bootloader_flash.h +++ b/components/bootloader_support/include/bootloader_flash.h @@ -27,4 +27,3 @@ */ esp_err_t bootloader_flash_wrap_set(spi_flash_wrap_mode_t mode); #endif - diff --git a/components/bootloader_support/include/bootloader_mem.h b/components/bootloader_support/include/bootloader_mem.h index 81c1b4ce79..bc54833ff3 100644 --- a/components/bootloader_support/include/bootloader_mem.h +++ b/components/bootloader_support/include/bootloader_mem.h @@ -21,4 +21,4 @@ void bootloader_init_mem(void); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/bootloader_support/include/esp_secure_boot.h b/components/bootloader_support/include/esp_secure_boot.h index f15c240d33..0526391b37 100644 --- a/components/bootloader_support/include/esp_secure_boot.h +++ b/components/bootloader_support/include/esp_secure_boot.h @@ -67,7 +67,7 @@ static inline bool esp_secure_boot_enabled(void) * @important This function is intended to be called from bootloader code only. * * This function is only used in the context of the Secure Boot V1 scheme. - * + * * If secure boot is not yet enabled for bootloader, this will: * 1) generate the secure boot key and burn it on EFUSE * (without enabling R/W protection) @@ -91,9 +91,9 @@ esp_err_t esp_secure_boot_generate_digest(void); * * @important This function is intended to be called from bootloader code only. * - * @important In case of Secure Boot V1, this will enable r/w protection - * of secure boot key on EFUSE, therefore it is to be ensured that - * esp_secure_boot_generate_digest() is called before this .If secure boot is not + * @important In case of Secure Boot V1, this will enable r/w protection + * of secure boot key on EFUSE, therefore it is to be ensured that + * esp_secure_boot_generate_digest() is called before this .If secure boot is not * yet enabled for bootloader, this will * 1) enable R/W protection of secure boot key on EFUSE * 2) enable secure boot by blowing the EFUSE_RD_ABS_DONE_0 efuse. @@ -116,9 +116,9 @@ esp_err_t esp_secure_boot_permanently_enable(void); * enabled on the chip via efuse. * * @important This function is intended to be called from bootloader code only. - * - * @important In case of Secure Boot V2, this will enable write protection - * of secure boot key on EFUSE in BLK2. .If secure boot is not + * + * @important In case of Secure Boot V2, this will enable write protection + * of secure boot key on EFUSE in BLK2. .If secure boot is not * yet enabled for bootloader, this will * 1) enable W protection of secure boot key on EFUSE * 2) enable secure boot by blowing the EFUSE_RD_ABS_DONE_1 efuse. @@ -127,7 +127,7 @@ esp_err_t esp_secure_boot_permanently_enable(void); * ROM bootloader does this.) * * @param image_data Image metadata of the application to be loaded. - * + * * Will fail if efuses have been part-burned in a way that indicates * secure boot should not or could not be correctly enabled. * @@ -141,7 +141,7 @@ esp_err_t esp_secure_boot_v2_permanently_enable(const esp_image_metadata_t *imag * * For ECDSA Scheme (Secure Boot V1) - deterministic ECDSA w/ SHA256 image * For RSA Scheme (Secure Boot V2) - RSA-PSS Verification of the SHA-256 image - * + * * Public key is compiled into the calling program in the ECDSA Scheme. * See the apt docs/security/secure-boot-v1.rst or docs/security/secure-boot-v2.rst for details. * diff --git a/components/bootloader_support/include_bootloader/bootloader_utility.h b/components/bootloader_support/include_bootloader/bootloader_utility.h index 040d4d5d1d..8e534756c6 100644 --- a/components/bootloader_support/include_bootloader/bootloader_utility.h +++ b/components/bootloader_support/include_bootloader/bootloader_utility.h @@ -117,13 +117,13 @@ void bootloader_debug_buffer(const void *buffer, size_t length, const char *labe /** @brief Generates the digest of the data between offset & offset+length. * * This function should be used when the size of the data is larger than 3.2MB. - * The MMU capacity is 3.2MB (50 pages - 64KB each). This function generates the SHA-256 - * of the data in chunks of 3.2MB, considering the MMU capacity. - * + * The MMU capacity is 3.2MB (50 pages - 64KB each). This function generates the SHA-256 + * of the data in chunks of 3.2MB, considering the MMU capacity. + * * @param[in] flash_offset Offset of the data in flash. * @param[in] len Length of data in bytes. - * @param[out] digest Pointer to buffer where the digest is written, if ESP_OK is returned. - * + * @param[out] digest Pointer to buffer where the digest is written, if ESP_OK is returned. + * * @return ESP_OK if secure boot digest is generated successfully. */ esp_err_t bootloader_sha256_flash_contents(uint32_t flash_offset, uint32_t len, uint8_t *digest); diff --git a/components/bootloader_support/src/bootloader_clock_init.c b/components/bootloader_support/src/bootloader_clock_init.c index 283e207f83..7f373beaf5 100644 --- a/components/bootloader_support/src/bootloader_clock_init.c +++ b/components/bootloader_support/src/bootloader_clock_init.c @@ -78,5 +78,3 @@ __attribute__((weak)) void bootloader_clock_configure(void) } #endif // CONFIG_ESP_SYSTEM_RTC_EXT_XTAL } - - diff --git a/components/bootloader_support/src/bootloader_efuse_esp32s3.c b/components/bootloader_support/src/bootloader_efuse_esp32s3.c index 6c11aa4a47..19b1056be4 100644 --- a/components/bootloader_support/src/bootloader_efuse_esp32s3.c +++ b/components/bootloader_support/src/bootloader_efuse_esp32s3.c @@ -25,4 +25,4 @@ uint32_t bootloader_common_get_chip_ver_pkg(void) { // should return the same value as esp_efuse_get_pkg_ver() return 0; -} \ No newline at end of file +} diff --git a/components/bootloader_support/src/bootloader_flash.c b/components/bootloader_support/src/bootloader_flash.c index 45f6f5645b..c3f3fbb93f 100644 --- a/components/bootloader_support/src/bootloader_flash.c +++ b/components/bootloader_support/src/bootloader_flash.c @@ -499,4 +499,4 @@ esp_err_t bootloader_flash_wrap_set(spi_flash_wrap_mode_t mode) SPIFLASH.user.val = reg_bkp_usr; return ESP_OK; } -#endif //SOC_CACHE_SUPPORT_WRAP \ No newline at end of file +#endif //SOC_CACHE_SUPPORT_WRAP diff --git a/components/bootloader_support/src/bootloader_mem.c b/components/bootloader_support/src/bootloader_mem.c index 50d22ff230..26840e6640 100644 --- a/components/bootloader_support/src/bootloader_mem.c +++ b/components/bootloader_support/src/bootloader_mem.c @@ -45,4 +45,4 @@ void bootloader_init_mem(void) // protect memory region cpu_configure_region_protection(); -} \ No newline at end of file +} diff --git a/components/bootloader_support/src/esp32s3/flash_encrypt.c b/components/bootloader_support/src/esp32s3/flash_encrypt.c index b4841710d5..f7cff92435 100644 --- a/components/bootloader_support/src/esp32s3/flash_encrypt.c +++ b/components/bootloader_support/src/esp32s3/flash_encrypt.c @@ -300,8 +300,8 @@ static esp_err_t encrypt_bootloader(void) if (err != ESP_OK) { ESP_LOGE(TAG, "Failed to encrypt bootloader in place: 0x%x", err); return err; - } - + } + ESP_LOGI(TAG, "bootloader encrypted successfully"); return err; } diff --git a/components/bootloader_support/src/esp_image_format.c b/components/bootloader_support/src/esp_image_format.c index 03ef3bcdb6..2c39650995 100644 --- a/components/bootloader_support/src/esp_image_format.c +++ b/components/bootloader_support/src/esp_image_format.c @@ -876,4 +876,4 @@ int esp_image_get_flash_size(esp_image_flash_size_t app_flash_size) default: return 0; } -} \ No newline at end of file +} diff --git a/components/bootloader_support/src/flash_encrypt.c b/components/bootloader_support/src/flash_encrypt.c index 465fb8483d..1fc650f45b 100644 --- a/components/bootloader_support/src/flash_encrypt.c +++ b/components/bootloader_support/src/flash_encrypt.c @@ -84,12 +84,12 @@ void esp_flash_write_protect_crypt_cnt(void) esp_flash_enc_mode_t esp_get_flash_encryption_mode(void) { bool flash_crypt_cnt_wr_dis = false; -#if CONFIG_IDF_TARGET_ESP32 +#if CONFIG_IDF_TARGET_ESP32 uint8_t dis_dl_enc = 0, dis_dl_dec = 0, dis_dl_cache = 0; #elif CONFIG_IDF_TARGET_ESP32S2 - uint8_t dis_dl_enc = 0; - uint8_t dis_dl_icache = 0; - uint8_t dis_dl_dcache = 0; + uint8_t dis_dl_enc = 0; + uint8_t dis_dl_icache = 0; + uint8_t dis_dl_dcache = 0; #endif diff --git a/components/bootloader_support/src/flash_partitions.c b/components/bootloader_support/src/flash_partitions.c index 51c6b33c61..c95b2b0da0 100644 --- a/components/bootloader_support/src/flash_partitions.c +++ b/components/bootloader_support/src/flash_partitions.c @@ -82,4 +82,3 @@ esp_err_t esp_partition_table_verify(const esp_partition_info_t *partition_table } return ESP_ERR_INVALID_STATE; } - diff --git a/components/bootloader_support/src/idf/secure_boot_signatures.c b/components/bootloader_support/src/idf/secure_boot_signatures.c index 57d753adc2..03533a0e46 100644 --- a/components/bootloader_support/src/idf/secure_boot_signatures.c +++ b/components/bootloader_support/src/idf/secure_boot_signatures.c @@ -312,7 +312,7 @@ esp_err_t esp_secure_boot_verify_rsa_signature_block(const ets_secure_boot_signa goto exit; } - ret = mbedtls_rsa_rsassa_pss_verify( &pk, mbedtls_ctr_drbg_random, &ctr_drbg, MBEDTLS_RSA_PUBLIC, MBEDTLS_MD_SHA256, DIGEST_LEN, + ret = mbedtls_rsa_rsassa_pss_verify( &pk, mbedtls_ctr_drbg_random, &ctr_drbg, MBEDTLS_RSA_PUBLIC, MBEDTLS_MD_SHA256, DIGEST_LEN, sig_block->block[i].image_digest, sig_be); if (ret != 0) { ESP_LOGE(TAG, "Failed mbedtls_rsa_rsassa_pss_verify, err: %d", ret); diff --git a/components/bt/common/btc/core/btc_manage.c b/components/bt/common/btc/core/btc_manage.c index 6c96be3cc4..38e6e97b2b 100644 --- a/components/bt/common/btc/core/btc_manage.c +++ b/components/bt/common/btc/core/btc_manage.c @@ -50,5 +50,3 @@ void *btc_profile_cb_get(btc_pid_t profile_id) return btc_profile_cb_tab[profile_id]; } - - diff --git a/components/bt/common/btc/core/btc_task.c b/components/bt/common/btc/core/btc_task.c index add92c0838..1d728242dd 100644 --- a/components/bt/common/btc/core/btc_task.c +++ b/components/bt/common/btc/core/btc_task.c @@ -441,4 +441,3 @@ int get_btc_work_queue_size(void) { return osi_thread_queue_wait_size(btc_thread, 0); } - diff --git a/components/bt/common/osi/fixed_queue.c b/components/bt/common/osi/fixed_queue.c index f77ee23511..0f1ba9b7c2 100644 --- a/components/bt/common/osi/fixed_queue.c +++ b/components/bt/common/osi/fixed_queue.c @@ -139,7 +139,7 @@ bool fixed_queue_enqueue(fixed_queue_t *queue, void *data, uint32_t timeout) } osi_mutex_lock(&queue->lock, OSI_MUTEX_MAX_TIMEOUT); - status = list_append(queue->list, data); //Check whether enqueued success + status = list_append(queue->list, data); //Check whether enqueued success osi_mutex_unlock(&queue->lock); if(status == true ) @@ -254,4 +254,3 @@ void fixed_queue_process(fixed_queue_t *queue) queue->dequeue_ready(queue); } } - diff --git a/components/bt/common/osi/hash_functions.c b/components/bt/common/osi/hash_functions.c index 9622f8d696..d4a39ed462 100644 --- a/components/bt/common/osi/hash_functions.c +++ b/components/bt/common/osi/hash_functions.c @@ -61,4 +61,3 @@ void hash_function_blob(const unsigned char *s, unsigned int len, hash_key_t h) h[0] = (h[0] << 7) + h[0] + *s++; } } - diff --git a/components/bt/common/osi/hash_map.c b/components/bt/common/osi/hash_map.c index bd7f67d00b..841e84f6eb 100644 --- a/components/bt/common/osi/hash_map.c +++ b/components/bt/common/osi/hash_map.c @@ -177,7 +177,7 @@ bool hash_map_erase(hash_map_t *hash_map, const void *key) list_free(hash_map->bucket[hash_key].list); hash_map->bucket[hash_key].list = NULL; } - + return remove; } diff --git a/components/bt/common/osi/include/osi/mutex.h b/components/bt/common/osi/include/osi/mutex.h index 1b9784d62b..2055b2c10f 100644 --- a/components/bt/common/osi/include/osi/mutex.h +++ b/components/bt/common/osi/include/osi/mutex.h @@ -50,4 +50,3 @@ void osi_mutex_global_lock(void); void osi_mutex_global_unlock(void); #endif /* __MUTEX_H__ */ - diff --git a/components/bt/common/osi/list.c b/components/bt/common/osi/list.c index ed0d2de24c..c951d2126f 100644 --- a/components/bt/common/osi/list.c +++ b/components/bt/common/osi/list.c @@ -309,4 +309,4 @@ list_node_t *list_delete_node(list_t *list, list_node_t *node) --list->length; return next; -} \ No newline at end of file +} diff --git a/components/bt/common/osi/thread.c b/components/bt/common/osi/thread.c index 04583061c3..c3786fe9f6 100644 --- a/components/bt/common/osi/thread.c +++ b/components/bt/common/osi/thread.c @@ -99,7 +99,7 @@ static void osi_thread_stop(osi_thread_t *thread) //join ret = osi_thread_join(thread, 1000); //wait 1000ms - + //if join failed, delete the task here if (ret != 0 && thread->thread_handle) { vTaskDelete(thread->thread_handle); @@ -160,7 +160,7 @@ osi_thread_t *osi_thread_create(const char *name, size_t stack_size, int priorit osi_sem_take(&start_arg.start_sem, OSI_SEM_MAX_TIMEOUT); osi_sem_free(&start_arg.start_sem); - + return thread; _err: diff --git a/components/bt/controller/bt.c b/components/bt/controller/bt.c index e4bcf69f02..db8713f29c 100644 --- a/components/bt/controller/bt.c +++ b/components/bt/controller/bt.c @@ -1228,7 +1228,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg) if (btdm_dram_available_region[0].mode == ESP_BT_MODE_IDLE) { return ESP_ERR_INVALID_STATE; } - + osi_funcs_p = (struct osi_funcs_t *)malloc_internal_wrapper(sizeof(struct osi_funcs_t)); if (osi_funcs_p == NULL) { return ESP_ERR_NO_MEM; diff --git a/components/bt/esp_ble_mesh/Kconfig.in b/components/bt/esp_ble_mesh/Kconfig.in index c335a2995a..21765cc81b 100644 --- a/components/bt/esp_ble_mesh/Kconfig.in +++ b/components/bt/esp_ble_mesh/Kconfig.in @@ -1123,4 +1123,3 @@ if BLE_MESH endmenu endif # BLE_MESH - diff --git a/components/bt/esp_ble_mesh/api/core/esp_ble_mesh_networking_api.c b/components/bt/esp_ble_mesh/api/core/esp_ble_mesh_networking_api.c index 011c77a620..32d9cc30cd 100644 --- a/components/bt/esp_ble_mesh/api/core/esp_ble_mesh_networking_api.c +++ b/components/bt/esp_ble_mesh/api/core/esp_ble_mesh_networking_api.c @@ -536,4 +536,3 @@ const uint8_t *esp_ble_mesh_get_fast_prov_app_key(uint16_t net_idx, uint16_t app return bt_mesh_get_fast_prov_app_key(net_idx, app_idx); } #endif /* CONFIG_BLE_MESH_FAST_PROV */ - diff --git a/components/bt/esp_ble_mesh/api/core/esp_ble_mesh_provisioning_api.c b/components/bt/esp_ble_mesh/api/core/esp_ble_mesh_provisioning_api.c index c34b9a4f0e..94c2d1a846 100644 --- a/components/bt/esp_ble_mesh/api/core/esp_ble_mesh_provisioning_api.c +++ b/components/bt/esp_ble_mesh/api/core/esp_ble_mesh_provisioning_api.c @@ -530,4 +530,3 @@ esp_err_t esp_ble_mesh_set_fast_prov_action(esp_ble_mesh_fast_prov_action_t acti } #endif /* CONFIG_BLE_MESH_FAST_PROV */ - diff --git a/components/bt/esp_ble_mesh/api/core/include/esp_ble_mesh_common_api.h b/components/bt/esp_ble_mesh/api/core/include/esp_ble_mesh_common_api.h index 634327d3f8..a5c9eaf79b 100644 --- a/components/bt/esp_ble_mesh/api/core/include/esp_ble_mesh_common_api.h +++ b/components/bt/esp_ble_mesh/api/core/include/esp_ble_mesh_common_api.h @@ -40,7 +40,7 @@ esp_err_t esp_ble_mesh_init(esp_ble_mesh_prov_t *prov, esp_ble_mesh_comp_t *comp /** * @brief De-initialize BLE Mesh module. - * + * * @note This function shall be invoked after esp_ble_mesh_client_model_deinit(). * * @param[in] param: Pointer to the structure of BLE Mesh deinit parameters. diff --git a/components/bt/esp_ble_mesh/api/core/include/esp_ble_mesh_proxy_api.h b/components/bt/esp_ble_mesh/api/core/include/esp_ble_mesh_proxy_api.h index 6f6f4d0c16..fbc9fa6342 100644 --- a/components/bt/esp_ble_mesh/api/core/include/esp_ble_mesh_proxy_api.h +++ b/components/bt/esp_ble_mesh/api/core/include/esp_ble_mesh_proxy_api.h @@ -124,4 +124,3 @@ esp_err_t esp_ble_mesh_proxy_client_remove_filter_addr(uint8_t conn_handle, uint #endif #endif /* _ESP_BLE_MESH_PROXY_API_H_ */ - diff --git a/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_config_model_api.h b/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_config_model_api.h index 2d5c6d45ac..02df4f0380 100644 --- a/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_config_model_api.h +++ b/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_config_model_api.h @@ -823,4 +823,3 @@ esp_err_t esp_ble_mesh_config_client_set_state(esp_ble_mesh_client_common_param_ #endif #endif /* _ESP_BLE_MESH_CONFIG_MODEL_API_H_ */ - diff --git a/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_generic_model_api.h b/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_generic_model_api.h index db908edbb9..e2a1e55e15 100644 --- a/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_generic_model_api.h +++ b/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_generic_model_api.h @@ -1302,4 +1302,3 @@ esp_err_t esp_ble_mesh_register_generic_server_callback(esp_ble_mesh_generic_ser #endif #endif /* _ESP_BLE_MESH_GENERIC_MODEL_API_H_ */ - diff --git a/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_lighting_model_api.h b/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_lighting_model_api.h index a0377ca067..645471456d 100644 --- a/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_lighting_model_api.h +++ b/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_lighting_model_api.h @@ -1680,4 +1680,3 @@ esp_err_t esp_ble_mesh_register_lighting_server_callback(esp_ble_mesh_lighting_s #endif #endif /* _ESP_BLE_MESH_LIGHTING_MODEL_API_H_ */ - diff --git a/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_sensor_model_api.h b/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_sensor_model_api.h index 0c4343a8cf..ed8ec3b001 100644 --- a/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_sensor_model_api.h +++ b/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_sensor_model_api.h @@ -715,5 +715,3 @@ esp_err_t esp_ble_mesh_register_sensor_server_callback(esp_ble_mesh_sensor_serve #endif #endif /* _ESP_BLE_MESH_SENSOR_MODEL_API_H_ */ - - diff --git a/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_time_scene_model_api.h b/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_time_scene_model_api.h index 690cab718b..d0ccb09d43 100644 --- a/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_time_scene_model_api.h +++ b/components/bt/esp_ble_mesh/api/models/include/esp_ble_mesh_time_scene_model_api.h @@ -917,4 +917,3 @@ esp_err_t esp_ble_mesh_register_time_scene_server_callback(esp_ble_mesh_time_sce #endif #endif /* _ESP_BLE_MESH_TIME_SCENE_MODEL_API_H_ */ - diff --git a/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_lighting_model.h b/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_lighting_model.h index 0173c15e4e..2393b69f86 100644 --- a/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_lighting_model.h +++ b/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_lighting_model.h @@ -81,4 +81,3 @@ void btc_ble_mesh_lighting_server_cb_handler(btc_msg_t *msg); #endif #endif /* _BTC_BLE_MESH_LIGHTING_MODEL_H_ */ - diff --git a/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_sensor_model.h b/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_sensor_model.h index 6e7e0659a2..8503c16965 100644 --- a/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_sensor_model.h +++ b/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_sensor_model.h @@ -80,4 +80,3 @@ void btc_ble_mesh_sensor_server_cb_handler(btc_msg_t *msg); #endif #endif /* _BTC_BLE_MESH_SENSOR_MODEL_H_ */ - diff --git a/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_time_scene_model.h b/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_time_scene_model.h index c021aa52db..5860de5e00 100644 --- a/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_time_scene_model.h +++ b/components/bt/esp_ble_mesh/btc/include/btc_ble_mesh_time_scene_model.h @@ -81,4 +81,3 @@ void btc_ble_mesh_time_scene_server_cb_handler(btc_msg_t *msg); #endif #endif /* _BTC_BLE_MESH_TIME_SCENE_MODEL_H_ */ - diff --git a/components/bt/esp_ble_mesh/mesh_common/include/mesh_buf.h b/components/bt/esp_ble_mesh/mesh_common/include/mesh_buf.h index 901aade955..d022510deb 100644 --- a/components/bt/esp_ble_mesh/mesh_common/include/mesh_buf.h +++ b/components/bt/esp_ble_mesh/mesh_common/include/mesh_buf.h @@ -1755,4 +1755,3 @@ static inline size_t net_buf_frags_len(struct net_buf *buf) #endif #endif /* _BLE_MESH_BUF_H_ */ - diff --git a/components/bt/esp_ble_mesh/mesh_common/include/mesh_common.h b/components/bt/esp_ble_mesh/mesh_common/include/mesh_common.h index f78a557762..1142d7f168 100644 --- a/components/bt/esp_ble_mesh/mesh_common/include/mesh_common.h +++ b/components/bt/esp_ble_mesh/mesh_common/include/mesh_common.h @@ -77,4 +77,4 @@ u8_t bt_mesh_get_device_role(struct bt_mesh_model *model, bool srv_send); } #endif -#endif /* _BLE_MESH_COMMON_H_ */ \ No newline at end of file +#endif /* _BLE_MESH_COMMON_H_ */ diff --git a/components/bt/esp_ble_mesh/mesh_common/include/mesh_config.h b/components/bt/esp_ble_mesh/mesh_common/include/mesh_config.h index f019104383..2da99c2431 100644 --- a/components/bt/esp_ble_mesh/mesh_common/include/mesh_config.h +++ b/components/bt/esp_ble_mesh/mesh_common/include/mesh_config.h @@ -49,4 +49,4 @@ extern "C" { } #endif -#endif /* _BLE_MESH_CONFIG_H_ */ \ No newline at end of file +#endif /* _BLE_MESH_CONFIG_H_ */ diff --git a/components/bt/esp_ble_mesh/mesh_common/include/mesh_kernel.h b/components/bt/esp_ble_mesh/mesh_common/include/mesh_kernel.h index 48c40d2595..8a56f8f036 100644 --- a/components/bt/esp_ble_mesh/mesh_common/include/mesh_kernel.h +++ b/components/bt/esp_ble_mesh/mesh_common/include/mesh_kernel.h @@ -57,4 +57,3 @@ void k_sleep(s32_t duration); #endif #endif /* _BLE_MESH_KERNEL_H_ */ - diff --git a/components/bt/esp_ble_mesh/mesh_common/include/mesh_mutex.h b/components/bt/esp_ble_mesh/mesh_common/include/mesh_mutex.h index faded20d3e..33bdcbf435 100644 --- a/components/bt/esp_ble_mesh/mesh_common/include/mesh_mutex.h +++ b/components/bt/esp_ble_mesh/mesh_common/include/mesh_mutex.h @@ -55,4 +55,3 @@ void bt_mesh_mutex_deinit(void); #endif #endif /* _BLE_MESH_MUTEX_H_ */ - diff --git a/components/bt/esp_ble_mesh/mesh_common/include/mesh_slist.h b/components/bt/esp_ble_mesh/mesh_common/include/mesh_slist.h index fce4237fca..a9094c8a11 100644 --- a/components/bt/esp_ble_mesh/mesh_common/include/mesh_slist.h +++ b/components/bt/esp_ble_mesh/mesh_common/include/mesh_slist.h @@ -465,4 +465,3 @@ static inline bool sys_slist_find_and_remove(sys_slist_t *list, #endif #endif /* _BLE_MESH_SLIST_H_ */ - diff --git a/components/bt/esp_ble_mesh/mesh_common/include/mesh_timer.h b/components/bt/esp_ble_mesh/mesh_common/include/mesh_timer.h index 6f47d8184c..d8473601e5 100644 --- a/components/bt/esp_ble_mesh/mesh_common/include/mesh_timer.h +++ b/components/bt/esp_ble_mesh/mesh_common/include/mesh_timer.h @@ -264,4 +264,3 @@ void bt_mesh_timer_deinit(void); #endif #endif /* _BLE_MESH_TIMER_H_ */ - diff --git a/components/bt/esp_ble_mesh/mesh_common/mesh_buf.c b/components/bt/esp_ble_mesh/mesh_common/mesh_buf.c index 1d7a711de8..986f86ea46 100644 --- a/components/bt/esp_ble_mesh/mesh_common/mesh_buf.c +++ b/components/bt/esp_ble_mesh/mesh_common/mesh_buf.c @@ -757,4 +757,4 @@ size_t net_buf_append_bytes(struct net_buf *buf, size_t len, /* Unreachable */ return 0; -} \ No newline at end of file +} diff --git a/components/bt/esp_ble_mesh/mesh_core/include/mesh_bearer_adapt.h b/components/bt/esp_ble_mesh/mesh_core/include/mesh_bearer_adapt.h index 1000290748..5ecc27ff35 100644 --- a/components/bt/esp_ble_mesh/mesh_core/include/mesh_bearer_adapt.h +++ b/components/bt/esp_ble_mesh/mesh_core/include/mesh_bearer_adapt.h @@ -813,4 +813,3 @@ int bt_mesh_update_exceptional_list(u8_t sub_code, u8_t type, void *info); #endif #endif /* _BLE_MESH_BEARER_ADAPT_H_ */ - diff --git a/components/bt/esp_ble_mesh/mesh_core/provisioner_prov.h b/components/bt/esp_ble_mesh/mesh_core/provisioner_prov.h index 04c961e9fb..4f2b51f74c 100644 --- a/components/bt/esp_ble_mesh/mesh_core/provisioner_prov.h +++ b/components/bt/esp_ble_mesh/mesh_core/provisioner_prov.h @@ -147,7 +147,7 @@ int bt_mesh_provisioner_prov_init(const struct bt_mesh_prov *prov_info); * related information. * * @param[in] erase: Indicate if erasing provisioning information from flash. - * + * * @return Zero - success, otherwise - fail */ int bt_mesh_provisioner_prov_deinit(bool erase); diff --git a/components/bt/esp_ble_mesh/mesh_models/client/include/client_common.h b/components/bt/esp_ble_mesh/mesh_models/client/include/client_common.h index 9883efe208..70737c9121 100644 --- a/components/bt/esp_ble_mesh/mesh_models/client/include/client_common.h +++ b/components/bt/esp_ble_mesh/mesh_models/client/include/client_common.h @@ -128,4 +128,3 @@ int bt_mesh_set_client_model_role(struct bt_mesh_model *model, u8_t role); #endif #endif /* _CLIENT_COMMON_H_ */ - diff --git a/components/bt/esp_ble_mesh/mesh_models/common/include/device_property.h b/components/bt/esp_ble_mesh/mesh_models/common/include/device_property.h index 9236032f5e..c6b705eb7b 100644 --- a/components/bt/esp_ble_mesh/mesh_models/common/include/device_property.h +++ b/components/bt/esp_ble_mesh/mesh_models/common/include/device_property.h @@ -1355,4 +1355,4 @@ u8_t bt_mesh_get_dev_prop_len(u16_t prop_id); } #endif -#endif /* _DEVICE_PROPERTY_H_ */ \ No newline at end of file +#endif /* _DEVICE_PROPERTY_H_ */ diff --git a/components/bt/host/bluedroid/api/esp_bt_main.c b/components/bt/host/bluedroid/api/esp_bt_main.c index f5b758918c..9a429e90d8 100644 --- a/components/bt/host/bluedroid/api/esp_bt_main.c +++ b/components/bt/host/bluedroid/api/esp_bt_main.c @@ -133,7 +133,7 @@ esp_err_t esp_bluedroid_init(void) osi_mem_dbg_init(); #endif - /* + /* * BTC Init */ ret = btc_init(); @@ -211,4 +211,3 @@ esp_err_t esp_bluedroid_deinit(void) return ESP_OK; } - diff --git a/components/bt/host/bluedroid/api/esp_gatt_common_api.c b/components/bt/host/bluedroid/api/esp_gatt_common_api.c index 983092516f..f2edc6c897 100644 --- a/components/bt/host/bluedroid/api/esp_gatt_common_api.c +++ b/components/bt/host/bluedroid/api/esp_gatt_common_api.c @@ -59,7 +59,7 @@ extern UINT16 L2CA_GetFreePktBufferNum_LE(void); * sendable packets number on controller * */ - + uint16_t esp_ble_get_sendable_packets_num (void) { return L2CA_GetFreePktBufferNum_LE(); @@ -69,15 +69,15 @@ uint16_t esp_ble_get_sendable_packets_num (void) * @brief This function is used to query the number of available buffers for the current connection. * When you need to query the current available buffer number, it is recommended to use this API. * @param[in] conn_id: current connection id. - * + * * @return * Number of available buffers for the current connection * */ - + extern UINT16 L2CA_GetCurFreePktBufferNum_LE(UINT16 conn_id); uint16_t esp_ble_get_cur_sendable_packets_num (uint16_t connid) { return L2CA_GetCurFreePktBufferNum_LE(connid); } -#endif \ No newline at end of file +#endif diff --git a/components/bt/host/bluedroid/api/esp_gattc_api.c b/components/bt/host/bluedroid/api/esp_gattc_api.c index a3a086a857..c76803dfdf 100644 --- a/components/bt/host/bluedroid/api/esp_gattc_api.c +++ b/components/bt/host/bluedroid/api/esp_gattc_api.c @@ -178,7 +178,7 @@ esp_gatt_status_t esp_ble_gattc_get_all_char(esp_gatt_if_t gattc_if, esp_gatt_status_t esp_ble_gattc_get_all_descr(esp_gatt_if_t gattc_if, uint16_t conn_id, - uint16_t char_handle, + uint16_t char_handle, esp_gattc_descr_elem_t *result, uint16_t *count, uint16_t offset) { @@ -196,7 +196,7 @@ esp_gatt_status_t esp_ble_gattc_get_all_descr(esp_gatt_if_t gattc_if, return btc_ble_gattc_get_all_descr(conn_hdl, char_handle, result, count, offset); } -esp_gatt_status_t esp_ble_gattc_get_char_by_uuid(esp_gatt_if_t gattc_if, +esp_gatt_status_t esp_ble_gattc_get_char_by_uuid(esp_gatt_if_t gattc_if, uint16_t conn_id, uint16_t start_handle, uint16_t end_handle, @@ -252,7 +252,7 @@ esp_gatt_status_t esp_ble_gattc_get_descr_by_char_handle(esp_gatt_if_t gattc_if, *count = 0; return ESP_GATT_INVALID_HANDLE; } - + if (result == NULL || count == NULL || *count == 0) { return ESP_GATT_INVALID_PDU; } @@ -326,7 +326,7 @@ esp_gatt_status_t esp_ble_gattc_get_db(esp_gatt_if_t gattc_if, uint16_t conn_id, } -esp_err_t esp_ble_gattc_read_char (esp_gatt_if_t gattc_if, +esp_err_t esp_ble_gattc_read_char (esp_gatt_if_t gattc_if, uint16_t conn_id, uint16_t handle, esp_gatt_auth_req_t auth_req) { @@ -469,7 +469,7 @@ esp_err_t esp_ble_gattc_write_char_descr (esp_gatt_if_t gattc_if, return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gattc_args_t), btc_gattc_arg_deep_copy) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); } -esp_err_t esp_ble_gattc_prepare_write(esp_gatt_if_t gattc_if, +esp_err_t esp_ble_gattc_prepare_write(esp_gatt_if_t gattc_if, uint16_t conn_id, uint16_t handle, uint16_t offset, uint16_t value_len, @@ -643,4 +643,3 @@ esp_err_t esp_ble_gattc_cache_get_addr_list(esp_gatt_if_t gattc_if) } #endif ///GATTC_INCLUDED == TRUE - diff --git a/components/bt/host/bluedroid/api/esp_gatts_api.c b/components/bt/host/bluedroid/api/esp_gatts_api.c index 91edc26b57..23ba33e589 100644 --- a/components/bt/host/bluedroid/api/esp_gatts_api.c +++ b/components/bt/host/bluedroid/api/esp_gatts_api.c @@ -42,7 +42,7 @@ esp_err_t esp_ble_gatts_app_register(uint16_t app_id) btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + //if (app_id < ESP_APP_ID_MIN || app_id > ESP_APP_ID_MAX) { if (app_id > ESP_APP_ID_MAX) { return ESP_ERR_INVALID_ARG; @@ -63,7 +63,7 @@ esp_err_t esp_ble_gatts_app_unregister(esp_gatt_if_t gatts_if) btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_APP_UNREGISTER; @@ -79,7 +79,7 @@ esp_err_t esp_ble_gatts_create_service(esp_gatt_if_t gatts_if, btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_CREATE_SERVICE; @@ -119,7 +119,7 @@ esp_err_t esp_ble_gatts_add_included_service(uint16_t service_handle, uint16_t i btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_ADD_INCLUDE_SERVICE; @@ -184,7 +184,7 @@ esp_err_t esp_ble_gatts_add_char_descr (uint16_t service_handle, if (status != ESP_OK){ return status; } - + memset(&arg, 0, sizeof(btc_ble_gatts_args_t)); msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; @@ -212,7 +212,7 @@ esp_err_t esp_ble_gatts_delete_service(uint16_t service_handle) btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_DELETE_SERVICE; @@ -227,7 +227,7 @@ esp_err_t esp_ble_gatts_start_service(uint16_t service_handle) btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_START_SERVICE; @@ -242,7 +242,7 @@ esp_err_t esp_ble_gatts_stop_service(uint16_t service_handle) btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_STOP_SERVICE; @@ -259,12 +259,12 @@ esp_err_t esp_ble_gatts_send_indicate(esp_gatt_if_t gatts_if, uint16_t conn_id, btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + if (L2CA_CheckIsCongest(L2CAP_ATT_CID, conn_id)) { LOG_DEBUG("%s, the l2cap chanel is congest.", __func__); return ESP_FAIL; } - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_SEND_INDICATE; @@ -287,7 +287,7 @@ esp_err_t esp_ble_gatts_send_response(esp_gatt_if_t gatts_if, uint16_t conn_id, btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_SEND_RESPONSE; @@ -336,7 +336,7 @@ esp_err_t esp_ble_gatts_open(esp_gatt_if_t gatts_if, esp_bd_addr_t remote_bda, b btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_OPEN; @@ -354,7 +354,7 @@ esp_err_t esp_ble_gatts_close(esp_gatt_if_t gatts_if, uint16_t conn_id) btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_CLOSE; @@ -370,17 +370,17 @@ esp_err_t esp_ble_gatts_send_service_change_indication(esp_gatt_if_t gatts_if, e btc_ble_gatts_args_t arg; ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - + msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_GATTS; msg.act = BTC_GATTS_ACT_SEND_SERVICE_CHANGE; arg.send_service_change.gatts_if = gatts_if; if(remote_bda) { - memcpy(&arg.send_service_change.remote_bda, remote_bda, sizeof(esp_bd_addr_t)); + memcpy(&arg.send_service_change.remote_bda, remote_bda, sizeof(esp_bd_addr_t)); } else { memset(arg.send_service_change.remote_bda, 0, sizeof(esp_bd_addr_t)); } - + return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gatts_args_t), NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); diff --git a/components/bt/host/bluedroid/api/esp_hf_ag_api.c b/components/bt/host/bluedroid/api/esp_hf_ag_api.c index 0f0ae3b6d7..959bf4df67 100644 --- a/components/bt/host/bluedroid/api/esp_hf_ag_api.c +++ b/components/bt/host/bluedroid/api/esp_hf_ag_api.c @@ -57,11 +57,11 @@ esp_err_t esp_bt_hf_init(esp_bd_addr_t remote_addr) msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_INIT_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); memcpy(&(arg.init), remote_addr, sizeof(esp_bd_addr_t)); - + /* Switch to BTC context */ bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), NULL); return (status == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL; @@ -76,11 +76,11 @@ esp_err_t esp_bt_hf_deinit(esp_bd_addr_t remote_addr) msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_DEINIT_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); memcpy(&(arg.deinit), remote_addr, sizeof(esp_bd_addr_t)); - + /* Switch to BTC context */ bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), NULL); return (status == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL; @@ -95,11 +95,11 @@ esp_err_t esp_bt_hf_connect(esp_bd_addr_t remote_addr) msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_CONNECT_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); memcpy(&(arg.connect), remote_addr, sizeof(esp_bd_addr_t)); - + /* Switch to BTC context */ bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), NULL); return (status == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL; @@ -114,11 +114,11 @@ esp_err_t esp_bt_hf_disconnect(esp_bd_addr_t remote_addr) msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_DISCONNECT_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); memcpy(&(arg.disconnect), remote_addr, sizeof(esp_bd_addr_t)); - + /* Switch to BTC context */ bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), NULL); return (status == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL; @@ -133,7 +133,7 @@ esp_err_t esp_bt_hf_connect_audio(esp_bd_addr_t remote_addr) msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_CONNECT_AUDIO_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); memcpy(&(arg.connect_audio), remote_addr, sizeof(esp_bd_addr_t)); @@ -152,11 +152,11 @@ esp_err_t esp_bt_hf_disconnect_audio(esp_bd_addr_t remote_addr) msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_DISCONNECT_AUDIO_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); memcpy(&(arg.disconnect_audio), remote_addr, sizeof(esp_bd_addr_t)); - + /* Switch to BTC context */ bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), NULL); return (status == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL; @@ -171,12 +171,12 @@ esp_err_t esp_bt_hf_vra(esp_bd_addr_t remote_addr, esp_hf_vr_state_t value) msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_VRA_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); arg.vra_rep.value = value; memcpy(&(arg.volcon.remote_addr), remote_addr, sizeof(esp_bd_addr_t)); - + /* Switch to BTC context */ bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), NULL); return (status == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL; @@ -191,13 +191,13 @@ esp_err_t esp_bt_hf_volume_control(esp_bd_addr_t remote_addr, esp_hf_volume_cont msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_VOLUME_CONTROL_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); arg.volcon.target_type = type; arg.volcon.volume = volume; memcpy(&(arg.volcon.remote_addr), remote_addr, sizeof(esp_bd_addr_t)); - + /* Switch to BTC context */ bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), NULL); return (status == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL; @@ -212,12 +212,12 @@ esp_err_t esp_hf_unat_response(esp_bd_addr_t remote_addr, char *unat) msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_UNAT_RESPONSE_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); arg.unat_rep.unat = unat; memcpy(&(arg.unat_rep.remote_addr), remote_addr, sizeof(esp_bd_addr_t)); - + /* Switch to BTC context */ bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), btc_hf_arg_deep_copy); return (status == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL; @@ -232,19 +232,19 @@ esp_err_t esp_bt_hf_cmee_response(esp_bd_addr_t remote_addr, esp_hf_at_response_ msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_CME_ERR_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); arg.ext_at.response_code = response_code; arg.ext_at.error_code = error_code; memcpy(&(arg.ext_at.remote_addr), remote_addr, sizeof(esp_bd_addr_t)); - + /* Switch to BTC context */ bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), NULL); return (status == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL; } -esp_err_t esp_bt_hf_indchange_notification(esp_bd_addr_t remote_addr, +esp_err_t esp_bt_hf_indchange_notification(esp_bd_addr_t remote_addr, esp_hf_call_status_t call_state, esp_hf_call_setup_status_t call_setup_state, esp_hf_network_state_t ntk_state, int signal) @@ -256,7 +256,7 @@ esp_err_t esp_bt_hf_indchange_notification(esp_bd_addr_t remote_addr, msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_IND_NOTIFICATION_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); memcpy(&(arg.ind_change.remote_addr), remote_addr, sizeof(esp_bd_addr_t)); @@ -283,7 +283,7 @@ esp_err_t esp_bt_hf_cind_response(esp_bd_addr_t remote_addr, msg.sig = BTC_SIG_API_CALL; msg.pid = BTC_PID_HF; msg.act = BTC_HF_CIND_RESPONSE_EVT; - + btc_hf_args_t arg; memset(&arg, 0, sizeof(btc_hf_args_t)); memcpy(&(arg.cind_rep.remote_addr), remote_addr, sizeof(esp_bd_addr_t)); @@ -526,4 +526,4 @@ void esp_hf_outgoing_data_ready(void) } #endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE ) */ -#endif // BTC_HF_INCLUDED \ No newline at end of file +#endif // BTC_HF_INCLUDED diff --git a/components/bt/host/bluedroid/api/include/api/esp_blufi_api.h b/components/bt/host/bluedroid/api/include/api/esp_blufi_api.h index f17fcbc228..5e0d9c3813 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_blufi_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_blufi_api.h @@ -116,7 +116,7 @@ typedef struct { } esp_blufi_ap_record_t; /** - * @brief BLUFI callback parameters union + * @brief BLUFI callback parameters union */ typedef union { /** @@ -175,7 +175,7 @@ typedef union { } sta_ssid; /*!< Blufi callback param of ESP_BLUFI_EVENT_RECV_STA_SSID */ /** - * @brief + * @brief * ESP_BLUFI_EVENT_RECV_STA_PASSWD */ struct blufi_recv_sta_passwd_evt_param { @@ -192,7 +192,7 @@ typedef union { } softap_ssid; /*!< Blufi callback param of ESP_BLUFI_EVENT_RECV_SOFTAP_SSID */ /** - * @brief + * @brief * ESP_BLUFI_EVENT_RECV_SOFTAP_PASSWD */ struct blufi_recv_softap_passwd_evt_param { @@ -208,7 +208,7 @@ typedef union { } softap_max_conn_num; /*!< Blufi callback param of ESP_BLUFI_EVENT_RECV_SOFTAP_MAX_CONN_NUM */ /** - * @brief + * @brief * ESP_BLUFI_EVENT_RECV_SOFTAP_AUTH_MODE */ struct blufi_recv_softap_auth_mode_evt_param { @@ -216,7 +216,7 @@ typedef union { } softap_auth_mode; /*!< Blufi callback param of ESP_BLUFI_EVENT_RECV_SOFTAP_AUTH_MODE */ /** - * @brief + * @brief * ESP_BLUFI_EVENT_RECV_SOFTAP_CHANNEL */ struct blufi_recv_softap_channel_evt_param { @@ -229,7 +229,7 @@ typedef union { struct blufi_recv_username_evt_param { uint8_t *name; /*!< Username point */ int name_len; /*!< Username length */ - } username; /*!< Blufi callback param of ESP_BLUFI_EVENT_RECV_USERNAME*/ + } username; /*!< Blufi callback param of ESP_BLUFI_EVENT_RECV_USERNAME*/ /** * @brief ESP_BLUFI_EVENT_RECV_CA_CERT @@ -277,7 +277,7 @@ typedef union { esp_blufi_error_state_t state; /*!< Blufi error state */ } report_error; /*!< Blufi callback param of ESP_BLUFI_EVENT_REPORT_ERROR */ /** - * @brief + * @brief * ESP_BLUFI_EVENT_RECV_CUSTOM_DATA */ struct blufi_recv_custom_data_evt_param { @@ -296,7 +296,7 @@ typedef void (* esp_blufi_event_cb_t)(esp_blufi_cb_event_t event, esp_blufi_cb_p /* security function declare */ /** - * @brief BLUFI negotiate data handler + * @brief BLUFI negotiate data handler * @param data : data from phone * @param len : length of data from phone * @param output_data : data want to send to phone @@ -307,7 +307,7 @@ typedef void (*esp_blufi_negotiate_data_handler_t)(uint8_t *data, int len, uint8 /** * @brief BLUFI encrypt the data after negotiate a share key * @param iv8 : initial vector(8bit), normally, blufi core will input packet sequence number - * @param crypt_data : plain text and encrypted data, the encrypt function must support autochthonous encrypt + * @param crypt_data : plain text and encrypted data, the encrypt function must support autochthonous encrypt * @param crypt_len : length of plain text * @return Nonnegative number is encrypted length, if error, return negative number; */ @@ -316,7 +316,7 @@ typedef int (* esp_blufi_encrypt_func_t)(uint8_t iv8, uint8_t *crypt_data, int c /** * @brief BLUFI decrypt the data after negotiate a share key * @param iv8 : initial vector(8bit), normally, blufi core will input packet sequence number - * @param crypt_data : encrypted data and plain text, the encrypt function must support autochthonous decrypt + * @param crypt_data : encrypted data and plain text, the encrypt function must support autochthonous decrypt * @param crypt_len : length of encrypted text * @return Nonnegative number is decrypted length, if error, return negative number; */ @@ -376,7 +376,7 @@ esp_err_t esp_blufi_profile_deinit(void); * @param opmode : wifi opmode * @param sta_conn_state : station is already in connection or not * @param softap_conn_num : softap connection number - * @param extra_info : extra information, such as sta_ssid, softap_ssid and etc. + * @param extra_info : extra information, such as sta_ssid, softap_ssid and etc. * * @return ESP_OK - success, other - failed * @@ -397,7 +397,7 @@ esp_err_t esp_blufi_send_wifi_list(uint16_t apCount, esp_blufi_ap_record_t *list /** * * @brief Get BLUFI profile version - * + * * @return Most 8bit significant is Great version, Least 8bit is Sub version * */ diff --git a/components/bt/host/bluedroid/api/include/api/esp_bt_main.h b/components/bt/host/bluedroid/api/include/api/esp_bt_main.h index fad010d2c2..d605906d16 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_bt_main.h +++ b/components/bt/host/bluedroid/api/include/api/esp_bt_main.h @@ -37,7 +37,7 @@ typedef enum { * */ esp_bluedroid_status_t esp_bluedroid_get_status(void); - + /** * @brief Enable bluetooth, must after esp_bluedroid_init() * diff --git a/components/bt/host/bluedroid/api/include/api/esp_gattc_api.h b/components/bt/host/bluedroid/api/include/api/esp_gattc_api.h index a65a153983..24655298b9 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_gattc_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_gattc_api.h @@ -358,8 +358,8 @@ esp_err_t esp_ble_gattc_send_mtu_req (esp_gatt_if_t gattc_if, uint16_t conn_id); /** - * @brief This function is called to get service from local cache. - * This function report service search result by a callback + * @brief This function is called to get service from local cache. + * This function report service search result by a callback * event, and followed by a service search complete event. * * @param[in] gattc_if: Gatt client access interface. @@ -815,10 +815,10 @@ esp_err_t esp_ble_gattc_cache_refresh(esp_bd_addr_t remote_bda); /** * @brief Add or delete the associated address with the source address. -* Note: The role of this API is mainly when the client side has stored a server-side database, -* when it needs to connect another device, but the device's attribute database is the same -* as the server database stored on the client-side, calling this API can use the database -* that the device has stored used as the peer server database to reduce the attribute +* Note: The role of this API is mainly when the client side has stored a server-side database, +* when it needs to connect another device, but the device's attribute database is the same +* as the server database stored on the client-side, calling this API can use the database +* that the device has stored used as the peer server database to reduce the attribute * database search and discovery process and speed up the connection time. * The associated address mains that device want to used the database has stored in the local cache. * The source address mains that device want to share the database to the associated address device. @@ -832,7 +832,7 @@ esp_err_t esp_ble_gattc_cache_refresh(esp_bd_addr_t remote_bda); * - other: failed * */ -esp_err_t esp_ble_gattc_cache_assoc(esp_gatt_if_t gattc_if, esp_bd_addr_t src_addr, +esp_err_t esp_ble_gattc_cache_assoc(esp_gatt_if_t gattc_if, esp_bd_addr_t src_addr, esp_bd_addr_t assoc_addr, bool is_assoc); /** * @brief Get the address list which has store the attribute table in the gattc cache. There will @@ -847,7 +847,7 @@ esp_err_t esp_ble_gattc_cache_assoc(esp_gatt_if_t gattc_if, esp_bd_addr_t src_ad esp_err_t esp_ble_gattc_cache_get_addr_list(esp_gatt_if_t gattc_if); /** -* @brief Clean the service cache of this device in the gattc stack, +* @brief Clean the service cache of this device in the gattc stack, * * @param[in] remote_bda: remote device BD address. * diff --git a/components/bt/host/bluedroid/api/include/api/esp_gatts_api.h b/components/bt/host/bluedroid/api/include/api/esp_gatts_api.h index 5da14eb1b7..475ae08c55 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_gatts_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_gatts_api.h @@ -346,7 +346,7 @@ esp_err_t esp_ble_gatts_create_service(esp_gatt_if_t gatts_if, /** - * @brief Create a service attribute tab. + * @brief Create a service attribute tab. * @param[in] gatts_attr_db: the pointer to the service attr tab * @param[in] gatts_if: GATT server access interface * @param[in] max_nb_attr: the number of attribute to be added to the service database. @@ -357,12 +357,12 @@ esp_err_t esp_ble_gatts_create_service(esp_gatt_if_t gatts_if, * - other : failed * */ -esp_err_t esp_ble_gatts_create_attr_tab(const esp_gatts_attr_db_t *gatts_attr_db, +esp_err_t esp_ble_gatts_create_attr_tab(const esp_gatts_attr_db_t *gatts_attr_db, esp_gatt_if_t gatts_if, uint8_t max_nb_attr, uint8_t srvc_inst_id); /** - * @brief This function is called to add an included service. This function have to be called between + * @brief This function is called to add an included service. This function have to be called between * 'esp_ble_gatts_create_service' and 'esp_ble_gatts_add_char'. After included * service is included, a callback event ESP_GATTS_ADD_INCL_SRVC_EVT * is reported the included service ID. @@ -388,7 +388,7 @@ esp_err_t esp_ble_gatts_add_included_service(uint16_t service_handle, uint16_t i * @param[in] char_uuid : Characteristic UUID. * @param[in] perm : Characteristic value declaration attribute permission. * @param[in] property : Characteristic Properties - * @param[in] char_val : Characteristic value + * @param[in] char_val : Characteristic value * @param[in] control : attribute response control byte * * @return @@ -410,7 +410,7 @@ esp_err_t esp_ble_gatts_add_char(uint16_t service_handle, esp_bt_uuid_t *char_ * be added. * @param[in] perm: descriptor access permission. * @param[in] descr_uuid: descriptor UUID. - * @param[in] char_descr_val : Characteristic descriptor value + * @param[in] char_descr_val : Characteristic descriptor value * @param[in] control : attribute response control byte * @return * - ESP_OK : success diff --git a/components/bt/host/bluedroid/api/include/api/esp_hf_ag_api.h b/components/bt/host/bluedroid/api/include/api/esp_hf_ag_api.h index 80b25d3c97..72461736fc 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_hf_ag_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_hf_ag_api.h @@ -402,7 +402,7 @@ esp_err_t esp_bt_hf_indchange_notification(esp_bd_addr_t remote_addr, esp_hf_cal */ esp_err_t esp_bt_hf_cind_response(esp_bd_addr_t remote_addr, esp_hf_call_status_t call_state, - esp_hf_call_setup_status_t call_setup_state, + esp_hf_call_setup_status_t call_setup_state, esp_hf_network_state_t ntk_state, int signal, esp_hf_roaming_status_t roam, int batt_lev, esp_hf_call_held_status_t call_held_status); @@ -423,7 +423,7 @@ esp_err_t esp_bt_hf_cops_response(esp_bd_addr_t remote_addr, char *name); /** * - * @brief Response to AT+CLCC command from HFP Client. + * @brief Response to AT+CLCC command from HFP Client. * As a precondition to use this API, Service Level Connection shall exist between AG and HF Client. * * @param[in] remote_addr: remote bluetooth device address @@ -592,4 +592,4 @@ void esp_hf_outgoing_data_ready(void); } #endif -#endif //__ESP_HF_AG_API_H__ \ No newline at end of file +#endif //__ESP_HF_AG_API_H__ diff --git a/components/bt/host/bluedroid/bta/av/include/bta_av_int.h b/components/bt/host/bluedroid/bta/av/include/bta_av_int.h index 9fb6c06c52..c5e32a1a69 100644 --- a/components/bt/host/bluedroid/bta/av/include/bta_av_int.h +++ b/components/bt/host/bluedroid/bta/av/include/bta_av_int.h @@ -691,4 +691,3 @@ extern void bta_av_reg_vdp (tAVDT_CS *p_cs, char *p_service_name, void *p_data); #endif ///BTA_AV_INCLUDED == TRUE #endif /* BTA_AV_INT_H */ - diff --git a/components/bt/host/bluedroid/bta/dm/bta_dm_co.c b/components/bt/host/bluedroid/bta/dm/bta_dm_co.c index 5fdf0812a5..5bff8a9599 100644 --- a/components/bt/host/bluedroid/bta/dm/bta_dm_co.c +++ b/components/bt/host/bluedroid/bta/dm/bta_dm_co.c @@ -465,4 +465,3 @@ void bta_dm_co_ble_oob_support(UINT8 enable) } #endif - diff --git a/components/bt/host/bluedroid/bta/dm/bta_dm_main.c b/components/bt/host/bluedroid/bta/dm/bta_dm_main.c index 006448f4b0..ae84f958b3 100644 --- a/components/bt/host/bluedroid/bta/dm/bta_dm_main.c +++ b/components/bt/host/bluedroid/bta/dm/bta_dm_main.c @@ -486,4 +486,3 @@ BOOLEAN bta_dm_search_sm_execute(BT_HDR *p_msg) } return TRUE; } - diff --git a/components/bt/host/bluedroid/bta/dm/bta_dm_pm.c b/components/bt/host/bluedroid/bta/dm/bta_dm_pm.c index 5b4775704e..699de89314 100644 --- a/components/bt/host/bluedroid/bta/dm/bta_dm_pm.c +++ b/components/bt/host/bluedroid/bta/dm/bta_dm_pm.c @@ -1170,4 +1170,3 @@ tBTA_DM_CONTRL_STATE bta_dm_pm_obtain_controller_state(void) } #endif - diff --git a/components/bt/host/bluedroid/bta/gatt/bta_gatt_common.c b/components/bt/host/bluedroid/bta/gatt/bta_gatt_common.c index 10a58f5821..ce31926e2c 100644 --- a/components/bt/host/bluedroid/bta/gatt/bta_gatt_common.c +++ b/components/bt/host/bluedroid/bta/gatt/bta_gatt_common.c @@ -33,4 +33,3 @@ uint16_t BTA_GATT_GetLocalMTU(void) { return gatt_get_local_mtu(); } - diff --git a/components/bt/host/bluedroid/bta/gatt/bta_gattc_act.c b/components/bt/host/bluedroid/bta/gatt/bta_gattc_act.c index fb6d35c23a..e6367c2efd 100644 --- a/components/bt/host/bluedroid/bta/gatt/bta_gattc_act.c +++ b/components/bt/host/bluedroid/bta/gatt/bta_gattc_act.c @@ -1665,7 +1665,7 @@ static void bta_gattc_conn_cback(tGATT_IF gattc_if, BD_ADDR bda, UINT16 conn_id, } else { APPL_TRACE_WARNING("%s not found connection parameters of the device ", __func__); } - } + } p_buf->int_conn.hdr.layer_specific = conn_id; p_buf->int_conn.client_if = gattc_if; p_buf->int_conn.role = L2CA_GetBleConnRole(bda); diff --git a/components/bt/host/bluedroid/bta/gatt/bta_gattc_api.c b/components/bt/host/bluedroid/bta/gatt/bta_gattc_api.c index 55c17621ca..767342d64f 100644 --- a/components/bt/host/bluedroid/bta/gatt/bta_gattc_api.c +++ b/components/bt/host/bluedroid/bta/gatt/bta_gattc_api.c @@ -298,7 +298,7 @@ void BTA_GATTC_ServiceSearchRequest (UINT16 conn_id, tBT_UUID *p_srvc_uuid) ** Returns returns list_t of tBTA_GATTC_SERVICE or NULL. ** *******************************************************************************/ -const list_t* BTA_GATTC_GetServices(UINT16 conn_id) +const list_t* BTA_GATTC_GetServices(UINT16 conn_id) { return bta_gattc_get_services(conn_id); } @@ -315,7 +315,7 @@ const list_t* BTA_GATTC_GetServices(UINT16 conn_id) ** Returns returns pointer to tBTA_GATTC_CHARACTERISTIC or NULL. ** *******************************************************************************/ -const tBTA_GATTC_CHARACTERISTIC* BTA_GATTC_GetCharacteristic(UINT16 conn_id, UINT16 handle) +const tBTA_GATTC_CHARACTERISTIC* BTA_GATTC_GetCharacteristic(UINT16 conn_id, UINT16 handle) { return bta_gattc_get_characteristic(conn_id, handle); } @@ -963,7 +963,7 @@ void BTA_GATTC_CacheAssoc(tBTA_GATTC_IF client_if, BD_ADDR src_addr, BD_ADDR ass memcpy(p_buf->assoc_addr, assoc_addr, sizeof(BD_ADDR)); bta_sys_sendmsg(p_buf); - + } return; } @@ -1070,4 +1070,3 @@ void BTA_GATTC_Broadcast(tBTA_GATTC_IF client_if, BOOLEAN start) } #endif /* defined(GATTC_INCLUDED) && (GATTC_INCLUDED == TRUE) */ - diff --git a/components/bt/host/bluedroid/bta/gatt/bta_gattc_cache.c b/components/bt/host/bluedroid/bta/gatt/bta_gattc_cache.c index 9b5733b355..0781986de7 100644 --- a/components/bt/host/bluedroid/bta/gatt/bta_gattc_cache.c +++ b/components/bt/host/bluedroid/bta/gatt/bta_gattc_cache.c @@ -2194,4 +2194,3 @@ void bta_gattc_cache_reset(BD_ADDR server_bda) //#endif /* GATTC_CACHE_NVS */ #endif /* BTA_GATT_INCLUDED */ - diff --git a/components/bt/host/bluedroid/bta/gatt/bta_gattc_co.c b/components/bt/host/bluedroid/bta/gatt/bta_gattc_co.c index 0573b7bf77..c17f96dc6d 100644 --- a/components/bt/host/bluedroid/bta/gatt/bta_gattc_co.c +++ b/components/bt/host/bluedroid/bta/gatt/bta_gattc_co.c @@ -664,4 +664,3 @@ BOOLEAN bta_gattc_co_cache_clear_assoc_addr(BD_ADDR src_addr) // #endif /* #if( defined GATTC_CACHE_NVS ) && (GATTC_CACHE_NVS == TRUE) */ #endif /* #if( defined BLE_INCLUDED ) && (BLE_INCLUDED == TRUE) */ #endif /* #if( defined BTA_GATT_INCLUDED ) && (BTA_GATT_INCLUDED == TRUE) */ - diff --git a/components/bt/host/bluedroid/bta/gatt/bta_gatts_api.c b/components/bt/host/bluedroid/bta/gatt/bta_gatts_api.c index 32f2921ba8..cff4688cd4 100644 --- a/components/bt/host/bluedroid/bta/gatt/bta_gatts_api.c +++ b/components/bt/host/bluedroid/bta/gatt/bta_gatts_api.c @@ -596,7 +596,7 @@ void BTA_GATTS_SendServiceChangeIndication(tBTA_GATTS_IF server_if, BD_ADDR remo p_buf->hdr.event = BTA_GATTS_API_SEND_SERVICE_CHANGE_EVT; p_buf->server_if = server_if; memcpy(p_buf->remote_bda, remote_bda, BD_ADDR_LEN); - + bta_sys_sendmsg(p_buf); } return; diff --git a/components/bt/host/bluedroid/bta/gatt/bta_gatts_utils.c b/components/bt/host/bluedroid/bta/gatt/bta_gatts_utils.c index e7a0a23f07..224e887334 100644 --- a/components/bt/host/bluedroid/bta/gatt/bta_gatts_utils.c +++ b/components/bt/host/bluedroid/bta/gatt/bta_gatts_utils.c @@ -221,4 +221,4 @@ BOOLEAN bta_gatts_uuid_compare(tBT_UUID tar, tBT_UUID src) -#endif /* GATTS_INCLUDED */ \ No newline at end of file +#endif /* GATTS_INCLUDED */ diff --git a/components/bt/host/bluedroid/bta/gatt/include/bta_gattc_int.h b/components/bt/host/bluedroid/bta/gatt/include/bta_gattc_int.h index fd775285b6..f7539af9e2 100644 --- a/components/bt/host/bluedroid/bta/gatt/include/bta_gattc_int.h +++ b/components/bt/host/bluedroid/bta/gatt/include/bta_gattc_int.h @@ -66,7 +66,7 @@ enum { BTA_GATTC_API_LISTEN_EVT, BTA_GATTC_API_BROADCAST_EVT, BTA_GATTC_API_DISABLE_EVT, - BTA_GATTC_ENC_CMPL_EVT, + BTA_GATTC_ENC_CMPL_EVT, BTA_GATTC_API_CACHE_ASSOC_EVT, BTA_GATTC_API_CACHE_GET_ADDR_LIST_EVT, }; @@ -75,7 +75,7 @@ typedef UINT16 tBTA_GATTC_INT_EVT; #define BTA_GATTC_SERVICE_CHANGED_LEN 4 typedef enum { - BTA_GATTC_SERVICE_INFO_FROM_REMOTE_DEVICE = 0, + BTA_GATTC_SERVICE_INFO_FROM_REMOTE_DEVICE = 0, BTA_GATTC_SERVICE_INFO_FROM_NVS_FLASH = 1, BTA_GATTC_SERVICE_INFO_FROM_UNKNOWN = 2, } tBTA_SERVICE_SOURCE_t; diff --git a/components/bt/host/bluedroid/bta/gatt/include/bta_gatts_int.h b/components/bt/host/bluedroid/bta/gatt/include/bta_gatts_int.h index 49b2bf63b3..30f14ac4d5 100644 --- a/components/bt/host/bluedroid/bta/gatt/include/bta_gatts_int.h +++ b/components/bt/host/bluedroid/bta/gatt/include/bta_gatts_int.h @@ -261,4 +261,3 @@ extern tBTA_GATTS_SRVC_CB *bta_gatts_find_srvc_cb_by_attr_id(tBTA_GATTS_CB *p_cb extern void bta_gatts_deinit(void); #endif /* BTA_GATTS_INT_H */ - diff --git a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_api.c b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_api.c index 480f47f68b..465192802e 100644 --- a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_api.c +++ b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_api.c @@ -300,7 +300,7 @@ void BTA_AgSetCodec(UINT16 handle, tBTA_AG_PEER_CODEC codec) #if (BTM_SCO_HCI_INCLUDED == TRUE ) /************************************************************************************************ * Function BTA_AgCiData - * + * * Description Trigger the lower-layer to fetch and send audio data. This function is only * only used in the case that Voice Over HCI is enabled. Precondition is that * the HFP audio connection is connected. After this function is called, lower @@ -319,4 +319,4 @@ void BTA_AgCiData(UINT16 handle) } #endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE ) */ -#endif /* #if (BTA_AG_INCLUDED == TRUE)*/ \ No newline at end of file +#endif /* #if (BTA_AG_INCLUDED == TRUE)*/ diff --git a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_at.c b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_at.c index 01a22dfa28..82066d8f79 100644 --- a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_at.c +++ b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_at.c @@ -155,7 +155,7 @@ void bta_ag_at_parse(tBTA_AG_AT_CB *p_cb, char *p_buf, UINT16 len) { int i = 0; char* p_save; - + if (p_cb->p_cmd_buf == NULL) { if ((p_cb->p_cmd_buf = (char *) osi_malloc(p_cb->cmd_max_len)) == NULL) { APPL_TRACE_ERROR("%s: osi_malloc() failed allocation", __func__); @@ -191,11 +191,11 @@ void bta_ag_at_parse(tBTA_AG_AT_CB *p_cb, char *p_buf, UINT16 len) ++p_cb->cmd_pos; } } - + if (i < len) { p_cb->cmd_pos = 0; } } } -#endif /* #if (BTA_AG_INCLUDED == TRUE) */ \ No newline at end of file +#endif /* #if (BTA_AG_INCLUDED == TRUE) */ diff --git a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_cfg.c b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_cfg.c index 2ede364115..3c059cea72 100644 --- a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_cfg.c +++ b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_cfg.c @@ -57,4 +57,4 @@ const tBTA_AG_CFG bta_ag_cfg = }; tBTA_AG_CFG *p_bta_ag_cfg = (tBTA_AG_CFG *) &bta_ag_cfg; -#endif /* #if (BTA_AG_INCLUDED == TRUE) */ \ No newline at end of file +#endif /* #if (BTA_AG_INCLUDED == TRUE) */ diff --git a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_cmd.c b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_cmd.c index 78b989802c..24ef3656b7 100644 --- a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_cmd.c +++ b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_cmd.c @@ -56,7 +56,7 @@ #define BTA_AG_CLIP_TYPE_VOIP 255 /******************************************* -* HSP callback +* HSP callback ********************************************/ /* callback event lookup table for HSP */ const tBTA_AG_EVT bta_ag_hsp_cb_evt[] = @@ -82,7 +82,7 @@ const tBTA_AG_AT_CMD bta_ag_hsp_cmd[] = }; /******************************************* -* HFP callback +* HFP callback ********************************************/ /* callback event lookup table for HFP (Indexed by command) */ const tBTA_AG_EVT bta_ag_hfp_cb_evt[] = @@ -180,7 +180,7 @@ const tBTA_AG_AT_CMD bta_ag_hfp_cmd[] = }; /******************************************* -* AT Result +* AT Result ********************************************/ const tBTA_AG_AT_CMD *bta_ag_at_tbl[BTA_AG_NUM_IDX] = { @@ -331,7 +331,7 @@ const UINT8 bta_ag_callsetup_ind_tbl[] = #endif /******************************************* -* Funcitons Result +* Funcitons Result ********************************************/ /******************************************************************************* ** @@ -533,7 +533,7 @@ static void bta_ag_send_ind(tBTA_AG_SCB *p_scb, UINT16 id, UINT16 value, BOOLEAN } if ((id == BTA_AG_IND_ROAM) && (on_demand == FALSE)) { if (value == p_scb->roam_ind) { - return; + return; } p_scb->roam_ind = (UINT8)value; } @@ -658,14 +658,14 @@ static tBTA_AG_PEER_CODEC bta_ag_parse_bac(tBTA_AG_SCB *p_scb, char *p_s) } uuid_codec = utl_str2int(p_s); switch(uuid_codec) { - case UUID_CODEC_CVSD: - retval |= BTA_AG_CODEC_CVSD; + case UUID_CODEC_CVSD: + retval |= BTA_AG_CODEC_CVSD; break; - - case UUID_CODEC_MSBC: - retval |= BTA_AG_CODEC_MSBC; + + case UUID_CODEC_MSBC: + retval |= BTA_AG_CODEC_MSBC; break; - + default: APPL_TRACE_ERROR("Unknown Codec UUID(%d) received", uuid_codec); return BTA_AG_CODEC_NONE; @@ -864,7 +864,7 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB *p_scb, UINT16 cmd, UINT8 arg_type, bta_ag_send_error(p_scb, BTA_AG_ERR_INV_CHAR_IN_DSTR); } } else if (p_arg[0] == 'V') { - /* ATDV : Dial VoIP Call */ + /* ATDV : Dial VoIP Call */ /* We do not check string. Code will be added later if needed. */ if(!((p_scb->peer_features & BTA_AG_PEER_FEAT_VOIP) && (p_scb->features & BTA_AG_FEAT_VOIP))) { event = 0; @@ -1093,7 +1093,7 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB *p_scb, UINT16 cmd, UINT8 arg_type, bta_ag_send_error(p_scb, BTA_AG_ERR_OP_NOT_SUPPORTED); } break; - + case BTA_AG_HF_CMD_CLCC: if(!(p_scb->features & BTA_AG_FEAT_ECS)) { event = 0; @@ -1139,14 +1139,14 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB *p_scb, UINT16 cmd, UINT8 arg_type, bta_sys_stop_timer(&p_scb->cn_timer); switch(int_arg) { - case UUID_CODEC_CVSD: - codec_type = BTA_AG_CODEC_CVSD; + case UUID_CODEC_CVSD: + codec_type = BTA_AG_CODEC_CVSD; break; - - case UUID_CODEC_MSBC: + + case UUID_CODEC_MSBC: codec_type = BTA_AG_CODEC_MSBC; break; - + default: APPL_TRACE_ERROR("Unknown codec_uuid %d", int_arg); codec_type = 0xFFFF; @@ -1483,7 +1483,7 @@ void bta_ag_hfp_result(tBTA_AG_SCB *p_scb, tBTA_AG_API_RESULT *p_result) p_scb->roam_ind = p_result->data.str[8] - '0'; p_scb->battchg_ind = p_result->data.str[10] - '0'; p_scb->callheld_ind = p_result->data.str[12] - '0'; - + APPL_TRACE_DEBUG("cind call:%d callsetup:%d", p_scb->call_ind, p_scb->callsetup_ind); bta_ag_send_result(p_scb, code, p_result->data.str, 0); bta_ag_send_ok(p_scb); @@ -1607,15 +1607,15 @@ void bta_ag_send_bcs(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data) case BTA_AG_CODEC_NONE: codec_uuid = UUID_CODEC_CVSD; break; - + case BTA_AG_CODEC_CVSD: codec_uuid = UUID_CODEC_CVSD; break; - + case BTA_AG_CODEC_MSBC: codec_uuid = UUID_CODEC_MSBC; break; - + default: APPL_TRACE_ERROR("bta_ag_send_bcs: unknown codec %d, use CVSD", p_scb->sco_codec); codec_uuid = UUID_CODEC_CVSD; @@ -1666,4 +1666,4 @@ void bta_ag_send_ring(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data) bta_sys_start_timer(&p_scb->act_timer, BTA_AG_RING_TOUT_EVT, BTA_AG_RING_TOUT); } -#endif /* #if (BTA_AG_INCLUDED == TRUE) */ \ No newline at end of file +#endif /* #if (BTA_AG_INCLUDED == TRUE) */ diff --git a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_main.c b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_main.c index 26ddd70990..2470c6008b 100644 --- a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_main.c +++ b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_main.c @@ -850,7 +850,7 @@ static void bta_ag_api_result(tBTA_AG_DATA *p_data) { tBTA_AG_SCB *p_scb; int i; - + if (p_data->hdr.layer_specific != BTA_AG_HANDLE_ALL) { if ((p_scb = bta_ag_scb_by_idx(p_data->hdr.layer_specific)) != NULL) { APPL_TRACE_DEBUG("bta_ag_api_result: p_scb 0x%08x ", (unsigned int)p_scb); @@ -880,7 +880,7 @@ void bta_ag_sm_execute(tBTA_AG_SCB *p_scb, UINT16 event, tBTA_AG_DATA *p_data) { tBTA_AG_ST_TBL state_table; UINT8 action; - + #if BTA_AG_DEBUG == TRUE UINT16 in_event = event; UINT8 in_state = p_scb->state; @@ -969,4 +969,4 @@ BOOLEAN bta_ag_hdl_event(BT_HDR *p_msg) return TRUE; } -#endif /* #if (BTA_AG_INCLUDED == TRUE) */ \ No newline at end of file +#endif /* #if (BTA_AG_INCLUDED == TRUE) */ diff --git a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_rfc.c b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_rfc.c index 7af0ba3206..8869f846c3 100644 --- a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_rfc.c +++ b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_rfc.c @@ -402,4 +402,4 @@ void bta_ag_rfc_do_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data) } } -#endif /* #if (BTA_AG_INCLUDED == TRUE) */ \ No newline at end of file +#endif /* #if (BTA_AG_INCLUDED == TRUE) */ diff --git a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_sco.c b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_sco.c index f783390b9d..4b6da64c5f 100644 --- a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_sco.c +++ b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_sco.c @@ -176,13 +176,13 @@ static void bta_ag_sco_conn_cback(UINT16 sco_idx) if (handle != 0) { BTM_ReadEScoLinkParms(sco_idx, &sco_data); - + p_scb->link_type = sco_data.link_type; p_scb->tx_interval = sco_data.tx_interval; p_scb->retrans_window = sco_data.retrans_window; p_scb->air_mode = sco_data.air_mode; - - if (sco_data.air_mode == BTM_SCO_AIR_MODE_CVSD) + + if (sco_data.air_mode == BTM_SCO_AIR_MODE_CVSD) { p_scb->out_pkt_len = sco_data.tx_pkt_len * 2; p_scb->in_pkt_len = sco_data.rx_pkt_len * 2; @@ -572,7 +572,7 @@ static void bta_ag_create_sco(tBTA_AG_SCB *p_scb, BOOLEAN is_orig) p_scb->retry_with_sco_only = FALSE; BTM_SetEScoMode(BTM_LINK_TYPE_SCO, ¶ms); } - + bta_ag_cb.sco.p_curr_scb = p_scb; /* tell sys to stop av if any */ bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); @@ -741,8 +741,8 @@ static void bta_ag_sco_event(tBTA_AG_SCB *p_scb, UINT8 event) tBTA_AG_SCB *p_cn_scb = NULL; /* For codec negotiation */ #endif UINT8 in_state = p_sco->state; - APPL_TRACE_EVENT("BTA ag sco evt (hdl 0x%04x): State %d (%s), Event %d (%s)", - p_scb->sco_idx, p_sco->state, + APPL_TRACE_EVENT("BTA ag sco evt (hdl 0x%04x): State %d (%s), Event %d (%s)", + p_scb->sco_idx, p_sco->state, bta_ag_sco_state_str(p_sco->state), event, bta_ag_sco_evt_str(event)); #if (BTM_SCO_HCI_INCLUDED == TRUE) @@ -780,7 +780,7 @@ static void bta_ag_sco_event(tBTA_AG_SCB *p_scb, UINT8 event) #endif /* State Machine Start */ - switch (p_sco->state) + switch (p_sco->state) { case BTA_AG_SCO_SHUTDOWN_ST: switch (event) @@ -1286,7 +1286,7 @@ static void bta_ag_sco_event(tBTA_AG_SCB *p_scb, UINT8 event) default: break; } - + if (p_sco->state != in_state) { APPL_TRACE_EVENT("BTA AG SCO State Change: [%s] -> [%s] after Event [%s]", @@ -1361,7 +1361,7 @@ void bta_ag_sco_listen(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data) ** ** Function bta_ag_sco_open ** -** Description +** Description ** ** ** Returns void @@ -1762,4 +1762,4 @@ static char *bta_ag_sco_state_str(UINT8 state) } } -#endif //#if (BTA_AG_INCLUDED == TRUE) \ No newline at end of file +#endif //#if (BTA_AG_INCLUDED == TRUE) diff --git a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_sdp.c b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_sdp.c index 376399732d..3884a7d34c 100644 --- a/components/bt/host/bluedroid/bta/hf_ag/bta_ag_sdp.c +++ b/components/bt/host/bluedroid/bta/hf_ag/bta_ag_sdp.c @@ -443,4 +443,4 @@ void bta_ag_free_db(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data) } } -#endif /* #if (BTA_AG_INCLUDED == TRUE) */ \ No newline at end of file +#endif /* #if (BTA_AG_INCLUDED == TRUE) */ diff --git a/components/bt/host/bluedroid/bta/hf_ag/include/bta_ag_at.h b/components/bt/host/bluedroid/bta/hf_ag/include/bta_ag_at.h index d9d3cdebce..867df14601 100644 --- a/components/bt/host/bluedroid/bta/hf_ag/include/bta_ag_at.h +++ b/components/bt/host/bluedroid/bta/hf_ag/include/bta_ag_at.h @@ -123,4 +123,4 @@ extern void bta_ag_at_parse(tBTA_AG_AT_CB *p_cb, char *p_buf, UINT16 len); #endif /* #if (BTA_AG_INCLUDED == TRUE) */ -#endif /* BTA_AG_AT_H */ \ No newline at end of file +#endif /* BTA_AG_AT_H */ diff --git a/components/bt/host/bluedroid/bta/hf_ag/include/bta_ag_int.h b/components/bt/host/bluedroid/bta/hf_ag/include/bta_ag_int.h index 8f1e9037b6..5381c66433 100644 --- a/components/bt/host/bluedroid/bta/hf_ag/include/bta_ag_int.h +++ b/components/bt/host/bluedroid/bta/hf_ag/include/bta_ag_int.h @@ -439,4 +439,4 @@ extern void bta_ag_rcvd_slc_ready(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data); #endif /* #if (BTA_AG_INCLUDED == TRUE) */ -#endif /* BTA_AG_INT_H */ \ No newline at end of file +#endif /* BTA_AG_INT_H */ diff --git a/components/bt/host/bluedroid/bta/hf_client/bta_hf_client_api.c b/components/bt/host/bluedroid/bta/hf_client/bta_hf_client_api.c index ea51879c2a..4cb1c9b953 100644 --- a/components/bt/host/bluedroid/bta/hf_client/bta_hf_client_api.c +++ b/components/bt/host/bluedroid/bta/hf_client/bta_hf_client_api.c @@ -45,7 +45,7 @@ static const uint8_t bta_hf_client_cb_data_size[] = { 0, // #define BTA_HF_CLIENT_CLOSE_EVT 3 sizeof(tBTA_HF_CLIENT_CONN), // #define BTA_HF_CLIENT_CONN_EVT 4 sizeof(tBTA_HF_CLIENT_HDR), // #define BTA_HF_CLIENT_AUDIO_OPEN_EVT 5 - sizeof(tBTA_HF_CLIENT_HDR), //#define BTA_HF_CLIENT_AUDIO_MSBC_OPEN_EVT 6 + sizeof(tBTA_HF_CLIENT_HDR), //#define BTA_HF_CLIENT_AUDIO_MSBC_OPEN_EVT 6 sizeof(tBTA_HF_CLIENT_HDR), // #define BTA_HF_CLIENT_AUDIO_CLOSE_EVT 7 sizeof(tBTA_HF_CLIENT_VAL), // #define BTA_HF_CLIENT_SPK_EVT 8 sizeof(tBTA_HF_CLIENT_VAL), // #define BTA_HF_CLIENT_MIC_EVT 9 diff --git a/components/bt/host/bluedroid/bta/hh/bta_hh_act.c b/components/bt/host/bluedroid/bta/hh/bta_hh_act.c index 99d54f284f..ce34307707 100644 --- a/components/bt/host/bluedroid/bta/hh/bta_hh_act.c +++ b/components/bt/host/bluedroid/bta/hh/bta_hh_act.c @@ -1253,4 +1253,3 @@ static char *bta_hh_hid_event_name(UINT16 event) } #endif #endif /* BTA_HH_INCLUDED */ - diff --git a/components/bt/host/bluedroid/bta/hh/bta_hh_le.c b/components/bt/host/bluedroid/bta/hh/bta_hh_le.c index 6c86cb9be7..7a8dcb7ccb 100644 --- a/components/bt/host/bluedroid/bta/hh/bta_hh_le.c +++ b/components/bt/host/bluedroid/bta/hh/bta_hh_le.c @@ -3019,7 +3019,3 @@ static void bta_hh_process_cache_rpt (tBTA_HH_DEV_CB *p_cb, } #endif - - - - diff --git a/components/bt/host/bluedroid/bta/hh/include/bta_hh_int.h b/components/bt/host/bluedroid/bta/hh/include/bta_hh_int.h index 0eba2dd2dd..58a8b59a3d 100644 --- a/components/bt/host/bluedroid/bta/hh/include/bta_hh_int.h +++ b/components/bt/host/bluedroid/bta/hh/include/bta_hh_int.h @@ -398,4 +398,3 @@ extern void bta_hh_trace_dev_db(void); #endif ///defined(BTA_HH_INCLUDED) && (BTA_HH_INCLUDED == TRUE) #endif - diff --git a/components/bt/host/bluedroid/bta/include/bta/bta_ag_api.h b/components/bt/host/bluedroid/bta/include/bta/bta_ag_api.h index aba38221b5..425cc600d8 100644 --- a/components/bt/host/bluedroid/bta/include/bta/bta_ag_api.h +++ b/components/bt/host/bluedroid/bta/include/bta/bta_ag_api.h @@ -576,7 +576,7 @@ void BTA_AgSetCodec(UINT16 handle, tBTA_AG_PEER_CODEC codec); ** ** Function BTA_AgCiData ** -** Description Give an EVT to BTA that tell outgoing data is ready. +** Description Give an EVT to BTA that tell outgoing data is ready. ** ** ** Returns void @@ -591,4 +591,4 @@ void BTA_AgCiData(UINT16 handle); #endif /* #if (BTA_AG_INCLUDED == TRUE) */ -#endif /* BTA_HF_API_H */ \ No newline at end of file +#endif /* BTA_HF_API_H */ diff --git a/components/bt/host/bluedroid/bta/include/bta/bta_ag_co.h b/components/bt/host/bluedroid/bta/include/bta/bta_ag_co.h index f4a5703d20..932ecdddd9 100644 --- a/components/bt/host/bluedroid/bta/include/bta/bta_ag_co.h +++ b/components/bt/host/bluedroid/bta/include/bta/bta_ag_co.h @@ -160,4 +160,4 @@ extern void bta_ag_ci_slc_ready(UINT16 handle); #endif /* #if (BTA_AG_INCLUDED == TRUE) */ -#endif /* BTA_AG_CO_H */ \ No newline at end of file +#endif /* BTA_AG_CO_H */ diff --git a/components/bt/host/bluedroid/bta/include/bta/bta_av_sbc.h b/components/bt/host/bluedroid/bta/include/bta/bta_av_sbc.h index 966ee61bba..fccc02faf3 100644 --- a/components/bt/host/bluedroid/bta/include/bta/bta_av_sbc.h +++ b/components/bt/host/bluedroid/bta/include/bta/bta_av_sbc.h @@ -220,4 +220,3 @@ extern void bta_av_sbc_bld_hdr(BT_HDR *p_buf, UINT16 fr_per_pkt); #endif ///BTA_AV_INCLUDED == TRUE #endif /* BTA_AV_SBC_H */ - diff --git a/components/bt/host/bluedroid/bta/include/bta/bta_gap_bt_co.h b/components/bt/host/bluedroid/bta/include/bta/bta_gap_bt_co.h index 9e030ec354..b099de309a 100644 --- a/components/bt/host/bluedroid/bta/include/bta/bta_gap_bt_co.h +++ b/components/bt/host/bluedroid/bta/include/bta/bta_gap_bt_co.h @@ -26,4 +26,4 @@ extern void btc_gap_bt_config_eir_cmpl_callback (uint8_t status, uint8_t eir_type_num, uint8_t *eir_type); #endif /// (BTC_GAP_BT_INCLUDED == TRUE) -#endif /// BTA_GAP_BT_CO_H \ No newline at end of file +#endif /// BTA_GAP_BT_CO_H diff --git a/components/bt/host/bluedroid/bta/include/bta/bta_gatt_api.h b/components/bt/host/bluedroid/bta/include/bta/bta_gatt_api.h index 11a3ee5a0b..243148f782 100644 --- a/components/bt/host/bluedroid/bta/include/bta/bta_gatt_api.h +++ b/components/bt/host/bluedroid/bta/include/bta/bta_gatt_api.h @@ -568,7 +568,7 @@ typedef struct { BD_ADDR remote_bda; UINT32 trans_id; UINT16 conn_id; - UINT16 handle; + UINT16 handle; tBTA_GATTS_REQ_DATA *p_data; UINT16 data_len; UINT8 *value; diff --git a/components/bt/host/bluedroid/bta/jv/bta_jv_act.c b/components/bt/host/bluedroid/bta/jv/bta_jv_act.c index 685f0c7a7e..4060d0795f 100644 --- a/components/bt/host/bluedroid/bta/jv/bta_jv_act.c +++ b/components/bt/host/bluedroid/bta/jv/bta_jv_act.c @@ -543,7 +543,7 @@ static tBTA_JV_STATUS bta_jv_free_set_pm_profile_cb(UINT32 jv_handle) p_cb = &p_pcb->p_pm_cb; } } - } + } #if BTA_JV_L2CAP_INCLUDED else { if (jv_handle < BTA_JV_MAX_L2C_CONN) { @@ -1880,7 +1880,7 @@ void bta_jv_rfcomm_close(tBTA_JV_MSG *p_data) cc->p_cback(BTA_JV_RFCOMM_CLOSE_EVT, (tBTA_JV *)&evt_data, user_data); } bta_jv_free_rfc_cb(p_cb, p_pcb); - APPL_TRACE_DEBUG("%s: sec id in use:%d, rfc_cb in use:%d",__func__, + APPL_TRACE_DEBUG("%s: sec id in use:%d, rfc_cb in use:%d",__func__, get_sec_id_used(), get_rfc_cb_used()); } diff --git a/components/bt/host/bluedroid/bta/jv/bta_jv_cfg.c b/components/bt/host/bluedroid/bta/jv/bta_jv_cfg.c index 9020efb8ab..9ec4d77df0 100644 --- a/components/bt/host/bluedroid/bta/jv/bta_jv_cfg.c +++ b/components/bt/host/bluedroid/bta/jv/bta_jv_cfg.c @@ -64,4 +64,4 @@ static UINT8 __attribute__ ((aligned(4))) bta_jv_sdp_db_data[BTA_JV_SDP_DB_SIZE] tBTA_JV_CFG *p_bta_jv_cfg = (tBTA_JV_CFG *) &bta_jv_cfg; -#endif ///defined BTA_JV_INCLUDED && BTA_JV_INCLUDED == TRUE \ No newline at end of file +#endif ///defined BTA_JV_INCLUDED && BTA_JV_INCLUDED == TRUE diff --git a/components/bt/host/bluedroid/bta/jv/bta_jv_main.c b/components/bt/host/bluedroid/bta/jv/bta_jv_main.c index 4d7643eb64..0cb30773c2 100644 --- a/components/bt/host/bluedroid/bta/jv/bta_jv_main.c +++ b/components/bt/host/bluedroid/bta/jv/bta_jv_main.c @@ -104,4 +104,4 @@ BOOLEAN bta_jv_sm_execute(BT_HDR *p_msg) return (ret); } -#endif ///defined BTA_JV_INCLUDED && BTA_JV_INCLUDED == TRUE \ No newline at end of file +#endif ///defined BTA_JV_INCLUDED && BTA_JV_INCLUDED == TRUE diff --git a/components/bt/host/bluedroid/bta/sdp/bta_sdp_act.c b/components/bt/host/bluedroid/bta/sdp/bta_sdp_act.c index c235800b1d..5ce91a5f03 100644 --- a/components/bt/host/bluedroid/bta/sdp/bta_sdp_act.c +++ b/components/bt/host/bluedroid/bta/sdp/bta_sdp_act.c @@ -545,4 +545,4 @@ void bta_sdp_remove_record(tBTA_SDP_MSG *p_data) } } -#endif ///SDP_INCLUDED == TRUE \ No newline at end of file +#endif ///SDP_INCLUDED == TRUE diff --git a/components/bt/host/bluedroid/bta/sdp/include/bta_sdp_int.h b/components/bt/host/bluedroid/bta/sdp/include/bta_sdp_int.h index dfe3546f13..cf0eb99cc1 100644 --- a/components/bt/host/bluedroid/bta/sdp/include/bta_sdp_int.h +++ b/components/bt/host/bluedroid/bta/sdp/include/bta_sdp_int.h @@ -109,4 +109,3 @@ extern void bta_sdp_remove_record(tBTA_SDP_MSG *p_data); #endif ///SDP_INCLUDED == TRUE #endif /* BTA_SDP_INT_H */ - diff --git a/components/bt/host/bluedroid/bta/sys/bta_sys_conn.c b/components/bt/host/bluedroid/bta/sys/bta_sys_conn.c index 4324a6b569..2d55dec48a 100644 --- a/components/bt/host/bluedroid/bta/sys/bta_sys_conn.c +++ b/components/bt/host/bluedroid/bta/sys/bta_sys_conn.c @@ -567,4 +567,3 @@ BOOLEAN bta_sys_vs_hdl(UINT16 evt, void *p) return FALSE; } - diff --git a/components/bt/host/bluedroid/bta/sys/utl.c b/components/bt/host/bluedroid/bta/sys/utl.c index ddaec5aa83..c18567cd6d 100644 --- a/components/bt/host/bluedroid/bta/sys/utl.c +++ b/components/bt/host/bluedroid/bta/sys/utl.c @@ -317,5 +317,3 @@ BOOLEAN utl_isdialstr(const char *p_s) return TRUE; } - - diff --git a/components/bt/host/bluedroid/btc/core/btc_ble_storage.c b/components/bt/host/bluedroid/btc/core/btc_ble_storage.c index bab534642d..bff6da0d2b 100644 --- a/components/bt/host/bluedroid/btc/core/btc_ble_storage.c +++ b/components/bt/host/bluedroid/btc/core/btc_ble_storage.c @@ -932,4 +932,3 @@ int btc_storage_get_num_ble_bond_devices(void) } #endif ///BLE_INCLUDED == TRUE #endif ///SMP_INCLUDED == TRUE - diff --git a/components/bt/host/bluedroid/btc/core/btc_config.c b/components/bt/host/bluedroid/btc/core/btc_config.c index fdababfe08..cf207ef70e 100644 --- a/components/bt/host/bluedroid/btc/core/btc_config.c +++ b/components/bt/host/bluedroid/btc/core/btc_config.c @@ -336,4 +336,4 @@ void btc_config_lock(void) void btc_config_unlock(void) { osi_mutex_unlock(&lock); -} \ No newline at end of file +} diff --git a/components/bt/host/bluedroid/btc/core/btc_main.c b/components/bt/host/bluedroid/btc/core/btc_main.c index c92c34b5e3..00d0e5ff98 100644 --- a/components/bt/host/bluedroid/btc/core/btc_main.c +++ b/components/bt/host/bluedroid/btc/core/btc_main.c @@ -127,4 +127,3 @@ void btc_main_call_handler(btc_msg_t *msg) break; } } - diff --git a/components/bt/host/bluedroid/btc/core/btc_util.c b/components/bt/host/bluedroid/btc/core/btc_util.c index f79b65e8ea..09f178565c 100644 --- a/components/bt/host/bluedroid/btc/core/btc_util.c +++ b/components/bt/host/bluedroid/btc/core/btc_util.c @@ -370,4 +370,4 @@ esp_bt_status_t btc_bta_status_to_esp_status (uint8_t bta_status) } return esp_status; -} \ No newline at end of file +} diff --git a/components/bt/host/bluedroid/btc/include/btc/btc_dev.h b/components/bt/host/bluedroid/btc/include/btc/btc_dev.h index 1d17663303..480b0fa57d 100644 --- a/components/bt/host/bluedroid/btc/include/btc/btc_dev.h +++ b/components/bt/host/bluedroid/btc/include/btc/btc_dev.h @@ -35,4 +35,3 @@ typedef union { void btc_dev_call_handler(btc_msg_t *msg); #endif /* __BTC_DEV_H__ */ - diff --git a/components/bt/host/bluedroid/btc/profile/std/a2dp/btc_av.c b/components/bt/host/bluedroid/btc/profile/std/a2dp/btc_av.c index 0aeacd1916..6fa13e103f 100644 --- a/components/bt/host/bluedroid/btc/profile/std/a2dp/btc_av.c +++ b/components/bt/host/bluedroid/btc/profile/std/a2dp/btc_av.c @@ -445,7 +445,7 @@ static BOOLEAN btc_av_state_opening_handler(btc_sm_event_t event, void *p_data) av_state = BTC_AV_STATE_OPENED; } else { BTC_TRACE_WARNING("BTA_AV_OPEN_EVT::FAILED status: %d\n", p_bta_data->open.status); - + conn_stat = ESP_A2D_CONNECTION_STATE_DISCONNECTED; av_state = BTC_AV_STATE_IDLE; } @@ -1435,7 +1435,7 @@ void btc_a2dp_call_handler(btc_msg_t *msg) } case BTC_AV_SINK_API_DISCONNECT_EVT: { CHECK_BTAV_INIT(); - btc_av_disconn_req_t disconn_req; + btc_av_disconn_req_t disconn_req; memcpy(&disconn_req.target_bda, &arg->disconn, sizeof(bt_bdaddr_t)); btc_sm_dispatch(btc_av_cb.sm_handle, BTC_AV_DISCONNECT_REQ_EVT, &disconn_req); break; diff --git a/components/bt/host/bluedroid/btc/profile/std/dis/dis_profile.c b/components/bt/host/bluedroid/btc/profile/std/dis/dis_profile.c index 117219de2c..4894f7c1cf 100644 --- a/components/bt/host/bluedroid/btc/profile/std/dis/dis_profile.c +++ b/components/bt/host/bluedroid/btc/profile/std/dis/dis_profile.c @@ -289,5 +289,3 @@ tDIS_STATUS DIS_SrUpdate(tDIS_ATTR_BIT dis_attr_bit, tDIS_ATTR *p_info) return st; } #endif /* BLE_INCLUDED */ - - diff --git a/components/bt/host/bluedroid/btc/profile/std/gap/bta_gap_bt_co.c b/components/bt/host/bluedroid/btc/profile/std/gap/bta_gap_bt_co.c index 9710dcfa7a..10a37471b5 100644 --- a/components/bt/host/bluedroid/btc/profile/std/gap/bta_gap_bt_co.c +++ b/components/bt/host/bluedroid/btc/profile/std/gap/bta_gap_bt_co.c @@ -37,4 +37,4 @@ void btc_gap_bt_config_eir_cmpl_callback (uint8_t status, uint8_t eir_type_num, BTC_TRACE_ERROR("%s btc_transfer_context failed\n", __func__); } } -#endif /// (BTC_GAP_BT_INCLUDED == TRUE) \ No newline at end of file +#endif /// (BTC_GAP_BT_INCLUDED == TRUE) diff --git a/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gatt_common.c b/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gatt_common.c index e688f77753..75a51733d6 100644 --- a/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gatt_common.c +++ b/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gatt_common.c @@ -44,4 +44,3 @@ void btc_gatt_com_call_handler(btc_msg_t *msg) break; } } - diff --git a/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gatt_util.c b/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gatt_util.c index 37497a8afc..3b4a153c0a 100644 --- a/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gatt_util.c +++ b/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gatt_util.c @@ -198,4 +198,4 @@ uint16_t set_read_value(uint8_t *gattc_if, esp_ble_gattc_cb_param_t *p_dest, tBT } return len; -} \ No newline at end of file +} diff --git a/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gattc.c b/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gattc.c index 1c3c9c272a..cf8a02d584 100644 --- a/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gattc.c +++ b/components/bt/host/bluedroid/btc/profile/std/gatt/btc_gattc.c @@ -128,7 +128,7 @@ static void btc_gattc_copy_req_data(btc_msg_t *msg, void *p_dest, void *p_src) // Allocate buffer for request data if necessary switch (msg->act) { case BTA_GATTC_READ_DESCR_EVT: - case BTA_GATTC_READ_CHAR_EVT: + case BTA_GATTC_READ_CHAR_EVT: case BTA_GATTC_READ_MULTIPLE_EVT: { if (p_src_data->read.p_value && p_src_data->read.p_value->p_value) { p_dest_data->read.p_value = (tBTA_GATT_UNFMT *)osi_malloc(sizeof(tBTA_GATT_UNFMT) + p_src_data->read.p_value->len); @@ -164,7 +164,7 @@ static void btc_gattc_free_req_data(btc_msg_t *msg) tBTA_GATTC *arg = (tBTA_GATTC *)(msg->arg); switch (msg->act) { case BTA_GATTC_READ_DESCR_EVT: - case BTA_GATTC_READ_CHAR_EVT: + case BTA_GATTC_READ_CHAR_EVT: case BTA_GATTC_READ_MULTIPLE_EVT: { if (arg->read.p_value) { osi_free(arg->read.p_value); diff --git a/components/bt/host/bluedroid/btc/profile/std/hf_ag/bta_ag_co.c b/components/bt/host/bluedroid/btc/profile/std/hf_ag/bta_ag_co.c index 7c80f99103..84d006647a 100644 --- a/components/bt/host/bluedroid/btc/profile/std/hf_ag/bta_ag_co.c +++ b/components/bt/host/bluedroid/btc/profile/std/hf_ag/bta_ag_co.c @@ -32,7 +32,7 @@ #if (BTA_AG_INCLUDED == TRUE) /******************************************************************************* - * CONST + * CONST ********************************************************************************/ #if (BTM_SCO_HCI_INCLUDED == TRUE) #include "oi_codec_sbc.h" @@ -85,7 +85,7 @@ static bta_ag_co_cb_t *bta_ag_co_cb_ptr; static UINT8 hf_air_mode = BTM_SCO_AIR_MODE_TRANSPNT; static UINT8 hf_inout_pkt_size = 0; -/* ========================================================================= +/* ========================================================================= * AG pass-through mode handle *===========================================================================*/ /******************************************************************************* @@ -123,7 +123,7 @@ void bta_ag_ci_rx_write(UINT16 handle, char *p_data, UINT16 len) char *p_data_area; if (len > (BT_DEFAULT_BUFFER_SIZE - sizeof(tBTA_AG_CI_RX_WRITE) - 1)) { - len = BT_DEFAULT_BUFFER_SIZE - sizeof(tBTA_AG_CI_RX_WRITE) - 1; + len = BT_DEFAULT_BUFFER_SIZE - sizeof(tBTA_AG_CI_RX_WRITE) - 1; } while (len_remaining) { @@ -211,7 +211,7 @@ static void bta_ag_h2_header(UINT16 *p_buf) ** Returns void ** *******************************************************************************/ -static void bta_hf_dec_init(void) +static void bta_hf_dec_init(void) { #if (PLC_INCLUDED == TRUE) sbc_plc_init(&(bta_hf_ct_plc.plc_state)); @@ -285,7 +285,7 @@ static void bta_ag_decode_msbc_frame(UINT8 **data, UINT8 *length, BOOLEAN is_bad bta_hf_ct_plc.first_good_frame_found = TRUE; sbc_plc_good_frame(&(bta_hf_ct_plc.plc_state), (int16_t *)bta_ag_co_cb.decode_raw_data, bta_hf_ct_plc.sbc_plc_out); } - + case OI_CODEC_SBC_NOT_ENOUGH_HEADER_DATA: case OI_CODEC_SBC_NOT_ENOUGH_BODY_DATA: case OI_CODEC_SBC_NOT_ENOUGH_AUDIO_DATA: @@ -307,7 +307,7 @@ static void bta_ag_decode_msbc_frame(UINT8 **data, UINT8 *length, BOOLEAN is_bad APPL_TRACE_DEBUG("bad frame, using PLC to fix it."); break; } - + case OI_STATUS_INVALID_PARAMETERS: { // This caused by corrupt frames. @@ -391,7 +391,7 @@ tBTA_HFP_SCO_ROUTE_TYPE bta_ag_sco_co_init(UINT32 rx_bw, UINT32 tx_bw, tBTA_HFP_ ** Function bta_ag_sco_co_open ** ** Description This function is executed by AG when a service level connection -** is opened. +** is opened. ** ** ** Returns void @@ -587,4 +587,4 @@ void bta_ag_sco_co_in_data(BT_HDR *p_buf, tBTM_SCO_DATA_FLAG status) } } #endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE) */ -#endif /* #if (BTA_AG_INCLUDED == TRUE) */ \ No newline at end of file +#endif /* #if (BTA_AG_INCLUDED == TRUE) */ diff --git a/components/bt/host/bluedroid/btc/profile/std/hf_ag/btc_hf_ag.c b/components/bt/host/bluedroid/btc/profile/std/hf_ag/btc_hf_ag.c index 0a2f1db2f9..1b6b8b6709 100644 --- a/components/bt/host/bluedroid/btc/profile/std/hf_ag/btc_hf_ag.c +++ b/components/bt/host/bluedroid/btc/profile/std/hf_ag/btc_hf_ag.c @@ -289,7 +289,7 @@ bt_status_t btc_hf_execute_service(BOOLEAN b_enable) } /************************************************************************************ -** BTC HFP AG API FUNCTION +** BTC HFP AG API FUNCTION ************************************************************************************/ /************************************************************************************ ** Initialization and Connection Handle @@ -339,7 +339,7 @@ static bt_status_t connect_init(bt_bdaddr_t *bd_addr, uint16_t uuid) if (!is_connected(bd_addr)) { hf_local_param[idx].btc_hf_cb.connection_state = ESP_HF_CONNECTION_STATE_CONNECTING; bdcpy(hf_local_param[idx].btc_hf_cb.connected_bda.address, bd_addr->address); - BTA_AgOpen(hf_local_param[idx].btc_hf_cb.handle, hf_local_param[idx].btc_hf_cb.connected_bda.address, BTC_HF_SECURITY, BTC_HF_SERVICES); + BTA_AgOpen(hf_local_param[idx].btc_hf_cb.handle, hf_local_param[idx].btc_hf_cb.connected_bda.address, BTC_HF_SECURITY, BTC_HF_SERVICES); return BT_STATUS_SUCCESS; } return BT_STATUS_BUSY; @@ -488,7 +488,7 @@ static bt_status_t btc_hf_cmee_response(bt_bdaddr_t *bd_addr, esp_hf_at_response BTC_TRACE_ERROR("%s: Invalid index %d", __FUNCTION__, idx); return BT_STATUS_FAIL; } - + if (is_connected(bd_addr) && (idx != BTC_HF_INVALID_IDX)) { tBTA_AG_RES_DATA ag_res; memset(&ag_res, 0, sizeof(ag_res)); @@ -526,7 +526,7 @@ static bt_status_t btc_hf_indchange_notification(bt_bdaddr_t *bd_addr, //AT+CIND response static bt_status_t btc_hf_cind_response(bt_bdaddr_t *bd_addr, - esp_hf_call_setup_status_t call_status, + esp_hf_call_setup_status_t call_status, esp_hf_call_setup_status_t call_setup_status, esp_hf_network_state_t ntk_state, int signal, esp_hf_service_type_t roam, int batt_lev, esp_hf_call_held_status_t call_held_status) @@ -548,7 +548,7 @@ static bt_status_t btc_hf_cind_response(bt_bdaddr_t *bd_addr, signal, /* Signal strength */ roam, /* Roaming indicator */ batt_lev, /* Battery level */ - call_held_status /* Callheld state */ + call_held_status /* Callheld state */ ); BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, BTA_AG_CIND_RES, &ag_res); return BT_STATUS_SUCCESS; @@ -581,7 +581,7 @@ static bt_status_t btc_hf_cops_response(bt_bdaddr_t *bd_addr, const char *name) //AT+CLCC response static bt_status_t btc_hf_clcc_response(bt_bdaddr_t *bd_addr, int index, esp_hf_current_call_direction_t dir, esp_hf_current_call_status_t current_call_state, - esp_hf_current_call_mode_t mode, esp_hf_current_call_mpty_type_t mpty, + esp_hf_current_call_mode_t mode, esp_hf_current_call_mpty_type_t mpty, const char *number, esp_hf_call_addr_type_t type) { int idx = btc_hf_idx_by_bdaddr(bd_addr); @@ -641,7 +641,7 @@ static bt_status_t btc_hf_inband_ring(bt_bdaddr_t *bd_addr, esp_hf_in_band_ring_ { int idx = btc_hf_idx_by_bdaddr(bd_addr); CHECK_HF_SLC_CONNECTED(); - + if (is_connected(bd_addr) && (idx != BTC_HF_INVALID_IDX)) { tBTA_AG_RES_DATA ag_res; memset (&ag_res, 0, sizeof (ag_res)); @@ -707,7 +707,7 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active */ /* Handle case(3) here prior to call setup handling.*/ - if (((num_active + num_held) > 0) && + if (((num_active + num_held) > 0) && (hf_local_param[idx].btc_hf_cb.num_active == 0) && (hf_local_param[idx].btc_hf_cb.num_held == 0) && (hf_local_param[idx].btc_hf_cb.call_setup_state == ESP_HF_CALL_SETUP_STATUS_IDLE)) { @@ -766,7 +766,7 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active } break; } - + default: BTC_TRACE_ERROR("%s: Call setup state no change.", __FUNCTION__); status = BT_STATUS_PARM_INVALID; @@ -953,7 +953,7 @@ void btc_hf_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src) } break; } - + case BTC_HF_AC_INCALL_EVT: case BTC_HF_RJ_INCALL_EVT: case BTC_HF_OUT_CALL_EVT: @@ -1011,7 +1011,7 @@ void btc_hf_arg_deep_free(btc_msg_t *msg) } break; } - + case BTC_HF_AC_INCALL_EVT: case BTC_HF_RJ_INCALL_EVT: case BTC_HF_OUT_CALL_EVT: @@ -1034,7 +1034,7 @@ void btc_hf_arg_deep_free(btc_msg_t *msg) void btc_hf_call_handler(btc_msg_t *msg) { btc_hf_args_t *arg = (btc_hf_args_t *)(msg->arg); - + switch (msg->act) { case BTC_HF_INIT_EVT: { @@ -1221,12 +1221,12 @@ void btc_hf_cb_handler(btc_msg_t *msg) hf_local_param[idx].btc_hf_cb.handle = p_data->reg.hdr.handle; BTC_TRACE_DEBUG("%s: BTA_AG_REGISTER_EVT," "hf_local_param[%d].btc_hf_cb.handle = %d", __FUNCTION__, idx, hf_local_param[idx].btc_hf_cb.handle); - break; + break; } case BTA_AG_OPEN_EVT: { - if (p_data->open.status == BTA_AG_SUCCESS) + if (p_data->open.status == BTA_AG_SUCCESS) { bdcpy(hf_local_param[idx].btc_hf_cb.connected_bda.address, p_data->open.bd_addr); hf_local_param[idx].btc_hf_cb.connection_state = ESP_HF_CONNECTION_STATE_CONNECTED; @@ -1236,7 +1236,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) } else if (hf_local_param[idx].btc_hf_cb.connection_state == ESP_HF_CONNECTION_STATE_CONNECTING) { hf_local_param[idx].btc_hf_cb.connection_state = ESP_HF_CONNECTION_STATE_DISCONNECTED; } else { - BTC_TRACE_WARNING("%s: AG open failed, but another device connected. status=%d state=%d connected device=%s", __FUNCTION__, + BTC_TRACE_WARNING("%s: AG open failed, but another device connected. status=%d state=%d connected device=%s", __FUNCTION__, p_data->open.status, hf_local_param[idx].btc_hf_cb.connection_state, bdaddr_to_string(&hf_local_param[idx].btc_hf_cb.connected_bda, bdstr, sizeof(bdstr))); break; @@ -1269,7 +1269,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) do { memset(¶m, 0, sizeof(esp_hf_cb_param_t)); - param.conn_stat.state = hf_local_param[idx].btc_hf_cb.connection_state; + param.conn_stat.state = hf_local_param[idx].btc_hf_cb.connection_state; param.conn_stat.peer_feat = hf_local_param[idx].btc_hf_cb.peer_feat; param.conn_stat.chld_feat = hf_local_param[idx].btc_hf_cb.chld_feat; memcpy(param.conn_stat.remote_bda, &hf_local_param[idx].btc_hf_cb.connected_bda, sizeof(esp_bd_addr_t)); @@ -1284,7 +1284,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) { hf_local_param[idx].btc_hf_cb.connected_timestamp.tv_sec = 0; hf_local_param[idx].btc_hf_cb.connection_state = ESP_HF_CONNECTION_STATE_DISCONNECTED; - BTC_TRACE_DEBUG("%s: BTA_AG_CLOSE_EVT," "hf_local_param[%d].btc_hf_cb.handle = %d", __FUNCTION__, + BTC_TRACE_DEBUG("%s: BTA_AG_CLOSE_EVT," "hf_local_param[%d].btc_hf_cb.handle = %d", __FUNCTION__, idx, hf_local_param[idx].btc_hf_cb.handle); do { memset(¶m, 0, sizeof(esp_hf_cb_param_t)); @@ -1493,4 +1493,4 @@ void btc_hf_cb_handler(btc_msg_t *msg) break; } } -#endif // #if (BTC_HF_INCLUDED == TRUE) \ No newline at end of file +#endif // #if (BTC_HF_INCLUDED == TRUE) diff --git a/components/bt/host/bluedroid/btc/profile/std/hf_client/bta_hf_client_co.c b/components/bt/host/bluedroid/btc/profile/std/hf_client/bta_hf_client_co.c index 99b9280304..53a4135d84 100644 --- a/components/bt/host/bluedroid/btc/profile/std/hf_client/bta_hf_client_co.c +++ b/components/bt/host/bluedroid/btc/profile/std/hf_client/bta_hf_client_co.c @@ -506,4 +506,4 @@ void bta_hf_client_sco_co_in_data(BT_HDR *p_buf, tBTM_SCO_DATA_FLAG status) #endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE) */ -#endif /* #if (BTA_HF_INCLUDED == TRUE) */ \ No newline at end of file +#endif /* #if (BTA_HF_INCLUDED == TRUE) */ diff --git a/components/bt/host/bluedroid/btc/profile/std/include/btc_gattc.h b/components/bt/host/bluedroid/btc/profile/std/include/btc_gattc.h index daa38ebeaa..e54d9e9467 100644 --- a/components/bt/host/bluedroid/btc/profile/std/include/btc_gattc.h +++ b/components/bt/host/bluedroid/btc/profile/std/include/btc_gattc.h @@ -190,7 +190,7 @@ typedef union { void btc_gattc_call_handler(btc_msg_t *msg); void btc_gattc_cb_handler(btc_msg_t *msg); void btc_gattc_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src); -esp_gatt_status_t btc_ble_gattc_get_service(uint16_t conn_id, esp_bt_uuid_t *svc_uuid, +esp_gatt_status_t btc_ble_gattc_get_service(uint16_t conn_id, esp_bt_uuid_t *svc_uuid, esp_gattc_service_elem_t *result, uint16_t *count, uint16_t offset); esp_gatt_status_t btc_ble_gattc_get_all_char(uint16_t conn_id, @@ -236,7 +236,7 @@ esp_gatt_status_t btc_ble_gattc_get_attr_count(uint16_t conn_id, uint16_t char_handle, uint16_t *count); -esp_gatt_status_t btc_ble_gattc_get_db(uint16_t conn_id, uint16_t start_handle, uint16_t end_handle, +esp_gatt_status_t btc_ble_gattc_get_db(uint16_t conn_id, uint16_t start_handle, uint16_t end_handle, esp_gattc_db_elem_t *db, uint16_t *count); diff --git a/components/bt/host/bluedroid/btc/profile/std/include/btc_hf_ag.h b/components/bt/host/bluedroid/btc/profile/std/include/btc_hf_ag.h index 5d1edbb8d4..bba8e77106 100644 --- a/components/bt/host/bluedroid/btc/profile/std/include/btc_hf_ag.h +++ b/components/bt/host/bluedroid/btc/profile/std/include/btc_hf_ag.h @@ -37,7 +37,7 @@ ** Type Defs ********************************************************************************/ /* btc_hf_act_t */ -typedef enum +typedef enum { //INIT BTC_HF_INIT_EVT, @@ -67,7 +67,7 @@ typedef enum } btc_hf_act_t; /* btc_hf_args_t */ -typedef union +typedef union { // BTC_HF_INIT_EVT bt_bdaddr_t init; @@ -77,13 +77,13 @@ typedef union // BTC_HF_CONNECT_EVT bt_bdaddr_t connect; - + // BTC_HF_DISCONNECT_EVT bt_bdaddr_t disconnect; - + // BTC_HF_CONNECT_AUDIO_EVT bt_bdaddr_t connect_audio; - + // BTC_HF_DISCONNECT_AUDIO_EVT bt_bdaddr_t disconnect_audio; @@ -139,7 +139,7 @@ typedef union bt_bdaddr_t remote_addr; char *name; } cops_rep; - + // BTC_HF_CLCC_RESPONSE_EVT struct clcc_args { bt_bdaddr_t remote_addr; @@ -151,7 +151,7 @@ typedef union char *number; esp_hf_call_addr_type_t type; } clcc_rep; - + // BTC_HF_CNUM_RESPONSE_EVT struct cnum_args { bt_bdaddr_t remote_addr; @@ -171,7 +171,7 @@ typedef union //BTC_HF_INBAND_RING_EVT struct bsir_args { bt_bdaddr_t remote_addr; - esp_hf_in_band_ring_state_t state; + esp_hf_in_band_ring_state_t state; } bsir; // BTC_HF_AC_INCALL_EVT @@ -258,4 +258,3 @@ bt_status_t btc_hf_ci_sco_data(void); #endif // BTC_HF_INCLUDED == TRUE #endif /* __BTC_HF_AG_H__ */ - diff --git a/components/bt/host/bluedroid/btc/profile/std/smp/esp_app_sec.c b/components/bt/host/bluedroid/btc/profile/std/smp/esp_app_sec.c index c6bbadea7f..33a161de7c 100644 --- a/components/bt/host/bluedroid/btc/profile/std/smp/esp_app_sec.c +++ b/components/bt/host/bluedroid/btc/profile/std/smp/esp_app_sec.c @@ -99,8 +99,3 @@ void app_ble_security_start(void) { } - - - - - diff --git a/components/bt/host/bluedroid/btc/profile/std/spp/btc_spp.c b/components/bt/host/bluedroid/btc/profile/std/spp/btc_spp.c index c55633a89c..08b7c7e904 100644 --- a/components/bt/host/bluedroid/btc/profile/std/spp/btc_spp.c +++ b/components/bt/host/bluedroid/btc/profile/std/spp/btc_spp.c @@ -680,7 +680,7 @@ static void btc_spp_start_srv(btc_spp_args_t *arg) } } -static void btc_spp_stop_srv(void) +static void btc_spp_stop_srv(void) { esp_spp_status_t ret = ESP_SPP_SUCCESS; do { @@ -940,7 +940,7 @@ void btc_spp_cb_handler(btc_msg_t *msg) } break; case BTA_JV_RFCOMM_WRITE_EVT: - osi_mutex_lock(&spp_local_param.spp_slot_mutex, OSI_MUTEX_MAX_TIMEOUT); + osi_mutex_lock(&spp_local_param.spp_slot_mutex, OSI_MUTEX_MAX_TIMEOUT); slot = spp_find_slot_by_handle(p_data->rfc_write.handle); if (!slot) { BTC_TRACE_ERROR("%s unable to find RFCOMM slot!, handle:%d", __func__, p_data->rfc_write.handle); diff --git a/components/bt/host/bluedroid/common/include/common/bt_vendor_lib.h b/components/bt/host/bluedroid/common/include/common/bt_vendor_lib.h index e3a8ec8dbf..63e6f9a693 100644 --- a/components/bt/host/bluedroid/common/include/common/bt_vendor_lib.h +++ b/components/bt/host/bluedroid/common/include/common/bt_vendor_lib.h @@ -359,4 +359,3 @@ typedef struct { //extern const bt_vendor_interface_t BLUETOOTH_VENDOR_LIB_INTERFACE; #endif /* BT_VENDOR_LIB_H */ - diff --git a/components/bt/host/bluedroid/device/controller.c b/components/bt/host/bluedroid/device/controller.c index 2c2ac129f2..79e4f1f27c 100644 --- a/components/bt/host/bluedroid/device/controller.c +++ b/components/bt/host/bluedroid/device/controller.c @@ -560,4 +560,3 @@ const controller_t *controller_get_interface(void) return &interface; } - diff --git a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_assert.h b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_assert.h index 9649f660c1..2f20f3a0ae 100644 --- a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_assert.h +++ b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_assert.h @@ -83,4 +83,3 @@ void OI_AssertFail(char *file, int line, char *reason); /**@}*/ #endif /* _OI_ASSERT_H */ - diff --git a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_codec_sbc.h b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_codec_sbc.h index 643bd82cc5..495fbf6b91 100644 --- a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_codec_sbc.h +++ b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_codec_sbc.h @@ -486,5 +486,3 @@ void OI_CODEC_SBC_DumpConfig(OI_CODEC_SBC_FRAME_INFO *frameInfo); #endif /* _OI_CODEC_SBC_CORE_H */ - - diff --git a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_codec_sbc_private.h b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_codec_sbc_private.h index 5682672aab..62ee710687 100644 --- a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_codec_sbc_private.h +++ b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_codec_sbc_private.h @@ -227,4 +227,3 @@ PRIVATE OI_STATUS OI_CODEC_SBC_Alloc(OI_CODEC_SBC_COMMON_CONTEXT *common, */ #endif /* _OI_CODEC_SBC_PRIVATE_H */ - diff --git a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_modules.h b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_modules.h index 7784212ad2..1b7c24bfd0 100644 --- a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_modules.h +++ b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_modules.h @@ -168,4 +168,3 @@ typedef enum { /**@}*/ #endif /* _OI_MODULES_H */ - diff --git a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_osinterface.h b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_osinterface.h index 7868041900..f486c8bb4e 100644 --- a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_osinterface.h +++ b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_osinterface.h @@ -194,4 +194,3 @@ void OI_APP_Free(void *ptr); /**@}*/ #endif /* _OI_OSINTERFACE_H */ - diff --git a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_status.h b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_status.h index 8c392a292d..b527ebb1cd 100644 --- a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_status.h +++ b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_status.h @@ -576,4 +576,3 @@ typedef enum { /**@}*/ #endif /* _OI_STATUS_H */ - diff --git a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_string.h b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_string.h index 928acb07df..06768bd1f5 100644 --- a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_string.h +++ b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_string.h @@ -205,4 +205,3 @@ OI_INT OI_StrncmpInsensitive(OI_CHAR const *s1, /*****************************************************************************/ #endif /* OI_STRING_H */ - diff --git a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_time.h b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_time.h index 40b8dfc4d7..376e68423e 100644 --- a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_time.h +++ b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_time.h @@ -197,4 +197,3 @@ OI_BOOL OI_Time_NowReachedTime(OI_TIME *pTargetTime); /*****************************************************************************/ #endif /* _OI_TIME_H */ - diff --git a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_utils.h b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_utils.h index f12ef0d4bc..d7e753b034 100644 --- a/components/bt/host/bluedroid/external/sbc/decoder/include/oi_utils.h +++ b/components/bt/host/bluedroid/external/sbc/decoder/include/oi_utils.h @@ -374,4 +374,3 @@ const OI_CHAR *OI_ScanBdAddr(const OI_CHAR *str, /**@}*/ #endif /* _OI_UTILS_H */ - diff --git a/components/bt/host/bluedroid/external/sbc/encoder/include/sbc_enc_func_declare.h b/components/bt/host/bluedroid/external/sbc/encoder/include/sbc_enc_func_declare.h index cc85b71643..b863dd89ee 100644 --- a/components/bt/host/bluedroid/external/sbc/encoder/include/sbc_enc_func_declare.h +++ b/components/bt/host/bluedroid/external/sbc/encoder/include/sbc_enc_func_declare.h @@ -54,4 +54,3 @@ extern void EncQuantizer(SBC_ENC_PARAMS *); SINT32 SBC_Multiply_32_16_Simplified(SINT32 s32In2Temp, SINT32 s32In1Temp); #endif #endif - diff --git a/components/bt/host/bluedroid/external/sbc/plc/sbc_plc.c b/components/bt/host/bluedroid/external/sbc/plc/sbc_plc.c index dceae9a849..0218ce73fa 100644 --- a/components/bt/host/bluedroid/external/sbc/plc/sbc_plc.c +++ b/components/bt/host/bluedroid/external/sbc/plc/sbc_plc.c @@ -303,4 +303,4 @@ void sbc_plc_good_frame(sbc_plc_state_t *plc_state, int16_t *in, int16_t *out){ plc_state->nbf = 0; } -#endif ///(PLC_INCLUDED == TRUE) \ No newline at end of file +#endif ///(PLC_INCLUDED == TRUE) diff --git a/components/bt/host/bluedroid/hci/hci_hal_h4.c b/components/bt/host/bluedroid/hci/hci_hal_h4.c index 1aa7c79902..b6aa599efc 100644 --- a/components/bt/host/bluedroid/hci/hci_hal_h4.c +++ b/components/bt/host/bluedroid/hci/hci_hal_h4.c @@ -209,7 +209,7 @@ bool host_recv_adv_packet(BT_HDR *packet) { assert(packet); if(packet->data[0] == DATA_TYPE_EVENT && packet->data[1] == HCI_BLE_EVENT) { - if(packet->data[3] == HCI_BLE_ADV_PKT_RPT_EVT + if(packet->data[3] == HCI_BLE_ADV_PKT_RPT_EVT #if (BLE_ADV_REPORT_FLOW_CONTROL == TRUE) || packet->data[3] == HCI_BLE_ADV_DISCARD_REPORT_EVT #endif @@ -371,4 +371,3 @@ const hci_hal_t *hci_hal_h4_get_interface(void) { return &interface; } - diff --git a/components/bt/host/bluedroid/hci/hci_layer.c b/components/bt/host/bluedroid/hci/hci_layer.c index ad8efcf17f..4821748a4c 100644 --- a/components/bt/host/bluedroid/hci/hci_layer.c +++ b/components/bt/host/bluedroid/hci/hci_layer.c @@ -563,4 +563,3 @@ const hci_t *hci_layer_get_interface(void) init_layer_interface(); return &interface; } - diff --git a/components/bt/host/bluedroid/hci/hci_packet_parser.c b/components/bt/host/bluedroid/hci/hci_packet_parser.c index a99ef8b0d1..9f24751501 100644 --- a/components/bt/host/bluedroid/hci/hci_packet_parser.c +++ b/components/bt/host/bluedroid/hci/hci_packet_parser.c @@ -254,4 +254,3 @@ const hci_packet_parser_t *hci_packet_parser_get_interface(void) { return &interface; } - diff --git a/components/bt/host/bluedroid/hci/include/hci/bt_vendor_lib.h b/components/bt/host/bluedroid/hci/include/hci/bt_vendor_lib.h index e3a8ec8dbf..63e6f9a693 100644 --- a/components/bt/host/bluedroid/hci/include/hci/bt_vendor_lib.h +++ b/components/bt/host/bluedroid/hci/include/hci/bt_vendor_lib.h @@ -359,4 +359,3 @@ typedef struct { //extern const bt_vendor_interface_t BLUETOOTH_VENDOR_LIB_INTERFACE; #endif /* BT_VENDOR_LIB_H */ - diff --git a/components/bt/host/bluedroid/hci/packet_fragmenter.c b/components/bt/host/bluedroid/hci/packet_fragmenter.c index fac5f52ba9..a562e3c45a 100644 --- a/components/bt/host/bluedroid/hci/packet_fragmenter.c +++ b/components/bt/host/bluedroid/hci/packet_fragmenter.c @@ -236,4 +236,3 @@ const packet_fragmenter_t *packet_fragmenter_get_interface(void) controller = controller_get_interface(); return &interface; } - diff --git a/components/bt/host/bluedroid/stack/avct/avct_api.c b/components/bt/host/bluedroid/stack/avct/avct_api.c index 799bbf553c..7826eaa5d2 100644 --- a/components/bt/host/bluedroid/stack/avct/avct_api.c +++ b/components/bt/host/bluedroid/stack/avct/avct_api.c @@ -38,7 +38,7 @@ /* Control block for AVCT */ #if AVCT_DYNAMIC_MEMORY == FALSE tAVCT_CB avct_cb; -#else +#else tAVCT_CB *avct_cb_ptr; #endif diff --git a/components/bt/host/bluedroid/stack/avdt/include/avdt_defs.h b/components/bt/host/bluedroid/stack/avdt/include/avdt_defs.h index 8b65c52d74..f39e261b9b 100644 --- a/components/bt/host/bluedroid/stack/avdt/include/avdt_defs.h +++ b/components/bt/host/bluedroid/stack/avdt/include/avdt_defs.h @@ -205,4 +205,3 @@ #endif ///AVRC_INCLUDED == TRUE #endif /* AVDT_DEFS_H */ - diff --git a/components/bt/host/bluedroid/stack/btm/btm_ble_addr.c b/components/bt/host/bluedroid/stack/btm/btm_ble_addr.c index 0f134de8b9..d587b8b269 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_ble_addr.c +++ b/components/bt/host/bluedroid/stack/btm/btm_ble_addr.c @@ -621,5 +621,3 @@ void btm_ble_refresh_local_resolvable_private_addr(BD_ADDR pseudo_addr, #endif } #endif - - diff --git a/components/bt/host/bluedroid/stack/btm/btm_ble_bgconn.c b/components/bt/host/bluedroid/stack/btm/btm_ble_bgconn.c index 83e23102d0..a77e705b0d 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_ble_bgconn.c +++ b/components/bt/host/bluedroid/stack/btm/btm_ble_bgconn.c @@ -185,7 +185,7 @@ BOOLEAN btm_add_dev_to_controller (BOOLEAN to_add, BD_ADDR bd_addr, tBLE_ADDR_TY } p_dev_rec->ble.in_controller_list &= ~BTM_WHITE_LIST_BIT; } - } // if not a known device, shall we add it? + } // if not a known device, shall we add it? else { BTM_ReadDevInfo(bd_addr, &dev_type, &addr_type); @@ -814,5 +814,3 @@ BOOLEAN btm_send_pending_direct_conn(void) } #endif - - diff --git a/components/bt/host/bluedroid/stack/btm/btm_ble_cont_energy.c b/components/bt/host/bluedroid/stack/btm/btm_ble_cont_energy.c index 211492f1ca..dd23d3e932 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_ble_cont_energy.c +++ b/components/bt/host/bluedroid/stack/btm/btm_ble_cont_energy.c @@ -106,4 +106,3 @@ tBTM_STATUS BTM_BleGetEnergyInfo(tBTM_BLE_ENERGY_INFO_CBACK *p_ener_cback) } #endif - diff --git a/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c b/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c index 3b63b48e97..44b45c0ff8 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c +++ b/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c @@ -321,7 +321,7 @@ BOOLEAN BTM_BleUpdateAdvWhitelist(BOOLEAN add_remove, BD_ADDR remote_bda, tBLE_A *******************************************************************************/ void BTM_BleClearWhitelist(void) { - btm_ble_clear_white_list(); + btm_ble_clear_white_list(); } /******************************************************************************* diff --git a/components/bt/host/bluedroid/stack/btm/btm_ble_multi_adv.c b/components/bt/host/bluedroid/stack/btm/btm_ble_multi_adv.c index e70cc51b82..a616a541df 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_ble_multi_adv.c +++ b/components/bt/host/bluedroid/stack/btm/btm_ble_multi_adv.c @@ -872,4 +872,3 @@ void *btm_ble_multi_adv_get_ref(UINT8 inst_id) return NULL; } #endif - diff --git a/components/bt/host/bluedroid/stack/btm/btm_dev.c b/components/bt/host/bluedroid/stack/btm/btm_dev.c index 9d5c0b31c8..cc8e2d9a05 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_dev.c +++ b/components/bt/host/bluedroid/stack/btm/btm_dev.c @@ -605,7 +605,7 @@ tBTM_SEC_DEV_REC *btm_find_oldest_dev (void) tBTM_SEC_DEV_REC *p_oldest = NULL; list_node_t *p_node = NULL; UINT32 ot = 0xFFFFFFFF; - + /* First look for the non-paired devices for the oldest entry */ for (p_node = list_begin(btm_cb.p_sec_dev_rec_list); p_node; p_node = list_next(p_node)) { p_dev_rec = list_node(p_node); diff --git a/components/bt/host/bluedroid/stack/btm/btm_inq.c b/components/bt/host/bluedroid/stack/btm/btm_inq.c index 3a295c558e..7b4edc8791 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_inq.c +++ b/components/bt/host/bluedroid/stack/btm/btm_inq.c @@ -1030,7 +1030,7 @@ tBTM_STATUS BTM_ReadRemoteDeviceName (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb BTM_TRACE_API ("BTM_ReadRemoteDeviceName: bd addr [%02x%02x%02x%02x%02x%02x]\n", remote_bda[0], remote_bda[1], remote_bda[2], remote_bda[3], remote_bda[4], remote_bda[5]); - + /* Use the remote device's clock offset if it is in the local inquiry database */ if ((p_i = btm_inq_db_find (remote_bda)) != NULL) { p_cur = &p_i->inq_info; diff --git a/components/bt/host/bluedroid/stack/btm/btm_pm.c b/components/bt/host/bluedroid/stack/btm/btm_pm.c index 30ba917138..7f7cc14ebd 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_pm.c +++ b/components/bt/host/bluedroid/stack/btm/btm_pm.c @@ -226,7 +226,7 @@ tBTM_STATUS BTM_SetPowerMode (UINT8 pm_id, BD_ADDR remote_bda, tBTM_PM_PWR_MD *p /* update mode database */ if ( ((pm_id != BTM_PM_SET_ONLY_ID) && (btm_cb.pm_reg_db[pm_id].mask & BTM_PM_REG_SET)) - || ((pm_id == BTM_PM_SET_ONLY_ID) + || ((pm_id == BTM_PM_SET_ONLY_ID) && (btm_cb.pm_pend_link_hdl != BTM_INVALID_HANDLE)) ) { #if BTM_PM_DEBUG == TRUE BTM_TRACE_DEBUG( "BTM_SetPowerMode: Saving cmd acl handle %d temp_pm_id %d", p_acl_cb->hci_handle, temp_pm_id); diff --git a/components/bt/host/bluedroid/stack/btm/btm_sco.c b/components/bt/host/bluedroid/stack/btm/btm_sco.c index 0e6414ad4c..6f5dd7806d 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_sco.c +++ b/components/bt/host/bluedroid/stack/btm/btm_sco.c @@ -502,7 +502,7 @@ static tBTM_STATUS btm_send_connect_request(UINT16 acl_handle, /* Finally, remove EDR eSCO if the remote device doesn't support it */ /* UPF25: Only SCO was brought up in this case */ p_acl = btm_handle_to_acl(acl_handle); - if (p_acl) { + if (p_acl) { if (!HCI_EDR_ESCO_2MPS_SUPPORTED(p_acl->peer_lmp_features[HCI_EXT_FEATURES_PAGE_0])) { BTM_TRACE_WARNING("BTM Remote does not support 2-EDR eSCO"); diff --git a/components/bt/host/bluedroid/stack/btu/btu_hcif.c b/components/bt/host/bluedroid/stack/btu/btu_hcif.c index 68f353cc23..b51eb13e72 100644 --- a/components/bt/host/bluedroid/stack/btu/btu_hcif.c +++ b/components/bt/host/bluedroid/stack/btu/btu_hcif.c @@ -1924,4 +1924,3 @@ static void btu_ble_rc_param_req_evt(UINT8 *p) #endif /* BLE_LLT_INCLUDED */ #endif /* BLE_INCLUDED */ - diff --git a/components/bt/host/bluedroid/stack/gap/gap_api.c b/components/bt/host/bluedroid/stack/gap/gap_api.c index b4e7c1b4fb..75d5b5d1db 100644 --- a/components/bt/host/bluedroid/stack/gap/gap_api.c +++ b/components/bt/host/bluedroid/stack/gap/gap_api.c @@ -106,4 +106,4 @@ void GAP_Deinit(void) gap_cb_ptr = NULL; } #endif -} \ No newline at end of file +} diff --git a/components/bt/host/bluedroid/stack/gap/gap_ble.c b/components/bt/host/bluedroid/stack/gap/gap_ble.c index 5aab51fc1b..cb93f2d346 100644 --- a/components/bt/host/bluedroid/stack/gap/gap_ble.c +++ b/components/bt/host/bluedroid/stack/gap/gap_ble.c @@ -790,8 +790,3 @@ BOOLEAN GAP_BleCancelReadPeerDevName (BD_ADDR peer_bda) } #endif /* BLE_INCLUDED == TRUE && GATTS_INCLUDED == TRUE*/ - - - - - diff --git a/components/bt/host/bluedroid/stack/gap/gap_utils.c b/components/bt/host/bluedroid/stack/gap/gap_utils.c index 0e2952f0e0..b358021a8d 100644 --- a/components/bt/host/bluedroid/stack/gap/gap_utils.c +++ b/components/bt/host/bluedroid/stack/gap/gap_utils.c @@ -138,4 +138,4 @@ UINT16 gap_convert_btm_status (tBTM_STATUS btm_status) } } -#endif ///CLASSIC_BT_INCLUDED == TRUE \ No newline at end of file +#endif ///CLASSIC_BT_INCLUDED == TRUE diff --git a/components/bt/host/bluedroid/stack/gatt/gatt_api.c b/components/bt/host/bluedroid/stack/gatt/gatt_api.c index 2879335837..10fe959a2c 100644 --- a/components/bt/host/bluedroid/stack/gatt/gatt_api.c +++ b/components/bt/host/bluedroid/stack/gatt/gatt_api.c @@ -1636,4 +1636,3 @@ BOOLEAN GATT_Listen (tGATT_IF gatt_if, BOOLEAN start, BD_ADDR_PTR bd_addr) } #endif - diff --git a/components/bt/host/bluedroid/stack/gatt/gatt_attr.c b/components/bt/host/bluedroid/stack/gatt/gatt_attr.c index 3a67a8bf25..062c5cad80 100644 --- a/components/bt/host/bluedroid/stack/gatt/gatt_attr.c +++ b/components/bt/host/bluedroid/stack/gatt/gatt_attr.c @@ -359,7 +359,7 @@ void gatt_profile_db_init (void) GATT_TRACE_DEBUG ("gatt_profile_db_init: handle of service changed%d\n", gatt_cb.handle_of_h_r); - + tBT_UUID descr_uuid = {LEN_UUID_16, {GATT_UUID_CHAR_CLIENT_CONFIG}}; uint8_t ccc_value[2] ={ 0x00, 0x00}; diff --git a/components/bt/host/bluedroid/stack/gatt/gatt_db.c b/components/bt/host/bluedroid/stack/gatt/gatt_db.c index bedbe33570..3809d2c853 100644 --- a/components/bt/host/bluedroid/stack/gatt/gatt_db.c +++ b/components/bt/host/bluedroid/stack/gatt/gatt_db.c @@ -279,7 +279,7 @@ static tGATT_STATUS read_attr_value (void *p_attr, /*if offset equal to max_len, should respond with zero byte value //if offset is greater than max_len, should respond with an error*/ status = GATT_INVALID_OFFSET; - } else { + } else { UINT8 *value = (UINT8 *)(p_attr16->p_value->attr_val.attr_val) + offset; UINT16 len_left = p_attr16->p_value->attr_val.attr_len - offset; len = (mtu >= len_left) ? (len_left) : mtu; @@ -557,7 +557,7 @@ UINT16 gatts_add_characteristic (tGATT_SVC_DB *p_db, tGATT_PERM perm, //add mask to indicate that p_value->attr_val.attr_val is dynamic allocated p_char_val->mask |= GATT_ATTR_VALUE_ALLOCATED; } - + //initiate characteristic attribute value part memset(p_char_val->p_value->attr_val.attr_val, 0, attr_val->attr_max_len); if (attr_val->attr_val != NULL) { @@ -961,15 +961,15 @@ tGATT_STATUS gatts_write_attr_value_by_handle(tGATT_SVC_DB *p_db, return GATT_APP_RSP; } - if ((p_attr->p_value != NULL) && - (p_attr->p_value->attr_val.attr_max_len >= offset + len) && + if ((p_attr->p_value != NULL) && + (p_attr->p_value->attr_val.attr_max_len >= offset + len) && p_attr->p_value->attr_val.attr_val != NULL) { memcpy(p_attr->p_value->attr_val.attr_val + offset, p_value, len); p_attr->p_value->attr_val.attr_len = len + offset; return GATT_SUCCESS; } else if (p_attr->p_value->attr_val.attr_max_len < offset + len){ GATT_TRACE_DEBUG("Remote device try to write with a length larger then attribute's max length\n"); - return GATT_INVALID_ATTR_LEN; + return GATT_INVALID_ATTR_LEN; } else if ((p_attr->p_value == NULL) || (p_attr->p_value->attr_val.attr_val == NULL)){ GATT_TRACE_ERROR("Error in %s, line=%d, %s should not be NULL here\n", __func__, __LINE__, \ (p_attr->p_value == NULL) ? "p_value" : "attr_val.attr_val"); @@ -1425,7 +1425,7 @@ static tGATT_STATUS gatts_send_app_read_request(tGATT_TCB *p_tcb, UINT8 op_code, gatt_sr_send_req_callback(conn_id, trans_id, GATTS_REQ_TYPE_READ, &sr_data); - + if (need_rsp) { return (tGATT_STATUS) GATT_PENDING; } diff --git a/components/bt/host/bluedroid/stack/gatt/gatt_main.c b/components/bt/host/bluedroid/stack/gatt/gatt_main.c index 34715bc44e..cfded62b39 100644 --- a/components/bt/host/bluedroid/stack/gatt/gatt_main.c +++ b/components/bt/host/bluedroid/stack/gatt/gatt_main.c @@ -173,7 +173,7 @@ void gatt_free(void) list_node_t *p_node = NULL; tGATT_TCB *p_tcb = NULL; for(p_node = list_begin(gatt_cb.p_tcb_list); p_node; p_node = list_next(p_node)) { - p_tcb = list_node(p_node); + p_tcb = list_node(p_node); fixed_queue_free(p_tcb->pending_enc_clcb, NULL); p_tcb->pending_enc_clcb = NULL; diff --git a/components/bt/host/bluedroid/stack/gatt/gatt_sr.c b/components/bt/host/bluedroid/stack/gatt/gatt_sr.c index 1607857810..253a7ac56d 100644 --- a/components/bt/host/bluedroid/stack/gatt/gatt_sr.c +++ b/components/bt/host/bluedroid/stack/gatt/gatt_sr.c @@ -36,12 +36,12 @@ /******************************************************************************* ** -** Function gatt_send_packet +** Function gatt_send_packet ** ** Description This function is called to send gatt packets directly ** -** Returns status +** Returns status ** *******************************************************************************/ tGATT_STATUS gatt_send_packet (tGATT_TCB *p_tcb, UINT8 *p_data, UINT16 len) @@ -67,7 +67,7 @@ tGATT_STATUS gatt_send_packet (tGATT_TCB *p_tcb, UINT8 *p_data, UINT16 len) status = attp_send_sr_msg(p_tcb, p_msg); return status; -} +} /******************************************************************************* ** @@ -385,31 +385,31 @@ void gatt_process_exec_write_req (tGATT_TCB *p_tcb, UINT8 op_code, UINT16 len, U prepare_record = &(p_tcb->prepare_write_record); queue_num = fixed_queue_length(prepare_record->queue); - //if received prepare_write packets include stack_rsp and app_rsp, + //if received prepare_write packets include stack_rsp and app_rsp, //stack respond to execute_write only when stack_rsp handle has invalid_offset - //or invalid_length error; + //or invalid_length error; //app need to respond to execute_write if it has received app_rsp handle packets - if (((prepare_record->error_code_app == GATT_SUCCESS) && + if (((prepare_record->error_code_app == GATT_SUCCESS) && (prepare_record->total_num == queue_num)) || (flag == GATT_PREP_WRITE_CANCEL)){ tGATT_EXEC_WRITE_RSP gatt_exec_write_rsp; gatt_exec_write_rsp.op_code = GATT_RSP_EXEC_WRITE; - gatt_send_packet(p_tcb, (UINT8 *)(&gatt_exec_write_rsp), sizeof(gatt_exec_write_rsp)); + gatt_send_packet(p_tcb, (UINT8 *)(&gatt_exec_write_rsp), sizeof(gatt_exec_write_rsp)); gatt_dequeue_sr_cmd(p_tcb); if (flag != GATT_PREP_WRITE_CANCEL){ is_prepare_write_valid = TRUE; } GATT_TRACE_DEBUG("Send execute_write_rsp\n"); - } else if ((prepare_record->error_code_app == GATT_SUCCESS) && + } else if ((prepare_record->error_code_app == GATT_SUCCESS) && (prepare_record->total_num > queue_num)){ - //No error for stack_rsp's handles and there exist some app_rsp's handles, + //No error for stack_rsp's handles and there exist some app_rsp's handles, //so exec_write_rsp depends to app's response; but stack_rsp's data is valid //TODO: there exist problem if stack_rsp's data is valid but app_rsp's data is not valid. is_prepare_write_valid = TRUE; } else if(prepare_record->total_num < queue_num) { GATT_TRACE_ERROR("Error in %s, line=%d, prepare write total number (%d) \ should not smaller than prepare queue number (%d)\n", \ - __func__, __LINE__,prepare_record->total_num, queue_num); + __func__, __LINE__,prepare_record->total_num, queue_num); } else if (prepare_record->error_code_app != GATT_SUCCESS){ GATT_TRACE_DEBUG("Send error code for execute_write, code=0x%x\n", prepare_record->error_code_app); is_need_dequeue_sr_cmd = (prepare_record->total_num == queue_num) ? TRUE : FALSE; @@ -436,7 +436,7 @@ void gatt_process_exec_write_req (tGATT_TCB *p_tcb, UINT8 op_code, UINT16 len, U fixed_queue_free(prepare_record->queue, NULL); prepare_record->queue = NULL; - /* according to ble spec, even if there is no prep write queued, + /* according to ble spec, even if there is no prep write queued, * need to respond execute_write_response * Note: exec_write_rsp callback should be called after all data has been written*/ if (!gatt_sr_is_prep_cnt_zero(p_tcb)) { @@ -989,7 +989,7 @@ static void gatts_process_mtu_req (tGATT_TCB *p_tcb, UINT16 len, UINT8 *p_data) ** - discover characteristic by UUID ** - relationship discovery ** -** Returns void +** Returns void ** *******************************************************************************/ void gatts_process_read_by_type_req(tGATT_TCB *p_tcb, UINT8 op_code, UINT16 len, UINT8 *p_data) @@ -1171,8 +1171,8 @@ void gatts_process_write_req (tGATT_TCB *p_tcb, UINT8 i_rcb, UINT16 handle, if ((op_code == GATT_REQ_WRITE) && (sr_data.write_req.need_rsp == FALSE)){ if (status == GATT_SUCCESS){ tGATT_WRITE_REQ_RSP gatt_write_req_rsp; - gatt_write_req_rsp.op_code = GATT_RSP_WRITE; - gatt_send_packet(p_tcb, (UINT8 *)(&gatt_write_req_rsp), sizeof(gatt_write_req_rsp)); + gatt_write_req_rsp.op_code = GATT_RSP_WRITE; + gatt_send_packet(p_tcb, (UINT8 *)(&gatt_write_req_rsp), sizeof(gatt_write_req_rsp)); gatt_dequeue_sr_cmd(p_tcb); } else if (status != GATT_PENDING){ /* note: in case of GATT_BUSY, will respond this application error to remote device */ @@ -1202,11 +1202,11 @@ void gatt_attr_process_prepare_write (tGATT_TCB *p_tcb, UINT8 i_rcb, UINT16 hand tGATT_ATTR16 *p_attr; tGATT_ATTR16 *p_attr_temp; tGATTS_DATA sr_data; - UINT32 trans_id = 0; + UINT32 trans_id = 0; UINT8 sec_flag, key_size, *p = p_data; tGATT_SR_REG *p_sreg; UINT16 conn_id, offset = 0; - tGATT_SVC_DB *p_db; + tGATT_SVC_DB *p_db; BOOLEAN is_need_prepare_write_rsp = FALSE; BOOLEAN is_need_queue_data = FALSE; tGATT_PREPARE_WRITE_RECORD *prepare_record = NULL; @@ -1251,7 +1251,7 @@ void gatt_attr_process_prepare_write (tGATT_TCB *p_tcb, UINT8 i_rcb, UINT16 hand status = GATT_APP_RSP; } else if (p_attr->p_value != NULL && offset > p_attr->p_value->attr_val.attr_max_len) { - status = GATT_INVALID_OFFSET; + status = GATT_INVALID_OFFSET; is_need_prepare_write_rsp = TRUE; is_need_queue_data = TRUE; } else if (p_attr->p_value != NULL && @@ -1295,7 +1295,7 @@ void gatt_attr_process_prepare_write (tGATT_TCB *p_tcb, UINT8 i_rcb, UINT16 hand fixed_queue_enqueue(prepare_record->queue, queue_data, FIXED_QUEUE_MAX_TIMEOUT); } } - + if (is_need_prepare_write_rsp){ //send prepare write response if (queue_data != NULL){ @@ -1304,7 +1304,7 @@ void gatt_attr_process_prepare_write (tGATT_TCB *p_tcb, UINT8 i_rcb, UINT16 hand tGATT_STATUS rsp_send_status = gatt_send_packet(p_tcb, &(queue_data->op_code), queue_data->len + 5); gatt_sr_update_prep_cnt(p_tcb, p_sreg->gatt_if, TRUE, FALSE); gatt_dequeue_sr_cmd(p_tcb); - + if (rsp_send_status != GATT_SUCCESS){ GATT_TRACE_ERROR("Error in %s, line=%d, fail to send prepare_write_rsp, status=0x%x\n", __func__, __LINE__, rsp_send_status); @@ -1315,7 +1315,7 @@ void gatt_attr_process_prepare_write (tGATT_TCB *p_tcb, UINT8 i_rcb, UINT16 hand } } - if ((status == GATT_APP_RSP) || (is_need_prepare_write_rsp)){ + if ((status == GATT_APP_RSP) || (is_need_prepare_write_rsp)){ prepare_record->total_num++; memset(&sr_data, 0, sizeof(sr_data)); sr_data.write_req.is_prep = TRUE; @@ -1329,7 +1329,7 @@ void gatt_attr_process_prepare_write (tGATT_TCB *p_tcb, UINT8 i_rcb, UINT16 hand gatt_send_error_rsp(p_tcb, status, GATT_REQ_PREPARE_WRITE, handle, TRUE); } - if ((prepare_record->error_code_app == GATT_SUCCESS) + if ((prepare_record->error_code_app == GATT_SUCCESS) && ((status == GATT_INVALID_OFFSET) || (status == GATT_INVALID_ATTR_LEN))){ prepare_record->error_code_app = status; } @@ -1468,7 +1468,7 @@ void gatts_process_attribute_req (tGATT_TCB *p_tcb, UINT8 op_code, case GATT_SIGN_CMD_WRITE: gatts_process_write_req(p_tcb, i, handle, op_code, len, p); break; - + case GATT_REQ_PREPARE_WRITE: gatt_attr_process_prepare_write (p_tcb, i, handle, op_code, len, p); default: diff --git a/components/bt/host/bluedroid/stack/gatt/gatt_utils.c b/components/bt/host/bluedroid/stack/gatt/gatt_utils.c index 714524e866..fb57e11601 100644 --- a/components/bt/host/bluedroid/stack/gatt/gatt_utils.c +++ b/components/bt/host/bluedroid/stack/gatt/gatt_utils.c @@ -891,7 +891,7 @@ BOOLEAN gatt_is_bda_connected(BD_ADDR bda) tGATT_TCB *p_tcb = NULL; list_node_t *p_node = NULL; for(p_node = list_begin(gatt_cb.p_tcb_list); p_node; p_node = list_next(p_node)) { - p_tcb = list_node(p_node); + p_tcb = list_node(p_node); if (p_tcb->in_use && !memcmp(p_tcb->peer_bda, bda, BD_ADDR_LEN)) { connected = TRUE; @@ -915,7 +915,7 @@ UINT8 gatt_find_i_tcb_by_addr(BD_ADDR bda, tBT_TRANSPORT transport) list_node_t *p_node = NULL; tGATT_TCB *p_tcb = NULL; for(p_node = list_begin(gatt_cb.p_tcb_list); p_node; p_node = list_next(p_node)) { - p_tcb = list_node(p_node); + p_tcb = list_node(p_node); if (!memcmp(p_tcb->peer_bda, bda, BD_ADDR_LEN) && p_tcb->transport == transport) { i = p_tcb->tcb_idx; @@ -939,7 +939,7 @@ tGATT_TCB *gatt_get_tcb_by_idx(UINT8 tcb_idx) tGATT_TCB *p_tcb = NULL; list_node_t *p_node = NULL; for(p_node = list_begin(gatt_cb.p_tcb_list); p_node; p_node = list_next(p_node)) { - p_tcb = list_node(p_node); + p_tcb = list_node(p_node); if ( (tcb_idx < GATT_MAX_PHY_CHANNEL) && p_tcb->in_use && p_tcb->tcb_idx == tcb_idx ) { break; } else { @@ -1756,7 +1756,7 @@ tGATT_CLCB *gatt_clcb_alloc (UINT16 conn_id) tGATT_TCB *p_tcb = gatt_get_tcb_by_idx(tcb_idx); tGATT_REG *p_reg = gatt_get_regcb(gatt_if); - if (list_length(gatt_cb.p_clcb_list) < GATT_CL_MAX_LCB) { + if (list_length(gatt_cb.p_clcb_list) < GATT_CL_MAX_LCB) { p_clcb = (tGATT_CLCB *)osi_malloc(sizeof(tGATT_CLCB)); if (p_clcb) { list_append(gatt_cb.p_clcb_list, p_clcb); @@ -1808,7 +1808,7 @@ tGATT_TCB *gatt_find_tcb_by_cid (UINT16 lcid) tGATT_TCB *p_tcb = NULL; list_node_t *p_node = NULL; for(p_node = list_begin(gatt_cb.p_tcb_list); p_node; p_node = list_next(p_node)) { - p_tcb = list_node(p_node); + p_tcb = list_node(p_node); if (p_tcb->in_use && p_tcb->att_lcid == lcid) { break; } @@ -2890,5 +2890,3 @@ BOOLEAN gatt_update_listen_mode(void) } #endif - - diff --git a/components/bt/host/bluedroid/stack/hcic/hciblecmds.c b/components/bt/host/bluedroid/stack/hcic/hciblecmds.c index f922a58fa7..e5d173f077 100644 --- a/components/bt/host/bluedroid/stack/hcic/hciblecmds.c +++ b/components/bt/host/bluedroid/stack/hcic/hciblecmds.c @@ -1047,4 +1047,3 @@ BOOLEAN btsnd_hcic_ble_set_channels (BLE_CHANNELS channels) } #endif - diff --git a/components/bt/host/bluedroid/stack/hcic/hcicmds.c b/components/bt/host/bluedroid/stack/hcic/hcicmds.c index 6e66916242..80517dcdb2 100644 --- a/components/bt/host/bluedroid/stack/hcic/hcicmds.c +++ b/components/bt/host/bluedroid/stack/hcic/hcicmds.c @@ -1900,4 +1900,4 @@ BOOLEAN btsnd_hcic_set_afh_channels (AFH_CHANNELS channels) btu_hcif_send_cmd (LOCAL_BR_EDR_CONTROLLER_ID, p); return (TRUE); } -#endif /// CLASSIC_BT_INCLUDED == TRUE \ No newline at end of file +#endif /// CLASSIC_BT_INCLUDED == TRUE diff --git a/components/bt/host/bluedroid/stack/include/stack/avrc_defs.h b/components/bt/host/bluedroid/stack/include/stack/avrc_defs.h index 4dcf38f69b..7619aa2f4d 100644 --- a/components/bt/host/bluedroid/stack/include/stack/avrc_defs.h +++ b/components/bt/host/bluedroid/stack/include/stack/avrc_defs.h @@ -59,7 +59,7 @@ #define AVRC_RSP_REJ 10 /* The target implements the command specified by the opcode but cannot respond because the current state of the target doesn't allow it */ -#define AVRC_RSP_IN_TRANS 11 /* The target implements the status command but it is +#define AVRC_RSP_IN_TRANS 11 /* The target implements the status command but it is in a state of transition; the status command may be retried at a future time */ #define AVRC_RSP_IMPL_STBL 12 /* For specific inquiry or general inquiy commands, diff --git a/components/bt/host/bluedroid/stack/include/stack/hcidefs.h b/components/bt/host/bluedroid/stack/include/stack/hcidefs.h index fdce44d804..b1d373d2d3 100644 --- a/components/bt/host/bluedroid/stack/include/stack/hcidefs.h +++ b/components/bt/host/bluedroid/stack/include/stack/hcidefs.h @@ -2655,4 +2655,3 @@ typedef struct { #define HCI_LE_RC_CONN_PARAM_UPD_NEG_RPY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_NEG_RPY_OFF] & HCI_SUPP_COMMANDS_RLE_RC_CONN_PARAM_UPD_NEG_RPY_MASK) #endif - diff --git a/components/bt/host/bluedroid/stack/include/stack/hiddefs.h b/components/bt/host/bluedroid/stack/include/stack/hiddefs.h index 99d2c3c1cf..fab7ce2b53 100644 --- a/components/bt/host/bluedroid/stack/include/stack/hiddefs.h +++ b/components/bt/host/bluedroid/stack/include/stack/hiddefs.h @@ -160,4 +160,3 @@ typedef struct sdp_info { #endif ///HID_HOST_INCLUDED == TRUE #endif - diff --git a/components/bt/host/bluedroid/stack/include/stack/profiles_api.h b/components/bt/host/bluedroid/stack/include/stack/profiles_api.h index a9ad7b1e2c..4bbf5a2235 100644 --- a/components/bt/host/bluedroid/stack/include/stack/profiles_api.h +++ b/components/bt/host/bluedroid/stack/include/stack/profiles_api.h @@ -67,4 +67,3 @@ typedef struct { } tBT_SECURITY; #endif /* PROFILES_API_H */ - diff --git a/components/bt/host/bluedroid/stack/include/stack/sdpdefs.h b/components/bt/host/bluedroid/stack/include/stack/sdpdefs.h index 1befddf35e..d7eab35620 100644 --- a/components/bt/host/bluedroid/stack/include/stack/sdpdefs.h +++ b/components/bt/host/bluedroid/stack/include/stack/sdpdefs.h @@ -323,5 +323,3 @@ #define ATTR_ID_NETADDRESS_OR_DEVLOCATION 0x0306 #endif - - diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_csm.c b/components/bt/host/bluedroid/stack/l2cap/l2c_csm.c index ff7fbb0ec0..de26388334 100644 --- a/components/bt/host/bluedroid/stack/l2cap/l2c_csm.c +++ b/components/bt/host/bluedroid/stack/l2cap/l2c_csm.c @@ -1261,5 +1261,3 @@ void l2c_enqueue_peer_data (tL2C_CCB *p_ccb, BT_HDR *p_buf) l2cb.check_round_robin = TRUE; } } - - diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_link.c b/components/bt/host/bluedroid/stack/l2cap/l2c_link.c index d3fe139d1d..2791c4c175 100644 --- a/components/bt/host/bluedroid/stack/l2cap/l2c_link.c +++ b/components/bt/host/bluedroid/stack/l2cap/l2c_link.c @@ -1037,7 +1037,7 @@ void l2c_link_check_send_pkts (tL2C_LCB *p_lcb, tL2C_CCB *p_ccb, BT_HDR *p_buf) p_lcb = list_node(p_node); break; } - } + } } /* Loop through, starting at the next */ diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_main.c b/components/bt/host/bluedroid/stack/l2cap/l2c_main.c index 71736205ea..7ef00f884f 100644 --- a/components/bt/host/bluedroid/stack/l2cap/l2c_main.c +++ b/components/bt/host/bluedroid/stack/l2cap/l2c_main.c @@ -1008,5 +1008,3 @@ UINT8 l2c_data_write (UINT16 cid, BT_HDR *p_data, UINT16 flags) return (L2CAP_DW_SUCCESS); } #endif ///CLASSIC_BT_INCLUDED == TRUE - - diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_utils.c b/components/bt/host/bluedroid/stack/l2cap/l2c_utils.c index 21b139e6eb..2421523ef2 100644 --- a/components/bt/host/bluedroid/stack/l2cap/l2c_utils.c +++ b/components/bt/host/bluedroid/stack/l2cap/l2c_utils.c @@ -1453,7 +1453,7 @@ tL2C_CCB *l2cu_allocate_ccb (tL2C_LCB *p_lcb, UINT16 cid) p_ccb->p_next_ccb = p_ccb->p_prev_ccb = NULL; p_ccb->in_use = TRUE; - + /* Get a CID for the connection */ p_ccb->local_cid = L2CAP_BASE_APPL_CID + (list_length(l2cb.p_ccb_pool) - 1); p_ccb->p_lcb = p_lcb; @@ -3232,7 +3232,7 @@ bool l2cu_find_ccb_in_list(void *p_ccb_node, void *p_local_cid) return FALSE; } return TRUE; -} +} tL2C_CCB *l2cu_find_ccb_by_cid (tL2C_LCB *p_lcb, UINT16 local_cid) { @@ -3247,7 +3247,7 @@ tL2C_CCB *l2cu_find_ccb_by_cid (tL2C_LCB *p_lcb, UINT16 local_cid) p_node = (list_foreach(l2cb.p_ccb_pool, l2cu_find_ccb_in_list, &local_cid)); if (p_node) { p_ccb = (tL2C_CCB *)list_node(p_node); - + if (p_lcb && p_lcb != p_ccb->p_lcb) { p_ccb = NULL; } @@ -3670,4 +3670,3 @@ void l2cu_check_channel_congestion (tL2C_CCB *p_ccb) } } } - diff --git a/components/bt/host/bluedroid/stack/rfcomm/port_utils.c b/components/bt/host/bluedroid/stack/rfcomm/port_utils.c index aaa9c8c1d5..391c5312c6 100644 --- a/components/bt/host/bluedroid/stack/rfcomm/port_utils.c +++ b/components/bt/host/bluedroid/stack/rfcomm/port_utils.c @@ -241,7 +241,7 @@ void port_release_port (tPORT *p_port) p_port->tx.queue = NULL; fixed_queue_free(p_port->rx.queue, NULL); p_port->rx.queue = NULL; - + RFCOMM_TRACE_DEBUG ("port_release_port:p_port->keep_port_handle:%d", p_port->keep_port_handle); if ( p_port->keep_port_handle ) { RFCOMM_TRACE_DEBUG ("port_release_port:Initialize handle:%d", p_port->inx); diff --git a/components/bt/host/bluedroid/stack/rfcomm/rfc_l2cap_if.c b/components/bt/host/bluedroid/stack/rfcomm/rfc_l2cap_if.c index 2e843c2b78..5b2fff17d4 100644 --- a/components/bt/host/bluedroid/stack/rfcomm/rfc_l2cap_if.c +++ b/components/bt/host/bluedroid/stack/rfcomm/rfc_l2cap_if.c @@ -416,4 +416,4 @@ void rfc_save_lcid_mcb (tRFC_MCB *p_mcb, UINT16 lcid) rfc_cb.rfc.p_rfc_lcid_mcb[lcid - L2CAP_BASE_APPL_CID] = p_mcb; } -#endif ///(defined RFCOMM_INCLUDED && RFCOMM_INCLUDED == TRUE) \ No newline at end of file +#endif ///(defined RFCOMM_INCLUDED && RFCOMM_INCLUDED == TRUE) diff --git a/components/bt/host/bluedroid/stack/rfcomm/rfc_mx_fsm.c b/components/bt/host/bluedroid/stack/rfcomm/rfc_mx_fsm.c index dd2af3b803..6afd6ae690 100644 --- a/components/bt/host/bluedroid/stack/rfcomm/rfc_mx_fsm.c +++ b/components/bt/host/bluedroid/stack/rfcomm/rfc_mx_fsm.c @@ -644,4 +644,4 @@ static void rfc_mx_conf_ind (tRFC_MCB *p_mcb, tL2CAP_CFG_INFO *p_cfg) } } -#endif ///(defined RFCOMM_INCLUDED && RFCOMM_INCLUDED == TRUE) \ No newline at end of file +#endif ///(defined RFCOMM_INCLUDED && RFCOMM_INCLUDED == TRUE) diff --git a/components/bt/host/bluedroid/stack/rfcomm/rfc_port_fsm.c b/components/bt/host/bluedroid/stack/rfcomm/rfc_port_fsm.c index a8c58b295a..b496937058 100644 --- a/components/bt/host/bluedroid/stack/rfcomm/rfc_port_fsm.c +++ b/components/bt/host/bluedroid/stack/rfcomm/rfc_port_fsm.c @@ -898,4 +898,4 @@ void rfc_set_port_state(tPORT_STATE *port_pars, MX_FRAME *p_frame) } } -#endif ///(defined RFCOMM_INCLUDED && RFCOMM_INCLUDED == TRUE) \ No newline at end of file +#endif ///(defined RFCOMM_INCLUDED && RFCOMM_INCLUDED == TRUE) diff --git a/components/bt/host/bluedroid/stack/rfcomm/rfc_port_if.c b/components/bt/host/bluedroid/stack/rfcomm/rfc_port_if.c index 58dae43542..6968de81b1 100644 --- a/components/bt/host/bluedroid/stack/rfcomm/rfc_port_if.c +++ b/components/bt/host/bluedroid/stack/rfcomm/rfc_port_if.c @@ -376,4 +376,4 @@ void RFCOMM_DataReq (tRFC_MCB *p_mcb, UINT8 dlci, BT_HDR *p_buf) } -#endif ///(defined RFCOMM_INCLUDED && RFCOMM_INCLUDED == TRUE) \ No newline at end of file +#endif ///(defined RFCOMM_INCLUDED && RFCOMM_INCLUDED == TRUE) diff --git a/components/bt/host/bluedroid/stack/rfcomm/rfc_ts_frames.c b/components/bt/host/bluedroid/stack/rfcomm/rfc_ts_frames.c index 26a2caa020..0640c67fc9 100644 --- a/components/bt/host/bluedroid/stack/rfcomm/rfc_ts_frames.c +++ b/components/bt/host/bluedroid/stack/rfcomm/rfc_ts_frames.c @@ -906,4 +906,4 @@ void rfc_process_mx_message (tRFC_MCB *p_mcb, BT_HDR *p_buf) } } -#endif ///(defined RFCOMM_INCLUDED && RFCOMM_INCLUDED == TRUE) \ No newline at end of file +#endif ///(defined RFCOMM_INCLUDED && RFCOMM_INCLUDED == TRUE) diff --git a/components/bt/host/bluedroid/stack/sdp/sdp_db.c b/components/bt/host/bluedroid/stack/sdp/sdp_db.c index d5a5b64471..a9b3daa4ca 100644 --- a/components/bt/host/bluedroid/stack/sdp/sdp_db.c +++ b/components/bt/host/bluedroid/stack/sdp/sdp_db.c @@ -65,7 +65,7 @@ tSDP_RECORD *sdp_db_service_search (tSDP_RECORD *p_rec, tSDP_UUID_SEQ *p_seq) UINT16 xx, yy; tSDP_ATTRIBUTE *p_attr; list_node_t *p_node = NULL; - + /* If NULL, start at the beginning, else start at the first specified record */ if (!p_rec) { p_node = list_begin(sdp_cb.server_db.p_record_list); @@ -82,7 +82,7 @@ tSDP_RECORD *sdp_db_service_search (tSDP_RECORD *p_rec, tSDP_UUID_SEQ *p_seq) /* Look through the records. The spec says that a match occurs if */ /* the record contains all the passed UUIDs in it. */ for( ; p_node; p_node = list_next(p_node)) { - p_rec = list_node(p_node); + p_rec = list_node(p_node); for (yy = 0; yy < p_seq->num_uids; yy++) { p_attr = &p_rec->attribute[0]; for (xx = 0; xx < p_rec->num_attributes; xx++, p_attr++) { @@ -302,7 +302,7 @@ UINT32 SDP_CreateRecord (void) } /* Append new record */ list_append(p_db->p_record_list, p_rec); - + /* We will use a handle of the first unreserved handle plus last record ** number + 1 */ if (p_db->num_records) { @@ -310,16 +310,16 @@ UINT32 SDP_CreateRecord (void) } else { handle = 0x10000; } - + p_rec->record_handle = handle; - + p_db->num_records++; SDP_TRACE_DEBUG("SDP_CreateRecord ok, num_records:%d\n", p_db->num_records); /* Add the first attribute (the handle) automatically */ UINT32_TO_BE_FIELD (buf, handle); SDP_AddAttribute (handle, ATTR_ID_SERVICE_RECORD_HDL, UINT_DESC_TYPE, 4, buf); - + return (p_rec->record_handle); } else { SDP_TRACE_ERROR("SDP_CreateRecord fail, memory allocation failed\n"); @@ -367,7 +367,7 @@ BOOLEAN SDP_DeleteRecord (UINT32 handle) p_rec = list_node(p_node); if (p_rec->record_handle == handle) { /* Found it. Shift everything up one */ - list_remove(sdp_cb.server_db.p_record_list, p_rec); + list_remove(sdp_cb.server_db.p_record_list, p_rec); sdp_cb.server_db.num_records--; diff --git a/components/bt/host/bluedroid/stack/sdp/sdp_main.c b/components/bt/host/bluedroid/stack/sdp/sdp_main.c index 885e131367..3e73337191 100644 --- a/components/bt/host/bluedroid/stack/sdp/sdp_main.c +++ b/components/bt/host/bluedroid/stack/sdp/sdp_main.c @@ -706,6 +706,3 @@ void sdp_conn_timeout (tCONN_CB *p_ccb) } #endif ///SDP_INCLUDED == TRUE - - - diff --git a/components/bt/host/bluedroid/stack/smp/include/p_256_ecc_pp.h b/components/bt/host/bluedroid/stack/smp/include/p_256_ecc_pp.h index 172dd24f10..3b28e0c99a 100644 --- a/components/bt/host/bluedroid/stack/smp/include/p_256_ecc_pp.h +++ b/components/bt/host/bluedroid/stack/smp/include/p_256_ecc_pp.h @@ -72,5 +72,3 @@ bool ECC_CheckPointIsInElliCur_P256(Point *p); #define ECC_PointMult(q, p, n, keyLength) ECC_PointMult_Bin_NAF(q, p, n, keyLength) void p_256_init_curve(UINT32 keyLength); - - diff --git a/components/bt/host/bluedroid/stack/smp/include/p_256_multprecision.h b/components/bt/host/bluedroid/stack/smp/include/p_256_multprecision.h index c9a1a4ea52..0a33b4e24f 100644 --- a/components/bt/host/bluedroid/stack/smp/include/p_256_multprecision.h +++ b/components/bt/host/bluedroid/stack/smp/include/p_256_multprecision.h @@ -58,5 +58,3 @@ DWORD multiprecision_lshift(DWORD *c, DWORD *a, uint32_t keyLength); void multiprecision_mult(DWORD *c, DWORD *a, DWORD *b, uint32_t keyLength); void multiprecision_fast_mod(DWORD *c, DWORD *a); void multiprecision_fast_mod_P256(DWORD *c, DWORD *a); - - diff --git a/components/bt/host/bluedroid/stack/smp/p_256_curvepara.c b/components/bt/host/bluedroid/stack/smp/p_256_curvepara.c index 0b79770563..abf9a8eecc 100644 --- a/components/bt/host/bluedroid/stack/smp/p_256_curvepara.c +++ b/components/bt/host/bluedroid/stack/smp/p_256_curvepara.c @@ -76,4 +76,3 @@ void p_256_init_curve(UINT32 keyLength) ec->G.y[0] = 0x37bf51f5; } } - diff --git a/components/bt/host/bluedroid/stack/smp/p_256_ecc_pp.c b/components/bt/host/bluedroid/stack/smp/p_256_ecc_pp.c index aceb0b209a..1f49c652bd 100644 --- a/components/bt/host/bluedroid/stack/smp/p_256_ecc_pp.c +++ b/components/bt/host/bluedroid/stack/smp/p_256_ecc_pp.c @@ -281,5 +281,3 @@ bool ECC_CheckPointIsInElliCur_P256(Point *p) return true; } } - - diff --git a/components/bt/host/bluedroid/stack/smp/p_256_multprecision.c b/components/bt/host/bluedroid/stack/smp/p_256_multprecision.c index 0bb64adfb7..1dbca13756 100644 --- a/components/bt/host/bluedroid/stack/smp/p_256_multprecision.c +++ b/components/bt/host/bluedroid/stack/smp/p_256_multprecision.c @@ -645,4 +645,3 @@ void multiprecision_inv_mod(DWORD *aminus, DWORD *u, uint32_t keyLength) multiprecision_copy(aminus, C, keyLength); } } - diff --git a/components/bt/host/bluedroid/stack/smp/smp_cmac.c b/components/bt/host/bluedroid/stack/smp/smp_cmac.c index 0e7bab02c1..391f538353 100644 --- a/components/bt/host/bluedroid/stack/smp/smp_cmac.c +++ b/components/bt/host/bluedroid/stack/smp/smp_cmac.c @@ -367,4 +367,3 @@ void test_cmac(void) } #endif #endif - diff --git a/components/bt/host/bluedroid/stack/smp/smp_keys.c b/components/bt/host/bluedroid/stack/smp/smp_keys.c index 4c39635d9f..e8337b1007 100644 --- a/components/bt/host/bluedroid/stack/smp/smp_keys.c +++ b/components/bt/host/bluedroid/stack/smp/smp_keys.c @@ -2244,4 +2244,3 @@ static void smp_rand_back(tBTM_RAND_ENC *p) } #endif - diff --git a/components/bt/host/bluedroid/stack/smp/smp_main.c b/components/bt/host/bluedroid/stack/smp/smp_main.c index 1becb36f01..ed79a1ced1 100644 --- a/components/bt/host/bluedroid/stack/smp/smp_main.c +++ b/components/bt/host/bluedroid/stack/smp/smp_main.c @@ -808,4 +808,3 @@ const char *smp_get_event_name(tSMP_EVENT event) } #endif - diff --git a/components/bt/host/bluedroid/stack/smp/smp_utils.c b/components/bt/host/bluedroid/stack/smp/smp_utils.c index b6e9ffce29..24b70cad9a 100644 --- a/components/bt/host/bluedroid/stack/smp/smp_utils.c +++ b/components/bt/host/bluedroid/stack/smp/smp_utils.c @@ -1639,4 +1639,3 @@ BOOLEAN smp_request_oob_data(tSMP_CB *p_cb) #endif - diff --git a/components/cmock/component.mk b/components/cmock/component.mk index 1d4275491c..ebd7a7d59b 100644 --- a/components/cmock/component.mk +++ b/components/cmock/component.mk @@ -1,4 +1,3 @@ # # Component Makefile # - diff --git a/components/coap/CMakeLists.txt b/components/coap/CMakeLists.txt index 50c55e7723..a3dccee5c0 100644 --- a/components/coap/CMakeLists.txt +++ b/components/coap/CMakeLists.txt @@ -1,6 +1,6 @@ set(include_dirs port/include port/include/coap libcoap/include libcoap/include/coap2) -set(srcs +set(srcs "libcoap/src/address.c" "libcoap/src/async.c" "libcoap/src/block.c" @@ -33,4 +33,3 @@ set_source_files_properties(port/coap_debug.c PROPERTIES COMPILE_FLAGS -Wno-form # # TODO: find a way to move this to a port header target_compile_definitions(${COMPONENT_LIB} PUBLIC WITH_POSIX) - diff --git a/components/console/argtable3/LICENSE b/components/console/argtable3/LICENSE index 1a28ef95b8..21d0bbe247 100644 --- a/components/console/argtable3/LICENSE +++ b/components/console/argtable3/LICENSE @@ -23,4 +23,3 @@ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/components/console/argtable3/argtable3.c b/components/console/argtable3/argtable3.c index 65abe75631..ca9149277c 100644 --- a/components/console/argtable3/argtable3.c +++ b/components/console/argtable3/argtable3.c @@ -102,7 +102,7 @@ enum #define ARG_LOG(x) \ do { if (ARG_ENABLE_LOG) dbg_printf x; } while (0) -#endif +#endif extern void dbg_printf(const char *fmt, ...); @@ -242,7 +242,7 @@ extern int optopt; extern int optreset; extern char *suboptarg; /* getsubopt(3) external variable */ #endif /* _GETOPT_DEFINED */ - + #ifdef __cplusplus } #endif @@ -1522,7 +1522,7 @@ static int arg_dbl_scanfn(struct arg_dbl *parent, const char *argval) static int arg_dbl_checkfn(struct arg_dbl *parent) { int errorcode = (parent->count < parent->hdr.mincount) ? EMINCOUNT : 0; - + ARG_TRACE(("%s:checkfn(%p) returns %d\n", __FILE__, parent, errorcode)); return errorcode; } @@ -1632,7 +1632,7 @@ struct arg_dbl * arg_dbln( result->count = 0; } - + ARG_TRACE(("arg_dbln() returns %p\n", result)); return result; } @@ -1712,7 +1712,7 @@ static void arg_end_errorfn( fprintf(fp, "invalid option \"-%c\"", error); break; } - + fputc('\n', fp); } @@ -1908,7 +1908,7 @@ static int arg_file_scanfn(struct arg_file *parent, const char *argval) static int arg_file_checkfn(struct arg_file *parent) { int errorcode = (parent->count < parent->hdr.mincount) ? EMINCOUNT : 0; - + ARG_TRACE(("%s:checkfn(%p) returns %d\n", __FILE__, parent, errorcode)); return errorcode; } @@ -2019,7 +2019,7 @@ struct arg_file * arg_filen( result->extension[i] = ""; } } - + ARG_TRACE(("arg_filen() returns %p\n", result)); return result; } @@ -2362,7 +2362,7 @@ struct arg_int * arg_intn( result->ival = (int *)(result + 1); result->count = 0; } - + ARG_TRACE(("arg_intn() returns %p\n", result)); return result; } @@ -2510,7 +2510,7 @@ struct arg_lit * arg_litn( /* init local variables */ result->count = 0; } - + ARG_TRACE(("arg_litn() returns %p\n", result)); return result; } @@ -3648,7 +3648,7 @@ static int arg_str_scanfn(struct arg_str *parent, const char *argval) static int arg_str_checkfn(struct arg_str *parent) { int errorcode = (parent->count < parent->hdr.mincount) ? EMINCOUNT : 0; - + ARG_TRACE(("%s:checkfn(%p) returns %d\n", __FILE__, parent, errorcode)); return errorcode; } @@ -3750,7 +3750,7 @@ struct arg_str * arg_strn( for (i = 0; i < maxcount; i++) result->sval[i] = ""; } - + ARG_TRACE(("arg_strn() returns %p\n", result)); return result; } @@ -4291,7 +4291,7 @@ int arg_parse(int argc, char * *argv, void * *argtable) argvcopy[i] = argv[i]; argvcopy[argc] = NULL; - + /* parse the command line (local copy) for tagged options */ arg_parse_tagged(argc, argvcopy, table, endtable); @@ -4953,4 +4953,3 @@ void arg_freetable(void * *argtable, size_t n) table[tabindex] = NULL; }; } - diff --git a/components/console/argtable3/argtable3.h b/components/console/argtable3/argtable3.h index 37a321fb53..abb2009ccc 100644 --- a/components/console/argtable3/argtable3.h +++ b/components/console/argtable3/argtable3.h @@ -39,7 +39,7 @@ extern "C" { #endif #define ARG_REX_ICASE 1 - + /* bit masks for arg_hdr.flag */ enum { @@ -218,7 +218,7 @@ struct arg_str* arg_str0(const char* shortopts, const char* datatype, const char* glossary); struct arg_str* arg_str1(const char* shortopts, - const char* longopts, + const char* longopts, const char* datatype, const char *glossary); struct arg_str* arg_strn(const char* shortopts, diff --git a/components/cxx/component.mk b/components/cxx/component.mk index a5d6e55ccf..5b2073955a 100644 --- a/components/cxx/component.mk +++ b/components/cxx/component.mk @@ -1,4 +1,4 @@ -# Mark __cxa_guard_dummy as undefined so that implementation of static guards +# Mark __cxa_guard_dummy as undefined so that implementation of static guards # is taken from cxx_guards.o instead of libstdc++.a COMPONENT_ADD_LDFLAGS += -u __cxa_guard_dummy diff --git a/components/cxx/test/test_cxx.cpp b/components/cxx/test/test_cxx.cpp index e5cd24e71a..22c479df85 100644 --- a/components/cxx/test/test_cxx.cpp +++ b/components/cxx/test/test_cxx.cpp @@ -320,7 +320,3 @@ template __attribute__((unused)) static void test_binary_operators() //Add more types here. If any flags cannot pass the build, use FLAG_ATTR in esp_attr.h #include "hal/timer_types.h" template void test_binary_operators(); - - - - diff --git a/components/cxx/test/test_initialization.cpp b/components/cxx/test/test_initialization.cpp index 76a7bf731c..cbfad66e8c 100644 --- a/components/cxx/test/test_initialization.cpp +++ b/components/cxx/test/test_initialization.cpp @@ -191,4 +191,3 @@ TEST_CASE("init_priority extension works", "[cxx]") TEST_ASSERT_EQUAL(1, g_static_init_priority_test2.index); TEST_ASSERT_EQUAL(2, g_static_init_priority_test3.index); } - diff --git a/components/cxx/test/test_rtti.cpp b/components/cxx/test/test_rtti.cpp index d615ee2d73..c3174c9366 100644 --- a/components/cxx/test/test_rtti.cpp +++ b/components/cxx/test/test_rtti.cpp @@ -93,4 +93,3 @@ TEST_CASE("typeid on nullptr throws bad_typeid", "[cxx]") #endif // CONFIG_COMPILER_CXX_EXCEPTIONS #endif // CONFIG_COMPILER_CXX_RTTI - diff --git a/components/driver/adc1_private.h b/components/driver/adc1_private.h index 40b5ee6852..d2ded4afda 100644 --- a/components/driver/adc1_private.h +++ b/components/driver/adc1_private.h @@ -67,4 +67,3 @@ esp_err_t adc1_lock_release(void); #ifdef __cplusplus } #endif - diff --git a/components/driver/esp32/dac.c b/components/driver/esp32/dac.c index 9c07c22269..2307c8e660 100644 --- a/components/driver/esp32/dac.c +++ b/components/driver/esp32/dac.c @@ -48,4 +48,4 @@ esp_err_t dac_i2s_disable(void) DAC_EXIT_CRITICAL(); return ESP_OK; -} \ No newline at end of file +} diff --git a/components/driver/esp32/include/driver/adc.h b/components/driver/esp32/include/driver/adc.h index 2ee228b32e..6f01275014 100644 --- a/components/driver/esp32/include/driver/adc.h +++ b/components/driver/esp32/include/driver/adc.h @@ -69,4 +69,4 @@ int hall_sensor_read(void); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/driver/esp32/include/driver/dac.h b/components/driver/esp32/include/driver/dac.h index c0a418c190..db9292473a 100644 --- a/components/driver/esp32/include/driver/dac.h +++ b/components/driver/esp32/include/driver/dac.h @@ -41,4 +41,4 @@ esp_err_t dac_i2s_disable(void); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/driver/esp32/include/driver/touch_sensor.h b/components/driver/esp32/include/driver/touch_sensor.h index b56f4439e1..d55c12e109 100644 --- a/components/driver/esp32/include/driver/touch_sensor.h +++ b/components/driver/esp32/include/driver/touch_sensor.h @@ -337,4 +337,4 @@ esp_err_t touch_pad_filter_delete(void); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/driver/esp32s2/include/driver/adc.h b/components/driver/esp32s2/include/driver/adc.h index 10c201e60b..88ec723396 100644 --- a/components/driver/esp32s2/include/driver/adc.h +++ b/components/driver/esp32s2/include/driver/adc.h @@ -251,4 +251,4 @@ esp_err_t adc_i2s_mode_init(adc_unit_t adc_unit, adc_channel_t channel) __attrib #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/driver/esp32s2/include/driver/dac.h b/components/driver/esp32s2/include/driver/dac.h index 42ead8a760..6efcc5c2b0 100644 --- a/components/driver/esp32s2/include/driver/dac.h +++ b/components/driver/esp32s2/include/driver/dac.h @@ -40,7 +40,7 @@ esp_err_t dac_digi_deinit(void); * @brief Setting the DAC digital controller. * * @param cfg Pointer to digital controller paramter. See ``dac_digi_config_t``. - * + * * @return * - ESP_OK success * - ESP_ERR_INVALID_ARG Parameter error diff --git a/components/driver/esp32s3/include/driver/adc.h b/components/driver/esp32s3/include/driver/adc.h index 423592db80..107ab2fa68 100644 --- a/components/driver/esp32s3/include/driver/adc.h +++ b/components/driver/esp32s3/include/driver/adc.h @@ -274,4 +274,4 @@ esp_err_t adc_i2s_mode_init(adc_unit_t adc_unit, adc_channel_t channel) __attrib #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/driver/i2s.c b/components/driver/i2s.c index 36de066df0..b22e74fbde 100644 --- a/components/driver/i2s.c +++ b/components/driver/i2s.c @@ -431,7 +431,7 @@ esp_err_t i2s_set_clk(i2s_port_t i2s_num, uint32_t rate, i2s_bits_per_sample_t b fs = rate / 100; i2s_hal_tx_pdm_cfg(&(p_i2s_obj[i2s_num]->hal), fp, fs); b_clk = rate * I2S_PDM_BCK_FACTOR * fp / fs; - + } else if (p_i2s_obj[i2s_num]->mode & I2S_MODE_RX) { uint32_t dsr; i2s_hal_get_rx_pdm(&(p_i2s_obj[i2s_num]->hal), &dsr); diff --git a/components/driver/include/driver/adc2_wifi_private.h b/components/driver/include/driver/adc2_wifi_private.h index b8ab566274..c5204f8884 100644 --- a/components/driver/include/driver/adc2_wifi_private.h +++ b/components/driver/include/driver/adc2_wifi_private.h @@ -55,4 +55,3 @@ void adc2_cal_include(void); #ifdef __cplusplus } #endif - diff --git a/components/driver/include/driver/adc_common.h b/components/driver/include/driver/adc_common.h index 719f60a4d2..28adc883b7 100644 --- a/components/driver/include/driver/adc_common.h +++ b/components/driver/include/driver/adc_common.h @@ -137,7 +137,7 @@ esp_err_t adc1_pad_get_io_num(adc1_channel_t channel, gpio_num_t *gpio_num); * - 2.5 dB attenuation (ADC_ATTEN_DB_2_5) gives full-scale voltage 1.5 V * - 6 dB attenuation (ADC_ATTEN_DB_6) gives full-scale voltage 2.2 V * - 11 dB attenuation (ADC_ATTEN_DB_11) gives full-scale voltage 3.9 V (see note below) - * + * * Due to ADC characteristics, most accurate results are obtained within the following approximate voltage ranges: * * +----------+------------+--------------------------+ @@ -159,7 +159,7 @@ esp_err_t adc1_pad_get_io_num(adc1_channel_t channel, gpio_num_t *gpio_num); * | +------------+--------------------------+ * | | 11 | 150 ~ 2600 | * +----------+------------+--------------------------+ - * + * * For maximum accuracy, use the ADC calibration APIs and measure voltages within these recommended ranges. * @note The full-scale voltage is the voltage corresponding to a maximum reading (depending on ADC1 configured bit width, * this value in ESP32 is 4095 for 12-bits, 2047 for 11-bits, 1023 for 10-bits, 511 for 9 bits. diff --git a/components/driver/include/driver/can.h b/components/driver/include/driver/can.h index 7b42ce1dcc..e28a9c443f 100644 --- a/components/driver/include/driver/can.h +++ b/components/driver/include/driver/can.h @@ -71,4 +71,4 @@ typedef twai_status_info_t can_status_info_t; #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/driver/include/driver/dac_common.h b/components/driver/include/driver/dac_common.h index 478841fc73..b1aefc9539 100644 --- a/components/driver/include/driver/dac_common.h +++ b/components/driver/include/driver/dac_common.h @@ -96,4 +96,3 @@ esp_err_t dac_cw_generator_config(dac_cw_config_t *cw); #ifdef __cplusplus } #endif - diff --git a/components/driver/include/driver/gpio.h b/components/driver/include/driver/gpio.h index 28a5337e2e..ef5406ab70 100644 --- a/components/driver/include/driver/gpio.h +++ b/components/driver/include/driver/gpio.h @@ -444,4 +444,3 @@ esp_err_t gpio_force_unhold_all(void); #ifdef __cplusplus } #endif - diff --git a/components/driver/include/driver/mcpwm.h b/components/driver/include/driver/mcpwm.h index 19f26b216f..fce8a815ea 100644 --- a/components/driver/include/driver/mcpwm.h +++ b/components/driver/include/driver/mcpwm.h @@ -662,4 +662,3 @@ esp_err_t mcpwm_isr_register(mcpwm_unit_t mcpwm_num, void (*fn)(void *), void *a #endif #endif //SOC_MCPWM_SUPPORTED - diff --git a/components/driver/include/driver/periph_ctrl.h b/components/driver/include/driver/periph_ctrl.h index b6c6a9d71b..f7c04da9b2 100644 --- a/components/driver/include/driver/periph_ctrl.h +++ b/components/driver/include/driver/periph_ctrl.h @@ -74,8 +74,8 @@ void periph_module_reset(periph_module_t periph); * wifi_bt_common_module_disable has to be called the same number of times * in order to put the peripheral into disabled state. * - * @return NULL - * + * @return NULL + * */ void wifi_bt_common_module_enable(void); @@ -86,8 +86,8 @@ void wifi_bt_common_module_enable(void); * wifi_bt_common_module_disable has to be called the same number of times * in order to put the peripheral into disabled state. * - * @return NULL - * + * @return NULL + * */ void wifi_bt_common_module_disable(void); diff --git a/components/driver/include/driver/sdio_slave.h b/components/driver/include/driver/sdio_slave.h index 20420d4779..c1bc1fb7a5 100644 --- a/components/driver/include/driver/sdio_slave.h +++ b/components/driver/include/driver/sdio_slave.h @@ -275,5 +275,3 @@ esp_err_t sdio_slave_wait_int(int pos, TickType_t wait); #endif #endif /*_DRIVER_SDIO_SLAVE_H */ - - diff --git a/components/driver/include/driver/sdmmc_host.h b/components/driver/include/driver/sdmmc_host.h index 48c4c5e564..e9da4ae190 100644 --- a/components/driver/include/driver/sdmmc_host.h +++ b/components/driver/include/driver/sdmmc_host.h @@ -244,4 +244,4 @@ esp_err_t sdmmc_host_pullup_en(int slot, int width); } #endif -#endif //SOC_SDMMC_HOST_SUPPORTED \ No newline at end of file +#endif //SOC_SDMMC_HOST_SUPPORTED diff --git a/components/driver/include/driver/spi_common_internal.h b/components/driver/include/driver/spi_common_internal.h index 51c7e01f2e..23a2b90050 100644 --- a/components/driver/include/driver/spi_common_internal.h +++ b/components/driver/include/driver/spi_common_internal.h @@ -152,7 +152,7 @@ bool spicommon_dma_chan_free(int dma_chan); /** * @brief Connect SPI and DMA peripherals - * + * * @param host SPI peripheral * @param dma_chan DMA channel */ diff --git a/components/driver/include/driver/spi_master.h b/components/driver/include/driver/spi_master.h index b6a4a78ebe..06060c37af 100644 --- a/components/driver/include/driver/spi_master.h +++ b/components/driver/include/driver/spi_master.h @@ -394,4 +394,3 @@ int spi_get_freq_limit(bool gpio_is_used, int input_delay_ns); #ifdef __cplusplus } #endif - diff --git a/components/driver/include/driver/spi_slave_hd.h b/components/driver/include/driver/spi_slave_hd.h index cea9cd2a9c..7613d3c32b 100644 --- a/components/driver/include/driver/spi_slave_hd.h +++ b/components/driver/include/driver/spi_slave_hd.h @@ -165,4 +165,4 @@ void spi_slave_hd_write_buffer(spi_host_device_t host_id, int addr, uint8_t *dat #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/driver/include/driver/touch_pad.h b/components/driver/include/driver/touch_pad.h index 1f427ff0b0..4b7a021f55 100644 --- a/components/driver/include/driver/touch_pad.h +++ b/components/driver/include/driver/touch_pad.h @@ -14,4 +14,4 @@ #pragma once -#include "driver/touch_sensor.h" \ No newline at end of file +#include "driver/touch_sensor.h" diff --git a/components/driver/include/driver/touch_sensor_common.h b/components/driver/include/driver/touch_sensor_common.h index a114b03da2..46ed3d7130 100644 --- a/components/driver/include/driver/touch_sensor_common.h +++ b/components/driver/include/driver/touch_sensor_common.h @@ -167,4 +167,4 @@ bool touch_pad_meas_is_done(void); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/driver/include/driver/twai.h b/components/driver/include/driver/twai.h index d369ad2300..81a754b1b0 100644 --- a/components/driver/include/driver/twai.h +++ b/components/driver/include/driver/twai.h @@ -345,4 +345,4 @@ esp_err_t twai_clear_receive_queue(void); } #endif -#endif //SOC_TWAI_SUPPORTED \ No newline at end of file +#endif //SOC_TWAI_SUPPORTED diff --git a/components/driver/include/driver/uart.h b/components/driver/include/driver/uart.h index 45564a0a9a..4ca05e366b 100644 --- a/components/driver/include/driver/uart.h +++ b/components/driver/include/driver/uart.h @@ -867,4 +867,3 @@ void uart_set_always_rx_timeout(uart_port_t uart_num, bool always_rx_timeout_en) #ifdef __cplusplus } #endif - diff --git a/components/driver/periph_ctrl.c b/components/driver/periph_ctrl.c index abb5a8a1b5..5dafad481f 100644 --- a/components/driver/periph_ctrl.c +++ b/components/driver/periph_ctrl.c @@ -67,4 +67,4 @@ IRAM_ATTR void wifi_bt_common_module_disable(void) periph_ll_wifi_bt_module_disable_clk_set_rst(); } portEXIT_CRITICAL_SAFE(&periph_spinlock); -} \ No newline at end of file +} diff --git a/components/driver/sdmmc_host.c b/components/driver/sdmmc_host.c index 93c2b3dced..f3a740c5fb 100644 --- a/components/driver/sdmmc_host.c +++ b/components/driver/sdmmc_host.c @@ -640,4 +640,3 @@ esp_err_t sdmmc_host_pullup_en(int slot, int width) } return ESP_OK; } - diff --git a/components/driver/sdmmc_private.h b/components/driver/sdmmc_private.h index 94cea52d1b..3ee4a821fc 100644 --- a/components/driver/sdmmc_private.h +++ b/components/driver/sdmmc_private.h @@ -43,4 +43,3 @@ bool sdmmc_host_card_busy(void); esp_err_t sdmmc_host_transaction_handler_init(void); void sdmmc_host_transaction_handler_deinit(void); - diff --git a/components/driver/sdmmc_transaction.c b/components/driver/sdmmc_transaction.c index b2f0874b3f..91c690706c 100644 --- a/components/driver/sdmmc_transaction.c +++ b/components/driver/sdmmc_transaction.c @@ -487,4 +487,3 @@ static bool wait_for_busy_cleared(int timeout_ms) } return false; } - diff --git a/components/driver/spi_master.c b/components/driver/spi_master.c index 90b29a2e5c..790506e7aa 100644 --- a/components/driver/spi_master.c +++ b/components/driver/spi_master.c @@ -357,8 +357,8 @@ esp_err_t spi_bus_add_device(spi_host_device_t host_id, const spi_device_interfa .use_gpio = use_gpio }; - //output values of timing configuration - spi_hal_timing_conf_t temp_timing_conf; + //output values of timing configuration + spi_hal_timing_conf_t temp_timing_conf; int freq; esp_err_t ret = spi_hal_cal_clock_conf(&timing_param, &freq, &temp_timing_conf); SPI_CHECK(ret==ESP_OK, "assigned clock speed not supported", ret); @@ -708,7 +708,7 @@ static SPI_MASTER_ISR_ATTR esp_err_t check_trans_valid(spi_device_handle_t handl } //Dummy phase is not available when both data out and in are enabled, regardless of FD or HD mode. SPI_CHECK(!tx_enabled || !rx_enabled || !dummy_enabled || !extra_dummy_enabled, "Dummy phase is not available when both data out and in are enabled", ESP_ERR_INVALID_ARG); - + return ESP_OK; } @@ -978,4 +978,3 @@ esp_err_t SPI_MASTER_ISR_ATTR spi_device_polling_transmit(spi_device_handle_t ha return spi_device_polling_end(handle, portMAX_DELAY); } - diff --git a/components/driver/spi_slave.c b/components/driver/spi_slave.c index bc18de778a..9059c4e924 100644 --- a/components/driver/spi_slave.c +++ b/components/driver/spi_slave.c @@ -392,4 +392,3 @@ static void SPI_SLAVE_ISR_ATTR spi_intr(void *arg) } if (do_yield) portYIELD_FROM_ISR(); } - diff --git a/components/driver/spi_slave_hd.c b/components/driver/spi_slave_hd.c index f7fab57dd0..a4ed815e37 100644 --- a/components/driver/spi_slave_hd.c +++ b/components/driver/spi_slave_hd.c @@ -377,4 +377,4 @@ void spi_slave_hd_read_buffer(spi_host_device_t host_id, int addr, uint8_t *out_ void spi_slave_hd_write_buffer(spi_host_device_t host_id, int addr, uint8_t *data, size_t len) { spi_slave_hd_hal_write_buffer(&spihost[host_id]->hal, addr, data, len); -} \ No newline at end of file +} diff --git a/components/driver/test/adc_dma_test/test_esp32s2.c b/components/driver/test/adc_dma_test/test_esp32s2.c index 3e0ec9467d..dba69ecde6 100644 --- a/components/driver/test/adc_dma_test/test_esp32s2.c +++ b/components/driver/test/adc_dma_test/test_esp32s2.c @@ -440,7 +440,7 @@ int test_adc_dig_dma_single_unit(adc_unit_t adc) TEST_ESP_OK( adc_check_patt_table(adc, adc_test_num, adc_list[adc_test_num - 1]) ); adc_dma_data_multi_st_check(adc, (void *)dma_addr, int_mask); - + adc_dac_dma_linker_deinit(); adc_dac_dma_isr_deregister(adc_dma_isr, NULL); TEST_ESP_OK( adc_digi_deinit() ); @@ -633,4 +633,4 @@ TEST_CASE("test_adc_digi_slope_debug", "[adc_dma][ignore]") } } -#endif // !DISABLED_FOR_TARGETS(ESP8266, ESP32) \ No newline at end of file +#endif // !DISABLED_FOR_TARGETS(ESP8266, ESP32) diff --git a/components/driver/test/dac_dma_test/test_dac_audio_file.h b/components/driver/test/dac_dma_test/test_dac_audio_file.h index 42158a6c65..2975b7c3e5 100644 --- a/components/driver/test/dac_dma_test/test_dac_audio_file.h +++ b/components/driver/test/dac_dma_test/test_dac_audio_file.h @@ -4986,4 +4986,3 @@ const unsigned char audio_table[] = { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, }; - diff --git a/components/driver/test/dac_dma_test/test_esp32s2.c b/components/driver/test/dac_dma_test/test_esp32s2.c index 7b84a32fef..3d6ea169d5 100644 --- a/components/driver/test/dac_dma_test/test_esp32s2.c +++ b/components/driver/test/dac_dma_test/test_esp32s2.c @@ -362,4 +362,4 @@ void adc_dac_dma_linker_deinit(void) /** SPI DMA INIT CODE END */ /*******************************************/ -#endif // !DISABLED_FOR_TARGETS(ESP8266, ESP32) \ No newline at end of file +#endif // !DISABLED_FOR_TARGETS(ESP8266, ESP32) diff --git a/components/driver/test/include/test/test_adc_dac_dma.h b/components/driver/test/include/test/test_adc_dac_dma.h index 83ad30cc1e..8e3d0e3d31 100644 --- a/components/driver/test/include/test/test_adc_dac_dma.h +++ b/components/driver/test/include/test/test_adc_dac_dma.h @@ -64,4 +64,4 @@ void adc_dac_dma_linker_stop(spi_dma_link_type_t type); */ void adc_dac_dma_linker_deinit(void); -#endif \ No newline at end of file +#endif diff --git a/components/driver/test/test_adc_common.c b/components/driver/test/test_adc_common.c index c269a466e9..123f35d55d 100644 --- a/components/driver/test/test_adc_common.c +++ b/components/driver/test/test_adc_common.c @@ -386,4 +386,4 @@ void test_adc_slope_debug(void) #endif } -#endif \ No newline at end of file +#endif diff --git a/components/driver/test/test_common_spi.c b/components/driver/test/test_common_spi.c index 59bfc49e3e..af6c99d551 100644 --- a/components/driver/test/test_common_spi.c +++ b/components/driver/test/test_common_spi.c @@ -204,4 +204,4 @@ void spitest_gpio_output_sel(uint32_t gpio_num, int func, uint32_t signal_idx) { PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio_num], func); GPIO.func_out_sel_cfg[gpio_num].func_sel=signal_idx; -} \ No newline at end of file +} diff --git a/components/driver/test/test_rs485.c b/components/driver/test/test_rs485.c index 32bff7f8ac..cc42fe4401 100644 --- a/components/driver/test/test_rs485.c +++ b/components/driver/test/test_rs485.c @@ -291,4 +291,4 @@ TEST_CASE_MULTIPLE_DEVICES("RS485 half duplex uart multiple devices test.", "[dr #endif -#endif \ No newline at end of file +#endif diff --git a/components/driver/test/test_spi_bus_lock.c b/components/driver/test/test_spi_bus_lock.c index 855c834b8c..7a165682c0 100644 --- a/components/driver/test/test_spi_bus_lock.c +++ b/components/driver/test/test_spi_bus_lock.c @@ -347,4 +347,4 @@ TEST_CASE("spi master can be used on SPI1", "[spi]") #endif -#endif \ No newline at end of file +#endif diff --git a/components/driver/test/test_spi_master.c b/components/driver/test/test_spi_master.c index 6a8ba2b5e7..4581b76206 100644 --- a/components/driver/test/test_spi_master.c +++ b/components/driver/test/test_spi_master.c @@ -1094,4 +1094,4 @@ TEST_CASE("spi_speed","[spi]") spi_device_release_bus(spi); master_free_device_bus(spi); } -#endif \ No newline at end of file +#endif diff --git a/components/driver/test/test_spi_param.c b/components/driver/test/test_spi_param.c index 02e20e867c..9f1a3b75ad 100644 --- a/components/driver/test/test_spi_param.c +++ b/components/driver/test/test_spi_param.c @@ -1163,4 +1163,4 @@ spitest_param_set_t mode_conf[] = { }; TEST_SPI_MASTER_SLAVE(MODE, mode_conf, "") -#endif \ No newline at end of file +#endif diff --git a/components/driver/test/test_spi_slave.c b/components/driver/test/test_spi_slave.c index c23086c9a1..eb2d0b29e4 100644 --- a/components/driver/test/test_spi_slave.c +++ b/components/driver/test/test_spi_slave.c @@ -141,4 +141,4 @@ TEST_CASE("test slave send unaligned","[spi]") ESP_LOGI(MASTER_TAG, "test passed."); } -#endif // !CONFIG_SPIRAM \ No newline at end of file +#endif // !CONFIG_SPIRAM diff --git a/components/driver/test/test_spi_slave_hd.c b/components/driver/test/test_spi_slave_hd.c index 6f4b823dd5..c7b6b07991 100644 --- a/components/driver/test/test_spi_slave_hd.c +++ b/components/driver/test/test_spi_slave_hd.c @@ -583,4 +583,4 @@ TEST_CASE("test spi slave hd continuous mode, master too long", "[spi][spi_slv_h master_free_device_bus(spi); } -#endif //SOC_SPI_SUPPORT_SLAVE_HD_VER2 \ No newline at end of file +#endif //SOC_SPI_SUPPORT_SLAVE_HD_VER2 diff --git a/components/driver/test/touch_sensor_test/include/touch_scope.h b/components/driver/test/touch_sensor_test/include/touch_scope.h index b9a47f5f32..e1df5978e3 100644 --- a/components/driver/test/touch_sensor_test/include/touch_scope.h +++ b/components/driver/test/touch_sensor_test/include/touch_scope.h @@ -28,4 +28,4 @@ int test_tp_print_to_scope(float *data, unsigned char channel_num); * - ESP_OK Success * - ESP_FAIL UART error */ -esp_err_t test_tp_scope_debug_init(uint8_t uart_num, int tx_io_num, int rx_io_num, int baud_rate); \ No newline at end of file +esp_err_t test_tp_scope_debug_init(uint8_t uart_num, int tx_io_num, int rx_io_num, int baud_rate); diff --git a/components/driver/test/touch_sensor_test/test_esp32.c b/components/driver/test/touch_sensor_test/test_esp32.c index c5fa040196..f68b5a4966 100644 --- a/components/driver/test/touch_sensor_test/test_esp32.c +++ b/components/driver/test/touch_sensor_test/test_esp32.c @@ -374,4 +374,4 @@ TEST_CASE("Touch Sensor interrupt test", "[touch]") TEST_ESP_OK( test_touch_interrupt() ); } -#endif // !DISABLED_FOR_TARGETS(ESP8266, ESP32) \ No newline at end of file +#endif // !DISABLED_FOR_TARGETS(ESP8266, ESP32) diff --git a/components/driver/test/touch_sensor_test/test_esp32s2.c b/components/driver/test/touch_sensor_test/test_esp32s2.c index 0191538fac..ca02e5bd4f 100644 --- a/components/driver/test/touch_sensor_test/test_esp32s2.c +++ b/components/driver/test/touch_sensor_test/test_esp32s2.c @@ -2122,4 +2122,4 @@ void test_touch_slope_debug(int pad_num) TEST_ESP_OK( touch_pad_deinit() ); } -#endif // !DISABLED_FOR_TARGETS(ESP8266, ESP32) \ No newline at end of file +#endif // !DISABLED_FOR_TARGETS(ESP8266, ESP32) diff --git a/components/driver/test/touch_sensor_test/touch_scope.c b/components/driver/test/touch_sensor_test/touch_scope.c index f3c5cd9c2a..1849372349 100644 --- a/components/driver/test/touch_sensor_test/touch_scope.c +++ b/components/driver/test/touch_sensor_test/touch_scope.c @@ -22,7 +22,7 @@ #if ROM_UART_DRIVER_ENABLE static uint8_t scope_uart_num = 0; static int8_t uart_used = 0; -#else +#else static uint8_t scope_uart_num = 255; static int8_t uart_used = -1; #endif @@ -127,7 +127,7 @@ int test_tp_print_to_scope(float *data, unsigned char channel_num) if(uart_num != uart_used) { return 0; } else { -#if ROM_UART_DRIVER_ENABLE +#if ROM_UART_DRIVER_ENABLE esp_rom_uart_tx_wait_idle(uart_num); // Default print uart mumber is 0. for(int i=0; i> shift; - //mmu_addr + //mmu_addr if(pid == 0 || pid == 1){ if(vaddr >= PRO_DRAM1_START_ADDR && vaddr < PRO_DRAM1_END_ADDR(psize)){ mmu_addr = 1152 + ((vaddr & (0x3FFFFF >> mask_s)) >> shift); diff --git a/components/esp32/component.mk b/components/esp32/component.mk index 830939abf6..b3fc34d33f 100644 --- a/components/esp32/component.mk +++ b/components/esp32/component.mk @@ -39,4 +39,3 @@ esp32_out.ld: $(COMPONENT_PATH)/ld/esp32.ld ../include/sdkconfig.h $(CC) -I ../include -C -P -x c -E $< -o $@ COMPONENT_EXTRA_CLEAN := esp32_out.ld $(COMPONENT_BUILD_DIR)/esp32.project.ld - diff --git a/components/esp32/esp_himem.c b/components/esp32/esp_himem.c index c9c6a2631f..be6d8d9222 100644 --- a/components/esp32/esp_himem.c +++ b/components/esp32/esp_himem.c @@ -362,5 +362,3 @@ esp_err_t esp_himem_unmap(esp_himem_rangehandle_t range, void *ptr, size_t len) portEXIT_CRITICAL(&spinlock); return ESP_OK; } - - diff --git a/components/esp32/include/esp32/brownout.h b/components/esp32/include/esp32/brownout.h index dafba8dd79..c17567ffb8 100644 --- a/components/esp32/include/esp32/brownout.h +++ b/components/esp32/include/esp32/brownout.h @@ -18,4 +18,4 @@ void esp_brownout_init(void); -#endif \ No newline at end of file +#endif diff --git a/components/esp32/include/esp32/himem.h b/components/esp32/include/esp32/himem.h index 0297725a19..b6b9e9d296 100644 --- a/components/esp32/include/esp32/himem.h +++ b/components/esp32/include/esp32/himem.h @@ -44,7 +44,7 @@ esp_err_t esp_himem_alloc(size_t size, esp_himem_handle_t *handle_out); /** * @brief Allocate a memory region to map blocks into - * + * * This allocates a contiguous CPU memory region that can be used to map blocks * of physical memory into. * @@ -61,7 +61,7 @@ esp_err_t esp_himem_alloc_map_range(size_t size, esp_himem_rangehandle_t *handle * @brief Map a block of high memory into the CPUs address space * * This effectively makes the block available for read/write operations. - * + * * @note The region to be mapped needs to have offsets and sizes that are aligned to the * SPI RAM MMU block size (32K) * @@ -149,4 +149,3 @@ size_t esp_himem_reserved_area_size(void); #ifdef __cplusplus } #endif - diff --git a/components/esp32/ld/esp32.project.ld.in b/components/esp32/ld/esp32.project.ld.in index 96557ed62e..7405ec19db 100644 --- a/components/esp32/ld/esp32.project.ld.in +++ b/components/esp32/ld/esp32.project.ld.in @@ -36,11 +36,11 @@ SECTIONS { . = ALIGN(4); _rtc_force_fast_start = ABSOLUTE(.); - + _coredump_rtc_fast_start = ABSOLUTE(.); mapping[rtc_fast_coredump] _coredump_rtc_fast_end = ABSOLUTE(.); - + *(.rtc.force_fast .rtc.force_fast.*) . = ALIGN(4) ; @@ -65,10 +65,10 @@ SECTIONS /* should be placed after coredump mapping */ mapping[rtc_data] - + *rtc_wake_stub*.*(.data .rodata .data.* .rodata.* .bss .bss.*) _rtc_data_end = ABSOLUTE(.); - + } > rtc_data_location /* RTC bss, from any source file named rtc_wake_stub*.c */ @@ -206,7 +206,7 @@ SECTIONS _coredump_dram_start = ABSOLUTE(.); mapping[dram_coredump] _coredump_dram_end = ABSOLUTE(.); - + /* should be placed after coredump mapping */ _esp_system_init_fn_array_start = ABSOLUTE(.); KEEP (*(SORT(.esp_system_init_fn) SORT(.esp_system_init_fn.*))) @@ -375,7 +375,7 @@ SECTIONS _coredump_iram_start = ABSOLUTE(.); mapping[iram_coredump] _coredump_iram_end = ABSOLUTE(.); - + /* should be placed after coredump mapping */ mapping[iram0_data] diff --git a/components/esp32/project_include.cmake b/components/esp32/project_include.cmake index e53f240380..91c0f8af46 100644 --- a/components/esp32/project_include.cmake +++ b/components/esp32/project_include.cmake @@ -28,4 +28,4 @@ endif() # TODO: make these platform-specific for diff toolchains get_expected_ctng_version(expected_toolchain expected_gcc) gcc_version_check("${expected_gcc}") -crosstool_version_check("${expected_toolchain}") \ No newline at end of file +crosstool_version_check("${expected_toolchain}") diff --git a/components/esp32/system_api_esp32.c b/components/esp32/system_api_esp32.c index 781e2a8714..2ed2e9b7a1 100644 --- a/components/esp32/system_api_esp32.c +++ b/components/esp32/system_api_esp32.c @@ -117,7 +117,7 @@ void IRAM_ATTR esp_restart_noos(void) // Reset timer/spi/uart DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, //UART TX FIFO cannot be reset correctly on ESP32, so reset the UART memory by DPORT here. - DPORT_TIMERS_RST | DPORT_SPI01_RST | DPORT_SPI2_RST | DPORT_SPI3_RST | DPORT_SPI_DMA_RST | DPORT_UART_RST | DPORT_UART1_RST | DPORT_UART2_RST | DPORT_UART_MEM_RST); + DPORT_TIMERS_RST | DPORT_SPI01_RST | DPORT_SPI2_RST | DPORT_SPI3_RST | DPORT_SPI_DMA_RST | DPORT_UART_RST | DPORT_UART1_RST | DPORT_UART2_RST | DPORT_UART_MEM_RST); DPORT_REG_WRITE(DPORT_PERIP_RST_EN_REG, 0); // Set CPU back to XTAL source, no PLL, same as hard reset diff --git a/components/esp32/test/CMakeLists.txt b/components/esp32/test/CMakeLists.txt index af8794813c..7c26dc0ace 100644 --- a/components/esp32/test/CMakeLists.txt +++ b/components/esp32/test/CMakeLists.txt @@ -5,4 +5,3 @@ if(IDF_TARGET STREQUAL "esp32") ) target_link_libraries(${COMPONENT_LIB} INTERFACE "-u ld_include_test_dport_xt_highint5") endif() - diff --git a/components/esp32/test/test_ahb_arb.c b/components/esp32/test/test_ahb_arb.c index 7565772ef0..9fa555b418 100644 --- a/components/esp32/test/test_ahb_arb.c +++ b/components/esp32/test/test_ahb_arb.c @@ -286,4 +286,3 @@ TEST_CASE("S32C1I vs AHB test (needs I2S)", "[hw][ignore]") vTaskDelete(th[i]); } } - diff --git a/components/esp32/test/test_ahb_arb_asm.S b/components/esp32/test/test_ahb_arb_asm.S index e4de86eb4f..1e9214c199 100644 --- a/components/esp32/test/test_ahb_arb_asm.S +++ b/components/esp32/test/test_ahb_arb_asm.S @@ -47,5 +47,5 @@ unlockloop: mov a6, a4 s32c1i a6, a2, 0 bne a3, a6, unlockloop - + retw diff --git a/components/esp32/test/test_fastbus.c b/components/esp32/test/test_fastbus.c index a33c69b9f4..39adbe7616 100644 --- a/components/esp32/test/test_fastbus.c +++ b/components/esp32/test/test_fastbus.c @@ -128,4 +128,3 @@ TEST_CASE("Fast I/O bus test", "[hw][ignore]") } xt_ints_off(1 << ETS_UART0_INUM); } - diff --git a/components/esp32/test/test_fp.c b/components/esp32/test/test_fp.c index ee1329aa6f..f1dc8aac0c 100644 --- a/components/esp32/test/test_fp.c +++ b/components/esp32/test/test_fp.c @@ -267,4 +267,3 @@ TEST_CASE("floating point square root performance", "[fp]") TEST_PERFORMANCE_LESS_THAN(CYCLES_PER_SQRT, "%d cycles", cycles); } - diff --git a/components/esp32/test/test_random.c b/components/esp32/test/test_random.c index b0ce1a0399..083c791246 100644 --- a/components/esp32/test/test_random.c +++ b/components/esp32/test/test_random.c @@ -64,4 +64,3 @@ TEST_CASE("call esp_fill_random()", "[random]") TEST_ASSERT_EQUAL_HEX8(0xFF, one_buf[x]); } } - diff --git a/components/esp32/test/test_sha.c b/components/esp32/test/test_sha.c index cbc1479159..b2795171b0 100644 --- a/components/esp32/test/test_sha.c +++ b/components/esp32/test/test_sha.c @@ -106,4 +106,3 @@ TEST_CASE("Test esp_sha() function with long input", "[hw_crypto]") TEST_ASSERT_EQUAL_MEMORY_MESSAGE(sha512_espsha, sha512_mbedtls, sizeof(sha512_espsha), "SHA512 results should match"); } - diff --git a/components/esp32/test/test_unal_dma.c b/components/esp32/test/test_unal_dma.c index fe2443659f..7984138070 100644 --- a/components/esp32/test/test_unal_dma.c +++ b/components/esp32/test/test_unal_dma.c @@ -196,4 +196,3 @@ TEST_CASE("Unaligned DMA test (needs I2S)", "[hw][ignore]") dmaMemcpy(src, dest + 1, 2048 + 2); TEST_ASSERT(mymemcmp(src, dest + 1, 2048) == 0); } - diff --git a/components/esp32s2/Makefile.projbuild b/components/esp32s2/Makefile.projbuild index 2c25e51a75..7c70363e3d 100644 --- a/components/esp32s2/Makefile.projbuild +++ b/components/esp32s2/Makefile.projbuild @@ -1 +1 @@ -# nothing here, esp32s2 is not suppoted in Make build system \ No newline at end of file +# nothing here, esp32s2 is not suppoted in Make build system diff --git a/components/esp32s2/crosscore_int.c b/components/esp32s2/crosscore_int.c index 7695ec062f..c347935b52 100644 --- a/components/esp32s2/crosscore_int.c +++ b/components/esp32s2/crosscore_int.c @@ -106,4 +106,4 @@ void IRAM_ATTR esp_crosscore_int_send_freq_switch(int core_id) void IRAM_ATTR esp_crosscore_int_send_print_backtrace(int core_id) { esp_crosscore_int_send(core_id, REASON_PRINT_BACKTRACE); -} \ No newline at end of file +} diff --git a/components/esp32s2/esp_crypto_lock.c b/components/esp32s2/esp_crypto_lock.c index 17be031665..8bd5ccf6cf 100644 --- a/components/esp32s2/esp_crypto_lock.c +++ b/components/esp32s2/esp_crypto_lock.c @@ -41,4 +41,4 @@ void esp_crypto_mpi_lock_acquire(void) void esp_crypto_mpi_lock_release(void) { _lock_release(&s_crypto_mpi_lock); -} \ No newline at end of file +} diff --git a/components/esp32s2/include/esp32s2/brownout.h b/components/esp32s2/include/esp32s2/brownout.h index d0c120dd0f..e55063cf16 100644 --- a/components/esp32s2/include/esp32s2/brownout.h +++ b/components/esp32s2/include/esp32s2/brownout.h @@ -26,4 +26,4 @@ void esp_brownout_init(void); } #endif -#endif \ No newline at end of file +#endif diff --git a/components/esp32s2/include/esp32s2/spiram.h b/components/esp32s2/include/esp32s2/spiram.h index ff6bfc52d9..cc2b4c8549 100644 --- a/components/esp32s2/include/esp32s2/spiram.h +++ b/components/esp32s2/include/esp32s2/spiram.h @@ -97,19 +97,19 @@ extern int _instruction_reserved_start, _instruction_reserved_end; /** * @brief Get the start page number of the instruction in SPI flash - * + * * @return start page number */ uint32_t instruction_flash_start_page_get(void); /** * @brief Get the end page number of the instruction in SPI flash - * + * * @return end page number */ uint32_t instruction_flash_end_page_get(void); /** * @brief Get the offset of instruction from SPI flash to SPI RAM - * + * * @return instruction offset */ int instruction_flash2spiram_offset(void); @@ -121,19 +121,19 @@ extern int _rodata_reserved_start, _rodata_reserved_end; /** * @brief Get the start page number of the rodata in SPI flash - * + * * @return start page number */ uint32_t rodata_flash_start_page_get(void); /** * @brief Get the end page number of the rodata in SPI flash - * + * * @return end page number */ uint32_t rodata_flash_end_page_get(void); /** * @brief Get the offset number of rodata from SPI flash to SPI RAM - * + * * @return rodata offset */ int rodata_flash2spiram_offset(void); diff --git a/components/esp32s2/include/esp_clk.h b/components/esp32s2/include/esp_clk.h index 2d379d6513..430d1c1b7a 100644 --- a/components/esp32s2/include/esp_clk.h +++ b/components/esp32s2/include/esp_clk.h @@ -80,4 +80,4 @@ uint64_t esp_clk_rtc_time(void); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/esp32s2/include/esp_ds.h b/components/esp32s2/include/esp_ds.h index e11b8ed539..7778e0149e 100644 --- a/components/esp32s2/include/esp_ds.h +++ b/components/esp32s2/include/esp_ds.h @@ -197,4 +197,3 @@ esp_err_t esp_ds_encrypt_params(esp_ds_data_t *data, #ifdef __cplusplus } #endif - diff --git a/components/esp32s2/include/esp_intr.h b/components/esp32s2/include/esp_intr.h index d41f80c321..c29dc9bfd1 100644 --- a/components/esp32s2/include/esp_intr.h +++ b/components/esp32s2/include/esp_intr.h @@ -14,4 +14,4 @@ #pragma once #warning esp_intr.h is deprecated, please include esp_intr_alloc.h instead -#include "esp_intr_alloc.h" \ No newline at end of file +#include "esp_intr_alloc.h" diff --git a/components/esp32s2/include/esp_spiram.h b/components/esp32s2/include/esp_spiram.h index 16212e5405..b02335d66d 100644 --- a/components/esp32s2/include/esp_spiram.h +++ b/components/esp32s2/include/esp_spiram.h @@ -45,7 +45,7 @@ void esp_spiram_init_cache(void); /** * @brief Memory test for SPI RAM. Should be called after SPI RAM is initialized and - * (in case of a dual-core system) the app CPU is online. This test overwrites the + * (in case of a dual-core system) the app CPU is online. This test overwrites the * memory with crap, so do not call after e.g. the heap allocator has stored important * stuff in SPI RAM. * diff --git a/components/esp32s2/ld/esp32s2.project.ld.in b/components/esp32s2/ld/esp32s2.project.ld.in index ba806b298f..d2f22f585b 100644 --- a/components/esp32s2/ld/esp32s2.project.ld.in +++ b/components/esp32s2/ld/esp32s2.project.ld.in @@ -44,7 +44,7 @@ SECTIONS { . = ALIGN(4); _rtc_force_fast_start = ABSOLUTE(.); - + _coredump_rtc_fast_start = ABSOLUTE(.); mapping[rtc_fast_coredump] _coredump_rtc_fast_end = ABSOLUTE(.); @@ -69,7 +69,7 @@ SECTIONS _coredump_rtc_start = ABSOLUTE(.); mapping[rtc_coredump] _coredump_rtc_end = ABSOLUTE(.); - + /* should be placed after coredump mapping */ mapping[rtc_data] @@ -212,7 +212,7 @@ SECTIONS _coredump_dram_start = ABSOLUTE(.); mapping[dram_coredump] _coredump_dram_end = ABSOLUTE(.); - + /* should be placed after coredump mapping */ _esp_system_init_fn_array_start = ABSOLUTE(.); KEEP (*(SORT(.esp_system_init_fn) SORT(.esp_system_init_fn.*))) diff --git a/components/esp32s2/test/CMakeLists.txt b/components/esp32s2/test/CMakeLists.txt index 733ed02730..ef9c05cd50 100644 --- a/components/esp32s2/test/CMakeLists.txt +++ b/components/esp32s2/test/CMakeLists.txt @@ -4,4 +4,3 @@ if(IDF_TARGET STREQUAL "esp32s2") PRIV_REQUIRES cmock test_utils nvs_flash mbedtls ulp esp_common ) endif() - diff --git a/components/esp32s2/test/test_sha.c b/components/esp32s2/test/test_sha.c index e483f9248f..42bac29f8d 100644 --- a/components/esp32s2/test/test_sha.c +++ b/components/esp32s2/test/test_sha.c @@ -101,4 +101,3 @@ TEST_CASE("Test esp_sha() function with long input", "[hw_crypto]") TEST_ASSERT_EQUAL_MEMORY_MESSAGE(sha512_espsha, sha512_mbedtls, sizeof(sha512_espsha), "SHA512 results should match"); } - diff --git a/components/esp32s3/CMakeLists.txt b/components/esp32s3/CMakeLists.txt index 8d40232bd8..e1e0d31de0 100644 --- a/components/esp32s3/CMakeLists.txt +++ b/components/esp32s3/CMakeLists.txt @@ -18,7 +18,7 @@ else() "dport_access.c" "esp_crypto_lock.c" "hw_random.c" - + "memprot.c" "spiram.c" "spiram_psram.c" diff --git a/components/esp32s3/Kconfig b/components/esp32s3/Kconfig index c60dd46cf1..3fb8177030 100644 --- a/components/esp32s3/Kconfig +++ b/components/esp32s3/Kconfig @@ -525,4 +525,4 @@ menu "ESP32S3-Specific" heap initialization order by early startup services and scheduler related code. Speed wise RTC fast memory operates on APB clock and hence does not have much performance impact. -endmenu # ESP32S3-Specific \ No newline at end of file +endmenu # ESP32S3-Specific diff --git a/components/esp32s3/clk.c b/components/esp32s3/clk.c index 65dacbe58b..d508a2afdc 100644 --- a/components/esp32s3/clk.c +++ b/components/esp32s3/clk.c @@ -43,4 +43,4 @@ void IRAM_ATTR ets_update_cpu_frequency(uint32_t ticks_per_us) { /* Update scale factors used by esp_rom_delay_us */ g_ticks_per_us_pro = ticks_per_us; -} \ No newline at end of file +} diff --git a/components/esp32s3/esp_crypto_lock.c b/components/esp32s3/esp_crypto_lock.c index 8e72294b19..86fcbab449 100644 --- a/components/esp32s3/esp_crypto_lock.c +++ b/components/esp32s3/esp_crypto_lock.c @@ -53,4 +53,4 @@ void esp_crypto_mpi_lock_acquire(void) void esp_crypto_mpi_lock_release(void) { _lock_release(&s_crypto_mpi_lock); -} \ No newline at end of file +} diff --git a/components/esp32s3/include/esp32s3/brownout.h b/components/esp32s3/include/esp32s3/brownout.h index b1124213b6..80ddf1c948 100644 --- a/components/esp32s3/include/esp32s3/brownout.h +++ b/components/esp32s3/include/esp32s3/brownout.h @@ -18,4 +18,4 @@ void esp_brownout_init(void); -#endif \ No newline at end of file +#endif diff --git a/components/esp32s3/spiram_psram.c b/components/esp32s3/spiram_psram.c index 6674e01686..118fdd3c9a 100644 --- a/components/esp32s3/spiram_psram.c +++ b/components/esp32s3/spiram_psram.c @@ -63,7 +63,7 @@ static const char* TAG = "psram"; #define PSRAM_RESET 0x99 #define PSRAM_SET_BURST_LEN 0xC0 #define PSRAM_DEVICE_ID 0x9F -// ID +// ID #define PSRAM_ID_KGD_M 0xff #define PSRAM_ID_KGD_S 8 #define PSRAM_ID_KGD 0x5d @@ -217,7 +217,7 @@ void psram_exec_cmd(int spi_num, psram_cmd_mode_t mode, _psram_exec_cmd(spi_num, cmd, cmd_bit_len, addr, addr_bit_len, dummy_bits, mosi_data, mosi_bit_len, miso_data, miso_bit_len); esp_rom_spi_cmd_start(spi_num, miso_data, miso_bit_len / 8, cs_mask, is_write_erase_operation); - + WRITE_PERI_REG(SPI_MEM_USER_REG(spi_num), backup_usr); WRITE_PERI_REG(SPI_MEM_USER1_REG(spi_num), backup_usr1); WRITE_PERI_REG(SPI_MEM_USER2_REG(spi_num), backup_usr2); diff --git a/components/esp_adc_cal/CMakeLists.txt b/components/esp_adc_cal/CMakeLists.txt index 4579d36d5e..771340a460 100644 --- a/components/esp_adc_cal/CMakeLists.txt +++ b/components/esp_adc_cal/CMakeLists.txt @@ -11,5 +11,3 @@ elseif(${target} STREQUAL "esp32s2") REQUIRES driver efuse) endif() - - diff --git a/components/esp_adc_cal/component.mk b/components/esp_adc_cal/component.mk index 5f8b8731e5..5c826b74be 100644 --- a/components/esp_adc_cal/component.mk +++ b/components/esp_adc_cal/component.mk @@ -4,4 +4,3 @@ COMPONENT_ADD_INCLUDEDIRS := include COMPONENT_OBJEXCLUDE += esp_adc_cal_esp32s2.o - diff --git a/components/esp_adc_cal/esp_adc_cal_esp32s2.c b/components/esp_adc_cal/esp_adc_cal_esp32s2.c index 4c79a19e0b..091de9df90 100644 --- a/components/esp_adc_cal/esp_adc_cal_esp32s2.c +++ b/components/esp_adc_cal/esp_adc_cal_esp32s2.c @@ -290,4 +290,3 @@ esp_err_t esp_adc_cal_get_voltage(adc_channel_t channel, *voltage = esp_adc_cal_raw_to_voltage((uint32_t)adc_reading, chars); return ESP_OK; } - diff --git a/components/esp_adc_cal/include/esp_adc_cal.h b/components/esp_adc_cal/include/esp_adc_cal.h index 7d8f1278bf..2bb6470fd1 100644 --- a/components/esp_adc_cal/include/esp_adc_cal.h +++ b/components/esp_adc_cal/include/esp_adc_cal.h @@ -72,10 +72,10 @@ esp_err_t esp_adc_cal_check_efuse(esp_adc_cal_value_t value_type); * Characterization can be based on Two Point values, eFuse Vref, or default Vref * and the calibration values will be prioritized in that order. * - * @note + * @note * For ESP32, Two Point values and eFuse Vref calibration can be enabled/disabled using menuconfig. * For ESP32s2, only Two Point values calibration and only ADC_WIDTH_BIT_13 is supported. The parameter default_vref is unused. - * + * * * @param[in] adc_num ADC to characterize (ADC_UNIT_1 or ADC_UNIT_2) * @param[in] atten Attenuation to characterize diff --git a/components/esp_common/include/esp_compiler.h b/components/esp_common/include/esp_compiler.h index 6922c50adc..7ab8cb9af5 100644 --- a/components/esp_common/include/esp_compiler.h +++ b/components/esp_common/include/esp_compiler.h @@ -16,18 +16,18 @@ /* * The likely and unlikely macro pairs: - * These macros are useful to place when application + * These macros are useful to place when application * knows the majority ocurrence of a decision paths, * placing one of these macros can hint the compiler - * to reorder instructions producing more optimized + * to reorder instructions producing more optimized * code. - */ + */ #if (CONFIG_COMPILER_OPTIMIZATION_PERF) -#define likely(x) __builtin_expect(!!(x), 1) -#define unlikely(x) __builtin_expect(!!(x), 0) +#define likely(x) __builtin_expect(!!(x), 1) +#define unlikely(x) __builtin_expect(!!(x), 0) #else #define likely(x) (x) -#define unlikely(x) (x) +#define unlikely(x) (x) #endif /* @@ -48,4 +48,4 @@ #define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(member) #endif -#endif \ No newline at end of file +#endif diff --git a/components/esp_common/include/esp_expression_with_stack.h b/components/esp_common/include/esp_expression_with_stack.h index 096b457525..456e5db16b 100644 --- a/components/esp_common/include/esp_expression_with_stack.h +++ b/components/esp_common/include/esp_expression_with_stack.h @@ -24,7 +24,7 @@ extern "C" { #endif -typedef void (*shared_stack_function)(void); +typedef void (*shared_stack_function)(void); #define ESP_EXECUTE_EXPRESSION_WITH_STACK(lock, stack, stack_size, expression) \ esp_execute_shared_stack_function(lock, stack, stack_size, expression) @@ -38,7 +38,7 @@ typedef void (*shared_stack_function)(void); * @note if either lock, stack or stack size is invalid, the expression will * be called using the current stack. */ -void esp_execute_shared_stack_function(SemaphoreHandle_t lock, +void esp_execute_shared_stack_function(SemaphoreHandle_t lock, void *stack, size_t stack_size, shared_stack_function function); @@ -46,4 +46,4 @@ void esp_execute_shared_stack_function(SemaphoreHandle_t lock, #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/esp_common/include/esp_int_wdt.h b/components/esp_common/include/esp_int_wdt.h index 87cc23ec1e..2bda5d8557 100644 --- a/components/esp_common/include/esp_int_wdt.h +++ b/components/esp_common/include/esp_int_wdt.h @@ -25,12 +25,12 @@ extern "C" { /* This routine enables a watchdog to catch instances of processes disabling -interrupts for too long, or code within interrupt handlers taking too long. +interrupts for too long, or code within interrupt handlers taking too long. It does this by setting up a watchdog which gets fed from the FreeRTOS task switch interrupt. When this watchdog times out, initially it will call a high-level interrupt routine that will panic FreeRTOS in order to allow for forensic examination of the state of the both CPUs. When this interrupt -handler is not called and the watchdog times out a second time, it will +handler is not called and the watchdog times out a second time, it will reset the SoC. This uses the TIMERG1 WDT. diff --git a/components/esp_common/include/esp_private/crosscore_int.h b/components/esp_common/include/esp_private/crosscore_int.h index d7af7f69bf..e6f7801767 100644 --- a/components/esp_common/include/esp_private/crosscore_int.h +++ b/components/esp_common/include/esp_private/crosscore_int.h @@ -53,10 +53,10 @@ void esp_crosscore_int_send_freq_switch(int core_id); /** * Send an interrupt to a CPU indicating it should print its current backtrace - * + * * This is use internally by the Task Watchdog to dump the backtrace of the * opposite core and should not be called from application code. - * + * * @param core_id Core that should print its backtrace */ void esp_crosscore_int_send_print_backtrace(int core_id); diff --git a/components/esp_common/include/esp_private/dbg_stubs.h b/components/esp_common/include/esp_private/dbg_stubs.h index 899dfa56ed..c784de9845 100644 --- a/components/esp_common/include/esp_private/dbg_stubs.h +++ b/components/esp_common/include/esp_private/dbg_stubs.h @@ -47,4 +47,4 @@ void esp_dbg_stubs_init(void); */ esp_err_t esp_dbg_stub_entry_set(esp_dbg_stub_id_t id, uint32_t entry); -#endif //ESP_DBG_STUBS_H_ \ No newline at end of file +#endif //ESP_DBG_STUBS_H_ diff --git a/components/esp_common/include/esp_private/system_internal.h b/components/esp_common/include/esp_private/system_internal.h index 12d7c2db88..66912a54b4 100644 --- a/components/esp_common/include/esp_private/system_internal.h +++ b/components/esp_common/include/esp_private/system_internal.h @@ -62,16 +62,16 @@ void esp_reset_reason_set_hint(esp_reset_reason_t hint); esp_reset_reason_t esp_reset_reason_get_hint(void); -/** +/** * @brief Get the time in microseconds since startup - * + * * @returns time since startup in microseconds */ int64_t esp_system_get_time(void); -/** +/** * @brief Get the resolution of the time returned by `esp_system_get_time`. - * + * * @returns the resolution in nanoseconds */ uint32_t esp_system_get_time_resolution(void); diff --git a/components/esp_common/linker.lf b/components/esp_common/linker.lf index f5be708093..b6913ecff1 100644 --- a/components/esp_common/linker.lf +++ b/components/esp_common/linker.lf @@ -1,4 +1,4 @@ [mapping:esp_common] archive: libesp_common.a entries: - esp_err (noflash) \ No newline at end of file + esp_err (noflash) diff --git a/components/esp_common/src/esp_err.c b/components/esp_common/src/esp_err.c index ad23651574..4aa6a230d0 100644 --- a/components/esp_common/src/esp_err.c +++ b/components/esp_common/src/esp_err.c @@ -40,4 +40,4 @@ void _esp_error_check_failed(esp_err_t rc, const char *file, int line, const cha { esp_error_check_failed_print("ESP_ERROR_CHECK", rc, file, line, function, expression); abort(); -} \ No newline at end of file +} diff --git a/components/esp_common/src/fpga_overrides.c b/components/esp_common/src/fpga_overrides.c index d5755e3a6b..20a6d5578b 100644 --- a/components/esp_common/src/fpga_overrides.c +++ b/components/esp_common/src/fpga_overrides.c @@ -60,4 +60,4 @@ void esp_perip_clk_init(void) */ void esp_common_include_fpga_overrides(void) { -} \ No newline at end of file +} diff --git a/components/esp_common/src/freertos_hooks.c b/components/esp_common/src/freertos_hooks.c index 58c42b8542..c45153fcdc 100644 --- a/components/esp_common/src/freertos_hooks.c +++ b/components/esp_common/src/freertos_hooks.c @@ -32,7 +32,7 @@ static portMUX_TYPE hooks_spinlock = portMUX_INITIALIZER_UNLOCKED; static esp_freertos_idle_cb_t idle_cb[portNUM_PROCESSORS][MAX_HOOKS]={0}; static esp_freertos_tick_cb_t tick_cb[portNUM_PROCESSORS][MAX_HOOKS]={0}; -void IRAM_ATTR esp_vApplicationTickHook(void) +void IRAM_ATTR esp_vApplicationTickHook(void) { int n; int core = xPortGetCoreID(); @@ -43,7 +43,7 @@ void IRAM_ATTR esp_vApplicationTickHook(void) } } -void esp_vApplicationIdleHook(void) +void esp_vApplicationIdleHook(void) { bool can_go_idle=true; int core = xPortGetCoreID(); @@ -102,7 +102,7 @@ esp_err_t esp_register_freertos_tick_hook_for_cpu(esp_freertos_tick_cb_t new_tic return ESP_ERR_NO_MEM; } -esp_err_t esp_register_freertos_tick_hook(esp_freertos_tick_cb_t new_tick_cb) +esp_err_t esp_register_freertos_tick_hook(esp_freertos_tick_cb_t new_tick_cb) { return esp_register_freertos_tick_hook_for_cpu(new_tick_cb, xPortGetCoreID()); } @@ -148,4 +148,3 @@ void esp_deregister_freertos_tick_hook(esp_freertos_tick_cb_t old_tick_cb) } portEXIT_CRITICAL(&hooks_spinlock); } - diff --git a/components/esp_common/src/mac_addr.c b/components/esp_common/src/mac_addr.c index cd37a676b6..772663acbc 100644 --- a/components/esp_common/src/mac_addr.c +++ b/components/esp_common/src/mac_addr.c @@ -165,7 +165,7 @@ esp_err_t esp_read_mac(uint8_t* mac, esp_mac_type_t type) uint8_t mac_begin[6] = { 0x7c, 0xdf, 0xa1, 0x00, 0x30, 0x00 }; uint8_t mac_end[6] = { 0x7c, 0xdf, 0xa1, 0x00, 0x5f, 0xff }; if(memcmp(mac,mac_begin,6) >= 0 && memcmp(mac_end,mac,6) >=0 ){ - mac[3] += 0x02; // contain carry bit + mac[3] += 0x02; // contain carry bit mac[4] += 0xd0; } else { mac[5] += 1; @@ -199,4 +199,3 @@ esp_err_t esp_read_mac(uint8_t* mac, esp_mac_type_t type) return ESP_OK; } - diff --git a/components/esp_common/src/task_wdt.c b/components/esp_common/src/task_wdt.c index 77d97365a1..f2b3957292 100644 --- a/components/esp_common/src/task_wdt.c +++ b/components/esp_common/src/task_wdt.c @@ -191,7 +191,7 @@ static void task_wdt_isr(void *arg) esp_crosscore_int_send_print_backtrace(!current_core); #endif } - + portEXIT_CRITICAL_ISR(&twdt_spinlock); } diff --git a/components/esp_eth/test/test_emac.c b/components/esp_eth/test/test_emac.c index e05fdb771d..2524dec54c 100644 --- a/components/esp_eth/test/test_emac.c +++ b/components/esp_eth/test/test_emac.c @@ -508,4 +508,4 @@ TEST_CASE("esp32 ethernet download test", "[ethernet][test_env=UT_T2_Ethernet][t vEventGroupDelete(eth_event_group); } -#endif // SOC_EMAC_SUPPORTED \ No newline at end of file +#endif // SOC_EMAC_SUPPORTED diff --git a/components/esp_event/default_event_loop.c b/components/esp_event/default_event_loop.c index 5ecd69872f..93b37d2803 100644 --- a/components/esp_event/default_event_loop.c +++ b/components/esp_event/default_event_loop.c @@ -37,7 +37,7 @@ esp_err_t esp_event_handler_instance_register(esp_event_base_t event_base, int32_t event_id, esp_event_handler_t event_handler, void *event_handler_arg, - esp_event_handler_instance_t *context) + esp_event_handler_instance_t *context) { if (s_default_loop == NULL) { return ESP_ERR_INVALID_STATE; @@ -69,7 +69,7 @@ esp_err_t esp_event_handler_instance_unregister(esp_event_base_t event_base, if (s_default_loop == NULL) { return ESP_ERR_INVALID_STATE; } - + return esp_event_handler_instance_unregister_with(s_default_loop, event_base, event_id, context); } diff --git a/components/esp_event/event_loop_legacy.c b/components/esp_event/event_loop_legacy.c index 5dc397a28b..be495cb3af 100644 --- a/components/esp_event/event_loop_legacy.c +++ b/components/esp_event/event_loop_legacy.c @@ -76,7 +76,7 @@ esp_err_t esp_event_loop_init(system_event_cb_t cb, void *ctx) return ESP_OK; } -esp_err_t esp_event_loop_deinit(void) +esp_err_t esp_event_loop_deinit(void) { if (!s_initialized) { ESP_LOGE(TAG, "system event loop not initialized"); @@ -98,4 +98,3 @@ esp_err_t esp_event_loop_deinit(void) s_event_ctx = NULL; return ESP_OK; } - diff --git a/components/esp_event/event_send.c b/components/esp_event/event_send.c index 80fe464a81..46ef4792c1 100644 --- a/components/esp_event/event_send.c +++ b/components/esp_event/event_send.c @@ -164,4 +164,3 @@ esp_err_t esp_event_send_internal(esp_event_base_t event_base, return esp_event_send_legacy(&event); } - diff --git a/components/esp_event/include/esp_event_legacy.h b/components/esp_event/include/esp_event_legacy.h index ba74ec776c..a2af69121f 100644 --- a/components/esp_event/include/esp_event_legacy.h +++ b/components/esp_event/include/esp_event_legacy.h @@ -249,4 +249,3 @@ system_event_cb_t esp_event_loop_set_cb(system_event_cb_t cb, void *ctx) __attri #ifdef __cplusplus } #endif - diff --git a/components/esp_event/private_include/esp_event_private.h b/components/esp_event/private_include/esp_event_private.h index d96f66e2df..fc434876a9 100644 --- a/components/esp_event/private_include/esp_event_private.h +++ b/components/esp_event/private_include/esp_event_private.h @@ -31,8 +31,8 @@ extern "C" { * * @return true handler registered * @return false handler not registered - * - * @return + * + * @return * - true: Handler registered * - false: Handler not registered */ @@ -41,7 +41,7 @@ bool esp_event_is_handler_registered(esp_event_loop_handle_t event_loop, esp_eve /** * @brief Deinitializes the event loop library * - * @return + * @return * - ESP_OK: Success * - Others: Fail */ @@ -51,4 +51,4 @@ esp_err_t esp_event_loop_deinit(void); } // extern "C" #endif -#endif // #ifndef ESP_EVENT_PRIVATE_H_ \ No newline at end of file +#endif // #ifndef ESP_EVENT_PRIVATE_H_ diff --git a/components/esp_event/test/component.mk b/components/esp_event/test/component.mk index ffac3ba36f..b3b8a369be 100644 --- a/components/esp_event/test/component.mk +++ b/components/esp_event/test/component.mk @@ -3,4 +3,4 @@ # COMPONENT_PRIV_INCLUDEDIRS := ../private_include . -COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive \ No newline at end of file +COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive diff --git a/components/esp_gdbstub/linker.lf b/components/esp_gdbstub/linker.lf index 8364565817..3be85ac3a9 100644 --- a/components/esp_gdbstub/linker.lf +++ b/components/esp_gdbstub/linker.lf @@ -4,4 +4,4 @@ entries: if ESP_PANIC_HANDLER_IRAM = y: * (noflash_text) else: - * (default) \ No newline at end of file + * (default) diff --git a/components/esp_gdbstub/private_include/esp_gdbstub_common.h b/components/esp_gdbstub/private_include/esp_gdbstub_common.h index 43c35dcabd..42dcde8549 100644 --- a/components/esp_gdbstub/private_include/esp_gdbstub_common.h +++ b/components/esp_gdbstub/private_include/esp_gdbstub_common.h @@ -148,4 +148,3 @@ int esp_gdbstub_read_command(unsigned char **out_cmd, size_t *out_size); /** Handle a command received from gdb */ int esp_gdbstub_handle_command(unsigned char *cmd, int len); - diff --git a/components/esp_gdbstub/src/gdbstub.c b/components/esp_gdbstub/src/gdbstub.c index 2debe577cc..6e0a800069 100644 --- a/components/esp_gdbstub/src/gdbstub.c +++ b/components/esp_gdbstub/src/gdbstub.c @@ -139,7 +139,7 @@ static void handle_m_command(const unsigned char* cmd, int len) int esp_gdbstub_handle_command(unsigned char *cmd, int len) { unsigned char *data = cmd + 1; - if (cmd[0] == 'g') + if (cmd[0] == 'g') { handle_g_command(data, len - 1); } else if (cmd[0] == 'G') { @@ -383,4 +383,3 @@ static int handle_task_commands(unsigned char *cmd, int len) } #endif // CONFIG_ESP_GDBSTUB_SUPPORT_TASKS - diff --git a/components/esp_hid/CMakeLists.txt b/components/esp_hid/CMakeLists.txt index 8095aa3fb4..890d5f575c 100644 --- a/components/esp_hid/CMakeLists.txt +++ b/components/esp_hid/CMakeLists.txt @@ -1,7 +1,7 @@ set(srcs "src/esp_hidd.c" "src/esp_hidh.c" "src/esp_hid_common.c") - + set(include_dirs "include") set(priv_include_dirs "private") diff --git a/components/esp_hid/src/esp_hid_common.c b/components/esp_hid/src/esp_hid_common.c index c8c7214bed..5bdc294f0b 100644 --- a/components/esp_hid/src/esp_hid_common.c +++ b/components/esp_hid/src/esp_hid_common.c @@ -516,4 +516,3 @@ const char *esp_hid_disconnect_reason_str(esp_hid_transport_t transport, int rea } return s_unknown_str; } - diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index 3d8fe4616c..65ec5fcb47 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -823,7 +823,7 @@ esp_err_t esp_http_client_set_url(esp_http_client_handle_t client, const char *u } else { return ESP_ERR_NO_MEM; } - } + } //Reset path and query if there are no information if (purl.field_data[UF_PATH].len) { diff --git a/components/esp_http_client/include/esp_http_client.h b/components/esp_http_client/include/esp_http_client.h index a6da8573e0..3304cfd73f 100644 --- a/components/esp_http_client/include/esp_http_client.h +++ b/components/esp_http_client/include/esp_http_client.h @@ -503,7 +503,7 @@ void esp_http_client_add_auth(esp_http_client_handle_t client); * @brief Checks if entire data in the response has been read without any error. * * @param[in] client The esp_http_client handle - * + * * @return * - true * - false diff --git a/components/esp_http_client/test/test_http_client.c b/components/esp_http_client/test/test_http_client.c index 4a2f725d8c..b811f9efb2 100644 --- a/components/esp_http_client/test/test_http_client.c +++ b/components/esp_http_client/test/test_http_client.c @@ -104,7 +104,7 @@ TEST_CASE("Username is unmodified when we change to new path", "[ESP HTTP CLIENT /** * Test case to test that, the esp_http_client_set_url do not reset the auth credentials - * Explicit APIs esp_http_client_set_username and esp_http_client_set_password are used to change + * Explicit APIs esp_http_client_set_username and esp_http_client_set_password are used to change * the auth credentials **/ TEST_CASE("Username and password will not reset if new absolute URL doesnot specify auth credentials.", "[ESP HTTP CLIENT]") diff --git a/components/esp_http_server/test/CMakeLists.txt b/components/esp_http_server/test/CMakeLists.txt index 03dad364f4..8f258b8332 100644 --- a/components/esp_http_server/test/CMakeLists.txt +++ b/components/esp_http_server/test/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRC_DIRS "." PRIV_INCLUDE_DIRS "." - PRIV_REQUIRES cmock test_utils esp_http_server) \ No newline at end of file + PRIV_REQUIRES cmock test_utils esp_http_server) diff --git a/components/esp_https_ota/include/esp_https_ota.h b/components/esp_https_ota/include/esp_https_ota.h index b88fdfaa5c..81d9383424 100644 --- a/components/esp_https_ota/include/esp_https_ota.h +++ b/components/esp_https_ota/include/esp_https_ota.h @@ -39,12 +39,12 @@ typedef struct { /** * @brief HTTPS OTA Firmware upgrade. * - * This function allocates HTTPS OTA Firmware upgrade context, establishes HTTPS connection, - * reads image data from HTTP stream and writes it to OTA partition and + * This function allocates HTTPS OTA Firmware upgrade context, establishes HTTPS connection, + * reads image data from HTTP stream and writes it to OTA partition and * finishes HTTPS OTA Firmware upgrade operation. * This API supports URL redirection, but if CA cert of URLs differ then it * should be appended to `cert_pem` member of `config`. - * + * * @param[in] config pointer to esp_http_client_config_t structure. * * @note This API handles the entire OTA operation, so if this API is being used @@ -86,19 +86,19 @@ esp_err_t esp_https_ota(const esp_http_client_config_t *config); * - ESP_OK: HTTPS OTA Firmware upgrade context initialised and HTTPS connection established * - ESP_FAIL: For generic failure. * - ESP_ERR_INVALID_ARG: Invalid argument (missing/incorrect config, certificate, etc.) - * - For other return codes, refer documentation in app_update component and esp_http_client + * - For other return codes, refer documentation in app_update component and esp_http_client * component in esp-idf. */ esp_err_t esp_https_ota_begin(esp_https_ota_config_t *ota_config, esp_https_ota_handle_t *handle); /** - * @brief Read image data from HTTP stream and write it to OTA partition + * @brief Read image data from HTTP stream and write it to OTA partition * - * This function reads image data from HTTP stream and writes it to OTA partition. This function + * This function reads image data from HTTP stream and writes it to OTA partition. This function * must be called only if esp_https_ota_begin() returns successfully. - * This function must be called in a loop since it returns after every HTTP read operation thus + * This function must be called in a loop since it returns after every HTTP read operation thus * giving you the flexibility to stop OTA operation midway. - * + * * @param[in] https_ota_handle pointer to esp_https_ota_handle_t structure * * @return @@ -150,14 +150,14 @@ esp_err_t esp_https_ota_finish(esp_https_ota_handle_t https_ota_handle); /** * @brief Reads app description from image header. The app description provides information * like the "Firmware version" of the image. - * + * * @note This API can be called only after esp_https_ota_begin() and before esp_https_ota_perform(). * Calling this API is not mandatory. * * @param[in] https_ota_handle pointer to esp_https_ota_handle_t structure * @param[out] new_app_info pointer to an allocated esp_app_desc_t structure - * - * @return + * + * @return * - ESP_ERR_INVALID_ARG: Invalid arguments * - ESP_FAIL: Failed to read image descriptor * - ESP_OK: Successfully read image descriptor diff --git a/components/esp_https_ota/src/esp_https_ota.c b/components/esp_https_ota/src/esp_https_ota.c index ee229b007d..eedb2139bc 100644 --- a/components/esp_https_ota/src/esp_https_ota.c +++ b/components/esp_https_ota/src/esp_https_ota.c @@ -76,7 +76,7 @@ static esp_err_t _http_handle_response_code(esp_http_client_handle_t http_client ESP_LOGE(TAG, "Server error occurred(%d)", status_code); return ESP_FAIL; } - + char upgrade_data_buf[DEFAULT_OTA_BUF_SIZE]; // process_again() returns true only in case of redirection. if (process_again(status_code)) { @@ -165,7 +165,7 @@ esp_err_t esp_https_ota_begin(esp_https_ota_config_t *ota_config, esp_https_ota_ *handle = NULL; return ESP_ERR_NO_MEM; } - + /* Initiate HTTP Connection */ https_ota_handle->http_client = esp_http_client_init(ota_config->http_config); if (https_ota_handle->http_client == NULL) { @@ -264,7 +264,7 @@ esp_err_t esp_https_ota_get_img_desc(esp_https_ota_handle_t https_ota_handle, es } handle->binary_file_len = bytes_read; memcpy(new_app_info, &handle->ota_upgrade_buf[sizeof(esp_image_header_t) + sizeof(esp_image_segment_header_t)], sizeof(esp_app_desc_t)); - return ESP_OK; + return ESP_OK; } esp_err_t esp_https_ota_perform(esp_https_ota_handle_t https_ota_handle) @@ -398,7 +398,7 @@ esp_err_t esp_https_ota(const esp_http_client_config_t *config) if (!config) { ESP_LOGE(TAG, "esp_http_client config not found"); return ESP_ERR_INVALID_ARG; - } + } esp_https_ota_config_t ota_config = { .http_config = config, diff --git a/components/esp_https_server/CMakeLists.txt b/components/esp_https_server/CMakeLists.txt index f189fd76cd..4b38315abf 100644 --- a/components/esp_https_server/CMakeLists.txt +++ b/components/esp_https_server/CMakeLists.txt @@ -1,10 +1,9 @@ if(CONFIG_ESP_HTTPS_SERVER_ENABLE) set(src "src/https_server.c") - set(inc "include") + set(inc "include") endif() idf_component_register(SRCS ${src} INCLUDE_DIRS ${inc} REQUIRES esp_http_server esp-tls PRIV_REQUIRES lwip) - diff --git a/components/esp_hw_support/compare_set.c b/components/esp_hw_support/compare_set.c index 1a396c0adf..03871ca4ea 100644 --- a/components/esp_hw_support/compare_set.c +++ b/components/esp_hw_support/compare_set.c @@ -37,4 +37,3 @@ void compare_and_set_extram(volatile uint32_t *addr, uint32_t compare, uint32_t *set = old_value; } - diff --git a/components/esp_hw_support/cpu_util.c b/components/esp_hw_support/cpu_util.c index 1f0713d22a..a251c25b29 100644 --- a/components/esp_hw_support/cpu_util.c +++ b/components/esp_hw_support/cpu_util.c @@ -89,4 +89,4 @@ void IRAM_ATTR esp_set_breakpoint_if_jtag(void *fn) if (esp_cpu_in_ocd_debug_mode()) { cpu_hal_set_breakpoint(0, fn); } -} \ No newline at end of file +} diff --git a/components/esp_hw_support/include/soc/compare_set.h b/components/esp_hw_support/include/soc/compare_set.h index b748fa9ea8..ddda35cc22 100644 --- a/components/esp_hw_support/include/soc/compare_set.h +++ b/components/esp_hw_support/include/soc/compare_set.h @@ -27,7 +27,7 @@ extern "C" { static inline void __attribute__((always_inline)) compare_and_set_native(volatile uint32_t *addr, uint32_t compare, uint32_t *set) { -#if (XCHAL_HAVE_S32C1I > 0) +#if (XCHAL_HAVE_S32C1I > 0) __asm__ __volatile__ ( "WSR %2,SCOMPARE1 \n" "S32C1I %0, %1, 0 \n" @@ -60,4 +60,4 @@ void compare_and_set_extram(volatile uint32_t *addr, uint32_t compare, uint32_t } #endif -#endif \ No newline at end of file +#endif diff --git a/components/esp_hw_support/include/soc/cpu.h b/components/esp_hw_support/include/soc/cpu.h index d019706101..77b4fcedda 100644 --- a/components/esp_hw_support/include/soc/cpu.h +++ b/components/esp_hw_support/include/soc/cpu.h @@ -91,7 +91,7 @@ typedef uint32_t esp_cpu_ccount_t; static inline esp_cpu_ccount_t esp_cpu_get_ccount(void) { - uint32_t result; + uint32_t result; RSR(CCOUNT, result); return result; } diff --git a/components/esp_hw_support/include/soc/rtc_wdt.h b/components/esp_hw_support/include/soc/rtc_wdt.h index 0ed2c9a7b1..7d13e6a4f7 100644 --- a/components/esp_hw_support/include/soc/rtc_wdt.h +++ b/components/esp_hw_support/include/soc/rtc_wdt.h @@ -33,7 +33,7 @@ They can help to understand where the CPUs were when the WDT was triggered. W (31) boot: WDT reset info: APP CPU PC=0x400xxxxx ... function where it happened -* If you use this option RTC_WDT_STAGE_ACTION_RESET_RTC then you will see message (rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)) +* If you use this option RTC_WDT_STAGE_ACTION_RESET_RTC then you will see message (rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)) without description where were CPUs when it happened. 2) Reset counter of rtc_wdt: diff --git a/components/esp_hw_support/include/soc/spinlock.h b/components/esp_hw_support/include/soc/spinlock.h index 286858315b..0135a2a6de 100644 --- a/components/esp_hw_support/include/soc/spinlock.h +++ b/components/esp_hw_support/include/soc/spinlock.h @@ -32,8 +32,8 @@ extern "C" { #endif #define SPINLOCK_FREE 0xB33FFFFF -#define SPINLOCK_WAIT_FOREVER (-1) -#define SPINLOCK_NO_WAIT 0 +#define SPINLOCK_WAIT_FOREVER (-1) +#define SPINLOCK_NO_WAIT 0 #define SPINLOCK_INITIALIZER {.owner = SPINLOCK_FREE,.count = 0} #define CORE_ID_REGVAL_XOR_SWAP (0xCDCD ^ 0xABAB) @@ -67,23 +67,23 @@ static inline bool __attribute__((always_inline)) spinlock_acquire(spinlock_t *l uint32_t irq_status; uint32_t ccount_start; uint32_t core_id, other_core_id; - + assert(lock); - irq_status = XTOS_SET_INTLEVEL(XCHAL_EXCM_LEVEL); - + irq_status = XTOS_SET_INTLEVEL(XCHAL_EXCM_LEVEL); + if(timeout != SPINLOCK_WAIT_FOREVER){ - RSR(CCOUNT, ccount_start); + RSR(CCOUNT, ccount_start); } /*spin until we own a core */ RSR(PRID, core_id); /* Note: coreID is the full 32 bit core ID (CORE_ID_REGVAL_PRO/CORE_ID_REGVAL_APP) */ - + other_core_id = CORE_ID_REGVAL_XOR_SWAP ^ core_id; do { - /* lock->owner should be one of SPINLOCK_FREE, CORE_ID_REGVAL_PRO, + /* lock->owner should be one of SPINLOCK_FREE, CORE_ID_REGVAL_PRO, * CORE_ID_REGVAL_APP: * - If SPINLOCK_FREE, we want to atomically set to 'core_id'. * - If "our" core_id, we can drop through immediately. @@ -115,7 +115,7 @@ static inline bool __attribute__((always_inline)) spinlock_acquire(spinlock_t *l }while(1); /* any other value implies memory corruption or uninitialized mux */ - assert(result == core_id || result == SPINLOCK_FREE); + assert(result == core_id || result == SPINLOCK_FREE); assert((result == SPINLOCK_FREE) == (lock->count == 0)); /* we're first to lock iff count is zero */ assert(lock->count < 0xFF); /* Bad count value implies memory corruption */ @@ -123,9 +123,9 @@ static inline bool __attribute__((always_inline)) spinlock_acquire(spinlock_t *l XTOS_RESTORE_INTLEVEL(irq_status); return true; -#else +#else return true; -#endif +#endif } @@ -135,14 +135,14 @@ static inline bool __attribute__((always_inline)) spinlock_acquire(spinlock_t *l */ static inline void __attribute__((always_inline)) spinlock_release(spinlock_t *lock) { - + #if !CONFIG_FREERTOS_UNICORE - uint32_t irq_status; + uint32_t irq_status; uint32_t core_id; assert(lock); irq_status = XTOS_SET_INTLEVEL(XCHAL_EXCM_LEVEL); - + RSR(PRID, core_id); assert(core_id == lock->owner); // This is a mutex we didn't lock, or it's corrupt lock->count--; @@ -154,7 +154,7 @@ static inline void __attribute__((always_inline)) spinlock_release(spinlock_t *l } XTOS_RESTORE_INTLEVEL(irq_status); -#endif +#endif } #ifdef __cplusplus @@ -162,4 +162,3 @@ static inline void __attribute__((always_inline)) spinlock_release(spinlock_t *l #endif #endif - diff --git a/components/esp_hw_support/port/esp32/CMakeLists.txt b/components/esp_hw_support/port/esp32/CMakeLists.txt index 6edbf56018..9d568ed926 100644 --- a/components/esp_hw_support/port/esp32/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32/CMakeLists.txt @@ -1,7 +1,7 @@ target_include_directories(${COMPONENT_LIB} PUBLIC .) target_include_directories(${COMPONENT_LIB} PRIVATE private_include) -set(srcs +set(srcs "rtc_clk.c" "rtc_clk_init.c" "rtc_init.c" diff --git a/components/esp_hw_support/port/esp32/private_include/regi2c_apll.h b/components/esp_hw_support/port/esp32/private_include/regi2c_apll.h index 05f274b28b..db49027546 100644 --- a/components/esp_hw_support/port/esp32/private_include/regi2c_apll.h +++ b/components/esp_hw_support/port/esp32/private_include/regi2c_apll.h @@ -133,4 +133,3 @@ #define I2C_APLL_DSDM0 9 #define I2C_APLL_DSDM0_MSB 7 #define I2C_APLL_DSDM0_LSB 0 - diff --git a/components/esp_hw_support/port/esp32/private_include/regi2c_bbpll.h b/components/esp_hw_support/port/esp32/private_include/regi2c_bbpll.h index 68c87fb6c9..8a9fcef372 100644 --- a/components/esp_hw_support/port/esp32/private_include/regi2c_bbpll.h +++ b/components/esp_hw_support/port/esp32/private_include/regi2c_bbpll.h @@ -205,4 +205,3 @@ #define I2C_BBPLL_BBADC_CAL_7_0 12 #define I2C_BBPLL_BBADC_CAL_7_0_MSB 7 #define I2C_BBPLL_BBADC_CAL_7_0_LSB 0 - diff --git a/components/esp_hw_support/port/esp32/regi2c_ctrl.h b/components/esp_hw_support/port/esp32/regi2c_ctrl.h index 1a8c2b3b21..d896cb2b88 100644 --- a/components/esp_hw_support/port/esp32/regi2c_ctrl.h +++ b/components/esp_hw_support/port/esp32/regi2c_ctrl.h @@ -55,4 +55,4 @@ void rom_i2c_writeReg_Mask(uint8_t block, uint8_t host_id, uint8_t reg_add, uint #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/esp_hw_support/port/esp32/rtc_clk_common.h b/components/esp_hw_support/port/esp32/rtc_clk_common.h index b6ae3ca2e4..dec179e3be 100644 --- a/components/esp_hw_support/port/esp32/rtc_clk_common.h +++ b/components/esp_hw_support/port/esp32/rtc_clk_common.h @@ -45,4 +45,4 @@ static inline uint32_t clk_val_to_reg_val(uint32_t val) { #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/esp_hw_support/port/esp32/rtc_time.c b/components/esp_hw_support/port/esp32/rtc_time.c index 2b4e02b1fd..0d2433d52c 100644 --- a/components/esp_hw_support/port/esp32/rtc_time.c +++ b/components/esp_hw_support/port/esp32/rtc_time.c @@ -167,4 +167,3 @@ void rtc_clk_wait_for_slow_cycle(void) esp_rom_delay_us(1); } } - diff --git a/components/esp_hw_support/port/esp32s2/CMakeLists.txt b/components/esp_hw_support/port/esp32s2/CMakeLists.txt index 94ae9e59c8..28dc4ab6f9 100644 --- a/components/esp_hw_support/port/esp32s2/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32s2/CMakeLists.txt @@ -1,7 +1,7 @@ target_include_directories(${COMPONENT_LIB} PUBLIC .) target_include_directories(${COMPONENT_LIB} PUBLIC private_include) -set(srcs +set(srcs "rtc_clk.c" "rtc_clk_init.c" "rtc_init.c" diff --git a/components/esp_hw_support/port/esp32s2/private_include/regi2c_apll.h b/components/esp_hw_support/port/esp32s2/private_include/regi2c_apll.h index a6630d92cb..d63ceb1f48 100644 --- a/components/esp_hw_support/port/esp32s2/private_include/regi2c_apll.h +++ b/components/esp_hw_support/port/esp32s2/private_include/regi2c_apll.h @@ -133,4 +133,3 @@ #define I2C_APLL_DSDM0 9 #define I2C_APLL_DSDM0_MSB 7 #define I2C_APLL_DSDM0_LSB 0 - diff --git a/components/esp_hw_support/port/esp32s2/private_include/regi2c_bbpll.h b/components/esp_hw_support/port/esp32s2/private_include/regi2c_bbpll.h index 494f1d7225..edc9938842 100644 --- a/components/esp_hw_support/port/esp32s2/private_include/regi2c_bbpll.h +++ b/components/esp_hw_support/port/esp32s2/private_include/regi2c_bbpll.h @@ -181,4 +181,3 @@ #define I2C_BBPLL_ENT_ADC 10 #define I2C_BBPLL_ENT_ADC_MSB 7 #define I2C_BBPLL_ENT_ADC_LSB 6 - diff --git a/components/esp_hw_support/port/esp32s2/private_include/regi2c_ulp.h b/components/esp_hw_support/port/esp32s2/private_include/regi2c_ulp.h index 1bd427836d..fdb5e48f76 100644 --- a/components/esp_hw_support/port/esp32s2/private_include/regi2c_ulp.h +++ b/components/esp_hw_support/port/esp32s2/private_include/regi2c_ulp.h @@ -36,4 +36,4 @@ #define I2C_ULP_BG_O_DONE_FLAG 3 #define I2C_ULP_BG_O_DONE_FLAG_MSB 3 -#define I2C_ULP_BG_O_DONE_FLAG_LSB 3 \ No newline at end of file +#define I2C_ULP_BG_O_DONE_FLAG_LSB 3 diff --git a/components/esp_hw_support/port/esp32s2/regi2c_ctrl.c b/components/esp_hw_support/port/esp32s2/regi2c_ctrl.c index 88ec4fa0f9..73ee546943 100644 --- a/components/esp_hw_support/port/esp32s2/regi2c_ctrl.c +++ b/components/esp_hw_support/port/esp32s2/regi2c_ctrl.c @@ -166,4 +166,4 @@ void i2c_rtc_write_reg_mask(uint8_t block, uint8_t host_id, uint8_t reg_add, uin | ((temp & I2C_RTC_DATA_V) << I2C_RTC_DATA_S); REG_WRITE(I2C_RTC_CONFIG2, temp); while (REG_GET_BIT(I2C_RTC_CONFIG2, I2C_RTC_BUSY)); -} \ No newline at end of file +} diff --git a/components/esp_hw_support/port/esp32s2/regi2c_ctrl.h b/components/esp_hw_support/port/esp32s2/regi2c_ctrl.h index 68d05f7bda..16d63340af 100644 --- a/components/esp_hw_support/port/esp32s2/regi2c_ctrl.h +++ b/components/esp_hw_support/port/esp32s2/regi2c_ctrl.h @@ -62,4 +62,4 @@ void i2c_rtc_init(void); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/esp_hw_support/port/esp32s2/rtc_time.c b/components/esp_hw_support/port/esp32s2/rtc_time.c index d59e9ea64e..789352e140 100644 --- a/components/esp_hw_support/port/esp32s2/rtc_time.c +++ b/components/esp_hw_support/port/esp32s2/rtc_time.c @@ -183,4 +183,4 @@ void rtc_clk_wait_for_slow_cycle(void) //This function may not by useful any mor while (GET_PERI_REG_MASK(RTC_CNTL_SLOW_CLK_CONF_REG, RTC_CNTL_SLOW_CLK_NEXT_EDGE)) { esp_rom_delay_us(1); } -} \ No newline at end of file +} diff --git a/components/esp_hw_support/port/esp32s3/CMakeLists.txt b/components/esp_hw_support/port/esp32s3/CMakeLists.txt index 1939674da4..f9cdd99191 100644 --- a/components/esp_hw_support/port/esp32s3/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32s3/CMakeLists.txt @@ -1,7 +1,7 @@ target_include_directories(${COMPONENT_LIB} PUBLIC .) target_include_directories(${COMPONENT_LIB} PUBLIC private_include) -set(srcs +set(srcs "rtc_clk.c" "rtc_clk_init.c" "rtc_init.c" diff --git a/components/esp_hw_support/port/esp32s3/private_include/regi2c_bbpll.h b/components/esp_hw_support/port/esp32s3/private_include/regi2c_bbpll.h index f9a3d29f57..23b4b86d00 100644 --- a/components/esp_hw_support/port/esp32s3/private_include/regi2c_bbpll.h +++ b/components/esp_hw_support/port/esp32s3/private_include/regi2c_bbpll.h @@ -181,4 +181,3 @@ #define I2C_BBPLL_ENT_ADC 10 #define I2C_BBPLL_ENT_ADC_MSB 7 #define I2C_BBPLL_ENT_ADC_LSB 6 - diff --git a/components/esp_hw_support/port/esp32s3/rtc_time.c b/components/esp_hw_support/port/esp32s3/rtc_time.c index 9b3e063d10..b529c19076 100644 --- a/components/esp_hw_support/port/esp32s3/rtc_time.c +++ b/components/esp_hw_support/port/esp32s3/rtc_time.c @@ -178,4 +178,3 @@ void rtc_clk_wait_for_slow_cycle(void) //This function may not by useful any mor esp_rom_delay_us(1); } } - diff --git a/components/esp_hw_support/test/component.mk b/components/esp_hw_support/test/component.mk index 6184303f65..2efee8e81c 100644 --- a/components/esp_hw_support/test/component.mk +++ b/components/esp_hw_support/test/component.mk @@ -1,5 +1,3 @@ COMPONENT_SRCDIRS := . COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive - - diff --git a/components/esp_ipc/CMakeLists.txt b/components/esp_ipc/CMakeLists.txt index 7679665204..ecfdaceda4 100644 --- a/components/esp_ipc/CMakeLists.txt +++ b/components/esp_ipc/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "ipc.c" - INCLUDE_DIRS "include") \ No newline at end of file + INCLUDE_DIRS "include") diff --git a/components/esp_ipc/component.mk b/components/esp_ipc/component.mk index 7decee1a04..ebd7a7d59b 100644 --- a/components/esp_ipc/component.mk +++ b/components/esp_ipc/component.mk @@ -1,3 +1,3 @@ # # Component Makefile -# \ No newline at end of file +# diff --git a/components/esp_ipc/ipc.c b/components/esp_ipc/ipc.c index a9a7ec5558..cdb5c0b1b7 100644 --- a/components/esp_ipc/ipc.c +++ b/components/esp_ipc/ipc.c @@ -143,4 +143,3 @@ esp_err_t esp_ipc_call_blocking(uint32_t cpu_id, esp_ipc_func_t func, void* arg) { return esp_ipc_call_and_wait(cpu_id, func, arg, IPC_WAIT_FOR_END); } - diff --git a/components/esp_ipc/test/CMakeLists.txt b/components/esp_ipc/test/CMakeLists.txt index 1a19ee3a32..37594e61be 100644 --- a/components/esp_ipc/test/CMakeLists.txt +++ b/components/esp_ipc/test/CMakeLists.txt @@ -3,4 +3,3 @@ if(IDF_TARGET STREQUAL "esp32") PRIV_INCLUDE_DIRS "." PRIV_REQUIRES cmock test_utils) endif() - diff --git a/components/esp_ipc/test/component.mk b/components/esp_ipc/test/component.mk index 53c8f3a5b2..ce464a212a 100644 --- a/components/esp_ipc/test/component.mk +++ b/components/esp_ipc/test/component.mk @@ -1 +1 @@ -COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive \ No newline at end of file +COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive diff --git a/components/esp_netif/component.mk b/components/esp_netif/component.mk index 8402e569d2..214def38cf 100644 --- a/components/esp_netif/component.mk +++ b/components/esp_netif/component.mk @@ -3,4 +3,4 @@ # COMPONENT_ADD_INCLUDEDIRS := include COMPONENT_PRIV_INCLUDEDIRS := private_include lwip -COMPONENT_SRCDIRS := . lwip loopback \ No newline at end of file +COMPONENT_SRCDIRS := . lwip loopback diff --git a/components/esp_netif/esp_netif_handlers.c b/components/esp_netif/esp_netif_handlers.c index e308d00c5e..4c3405b90a 100644 --- a/components/esp_netif/esp_netif_handlers.c +++ b/components/esp_netif/esp_netif_handlers.c @@ -103,4 +103,3 @@ void esp_netif_action_got_ip(void *esp_netif, esp_event_base_t base, int32_t eve IP2STR(&event->ip_info.netmask), IP2STR(&event->ip_info.gw)); } - diff --git a/components/esp_netif/include/esp_netif.h b/components/esp_netif/include/esp_netif.h index 5cb6e8029b..b8a61118bf 100644 --- a/components/esp_netif/include/esp_netif.h +++ b/components/esp_netif/include/esp_netif.h @@ -564,12 +564,12 @@ esp_err_t esp_netif_dhcps_stop(esp_netif_t *esp_netif); * * This function behaves differently if DHCP server or client is enabled * - * If DHCP client is enabled, main and backup DNS servers will be updated automatically - * from the DHCP lease if the relevant DHCP options are set. Fallback DNS Server is never updated from the DHCP lease + * If DHCP client is enabled, main and backup DNS servers will be updated automatically + * from the DHCP lease if the relevant DHCP options are set. Fallback DNS Server is never updated from the DHCP lease * and is designed to be set via this API. * If DHCP client is disabled, all DNS server types can be set via this API only. - * - * If DHCP server is enabled, the Main DNS Server setting is used by the DHCP server to provide a DNS Server option + * + * If DHCP server is enabled, the Main DNS Server setting is used by the DHCP server to provide a DNS Server option * to DHCP clients (Wi-Fi stations). * - The default Main DNS server is typically the IP of the Wi-Fi AP interface itself. * - This function can override it by setting server type ESP_NETIF_DNS_MAIN. @@ -722,36 +722,36 @@ uint32_t esp_ip4addr_aton(const char *addr); /** * @brief Gets media driver handle for this esp-netif instance - * + * * @param[in] esp_netif Handle to esp-netif instance - * + * * @return opaque pointer of related IO driver */ esp_netif_iodriver_handle esp_netif_get_io_driver(esp_netif_t *esp_netif); /** * @brief Searches over a list of created objects to find an instance with supplied if key - * + * * @param if_key Textual description of network interface - * + * * @return Handle to esp-netif instance */ esp_netif_t *esp_netif_get_handle_from_ifkey(const char *if_key); /** * @brief Returns configured flags for this interface - * + * * @param[in] esp_netif Handle to esp-netif instance - * - * @return Configuration flags + * + * @return Configuration flags */ esp_netif_flags_t esp_netif_get_flags(esp_netif_t *esp_netif); /** * @brief Returns configured interface key for this esp-netif instance - * + * * @param[in] esp_netif Handle to esp-netif instance - * + * * @return Textual description of related interface */ const char *esp_netif_get_ifkey(esp_netif_t *esp_netif); @@ -780,7 +780,7 @@ int esp_netif_get_route_prio(esp_netif_t *esp_netif); * @param[in] esp_netif Handle to esp-netif instance * * @param event_type (either get or lost IP) - * + * * @return specific event id which is configured to be raised if the interface lost or acquired IP address * -1 if supplied event_type is not known */ diff --git a/components/esp_netif/include/esp_netif_defaults.h b/components/esp_netif/include/esp_netif_defaults.h index f61d7294b8..7ef65260d4 100644 --- a/components/esp_netif/include/esp_netif_defaults.h +++ b/components/esp_netif/include/esp_netif_defaults.h @@ -134,7 +134,7 @@ extern "C" { .driver = NULL, \ .stack = ESP_NETIF_NETSTACK_DEFAULT_SLIP, \ } - + /** * @brief Default base config (esp-netif inherent) of WIFI STA diff --git a/components/esp_netif/include/esp_netif_ip_addr.h b/components/esp_netif/include/esp_netif_ip_addr.h index 92f374e1bc..809404c1d2 100644 --- a/components/esp_netif/include/esp_netif_ip_addr.h +++ b/components/esp_netif/include/esp_netif_ip_addr.h @@ -105,7 +105,7 @@ typedef struct _ip_addr { } u_addr; uint8_t type; } esp_ip_addr_t; - + typedef enum { ESP_IP6_ADDR_IS_UNKNOWN, ESP_IP6_ADDR_IS_GLOBAL, diff --git a/components/esp_netif/include/esp_netif_types.h b/components/esp_netif/include/esp_netif_types.h index 470839d193..044ca0d111 100644 --- a/components/esp_netif/include/esp_netif_types.h +++ b/components/esp_netif/include/esp_netif_types.h @@ -164,7 +164,7 @@ typedef struct esp_netif_inherent_config { const char * if_key; /*!< string identifier of the interface */ const char * if_desc; /*!< textual description of the interface */ int route_prio; /*!< numeric priority of this interface to become a default - routing if (if other netifs are up). + routing if (if other netifs are up). A higher value of route_prio indicates a higher priority */ } esp_netif_inherent_config_t; diff --git a/components/esp_netif/lwip/esp_netif_lwip.c b/components/esp_netif/lwip/esp_netif_lwip.c index 15674476d1..536bb597b8 100644 --- a/components/esp_netif/lwip/esp_netif_lwip.c +++ b/components/esp_netif/lwip/esp_netif_lwip.c @@ -295,7 +295,7 @@ esp_err_t esp_netif_init(void) return ESP_FAIL; } } - + if (!api_lock_sem) { if (ERR_OK != sys_sem_new(&api_lock_sem, 1)) { ESP_LOGE(TAG, "esp netif api lock sem init fail"); @@ -319,7 +319,7 @@ esp_err_t esp_netif_deinit(void) sys_sem_free(&api_lock_sem); */ return ESP_ERR_NOT_SUPPORTED; - + } return ESP_ERR_INVALID_STATE; } @@ -1772,7 +1772,7 @@ esp_err_t esp_netif_dhcps_option(esp_netif_t *esp_netif, esp_netif_dhcp_option_m esp_err_t esp_netif_dhcpc_option(esp_netif_t *esp_netif, esp_netif_dhcp_option_mode_t opt_op, esp_netif_dhcp_option_id_t opt_id, void *opt_val, uint32_t opt_len) -{ +{ if (esp_netif == NULL || esp_netif->lwip_netif == NULL) { return ESP_ERR_ESP_NETIF_IF_NOT_READY; } @@ -1787,9 +1787,9 @@ esp_err_t esp_netif_dhcpc_option(esp_netif_t *esp_netif, esp_netif_dhcp_option_m switch (opt_id) { case ESP_NETIF_IP_REQUEST_RETRY_TIME: if (opt_len == sizeof(dhcp->tries)) { - *(uint8_t *)opt_val = dhcp->tries; - } - break; + *(uint8_t *)opt_val = dhcp->tries; + } + break; default: return ESP_ERR_ESP_NETIF_INVALID_PARAMS; break; @@ -1807,10 +1807,10 @@ esp_err_t esp_netif_dhcpc_option(esp_netif_t *esp_netif, esp_netif_dhcp_option_m default: return ESP_ERR_ESP_NETIF_INVALID_PARAMS; break; - } + } } else { return ESP_ERR_ESP_NETIF_INVALID_PARAMS; - } + } return ESP_OK; } diff --git a/components/esp_netif/test/CMakeLists.txt b/components/esp_netif/test/CMakeLists.txt index 01b0f04330..3e433f8f27 100644 --- a/components/esp_netif/test/CMakeLists.txt +++ b/components/esp_netif/test/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRC_DIRS "." PRIV_INCLUDE_DIRS "../private_include" "." - PRIV_REQUIRES cmock test_utils esp_netif nvs_flash) \ No newline at end of file + PRIV_REQUIRES cmock test_utils esp_netif nvs_flash) diff --git a/components/esp_netif/test/component.mk b/components/esp_netif/test/component.mk index 22e49eddde..009d63d124 100644 --- a/components/esp_netif/test/component.mk +++ b/components/esp_netif/test/component.mk @@ -2,4 +2,4 @@ #Component Makefile # COMPONENT_PRIV_INCLUDEDIRS := ../private_include . -COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive \ No newline at end of file +COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive diff --git a/components/esp_pm/Kconfig b/components/esp_pm/Kconfig index a570eccf4f..13c0b5b119 100644 --- a/components/esp_pm/Kconfig +++ b/components/esp_pm/Kconfig @@ -61,4 +61,3 @@ menu "Power Management" endmenu # "Power Management" - diff --git a/components/esp_pm/include/esp_private/pm_impl.h b/components/esp_pm/include/esp_private/pm_impl.h index 122190f26b..a2e92a48a0 100644 --- a/components/esp_pm/include/esp_private/pm_impl.h +++ b/components/esp_pm/include/esp_private/pm_impl.h @@ -124,7 +124,7 @@ typedef bool (* skip_light_sleep_cb_t)(void); * * This function allows you to register a callback that gets the result * that if light sleep should be skipped by peripherals. - * @param cb function to get the result + * @param cb function to get the result * @return * - ESP_OK on success * - ESP_ERR_NO_MEM if no more callback slots are available @@ -132,11 +132,11 @@ typedef bool (* skip_light_sleep_cb_t)(void); esp_err_t esp_pm_register_skip_light_sleep_callback(skip_light_sleep_cb_t cb); /** - * @brief Unregisterperipherals skip light sleep callback + * @brief Unregisterperipherals skip light sleep callback * * This function allows you to unregister a callback which was previously * registered using esp_register_skip_light_sleep_callback. - * @param cb function to get the result + * @param cb function to get the result * @return * - ESP_OK on success * - ESP_ERR_INVALID_STATE if the given callback hasn't been registered before @@ -157,4 +157,4 @@ static inline pm_time_t IRAM_ATTR pm_get_time(void) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/esp_pm/include/esp_private/pm_trace.h b/components/esp_pm/include/esp_private/pm_trace.h index 7bc35c1598..e6cb7b9233 100644 --- a/components/esp_pm/include/esp_private/pm_trace.h +++ b/components/esp_pm/include/esp_private/pm_trace.h @@ -50,4 +50,4 @@ void esp_pm_trace_exit(esp_pm_trace_event_t event, int core_id); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/esp_pm/pm_impl.c b/components/esp_pm/pm_impl.c index e0f9be0f8a..85b51712d7 100644 --- a/components/esp_pm/pm_impl.c +++ b/components/esp_pm/pm_impl.c @@ -272,7 +272,7 @@ esp_err_t esp_pm_configure(const void* vconfig) portENTER_CRITICAL(&s_switch_lock); bool res = false; - res = rtc_clk_cpu_freq_mhz_to_config(max_freq_mhz, &s_cpu_freq_by_mode[PM_MODE_CPU_MAX]); + res = rtc_clk_cpu_freq_mhz_to_config(max_freq_mhz, &s_cpu_freq_by_mode[PM_MODE_CPU_MAX]); assert(res); res = rtc_clk_cpu_freq_mhz_to_config(apb_max_freq, &s_cpu_freq_by_mode[PM_MODE_APB_MAX]); assert(res); @@ -499,7 +499,7 @@ void IRAM_ATTR esp_pm_impl_isr_hook(void) int core_id = xPortGetCoreID(); ESP_PM_TRACE_ENTER(ISR_HOOK, core_id); /* Prevent higher level interrupts (than the one this function was called from) - * from happening in this section, since they will also call into esp_pm_impl_isr_hook. + * from happening in this section, since they will also call into esp_pm_impl_isr_hook. */ uint32_t state = portENTER_CRITICAL_NESTED(); #if portNUM_PROCESSORS == 2 diff --git a/components/esp_pm/pm_trace.c b/components/esp_pm/pm_trace.c index 75084a50c7..5cdb666d67 100644 --- a/components/esp_pm/pm_trace.c +++ b/components/esp_pm/pm_trace.c @@ -48,4 +48,4 @@ void IRAM_ATTR esp_pm_trace_enter(esp_pm_trace_event_t event, int core_id) void IRAM_ATTR esp_pm_trace_exit(esp_pm_trace_event_t event, int core_id) { REG_WRITE(GPIO_OUT_W1TC_REG, s_trace_io[2 * event + core_id]); -} \ No newline at end of file +} diff --git a/components/esp_pm/test/test_pm.c b/components/esp_pm/test/test_pm.c index 51a0ad4282..804fd88729 100644 --- a/components/esp_pm/test/test_pm.c +++ b/components/esp_pm/test/test_pm.c @@ -155,7 +155,7 @@ TEST_CASE("Automatic light occurs when tasks are suspended", "[pm]") #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3) // Fix failure on ESP32 when running alone; passes when the previous test is run before this one -TEST_CASE("Can wake up from automatic light sleep by GPIO", "[pm][ignore]") +TEST_CASE("Can wake up from automatic light sleep by GPIO", "[pm][ignore]") { #if CONFIG_IDF_TARGET_ESP32 assert(CONFIG_ESP32_ULP_COPROC_RESERVE_MEM >= 16 && "this test needs ESP32_ULP_COPROC_RESERVE_MEM option set in menuconfig"); diff --git a/components/esp_ringbuf/include/freertos/ringbuf.h b/components/esp_ringbuf/include/freertos/ringbuf.h index ef9c532291..9638c7db5a 100644 --- a/components/esp_ringbuf/include/freertos/ringbuf.h +++ b/components/esp_ringbuf/include/freertos/ringbuf.h @@ -521,4 +521,3 @@ void xRingbufferPrintInfo(RingbufHandle_t xRingbuffer); #endif #endif /* FREERTOS_RINGBUF_H */ - diff --git a/components/esp_ringbuf/linker.lf b/components/esp_ringbuf/linker.lf index 6250616e10..b23be0469d 100644 --- a/components/esp_ringbuf/linker.lf +++ b/components/esp_ringbuf/linker.lf @@ -1,4 +1,4 @@ [mapping:esp_ringbuf] archive: libesp_ringbuf.a entries: - * (noflash_text) \ No newline at end of file + * (noflash_text) diff --git a/components/esp_ringbuf/ringbuf.c b/components/esp_ringbuf/ringbuf.c index 33a1a5de88..92e15e562c 100644 --- a/components/esp_ringbuf/ringbuf.c +++ b/components/esp_ringbuf/ringbuf.c @@ -1402,4 +1402,3 @@ void xRingbufferPrintInfo(RingbufHandle_t xRingbuffer) pxRingbuffer->pucWrite - pxRingbuffer->pucHead, pxRingbuffer->pucAcquire - pxRingbuffer->pucHead); } - diff --git a/components/esp_rom/CMakeLists.txt b/components/esp_rom/CMakeLists.txt index 9c4c1432b8..d470f82c82 100644 --- a/components/esp_rom/CMakeLists.txt +++ b/components/esp_rom/CMakeLists.txt @@ -1,8 +1,8 @@ idf_build_get_property(target IDF_TARGET) -idf_component_register(SRCS "patches/esp_rom_crc.c" - "patches/esp_rom_sys.c" - "patches/esp_rom_uart.c" +idf_component_register(SRCS "patches/esp_rom_crc.c" + "patches/esp_rom_sys.c" + "patches/esp_rom_uart.c" INCLUDE_DIRS include PRIV_INCLUDE_DIRS "${target}" PRIV_REQUIRES soc hal) diff --git a/components/esp_rom/esp32/ld/esp32.rom.ld b/components/esp_rom/esp32/ld/esp32.rom.ld index 6487367d5a..e4eb517ef3 100644 --- a/components/esp_rom/esp32/ld/esp32.rom.ld +++ b/components/esp_rom/esp32/ld/esp32.rom.ld @@ -1603,4 +1603,3 @@ PROVIDE ( nvds_env = 0x3ffb8364 ); PROVIDE ( nvds_magic_number = 0x3ff9912a ); PROVIDE ( TASK_DESC_LLD = 0x3ff98b58 ); /* Above are static data, but can be used, not generated by script >>>>> btdm data */ - diff --git a/components/esp_rom/esp32/ld/esp32.rom.redefined.ld b/components/esp_rom/esp32/ld/esp32.rom.redefined.ld index a2383b3117..a7f62b8676 100644 --- a/components/esp_rom/esp32/ld/esp32.rom.redefined.ld +++ b/components/esp_rom/esp32/ld/esp32.rom.redefined.ld @@ -1,4 +1,4 @@ -/* +/* ROM Functions defined in this file are not used in ESP-IDF as is, and different definitions for functions with the same names are provided. This file is not used when linking ESP-IDF and is intended for reference only @@ -36,4 +36,3 @@ PROVIDE ( sha1_vector = 0x40060b64 ); PROVIDE ( sha256_prf = 0x40060d70 ); PROVIDE ( sha256_vector = 0x40060e08 ); PROVIDE ( uart_tx_wait_idle = 0x40009278 ); - diff --git a/components/esp_rom/esp32/ld/esp32.rom.spiflash.ld b/components/esp_rom/esp32/ld/esp32.rom.spiflash.ld index 56497f1407..63aee6391f 100644 --- a/components/esp_rom/esp32/ld/esp32.rom.spiflash.ld +++ b/components/esp_rom/esp32/ld/esp32.rom.spiflash.ld @@ -18,7 +18,7 @@ PROVIDE ( esp_rom_spiflash_write = 0x40062d50 ); PROVIDE ( esp_rom_spiflash_enable_write = 0x40062320 ); PROVIDE ( esp_rom_spiflash_write_status = 0x400622f0 ); -/* always using patched versions of these functions +/* always using patched versions of these functions PROVIDE ( esp_rom_spiflash_wait_idle = 0x400622c0 ); PROVIDE ( esp_rom_spiflash_unlock = 0x400????? ); */ diff --git a/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld b/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld index 9819556fc2..42326b6b1b 100644 --- a/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld +++ b/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld @@ -9,7 +9,7 @@ Hence the following entries are provided only for reference and commented out. - */ + */ /* <--- the following lines are commented out diff --git a/components/esp_rom/esp32s2/ld/esp32s2.rom.ld b/components/esp_rom/esp32s2/ld/esp32s2.rom.ld index 445d033bfa..8781a9c8c3 100644 --- a/components/esp_rom/esp32s2/ld/esp32s2.rom.ld +++ b/components/esp_rom/esp32s2/ld/esp32s2.rom.ld @@ -1,7 +1,7 @@ /** * ESP32-S2 ROM address table (except symbols from libgcc and libc) * Generated for ROM with MD5sum: 0a2c7ec5109c17884606d23b47045796 - * + * * These are all weak symbols that could be overwritten in ESP-IDF. */ diff --git a/components/esp_rom/include/esp32/rom/miniz.h b/components/esp_rom/include/esp32/rom/miniz.h index 773a0d0570..7661f80446 100644 --- a/components/esp_rom/include/esp32/rom/miniz.h +++ b/components/esp_rom/include/esp32/rom/miniz.h @@ -683,7 +683,7 @@ size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void // Compresses an image to a compressed PNG file in memory. // On entry: -// pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. +// pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. // The image pitch in bytes per scanline will be w*num_chans. The leftmost pixel on the top scanline is stored first in memory. // level may range from [0,10], use MZ_NO_COMPRESSION, MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc. or a decent default is MZ_DEFAULT_LEVEL // If flip is true, the image will be flipped on the Y axis (useful for OpenGL apps). @@ -789,4 +789,3 @@ mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int #endif #endif // MINIZ_HEADER_INCLUDED - diff --git a/components/esp_rom/include/esp32/rom/rtc.h b/components/esp_rom/include/esp32/rom/rtc.h index dcb46df8e4..fa00b71bb9 100644 --- a/components/esp_rom/include/esp32/rom/rtc.h +++ b/components/esp_rom/include/esp32/rom/rtc.h @@ -217,4 +217,3 @@ void software_reset_cpu(int cpu_no); #endif #endif /* _ROM_RTC_H_ */ - diff --git a/components/esp_rom/include/esp32/rom/secure_boot.h b/components/esp_rom/include/esp32/rom/secure_boot.h index 259e7bab78..3e17941be1 100644 --- a/components/esp_rom/include/esp32/rom/secure_boot.h +++ b/components/esp_rom/include/esp32/rom/secure_boot.h @@ -115,4 +115,4 @@ bool ets_use_secure_boot_v2(void); } #endif -#endif /* _ROM_SECURE_BOOT_H_ */ \ No newline at end of file +#endif /* _ROM_SECURE_BOOT_H_ */ diff --git a/components/esp_rom/include/esp32/rom/tjpgd.h b/components/esp_rom/include/esp32/rom/tjpgd.h index 31fbc97cce..3c110a1302 100644 --- a/components/esp_rom/include/esp32/rom/tjpgd.h +++ b/components/esp_rom/include/esp32/rom/tjpgd.h @@ -41,7 +41,7 @@ typedef unsigned long DWORD; /* Error code */ typedef enum { JDR_OK = 0, /* 0: Succeeded */ - JDR_INTR, /* 1: Interrupted by output function */ + JDR_INTR, /* 1: Interrupted by output function */ JDR_INP, /* 2: Device error or wrong termination of input stream */ JDR_MEM1, /* 3: Insufficient memory pool for the image */ JDR_MEM2, /* 4: Insufficient stream input buffer */ diff --git a/components/esp_rom/include/esp32s2/rom/digital_signature.h b/components/esp_rom/include/esp32s2/rom/digital_signature.h index 1f8a943d49..9f23a5d6b8 100644 --- a/components/esp_rom/include/esp32s2/rom/digital_signature.h +++ b/components/esp_rom/include/esp32s2/rom/digital_signature.h @@ -145,4 +145,3 @@ ets_ds_result_t ets_ds_encrypt_params(ets_ds_data_t *data, const void *iv, const #ifdef __cplusplus } #endif - diff --git a/components/esp_rom/include/esp32s2/rom/libc_stubs.h b/components/esp_rom/include/esp32s2/rom/libc_stubs.h index 0c2a4b83ae..5e514e1803 100644 --- a/components/esp_rom/include/esp32s2/rom/libc_stubs.h +++ b/components/esp_rom/include/esp32s2/rom/libc_stubs.h @@ -25,7 +25,7 @@ extern "C" { #endif -/* +/* ESP32-S2 ROM code contains implementations of some of C library functions. Whenever a function in ROM needs to use a syscall, it calls a pointer to the corresponding syscall implementation defined in the following struct. @@ -39,7 +39,7 @@ application must allocate syscall table structure for each CPU being used, and p to actual implementations of corresponding syscalls. */ -struct syscall_stub_table +struct syscall_stub_table { struct _reent* (*__getreent)(void); void* (*_malloc_r)(struct _reent *r, size_t); diff --git a/components/esp_rom/include/esp32s2/rom/miniz.h b/components/esp_rom/include/esp32s2/rom/miniz.h index ed79beb2cb..b9b9202aaa 100644 --- a/components/esp_rom/include/esp32s2/rom/miniz.h +++ b/components/esp_rom/include/esp32s2/rom/miniz.h @@ -671,7 +671,7 @@ size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void // Compresses an image to a compressed PNG file in memory. // On entry: -// pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. +// pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. // The image pitch in bytes per scanline will be w*num_chans. The leftmost pixel on the top scanline is stored first in memory. // level may range from [0,10], use MZ_NO_COMPRESSION, MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc. or a decent default is MZ_DEFAULT_LEVEL // If flip is true, the image will be flipped on the Y axis (useful for OpenGL apps). @@ -774,4 +774,3 @@ mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int #endif #endif // MINIZ_HEADER_INCLUDED - diff --git a/components/esp_rom/include/esp32s2/rom/rtc.h b/components/esp_rom/include/esp32s2/rom/rtc.h index c91916fa35..535dc64a9a 100644 --- a/components/esp_rom/include/esp32s2/rom/rtc.h +++ b/components/esp_rom/include/esp32s2/rom/rtc.h @@ -216,4 +216,3 @@ void software_reset_cpu(int cpu_no); #endif #endif /* _ROM_RTC_H_ */ - diff --git a/components/esp_rom/include/esp32s2/rom/usb/usb_descriptor.h b/components/esp_rom/include/esp32s2/rom/usb/usb_descriptor.h index 942a1968cc..1b20ef80f0 100644 --- a/components/esp_rom/include/esp32s2/rom/usb/usb_descriptor.h +++ b/components/esp_rom/include/esp32s2/rom/usb/usb_descriptor.h @@ -31,4 +31,4 @@ bool usb_get_descriptor(uint16_t type_index, uint16_t lang_id, #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/esp_rom/include/esp32s2/rom/usb/usb_device.h b/components/esp_rom/include/esp32s2/rom/usb/usb_device.h index 51801b5d57..5564d41e92 100644 --- a/components/esp_rom/include/esp32s2/rom/usb/usb_device.h +++ b/components/esp_rom/include/esp32s2/rom/usb/usb_device.h @@ -399,4 +399,3 @@ int usb_dev_get_configuration(void); #ifdef __cplusplus } #endif - diff --git a/components/esp_rom/include/esp_rom_sys.h b/components/esp_rom/include/esp_rom_sys.h index 68a538b1b7..ef85d35abf 100644 --- a/components/esp_rom/include/esp_rom_sys.h +++ b/components/esp_rom/include/esp_rom_sys.h @@ -40,7 +40,7 @@ void esp_rom_delay_us(uint32_t us); /** * @brief esp_rom_printf can print message to different channels simultaneously. * This function can help install the low level putc function for esp_rom_printf. - * + * * @param channel Channel number (startting from 1) * @param putc Function pointer to the putc implementation. Set NULL can disconnect esp_rom_printf with putc. */ diff --git a/components/esp_rom/include/esp_rom_uart.h b/components/esp_rom/include/esp_rom_uart.h index a944fc6b1f..a07740c147 100644 --- a/components/esp_rom/include/esp_rom_uart.h +++ b/components/esp_rom/include/esp_rom_uart.h @@ -64,7 +64,7 @@ int esp_rom_uart_tx_one_char(uint8_t c); /** * @brief Transmit one character to the console channel. * @note This function is a wrapper over esp_rom_uart_tx_one_char, it can help handle line ending issue by replacing '\n' with '\r\n'. - * + * * @param c Character to send */ void esp_rom_uart_putc(char c); diff --git a/components/esp_rom/test/test_miniz.c b/components/esp_rom/test/test_miniz.c index 1ba742b331..13d30a978a 100644 --- a/components/esp_rom/test/test_miniz.c +++ b/components/esp_rom/test/test_miniz.c @@ -102,4 +102,4 @@ TEST_CASE("Test miniz compression/decompression", "[rom][miniz]") } #endif //#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32) -#endif // CONFIG_SPIRAM \ No newline at end of file +#endif // CONFIG_SPIRAM diff --git a/components/esp_serial_slave_link/CMakeLists.txt b/components/esp_serial_slave_link/CMakeLists.txt index 90b87da938..e9cb0fed08 100644 --- a/components/esp_serial_slave_link/CMakeLists.txt +++ b/components/esp_serial_slave_link/CMakeLists.txt @@ -7,4 +7,3 @@ idf_component_register(SRCS "essl.c" PRIV_INCLUDE_DIRS "." "include/esp_serial_slave_link" ) - diff --git a/components/esp_serial_slave_link/component.mk b/components/esp_serial_slave_link/component.mk index a006c287d3..23923bbdf9 100644 --- a/components/esp_serial_slave_link/component.mk +++ b/components/esp_serial_slave_link/component.mk @@ -4,4 +4,3 @@ COMPONENT_ADD_INCLUDEDIRS := include COMPONENT_PRIV_INCLUDEDIRS := . include/esp_serial_slave_link - diff --git a/components/esp_serial_slave_link/essl.c b/components/esp_serial_slave_link/essl.c index 020b65270c..7a91bca6c8 100644 --- a/components/esp_serial_slave_link/essl.c +++ b/components/esp_serial_slave_link/essl.c @@ -241,4 +241,3 @@ esp_err_t essl_send_slave_intr(essl_handle_t handle, uint32_t intr_mask, uint32_ { CHECK_EXECUTE_CMD(handle, send_slave_intr, intr_mask, wait_ms); } - diff --git a/components/esp_serial_slave_link/include/esp_serial_slave_link/essl.h b/components/esp_serial_slave_link/include/esp_serial_slave_link/essl.h index 100e86a163..82e91778df 100644 --- a/components/esp_serial_slave_link/include/esp_serial_slave_link/essl.h +++ b/components/esp_serial_slave_link/include/esp_serial_slave_link/essl.h @@ -210,5 +210,3 @@ esp_err_t essl_get_intr_ena(essl_handle_t handle, uint32_t *ena_mask_o, uint32_t * - One of the error codes from SDMMC host controller */ esp_err_t essl_send_slave_intr(essl_handle_t handle, uint32_t intr_mask, uint32_t wait_ms); - - diff --git a/components/esp_serial_slave_link/include/esp_serial_slave_link/essl_spi.h b/components/esp_serial_slave_link/include/esp_serial_slave_link/essl_spi.h index 179fa55525..b788910095 100644 --- a/components/esp_serial_slave_link/include/esp_serial_slave_link/essl_spi.h +++ b/components/esp_serial_slave_link/include/esp_serial_slave_link/essl_spi.h @@ -162,4 +162,4 @@ esp_err_t essl_spi_wrdma_done(spi_device_handle_t spi, uint32_t flags); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/esp_serial_slave_link/include/essl_spi/esp32s2_defs.h b/components/esp_serial_slave_link/include/essl_spi/esp32s2_defs.h index d2856fd15b..49ba82ddf0 100644 --- a/components/esp_serial_slave_link/include/essl_spi/esp32s2_defs.h +++ b/components/esp_serial_slave_link/include/essl_spi/esp32s2_defs.h @@ -35,4 +35,4 @@ #define CMD_HD_INT2_REG 0x0A #define CMD_HD_EX_QPI_REG 0xDD -#define SPI_SLAVE_HD_BUFFER_SIZE 72 \ No newline at end of file +#define SPI_SLAVE_HD_BUFFER_SIZE 72 diff --git a/components/esp_serial_slave_link/include/essl_spi/esp32s3_defs.h b/components/esp_serial_slave_link/include/essl_spi/esp32s3_defs.h index 1de97d642b..3dfd4a14b7 100644 --- a/components/esp_serial_slave_link/include/essl_spi/esp32s3_defs.h +++ b/components/esp_serial_slave_link/include/essl_spi/esp32s3_defs.h @@ -35,4 +35,4 @@ #define CMD_HD_INT2_REG 0x0A #define CMD_HD_EX_QPI_REG 0xDD -#define SPI_SLAVE_HD_BUFFER_SIZE 64 \ No newline at end of file +#define SPI_SLAVE_HD_BUFFER_SIZE 64 diff --git a/components/esp_system/CMakeLists.txt b/components/esp_system/CMakeLists.txt index 730255e113..472cdd6cfe 100644 --- a/components/esp_system/CMakeLists.txt +++ b/components/esp_system/CMakeLists.txt @@ -15,8 +15,8 @@ idf_component_register(SRCS "intr_alloc.c" add_subdirectory(port) -# After system initialization, `start_app` (and its other cores variant) is called. -# This is provided by the user or from another component. Since we can't establish +# After system initialization, `start_app` (and its other cores variant) is called. +# This is provided by the user or from another component. Since we can't establish # dependency on what we don't know, force linker to not drop the symbol regardless # of link line order. target_link_libraries(${COMPONENT_LIB} INTERFACE "-u start_app") @@ -34,4 +34,4 @@ set_source_files_properties( if(NOT CMAKE_BUILD_EARLY_EXPANSION) set_source_files_properties("${CMAKE_CURRENT_LIST_DIR}/sleep_modes.c" PROPERTIES COMPILE_FLAGS "-fno-jump-tables -fno-tree-switch-conversion") -endif() \ No newline at end of file +endif() diff --git a/components/esp_system/component.mk b/components/esp_system/component.mk index 0d51d6f577..caa3400967 100644 --- a/components/esp_system/component.mk +++ b/components/esp_system/component.mk @@ -8,4 +8,4 @@ COMPONENT_ADD_LDFRAGMENTS += linker.lf -include $(COMPONENT_PATH)/port/$(SOC_NAME)/component.mk # disable stack protection in files which are involved in initialization of that feature -startup.o: CFLAGS := $(filter-out -fstack-protector%, $(CFLAGS)) \ No newline at end of file +startup.o: CFLAGS := $(filter-out -fstack-protector%, $(CFLAGS)) diff --git a/components/esp_system/include/esp_intr_alloc.h b/components/esp_system/include/esp_intr_alloc.h index ace95cbb5a..6c9963c176 100644 --- a/components/esp_system/include/esp_intr_alloc.h +++ b/components/esp_system/include/esp_intr_alloc.h @@ -297,13 +297,13 @@ void esp_intr_noniram_enable(void); /** * @brief enable the interrupt source based on its number * @param inum interrupt number from 0 to 31 - */ + */ void esp_intr_enable_source(int inum); /** * @brief disable the interrupt source based on its number * @param inum interrupt number from 0 to 31 - */ + */ void esp_intr_disable_source(int inum); /**@}*/ diff --git a/components/esp_system/include/esp_private/startup_internal.h b/components/esp_system/include/esp_private/startup_internal.h index fc91b0fa85..42b901cbf4 100644 --- a/components/esp_system/include/esp_private/startup_internal.h +++ b/components/esp_system/include/esp_private/startup_internal.h @@ -52,7 +52,7 @@ typedef struct { /* * Declare an component initialization function that will execute on the specified cores (ex. if BIT0 == 1, will execute * on CORE0, CORE1 if BIT1 and so on). - * + * * @note Initialization functions should be placed in a compilation unit where at least one other * symbol is referenced 'meaningfully' in another compilation unit, otherwise this gets discarded during linking. (By * 'meaningfully' we mean the reference should not itself get optimized out by the compiler/discarded by the linker). @@ -61,14 +61,13 @@ typedef struct { static void __attribute__((used)) __VA_ARGS__ __esp_system_init_fn_##f(void); \ static __attribute__((used)) esp_system_init_fn_t _SECTION_ATTR_IMPL(".esp_system_init_fn", f) \ esp_system_init_fn_##f = { .fn = ( __esp_system_init_fn_##f), .cores = (c) }; \ -static __attribute__((used)) __VA_ARGS__ void __esp_system_init_fn_##f(void) // [refactor-todo] this can be made public API if we allow components to declare init functions, +static __attribute__((used)) __VA_ARGS__ void __esp_system_init_fn_##f(void) // [refactor-todo] this can be made public API if we allow components to declare init functions, // instead of calling them explicitly -extern uint64_t g_startup_time; // Startup time that serves as the point of origin for system time. Should be set by the entry +extern uint64_t g_startup_time; // Startup time that serves as the point of origin for system time. Should be set by the entry // function in the port layer. May be 0 as well if this is not backed by a persistent counter, in which case // startup time = system time = 0 at the point the entry function sets this variable. #ifdef __cplusplus } #endif - diff --git a/components/esp_system/include/esp_sleep.h b/components/esp_system/include/esp_sleep.h index 8e5e4b39db..ed390d4050 100644 --- a/components/esp_system/include/esp_sleep.h +++ b/components/esp_system/include/esp_sleep.h @@ -93,9 +93,9 @@ esp_err_t esp_sleep_disable_wakeup_source(esp_sleep_source_t source); /** * @brief Enable wakeup by ULP coprocessor - * @note In revisions 0 and 1 of the ESP32, ULP wakeup source + * @note In revisions 0 and 1 of the ESP32, ULP wakeup source * cannot be used when RTC_PERIPH power domain is forced - * to be powered on (ESP_PD_OPTION_ON) or when + * to be powered on (ESP_PD_OPTION_ON) or when * ext0 wakeup source is used. * @return * - ESP_OK on success diff --git a/components/esp_system/include/esp_system.h b/components/esp_system/include/esp_system.h index 9be72c3e07..c054ac3c96 100644 --- a/components/esp_system/include/esp_system.h +++ b/components/esp_system/include/esp_system.h @@ -250,7 +250,7 @@ esp_err_t esp_derive_local_mac(uint8_t* local_mac, const uint8_t* universal_mac) /** * @brief Trigger a software abort - * + * * @param details Details that will be displayed during panic handling. */ void __attribute__((noreturn)) esp_system_abort(const char* details); diff --git a/components/esp_system/intr_alloc.c b/components/esp_system/intr_alloc.c index 3fb32d84ef..232a1f1100 100644 --- a/components/esp_system/intr_alloc.c +++ b/components/esp_system/intr_alloc.c @@ -809,7 +809,7 @@ void IRAM_ATTR ets_isr_mask(unsigned int mask) { interrupt_controller_hal_disable_interrupts(mask); } -void esp_intr_enable_source(int inum) +void esp_intr_enable_source(int inum) { interrupt_controller_hal_enable_interrupts(1 << inum); } @@ -817,4 +817,4 @@ void esp_intr_enable_source(int inum) void esp_intr_disable_source(int inum) { interrupt_controller_hal_disable_interrupts(1 << inum); -} \ No newline at end of file +} diff --git a/components/esp_system/port/esp32/clk.c b/components/esp_system/port/esp32/clk.c index 7f1c769266..853fa41493 100644 --- a/components/esp_system/port/esp32/clk.c +++ b/components/esp_system/port/esp32/clk.c @@ -314,4 +314,4 @@ __attribute__((weak)) void esp_perip_clk_init(void) void rtc_clk_select_rtc_slow_clk(void) { select_rtc_slow_clk(RTC_SLOW_FREQ_32K_XTAL); -} \ No newline at end of file +} diff --git a/components/esp_system/port/esp32/dport_panic_highint_hdl.S b/components/esp_system/port/esp32/dport_panic_highint_hdl.S index e554a42d43..35e7508b05 100644 --- a/components/esp_system/port/esp32/dport_panic_highint_hdl.S +++ b/components/esp_system/port/esp32/dport_panic_highint_hdl.S @@ -487,7 +487,3 @@ xt_highint4: .global ld_include_panic_highint_hdl ld_include_panic_highint_hdl: - - - - diff --git a/components/esp_system/port/esp32/intr.c b/components/esp_system/port/esp32/intr.c index 59ca2756ec..4d0dd0a799 100644 --- a/components/esp_system/port/esp32/intr.c +++ b/components/esp_system/port/esp32/intr.c @@ -11,5 +11,3 @@ // 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. - - diff --git a/components/esp_system/port/esp32/reset_reason.c b/components/esp_system/port/esp32/reset_reason.c index a0667b6c19..040422f001 100644 --- a/components/esp_system/port/esp32/reset_reason.c +++ b/components/esp_system/port/esp32/reset_reason.c @@ -123,4 +123,3 @@ static void esp_reset_reason_clear_hint(void) { REG_WRITE(RTC_RESET_CAUSE_REG, 0); } - diff --git a/components/esp_system/port/esp32s2/clk.c b/components/esp_system/port/esp32s2/clk.c index 8ce2e4dd9e..9ded07ebc1 100644 --- a/components/esp_system/port/esp32s2/clk.c +++ b/components/esp_system/port/esp32s2/clk.c @@ -315,4 +315,4 @@ __attribute__((weak)) void esp_perip_clk_init(void) /* Enable RNG clock. */ periph_module_enable(PERIPH_RNG_MODULE); -} \ No newline at end of file +} diff --git a/components/esp_system/port/esp32s2/reset_reason.c b/components/esp_system/port/esp32s2/reset_reason.c index 32ac171a9d..cb443219b0 100644 --- a/components/esp_system/port/esp32s2/reset_reason.c +++ b/components/esp_system/port/esp32s2/reset_reason.c @@ -117,4 +117,3 @@ static void esp_reset_reason_clear_hint(void) { REG_WRITE(RTC_RESET_CAUSE_REG, 0); } - diff --git a/components/esp_system/port/esp32s3/clk.c b/components/esp_system/port/esp32s3/clk.c index 9bf1d1e5f5..0d486b05d6 100644 --- a/components/esp_system/port/esp32s3/clk.c +++ b/components/esp_system/port/esp32s3/clk.c @@ -311,4 +311,4 @@ __attribute__((weak)) void esp_perip_clk_init(void) /* Enable RNG clock. */ periph_module_enable(PERIPH_RNG_MODULE); -} \ No newline at end of file +} diff --git a/components/esp_system/port/include/port/panic_funcs.h b/components/esp_system/port/include/port/panic_funcs.h index 6eafc70c40..3c681fec95 100644 --- a/components/esp_system/port/include/port/panic_funcs.h +++ b/components/esp_system/port/include/port/panic_funcs.h @@ -14,4 +14,4 @@ #pragma once -void __attribute__((noreturn)) panic_restart(void); \ No newline at end of file +void __attribute__((noreturn)) panic_restart(void); diff --git a/components/esp_system/port/panic_handler_asm.S b/components/esp_system/port/panic_handler_asm.S index cb6efe8b5a..b0a5754271 100644 --- a/components/esp_system/port/panic_handler_asm.S +++ b/components/esp_system/port/panic_handler_asm.S @@ -61,4 +61,4 @@ _xt_panic: mov a6,sp call4 panicHandler - ret \ No newline at end of file + ret diff --git a/components/esp_system/sdkconfig.rename b/components/esp_system/sdkconfig.rename index a30538f2ee..92bec97110 100644 --- a/components/esp_system/sdkconfig.rename +++ b/components/esp_system/sdkconfig.rename @@ -11,4 +11,4 @@ CONFIG_ESP32S2_PANIC_PRINT_REBOOT CONFIG_ESP_SYSTEM_PANIC_ CONFIG_ESP32S2_PANIC_SILENT_REBOOT CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT CONFIG_ESP32S2_PANIC_GDBSTUB CONFIG_ESP_SYSTEM_PANIC_GDBSTUB -CONFIG_ESP32_RTC_XTAL_BOOTSTRAP_CYCLES CONFIG_ESP_SYSTEM_RTC_EXT_XTAL_BOOTSTRAP_CYCLES \ No newline at end of file +CONFIG_ESP32_RTC_XTAL_BOOTSTRAP_CYCLES CONFIG_ESP_SYSTEM_RTC_EXT_XTAL_BOOTSTRAP_CYCLES diff --git a/components/esp_system/sleep_modes.c b/components/esp_system/sleep_modes.c index f332a2a28d..9882bdcbbc 100644 --- a/components/esp_system/sleep_modes.c +++ b/components/esp_system/sleep_modes.c @@ -886,4 +886,3 @@ void esp_deep_sleep_disable_rom_logging(void) { esp_rom_disable_logging(); } - diff --git a/components/esp_system/startup.c b/components/esp_system/startup.c index 405de15365..0f16477400 100644 --- a/components/esp_system/startup.c +++ b/components/esp_system/startup.c @@ -369,7 +369,7 @@ IRAM_ATTR ESP_SYSTEM_INIT_FN(init_components0, BIT(0)) { esp_timer_init(); -#if defined(CONFIG_PM_ENABLE) +#if defined(CONFIG_PM_ENABLE) esp_pm_impl_init(); #endif @@ -395,4 +395,3 @@ IRAM_ATTR ESP_SYSTEM_INIT_FN(init_components0, BIT(0)) _Unwind_SetEnableExceptionFdeSorting(0); #endif // CONFIG_COMPILER_CXX_EXCEPTIONS } - diff --git a/components/esp_system/system_time.c b/components/esp_system/system_time.c index 9c1f76a855..a53087ef26 100644 --- a/components/esp_system/system_time.c +++ b/components/esp_system/system_time.c @@ -43,4 +43,4 @@ int64_t IRAM_ATTR __attribute__((weak)) esp_system_get_time(void) uint32_t IRAM_ATTR __attribute__((weak)) esp_system_get_time_resolution(void) { return 1000000000L / rtc_clk_slow_freq_get_hz(); -} \ No newline at end of file +} diff --git a/components/esp_system/test/CMakeLists.txt b/components/esp_system/test/CMakeLists.txt index aff56d67ca..3229228ad3 100644 --- a/components/esp_system/test/CMakeLists.txt +++ b/components/esp_system/test/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRC_DIRS . PRIV_INCLUDE_DIRS . - PRIV_REQUIRES unity test_utils) \ No newline at end of file + PRIV_REQUIRES unity test_utils) diff --git a/components/esp_system/test/test_async_memcpy.c b/components/esp_system/test/test_async_memcpy.c index f3776456d5..6b250e16cd 100644 --- a/components/esp_system/test/test_async_memcpy.c +++ b/components/esp_system/test/test_async_memcpy.c @@ -177,4 +177,4 @@ TEST_CASE("memory copy by DMA with callback", "[async mcp]") vSemaphoreDelete(sem); } -#endif //SOC_CP_DMA_SUPPORTED || SOC_GDMA_SUPPORTED \ No newline at end of file +#endif //SOC_CP_DMA_SUPPORTED || SOC_GDMA_SUPPORTED diff --git a/components/esp_system/test/test_intr_alloc.c b/components/esp_system/test/test_intr_alloc.c index 1e7590902b..67bb6b039f 100644 --- a/components/esp_system/test/test_intr_alloc.c +++ b/components/esp_system/test/test_intr_alloc.c @@ -267,7 +267,7 @@ TEST_CASE("allocate 2 handlers for a same source and remove the later one","[int { intr_alloc_test_ctx_t ctx = {false, false, false, false }; intr_handle_t handle1, handle2; - + #ifdef CONFIG_IDF_TARGET_ESP32 //enable HSPI(spi2) periph_module_enable(PERIPH_HSPI_MODULE); @@ -306,7 +306,7 @@ TEST_CASE("allocate 2 handlers for a same source and remove the later one","[int r=esp_intr_free(handle2); printf("trigger second time.\n"); - + #ifdef CONFIG_IDF_TARGET_ESP32 SPI2.slave.trans_done = 1; #else @@ -356,4 +356,4 @@ TEST_CASE("alloc and free isr handle on different core", "[intr_alloc]") } #endif -#endif // #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3) \ No newline at end of file +#endif // #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3) diff --git a/components/esp_timer/Makefile.projbuild b/components/esp_timer/Makefile.projbuild index 2ac174b9cd..aa4be208c4 100644 --- a/components/esp_timer/Makefile.projbuild +++ b/components/esp_timer/Makefile.projbuild @@ -3,4 +3,4 @@ ifdef CONFIG_ESP_TIMER_IMPL_FRC2 ifneq ("$(filter esp_timer,$(TEST_COMPONENTS_LIST))","") CPPFLAGS += -DESP_TIMER_DYNAMIC_OVERFLOW_VAL endif -endif \ No newline at end of file +endif diff --git a/components/esp_timer/include/esp_timer.h b/components/esp_timer/include/esp_timer.h index 79766d615f..a1c63d1a45 100644 --- a/components/esp_timer/include/esp_timer.h +++ b/components/esp_timer/include/esp_timer.h @@ -229,4 +229,3 @@ esp_err_t esp_timer_dump(FILE* stream); #ifdef __cplusplus } #endif - diff --git a/components/esp_timer/src/esp_timer.c b/components/esp_timer/src/esp_timer.c index e2d03f434d..18802197ea 100644 --- a/components/esp_timer/src/esp_timer.c +++ b/components/esp_timer/src/esp_timer.c @@ -507,4 +507,4 @@ uint32_t IRAM_ATTR esp_system_get_time_resolution(void) { return 1000; } -#endif \ No newline at end of file +#endif diff --git a/components/esp_timer/src/ets_timer_legacy.c b/components/esp_timer/src/ets_timer_legacy.c index cec5525337..15e6617f81 100644 --- a/components/esp_timer/src/ets_timer_legacy.c +++ b/components/esp_timer/src/ets_timer_legacy.c @@ -127,4 +127,3 @@ void os_timer_disarm(ETSTimer *ptimer) __attribute__((alias("ets_timer_disarm")) void os_timer_arm_us(ETSTimer *ptimer,uint32_t u_seconds,bool repeat_flag) __attribute__((alias("ets_timer_arm_us"))); void os_timer_arm(ETSTimer *ptimer,uint32_t milliseconds,bool repeat_flag) __attribute__((alias("ets_timer_arm"))); void os_timer_done(ETSTimer *ptimer) __attribute__((alias("ets_timer_done"))); - diff --git a/components/esp_timer/test/component.mk b/components/esp_timer/test/component.mk index 6c49a0ab23..beb05c3eac 100644 --- a/components/esp_timer/test/component.mk +++ b/components/esp_timer/test/component.mk @@ -3,4 +3,4 @@ # COMPONENT_SRCDIRS := . -COMPONENT_PRIV_INCLUDEDIRS := ../private_include \ No newline at end of file +COMPONENT_PRIV_INCLUDEDIRS := ../private_include diff --git a/components/esp_websocket_client/include/esp_websocket_client.h b/components/esp_websocket_client/include/esp_websocket_client.h index 8bfb2ce245..55a580a9e7 100644 --- a/components/esp_websocket_client/include/esp_websocket_client.h +++ b/components/esp_websocket_client/include/esp_websocket_client.h @@ -133,7 +133,7 @@ esp_err_t esp_websocket_client_start(esp_websocket_client_handle_t client); * using esp_websocket_client_close(). * * Notes: - * - Cannot be called from the websocket event handler + * - Cannot be called from the websocket event handler * * @param[in] client The client * @@ -149,7 +149,7 @@ esp_err_t esp_websocket_client_stop(esp_websocket_client_handle_t client); * * Notes: * - Cannot be called from the websocket event handler - * + * * @param[in] client The client * * @return esp_err_t @@ -208,7 +208,7 @@ int esp_websocket_client_send_text(esp_websocket_client_handle_t client, const c * * Client is stopped the same way as by the `esp_websocket_client_stop()` * * Notes: - * - Cannot be called from the websocket event handler + * - Cannot be called from the websocket event handler * * @param[in] client The client * @param[in] timeout Timeout in RTOS ticks for waiting @@ -222,7 +222,7 @@ esp_err_t esp_websocket_client_close(esp_websocket_client_handle_t client, TickT * Closing sequence is the same as for esp_websocket_client_close() * * Notes: - * - Cannot be called from the websocket event handler + * - Cannot be called from the websocket event handler * * @param[in] client The client * @param[in] code Close status code as defined in RFC6455 section-7.4 diff --git a/components/esp_wifi/CMakeLists.txt b/components/esp_wifi/CMakeLists.txt index ff2ea100d1..ea11a9a2f8 100644 --- a/components/esp_wifi/CMakeLists.txt +++ b/components/esp_wifi/CMakeLists.txt @@ -49,7 +49,7 @@ if(link_binary_libs) set(blobs coexist core espnow mesh net80211 pp rtc smartconfig ${phy}) foreach(blob ${blobs}) - add_prebuilt_library(${blob} "${CMAKE_CURRENT_SOURCE_DIR}/lib/${target_name}/lib${blob}.a" + add_prebuilt_library(${blob} "${CMAKE_CURRENT_SOURCE_DIR}/lib/${target_name}/lib${blob}.a" REQUIRES ${COMPONENT_NAME}) set(blob_reqs ${blobs}) list(REMOVE_ITEM blob_reqs ${blob}) # remove itself from requirements @@ -61,7 +61,7 @@ endif() if(CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION) idf_component_get_property(esp_common_dir esp_common COMPONENT_DIR) partition_table_get_partition_info(phy_partition_offset "--partition-type data --partition-subtype phy" "offset") - + if(CONFIG_ESP32_SUPPORT_MULTIPLE_PHY_INIT_DATA_BIN) set(phy_init_data_bin "${CMAKE_CURRENT_SOURCE_DIR}/phy_multiple_init_data.bin") else() diff --git a/components/esp_wifi/component.mk b/components/esp_wifi/component.mk index 846b9130c2..a739fa8b0a 100644 --- a/components/esp_wifi/component.mk +++ b/components/esp_wifi/component.mk @@ -17,4 +17,3 @@ ifndef CONFIG_ESP32_NO_BLOBS ALL_LIB_FILES := $(patsubst %,$(COMPONENT_PATH)/lib/$(IDF_TARGET)/lib%.a,$(LIBS)) COMPONENT_ADD_LINKER_DEPS += $(ALL_LIB_FILES) endif - diff --git a/components/esp_wifi/esp32/include/phy_init_data.h b/components/esp_wifi/esp32/include/phy_init_data.h index 3b9a71c45c..3d633a9084 100644 --- a/components/esp_wifi/esp32/include/phy_init_data.h +++ b/components/esp_wifi/esp32/include/phy_init_data.h @@ -152,7 +152,7 @@ static const char phy_init_magic_post[] = PHY_INIT_MAGIC; #if CONFIG_ESP32_SUPPORT_MULTIPLE_PHY_INIT_DATA_BIN /** - * @brief PHY init data control infomation structure + * @brief PHY init data control infomation structure */ typedef struct { uint8_t control_info_checksum[4]; /*!< 4-byte control infomation checksum */ @@ -173,4 +173,3 @@ typedef struct { } phy_country_to_bin_type_t; #endif #endif /* PHY_INIT_DATA_H */ - diff --git a/components/esp_wifi/esp32s2/esp_adapter.c b/components/esp_wifi/esp32s2/esp_adapter.c index af6ea90bc3..28a3318d8c 100644 --- a/components/esp_wifi/esp32s2/esp_adapter.c +++ b/components/esp_wifi/esp32s2/esp_adapter.c @@ -455,7 +455,7 @@ static int get_time_wrapper(void *t) static uint32_t esp_clk_slowclk_cal_get_wrapper(void) { - /* The bit width of WiFi light sleep clock calibration is 12 while the one of + /* The bit width of WiFi light sleep clock calibration is 12 while the one of * system is 19. It should shift 19 - 12 = 7. */ return (esp_clk_slowclk_cal_get() >> 7); diff --git a/components/esp_wifi/esp32s2/include/phy_init_data.h b/components/esp_wifi/esp32s2/include/phy_init_data.h index 9a1e5884e7..d3a13e839b 100644 --- a/components/esp_wifi/esp32s2/include/phy_init_data.h +++ b/components/esp_wifi/esp32s2/include/phy_init_data.h @@ -183,4 +183,3 @@ typedef struct { #endif #endif /* PHY_INIT_DATA_H */ - diff --git a/components/esp_wifi/include/esp_coexist_internal.h b/components/esp_wifi/include/esp_coexist_internal.h index 848e6d11ab..d6b64c6f09 100644 --- a/components/esp_wifi/include/esp_coexist_internal.h +++ b/components/esp_wifi/include/esp_coexist_internal.h @@ -126,7 +126,7 @@ int coex_wifi_channel_set(uint8_t primary, uint8_t secondary); * @brief Get coexistence event duration. * * @param event : Coexistence event - * @param duration: Coexistence event duration + * @param duration: Coexistence event duration * @return : 0 - success, other - failed */ int coex_event_duration_get(uint32_t event, uint32_t *duration); @@ -150,7 +150,7 @@ void coex_schm_status_bit_set(uint32_t type, uint32_t status); /** * @brief Set coexistence scheme interval. * - * @param interval : Coexistence scheme interval + * @param interval : Coexistence scheme interval * @return : 0 - success, other - failed */ int coex_schm_interval_set(uint32_t interval); @@ -165,21 +165,21 @@ uint32_t coex_schm_interval_get(void); /** * @brief Get current coexistence scheme period. * - * @return : Coexistence scheme period + * @return : Coexistence scheme period */ uint8_t coex_schm_curr_period_get(void); /** * @brief Get current coexistence scheme phase. * - * @return : Coexistence scheme phase + * @return : Coexistence scheme phase */ void * coex_schm_curr_phase_get(void); /** * @brief Set current coexistence scheme phase index. * - * @param interval : Coexistence scheme phase index + * @param interval : Coexistence scheme phase index * @return : 0 - success, other - failed */ int coex_schm_curr_phase_idx_set(int idx); diff --git a/components/esp_wifi/include/esp_phy_init.h b/components/esp_wifi/include/esp_phy_init.h index 6bc0601fae..3031ff1f84 100644 --- a/components/esp_wifi/include/esp_phy_init.h +++ b/components/esp_wifi/include/esp_phy_init.h @@ -144,8 +144,8 @@ esp_err_t esp_phy_store_cal_data_to_nvs(const esp_phy_calibration_data_t* cal_da /** * @brief Erase PHY calibration data which is stored in the NVS * - * This is a function which can be used to trigger full calibration as a last-resort remedy - * if partial calibration is used. It can be called in the application based on some conditions + * This is a function which can be used to trigger full calibration as a last-resort remedy + * if partial calibration is used. It can be called in the application based on some conditions * (e.g. an option provided in some diagnostic mode). * * @return ESP_OK on success @@ -203,7 +203,7 @@ int64_t esp_phy_rf_get_on_ts(void); esp_err_t esp_phy_update_country_info(const char *country); #if CONFIG_ESP32_SUPPORT_MULTIPLE_PHY_INIT_DATA_BIN -/** +/** * @brief Apply PHY init bin to PHY * @return ESP_OK on success. * @return ESP_FAIL on fail. @@ -214,4 +214,3 @@ esp_err_t esp_phy_apply_phy_init_data(uint8_t *init_data); #ifdef __cplusplus } #endif - diff --git a/components/esp_wifi/include/esp_private/wifi.h b/components/esp_wifi/include/esp_private/wifi.h index 3bd4488f50..459650f875 100644 --- a/components/esp_wifi/include/esp_private/wifi.h +++ b/components/esp_wifi/include/esp_private/wifi.h @@ -13,12 +13,12 @@ // limitations under the License. /* - * All the APIs declared here are internal only APIs, it can only be used by - * espressif internal modules, such as SSC, LWIP, TCPIP adapter etc, espressif + * All the APIs declared here are internal only APIs, it can only be used by + * espressif internal modules, such as SSC, LWIP, TCPIP adapter etc, espressif * customers are not recommended to use them. * * If someone really want to use specified APIs declared in here, please contact - * espressif AE/developer to make sure you know the limitations or risk of + * espressif AE/developer to make sure you know the limitations or risk of * the API, otherwise you may get unexpected behavior!!! * */ @@ -60,7 +60,7 @@ typedef enum { WIFI_LOG_DEBUG, /*can be set in menuconfig*/ WIFI_LOG_VERBOSE, /*can be set in menuconfig*/ } wifi_log_level_t; - + /** * @brief WiFi log module definition * @@ -146,7 +146,7 @@ void esp_wifi_internal_free_rx_buffer(void* buffer); * - ESP_ERR_WIFI_NOT_STARTED : WiFi is not started * - ESP_ERR_WIFI_STATE : WiFi internal state is not ready, e.g. WiFi is not started * - ESP_ERR_WIFI_NOT_ASSOC : WiFi is not associated - * - ESP_ERR_WIFI_TX_DISALLOW : WiFi TX is disallowed, e.g. WiFi hasn't pass the authentication + * - ESP_ERR_WIFI_TX_DISALLOW : WiFi TX is disallowed, e.g. WiFi hasn't pass the authentication * - ESP_ERR_WIFI_POST : caller fails to post event to WiFi task */ int esp_wifi_internal_tx(wifi_interface_t wifi_if, void *buffer, uint16_t len); @@ -170,7 +170,7 @@ typedef void (*wifi_netstack_buf_free_cb_t)(void *netstack_buf); * then forwards the buffer to WiFi driver. The WiFi driver will free the buffer * after processing it. Use esp_wifi_internal_tx() if the uplayer buffer doesn't * supports reference counter. - * + * * @param wifi_if : wifi interface id * @param buffer : the buffer to be tansmit * @param len : the length of buffer @@ -185,7 +185,7 @@ typedef void (*wifi_netstack_buf_free_cb_t)(void *netstack_buf); * - ESP_ERR_WIFI_NOT_STARTED : WiFi is not started * - ESP_ERR_WIFI_STATE : WiFi internal state is not ready, e.g. WiFi is not started * - ESP_ERR_WIFI_NOT_ASSOC : WiFi is not associated - * - ESP_ERR_WIFI_TX_DISALLOW : WiFi TX is disallowed, e.g. WiFi hasn't pass the authentication + * - ESP_ERR_WIFI_TX_DISALLOW : WiFi TX is disallowed, e.g. WiFi hasn't pass the authentication * - ESP_ERR_WIFI_POST : caller fails to post event to WiFi task */ esp_err_t esp_wifi_internal_tx_by_ref(wifi_interface_t ifx, void *buffer, size_t len, void *netstack_buf); @@ -379,7 +379,7 @@ typedef esp_err_t (* wifi_mac_time_update_cb_t)( uint32_t time_delta ); esp_err_t esp_wifi_internal_update_mac_time( uint32_t time_delta ); /** - * @brief Set current WiFi log level + * @brief Set current WiFi log level * * @param level Log level. * @@ -408,7 +408,7 @@ esp_err_t esp_wifi_internal_set_log_level(wifi_log_level_t level); esp_err_t esp_wifi_internal_set_log_mod(wifi_log_module_t module, uint32_t submodule, bool enable); /** - * @brief Get current WiFi log info + * @brief Get current WiFi log info * * @param log_level the return log level. * @param log_mod the return log module and submodule @@ -424,56 +424,56 @@ esp_err_t esp_wifi_internal_get_log(wifi_log_level_t *log_level, uint32_t *log_m * @param cmd : ioctl command type * @param cfg : configuration for the command * - * @return + * @return * - ESP_OK: succeed * - others: failed */ esp_err_t esp_wifi_internal_ioctl(int cmd, wifi_ioctl_config_t *cfg); /** - * @brief Get the user-configured channel info + * @brief Get the user-configured channel info * - * @param ifx : WiFi interface - * @param primary : store the configured primary channel + * @param ifx : WiFi interface + * @param primary : store the configured primary channel * @param second : store the configured second channel * - * @return + * @return * - ESP_OK: succeed */ esp_err_t esp_wifi_internal_get_config_channel(wifi_interface_t ifx, uint8_t *primary, uint8_t *second); /** - * @brief Get the negotiated channel info after WiFi connection established + * @brief Get the negotiated channel info after WiFi connection established * - * @param ifx : WiFi interface - * @param aid : the connection number when a STA connects to the softAP - * @param primary : store the negotiated primary channel + * @param ifx : WiFi interface + * @param aid : the connection number when a STA connects to the softAP + * @param primary : store the negotiated primary channel * @param second : store the negotiated second channel - * @attention the aid param is only works when the ESP32 in softAP/softAP+STA mode + * @attention the aid param is only works when the ESP32 in softAP/softAP+STA mode * - * @return + * @return * - ESP_OK: succeed */ esp_err_t esp_wifi_internal_get_negotiated_channel(wifi_interface_t ifx, uint8_t aid, uint8_t *primary, uint8_t *second); /** - * @brief Get the negotiated bandwidth info after WiFi connection established + * @brief Get the negotiated bandwidth info after WiFi connection established * - * @param ifx : WiFi interface - * @param bw : store the negotiated bandwidth + * @param ifx : WiFi interface + * @param bw : store the negotiated bandwidth * - * @return + * @return * - ESP_OK: succeed */ esp_err_t esp_wifi_internal_get_negotiated_bandwidth(wifi_interface_t ifx, uint8_t aid, uint8_t *bw); #if CONFIG_IDF_TARGET_ESP32S2 /** - * @brief Check if WiFi TSF is active + * @brief Check if WiFi TSF is active * - * @return - * - true: Active - * - false: Not active + * @return + * - true: Active + * - false: Not active */ bool esp_wifi_internal_is_tsf_active(void); #endif diff --git a/components/esp_wifi/include/esp_wifi_netif.h b/components/esp_wifi/include/esp_wifi_netif.h index 203b63c61a..2c2243b4ea 100644 --- a/components/esp_wifi/include/esp_wifi_netif.h +++ b/components/esp_wifi/include/esp_wifi_netif.h @@ -88,4 +88,4 @@ esp_err_t esp_wifi_register_if_rxcb(wifi_netif_driver_t ifx, esp_netif_receive_t } #endif -#endif //_ESP_WIFI_NETIF_H \ No newline at end of file +#endif //_ESP_WIFI_NETIF_H diff --git a/components/esp_wifi/include/phy.h b/components/esp_wifi/include/phy.h index 74eae0e6c2..a33b63751a 100644 --- a/components/esp_wifi/include/phy.h +++ b/components/esp_wifi/include/phy.h @@ -74,4 +74,3 @@ void phy_close_rf(void); #ifdef __cplusplus } #endif - diff --git a/components/esp_wifi/linker.lf b/components/esp_wifi/linker.lf index a520fc14e2..9e63817e79 100644 --- a/components/esp_wifi/linker.lf +++ b/components/esp_wifi/linker.lf @@ -13,7 +13,7 @@ archive: libpp.a entries: if ESP32_WIFI_IRAM_OPT = y: * (wifi_iram) - + if ESP32_WIFI_RX_IRAM_OPT = y: * (wifi_rx_iram) diff --git a/components/esp_wifi/src/lib_printf.c b/components/esp_wifi/src/lib_printf.c index f576f1d8c1..4ad6106a52 100644 --- a/components/esp_wifi/src/lib_printf.c +++ b/components/esp_wifi/src/lib_printf.c @@ -146,4 +146,3 @@ int mesh_printf(const char* format, ...) va_end(arg); return res; } - diff --git a/components/esp_wifi/src/phy_init.c b/components/esp_wifi/src/phy_init.c index 36e26c91fb..692d5be026 100644 --- a/components/esp_wifi/src/phy_init.c +++ b/components/esp_wifi/src/phy_init.c @@ -76,7 +76,7 @@ static char s_phy_current_country[PHY_COUNTRY_CODE_LEN] = {0}; static bool s_multiple_phy_init_data_bin = false; /* PHY init data type array */ -static char* s_phy_type[ESP_PHY_INIT_DATA_TYPE_NUMBER] = {"DEFAULT", "SRRC", "FCC", "CE", "NCC", "KCC", "MIC", "IC", +static char* s_phy_type[ESP_PHY_INIT_DATA_TYPE_NUMBER] = {"DEFAULT", "SRRC", "FCC", "CE", "NCC", "KCC", "MIC", "IC", "ACMA", "ANATEL", "ISED", "WPC", "OFCA", "IFETEL", "RCM"}; /* Country and PHY init data type map */ @@ -88,7 +88,7 @@ static phy_country_to_bin_type_t s_country_code_map_type_table[] = { {"BR", ESP_PHY_INIT_DATA_TYPE_ANATEL}, {"CA", ESP_PHY_INIT_DATA_TYPE_ISED}, {"CH", ESP_PHY_INIT_DATA_TYPE_CE}, - {"CN", ESP_PHY_INIT_DATA_TYPE_SRRC}, + {"CN", ESP_PHY_INIT_DATA_TYPE_SRRC}, {"CY", ESP_PHY_INIT_DATA_TYPE_CE}, {"CZ", ESP_PHY_INIT_DATA_TYPE_CE}, {"DE", ESP_PHY_INIT_DATA_TYPE_CE}, @@ -97,7 +97,7 @@ static phy_country_to_bin_type_t s_country_code_map_type_table[] = { {"ES", ESP_PHY_INIT_DATA_TYPE_CE}, {"FI", ESP_PHY_INIT_DATA_TYPE_CE}, {"FR", ESP_PHY_INIT_DATA_TYPE_CE}, - {"GB", ESP_PHY_INIT_DATA_TYPE_CE}, + {"GB", ESP_PHY_INIT_DATA_TYPE_CE}, {"GR", ESP_PHY_INIT_DATA_TYPE_CE}, {"HK", ESP_PHY_INIT_DATA_TYPE_OFCA}, {"HR", ESP_PHY_INIT_DATA_TYPE_CE}, @@ -106,7 +106,7 @@ static phy_country_to_bin_type_t s_country_code_map_type_table[] = { {"IN", ESP_PHY_INIT_DATA_TYPE_WPC}, {"IS", ESP_PHY_INIT_DATA_TYPE_CE}, {"IT", ESP_PHY_INIT_DATA_TYPE_CE}, - {"JP", ESP_PHY_INIT_DATA_TYPE_MIC}, + {"JP", ESP_PHY_INIT_DATA_TYPE_MIC}, {"KR", ESP_PHY_INIT_DATA_TYPE_KCC}, {"LI", ESP_PHY_INIT_DATA_TYPE_CE}, {"LT", ESP_PHY_INIT_DATA_TYPE_CE}, @@ -269,7 +269,7 @@ const esp_phy_init_data_t* esp_phy_get_init_data(void) ESP_LOGE(TAG, "failed to validate PHY data partition"); return NULL; } -#if CONFIG_ESP32_SUPPORT_MULTIPLE_PHY_INIT_DATA_BIN +#if CONFIG_ESP32_SUPPORT_MULTIPLE_PHY_INIT_DATA_BIN if ((*(init_data_store + (sizeof(phy_init_magic_pre) + PHY_SUPPORT_MULTIPLE_BIN_OFFSET)))) { s_multiple_phy_init_data_bin = true; ESP_LOGI(TAG, "Support multiple PHY init data bins"); @@ -547,7 +547,7 @@ void esp_phy_load_cal_and_init(void) #if CONFIG_ESP32_SUPPORT_MULTIPLE_PHY_INIT_DATA_BIN static esp_err_t phy_crc_check_init_data(uint8_t* init_data, const uint8_t* checksum, size_t init_data_length) -{ +{ uint32_t crc_data = 0; crc_data = esp_rom_crc32_le(crc_data, init_data, init_data_length); uint32_t crc_size_conversion = htonl(crc_data); @@ -563,7 +563,7 @@ static uint8_t phy_find_bin_type_according_country(const char* country) uint32_t i = 0; uint8_t phy_init_data_type = 0; - for (i = 0; i < sizeof(s_country_code_map_type_table)/sizeof(phy_country_to_bin_type_t); i++) + for (i = 0; i < sizeof(s_country_code_map_type_table)/sizeof(phy_country_to_bin_type_t); i++) { if (!memcmp(country, s_country_code_map_type_table[i].cc, sizeof(s_phy_current_country))) { phy_init_data_type = s_country_code_map_type_table[i].type; @@ -611,7 +611,7 @@ static esp_err_t phy_get_multiple_init_data(const esp_partition_t* partition, ESP_LOGE(TAG, "failed to allocate memory for PHY init data control info"); return ESP_FAIL; } - + esp_err_t err = esp_partition_read(partition, init_data_store_length, init_data_control_info, sizeof(phy_control_info_data_t)); if (err != ESP_OK) { free(init_data_control_info); @@ -638,8 +638,8 @@ static esp_err_t phy_get_multiple_init_data(const esp_partition_t* partition, free(init_data_control_info); ESP_LOGE(TAG, "failed to allocate memory for PHY init data multiple bin"); return ESP_FAIL; - } - + } + err = esp_partition_read(partition, init_data_store_length + sizeof(phy_control_info_data_t), init_data_multiple, sizeof(esp_phy_init_data_t) * init_data_control_info->number); if (err != ESP_OK) { @@ -648,9 +648,9 @@ static esp_err_t phy_get_multiple_init_data(const esp_partition_t* partition, ESP_LOGE(TAG, "failed to read PHY init data multiple bin partition (0x%x)", err); return ESP_FAIL; } - + if ((init_data_control_info->check_algorithm) == PHY_CRC_ALGORITHM) { - err = phy_crc_check_init_data(init_data_multiple, init_data_control_info->multiple_bin_checksum, + err = phy_crc_check_init_data(init_data_multiple, init_data_control_info->multiple_bin_checksum, sizeof(esp_phy_init_data_t) * init_data_control_info->number); if (err != ESP_OK) { free(init_data_multiple); @@ -668,7 +668,7 @@ static esp_err_t phy_get_multiple_init_data(const esp_partition_t* partition, err = phy_find_bin_data_according_type(init_data_store, init_data_control_info, init_data_multiple, init_data_type); if (err != ESP_OK) { ESP_LOGW(TAG, "%s has not been certified, use DEFAULT PHY init data", s_phy_type[init_data_type]); - s_phy_init_data_type = ESP_PHY_INIT_DATA_TYPE_DEFAULT; + s_phy_init_data_type = ESP_PHY_INIT_DATA_TYPE_DEFAULT; } else { s_phy_init_data_type = init_data_type; } @@ -751,7 +751,7 @@ esp_err_t esp_phy_update_country_info(const char *country) } memcpy(s_phy_current_country, country, sizeof(s_phy_current_country)); - + if (!s_multiple_phy_init_data_bin) { ESP_LOGD(TAG, "Does not support multiple PHY init data bins"); return ESP_FAIL; @@ -761,11 +761,11 @@ esp_err_t esp_phy_update_country_info(const char *country) if (phy_init_data_type_map == s_phy_init_data_type) { return ESP_OK; } - + esp_err_t err = esp_phy_update_init_data(phy_init_data_type_map); if (err != ESP_OK) { return err; } -#endif +#endif return ESP_OK; } diff --git a/components/esp_wifi/src/smartconfig.c b/components/esp_wifi/src/smartconfig.c index a4138c89bb..992d31bd98 100644 --- a/components/esp_wifi/src/smartconfig.c +++ b/components/esp_wifi/src/smartconfig.c @@ -74,4 +74,4 @@ esp_err_t esp_smartconfig_stop(void) esp_event_handler_unregister(SC_EVENT, SC_EVENT_GOT_SSID_PSWD, handler_got_ssid_passwd); } return err; -} \ No newline at end of file +} diff --git a/components/esp_wifi/src/smartconfig_ack.c b/components/esp_wifi/src/smartconfig_ack.c index 87c2bb5ea8..95c2c84946 100644 --- a/components/esp_wifi/src/smartconfig_ack.c +++ b/components/esp_wifi/src/smartconfig_ack.c @@ -110,7 +110,7 @@ static void sc_ack_send_task(void *pvParameters) send_sock = socket(AF_INET, SOCK_DGRAM, 0); if ((send_sock < LWIP_SOCKET_OFFSET) || (send_sock > (FD_SETSIZE - 1))) { ESP_LOGE(TAG, "Creat udp socket failed"); - goto _end; + goto _end; } setsockopt(send_sock, SOL_SOCKET, SO_BROADCAST | SO_REUSEADDR, &optval, sizeof(int)); @@ -213,4 +213,3 @@ void sc_send_ack_stop(void) } #endif - diff --git a/components/esp_wifi/src/wifi_init.c b/components/esp_wifi/src/wifi_init.c index e15bc15a12..e675105653 100644 --- a/components/esp_wifi/src/wifi_init.c +++ b/components/esp_wifi/src/wifi_init.c @@ -64,7 +64,7 @@ static void __attribute__((constructor)) s_set_default_wifi_log_level(void) so set it at runtime startup. Done here not in esp_wifi_init() to allow the user to set the level again before esp_wifi_init() is called. */ - esp_log_level_set("wifi", CONFIG_LOG_DEFAULT_LEVEL); + esp_log_level_set("wifi", CONFIG_LOG_DEFAULT_LEVEL); esp_log_level_set("mesh", CONFIG_LOG_DEFAULT_LEVEL); esp_log_level_set("smartconfig", CONFIG_LOG_DEFAULT_LEVEL); esp_log_level_set("ESPNOW", CONFIG_LOG_DEFAULT_LEVEL); @@ -123,7 +123,7 @@ esp_err_t esp_wifi_deinit(void) if (esp_wifi_get_user_init_flag_internal()) { ESP_LOGE(TAG, "Wi-Fi not stop"); - return ESP_FAIL; + return ESP_FAIL; } esp_supplicant_deinit(); @@ -226,7 +226,7 @@ esp_err_t esp_wifi_init(const wifi_init_config_t *config) } return result; - } + } } #if CONFIG_IDF_TARGET_ESP32S2 adc2_cal_include(); //This enables the ADC2 calibration constructor at start up. @@ -251,4 +251,3 @@ void wifi_apb80m_release(void) esp_pm_lock_release(s_wifi_modem_sleep_lock); } #endif //CONFIG_PM_ENABLE - diff --git a/components/esp_wifi/src/wifi_netif.c b/components/esp_wifi/src/wifi_netif.c index 168b1a0c49..32823bf024 100644 --- a/components/esp_wifi/src/wifi_netif.c +++ b/components/esp_wifi/src/wifi_netif.c @@ -133,7 +133,7 @@ esp_err_t esp_wifi_register_if_rxcb(wifi_netif_driver_t ifx, esp_netif_receive_t case WIFI_IF_STA: rxcb = wifi_sta_receive; break; - + case WIFI_IF_AP: rxcb = wifi_ap_receive; break; diff --git a/components/esp_wifi/test/test_wifi.c b/components/esp_wifi/test/test_wifi.c index 490d8ac2d6..5416a27c99 100644 --- a/components/esp_wifi/test/test_wifi.c +++ b/components/esp_wifi/test/test_wifi.c @@ -342,4 +342,4 @@ static void test_wifi_connection_softap(void) TEST_CASE_MULTIPLE_DEVICES("test wifi retain connection for 60s", "[wifi][test_env=UT_T2_1][timeout=90]", test_wifi_connection_sta, test_wifi_connection_softap); -#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2) \ No newline at end of file +#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2) diff --git a/components/espcoredump/CMakeLists.txt b/components/espcoredump/CMakeLists.txt index bce1224b03..fd24aac727 100644 --- a/components/espcoredump/CMakeLists.txt +++ b/components/espcoredump/CMakeLists.txt @@ -1,4 +1,4 @@ -idf_component_register(SRCS "src/core_dump_common.c" +idf_component_register(SRCS "src/core_dump_common.c" "src/core_dump_flash.c" "src/core_dump_port.c" "src/core_dump_uart.c" diff --git a/components/espcoredump/Kconfig b/components/espcoredump/Kconfig index e0d242bc29..58f4d79104 100644 --- a/components/espcoredump/Kconfig +++ b/components/espcoredump/Kconfig @@ -94,4 +94,3 @@ menu "Core dump" default "info" if ESP_COREDUMP_DECODE_INFO endmenu - diff --git a/components/espcoredump/component.mk b/components/espcoredump/component.mk index 0db2bfdd24..8104ff7ee5 100644 --- a/components/espcoredump/component.mk +++ b/components/espcoredump/component.mk @@ -1,4 +1,4 @@ COMPONENT_ADD_INCLUDEDIRS := include COMPONENT_SRCDIRS := src COMPONENT_PRIV_INCLUDEDIRS := include_core_dump -COMPONENT_ADD_LDFRAGMENTS += linker.lf \ No newline at end of file +COMPONENT_ADD_LDFRAGMENTS += linker.lf diff --git a/components/espcoredump/include_core_dump/elf.h b/components/espcoredump/include_core_dump/elf.h index 2ac87c90b9..894d578d93 100644 --- a/components/espcoredump/include_core_dump/elf.h +++ b/components/espcoredump/include_core_dump/elf.h @@ -40,9 +40,9 @@ typedef int64_t Elf64_Sxword; #define PT_NOTE 4 #define PT_SHLIB 5 #define PT_PHDR 6 -#define PT_TLS 7 -#define PT_LOOS 0x60000000 -#define PT_HIOS 0x6fffffff +#define PT_TLS 7 +#define PT_LOOS 0x60000000 +#define PT_HIOS 0x6fffffff #define PT_LOPROC 0x70000000 #define PT_HIPROC 0x7fffffff #define PT_GNU_EH_FRAME 0x6474e550 @@ -284,7 +284,7 @@ typedef struct elf64_shdr { Elf64_Xword sh_entsize; } Elf64_Shdr; -#define EI_MAG0 0 +#define EI_MAG0 0 #define EI_MAG1 1 #define EI_MAG2 2 #define EI_MAG3 3 @@ -294,23 +294,23 @@ typedef struct elf64_shdr { #define EI_OSABI 7 #define EI_PAD 8 -#define ELFMAG0 0x7f +#define ELFMAG0 0x7f #define ELFMAG1 'E' #define ELFMAG2 'L' #define ELFMAG3 'F' #define ELFMAG "\177ELF" #define SELFMAG 4 -#define ELFCLASSNONE 0 +#define ELFCLASSNONE 0 #define ELFCLASS32 1 #define ELFCLASS64 2 #define ELFCLASSNUM 3 -#define ELFDATANONE 0 +#define ELFDATANONE 0 #define ELFDATA2LSB 1 #define ELFDATA2MSB 2 -#define EV_NONE 0 +#define EV_NONE 0 #define EV_CURRENT 1 #define EV_NUM 2 @@ -326,7 +326,7 @@ typedef struct elf64_shdr { #define NT_PRPSINFO 3 #define NT_TASKSTRUCT 4 #define NT_AUXV 6 -#define NT_PRXFPREG 0x46e62b7f +#define NT_PRXFPREG 0x46e62b7f typedef struct elf32_note { Elf32_Word n_namesz; diff --git a/components/espcoredump/src/core_dump_common.c b/components/espcoredump/src/core_dump_common.c index a93887a9e0..8ee07d7a4a 100644 --- a/components/espcoredump/src/core_dump_common.c +++ b/components/espcoredump/src/core_dump_common.c @@ -113,7 +113,7 @@ static esp_err_t esp_core_dump_write_binary(panic_info_t *info, core_dump_write_ ESP_COREDUMP_LOGI("Found tasks: %d!", task_num); // Verifies all tasks in the snapshot - + for (task_id = 0; task_id < task_num; task_id++) { bool is_current_task = false, stack_is_valid = false; bool tcb_is_valid = esp_core_dump_check_task(info, tasks[task_id], &is_current_task, &stack_is_valid); @@ -201,7 +201,7 @@ static esp_err_t esp_core_dump_write_binary(panic_info_t *info, core_dump_write_ if (esp_core_dump_in_isr_context()) { hdr.mem_segs_num++; // stack of interrupted task } - hdr.mem_segs_num += esp_core_dump_get_user_ram_segments(); // stack of user mapped memory + hdr.mem_segs_num += esp_core_dump_get_user_ram_segments(); // stack of user mapped memory hdr.tcb_sz = tcb_sz; err = write_cfg->write(write_cfg->priv, &hdr, sizeof(core_dump_header_t)); if (err != ESP_OK) { @@ -238,7 +238,7 @@ static esp_err_t esp_core_dump_write_binary(panic_info_t *info, core_dump_write_ } } - // save user memory regions + // save user memory regions if (esp_core_dump_get_user_ram_segments() > 0) { core_dump_mem_seg_header_t user_ram_stack_size; for (coredump_region_t i = COREDUMP_MEMORY_START; i < COREDUMP_MEMORY_MAX; i++) { @@ -300,4 +300,4 @@ inline void esp_core_dump_write(panic_info_t *info, core_dump_write_config_t *wr void __attribute__((weak)) esp_core_dump_init(void) { /* do nothing by default */ -} \ No newline at end of file +} diff --git a/components/espcoredump/src/core_dump_port.c b/components/espcoredump/src/core_dump_port.c index d7f68e5ed3..5033ba8d5e 100644 --- a/components/espcoredump/src/core_dump_port.c +++ b/components/espcoredump/src/core_dump_port.c @@ -583,13 +583,13 @@ uint32_t esp_core_dump_get_extra_info(void **info) uint32_t esp_core_dump_get_user_ram_segments(void) { uint32_t total_sz = 0; - + // count number of memory segments to insert into ELF structure total_sz += COREDUMP_GET_MEMORY_SIZE(&_coredump_dram_end, &_coredump_dram_start) > 0 ? 1 : 0; total_sz += COREDUMP_GET_MEMORY_SIZE(&_coredump_rtc_end, &_coredump_rtc_start) > 0 ? 1 : 0; total_sz += COREDUMP_GET_MEMORY_SIZE(&_coredump_rtc_fast_end, &_coredump_rtc_fast_start) > 0 ? 1 : 0; total_sz += COREDUMP_GET_MEMORY_SIZE(&_coredump_iram_end, &_coredump_iram_start) > 0 ? 1 : 0; - + return total_sz; } @@ -601,7 +601,7 @@ uint32_t esp_core_dump_get_user_ram_size(void) total_sz += COREDUMP_GET_MEMORY_SIZE(&_coredump_rtc_end, &_coredump_rtc_start); total_sz += COREDUMP_GET_MEMORY_SIZE(&_coredump_rtc_fast_end, &_coredump_rtc_fast_start); total_sz += COREDUMP_GET_MEMORY_SIZE(&_coredump_iram_end, &_coredump_iram_start); - + return total_sz; } diff --git a/components/espcoredump/test/CMakeLists.txt b/components/espcoredump/test/CMakeLists.txt index 4ab14c0fe8..d29c6848fb 100644 --- a/components/espcoredump/test/CMakeLists.txt +++ b/components/espcoredump/test/CMakeLists.txt @@ -4,4 +4,4 @@ else() idf_component_register(SRC_DIRS "." PRIV_INCLUDE_DIRS "." PRIV_REQUIRES cmock nvs_flash) -endif() \ No newline at end of file +endif() diff --git a/components/espcoredump/test/component.mk b/components/espcoredump/test/component.mk index 3db0ee499f..b2caff55e6 100644 --- a/components/espcoredump/test/component.mk +++ b/components/espcoredump/test/component.mk @@ -7,7 +7,3 @@ else COMPONENT_PRIV_INCLUDEDIRS := . COMPONENT_REQUIRES := unity nvs_flash endif # TESTS_ALL - - - - diff --git a/components/espcoredump/test/coredump.b64 b/components/espcoredump/test/coredump.b64 index 030f13d16f..f6ad3cd758 100644 --- a/components/espcoredump/test/coredump.b64 +++ b/components/espcoredump/test/coredump.b64 @@ -367,4 +367,3 @@ AAAAAMYAAAAAAAAAxwAAAAAAAACxAAAAR4UOQLIAAAAAAAAAswAAAAAAAAC0AAAA QCwIQLUAAAAAAAAAtgAAAAAAAAC3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAA== hvIqKg== - diff --git a/components/esptool_py/CMakeLists.txt b/components/esptool_py/CMakeLists.txt index 66c3c9c71b..90ccadcf7e 100644 --- a/components/esptool_py/CMakeLists.txt +++ b/components/esptool_py/CMakeLists.txt @@ -43,10 +43,9 @@ consist of two ota app without factory partition.") file(READ "flasher_args.json.in" flasher_args_content) string(CONFIGURE "${flasher_args_content}" flasher_args_content) - file_generate("${CMAKE_CURRENT_BINARY_DIR}/flasher_args.json.in" + file_generate("${CMAKE_CURRENT_BINARY_DIR}/flasher_args.json.in" CONTENT "${flasher_args_content}") - file_generate("${CMAKE_BINARY_DIR}/flasher_args.json" + file_generate("${CMAKE_BINARY_DIR}/flasher_args.json" INPUT "${CMAKE_CURRENT_BINARY_DIR}/flasher_args.json.in") endif() endif() - diff --git a/components/esptool_py/component.mk b/components/esptool_py/component.mk index 64ca3b1e24..5a2dbfb444 100644 --- a/components/esptool_py/component.mk +++ b/components/esptool_py/component.mk @@ -2,4 +2,3 @@ # IDF source files. It only adds steps via Makefile.projbuild & # Kconfig.projbuild COMPONENT_CONFIG_ONLY := 1 - diff --git a/components/esptool_py/get_port_args.cmake b/components/esptool_py/get_port_args.cmake index 52c388d0d7..867094801c 100644 --- a/components/esptool_py/get_port_args.cmake +++ b/components/esptool_py/get_port_args.cmake @@ -15,4 +15,3 @@ if(NOT ESPBAUD) else() set(baud_arg "-b ${ESPBAUD}") endif() - diff --git a/components/esptool_py/project_include.cmake b/components/esptool_py/project_include.cmake index 278abc43ce..0d35ea59e8 100644 --- a/components/esptool_py/project_include.cmake +++ b/components/esptool_py/project_include.cmake @@ -280,4 +280,4 @@ if(NOT BOOTLOADER_BUILD) endif() esptool_py_custom_target(flash project "${flash_deps}") -endif() \ No newline at end of file +endif() diff --git a/components/esptool_py/run_esptool.cmake b/components/esptool_py/run_esptool.cmake index 348af7a565..e632457c36 100644 --- a/components/esptool_py/run_esptool.cmake +++ b/components/esptool_py/run_esptool.cmake @@ -18,4 +18,4 @@ endif() include("${CMAKE_CURRENT_LIST_DIR}/get_port_args.cmake") set(CMD "${ESPTOOLPY} ${port_arg} ${baud_arg} ${ESPTOOL_ARGS}") -include("${CMAKE_CURRENT_LIST_DIR}/run_cmd.cmake") \ No newline at end of file +include("${CMAKE_CURRENT_LIST_DIR}/run_cmd.cmake") diff --git a/components/fatfs/diskio/diskio_impl.h b/components/fatfs/diskio/diskio_impl.h index 1e5614c557..9d7e012481 100644 --- a/components/fatfs/diskio/diskio_impl.h +++ b/components/fatfs/diskio/diskio_impl.h @@ -70,4 +70,3 @@ esp_err_t ff_diskio_get_drive(BYTE* out_pdrv); #ifdef __cplusplus } #endif - diff --git a/components/fatfs/diskio/diskio_sdmmc.h b/components/fatfs/diskio/diskio_sdmmc.h index 539b3b89a1..538a9c6da0 100644 --- a/components/fatfs/diskio/diskio_sdmmc.h +++ b/components/fatfs/diskio/diskio_sdmmc.h @@ -40,4 +40,3 @@ BYTE ff_diskio_get_pdrv_card(const sdmmc_card_t* card); #ifdef __cplusplus } #endif - diff --git a/components/fatfs/diskio/diskio_wl.h b/components/fatfs/diskio/diskio_wl.h index af3f147973..619cb6b8f7 100644 --- a/components/fatfs/diskio/diskio_wl.h +++ b/components/fatfs/diskio/diskio_wl.h @@ -23,7 +23,7 @@ extern "C" { /** - * Register spi flash partition + * Register spi flash partition * * @param pdrv drive number * @param flash_handle handle of the wear levelling partition. diff --git a/components/fatfs/port/linux/ffsystem.c b/components/fatfs/port/linux/ffsystem.c index 5013c8b126..4a3bb32252 100644 --- a/components/fatfs/port/linux/ffsystem.c +++ b/components/fatfs/port/linux/ffsystem.c @@ -43,4 +43,3 @@ int ff_req_grant (FF_SYNC_t sobj) void ff_rel_grant (FF_SYNC_t sobj) { } - diff --git a/components/fatfs/src/00history.txt b/components/fatfs/src/00history.txt index db12a9e1b1..9e8d9393bf 100644 --- a/components/fatfs/src/00history.txt +++ b/components/fatfs/src/00history.txt @@ -327,4 +327,3 @@ R0.13c (October 14, 2018) Fixed reading a directory gets infinite loop when the last directory entry is not empty. (appeared at R0.12) Fixed creating a sub-directory in the fragmented sub-directory on the exFAT volume collapses FAT chain of the parent directory. (appeared at R0.12) Fixed f_getcwd() cause output buffer overrun when the buffer has a valid drive number. (appeared at R0.13b) - diff --git a/components/fatfs/src/00readme.txt b/components/fatfs/src/00readme.txt index dcccbdbebc..d1ef430944 100644 --- a/components/fatfs/src/00readme.txt +++ b/components/fatfs/src/00readme.txt @@ -18,4 +18,3 @@ FILES module is only a generic file system layer and it does not depend on any specific storage device. You need to provide a low level disk I/O module written to control the storage device that attached to the target system. - diff --git a/components/fatfs/src/diskio.c b/components/fatfs/src/diskio.c index 08ffcc8600..d71a633477 100644 --- a/components/fatfs/src/diskio.c +++ b/components/fatfs/src/diskio.c @@ -226,4 +226,3 @@ DRESULT disk_ioctl ( return RES_PARERR; } - diff --git a/components/fatfs/src/ff.c b/components/fatfs/src/ff.c index d9833c72e1..35fe01d5d1 100644 --- a/components/fatfs/src/ff.c +++ b/components/fatfs/src/ff.c @@ -6563,4 +6563,3 @@ FRESULT f_setcp ( return FR_OK; } #endif /* FF_CODE_PAGE == 0 */ - diff --git a/components/fatfs/src/ffsystem.c b/components/fatfs/src/ffsystem.c index b88ce15555..49faed0a82 100644 --- a/components/fatfs/src/ffsystem.c +++ b/components/fatfs/src/ffsystem.c @@ -167,4 +167,3 @@ void ff_rel_grant ( } #endif - diff --git a/components/fatfs/test/CMakeLists.txt b/components/fatfs/test/CMakeLists.txt index cc3285cee6..7ca37bb0b7 100644 --- a/components/fatfs/test/CMakeLists.txt +++ b/components/fatfs/test/CMakeLists.txt @@ -2,4 +2,4 @@ idf_component_register(SRC_DIRS . PRIV_INCLUDE_DIRS . PRIV_REQUIRES cmock test_utils vfs fatfs EMBED_TXTFILES fatfs.img - ) \ No newline at end of file + ) diff --git a/components/fatfs/test/test_fatfs_common.c b/components/fatfs/test/test_fatfs_common.c index c1dd3f1319..2e2fa9db12 100644 --- a/components/fatfs/test/test_fatfs_common.c +++ b/components/fatfs/test/test_fatfs_common.c @@ -256,17 +256,17 @@ void test_fatfs_truncate_file(const char* filename) f = fopen(filename, "rb"); TEST_ASSERT_NOT_NULL(f); - + memset(output, 0, sizeof(output)); read = fread(output, 1, sizeof(output), f); - + TEST_ASSERT_EQUAL(truncated_len, read); TEST_ASSERT_EQUAL_STRING_LEN(truncated_1, output, truncated_len); TEST_ASSERT_EQUAL(0, fclose(f)); - // Once truncated, the new file size should be the basis + // Once truncated, the new file size should be the basis // whether truncation should succeed or not TEST_ASSERT_EQUAL(-1, truncate(filename, truncated_len + 1)); TEST_ASSERT_EQUAL(EPERM, errno); @@ -289,10 +289,10 @@ void test_fatfs_truncate_file(const char* filename) f = fopen(filename, "rb"); TEST_ASSERT_NOT_NULL(f); - + memset(output, 0, sizeof(output)); read = fread(output, 1, sizeof(output), f); - + TEST_ASSERT_EQUAL(truncated_len, read); TEST_ASSERT_EQUAL_STRING_LEN(truncated_2, output, truncated_len); diff --git a/components/fatfs/test/test_fatfs_common.h b/components/fatfs/test/test_fatfs_common.h index 0a792434b1..30ee3431e5 100644 --- a/components/fatfs/test/test_fatfs_common.h +++ b/components/fatfs/test/test_fatfs_common.h @@ -70,4 +70,3 @@ void test_fatfs_opendir_readdir_rewinddir(const char* dir_prefix); void test_fatfs_opendir_readdir_rewinddir_utf_8(const char* dir_prefix); void test_fatfs_rw_speed(const char* filename, void* buf, size_t buf_size, size_t file_size, bool write); - diff --git a/components/fatfs/test/test_fatfs_sdmmc.c b/components/fatfs/test/test_fatfs_sdmmc.c index 012491fdd4..8686e0e9d3 100644 --- a/components/fatfs/test/test_fatfs_sdmmc.c +++ b/components/fatfs/test/test_fatfs_sdmmc.c @@ -373,4 +373,4 @@ static void sdspi_speed_test(void *buf, size_t buf_size, size_t file_size, bool TEST_ESP_OK(esp_vfs_fat_sdcard_unmount(path, card)); } -#endif \ No newline at end of file +#endif diff --git a/components/fatfs/test_fatfs_host/component.mk b/components/fatfs/test_fatfs_host/component.mk index 82dea0b0cf..928f5343aa 100644 --- a/components/fatfs/test_fatfs_host/component.mk +++ b/components/fatfs/test_fatfs_host/component.mk @@ -14,4 +14,4 @@ CLEAN_FILES := component_project_vars.mk clean: $(summary) RM $(CLEAN_FILES) rm -f $(CLEAN_FILES) - $(MAKE) -C $(COMPONENT_PATH) clean SDKCONFIG=$(SDKCONFIG_HEADER) BUILD_DIR=$(COMPONENT_BUILD_DIR) COMPONENT=$(COMPONENT_NAME) \ No newline at end of file + $(MAKE) -C $(COMPONENT_PATH) clean SDKCONFIG=$(SDKCONFIG_HEADER) BUILD_DIR=$(COMPONENT_BUILD_DIR) COMPONENT=$(COMPONENT_NAME) diff --git a/components/fatfs/test_fatfs_host/partition_table.csv b/components/fatfs/test_fatfs_host/partition_table.csv index 9b4dbd1ba5..1c79321a10 100644 --- a/components/fatfs/test_fatfs_host/partition_table.csv +++ b/components/fatfs/test_fatfs_host/partition_table.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, fat, , 1M, \ No newline at end of file +storage, data, fat, , 1M, diff --git a/components/fatfs/test_fatfs_host/test_fatfs.cpp b/components/fatfs/test_fatfs_host/test_fatfs.cpp index d1f7119e61..487fb9cf7e 100644 --- a/components/fatfs/test_fatfs_host/test_fatfs.cpp +++ b/components/fatfs/test_fatfs_host/test_fatfs.cpp @@ -24,7 +24,7 @@ TEST_CASE("create volume, open file, write and read back data", "[fatfs]") esp_err_t esp_result; const esp_partition_t *partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_FAT, "storage"); - + // Mount wear-levelled partition wl_handle_t wl_handle; esp_result = wl_mount(partition, &wl_handle); diff --git a/components/fatfs/vfs/vfs_fat.c b/components/fatfs/vfs/vfs_fat.c index 102cb9602b..8829f0e81b 100644 --- a/components/fatfs/vfs/vfs_fat.c +++ b/components/fatfs/vfs/vfs_fat.c @@ -839,7 +839,7 @@ static int vfs_fat_truncate(void* ctx, const char *path, off_t length) FIL* file; int ret = 0; - + vfs_fat_ctx_t* fat_ctx = (vfs_fat_ctx_t*) ctx; _lock_acquire(&fat_ctx->lock); diff --git a/components/freemodbus/common/esp_modbus_master.c b/components/freemodbus/common/esp_modbus_master.c index eee360820d..2684d0e5b1 100644 --- a/components/freemodbus/common/esp_modbus_master.c +++ b/components/freemodbus/common/esp_modbus_master.c @@ -18,7 +18,7 @@ #include "esp_modbus_master.h" // for public interface defines #include "esp_modbus_callbacks.h" // for callback functions -// This file implements public API for Modbus master controller. +// This file implements public API for Modbus master controller. // These functions are wrappers for interface functions of the controller static mb_master_interface_t* master_interface_ptr = NULL; @@ -40,8 +40,8 @@ esp_err_t mbc_master_destroy(void) ESP_ERR_INVALID_STATE, "Master interface is not correctly initialized."); error = master_interface_ptr->destroy(); - MB_MASTER_CHECK((error == ESP_OK), - error, + MB_MASTER_CHECK((error == ESP_OK), + error, "Master destroy failure, error=(0x%x).", error); return error; @@ -57,8 +57,8 @@ esp_err_t mbc_master_get_cid_info(uint16_t cid, const mb_parameter_descriptor_t* ESP_ERR_INVALID_STATE, "Master interface is not correctly initialized."); error = master_interface_ptr->get_cid_info(cid, param_info); - MB_MASTER_CHECK((error == ESP_OK), - error, + MB_MASTER_CHECK((error == ESP_OK), + error, "Master get cid info failure, error=(0x%x).", error); return error; @@ -77,7 +77,7 @@ esp_err_t mbc_master_get_parameter(uint16_t cid, char* name, uint8_t* value, uin ESP_ERR_INVALID_STATE, "Master interface is not correctly initialized."); error = master_interface_ptr->get_parameter(cid, name, value, type); - MB_MASTER_CHECK((error == ESP_OK), + MB_MASTER_CHECK((error == ESP_OK), error, "Master get parameter failure, error=(0x%x) (%s).", error, esp_err_to_name(error)); @@ -97,7 +97,7 @@ esp_err_t mbc_master_send_request(mb_param_request_t* request, void* data_ptr) ESP_ERR_INVALID_STATE, "Master interface is not correctly initialized."); error = master_interface_ptr->send_request(request, data_ptr); - MB_MASTER_CHECK((error == ESP_OK), + MB_MASTER_CHECK((error == ESP_OK), error, "Master send request failure error=(0x%x) (%s).", error, esp_err_to_name(error)); @@ -118,7 +118,7 @@ esp_err_t mbc_master_set_descriptor(const mb_parameter_descriptor_t* descriptor, ESP_ERR_INVALID_STATE, "Master interface is not correctly initialized."); error = master_interface_ptr->set_descriptor(descriptor, num_elements); - MB_MASTER_CHECK((error == ESP_OK), + MB_MASTER_CHECK((error == ESP_OK), error, "Master set descriptor failure, error=(0x%x) (%s).", error, esp_err_to_name(error)); @@ -138,7 +138,7 @@ esp_err_t mbc_master_set_parameter(uint16_t cid, char* name, uint8_t* value, uin ESP_ERR_INVALID_STATE, "Master interface is not correctly initialized."); error = master_interface_ptr->set_parameter(cid, name, value, type); - MB_MASTER_CHECK((error == ESP_OK), + MB_MASTER_CHECK((error == ESP_OK), error, "Master set parameter failure, error=(0x%x) (%s).", error, esp_err_to_name(error)); @@ -158,7 +158,7 @@ esp_err_t mbc_master_setup(void* comm_info) ESP_ERR_INVALID_STATE, "Master interface is not correctly initialized."); error = master_interface_ptr->setup(comm_info); - MB_MASTER_CHECK((error == ESP_OK), + MB_MASTER_CHECK((error == ESP_OK), error, "Master setup failure, error=(0x%x) (%s).", error, esp_err_to_name(error)); @@ -178,7 +178,7 @@ esp_err_t mbc_master_start(void) ESP_ERR_INVALID_STATE, "Master interface is not correctly initialized."); error = master_interface_ptr->start(); - MB_MASTER_CHECK((error == ESP_OK), + MB_MASTER_CHECK((error == ESP_OK), error, "Master start failure, error=(0x%x) (%s).", error, esp_err_to_name(error)); diff --git a/components/freemodbus/common/esp_modbus_slave.c b/components/freemodbus/common/esp_modbus_slave.c index 57a54efe3c..85a869e36a 100644 --- a/components/freemodbus/common/esp_modbus_slave.c +++ b/components/freemodbus/common/esp_modbus_slave.c @@ -56,13 +56,13 @@ esp_err_t mbc_slave_destroy(void) ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); // Check if interface has been initialized - MB_SLAVE_CHECK((slave_interface_ptr->destroy != NULL), + MB_SLAVE_CHECK((slave_interface_ptr->destroy != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); // Call the slave port destroy function error = slave_interface_ptr->destroy(); - MB_SLAVE_CHECK((error == ESP_OK), - ESP_ERR_INVALID_STATE, + MB_SLAVE_CHECK((error == ESP_OK), + ESP_ERR_INVALID_STATE, "Slave destroy failure error=(0x%x).", error); return error; @@ -77,12 +77,12 @@ esp_err_t mbc_slave_setup(void* comm_info) MB_SLAVE_CHECK((slave_interface_ptr != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); - MB_SLAVE_CHECK((slave_interface_ptr->setup != NULL), + MB_SLAVE_CHECK((slave_interface_ptr->setup != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); error = slave_interface_ptr->setup(comm_info); - MB_SLAVE_CHECK((error == ESP_OK), - ESP_ERR_INVALID_STATE, + MB_SLAVE_CHECK((error == ESP_OK), + ESP_ERR_INVALID_STATE, "Slave setup failure error=(0x%x).", error); return error; @@ -97,7 +97,7 @@ esp_err_t mbc_slave_start(void) MB_SLAVE_CHECK((slave_interface_ptr != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); - MB_SLAVE_CHECK((slave_interface_ptr->start != NULL), + MB_SLAVE_CHECK((slave_interface_ptr->start != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); #ifdef CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT @@ -106,12 +106,12 @@ esp_err_t mbc_slave_start(void) MB_SLAVE_CHECK((status == MB_ENOERR), ESP_ERR_INVALID_STATE, "mb stack set slave ID failure."); #endif error = slave_interface_ptr->start(); - MB_SLAVE_CHECK((error == ESP_OK), - ESP_ERR_INVALID_STATE, + MB_SLAVE_CHECK((error == ESP_OK), + ESP_ERR_INVALID_STATE, "Slave start failure error=(0x%x).", error); return error; -} +} /** * Blocking function to get event on parameter group change for application task @@ -121,7 +121,7 @@ mb_event_group_t mbc_slave_check_event(mb_event_group_t group) MB_SLAVE_CHECK((slave_interface_ptr != NULL), MB_EVENT_NO_EVENTS, "Slave interface is not correctly initialized."); - MB_SLAVE_CHECK((slave_interface_ptr->check_event != NULL), + MB_SLAVE_CHECK((slave_interface_ptr->check_event != NULL), MB_EVENT_NO_EVENTS, "Slave interface is not correctly initialized."); mb_event_group_t event = slave_interface_ptr->check_event(group); @@ -137,12 +137,12 @@ esp_err_t mbc_slave_get_param_info(mb_param_info_t* reg_info, uint32_t timeout) MB_SLAVE_CHECK((slave_interface_ptr != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); - MB_SLAVE_CHECK((slave_interface_ptr->get_param_info != NULL), + MB_SLAVE_CHECK((slave_interface_ptr->get_param_info != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); error = slave_interface_ptr->get_param_info(reg_info, timeout); - MB_SLAVE_CHECK((error == ESP_OK), - ESP_ERR_INVALID_STATE, + MB_SLAVE_CHECK((error == ESP_OK), + ESP_ERR_INVALID_STATE, "Slave get parameter info failure error=(0x%x).", error); return error; @@ -157,12 +157,12 @@ esp_err_t mbc_slave_set_descriptor(mb_register_area_descriptor_t descr_data) MB_SLAVE_CHECK((slave_interface_ptr != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); - MB_SLAVE_CHECK((slave_interface_ptr->set_descriptor != NULL), + MB_SLAVE_CHECK((slave_interface_ptr->set_descriptor != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); error = slave_interface_ptr->set_descriptor(descr_data); - MB_SLAVE_CHECK((error == ESP_OK), - ESP_ERR_INVALID_STATE, + MB_SLAVE_CHECK((error == ESP_OK), + ESP_ERR_INVALID_STATE, "Slave set descriptor failure error=(0x%x).", (uint16_t)error); return error; @@ -178,11 +178,11 @@ eMBErrorCode eMBRegDiscreteCB(UCHAR * pucRegBuffer, USHORT usAddress, MB_SLAVE_CHECK((slave_interface_ptr != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); - MB_SLAVE_CHECK((slave_interface_ptr->slave_reg_cb_discrete != NULL), + MB_SLAVE_CHECK((slave_interface_ptr->slave_reg_cb_discrete != NULL), error, "Slave interface is not correctly initialized."); error = slave_interface_ptr->slave_reg_cb_discrete(pucRegBuffer, usAddress, usNDiscrete); - + return error; } @@ -193,7 +193,7 @@ eMBErrorCode eMBRegCoilsCB(UCHAR* pucRegBuffer, USHORT usAddress, MB_SLAVE_CHECK((slave_interface_ptr != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); - MB_SLAVE_CHECK((slave_interface_ptr->slave_reg_cb_coils != NULL), + MB_SLAVE_CHECK((slave_interface_ptr->slave_reg_cb_coils != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); error = slave_interface_ptr->slave_reg_cb_coils(pucRegBuffer, usAddress, @@ -208,7 +208,7 @@ eMBErrorCode eMBRegHoldingCB(UCHAR * pucRegBuffer, USHORT usAddress, MB_SLAVE_CHECK((slave_interface_ptr != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); - MB_SLAVE_CHECK((slave_interface_ptr->slave_reg_cb_holding != NULL), + MB_SLAVE_CHECK((slave_interface_ptr->slave_reg_cb_holding != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); error = slave_interface_ptr->slave_reg_cb_holding(pucRegBuffer, usAddress, @@ -223,7 +223,7 @@ eMBErrorCode eMBRegInputCB(UCHAR * pucRegBuffer, USHORT usAddress, MB_SLAVE_CHECK((slave_interface_ptr != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); - MB_SLAVE_CHECK((slave_interface_ptr->slave_reg_cb_input != NULL), + MB_SLAVE_CHECK((slave_interface_ptr->slave_reg_cb_input != NULL), ESP_ERR_INVALID_STATE, "Slave interface is not correctly initialized."); error = slave_interface_ptr->slave_reg_cb_input(pucRegBuffer, usAddress, usNRegs); diff --git a/components/freemodbus/common/esp_modbus_slave_serial.c b/components/freemodbus/common/esp_modbus_slave_serial.c index 662b03e97a..89b75f4cdf 100644 --- a/components/freemodbus/common/esp_modbus_slave_serial.c +++ b/components/freemodbus/common/esp_modbus_slave_serial.c @@ -41,4 +41,3 @@ esp_err_t mbc_slave_init(mb_port_type_t port_type, void** handler) } return error; } - diff --git a/components/freemodbus/common/include/esp_modbus_common.h b/components/freemodbus/common/include/esp_modbus_common.h index b6836ba746..398af0ba9d 100644 --- a/components/freemodbus/common/include/esp_modbus_common.h +++ b/components/freemodbus/common/include/esp_modbus_common.h @@ -153,4 +153,3 @@ typedef esp_err_t (*iface_start)(void); /*!< Interface method start */ #endif #endif // _MB_IFACE_COMMON_H - diff --git a/components/freemodbus/component.mk b/components/freemodbus/component.mk index e19a2428d3..c90a5dc720 100644 --- a/components/freemodbus/component.mk +++ b/components/freemodbus/component.mk @@ -1,6 +1,6 @@ COMPONENT_ADD_INCLUDEDIRS := common/include -COMPONENT_PRIV_INCLUDEDIRS := common port modbus modbus/ascii modbus/functions -COMPONENT_PRIV_INCLUDEDIRS += modbus/rtu modbus/tcp modbus/include +COMPONENT_PRIV_INCLUDEDIRS := common port modbus modbus/ascii modbus/functions +COMPONENT_PRIV_INCLUDEDIRS += modbus/rtu modbus/tcp modbus/include COMPONENT_PRIV_INCLUDEDIRS += serial_slave/port serial_slave/modbus_controller COMPONENT_PRIV_INCLUDEDIRS += serial_master/port serial_master/modbus_controller COMPONENT_PRIV_INCLUDEDIRS += tcp_slave/port tcp_slave/modbus_controller diff --git a/components/freemodbus/modbus/ascii/mbascii.c b/components/freemodbus/modbus/ascii/mbascii.c index bbe1994b25..132711e324 100644 --- a/components/freemodbus/modbus/ascii/mbascii.c +++ b/components/freemodbus/modbus/ascii/mbascii.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -101,7 +101,7 @@ eMBASCIIInit( UCHAR ucSlaveAddress, UCHAR ucPort, ULONG ulBaudRate, eMBParity eP { eMBErrorCode eStatus = MB_ENOERR; ( void )ucSlaveAddress; - + ENTER_CRITICAL_SECTION( ); ucMBLFCharacter = MB_ASCII_DEFAULT_LF; @@ -393,7 +393,7 @@ xMBASCIITransmitFSM( void ) return xNeedPoll; } -BOOL MB_PORT_ISR_ATTR +BOOL MB_PORT_ISR_ATTR xMBASCIITimerT1SExpired( void ) { switch ( eRcvState ) diff --git a/components/freemodbus/modbus/ascii/mbascii.h b/components/freemodbus/modbus/ascii/mbascii.h index 535701b6dd..93cc68870e 100644 --- a/components/freemodbus/modbus/ascii/mbascii.h +++ b/components/freemodbus/modbus/ascii/mbascii.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/ascii/mbascii_m.c b/components/freemodbus/modbus/ascii/mbascii_m.c index b6327c2aa7..94c04215a8 100644 --- a/components/freemodbus/modbus/ascii/mbascii_m.c +++ b/components/freemodbus/modbus/ascii/mbascii_m.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -108,7 +108,7 @@ eMBErrorCode eMBMasterASCIIInit( UCHAR ucPort, ULONG ulBaudRate, eMBParity eParity ) { eMBErrorCode eStatus = MB_ENOERR; - + ENTER_CRITICAL_SECTION( ); ucMBLFCharacter = MB_ASCII_DEFAULT_LF; @@ -237,14 +237,14 @@ xMBMasterASCIIReceiveFSM( void ) case STATE_M_RX_INIT: vMBMasterPortTimersT35Enable( ); break; - + /* In the error state we wait until all characters in the * damaged frame are transmitted. */ case STATE_M_RX_ERROR: vMBMasterPortTimersRespondTimeoutEnable( ); break; - + /* In the idle state we wait for a new character. If a character * is received the t1.5 and t3.5 timers are started and the * receiver is in the state STATE_RX_RECEIVE and disable early @@ -254,7 +254,7 @@ xMBMasterASCIIReceiveFSM( void ) /* Waiting for the start of frame character during respond timeout */ vMBMasterPortTimersRespondTimeoutEnable( ); if( ucByte == ':' ) - { + { /* Reset the input buffers to store the frame in receive state. */ usMasterRcvBufferPos = 0; eBytePos = BYTE_HIGH_NIBBLE; @@ -358,19 +358,19 @@ xMBMasterASCIITransmitFSM( void ) BOOL xFrameIsBroadcast = FALSE; assert( eRcvState == STATE_M_RX_IDLE ); - + switch ( eSndState ) { /* We should not get a transmitter event if the transmitter is in * idle state. */ case STATE_M_TX_XFWR: - break; - + break; + /* We should not get a transmitter event if the transmitter is in * idle state. */ case STATE_M_TX_IDLE: break; - + /* Start of transmission. The start of a frame is defined by sending * the character ':'. */ case STATE_M_TX_START: @@ -446,22 +446,22 @@ BOOL xMBMasterASCIITimerT1SExpired( void ) { BOOL xNeedPoll = FALSE; - + switch ( eRcvState ) { /* Timer t35 expired. Startup phase is finished. */ case STATE_M_RX_INIT: xNeedPoll = xMBMasterPortEventPost(EV_MASTER_READY); ESP_EARLY_LOGI("xMBMasterASCIITimerT1SExpired", "RX_INIT_EXPIRED"); - break; - + break; + /* Start of message is not received during respond timeout. * Process error. */ case STATE_M_RX_IDLE: eRcvState = STATE_M_RX_ERROR; break; - - /* A recieve timeout expired and no any new character received. + + /* A recieve timeout expired and no any new character received. * Wait for respond time and go to error state to inform listener about error */ case STATE_M_RX_RCV: eRcvState = STATE_M_RX_ERROR; @@ -472,7 +472,7 @@ xMBMasterASCIITimerT1SExpired( void ) vMBMasterSetErrorType(EV_ERROR_RECEIVE_DATA); xNeedPoll = xMBMasterPortEventPost( EV_MASTER_ERROR_PROCESS ); break; - + /* If we have a timeout we go back to the idle state and wait for * the next frame. */ @@ -485,7 +485,7 @@ xMBMasterASCIITimerT1SExpired( void ) break; } eRcvState = STATE_M_RX_IDLE; - + switch (eSndState) { /* A frame was send finish and convert delay or respond timeout expired. @@ -497,11 +497,11 @@ xMBMasterASCIITimerT1SExpired( void ) xNeedPoll = xMBMasterPortEventPost(EV_MASTER_ERROR_PROCESS); } break; - + /* Function called in an illegal state. */ - default: + default: assert( ( eSndState == STATE_M_TX_START ) || ( eSndState == STATE_M_TX_IDLE ) - || ( eSndState == STATE_M_TX_DATA ) || ( eSndState == STATE_M_TX_END ) + || ( eSndState == STATE_M_TX_DATA ) || ( eSndState == STATE_M_TX_END ) || ( eSndState == STATE_M_TX_NOTIFY ) ); break; } @@ -512,9 +512,9 @@ xMBMasterASCIITimerT1SExpired( void ) if (xMBMasterGetCurTimerMode() == MB_TMODE_CONVERT_DELAY) { xNeedPoll = xMBMasterPortEventPost( EV_MASTER_EXECUTE ); } - + vMBMasterPortTimersDisable( ); - + /* no context switch required. */ return xNeedPoll; } diff --git a/components/freemodbus/modbus/functions/mbfunccoils.c b/components/freemodbus/modbus/functions/mbfunccoils.c index 458ff5ca22..40ca1c1a12 100644 --- a/components/freemodbus/modbus/functions/mbfunccoils.c +++ b/components/freemodbus/modbus/functions/mbfunccoils.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -87,7 +87,7 @@ eMBFuncReadCoils( UCHAR * pucFrame, USHORT * usLen ) usCoilCount |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_COILCNT_OFF + 1] ); /* Check if the number of registers to read is valid. If not - * return Modbus illegal data value exception. + * return Modbus illegal data value exception. */ if( ( usCoilCount >= 1 ) && ( usCoilCount < MB_PDU_FUNC_READ_COILCNT_MAX ) ) @@ -125,7 +125,7 @@ eMBFuncReadCoils( UCHAR * pucFrame, USHORT * usLen ) else { /* The response contains the function code, the starting address - * and the quantity of registers. We reuse the old values in the + * and the quantity of registers. We reuse the old values in the * buffer because they are still valid. */ *usLen += ucNBytes;; } @@ -247,7 +247,7 @@ eMBFuncWriteMultipleCoils( UCHAR * pucFrame, USHORT * usLen ) else { /* The response contains the function code, the starting address - * and the quantity of registers. We reuse the old values in the + * and the quantity of registers. We reuse the old values in the * buffer because they are still valid. */ *usLen = MB_PDU_FUNC_WRITE_MUL_BYTECNT_OFF; } diff --git a/components/freemodbus/modbus/functions/mbfunccoils_m.c b/components/freemodbus/modbus/functions/mbfunccoils_m.c index 036808c7b2..931f5369f4 100644 --- a/components/freemodbus/modbus/functions/mbfunccoils_m.c +++ b/components/freemodbus/modbus/functions/mbfunccoils_m.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (C) 2013 Armink * All rights reserved. @@ -148,7 +148,7 @@ eMBMasterFuncReadCoils( UCHAR * pucFrame, USHORT * usLen ) } /* Check if the number of registers to read is valid. If not - * return Modbus illegal data value exception. + * return Modbus illegal data value exception. */ if( ( usCoilCount >= 1 ) && ( ucByteCount == pucFrame[MB_PDU_FUNC_READ_COILCNT_OFF] ) ) diff --git a/components/freemodbus/modbus/functions/mbfuncdiag.c b/components/freemodbus/modbus/functions/mbfuncdiag.c index d75ffc0f72..8f7b9675b0 100644 --- a/components/freemodbus/modbus/functions/mbfuncdiag.c +++ b/components/freemodbus/modbus/functions/mbfuncdiag.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/functions/mbfuncdisc.c b/components/freemodbus/modbus/functions/mbfuncdisc.c index 87667ac2f3..79ff68f280 100644 --- a/components/freemodbus/modbus/functions/mbfuncdisc.c +++ b/components/freemodbus/modbus/functions/mbfuncdisc.c @@ -65,7 +65,7 @@ eMBFuncReadDiscreteInputs( UCHAR * pucFrame, USHORT * usLen ) usDiscreteCnt |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_DISCCNT_OFF + 1] ); /* Check if the number of registers to read is valid. If not - * return Modbus illegal data value exception. + * return Modbus illegal data value exception. */ if( ( usDiscreteCnt >= 1 ) && ( usDiscreteCnt < MB_PDU_FUNC_READ_DISCCNT_MAX ) ) @@ -102,7 +102,7 @@ eMBFuncReadDiscreteInputs( UCHAR * pucFrame, USHORT * usLen ) else { /* The response contains the function code, the starting address - * and the quantity of registers. We reuse the old values in the + * and the quantity of registers. We reuse the old values in the * buffer because they are still valid. */ *usLen += ucNBytes;; } diff --git a/components/freemodbus/modbus/functions/mbfuncdisc_m.c b/components/freemodbus/modbus/functions/mbfuncdisc_m.c index 1a69647d83..21ce0cbfbe 100644 --- a/components/freemodbus/modbus/functions/mbfuncdisc_m.c +++ b/components/freemodbus/modbus/functions/mbfuncdisc_m.c @@ -131,7 +131,7 @@ eMBMasterFuncReadDiscreteInputs( UCHAR * pucFrame, USHORT * usLen ) } /* Check if the number of registers to read is valid. If not - * return Modbus illegal data value exception. + * return Modbus illegal data value exception. */ if ((usDiscreteCnt >= 1) && ucNBytes == pucFrame[MB_PDU_FUNC_READ_DISCCNT_OFF]) { diff --git a/components/freemodbus/modbus/functions/mbfuncholding.c b/components/freemodbus/modbus/functions/mbfuncholding.c index 1a37866c50..e51b7de788 100644 --- a/components/freemodbus/modbus/functions/mbfuncholding.c +++ b/components/freemodbus/modbus/functions/mbfuncholding.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -187,7 +187,7 @@ eMBFuncReadHoldingRegister( UCHAR * pucFrame, USHORT * usLen ) usRegCount = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_REGCNT_OFF + 1] ); /* Check if the number of registers to read is valid. If not - * return Modbus illegal data value exception. + * return Modbus illegal data value exception. */ if( ( usRegCount >= 1 ) && ( usRegCount <= MB_PDU_FUNC_READ_REGCNT_MAX ) ) { diff --git a/components/freemodbus/modbus/functions/mbfuncholding_m.c b/components/freemodbus/modbus/functions/mbfuncholding_m.c index 9b4c077118..9c3d69949b 100644 --- a/components/freemodbus/modbus/functions/mbfuncholding_m.c +++ b/components/freemodbus/modbus/functions/mbfuncholding_m.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (C) 2013 Armink * All rights reserved. @@ -452,4 +452,3 @@ eMBMasterFuncReadWriteMultipleHoldingRegister( UCHAR * pucFrame, USHORT * usLen #endif #endif // #if MB_MASTER_RTU_ENABLED || MB_MASTER_ASCII_ENABLED || MB_MASTER_TCP_ENABLED - diff --git a/components/freemodbus/modbus/functions/mbfuncinput.c b/components/freemodbus/modbus/functions/mbfuncinput.c index 97aeac4db2..b713d866e2 100644 --- a/components/freemodbus/modbus/functions/mbfuncinput.c +++ b/components/freemodbus/modbus/functions/mbfuncinput.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -77,7 +77,7 @@ eMBFuncReadInputRegister( UCHAR * pucFrame, USHORT * usLen ) usRegCount |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_REGCNT_OFF + 1] ); /* Check if the number of registers to read is valid. If not - * return Modbus illegal data value exception. + * return Modbus illegal data value exception. */ if( ( usRegCount >= 1 ) && ( usRegCount < MB_PDU_FUNC_READ_REGCNT_MAX ) ) diff --git a/components/freemodbus/modbus/functions/mbfuncinput_m.c b/components/freemodbus/modbus/functions/mbfuncinput_m.c index 3a6869552c..37135f7dee 100644 --- a/components/freemodbus/modbus/functions/mbfuncinput_m.c +++ b/components/freemodbus/modbus/functions/mbfuncinput_m.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (C) 2013 Armink * All rights reserved. diff --git a/components/freemodbus/modbus/functions/mbfuncother.c b/components/freemodbus/modbus/functions/mbfuncother.c index a488a5b770..0c2323a8cb 100644 --- a/components/freemodbus/modbus/functions/mbfuncother.c +++ b/components/freemodbus/modbus/functions/mbfuncother.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/functions/mbutils.c b/components/freemodbus/modbus/functions/mbutils.c index 6a725703e4..0f0928b527 100644 --- a/components/freemodbus/modbus/functions/mbutils.c +++ b/components/freemodbus/modbus/functions/mbutils.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/include/mb.h b/components/freemodbus/modbus/include/mb.h index abfa92bd45..bd0f24ade4 100644 --- a/components/freemodbus/modbus/include/mb.h +++ b/components/freemodbus/modbus/include/mb.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -98,7 +98,7 @@ typedef enum * registers should be updated and reading means that the modbus protocol * stack needs to know the current register values. * - * \see eMBRegHoldingCB( ), eMBRegCoilsCB( ), eMBRegDiscreteCB( ) and + * \see eMBRegHoldingCB( ), eMBRegCoilsCB( ), eMBRegDiscreteCB( ) and * eMBRegInputCB( ). */ typedef enum @@ -142,7 +142,7 @@ typedef enum * * \return If no error occurs the function returns eMBErrorCode::MB_ENOERR. * The protocol is then in the disabled state and ready for activation - * by calling eMBEnable( ). Otherwise one of the following error codes + * by calling eMBEnable( ). Otherwise one of the following error codes * is returned: * - eMBErrorCode::MB_EINVAL If the slave address was not valid. Valid * slave addresses are in the range 1 - 247. @@ -171,10 +171,10 @@ eMBErrorCode eMBTCPInit( USHORT usTCPPort ); * \brief Release resources used by the protocol stack. * * This function disables the Modbus protocol stack and release all - * hardware resources. It must only be called when the protocol stack - * is disabled. + * hardware resources. It must only be called when the protocol stack + * is disabled. * - * \note Note all ports implement this function. A port which wants to + * \note Note all ports implement this function. A port which wants to * get an callback must define the macro MB_PORT_HAS_CLOSE to 1. * * \return If the resources where released it return eMBErrorCode::MB_ENOERR. @@ -189,8 +189,8 @@ eMBErrorCode eMBClose( void ); * This function enables processing of Modbus frames. Enabling the protocol * stack is only possible if it is in the disabled state. * - * \return If the protocol stack is now in the state enabled it returns - * eMBErrorCode::MB_ENOERR. If it was not in the disabled state it + * \return If the protocol stack is now in the state enabled it returns + * eMBErrorCode::MB_ENOERR. If it was not in the disabled state it * return eMBErrorCode::MB_EILLSTATE. */ eMBErrorCode eMBEnable( void ); @@ -200,7 +200,7 @@ eMBErrorCode eMBEnable( void ); * * This function disables processing of Modbus frames. * - * \return If the protocol stack has been disabled it returns + * \return If the protocol stack has been disabled it returns * eMBErrorCode::MB_ENOERR. If it was not in the enabled state it returns * eMBErrorCode::MB_EILLSTATE. */ @@ -212,10 +212,10 @@ eMBErrorCode eMBDisable( void ); * This function must be called periodically. The timer interval required * is given by the application dependent Modbus slave timeout. Internally the * function calls xMBPortEventGet() and waits for an event from the receiver or - * transmitter state machines. + * transmitter state machines. * * \return If the protocol stack is not in the enabled state the function - * returns eMBErrorCode::MB_EILLSTATE. Otherwise it returns + * returns eMBErrorCode::MB_EILLSTATE. Otherwise it returns * eMBErrorCode::MB_ENOERR. */ eMBErrorCode eMBPoll( void ); @@ -249,7 +249,7 @@ eMBErrorCode eMBSetSlaveID( UCHAR ucSlaveID, BOOL xIsRunning, * The callback handler supplied is responsible for interpreting the Modbus PDU and * the creation of an appropriate response. In case of an error it should return * one of the possible Modbus exceptions which results in a Modbus exception frame - * sent by the protocol stack. + * sent by the protocol stack. * * \param ucFunctionCode The Modbus function code for which this handler should * be registers. Valid function codes are in the range 1 to 127. @@ -262,7 +262,7 @@ eMBErrorCode eMBSetSlaveID( UCHAR ucSlaveID, BOOL xIsRunning, * case the values in mbconfig.h should be adjusted. If the argument was not * valid it returns eMBErrorCode::MB_EINVAL. */ -eMBErrorCode eMBRegisterCB( UCHAR ucFunctionCode, +eMBErrorCode eMBRegisterCB( UCHAR ucFunctionCode, pxMBFunctionHandler pxHandler ); /* ----------------------- Callback -----------------------------------------*/ @@ -300,7 +300,7 @@ eMBErrorCode eMBRegisterCB( UCHAR ucFunctionCode, * - eMBErrorCode::MB_ENOERR If no error occurred. In this case a normal * Modbus response is sent. * - eMBErrorCode::MB_ENOREG If the application can not supply values - * for registers within this range. In this case a + * for registers within this range. In this case a * ILLEGAL DATA ADDRESS exception frame is sent as a response. * - eMBErrorCode::MB_ETIMEDOUT If the requested register block is * currently not available and the application dependent response @@ -324,18 +324,18 @@ eMBErrorCode eMBRegInputCB( UCHAR * pucRegBuffer, USHORT usAddress, * this buffer. * \param usAddress The starting address of the register. * \param usNRegs Number of registers to read or write. - * \param eMode If eMBRegisterMode::MB_REG_WRITE the application register + * \param eMode If eMBRegisterMode::MB_REG_WRITE the application register * values should be updated from the values in the buffer. For example - * this would be the case when the Modbus master has issued an + * this would be the case when the Modbus master has issued an * WRITE SINGLE REGISTER command. - * If the value eMBRegisterMode::MB_REG_READ the application should copy + * If the value eMBRegisterMode::MB_REG_READ the application should copy * the current values into the buffer \c pucRegBuffer. * * \return The function must return one of the following error codes: * - eMBErrorCode::MB_ENOERR If no error occurred. In this case a normal * Modbus response is sent. * - eMBErrorCode::MB_ENOREG If the application can not supply values - * for registers within this range. In this case a + * for registers within this range. In this case a * ILLEGAL DATA ADDRESS exception frame is sent as a response. * - eMBErrorCode::MB_ETIMEDOUT If the requested register block is * currently not available and the application dependent response @@ -370,7 +370,7 @@ eMBErrorCode eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, * - eMBErrorCode::MB_ENOERR If no error occurred. In this case a normal * Modbus response is sent. * - eMBErrorCode::MB_ENOREG If the application does not map an coils - * within the requested address range. In this case a + * within the requested address range. In this case a * ILLEGAL DATA ADDRESS is sent as a response. * - eMBErrorCode::MB_ETIMEDOUT If the requested register block is * currently not available and the application dependent response @@ -399,7 +399,7 @@ eMBErrorCode eMBRegCoilsCB( UCHAR * pucRegBuffer, USHORT usAddress, * - eMBErrorCode::MB_ENOERR If no error occurred. In this case a normal * Modbus response is sent. * - eMBErrorCode::MB_ENOREG If no such discrete inputs exists. - * In this case a ILLEGAL DATA ADDRESS exception frame is sent + * In this case a ILLEGAL DATA ADDRESS exception frame is sent * as a response. * - eMBErrorCode::MB_ETIMEDOUT If the requested register block is * currently not available and the application dependent response diff --git a/components/freemodbus/modbus/include/mb_m.h b/components/freemodbus/modbus/include/mb_m.h index f17867e1c1..cb088e990b 100644 --- a/components/freemodbus/modbus/include/mb_m.h +++ b/components/freemodbus/modbus/include/mb_m.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (C) 2013 Armink * All rights reserved. @@ -143,10 +143,10 @@ eMBErrorCode eMBMasterTCPInit( USHORT usTCPPort ); * \brief Release resources used by the protocol stack. * * This function disables the Modbus Master protocol stack and release all - * hardware resources. It must only be called when the protocol stack - * is disabled. + * hardware resources. It must only be called when the protocol stack + * is disabled. * - * \note Note all ports implement this function. A port which wants to + * \note Note all ports implement this function. A port which wants to * get an callback must define the macro MB_PORT_HAS_CLOSE to 1. * * \return If the resources where released it return eMBErrorCode::MB_ENOERR. @@ -161,8 +161,8 @@ eMBErrorCode eMBMasterClose( void ); * This function enables processing of Modbus Master frames. Enabling the protocol * stack is only possible if it is in the disabled state. * - * \return If the protocol stack is now in the state enabled it returns - * eMBErrorCode::MB_ENOERR. If it was not in the disabled state it + * \return If the protocol stack is now in the state enabled it returns + * eMBErrorCode::MB_ENOERR. If it was not in the disabled state it * return eMBErrorCode::MB_EILLSTATE. */ eMBErrorCode eMBMasterEnable( void ); @@ -172,7 +172,7 @@ eMBErrorCode eMBMasterEnable( void ); * * This function disables processing of Modbus frames. * - * \return If the protocol stack has been disabled it returns + * \return If the protocol stack has been disabled it returns * eMBErrorCode::MB_ENOERR. If it was not in the enabled state it returns * eMBErrorCode::MB_EILLSTATE. */ @@ -184,10 +184,10 @@ eMBErrorCode eMBMasterDisable( void ); * This function must be called periodically. The timer interval required * is given by the application dependent Modbus slave timeout. Internally the * function calls xMBMasterPortEventGet() and waits for an event from the receiver or - * transmitter state machines. + * transmitter state machines. * * \return If the protocol stack is not in the enabled state the function - * returns eMBErrorCode::MB_EILLSTATE. Otherwise it returns + * returns eMBErrorCode::MB_EILLSTATE. Otherwise it returns * eMBErrorCode::MB_ENOERR. */ eMBErrorCode eMBMasterPoll( void ); diff --git a/components/freemodbus/modbus/include/mbconfig.h b/components/freemodbus/modbus/include/mbconfig.h index f32be6c232..b784bf88a8 100644 --- a/components/freemodbus/modbus/include/mbconfig.h +++ b/components/freemodbus/modbus/include/mbconfig.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -90,7 +90,7 @@ PR_BEGIN_EXTERN_C * MB_ASCII_TIMEOUT_WAIT_BEFORE_SEND_MS to allow for a delay before * the serial transmitter is enabled. This is required because some * targets are so fast that there is no time between receiving and - * transmitting the frame. If the master is to slow with enabling its + * transmitting the frame. If the master is to slow with enabling its * receiver then he will not receive the response correctly. */ #ifndef MB_ASCII_TIMEOUT_WAIT_BEFORE_SEND_MS diff --git a/components/freemodbus/modbus/include/mbframe.h b/components/freemodbus/modbus/include/mbframe.h index 9dbfc394a6..5b7d6d7e40 100644 --- a/components/freemodbus/modbus/include/mbframe.h +++ b/components/freemodbus/modbus/include/mbframe.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/include/mbfunc.h b/components/freemodbus/modbus/include/mbfunc.h index aea14f7591..48d7b390a4 100644 --- a/components/freemodbus/modbus/include/mbfunc.h +++ b/components/freemodbus/modbus/include/mbfunc.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/include/mbport.h b/components/freemodbus/modbus/include/mbport.h index 8dfe8b7ca1..a73b949fba 100644 --- a/components/freemodbus/modbus/include/mbport.h +++ b/components/freemodbus/modbus/include/mbport.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/include/mbproto.h b/components/freemodbus/modbus/include/mbproto.h index f84cb3edcf..3c76517281 100644 --- a/components/freemodbus/modbus/include/mbproto.h +++ b/components/freemodbus/modbus/include/mbproto.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/include/mbutils.h b/components/freemodbus/modbus/include/mbutils.h index 61495751d4..1d96ddcc0b 100644 --- a/components/freemodbus/modbus/include/mbutils.h +++ b/components/freemodbus/modbus/include/mbutils.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/mb.c b/components/freemodbus/modbus/mb.c index 90fef65227..be00e55c64 100644 --- a/components/freemodbus/modbus/mb.c +++ b/components/freemodbus/modbus/mb.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -407,11 +407,11 @@ eMBPoll( void ) if( ( eMBCurrentMode == MB_ASCII ) && MB_ASCII_TIMEOUT_WAIT_BEFORE_SEND_MS ) { vMBPortTimersDelay( MB_ASCII_TIMEOUT_WAIT_BEFORE_SEND_MS ); - } + } eStatus = peMBFrameSendCur( ucMBAddress, ucMBFrame, usLength ); } break; - + case EV_FRAME_TRANSMIT: ESP_LOGD(MB_PORT_TAG, "%s:EV_FRAME_TRANSMIT", __func__); break; diff --git a/components/freemodbus/modbus/mb_m.c b/components/freemodbus/modbus/mb_m.c index 38a031c23b..8cc4dba899 100644 --- a/components/freemodbus/modbus/mb_m.c +++ b/components/freemodbus/modbus/mb_m.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (C) 2013 Armink * All rights reserved. @@ -348,7 +348,7 @@ eMBMasterPoll( void ) eStatus = peMBMasterFrameReceiveCur( &ucRcvAddress, &ucMBFrame, &usLength); // Check if the frame is for us. If not ,send an error process event. - if ( ( eStatus == MB_ENOERR ) && ( ( ucRcvAddress == ucMBMasterGetDestAddress() ) + if ( ( eStatus == MB_ENOERR ) && ( ( ucRcvAddress == ucMBMasterGetDestAddress() ) || ( ucRcvAddress == MB_TCP_PSEUDO_ADDRESS ) ) ) { ( void ) xMBMasterPortEventPost( EV_MASTER_EXECUTE ); diff --git a/components/freemodbus/modbus/rtu/mbcrc.c b/components/freemodbus/modbus/rtu/mbcrc.c index 1cd0a6ec8b..bb896764f6 100644 --- a/components/freemodbus/modbus/rtu/mbcrc.c +++ b/components/freemodbus/modbus/rtu/mbcrc.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -46,12 +46,12 @@ static const UCHAR aucCRCHi[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, - 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, - 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, - 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, @@ -67,12 +67,12 @@ static const UCHAR aucCRCLo[] = { 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, - 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, + 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, - 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, + 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, diff --git a/components/freemodbus/modbus/rtu/mbcrc.h b/components/freemodbus/modbus/rtu/mbcrc.h index db227763f1..5ed3f22896 100644 --- a/components/freemodbus/modbus/rtu/mbcrc.h +++ b/components/freemodbus/modbus/rtu/mbcrc.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/rtu/mbrtu.c b/components/freemodbus/modbus/rtu/mbrtu.c index 066fea3eeb..c4d77f6f38 100644 --- a/components/freemodbus/modbus/rtu/mbrtu.c +++ b/components/freemodbus/modbus/rtu/mbrtu.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/rtu/mbrtu.h b/components/freemodbus/modbus/rtu/mbrtu.h index 4adf99fa82..676f67d1df 100644 --- a/components/freemodbus/modbus/rtu/mbrtu.h +++ b/components/freemodbus/modbus/rtu/mbrtu.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/rtu/mbrtu_m.c b/components/freemodbus/modbus/rtu/mbrtu_m.c index 19be4b8ae8..ce22c8e861 100644 --- a/components/freemodbus/modbus/rtu/mbrtu_m.c +++ b/components/freemodbus/modbus/rtu/mbrtu_m.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2013 China Beijing Armink * All rights reserved. @@ -355,7 +355,7 @@ xMBMasterRTUTimerExpired(void) case STATE_M_RX_INIT: xNeedPoll = xMBMasterPortEventPost(EV_MASTER_READY); break; - + /* A frame was received and t35 expired. Notify the listener that * a new frame was received. */ case STATE_M_RX_RCV: @@ -404,5 +404,3 @@ xMBMasterRTUTimerExpired(void) #endif - - diff --git a/components/freemodbus/modbus/tcp/mbtcp.c b/components/freemodbus/modbus/tcp/mbtcp.c index 58542d8c9c..25277528cb 100644 --- a/components/freemodbus/modbus/tcp/mbtcp.c +++ b/components/freemodbus/modbus/tcp/mbtcp.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -54,10 +54,10 @@ * +-----------+---------------+------------------------------------------+ * | TID | PID | Length | UID |Code | Data | * +-----------+---------------+------------------------------------------+ - * | | | | | - * (2) (3) (4) (5) (6) + * | | | | | + * (2) (3) (4) (5) (6) * - * (2) ... MB_TCP_TID = 0 (Transaction Identifier - 2 Byte) + * (2) ... MB_TCP_TID = 0 (Transaction Identifier - 2 Byte) * (3) ... MB_TCP_PID = 2 (Protocol Identifier - 2 Byte) * (4) ... MB_TCP_LEN = 4 (Number of bytes - 2 Byte) * (5) ... MB_TCP_UID = 6 (Unit Identifier - 1 Byte) @@ -135,9 +135,9 @@ eMBTCPSend( UCHAR _unused, const UCHAR * pucFrame, USHORT usLength ) USHORT usTCPLength = usLength + MB_TCP_FUNC; /* The MBAP header is already initialized because the caller calls this - * function with the buffer returned by the previous call. Therefore we - * only have to update the length in the header. Note that the length - * header includes the size of the Modbus PDU and the UID Byte. Therefore + * function with the buffer returned by the previous call. Therefore we + * only have to update the length in the header. Note that the length + * header includes the size of the Modbus PDU and the UID Byte. Therefore * the length is usLength plus one. */ pucMBTCPFrame[MB_TCP_LEN] = ( usLength + 1 ) >> 8U; diff --git a/components/freemodbus/modbus/tcp/mbtcp.h b/components/freemodbus/modbus/tcp/mbtcp.h index 6e55718c52..89e970a08c 100644 --- a/components/freemodbus/modbus/tcp/mbtcp.h +++ b/components/freemodbus/modbus/tcp/mbtcp.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/modbus/tcp/mbtcp_m.c b/components/freemodbus/modbus/tcp/mbtcp_m.c index 419710def1..18359d66d4 100644 --- a/components/freemodbus/modbus/tcp/mbtcp_m.c +++ b/components/freemodbus/modbus/tcp/mbtcp_m.c @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. @@ -54,10 +54,10 @@ * +-----------+---------------+------------------------------------------+ * | TID | PID | Length | UID |Code | Data | * +-----------+---------------+------------------------------------------+ - * | | | | | - * (2) (3) (4) (5) (6) + * | | | | | + * (2) (3) (4) (5) (6) * - * (2) ... MB_TCP_TID = 0 (Transaction Identifier - 2 Byte) + * (2) ... MB_TCP_TID = 0 (Transaction Identifier - 2 Byte) * (3) ... MB_TCP_PID = 2 (Protocol Identifier - 2 Byte) * (4) ... MB_TCP_LEN = 4 (Number of bytes - 2 Byte) * (5) ... MB_TCP_UID = 6 (Unit Identifier - 1 Byte) @@ -135,9 +135,9 @@ eMBMasterTCPSend( UCHAR _unused, const UCHAR * pucFrame, USHORT usLength ) USHORT usTCPLength = usLength + MB_TCP_FUNC; /* The MBAP header is already initialized because the caller calls this - * function with the buffer returned by the previous call. Therefore we - * only have to update the length in the header. Note that the length - * header includes the size of the Modbus PDU and the UID Byte. Therefore + * function with the buffer returned by the previous call. Therefore we + * only have to update the length in the header. Note that the length + * header includes the size of the Modbus PDU and the UID Byte. Therefore * the length is usLength plus one. */ pucMBTCPFrame[MB_TCP_LEN] = ( usLength + 1 ) >> 8U; diff --git a/components/freemodbus/modbus/tcp/mbtcp_m.h b/components/freemodbus/modbus/tcp/mbtcp_m.h index 3445ca9ecc..34aaa027ce 100644 --- a/components/freemodbus/modbus/tcp/mbtcp_m.h +++ b/components/freemodbus/modbus/tcp/mbtcp_m.h @@ -1,4 +1,4 @@ -/* +/* * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU. * Copyright (c) 2006 Christian Walter * All rights reserved. diff --git a/components/freemodbus/port/portevent.c b/components/freemodbus/port/portevent.c index 42dde249e4..20e2bce5b0 100644 --- a/components/freemodbus/port/portevent.c +++ b/components/freemodbus/port/portevent.c @@ -27,7 +27,7 @@ * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * IF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. @@ -87,7 +87,7 @@ xMBPortEventPost( eMBEventType eEvent ) { BaseType_t xStatus, xHigherPriorityTaskWoken = pdFALSE; assert(xQueueHdl != NULL); - + if( (BOOL)xPortInIsrContext() == TRUE ) { xStatus = xQueueSendFromISR(xQueueHdl, (const void*)&eEvent, &xHigherPriorityTaskWoken); @@ -129,4 +129,3 @@ xMBPortEventGetHandle(void) } return NULL; } - diff --git a/components/freemodbus/port/portevent_m.c b/components/freemodbus/port/portevent_m.c index 81c3c3b63a..21975bc277 100644 --- a/components/freemodbus/port/portevent_m.c +++ b/components/freemodbus/port/portevent_m.c @@ -204,7 +204,7 @@ void vMBMasterRunResRelease( void ) * @param ucPDULength PDU buffer length * */ -void vMBMasterErrorCBRespondTimeout(UCHAR ucDestAddress, const UCHAR* pucPDUData, USHORT ucPDULength) +void vMBMasterErrorCBRespondTimeout(UCHAR ucDestAddress, const UCHAR* pucPDUData, USHORT ucPDULength) { BOOL ret = xMBMasterPortEventPost(EV_MASTER_ERROR_RESPOND_TIMEOUT); MB_PORT_CHECK((ret == TRUE), ; , "%s: Post event 'EV_MASTER_ERROR_RESPOND_TIMEOUT' failed!", __func__); @@ -219,7 +219,7 @@ void vMBMasterErrorCBRespondTimeout(UCHAR ucDestAddress, const UCHAR* pucPDUData * @param pucPDUData PDU buffer data * @param ucPDULength PDU buffer length */ -void vMBMasterErrorCBReceiveData(UCHAR ucDestAddress, const UCHAR* pucPDUData, USHORT ucPDULength) +void vMBMasterErrorCBReceiveData(UCHAR ucDestAddress, const UCHAR* pucPDUData, USHORT ucPDULength) { BOOL ret = xMBMasterPortEventPost(EV_MASTER_ERROR_RECEIVE_DATA); MB_PORT_CHECK((ret == TRUE), ; , "%s: Post event 'EV_MASTER_ERROR_RECEIVE_DATA' failed!", __func__); @@ -237,7 +237,7 @@ void vMBMasterErrorCBReceiveData(UCHAR ucDestAddress, const UCHAR* pucPDUData, U * @param ucPDULength PDU buffer length * */ -void vMBMasterErrorCBExecuteFunction(UCHAR ucDestAddress, const UCHAR* pucPDUData, USHORT ucPDULength) +void vMBMasterErrorCBExecuteFunction(UCHAR ucDestAddress, const UCHAR* pucPDUData, USHORT ucPDULength) { BOOL ret = xMBMasterPortEventPost(EV_MASTER_ERROR_EXECUTE_FUNCTION); MB_PORT_CHECK((ret == TRUE), ; , "%s: Post event 'EV_MASTER_ERROR_EXECUTE_FUNCTION' failed!", __func__); diff --git a/components/freemodbus/port/portother.c b/components/freemodbus/port/portother.c index 43b6e967f8..0ff251c850 100644 --- a/components/freemodbus/port/portother.c +++ b/components/freemodbus/port/portother.c @@ -16,7 +16,7 @@ * FreeModbus Libary: ESP32 Demo Application * Copyright (C) 2010 Christian Walter * - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -27,7 +27,7 @@ * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * IF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. diff --git a/components/freemodbus/port/portother_m.c b/components/freemodbus/port/portother_m.c index 15b727a441..bdc471cf70 100644 --- a/components/freemodbus/port/portother_m.c +++ b/components/freemodbus/port/portother_m.c @@ -68,4 +68,3 @@ vMBMasterPortClose( void ) vMBMasterPortTimerClose( ); vMBMasterPortEventClose( ); } - diff --git a/components/freemodbus/port/portserial.c b/components/freemodbus/port/portserial.c index 10fc1b5b53..1d2c6bf54a 100644 --- a/components/freemodbus/port/portserial.c +++ b/components/freemodbus/port/portserial.c @@ -48,7 +48,7 @@ #include "driver/gpio.h" #include "esp_log.h" // for esp_log #include "esp_err.h" // for ESP_ERROR_CHECK macro - + /* ----------------------- Modbus includes ----------------------------------*/ #include "mb.h" #include "mbport.h" @@ -283,4 +283,3 @@ BOOL xMBPortSerialGetByte(CHAR* pucByte) USHORT usLength = uart_read_bytes(ucUartNumber, (uint8_t*)pucByte, 1, MB_SERIAL_RX_TOUT_TICKS); return (usLength == 1); } - diff --git a/components/freemodbus/serial_master/modbus_controller/mbc_serial_master.c b/components/freemodbus/serial_master/modbus_controller/mbc_serial_master.c index 93ac3137f5..5f65c52cfe 100644 --- a/components/freemodbus/serial_master/modbus_controller/mbc_serial_master.c +++ b/components/freemodbus/serial_master/modbus_controller/mbc_serial_master.c @@ -146,9 +146,9 @@ static esp_err_t mbc_serial_master_destroy(void) // Set Modbus parameter description table static esp_err_t mbc_serial_master_set_descriptor(const mb_parameter_descriptor_t* descriptor, const uint16_t num_elements) { - MB_MASTER_CHECK((descriptor != NULL), + MB_MASTER_CHECK((descriptor != NULL), ESP_ERR_INVALID_ARG, "mb incorrect descriptor."); - MB_MASTER_CHECK((num_elements >= 1), + MB_MASTER_CHECK((num_elements >= 1), ESP_ERR_INVALID_ARG, "mb table size is incorrect."); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; const mb_parameter_descriptor_t *reg_ptr = descriptor; @@ -156,11 +156,11 @@ static esp_err_t mbc_serial_master_set_descriptor(const mb_parameter_descriptor_ for (uint16_t counter = 0; counter < (num_elements); counter++, reg_ptr++) { // Below is the code to check consistency of the table format and required fields. - MB_MASTER_CHECK((reg_ptr->cid == counter), + MB_MASTER_CHECK((reg_ptr->cid == counter), ESP_ERR_INVALID_ARG, "mb descriptor cid field is incorrect."); - MB_MASTER_CHECK((reg_ptr->param_key != NULL), + MB_MASTER_CHECK((reg_ptr->param_key != NULL), ESP_ERR_INVALID_ARG, "mb descriptor param key is incorrect."); - MB_MASTER_CHECK((reg_ptr->mb_size > 0), + MB_MASTER_CHECK((reg_ptr->mb_size > 0), ESP_ERR_INVALID_ARG, "mb descriptor param size is incorrect."); } mbm_opts->mbm_param_descriptor_table = descriptor; @@ -175,9 +175,9 @@ static esp_err_t mbc_serial_master_send_request(mb_param_request_t* request, voi ESP_ERR_INVALID_STATE, "Master interface uninitialized."); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; - MB_MASTER_CHECK((request != NULL), + MB_MASTER_CHECK((request != NULL), ESP_ERR_INVALID_ARG, "mb request structure."); - MB_MASTER_CHECK((data_ptr != NULL), + MB_MASTER_CHECK((data_ptr != NULL), ESP_ERR_INVALID_ARG, "mb incorrect data pointer."); eMBMasterReqErrCode mb_error = MB_MRE_NO_REG; @@ -283,17 +283,17 @@ static esp_err_t mbc_serial_master_get_cid_info(uint16_t cid, const mb_parameter "Master interface uninitialized."); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; - MB_MASTER_CHECK((param_buffer != NULL), + MB_MASTER_CHECK((param_buffer != NULL), ESP_ERR_INVALID_ARG, "mb incorrect data buffer pointer."); - MB_MASTER_CHECK((mbm_opts->mbm_param_descriptor_table != NULL), + MB_MASTER_CHECK((mbm_opts->mbm_param_descriptor_table != NULL), ESP_ERR_INVALID_ARG, "mb incorrect descriptor table or not set."); - MB_MASTER_CHECK((cid < mbm_opts->mbm_param_descriptor_size), + MB_MASTER_CHECK((cid < mbm_opts->mbm_param_descriptor_size), ESP_ERR_NOT_FOUND, "mb incorrect cid of characteristic."); // It is assumed that characteristics cid increased in the table const mb_parameter_descriptor_t* reg_info = &mbm_opts->mbm_param_descriptor_table[cid]; - MB_MASTER_CHECK((reg_info->param_key != NULL), + MB_MASTER_CHECK((reg_info->param_key != NULL), ESP_ERR_INVALID_ARG, "mb incorrect characteristic key."); *param_buffer = reg_info; return ESP_OK; @@ -306,37 +306,37 @@ static uint8_t mbc_serial_master_get_command(mb_param_type_t param_type, mb_para switch(param_type) { // case MB_PARAM_HOLDING: - command = (mode == MB_PARAM_WRITE) ? - MB_FUNC_WRITE_MULTIPLE_REGISTERS : + command = (mode == MB_PARAM_WRITE) ? + MB_FUNC_WRITE_MULTIPLE_REGISTERS : MB_FUNC_READ_HOLDING_REGISTER; break; case MB_PARAM_INPUT: command = MB_FUNC_READ_INPUT_REGISTER; break; case MB_PARAM_COIL: - command = (mode == MB_PARAM_WRITE) ? - MB_FUNC_WRITE_MULTIPLE_COILS : + command = (mode == MB_PARAM_WRITE) ? + MB_FUNC_WRITE_MULTIPLE_COILS : MB_FUNC_READ_COILS; break; case MB_PARAM_DISCRETE: if (mode != MB_PARAM_WRITE) { command = MB_FUNC_READ_DISCRETE_INPUTS; } else { - ESP_LOGE(MB_MASTER_TAG, "%s: Incorrect mode (%u)", + ESP_LOGE(MB_MASTER_TAG, "%s: Incorrect mode (%u)", __FUNCTION__, (uint8_t)mode); } break; default: - ESP_LOGE(MB_MASTER_TAG, "%s: Incorrect param type (%u)", + ESP_LOGE(MB_MASTER_TAG, "%s: Incorrect param type (%u)", __FUNCTION__, param_type); break; } return command; } -// Helper to search parameter by name in the parameter description table +// Helper to search parameter by name in the parameter description table // and fills Modbus request fields accordingly -static esp_err_t mbc_serial_master_set_request(char* name, mb_param_mode_t mode, +static esp_err_t mbc_serial_master_set_request(char* name, mb_param_mode_t mode, mb_param_request_t* request, mb_parameter_descriptor_t* reg_data) { @@ -345,11 +345,11 @@ static esp_err_t mbc_serial_master_set_request(char* name, mb_param_mode_t mode, "Master interface uninitialized."); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; esp_err_t error = ESP_ERR_NOT_FOUND; - MB_MASTER_CHECK((name != NULL), + MB_MASTER_CHECK((name != NULL), ESP_ERR_INVALID_ARG, "mb incorrect parameter name."); - MB_MASTER_CHECK((request != NULL), + MB_MASTER_CHECK((request != NULL), ESP_ERR_INVALID_ARG, "mb incorrect request parameter."); - MB_MASTER_CHECK((mode <= MB_PARAM_WRITE), + MB_MASTER_CHECK((mode <= MB_PARAM_WRITE), ESP_ERR_INVALID_ARG, "mb incorrect mode."); MB_MASTER_ASSERT(mbm_opts->mbm_param_descriptor_table != NULL); const mb_parameter_descriptor_t* reg_ptr = mbm_opts->mbm_param_descriptor_table; @@ -369,8 +369,8 @@ static esp_err_t mbc_serial_master_set_request(char* name, mb_param_mode_t mode, request->reg_start = reg_ptr->mb_reg_start; request->reg_size = reg_ptr->mb_size; request->command = mbc_serial_master_get_command(reg_ptr->mb_param_type, mode); - MB_MASTER_CHECK((request->command > 0), - ESP_ERR_INVALID_ARG, + MB_MASTER_CHECK((request->command > 0), + ESP_ERR_INVALID_ARG, "mb incorrect command or parameter type."); if (reg_data != NULL) { *reg_data = *reg_ptr; // Set the cid registered parameter data @@ -383,12 +383,12 @@ static esp_err_t mbc_serial_master_set_request(char* name, mb_param_mode_t mode, } // Get parameter data for corresponding characteristic -static esp_err_t mbc_serial_master_get_parameter(uint16_t cid, char* name, +static esp_err_t mbc_serial_master_get_parameter(uint16_t cid, char* name, uint8_t* value_ptr, uint8_t *type) { - MB_MASTER_CHECK((name != NULL), + MB_MASTER_CHECK((name != NULL), ESP_ERR_INVALID_ARG, "mb incorrect descriptor."); - MB_MASTER_CHECK((type != NULL), + MB_MASTER_CHECK((type != NULL), ESP_ERR_INVALID_ARG, "type pointer is incorrect."); esp_err_t error = ESP_ERR_INVALID_RESPONSE; mb_param_request_t request ; @@ -415,14 +415,14 @@ static esp_err_t mbc_serial_master_get_parameter(uint16_t cid, char* name, } // Set parameter value for characteristic selected by name and cid -static esp_err_t mbc_serial_master_set_parameter(uint16_t cid, char* name, +static esp_err_t mbc_serial_master_set_parameter(uint16_t cid, char* name, uint8_t* value_ptr, uint8_t *type) { - MB_MASTER_CHECK((name != NULL), + MB_MASTER_CHECK((name != NULL), ESP_ERR_INVALID_ARG, "mb incorrect descriptor."); MB_MASTER_CHECK((value_ptr != NULL), ESP_ERR_INVALID_ARG, "value pointer is incorrect."); - MB_MASTER_CHECK((type != NULL), + MB_MASTER_CHECK((type != NULL), ESP_ERR_INVALID_ARG, "type pointer is incorrect."); esp_err_t error = ESP_ERR_INVALID_RESPONSE; mb_param_request_t request ; @@ -471,7 +471,7 @@ eMBErrorCode eMBRegInputCBSerialMaster(UCHAR * pucRegBuffer, USHORT usAddress, "Master stack processing error."); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; // Number of input registers to be transferred - USHORT usRegInputNregs = (USHORT)mbm_opts->mbm_reg_buffer_size; + USHORT usRegInputNregs = (USHORT)mbm_opts->mbm_reg_buffer_size; UCHAR* pucInputBuffer = (UCHAR*)mbm_opts->mbm_reg_buffer_ptr; // Get instance address USHORT usRegs = usNRegs; eMBErrorCode eStatus = MB_ENOERR; @@ -555,7 +555,7 @@ eMBErrorCode eMBRegCoilsCBSerialMaster(UCHAR* pucRegBuffer, USHORT usAddress, { MB_MASTER_CHECK((mbm_interface_ptr != NULL), MB_EILLSTATE, "Master interface uninitialized."); - MB_MASTER_CHECK((pucRegBuffer != NULL), + MB_MASTER_CHECK((pucRegBuffer != NULL), MB_EINVAL, "Master stack processing error."); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; USHORT usRegCoilNregs = (USHORT)mbm_opts->mbm_reg_buffer_size; @@ -608,7 +608,7 @@ eMBErrorCode eMBRegDiscreteCBSerialMaster(UCHAR * pucRegBuffer, USHORT usAddress { MB_MASTER_CHECK((mbm_interface_ptr != NULL), MB_EILLSTATE, "Master interface uninitialized."); - MB_MASTER_CHECK((pucRegBuffer != NULL), + MB_MASTER_CHECK((pucRegBuffer != NULL), MB_EINVAL, "Master stack processing error."); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; USHORT usRegDiscreteNregs = (USHORT)mbm_opts->mbm_reg_buffer_size; @@ -666,7 +666,7 @@ esp_err_t mbc_serial_master_create(void** handler) BaseType_t status = 0; // Parameter change notification queue mbm_opts->mbm_event_group = xEventGroupCreate(); - MB_MASTER_CHECK((mbm_opts->mbm_event_group != NULL), + MB_MASTER_CHECK((mbm_opts->mbm_event_group != NULL), ESP_ERR_NO_MEM, "mb event group error."); // Create modbus controller task status = xTaskCreate((void*)&modbus_master_task, diff --git a/components/freemodbus/serial_master/modbus_controller/mbc_serial_master.h b/components/freemodbus/serial_master/modbus_controller/mbc_serial_master.h index ab9f46a625..5ed72c9b8b 100644 --- a/components/freemodbus/serial_master/modbus_controller/mbc_serial_master.h +++ b/components/freemodbus/serial_master/modbus_controller/mbc_serial_master.h @@ -35,4 +35,3 @@ esp_err_t mbc_serial_master_create(void** handler); #endif // _MODBUS_SERIAL_CONTROLLER_MASTER - diff --git a/components/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.c b/components/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.c index 9221279a36..eae69e2fe2 100644 --- a/components/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.c +++ b/components/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.c @@ -33,7 +33,7 @@ static mb_slave_interface_t* mbs_interface_ptr = NULL; // Modbus task function static void modbus_slave_task(void *pvParameters) { - // Modbus interface must be initialized before start + // Modbus interface must be initialized before start MB_SLAVE_ASSERT(mbs_interface_ptr != NULL); mb_slave_options_t* mbs_opts = &mbs_interface_ptr->opts; @@ -250,9 +250,9 @@ static esp_err_t mbc_serial_slave_get_param_info(mb_param_info_t* reg_info, uint eMBErrorCode eMBRegInputCBSerialSlave(UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs) { - MB_SLAVE_CHECK((mbs_interface_ptr != NULL), + MB_SLAVE_CHECK((mbs_interface_ptr != NULL), MB_EILLSTATE, "Slave stack uninitialized."); - MB_SLAVE_CHECK((pucRegBuffer != NULL), + MB_SLAVE_CHECK((pucRegBuffer != NULL), MB_EINVAL, "Slave stack call failed."); mb_slave_options_t* mbs_opts = &mbs_interface_ptr->opts; USHORT usRegInputNregs = (USHORT)(mbs_opts->mbs_area_descriptors[MB_PARAM_INPUT].size >> 1); // Number of input registers @@ -292,9 +292,9 @@ eMBErrorCode eMBRegInputCBSerialSlave(UCHAR * pucRegBuffer, USHORT usAddress, eMBErrorCode eMBRegHoldingCBSerialSlave(UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegisterMode eMode) { - MB_SLAVE_CHECK((mbs_interface_ptr != NULL), + MB_SLAVE_CHECK((mbs_interface_ptr != NULL), MB_EILLSTATE, "Slave stack uninitialized."); - MB_SLAVE_CHECK((pucRegBuffer != NULL), + MB_SLAVE_CHECK((pucRegBuffer != NULL), MB_EINVAL, "Slave stack call failed."); mb_slave_options_t* mbs_opts = &mbs_interface_ptr->opts; USHORT usRegHoldingNregs = (USHORT)(mbs_opts->mbs_area_descriptors[MB_PARAM_HOLDING].size >> 1); @@ -350,9 +350,9 @@ eMBErrorCode eMBRegHoldingCBSerialSlave(UCHAR * pucRegBuffer, USHORT usAddress, eMBErrorCode eMBRegCoilsCBSerialSlave(UCHAR* pucRegBuffer, USHORT usAddress, USHORT usNCoils, eMBRegisterMode eMode) { - MB_SLAVE_CHECK((mbs_interface_ptr != NULL), + MB_SLAVE_CHECK((mbs_interface_ptr != NULL), MB_EILLSTATE, "Slave stack uninitialized."); - MB_SLAVE_CHECK((pucRegBuffer != NULL), + MB_SLAVE_CHECK((pucRegBuffer != NULL), MB_EINVAL, "Slave stack call failed."); mb_slave_options_t* mbs_opts = &mbs_interface_ptr->opts; USHORT usRegCoilNregs = (USHORT)(mbs_opts->mbs_area_descriptors[MB_PARAM_COIL].size >> 1); // number of registers in storage area @@ -407,9 +407,9 @@ eMBErrorCode eMBRegCoilsCBSerialSlave(UCHAR* pucRegBuffer, USHORT usAddress, eMBErrorCode eMBRegDiscreteCBSerialSlave(UCHAR* pucRegBuffer, USHORT usAddress, USHORT usNDiscrete) { - MB_SLAVE_CHECK((mbs_interface_ptr != NULL), + MB_SLAVE_CHECK((mbs_interface_ptr != NULL), MB_EILLSTATE, "Slave stack uninitialized."); - MB_SLAVE_CHECK((pucRegBuffer != NULL), + MB_SLAVE_CHECK((pucRegBuffer != NULL), MB_EINVAL, "Slave stack call failed."); mb_slave_options_t* mbs_opts = &mbs_interface_ptr->opts; USHORT usRegDiscreteNregs = (USHORT)(mbs_opts->mbs_area_descriptors[MB_PARAM_DISCRETE].size >> 1); // number of registers in storage area @@ -518,4 +518,3 @@ esp_err_t mbc_serial_slave_create(void** handler) return ESP_OK; } - diff --git a/components/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.h b/components/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.h index 85558e962e..e8c5c3d71c 100644 --- a/components/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.h +++ b/components/freemodbus/serial_slave/modbus_controller/mbc_serial_slave.h @@ -37,4 +37,3 @@ esp_err_t mbc_serial_slave_create(void** handler); #endif // _MODBUS_SERIAL_CONTROLLER_SLAVE - diff --git a/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c b/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c index 5b5bb325be..158aa7a798 100644 --- a/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c +++ b/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.c @@ -161,7 +161,7 @@ static esp_err_t mbc_tcp_master_set_descriptor(const mb_parameter_descriptor_t* MB_MASTER_CHECK((num_elements >= 1), ESP_ERR_INVALID_ARG, "mb table size is incorrect."); mb_master_options_t* mbm_opts = &mbm_interface_ptr->opts; MB_MASTER_CHECK((mbm_opts != NULL), ESP_ERR_INVALID_ARG, "mb options."); - + const char** comm_ip_table = (const char**)mbm_opts->mbm_comm.ip_addr; MB_MASTER_CHECK((comm_ip_table != NULL), ESP_ERR_INVALID_ARG, "mb ip table address is incorrect."); diff --git a/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.h b/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.h index 612f8a1c7c..9593f77a1d 100644 --- a/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.h +++ b/components/freemodbus/tcp_master/modbus_controller/mbc_tcp_master.h @@ -40,4 +40,3 @@ esp_err_t mbc_tcp_master_create(void** handler); #endif // _MODBUS_TCP_CONTROLLER_SLAVE - diff --git a/components/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.h b/components/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.h index efa9194d7b..0987610092 100644 --- a/components/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.h +++ b/components/freemodbus/tcp_slave/modbus_controller/mbc_tcp_slave.h @@ -38,4 +38,3 @@ esp_err_t mbc_tcp_slave_create(void** handler); #endif // _MODBUS_TCP_CONTROLLER_SLAVE - diff --git a/components/freemodbus/tcp_slave/port/port_tcp_slave.c b/components/freemodbus/tcp_slave/port/port_tcp_slave.c index 5a9d25469f..67f04c2351 100644 --- a/components/freemodbus/tcp_slave/port/port_tcp_slave.c +++ b/components/freemodbus/tcp_slave/port/port_tcp_slave.c @@ -706,4 +706,3 @@ xMBTCPPortSendResponse( UCHAR * pucMBTCPFrame, USHORT usTCPLength ) } return bFrameSent; } - diff --git a/components/freertos/CMakeLists.txt b/components/freertos/CMakeLists.txt index 412dcb166b..4c702bd2a1 100644 --- a/components/freertos/CMakeLists.txt +++ b/components/freertos/CMakeLists.txt @@ -13,7 +13,7 @@ set(srcs "xtensa/xtensa_vector_defaults.S" "xtensa/xtensa_vectors.S") -list(APPEND srcs +list(APPEND srcs "croutine.c" "event_groups.c" "list.c" @@ -23,7 +23,7 @@ list(APPEND srcs "stream_buffer.c" "FreeRTOS-openocd.c") -set(include_dirs +set(include_dirs include xtensa/include) @@ -41,11 +41,11 @@ if(CONFIG_ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY) # but requirements can't depend on config options, so always require it. idf_component_register(SRCS "${srcs}" INCLUDE_DIRS ${include_dirs} - PRIV_INCLUDE_DIRS ${private_include_dirs} + PRIV_INCLUDE_DIRS ${private_include_dirs} LDFRAGMENTS linker.lf REQUIRES app_trace esp_timer PRIV_REQUIRES soc) - + idf_component_get_property(COMPONENT_DIR freertos COMPONENT_DIR) idf_component_set_property(freertos ORIG_INCLUDE_PATH "${COMPONENT_DIR}/include/freertos/") @@ -63,10 +63,10 @@ set_source_files_properties( _ESP_FREERTOS_INTERNAL ) -# The freertos component provides the `start_app` and `start_app_other_cores` -# if it is included in the build. It then calls `app_main` -# from the main task created, which must be provided by the user. +# The freertos component provides the `start_app` and `start_app_other_cores` +# if it is included in the build. It then calls `app_main` +# from the main task created, which must be provided by the user. # Like for `start_app` and `start_app_other_cores`, # we can't establish dependency on what we don't yet know, so we force the # linker to not drop this symbol. -target_link_libraries(${COMPONENT_LIB} INTERFACE "-u app_main") \ No newline at end of file +target_link_libraries(${COMPONENT_LIB} INTERFACE "-u app_main") diff --git a/components/freertos/History.txt b/components/freertos/History.txt index 6450371af8..8caaf23ffe 100644 --- a/components/freertos/History.txt +++ b/components/freertos/History.txt @@ -2705,6 +2705,3 @@ Changes between V1.00 and V1.01 + Prevent the call to kbhit() in main.c for debug builds as the debugger seems to have problems stepping over the call. This if for the PC port only. - - - diff --git a/components/freertos/croutine.c b/components/freertos/croutine.c index 56c8ac290f..f8e24ee7d3 100644 --- a/components/freertos/croutine.c +++ b/components/freertos/croutine.c @@ -350,4 +350,3 @@ BaseType_t xReturn; } #endif /* configUSE_CO_ROUTINES == 0 */ - diff --git a/components/freertos/event_groups.c b/components/freertos/event_groups.c index f2131994f0..9467d7c9c9 100644 --- a/components/freertos/event_groups.c +++ b/components/freertos/event_groups.c @@ -252,7 +252,7 @@ BaseType_t xTimeoutOccurred = pdFALSE; } } } - + taskEXIT_CRITICAL( &pxEventBits->eventGroupMux ); if( xTicksToWait != ( TickType_t ) 0 ) @@ -751,5 +751,3 @@ BaseType_t xWaitConditionMet = pdFALSE; #endif /* configUSE_TRACE_FACILITY */ /*-----------------------------------------------------------*/ - - diff --git a/components/freertos/include/freertos/FreeRTOS.h b/components/freertos/include/freertos/FreeRTOS.h index 46ec68c574..2c9c5b13d0 100644 --- a/components/freertos/include/freertos/FreeRTOS.h +++ b/components/freertos/include/freertos/FreeRTOS.h @@ -1327,4 +1327,3 @@ typedef StaticStreamBuffer_t StaticMessageBuffer_t; #endif #endif /* INC_FREERTOS_H */ - diff --git a/components/freertos/include/freertos/atomic.h b/components/freertos/include/freertos/atomic.h index 2b388775fe..df52a0f01f 100644 --- a/components/freertos/include/freertos/atomic.h +++ b/components/freertos/include/freertos/atomic.h @@ -29,9 +29,9 @@ * @file atomic.h * @brief FreeRTOS atomic operation support. * - * This file implements atomic by disabling interrupts globally. - * Implementation with architecture specific atomic instructions - * are to be provided under each compiler directory. + * This file implements atomic by disabling interrupts globally. + * Implementation with architecture specific atomic instructions + * are to be provided under each compiler directory. */ #ifndef ATOMIC_H @@ -71,14 +71,14 @@ extern "C" { #endif /* portSET_INTERRUPT_MASK_FROM_ISR() */ -/* Port specific definition -- "always inline". - * Inline is compiler specific, and may not always get inlined depending on your optimization level. - * Also, inline is considerred as performance optimization for atomic. +/* Port specific definition -- "always inline". + * Inline is compiler specific, and may not always get inlined depending on your optimization level. + * Also, inline is considerred as performance optimization for atomic. * Thus, if portFORCE_INLINE is not provided by portmacro.h, instead of resulting error, - * simply define it. + * simply define it. */ #ifndef portFORCE_INLINE - #define portFORCE_INLINE + #define portFORCE_INLINE #endif #define ATOMIC_COMPARE_AND_SWAP_SUCCESS 0x1U /**< Compare and swap succeeded, swapped. */ diff --git a/components/freertos/include/freertos/deprecated_definitions.h b/components/freertos/include/freertos/deprecated_definitions.h index 9cece988f6..70fc403bd2 100644 --- a/components/freertos/include/freertos/deprecated_definitions.h +++ b/components/freertos/include/freertos/deprecated_definitions.h @@ -276,4 +276,3 @@ projects should not use them. */ #endif #endif /* DEPRECATED_DEFINITIONS_H */ - diff --git a/components/freertos/include/freertos/event_groups.h b/components/freertos/include/freertos/event_groups.h index 3aa839fc4e..5773e8d907 100644 --- a/components/freertos/include/freertos/event_groups.h +++ b/components/freertos/include/freertos/event_groups.h @@ -695,5 +695,3 @@ void vEventGroupClearBitsCallback( void *pvEventGroup, const uint32_t ulBitsToCl #endif #endif /* EVENT_GROUPS_H */ - - diff --git a/components/freertos/include/freertos/list.h b/components/freertos/include/freertos/list.h index 73b4f3aa96..d06481e29b 100644 --- a/components/freertos/include/freertos/list.h +++ b/components/freertos/include/freertos/list.h @@ -409,4 +409,3 @@ UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove ) PRIVILEGED_FUNCTIO #endif #endif - diff --git a/components/freertos/include/freertos/message_buffer.h b/components/freertos/include/freertos/message_buffer.h index 83869582d8..a49324da43 100644 --- a/components/freertos/include/freertos/message_buffer.h +++ b/components/freertos/include/freertos/message_buffer.h @@ -106,7 +106,7 @@ typedef void * MessageBufferHandle_t; * buffer. * * Example use: - * @code{c} + * @code{c} * * void vAFunction( void ) * { @@ -129,7 +129,7 @@ typedef void * MessageBufferHandle_t; * // The message buffer was created successfully and can now be used. * } * - * @endcode + * @endcode * \ingroup MessageBufferManagement */ #define xMessageBufferCreate( xBufferSizeBytes ) ( MessageBufferHandle_t ) xStreamBufferGenericCreate( xBufferSizeBytes, ( size_t ) 0, pdTRUE ) @@ -159,7 +159,7 @@ typedef void * MessageBufferHandle_t; * pxStaticmessageBuffer are NULL then NULL is returned. * * Example use: - * @code{c} + * @code{c} * * // Used to dimension the array used to hold the messages. The available space * // will actually be one less than this, so 999. @@ -187,7 +187,7 @@ typedef void * MessageBufferHandle_t; * // Other code that uses the message buffer can go here. * } * - * @endcode + * @endcode * \ingroup MessageBufferManagement */ #define xMessageBufferCreateStatic( xBufferSizeBytes, pucMessageBufferStorageArea, pxStaticMessageBuffer ) ( MessageBufferHandle_t ) xStreamBufferGenericCreateStatic( xBufferSizeBytes, 0, pdTRUE, pucMessageBufferStorageArea, pxStaticMessageBuffer ) @@ -248,7 +248,7 @@ typedef void * MessageBufferHandle_t; * time out then xDataLengthBytes is returned. * * Example use: - * @code{c} + * @code{c} * void vAFunction( MessageBufferHandle_t xMessageBuffer ) * { * size_t xBytesSent; @@ -276,7 +276,7 @@ typedef void * MessageBufferHandle_t; * // not enough free space in the buffer. * } * } - * @endcode + * @endcode * \ingroup MessageBufferManagement */ #define xMessageBufferSend( xMessageBuffer, pvTxData, xDataLengthBytes, xTicksToWait ) xStreamBufferSend( ( StreamBufferHandle_t ) xMessageBuffer, pvTxData, xDataLengthBytes, xTicksToWait ) @@ -338,7 +338,7 @@ typedef void * MessageBufferHandle_t; * then 0 is returned, otherwise xDataLengthBytes is returned. * * Example use: - * @code{c} + * @code{c} * // A message buffer that has already been created. * MessageBufferHandle_t xMessageBuffer; * @@ -370,7 +370,7 @@ typedef void * MessageBufferHandle_t; * // documentation for the port in use for port specific instructions. * portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); * } - * @endcode + * @endcode * \ingroup MessageBufferManagement */ #define xMessageBufferSendFromISR( xMessageBuffer, pvTxData, xDataLengthBytes, pxHigherPriorityTaskWoken ) xStreamBufferSendFromISR( ( StreamBufferHandle_t ) xMessageBuffer, pvTxData, xDataLengthBytes, pxHigherPriorityTaskWoken ) @@ -427,7 +427,7 @@ typedef void * MessageBufferHandle_t; * zero is returned. * * Example use: - * @code{c} + * @code{c} * void vAFunction( MessageBuffer_t xMessageBuffer ) * { * uint8_t ucRxData[ 20 ]; @@ -448,7 +448,7 @@ typedef void * MessageBufferHandle_t; * // the message here.... * } * } - * @endcode + * @endcode * \ingroup MessageBufferManagement */ #define xMessageBufferReceive( xMessageBuffer, pvRxData, xBufferLengthBytes, xTicksToWait ) xStreamBufferReceive( ( StreamBufferHandle_t ) xMessageBuffer, pvRxData, xBufferLengthBytes, xTicksToWait ) @@ -507,7 +507,7 @@ typedef void * MessageBufferHandle_t; * any. * * Example use: - * @code{c} + * @code{c} * // A message buffer that has already been created. * MessageBuffer_t xMessageBuffer; * @@ -539,7 +539,7 @@ typedef void * MessageBufferHandle_t; * // documentation for the port in use for port specific instructions. * portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); * } - * @endcode + * @endcode * \ingroup MessageBufferManagement */ #define xMessageBufferReceiveFromISR( xMessageBuffer, pvRxData, xBufferLengthBytes, pxHigherPriorityTaskWoken ) xStreamBufferReceiveFromISR( ( StreamBufferHandle_t ) xMessageBuffer, pvRxData, xBufferLengthBytes, pxHigherPriorityTaskWoken ) diff --git a/components/freertos/include/freertos/mpu_wrappers.h b/components/freertos/include/freertos/mpu_wrappers.h index 121ce75f7f..7cbad5da08 100644 --- a/components/freertos/include/freertos/mpu_wrappers.h +++ b/components/freertos/include/freertos/mpu_wrappers.h @@ -184,4 +184,3 @@ only for ports that are using the MPU. */ #endif /* MPU_WRAPPERS_H */ - diff --git a/components/freertos/include/freertos/portable.h b/components/freertos/include/freertos/portable.h index dce07473fd..0c39bb9f6d 100644 --- a/components/freertos/include/freertos/portable.h +++ b/components/freertos/include/freertos/portable.h @@ -201,4 +201,3 @@ void vPortEndScheduler( void ) PRIVILEGED_FUNCTION; #endif #endif /* PORTABLE_H */ - diff --git a/components/freertos/include/freertos/projdefs.h b/components/freertos/include/freertos/projdefs.h index 03e042f882..ce647fb6fb 100644 --- a/components/freertos/include/freertos/projdefs.h +++ b/components/freertos/include/freertos/projdefs.h @@ -124,6 +124,3 @@ itself. */ #endif /* PROJDEFS_H */ - - - diff --git a/components/freertos/include/freertos/queue.h b/components/freertos/include/freertos/queue.h index 4916d9b6da..8c35465316 100644 --- a/components/freertos/include/freertos/queue.h +++ b/components/freertos/include/freertos/queue.h @@ -857,7 +857,7 @@ void vQueueDelete( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION; #define xQueueSendToFrontFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_FRONT ) -/** +/** * This is a macro that calls xQueueGenericSendFromISR(). * * Post an item to the back of a queue. It is safe to use this macro from @@ -1478,4 +1478,3 @@ uint8_t ucQueueGetQueueType( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION; #endif #endif /* QUEUE_H */ - diff --git a/components/freertos/include/freertos/semphr.h b/components/freertos/include/freertos/semphr.h index b9eaf89a49..971d74d496 100644 --- a/components/freertos/include/freertos/semphr.h +++ b/components/freertos/include/freertos/semphr.h @@ -1091,5 +1091,3 @@ typedef QueueHandle_t SemaphoreHandle_t; #define uxSemaphoreGetCount( xSemaphore ) uxQueueMessagesWaiting( ( QueueHandle_t ) ( xSemaphore ) ) #endif /* SEMAPHORE_H */ - - diff --git a/components/freertos/include/freertos/stack_macros.h b/components/freertos/include/freertos/stack_macros.h index 2c77d090b4..b8eca4246f 100644 --- a/components/freertos/include/freertos/stack_macros.h +++ b/components/freertos/include/freertos/stack_macros.h @@ -138,4 +138,3 @@ #endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ #endif /* STACK_MACROS_H */ - diff --git a/components/freertos/include/freertos/stream_buffer.h b/components/freertos/include/freertos/stream_buffer.h index 365c6c2706..1a3d8f5190 100644 --- a/components/freertos/include/freertos/stream_buffer.h +++ b/components/freertos/include/freertos/stream_buffer.h @@ -174,7 +174,7 @@ typedef struct StreamBufferDef_t * StreamBufferHandle_t; * // Defines the memory that will actually hold the streams within the stream * // buffer. * static uint8_t ucStorageBuffer[ STORAGE_SIZE_BYTES ]; - * + * * // The variable used to hold the stream buffer structure. * StaticStreamBuffer_t xStreamBufferStruct; * @@ -187,7 +187,7 @@ typedef struct StreamBufferDef_t * StreamBufferHandle_t; * xTriggerLevel, * ucBufferStorage, * &xStreamBufferStruct ); - * + * * // As neither the pucStreamBufferStorageArea or pxStaticStreamBuffer * // parameters were NULL, xStreamBuffer will not be NULL, and can be used to * // reference the created stream buffer in other stream buffer API calls. @@ -359,7 +359,7 @@ size_t xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, * // There was not enough free space in the stream buffer for the entire * // string to be written, ut xBytesSent bytes were written. * } - * + * * // If xHigherPriorityTaskWoken was set to pdTRUE inside * // xStreamBufferSendFromISR() then a task that has a priority above the * // priority of the currently executing task was unblocked and a context diff --git a/components/freertos/include/freertos/task.h b/components/freertos/include/freertos/task.h index 1b467d678e..29a4bee27b 100644 --- a/components/freertos/include/freertos/task.h +++ b/components/freertos/include/freertos/task.h @@ -629,7 +629,7 @@ is used in assert() statements. */ /* * xTaskCreateRestrictedStatic() should only be used in systems that include an * MPU implementation. - * + * * Only available when configSUPPORT_STATIC_ALLOCATION is set to 1. * * Internally, within the FreeRTOS implementation, tasks use two blocks of @@ -702,7 +702,7 @@ is used in assert() statements. */ * // and/or timer task. * for( ;; ); * } - * @endcode + * @endcode * \ingroup Tasks */ #if( ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) @@ -920,7 +920,7 @@ BaseType_t xTaskAbortDelay( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; /** * Obtain the priority of any task. - * + * * INCLUDE_uxTaskPriorityGet must be defined as 1 for this function to be available. * See the configuration section for more information. * @@ -1036,8 +1036,8 @@ eTaskState eTaskGetState( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; void vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t *pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState ) PRIVILEGED_FUNCTION; /** - * Set the priority of any task. - * + * Set the priority of any task. + * * INCLUDE_vTaskPrioritySet must be defined as 1 for this function to be available. * See the configuration section for more information. * @@ -1912,8 +1912,8 @@ uint32_t ulTaskGetIdleRunTimeCounter( void ) PRIVILEGED_FUNCTION; * updated. ulValue is not used and xTaskNotify() always returns pdPASS in * this case. * - * @param pulPreviousNotificationValue Can be used to pass out the subject - * task's notification value before any bits are modified by the notify + * @param pulPreviousNotificationValue Can be used to pass out the subject + * task's notification value before any bits are modified by the notify * function. * * @return Dependent on the value of eAction. See the description of the @@ -1995,10 +1995,10 @@ BaseType_t xTaskGenericNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNo * The task receives a notification without its notification value being * updated. ulValue is not used and xTaskNotify() always returns pdPASS in * this case. - * - * @param pulPreviousNotificationValue Can be used to pass out the subject task's + * + * @param pulPreviousNotificationValue Can be used to pass out the subject task's * notification value before any bits are modified by the notify function. - * + * * @param pxHigherPriorityTaskWoken xTaskNotifyFromISR() will set * *pxHigherPriorityTaskWoken to pdTRUE if sending the notification caused the * task to which the notification was sent to leave the Blocked state, and the @@ -2263,7 +2263,7 @@ uint32_t ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait * * @return pdTRUE if the task's notification state was set to * eNotWaitingNotification, otherwise pdFALSE. - * + * * \ingroup TaskNotifications */ BaseType_t xTaskNotifyStateClear( TaskHandle_t xTask ); @@ -2539,6 +2539,3 @@ UBaseType_t uxTaskGetSnapshotAll( TaskSnapshot_t * const pxTaskSnapshotArray, co } #endif #endif /* INC_TASK_H */ - - - diff --git a/components/freertos/include/freertos/timers.h b/components/freertos/include/freertos/timers.h index 92ffc31fe0..9a5e23385f 100644 --- a/components/freertos/include/freertos/timers.h +++ b/components/freertos/include/freertos/timers.h @@ -1247,6 +1247,3 @@ BaseType_t xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommand } #endif #endif /* TIMERS_H */ - - - diff --git a/components/freertos/license.txt b/components/freertos/license.txt index b87634e32f..9e2f3185f2 100644 --- a/components/freertos/license.txt +++ b/components/freertos/license.txt @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/components/freertos/linker.lf b/components/freertos/linker.lf index f5a6761a5d..966527e7de 100644 --- a/components/freertos/linker.lf +++ b/components/freertos/linker.lf @@ -114,4 +114,4 @@ entries: queue: xQueueSelectFromSet (default) port:main_task (default) port:esp_startup_start_app (default) - port:esp_startup_start_app_other_cores (default) \ No newline at end of file + port:esp_startup_start_app_other_cores (default) diff --git a/components/freertos/list.c b/components/freertos/list.c index 69f6c752de..42e482d36d 100644 --- a/components/freertos/list.c +++ b/components/freertos/list.c @@ -196,4 +196,3 @@ List_t * const pxList = pxItemToRemove->pxContainer; return pxList->uxNumberOfItems; } /*-----------------------------------------------------------*/ - diff --git a/components/freertos/queue.c b/components/freertos/queue.c index 356c93e323..c00a940cc2 100644 --- a/components/freertos/queue.c +++ b/components/freertos/queue.c @@ -263,7 +263,7 @@ Queue_t * const pxQueue = xQueue; configASSERT( pxQueue ); - if( xNewQueue == pdTRUE ) + if( xNewQueue == pdTRUE ) { vPortCPUInitializeMutex(&pxQueue->mux); } @@ -494,7 +494,7 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT /* In case this is a recursive mutex. */ pxNewQueue->u.xSemaphore.uxRecursiveCallCount = 0; vPortCPUInitializeMutex(&pxNewQueue->mux); - + traceCREATE_MUTEX( pxNewQueue ); /* Start with the semaphore in the expected state. */ @@ -945,9 +945,9 @@ Queue_t * const pxQueue = xQueue; task is already in a ready list before it yields - in which case the yield will not cause a context switch unless there is also a higher priority task in the pending ready list. */ - taskEXIT_CRITICAL( &pxQueue->mux); + taskEXIT_CRITICAL( &pxQueue->mux); portYIELD_WITHIN_API(); - + } else { @@ -1581,7 +1581,7 @@ Queue_t * const pxQueue = xQueue; vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); prvUnlockQueue( pxQueue ); taskEXIT_CRITICAL( &pxQueue->mux); - portYIELD_WITHIN_API(); + portYIELD_WITHIN_API(); } else { @@ -2672,7 +2672,7 @@ Queue_t * const pxQueue = xQueue; mtCOVERAGE_TEST_MARKER(); } } - portEXIT_CRITICAL(&queue_registry_spinlock); + portEXIT_CRITICAL(&queue_registry_spinlock); } #endif /* configQUEUE_REGISTRY_SIZE */ @@ -2948,15 +2948,3 @@ Queue_t * const pxQueue = xQueue; } #endif /* configUSE_QUEUE_SETS */ - - - - - - - - - - - - diff --git a/components/freertos/tasks.c b/components/freertos/tasks.c index 4689138d06..a34c264763 100644 --- a/components/freertos/tasks.c +++ b/components/freertos/tasks.c @@ -477,7 +477,7 @@ static portTASK_FUNCTION_PROTO( prvIdleTask, pvParameters ); /* Function to call the Thread Local Storage Pointer Deletion Callbacks. Will be * called during task deletion before prvDeleteTCB is called. - */ + */ #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 ) && ( configTHREAD_LOCAL_STORAGE_DELETE_CALLBACKS ) static void prvDeleteTLS( TCB_t *pxTCB ); #endif @@ -886,7 +886,7 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode, StackType_t *pxTopOfStack; UBaseType_t x; - #if (portNUM_PROCESSORS < 2) + #if (portNUM_PROCESSORS < 2) xCoreID = 0; #endif @@ -1142,7 +1142,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode { TCB_t *curTCB, *tcb0, *tcb1; - #if (portNUM_PROCESSORS < 2) + #if (portNUM_PROCESSORS < 2) xCoreID = 0; #endif @@ -1359,7 +1359,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 ) && ( configTHREAD_LOCAL_STORAGE_DELETE_CALLBACKS ) prvDeleteTLS( pxTCB ); #endif - + prvDeleteTCB( pxTCB ); } @@ -2015,7 +2015,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode if( listIS_CONTAINED_WITHIN( &xSuspendedTaskList, &( pxTCB->xStateListItem ) ) != pdFALSE ) { /* Has the task already been resumed from within an ISR? */ - if( listIS_CONTAINED_WITHIN( &xPendingReadyList[xPortGetCoreID()], &( pxTCB->xEventListItem )) || + if( listIS_CONTAINED_WITHIN( &xPendingReadyList[xPortGetCoreID()], &( pxTCB->xEventListItem )) || listIS_CONTAINED_WITHIN( &xPendingReadyList[!xPortGetCoreID()], &( pxTCB->xEventListItem )) == pdFALSE ) { /* Is it in the suspended list because it is in the Suspended @@ -2109,7 +2109,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode TCB_t * const pxTCB = xTaskToResume; configASSERT( xTaskToResume ); - + /* RTOS ports that support interrupt nesting have the concept of a maximum system call (or maximum API call) interrupt priority. Interrupts that are above the maximum system call priority are keep @@ -2127,7 +2127,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB, TaskFunction_t pxTaskCode provided on the following link: https://www.freertos.org/RTOS-Cortex-M3-M4.html */ //portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); - + taskENTER_CRITICAL_ISR(&xTaskQueueMutex); { if( prvTaskIsTaskSuspended( pxTCB ) != pdFALSE ) @@ -2186,7 +2186,7 @@ StackType_t *pxIdleTaskStackBuffer[portNUM_PROCESSORS] = {NULL}; uint32_t ulIdleTaskStackSize; #endif - for(BaseType_t i = 0; i < portNUM_PROCESSORS; i++) + for(BaseType_t i = 0; i < portNUM_PROCESSORS; i++) { /* Add the idle task at the lowest priority. */ #if( 0 ) /* configSUPPORT_STATIC_ALLOCATION == 1 ) Temporarily unsupported IDF-2243 */ @@ -2413,7 +2413,7 @@ void vTaskSuspendAll( void ) return xReturn; } - + #endif /* configUSE_TICKLESS_IDLE */ /*----------------------------------------------------------*/ @@ -2829,8 +2829,8 @@ TCB_t *pxTCB; TaskHandle_t xTaskGetIdleTaskHandleForCPU( UBaseType_t cpuid ) { - configASSERT( cpuid < portNUM_PROCESSORS ); - configASSERT( ( xIdleTaskHandle[cpuid] != NULL ) ); + configASSERT( cpuid < portNUM_PROCESSORS ); + configASSERT( ( xIdleTaskHandle[cpuid] != NULL ) ); return xIdleTaskHandle[cpuid]; } #endif /* INCLUDE_xTaskGetIdleTaskHandle */ @@ -3380,11 +3380,11 @@ void vTaskSwitchContext( void ) --uxDynamicTopReady; } - #else + #else //For Unicore targets we can keep the current FreeRTOS O(1) - //Scheduler. I hope to optimize better the scheduler for + //Scheduler. I hope to optimize better the scheduler for //Multicore settings -- This will involve to create a per - //affinity ready task list which will impact hugely on + //affinity ready task list which will impact hugely on //tasks module taskSELECT_HIGHEST_PRIORITY_TASK(); #endif @@ -3502,32 +3502,32 @@ UBaseType_t i, uxTargetCPU; This function assumes that a check has already been made to ensure that pxEventList is not empty. */ - if ( ( listLIST_IS_EMPTY( pxEventList ) ) == pdFALSE ) + if ( ( listLIST_IS_EMPTY( pxEventList ) ) == pdFALSE ) { pxUnblockedTCB = listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ configASSERT( pxUnblockedTCB ); ( void ) uxListRemove( &( pxUnblockedTCB->xEventListItem ) ); - } - else + } + else { taskEXIT_CRITICAL_ISR(&xTaskQueueMutex); return pdFALSE; } xTaskCanBeReady = pdFALSE; - if ( pxUnblockedTCB->xCoreID == tskNO_AFFINITY ) + if ( pxUnblockedTCB->xCoreID == tskNO_AFFINITY ) { uxTargetCPU = xPortGetCoreID(); - for (i = 0; i < portNUM_PROCESSORS; i++) + for (i = 0; i < portNUM_PROCESSORS; i++) { - if ( uxSchedulerSuspended[ i ] == ( UBaseType_t ) pdFALSE ) + if ( uxSchedulerSuspended[ i ] == ( UBaseType_t ) pdFALSE ) { xTaskCanBeReady = pdTRUE; break; } } - } - else + } + else { uxTargetCPU = pxUnblockedTCB->xCoreID; xTaskCanBeReady = uxSchedulerSuspended[ uxTargetCPU ] == ( UBaseType_t ) pdFALSE; @@ -4033,7 +4033,7 @@ UBaseType_t uxPriority; for(BaseType_t i = 0; i < portNUM_PROCESSORS; i++) { vListInitialise( &xPendingReadyList[ i ] ); } - #else + #else vListInitialise( &xPendingReadyList[xPortGetCoreID()] ); #endif @@ -4704,7 +4704,7 @@ TCB_t *pxTCB; TCB_t * const pxTCB = pxMutexHolder; UBaseType_t uxPriorityUsedOnEntry, uxPriorityToUse; const UBaseType_t uxOnlyOneMutexHeld = ( UBaseType_t ) 1; - + taskENTER_CRITICAL(&xTaskQueueMutex); if( pxMutexHolder != NULL ) { @@ -5557,7 +5557,7 @@ TickType_t uxReturn; { TCB_t * pxTCB; uint8_t ucOriginalNotifyState; - + configASSERT( xTaskToNotify ); @@ -5675,7 +5675,7 @@ TickType_t uxReturn; uint32_t ulTaskGetIdleRunTimeCounter( void ) { taskENTER_CRITICAL(&xTaskQueueMutex); - tskTCB *pxTCB = (tskTCB *)xIdleTaskHandle[xPortGetCoreID()]; + tskTCB *pxTCB = (tskTCB *)xIdleTaskHandle[xPortGetCoreID()]; taskEXIT_CRITICAL(&xTaskQueueMutex); return pxTCB->ulRunTimeCounter; @@ -5684,7 +5684,7 @@ TickType_t uxReturn; #endif /*-----------------------------------------------------------*/ -static void prvAddCurrentTaskToDelayedList( const portBASE_TYPE xCoreID, const TickType_t xTicksToWait ) +static void prvAddCurrentTaskToDelayedList( const portBASE_TYPE xCoreID, const TickType_t xTicksToWait ) { TickType_t xTimeToWake; const TickType_t xConstTickCount = xTickCount; @@ -5901,6 +5901,3 @@ BaseType_t __attribute__((weak)) xTimerCreateTimerTask( void ) { return pdPASS; } - - - diff --git a/components/freertos/test/test_context_save_clobber.c b/components/freertos/test/test_context_save_clobber.c index 5a87025a50..961b0e0a6f 100644 --- a/components/freertos/test/test_context_save_clobber.c +++ b/components/freertos/test/test_context_save_clobber.c @@ -7,7 +7,7 @@ #include "xtensa/hal.h" #if defined(XCHAL_HAVE_WINDOWED) /* Regression test for a0 register being corrupted in _xt_context_save. - * + * * The idea in this test is to have a function which recursively calls itself * with call4, eventually filling up all the register windows. At that point, * it does some lengthy operation. If an interrupt occurs at that point, and diff --git a/components/freertos/test/test_float_in_isr.c b/components/freertos/test/test_float_in_isr.c index 55b2d54685..ff0dc675c4 100644 --- a/components/freertos/test/test_float_in_isr.c +++ b/components/freertos/test/test_float_in_isr.c @@ -12,7 +12,7 @@ #include "soc/cpu.h" #include "test_utils.h" #include "math.h" - + #define SW_ISR_LEVEL_1 7 #ifdef CONFIG_FREERTOS_FPU_IN_ISR @@ -64,4 +64,4 @@ TEST_CASE("Floating point usage in ISR test", "[freertos]" "[fp]") TEST_ASSERT_FLOAT_WITHIN(0.1f, ctx.expected, fp_math_operation_result * 65536.0f); } -#endif \ No newline at end of file +#endif diff --git a/components/freertos/test/test_freertos_backported_functions.c b/components/freertos/test/test_freertos_backported_functions.c index b5af268952..e56083ac09 100644 --- a/components/freertos/test/test_freertos_backported_functions.c +++ b/components/freertos/test/test_freertos_backported_functions.c @@ -272,4 +272,3 @@ TEST_CASE("Test FreeRTOS thread local storage pointers and del cb", "[freertos]" } } } - diff --git a/components/freertos/test/test_freertos_scheduling_time.c b/components/freertos/test/test_freertos_scheduling_time.c index 7e3a783684..f2e45f4be2 100644 --- a/components/freertos/test/test_freertos_scheduling_time.c +++ b/components/freertos/test/test_freertos_scheduling_time.c @@ -28,7 +28,7 @@ static void test_task_1(void *arg) { vPortYield(); } - vTaskDelete(NULL); + vTaskDelete(NULL); } static void test_task_2(void *arg) { @@ -52,7 +52,7 @@ static void test_task_2(void *arg) { TEST_CASE("scheduling time test", "[freertos]") { - test_context_t context; + test_context_t context; context.end_sema = xSemaphoreCreateBinary(); TEST_ASSERT(context.end_sema != NULL); @@ -65,7 +65,7 @@ TEST_CASE("scheduling time test", "[freertos]") xTaskCreatePinnedToCore(test_task_2, "test2" , 4096, &context, CONFIG_UNITY_FREERTOS_PRIORITY - 1, NULL,0); #endif - BaseType_t result = xSemaphoreTake(context.end_sema, portMAX_DELAY); + BaseType_t result = xSemaphoreTake(context.end_sema, portMAX_DELAY); TEST_ASSERT_EQUAL_HEX32(pdTRUE, result); TEST_PERFORMANCE_LESS_THAN(SCHEDULING_TIME , "scheduling time %d cycles" ,context.cycles_to_sched); -} \ No newline at end of file +} diff --git a/components/freertos/test/test_freertos_task_notify.c b/components/freertos/test/test_freertos_task_notify.c index d78d2b9b18..65af19d8de 100644 --- a/components/freertos/test/test_freertos_task_notify.c +++ b/components/freertos/test/test_freertos_task_notify.c @@ -209,5 +209,3 @@ TEST_CASE("Test Task_Notify", "[freertos]") isr_handle_1 = NULL; #endif } - - diff --git a/components/freertos/test/test_freertos_trace_utilities.c b/components/freertos/test/test_freertos_trace_utilities.c index 3b0dab210a..a77d70498b 100644 --- a/components/freertos/test/test_freertos_trace_utilities.c +++ b/components/freertos/test/test_freertos_trace_utilities.c @@ -75,7 +75,7 @@ TEST_CASE("Test freertos trace facility functions", "[freertos]") xSemaphoreTake(test_queues[i], portMAX_DELAY); vSemaphoreDelete(test_queues[i]); } - + vTaskDelay(10); //Give time for idle task to clean up } @@ -99,7 +99,7 @@ TEST_CASE("Test freertos uxTaskGetSystemState", "[freertos]") for(int i = 0; i < TASKS_TO_CREATE; i++){ xTaskCreatePinnedToCore(created_task, "Created Task", 1024, NULL, TSK_PRIORITY, &created_handles[i], 0); } - + //Get System states int no_of_tasks = uxTaskGetSystemState(tsk_status_array, MAX_TASKS, NULL); TEST_ASSERT((no_of_tasks > 0) && (no_of_tasks <= MAX_TASKS)); @@ -130,4 +130,3 @@ TEST_CASE("Test freertos uxTaskGetSystemState", "[freertos]") } #endif //CONFIG_FREERTOS_USE_TRACE_FACILITY - diff --git a/components/freertos/test/test_isr_latency.c b/components/freertos/test/test_isr_latency.c index 7ee22bbfe0..9c79519091 100644 --- a/components/freertos/test/test_isr_latency.c +++ b/components/freertos/test/test_isr_latency.c @@ -25,7 +25,7 @@ static void software_isr_using_parameter_vportyield(void *arg) { (void)arg; BaseType_t yield; delta_enter_cycles += portGET_RUN_TIME_COUNTER_VALUE() - cycle_before_trigger; - + xt_set_intclear(1 << SW_ISR_LEVEL_1); xSemaphoreGiveFromISR(sync, &yield); @@ -38,7 +38,7 @@ static void software_isr_using_no_argument_vportyield(void *arg) { (void)arg; BaseType_t yield; delta_enter_cycles += portGET_RUN_TIME_COUNTER_VALUE() - cycle_before_trigger; - + xt_set_intclear(1 << SW_ISR_LEVEL_1); xSemaphoreGiveFromISR(sync, &yield); @@ -77,7 +77,7 @@ TEST_CASE("isr latency test vport-yield-from-isr with no parameter", "[freertos] TEST_ASSERT(end_sema != NULL); xTaskCreatePinnedToCore(test_task, "tst" , 4096, NULL, configMAX_PRIORITIES - 1, NULL, 0); vTaskDelay(100); - BaseType_t result = xSemaphoreTake(end_sema, portMAX_DELAY); + BaseType_t result = xSemaphoreTake(end_sema, portMAX_DELAY); TEST_ASSERT_EQUAL_HEX32(pdTRUE, result); TEST_PERFORMANCE_LESS_THAN(ISR_ENTER_CYCLES, "%d cycles" ,delta_enter_cycles); TEST_PERFORMANCE_LESS_THAN(ISR_EXIT_CYCLES, "%d cycles" ,delta_exit_cycles); @@ -96,7 +96,7 @@ TEST_CASE("isr latency test vport-yield-from-isr with parameter", "[freertos][ig end_sema = xSemaphoreCreateBinary(); TEST_ASSERT(end_sema != NULL); xTaskCreatePinnedToCore(test_task, "tst" , 4096, NULL, configMAX_PRIORITIES - 1, NULL, 0); - BaseType_t result = xSemaphoreTake(end_sema, portMAX_DELAY); + BaseType_t result = xSemaphoreTake(end_sema, portMAX_DELAY); TEST_ASSERT_EQUAL_HEX32(pdTRUE, result); TEST_PERFORMANCE_LESS_THAN(ISR_ENTER_CYCLES, "%d cycles" ,delta_enter_cycles); TEST_PERFORMANCE_LESS_THAN(ISR_EXIT_CYCLES, "%d cycles" ,delta_exit_cycles); diff --git a/components/freertos/test/test_legacy_hooks.c b/components/freertos/test/test_legacy_hooks.c index bb416e5398..1d9690339e 100644 --- a/components/freertos/test/test_legacy_hooks.c +++ b/components/freertos/test/test_legacy_hooks.c @@ -74,5 +74,3 @@ TEST_CASE("static task cleanup hook is called based on config", "[freertos]") } #endif // CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP - - diff --git a/components/freertos/test/test_newlib_reent.c b/components/freertos/test/test_newlib_reent.c index b4a4f7c14e..17773cce55 100644 --- a/components/freertos/test/test_newlib_reent.c +++ b/components/freertos/test/test_newlib_reent.c @@ -52,4 +52,3 @@ TEST_CASE("Test for per-task non-reentrant tasks", "[freertos]") } TEST_ASSERT(error == 0); } - diff --git a/components/freertos/test/test_panic.c b/components/freertos/test/test_panic.c index 20d55e32d3..5f53ca305a 100644 --- a/components/freertos/test/test_panic.c +++ b/components/freertos/test/test_panic.c @@ -18,4 +18,3 @@ TEST_CASE("Panic handler", "[freertos][ignore]") i = (volatile int *)0x0; *i = 1; } - diff --git a/components/freertos/test/test_spinlocks.c b/components/freertos/test/test_spinlocks.c index 3e12888671..f41e7b37e7 100644 --- a/components/freertos/test/test_spinlocks.c +++ b/components/freertos/test/test_spinlocks.c @@ -141,4 +141,3 @@ TEST_CASE("portMUX high contention", "[freertos]") } #endif // portNUM_PROCESSORS == 2 - diff --git a/components/freertos/test/test_stream_buffers.c b/components/freertos/test/test_stream_buffers.c index 5f4e42a75b..2b8ceeb731 100644 --- a/components/freertos/test/test_stream_buffers.c +++ b/components/freertos/test/test_stream_buffers.c @@ -17,7 +17,7 @@ typedef struct { bool produce_isr; }test_context; -static void producer_task(void *arg) +static void producer_task(void *arg) { test_context *tc = arg; uint8_t produced = 0; @@ -50,9 +50,9 @@ static void receiver_task(void *arg) printf("Starting receiver task... \n"); for(;;){ - uint8_t read_byte = 0xFF; + uint8_t read_byte = 0xFF; uint32_t result = xStreamBufferReceive(tc->sb, &read_byte, 1, 1000); - + if((read_byte != expected_consumed) || !result) { tc->receive_fail = true; xSemaphoreGive(tc->end_test); @@ -77,7 +77,7 @@ TEST_CASE("Send-receive stream buffer test", "[freertos]") tc.sb = xStreamBufferCreate(128, 1); tc.end_test = xSemaphoreCreateBinary(); - + TEST_ASSERT(tc.sb); TEST_ASSERT(tc.end_test); @@ -100,4 +100,4 @@ TEST_CASE("Send-receive stream buffer test", "[freertos]") vStreamBufferDelete(tc.sb); vSemaphoreDelete(tc.end_test); -} \ No newline at end of file +} diff --git a/components/freertos/test/test_tasks_snapshot.c b/components/freertos/test/test_tasks_snapshot.c index bc42e1a90c..d7648584c8 100644 --- a/components/freertos/test/test_tasks_snapshot.c +++ b/components/freertos/test/test_tasks_snapshot.c @@ -20,7 +20,7 @@ TEST_CASE("Tasks snapshot", "[freertos]") int other_core_id = xPortGetCoreID() == 0 ? 1 : 0; #endif - // uxTaskGetSnapshotAll is supposed to be called when all tasks on both CPUs are + // uxTaskGetSnapshotAll is supposed to be called when all tasks on both CPUs are // inactive and can not alter FreeRTOS internal tasks lists, e.g. from panic handler unsigned state = portENTER_CRITICAL_NESTED(); #ifndef CONFIG_FREERTOS_UNICORE diff --git a/components/freertos/test/test_thread_local.c b/components/freertos/test/test_thread_local.c index b92d5b3462..44ecc08168 100644 --- a/components/freertos/test/test_thread_local.c +++ b/components/freertos/test/test_thread_local.c @@ -108,4 +108,3 @@ TEST_CASE("TLS test", "[freertos]") } vTaskDelay(10); /* Make sure idle task can clean up s_task, before it goes out of scope */ } - diff --git a/components/freertos/test/test_timers.c b/components/freertos/test/test_timers.c index 7d0af71710..a1e361e363 100644 --- a/components/freertos/test/test_timers.c +++ b/components/freertos/test/test_timers.c @@ -76,12 +76,12 @@ TEST_CASE("Static timer creation", "[freertos]") TimerHandle_t created_timer; volatile int count = 0; - created_timer = xTimerCreateStatic("oneshot", 100 / portTICK_PERIOD_MS, + created_timer = xTimerCreateStatic("oneshot", 100 / portTICK_PERIOD_MS, pdTRUE, - (void *)&count, - timer_callback, + (void *)&count, + timer_callback, &static_timer); - + TEST_ASSERT_NOT_NULL(created_timer); } -#endif \ No newline at end of file +#endif diff --git a/components/freertos/timers.c b/components/freertos/timers.c index 9dcc2a7111..3de2f11f16 100644 --- a/components/freertos/timers.c +++ b/components/freertos/timers.c @@ -599,13 +599,13 @@ BaseType_t xTimerListsWereSwitched; vQueueWaitForMessageRestricted( xTimerQueue, ( xNextExpireTime - xTimeNow ), xListWasEmpty ); taskEXIT_CRITICAL( &xTimerMux); - + /* Yield to wait for either a command to arrive, or the block time to expire. If a command arrived between the critical section being exited and this yield then the yield will not cause the task to block. */ portYIELD_WITHIN_API(); - + } } else @@ -918,7 +918,7 @@ static void prvCheckForValidListAndQueue( void ) /* Check that the list from which active timers are referenced, and the queue used to communicate with the timer service, have been initialised. */ - + if( xTimerQueue == NULL ) vPortCPUInitializeMutex( &xTimerMux ); taskENTER_CRITICAL( &xTimerMux); @@ -1100,6 +1100,3 @@ Timer_t * const pxTimer = xTimer; to include software timer functionality. If you want to include software timer functionality then ensure configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */ #endif /* configUSE_TIMERS == 1 */ - - - diff --git a/components/freertos/xtensa/include/freertos/FreeRTOSConfig.h b/components/freertos/xtensa/include/freertos/FreeRTOSConfig.h index be7cdb8077..0e2b1719a7 100644 --- a/components/freertos/xtensa/include/freertos/FreeRTOSConfig.h +++ b/components/freertos/xtensa/include/freertos/FreeRTOSConfig.h @@ -338,4 +338,3 @@ extern void vPortCleanUpTCB ( void *pxTCB ); #endif #endif /* FREERTOS_CONFIG_H */ - diff --git a/components/freertos/xtensa/include/freertos/portmacro.h b/components/freertos/xtensa/include/freertos/portmacro.h index e144bc08c4..42427dda83 100644 --- a/components/freertos/xtensa/include/freertos/portmacro.h +++ b/components/freertos/xtensa/include/freertos/portmacro.h @@ -170,7 +170,7 @@ This all assumes that interrupts are either entirely disabled or enabled. Interr will break this scheme. Remark: For the ESP32, portENTER_CRITICAL and portENTER_CRITICAL_ISR both alias vTaskEnterCritical, meaning -that either function can be called both from ISR as well as task context. This is not standard FreeRTOS +that either function can be called both from ISR as well as task context. This is not standard FreeRTOS behaviour; please keep this in mind if you need any compatibility with other FreeRTOS implementations. */ /* "mux" data structure (spinlock) */ @@ -179,21 +179,21 @@ typedef spinlock_t portMUX_TYPE; #define portMUX_FREE_VAL SPINLOCK_FREE #define portMUX_NO_TIMEOUT SPINLOCK_WAIT_FOREVER /* When passed for 'timeout_cycles', spin forever if necessary */ #define portMUX_TRY_LOCK SPINLOCK_NO_WAIT /* Try to acquire the spinlock a single time only */ -#define portMUX_INITIALIZER_UNLOCKED SPINLOCK_INITIALIZER +#define portMUX_INITIALIZER_UNLOCKED SPINLOCK_INITIALIZER #define portCRITICAL_NESTING_IN_TCB 0 -static inline void __attribute__((always_inline)) vPortCPUInitializeMutex(portMUX_TYPE *mux) +static inline void __attribute__((always_inline)) vPortCPUInitializeMutex(portMUX_TYPE *mux) { spinlock_initialize(mux); } -static inline void __attribute__((always_inline)) vPortCPUAcquireMutex(portMUX_TYPE *mux) +static inline void __attribute__((always_inline)) vPortCPUAcquireMutex(portMUX_TYPE *mux) { spinlock_acquire(mux, portMUX_NO_TIMEOUT); } -static inline bool __attribute__((always_inline)) vPortCPUAcquireMutexTimeout(portMUX_TYPE *mux, int timeout) +static inline bool __attribute__((always_inline)) vPortCPUAcquireMutexTimeout(portMUX_TYPE *mux, int timeout) { return (spinlock_acquire(mux, timeout)); } @@ -217,8 +217,8 @@ BaseType_t xPortInIsrContext(void); static inline void __attribute__((always_inline)) vPortEnterCriticalCompliance(portMUX_TYPE *mux) { - if(!xPortInIsrContext()) { - vPortEnterCritical(mux); + if(!xPortInIsrContext()) { + vPortEnterCritical(mux); } else { esp_rom_printf("%s:%d (%s)- port*_CRITICAL called from ISR context!\n", __FILE__, __LINE__, __FUNCTION__); @@ -228,8 +228,8 @@ static inline void __attribute__((always_inline)) vPortEnterCriticalCompliance(p static inline void __attribute__((always_inline)) vPortExitCriticalCompliance(portMUX_TYPE *mux) { - if(!xPortInIsrContext()) { - vPortExitCritical(mux); + if(!xPortInIsrContext()) { + vPortExitCritical(mux); } else { esp_rom_printf("%s:%d (%s)- port*_CRITICAL called from ISR context!\n", __FILE__, __LINE__, __FUNCTION__); @@ -242,7 +242,7 @@ static inline void __attribute__((always_inline)) vPortExitCriticalCompliance(po * If the parent function is called from both ISR and Non-ISR context then call port*_CRITICAL_SAFE */ #define portENTER_CRITICAL(mux) vPortEnterCriticalCompliance(mux) -#define portEXIT_CRITICAL(mux) vPortExitCriticalCompliance(mux) +#define portEXIT_CRITICAL(mux) vPortExitCriticalCompliance(mux) #else #define portENTER_CRITICAL(mux) vPortEnterCritical(mux) #define portEXIT_CRITICAL(mux) vPortExitCritical(mux) @@ -253,20 +253,20 @@ static inline void __attribute__((always_inline)) vPortExitCriticalCompliance(po static inline void __attribute__((always_inline)) vPortEnterCriticalSafe(portMUX_TYPE *mux) { - if (xPortInIsrContext()) { - portENTER_CRITICAL_ISR(mux); - } else { - portENTER_CRITICAL(mux); - } + if (xPortInIsrContext()) { + portENTER_CRITICAL_ISR(mux); + } else { + portENTER_CRITICAL(mux); + } } static inline void __attribute__((always_inline)) vPortExitCriticalSafe(portMUX_TYPE *mux) { - if (xPortInIsrContext()) { - portEXIT_CRITICAL_ISR(mux); - } else { - portEXIT_CRITICAL(mux); - } + if (xPortInIsrContext()) { + portEXIT_CRITICAL_ISR(mux); + } else { + portEXIT_CRITICAL(mux); + } } #define portENTER_CRITICAL_SAFE(mux) vPortEnterCriticalSafe(mux) @@ -313,11 +313,11 @@ static inline void __attribute__((always_inline)) uxPortCompareSet(volatile uint #endif -static inline void uxPortCompareSetExtram(volatile uint32_t *addr, uint32_t compare, uint32_t *set) +static inline void uxPortCompareSetExtram(volatile uint32_t *addr, uint32_t compare, uint32_t *set) { -#ifdef CONFIG_SPIRAM +#ifdef CONFIG_SPIRAM compare_and_set_extram(addr, compare, set); -#endif +#endif } @@ -344,9 +344,9 @@ void vPortYield( void ); void vPortEvaluateYieldFromISR(int argc, ...); void _frxt_setup_switch( void ); /** - * Macro to count number of arguments of a __VA_ARGS__ used to support portYIELD_FROM_ISR with, + * Macro to count number of arguments of a __VA_ARGS__ used to support portYIELD_FROM_ISR with, * or without arguments. - */ + */ #define portGET_ARGUMENT_COUNT(...) portGET_ARGUMENT_COUNT_INNER(0, ##__VA_ARGS__,1,0) #define portGET_ARGUMENT_COUNT_INNER(zero, one, count, ...) count @@ -356,7 +356,7 @@ _Static_assert(portGET_ARGUMENT_COUNT(1) == 1, "portGET_ARGUMENT_COUNT() result #define portYIELD() vPortYield() /** - * @note The macro below could be used when passing a single argument, or without any argument, + * @note The macro below could be used when passing a single argument, or without any argument, * it was developed to support both usages of portYIELD inside of an ISR. Any other usage form * might result in undesired behaviour */ @@ -523,4 +523,3 @@ void exit(int); #endif #endif /* PORTMACRO_H */ - diff --git a/components/freertos/xtensa/include/freertos/xtensa_api.h b/components/freertos/xtensa/include/freertos/xtensa_api.h index bdfd7151c8..bd2bfeb208 100644 --- a/components/freertos/xtensa/include/freertos/xtensa_api.h +++ b/components/freertos/xtensa/include/freertos/xtensa_api.h @@ -1,2 +1,2 @@ -/* This header file has been moved, please include in future */ +/* This header file has been moved, please include in future */ #include diff --git a/components/freertos/xtensa/include/freertos/xtensa_config.h b/components/freertos/xtensa/include/freertos/xtensa_config.h index 58baee2da7..be8125c46a 100644 --- a/components/freertos/xtensa/include/freertos/xtensa_config.h +++ b/components/freertos/xtensa/include/freertos/xtensa_config.h @@ -59,26 +59,26 @@ extern "C" { * If this is not true, i.e. one or more interrupt handlers make deep calls then * the minimum must be increased. * -* If the Xtensa processor configuration includes coprocessors, then space is +* If the Xtensa processor configuration includes coprocessors, then space is * allocated to save the coprocessor state on the stack. * * If thread safety is enabled for the C runtime library, (XT_USE_THREAD_SAFE_CLIB * is defined) then space is allocated to save the C library context in the TCB. -* +* * Allocating insufficient stack space is a common source of hard-to-find errors. * During development, it is best to enable the FreeRTOS stack checking features. * * Usage: -* +* * XT_USE_THREAD_SAFE_CLIB -- Define this to a nonzero value to enable thread-safe * use of the C library. This will require extra stack * space to be allocated for tasks that use the C library * reentrant functions. See below for more information. -* +* * NOTE: The Xtensa toolchain supports multiple C libraries and not all of them * support thread safety. Check your core configuration to see which C library * was chosen for your system. -* +* * XT_STACK_MIN_SIZE -- The minimum stack size for any task. It is recommended * that you do not use a stack smaller than this for any * task. In case you want to use stacks smaller than this @@ -143,4 +143,3 @@ extern "C" { #endif #endif /* XTENSA_CONFIG_H */ - diff --git a/components/freertos/xtensa/include/freertos/xtensa_context.h b/components/freertos/xtensa/include/freertos/xtensa_context.h index c30701907b..45c4272869 100644 --- a/components/freertos/xtensa/include/freertos/xtensa_context.h +++ b/components/freertos/xtensa/include/freertos/xtensa_context.h @@ -1,2 +1,2 @@ -/* This header file has been moved, please include in future */ +/* This header file has been moved, please include in future */ #include diff --git a/components/freertos/xtensa/include/freertos/xtensa_rtos.h b/components/freertos/xtensa/include/freertos/xtensa_rtos.h index e0e4475959..d1b4023799 100644 --- a/components/freertos/xtensa/include/freertos/xtensa_rtos.h +++ b/components/freertos/xtensa/include/freertos/xtensa_rtos.h @@ -31,8 +31,8 @@ and macros for use primarily by Xtensa assembly coded source files. Macros in this header map callouts from generic Xtensa files to specific RTOS functions. It may also be included in C source files. -Xtensa RTOS ports support all RTOS-compatible configurations of the Xtensa -architecture, using the Xtensa hardware abstraction layer (HAL) to deal +Xtensa RTOS ports support all RTOS-compatible configurations of the Xtensa +architecture, using the Xtensa hardware abstraction layer (HAL) to deal with configuration specifics. Should be included by all Xtensa generic and RTOS port-specific sources. @@ -116,7 +116,7 @@ Some of these functions may call back to generic functions in xtensa_context.h . *******************************************************************************/ /* -Inform RTOS of entry into an interrupt handler that will affect it. +Inform RTOS of entry into an interrupt handler that will affect it. Allows RTOS to manage switch to any system stack and count nesting level. Called after minimal context has been saved, with interrupts disabled. RTOS port can call0 _xt_context_save to save the rest of the context. @@ -149,12 +149,12 @@ RTOS may optionally define XT_TICK_PER_SEC in its own way (eg. macro). #define XT_TICK_PER_SEC configTICK_RATE_HZ /* -Return in a15 the base address of the co-processor state save area for the +Return in a15 the base address of the co-processor state save area for the thread that triggered a co-processor exception, or 0 if no thread was running. -The state save area is structured as defined in xtensa_context.h and has size +The state save area is structured as defined in xtensa_context.h and has size XT_CP_SIZE. Co-processor instructions should only be used in thread code, never in interrupt handlers or the RTOS kernel. May only be called from assembly code -and by the 'call0' instruction. A result of 0 indicates an unrecoverable error. +and by the 'call0' instruction. A result of 0 indicates an unrecoverable error. The implementation may use only a2-4, a15 (all other regs must be preserved). */ // void* XT_RTOS_CP_STATE(void) @@ -170,7 +170,7 @@ and interrupt handlers to facilitate automated testing where each test case can install its own handler for user exceptions and each interrupt priority (level). This consists of an array of function pointers indexed by interrupt priority, with index 0 being the user exception handler hook. -Each entry in the array is initially 0, and may be replaced by a function +Each entry in the array is initially 0, and may be replaced by a function pointer of type XT_INTEXC_HOOK. A handler may be uninstalled by installing 0. The handler for low and medium priority obeys ABI conventions so may be coded @@ -229,4 +229,3 @@ Xtensa Port Version. #define XTENSA_PORT_VERSION_STRING "1.4.2" #endif /* XTENSA_RTOS_H */ - diff --git a/components/freertos/xtensa/include/freertos/xtensa_timer.h b/components/freertos/xtensa/include/freertos/xtensa_timer.h index 473298352b..b7f8dc703d 100644 --- a/components/freertos/xtensa/include/freertos/xtensa_timer.h +++ b/components/freertos/xtensa/include/freertos/xtensa_timer.h @@ -52,9 +52,9 @@ and the Xtensa core configuration need not have a timer. #include "freertos/FreeRTOSConfig.h" /* -Select timer to use for periodic tick, and determine its interrupt number +Select timer to use for periodic tick, and determine its interrupt number and priority. User may specify a timer by defining XT_TIMER_INDEX with -D, -in which case its validity is checked (it must exist in this core and must +in which case its validity is checked (it must exist in this core and must not be on a high priority interrupt - an error will be reported in invalid). Otherwise select the first low or medium priority interrupt timer available. */ @@ -111,16 +111,16 @@ Otherwise select the first low or medium priority interrupt timer available. Set processor clock frequency, used to determine clock divisor for timer tick. User should BE SURE TO ADJUST THIS for the Xtensa platform being used. If using a supported board via the board-independent API defined in xtbsp.h, -this may be left undefined and frequency and tick divisor will be computed +this may be left undefined and frequency and tick divisor will be computed and cached during run-time initialization. NOTE ON SIMULATOR: -Under the Xtensa instruction set simulator, the frequency can only be estimated +Under the Xtensa instruction set simulator, the frequency can only be estimated because it depends on the speed of the host and the version of the simulator. Also because it runs much slower than hardware, it is not possible to achieve real-time performance for most applications under the simulator. A frequency too low does not allow enough time between timer interrupts, starving threads. -To obtain a more convenient but non-real-time tick duration on the simulator, +To obtain a more convenient but non-real-time tick duration on the simulator, compile with xt-xcc option "-DXT_SIMULATOR". Adjust this frequency to taste (it's not real-time anyway!). */ @@ -156,4 +156,3 @@ extern void _xt_tick_divisor_init(void); #endif #endif /* XTENSA_TIMER_H */ - diff --git a/components/freertos/xtensa/port.c b/components/freertos/xtensa/port.c index efbc90fa66..b642663bac 100644 --- a/components/freertos/xtensa/port.c +++ b/components/freertos/xtensa/port.c @@ -391,26 +391,26 @@ BaseType_t IRAM_ATTR xPortInterruptedFromISRContext(void) void IRAM_ATTR vPortEvaluateYieldFromISR(int argc, ...) { - BaseType_t xYield; + BaseType_t xYield; va_list ap; va_start(ap, argc); if(argc) { xYield = (BaseType_t)va_arg(ap, int); - va_end(ap); + va_end(ap); } else { //it is a empty parameter vPortYieldFromISR macro call: va_end(ap); - traceISR_EXIT_TO_SCHEDULER(); + traceISR_EXIT_TO_SCHEDULER(); _frxt_setup_switch(); return; } //Yield exists, so need evaluate it first then switch: if(xYield == pdTRUE) { - traceISR_EXIT_TO_SCHEDULER(); + traceISR_EXIT_TO_SCHEDULER(); _frxt_setup_switch(); - } + } } void vPortAssertIfInISR(void) diff --git a/components/freertos/xtensa/portasm.S b/components/freertos/xtensa/portasm.S index 2ec883337c..86f452e12f 100644 --- a/components/freertos/xtensa/portasm.S +++ b/components/freertos/xtensa/portasm.S @@ -56,10 +56,10 @@ port_switch_flag: ******************************************************************************* * _frxt_setup_switch * void _frxt_setup_switch(void); -* +* * Sets an internal flag indicating that a task switch is required on return * from interrupt handling. -* +* ******************************************************************************* */ .global _frxt_setup_switch @@ -152,7 +152,7 @@ _frxt_int_enter: #if XCHAL_CP_NUM > 0 movi a3, 0 /* whilst ISRs pending keep CPENABLE exception active */ wsr a3, CPENABLE - rsync + rsync #endif #endif @@ -192,10 +192,10 @@ _frxt_int_exit: s32i a2, a3, 0 /* save nesting count */ bnez a2, .Lnesting /* !=0 after decr so still nested */ - #ifdef CONFIG_FREERTOS_FPU_IN_ISR + #ifdef CONFIG_FREERTOS_FPU_IN_ISR #if XCHAL_CP_NUM > 0 l32i a3, sp, 0 /* Grab last CPENABLE before leave ISR */ - addi sp, sp, 4 + addi sp, sp, 4 wsr a3, CPENABLE rsync /* ensure CPENABLE was modified */ #endif @@ -387,7 +387,7 @@ _frxt_tick_timer_init: #else movi a6, XT_TIMER_INTEN movi a3, xt_ints_on - callx4 a3 + callx4 a3 #endif RET(16) diff --git a/components/freertos/xtensa/portmacro_priv.h b/components/freertos/xtensa/portmacro_priv.h index e75c1f6b87..843456b5aa 100644 --- a/components/freertos/xtensa/portmacro_priv.h +++ b/components/freertos/xtensa/portmacro_priv.h @@ -75,4 +75,4 @@ #define portVALID_STACK_MEM(ptr) esp_ptr_byte_accessible(ptr) #else #define portVALID_STACK_MEM(ptr) (esp_ptr_internal(ptr) && esp_ptr_byte_accessible(ptr)) -#endif \ No newline at end of file +#endif diff --git a/components/freertos/xtensa/readme_xtensa.txt b/components/freertos/xtensa/readme_xtensa.txt index 1d8d246dcf..5122ec2276 100644 --- a/components/freertos/xtensa/readme_xtensa.txt +++ b/components/freertos/xtensa/readme_xtensa.txt @@ -23,7 +23,7 @@ extensions defined in the TIE language, with certain minimum requirements. You must use Xtensa Tools to compile and link FreeRTOS and your application for your Xtensa configuration. The port uses the Xtensa Hardware Abstraction Layer (HAL) to adapt to your Xtensa configuration. -NOTE: It may be possible to build and run this with the open-source +NOTE: It may be possible to build and run this with the open-source xtensa-linux tools provided you have the correct overlay for your Xtensa configuration. However, this has not been tested and is currently not supported by Cadence. @@ -42,7 +42,7 @@ a supported board or the Xtensa instruction set simulator (ISS). There are also a couple of test programs used in maintaining the port, which serve as additional examples. -FreeRTOS for Xtensa configurable processors requires the following minimum +FreeRTOS for Xtensa configurable processors requires the following minimum processor configuration options: - Timer interrupt option with at least one interruptible timer. - Interrupt option (implied by the timer interrupt option). @@ -86,7 +86,7 @@ FreeRTOS | | | |-- Xtensa_XCC | `-- ParTest -| +| `-- Source |-- include `-- portable @@ -107,7 +107,7 @@ configuration. Building FreeRTOS for Xtensa ---------------------------- -The Makefiles are provided for your convenience and you do not need to +The Makefiles are provided for your convenience and you do not need to use them. Essentially you need to compile all the FreeRTOS common files, the port files, and your application, and link them all. However all the build instructions in this note use the Makefiles. @@ -154,11 +154,11 @@ which builds for a supported board. Note that the board type does not need to be specified when building the FreeRTOS library. If you are building for an Xtensa processor configuration that is not the -default you selected when you installed Xtensa Tools, you need to define the -environment variable XTENSA_CORE. If your configuration is not in the +default you selected when you installed Xtensa Tools, you need to define the +environment variable XTENSA_CORE. If your configuration is not in the default registry you selected when you installed Xtensa Tools, you also need to define the environment variable XTENSA_SYSTEM. See tools manuals. -You can avoid defining these in your environment if you pass the variables +You can avoid defining these in your environment if you pass the variables you need to redefine into xt-make as follows: > xt-make XTENSA_CORE= XTENSA_SYSTEM= ... @@ -194,7 +194,7 @@ or > xt-make example TARGET=kc705 To build in a location other than the default, specify the new location -using the BLDROOT variable. Note that this makefile will invoke the +using the BLDROOT variable. Note that this makefile will invoke the FreeRTOS library build makefile automatically, passing on the relevant parameters based on what you specified. @@ -336,8 +336,8 @@ CFLAGS variable in the make command line, for example: -g Specifies debug information. -c Specifies object code generation. -On Sets compiler optimization level n (default -O0). - -mlongcalls Allows assembler and linker to convert call - instructions to longer indirect call sequences + -mlongcalls Allows assembler and linker to convert call + instructions to longer indirect call sequences when target is out of range. -x assembler-with-cpp Passes .s and .S files through C preprocessor. -Dmacro Define a preprocessor macro with no value. @@ -346,7 +346,7 @@ CFLAGS variable in the make command line, for example: See the compiler / linker documentation for a full list of switches and their use. -Many definitions can be provided at compile-time via the -D option +Many definitions can be provided at compile-time via the -D option without editing the source code. Here are some of the more useful ones: XT_USE_THREAD_SAFE_CLIB Enable support for the reentrancy to provide @@ -358,7 +358,7 @@ without editing the source code. Here are some of the more useful ones: XT_SIMULATOR Set this if building to run on the simulator. Takes advantage of certain simulator control - and reporting facilities, and adjusts timing + and reporting facilities, and adjusts timing of periodic tick to provide a more acceptable performance in simulation (see XT_CLOCK_FREQ). Set by default unless PLATFORM is overridden. @@ -367,26 +367,26 @@ without editing the source code. Here are some of the more useful ones: Be sure to specify the correct LSP for the board. See the example makefile for usage. - XT_CLOCK_FREQ=freq Specifies the target processor's clock - frequency in Hz. Used primarily to set the + XT_CLOCK_FREQ=freq Specifies the target processor's clock + frequency in Hz. Used primarily to set the timer that generates the periodic interrupt. Defaults are provided and may be edited in xtensa_timer.h (see comments there also). Default for simulator provides more acceptable performance, but cannot provide real-time performance due to variation in simulation - speed per host platform and insufficient + speed per host platform and insufficient cycles between interrupts to process them. - Supported board platforms by default leave - this undefined and compute the clock frequency - at initialization unless this is explicitly + Supported board platforms by default leave + this undefined and compute the clock frequency + at initialization unless this is explicitly defined. XT_TICK_PER_SEC=n Specifies the frequency of the periodic tick. XT_TIMER_INDEX=n Specifies which timer to use for periodic tick. - Set this if your Xtensa processor configuration - provides more than one suitable timer and you + Set this if your Xtensa processor configuration + provides more than one suitable timer and you want to override the default. See xtensa_timer.h . XT_INTEXC_HOOKS Enables hooks in interrupt vector handlers @@ -429,7 +429,7 @@ In the windowed ABI the registers of the current window are used as follows: There are no callee-save registers. The windowed hardware automatically saves registers a0-a3 on a call4, a0-a8 on a call8, a0-a12 on a call12, by rotating the register window. Hardware triggers window overflow and -underflow exceptions as necessary when registers outside the current +underflow exceptions as necessary when registers outside the current window need to be spilled to preallocated space in the stack frame, or restored. Complete details are in the Xtensa manuals. The entire windowed register file is saved and restored on interrupt or task context switch. @@ -487,7 +487,7 @@ compiler optimizations (-O0). This makes debugging easier. Of course, FreeRTOS run faster you can change the Makefile to enable the desired optimizations or set a predefined optimization level (-O) . -Maximum performance is achieved with -O3 -ipa, but that might increase +Maximum performance is achieved with -O3 -ipa, but that might increase the footprint substantially. A good compromise is -O2. See the compiler manual for details. @@ -523,7 +523,7 @@ classes of exceptions and interrupts. Being a configurable architecture, many of these are optional, and the vector locations are determined by your processor configuration. (Note that Diamond cores are pre-configured with specific vector locations.) The handlers provided use conditional -compilation to adapt to your processor configuration and include only +compilation to adapt to your processor configuration and include only the code that is needed. Xtensa vector locations may reside almost anywhere, including in ROM. @@ -629,12 +629,12 @@ Medium Priority Interrupt Handlers: High Priority Interrupt Handlers: - High priority interrupts are those strictly above XCHAL_EXCM_LEVEL, - a configuration-specific maximum interrupt level affected by the + High priority interrupts are those strictly above XCHAL_EXCM_LEVEL, + a configuration-specific maximum interrupt level affected by the global 'exception mode' bit in the processor status word (PS.EXCM). High priority handlers may not directly interact with FreeRTOS at all, and are described here only for the sake of completeness. They must - be coded in assembler (may not be coded in C) and are intended to be + be coded in assembler (may not be coded in C) and are intended to be used for handling extremely high frequency hardware events that need to be handled in only a few cycles. A high priority interrupt handler may trigger a software interrupt at a medium or low priority level to @@ -644,7 +644,7 @@ High Priority Interrupt Handlers: priority interrupt, providing for fast dispatch and efficient nesting on top of lower priority interrupts. Handlers are templates included only for the vectors that exist in your Xtensa processor configuration. - These templates are written for only one interrupt per high priority + These templates are written for only one interrupt per high priority level to minimize latency servicing very fast time-critical interrupts. The vector code jumps to the corresponding first-level interrupt handler, which then executes application-provided assembler code before returning @@ -654,7 +654,7 @@ Kernel Exception Handler: Kernel mode is not used in this port of FreeRTOS, and therefore kernel exceptions should not happen. A stub is provided for the vector that - triggers the debugger (if connected) or calls _xt_panic to freeze the + triggers the debugger (if connected) or calls _xt_panic to freeze the processor should a kernel exception occur. Alloca Exception Handler: @@ -691,8 +691,8 @@ Co-Processor Exception Handler: Co-processors may not be used by any code outside the context of a task. A co-processor exception triggered by code that is not part of a running task is a fatal error and FreeRTOS for Xtensa will panic. - This restriction is intended to reduce the overhead of saving and - restoring co-processor state (which can be quite large) and in + This restriction is intended to reduce the overhead of saving and + restoring co-processor state (which can be quite large) and in particular remove that overhead from interrupt handlers. Debug Exception Handler: @@ -714,7 +714,7 @@ Double Exception Handler: A double exception is a general exception that happens while the processor is in exception mode (PS.EXCM set), and thus indicates a bug in kernel code. The double exception vector handler triggers - the debugger (if connected) or calls _xt_panic to freeze the + the debugger (if connected) or calls _xt_panic to freeze the processor. Window Overflow and Underflow Exception Handlers: @@ -766,4 +766,3 @@ The Makefiles are also provided by Cadence so have much in common with other RTOS Makefiles provided by Cadence. -End- - diff --git a/components/freertos/xtensa/xt_asm_utils.h b/components/freertos/xtensa/xt_asm_utils.h index e16d4b32c0..db8f229fc3 100644 --- a/components/freertos/xtensa/xt_asm_utils.h +++ b/components/freertos/xtensa/xt_asm_utils.h @@ -19,7 +19,7 @@ * limitations under the License. */ -/* File adapted to use on IDF FreeRTOS component, extracted +/* File adapted to use on IDF FreeRTOS component, extracted * originally from zephyr RTOS code base: * https://github.com/zephyrproject-rtos/zephyr/blob/dafd348/arch/xtensa/include/xtensa-asm2-s.h */ @@ -58,7 +58,7 @@ * just a little bit, it's MUCH faster. With a mostly full register * file on an LX6 core (ESP-32) I'm measuring 145 cycles to spill * registers with this vs. 279 (!) to do it with - * xthal_spill_windows(). + * xthal_spill_windows(). */ .macro SPILL_ALL_WINDOWS @@ -85,4 +85,4 @@ #endif .endm -#endif \ No newline at end of file +#endif diff --git a/components/freertos/xtensa/xtensa_context.S b/components/freertos/xtensa/xtensa_context.S index cb8c8ccbe3..7620420317 100644 --- a/components/freertos/xtensa/xtensa_context.S +++ b/components/freertos/xtensa/xtensa_context.S @@ -70,7 +70,7 @@ interrupt stack frame defined in xtensa_rtos.h. Its counterpart is _xt_context_restore (which also restores A12, A13). Caller is expected to have saved PC, PS, A0, A1 (SP), A12, A13 in the frame. -This function preserves A12 & A13 in order to provide the caller with 2 scratch +This function preserves A12 & A13 in order to provide the caller with 2 scratch regs that need not be saved over the call to this function. The choice of which 2 regs to provide is governed by xthal_window_spill_nw and xthal_save_extra_nw, to avoid moving data more than necessary. Caller can assign regs accordingly. @@ -79,7 +79,7 @@ Entry Conditions: A0 = Return address in caller. A1 = Stack pointer of interrupted thread or handler ("interruptee"). Original A12, A13 have already been saved in the interrupt stack frame. - Other processor state except PC, PS, A0, A1 (SP), A12, A13, is as at the + Other processor state except PC, PS, A0, A1 (SP), A12, A13, is as at the point of interruption. If windowed ABI, PS.EXCM = 1 (exceptions disabled). @@ -143,8 +143,8 @@ _xt_context_save: #endif s32i a12, sp, XT_STK_TMP0 /* temp. save stuff in stack frame */ - s32i a13, sp, XT_STK_TMP1 - s32i a9, sp, XT_STK_TMP2 + s32i a13, sp, XT_STK_TMP1 + s32i a9, sp, XT_STK_TMP2 l32i a12, sp, XT_STK_A12 /* recover original a9,12,13 */ l32i a13, sp, XT_STK_A13 @@ -192,7 +192,7 @@ _xt_context_save: rsr a0, EPC1 /* to be restored after SPILL_ALL_WINDOWS */ addi sp, sp, XT_STK_FRMSZ /* go back to spill register region */ - SPILL_ALL_WINDOWS /* place the live register windows there */ + SPILL_ALL_WINDOWS /* place the live register windows there */ addi sp, sp, -XT_STK_FRMSZ /* return the current stack pointer and proceed with context save*/ wsr a2, PS /* restore to the value at entry */ @@ -203,7 +203,7 @@ _xt_context_save: l32i a12, sp, XT_STK_TMP0 /* restore the temp saved registers */ l32i a13, sp, XT_STK_TMP1 /* our return address is there */ - l32i a9, sp, XT_STK_TMP2 + l32i a9, sp, XT_STK_TMP2 #if XCHAL_EXTRA_SA_SIZE > 0 || !defined(__XTENSA_CALL0_ABI__) mov a0, a9 /* retrieve ret addr */ @@ -218,7 +218,7 @@ _xt_context_restore !! MUST BE CALLED ONLY BY 'CALL0' INSTRUCTION !! Restores all Xtensa processor state except PC, PS, A0, A1 (SP) (and in Call0 -ABI, A14, A15 which are preserved by all interrupt handlers) from an interrupt +ABI, A14, A15 which are preserved by all interrupt handlers) from an interrupt stack frame defined in xtensa_rtos.h . Its counterpart is _xt_context_save (whose caller saved A12, A13). @@ -231,7 +231,7 @@ Entry Conditions: Exit conditions: A0 = Return address in caller. A1 = Stack pointer of interrupted thread or handler ("interruptee"). - Other processor state except PC, PS, A0, A1 (SP), is as at the point + Other processor state except PC, PS, A0, A1 (SP), is as at the point of interruption. *******************************************************************************/ @@ -244,7 +244,7 @@ Exit conditions: _xt_context_restore: #if XCHAL_EXTRA_SA_SIZE > 0 - /* + /* NOTE: Normally the xthal_restore_extra_nw macro only affects address registers a2-a5. It is theoretically possible for Xtensa processor designers to write TIE that causes more address registers to be @@ -314,7 +314,7 @@ _xt_context_restore: /* Call0 ABI callee-saved regs a12-15 do not need to be restored here. - However a12-13 were saved for scratch before XT_RTOS_INT_ENTER(), + However a12-13 were saved for scratch before XT_RTOS_INT_ENTER(), so need to be restored anyway, despite being callee-saved in Call0. */ l32i a12, sp, XT_STK_A12 @@ -337,7 +337,7 @@ to "unowned". Leaves CPENABLE as it found it (does NOT clear it). Called during initialization of the RTOS, before any threads run. This may be called from normal Xtensa single-threaded application code which -might use co-processors. The Xtensa run-time initialization enables all +might use co-processors. The Xtensa run-time initialization enables all co-processors. They must remain enabled here, else a co-processor exception might occur outside of a thread, which the exception handler doesn't expect. @@ -380,13 +380,13 @@ _xt_coproc_init: _xt_coproc_release -Releases any and all co-processors owned by a given thread. The thread is +Releases any and all co-processors owned by a given thread. The thread is identified by it's co-processor state save area defined in xtensa_context.h . Must be called before a thread's co-proc save area is deleted to avoid memory corruption when the exception handler tries to save the state. May be called when a thread terminates or completes but does not delete -the co-proc save area, to avoid the exception handler having to save the +the co-proc save area, to avoid the exception handler having to save the thread's co-proc state before another thread can use it (optimization). Needs to be called on the processor the thread was running on. Unpinned threads @@ -586,13 +586,13 @@ _xt_coproc_restorecs: s32i a3, a15, XT_CP_CS_ST /* update saved CP mask */ movi a13, _xt_coproc_sa_offset /* array of CP save offsets */ l32i a15, a15, XT_CP_ASA /* a15 = base of aligned save area */ - + #if XCHAL_CP0_SA_SIZE bbci.l a2, 0, 2f /* CP 0 not enabled */ l32i a14, a13, 0 /* a14 = _xt_coproc_sa_offset[0] */ add a3, a14, a15 /* a3 = save area for CP 0 */ xchal_cp0_load a3, a4, a5, a6, a7 continue=0 ofs=-1 select=XTHAL_SAS_TIE|XTHAL_SAS_NOCC|XTHAL_SAS_CALE alloc=XTHAL_SAS_ALL -2: +2: #endif #if XCHAL_CP1_SA_SIZE @@ -655,5 +655,3 @@ _xt_coproc_restorecs: ret #endif - - diff --git a/components/freertos/xtensa/xtensa_init.c b/components/freertos/xtensa/xtensa_init.c index 4bb8b61210..bc8921f8ca 100644 --- a/components/freertos/xtensa/xtensa_init.c +++ b/components/freertos/xtensa/xtensa_init.c @@ -59,4 +59,3 @@ int xt_clock_freq(void) } #endif /* XT_RTOS_TIMER_INT */ - diff --git a/components/freertos/xtensa/xtensa_vector_defaults.S b/components/freertos/xtensa/xtensa_vector_defaults.S index 507b30ba34..59f127b941 100644 --- a/components/freertos/xtensa/xtensa_vector_defaults.S +++ b/components/freertos/xtensa/xtensa_vector_defaults.S @@ -161,4 +161,3 @@ _xt_nmi: rfi XCHAL_NMILEVEL #endif /* NMI */ - diff --git a/components/freertos/xtensa/xtensa_vectors.S b/components/freertos/xtensa/xtensa_vectors.S index b7ddedbad1..4fd27e45c0 100644 --- a/components/freertos/xtensa/xtensa_vectors.S +++ b/components/freertos/xtensa/xtensa_vectors.S @@ -601,7 +601,7 @@ _xt_user_exc: addi a0, a0, 1 .LS_exit: #endif - + /* Handle all other exceptions. All can have user-defined handlers. */ /* NOTE: we'll stay on the user stack for exception handling. */ @@ -897,10 +897,10 @@ _xt_coproc_exc: /* Get co-processor state save area of new owner thread. */ call0 XT_RTOS_CP_STATE /* a15 = new owner's save area */ - #ifndef CONFIG_FREERTOS_FPU_IN_ISR + #ifndef CONFIG_FREERTOS_FPU_IN_ISR beqz a15, .L_goto_invalid #endif - + /*When FPU in ISR is enabled we could deal with zeroed a15 */ /* Enable the co-processor's bit in CPENABLE. */ @@ -947,7 +947,7 @@ locking. /* below, because on restoring from ISR we may have new == old condition used * to force cp restore to next thread */ - #ifndef CONFIG_FREERTOS_FPU_IN_ISR + #ifndef CONFIG_FREERTOS_FPU_IN_ISR beq a15, a2, .L_goto_done /* new owner == old, we're done */ #endif @@ -1931,6 +1931,3 @@ _WindowUnderflow12: .type call_user_start,@function .align 4 .literal_position - - - diff --git a/components/hal/CMakeLists.txt b/components/hal/CMakeLists.txt index 206397eb75..ddf68b9a53 100644 --- a/components/hal/CMakeLists.txt +++ b/components/hal/CMakeLists.txt @@ -76,5 +76,3 @@ idf_component_register(SRCS ${srcs} PRIV_INCLUDE_DIRS ${priv_include} REQUIRES soc LDFRAGMENTS linker.lf) - - diff --git a/components/hal/component.mk b/components/hal/component.mk index 5ad2ee6c86..186108feb6 100644 --- a/components/hal/component.mk +++ b/components/hal/component.mk @@ -7,4 +7,3 @@ COMPONENT_OBJEXCLUDE += ./spi_slave_hd_hal.o ./spi_flash_hal_gpspi.o ./spi_slave ifndef CONFIG_ETH_USE_ESP32_EMAC COMPONENT_OBJEXCLUDE += esp32/emac_hal.o endif - diff --git a/components/hal/cpu_hal.c b/components/hal/cpu_hal.c index 8d98ebf665..3e89739c48 100644 --- a/components/hal/cpu_hal.c +++ b/components/hal/cpu_hal.c @@ -61,4 +61,4 @@ void cpu_hal_clear_watchpoint(int id) void cpu_hal_set_vecbase(const void* base) { cpu_ll_set_vecbase(base); -} \ No newline at end of file +} diff --git a/components/hal/esp32/adc_hal.c b/components/hal/esp32/adc_hal.c index a772b82201..7d82dd44aa 100644 --- a/components/hal/esp32/adc_hal.c +++ b/components/hal/esp32/adc_hal.c @@ -83,4 +83,4 @@ int adc_hal_hall_convert(void) adc_hal_convert( ADC_NUM_1, ADC_CHANNEL_3, &Sens_Vn1 ); hall_value = (Sens_Vp1 - Sens_Vp0) - (Sens_Vn1 - Sens_Vn0); return hall_value; -} \ No newline at end of file +} diff --git a/components/hal/esp32/include/hal/adc_hal.h b/components/hal/esp32/include/hal/adc_hal.h index 37200a19c9..50e3c9138c 100644 --- a/components/hal/esp32/include/hal/adc_hal.h +++ b/components/hal/esp32/include/hal/adc_hal.h @@ -69,4 +69,4 @@ int adc_hal_hall_convert(void); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/adc_hal_conf.h b/components/hal/esp32/include/hal/adc_hal_conf.h index dd0e64dfef..46af19887a 100644 --- a/components/hal/esp32/include/hal/adc_hal_conf.h +++ b/components/hal/esp32/include/hal/adc_hal_conf.h @@ -28,4 +28,4 @@ #define SOC_ADC_SAR_CLK_DIV_DEFAULT(PERIPH_NUM) (2) -#define SOC_ADC_DIGI_SAR_CLK_DIV_DEFAULT (16) \ No newline at end of file +#define SOC_ADC_DIGI_SAR_CLK_DIV_DEFAULT (16) diff --git a/components/hal/esp32/include/hal/adc_ll.h b/components/hal/esp32/include/hal/adc_ll.h index 8e1980b2eb..910bda1722 100644 --- a/components/hal/esp32/include/hal/adc_ll.h +++ b/components/hal/esp32/include/hal/adc_ll.h @@ -657,4 +657,4 @@ static inline void adc_ll_vref_output(adc_ll_num_t adc, adc_channel_t channel, b #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/clk_gate_ll.h b/components/hal/esp32/include/hal/clk_gate_ll.h index 9c332dafe7..b282955637 100644 --- a/components/hal/esp32/include/hal/clk_gate_ll.h +++ b/components/hal/esp32/include/hal/clk_gate_ll.h @@ -269,4 +269,4 @@ static inline bool IRAM_ATTR periph_ll_periph_enabled(periph_module_t periph) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/gpio_ll.h b/components/hal/esp32/include/hal/gpio_ll.h index 289be9849c..2d3c510bbe 100644 --- a/components/hal/esp32/include/hal/gpio_ll.h +++ b/components/hal/esp32/include/hal/gpio_ll.h @@ -414,4 +414,4 @@ static inline void gpio_ll_iomux_out(gpio_dev_t *hw, uint8_t gpio_num, int func, #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/i2c_ll.h b/components/hal/esp32/include/hal/i2c_ll.h index 7795c8cf72..46ab2ef04b 100644 --- a/components/hal/esp32/include/hal/i2c_ll.h +++ b/components/hal/esp32/include/hal/i2c_ll.h @@ -859,4 +859,3 @@ static inline void i2c_ll_slave_init(i2c_dev_t *hw) #ifdef __cplusplus } #endif - diff --git a/components/hal/esp32/include/hal/i2s_ll.h b/components/hal/esp32/include/hal/i2s_ll.h index 0b2af70efa..96d4a3f8ec 100644 --- a/components/hal/esp32/include/hal/i2s_ll.h +++ b/components/hal/esp32/include/hal/i2s_ll.h @@ -797,7 +797,7 @@ static inline void i2s_ll_set_tx_pdm_en(i2s_dev_t *hw, bool pdm_en) * * @param hw Peripheral I2S hardware instance address. * @param fp The fp value of TX PDM filter module group0. - * @param fs The fs value of TX PDM filter module group0. + * @param fs The fs value of TX PDM filter module group0. */ static inline void i2s_ll_tx_pdm_cfg(i2s_dev_t *hw, uint32_t fp, uint32_t fs) { diff --git a/components/hal/esp32/include/hal/interrupt_controller_ll.h b/components/hal/esp32/include/hal/interrupt_controller_ll.h index 3c3d598149..b61fa47dbc 100644 --- a/components/hal/esp32/include/hal/interrupt_controller_ll.h +++ b/components/hal/esp32/include/hal/interrupt_controller_ll.h @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#pragma once +#pragma once #include #include "soc/soc_caps.h" @@ -25,18 +25,18 @@ extern "C" { /** * @brief enable interrupts specified by the mask - * - * @param mask bitmask of interrupts that needs to be enabled + * + * @param mask bitmask of interrupts that needs to be enabled */ -static inline void intr_cntrl_ll_enable_interrupts(uint32_t mask) +static inline void intr_cntrl_ll_enable_interrupts(uint32_t mask) { xt_ints_on(mask); } /** * @brief disable interrupts specified by the mask - * - * @param mask bitmask of interrupts that needs to be disabled + * + * @param mask bitmask of interrupts that needs to be disabled */ static inline void intr_cntrl_ll_disable_interrupts(uint32_t mask) { @@ -45,10 +45,10 @@ static inline void intr_cntrl_ll_disable_interrupts(uint32_t mask) /** * @brief checks if given interrupt number has a valid handler - * + * * @param intr interrupt number ranged from 0 to 31 * @param cpu cpu number ranged betweeen 0 to SOC_CPU_CORES_NUM - 1 - * @return true for valid handler, false otherwise + * @return true for valid handler, false otherwise */ static inline bool intr_cntrl_ll_has_handler(uint8_t intr, uint8_t cpu) { @@ -56,8 +56,8 @@ static inline bool intr_cntrl_ll_has_handler(uint8_t intr, uint8_t cpu) } /** - * @brief sets interrupt handler and optional argument of a given interrupt number - * + * @brief sets interrupt handler and optional argument of a given interrupt number + * * @param intr interrupt number ranged from 0 to 31 * @param handler handler invoked when an interrupt occurs * @param arg optional argument to pass to the handler @@ -68,10 +68,10 @@ static inline void intr_cntrl_ll_set_int_handler(uint8_t intr, interrupt_handler } /** - * @brief Gets argument passed to handler of a given interrupt number - * + * @brief Gets argument passed to handler of a given interrupt number + * * @param intr interrupt number ranged from 0 to 31 - * + * * @return argument used by handler of passed interrupt number */ static inline void * intr_cntrl_ll_get_int_handler_arg(uint8_t intr) @@ -81,18 +81,18 @@ static inline void * intr_cntrl_ll_get_int_handler_arg(uint8_t intr) /** * @brief Disables interrupts that are not located in iram - * + * * @param newmask mask of interrupts needs to be disabled * @return oldmask where to store old interrupts state */ -static inline uint32_t intr_cntrl_ll_disable_int_mask(uint32_t newmask) +static inline uint32_t intr_cntrl_ll_disable_int_mask(uint32_t newmask) { return xt_int_disable_mask(newmask); } /** * @brief Enables interrupts that are not located in iram - * + * * @param newmask mask of interrupts needs to be disabled */ static inline void intr_cntrl_ll_enable_int_mask(uint32_t newmask) @@ -102,4 +102,4 @@ static inline void intr_cntrl_ll_enable_int_mask(uint32_t newmask) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/ledc_ll.h b/components/hal/esp32/include/hal/ledc_ll.h index 4bbd90e885..f7331872b6 100644 --- a/components/hal/esp32/include/hal/ledc_ll.h +++ b/components/hal/esp32/include/hal/ledc_ll.h @@ -463,4 +463,4 @@ static inline void ledc_ll_get_channel_timer(ledc_dev_t *hw, ledc_mode_t speed_m #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/mcpwm_ll.h b/components/hal/esp32/include/hal/mcpwm_ll.h index d31a810b2f..350c5da187 100644 --- a/components/hal/esp32/include/hal/mcpwm_ll.h +++ b/components/hal/esp32/include/hal/mcpwm_ll.h @@ -732,4 +732,4 @@ static inline mcpwm_intr_t mcpwm_ll_get_cap_intr_def(int bit) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/mpu_ll.h b/components/hal/esp32/include/hal/mpu_ll.h index 08c230cdfc..fc491e2b8f 100644 --- a/components/hal/esp32/include/hal/mpu_ll.h +++ b/components/hal/esp32/include/hal/mpu_ll.h @@ -59,4 +59,4 @@ static inline void mpu_ll_set_region_illegal(uint32_t addr) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/pcnt_ll.h b/components/hal/esp32/include/hal/pcnt_ll.h index 0dce4bfe57..b5b20ff49d 100644 --- a/components/hal/esp32/include/hal/pcnt_ll.h +++ b/components/hal/esp32/include/hal/pcnt_ll.h @@ -343,4 +343,4 @@ static inline void pcnt_ll_filter_disable(pcnt_dev_t *hw, pcnt_unit_t unit) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/rtc_cntl_ll.h b/components/hal/esp32/include/hal/rtc_cntl_ll.h index 3c77d4c0cb..f026da853b 100644 --- a/components/hal/esp32/include/hal/rtc_cntl_ll.h +++ b/components/hal/esp32/include/hal/rtc_cntl_ll.h @@ -52,4 +52,4 @@ static inline void rtc_cntl_ll_ulp_wakeup_enable(void) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/rtc_io_ll.h b/components/hal/esp32/include/hal/rtc_io_ll.h index 284e1f3ac1..3e5a1af8ff 100644 --- a/components/hal/esp32/include/hal/rtc_io_ll.h +++ b/components/hal/esp32/include/hal/rtc_io_ll.h @@ -365,4 +365,4 @@ static inline void rtcio_ll_ext0_set_wakeup_pin(int rtcio_num, int level) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/sigmadelta_ll.h b/components/hal/esp32/include/hal/sigmadelta_ll.h index 2e605ee594..929546fe0c 100644 --- a/components/hal/esp32/include/hal/sigmadelta_ll.h +++ b/components/hal/esp32/include/hal/sigmadelta_ll.h @@ -70,4 +70,4 @@ static inline void sigmadelta_ll_set_prescale(gpio_sd_dev_t *hw, sigmadelta_chan #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/soc_ll.h b/components/hal/esp32/include/hal/soc_ll.h index 93f4bbf640..234248368e 100644 --- a/components/hal/esp32/include/hal/soc_ll.h +++ b/components/hal/esp32/include/hal/soc_ll.h @@ -51,4 +51,4 @@ static inline void soc_ll_reset_core(int core) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/spi_ll.h b/components/hal/esp32/include/hal/spi_ll.h index 9c410d3de3..884d456083 100644 --- a/components/hal/esp32/include/hal/spi_ll.h +++ b/components/hal/esp32/include/hal/spi_ll.h @@ -175,7 +175,7 @@ static inline void spi_ll_dma_fifo_reset(spi_dev_t *hw) /** * Clear in fifo full error - * + * * @param hw Beginning address of the peripheral registers. */ static inline void spi_ll_infifo_full_clr(spi_dev_t *hw) @@ -185,7 +185,7 @@ static inline void spi_ll_infifo_full_clr(spi_dev_t *hw) /** * Clear out fifo empty error - * + * * @param hw Beginning address of the peripheral registers. */ static inline void spi_ll_outfifo_empty_clr(spi_dev_t *hw) @@ -902,7 +902,7 @@ static inline void spi_ll_enable_int(spi_dev_t *hw) } /*------------------------------------------------------------------------------ - * DMA: + * DMA: * RX DMA (Peripherals->DMA->RAM) * TX DMA (RAM->DMA->Peripherals) *----------------------------------------------------------------------------*/ @@ -913,7 +913,7 @@ static inline void spi_ll_enable_int(spi_dev_t *hw) */ static inline void spi_dma_ll_rx_reset(spi_dma_dev_t *dma_in) { - //Reset RX DMA peripheral + //Reset RX DMA peripheral dma_in->dma_conf.in_rst = 1; dma_in->dma_conf.in_rst = 0; } @@ -956,7 +956,7 @@ static inline void spi_dma_ll_rx_enable_burst_desc(spi_dma_dev_t *dma_in, bool e * Configuration of RX DMA EOF interrupt generation way * * @param dma_in Beginning address of the DMA peripheral registers which stores the data received from a peripheral into RAM. - * @param enable 1: spi_dma_inlink_eof is set when the number of dma pushed data bytes is equal to the value of spi_slv/mst_dma_rd_bytelen[19:0] in spi dma transition. 0: spi_dma_inlink_eof is set by spi_trans_done in non-seg-trans or spi_dma_seg_trans_done in seg-trans. + * @param enable 1: spi_dma_inlink_eof is set when the number of dma pushed data bytes is equal to the value of spi_slv/mst_dma_rd_bytelen[19:0] in spi dma transition. 0: spi_dma_inlink_eof is set by spi_trans_done in non-seg-trans or spi_dma_seg_trans_done in seg-trans. */ static inline void spi_dma_ll_set_rx_eof_generation(spi_dma_dev_t *dma_in, bool enable) { @@ -1025,4 +1025,4 @@ static inline void spi_dma_ll_enable_out_auto_wrback(spi_dma_dev_t *dma_out, boo #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/include/hal/touch_sensor_hal.h b/components/hal/esp32/include/hal/touch_sensor_hal.h index 276153022a..64c988f4e1 100644 --- a/components/hal/esp32/include/hal/touch_sensor_hal.h +++ b/components/hal/esp32/include/hal/touch_sensor_hal.h @@ -132,4 +132,4 @@ void touch_hal_get_wakeup_status(touch_pad_t *pad_num); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32/interrupt_descriptor_table.c b/components/hal/esp32/interrupt_descriptor_table.c index fefa693795..4afb28e248 100644 --- a/components/hal/esp32/interrupt_descriptor_table.c +++ b/components/hal/esp32/interrupt_descriptor_table.c @@ -69,7 +69,7 @@ const static int_desc_t interrupt_descriptor_table [32]={ { 5, INTTP_LEVEL, {INTDESC_RESVD, INTDESC_RESVD } }, //31 }; -const int_desc_t *interrupt_controller_hal_desc_table(void) +const int_desc_t *interrupt_controller_hal_desc_table(void) { return interrupt_descriptor_table; -} \ No newline at end of file +} diff --git a/components/hal/esp32/touch_sensor_hal.c b/components/hal/esp32/touch_sensor_hal.c index 38d71c1254..5debd505e1 100644 --- a/components/hal/esp32/touch_sensor_hal.c +++ b/components/hal/esp32/touch_sensor_hal.c @@ -46,4 +46,4 @@ void touch_hal_get_wakeup_status(touch_pad_t *pad_num) *pad_num = -1; } *pad_num = (touch_pad_t)(__builtin_ffs(touch_mask) - 1); -} \ No newline at end of file +} diff --git a/components/hal/esp32s2/adc_hal.c b/components/hal/esp32s2/adc_hal.c index 0265370db4..fbb070383d 100644 --- a/components/hal/esp32s2/adc_hal.c +++ b/components/hal/esp32s2/adc_hal.c @@ -258,4 +258,4 @@ uint32_t adc_hal_calibration(adc_ll_num_t adc_n, adc_channel_t channel, adc_atte adc_ll_calibration_finish(adc_n); s_adc_cali_param[adc_n][atten] = (uint16_t)dout; return dout; -} \ No newline at end of file +} diff --git a/components/hal/esp32s2/dac_hal.c b/components/hal/esp32s2/dac_hal.c index 4b065a74a0..1e35b29ef6 100644 --- a/components/hal/esp32s2/dac_hal.c +++ b/components/hal/esp32s2/dac_hal.c @@ -52,4 +52,4 @@ void dac_hal_digi_stop(void) { dac_ll_digi_trigger_output(false); dac_ll_digi_enable_dma(false); -} \ No newline at end of file +} diff --git a/components/hal/esp32s2/include/hal/adc_hal.h b/components/hal/esp32s2/include/hal/adc_hal.h index 376c4fab2c..c8fe441235 100644 --- a/components/hal/esp32s2/include/hal/adc_hal.h +++ b/components/hal/esp32s2/include/hal/adc_hal.h @@ -246,4 +246,4 @@ uint32_t adc_hal_calibration(adc_ll_num_t adc_n, adc_channel_t channel, adc_atte #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/adc_hal_conf.h b/components/hal/esp32s2/include/hal/adc_hal_conf.h index 2a219911d8..1044f57cb2 100644 --- a/components/hal/esp32s2/include/hal/adc_hal_conf.h +++ b/components/hal/esp32s2/include/hal/adc_hal_conf.h @@ -28,4 +28,4 @@ #define SOC_ADC_SAR_CLK_DIV_DEFAULT(PERIPH_NUM) ((PERIPH_NUM==0)? 2 : 1) -#define SOC_ADC_DIGI_SAR_CLK_DIV_DEFAULT (2) \ No newline at end of file +#define SOC_ADC_DIGI_SAR_CLK_DIV_DEFAULT (2) diff --git a/components/hal/esp32s2/include/hal/crypto_dma_ll.h b/components/hal/esp32s2/include/hal/crypto_dma_ll.h index 075aa0bd09..e78c78fabe 100644 --- a/components/hal/esp32s2/include/hal/crypto_dma_ll.h +++ b/components/hal/esp32s2/include/hal/crypto_dma_ll.h @@ -76,6 +76,3 @@ static inline void crypto_dma_ll_outlink_start(void) #ifdef __cplusplus } #endif - - - diff --git a/components/hal/esp32s2/include/hal/dac_hal.h b/components/hal/esp32s2/include/hal/dac_hal.h index f7198246a7..a7f4abce4c 100644 --- a/components/hal/esp32s2/include/hal/dac_hal.h +++ b/components/hal/esp32s2/include/hal/dac_hal.h @@ -73,4 +73,4 @@ void dac_hal_digi_stop(void); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/dac_ll.h b/components/hal/esp32s2/include/hal/dac_ll.h index c84ff70914..11f3284f11 100644 --- a/components/hal/esp32s2/include/hal/dac_ll.h +++ b/components/hal/esp32s2/include/hal/dac_ll.h @@ -285,4 +285,4 @@ static inline void dac_ll_digi_reset(void) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/gpio_ll.h b/components/hal/esp32s2/include/hal/gpio_ll.h index 5eae452f8e..5b6ef3c97e 100644 --- a/components/hal/esp32s2/include/hal/gpio_ll.h +++ b/components/hal/esp32s2/include/hal/gpio_ll.h @@ -422,4 +422,4 @@ static inline void gpio_ll_force_unhold_all(gpio_dev_t *hw) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/i2c_ll.h b/components/hal/esp32s2/include/hal/i2c_ll.h index 7ec14e7003..4ce218bce6 100644 --- a/components/hal/esp32s2/include/hal/i2c_ll.h +++ b/components/hal/esp32s2/include/hal/i2c_ll.h @@ -890,4 +890,4 @@ static inline void i2c_ll_slave_init(i2c_dev_t *hw) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/interrupt_controller_ll.h b/components/hal/esp32s2/include/hal/interrupt_controller_ll.h index 3c3d598149..b61fa47dbc 100644 --- a/components/hal/esp32s2/include/hal/interrupt_controller_ll.h +++ b/components/hal/esp32s2/include/hal/interrupt_controller_ll.h @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#pragma once +#pragma once #include #include "soc/soc_caps.h" @@ -25,18 +25,18 @@ extern "C" { /** * @brief enable interrupts specified by the mask - * - * @param mask bitmask of interrupts that needs to be enabled + * + * @param mask bitmask of interrupts that needs to be enabled */ -static inline void intr_cntrl_ll_enable_interrupts(uint32_t mask) +static inline void intr_cntrl_ll_enable_interrupts(uint32_t mask) { xt_ints_on(mask); } /** * @brief disable interrupts specified by the mask - * - * @param mask bitmask of interrupts that needs to be disabled + * + * @param mask bitmask of interrupts that needs to be disabled */ static inline void intr_cntrl_ll_disable_interrupts(uint32_t mask) { @@ -45,10 +45,10 @@ static inline void intr_cntrl_ll_disable_interrupts(uint32_t mask) /** * @brief checks if given interrupt number has a valid handler - * + * * @param intr interrupt number ranged from 0 to 31 * @param cpu cpu number ranged betweeen 0 to SOC_CPU_CORES_NUM - 1 - * @return true for valid handler, false otherwise + * @return true for valid handler, false otherwise */ static inline bool intr_cntrl_ll_has_handler(uint8_t intr, uint8_t cpu) { @@ -56,8 +56,8 @@ static inline bool intr_cntrl_ll_has_handler(uint8_t intr, uint8_t cpu) } /** - * @brief sets interrupt handler and optional argument of a given interrupt number - * + * @brief sets interrupt handler and optional argument of a given interrupt number + * * @param intr interrupt number ranged from 0 to 31 * @param handler handler invoked when an interrupt occurs * @param arg optional argument to pass to the handler @@ -68,10 +68,10 @@ static inline void intr_cntrl_ll_set_int_handler(uint8_t intr, interrupt_handler } /** - * @brief Gets argument passed to handler of a given interrupt number - * + * @brief Gets argument passed to handler of a given interrupt number + * * @param intr interrupt number ranged from 0 to 31 - * + * * @return argument used by handler of passed interrupt number */ static inline void * intr_cntrl_ll_get_int_handler_arg(uint8_t intr) @@ -81,18 +81,18 @@ static inline void * intr_cntrl_ll_get_int_handler_arg(uint8_t intr) /** * @brief Disables interrupts that are not located in iram - * + * * @param newmask mask of interrupts needs to be disabled * @return oldmask where to store old interrupts state */ -static inline uint32_t intr_cntrl_ll_disable_int_mask(uint32_t newmask) +static inline uint32_t intr_cntrl_ll_disable_int_mask(uint32_t newmask) { return xt_int_disable_mask(newmask); } /** * @brief Enables interrupts that are not located in iram - * + * * @param newmask mask of interrupts needs to be disabled */ static inline void intr_cntrl_ll_enable_int_mask(uint32_t newmask) @@ -102,4 +102,4 @@ static inline void intr_cntrl_ll_enable_int_mask(uint32_t newmask) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/ledc_ll.h b/components/hal/esp32s2/include/hal/ledc_ll.h index 5f3e22a41f..19d61f127f 100644 --- a/components/hal/esp32s2/include/hal/ledc_ll.h +++ b/components/hal/esp32s2/include/hal/ledc_ll.h @@ -484,4 +484,4 @@ static inline void ledc_ll_get_channel_timer(ledc_dev_t *hw, ledc_mode_t speed_m #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/mpu_ll.h b/components/hal/esp32s2/include/hal/mpu_ll.h index 08c230cdfc..fc491e2b8f 100644 --- a/components/hal/esp32s2/include/hal/mpu_ll.h +++ b/components/hal/esp32s2/include/hal/mpu_ll.h @@ -59,4 +59,4 @@ static inline void mpu_ll_set_region_illegal(uint32_t addr) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/pcnt_ll.h b/components/hal/esp32s2/include/hal/pcnt_ll.h index 7b2d9ee069..11dad5cf35 100644 --- a/components/hal/esp32s2/include/hal/pcnt_ll.h +++ b/components/hal/esp32s2/include/hal/pcnt_ll.h @@ -343,4 +343,4 @@ static inline void pcnt_ll_filter_disable(pcnt_dev_t *hw, pcnt_unit_t unit) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/rtc_cntl_ll.h b/components/hal/esp32s2/include/hal/rtc_cntl_ll.h index 47bb21953e..e1ad1d52cd 100644 --- a/components/hal/esp32s2/include/hal/rtc_cntl_ll.h +++ b/components/hal/esp32s2/include/hal/rtc_cntl_ll.h @@ -55,4 +55,4 @@ static inline void rtc_cntl_ll_ulp_wakeup_enable(void) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/rtc_io_ll.h b/components/hal/esp32s2/include/hal/rtc_io_ll.h index c64a35031a..c519f70030 100644 --- a/components/hal/esp32s2/include/hal/rtc_io_ll.h +++ b/components/hal/esp32s2/include/hal/rtc_io_ll.h @@ -368,4 +368,4 @@ static inline void rtcio_ll_ext0_set_wakeup_pin(int rtcio_num, int level) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/rwdt_ll.h b/components/hal/esp32s2/include/hal/rwdt_ll.h index d9645ddc72..681c2fdf4f 100644 --- a/components/hal/esp32s2/include/hal/rwdt_ll.h +++ b/components/hal/esp32s2/include/hal/rwdt_ll.h @@ -85,7 +85,7 @@ FORCE_INLINE_ATTR bool rwdt_ll_check_if_enabled(rtc_cntl_dev_t *hw) * @param stage Which stage to configure * @param timeout Number of timer ticks for the stage to timeout (see note). * @param behavior What action to take when the stage times out - * + * * @note The value of of RWDT stage 0 timeout register is special, in * that an implicit multiplier is applied to that value to produce * and effective timeout tick value. The multiplier is dependent diff --git a/components/hal/esp32s2/include/hal/sigmadelta_ll.h b/components/hal/esp32s2/include/hal/sigmadelta_ll.h index 1ecbf441ba..e06464a5ff 100644 --- a/components/hal/esp32s2/include/hal/sigmadelta_ll.h +++ b/components/hal/esp32s2/include/hal/sigmadelta_ll.h @@ -70,4 +70,4 @@ static inline void sigmadelta_ll_set_prescale(gpio_sd_dev_t *hw, sigmadelta_chan #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/soc_ll.h b/components/hal/esp32s2/include/hal/soc_ll.h index e195c93574..adcc3a196c 100644 --- a/components/hal/esp32s2/include/hal/soc_ll.h +++ b/components/hal/esp32s2/include/hal/soc_ll.h @@ -29,4 +29,4 @@ static inline void soc_ll_reset_core(int core) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/spi_flash_ll.h b/components/hal/esp32s2/include/hal/spi_flash_ll.h index 8666598944..cf20f55bf6 100644 --- a/components/hal/esp32s2/include/hal/spi_flash_ll.h +++ b/components/hal/esp32s2/include/hal/spi_flash_ll.h @@ -108,4 +108,4 @@ typedef union { #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/spi_ll.h b/components/hal/esp32s2/include/hal/spi_ll.h index e05b3ef0c9..d4b0d70b62 100644 --- a/components/hal/esp32s2/include/hal/spi_ll.h +++ b/components/hal/esp32s2/include/hal/spi_ll.h @@ -220,7 +220,7 @@ static inline void spi_ll_dma_fifo_reset(spi_dev_t *hw) /** * Clear in fifo full error - * + * * @param hw Beginning address of the peripheral registers. */ static inline void spi_ll_infifo_full_clr(spi_dev_t *hw) @@ -231,7 +231,7 @@ static inline void spi_ll_infifo_full_clr(spi_dev_t *hw) /** * Clear out fifo empty error - * + * * @param hw Beginning address of the peripheral registers. */ static inline void spi_ll_outfifo_empty_clr(spi_dev_t *hw) @@ -1105,7 +1105,7 @@ static inline void spi_dma_ll_rx_enable_burst_desc(spi_dma_dev_t *dma_in, bool e * Configuration of RX DMA EOF interrupt generation way * * @param dma_in Beginning address of the DMA peripheral registers which stores the data received from a peripheral into RAM. - * @param enable 1: spi_dma_inlink_eof is set when the number of dma pushed data bytes is equal to the value of spi_slv/mst_dma_rd_bytelen[19:0] in spi dma transition. 0: spi_dma_inlink_eof is set by spi_trans_done in non-seg-trans or spi_dma_seg_trans_done in seg-trans. + * @param enable 1: spi_dma_inlink_eof is set when the number of dma pushed data bytes is equal to the value of spi_slv/mst_dma_rd_bytelen[19:0] in spi dma transition. 0: spi_dma_inlink_eof is set by spi_trans_done in non-seg-trans or spi_dma_seg_trans_done in seg-trans. */ static inline void spi_dma_ll_set_rx_eof_generation(spi_dma_dev_t *dma_in, bool enable) { @@ -1201,4 +1201,4 @@ static inline bool spi_ll_tx_get_empty_err(spi_dev_t *hw) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/touch_sensor_hal.h b/components/hal/esp32s2/include/hal/touch_sensor_hal.h index f755924d55..ce125aa854 100644 --- a/components/hal/esp32s2/include/hal/touch_sensor_hal.h +++ b/components/hal/esp32s2/include/hal/touch_sensor_hal.h @@ -610,4 +610,4 @@ void touch_hal_sleep_channel_enable(touch_pad_t pad_num, bool enable); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/include/hal/touch_sensor_ll.h b/components/hal/esp32s2/include/hal/touch_sensor_ll.h index 4b7137c271..404aed857e 100644 --- a/components/hal/esp32s2/include/hal/touch_sensor_ll.h +++ b/components/hal/esp32s2/include/hal/touch_sensor_ll.h @@ -1172,4 +1172,4 @@ static inline void touch_ll_get_wakeup_status(touch_pad_t *pad_num) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s2/interrupt_descriptor_table.c b/components/hal/esp32s2/interrupt_descriptor_table.c index 1d31f2e0d1..790facd051 100644 --- a/components/hal/esp32s2/interrupt_descriptor_table.c +++ b/components/hal/esp32s2/interrupt_descriptor_table.c @@ -69,7 +69,7 @@ const static int_desc_t interrupt_descriptor_table [32]={ { 5, INTTP_LEVEL, {INTDESC_RESVD } }, //31 }; -const int_desc_t *interrupt_controller_hal_desc_table(void) +const int_desc_t *interrupt_controller_hal_desc_table(void) { return interrupt_descriptor_table; -} \ No newline at end of file +} diff --git a/components/hal/esp32s2/systimer_hal.c b/components/hal/esp32s2/systimer_hal.c index f51580393d..1cbb3f7c71 100644 --- a/components/hal/esp32s2/systimer_hal.c +++ b/components/hal/esp32s2/systimer_hal.c @@ -145,4 +145,4 @@ void systimer_hal_connect_alarm_counter(systimer_alarm_id_t alarm_id, systimer_c // esp32s2 only has one counter, so there's no need to connect alarm unit to counter (void)alarm_id; (void)counter_id; -} \ No newline at end of file +} diff --git a/components/hal/esp32s2/touch_sensor_hal.c b/components/hal/esp32s2/touch_sensor_hal.c index a14d8e46ac..6d11432e80 100644 --- a/components/hal/esp32s2/touch_sensor_hal.c +++ b/components/hal/esp32s2/touch_sensor_hal.c @@ -155,5 +155,3 @@ void touch_hal_sleep_channel_get_config(touch_pad_sleep_channel_t *slp_config) touch_ll_sleep_get_channel_num(&slp_config->touch_num); slp_config->en_proximity = touch_ll_sleep_get_approach_status(); } - - diff --git a/components/hal/esp32s3/include/hal/adc_hal.h b/components/hal/esp32s3/include/hal/adc_hal.h index 7a07053e0c..53e32ebdff 100644 --- a/components/hal/esp32s3/include/hal/adc_hal.h +++ b/components/hal/esp32s3/include/hal/adc_hal.h @@ -259,4 +259,4 @@ uint32_t adc_hal_calibration(adc_ll_num_t adc_n, adc_channel_t channel, adc_atte #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/adc_hal_conf.h b/components/hal/esp32s3/include/hal/adc_hal_conf.h index bc4f552c00..02e43632d2 100644 --- a/components/hal/esp32s3/include/hal/adc_hal_conf.h +++ b/components/hal/esp32s3/include/hal/adc_hal_conf.h @@ -28,4 +28,4 @@ #define SOC_ADC_SAR_CLK_DIV_DEFAULT(PERIPH_NUM) ((PERIPH_NUM==0)? 2 : 1) -#define SOC_ADC_DIGI_SAR_CLK_DIV_DEFAULT (1) \ No newline at end of file +#define SOC_ADC_DIGI_SAR_CLK_DIV_DEFAULT (1) diff --git a/components/hal/esp32s3/include/hal/adc_ll.h b/components/hal/esp32s3/include/hal/adc_ll.h index 9279284b78..08816ab92a 100644 --- a/components/hal/esp32s3/include/hal/adc_ll.h +++ b/components/hal/esp32s3/include/hal/adc_ll.h @@ -1177,4 +1177,4 @@ static inline void adc_ll_vref_output(adc_ll_num_t adc, adc_channel_t channel, b } #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/gpio_ll.h b/components/hal/esp32s3/include/hal/gpio_ll.h index 36f91c0ee6..f3011bbaa0 100644 --- a/components/hal/esp32s3/include/hal/gpio_ll.h +++ b/components/hal/esp32s3/include/hal/gpio_ll.h @@ -422,4 +422,4 @@ static inline void gpio_ll_force_unhold_all(gpio_dev_t *hw) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/i2c_ll.h b/components/hal/esp32s3/include/hal/i2c_ll.h index 7795c8cf72..46ab2ef04b 100644 --- a/components/hal/esp32s3/include/hal/i2c_ll.h +++ b/components/hal/esp32s3/include/hal/i2c_ll.h @@ -859,4 +859,3 @@ static inline void i2c_ll_slave_init(i2c_dev_t *hw) #ifdef __cplusplus } #endif - diff --git a/components/hal/esp32s3/include/hal/interrupt_controller_ll.h b/components/hal/esp32s3/include/hal/interrupt_controller_ll.h index 3c3d598149..b61fa47dbc 100644 --- a/components/hal/esp32s3/include/hal/interrupt_controller_ll.h +++ b/components/hal/esp32s3/include/hal/interrupt_controller_ll.h @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#pragma once +#pragma once #include #include "soc/soc_caps.h" @@ -25,18 +25,18 @@ extern "C" { /** * @brief enable interrupts specified by the mask - * - * @param mask bitmask of interrupts that needs to be enabled + * + * @param mask bitmask of interrupts that needs to be enabled */ -static inline void intr_cntrl_ll_enable_interrupts(uint32_t mask) +static inline void intr_cntrl_ll_enable_interrupts(uint32_t mask) { xt_ints_on(mask); } /** * @brief disable interrupts specified by the mask - * - * @param mask bitmask of interrupts that needs to be disabled + * + * @param mask bitmask of interrupts that needs to be disabled */ static inline void intr_cntrl_ll_disable_interrupts(uint32_t mask) { @@ -45,10 +45,10 @@ static inline void intr_cntrl_ll_disable_interrupts(uint32_t mask) /** * @brief checks if given interrupt number has a valid handler - * + * * @param intr interrupt number ranged from 0 to 31 * @param cpu cpu number ranged betweeen 0 to SOC_CPU_CORES_NUM - 1 - * @return true for valid handler, false otherwise + * @return true for valid handler, false otherwise */ static inline bool intr_cntrl_ll_has_handler(uint8_t intr, uint8_t cpu) { @@ -56,8 +56,8 @@ static inline bool intr_cntrl_ll_has_handler(uint8_t intr, uint8_t cpu) } /** - * @brief sets interrupt handler and optional argument of a given interrupt number - * + * @brief sets interrupt handler and optional argument of a given interrupt number + * * @param intr interrupt number ranged from 0 to 31 * @param handler handler invoked when an interrupt occurs * @param arg optional argument to pass to the handler @@ -68,10 +68,10 @@ static inline void intr_cntrl_ll_set_int_handler(uint8_t intr, interrupt_handler } /** - * @brief Gets argument passed to handler of a given interrupt number - * + * @brief Gets argument passed to handler of a given interrupt number + * * @param intr interrupt number ranged from 0 to 31 - * + * * @return argument used by handler of passed interrupt number */ static inline void * intr_cntrl_ll_get_int_handler_arg(uint8_t intr) @@ -81,18 +81,18 @@ static inline void * intr_cntrl_ll_get_int_handler_arg(uint8_t intr) /** * @brief Disables interrupts that are not located in iram - * + * * @param newmask mask of interrupts needs to be disabled * @return oldmask where to store old interrupts state */ -static inline uint32_t intr_cntrl_ll_disable_int_mask(uint32_t newmask) +static inline uint32_t intr_cntrl_ll_disable_int_mask(uint32_t newmask) { return xt_int_disable_mask(newmask); } /** * @brief Enables interrupts that are not located in iram - * + * * @param newmask mask of interrupts needs to be disabled */ static inline void intr_cntrl_ll_enable_int_mask(uint32_t newmask) @@ -102,4 +102,4 @@ static inline void intr_cntrl_ll_enable_int_mask(uint32_t newmask) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/ledc_ll.h b/components/hal/esp32s3/include/hal/ledc_ll.h index 53065f6856..eafae904ba 100644 --- a/components/hal/esp32s3/include/hal/ledc_ll.h +++ b/components/hal/esp32s3/include/hal/ledc_ll.h @@ -515,4 +515,4 @@ static inline void ledc_ll_get_channel_timer(ledc_dev_t *hw, ledc_mode_t speed_m #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/mcpwm_ll.h b/components/hal/esp32s3/include/hal/mcpwm_ll.h index 250d1ff7cd..3b9f6a6e65 100644 --- a/components/hal/esp32s3/include/hal/mcpwm_ll.h +++ b/components/hal/esp32s3/include/hal/mcpwm_ll.h @@ -732,4 +732,4 @@ static inline mcpwm_intr_t mcpwm_ll_get_cap_intr_def(int bit) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/mpu_ll.h b/components/hal/esp32s3/include/hal/mpu_ll.h index 08c230cdfc..fc491e2b8f 100644 --- a/components/hal/esp32s3/include/hal/mpu_ll.h +++ b/components/hal/esp32s3/include/hal/mpu_ll.h @@ -59,4 +59,4 @@ static inline void mpu_ll_set_region_illegal(uint32_t addr) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/pcnt_ll.h b/components/hal/esp32s3/include/hal/pcnt_ll.h index 19a5fc1977..ffa4956e45 100644 --- a/components/hal/esp32s3/include/hal/pcnt_ll.h +++ b/components/hal/esp32s3/include/hal/pcnt_ll.h @@ -343,4 +343,4 @@ static inline void pcnt_ll_filter_disable(pcnt_dev_t *hw, pcnt_unit_t unit) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/rtc_cntl_ll.h b/components/hal/esp32s3/include/hal/rtc_cntl_ll.h index 47bb21953e..e1ad1d52cd 100644 --- a/components/hal/esp32s3/include/hal/rtc_cntl_ll.h +++ b/components/hal/esp32s3/include/hal/rtc_cntl_ll.h @@ -55,4 +55,4 @@ static inline void rtc_cntl_ll_ulp_wakeup_enable(void) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/rtc_io_ll.h b/components/hal/esp32s3/include/hal/rtc_io_ll.h index 2d5c64fe91..22990e6504 100644 --- a/components/hal/esp32s3/include/hal/rtc_io_ll.h +++ b/components/hal/esp32s3/include/hal/rtc_io_ll.h @@ -364,4 +364,4 @@ static inline void rtcio_ll_ext0_set_wakeup_pin(int rtcio_num, int level) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/sigmadelta_ll.h b/components/hal/esp32s3/include/hal/sigmadelta_ll.h index 16f7af6862..99d75853c5 100644 --- a/components/hal/esp32s3/include/hal/sigmadelta_ll.h +++ b/components/hal/esp32s3/include/hal/sigmadelta_ll.h @@ -70,4 +70,4 @@ static inline void sigmadelta_ll_set_prescale(gpio_sd_dev_t *hw, sigmadelta_chan #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/soc_ll.h b/components/hal/esp32s3/include/hal/soc_ll.h index 93f4bbf640..234248368e 100644 --- a/components/hal/esp32s3/include/hal/soc_ll.h +++ b/components/hal/esp32s3/include/hal/soc_ll.h @@ -51,4 +51,4 @@ static inline void soc_ll_reset_core(int core) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/spi_flash_ll.h b/components/hal/esp32s3/include/hal/spi_flash_ll.h index 1b5c23849c..e60f208edc 100644 --- a/components/hal/esp32s3/include/hal/spi_flash_ll.h +++ b/components/hal/esp32s3/include/hal/spi_flash_ll.h @@ -105,4 +105,4 @@ typedef union { #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/spi_ll.h b/components/hal/esp32s3/include/hal/spi_ll.h index 3cd81b3e97..2f6a82289c 100644 --- a/components/hal/esp32s3/include/hal/spi_ll.h +++ b/components/hal/esp32s3/include/hal/spi_ll.h @@ -148,7 +148,7 @@ static inline void spi_ll_slave_init(spi_dev_t *hw) /** * Initialize SPI peripheral (slave half duplex mode) - * + * * @param hw Beginning address of the peripheral registers. */ static inline void spi_ll_slave_hd_init(spi_dev_t *hw) @@ -158,7 +158,7 @@ static inline void spi_ll_slave_hd_init(spi_dev_t *hw) hw->ctrl.val = 0; hw->user.doutdin = 0; hw->user.sio = 0; - + hw->slave.soft_reset = 1; hw->slave.soft_reset = 0; hw->slave.slave_mode = 1; @@ -246,7 +246,7 @@ static inline void spi_ll_dma_fifo_reset(spi_dev_t *hw) /** * Clear in fifo full error - * + * * @param hw Beginning address of the peripheral registers. */ static inline void spi_ll_infifo_full_clr(spi_dev_t *hw) @@ -256,7 +256,7 @@ static inline void spi_ll_infifo_full_clr(spi_dev_t *hw) /** * Clear out fifo empty error - * + * * @param hw Beginning address of the peripheral registers. */ static inline void spi_ll_outfifo_empty_clr(spi_dev_t *hw) @@ -293,7 +293,7 @@ static inline void spi_ll_dma_tx_enable(spi_dev_t *hw, bool enable) * Configuration of RX DMA EOF interrupt generation way * * @param hw Beginning address of the peripheral registers. - * @param enable 1: spi_dma_inlink_eof is set when the number of dma pushed data bytes is equal to the value of spi_slv/mst_dma_rd_bytelen[19:0] in spi dma transition. 0: spi_dma_inlink_eof is set by spi_trans_done in non-seg-trans or spi_dma_seg_trans_done in seg-trans. + * @param enable 1: spi_dma_inlink_eof is set when the number of dma pushed data bytes is equal to the value of spi_slv/mst_dma_rd_bytelen[19:0] in spi dma transition. 0: spi_dma_inlink_eof is set by spi_trans_done in non-seg-trans or spi_dma_seg_trans_done in seg-trans. */ static inline void spi_ll_dma_set_rx_eof_generation(spi_dev_t *hw, bool enable) { @@ -322,7 +322,7 @@ static inline void spi_ll_write_buffer(spi_dev_t *hw, const uint8_t *buffer_to_s /** * Write to SPI hardware data buffer by buffer ID (address) - * + * * @param hw Beginning address of the peripheral registers * @param byte_id Start ID (address) of the hardware buffer to be written * @param data Address of the data to be written to the hardware data buffer. @@ -373,7 +373,7 @@ static inline void spi_ll_read_buffer(spi_dev_t *hw, uint8_t *buffer_to_rcv, siz /** * Read from SPI hardware data buffer by buffer ID (address) - * + * * @param hw Beginning address of the peripheral registers * @param byte_id Start ID (address) of the hardware buffer to be read * @param data Address of a buffer to read data from hardware data buffer @@ -555,7 +555,7 @@ static inline void spi_ll_master_set_io_mode(spi_dev_t *hw, spi_ll_io_mode_t io_ /** * Set the SPI slave to work in segment transaction mode - * + * * @param hw Beginning address of the peripheral registers. * @param seg_trans True to work in seg mode, otherwise false. */ diff --git a/components/hal/esp32s3/include/hal/touch_sensor_hal.h b/components/hal/esp32s3/include/hal/touch_sensor_hal.h index f755924d55..ce125aa854 100644 --- a/components/hal/esp32s3/include/hal/touch_sensor_hal.h +++ b/components/hal/esp32s3/include/hal/touch_sensor_hal.h @@ -610,4 +610,4 @@ void touch_hal_sleep_channel_enable(touch_pad_t pad_num, bool enable); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/touch_sensor_ll.h b/components/hal/esp32s3/include/hal/touch_sensor_ll.h index 04c7a5e9d1..d16b09a1f6 100644 --- a/components/hal/esp32s3/include/hal/touch_sensor_ll.h +++ b/components/hal/esp32s3/include/hal/touch_sensor_ll.h @@ -1158,4 +1158,4 @@ static inline void touch_ll_get_wakeup_status(touch_pad_t *pad_num) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/include/hal/uart_ll.h b/components/hal/esp32s3/include/hal/uart_ll.h index a3accc0480..22d6f24c8d 100644 --- a/components/hal/esp32s3/include/hal/uart_ll.h +++ b/components/hal/esp32s3/include/hal/uart_ll.h @@ -802,4 +802,4 @@ static inline uint16_t uart_ll_max_tout_thrd(uart_dev_t *hw) #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/esp32s3/interrupt_descriptor_table.c b/components/hal/esp32s3/interrupt_descriptor_table.c index fefa693795..4afb28e248 100644 --- a/components/hal/esp32s3/interrupt_descriptor_table.c +++ b/components/hal/esp32s3/interrupt_descriptor_table.c @@ -69,7 +69,7 @@ const static int_desc_t interrupt_descriptor_table [32]={ { 5, INTTP_LEVEL, {INTDESC_RESVD, INTDESC_RESVD } }, //31 }; -const int_desc_t *interrupt_controller_hal_desc_table(void) +const int_desc_t *interrupt_controller_hal_desc_table(void) { return interrupt_descriptor_table; -} \ No newline at end of file +} diff --git a/components/hal/gpio_hal.c b/components/hal/gpio_hal.c index 1eb31e90cf..9907104ab3 100644 --- a/components/hal/gpio_hal.c +++ b/components/hal/gpio_hal.c @@ -36,4 +36,4 @@ void gpio_hal_intr_disable(gpio_hal_context_t *hal, gpio_num_t gpio_num) } else { gpio_ll_clear_intr_status_high(hal->dev, BIT(gpio_num - 32)); } -} \ No newline at end of file +} diff --git a/components/hal/include/hal/adc_types.h b/components/hal/include/hal/adc_types.h index b6e77b8095..040d1ce8e0 100644 --- a/components/hal/include/hal/adc_types.h +++ b/components/hal/include/hal/adc_types.h @@ -376,4 +376,4 @@ typedef struct { uint32_t threshold; /*! #include "hal/interrupt_controller_types.h" @@ -31,7 +31,7 @@ __attribute__((pure)) const int_desc_t *interrupt_controller_hal_desc_table(voi /** * @brief Gets the interrupt type given an interrupt number. - * + * * @param interrupt_number Interrupt number 0 to 31 * @return interrupt type */ @@ -39,7 +39,7 @@ __attribute__((pure)) int_type_t interrupt_controller_hal_desc_type(int interru /** * @brief Gets the interrupt level given an interrupt number. - * + * * @param interrupt_number Interrupt number 0 to 31 * @return interrupt level bitmask */ @@ -47,27 +47,27 @@ __attribute__((pure)) int interrupt_controller_hal_desc_level(int interrupt_num /** * @brief Gets the cpu flags given the interrupt number and target cpu. - * + * * @param interrupt_number Interrupt number 0 to 31 * @param cpu_number CPU number between 0 and SOC_CPU_CORES_NUM - 1 - * @return flags for that interrupt number + * @return flags for that interrupt number */ __attribute__((pure)) uint32_t interrupt_controller_hal_desc_flags(int interrupt_number, int cpu_number); /** * @brief Gets the interrupt type given an interrupt number. - * + * * @param interrupt_number Interrupt number 0 to 31 * @return interrupt type */ static inline int_type_t interrupt_controller_hal_get_type(int interrupt_number) { return interrupt_controller_hal_desc_type(interrupt_number); -} +} /** * @brief Gets the interrupt level given an interrupt number. - * + * * @param interrupt_number Interrupt number 0 to 31 * @return interrupt level bitmask */ @@ -78,10 +78,10 @@ static inline int interrupt_controller_hal_get_level(int interrupt_number) /** * @brief Gets the cpu flags given the interrupt number and target cpu. - * + * * @param interrupt_number Interrupt number 0 to 31 * @param cpu_number CPU number between 0 and SOC_CPU_CORES_NUM - 1 - * @return flags for that interrupt number + * @return flags for that interrupt number */ static inline uint32_t interrupt_controller_hal_get_cpu_desc_flags(int interrupt_number, int cpu_number) { @@ -90,18 +90,18 @@ static inline uint32_t interrupt_controller_hal_get_cpu_desc_flags(int interrupt /** * @brief enable interrupts specified by the mask - * - * @param mask bitmask of interrupts that needs to be enabled + * + * @param mask bitmask of interrupts that needs to be enabled */ -static inline void interrupt_controller_hal_enable_interrupts(uint32_t mask) +static inline void interrupt_controller_hal_enable_interrupts(uint32_t mask) { intr_cntrl_ll_enable_interrupts(mask); } /** * @brief disable interrupts specified by the mask - * - * @param mask bitmask of interrupts that needs to be disabled + * + * @param mask bitmask of interrupts that needs to be disabled */ static inline void interrupt_controller_hal_disable_interrupts(uint32_t mask) { @@ -110,57 +110,57 @@ static inline void interrupt_controller_hal_disable_interrupts(uint32_t mask) /** * @brief checks if given interrupt number has a valid handler - * + * * @param intr interrupt number ranged from 0 to 31 * @param cpu cpu number ranged betweeen 0 to SOC_CPU_CORES_NUM - 1 - * @return true for valid handler, false otherwise + * @return true for valid handler, false otherwise */ static inline bool interrupt_controller_hal_has_handler(int intr, int cpu) { return intr_cntrl_ll_has_handler(intr, cpu); -} +} /** - * @brief sets interrupt handler and optional argument of a given interrupt number - * + * @brief sets interrupt handler and optional argument of a given interrupt number + * * @param intr interrupt number ranged from 0 to 31 * @param handler handler invoked when an interrupt occurs * @param arg optional argument to pass to the handler */ -static inline void interrupt_controller_hal_set_int_handler(uint8_t intr, interrupt_handler_t handler, void *arg) +static inline void interrupt_controller_hal_set_int_handler(uint8_t intr, interrupt_handler_t handler, void *arg) { intr_cntrl_ll_set_int_handler(intr, handler, arg); } /** - * @brief Gets argument passed to handler of a given interrupt number - * + * @brief Gets argument passed to handler of a given interrupt number + * * @param intr interrupt number ranged from 0 to 31 - * + * * @return argument used by handler of passed interrupt number */ -static inline void * interrupt_controller_hal_get_int_handler_arg(uint8_t intr) +static inline void * interrupt_controller_hal_get_int_handler_arg(uint8_t intr) { return intr_cntrl_ll_get_int_handler_arg(intr); } /** * @brief Disables interrupts that are not located in iram - * + * * @param newmask mask of interrupts needs to be disabled * @return oldmask where to store old interrupts state */ static inline uint32_t interrupt_controller_hal_disable_int_mask(uint32_t newmask) { - return intr_cntrl_ll_disable_int_mask(newmask); + return intr_cntrl_ll_disable_int_mask(newmask); } /** * @brief Enables interrupts that are not located in iram - * + * * @param newmask mask of interrupts needs to be disabled */ -static inline void interrupt_controller_hal_enable_int_mask(uint32_t newmask) +static inline void interrupt_controller_hal_enable_int_mask(uint32_t newmask) { intr_cntrl_ll_enable_int_mask(newmask); } diff --git a/components/hal/include/hal/interrupt_controller_types.h b/components/hal/include/hal/interrupt_controller_types.h index 639317f47e..bf9be1fd1f 100644 --- a/components/hal/include/hal/interrupt_controller_types.h +++ b/components/hal/include/hal/interrupt_controller_types.h @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#pragma once +#pragma once #include "soc/soc_caps.h" #include "soc/soc.h" @@ -24,7 +24,7 @@ extern "C" { typedef enum { INTDESC_NORMAL=0, INTDESC_RESVD, - INTDESC_SPECIAL + INTDESC_SPECIAL } int_desc_flag_t; typedef enum { @@ -43,4 +43,4 @@ typedef void (*interrupt_handler_t)(void *arg); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/include/hal/mpu_hal.h b/components/hal/include/hal/mpu_hal.h index 0614de9eb8..f1a7103fc7 100644 --- a/components/hal/include/hal/mpu_hal.h +++ b/components/hal/include/hal/mpu_hal.h @@ -24,7 +24,7 @@ extern "C" { /** * Specify the type of access allowed on a memory region. - * + * * @param id index to the region table; on targets not SOC_MPU_CONFIGURABLE_REGIONS_SUPPORTED, * the region divisions is predefined in hardware which is likely reflected in LL implementation. * @param access type of access allowed @@ -33,4 +33,4 @@ void mpu_hal_set_region_access(int id, mpu_access_t access); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/include/hal/mpu_types.h b/components/hal/include/hal/mpu_types.h index 14675a7268..b6445eed23 100644 --- a/components/hal/include/hal/mpu_types.h +++ b/components/hal/include/hal/mpu_types.h @@ -30,4 +30,4 @@ typedef enum { MPU_REGION_RW, // read-write MPU_REGION_X, // executable MPU_REGION_RWX // read-write-executable -} mpu_access_t; \ No newline at end of file +} mpu_access_t; diff --git a/components/hal/include/hal/pcnt_hal.h b/components/hal/include/hal/pcnt_hal.h index 416af3fa85..8d2253e46e 100644 --- a/components/hal/include/hal/pcnt_hal.h +++ b/components/hal/include/hal/pcnt_hal.h @@ -220,4 +220,4 @@ void pcnt_hal_init(pcnt_hal_context_t *hal, int pcnt_num); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/include/hal/pcnt_types.h b/components/hal/include/hal/pcnt_types.h index 66a87a84dc..e96406298c 100644 --- a/components/hal/include/hal/pcnt_types.h +++ b/components/hal/include/hal/pcnt_types.h @@ -43,7 +43,7 @@ typedef enum { PCNT_UNIT_7 = 7, /*!< PCNT unit 7 */ #endif PCNT_UNIT_MAX, -} pcnt_unit_t; +} pcnt_unit_t; /** * @brief Selection of available modes that determine the counter's action depending on the state of the control signal's input GPIO @@ -106,4 +106,4 @@ typedef struct { #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/include/hal/rtc_hal.h b/components/hal/include/hal/rtc_hal.h index a700c90a93..94c016c568 100644 --- a/components/hal/include/hal/rtc_hal.h +++ b/components/hal/include/hal/rtc_hal.h @@ -30,4 +30,3 @@ * Enable wakeup from ULP coprocessor. */ #define rtc_hal_ulp_wakeup_enable() rtc_cntl_ll_ulp_wakeup_enable() - diff --git a/components/hal/include/hal/rtc_io_types.h b/components/hal/include/hal/rtc_io_types.h index 82b358d86f..9f010aeff6 100644 --- a/components/hal/include/hal/rtc_io_types.h +++ b/components/hal/include/hal/rtc_io_types.h @@ -22,4 +22,4 @@ typedef enum { RTC_GPIO_MODE_DISABLED, /*!< Pad (output + input) disable */ RTC_GPIO_MODE_OUTPUT_OD, /*!< Pad open-drain output */ RTC_GPIO_MODE_INPUT_OUTPUT_OD, /*!< Pad input + open-drain output */ -} rtc_gpio_mode_t; \ No newline at end of file +} rtc_gpio_mode_t; diff --git a/components/hal/include/hal/sdio_slave_hal.h b/components/hal/include/hal/sdio_slave_hal.h index 52975c5ec0..5b252ea9ba 100644 --- a/components/hal/include/hal/sdio_slave_hal.h +++ b/components/hal/include/hal/sdio_slave_hal.h @@ -526,4 +526,3 @@ uint8_t sdio_slave_hal_host_get_reg(sdio_slave_context_t *hal, int pos); * @param reg Value to set. */ void sdio_slave_hal_host_set_reg(sdio_slave_context_t *hal, int pos, uint8_t reg); - diff --git a/components/hal/include/hal/sdio_slave_ll.h b/components/hal/include/hal/sdio_slave_ll.h index e013f5f112..77fe878314 100644 --- a/components/hal/include/hal/sdio_slave_ll.h +++ b/components/hal/include/hal/sdio_slave_ll.h @@ -479,4 +479,3 @@ static inline void sdio_slave_ll_slvint_fetch_clear(slc_dev_t *slc, sdio_slave_l *out_slv_int = slv_int; slc->slc0_int_clr.val = slv_int; } - diff --git a/components/hal/include/hal/sdio_slave_types.h b/components/hal/include/hal/sdio_slave_types.h index fd3e4050e4..60e08456fc 100644 --- a/components/hal/include/hal/sdio_slave_types.h +++ b/components/hal/include/hal/sdio_slave_types.h @@ -44,4 +44,4 @@ typedef enum { typedef enum { SDIO_SLAVE_SEND_STREAM = 0, ///< Stream mode, all packets to send will be combined as one if possible SDIO_SLAVE_SEND_PACKET = 1, ///< Packet mode, one packets will be sent one after another (only increase packet_len if last packet sent). -} sdio_slave_sending_mode_t; \ No newline at end of file +} sdio_slave_sending_mode_t; diff --git a/components/hal/include/hal/sha_types.h b/components/hal/include/hal/sha_types.h index c503822766..6026d3b67c 100644 --- a/components/hal/include/hal/sha_types.h +++ b/components/hal/include/hal/sha_types.h @@ -35,4 +35,4 @@ extern "C" { #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/include/hal/sigmadelta_hal.h b/components/hal/include/hal/sigmadelta_hal.h index 58cb4c2180..4deeec9bfd 100644 --- a/components/hal/include/hal/sigmadelta_hal.h +++ b/components/hal/include/hal/sigmadelta_hal.h @@ -68,4 +68,4 @@ void sigmadelta_hal_init(sigmadelta_hal_context_t *hal, int sigmadelta_num); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/include/hal/soc_hal.h b/components/hal/include/hal/soc_hal.h index e4400d0e07..74359fc97c 100644 --- a/components/hal/include/hal/soc_hal.h +++ b/components/hal/include/hal/soc_hal.h @@ -72,4 +72,4 @@ void soc_hal_unstall_core(int core); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/include/hal/spi_hal.h b/components/hal/include/hal/spi_hal.h index 479a91bd3a..35dbcfc7b5 100644 --- a/components/hal/include/hal/spi_hal.h +++ b/components/hal/include/hal/spi_hal.h @@ -46,8 +46,8 @@ typedef struct { uint32_t no_compensate; ///< No need to add dummy to compensate the timing, device specific uint32_t clock_speed_hz; ///< Desired frequency. uint32_t duty_cycle; ///< Desired duty cycle of SPI clock - uint32_t input_delay_ns; /**< Maximum delay between SPI launch clock and the data to be valid. - * This is used to compensate/calculate the maximum frequency allowed. + uint32_t input_delay_ns; /**< Maximum delay between SPI launch clock and the data to be valid. + * This is used to compensate/calculate the maximum frequency allowed. * Left 0 if not known. */ bool use_gpio; ///< True if the GPIO matrix is used, otherwise false @@ -67,7 +67,7 @@ typedef struct { /** * DMA configuration structure * Should be set by driver at initialization - */ + */ typedef struct { spi_dma_dev_t *dma_in; ///< Input DMA(DMA -> RAM) peripheral register address spi_dma_dev_t *dma_out; ///< Output DMA(RAM -> DMA) peripheral register address @@ -116,7 +116,7 @@ typedef struct { /** * Device configuration structure, this should be initialised by driver based on different devices respectively. - * All these parameters will be updated to the peripheral only when ``spi_hal_setup_device``. + * All these parameters will be updated to the peripheral only when ``spi_hal_setup_device``. * They may not get updated when ``spi_hal_setup_trans``. */ typedef struct { @@ -250,4 +250,3 @@ void spi_hal_cal_timing(int eff_clk, bool gpio_is_used, int input_delay_ns, int * allowed. Left 0 if not known. */ int spi_hal_get_freq_limit(bool gpio_is_used, int input_delay_ns); - diff --git a/components/hal/include/hal/systimer_types.h b/components/hal/include/hal/systimer_types.h index 02e65daf30..cf88a00f24 100644 --- a/components/hal/include/hal/systimer_types.h +++ b/components/hal/include/hal/systimer_types.h @@ -71,4 +71,4 @@ typedef enum { #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/include/hal/touch_sensor_hal.h b/components/hal/include/hal/touch_sensor_hal.h index 98cdfc7916..dc125c5bad 100644 --- a/components/hal/include/hal/touch_sensor_hal.h +++ b/components/hal/include/hal/touch_sensor_hal.h @@ -222,4 +222,4 @@ void touch_hal_config(touch_pad_t touch_num); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/hal/interrupt_controller_hal.c b/components/hal/interrupt_controller_hal.c index 557aadfa75..302094d025 100644 --- a/components/hal/interrupt_controller_hal.c +++ b/components/hal/interrupt_controller_hal.c @@ -14,7 +14,7 @@ #include "hal/interrupt_controller_hal.h" -int_type_t interrupt_controller_hal_desc_type(int interrupt_number) +int_type_t interrupt_controller_hal_desc_type(int interrupt_number) { const int_desc_t *int_desc = interrupt_controller_hal_desc_table(); return(int_desc[interrupt_number].type); @@ -26,8 +26,8 @@ int interrupt_controller_hal_desc_level(int interrupt_number) return(int_desc[interrupt_number].level); } -int_desc_flag_t interrupt_controller_hal_desc_flags(int interrupt_number, int cpu_number) +int_desc_flag_t interrupt_controller_hal_desc_flags(int interrupt_number, int cpu_number) { const int_desc_t *int_desc = interrupt_controller_hal_desc_table(); return(int_desc[interrupt_number].cpuflags[cpu_number]); -} \ No newline at end of file +} diff --git a/components/hal/mcpwm_hal.c b/components/hal/mcpwm_hal.c index a18a4c025d..b3bb186e2c 100644 --- a/components/hal/mcpwm_hal.c +++ b/components/hal/mcpwm_hal.c @@ -227,4 +227,3 @@ void mcpwm_hal_capture_disable(mcpwm_hal_context_t *hal, int cap_sig) { mcpwm_ll_capture_enable(hal->dev, cap_sig, 0); } - diff --git a/components/hal/mpu_hal.c b/components/hal/mpu_hal.c index d7913c5400..bebcb7c057 100644 --- a/components/hal/mpu_hal.c +++ b/components/hal/mpu_hal.c @@ -54,4 +54,4 @@ void mpu_hal_set_region_access(int id, mpu_access_t access) default: break; } -} \ No newline at end of file +} diff --git a/components/hal/rtc_io_hal.c b/components/hal/rtc_io_hal.c index c37ed6a5e9..bc28acfa06 100644 --- a/components/hal/rtc_io_hal.c +++ b/components/hal/rtc_io_hal.c @@ -89,4 +89,4 @@ void rtcio_hal_set_direction_in_sleep(int rtcio_num, rtc_gpio_mode_t mode) default: break; } -} \ No newline at end of file +} diff --git a/components/hal/sdio_slave_hal.c b/components/hal/sdio_slave_hal.c index 485fb09df2..2a16377fa4 100644 --- a/components/hal/sdio_slave_hal.c +++ b/components/hal/sdio_slave_hal.c @@ -725,4 +725,3 @@ void sdio_slave_hal_slvint_fetch_clear(sdio_slave_context_t *hal, sdio_slave_ll_ { sdio_slave_ll_slvint_fetch_clear(hal->slc, out_int_mask); } - diff --git a/components/hal/sha_hal.c b/components/hal/sha_hal.c index 866524f83c..d9e68681a9 100644 --- a/components/hal/sha_hal.c +++ b/components/hal/sha_hal.c @@ -196,4 +196,4 @@ void sha_hal_sha512_init_hash(uint32_t t_string, uint8_t t_len) sha_hal_wait_idle(); } -#endif //SOC_SHA_SUPPORT_SHA512_T \ No newline at end of file +#endif //SOC_SHA_SUPPORT_SHA512_T diff --git a/components/hal/sigmadelta_hal.c b/components/hal/sigmadelta_hal.c index 01559cf58f..b36018330b 100644 --- a/components/hal/sigmadelta_hal.c +++ b/components/hal/sigmadelta_hal.c @@ -23,4 +23,4 @@ void sigmadelta_hal_init(sigmadelta_hal_context_t *hal, int sigmadelta_num) //Get hardware instance. hal->dev = SIGMADELTA_LL_GET_HW(sigmadelta_num); sigmadelta_ll_set_en(hal->dev, 1); -} \ No newline at end of file +} diff --git a/components/hal/soc_hal.c b/components/hal/soc_hal.c index b0c6304faf..c48a3a01e1 100644 --- a/components/hal/soc_hal.c +++ b/components/hal/soc_hal.c @@ -33,4 +33,4 @@ void soc_hal_unstall_core(int core) { soc_ll_unstall_core(core); } -#endif // SOC_CPU_CORES_NUM > 1 \ No newline at end of file +#endif // SOC_CPU_CORES_NUM > 1 diff --git a/components/hal/spi_flash_hal_gpspi.c b/components/hal/spi_flash_hal_gpspi.c index 09a3a28a4b..73aade3d9a 100644 --- a/components/hal/spi_flash_hal_gpspi.c +++ b/components/hal/spi_flash_hal_gpspi.c @@ -40,4 +40,4 @@ bool spi_flash_hal_gpspi_host_idle(spi_flash_host_inst_t *host) { spi_dev_t *dev = get_spi_dev(host); return spi_flash_ll_host_idle(dev); -} \ No newline at end of file +} diff --git a/components/hal/spi_flash_hal_iram.c b/components/hal/spi_flash_hal_iram.c index 3181672080..d3e99f5821 100644 --- a/components/hal/spi_flash_hal_iram.c +++ b/components/hal/spi_flash_hal_iram.c @@ -82,4 +82,4 @@ bool spi_flash_hal_host_idle(spi_flash_host_inst_t *host) } return idle; -} \ No newline at end of file +} diff --git a/components/hal/spi_hal_iram.c b/components/hal/spi_hal_iram.c index 20c05598fc..f1ba196080 100644 --- a/components/hal/spi_hal_iram.c +++ b/components/hal/spi_hal_iram.c @@ -146,10 +146,10 @@ void spi_hal_prepare_data(spi_hal_context_t *hal, const spi_hal_dev_config_t *de //No need to setup anything; we'll copy the result out of the work registers directly later. } else { lldesc_setup_link(hal->dma_config.dmadesc_rx, trans->rcv_buffer, ((trans->rx_bitlen + 7) / 8), true); - + spi_dma_ll_rx_reset(hal->dma_in); - spi_ll_dma_rx_enable(hal->hw, 1); + spi_ll_dma_rx_enable(hal->hw, 1); spi_dma_ll_rx_start(hal->dma_in, hal->dma_config.dmadesc_rx); } @@ -167,7 +167,7 @@ void spi_hal_prepare_data(spi_hal_context_t *hal, const spi_hal_dev_config_t *de spi_ll_write_buffer(hw, trans->send_buffer, trans->tx_bitlen); } else { lldesc_setup_link(hal->dma_config.dmadesc_tx, trans->send_buffer, (trans->tx_bitlen + 7) / 8, false); - + spi_dma_ll_tx_reset(hal->dma_out); spi_ll_dma_tx_enable(hal->hw, 1); diff --git a/components/hal/spi_slave_hal_iram.c b/components/hal/spi_slave_hal_iram.c index 587bb5de4f..be0cab92cb 100644 --- a/components/hal/spi_slave_hal_iram.c +++ b/components/hal/spi_slave_hal_iram.c @@ -36,26 +36,26 @@ void spi_slave_hal_prepare_data(const spi_slave_hal_context_t *hal) spi_ll_dma_fifo_reset(hal->hw); //Fill DMA descriptors - if (hal->rx_buffer) { + if (hal->rx_buffer) { lldesc_setup_link(hal->dmadesc_rx, hal->rx_buffer, ((hal->bitlen + 7) / 8), true); //reset dma inlink, this should be reset before spi related reset spi_dma_ll_rx_reset(hal->dma_in); - spi_ll_slave_reset(hal->hw); + spi_ll_slave_reset(hal->hw); spi_ll_infifo_full_clr(hal->hw); spi_ll_dma_rx_enable(hal->hw, 1); - spi_dma_ll_rx_start(hal->dma_in, &hal->dmadesc_rx[0]); + spi_dma_ll_rx_start(hal->dma_in, &hal->dmadesc_rx[0]); } if (hal->tx_buffer) { lldesc_setup_link(hal->dmadesc_tx, hal->tx_buffer, (hal->bitlen + 7) / 8, false); - + //reset dma outlink, this should be reset before spi related reset spi_dma_ll_tx_reset(hal->dma_out); - spi_ll_slave_reset(hal->hw); + spi_ll_slave_reset(hal->hw); spi_ll_outfifo_empty_clr(hal->hw); - spi_ll_dma_tx_enable(hal->hw, 1); + spi_ll_dma_tx_enable(hal->hw, 1); spi_dma_ll_tx_start(hal->dma_out, (&hal->dmadesc_tx[0])); } } else { @@ -64,10 +64,10 @@ void spi_slave_hal_prepare_data(const spi_slave_hal_context_t *hal) spi_ll_slave_reset(hal->hw); spi_ll_write_buffer(hal->hw, hal->tx_buffer, hal->bitlen); } - + spi_ll_cpu_fifo_reset(hal->hw); } - + spi_ll_slave_set_rx_bitlen(hal->hw, hal->bitlen); spi_ll_slave_set_tx_bitlen(hal->hw, hal->bitlen); diff --git a/components/hal/spi_slave_hd_hal.c b/components/hal/spi_slave_hd_hal.c index 20ae6efe8c..670e99d89d 100644 --- a/components/hal/spi_slave_hd_hal.c +++ b/components/hal/spi_slave_hd_hal.c @@ -114,7 +114,7 @@ void spi_slave_hd_hal_rxdma(spi_slave_hd_hal_context_t *hal, uint8_t *out_buf, s spi_ll_slave_set_rx_bitlen(hal->dev, len * 8); spi_ll_dma_rx_enable(hal->dev, 1); - spi_dma_ll_rx_start(hal->dma_in, &hal->dmadesc_rx[0]); + spi_dma_ll_rx_start(hal->dma_in, &hal->dmadesc_rx[0]); } void spi_slave_hd_hal_txdma(spi_slave_hd_hal_context_t *hal, uint8_t *data, size_t len) @@ -128,7 +128,7 @@ void spi_slave_hd_hal_txdma(spi_slave_hd_hal_context_t *hal, uint8_t *data, size spi_ll_clear_intr(hal->dev, SPI_LL_INTR_CMD8); spi_ll_dma_tx_enable(hal->dev, 1); - spi_dma_ll_tx_start(hal->dma_out, &hal->dmadesc_tx[0]); + spi_dma_ll_tx_start(hal->dma_out, &hal->dmadesc_tx[0]); } static spi_ll_intr_t get_event_intr(spi_event_t ev) diff --git a/components/hal/test/component.mk b/components/hal/test/component.mk index 6184303f65..2efee8e81c 100644 --- a/components/hal/test/component.mk +++ b/components/hal/test/component.mk @@ -1,5 +1,3 @@ COMPONENT_SRCDIRS := . COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive - - diff --git a/components/hal/test/test_mpu.c b/components/hal/test/test_mpu.c index d3dc8eca21..9f85b9963f 100644 --- a/components/hal/test/test_mpu.c +++ b/components/hal/test/test_mpu.c @@ -24,12 +24,12 @@ static void trigger_illegal_access(void) printf("Sucessfully accessed location %p\r\n", (void*)addr); // Make access to region illegal again. - mpu_hal_set_region_access(4, MPU_REGION_ILLEGAL); + mpu_hal_set_region_access(4, MPU_REGION_ILLEGAL); ++access; // Since access to region is illegal, this should fail (causing a reset), and the increment // to access count is not performed. - val = *((int*) addr); + val = *((int*) addr); ++access; } @@ -40,4 +40,4 @@ void check_access(void) TEST_CASE_MULTIPLE_STAGES("Can set illegal access regions", "[soc][mpu]", trigger_illegal_access, - check_access); \ No newline at end of file + check_access); diff --git a/components/hal/timer_hal.c b/components/hal/timer_hal.c index 399a28ac5f..7337b19464 100644 --- a/components/hal/timer_hal.c +++ b/components/hal/timer_hal.c @@ -25,4 +25,4 @@ void timer_hal_get_status_reg_mask_bit(timer_hal_context_t *hal, uint32_t *statu { *status_reg = timer_ll_get_intr_status_reg(hal->dev); *mask_bit = timer_ll_get_intr_mask_bit(hal->dev, hal->idx); -} \ No newline at end of file +} diff --git a/components/hal/touch_sensor_hal.c b/components/hal/touch_sensor_hal.c index 005b47a3a0..7b0e14f449 100644 --- a/components/hal/touch_sensor_hal.c +++ b/components/hal/touch_sensor_hal.c @@ -48,4 +48,4 @@ void touch_hal_get_meas_mode(touch_pad_t touch_num, touch_hal_meas_mode_t *meas) { touch_ll_get_slope(touch_num, &meas->slope); touch_ll_get_tie_option(touch_num, &meas->tie_opt); -} \ No newline at end of file +} diff --git a/components/hal/twai_hal.c b/components/hal/twai_hal.c index a4f663e616..4ade0e331e 100644 --- a/components/hal/twai_hal.c +++ b/components/hal/twai_hal.c @@ -81,4 +81,4 @@ void twai_hal_stop(twai_hal_context_t *hal_ctx) //Any TX is immediately halted on entering reset mode TWAI_HAL_RESET_FLAG(hal_ctx->state_flags, TWAI_HAL_STATE_FLAG_TX_BUFF_OCCUPIED); TWAI_HAL_RESET_FLAG(hal_ctx->state_flags, TWAI_HAL_STATE_FLAG_RUNNING); -} \ No newline at end of file +} diff --git a/components/hal/twai_hal_iram.c b/components/hal/twai_hal_iram.c index 4262914a4c..ecfc41bb37 100644 --- a/components/hal/twai_hal_iram.c +++ b/components/hal/twai_hal_iram.c @@ -44,7 +44,7 @@ uint32_t twai_hal_decode_interrupt_events(twai_hal_context_t *hal_ctx) } else { //Not in BUS OFF if (status & TWAI_LL_STATUS_ES) { //Just Exceeded EWL - events |= TWAI_HAL_EVENT_ABOVE_EWL; + events |= TWAI_HAL_EVENT_ABOVE_EWL; TWAI_HAL_SET_FLAG(hal_ctx->state_flags, TWAI_HAL_STATE_FLAG_ERR_WARN); } else if (hal_ctx->state_flags & TWAI_HAL_STATE_FLAG_RECOVERING) { //Previously undergoing bus recovery. Thus means bus recovery complete @@ -107,4 +107,4 @@ void twai_hal_set_tx_buffer_and_transmit(twai_hal_context_t *hal_ctx, twai_hal_f twai_ll_set_cmd_tx(hal_ctx->dev); } TWAI_HAL_SET_FLAG(hal_ctx->state_flags, TWAI_HAL_STATE_FLAG_TX_BUFF_OCCUPIED); -} \ No newline at end of file +} diff --git a/components/hal/uart_hal.c b/components/hal/uart_hal.c index 4d0800bf15..742c3ad673 100644 --- a/components/hal/uart_hal.c +++ b/components/hal/uart_hal.c @@ -103,12 +103,12 @@ void uart_hal_set_txfifo_empty_thr(uart_hal_context_t *hal, uint32_t empty_thrhd void uart_hal_set_wakeup_thrd(uart_hal_context_t *hal, uint32_t wakeup_thrd) { - uart_ll_set_wakeup_thrd(hal->dev, wakeup_thrd); + uart_ll_set_wakeup_thrd(hal->dev, wakeup_thrd); } void uart_hal_get_wakeup_thrd(uart_hal_context_t *hal, uint32_t *wakeup_thrd) { - *wakeup_thrd = uart_ll_get_wakeup_thrd(hal->dev); + *wakeup_thrd = uart_ll_get_wakeup_thrd(hal->dev); } void uart_hal_set_mode(uart_hal_context_t *hal, uart_mode_t mode) diff --git a/components/hal/wdt_hal_iram.c b/components/hal/wdt_hal_iram.c index 16b4e4ec88..b7f5572cb8 100644 --- a/components/hal/wdt_hal_iram.c +++ b/components/hal/wdt_hal_iram.c @@ -197,4 +197,3 @@ bool wdt_hal_is_enabled(wdt_hal_context_t *hal) return mwdt_ll_check_if_enabled(hal->mwdt_dev); } } - diff --git a/components/heap/CMakeLists.txt b/components/heap/CMakeLists.txt index 50f9a8e724..0a77108f66 100644 --- a/components/heap/CMakeLists.txt +++ b/components/heap/CMakeLists.txt @@ -1,4 +1,4 @@ -set(srcs +set(srcs "heap_caps.c" "heap_caps_init.c" "multi_heap.c" @@ -47,4 +47,3 @@ if(NOT CMAKE_BUILD_EARLY_EXPANSION) target_compile_options(${COMPONENT_TARGET} PRIVATE "-DMULTI_HEAP_FREERTOS") endif() endif() - diff --git a/components/heap/heap_caps.c b/components/heap/heap_caps.c index 8b3f2e8c0f..cffe0c210b 100644 --- a/components/heap/heap_caps.c +++ b/components/heap/heap_caps.c @@ -57,7 +57,7 @@ IRAM_ATTR static void *dram_alloc_to_iram_addr(void *addr, size_t len) } -static void heap_caps_alloc_failed(size_t requested_size, uint32_t caps, const char *function_name) +static void heap_caps_alloc_failed(size_t requested_size, uint32_t caps, const char *function_name) { if (alloc_failed_callback) { alloc_failed_callback(requested_size, caps, function_name); @@ -310,7 +310,7 @@ IRAM_ATTR void *heap_caps_realloc( void *ptr, size_t size, int caps) bool ptr_in_diram_case = false; heap_t *heap = NULL; void *dram_ptr = NULL; - + if (ptr == NULL) { return heap_caps_malloc(size, caps); } @@ -326,20 +326,20 @@ IRAM_ATTR void *heap_caps_realloc( void *ptr, size_t size, int caps) return NULL; } - //The pointer to memory may be aliased, we need to + //The pointer to memory may be aliased, we need to //recover the corresponding address before to manage a new allocation: if(esp_ptr_in_diram_iram((void *)ptr)) { uint32_t *dram_addr = (uint32_t *)ptr; dram_ptr = (void *)dram_addr[-1]; - + heap = find_containing_heap(dram_ptr); assert(heap != NULL && "realloc() pointer is outside heap areas"); - - //with pointers that reside on diram space, we avoid using + + //with pointers that reside on diram space, we avoid using //the realloc implementation due to address translation issues, //instead force a malloc/copy/free ptr_in_diram_case = true; - + } else { heap = find_containing_heap(ptr); assert(heap != NULL && "realloc() pointer is outside heap areas"); @@ -583,7 +583,7 @@ IRAM_ATTR void *heap_caps_aligned_alloc(size_t alignment, size_t size, int caps) //doesn't cover, see if they're available in other prios. if ((get_all_caps(heap) & caps) == caps) { //Just try to alloc, nothing special. - ret = multi_heap_aligned_alloc(heap->heap, size, alignment); + ret = multi_heap_aligned_alloc(heap->heap, size, alignment); if (ret != NULL) { return ret; } @@ -604,7 +604,7 @@ IRAM_ATTR void heap_caps_aligned_free(void *ptr) } void *heap_caps_aligned_calloc(size_t alignment, size_t n, size_t size, uint32_t caps) -{ +{ size_t size_bytes; if (__builtin_mul_overflow(n, size, &size_bytes)) { return NULL; @@ -616,4 +616,4 @@ void *heap_caps_aligned_calloc(size_t alignment, size_t n, size_t size, uint32_t } return ptr; -} \ No newline at end of file +} diff --git a/components/heap/heap_private.h b/components/heap/heap_private.h index b5babaa90b..5e172c034b 100644 --- a/components/heap/heap_private.h +++ b/components/heap/heap_private.h @@ -65,7 +65,7 @@ inline static IRAM_ATTR uint32_t get_all_caps(const heap_t *heap) /* Because we don't want to add _another_ known allocation method to the stack of functions to trace wrt memory tracing, - these are declared private. The newlib malloc()/realloc() implementation also calls these, so they are declared + these are declared private. The newlib malloc()/realloc() implementation also calls these, so they are declared separately in newlib/syscalls.c. */ void *heap_caps_realloc_default(void *p, size_t size); diff --git a/components/heap/heap_tlsf.c b/components/heap/heap_tlsf.c index 8871941adc..58d75f0fa9 100644 --- a/components/heap/heap_tlsf.c +++ b/components/heap/heap_tlsf.c @@ -8,10 +8,10 @@ ** ** This implementation was written to the specification ** of the document, therefore no GPL restrictions apply. -** +** ** Copyright (c) 2006-2016, Matthew Conte ** All rights reserved. -** +** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are met: ** * Redistributions of source code must retain the above copyright @@ -22,7 +22,7 @@ ** * Neither the name of the copyright holder nor the ** names of its contributors may be used to endorse or promote products ** derived from this software without specific prior written permission. -** +** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -127,7 +127,7 @@ static inline __attribute__((__always_inline__)) size_t adjust_request_size(size const size_t aligned = align_up(size, align); /* aligned sized must not exceed block_size_max or we'll go out of bounds on sl_bitmap */ - if (aligned < block_size_max) + if (aligned < block_size_max) { adjust = tlsf_max(aligned, block_size_min); } @@ -394,9 +394,9 @@ static inline __attribute__((__always_inline__)) block_header_t* block_locate_f if (size) { mapping_search(size, &fl, &sl); - + /* - ** mapping_search can futz with the size, so for excessively large sizes it can sometimes wind up + ** mapping_search can futz with the size, so for excessively large sizes it can sometimes wind up ** with indices that are off the end of the block array. ** So, we protect against that here, since this is the only callsite of mapping_search. ** Note that we don't need to check sl, since it comes from a modulo operation that guarantees it's always in range. @@ -631,11 +631,11 @@ pool_t tlsf_add_pool(tlsf_t tlsf, void* mem, size_t bytes) if (pool_bytes < block_size_min || pool_bytes > block_size_max) { #if defined (TLSF_64BIT) - printf("tlsf_add_pool: Memory size must be between 0x%x and 0x%x00 bytes.\n", + printf("tlsf_add_pool: Memory size must be between 0x%x and 0x%x00 bytes.\n", (unsigned int)(pool_overhead + block_size_min), (unsigned int)((pool_overhead + block_size_max) / 256)); #else - printf("tlsf_add_pool: Memory size must be between %u and %u bytes.\n", + printf("tlsf_add_pool: Memory size must be between %u and %u bytes.\n", (unsigned int)(pool_overhead + block_size_min), (unsigned int)(pool_overhead + block_size_max)); #endif diff --git a/components/heap/heap_tlsf.h b/components/heap/heap_tlsf.h index 26894e29a0..c7152fe5a3 100644 --- a/components/heap/heap_tlsf.h +++ b/components/heap/heap_tlsf.h @@ -8,10 +8,10 @@ ** ** This implementation was written to the specification ** of the document, therefore no GPL restrictions apply. -** +** ** Copyright (c) 2006-2016, Matthew Conte ** All rights reserved. -** +** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are met: ** * Redistributions of source code must retain the above copyright @@ -22,7 +22,7 @@ ** * Neither the name of the copyright holder nor the ** names of its contributors may be used to endorse or promote products ** derived from this software without specific prior written permission. -** +** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -129,5 +129,3 @@ int tlsf_check_pool(pool_t pool); #if defined(__cplusplus) }; #endif - - diff --git a/components/heap/heap_tlsf_block_functions.h b/components/heap/heap_tlsf_block_functions.h index aff94ee327..77119e39a2 100644 --- a/components/heap/heap_tlsf_block_functions.h +++ b/components/heap/heap_tlsf_block_functions.h @@ -8,10 +8,10 @@ ** ** This implementation was written to the specification ** of the document, therefore no GPL restrictions apply. -** +** ** Copyright (c) 2006-2016, Matthew Conte ** All rights reserved. -** +** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are met: ** * Redistributions of source code must retain the above copyright @@ -22,7 +22,7 @@ ** * Neither the name of the copyright holder nor the ** names of its contributors may be used to endorse or promote products ** derived from this software without specific prior written permission. -** +** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -35,7 +35,7 @@ ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#pragma once +#pragma once /* ** Data structures and associated constants. diff --git a/components/heap/heap_tlsf_config.h b/components/heap/heap_tlsf_config.h index eccb54d487..8d1958b5c9 100644 --- a/components/heap/heap_tlsf_config.h +++ b/components/heap/heap_tlsf_config.h @@ -8,10 +8,10 @@ ** ** This implementation was written to the specification ** of the document, therefore no GPL restrictions apply. -** +** ** Copyright (c) 2006-2016, Matthew Conte ** All rights reserved. -** +** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are met: ** * Redistributions of source code must retain the above copyright @@ -22,7 +22,7 @@ ** * Neither the name of the copyright holder nor the ** names of its contributors may be used to endorse or promote products ** derived from this software without specific prior written permission. -** +** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -60,9 +60,9 @@ enum tlsf_config ** blocks below that size into the 0th first-level list. */ - /* Tunning the first level, we can reduce TLSF pool overhead + /* Tunning the first level, we can reduce TLSF pool overhead * in exchange of manage a pool smaller than 4GB - */ + */ FL_INDEX_MAX = 30, SL_INDEX_COUNT = (1 << SL_INDEX_COUNT_LOG2), @@ -70,4 +70,4 @@ enum tlsf_config FL_INDEX_COUNT = (FL_INDEX_MAX - FL_INDEX_SHIFT + 1), SMALL_BLOCK_SIZE = (1 << FL_INDEX_SHIFT), -}; \ No newline at end of file +}; diff --git a/components/heap/include/esp_heap_caps.h b/components/heap/include/esp_heap_caps.h index 13449340bc..8f0654622d 100644 --- a/components/heap/include/esp_heap_caps.h +++ b/components/heap/include/esp_heap_caps.h @@ -48,14 +48,14 @@ extern "C" { * @param size in bytes of failed allocation * @param caps capabillites requested of failed allocation * @param function_name function which generated the failure - */ + */ typedef void (*esp_alloc_failed_hook_t) (size_t size, uint32_t caps, const char * function_name); /** * @brief registers a callback function to be invoked if a memory allocation operation fails * @param callback caller defined callback to be invoked * @return ESP_OK if callback was registered. - */ + */ esp_err_t heap_caps_register_failed_alloc_callback(esp_alloc_failed_hook_t callback); /** @@ -115,18 +115,18 @@ void *heap_caps_realloc( void *ptr, size_t size, int caps); * of memory to be returned * * @return A pointer to the memory allocated on success, NULL on failure - * - * + * + * */ void *heap_caps_aligned_alloc(size_t alignment, size_t size, int caps); /** * @brief Used to deallocate memory previously allocated with heap_caps_aligned_alloc - * + * * @param ptr Pointer to the memory allocated - * @note This function is deprecated, plase consider using heap_caps_free() instead + * @note This function is deprecated, plase consider using heap_caps_free() instead */ -void __attribute__((deprecated)) heap_caps_aligned_free(void *ptr); +void __attribute__((deprecated)) heap_caps_aligned_free(void *ptr); /** * @brief Allocate a aligned chunk of memory which has the given capabilities. The initialized value in the memory is set to zero. @@ -139,7 +139,7 @@ void __attribute__((deprecated)) heap_caps_aligned_free(void *ptr); * of memory to be returned * * @return A pointer to the memory allocated on success, NULL on failure - * + * */ void *heap_caps_aligned_calloc(size_t alignment, size_t n, size_t size, uint32_t caps); @@ -305,7 +305,7 @@ bool heap_caps_check_integrity(uint32_t caps, bool print_errors); bool heap_caps_check_integrity_addr(intptr_t addr, bool print_errors); /** - * @brief Enable malloc() in external memory and set limit below which + * @brief Enable malloc() in external memory and set limit below which * malloc() attempts are placed in internal memory. * * When external memory is in use, the allocation strategy is to initially try to @@ -386,13 +386,13 @@ void heap_caps_dump_all(void); /** * @brief Return the size that a particular pointer was allocated with. * - * @param ptr Pointer to currently allocated heap memory. Must be a pointer value previously + * @param ptr Pointer to currently allocated heap memory. Must be a pointer value previously * returned by heap_caps_malloc,malloc,calloc, etc. and not yet freed. * * @note The app will crash with an assertion failure if the pointer is not valid. - * + * * @return Size of the memory allocated at this block. - * + * */ size_t heap_caps_get_allocated_size( void *ptr ); diff --git a/components/heap/include/esp_heap_caps_init.h b/components/heap/include/esp_heap_caps_init.h index 1d16c490c8..74e8cb9016 100644 --- a/components/heap/include/esp_heap_caps_init.h +++ b/components/heap/include/esp_heap_caps_init.h @@ -77,7 +77,7 @@ esp_err_t heap_caps_add_region(intptr_t start, intptr_t end); * @param start Start address of new region. * @param end End address of new region. * - * @return + * @return * - ESP_OK on success * - ESP_ERR_INVALID_ARG if a parameter is invalid * - ESP_ERR_NO_MEM if no memory to register new heap. diff --git a/components/heap/include/multi_heap.h b/components/heap/include/multi_heap.h index df76e87de2..622191fe0c 100644 --- a/components/heap/include/multi_heap.h +++ b/components/heap/include/multi_heap.h @@ -30,8 +30,8 @@ extern "C" { typedef struct multi_heap_info *multi_heap_handle_t; /** - * @brief allocate a chunk of memory with specific alignment - * + * @brief allocate a chunk of memory with specific alignment + * * @param heap Handle to a registered heap. * @param size size in bytes of memory chunk * @param alignment how the memory must be aligned diff --git a/components/heap/linker.lf b/components/heap/linker.lf index 568c361885..377ba7adae 100644 --- a/components/heap/linker.lf +++ b/components/heap/linker.lf @@ -3,4 +3,4 @@ archive: libheap.a entries: heap_tlsf (noflash) multi_heap (noflash) - multi_heap_poisoning (noflash) \ No newline at end of file + multi_heap_poisoning (noflash) diff --git a/components/heap/multi_heap.c b/components/heap/multi_heap.c index 012a6fa49c..3d5a423705 100644 --- a/components/heap/multi_heap.c +++ b/components/heap/multi_heap.c @@ -103,8 +103,8 @@ static void assert_valid_block(const heap_t *heap, const block_header_t *block) pool_t pool = tlsf_get_pool(heap->heap_data); void *ptr = block_to_ptr(block); - MULTI_HEAP_ASSERT((ptr >= pool) && - (ptr < pool + heap->pool_size), + MULTI_HEAP_ASSERT((ptr >= pool) && + (ptr < pool + heap->pool_size), (uintptr_t)ptr); } @@ -171,7 +171,7 @@ multi_heap_block_handle_t multi_heap_get_next_block(multi_heap_handle_t heap, mu assert(heap != NULL); assert_valid_block(heap, block); block_header_t* next = block_next(block); - + if(block_data_size(next) == 0) { //Last block: return NULL; @@ -200,7 +200,7 @@ void *multi_heap_malloc_impl(multi_heap_handle_t heap, size_t size) if (heap->free_bytes < heap->minimum_free_bytes) { heap->minimum_free_bytes = heap->free_bytes; } - } + } multi_heap_internal_unlock(heap); return result; @@ -245,7 +245,7 @@ void *multi_heap_realloc_impl(multi_heap_handle_t heap, void *p, size_t size) heap->minimum_free_bytes = heap->free_bytes; } } - + multi_heap_internal_unlock(heap); return result; @@ -301,7 +301,7 @@ bool multi_heap_check(multi_heap_handle_t heap, bool print_errors) static void multi_heap_dump_tlsf(void* ptr, size_t size, int used, void* user) { (void)user; - MULTI_HEAP_STDERR_PRINTF("Block %p data, size: %d bytes, Free: %s \n", + MULTI_HEAP_STDERR_PRINTF("Block %p data, size: %d bytes, Free: %s \n", (void *)ptr, size, used ? "No" : "Yes"); @@ -338,18 +338,18 @@ size_t multi_heap_minimum_free_size_impl(multi_heap_handle_t heap) static void multi_heap_get_info_tlsf(void* ptr, size_t size, int used, void* user) { multi_heap_info_t *info = user; - + if(used) { info->allocated_blocks++; } else { info->free_blocks++; - + if(size > info->largest_free_block ) { info->largest_free_block = size; - } + } } - - info->total_blocks++; + + info->total_blocks++; } void multi_heap_get_info_impl(multi_heap_handle_t heap, multi_heap_info_t *info) diff --git a/components/heap/multi_heap_poisoning.c b/components/heap/multi_heap_poisoning.c index acb6816ec9..37c8b39f72 100644 --- a/components/heap/multi_heap_poisoning.c +++ b/components/heap/multi_heap_poisoning.c @@ -211,7 +211,7 @@ void *multi_heap_aligned_alloc(multi_heap_handle_t heap, size_t size, size_t ali } multi_heap_internal_unlock(heap); - + return data; } @@ -220,7 +220,7 @@ void *multi_heap_malloc(multi_heap_handle_t heap, size_t size) if (!size) { return NULL; } - + if(size > SIZE_MAX - POISON_OVERHEAD) { return NULL; } @@ -311,8 +311,8 @@ void *multi_heap_realloc(multi_heap_handle_t heap, void *p, size_t size) new_head = multi_heap_malloc_impl(heap, size + POISON_OVERHEAD); if (new_head != NULL) { result = poison_allocated_region(new_head, size); - memcpy(result, p, MIN(size, orig_alloc_size)); - multi_heap_free(heap, p); + memcpy(result, p, MIN(size, orig_alloc_size)); + multi_heap_free(heap, p); } #endif diff --git a/components/heap/test/test_aligned_alloc_caps.c b/components/heap/test/test_aligned_alloc_caps.c index 1705e12dab..d0eb0db2fa 100644 --- a/components/heap/test/test_aligned_alloc_caps.c +++ b/components/heap/test/test_aligned_alloc_caps.c @@ -18,7 +18,7 @@ TEST_CASE("Capabilities aligned allocator test", "[heap]") uint32_t alignments = 0; printf("[ALIGNED_ALLOC] Allocating from default CAP: \n"); - + for(;alignments <= 1024; alignments++) { uint8_t *buf = (uint8_t *)memalign(alignments, (alignments + 137)); if(((alignments & (alignments - 1)) != 0) || (!alignments)) { @@ -41,9 +41,9 @@ TEST_CASE("Capabilities aligned allocator test", "[heap]") //canary verification will fail: memset(buf, 0xA5, (alignments + 137)); - free(buf); + free(buf); } - } + } //Alloc from a non permitted area: uint32_t *not_permitted_buf = (uint32_t *)heap_caps_aligned_alloc(alignments, (alignments + 137), MALLOC_CAP_EXEC | MALLOC_CAP_32BIT); @@ -76,9 +76,9 @@ TEST_CASE("Capabilities aligned allocator test", "[heap]") //Write some data, if it corrupts memory probably the heap //canary verification will fail: memset(buf, 0xA5, (10*1024)); - heap_caps_free(buf); + heap_caps_free(buf); } - } + } #endif } @@ -88,7 +88,7 @@ TEST_CASE("Capabilities aligned calloc test", "[heap]") uint32_t alignments = 0; printf("[ALIGNED_ALLOC] Allocating from default CAP: \n"); - + for(;alignments <= 1024; alignments++) { uint8_t *buf = (uint8_t *)heap_caps_aligned_calloc(alignments, 1, (alignments + 137), MALLOC_CAP_DEFAULT); if(((alignments & (alignments - 1)) != 0) || (!alignments)) { @@ -111,9 +111,9 @@ TEST_CASE("Capabilities aligned calloc test", "[heap]") //canary verification will fail: memset(buf, 0xA5, (alignments + 137)); - heap_caps_free(buf); + heap_caps_free(buf); } - } + } //Check if memory is initialized with zero: uint8_t byte_array[1024]; @@ -156,9 +156,9 @@ TEST_CASE("Capabilities aligned calloc test", "[heap]") //Write some data, if it corrupts memory probably the heap //canary verification will fail: memset(buf, 0xA5, (10*1024)); - heap_caps_free(buf); + heap_caps_free(buf); } - } + } #endif } diff --git a/components/heap/test/test_allocator_timings.c b/components/heap/test/test_allocator_timings.c index eddd2f2987..1287ca08da 100644 --- a/components/heap/test/test_allocator_timings.c +++ b/components/heap/test/test_allocator_timings.c @@ -33,11 +33,11 @@ TEST_CASE("Heap many random allocations timings", "[heap]") of using malloc/free */ size_t new_size = esp_random() % 1024; - + cycles_before = portGET_RUN_TIME_COUNTER_VALUE(); void *new_p = heap_caps_realloc(p[n], new_size, MALLOC_CAP_DEFAULT); realloc_time_average = portGET_RUN_TIME_COUNTER_VALUE() - cycles_before; - + printf("realloc %p -> %p (%zu -> %zu) time spent cycles: %lld \n", p[n], new_p, s[n], new_size, realloc_time_average); heap_caps_check_integrity(MALLOC_CAP_DEFAULT, true); if (new_size == 0 || new_p != NULL) { @@ -58,7 +58,7 @@ TEST_CASE("Heap many random allocations timings", "[heap]") TEST_ASSERT(( memcmp(compare, p[n], s[n]) == 0 )); } TEST_ASSERT(heap_caps_check_integrity(MALLOC_CAP_DEFAULT, true)); - + cycles_before = portGET_RUN_TIME_COUNTER_VALUE(); heap_caps_free(p[n]); free_time_average = portGET_RUN_TIME_COUNTER_VALUE() - cycles_before; @@ -77,7 +77,7 @@ TEST_CASE("Heap many random allocations timings", "[heap]") cycles_before = portGET_RUN_TIME_COUNTER_VALUE(); p[n] = heap_caps_malloc(s[n], MALLOC_CAP_DEFAULT); alloc_time_average = portGET_RUN_TIME_COUNTER_VALUE() - cycles_before; - + printf("malloc %p (%zu) time spent cycles: %lld \n", p[n], s[n], alloc_time_average); if (!heap_caps_check_integrity(MALLOC_CAP_DEFAULT, true)) { @@ -102,7 +102,7 @@ TEST_CASE("Heap many random allocations timings", "[heap]") TEST_ASSERT(0); } } - + TEST_ASSERT(heap_caps_check_integrity(MALLOC_CAP_DEFAULT, true)); } -#endif \ No newline at end of file +#endif diff --git a/components/heap/test/test_malloc.c b/components/heap/test/test_malloc.c index 11bb3d9c90..68f6918147 100644 --- a/components/heap/test/test_malloc.c +++ b/components/heap/test/test_malloc.c @@ -133,4 +133,3 @@ TEST_CASE("malloc(0) should return a NULL pointer", "[heap]") p = malloc(0); TEST_ASSERT(p == NULL); } - diff --git a/components/heap/test/test_malloc_caps.c b/components/heap/test/test_malloc_caps.c index 75b8f877c7..fbf8e7e7e1 100644 --- a/components/heap/test/test_malloc_caps.c +++ b/components/heap/test/test_malloc_caps.c @@ -150,7 +150,7 @@ TEST_CASE("heap_caps metadata test", "[heap]") free(b); heap_caps_get_info(&after, MALLOC_CAP_8BIT); - + printf("\n\n After test, heap status:\n"); heap_caps_print_heap_info(MALLOC_CAP_8BIT); @@ -187,10 +187,10 @@ TEST_CASE("heap_caps_xxx functions work with flash cache disabled", "[heap]") TEST_ASSERT( iram_malloc_test() ); } -#ifdef CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS +#ifdef CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS TEST_CASE("When enabled, allocation operation failure generates an abort", "[heap][reset=abort,SW_CPU_RESET]") { - const size_t stupid_allocation_size = (128 * 1024 * 1024); + const size_t stupid_allocation_size = (128 * 1024 * 1024); void *ptr = heap_caps_malloc(stupid_allocation_size, MALLOC_CAP_DEFAULT); (void)ptr; TEST_FAIL_MESSAGE("should not be reached"); @@ -199,7 +199,7 @@ TEST_CASE("When enabled, allocation operation failure generates an abort", "[hea static bool called_user_failed_hook = false; -void heap_caps_alloc_failed_hook(size_t requested_size, uint32_t caps, const char *function_name) +void heap_caps_alloc_failed_hook(size_t requested_size, uint32_t caps, const char *function_name) { printf("%s was called but failed to allocate %d bytes with 0x%X capabilities. \n",function_name, requested_size, caps); called_user_failed_hook = true; @@ -209,15 +209,15 @@ TEST_CASE("user provided alloc failed hook must be called when allocation fails" { TEST_ASSERT(heap_caps_register_failed_alloc_callback(heap_caps_alloc_failed_hook) == ESP_OK); - const size_t stupid_allocation_size = (128 * 1024 * 1024); + const size_t stupid_allocation_size = (128 * 1024 * 1024); void *ptr = heap_caps_malloc(stupid_allocation_size, MALLOC_CAP_DEFAULT); TEST_ASSERT(called_user_failed_hook != false); - called_user_failed_hook = false; + called_user_failed_hook = false; ptr = heap_caps_realloc(ptr, stupid_allocation_size, MALLOC_CAP_DEFAULT); TEST_ASSERT(called_user_failed_hook != false); - called_user_failed_hook = false; + called_user_failed_hook = false; ptr = heap_caps_aligned_alloc(0x200, stupid_allocation_size, MALLOC_CAP_DEFAULT); TEST_ASSERT(called_user_failed_hook != false); @@ -231,15 +231,15 @@ TEST_CASE("allocation with invalid capability should also trigger the alloc fail TEST_ASSERT(heap_caps_register_failed_alloc_callback(heap_caps_alloc_failed_hook) == ESP_OK); - called_user_failed_hook = false; + called_user_failed_hook = false; void *ptr = heap_caps_malloc(allocation_size, invalid_cap); TEST_ASSERT(called_user_failed_hook != false); - called_user_failed_hook = false; + called_user_failed_hook = false; ptr = heap_caps_realloc(ptr, allocation_size, invalid_cap); TEST_ASSERT(called_user_failed_hook != false); - called_user_failed_hook = false; + called_user_failed_hook = false; ptr = heap_caps_aligned_alloc(0x200, allocation_size, invalid_cap); TEST_ASSERT(called_user_failed_hook != false); diff --git a/components/heap/test/test_realloc.c b/components/heap/test/test_realloc.c index 7485b949fd..a3fa2b1c30 100644 --- a/components/heap/test/test_realloc.c +++ b/components/heap/test/test_realloc.c @@ -64,4 +64,4 @@ TEST_CASE("realloc move data to a new heap type", "[heap]") free(c); } -#endif \ No newline at end of file +#endif diff --git a/components/heap/test_multi_heap_host/test_multi_heap.cpp b/components/heap/test_multi_heap_host/test_multi_heap.cpp index c75718df52..ed7123f234 100644 --- a/components/heap/test_multi_heap_host/test_multi_heap.cpp +++ b/components/heap/test_multi_heap_host/test_multi_heap.cpp @@ -85,7 +85,7 @@ TEST_CASE("multi_heap fragmentation", "[multi_heap]") multi_heap_free(heap, p[0]); multi_heap_free(heap, p[1]); multi_heap_free(heap, p[3]); - + printf("1 allocations:\n"); multi_heap_dump(heap); printf("****************\n"); @@ -362,12 +362,12 @@ TEST_CASE("multi_heap minimum-size allocations", "[multi_heap]") p[i] = multi_heap_malloc(heap, 1); if (p[i] == NULL) { break; - } + } } REQUIRE( i < NUM_P); // Should have run out of heap before we ran out of pointers printf("Allocated %zu minimum size chunks\n", i); - + REQUIRE(multi_heap_free_size(heap) < before_free); multi_heap_check(heap, true); @@ -473,7 +473,7 @@ TEST_CASE("multi_heap aligned allocations", "[multi_heap]") REQUIRE((intptr_t)buf < (intptr_t)(test_heap + sizeof(test_heap))); printf("[ALIGNED_ALLOC] alignment required: %u \n", aligments); - //printf("[ALIGNED_ALLOC] allocated size: %d \n", multi_heap_get_allocated_size(heap, buf)); + //printf("[ALIGNED_ALLOC] allocated size: %d \n", multi_heap_get_allocated_size(heap, buf)); printf("[ALIGNED_ALLOC] address of allocated memory: %p \n\n", (void *)buf); //Address of obtained block must be aligned with selected value if((aligments & 0x03) == 0) { @@ -488,7 +488,7 @@ TEST_CASE("multi_heap aligned allocations", "[multi_heap]") //canary verification will fail: memset(buf, 0xA5, (aligments + 137)); - multi_heap_free(heap, buf); + multi_heap_free(heap, buf); } } diff --git a/components/idf_test/include/idf_performance.h b/components/idf_test/include/idf_performance.h index 15a27a3814..f4718e2b46 100644 --- a/components/idf_test/include/idf_performance.h +++ b/components/idf_test/include/idf_performance.h @@ -156,4 +156,3 @@ #ifndef IDF_PERFORMANCE_MAX_FREE_DEFAULT_AVERAGE_TIME #define IDF_PERFORMANCE_MAX_FREE_DEFAULT_AVERAGE_TIME 950 #endif - diff --git a/components/idf_test/integration_test/CIConfigs/nvs_compatible_test_.yml b/components/idf_test/integration_test/CIConfigs/nvs_compatible_test_.yml index df791298d6..582774492d 100644 --- a/components/idf_test/integration_test/CIConfigs/nvs_compatible_test_.yml +++ b/components/idf_test/integration_test/CIConfigs/nvs_compatible_test_.yml @@ -1,4 +1,4 @@ -BinPath: +BinPath: path: SSC/ssc_bin/ESP32/SSC_BLE_WIFI test app: SSC_BLE_WIFI diff --git a/components/idf_test/integration_test/KnownIssues b/components/idf_test/integration_test/KnownIssues index 99034af9cf..73f7e7a774 100644 --- a/components/idf_test/integration_test/KnownIssues +++ b/components/idf_test/integration_test/KnownIssues @@ -4,7 +4,7 @@ ESP32.BTSTK_MISC_0301 # GATT read multiple ESP32.BTSTK_GATT_27002 -ESP32.BTSTK_GATT_27003 +ESP32.BTSTK_GATT_27003 # CI ESP32.BLUEDROID_GAP_04005 diff --git a/components/jsmn/src/jsmn.c b/components/jsmn/src/jsmn.c index ea82be37f1..2769b1d8c8 100644 --- a/components/jsmn/src/jsmn.c +++ b/components/jsmn/src/jsmn.c @@ -338,4 +338,3 @@ void jsmn_init(jsmn_parser *parser) { parser->toknext = 0; parser->toksuper = -1; } - diff --git a/components/json/README b/components/json/README index a5e0bf07f6..d0a10f4c4b 100644 --- a/components/json/README +++ b/components/json/README @@ -49,12 +49,12 @@ philosophy as JSON itself. Simple, dumb, out of the way. Some JSON: { - "name": "Jack (\"Bee\") Nimble", + "name": "Jack (\"Bee\") Nimble", "format": { - "type": "rect", - "width": 1920, - "height": 1080, - "interlace": false, + "type": "rect", + "width": 1920, + "height": 1080, + "interlace": false, "frame rate": 24 } } @@ -73,7 +73,7 @@ What's the framerate? Want to change the framerate? cJSON_GetObjectItem(format,"frame rate")->valueint=25; - + Back to disk? char *rendered=cJSON_Print(root); @@ -83,7 +83,7 @@ Finished? Delete the root (this takes care of everything else). That's AUTO mode. If you're going to use Auto mode, you really ought to check pointers before you dereference them. If you want to see how you'd build this struct in code? cJSON *root,*fmt; - root=cJSON_CreateObject(); + root=cJSON_CreateObject(); cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble")); cJSON_AddItemToObject(root, "format", fmt=cJSON_CreateObject()); cJSON_AddStringToObject(fmt,"type", "rect"); @@ -182,7 +182,7 @@ void parse_object(cJSON *item) int i; for (i=0;ichild) parse_object(subitem->child); - + subitem=subitem->next; } } @@ -225,7 +225,7 @@ cJSON *Create_array_of_anything(cJSON **items,int num) } return root; } - + and simply: Create_array_of_anything(objects,24); cJSON doesn't make any assumptions about what order you create things in. diff --git a/components/libsodium/CMakeLists.txt b/components/libsodium/CMakeLists.txt index 48b5a39bd1..2c1f10c313 100644 --- a/components/libsodium/CMakeLists.txt +++ b/components/libsodium/CMakeLists.txt @@ -1,7 +1,7 @@ set(SRC libsodium/src/libsodium) # Derived from libsodium/src/libsodium/Makefile.am # (ignoring the !MINIMAL set) -set(srcs +set(srcs "${SRC}/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c" "${SRC}/crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.c" "${SRC}/crypto_auth/crypto_auth.c" @@ -117,11 +117,11 @@ set(srcs "port/randombytes_esp32.c") if(CONFIG_LIBSODIUM_USE_MBEDTLS_SHA) - list(APPEND srcs + list(APPEND srcs "port/crypto_hash_mbedtls/crypto_hash_sha256_mbedtls.c" "port/crypto_hash_mbedtls/crypto_hash_sha512_mbedtls.c") else() - list(APPEND srcs + list(APPEND srcs "${SRC}/crypto_hash/sha256/cp/hash_sha256_cp.c" "${SRC}/crypto_hash/sha512/cp/hash_sha512_cp.c") endif() @@ -133,7 +133,7 @@ idf_component_register(SRCS "${srcs}" PRIV_INCLUDE_DIRS "${priv_include_dirs}" REQUIRES mbedtls) -target_compile_definitions(${COMPONENT_LIB} PRIVATE +target_compile_definitions(${COMPONENT_LIB} PRIVATE CONFIGURED NATIVE_LITTLE_ENDIAN HAVE_WEAK_SYMBOLS diff --git a/components/libsodium/port/randombytes_esp32.c b/components/libsodium/port/randombytes_esp32.c index 73c77ec692..a35a99dec0 100644 --- a/components/libsodium/port/randombytes_esp32.c +++ b/components/libsodium/port/randombytes_esp32.c @@ -34,4 +34,3 @@ const struct randombytes_implementation randombytes_esp32_implementation = { .buf = esp_fill_random, .close = NULL, }; - diff --git a/components/libsodium/test/component.mk b/components/libsodium/test/component.mk index f59730b830..d28abf9d9a 100644 --- a/components/libsodium/test/component.mk +++ b/components/libsodium/test/component.mk @@ -42,5 +42,3 @@ $(foreach case,$(TEST_CASES),$(eval $(call sodium_testcase,$(case)))) # this seems odd, but it prevents the libsodium test harness from # trying to write to a file! CFLAGS += -DBROWSER_TESTS - - diff --git a/components/log/include/esp_log_internal.h b/components/log/include/esp_log_internal.h index 94ec346322..ee4b2ce54a 100644 --- a/components/log/include/esp_log_internal.h +++ b/components/log/include/esp_log_internal.h @@ -21,4 +21,3 @@ void esp_log_buffer_char_internal(const char *tag, const void *buffer, uint16_t void esp_log_buffer_hexdump_internal( const char *tag, const void *buffer, uint16_t buff_len, esp_log_level_t log_level); #endif - diff --git a/components/lwip/apps/dhcpserver/dhcpserver.c b/components/lwip/apps/dhcpserver/dhcpserver.c index 3f9ee443d5..a50b3ccc78 100644 --- a/components/lwip/apps/dhcpserver/dhcpserver.c +++ b/components/lwip/apps/dhcpserver/dhcpserver.c @@ -1122,7 +1122,7 @@ static void dhcps_poll_set(u32_t ip) /****************************************************************************** * FunctionName : dhcps_set_new_lease_cb - * Description : set callback for dhcp server when it assign an IP + * Description : set callback for dhcp server when it assign an IP * to the connected dhcp client * Parameters : cb -- callback for dhcp server * Returns : none @@ -1320,7 +1320,7 @@ dhcps_dns_setserver(const ip_addr_t *dnsserver) dns_server = *(ip_2_ip4(dnsserver)); } else { dns_server = *(ip_2_ip4(IP_ADDR_ANY)); - } + } } /****************************************************************************** @@ -1329,10 +1329,9 @@ dhcps_dns_setserver(const ip_addr_t *dnsserver) * Parameters : none * Returns : ip4_addr_t *******************************************************************************/ -ip4_addr_t +ip4_addr_t dhcps_dns_getserver(void) { return dns_server; } #endif // ESP_DHCP - diff --git a/components/lwip/apps/ping/esp_ping.c b/components/lwip/apps/ping/esp_ping.c index 65c0540e42..ece50cff14 100644 --- a/components/lwip/apps/ping/esp_ping.c +++ b/components/lwip/apps/ping/esp_ping.c @@ -172,4 +172,3 @@ esp_err_t esp_ping_result(uint8_t res_val, uint16_t ping_len, uint32_t ping_time return ret; } - diff --git a/components/lwip/apps/ping/ping_sock.c b/components/lwip/apps/ping/ping_sock.c index 243375ac9c..90c6eb66a5 100644 --- a/components/lwip/apps/ping/ping_sock.c +++ b/components/lwip/apps/ping/ping_sock.c @@ -83,7 +83,7 @@ static esp_err_t esp_ping_send(esp_ping_t *ep) if (ep->packet_hdr->type == ICMP_ECHO) { ep->packet_hdr->chksum = inet_chksum(ep->packet_hdr, ep->icmp_pkt_size); } - + int sent = sendto(ep->sock, ep->packet_hdr, ep->icmp_pkt_size, 0, (struct sockaddr *)&ep->target_addr, sizeof(ep->target_addr)); diff --git a/components/lwip/include/apps/dhcpserver/dhcpserver.h b/components/lwip/include/apps/dhcpserver/dhcpserver.h index 1aef8aaca2..39a58bbfa9 100644 --- a/components/lwip/include/apps/dhcpserver/dhcpserver.h +++ b/components/lwip/include/apps/dhcpserver/dhcpserver.h @@ -72,12 +72,12 @@ typedef struct { typedef void (*dhcps_cb_t)(u8_t client_ip[4]); -static inline bool dhcps_router_enabled (dhcps_offer_t offer) +static inline bool dhcps_router_enabled (dhcps_offer_t offer) { return (offer & OFFER_ROUTER) != 0; } -static inline bool dhcps_dns_enabled (dhcps_offer_t offer) +static inline bool dhcps_dns_enabled (dhcps_offer_t offer) { return (offer & OFFER_DNS) != 0; } @@ -92,4 +92,3 @@ ip4_addr_t dhcps_dns_getserver(void); void dhcps_set_new_lease_cb(dhcps_cb_t cb); #endif - diff --git a/components/lwip/linker.lf b/components/lwip/linker.lf index ec48930ea7..2c722f85e0 100644 --- a/components/lwip/linker.lf +++ b/components/lwip/linker.lf @@ -83,5 +83,5 @@ entries: wlanif:low_level_output (noflash_text) wlanif:wlanif_input (noflash_text) else: - + * (default) diff --git a/components/lwip/port/esp32/debug/lwip_debug.c b/components/lwip/port/esp32/debug/lwip_debug.c index c6c71b5f83..83f1052a3c 100644 --- a/components/lwip/port/esp32/debug/lwip_debug.c +++ b/components/lwip/port/esp32/debug/lwip_debug.c @@ -64,7 +64,7 @@ static void dbg_lwip_tcp_pcb_cnt_show(struct tcp_pcb *pcb) len += sprintf(p + len, "%-2d=%-5d ", i+1, pcb->rto_cnt[i]); } ESP_LWIP_LOGI("%s", buf); - + free(buf); } #endif @@ -104,7 +104,7 @@ static void dbg_lwip_tcp_pcb_one_show(struct tcp_pcb* pcb) ESP_LWIP_LOGI("unsent segments:"); seg = pcb->unsent; - DBG_LWIP_SEG_SHOW(seg) + DBG_LWIP_SEG_SHOW(seg) ESP_LWIP_LOGI("unacked segments:"); seg = pcb->unacked; @@ -211,4 +211,3 @@ void dbg_lwip_cnt_show(void) #endif - diff --git a/components/lwip/port/esp32/include/arch/cc.h b/components/lwip/port/esp32/include/arch/cc.h index 348cae35ad..44dd94f342 100644 --- a/components/lwip/port/esp32/include/arch/cc.h +++ b/components/lwip/port/esp32/include/arch/cc.h @@ -1,33 +1,33 @@ /* * Copyright (c) 2001, Swedish Institute of Computer Science. - * All rights reserved. + * All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. - * + * * Author: Adam Dunkels * */ diff --git a/components/lwip/port/esp32/include/arch/perf.h b/components/lwip/port/esp32/include/arch/perf.h index 089facac1d..4b9687be2c 100644 --- a/components/lwip/port/esp32/include/arch/perf.h +++ b/components/lwip/port/esp32/include/arch/perf.h @@ -1,33 +1,33 @@ /* * Copyright (c) 2001, Swedish Institute of Computer Science. - * All rights reserved. + * All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. - * + * * Author: Adam Dunkels * */ diff --git a/components/lwip/port/esp32/include/arch/sys_arch.h b/components/lwip/port/esp32/include/arch/sys_arch.h index d6c5216adb..2c5c89961e 100644 --- a/components/lwip/port/esp32/include/arch/sys_arch.h +++ b/components/lwip/port/esp32/include/arch/sys_arch.h @@ -102,4 +102,3 @@ sys_sem_t* sys_thread_sem_get(void); #endif #endif /* __SYS_ARCH_H__ */ - diff --git a/components/lwip/port/esp32/include/netdb.h b/components/lwip/port/esp32/include/netdb.h index 7f5d67a465..3054fdca26 100644 --- a/components/lwip/port/esp32/include/netdb.h +++ b/components/lwip/port/esp32/include/netdb.h @@ -35,7 +35,7 @@ #ifdef __cplusplus extern "C" { #endif - + #ifdef ESP_PLATFORM int getnameinfo(const struct sockaddr *addr, socklen_t addrlen, char *host, socklen_t hostlen, diff --git a/components/lwip/port/esp32/include/netif/dhcp_state.h b/components/lwip/port/esp32/include/netif/dhcp_state.h index b03dabbe74..44e5d4a308 100644 --- a/components/lwip/port/esp32/include/netif/dhcp_state.h +++ b/components/lwip/port/esp32/include/netif/dhcp_state.h @@ -30,4 +30,4 @@ void dhcp_ip_addr_erase(void *esp_netif); } #endif -#endif /* _DHCP_STATE_H_ */ \ No newline at end of file +#endif /* _DHCP_STATE_H_ */ diff --git a/components/lwip/port/esp32/include/netinet/tcp.h b/components/lwip/port/esp32/include/netinet/tcp.h index f2555cfb4d..a4d4d97699 100644 --- a/components/lwip/port/esp32/include/netinet/tcp.h +++ b/components/lwip/port/esp32/include/netinet/tcp.h @@ -13,8 +13,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -#ifndef _NETINET_TCP_H -#define _NETINET_TCP_H +#ifndef _NETINET_TCP_H +#define _NETINET_TCP_H #include "lwip/tcp.h" diff --git a/components/lwip/port/esp32/netif/dhcp_state.c b/components/lwip/port/esp32/netif/dhcp_state.c index 0eeee2b551..8785a6ded5 100644 --- a/components/lwip/port/esp32/netif/dhcp_state.c +++ b/components/lwip/port/esp32/netif/dhcp_state.c @@ -76,4 +76,4 @@ void dhcp_ip_addr_erase(void *esp_netif) nvs_close(nvs); } } -} \ No newline at end of file +} diff --git a/components/lwip/port/esp32/netif/wlanif.c b/components/lwip/port/esp32/netif/wlanif.c index c5522dceb4..a11fc6323e 100644 --- a/components/lwip/port/esp32/netif/wlanif.c +++ b/components/lwip/port/esp32/netif/wlanif.c @@ -6,9 +6,9 @@ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, @@ -17,21 +17,21 @@ * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. + * derived from this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. - * + * * Author: Adam Dunkels * */ @@ -276,5 +276,3 @@ err_t wlanif_init_ap(struct netif *netif) { netif->name[1] = 'p'; return wlanif_init(netif); } - - diff --git a/components/lwip/port/esp32/tcp_isn/tcp_isn.c b/components/lwip/port/esp32/tcp_isn/tcp_isn.c index b82fc104af..02fd43322c 100644 --- a/components/lwip/port/esp32/tcp_isn/tcp_isn.c +++ b/components/lwip/port/esp32/tcp_isn/tcp_isn.c @@ -149,7 +149,7 @@ lwip_hook_tcp_isn(const ip_addr_t *local_ip, u16_t local_port, input[26] = 0xff; input[27] = 0xff; SMEMCPY(&input[28], &remote_ip4->addr, 4); - } + } #endif /* LWIP_IPV4 */ input[32] = (u8_t)(local_port >> 8); diff --git a/components/lwip/test_afl_host/CMakeLists.txt b/components/lwip/test_afl_host/CMakeLists.txt index 6c9020244a..d893cb17a4 100644 --- a/components/lwip/test_afl_host/CMakeLists.txt +++ b/components/lwip/test_afl_host/CMakeLists.txt @@ -4,4 +4,4 @@ cmake_minimum_required(VERSION 3.5) include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(fuzz_test_lwip) \ No newline at end of file +project(fuzz_test_lwip) diff --git a/components/lwip/test_afl_host/dhcp_di.h b/components/lwip/test_afl_host/dhcp_di.h index 2f3b2cc558..87a6cac0c7 100644 --- a/components/lwip/test_afl_host/dhcp_di.h +++ b/components/lwip/test_afl_host/dhcp_di.h @@ -33,4 +33,4 @@ void dhcp_test_dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const i dhcp_test_static_dhcp_recv(arg, pcb, p, addr, port); } -#endif /* BUILDING_DEF */ \ No newline at end of file +#endif /* BUILDING_DEF */ diff --git a/components/lwip/test_afl_host/dhcpserver_di.h b/components/lwip/test_afl_host/dhcpserver_di.h index a05a885787..6256af271e 100644 --- a/components/lwip/test_afl_host/dhcpserver_di.h +++ b/components/lwip/test_afl_host/dhcpserver_di.h @@ -1,6 +1,6 @@ /* * dhcpserver dependecy injection -- preincluded to inject interface test functions into static variables - * + * */ #include "no_warn_host.h" #include "lwip/pbuf.h" @@ -23,4 +23,4 @@ void dhcp_test_handle_dhcp(void *arg, struct udp_pcb *pcb, struct pbuf *p, const dhcp_test_static_handle_hdcp(arg, pcb, p, addr, port); } -#endif \ No newline at end of file +#endif diff --git a/components/lwip/test_afl_host/dns_di.h b/components/lwip/test_afl_host/dns_di.h index a02b464aae..fd17e47bd1 100644 --- a/components/lwip/test_afl_host/dns_di.h +++ b/components/lwip/test_afl_host/dns_di.h @@ -1,6 +1,6 @@ /* * dns.c dependecy injection -- preincluded to inject interface test functions into static variables - * + * */ #include "no_warn_host.h" @@ -54,9 +54,9 @@ void dns_test_dns_recv(void *s, struct udp_pcb *pcb, struct pbuf *p, const ip_ad void dns_test_inject_port_and_txid(int port, int txid) { - // inject random numbers + // inject random numbers g_random_numbers[0] = port; //for port g_random_numbers[1] = txid; //for txid g_random_numbers_cnt = 0; // let's start with the port } -#endif \ No newline at end of file +#endif diff --git a/components/lwip/test_afl_host/esp_netif_loopback_mock.c b/components/lwip/test_afl_host/esp_netif_loopback_mock.c index 2d52c15a0c..ba7bbccb3c 100644 --- a/components/lwip/test_afl_host/esp_netif_loopback_mock.c +++ b/components/lwip/test_afl_host/esp_netif_loopback_mock.c @@ -30,6 +30,6 @@ const char *esp_netif_get_ifkey(esp_netif_t *esp_netif) } esp_err_t esp_netif_get_ip6_linklocal(esp_netif_t *esp_netif, esp_ip6_addr_t *if_ip6) -{ +{ return ESP_ERR_NOT_SUPPORTED; -} +} diff --git a/components/lwip/test_afl_host/network_mock.c b/components/lwip/test_afl_host/network_mock.c index aeaad72d32..6c85dc6895 100644 --- a/components/lwip/test_afl_host/network_mock.c +++ b/components/lwip/test_afl_host/network_mock.c @@ -152,7 +152,7 @@ void dns_setserver(u8_t numdns, const ip_addr_t *dnsserver) uint32_t esp_random(void) { - // Preparation for injecting favorable random numbers + // Preparation for injecting favorable random numbers return g_random_numbers[g_random_numbers_cnt++ % 8]; } @@ -238,4 +238,4 @@ void * mem_malloc(mem_size_t size) void mem_free(void *rmem) { free(rmem); -} \ No newline at end of file +} diff --git a/components/lwip/test_afl_host/test_dhcp_client.c b/components/lwip/test_afl_host/test_dhcp_client.c index 681189ea00..9d62d29aa2 100644 --- a/components/lwip/test_afl_host/test_dhcp_client.c +++ b/components/lwip/test_afl_host/test_dhcp_client.c @@ -35,7 +35,7 @@ int main(int argc, char** argv) size_t len = 1460; dhcp_test_init_di(); - + mynetif.flags = NETIF_FLAG_UP | NETIF_FLAG_ETHARP; mynetif.mtu = 576; @@ -79,6 +79,6 @@ int main(int argc, char** argv) } - + return 0; } diff --git a/components/lwip/test_afl_host/test_dns.c b/components/lwip/test_afl_host/test_dns.c index df74d7d86d..3e240aec27 100644 --- a/components/lwip/test_afl_host/test_dns.c +++ b/components/lwip/test_afl_host/test_dns.c @@ -35,7 +35,7 @@ int main(int argc, char** argv) size_t len = 1460; dns_test_init_di(); - + #ifdef INSTR_IS_OFF p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL); buf = p->payload; @@ -72,10 +72,10 @@ int main(int argc, char** argv) dns_test_dns_enqueue("test", 4, NULL, NULL, 0); // Process the packet - dns_test_dns_recv(NULL, NULL, p, &ip_addr_any, 0); + dns_test_dns_recv(NULL, NULL, p, &ip_addr_any, 0); } - + return 0; } diff --git a/components/lwip/weekend_test/test_weekend_network_.yml b/components/lwip/weekend_test/test_weekend_network_.yml index 5a10e26ff6..22ed37f5de 100644 --- a/components/lwip/weekend_test/test_weekend_network_.yml +++ b/components/lwip/weekend_test/test_weekend_network_.yml @@ -1,3 +1,2 @@ CaseConfig: - name: lwip_test_suite - diff --git a/components/mbedtls/esp_crt_bundle/esp_crt_bundle.c b/components/mbedtls/esp_crt_bundle/esp_crt_bundle.c index 27b1665571..6794f7531d 100644 --- a/components/mbedtls/esp_crt_bundle/esp_crt_bundle.c +++ b/components/mbedtls/esp_crt_bundle/esp_crt_bundle.c @@ -220,4 +220,3 @@ void esp_crt_bundle_set(const uint8_t *x509_bundle) free(s_crt_bundle.crts); esp_crt_bundle_init(x509_bundle); } - diff --git a/components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/entrust.pem b/components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/entrust.pem index e77d63b3ba..82e3bc0bf1 100644 --- a/components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/entrust.pem +++ b/components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/entrust.pem @@ -23,4 +23,3 @@ v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 -----END CERTIFICATE----- - diff --git a/components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/invalid_crt.pem b/components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/invalid_crt.pem index 01f15a3df2..6bd1a09201 100644 --- a/components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/invalid_crt.pem +++ b/components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/invalid_crt.pem @@ -23,4 +23,3 @@ v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi447pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 -----END CERTIFICATE----- - diff --git a/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.c b/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.c index 54a73513df..602dfe9496 100644 --- a/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.c +++ b/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.c @@ -135,7 +135,7 @@ static int esp_mbedtls_alloc_tx_buf(mbedtls_ssl_context *ssl, int len) /** * Mark the out_msg offset from ssl->out_buf. - * + * * In mbedtls, ssl->out_msg = ssl->out_buf + offset; */ ssl->out_msg = (unsigned char *)MBEDTLS_SSL_HEADER_LEN; @@ -198,14 +198,14 @@ int esp_mbedtls_reset_add_rx_buffer(mbedtls_ssl_context *ssl) /** * Mark the in_msg offset from ssl->in_buf. - * + * * In mbedtls, ssl->in_msg = ssl->in_buf + offset; */ ssl->in_msg = (unsigned char *)MBEDTLS_SSL_HEADER_LEN; init_rx_buffer(ssl, buf); - return 0; + return 0; } void esp_mbedtls_reset_free_rx_buffer(mbedtls_ssl_context *ssl) @@ -214,7 +214,7 @@ void esp_mbedtls_reset_free_rx_buffer(mbedtls_ssl_context *ssl) mbedtls_free(ssl->in_buf); - init_rx_buffer(ssl, NULL); + init_rx_buffer(ssl, NULL); } int esp_mbedtls_add_tx_buffer(mbedtls_ssl_context *ssl, size_t buffer_len) @@ -333,7 +333,7 @@ int esp_mbedtls_add_rx_buffer(mbedtls_ssl_context *ssl) } else { ESP_LOGE(TAG, "mbedtls_ssl_fetch_input error=-0x%x", -ret); } - + goto exit; } @@ -375,7 +375,7 @@ int esp_mbedtls_add_rx_buffer(mbedtls_ssl_context *ssl) exit: ESP_LOGV(TAG, "<-- add rx"); - return ret; + return ret; } int esp_mbedtls_free_rx_buffer(mbedtls_ssl_context *ssl) @@ -434,7 +434,7 @@ size_t esp_mbedtls_get_crt_size(mbedtls_x509_crt *cert, size_t *num) while (cert) { bytes += cert->raw.len; n++; - + cert = cert->next; } diff --git a/components/mbedtls/port/dynamic/esp_ssl_tls.c b/components/mbedtls/port/dynamic/esp_ssl_tls.c index 7d0372040b..384586cfd8 100644 --- a/components/mbedtls/port/dynamic/esp_ssl_tls.c +++ b/components/mbedtls/port/dynamic/esp_ssl_tls.c @@ -155,4 +155,3 @@ int __wrap_mbedtls_ssl_close_notify(mbedtls_ssl_context *ssl) return ret; } - diff --git a/components/mbedtls/port/esp32/aes.c b/components/mbedtls/port/esp32/aes.c index 3557237f4f..39d05e6c29 100644 --- a/components/mbedtls/port/esp32/aes.c +++ b/components/mbedtls/port/esp32/aes.c @@ -508,4 +508,4 @@ int esp_aes_crypt_ofb( esp_aes_context *ctx, esp_aes_release_hardware(); return( ret ); -} \ No newline at end of file +} diff --git a/components/mbedtls/port/esp32/bignum.c b/components/mbedtls/port/esp32/bignum.c index 04982cb827..3a5649f66c 100644 --- a/components/mbedtls/port/esp32/bignum.c +++ b/components/mbedtls/port/esp32/bignum.c @@ -275,4 +275,4 @@ void esp_mpi_mult_mpi_failover_mod_mult_hw_op(const mbedtls_mpi *X, const mbedtl start_op(RSA_MULT_START_REG); -} \ No newline at end of file +} diff --git a/components/mbedtls/port/esp_aes_xts.c b/components/mbedtls/port/esp_aes_xts.c index 0c5b64558c..d3a1566c5e 100644 --- a/components/mbedtls/port/esp_aes_xts.c +++ b/components/mbedtls/port/esp_aes_xts.c @@ -291,4 +291,4 @@ int esp_aes_crypt_xts( esp_aes_xts_context *ctx, } return ( 0 ); -} \ No newline at end of file +} diff --git a/components/mbedtls/port/esp_bignum.c b/components/mbedtls/port/esp_bignum.c index 3e1415059c..b9a7b3d97f 100644 --- a/components/mbedtls/port/esp_bignum.c +++ b/components/mbedtls/port/esp_bignum.c @@ -528,4 +528,3 @@ cleanup: } #endif /* MBEDTLS_MPI_MUL_MPI_ALT */ - diff --git a/components/mbedtls/port/esp_hardware.c b/components/mbedtls/port/esp_hardware.c index a919ca3403..6d5c0d5ebf 100644 --- a/components/mbedtls/port/esp_hardware.c +++ b/components/mbedtls/port/esp_hardware.c @@ -22,5 +22,3 @@ int mbedtls_hardware_poll( void *data, *olen = len; return 0; } - - diff --git a/components/mbedtls/port/include/bignum_impl.h b/components/mbedtls/port/include/bignum_impl.h index 6ca69bb7c1..838a9d4af4 100644 --- a/components/mbedtls/port/include/bignum_impl.h +++ b/components/mbedtls/port/include/bignum_impl.h @@ -80,4 +80,4 @@ void esp_mpi_exp_mpi_mod_hw_op(const mbedtls_mpi *X, const mbedtls_mpi *Y, const #endif //ESP_MPI_USE_MONT_EXP -#endif \ No newline at end of file +#endif diff --git a/components/mbedtls/port/include/esp32/sha.h b/components/mbedtls/port/include/esp32/sha.h index b99d613c95..14d39b3d62 100644 --- a/components/mbedtls/port/include/esp32/sha.h +++ b/components/mbedtls/port/include/esp32/sha.h @@ -17,4 +17,4 @@ #include "sha/sha_parallel_engine.h" -#warning esp32/sha.h is deprecated, please use sha_parallel_engine.h instead \ No newline at end of file +#warning esp32/sha.h is deprecated, please use sha_parallel_engine.h instead diff --git a/components/mbedtls/port/include/esp32s2/sha.h b/components/mbedtls/port/include/esp32s2/sha.h index 12c6548d62..1e9e3f3622 100644 --- a/components/mbedtls/port/include/esp32s2/sha.h +++ b/components/mbedtls/port/include/esp32s2/sha.h @@ -17,5 +17,3 @@ #include "sha/sha_dma.h" #warning esp32s2/sha.h is deprecated, please use sha/sha_dma.h instead - - diff --git a/components/mbedtls/port/include/rsa_sign_alt.h b/components/mbedtls/port/include/rsa_sign_alt.h index a89311a7e6..8eb3550102 100644 --- a/components/mbedtls/port/include/rsa_sign_alt.h +++ b/components/mbedtls/port/include/rsa_sign_alt.h @@ -36,4 +36,3 @@ extern "C" { #endif #endif - diff --git a/components/mbedtls/port/include/sha/sha_dma.h b/components/mbedtls/port/include/sha/sha_dma.h index c71261d101..af12f23a59 100644 --- a/components/mbedtls/port/include/sha/sha_dma.h +++ b/components/mbedtls/port/include/sha/sha_dma.h @@ -157,5 +157,3 @@ int esp_sha_512_t_init_hash(uint16_t t); #ifdef __cplusplus } #endif - - diff --git a/components/mbedtls/port/include/sha/sha_parallel_engine.h b/components/mbedtls/port/include/sha/sha_parallel_engine.h index 51ac7add8d..cf6f0607da 100644 --- a/components/mbedtls/port/include/sha/sha_parallel_engine.h +++ b/components/mbedtls/port/include/sha/sha_parallel_engine.h @@ -203,5 +203,3 @@ void esp_sha_wait_idle(void); #ifdef __cplusplus } #endif - - diff --git a/components/mbedtls/port/include/sha1_alt.h b/components/mbedtls/port/include/sha1_alt.h index 7c145ae5f2..aad0437caa 100644 --- a/components/mbedtls/port/include/sha1_alt.h +++ b/components/mbedtls/port/include/sha1_alt.h @@ -78,4 +78,3 @@ typedef struct { #endif #endif - diff --git a/components/mbedtls/port/mbedtls_debug.c b/components/mbedtls/port/mbedtls_debug.c index f7b5541453..90ffe9f5d3 100644 --- a/components/mbedtls/port/mbedtls_debug.c +++ b/components/mbedtls/port/mbedtls_debug.c @@ -91,4 +91,4 @@ static void mbedtls_esp_debug(void *ctx, int level, break; } } -#endif \ No newline at end of file +#endif diff --git a/components/mbedtls/port/net_sockets.c b/components/mbedtls/port/net_sockets.c index 3d7cd0e930..b51cb2ae98 100644 --- a/components/mbedtls/port/net_sockets.c +++ b/components/mbedtls/port/net_sockets.c @@ -445,4 +445,3 @@ void mbedtls_net_free( mbedtls_net_context *ctx ) #endif /* MBEDTLS_NET_C */ #endif /* CONFIG_ESP_NETIF_TCPIP_LWIP */ - diff --git a/components/mbedtls/port/sha/dma/sha.c b/components/mbedtls/port/sha/dma/sha.c index e3964efd8a..757457f7e8 100644 --- a/components/mbedtls/port/sha/dma/sha.c +++ b/components/mbedtls/port/sha/dma/sha.c @@ -304,4 +304,3 @@ static esp_err_t esp_sha_dma_process(esp_sha_type sha_type, const void *input, u return ret; } - diff --git a/components/mbedtls/test/component.mk b/components/mbedtls/test/component.mk index ebcb9afe95..5c4313545b 100644 --- a/components/mbedtls/test/component.mk +++ b/components/mbedtls/test/component.mk @@ -3,4 +3,4 @@ # COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive -COMPONENT_EMBED_FILES := server_cert_chain.pem prvtkey.pem server_cert_bundle \ No newline at end of file +COMPONENT_EMBED_FILES := server_cert_chain.pem prvtkey.pem server_cert_bundle diff --git a/components/mbedtls/test/test_aes.c b/components/mbedtls/test/test_aes.c index b28366e06c..93d7d887df 100644 --- a/components/mbedtls/test/test_aes.c +++ b/components/mbedtls/test/test_aes.c @@ -1519,4 +1519,3 @@ TEST_CASE("mbedtls AES GCM crypt-and-tag", "[aes]") free(buf); } - diff --git a/components/mbedtls/test/test_aes_perf.c b/components/mbedtls/test/test_aes_perf.c index ad9accce9b..80fff08de4 100644 --- a/components/mbedtls/test/test_aes_perf.c +++ b/components/mbedtls/test/test_aes_perf.c @@ -139,5 +139,3 @@ TEST_CASE("mbedtls AES GCM performance", "[aes]") TEST_PERFORMANCE_GREATER_THAN(AES_GCM_THROUGHPUT_MBSEC, "%.3fMB/sec", mb_sec); #endif } - - diff --git a/components/mbedtls/test/test_ecp.c b/components/mbedtls/test/test_ecp.c index 0c8f571db1..148d463431 100644 --- a/components/mbedtls/test/test_ecp.c +++ b/components/mbedtls/test/test_ecp.c @@ -74,4 +74,3 @@ TEST_CASE("mbedtls ECP mul w/ koblitz", "[mbedtls]") mbedtls_ctr_drbg_free(&ctxRandom); mbedtls_entropy_free(&ctxEntropy); } - diff --git a/components/mbedtls/test/test_mbedtls.c b/components/mbedtls/test/test_mbedtls.c index 9dc1b66492..62787355be 100644 --- a/components/mbedtls/test/test_mbedtls.c +++ b/components/mbedtls/test/test_mbedtls.c @@ -42,4 +42,3 @@ TEST_CASE("mbedtls RSA self-tests", "[bignum]") TEST_ASSERT_FALSE_MESSAGE(mbedtls_rsa_self_test(1), "RSA self-tests should pass."); verify_apb_access_loop(); } - diff --git a/components/mbedtls/test/test_mbedtls_mpi.c b/components/mbedtls/test/test_mbedtls_mpi.c index 7a9b2cbd6e..3b52304c82 100644 --- a/components/mbedtls/test/test_mbedtls_mpi.c +++ b/components/mbedtls/test/test_mbedtls_mpi.c @@ -30,7 +30,7 @@ void mbedtls_mpi_printf(const char *name, const mbedtls_mpi *X) } } -/* +/* Assert E == X, X=A*B if res_operands_overlap==0 Assert E == A, A=A*B if res_operands_overlap==1 Assert E == B, B=A*B if res_operands_overlap==2 @@ -268,4 +268,3 @@ TEST_CASE("test MPI modexp", "[bignum]") TEST_ASSERT_FALSE_MESSAGE(test_error, "mbedtls_mpi_exp_mod incorrect for some tests\n"); } - diff --git a/components/mbedtls/test/test_mbedtls_sha.c b/components/mbedtls/test/test_mbedtls_sha.c index 590bf2a163..46b7baef35 100644 --- a/components/mbedtls/test/test_mbedtls_sha.c +++ b/components/mbedtls/test/test_mbedtls_sha.c @@ -490,4 +490,4 @@ TEST_CASE("mbedtls SHA256 PSRAM DMA", "[mbedtls]") #endif //CONFIG_SPIRAM #endif //CONFIG_MBEDTLS_HARDWARE_SHA -#endif //!DISABLED_FOR_TARGETS(ESP32S2) \ No newline at end of file +#endif //!DISABLED_FOR_TARGETS(ESP32S2) diff --git a/components/mbedtls/test/test_rsa.c b/components/mbedtls/test/test_rsa.c index d9c9851414..1ef1f07465 100644 --- a/components/mbedtls/test/test_rsa.c +++ b/components/mbedtls/test/test_rsa.c @@ -378,4 +378,4 @@ static void rsa_key_operations(int keysize, bool check_performance, bool use_bli mbedtls_rsa_free(&rsa); } -#endif // CONFIG_MBEDTLS_HARDWARE_MPI \ No newline at end of file +#endif // CONFIG_MBEDTLS_HARDWARE_MPI diff --git a/components/mbedtls/test/test_sha_perf.c b/components/mbedtls/test/test_sha_perf.c index bef99644a8..da51d3f8f4 100644 --- a/components/mbedtls/test/test_sha_perf.c +++ b/components/mbedtls/test/test_sha_perf.c @@ -53,5 +53,3 @@ TEST_CASE("mbedtls SHA performance", "[aes]") TEST_PERFORMANCE_GREATER_THAN(SHA256_THROUGHPUT_MBSEC, "%.3fMB/sec", mb_sec); #endif } - - diff --git a/components/mdns/CMakeLists.txt b/components/mdns/CMakeLists.txt index cd85cc88f1..a8d2cedb3d 100644 --- a/components/mdns/CMakeLists.txt +++ b/components/mdns/CMakeLists.txt @@ -5,4 +5,3 @@ idf_component_register(SRCS "mdns.c" PRIV_INCLUDE_DIRS "private_include" REQUIRES lwip console esp_netif PRIV_REQUIRES esp_timer) - diff --git a/components/mdns/mdns_console.c b/components/mdns/mdns_console.c index 2c36a6aee4..3c36c05a58 100644 --- a/components/mdns/mdns_console.c +++ b/components/mdns/mdns_console.c @@ -1057,4 +1057,3 @@ void mdns_console_register(void) register_mdns_query_ip(); register_mdns_query_svc(); } - diff --git a/components/mdns/mdns_networking.c b/components/mdns/mdns_networking.c index 5f900cf4d1..5b0f1e7b27 100644 --- a/components/mdns/mdns_networking.c +++ b/components/mdns/mdns_networking.c @@ -1,7 +1,7 @@ /* * MDNS Server Networking - * + * */ #include #include "mdns_networking.h" diff --git a/components/mdns/test/CMakeLists.txt b/components/mdns/test/CMakeLists.txt index a24aa2433a..5994c440ca 100644 --- a/components/mdns/test/CMakeLists.txt +++ b/components/mdns/test/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRC_DIRS "." - PRIV_REQUIRES cmock test_utils mdns) \ No newline at end of file + PRIV_REQUIRES cmock test_utils mdns) diff --git a/components/mdns/test/component.mk b/components/mdns/test/component.mk index 5be873488b..8c6eb513e4 100644 --- a/components/mdns/test/component.mk +++ b/components/mdns/test/component.mk @@ -1,4 +1,4 @@ # #Component Makefile # -COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive \ No newline at end of file +COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive diff --git a/components/mdns/test/test_mdns.c b/components/mdns/test/test_mdns.c index 9e1e50dc40..9dc9fe090a 100644 --- a/components/mdns/test/test_mdns.c +++ b/components/mdns/test/test_mdns.c @@ -96,4 +96,4 @@ TEST_CASE("mdns query api return expected err-code and do not leak memory", "[le mdns_free(); esp_event_loop_delete_default(); -} \ No newline at end of file +} diff --git a/components/mdns/test_afl_fuzz_host/CMakeLists.txt b/components/mdns/test_afl_fuzz_host/CMakeLists.txt index 453dbc3dd5..d65845194f 100644 --- a/components/mdns/test_afl_fuzz_host/CMakeLists.txt +++ b/components/mdns/test_afl_fuzz_host/CMakeLists.txt @@ -5,4 +5,3 @@ cmake_minimum_required(VERSION 3.5) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(fuzz_test_update) - diff --git a/components/mdns/test_afl_fuzz_host/Makefile b/components/mdns/test_afl_fuzz_host/Makefile index 7f84a6f86a..147bd1c054 100644 --- a/components/mdns/test_afl_fuzz_host/Makefile +++ b/components/mdns/test_afl_fuzz_host/Makefile @@ -36,7 +36,7 @@ CFLAGS=-g -Wno-unused-value -Wno-missing-declarations -Wno-pointer-bool-conversi -I$(COMPONENTS_DIR)/tcpip_adapter/include \ -I$(COMPONENTS_DIR)/xtensa/include \ -I$(COMPONENTS_DIR)/xtensa/esp32/include \ - -I$(COMPILER_ICLUDE_DIR)/include + -I$(COMPILER_ICLUDE_DIR)/include MDNS_C_DEPENDENCY_INJECTION=-include mdns_di.h diff --git a/components/mdns/test_afl_fuzz_host/esp_netif_loopback_mock.c b/components/mdns/test_afl_fuzz_host/esp_netif_loopback_mock.c index 2d52c15a0c..ba7bbccb3c 100644 --- a/components/mdns/test_afl_fuzz_host/esp_netif_loopback_mock.c +++ b/components/mdns/test_afl_fuzz_host/esp_netif_loopback_mock.c @@ -30,6 +30,6 @@ const char *esp_netif_get_ifkey(esp_netif_t *esp_netif) } esp_err_t esp_netif_get_ip6_linklocal(esp_netif_t *esp_netif, esp_ip6_addr_t *if_ip6) -{ +{ return ESP_ERR_NOT_SUPPORTED; -} +} diff --git a/components/mdns/test_afl_fuzz_host/input_packets.txt b/components/mdns/test_afl_fuzz_host/input_packets.txt index 6156ffa232..15c5df2ba4 100644 --- a/components/mdns/test_afl_fuzz_host/input_packets.txt +++ b/components/mdns/test_afl_fuzz_host/input_packets.txt @@ -76,7 +76,7 @@ Packet Length: 262 Answers: 2 + 6 A: Hristo’s Mac mini._device-info._tcp.local. TXT IN 4500 [28] model=Macmini6,2; osxvers=16 A: _smb._tcp.local. PTR IN 4500 [22] Hristo’s Mac mini._smb._tcp.local. - A: Hristo’s Mac mini._smb._tcp.local. TXT IN FLUSH 4500 [1] + A: Hristo’s Mac mini._smb._tcp.local. TXT IN FLUSH 4500 [1] A: Hristo’s Mac mini._smb._tcp.local. SRV IN FLUSH 120 [18] 445 minifritz.local. A: minifritz.local. AAAA IN FLUSH 120 [16] fe80:0000:0000:0000:142e:54ff:b8c4:fd09 A: minifritz.local. A IN FLUSH 120 [4] 192.168.254.16 @@ -97,7 +97,7 @@ Packet Length: 269 Answers: 2 + 6 A: Hristo’s Mac mini._device-info._tcp.local. TXT IN 4500 [28] model=Macmini6,2; osxvers=16 A: _afpovertcp._tcp.local. PTR IN 4500 [22] Hristo’s Mac mini._afpovertcp._tcp.local. - A: Hristo’s Mac mini._afpovertcp._tcp.local. TXT IN FLUSH 4500 [1] + A: Hristo’s Mac mini._afpovertcp._tcp.local. TXT IN FLUSH 4500 [1] A: Hristo’s Mac mini._afpovertcp._tcp.local. SRV IN FLUSH 120 [18] 548 minifritz.local. A: minifritz.local. AAAA IN FLUSH 120 [16] fe80:0000:0000:0000:142e:54ff:b8c4:fd09 A: minifritz.local. A IN FLUSH 120 [4] 192.168.254.16 @@ -135,7 +135,7 @@ Packet Length: 279 Answers: 2 + 6 A: Sofiya Ivanova’s MacBook._device-info._tcp.local. TXT IN 4500 [17] model=Macmini2,1 A: _rfb._tcp.local. PTR IN 4500 [29] Sofiya Ivanova’s MacBook._rfb._tcp.local. - A: Sofiya Ivanova’s MacBook._rfb._tcp.local. TXT IN FLUSH 4500 [1] + A: Sofiya Ivanova’s MacBook._rfb._tcp.local. TXT IN FLUSH 4500 [1] A: Sofiya Ivanova’s MacBook._rfb._tcp.local. SRV IN FLUSH 120 [32] 5900 Sofiya-Ivanovas-MacBook.local. A: Sofiya-Ivanovas-MacBook.local. AAAA IN FLUSH 120 [16] fe80:0000:0000:0000:021c:b3ff:feb2:72a3 A: Sofiya-Ivanovas-MacBook.local. A IN FLUSH 120 [4] 192.168.254.20 diff --git a/components/mdns/test_afl_fuzz_host/mdns_di.h b/components/mdns/test_afl_fuzz_host/mdns_di.h index c3587c576e..b4569dd596 100644 --- a/components/mdns/test_afl_fuzz_host/mdns_di.h +++ b/components/mdns/test_afl_fuzz_host/mdns_di.h @@ -1,6 +1,6 @@ /* * MDNS Dependecy injection -- preincluded to inject interface test functions into static variables - * + * */ #include "mdns.h" @@ -50,4 +50,4 @@ mdns_search_once_t * mdns_test_search_init(const char * name, const char * servi mdns_srv_item_t * mdns_test_mdns_get_service_item(const char * service, const char * proto) { return mdns_test_static_mdns_get_service_item(service, proto); -} \ No newline at end of file +} diff --git a/components/mdns/test_afl_fuzz_host/test.c b/components/mdns/test_afl_fuzz_host/test.c index a19b271255..0c123f6fae 100644 --- a/components/mdns/test_afl_fuzz_host/test.c +++ b/components/mdns/test_afl_fuzz_host/test.c @@ -124,7 +124,7 @@ int main(int argc, char** argv) }; const uint8_t mac[6] = {0xDE, 0xAD, 0xBE, 0xEF, 0x00, 0x32}; - + uint8_t buf[1460]; char winstance[21+strlen(mdns_hostname)]; @@ -183,9 +183,9 @@ int main(int argc, char** argv) || mdns_test_service_add("_ptp", "_tcp", 885) || mdns_test_service_add("_sleep-proxy", "_udp", 885)) { - abort(); + abort(); } - + mdns_result_t * results = NULL; FILE *file; size_t nread; diff --git a/components/mqtt/test/CMakeLists.txt b/components/mqtt/test/CMakeLists.txt index bbe7825e7f..a86bbd002c 100644 --- a/components/mqtt/test/CMakeLists.txt +++ b/components/mqtt/test/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRC_DIRS "." - PRIV_REQUIRES cmock test_utils mqtt nvs_flash app_update) \ No newline at end of file + PRIV_REQUIRES cmock test_utils mqtt nvs_flash app_update) diff --git a/components/mqtt/test/component.mk b/components/mqtt/test/component.mk index 5be873488b..8c6eb513e4 100644 --- a/components/mqtt/test/component.mk +++ b/components/mqtt/test/component.mk @@ -1,4 +1,4 @@ # #Component Makefile # -COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive \ No newline at end of file +COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive diff --git a/components/mqtt/weekend_test/test_weekend_mqtt_.yml b/components/mqtt/weekend_test/test_weekend_mqtt_.yml index 8acf2144ef..ae00e3524d 100644 --- a/components/mqtt/weekend_test/test_weekend_mqtt_.yml +++ b/components/mqtt/weekend_test/test_weekend_mqtt_.yml @@ -1,3 +1,2 @@ CaseConfig: - name: test_weekend_mqtt_publish - diff --git a/components/mqtt/weekend_test/test_weekend_mqtt_qemu.yml b/components/mqtt/weekend_test/test_weekend_mqtt_qemu.yml index e4a72ecd03..bd6f0d66af 100644 --- a/components/mqtt/weekend_test/test_weekend_mqtt_qemu.yml +++ b/components/mqtt/weekend_test/test_weekend_mqtt_qemu.yml @@ -4,4 +4,3 @@ CaseConfig: dut: class: ESP32QEMUDUT package: ttfw_idf - diff --git a/components/newlib/CMakeLists.txt b/components/newlib/CMakeLists.txt index 055e098551..b9055dbc45 100644 --- a/components/newlib/CMakeLists.txt +++ b/components/newlib/CMakeLists.txt @@ -1,4 +1,4 @@ -set(srcs +set(srcs "abort.c" "heap.c" "locks.c" @@ -22,7 +22,7 @@ idf_component_register(SRCS "${srcs}" INCLUDE_DIRS "${include_dirs}" PRIV_INCLUDE_DIRS priv_include PRIV_REQUIRES soc - LDFRAGMENTS "${ldfragments}") + LDFRAGMENTS "${ldfragments}") # Toolchain libraries require code defined in this component idf_component_get_property(newlib newlib COMPONENT_LIB) diff --git a/components/newlib/COPYING.NEWLIB b/components/newlib/COPYING.NEWLIB index 0655d35497..86827de4bc 100644 --- a/components/newlib/COPYING.NEWLIB +++ b/components/newlib/COPYING.NEWLIB @@ -1,6 +1,6 @@ The newlib subdirectory is a collection of software from several sources. -Each file may have its own copyright/license that is embedded in the source +Each file may have its own copyright/license that is embedded in the source file. Unless otherwise noted in the body of the source file(s), the following copyright notices will apply to the contents of the newlib subdirectory: @@ -10,10 +10,10 @@ Copyright (c) 1994-2009 Red Hat, Inc. All rights reserved. This copyrighted material is made available to anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions -of the BSD License. This program is distributed in the hope that -it will be useful, but WITHOUT ANY WARRANTY expressed or implied, -including the implied warranties of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. A copy of this license is available at +of the BSD License. This program is distributed in the hope that +it will be useful, but WITHOUT ANY WARRANTY expressed or implied, +including the implied warranties of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. A copy of this license is available at http://www.opensource.org/licenses. Any Red Hat trademarks that are incorporated in the source code or documentation are not subject to the BSD License and may only be used or replicated with the express @@ -27,23 +27,23 @@ All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright notice, + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software + * Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @@ -117,7 +117,7 @@ Mail Stop 573 Austin, TX 78741 800-292-9263 -(5) +(5) (6) @@ -633,7 +633,7 @@ SUCH DAMAGE. Copyright (c) 1995 Alex Tatmanjants at Electronni Visti IA, Kiev, Ukraine. All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -642,7 +642,7 @@ SUCH DAMAGE. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -659,7 +659,7 @@ SUCH DAMAGE. Copyright (c) 1998, M. Warner Losh All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -668,7 +668,7 @@ SUCH DAMAGE. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -685,7 +685,7 @@ SUCH DAMAGE. Copyright (C) 1996 by Andrey A. Chernov, Moscow, Russia. All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -694,7 +694,7 @@ SUCH DAMAGE. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -711,7 +711,7 @@ SUCH DAMAGE. Copyright (c) 2001 Daniel Eischen . All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -720,7 +720,7 @@ SUCH DAMAGE. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -764,7 +764,7 @@ SUCH DAMAGE. Copyright (c) 2009 ARM Ltd All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -866,7 +866,7 @@ license, or royalty fee is required for any of the authorized uses. Modifications to this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that the new terms are clearly indicated on the first page of each file where -they apply. +they apply. (39) - Adapteva, Inc. (epiphany-* targets) @@ -905,14 +905,14 @@ modification, are permitted provided that the following conditions are met: o Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + notice, this list of conditions and the following disclaimer. o Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - o Neither the name of Altera Corporation nor the names of its + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + o Neither the name of Altera Corporation nor the names of its contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - + this software without specific prior written permission. + THIS SOFTWARE IS PROVIDED BY ALTERA CORPORATION, THE COPYRIGHT HOLDER, AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY @@ -923,7 +923,7 @@ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. (41) Ed Schouten - Free BSD @@ -950,4 +950,3 @@ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/components/newlib/Makefile.old b/components/newlib/Makefile.old index a8fc8efd90..88d058b6c4 100644 --- a/components/newlib/Makefile.old +++ b/components/newlib/Makefile.old @@ -31,7 +31,7 @@ newlib: xtensa-esp108-elf-ar d lib/libc_rom.a lib_a-nano-vfprintf_float.o xtensa-esp108-elf-ar d lib/libc_rom.a lib_a-nano-vfscanf_float.o while read obj; do xtensa-esp108-elf-ar d lib/libc.a $$obj; done /* - * All the code below is a rework of + * All the code below is a rework of * https://github.com/freebsd/freebsd/blob/master/sys/sys/endian.h * to import symbols defining non-standard endian handling functions. * The aforementioned source code license terms are included here. diff --git a/components/newlib/platform_include/esp_newlib.h b/components/newlib/platform_include/esp_newlib.h index c43d6ec204..988f2b7e66 100644 --- a/components/newlib/platform_include/esp_newlib.h +++ b/components/newlib/platform_include/esp_newlib.h @@ -30,7 +30,7 @@ void esp_newlib_time_init(void); */ void esp_reent_init(struct _reent* r); -/** +/** * Clean up some of lazily allocated buffers in REENT structures. */ void esp_reent_cleanup(void); diff --git a/components/newlib/platform_include/sys/dirent.h b/components/newlib/platform_include/sys/dirent.h index 57b5be5eea..97e4bfed1c 100644 --- a/components/newlib/platform_include/sys/dirent.h +++ b/components/newlib/platform_include/sys/dirent.h @@ -52,4 +52,3 @@ void seekdir(DIR* pdir, long loc); void rewinddir(DIR* pdir); int closedir(DIR* pdir); int readdir_r(DIR* pdir, struct dirent* entry, struct dirent** out_dirent); - diff --git a/components/newlib/port/CMakeLists.txt b/components/newlib/port/CMakeLists.txt index adac67103b..a9187d56a4 100644 --- a/components/newlib/port/CMakeLists.txt +++ b/components/newlib/port/CMakeLists.txt @@ -1 +1 @@ -target_sources(${COMPONENT_LIB} PRIVATE "${CMAKE_CURRENT_LIST_DIR}/esp_time_impl.c") \ No newline at end of file +target_sources(${COMPONENT_LIB} PRIVATE "${CMAKE_CURRENT_LIST_DIR}/esp_time_impl.c") diff --git a/components/newlib/port/esp_time_impl.c b/components/newlib/port/esp_time_impl.c index 154baec4dd..1f4d9334d0 100644 --- a/components/newlib/port/esp_time_impl.c +++ b/components/newlib/port/esp_time_impl.c @@ -188,4 +188,4 @@ void esp_sync_counters_rtc_and_frc(void) void esp_time_impl_init(void) { esp_set_time_from_rtc(); -} \ No newline at end of file +} diff --git a/components/newlib/priv_include/esp_time_impl.h b/components/newlib/priv_include/esp_time_impl.h index 638e692911..d800d2f1bb 100644 --- a/components/newlib/priv_include/esp_time_impl.h +++ b/components/newlib/priv_include/esp_time_impl.h @@ -23,4 +23,4 @@ uint32_t esp_time_impl_get_time_resolution(void); void esp_time_impl_set_boot_time(uint64_t t); -uint64_t esp_time_impl_get_boot_time(void); \ No newline at end of file +uint64_t esp_time_impl_get_boot_time(void); diff --git a/components/newlib/pthread.c b/components/newlib/pthread.c index ab921c7e0d..c9d5fb7a18 100644 --- a/components/newlib/pthread.c +++ b/components/newlib/pthread.c @@ -3,7 +3,7 @@ const static char *TAG = "esp32_asio_pthread"; -int pthread_condattr_setclock(pthread_condattr_t *attr, clockid_t clock_id) +int pthread_condattr_setclock(pthread_condattr_t *attr, clockid_t clock_id) { ESP_LOGW(TAG, "%s: not yet supported!", __func__); return 0; diff --git a/components/newlib/syscall_table.c b/components/newlib/syscall_table.c index 16d2d6f5fa..9d2e163738 100644 --- a/components/newlib/syscall_table.c +++ b/components/newlib/syscall_table.c @@ -107,5 +107,3 @@ void esp_setup_syscall_table(void) environ = malloc(sizeof(char*)); environ[0] = NULL; } - - diff --git a/components/newlib/test/test_newlib.c b/components/newlib/test/test_newlib.c index d9692e7c3f..517043d2db 100644 --- a/components/newlib/test/test_newlib.c +++ b/components/newlib/test/test_newlib.c @@ -210,4 +210,4 @@ TEST_CASE("newlib: rom and toolchain localtime func gives the same result", "[ne sprintf(test_result, "%s (tm_isdst = %d)", buf, tm->tm_isdst); printf("%s\n", test_result); TEST_ASSERT_EQUAL_STRING("2020-03-12 15:00:00 EDT (tm_isdst = 1)", test_result); -} \ No newline at end of file +} diff --git a/components/newlib/test/test_shared_stack_printf.c b/components/newlib/test/test_shared_stack_printf.c index 98928871db..2c6368b3de 100644 --- a/components/newlib/test/test_shared_stack_printf.c +++ b/components/newlib/test/test_shared_stack_printf.c @@ -10,7 +10,7 @@ #define SHARED_STACK_SIZE 8192 -static StackType_t *shared_stack_sp = NULL; +static StackType_t *shared_stack_sp = NULL; void external_stack_function(void) { @@ -18,7 +18,7 @@ void external_stack_function(void) shared_stack_sp = (StackType_t *)get_sp(); } -void another_external_stack_function(void) +void another_external_stack_function(void) { //We can even use Freertos resources inside of this context. printf("We can even use FreeRTOS resources... yielding, sp=%p\n", get_sp()); @@ -39,23 +39,22 @@ TEST_CASE("test printf using shared buffer stack", "[newlib]") printf("shared_stack expected top: %p\n", (void *)(shared_stack + SHARED_STACK_SIZE)); - esp_execute_shared_stack_function(printf_lock, + esp_execute_shared_stack_function(printf_lock, shared_stack, SHARED_STACK_SIZE, external_stack_function); - - TEST_ASSERT(((shared_stack_sp >= shared_stack) && + + TEST_ASSERT(((shared_stack_sp >= shared_stack) && (shared_stack_sp < (shared_stack + SHARED_STACK_SIZE)))); - - esp_execute_shared_stack_function(printf_lock, + + esp_execute_shared_stack_function(printf_lock, shared_stack, SHARED_STACK_SIZE, - another_external_stack_function); - - TEST_ASSERT(((shared_stack_sp >= shared_stack) && + another_external_stack_function); + + TEST_ASSERT(((shared_stack_sp >= shared_stack) && (shared_stack_sp < (shared_stack + SHARED_STACK_SIZE)))); - vSemaphoreDelete(printf_lock); + vSemaphoreDelete(printf_lock); free(shared_stack); } - diff --git a/components/newlib/time.c b/components/newlib/time.c index 221b2c377c..4073d02af0 100644 --- a/components/newlib/time.c +++ b/components/newlib/time.c @@ -299,4 +299,4 @@ int clock_getres (clockid_t clock_id, struct timespec *res) void esp_newlib_time_init(void) { esp_time_impl_init(); -} \ No newline at end of file +} diff --git a/components/nghttp/CMakeLists.txt b/components/nghttp/CMakeLists.txt index f97cc7731d..639ae995e7 100644 --- a/components/nghttp/CMakeLists.txt +++ b/components/nghttp/CMakeLists.txt @@ -1,4 +1,4 @@ -set(srcs +set(srcs "nghttp2/lib/nghttp2_buf.c" "nghttp2/lib/nghttp2_callbacks.c" "nghttp2/lib/nghttp2_debug.c" diff --git a/components/nvs_flash/include/nvs.h b/components/nvs_flash/include/nvs.h index 2f4aa551ce..013ea11f93 100644 --- a/components/nvs_flash/include/nvs.h +++ b/components/nvs_flash/include/nvs.h @@ -555,4 +555,3 @@ void nvs_release_iterator(nvs_iterator_t iterator); #endif #endif //ESP_NVS_H - diff --git a/components/nvs_flash/include/nvs_handle.hpp b/components/nvs_flash/include/nvs_handle.hpp index 537d2f9f6c..c830e19a6b 100644 --- a/components/nvs_flash/include/nvs_handle.hpp +++ b/components/nvs_flash/include/nvs_handle.hpp @@ -269,4 +269,3 @@ esp_err_t NVSHandle::get_item(const char *key, T &value) { } // nvs #endif // NVS_HANDLE_HPP_ - diff --git a/components/nvs_flash/src/nvs_encrypted_partition.cpp b/components/nvs_flash/src/nvs_encrypted_partition.cpp index 4256c6a012..26e8a3314d 100644 --- a/components/nvs_flash/src/nvs_encrypted_partition.cpp +++ b/components/nvs_flash/src/nvs_encrypted_partition.cpp @@ -119,4 +119,3 @@ esp_err_t NVSEncryptedPartition::write(size_t addr, const void* src, size_t size } } // nvs - diff --git a/components/nvs_flash/src/nvs_encrypted_partition.hpp b/components/nvs_flash/src/nvs_encrypted_partition.hpp index 7c93d136df..76c0607a0a 100644 --- a/components/nvs_flash/src/nvs_encrypted_partition.hpp +++ b/components/nvs_flash/src/nvs_encrypted_partition.hpp @@ -41,4 +41,3 @@ protected: } // nvs #endif // NVS_ENCRYPTED_PARTITION_HPP_ - diff --git a/components/nvs_flash/src/nvs_handle_locked.cpp b/components/nvs_flash/src/nvs_handle_locked.cpp index dc6ab10e39..89e5cbbca0 100644 --- a/components/nvs_flash/src/nvs_handle_locked.cpp +++ b/components/nvs_flash/src/nvs_handle_locked.cpp @@ -80,4 +80,3 @@ esp_err_t NVSHandleLocked::get_typed_item(ItemType datatype, const char *key, vo } } // namespace nvs - diff --git a/components/nvs_flash/src/nvs_handle_locked.hpp b/components/nvs_flash/src/nvs_handle_locked.hpp index 036e675eb6..39d514c7a6 100644 --- a/components/nvs_flash/src/nvs_handle_locked.hpp +++ b/components/nvs_flash/src/nvs_handle_locked.hpp @@ -64,4 +64,3 @@ private: } // namespace nvs #endif // NVS_HANDLE_LOCKED_HPP_ - diff --git a/components/nvs_flash/src/nvs_handle_simple.hpp b/components/nvs_flash/src/nvs_handle_simple.hpp index e05aaf7386..fc3cebcd41 100644 --- a/components/nvs_flash/src/nvs_handle_simple.hpp +++ b/components/nvs_flash/src/nvs_handle_simple.hpp @@ -103,4 +103,3 @@ private: } // nvs #endif // NVS_HANDLE_SIMPLE_HPP_ - diff --git a/components/nvs_flash/src/nvs_partition.cpp b/components/nvs_flash/src/nvs_partition.cpp index 313c1697ae..370316af08 100644 --- a/components/nvs_flash/src/nvs_partition.cpp +++ b/components/nvs_flash/src/nvs_partition.cpp @@ -75,4 +75,3 @@ uint32_t NVSPartition::get_size() } } // nvs - diff --git a/components/nvs_flash/src/nvs_partition.hpp b/components/nvs_flash/src/nvs_partition.hpp index c469763c95..2af3e238e3 100644 --- a/components/nvs_flash/src/nvs_partition.hpp +++ b/components/nvs_flash/src/nvs_partition.hpp @@ -113,4 +113,3 @@ protected: } // nvs #endif // ESP_PARTITION_HPP_ - diff --git a/components/nvs_flash/src/nvs_partition_manager.cpp b/components/nvs_flash/src/nvs_partition_manager.cpp index 87283767c0..b95db7e816 100644 --- a/components/nvs_flash/src/nvs_partition_manager.cpp +++ b/components/nvs_flash/src/nvs_partition_manager.cpp @@ -242,4 +242,3 @@ Storage* NVSPartitionManager::lookup_storage_from_name(const char* name) } } // nvs - diff --git a/components/nvs_flash/src/nvs_partition_manager.hpp b/components/nvs_flash/src/nvs_partition_manager.hpp index 48f8f0f12f..885787de4c 100644 --- a/components/nvs_flash/src/nvs_partition_manager.hpp +++ b/components/nvs_flash/src/nvs_partition_manager.hpp @@ -60,4 +60,3 @@ protected: } // nvs #endif // NVS_PARTITION_MANAGER_HPP_ - diff --git a/components/nvs_flash/src/nvs_test_api.h b/components/nvs_flash/src/nvs_test_api.h index 7321ed25ef..8ba2c4faa8 100644 --- a/components/nvs_flash/src/nvs_test_api.h +++ b/components/nvs_flash/src/nvs_test_api.h @@ -17,17 +17,17 @@ #ifdef __cplusplus extern "C" { #endif - + #include "nvs_flash.h" /** * @brief Initialize NVS flash storage with custom flash sector layout * * @note This API is intended to be used in unit tests. - * + * * @param partName Partition name of the NVS partition as per partition table * @param baseSector Flash sector (units of 4096 bytes) offset to start NVS - * @param sectorCount Length (in flash sectors) of NVS region. + * @param sectorCount Length (in flash sectors) of NVS region. NVS partition must be at least 3 sectors long. * @return ESP_OK if flash was successfully initialized */ @@ -38,13 +38,13 @@ esp_err_t nvs_flash_init_custom(const char *partName, uint32_t baseSector, uint3 * @brief Initialize NVS flash storage with custom flash sector layout * * @note This API is intended to be used in unit tests. - * + * * @param partName Partition name of the NVS partition as per partition table * @param baseSector Flash sector (units of 4096 bytes) offset to start NVS - * @param sectorCount Length (in flash sectors) of NVS region. + * @param sectorCount Length (in flash sectors) of NVS region. NVS partition must be at least 3 sectors long. - * @param[in] cfg Security configuration (keys) to be used for NVS encryption/decryption. - * If cfg is null, no encryption/decryption is used. + * @param[in] cfg Security configuration (keys) to be used for NVS encryption/decryption. + * If cfg is null, no encryption/decryption is used. * @return ESP_OK if flash was successfully initialized */ esp_err_t nvs_flash_secure_init_custom(const char *partName, uint32_t baseSector, uint32_t sectorCount, nvs_sec_cfg_t* cfg); diff --git a/components/nvs_flash/src/partition.hpp b/components/nvs_flash/src/partition.hpp index 9947c9eda1..4cbfb6d9dd 100644 --- a/components/nvs_flash/src/partition.hpp +++ b/components/nvs_flash/src/partition.hpp @@ -57,4 +57,3 @@ public: } // nvs #endif // PARTITION_HPP_ - diff --git a/components/nvs_flash/test_nvs_host/crc.cpp b/components/nvs_flash/test_nvs_host/crc.cpp index 4cbb9be9ec..49980776c3 100644 --- a/components/nvs_flash/test_nvs_host/crc.cpp +++ b/components/nvs_flash/test_nvs_host/crc.cpp @@ -31,7 +31,7 @@ static const unsigned int crc32_le_table[256] = { 0x4369e96aL, 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L, 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L, 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL, 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L, 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, - + 0xedb88320L, 0x9abfb3b6L, 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L, 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L, 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L, 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL, 0x196c3671L, 0x6e6b06e7L, @@ -61,4 +61,3 @@ extern "C" unsigned int crc32_le(unsigned int crc, unsigned char const * buf,uns } return ~crc; } - diff --git a/components/nvs_flash/test_nvs_host/spi_flash_emulation.cpp b/components/nvs_flash/test_nvs_host/spi_flash_emulation.cpp index 581e35e1e9..802256c1a9 100644 --- a/components/nvs_flash/test_nvs_host/spi_flash_emulation.cpp +++ b/components/nvs_flash/test_nvs_host/spi_flash_emulation.cpp @@ -138,4 +138,3 @@ size_t SpiFlashEmulator::getEraseOpTime() { return blockEraseTime; } - diff --git a/components/nvs_flash/test_nvs_host/spi_flash_emulation.h b/components/nvs_flash/test_nvs_host/spi_flash_emulation.h index db929fe910..f2aef6a011 100644 --- a/components/nvs_flash/test_nvs_host/spi_flash_emulation.h +++ b/components/nvs_flash/test_nvs_host/spi_flash_emulation.h @@ -77,13 +77,13 @@ public: WARN("invalid flash operation detected: erase sector=" << sectorNumber); return false; } - + if (dstAddr % 4 != 0 || size % 4 != 0 || dstAddr + size > mData.size() * 4) { return false; } - + for (size_t i = 0; i < size / 4; ++i) { if (mFailCountdown != SIZE_MAX && mFailCountdown-- == 0) { return false; @@ -112,12 +112,12 @@ public: if (offset > mData.size()) { return false; } - + if (sectorNumber < mLowerSectorBound || sectorNumber >= mUpperSectorBound) { WARN("invalid flash operation detected: erase sector=" << sectorNumber); return false; } - + if (mFailCountdown != SIZE_MAX && mFailCountdown-- == 0) { return false; } @@ -129,7 +129,7 @@ public: mTotalTime += getEraseOpTime(); return true; } - + void randomize(uint32_t seed) { std::random_device rd; @@ -152,7 +152,7 @@ public: { return reinterpret_cast(mData.data()); } - + void load(const char* filename) { FILE* f = fopen(filename, "rb"); @@ -165,7 +165,7 @@ public: assert(s == static_cast(size / SPI_FLASH_SEC_SIZE)); fclose(f); } - + void save(const char* filename) { FILE* f = fopen(filename, "wb"); @@ -209,12 +209,12 @@ public: { return mTotalTime; } - + void setBounds(uint32_t lowerSector, uint32_t upperSector) { mLowerSectorBound = lowerSector; mUpperSectorBound = upperSector; } - + void failAfter(uint32_t count) { mFailCountdown = count; } @@ -240,7 +240,7 @@ protected: mutable size_t mTotalTime = 0; size_t mLowerSectorBound = 0; size_t mUpperSectorBound = 0; - + size_t mFailCountdown = SIZE_MAX; }; diff --git a/components/nvs_flash/test_nvs_host/test_compressed_enum_table.cpp b/components/nvs_flash/test_nvs_host/test_compressed_enum_table.cpp index 225a11c271..a404545c71 100644 --- a/components/nvs_flash/test_nvs_host/test_compressed_enum_table.cpp +++ b/components/nvs_flash/test_nvs_host/test_compressed_enum_table.cpp @@ -53,4 +53,4 @@ TEST_CASE("test if CompressedEnumTable works as expected", "[enumtable]") CHECK(table.data()[0] == 0x93909249); -} \ No newline at end of file +} diff --git a/components/nvs_flash/test_nvs_host/test_intrusive_list.cpp b/components/nvs_flash/test_nvs_host/test_intrusive_list.cpp index 979438a0bc..dea63f3c33 100644 --- a/components/nvs_flash/test_nvs_host/test_intrusive_list.cpp +++ b/components/nvs_flash/test_nvs_host/test_intrusive_list.cpp @@ -197,8 +197,8 @@ TEST_CASE("can erase all items in the list using clear method", "[list]") TestNode n4("four", 4); TestNode n5("five", 5); TestNode n6("six", 6); - - + + list.push_back(&n1); list.push_back(&n2); list.insert(++list.begin(), &n3); @@ -207,7 +207,6 @@ TEST_CASE("can erase all items in the list using clear method", "[list]") list.insert(list.begin(), &n6); list.clear(); - + REQUIRE(std::begin(list) == std::end(list)); } - diff --git a/components/nvs_flash/test_nvs_host/test_nvs_handle.cpp b/components/nvs_flash/test_nvs_host/test_nvs_handle.cpp index d04c67dc11..d9f709e7a3 100644 --- a/components/nvs_flash/test_nvs_host/test_nvs_handle.cpp +++ b/components/nvs_flash/test_nvs_host/test_nvs_handle.cpp @@ -279,4 +279,3 @@ TEST_CASE("NVSHandleSimple correctly sets/gets char enum", "[partition_mgr]") REQUIRE(NVSPartitionManager::get_instance()->deinit_partition(NVS_DEFAULT_PART_NAME) == ESP_OK); } - diff --git a/components/nvs_flash/test_nvs_host/test_nvs_initialization.cpp b/components/nvs_flash/test_nvs_host/test_nvs_initialization.cpp index c709922e6f..7731d1da51 100644 --- a/components/nvs_flash/test_nvs_host/test_nvs_initialization.cpp +++ b/components/nvs_flash/test_nvs_host/test_nvs_initialization.cpp @@ -44,5 +44,3 @@ TEST_CASE("nvs_flash_init_partition_ptr inits one partition", "[nvs_custom_part] CHECK(NVSPartitionManager::get_instance()->lookup_storage_from_name("test") != nullptr); CHECK(NVSPartitionManager::get_instance()->deinit_partition("test") == ESP_OK); } - - diff --git a/components/nvs_flash/test_nvs_host/test_nvs_storage.cpp b/components/nvs_flash/test_nvs_host/test_nvs_storage.cpp index 9d3dbc57bd..a0ace089ce 100644 --- a/components/nvs_flash/test_nvs_host/test_nvs_storage.cpp +++ b/components/nvs_flash/test_nvs_host/test_nvs_storage.cpp @@ -58,4 +58,3 @@ TEST_CASE("Storage iterator recognizes blob with VerOffset::VER_1_OFFSET", "[nvs REQUIRE(NVSPartitionManager::get_instance()->deinit_partition("test") == ESP_OK); } - diff --git a/components/nvs_flash/test_nvs_host/test_partition_manager.cpp b/components/nvs_flash/test_nvs_host/test_partition_manager.cpp index 3051187784..b2db3a9cfe 100644 --- a/components/nvs_flash/test_nvs_host/test_partition_manager.cpp +++ b/components/nvs_flash/test_nvs_host/test_partition_manager.cpp @@ -89,4 +89,3 @@ TEST_CASE("Partition manager invalidates handle on partition de-init", "[partiti delete handle; } - diff --git a/components/nvs_flash/test_nvs_host/test_spi_flash_emulation.cpp b/components/nvs_flash/test_nvs_host/test_spi_flash_emulation.cpp index 22afbe9b96..64ea96b174 100644 --- a/components/nvs_flash/test_nvs_host/test_spi_flash_emulation.cpp +++ b/components/nvs_flash/test_nvs_host/test_spi_flash_emulation.cpp @@ -183,4 +183,3 @@ TEST_CASE("data is randomized predictably", "[spi_flash_emu]") CHECK(std::equal(emu1.bytes(), emu1.bytes() + emu1.size(), emu2.bytes())); } - diff --git a/components/openssl/component.mk b/components/openssl/component.mk index be40549d20..cb64d37762 100644 --- a/components/openssl/component.mk +++ b/components/openssl/component.mk @@ -6,4 +6,3 @@ COMPONENT_ADD_INCLUDEDIRS := include COMPONENT_PRIV_INCLUDEDIRS := include/internal include/platform include/openssl COMPONENT_SRCDIRS := library platform - diff --git a/components/openssl/include/internal/ssl_pkey.h b/components/openssl/include/internal/ssl_pkey.h index 0f361288f6..a8cfa33df4 100644 --- a/components/openssl/include/internal/ssl_pkey.h +++ b/components/openssl/include/internal/ssl_pkey.h @@ -120,7 +120,7 @@ void EVP_PKEY_free(EVP_PKEY *x); * * @return result * 0 : failed - * 1 : OK + * 1 : OK */ int SSL_use_PrivateKey_ASN1(int type, SSL *ssl, const unsigned char *d, long len); diff --git a/components/openssl/include/internal/ssl_x509.h b/components/openssl/include/internal/ssl_x509.h index 88e46e2e2c..454fbdcb23 100644 --- a/components/openssl/include/internal/ssl_x509.h +++ b/components/openssl/include/internal/ssl_x509.h @@ -117,7 +117,7 @@ int X509_STORE_add_cert(X509_STORE *store, X509 *x); /** * @brief load a character certification context into system context. * - * If '*cert' is pointed to the certification, then load certification + * If '*cert' is pointed to the certification, then load certification * into it, or create a new X509 certification object. * * @param bp - pointer to BIO diff --git a/components/openssl/library/ssl_bio.c b/components/openssl/library/ssl_bio.c index 2a70b70aa7..51d9d51d01 100644 --- a/components/openssl/library/ssl_bio.c +++ b/components/openssl/library/ssl_bio.c @@ -207,4 +207,3 @@ int BIO_test_flags(const BIO *b, int flags) { return (b->flags & flags); } - diff --git a/components/openssl/library/ssl_x509.c b/components/openssl/library/ssl_x509.c index 64f4ad253b..4d84d999c9 100644 --- a/components/openssl/library/ssl_x509.c +++ b/components/openssl/library/ssl_x509.c @@ -353,7 +353,7 @@ int X509_STORE_add_cert(X509_STORE *store, X509 *x) { /** * @brief load a character certification context into system context. - * + * * If '*cert' is pointed to the certification, then load certification * into it, or create a new X509 certification object. */ diff --git a/components/openssl/platform/ssl_port.c b/components/openssl/platform/ssl_port.c index 8c7a31338b..850584bb55 100644 --- a/components/openssl/platform/ssl_port.c +++ b/components/openssl/platform/ssl_port.c @@ -26,4 +26,3 @@ void *ssl_mem_zalloc(size_t size) return p; } - diff --git a/components/openssl/test/component.mk b/components/openssl/test/component.mk index 5be873488b..8c6eb513e4 100644 --- a/components/openssl/test/component.mk +++ b/components/openssl/test/component.mk @@ -1,4 +1,4 @@ # #Component Makefile # -COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive \ No newline at end of file +COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive diff --git a/components/partition_table/component.mk b/components/partition_table/component.mk index 7d857daa8a..2789fa4d96 100644 --- a/components/partition_table/component.mk +++ b/components/partition_table/component.mk @@ -2,4 +2,3 @@ # IDF source files. It only adds steps via Makefile.projbuild & # Kconfig.projbuild COMPONENT_CONFIG_ONLY := 1 - diff --git a/components/partition_table/test/CMakeLists.txt b/components/partition_table/test/CMakeLists.txt index 0c4909aa2f..ed052cc07f 100644 --- a/components/partition_table/test/CMakeLists.txt +++ b/components/partition_table/test/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRC_DIRS "." PRIV_INCLUDE_DIRS "." - PRIV_REQUIRES cmock test_utils) \ No newline at end of file + PRIV_REQUIRES cmock test_utils) diff --git a/components/perfmon/include/perfmon.h b/components/perfmon/include/perfmon.h index f459379643..4c23bd5be7 100644 --- a/components/perfmon/include/perfmon.h +++ b/components/perfmon/include/perfmon.h @@ -26,4 +26,4 @@ #include "xtensa_perfmon_apis.h" #include "xtensa/xt_perf_consts.h" -#endif // _PERF_MON_H_ \ No newline at end of file +#endif // _PERF_MON_H_ diff --git a/components/perfmon/include/xtensa_perfmon_access.h b/components/perfmon/include/xtensa_perfmon_access.h index 4aa1acbc16..301b6e8bae 100644 --- a/components/perfmon/include/xtensa_perfmon_access.h +++ b/components/perfmon/include/xtensa_perfmon_access.h @@ -122,4 +122,4 @@ void xtensa_perfmon_dump(void); } #endif -#endif // _PERF_MON_ACCESS_H_ \ No newline at end of file +#endif // _PERF_MON_ACCESS_H_ diff --git a/components/perfmon/include/xtensa_perfmon_apis.h b/components/perfmon/include/xtensa_perfmon_apis.h index 3c4f8df0c4..0b52f2ce80 100644 --- a/components/perfmon/include/xtensa_perfmon_apis.h +++ b/components/perfmon/include/xtensa_perfmon_apis.h @@ -35,8 +35,8 @@ typedef struct xtensa_perfmon_config { void (*call_function)(void *params); /*!< pointer to the function that have to be called */ void (*callback)(void *params, uint32_t select, uint32_t mask, uint32_t value); /*!< pointer to the function that will be called with result parameters */ void *callback_params; /*!< parameter that will be passed to the callback */ - int tracelevel; /*!< trace level for all counters. - In case of negative value, the filter will be ignored. + int tracelevel; /*!< trace level for all counters. + In case of negative value, the filter will be ignored. If it's >=0, then the perfmon will count only when interrupt level > tracelevel. It's useful to monitor interrupts. */ uint32_t counters_size;/*!< amount of counter in the list */ const uint32_t *select_mask; /*!< list of the select/mask parameters */ @@ -77,4 +77,4 @@ void xtensa_perfmon_view_cb(void *params, uint32_t select, uint32_t mask, uint32 } #endif -#endif // _xtensa_perfmon_apis_H_ \ No newline at end of file +#endif // _xtensa_perfmon_apis_H_ diff --git a/components/perfmon/test/component.mk b/components/perfmon/test/component.mk index 90912b0f8f..3fa92a0763 100644 --- a/components/perfmon/test/component.mk +++ b/components/perfmon/test/component.mk @@ -1,5 +1,4 @@ COMPONENT_SRCDIRS := \ - . + . COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive - diff --git a/components/perfmon/test/test_perfmon_ansi.c b/components/perfmon/test/test_perfmon_ansi.c index 8c569552ec..f17d22407e 100644 --- a/components/perfmon/test/test_perfmon_ansi.c +++ b/components/perfmon/test/test_perfmon_ansi.c @@ -190,4 +190,3 @@ TEST_CASE("Performance test for Empty callback", "[perfmon]") } ESP_LOGI(TAG, "All tests passed."); } - diff --git a/components/protocomm/proto-c/constants.pb-c.h b/components/protocomm/proto-c/constants.pb-c.h index 6fa97027ea..a6807c9d3c 100644 --- a/components/protocomm/proto-c/constants.pb-c.h +++ b/components/protocomm/proto-c/constants.pb-c.h @@ -21,7 +21,7 @@ PROTOBUF_C__BEGIN_DECLS /* * Allowed values for the status - * of a protocomm instance + * of a protocomm instance */ typedef enum _Status { STATUS__Success = 0, diff --git a/components/protocomm/proto-c/sec0.pb-c.h b/components/protocomm/proto-c/sec0.pb-c.h index 82779e2be8..151711fbc9 100644 --- a/components/protocomm/proto-c/sec0.pb-c.h +++ b/components/protocomm/proto-c/sec0.pb-c.h @@ -24,7 +24,7 @@ typedef struct _Sec0Payload Sec0Payload; /* --- enums --- */ /* - * A message must be of type Cmd or Resp + * A message must be of type Cmd or Resp */ typedef enum _Sec0MsgType { SEC0_MSG_TYPE__S0_Session_Command = 0, @@ -35,7 +35,7 @@ typedef enum _Sec0MsgType { /* --- messages --- */ /* - * Data structure of Session command/request packet + * Data structure of Session command/request packet */ struct _S0SessionCmd { @@ -47,7 +47,7 @@ struct _S0SessionCmd /* - * Data structure of Session response packet + * Data structure of Session response packet */ struct _S0SessionResp { @@ -67,23 +67,23 @@ typedef enum { } Sec0Payload__PayloadCase; /* - * Payload structure of session data + * Payload structure of session data */ struct _Sec0Payload { ProtobufCMessage base; /* - *!< Type of message + *!< Type of message */ Sec0MsgType msg; Sec0Payload__PayloadCase payload_case; union { /* - *!< Payload data interpreted as Cmd + *!< Payload data interpreted as Cmd */ S0SessionCmd *sc; /* - *!< Payload data interpreted as Resp + *!< Payload data interpreted as Resp */ S0SessionResp *sr; }; diff --git a/components/protocomm/proto-c/sec1.pb-c.h b/components/protocomm/proto-c/sec1.pb-c.h index 650be50f80..8f1ab88747 100644 --- a/components/protocomm/proto-c/sec1.pb-c.h +++ b/components/protocomm/proto-c/sec1.pb-c.h @@ -26,7 +26,7 @@ typedef struct _Sec1Payload Sec1Payload; /* --- enums --- */ /* - * A message must be of type Cmd0 / Cmd1 / Resp0 / Resp1 + * A message must be of type Cmd0 / Cmd1 / Resp0 / Resp1 */ typedef enum _Sec1MsgType { SEC1_MSG_TYPE__Session_Command0 = 0, @@ -39,7 +39,7 @@ typedef enum _Sec1MsgType { /* --- messages --- */ /* - * Data structure of Session command1 packet + * Data structure of Session command1 packet */ struct _SessionCmd1 { @@ -52,7 +52,7 @@ struct _SessionCmd1 /* - * Data structure of Session response1 packet + * Data structure of Session response1 packet */ struct _SessionResp1 { @@ -66,7 +66,7 @@ struct _SessionResp1 /* - * Data structure of Session command0 packet + * Data structure of Session command0 packet */ struct _SessionCmd0 { @@ -79,7 +79,7 @@ struct _SessionCmd0 /* - * Data structure of Session response0 packet + * Data structure of Session response0 packet */ struct _SessionResp0 { @@ -103,31 +103,31 @@ typedef enum { } Sec1Payload__PayloadCase; /* - * Payload structure of session data + * Payload structure of session data */ struct _Sec1Payload { ProtobufCMessage base; /* - *!< Type of message + *!< Type of message */ Sec1MsgType msg; Sec1Payload__PayloadCase payload_case; union { /* - *!< Payload data interpreted as Cmd0 + *!< Payload data interpreted as Cmd0 */ SessionCmd0 *sc0; /* - *!< Payload data interpreted as Resp0 + *!< Payload data interpreted as Resp0 */ SessionResp0 *sr0; /* - *!< Payload data interpreted as Cmd1 + *!< Payload data interpreted as Cmd1 */ SessionCmd1 *sc1; /* - *!< Payload data interpreted as Resp1 + *!< Payload data interpreted as Resp1 */ SessionResp1 *sr1; }; diff --git a/components/protocomm/proto-c/session.pb-c.h b/components/protocomm/proto-c/session.pb-c.h index 50bded1a2b..e4f9dd2e0b 100644 --- a/components/protocomm/proto-c/session.pb-c.h +++ b/components/protocomm/proto-c/session.pb-c.h @@ -24,11 +24,11 @@ typedef struct _SessionData SessionData; /* * Allowed values for the type of security - * being used in a protocomm session + * being used in a protocomm session */ typedef enum _SecSchemeVersion { /* - *!< Unsecured - plaintext communication + *!< Unsecured - plaintext communication */ SEC_SCHEME_VERSION__SecScheme0 = 0, /* @@ -49,23 +49,23 @@ typedef enum { /* * Data structure exchanged when establishing - * secure session between Host and Client + * secure session between Host and Client */ struct _SessionData { ProtobufCMessage base; /* - *!< Type of security + *!< Type of security */ SecSchemeVersion sec_ver; SessionData__ProtoCase proto_case; union { /* - *!< Payload data in case of security 0 + *!< Payload data in case of security 0 */ Sec0Payload *sec0; /* - *!< Payload data in case of security 1 + *!< Payload data in case of security 1 */ Sec1Payload *sec1; }; diff --git a/components/pthread/include/esp_pthread.h b/components/pthread/include/esp_pthread.h index 95e182c1f0..874dc36f36 100644 --- a/components/pthread/include/esp_pthread.h +++ b/components/pthread/include/esp_pthread.h @@ -37,7 +37,7 @@ typedef struct { /** * @brief Creates a default pthread configuration based * on the values set via menuconfig. - * + * * @return * A default configuration structure. */ diff --git a/components/pthread/test/test_cxx_std_future.cpp b/components/pthread/test/test_cxx_std_future.cpp index bbf8d62425..792ee89d41 100644 --- a/components/pthread/test/test_cxx_std_future.cpp +++ b/components/pthread/test/test_cxx_std_future.cpp @@ -2,7 +2,7 @@ #include #include #include "unity.h" - + #if __GTHREADS && __GTHREADS_CXX0X TEST_CASE("C++ future", "[std::future]") { @@ -10,15 +10,15 @@ TEST_CASE("C++ future", "[std::future]") std::packaged_task task([]{ return 7; }); // wrap the function std::future f1 = task.get_future(); // get a future std::thread t(std::move(task)); // launch on a thread - + // future from an async() std::future f2 = std::async(std::launch::async, []{ return 8; }); - + // future from a promise std::promise p; std::future f3 = p.get_future(); std::thread( [&p]{ p.set_value_at_thread_exit(9); }).detach(); - + std::cout << "Waiting..." << std::flush; f1.wait(); f2.wait(); @@ -28,4 +28,3 @@ TEST_CASE("C++ future", "[std::future]") t.join(); } #endif - diff --git a/components/sdmmc/CMakeLists.txt b/components/sdmmc/CMakeLists.txt index cb7de0e805..f6e8fe2b1e 100644 --- a/components/sdmmc/CMakeLists.txt +++ b/components/sdmmc/CMakeLists.txt @@ -6,4 +6,4 @@ idf_component_register(SRCS "sdmmc_cmd.c" "sdmmc_sd.c" INCLUDE_DIRS include REQUIRES driver - PRIV_REQUIRES soc) \ No newline at end of file + PRIV_REQUIRES soc) diff --git a/components/sdmmc/sdmmc_cmd.c b/components/sdmmc/sdmmc_cmd.c index 6da69e9f41..d0b55dbd22 100644 --- a/components/sdmmc/sdmmc_cmd.c +++ b/components/sdmmc/sdmmc_cmd.c @@ -117,7 +117,7 @@ esp_err_t sdmmc_send_cmd_send_if_cond(sdmmc_card_t* card, uint32_t ocr) esp_err_t sdmmc_send_cmd_send_op_cond(sdmmc_card_t* card, uint32_t ocr, uint32_t *ocrp) { esp_err_t err; - + sdmmc_command_t cmd = { .arg = ocr, .flags = SCF_CMD_BCR | SCF_RSP_R3, @@ -138,7 +138,7 @@ esp_err_t sdmmc_send_cmd_send_op_cond(sdmmc_card_t* card, uint32_t ocr, uint32_t cmd.opcode = MMC_SEND_OP_COND; err = sdmmc_send_cmd(card, &cmd); } - + if (err != ESP_OK) { if (--err_cnt == 0) { ESP_LOGD(TAG, "%s: sdmmc_send_app_cmd err=0x%x", __func__, err); @@ -511,4 +511,3 @@ esp_err_t sdmmc_read_sectors_dma(sdmmc_card_t* card, void* dst, } return ESP_OK; } - diff --git a/components/sdmmc/sdmmc_sd.c b/components/sdmmc/sdmmc_sd.c index 2634aa081d..5840b4b777 100644 --- a/components/sdmmc/sdmmc_sd.c +++ b/components/sdmmc/sdmmc_sd.c @@ -348,4 +348,3 @@ esp_err_t sdmmc_decode_scr(uint32_t *raw_scr, sdmmc_scr_t* out_scr) out_scr->bus_width = SCR_SD_BUS_WIDTHS(resp); return ESP_OK; } - diff --git a/components/sdmmc/test/CMakeLists.txt b/components/sdmmc/test/CMakeLists.txt index fc3f74d54b..d6d58598fb 100644 --- a/components/sdmmc/test/CMakeLists.txt +++ b/components/sdmmc/test/CMakeLists.txt @@ -1,4 +1,4 @@ idf_component_register(SRC_DIRS "." PRIV_INCLUDE_DIRS "." PRIV_REQUIRES cmock sdmmc - ) \ No newline at end of file + ) diff --git a/components/sdmmc/test/test_sd.c b/components/sdmmc/test/test_sd.c index e506ae7f43..0475fb85b6 100644 --- a/components/sdmmc/test/test_sd.c +++ b/components/sdmmc/test/test_sd.c @@ -581,4 +581,4 @@ TEST_CASE("WP input works in SPI mode", "[sd][test_env=UT_T1_SPIMODE]") test_sdspi_deinit_bus(dev_config.host_id); sd_test_board_power_off(); } -#endif //DISABLED_FOR_TARGETS(ESP32S2) \ No newline at end of file +#endif //DISABLED_FOR_TARGETS(ESP32S2) diff --git a/components/sdmmc/test/test_sdio.c b/components/sdmmc/test/test_sdio.c index 3674309e2a..ecafb1639c 100644 --- a/components/sdmmc/test/test_sdio.c +++ b/components/sdmmc/test/test_sdio.c @@ -385,4 +385,4 @@ TEST_CASE("can probe and talk to ESP32 SDIO slave", "[sdio][ignore]") free(card); } -#endif //SOC_SDMMC_HOST_SUPPORTED \ No newline at end of file +#endif //SOC_SDMMC_HOST_SUPPORTED diff --git a/components/soc/component.mk b/components/soc/component.mk index 74c217e192..fc463da3e8 100644 --- a/components/soc/component.mk +++ b/components/soc/component.mk @@ -1,4 +1,4 @@ COMPONENT_SRCDIRS := . $(IDF_TARGET) -COMPONENT_ADD_INCLUDEDIRS := include $(IDF_TARGET) $(IDF_TARGET)/include +COMPONENT_ADD_INCLUDEDIRS := include $(IDF_TARGET) $(IDF_TARGET)/include COMPONENT_ADD_LDFRAGMENTS += linker.lf diff --git a/components/soc/esp32/dac_periph.c b/components/soc/esp32/dac_periph.c index a84a6aa201..76e5ed983f 100644 --- a/components/soc/esp32/dac_periph.c +++ b/components/soc/esp32/dac_periph.c @@ -20,4 +20,4 @@ const dac_signal_conn_t dac_periph_signal = { .dac_channel_io_num[0] = DAC_CHANNEL_1_GPIO_NUM, .dac_channel_io_num[1] = DAC_CHANNEL_2_GPIO_NUM, -}; \ No newline at end of file +}; diff --git a/components/soc/esp32/i2c_periph.c b/components/soc/esp32/i2c_periph.c index 1406cc1fd0..deee5ceb5d 100644 --- a/components/soc/esp32/i2c_periph.c +++ b/components/soc/esp32/i2c_periph.c @@ -35,4 +35,4 @@ const i2c_signal_conn_t i2c_periph_signal[SOC_I2C_NUM] = { .irq = ETS_I2C_EXT1_INTR_SOURCE, .module = PERIPH_I2C1_MODULE, }, -}; \ No newline at end of file +}; diff --git a/components/soc/esp32/include/soc/apb_ctrl_reg.h b/components/soc/esp32/include/soc/apb_ctrl_reg.h index 2e5ea54c4c..2e5aee0ccb 100644 --- a/components/soc/esp32/include/soc/apb_ctrl_reg.h +++ b/components/soc/esp32/include/soc/apb_ctrl_reg.h @@ -290,5 +290,3 @@ #endif /*_SOC_APB_CTRL_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/bb_reg.h b/components/soc/esp32/include/soc/bb_reg.h index 69d2f43d20..62828b89e5 100644 --- a/components/soc/esp32/include/soc/bb_reg.h +++ b/components/soc/esp32/include/soc/bb_reg.h @@ -39,4 +39,3 @@ #endif /* _SOC_BB_REG_H_ */ - diff --git a/components/soc/esp32/include/soc/dport_reg.h b/components/soc/esp32/include/soc/dport_reg.h index fe0150036a..ee92bcd5bd 100644 --- a/components/soc/esp32/include/soc/dport_reg.h +++ b/components/soc/esp32/include/soc/dport_reg.h @@ -4282,5 +4282,3 @@ #define DPORT_MMU_ADDRESS_MASK 0xff #endif /*_SOC_DPORT_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/efuse_reg.h b/components/soc/esp32/include/soc/efuse_reg.h index f6b6137c93..30c77df47d 100644 --- a/components/soc/esp32/include/soc/efuse_reg.h +++ b/components/soc/esp32/include/soc/efuse_reg.h @@ -207,16 +207,16 @@ #define EFUSE_RD_FLASH_CRYPT_CONFIG_V 0xF #define EFUSE_RD_FLASH_CRYPT_CONFIG_S 28 /* EFUSE_RD_DIG_VOL_L6: RO; bitpos:[27:24]; */ -/*descritpion: This field stores the difference between the digital regulator voltage at level6 and 1.2 V. (RO) +/*descritpion: This field stores the difference between the digital regulator voltage at level6 and 1.2 V. (RO) BIT[27] is the sign bit, 0: + , 1: - - BIT[26:24] is the difference value, unit: 0.017V + BIT[26:24] is the difference value, unit: 0.017V volt_lv6 = BIT[27] ? 1.2 - BIT[26:24] * 0.017 : 1.2 + BIT[26:24] * 0.017 */ #define EFUSE_RD_DIG_VOL_L6 0x0F #define EFUSE_RD_DIG_VOL_L6_M ((EFUSE_RD_DIG_VOL_L6_V)<<(EFUSE_RD_DIG_VOL_L6_S)) #define EFUSE_RD_DIG_VOL_L6_V 0x0F #define EFUSE_RD_DIG_VOL_L6_S 24 /* EFUSE_RD_VOL_LEVEL_HP_INV: RO; bitpos:[23:22] */ -/*description: This field stores the voltage level for CPU to run at 240 MHz, or for flash/PSRAM to run at 80 MHz. +/*description: This field stores the voltage level for CPU to run at 240 MHz, or for flash/PSRAM to run at 80 MHz. 0x0: level 7; 0x1: level 6; 0x2: level 5; 0x3: level 4. (RO)*/ #define EFUSE_RD_VOL_LEVEL_HP_INV 0x03 #define EFUSE_RD_VOL_LEVEL_HP_INV_M ((EFUSE_RD_VOL_LEVEL_HP_INV_V)<<(EFUSE_RD_VOL_LEVEL_HP_INV_S)) @@ -484,16 +484,16 @@ #define EFUSE_FLASH_CRYPT_CONFIG_V 0xF #define EFUSE_FLASH_CRYPT_CONFIG_S 28 /* EFUSE_DIG_VOL_L6: R/W; bitpos:[27:24]; */ -/*descritpion: This field stores the difference between the digital regulator voltage at level6 and 1.2 V. (R/W) +/*descritpion: This field stores the difference between the digital regulator voltage at level6 and 1.2 V. (R/W) BIT[27] is the sign bit, 0: + , 1: - - BIT[26:24] is the difference value, unit: 0.017V + BIT[26:24] is the difference value, unit: 0.017V volt_lv6 = BIT[27] ? 1.2 - BIT[26:24] * 0.017 : 1.2 + BIT[26:24] * 0.017 */ #define EFUSE_DIG_VOL_L6 0x0F #define EFUSE_DIG_VOL_L6_M ((EFUSE_RD_DIG_VOL_L6_V)<<(EFUSE_RD_DIG_VOL_L6_S)) #define EFUSE_DIG_VOL_L6_V 0x0F #define EFUSE_DIG_VOL_L6_S 24 /* EFUSE_VOL_LEVEL_HP_INV: R/W; bitpos:[23:22] */ -/*description: This field stores the voltage level for CPU to run at 240 MHz, or for flash/PSRAM to run at 80 MHz. +/*description: This field stores the voltage level for CPU to run at 240 MHz, or for flash/PSRAM to run at 80 MHz. 0x0: level 7; 0x1: level 6; 0x2: level 5; 0x3: level 4. (R/W)*/ #define EFUSE_VOL_LEVEL_HP_INV 0x03 #define EFUSE_VOL_LEVEL_HP_INV_M ((EFUSE_RD_VOL_LEVEL_HP_INV_V)<<(EFUSE_RD_VOL_LEVEL_HP_INV_S)) @@ -1186,5 +1186,3 @@ #endif /*_SOC_EFUSE_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/gpio_reg.h b/components/soc/esp32/include/soc/gpio_reg.h index 8168f4ba12..1266235686 100644 --- a/components/soc/esp32/include/soc/gpio_reg.h +++ b/components/soc/esp32/include/soc/gpio_reg.h @@ -8234,5 +8234,3 @@ #endif /*_SOC_GPIO_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/gpio_sd_reg.h b/components/soc/esp32/include/soc/gpio_sd_reg.h index be39fcf2c2..e8ea46bc5e 100644 --- a/components/soc/esp32/include/soc/gpio_sd_reg.h +++ b/components/soc/esp32/include/soc/gpio_sd_reg.h @@ -156,5 +156,3 @@ #endif /*_SOC_GPIO_SD_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/hinf_reg.h b/components/soc/esp32/include/soc/hinf_reg.h index aad357864e..014b9169e8 100644 --- a/components/soc/esp32/include/soc/hinf_reg.h +++ b/components/soc/esp32/include/soc/hinf_reg.h @@ -244,5 +244,3 @@ #endif /*_SOC_HINF_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/host_reg.h b/components/soc/esp32/include/soc/host_reg.h index fe7c59bd10..17de93c4ab 100644 --- a/components/soc/esp32/include/soc/host_reg.h +++ b/components/soc/esp32/include/soc/host_reg.h @@ -3138,5 +3138,3 @@ #endif /*_SOC_HOST_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/i2c_reg.h b/components/soc/esp32/include/soc/i2c_reg.h index 292695eb7f..4dbb7b651c 100644 --- a/components/soc/esp32/include/soc/i2c_reg.h +++ b/components/soc/esp32/include/soc/i2c_reg.h @@ -947,5 +947,3 @@ #endif /*_SOC_I2C_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/i2s_reg.h b/components/soc/esp32/include/soc/i2s_reg.h index 3473c087ca..9a37f02a47 100644 --- a/components/soc/esp32/include/soc/i2s_reg.h +++ b/components/soc/esp32/include/soc/i2s_reg.h @@ -1523,5 +1523,3 @@ #endif /*_SOC_I2S_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/ledc_reg.h b/components/soc/esp32/include/soc/ledc_reg.h index 559be87361..a18d5eeaf6 100644 --- a/components/soc/esp32/include/soc/ledc_reg.h +++ b/components/soc/esp32/include/soc/ledc_reg.h @@ -2459,5 +2459,3 @@ #endif /*_SOC_LEDC_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/mcpwm_reg.h b/components/soc/esp32/include/soc/mcpwm_reg.h index 1dce94d469..a3cc235e36 100644 --- a/components/soc/esp32/include/soc/mcpwm_reg.h +++ b/components/soc/esp32/include/soc/mcpwm_reg.h @@ -3024,5 +3024,3 @@ #endif /*_SOC_MCPWM_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/pcnt_reg.h b/components/soc/esp32/include/soc/pcnt_reg.h index fa7dedc252..6d21d52ef2 100644 --- a/components/soc/esp32/include/soc/pcnt_reg.h +++ b/components/soc/esp32/include/soc/pcnt_reg.h @@ -1522,5 +1522,3 @@ #endif /*_SOC_PCNT_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/rmt_reg.h b/components/soc/esp32/include/soc/rmt_reg.h index 15c2f9a2dc..250ab650ab 100644 --- a/components/soc/esp32/include/soc/rmt_reg.h +++ b/components/soc/esp32/include/soc/rmt_reg.h @@ -2600,5 +2600,3 @@ #endif /*_SOC_RMT_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/rtc.h b/components/soc/esp32/include/soc/rtc.h index 44a43fe411..b283dadad3 100644 --- a/components/soc/esp32/include/soc/rtc.h +++ b/components/soc/esp32/include/soc/rtc.h @@ -675,4 +675,3 @@ void rtc_vddsdio_set_config(rtc_vddsdio_config_t config); #ifdef __cplusplus } #endif - diff --git a/components/soc/esp32/include/soc/rtc_cntl_reg.h b/components/soc/esp32/include/soc/rtc_cntl_reg.h index 4869736c85..825193a3f2 100644 --- a/components/soc/esp32/include/soc/rtc_cntl_reg.h +++ b/components/soc/esp32/include/soc/rtc_cntl_reg.h @@ -2077,5 +2077,3 @@ #endif /*_SOC_RTC_CNTL_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/rtc_i2c_reg.h b/components/soc/esp32/include/soc/rtc_i2c_reg.h index 556a455663..17e5a42373 100644 --- a/components/soc/esp32/include/soc/rtc_i2c_reg.h +++ b/components/soc/esp32/include/soc/rtc_i2c_reg.h @@ -285,4 +285,3 @@ #define RTC_I2C_VAL_M ((RTC_I2C_VAL_V)<<(RTC_I2C_VAL_S)) #define RTC_I2C_VAL_V 0x3FFF #define RTC_I2C_VAL_S 0 - diff --git a/components/soc/esp32/include/soc/rtc_io_reg.h b/components/soc/esp32/include/soc/rtc_io_reg.h index 5a3ce10d42..9dc9374e8b 100644 --- a/components/soc/esp32/include/soc/rtc_io_reg.h +++ b/components/soc/esp32/include/soc/rtc_io_reg.h @@ -1950,5 +1950,3 @@ #endif /*_SOC_RTC_IO_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/sdio_slave_pins.h b/components/soc/esp32/include/soc/sdio_slave_pins.h index 97c8bec07f..fd16f93bb8 100644 --- a/components/soc/esp32/include/soc/sdio_slave_pins.h +++ b/components/soc/esp32/include/soc/sdio_slave_pins.h @@ -31,4 +31,4 @@ #define SDIO_SLAVE_SLOT1_IOMUX_PIN_NUM_D3 13 #define SDIO_SLAVE_SLOT1_FUNC 4 -#endif /* _SOC_SDIO_SLAVE_PINS_H_ */ \ No newline at end of file +#endif /* _SOC_SDIO_SLAVE_PINS_H_ */ diff --git a/components/soc/esp32/include/soc/sdmmc_pins.h b/components/soc/esp32/include/soc/sdmmc_pins.h index c0b328239a..d1959e3e52 100644 --- a/components/soc/esp32/include/soc/sdmmc_pins.h +++ b/components/soc/esp32/include/soc/sdmmc_pins.h @@ -35,4 +35,4 @@ #define SDMMC_SLOT1_IOMUX_PIN_NUM_D3 13 #define SDMMC_SLOT1_FUNC 4 -#endif /* _SOC_SDMMC_PINS_H_ */ \ No newline at end of file +#endif /* _SOC_SDMMC_PINS_H_ */ diff --git a/components/soc/esp32/include/soc/sens_reg.h b/components/soc/esp32/include/soc/sens_reg.h index 34834376e8..2f41883e19 100644 --- a/components/soc/esp32/include/soc/sens_reg.h +++ b/components/soc/esp32/include/soc/sens_reg.h @@ -1064,5 +1064,3 @@ #endif /*_SOC_SENS_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/slc_reg.h b/components/soc/esp32/include/soc/slc_reg.h index 3d4541cccb..617a887155 100644 --- a/components/soc/esp32/include/soc/slc_reg.h +++ b/components/soc/esp32/include/soc/slc_reg.h @@ -3240,5 +3240,3 @@ #endif /*_SOC_SLC_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/soc_pins.h b/components/soc/esp32/include/soc/soc_pins.h index 6a8101067a..c26f3ca425 100644 --- a/components/soc/esp32/include/soc/soc_pins.h +++ b/components/soc/esp32/include/soc/soc_pins.h @@ -23,4 +23,4 @@ #include "soc/gpio_pins.h" #include "soc/spi_pins.h" #include "soc/sdio_slave_pins.h" -#include "soc/sdmmc_pins.h" \ No newline at end of file +#include "soc/sdmmc_pins.h" diff --git a/components/soc/esp32/include/soc/soc_ulp.h b/components/soc/esp32/include/soc/soc_ulp.h index e8c20d2b56..545d8e7b75 100644 --- a/components/soc/esp32/include/soc/soc_ulp.h +++ b/components/soc/esp32/include/soc/soc_ulp.h @@ -43,4 +43,3 @@ // Write immediate value into a field in rtc_reg, up to 8 bits #define WRITE_RTC_FIELD(rtc_reg, field, value) \ WRITE_RTC_REG(rtc_reg, field ## _S, MASK_TO_WIDTH_HELPER8(field ## _V, 0), ((value) & field ## _V)) - diff --git a/components/soc/esp32/include/soc/spi_pins.h b/components/soc/esp32/include/soc/spi_pins.h index 3727f9bdfe..5d4a329522 100644 --- a/components/soc/esp32/include/soc/spi_pins.h +++ b/components/soc/esp32/include/soc/spi_pins.h @@ -46,5 +46,3 @@ #define VSPI_IOMUX_PIN_NUM_CS 5 #define VSPI_IOMUX_PIN_NUM_WP 22 #define VSPI_IOMUX_PIN_NUM_HD 21 - - diff --git a/components/soc/esp32/include/soc/spi_reg.h b/components/soc/esp32/include/soc/spi_reg.h index fac2965c78..5c0787fd53 100644 --- a/components/soc/esp32/include/soc/spi_reg.h +++ b/components/soc/esp32/include/soc/spi_reg.h @@ -875,7 +875,7 @@ #define SPI_CACHE_FCTRL_REG(i) (REG_SPI_BASE(i) + 0x50) /* SPI_CACHE_FLASH_PES_EN : R/W ;bitpos:[3] ;default: 1'b0 ; */ -/*description: For SPI0 spi1 send suspend command before cache read flash +/*description: For SPI0 spi1 send suspend command before cache read flash 1: enable 0:disable.*/ #define SPI_CACHE_FLASH_PES_EN (BIT(3)) #define SPI_CACHE_FLASH_PES_EN_M (BIT(3)) @@ -1709,5 +1709,3 @@ #endif /*__SPI_REG_H__ */ - - diff --git a/components/soc/esp32/include/soc/syscon_reg.h b/components/soc/esp32/include/soc/syscon_reg.h index 5012b27e57..3a81a16008 100644 --- a/components/soc/esp32/include/soc/syscon_reg.h +++ b/components/soc/esp32/include/soc/syscon_reg.h @@ -290,5 +290,3 @@ #endif /*_SOC_SYSCON_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/timer_group_reg.h b/components/soc/esp32/include/soc/timer_group_reg.h index 9201ff0639..8f48a89f0a 100644 --- a/components/soc/esp32/include/soc/timer_group_reg.h +++ b/components/soc/esp32/include/soc/timer_group_reg.h @@ -299,7 +299,7 @@ #define TIMG_WDT_LEVEL_INT_EN_V 0x1 #define TIMG_WDT_LEVEL_INT_EN_S 21 /* TIMG_WDT_CPU_RESET_LENGTH : R/W ;bitpos:[20:18] ;default: 3'h1 ; */ -/*description: length of CPU reset selection. 0: 100ns 1: 200ns 2: 300ns +/*description: length of CPU reset selection. 0: 100ns 1: 200ns 2: 300ns 3: 400ns 4: 500ns 5: 800ns 6: 1.6us 7: 3.2us*/ #define TIMG_WDT_CPU_RESET_LENGTH 0x00000007 #define TIMG_WDT_CPU_RESET_LENGTH_M ((TIMG_WDT_CPU_RESET_LENGTH_V)<<(TIMG_WDT_CPU_RESET_LENGTH_S)) @@ -673,5 +673,3 @@ #endif /*__TIMG_REG_H__ */ - - diff --git a/components/soc/esp32/include/soc/uart_reg.h b/components/soc/esp32/include/soc/uart_reg.h index 33b6e998ed..255d9a3728 100644 --- a/components/soc/esp32/include/soc/uart_reg.h +++ b/components/soc/esp32/include/soc/uart_reg.h @@ -1176,5 +1176,3 @@ #endif /*__UART_REG_H__ */ - - diff --git a/components/soc/esp32/include/soc/uhci_reg.h b/components/soc/esp32/include/soc/uhci_reg.h index 973c6b5892..cf4b7a15a5 100644 --- a/components/soc/esp32/include/soc/uhci_reg.h +++ b/components/soc/esp32/include/soc/uhci_reg.h @@ -1256,5 +1256,3 @@ #endif /*_SOC_UHCI_REG_H_ */ - - diff --git a/components/soc/esp32/include/soc/wdev_reg.h b/components/soc/esp32/include/soc/wdev_reg.h index f3217cb0d6..93b60b2733 100644 --- a/components/soc/esp32/include/soc/wdev_reg.h +++ b/components/soc/esp32/include/soc/wdev_reg.h @@ -16,5 +16,5 @@ #include "soc.h" -/* Hardware random number generator register */ +/* Hardware random number generator register */ #define WDEV_RND_REG 0x60035144 diff --git a/components/soc/esp32/ledc_periph.c b/components/soc/esp32/ledc_periph.c index 6380fbad1c..2039d62532 100644 --- a/components/soc/esp32/ledc_periph.c +++ b/components/soc/esp32/ledc_periph.c @@ -25,4 +25,4 @@ const ledc_signal_conn_t ledc_periph_signal[2] = { { .sig_out0_idx = LEDC_LS_SIG_OUT0_IDX, } -}; \ No newline at end of file +}; diff --git a/components/soc/esp32/sdmmc_periph.c b/components/soc/esp32/sdmmc_periph.c index 20cdc894c1..db3af78203 100644 --- a/components/soc/esp32/sdmmc_periph.c +++ b/components/soc/esp32/sdmmc_periph.c @@ -47,4 +47,4 @@ const sdmmc_slot_info_t sdmmc_slot_info[2] = { .card_int = HOST_CARD_INT_N_2_IDX, .width = 4 } -}; \ No newline at end of file +}; diff --git a/components/soc/esp32/timer_periph.c b/components/soc/esp32/timer_periph.c index 3f7736cc96..d03676d028 100644 --- a/components/soc/esp32/timer_periph.c +++ b/components/soc/esp32/timer_periph.c @@ -26,4 +26,4 @@ const timer_group_signal_conn_t timer_group_periph_signals = { .t0_irq_id = ETS_TG1_T0_LEVEL_INTR_SOURCE, } } -}; \ No newline at end of file +}; diff --git a/components/soc/esp32/touch_sensor_periph.c b/components/soc/esp32/touch_sensor_periph.c index 35860550d2..910d774716 100644 --- a/components/soc/esp32/touch_sensor_periph.c +++ b/components/soc/esp32/touch_sensor_periph.c @@ -26,4 +26,4 @@ const int touch_sensor_channel_io_map[SOC_TOUCH_SENSOR_NUM] = { TOUCH_PAD_NUM7_GPIO_NUM, TOUCH_PAD_NUM8_GPIO_NUM, TOUCH_PAD_NUM9_GPIO_NUM -}; \ No newline at end of file +}; diff --git a/components/soc/esp32/uart_periph.c b/components/soc/esp32/uart_periph.c index 7695b4a6e2..0f931fb7bd 100644 --- a/components/soc/esp32/uart_periph.c +++ b/components/soc/esp32/uart_periph.c @@ -42,4 +42,4 @@ const uart_signal_conn_t uart_periph_signal[SOC_UART_NUM] = { .irq = ETS_UART2_INTR_SOURCE, .module = PERIPH_UART2_MODULE, }, -}; \ No newline at end of file +}; diff --git a/components/soc/esp32s2/dac_periph.c b/components/soc/esp32s2/dac_periph.c index a84a6aa201..76e5ed983f 100644 --- a/components/soc/esp32s2/dac_periph.c +++ b/components/soc/esp32s2/dac_periph.c @@ -20,4 +20,4 @@ const dac_signal_conn_t dac_periph_signal = { .dac_channel_io_num[0] = DAC_CHANNEL_1_GPIO_NUM, .dac_channel_io_num[1] = DAC_CHANNEL_2_GPIO_NUM, -}; \ No newline at end of file +}; diff --git a/components/soc/esp32s2/i2c_periph.c b/components/soc/esp32s2/i2c_periph.c index 1406cc1fd0..deee5ceb5d 100644 --- a/components/soc/esp32s2/i2c_periph.c +++ b/components/soc/esp32s2/i2c_periph.c @@ -35,4 +35,4 @@ const i2c_signal_conn_t i2c_periph_signal[SOC_I2C_NUM] = { .irq = ETS_I2C_EXT1_INTR_SOURCE, .module = PERIPH_I2C1_MODULE, }, -}; \ No newline at end of file +}; diff --git a/components/soc/esp32s2/include/soc/apb_ctrl_reg.h b/components/soc/esp32s2/include/soc/apb_ctrl_reg.h index 68b26c2e2a..21c8709c9e 100644 --- a/components/soc/esp32s2/include/soc/apb_ctrl_reg.h +++ b/components/soc/esp32s2/include/soc/apb_ctrl_reg.h @@ -501,5 +501,3 @@ extern "C" { #endif /*_SOC_APB_CTRL_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/apb_saradc_reg.h b/components/soc/esp32s2/include/soc/apb_saradc_reg.h index 56f9c8c6f7..e2743c51fb 100644 --- a/components/soc/esp32s2/include/soc/apb_saradc_reg.h +++ b/components/soc/esp32s2/include/soc/apb_saradc_reg.h @@ -614,5 +614,3 @@ extern "C" { #endif /*_SOC_APB_SARADC_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/bb_reg.h b/components/soc/esp32s2/include/soc/bb_reg.h index 69d2f43d20..62828b89e5 100644 --- a/components/soc/esp32s2/include/soc/bb_reg.h +++ b/components/soc/esp32s2/include/soc/bb_reg.h @@ -39,4 +39,3 @@ #endif /* _SOC_BB_REG_H_ */ - diff --git a/components/soc/esp32s2/include/soc/cache_memory.h b/components/soc/esp32s2/include/soc/cache_memory.h index c82401697c..06de5a4323 100644 --- a/components/soc/esp32s2/include/soc/cache_memory.h +++ b/components/soc/esp32s2/include/soc/cache_memory.h @@ -135,5 +135,3 @@ extern "C" { #endif #endif /*_CACHE_MEMORY_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/crypto_dma_reg.h b/components/soc/esp32s2/include/soc/crypto_dma_reg.h index 58433ebb50..282d40b992 100644 --- a/components/soc/esp32s2/include/soc/crypto_dma_reg.h +++ b/components/soc/esp32s2/include/soc/crypto_dma_reg.h @@ -183,5 +183,3 @@ extern "C" { #endif /*_SOC_CRYPTO_DMA_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/dedic_gpio_reg.h b/components/soc/esp32s2/include/soc/dedic_gpio_reg.h index 7ad7022c76..5e9fecf977 100644 --- a/components/soc/esp32s2/include/soc/dedic_gpio_reg.h +++ b/components/soc/esp32s2/include/soc/dedic_gpio_reg.h @@ -748,4 +748,3 @@ extern "C" { #ifdef __cplusplus } #endif - diff --git a/components/soc/esp32s2/include/soc/dport_reg.h b/components/soc/esp32s2/include/soc/dport_reg.h index 4ed9357844..ff5b616314 100644 --- a/components/soc/esp32s2/include/soc/dport_reg.h +++ b/components/soc/esp32s2/include/soc/dport_reg.h @@ -34,5 +34,3 @@ extern "C" { #endif #endif /*_SOC_DPORT_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/efuse_reg.h b/components/soc/esp32s2/include/soc/efuse_reg.h index 4f92f812bd..4d76d1115c 100644 --- a/components/soc/esp32s2/include/soc/efuse_reg.h +++ b/components/soc/esp32s2/include/soc/efuse_reg.h @@ -2310,5 +2310,3 @@ extern "C" { #endif /*_SOC_EFUSE_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/extmem_reg.h b/components/soc/esp32s2/include/soc/extmem_reg.h index f36554ca4f..a1b4fbd327 100644 --- a/components/soc/esp32s2/include/soc/extmem_reg.h +++ b/components/soc/esp32s2/include/soc/extmem_reg.h @@ -1679,5 +1679,3 @@ extern "C" { #endif /*_SOC_EXTMEM_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/gpio_reg.h b/components/soc/esp32s2/include/soc/gpio_reg.h index a7fd4c6230..4a435ad1fb 100644 --- a/components/soc/esp32s2/include/soc/gpio_reg.h +++ b/components/soc/esp32s2/include/soc/gpio_reg.h @@ -9218,5 +9218,3 @@ extern "C" { #endif /*_SOC_GPIO_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/gpio_sd_reg.h b/components/soc/esp32s2/include/soc/gpio_sd_reg.h index f2bd9115f7..12210cc45c 100644 --- a/components/soc/esp32s2/include/soc/gpio_sd_reg.h +++ b/components/soc/esp32s2/include/soc/gpio_sd_reg.h @@ -168,5 +168,3 @@ extern "C" { #endif /*_SOC_GPIO_SD_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/i2c_reg.h b/components/soc/esp32s2/include/soc/i2c_reg.h index 7cdeca6526..2f160b49ee 100644 --- a/components/soc/esp32s2/include/soc/i2c_reg.h +++ b/components/soc/esp32s2/include/soc/i2c_reg.h @@ -1122,4 +1122,3 @@ extern "C" { #endif /*_SOC_I2C_REG_H_ */ - diff --git a/components/soc/esp32s2/include/soc/i2c_struct.h b/components/soc/esp32s2/include/soc/i2c_struct.h index 3330d93030..e54038aaea 100644 --- a/components/soc/esp32s2/include/soc/i2c_struct.h +++ b/components/soc/esp32s2/include/soc/i2c_struct.h @@ -380,4 +380,4 @@ extern i2c_dev_t I2C1; } #endif -#endif /* _SOC_I2C_STRUCT_H_ */ \ No newline at end of file +#endif /* _SOC_I2C_STRUCT_H_ */ diff --git a/components/soc/esp32s2/include/soc/i2s_reg.h b/components/soc/esp32s2/include/soc/i2s_reg.h index 62283f2b29..1968003343 100644 --- a/components/soc/esp32s2/include/soc/i2s_reg.h +++ b/components/soc/esp32s2/include/soc/i2s_reg.h @@ -1442,5 +1442,3 @@ extern "C" { #endif /*_SOC_I2S_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/i2s_struct.h b/components/soc/esp32s2/include/soc/i2s_struct.h index 23621505b6..789f2c21c2 100644 --- a/components/soc/esp32s2/include/soc/i2s_struct.h +++ b/components/soc/esp32s2/include/soc/i2s_struct.h @@ -416,4 +416,4 @@ _Static_assert(sizeof(i2s_dev_t)==0x100, "invalid i2s_dev_t size"); } #endif -#endif /* _SOC_I2S_STRUCT_H_ */ \ No newline at end of file +#endif /* _SOC_I2S_STRUCT_H_ */ diff --git a/components/soc/esp32s2/include/soc/interrupt_reg.h b/components/soc/esp32s2/include/soc/interrupt_reg.h index 1b4ba60974..c5161e220d 100644 --- a/components/soc/esp32s2/include/soc/interrupt_reg.h +++ b/components/soc/esp32s2/include/soc/interrupt_reg.h @@ -832,5 +832,3 @@ extern "C" { #endif /*_SOC_INTERRUPT_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/ledc_reg.h b/components/soc/esp32s2/include/soc/ledc_reg.h index 15abacb870..07cb5a49b5 100644 --- a/components/soc/esp32s2/include/soc/ledc_reg.h +++ b/components/soc/esp32s2/include/soc/ledc_reg.h @@ -1568,5 +1568,3 @@ extern "C" { #endif /*_SOC_LEDC_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/pcnt_reg.h b/components/soc/esp32s2/include/soc/pcnt_reg.h index f28fc40eac..7195e1b1fb 100644 --- a/components/soc/esp32s2/include/soc/pcnt_reg.h +++ b/components/soc/esp32s2/include/soc/pcnt_reg.h @@ -858,5 +858,3 @@ extern "C" { #endif /*_SOC_PCNT_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/rmt_reg.h b/components/soc/esp32s2/include/soc/rmt_reg.h index 5e786636f3..0cd0aed5c1 100644 --- a/components/soc/esp32s2/include/soc/rmt_reg.h +++ b/components/soc/esp32s2/include/soc/rmt_reg.h @@ -1714,5 +1714,3 @@ extern "C" { #endif /*_SOC_RMT_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/rtc.h b/components/soc/esp32s2/include/soc/rtc.h index 928695fbfd..11b1a7c8f9 100644 --- a/components/soc/esp32s2/include/soc/rtc.h +++ b/components/soc/esp32s2/include/soc/rtc.h @@ -831,4 +831,3 @@ void rtc_vddsdio_set_config(rtc_vddsdio_config_t config); #ifdef __cplusplus } #endif - diff --git a/components/soc/esp32s2/include/soc/rtc_cntl_reg.h b/components/soc/esp32s2/include/soc/rtc_cntl_reg.h index 8128c4825e..bb769c935d 100644 --- a/components/soc/esp32s2/include/soc/rtc_cntl_reg.h +++ b/components/soc/esp32s2/include/soc/rtc_cntl_reg.h @@ -3316,5 +3316,3 @@ extern "C" { #endif /*_SOC_RTC_CNTL_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/rtc_i2c_reg.h b/components/soc/esp32s2/include/soc/rtc_i2c_reg.h index 834ee0cc83..fcf89f02aa 100644 --- a/components/soc/esp32s2/include/soc/rtc_i2c_reg.h +++ b/components/soc/esp32s2/include/soc/rtc_i2c_reg.h @@ -692,5 +692,3 @@ extern "C" { #endif /*_SOC_RTC_I2C_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/rtc_io_reg.h b/components/soc/esp32s2/include/soc/rtc_io_reg.h index 3561c4b31b..53e439a775 100644 --- a/components/soc/esp32s2/include/soc/rtc_io_reg.h +++ b/components/soc/esp32s2/include/soc/rtc_io_reg.h @@ -2294,5 +2294,3 @@ extern "C" { #endif /*_SOC_RTC_IO_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/sens_reg.h b/components/soc/esp32s2/include/soc/sens_reg.h index 04e29f1333..d76582d9f6 100644 --- a/components/soc/esp32s2/include/soc/sens_reg.h +++ b/components/soc/esp32s2/include/soc/sens_reg.h @@ -1496,5 +1496,3 @@ extern "C" { #endif /*_SOC_SENS_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/sensitive_reg.h b/components/soc/esp32s2/include/soc/sensitive_reg.h index ce038e593f..8eb4ee6e9d 100644 --- a/components/soc/esp32s2/include/soc/sensitive_reg.h +++ b/components/soc/esp32s2/include/soc/sensitive_reg.h @@ -1294,5 +1294,3 @@ extern "C" { #endif /*_SOC_SENSITIVE_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/soc_pins.h b/components/soc/esp32s2/include/soc/soc_pins.h index a71cf2d242..f9454c587b 100644 --- a/components/soc/esp32s2/include/soc/soc_pins.h +++ b/components/soc/esp32s2/include/soc/soc_pins.h @@ -23,4 +23,4 @@ #include "soc/usb_pins.h" #include "soc/gpio_pins.h" #include "soc/spi_pins.h" -#include "soc/touch_sensor_pins.h" \ No newline at end of file +#include "soc/touch_sensor_pins.h" diff --git a/components/soc/esp32s2/include/soc/soc_ulp.h b/components/soc/esp32s2/include/soc/soc_ulp.h index e8c20d2b56..545d8e7b75 100644 --- a/components/soc/esp32s2/include/soc/soc_ulp.h +++ b/components/soc/esp32s2/include/soc/soc_ulp.h @@ -43,4 +43,3 @@ // Write immediate value into a field in rtc_reg, up to 8 bits #define WRITE_RTC_FIELD(rtc_reg, field, value) \ WRITE_RTC_REG(rtc_reg, field ## _S, MASK_TO_WIDTH_HELPER8(field ## _V, 0), ((value) & field ## _V)) - diff --git a/components/soc/esp32s2/include/soc/spi_mem_reg.h b/components/soc/esp32s2/include/soc/spi_mem_reg.h index ef3bab18fc..fd3bf04a41 100644 --- a/components/soc/esp32s2/include/soc/spi_mem_reg.h +++ b/components/soc/esp32s2/include/soc/spi_mem_reg.h @@ -545,7 +545,7 @@ extern "C" { #define SPI_MEM_FSUB_PIN_V 0x1 #define SPI_MEM_FSUB_PIN_S 7 /* SPI_MEM_CS_POL : R/W ;bitpos:[6:5] ;default: 2'b0 ; */ -/*description: In the master mode the bits are the polarity of spi cs line +/*description: In the master mode the bits are the polarity of spi cs line the value is equivalent to spi_mem_cs ^ spi_mem_master_cs_pol.*/ #define SPI_MEM_CS_POL 0x00000003 #define SPI_MEM_CS_POL_M ((SPI_MEM_CS_POL_V)<<(SPI_MEM_CS_POL_S)) @@ -1817,5 +1817,3 @@ extern "C" { #endif /*_SOC_SPI_MEM_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/spi_reg.h b/components/soc/esp32s2/include/soc/spi_reg.h index b10320619e..0f0f732baa 100644 --- a/components/soc/esp32s2/include/soc/spi_reg.h +++ b/components/soc/esp32s2/include/soc/spi_reg.h @@ -2317,5 +2317,3 @@ extern "C" { #endif /*_SOC_SPI_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/syscon_reg.h b/components/soc/esp32s2/include/soc/syscon_reg.h index 9a9d92a0b8..a0ab648a7b 100644 --- a/components/soc/esp32s2/include/soc/syscon_reg.h +++ b/components/soc/esp32s2/include/soc/syscon_reg.h @@ -485,7 +485,7 @@ extern "C" { #define DPORT_BT_RST (BIT(3)) #define DPORT_MAC_RST (BIT(2)) #define DPORT_FE_RST (BIT(1)) -#define DPORT_BB_RST (BIT(0)) +#define DPORT_BB_RST (BIT(0)) #define SYSCON_FRONT_END_MEM_PD_REG (DR_REG_SYSCON_BASE + 0x098) /* SYSCON_DC_MEM_FORCE_PD : R/W ;bitpos:[5] ;default: 1'b0 ; */ @@ -540,5 +540,3 @@ extern "C" { #endif /*_SOC_SYSCON_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/system_reg.h b/components/soc/esp32s2/include/soc/system_reg.h index 4e335cc7ab..39abccdc4d 100644 --- a/components/soc/esp32s2/include/soc/system_reg.h +++ b/components/soc/esp32s2/include/soc/system_reg.h @@ -912,5 +912,3 @@ extern "C" { #endif /*_SOC_SYSTEM_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/systimer_reg.h b/components/soc/esp32s2/include/soc/systimer_reg.h index 0ddb7fe73e..5debf1148a 100644 --- a/components/soc/esp32s2/include/soc/systimer_reg.h +++ b/components/soc/esp32s2/include/soc/systimer_reg.h @@ -400,5 +400,3 @@ extern "C" { #ifdef __cplusplus } #endif - - diff --git a/components/soc/esp32s2/include/soc/timer_group_reg.h b/components/soc/esp32s2/include/soc/timer_group_reg.h index 3bf68c16bc..fdef7ff277 100644 --- a/components/soc/esp32s2/include/soc/timer_group_reg.h +++ b/components/soc/esp32s2/include/soc/timer_group_reg.h @@ -730,5 +730,3 @@ extern "C" { #endif /*_SOC_TIMG_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/uart_reg.h b/components/soc/esp32s2/include/soc/uart_reg.h index f17cacc3cb..fe0c8d8054 100644 --- a/components/soc/esp32s2/include/soc/uart_reg.h +++ b/components/soc/esp32s2/include/soc/uart_reg.h @@ -1108,5 +1108,3 @@ extern "C" { #endif /*_SOC_UART_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/uhci_reg.h b/components/soc/esp32s2/include/soc/uhci_reg.h index 9a23fe737f..77b29d63d8 100644 --- a/components/soc/esp32s2/include/soc/uhci_reg.h +++ b/components/soc/esp32s2/include/soc/uhci_reg.h @@ -1266,5 +1266,3 @@ extern "C" { #endif /*_SOC_UHCI_REG_H_ */ - - diff --git a/components/soc/esp32s2/include/soc/usb_wrap_reg.h b/components/soc/esp32s2/include/soc/usb_wrap_reg.h index 7348c7eb99..e4ea6b7a77 100644 --- a/components/soc/esp32s2/include/soc/usb_wrap_reg.h +++ b/components/soc/esp32s2/include/soc/usb_wrap_reg.h @@ -250,5 +250,3 @@ extern "C" { #ifdef __cplusplus } #endif - - diff --git a/components/soc/esp32s2/include/soc/usb_wrap_struct.h b/components/soc/esp32s2/include/soc/usb_wrap_struct.h index 42a4b355e3..147afc3228 100644 --- a/components/soc/esp32s2/include/soc/usb_wrap_struct.h +++ b/components/soc/esp32s2/include/soc/usb_wrap_struct.h @@ -439,5 +439,3 @@ extern usb_wrap_dev_t USB_WRAP; #ifdef __cplusplus } #endif - - diff --git a/components/soc/esp32s2/include/soc/wdev_reg.h b/components/soc/esp32s2/include/soc/wdev_reg.h index 21fb25a817..a1400e415f 100644 --- a/components/soc/esp32s2/include/soc/wdev_reg.h +++ b/components/soc/esp32s2/include/soc/wdev_reg.h @@ -16,6 +16,5 @@ #include "soc.h" -/* Hardware random number generator register */ +/* Hardware random number generator register */ #define WDEV_RND_REG 0x60035110 - diff --git a/components/soc/esp32s2/ledc_periph.c b/components/soc/esp32s2/ledc_periph.c index ce1ad7ce41..a7aed94896 100644 --- a/components/soc/esp32s2/ledc_periph.c +++ b/components/soc/esp32s2/ledc_periph.c @@ -22,4 +22,4 @@ const ledc_signal_conn_t ledc_periph_signal[1] = { { .sig_out0_idx = LEDC_LS_SIG_OUT0_IDX, } -}; \ No newline at end of file +}; diff --git a/components/soc/esp32s3/dac_periph.c b/components/soc/esp32s3/dac_periph.c index a55e33b5b8..6f15665204 100644 --- a/components/soc/esp32s3/dac_periph.c +++ b/components/soc/esp32s3/dac_periph.c @@ -20,4 +20,4 @@ const dac_signal_conn_t dac_periph_signal = { .dac_channel_io_num[0] = DAC_CHANNEL_1_GPIO_NUM, .dac_channel_io_num[1] = DAC_CHANNEL_2_GPIO_NUM, -}; \ No newline at end of file +}; diff --git a/components/soc/esp32s3/i2c_periph.c b/components/soc/esp32s3/i2c_periph.c index 3003dc5cb6..32065ef7b7 100644 --- a/components/soc/esp32s3/i2c_periph.c +++ b/components/soc/esp32s3/i2c_periph.c @@ -35,4 +35,4 @@ const i2c_signal_conn_t i2c_periph_signal[SOC_I2C_NUM] = { .irq = ETS_I2C_EXT1_INTR_SOURCE, .module = PERIPH_I2C1_MODULE, }, -}; \ No newline at end of file +}; diff --git a/components/soc/esp32s3/include/soc/cpu_caps.h b/components/soc/esp32s3/include/soc/cpu_caps.h index fbfd780bd4..5810c5bec6 100644 --- a/components/soc/esp32s3/include/soc/cpu_caps.h +++ b/components/soc/esp32s3/include/soc/cpu_caps.h @@ -17,4 +17,4 @@ #define SOC_CPU_BREAKPOINTS_NUM 2 #define SOC_CPU_WATCHPOINTS_NUM 2 -#define SOC_CPU_WATCHPOINT_SIZE 64 // bytes \ No newline at end of file +#define SOC_CPU_WATCHPOINT_SIZE 64 // bytes diff --git a/components/soc/esp32s3/include/soc/dac_caps.h b/components/soc/esp32s3/include/soc/dac_caps.h index fcd1daca25..a31c2643ab 100644 --- a/components/soc/esp32s3/include/soc/dac_caps.h +++ b/components/soc/esp32s3/include/soc/dac_caps.h @@ -19,4 +19,4 @@ #define SOC_DAC_RESOLUTION 8 // DAC resolution ratio 8 bit -#endif \ No newline at end of file +#endif diff --git a/components/soc/esp32s3/include/soc/gpio_pins.h b/components/soc/esp32s3/include/soc/gpio_pins.h index 2edb3ae691..428ed9a0d1 100644 --- a/components/soc/esp32s3/include/soc/gpio_pins.h +++ b/components/soc/esp32s3/include/soc/gpio_pins.h @@ -24,4 +24,4 @@ extern "C" { #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/soc/esp32s3/include/soc/i2c_caps.h b/components/soc/esp32s3/include/soc/i2c_caps.h index f7c758d403..4699af3a8f 100644 --- a/components/soc/esp32s3/include/soc/i2c_caps.h +++ b/components/soc/esp32s3/include/soc/i2c_caps.h @@ -31,5 +31,3 @@ extern "C" { #ifdef __cplusplus } #endif - - diff --git a/components/soc/esp32s3/include/soc/interrupt_reg.h b/components/soc/esp32s3/include/soc/interrupt_reg.h index 266e577a4d..37d76d474c 100644 --- a/components/soc/esp32s3/include/soc/interrupt_reg.h +++ b/components/soc/esp32s3/include/soc/interrupt_reg.h @@ -14,4 +14,4 @@ #pragma once #include "interrupt_core0_reg.h" -#include "interrupt_core1_reg.h" \ No newline at end of file +#include "interrupt_core1_reg.h" diff --git a/components/soc/esp32s3/include/soc/mpu_caps.h b/components/soc/esp32s3/include/soc/mpu_caps.h index 8e12a2b133..b267547590 100644 --- a/components/soc/esp32s3/include/soc/mpu_caps.h +++ b/components/soc/esp32s3/include/soc/mpu_caps.h @@ -18,4 +18,4 @@ #define SOC_MPU_MIN_REGION_SIZE 0x20000000 #define SOC_MPU_REGIONS_MAX_NUM 8 #define SOC_MPU_REGION_RO_SUPPORTED 0 -#define SOC_MPU_REGION_WO_SUPPORTED 0 \ No newline at end of file +#define SOC_MPU_REGION_WO_SUPPORTED 0 diff --git a/components/soc/esp32s3/include/soc/rtc.h b/components/soc/esp32s3/include/soc/rtc.h index c2d5f3932d..035f7f9d9f 100644 --- a/components/soc/esp32s3/include/soc/rtc.h +++ b/components/soc/esp32s3/include/soc/rtc.h @@ -817,4 +817,3 @@ void rtc_vddsdio_set_config(rtc_vddsdio_config_t config); #ifdef __cplusplus } #endif - diff --git a/components/soc/esp32s3/include/soc/rtc_io_caps.h b/components/soc/esp32s3/include/soc/rtc_io_caps.h index e443899079..ec1aeb428f 100644 --- a/components/soc/esp32s3/include/soc/rtc_io_caps.h +++ b/components/soc/esp32s3/include/soc/rtc_io_caps.h @@ -15,4 +15,4 @@ #pragma once #define SOC_RTCIO_PIN_COUNT 22 -#define RTCIO_LL_PIN_FUNC 0 \ No newline at end of file +#define RTCIO_LL_PIN_FUNC 0 diff --git a/components/soc/esp32s3/include/soc/soc_pins.h b/components/soc/esp32s3/include/soc/soc_pins.h index 6a8101067a..c26f3ca425 100644 --- a/components/soc/esp32s3/include/soc/soc_pins.h +++ b/components/soc/esp32s3/include/soc/soc_pins.h @@ -23,4 +23,4 @@ #include "soc/gpio_pins.h" #include "soc/spi_pins.h" #include "soc/sdio_slave_pins.h" -#include "soc/sdmmc_pins.h" \ No newline at end of file +#include "soc/sdmmc_pins.h" diff --git a/components/soc/esp32s3/include/soc/spi_caps.h b/components/soc/esp32s3/include/soc/spi_caps.h index d95a6217ec..1f0fc055cd 100644 --- a/components/soc/esp32s3/include/soc/spi_caps.h +++ b/components/soc/esp32s3/include/soc/spi_caps.h @@ -33,4 +33,4 @@ // Peripheral supports output given level during its "dummy phase" #define SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUTPUT 1 -#define SOC_MEMSPI_IS_INDEPENDENT 1 \ No newline at end of file +#define SOC_MEMSPI_IS_INDEPENDENT 1 diff --git a/components/soc/esp32s3/include/soc/uart_caps.h b/components/soc/esp32s3/include/soc/uart_caps.h index 395df10edd..3691273a2e 100644 --- a/components/soc/esp32s3/include/soc/uart_caps.h +++ b/components/soc/esp32s3/include/soc/uart_caps.h @@ -27,4 +27,3 @@ extern "C" { #ifdef __cplusplus } #endif - diff --git a/components/soc/esp32s3/ledc_periph.c b/components/soc/esp32s3/ledc_periph.c index 077a8cc6ca..fa3c729eea 100644 --- a/components/soc/esp32s3/ledc_periph.c +++ b/components/soc/esp32s3/ledc_periph.c @@ -22,4 +22,4 @@ const ledc_signal_conn_t ledc_periph_signal[1] = { { .sig_out0_idx = LEDC_LS_SIG_OUT0_IDX, } -}; \ No newline at end of file +}; diff --git a/components/soc/esp32s3/sdmmc_periph.c b/components/soc/esp32s3/sdmmc_periph.c index d0943a7a1e..4bf7c14db8 100644 --- a/components/soc/esp32s3/sdmmc_periph.c +++ b/components/soc/esp32s3/sdmmc_periph.c @@ -47,4 +47,4 @@ const sdmmc_slot_info_t sdmmc_slot_info[2] = { .card_int = SDHOST_CARD_INT_N_2_IDX, .width = 4 } -}; \ No newline at end of file +}; diff --git a/components/soc/esp32s3/touch_sensor_periph.c b/components/soc/esp32s3/touch_sensor_periph.c index 6f1e26a200..074d003e89 100644 --- a/components/soc/esp32s3/touch_sensor_periph.c +++ b/components/soc/esp32s3/touch_sensor_periph.c @@ -26,4 +26,4 @@ const int touch_sensor_channel_io_map[SOC_TOUCH_SENSOR_NUM] = { TOUCH_PAD_NUM7_GPIO_NUM, TOUCH_PAD_NUM8_GPIO_NUM, TOUCH_PAD_NUM9_GPIO_NUM, -}; \ No newline at end of file +}; diff --git a/components/soc/esp32s3/uart_periph.c b/components/soc/esp32s3/uart_periph.c index 4e0ae39a5e..a2c8e1646f 100644 --- a/components/soc/esp32s3/uart_periph.c +++ b/components/soc/esp32s3/uart_periph.c @@ -34,4 +34,4 @@ const uart_signal_conn_t uart_periph_signal[SOC_UART_NUM] = { .irq = ETS_UART1_INTR_SOURCE, .module = PERIPH_UART1_MODULE, } -}; \ No newline at end of file +}; diff --git a/components/soc/include/soc/adc_periph.h b/components/soc/include/soc/adc_periph.h index d3504ebce2..09ec3d8168 100644 --- a/components/soc/include/soc/adc_periph.h +++ b/components/soc/include/soc/adc_periph.h @@ -38,4 +38,4 @@ extern const int adc_channel_io_map[SOC_ADC_PERIPH_NUM][SOC_ADC_MAX_CHANNEL_NUM] #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/soc/include/soc/i2c_periph.h b/components/soc/include/soc/i2c_periph.h index f56fbe2947..0da893cab2 100644 --- a/components/soc/include/soc/i2c_periph.h +++ b/components/soc/include/soc/i2c_periph.h @@ -35,4 +35,4 @@ extern const i2c_signal_conn_t i2c_periph_signal[SOC_I2C_NUM]; #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/soc/include/soc/ledc_periph.h b/components/soc/include/soc/ledc_periph.h index 7cf82c1fde..d90f22e793 100644 --- a/components/soc/include/soc/ledc_periph.h +++ b/components/soc/include/soc/ledc_periph.h @@ -36,4 +36,4 @@ extern const ledc_signal_conn_t ledc_periph_signal[1]; #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/soc/include/soc/rtc_io_periph.h b/components/soc/include/soc/rtc_io_periph.h index aca325f011..8f36889131 100644 --- a/components/soc/include/soc/rtc_io_periph.h +++ b/components/soc/include/soc/rtc_io_periph.h @@ -106,4 +106,4 @@ extern const rtc_gpio_desc_t rtc_gpio_desc[GPIO_PIN_COUNT]; #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/soc/include/soc/sigmadelta_periph.h b/components/soc/include/soc/sigmadelta_periph.h index 75e723c7d8..695a783503 100644 --- a/components/soc/include/soc/sigmadelta_periph.h +++ b/components/soc/include/soc/sigmadelta_periph.h @@ -33,4 +33,4 @@ extern const sigma_delta_signal_conn_t sigma_delta_periph_signals; #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/soc/include/soc/soc_memory_layout.h b/components/soc/include/soc/soc_memory_layout.h index 01b13c51b9..781cf74892 100644 --- a/components/soc/include/soc/soc_memory_layout.h +++ b/components/soc/include/soc/soc_memory_layout.h @@ -294,4 +294,3 @@ inline static bool IRAM_ATTR esp_stack_ptr_is_sane(uint32_t sp) return esp_stack_ptr_in_dram(sp); #endif } - diff --git a/components/soc/include/soc/touch_sensor_periph.h b/components/soc/include/soc/touch_sensor_periph.h index 653d30138b..08317a3696 100644 --- a/components/soc/include/soc/touch_sensor_periph.h +++ b/components/soc/include/soc/touch_sensor_periph.h @@ -30,4 +30,4 @@ extern const int touch_sensor_channel_io_map[SOC_TOUCH_SENSOR_NUM]; #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/soc/include/soc/uart_periph.h b/components/soc/include/soc/uart_periph.h index 61bd029ba6..f7e4709932 100644 --- a/components/soc/include/soc/uart_periph.h +++ b/components/soc/include/soc/uart_periph.h @@ -37,4 +37,3 @@ extern const uart_signal_conn_t uart_periph_signal[SOC_UART_NUM]; #ifdef __cplusplus } #endif - diff --git a/components/soc/include/soc/uhci_periph.h b/components/soc/include/soc/uhci_periph.h index cbfae2ac9a..f75807c817 100644 --- a/components/soc/include/soc/uhci_periph.h +++ b/components/soc/include/soc/uhci_periph.h @@ -15,4 +15,4 @@ #include "soc/uhci_reg.h" #include "soc/uhci_struct.h" -#include "soc/periph_defs.h" \ No newline at end of file +#include "soc/periph_defs.h" diff --git a/components/soc/soc_include_legacy_warn.c b/components/soc/soc_include_legacy_warn.c index 236416f0f3..375ba11654 100644 --- a/components/soc/soc_include_legacy_warn.c +++ b/components/soc/soc_include_legacy_warn.c @@ -2,4 +2,4 @@ #ifdef CONFIG_LEGACY_INCLUDE_COMMON_HEADERS #warning Legacy including is enabled. This will be deprecated in the future. You can disable this option in the menuconfig. If there are some including errors, please try to include: "soc/soc.h", "soc/soc_memory_layout.h", "driver/gpio.h", or "esp_sleep.h". -#endif \ No newline at end of file +#endif diff --git a/components/spi_flash/cache_utils.c b/components/spi_flash/cache_utils.c index def10c00ae..37c3bab0b4 100644 --- a/components/spi_flash/cache_utils.c +++ b/components/spi_flash/cache_utils.c @@ -876,4 +876,3 @@ void IRAM_ATTR spi_flash_enable_cache(uint32_t cpuid) spi_flash_restore_cache(0, 0); // TODO cache_value should be non-zero #endif } - diff --git a/components/spi_flash/esp32/flash_ops_esp32.c b/components/spi_flash/esp32/flash_ops_esp32.c index e23e1aa540..9bfa95da2b 100644 --- a/components/spi_flash/esp32/flash_ops_esp32.c +++ b/components/spi_flash/esp32/flash_ops_esp32.c @@ -83,4 +83,3 @@ esp_rom_spiflash_result_t IRAM_ATTR spi_flash_write_encrypted_chip(size_t dest_a return rc; } - diff --git a/components/spi_flash/include/esp_spi_flash.h b/components/spi_flash/include/esp_spi_flash.h index 59d3679da3..fcc702444f 100644 --- a/components/spi_flash/include/esp_spi_flash.h +++ b/components/spi_flash/include/esp_spi_flash.h @@ -462,4 +462,3 @@ const spi_flash_counters_t* spi_flash_get_counters(void); #endif /* ESP_SPI_FLASH_H */ - diff --git a/components/spi_flash/include/memspi_host_driver.h b/components/spi_flash/include/memspi_host_driver.h index 80cc55239c..edc6c705eb 100644 --- a/components/spi_flash/include/memspi_host_driver.h +++ b/components/spi_flash/include/memspi_host_driver.h @@ -175,4 +175,4 @@ int memspi_host_read_data_slicer(spi_flash_host_inst_t *host, uint32_t address, * * @return Length that can actually be written in one `program_page` call in `spi_flash_host_driver_t`. */ -int memspi_host_write_data_slicer(spi_flash_host_inst_t *host, uint32_t address, uint32_t len, uint32_t *align_address, uint32_t page_size); \ No newline at end of file +int memspi_host_write_data_slicer(spi_flash_host_inst_t *host, uint32_t address, uint32_t len, uint32_t *align_address, uint32_t page_size); diff --git a/components/spi_flash/include/spi_flash_chip_generic.h b/components/spi_flash/include/spi_flash_chip_generic.h index 1c76ec1e44..b76b5bb56b 100644 --- a/components/spi_flash/include/spi_flash_chip_generic.h +++ b/components/spi_flash/include/spi_flash_chip_generic.h @@ -382,4 +382,4 @@ esp_err_t spi_flash_common_set_io_mode(esp_flash_t *chip, esp_flash_wrsr_func_t esp_err_t spi_flash_chip_generic_config_host_io_mode(esp_flash_t *chip, bool addr_32bit); /// Default timeout configuration used by most chips -const flash_chip_op_timeout_t spi_flash_chip_generic_timeout; \ No newline at end of file +const flash_chip_op_timeout_t spi_flash_chip_generic_timeout; diff --git a/components/spi_flash/memspi_host_driver.c b/components/spi_flash/memspi_host_driver.c index 2ac80d69fe..63e915e2df 100644 --- a/components/spi_flash/memspi_host_driver.c +++ b/components/spi_flash/memspi_host_driver.c @@ -214,4 +214,3 @@ int memspi_host_read_data_slicer(spi_flash_host_inst_t *host, uint32_t address, *align_address = address; return MIN(max_len, len); } - diff --git a/components/spi_flash/sim/SpiFlash.cpp b/components/spi_flash/sim/SpiFlash.cpp index f2991e01a5..9cb2bb8f36 100644 --- a/components/spi_flash/sim/SpiFlash.cpp +++ b/components/spi_flash/sim/SpiFlash.cpp @@ -123,12 +123,12 @@ esp_rom_spiflash_result_t SpiFlash::erase_block(uint32_t block) esp_rom_spiflash_result_t SpiFlash::erase_sector(uint32_t sector) { - if (this->total_erase_cycles_limit != 0 && + if (this->total_erase_cycles_limit != 0 && this->total_erase_cycles >= this->total_erase_cycles_limit) { return ESP_ROM_SPIFLASH_RESULT_ERR; } - if (this->erase_cycles_limit != 0 && + if (this->erase_cycles_limit != 0 && this->erase_cycles[sector] >= this->erase_cycles_limit) { return ESP_ROM_SPIFLASH_RESULT_ERR; } @@ -165,7 +165,7 @@ esp_rom_spiflash_result_t SpiFlash::write(uint32_t dest_addr, const void *src, u int start = 0; int end = 0; - if (this->total_erase_cycles_limit != 0 && + if (this->total_erase_cycles_limit != 0 && this->total_erase_cycles >= this->total_erase_cycles_limit) { return ESP_ROM_SPIFLASH_RESULT_ERR; } @@ -174,7 +174,7 @@ esp_rom_spiflash_result_t SpiFlash::write(uint32_t dest_addr, const void *src, u end = size > 0 ? (dest_addr + size - 1) / this->get_sector_size() : start; for (int i = start; i <= end; i++) { - if (this->erase_cycles_limit != 0 && + if (this->erase_cycles_limit != 0 && this->erase_cycles[i] >= this->erase_cycles_limit) { return ESP_ROM_SPIFLASH_RESULT_ERR; } @@ -203,7 +203,7 @@ esp_rom_spiflash_result_t SpiFlash::read(uint32_t src_addr, void *dest, uint32_t int start = 0; int end = 0; - if (this->total_erase_cycles_limit != 0 && + if (this->total_erase_cycles_limit != 0 && this->total_erase_cycles >= this->total_erase_cycles_limit) { return ESP_ROM_SPIFLASH_RESULT_ERR; } @@ -212,7 +212,7 @@ esp_rom_spiflash_result_t SpiFlash::read(uint32_t src_addr, void *dest, uint32_t end = size > 0 ? (src_addr + size - 1) / this->get_sector_size() : start; for (int i = start; i <= end; i++) { - if (this->erase_cycles_limit != 0 && + if (this->erase_cycles_limit != 0 && this->erase_cycles[i] >= this->erase_cycles_limit) { return ESP_ROM_SPIFLASH_RESULT_ERR; } @@ -256,4 +256,4 @@ void SpiFlash::reset_erase_cycles() void SpiFlash::reset_total_erase_cycles() { this->total_erase_cycles = 0; -} \ No newline at end of file +} diff --git a/components/spi_flash/sim/SpiFlash.h b/components/spi_flash/sim/SpiFlash.h index ba870a5a20..070d4621bf 100644 --- a/components/spi_flash/sim/SpiFlash.h +++ b/components/spi_flash/sim/SpiFlash.h @@ -47,7 +47,7 @@ public: uint32_t get_erase_cycles(uint32_t sector); uint32_t get_total_erase_cycles(); - + void set_erase_cycles_limit(uint32_t limit); void set_total_erase_cycles_limit(uint32_t limit); diff --git a/components/spi_flash/sim/component.mk b/components/spi_flash/sim/component.mk index 82dea0b0cf..928f5343aa 100644 --- a/components/spi_flash/sim/component.mk +++ b/components/spi_flash/sim/component.mk @@ -14,4 +14,4 @@ CLEAN_FILES := component_project_vars.mk clean: $(summary) RM $(CLEAN_FILES) rm -f $(CLEAN_FILES) - $(MAKE) -C $(COMPONENT_PATH) clean SDKCONFIG=$(SDKCONFIG_HEADER) BUILD_DIR=$(COMPONENT_BUILD_DIR) COMPONENT=$(COMPONENT_NAME) \ No newline at end of file + $(MAKE) -C $(COMPONENT_PATH) clean SDKCONFIG=$(SDKCONFIG_HEADER) BUILD_DIR=$(COMPONENT_BUILD_DIR) COMPONENT=$(COMPONENT_NAME) diff --git a/components/spi_flash/sim/flash_mock.cpp b/components/spi_flash/sim/flash_mock.cpp index b089e22dc8..81529b5d81 100644 --- a/components/spi_flash/sim/flash_mock.cpp +++ b/components/spi_flash/sim/flash_mock.cpp @@ -21,7 +21,7 @@ size_t convert_chip_size_string(const char* chip_size_str) } else if (strcmp(chip_size_str, "2MB") == 0) { size = 0x200000; - } + } else if (strcmp(chip_size_str, "4MB") == 0) { size = 0x400000; } diff --git a/components/spi_flash/sim/stubs/Makefile.files b/components/spi_flash/sim/stubs/Makefile.files index f6275d7f23..a97371b8ab 100644 --- a/components/spi_flash/sim/stubs/Makefile.files +++ b/components/spi_flash/sim/stubs/Makefile.files @@ -32,4 +32,3 @@ INCLUDE_DIRS := \ hal/include \ spi_flash/include \ ) - diff --git a/components/spi_flash/sim/stubs/component.mk b/components/spi_flash/sim/stubs/component.mk index 82dea0b0cf..928f5343aa 100644 --- a/components/spi_flash/sim/stubs/component.mk +++ b/components/spi_flash/sim/stubs/component.mk @@ -14,4 +14,4 @@ CLEAN_FILES := component_project_vars.mk clean: $(summary) RM $(CLEAN_FILES) rm -f $(CLEAN_FILES) - $(MAKE) -C $(COMPONENT_PATH) clean SDKCONFIG=$(SDKCONFIG_HEADER) BUILD_DIR=$(COMPONENT_BUILD_DIR) COMPONENT=$(COMPONENT_NAME) \ No newline at end of file + $(MAKE) -C $(COMPONENT_PATH) clean SDKCONFIG=$(SDKCONFIG_HEADER) BUILD_DIR=$(COMPONENT_BUILD_DIR) COMPONENT=$(COMPONENT_NAME) diff --git a/components/spi_flash/sim/stubs/driver/include/driver/sdmmc_host.h b/components/spi_flash/sim/stubs/driver/include/driver/sdmmc_host.h index 2e68110374..efabda7df8 100644 --- a/components/spi_flash/sim/stubs/driver/include/driver/sdmmc_host.h +++ b/components/spi_flash/sim/stubs/driver/include/driver/sdmmc_host.h @@ -3,4 +3,3 @@ #include #include "sdmmc_types.h" - diff --git a/components/spi_flash/sim/stubs/driver/include/driver/sdmmc_types.h b/components/spi_flash/sim/stubs/driver/include/driver/sdmmc_types.h index 22df97c5c0..970e40e3c0 100644 --- a/components/spi_flash/sim/stubs/driver/include/driver/sdmmc_types.h +++ b/components/spi_flash/sim/stubs/driver/include/driver/sdmmc_types.h @@ -8,4 +8,4 @@ typedef int sdmmc_card_t; #if defined(__cplusplus) } -#endif \ No newline at end of file +#endif diff --git a/components/spi_flash/sim/stubs/esp32/crc.cpp b/components/spi_flash/sim/stubs/esp32/crc.cpp index 4cbb9be9ec..49980776c3 100644 --- a/components/spi_flash/sim/stubs/esp32/crc.cpp +++ b/components/spi_flash/sim/stubs/esp32/crc.cpp @@ -31,7 +31,7 @@ static const unsigned int crc32_le_table[256] = { 0x4369e96aL, 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L, 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L, 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL, 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L, 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, - + 0xedb88320L, 0x9abfb3b6L, 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L, 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L, 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L, 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL, 0x196c3671L, 0x6e6b06e7L, @@ -61,4 +61,3 @@ extern "C" unsigned int crc32_le(unsigned int crc, unsigned char const * buf,uns } return ~crc; } - diff --git a/components/spi_flash/sim/stubs/esp32/esp_random.c b/components/spi_flash/sim/stubs/esp32/esp_random.c index 389796d3ee..8ada60570d 100644 --- a/components/spi_flash/sim/stubs/esp32/esp_random.c +++ b/components/spi_flash/sim/stubs/esp32/esp_random.c @@ -11,4 +11,3 @@ uint32_t esp_random(void) { return (uint32_t)rand(); } - diff --git a/components/spi_flash/sim/stubs/esp_timer/include/esp_timer.h b/components/spi_flash/sim/stubs/esp_timer/include/esp_timer.h index 954448b0d1..647e113881 100644 --- a/components/spi_flash/sim/stubs/esp_timer/include/esp_timer.h +++ b/components/spi_flash/sim/stubs/esp_timer/include/esp_timer.h @@ -12,4 +12,3 @@ int64_t esp_timer_get_time(void); #ifdef __cplusplus } #endif - diff --git a/components/spi_flash/sim/stubs/freertos/include/freertos/task.h b/components/spi_flash/sim/stubs/freertos/include/freertos/task.h index 7b9637ef9c..6f70f09bee 100644 --- a/components/spi_flash/sim/stubs/freertos/include/freertos/task.h +++ b/components/spi_flash/sim/stubs/freertos/include/freertos/task.h @@ -1 +1 @@ -#pragma once \ No newline at end of file +#pragma once diff --git a/components/spi_flash/sim/stubs/log/log.c b/components/spi_flash/sim/stubs/log/log.c index 4c8dc78023..9750a8f19a 100644 --- a/components/spi_flash/sim/stubs/log/log.c +++ b/components/spi_flash/sim/stubs/log/log.c @@ -19,4 +19,3 @@ uint32_t esp_log_timestamp(void) { return 0; } - diff --git a/components/spi_flash/sim/stubs/newlib/include/sys/lock.h b/components/spi_flash/sim/stubs/newlib/include/sys/lock.h index bd5af66712..b88cd5de37 100644 --- a/components/spi_flash/sim/stubs/newlib/include/sys/lock.h +++ b/components/spi_flash/sim/stubs/newlib/include/sys/lock.h @@ -16,4 +16,3 @@ void _lock_release(_lock_t *lock); #ifdef __cplusplus } #endif - diff --git a/components/spi_flash/sim/stubs/sdkconfig/sdkconfig.h b/components/spi_flash/sim/stubs/sdkconfig/sdkconfig.h index 7b9637ef9c..6f70f09bee 100644 --- a/components/spi_flash/sim/stubs/sdkconfig/sdkconfig.h +++ b/components/spi_flash/sim/stubs/sdkconfig/sdkconfig.h @@ -1 +1 @@ -#pragma once \ No newline at end of file +#pragma once diff --git a/components/spi_flash/spi_flash_chip_generic.c b/components/spi_flash/spi_flash_chip_generic.c index 48120573c9..093fed0771 100644 --- a/components/spi_flash/spi_flash_chip_generic.c +++ b/components/spi_flash/spi_flash_chip_generic.c @@ -607,4 +607,4 @@ esp_err_t spi_flash_common_set_io_mode(esp_flash_t *chip, esp_flash_wrsr_func_t chip->chip_drv->set_chip_write_protect(chip, true); } return ret; -} \ No newline at end of file +} diff --git a/components/spi_flash/spi_flash_chip_winbond.c b/components/spi_flash/spi_flash_chip_winbond.c index d1740bec2d..b45ee34603 100644 --- a/components/spi_flash/spi_flash_chip_winbond.c +++ b/components/spi_flash/spi_flash_chip_winbond.c @@ -211,4 +211,4 @@ esp_err_t spi_flash_command_erase_block_4B(esp_flash_t *chip, uint32_t start_add .address = start_address, }; return chip->host->driver->common_command(chip->host, &t); -} \ No newline at end of file +} diff --git a/components/spi_flash/test/CMakeLists.txt b/components/spi_flash/test/CMakeLists.txt index 17b9e7d719..75be8a44c9 100644 --- a/components/spi_flash/test/CMakeLists.txt +++ b/components/spi_flash/test/CMakeLists.txt @@ -6,4 +6,3 @@ idf_component_register(SRC_DIRS "." EXCLUDE_SRCS "${exclude_srcs}" PRIV_INCLUDE_DIRS "." PRIV_REQUIRES cmock test_utils spi_flash bootloader_support app_update) - diff --git a/components/spi_flash/test/test_partition_ext.c b/components/spi_flash/test/test_partition_ext.c index e4b52f38ff..62011a9ead 100644 --- a/components/spi_flash/test/test_partition_ext.c +++ b/components/spi_flash/test/test_partition_ext.c @@ -43,4 +43,4 @@ TEST_CASE("Basic handling of a partition in external flash", "[partition]") TEST_ESP_ERR(ESP_ERR_INVALID_ARG, esp_partition_register_external(&flash, SPI_FLASH_SEC_SIZE, 2 * SPI_FLASH_SEC_SIZE, "p2", t, st, NULL)); TEST_ESP_OK(esp_partition_deregister_external(ext_partition)); -} \ No newline at end of file +} diff --git a/components/spi_flash/test/test_partitions.c b/components/spi_flash/test/test_partitions.c index 6c79b46048..a01aa399f1 100644 --- a/components/spi_flash/test/test_partitions.c +++ b/components/spi_flash/test/test_partitions.c @@ -145,4 +145,3 @@ TEST_CASE("Test esp_partition_get_sha256() that it can handle a big partition", spi_flash_munmap(handle); } - diff --git a/components/spi_flash/test/test_read_write.c b/components/spi_flash/test/test_read_write.c index 14f1773bab..eb74b90a12 100644 --- a/components/spi_flash/test/test_read_write.c +++ b/components/spi_flash/test/test_read_write.c @@ -342,4 +342,3 @@ TEST_CASE("spi_flash_read less than 16 bytes into buffer in external RAM", "[spi } #endif // CONFIG_SPIRAM - diff --git a/components/spi_flash/test/test_spi_flash.c b/components/spi_flash/test/test_spi_flash.c index 5af3e35366..901a0e7a5f 100644 --- a/components/spi_flash/test/test_spi_flash.c +++ b/components/spi_flash/test/test_spi_flash.c @@ -415,4 +415,4 @@ TEST_CASE("rom unlock will not erase QE bit", "[spi_flash]") TEST_ASSERT(status & 0x40); } -#endif \ No newline at end of file +#endif diff --git a/components/spiffs/CMakeLists.txt b/components/spiffs/CMakeLists.txt index c9b164807b..53a693f564 100644 --- a/components/spiffs/CMakeLists.txt +++ b/components/spiffs/CMakeLists.txt @@ -11,4 +11,3 @@ idf_component_register(SRCS "esp_spiffs.c" PRIV_REQUIRES bootloader_support) set_source_files_properties(spiffs/src/spiffs_nucleus.c PROPERTIES COMPILE_FLAGS -Wno-stringop-truncation) - diff --git a/components/spiffs/Makefile.projbuild b/components/spiffs/Makefile.projbuild index 83c9d4e309..331428a327 100644 --- a/components/spiffs/Makefile.projbuild +++ b/components/spiffs/Makefile.projbuild @@ -8,7 +8,7 @@ USE_MAGIC := endif ifdef CONFIG_SPIFFS_USE_MAGIC_LENGTH -USE_MAGIC_LEN := "--use-magic-len" +USE_MAGIC_LEN := "--use-magic-len" else USE_MAGIC_LEN := endif @@ -35,7 +35,7 @@ $(1)_bin: $(PARTITION_TABLE_BIN) $(SPIFFS_IMAGE_DEPENDS) | check_python_dependen --meta-len=$(CONFIG_SPIFFS_META_LENGTH) \ $(FOLLOW_SYMLINKS) \ $(USE_MAGIC) \ - $(USE_MAGIC_LEN) + $(USE_MAGIC_LEN) all_binaries: $(1)_bin print_flash_cmd: $(1)_bin diff --git a/components/spiffs/include/esp_spiffs.h b/components/spiffs/include/esp_spiffs.h index bd733ac86f..9cc120895d 100644 --- a/components/spiffs/include/esp_spiffs.h +++ b/components/spiffs/include/esp_spiffs.h @@ -37,7 +37,7 @@ typedef struct { * * @param conf Pointer to esp_vfs_spiffs_conf_t configuration structure * - * @return + * @return * - ESP_OK if success * - ESP_ERR_NO_MEM if objects could not be allocated * - ESP_ERR_INVALID_STATE if already mounted or partition is encrypted @@ -51,7 +51,7 @@ esp_err_t esp_vfs_spiffs_register(const esp_vfs_spiffs_conf_t * conf); * * @param partition_label Same label as passed to esp_vfs_spiffs_register. * - * @return + * @return * - ESP_OK if successful * - ESP_ERR_INVALID_STATE already unregistered */ @@ -63,7 +63,7 @@ esp_err_t esp_vfs_spiffs_unregister(const char* partition_label); * @param partition_label Optional, label of the partition to check. * If not specified, first partition with subtype=spiffs is used. * - * @return + * @return * - true if mounted * - false if not mounted */ @@ -73,7 +73,7 @@ bool esp_spiffs_mounted(const char* partition_label); * Format the SPIFFS partition * * @param partition_label Same label as passed to esp_vfs_spiffs_register. - * @return + * @return * - ESP_OK if successful * - ESP_FAIL on error */ @@ -86,7 +86,7 @@ esp_err_t esp_spiffs_format(const char* partition_label); * @param[out] total_bytes Size of the file system * @param[out] used_bytes Current used bytes in the file system * - * @return + * @return * - ESP_OK if success * - ESP_ERR_INVALID_STATE if not mounted */ diff --git a/components/spiffs/spiffs_api.c b/components/spiffs/spiffs_api.c index e628e8644b..69d023d8da 100644 --- a/components/spiffs/spiffs_api.c +++ b/components/spiffs/spiffs_api.c @@ -33,7 +33,7 @@ void spiffs_api_unlock(spiffs *fs) s32_t spiffs_api_read(spiffs *fs, uint32_t addr, uint32_t size, uint8_t *dst) { - esp_err_t err = esp_partition_read(((esp_spiffs_t *)(fs->user_data))->partition, + esp_err_t err = esp_partition_read(((esp_spiffs_t *)(fs->user_data))->partition, addr, dst, size); if (unlikely(err)) { ESP_LOGE(TAG, "failed to read addr %08x, size %08x, err %d", addr, size, err); @@ -44,7 +44,7 @@ s32_t spiffs_api_read(spiffs *fs, uint32_t addr, uint32_t size, uint8_t *dst) s32_t spiffs_api_write(spiffs *fs, uint32_t addr, uint32_t size, uint8_t *src) { - esp_err_t err = esp_partition_write(((esp_spiffs_t *)(fs->user_data))->partition, + esp_err_t err = esp_partition_write(((esp_spiffs_t *)(fs->user_data))->partition, addr, src, size); if (unlikely(err)) { ESP_LOGE(TAG, "failed to write addr %08x, size %08x, err %d", addr, size, err); @@ -55,7 +55,7 @@ s32_t spiffs_api_write(spiffs *fs, uint32_t addr, uint32_t size, uint8_t *src) s32_t spiffs_api_erase(spiffs *fs, uint32_t addr, uint32_t size) { - esp_err_t err = esp_partition_erase_range(((esp_spiffs_t *)(fs->user_data))->partition, + esp_err_t err = esp_partition_erase_range(((esp_spiffs_t *)(fs->user_data))->partition, addr, size); if (err) { ESP_LOGE(TAG, "failed to erase addr %08x, size %08x, err %d", addr, size, err); @@ -64,7 +64,7 @@ s32_t spiffs_api_erase(spiffs *fs, uint32_t addr, uint32_t size) return 0; } -void spiffs_api_check(spiffs *fs, spiffs_check_type type, +void spiffs_api_check(spiffs *fs, spiffs_check_type type, spiffs_check_report report, uint32_t arg1, uint32_t arg2) { static const char * spiffs_check_type_str[3] = { @@ -84,10 +84,10 @@ void spiffs_api_check(spiffs *fs, spiffs_check_type type, }; if (report != SPIFFS_CHECK_PROGRESS) { - ESP_LOGE(TAG, "CHECK: type:%s, report:%s, %x:%x", spiffs_check_type_str[type], + ESP_LOGE(TAG, "CHECK: type:%s, report:%s, %x:%x", spiffs_check_type_str[type], spiffs_check_report_str[report], arg1, arg2); } else { - ESP_LOGV(TAG, "CHECK PROGRESS: report:%s, %x:%x", + ESP_LOGV(TAG, "CHECK PROGRESS: report:%s, %x:%x", spiffs_check_report_str[report], arg1, arg2); } } diff --git a/components/spiffs/spiffs_api.h b/components/spiffs/spiffs_api.h index ced85da5a1..7361638ab5 100644 --- a/components/spiffs/spiffs_api.h +++ b/components/spiffs/spiffs_api.h @@ -55,4 +55,4 @@ void spiffs_api_check(spiffs *fs, spiffs_check_type type, #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/spiffs/test/CMakeLists.txt b/components/spiffs/test/CMakeLists.txt index ce42e7f4d3..571cbfdc73 100644 --- a/components/spiffs/test/CMakeLists.txt +++ b/components/spiffs/test/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRC_DIRS "." PRIV_INCLUDE_DIRS "." - PRIV_REQUIRES cmock test_utils spiffs) \ No newline at end of file + PRIV_REQUIRES cmock test_utils spiffs) diff --git a/components/spiffs/test_spiffs_host/Makefile b/components/spiffs/test_spiffs_host/Makefile index 3e7e9d5f5a..df5e9b5ed3 100644 --- a/components/spiffs/test_spiffs_host/Makefile +++ b/components/spiffs/test_spiffs_host/Makefile @@ -57,7 +57,7 @@ endef define COMPILE_CPP $(call CPPTARGET, ${1}, $(BUILD_DIR)) : ${1} $(SDKCONFIG) - mkdir -p $(BUILD_DIR) + mkdir -p $(BUILD_DIR) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $(call CPPTARGET, ${1}, $(BUILD_DIR)) ${1} endef @@ -88,12 +88,12 @@ $(TEST_PROGRAM): lib $(TEST_OBJ_FILES) $(SPI_FLASH_SIM_BUILD_DIR)/$(SPI_FLASH_SI # Use spiffs source directory as the test image spiffs_image: ../spiffs $(shell find ../spiffs -type d) $(shell find ../spiffs -type -f -name '*') # Creation of test symlinks unfortunately causes rerun of spiffsgen.py every make invoke - rm -f ../spiffs/include ../spiffs/CMakeLists.txt + rm -f ../spiffs/include ../spiffs/CMakeLists.txt ln -s ../include ../spiffs/include ln -s ../CMakeLists.txt ../spiffs/CMakeLists.txt - ../spiffsgen.py --follow-symlinks 2097152 ../spiffs image.bin + ../spiffsgen.py --follow-symlinks 2097152 ../spiffs image.bin -test: $(TEST_PROGRAM) spiffs_image +test: $(TEST_PROGRAM) spiffs_image ./$(TEST_PROGRAM) # Create other necessary targets diff --git a/components/spiffs/test_spiffs_host/component.mk b/components/spiffs/test_spiffs_host/component.mk index 82dea0b0cf..928f5343aa 100644 --- a/components/spiffs/test_spiffs_host/component.mk +++ b/components/spiffs/test_spiffs_host/component.mk @@ -14,4 +14,4 @@ CLEAN_FILES := component_project_vars.mk clean: $(summary) RM $(CLEAN_FILES) rm -f $(CLEAN_FILES) - $(MAKE) -C $(COMPONENT_PATH) clean SDKCONFIG=$(SDKCONFIG_HEADER) BUILD_DIR=$(COMPONENT_BUILD_DIR) COMPONENT=$(COMPONENT_NAME) \ No newline at end of file + $(MAKE) -C $(COMPONENT_PATH) clean SDKCONFIG=$(SDKCONFIG_HEADER) BUILD_DIR=$(COMPONENT_BUILD_DIR) COMPONENT=$(COMPONENT_NAME) diff --git a/components/spiffs/test_spiffs_host/main.cpp b/components/spiffs/test_spiffs_host/main.cpp index 178916eab8..0c7c351f43 100644 --- a/components/spiffs/test_spiffs_host/main.cpp +++ b/components/spiffs/test_spiffs_host/main.cpp @@ -1,3 +1,2 @@ #define CATCH_CONFIG_MAIN #include "catch.hpp" - diff --git a/components/spiffs/test_spiffs_host/partition_table.csv b/components/spiffs/test_spiffs_host/partition_table.csv index 3c2903a70d..81487dc1ea 100644 --- a/components/spiffs/test_spiffs_host/partition_table.csv +++ b/components/spiffs/test_spiffs_host/partition_table.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, spiffs, , 2M, +storage, data, spiffs, , 2M, diff --git a/components/spiffs/test_spiffs_host/sdkconfig/sdkconfig.h b/components/spiffs/test_spiffs_host/sdkconfig/sdkconfig.h index 1afb29924f..929182e5fe 100644 --- a/components/spiffs/test_spiffs_host/sdkconfig/sdkconfig.h +++ b/components/spiffs/test_spiffs_host/sdkconfig/sdkconfig.h @@ -19,4 +19,3 @@ #define CONFIG_ESPTOOLPY_FLASHSIZE "8MB" //currently use the legacy implementation, since the stubs for new HAL are not done yet #define CONFIG_SPI_FLASH_USE_LEGACY_IMPL 1 - diff --git a/components/spiffs/test_spiffs_host/test_spiffs.cpp b/components/spiffs/test_spiffs_host/test_spiffs.cpp index ce7347b3f1..ecc967e80d 100644 --- a/components/spiffs/test_spiffs_host/test_spiffs.cpp +++ b/components/spiffs/test_spiffs_host/test_spiffs.cpp @@ -254,4 +254,4 @@ TEST_CASE("can read spiffs image", "[spiffs]") check_spiffs_files(&fs, "../spiffs", path_buf); deinit_spiffs(&fs); -} \ No newline at end of file +} diff --git a/components/tcp_transport/component.mk b/components/tcp_transport/component.mk index c81b547721..064cc0608e 100644 --- a/components/tcp_transport/component.mk +++ b/components/tcp_transport/component.mk @@ -1,2 +1,2 @@ COMPONENT_ADD_INCLUDEDIRS := include -COMPONENT_PRIV_INCLUDEDIRS := private_include \ No newline at end of file +COMPONENT_PRIV_INCLUDEDIRS := private_include diff --git a/components/tcp_transport/include/esp_transport_ssl.h b/components/tcp_transport/include/esp_transport_ssl.h index 4d53d4d2e5..12e7ede19b 100644 --- a/components/tcp_transport/include/esp_transport_ssl.h +++ b/components/tcp_transport/include/esp_transport_ssl.h @@ -169,4 +169,3 @@ void esp_transport_ssl_set_psk_key_hint(esp_transport_handle_t t, const psk_hint } #endif #endif /* _ESP_TRANSPORT_SSL_H_ */ - diff --git a/components/tcp_transport/test/component.mk b/components/tcp_transport/test/component.mk index 22e49eddde..009d63d124 100644 --- a/components/tcp_transport/test/component.mk +++ b/components/tcp_transport/test/component.mk @@ -2,4 +2,4 @@ #Component Makefile # COMPONENT_PRIV_INCLUDEDIRS := ../private_include . -COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive \ No newline at end of file +COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive diff --git a/components/tcp_transport/transport_ssl.c b/components/tcp_transport/transport_ssl.c index 6fbbcdbb96..633e931dcf 100644 --- a/components/tcp_transport/transport_ssl.c +++ b/components/tcp_transport/transport_ssl.c @@ -322,4 +322,3 @@ esp_transport_handle_t esp_transport_ssl_init(void) t->_get_socket = ssl_get_socket; return t; } - diff --git a/components/tcp_transport/transport_tcp.c b/components/tcp_transport/transport_tcp.c index 87a979c9c8..a7e32e6885 100644 --- a/components/tcp_transport/transport_tcp.c +++ b/components/tcp_transport/transport_tcp.c @@ -33,7 +33,7 @@ typedef struct { int sock; } transport_tcp_t; -static int resolve_dns(const char *host, struct sockaddr_in *ip) +static int resolve_dns(const char *host, struct sockaddr_in *ip) { const struct addrinfo hints = { .ai_family = AF_INET, diff --git a/components/tcp_transport/transport_utils.c b/components/tcp_transport/transport_utils.c index 5e0a021622..1fa0e8a67f 100644 --- a/components/tcp_transport/transport_utils.c +++ b/components/tcp_transport/transport_utils.c @@ -14,4 +14,4 @@ struct timeval* esp_transport_utils_ms_to_timeval(int timeout_ms, struct timeval tv->tv_sec = timeout_ms / 1000; tv->tv_usec = (timeout_ms - (tv->tv_sec * 1000)) * 1000; return tv; -} \ No newline at end of file +} diff --git a/components/tcp_transport/transport_ws.c b/components/tcp_transport/transport_ws.c index 7a532857f1..344491d6b8 100644 --- a/components/tcp_transport/transport_ws.c +++ b/components/tcp_transport/transport_ws.c @@ -599,4 +599,3 @@ int esp_transport_ws_poll_connection_closed(esp_transport_handle_t t, int timeou return ret; } - diff --git a/components/tcpip_adapter/component.mk b/components/tcpip_adapter/component.mk index c2c4c03a1a..308f64f0ea 100644 --- a/components/tcpip_adapter/component.mk +++ b/components/tcpip_adapter/component.mk @@ -2,4 +2,3 @@ # Component Makefile # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/components/tcpip_adapter/include/tcpip_adapter_types.h b/components/tcpip_adapter/include/tcpip_adapter_types.h index 37daf4675c..3442b691d1 100644 --- a/components/tcpip_adapter/include/tcpip_adapter_types.h +++ b/components/tcpip_adapter/include/tcpip_adapter_types.h @@ -79,4 +79,4 @@ typedef esp_netif_sta_info_t tcpip_adapter_sta_info_t; } // extern "C" #endif -#endif // _TCPIP_ADAPTER_TYPES_H_ \ No newline at end of file +#endif // _TCPIP_ADAPTER_TYPES_H_ diff --git a/components/ulp/CMakeLists.txt b/components/ulp/CMakeLists.txt index 65c0839a91..3b162300b5 100644 --- a/components/ulp/CMakeLists.txt +++ b/components/ulp/CMakeLists.txt @@ -6,4 +6,4 @@ if(CONFIG_ESP32S2_ULP_COPROC_RISCV) endif() idf_component_register(SRCS ${srcs} - INCLUDE_DIRS include) \ No newline at end of file + INCLUDE_DIRS include) diff --git a/components/ulp/cmake/CMakeLists.txt b/components/ulp/cmake/CMakeLists.txt index 980d40b836..625ff97154 100644 --- a/components/ulp/cmake/CMakeLists.txt +++ b/components/ulp/cmake/CMakeLists.txt @@ -38,7 +38,7 @@ else() the toolchain, or proceed at your own risk.") endif() - set(ULP_LD_TEMPLATE ${IDF_PATH}/components/ulp/ld/esp32.ulp.ld) + set(ULP_LD_TEMPLATE ${IDF_PATH}/components/ulp/ld/esp32.ulp.ld) endif() @@ -70,14 +70,14 @@ add_custom_target(${ULP_APP_NAME}_ld_script if(ULP_COCPU_IS_RISCV) #risc-v ulp uses extra files for building: - list(APPEND ULP_S_SOURCES + list(APPEND ULP_S_SOURCES "${IDF_PATH}/components/ulp/ulp_riscv/start.S" "${IDF_PATH}/components/ulp/ulp_riscv/ulp_riscv_utils.c") #dummy loop to force pre-processed linker file generation: foreach(ulp_s_source ${ULP_S_SOURCES}) set(noop ${ulp_s_source}) - + add_custom_command(OUTPUT ${noop} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND cmake -E echo @@ -88,7 +88,7 @@ if(ULP_COCPU_IS_RISCV) endforeach() #creates the executable: - add_executable(${ULP_APP_NAME} ${ULP_S_SOURCES}) + add_executable(${ULP_APP_NAME} ${ULP_S_SOURCES}) set(DUMP_SYMBOL_ARGS -g) set(MAP_GEN_EXTRA_ARGS --riscv) set(EXTRA_LINKER_ARGS "-nostartfiles -Wl,--gc-sections -Xlinker \ @@ -114,7 +114,7 @@ else() "-al=${CMAKE_CURRENT_BINARY_DIR}/${ulp_ps_source}.lst") list(APPEND ULP_PS_SOURCES ${ulp_ps_output}) endforeach() - + # Create an executable add_executable(${ULP_APP_NAME} ${ULP_PS_SOURCES}) set(DUMP_SYMBOL_ARGS -g -f posix) diff --git a/components/ulp/cmake/toolchain-esp32s2-ulp-riscv.cmake b/components/ulp/cmake/toolchain-esp32s2-ulp-riscv.cmake index 3c92b4c386..15d6145ded 100644 --- a/components/ulp/cmake/toolchain-esp32s2-ulp-riscv.cmake +++ b/components/ulp/cmake/toolchain-esp32s2-ulp-riscv.cmake @@ -15,4 +15,4 @@ endif() set(CMAKE_C_FLAGS "-Os -march=rv32imc -mdiv -fdata-sections -ffunction-sections") set(CMAKE_ASM_FLAGS "-march=rv32imc -mdiv -x assembler-with-cpp -fdata-sections -ffunction-sections") -set(CMAKE_EXE_LINKER_FLAGS "-march=rv32imc --specs=nano.specs --specs=nosys.specs") \ No newline at end of file +set(CMAKE_EXE_LINKER_FLAGS "-march=rv32imc --specs=nano.specs --specs=nosys.specs") diff --git a/components/ulp/cmake/toolchain-esp32s2-ulp.cmake b/components/ulp/cmake/toolchain-esp32s2-ulp.cmake index 1c51fb0bba..4383d5432a 100644 --- a/components/ulp/cmake/toolchain-esp32s2-ulp.cmake +++ b/components/ulp/cmake/toolchain-esp32s2-ulp.cmake @@ -12,4 +12,4 @@ set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "${CMAKE_ASM${ASM_DIALECT}_COMPILER} -o -c ") set(CMAKE_EXE_LINKER_FLAGS "-A elf32-esp32s2ulp -nostdlib" CACHE STRING "ULP Linker Base Flags") set(CMAKE_ASM_LINK_EXECUTABLE "${CMAKE_LINKER} \ - -o ") \ No newline at end of file + -o ") diff --git a/components/ulp/component_ulp_common.mk b/components/ulp/component_ulp_common.mk index cf6292998f..54eda2acbc 100644 --- a/components/ulp/component_ulp_common.mk +++ b/components/ulp/component_ulp_common.mk @@ -46,7 +46,7 @@ $(ULP_LD_SCRIPT): $(ULP_LD_TEMPLATE) $(CC) $(CPPFLAGS) -MT $(ULP_LD_SCRIPT) -E -P -xc -o $@ $(ULP_PREPROCESSOR_ARGS) $< # Generate preprocessed assembly files. -# To inspect these preprocessed files, add a ".PRECIOUS: %.ulp.pS" rule. +# To inspect these preprocessed files, add a ".PRECIOUS: %.ulp.pS" rule. %.ulp.pS: $(COMPONENT_PATH)/ulp/%.S $(summary) CPP $(patsubst $(PWD)/%,%,$<) $(CC) $(CPPFLAGS) -MT $(patsubst %.ulp.pS,%.ulp.o,$@) -E -P -xc -o $@ $(ULP_PREPROCESSOR_ARGS) $< @@ -65,13 +65,13 @@ $(ULP_ELF): $(ULP_OBJECTS) $(ULP_LD_SCRIPT) $(ULP_SYM): $(ULP_ELF) $(ULP_NM) -g -f posix $< > $@ -# Dump the binary for inclusion into the project +# Dump the binary for inclusion into the project $(COMPONENT_BUILD_DIR)/$(ULP_BIN): $(ULP_ELF) $(summary) ULP_BIN $(patsubst $(PWD)/%,%,$@) $(ULP_OBJCOPY) -O binary $< $@ # Left and right side of the rule are the same, but the right side -# is given as an absolute path. +# is given as an absolute path. # (Make can not resolve such things automatically) $(ULP_EXPORTS_HEADER): $(COMPONENT_BUILD_DIR)/$(ULP_EXPORTS_HEADER) @@ -87,16 +87,16 @@ $(COMPONENT_NAME)_ulp_mapgen_intermediate: $(ULP_SYM) $(ULP_MAP_GEN) -s $(ULP_SYM) -o $(ULP_EXPORTS_LD:.ld=) # Building the component separately from the project should result in -# ULP files being built. +# ULP files being built. build: $(COMPONENT_BUILD_DIR)/$(ULP_EXPORTS_HEADER) \ $(COMPONENT_BUILD_DIR)/$(ULP_EXPORTS_LD) \ $(COMPONENT_BUILD_DIR)/$(ULP_BIN) # Objects listed as being dependent on $(ULP_EXPORTS_HEADER) must also -# depend on $(ULP_SYM), to order build steps correctly. +# depend on $(ULP_SYM), to order build steps correctly. $(ULP_EXP_DEP_OBJECTS) : $(ULP_EXPORTS_HEADER) $(ULP_SYM) -# Finally, set all the variables processed by the build system. +# Finally, set all the variables processed by the build system. COMPONENT_EXTRA_CLEAN += $(ULP_OBJECTS) \ $(ULP_LD_SCRIPT) \ $(ULP_PREPROCESSED) \ diff --git a/components/ulp/include/esp32/ulp.h b/components/ulp/include/esp32/ulp.h index 309f09b8d6..a3fc455f90 100644 --- a/components/ulp/include/esp32/ulp.h +++ b/components/ulp/include/esp32/ulp.h @@ -1009,8 +1009,8 @@ static inline uint32_t SOC_REG_TO_ULP_PERIPH_SEL(uint32_t reg) { /** * Perform an I2C transaction with a slave device. * I_I2C_READ and I_I2C_WRITE are provided for convenience, instead of using this directly. - * - * Slave address (in 7-bit format) has to be set in advance into SENS_I2C_SLAVE_ADDRx register field, where x == slave_sel. + * + * Slave address (in 7-bit format) has to be set in advance into SENS_I2C_SLAVE_ADDRx register field, where x == slave_sel. * For read operations, 8 bits of read result is stored into R0 register. * For write operations, val will be written to sub_addr at [high_bit:low_bit]. Bits outside of this range are masked. */ @@ -1026,14 +1026,14 @@ static inline uint32_t SOC_REG_TO_ULP_PERIPH_SEL(uint32_t reg) { /** * Read a byte from the sub address of an I2C slave, and store the result in R0. - * - * Slave address (in 7-bit format) has to be set in advance into SENS_I2C_SLAVE_ADDRx register field, where x == slave_sel. + * + * Slave address (in 7-bit format) has to be set in advance into SENS_I2C_SLAVE_ADDRx register field, where x == slave_sel. */ #define I_I2C_READ(slave_sel, sub_addr) I_I2C_RW(sub_addr, 0, 0, 0, slave_sel, SUB_OPCODE_I2C_RD) /** * Write a byte to the sub address of an I2C slave. - * + * * Slave address (in 7-bit format) has to be set in advance into SENS_I2C_SLAVE_ADDRx register field, where x == slave_sel. */ #define I_I2C_WRITE(slave_sel, sub_addr, val) I_I2C_RW(sub_addr, val, 0, 7, slave_sel, SUB_OPCODE_I2C_WR) diff --git a/components/ulp/include/esp32s2/ulp_riscv.h b/components/ulp/include/esp32s2/ulp_riscv.h index 6b1682d353..f98f2acdac 100644 --- a/components/ulp/include/esp32s2/ulp_riscv.h +++ b/components/ulp/include/esp32s2/ulp_riscv.h @@ -28,7 +28,7 @@ esp_err_t ulp_riscv_run(void); /** * @brief Load ULP-RISC-V program binary into RTC memory - * + * * Different than ULP FSM, the binary program has no special format, it is the ELF * file generated by RISC-V toolchain converted to binary format using objcopy. * @@ -39,6 +39,6 @@ esp_err_t ulp_riscv_run(void); * @param program_size_bytes size of the program binary * @return * - ESP_OK on success - * - ESP_ERR_INVALID_SIZE if program_size_bytes is more than 8KiB + * - ESP_ERR_INVALID_SIZE if program_size_bytes is more than 8KiB */ esp_err_t ulp_riscv_load_binary(const uint8_t* program_binary, size_t program_size_bytes); diff --git a/components/ulp/include/ulp_common.h b/components/ulp/include/ulp_common.h index d149df610d..7ca7b85943 100644 --- a/components/ulp/include/ulp_common.h +++ b/components/ulp/include/ulp_common.h @@ -86,7 +86,7 @@ esp_err_t ulp_run(uint32_t entry_point); * * ULP coprocessor starts running the program when the wakeup timer counts up * to a given value (called period). There are 5 period values which can be - * programmed into SENS_ULP_CP_SLEEP_CYCx_REG registers, x = 0..4 for ESP32, and + * programmed into SENS_ULP_CP_SLEEP_CYCx_REG registers, x = 0..4 for ESP32, and * one period value which can be programmed into RTC_CNTL_ULP_CP_TIMER_1_REG register for ESP32-S2. * By default, for ESP32, wakeup timer will use the period set into SENS_ULP_CP_SLEEP_CYC0_REG, * i.e. period number 0. ULP program code can use SLEEP instruction to select @@ -94,7 +94,7 @@ esp_err_t ulp_run(uint32_t entry_point); * * However, please note that SLEEP instruction issued (from ULP program) while the system * is in deep sleep mode does not have effect, and sleep cycle count 0 is used. - * + * * For ESP32-s2 the SLEEP instruction not exist. Instead a WAKE instruction will be used. * * @param period_index wakeup period setting number (0 - 4) diff --git a/components/ulp/ld/esp32.ulp.ld b/components/ulp/ld/esp32.ulp.ld index 6dcd667252..4fd7499b62 100644 --- a/components/ulp/ld/esp32.ulp.ld +++ b/components/ulp/ld/esp32.ulp.ld @@ -4,7 +4,7 @@ #define LOCAL_ULP_COPROC_RESERVE_MEM CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM #else #define LOCAL_ULP_COPROC_RESERVE_MEM CONFIG_ESP32_ULP_COPROC_RESERVE_MEM -#endif +#endif #define ULP_BIN_MAGIC 0x00706c75 #define HEADER_SIZE 12 @@ -33,7 +33,7 @@ SECTIONS .header : AT(0) { LONG(ULP_BIN_MAGIC) - SHORT(LOADADDR(.text)) + SHORT(LOADADDR(.text)) SHORT(SIZEOF(.text)) SHORT(SIZEOF(.data)) SHORT(SIZEOF(.bss)) diff --git a/components/ulp/ld/esp32s2.ulp.riscv.ld b/components/ulp/ld/esp32s2.ulp.riscv.ld index 44037f71e4..983481df29 100644 --- a/components/ulp/ld/esp32s2.ulp.riscv.ld +++ b/components/ulp/ld/esp32s2.ulp.riscv.ld @@ -10,7 +10,7 @@ MEMORY SECTIONS { . = ORIGIN(ram); - .text : + .text : { *(.text) *(.text*) @@ -22,7 +22,7 @@ SECTIONS *(.data*) *(.sdata) *(.sdata*) - } > ram + } > ram .bss ALIGN(4) : { diff --git a/components/ulp/test/esp32/test_ulp.c b/components/ulp/test/esp32/test_ulp.c index 2d22deed1f..bfb9355932 100644 --- a/components/ulp/test/esp32/test_ulp.c +++ b/components/ulp/test/esp32/test_ulp.c @@ -458,4 +458,3 @@ TEST_CASE("can use ADC in deep sleep", "[ulp][ignore]") esp_sleep_enable_timer_wakeup(4000000); esp_deep_sleep_start(); } - diff --git a/components/ulp/test/esp32s2/test_ulp_riscv.c b/components/ulp/test/esp32s2/test_ulp_riscv.c index 1c2b2c1fe5..07c4e48c97 100644 --- a/components/ulp/test/esp32s2/test_ulp_riscv.c +++ b/components/ulp/test/esp32s2/test_ulp_riscv.c @@ -44,7 +44,7 @@ static bool firmware_loaded = false; static void load_and_start_ulp_firmware(void) { if (!firmware_loaded) { - TEST_ASSERT(ulp_riscv_load_binary(ulp_main_bin_start, + TEST_ASSERT(ulp_riscv_load_binary(ulp_main_bin_start, (ulp_main_bin_end - ulp_main_bin_start)) == ESP_OK); TEST_ASSERT(ulp_set_wakeup_period(0, 1000000) == ESP_OK); @@ -55,7 +55,7 @@ static void load_and_start_ulp_firmware(void) } TEST_CASE("ULP-RISC-V and main CPU are able to exchange data", "[ulp][ignore]") -{ +{ const uint32_t test_data = 0x12345678; load_and_start_ulp_firmware(); @@ -67,7 +67,7 @@ TEST_CASE("ULP-RISC-V and main CPU are able to exchange data", "[ulp][ignore]") TEST_ASSERT(esp_light_sleep_start() == ESP_OK); TEST_ASSERT(esp_sleep_get_wakeup_cause() == ESP_SLEEP_WAKEUP_ULP); TEST_ASSERT(ulp_main_cpu_reply == RISCV_COMMAND_OK); - + printf("data out: 0x%X, expected: 0x%X \n", ulp_riscv_test_data_out, test_data); TEST_ASSERT(test_data == ulp_riscv_test_data_out); @@ -90,4 +90,4 @@ TEST_CASE("ULP-RISC-V is able to wakeup main CPU from deep sleep", "[ulp][reset= ulp_main_cpu_command = RISCV_DEEP_SLEEP_WAKEUP_TEST; esp_deep_sleep_start(); UNITY_TEST_FAIL(__LINE__, "Should not get here!"); -} \ No newline at end of file +} diff --git a/components/ulp/test/ulp_riscv/test_main.c b/components/ulp/test/ulp_riscv/test_main.c index f41befdb02..1ee4d6b22b 100644 --- a/components/ulp/test/ulp_riscv/test_main.c +++ b/components/ulp/test/ulp_riscv/test_main.c @@ -38,7 +38,7 @@ volatile riscv_test_command_reply_t main_cpu_reply = RISCV_COMMAND_INVALID; volatile uint32_t riscv_test_data_in = 0; volatile uint32_t riscv_test_data_out = 0; -void handle_commands(riscv_test_commands_t cmd) +void handle_commands(riscv_test_commands_t cmd) { switch (cmd) { case RISCV_READ_WRITE_TEST: @@ -67,4 +67,4 @@ int main (void) /* ulp_riscv_shutdown() is called automatically when main exits */ return 0; -} \ No newline at end of file +} diff --git a/components/ulp/toolchain_ulp_version.mk b/components/ulp/toolchain_ulp_version.mk index 7de950c419..d835600e43 100644 --- a/components/ulp/toolchain_ulp_version.mk +++ b/components/ulp/toolchain_ulp_version.mk @@ -1 +1 @@ -SUPPORTED_ULP_ASSEMBLER_VERSION = 2.28.51-esp-20191205 \ No newline at end of file +SUPPORTED_ULP_ASSEMBLER_VERSION = 2.28.51-esp-20191205 diff --git a/components/ulp/ulp.c b/components/ulp/ulp.c index 8bce618d8d..150ab76eaf 100644 --- a/components/ulp/ulp.c +++ b/components/ulp/ulp.c @@ -74,13 +74,13 @@ esp_err_t ulp_run(uint32_t entry_point) CLEAR_PERI_REG_MASK(RTC_CNTL_ULP_CP_TIMER_REG, RTC_CNTL_ULP_CP_SLP_TIMER_EN); // wait for at least 1 RTC_SLOW_CLK cycle esp_rom_delay_us(10); - // set entry point + // set entry point REG_SET_FIELD(RTC_CNTL_ULP_CP_TIMER_REG, RTC_CNTL_ULP_CP_PC_INIT, entry_point); SET_PERI_REG_MASK(RTC_CNTL_COCPU_CTRL_REG, RTC_CNTL_COCPU_SEL); // Select ULP_TIMER trigger target for ULP. // start ULP clock gate. SET_PERI_REG_MASK(RTC_CNTL_ULP_CP_CTRL_REG ,RTC_CNTL_ULP_CP_CLK_FO); // ULP FSM sends the DONE signal. - CLEAR_PERI_REG_MASK(RTC_CNTL_COCPU_CTRL_REG, RTC_CNTL_COCPU_DONE_FORCE); + CLEAR_PERI_REG_MASK(RTC_CNTL_COCPU_CTRL_REG, RTC_CNTL_COCPU_DONE_FORCE); /* Set the number of cycles of ULP_TIMER sleep, the wait time required to start ULP */ REG_SET_FIELD(RTC_CNTL_ULP_CP_TIMER_REG, RTC_CNTL_ULP_CP_TIMER_SLP_CYCLE, 100); /* Clear interrupt COCPU status */ @@ -172,7 +172,7 @@ esp_err_t ulp_set_wakeup_period(size_t period_index, uint32_t period_us) } uint32_t slow_clk_period = rtc_clk_cal(cal_clk, 100); uint64_t period_cycles = rtc_time_us_to_slowclk(period_us_64, slow_clk_period); - + REG_SET_FIELD(RTC_CNTL_ULP_CP_TIMER_1_REG, RTC_CNTL_ULP_CP_TIMER_SLP_CYCLE, ((uint32_t)period_cycles)); #endif return ESP_OK; diff --git a/components/ulp/ulp_macro.c b/components/ulp/ulp_macro.c index 919519ebbd..63b3830f00 100644 --- a/components/ulp/ulp_macro.c +++ b/components/ulp/ulp_macro.c @@ -124,8 +124,8 @@ static int reloc_sort_func(const void* p_lhs, const void* p_rhs) * Label address is recorded, and all subsequent * entries which point to the same label number * are processed. For each entry, correct offset - * or absolute address is calculated, depending on - * type and subtype, and written into the appropriate + * or absolute address is calculated, depending on + * type and subtype, and written into the appropriate * field of the instruction. * */ diff --git a/components/ulp/ulp_riscv.c b/components/ulp/ulp_riscv.c index 880688d845..31f3269c36 100644 --- a/components/ulp/ulp_riscv.c +++ b/components/ulp/ulp_riscv.c @@ -45,16 +45,16 @@ esp_err_t ulp_riscv_run(void) /* Select RISC-V as the ULP_TIMER trigger target. */ CLEAR_PERI_REG_MASK(RTC_CNTL_COCPU_CTRL_REG, RTC_CNTL_COCPU_SEL); /* Select ULP_TIMER sleep trigger source. 1: REG_COCPU_DONE; 0: ULP END.*/ - SET_PERI_REG_MASK(RTC_CNTL_COCPU_CTRL_REG, RTC_CNTL_COCPU_DONE); - + SET_PERI_REG_MASK(RTC_CNTL_COCPU_CTRL_REG, RTC_CNTL_COCPU_DONE); + /* start ULP_TIMER */ - CLEAR_PERI_REG_MASK(RTC_CNTL_ULP_CP_CTRL_REG, RTC_CNTL_ULP_CP_FORCE_START_TOP); + CLEAR_PERI_REG_MASK(RTC_CNTL_ULP_CP_CTRL_REG, RTC_CNTL_ULP_CP_FORCE_START_TOP); SET_PERI_REG_MASK(RTC_CNTL_ULP_CP_TIMER_REG, RTC_CNTL_ULP_CP_SLP_TIMER_EN); return ESP_OK; } -esp_err_t ulp_riscv_load_binary(const uint8_t* program_binary, size_t program_size_bytes) +esp_err_t ulp_riscv_load_binary(const uint8_t* program_binary, size_t program_size_bytes) { if (program_binary == NULL) { return ESP_ERR_INVALID_ARG; @@ -70,4 +70,4 @@ esp_err_t ulp_riscv_load_binary(const uint8_t* program_binary, size_t program_si memcpy(base, program_binary, program_size_bytes); return ESP_OK; -} \ No newline at end of file +} diff --git a/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv.h b/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv.h index 6e3a1c4b9e..9102333f26 100644 --- a/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv.h +++ b/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv.h @@ -11,7 +11,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and -#pragma once +#pragma once #ifdef __cplusplus extern "C" { diff --git a/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv_register_ops.h b/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv_register_ops.h index 0db4985155..519aa31b47 100644 --- a/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv_register_ops.h +++ b/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv_register_ops.h @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#pragma once +#pragma once #define ULP_RISCV_REGISTER_OPS #ifdef __cplusplus @@ -23,14 +23,14 @@ extern "C" { //Registers Operation {{ /* - * When COCPU accesses the RTC register, it needs to convert the access address. + * When COCPU accesses the RTC register, it needs to convert the access address. * When COCPU accesses the RTC memory, dont need to convert the access address. */ #define WRITE_RTC_MEM(addr, val) (*((volatile int*)(addr))) = (int) (val) #define READ_RTC_MEM(addr) (*(volatile int*)(addr)) -/* - * When COCPU accesses the RTC register, it needs to convert the access address. +/* + * When COCPU accesses the RTC register, it needs to convert the access address. * When COCPU accesses the RTC memory, dont need to convert the access address. */ #define RISCV_REG_CONV(addr) (((addr&0xffff)<<3 & 0xe000) | (addr & 0x1fff) | 0x8000) @@ -126,9 +126,9 @@ extern "C" { }) //get bits of register controlled by highest bit and lowest bit -// #define GET_PERI_REG_BITS(reg, hipos,lowpos) ({ -// ASSERT_IF_DPORT_REG((reg), GET_PERI_REG_BITS); -// ((READ_PERI_REG(reg)>>(lowpos))&((1UL<<((hipos)-(lowpos)+1))-1)); +// #define GET_PERI_REG_BITS(reg, hipos,lowpos) ({ +// ASSERT_IF_DPORT_REG((reg), GET_PERI_REG_BITS); +// ((READ_PERI_REG(reg)>>(lowpos))&((1UL<<((hipos)-(lowpos)+1))-1)); // }) #define GET_PERI_REG_BITS(reg, bit_map, shift) ((READ_PERI_REG(reg))&((bit_map)<<(shift)))>>shift diff --git a/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv_utils.h b/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv_utils.h index 61a224c2af..b92bfba1b4 100644 --- a/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv_utils.h +++ b/components/ulp/ulp_riscv/include/ulp_riscv/ulp_riscv_utils.h @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#pragma once +#pragma once #ifdef __cplusplus extern "C" { @@ -30,13 +30,13 @@ extern "C" { void ulp_riscv_wakeup_main_processor(void); /** - * @brief Rescues the cpu from monitor mode - * - * This function cancels the low power mode + * @brief Rescues the cpu from monitor mode + * + * This function cancels the low power mode * of the ULP-RISC-V, should be called * every time the co-processor starts. - * - * @note by convenience this function is + * + * @note by convenience this function is * automatically called in startup code. */ void ulp_riscv_rescue_from_monitor(void); @@ -44,20 +44,20 @@ void ulp_riscv_rescue_from_monitor(void); /** * @brief Finishes the ULP program and powers down the ULP * until next wakeup. - * + * * @note This function does not return. After called it will * fully reset the ULP. - * - * @note Returning from main() in the ULP program results on + * + * @note Returning from main() in the ULP program results on * calling this function. - * + * * This function should be called after the ULP program Finishes - * its processing, it will trigger the timer for the next wakeup, - * put the ULP in monitor mode and triggers a reset. - * + * its processing, it will trigger the timer for the next wakeup, + * put the ULP in monitor mode and triggers a reset. + * */ void __attribute__((noreturn)) ulp_riscv_shutdown(void); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/components/ulp/ulp_riscv/start.S b/components/ulp/ulp_riscv/start.S index 8ffa74d06b..1da9b755b0 100644 --- a/components/ulp/ulp_riscv/start.S +++ b/components/ulp/ulp_riscv/start.S @@ -18,4 +18,4 @@ __start: call main call ulp_riscv_shutdown loop: - j loop \ No newline at end of file + j loop diff --git a/components/ulp/ulp_riscv/ulp_riscv_utils.c b/components/ulp/ulp_riscv/ulp_riscv_utils.c index 88eb9c28fb..c586197706 100644 --- a/components/ulp/ulp_riscv/ulp_riscv_utils.c +++ b/components/ulp/ulp_riscv/ulp_riscv_utils.c @@ -23,7 +23,7 @@ void ulp_riscv_rescue_from_monitor(void) void ulp_riscv_wakeup_main_processor(void) { - SET_PERI_REG_MASK(RTC_CNTL_STATE0_REG, RTC_CNTL_SW_CPU_INT); + SET_PERI_REG_MASK(RTC_CNTL_STATE0_REG, RTC_CNTL_SW_CPU_INT); } void ulp_riscv_shutdown(void) @@ -33,7 +33,7 @@ void ulp_riscv_shutdown(void) /* suspends the ulp operation*/ SET_PERI_REG_MASK(RTC_CNTL_COCPU_CTRL_REG, RTC_CNTL_COCPU_DONE); - + /* Resets the processor */ SET_PERI_REG_MASK(RTC_CNTL_COCPU_CTRL_REG, RTC_CNTL_COCPU_SHUT_RESET_EN); diff --git a/components/unity/CMakeLists.txt b/components/unity/CMakeLists.txt index 54cd33082a..ece69db6df 100644 --- a/components/unity/CMakeLists.txt +++ b/components/unity/CMakeLists.txt @@ -1,4 +1,4 @@ -set(srcs +set(srcs "unity/src/unity.c" "unity_port_esp32.c") diff --git a/components/unity/Kconfig b/components/unity/Kconfig index e9efc6381e..4a8779fc92 100644 --- a/components/unity/Kconfig +++ b/components/unity/Kconfig @@ -50,4 +50,4 @@ menu "Unity unit testing library" jumping back to the test menu. The jumping is usually occurs in assert functions such as TEST_ASSERT, TEST_FAIL etc. -endmenu # "Unity unit testing library" \ No newline at end of file +endmenu # "Unity unit testing library" diff --git a/components/vfs/sdkconfig.rename b/components/vfs/sdkconfig.rename index 27dd829327..bdf8ffaafc 100644 --- a/components/vfs/sdkconfig.rename +++ b/components/vfs/sdkconfig.rename @@ -4,4 +4,4 @@ CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN CONFIG_VFS_SEMIHOSTFS_HOST_PATH_MAX_LEN CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS CONFIG_SUPPORT_TERMIOS CONFIG_VFS_SUPPORT_TERMIOS -CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT \ No newline at end of file +CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT diff --git a/components/vfs/test/test_vfs_uart.c b/components/vfs/test/test_vfs_uart.c index 0dbcf84ae9..26b9240fc5 100644 --- a/components/vfs/test/test_vfs_uart.c +++ b/components/vfs/test/test_vfs_uart.c @@ -98,7 +98,7 @@ TEST_CASE("CRs are removed from the stdin correctly", "[vfs]") rb = fread(dst, 1, 6, stdin); // ask for 6 TEST_ASSERT_EQUAL(6, rb); // get 6 - + TEST_ASSERT_EQUAL_UINT8_ARRAY("1234567890\n", buf, 11); dst += rb; @@ -117,7 +117,7 @@ TEST_CASE("CRs are removed from the stdin correctly", "[vfs]") TEST_ASSERT_EQUAL(2, rb); // get two characters TEST_ASSERT_EQUAL_UINT8_ARRAY("\r1", dst, 2); dst += rb; - + fwrite_str_loopback(send_str + 13, 6); // Send the rest vTaskDelay(10 / portTICK_PERIOD_MS); diff --git a/components/wear_levelling/CMakeLists.txt b/components/wear_levelling/CMakeLists.txt index 1a0d775975..e5d39463be 100644 --- a/components/wear_levelling/CMakeLists.txt +++ b/components/wear_levelling/CMakeLists.txt @@ -7,4 +7,4 @@ idf_component_register(SRCS "Partition.cpp" "wear_levelling.cpp" INCLUDE_DIRS include PRIV_INCLUDE_DIRS private_include - REQUIRES spi_flash) \ No newline at end of file + REQUIRES spi_flash) diff --git a/components/wear_levelling/WL_Flash.cpp b/components/wear_levelling/WL_Flash.cpp index 36fe6b131c..b2ee84db12 100644 --- a/components/wear_levelling/WL_Flash.cpp +++ b/components/wear_levelling/WL_Flash.cpp @@ -23,7 +23,7 @@ static const char *TAG = "wl_flash"; #ifndef WL_CFG_CRC_CONST #define WL_CFG_CRC_CONST UINT32_MAX -#endif // WL_CFG_CRC_CONST +#endif // WL_CFG_CRC_CONST #define WL_RESULT_CHECK(result) \ if (result != ESP_OK) { \ diff --git a/components/wear_levelling/crc32.h b/components/wear_levelling/crc32.h index 157fbb838b..d1f8977ff7 100644 --- a/components/wear_levelling/crc32.h +++ b/components/wear_levelling/crc32.h @@ -23,4 +23,4 @@ class crc32 public: static unsigned int crc32_le(unsigned int crc, unsigned char const *buf, unsigned int len); }; -#endif // _crc32_H_ \ No newline at end of file +#endif // _crc32_H_ diff --git a/components/wear_levelling/private_include/Flash_Access.h b/components/wear_levelling/private_include/Flash_Access.h index d06f9434cf..5c28d48c73 100644 --- a/components/wear_levelling/private_include/Flash_Access.h +++ b/components/wear_levelling/private_include/Flash_Access.h @@ -41,4 +41,4 @@ public: virtual ~Flash_Access() {}; }; -#endif // _Flash_Access_H_ \ No newline at end of file +#endif // _Flash_Access_H_ diff --git a/components/wear_levelling/private_include/Partition.h b/components/wear_levelling/private_include/Partition.h index cfcb035724..e03c32be94 100644 --- a/components/wear_levelling/private_include/Partition.h +++ b/components/wear_levelling/private_include/Partition.h @@ -33,4 +33,3 @@ protected: }; #endif // _Partition_H_ - diff --git a/components/wear_levelling/private_include/SPI_Flash.h b/components/wear_levelling/private_include/SPI_Flash.h index 4bf0b95014..21e9ab8301 100644 --- a/components/wear_levelling/private_include/SPI_Flash.h +++ b/components/wear_levelling/private_include/SPI_Flash.h @@ -23,4 +23,4 @@ public: ~SPI_Flash() override; }; -#endif // _SPI_Flash_H_ \ No newline at end of file +#endif // _SPI_Flash_H_ diff --git a/components/wear_levelling/private_include/WL_Config.h b/components/wear_levelling/private_include/WL_Config.h index 0a53106912..7445c49647 100644 --- a/components/wear_levelling/private_include/WL_Config.h +++ b/components/wear_levelling/private_include/WL_Config.h @@ -45,4 +45,4 @@ typedef struct ALIGNED_(16) WL_Config_s { /*!< Size of wl_config_t structure sho static_assert(sizeof(wl_config_t) % 16 == 0, "Size of wl_config_t structure should be compatible with flash encryption"); #endif // _MSC_VER -#endif // _WL_Config_H_ \ No newline at end of file +#endif // _WL_Config_H_ diff --git a/components/wear_levelling/private_include/WL_Ext_Cfg.h b/components/wear_levelling/private_include/WL_Ext_Cfg.h index 363f67743f..928bc6e547 100644 --- a/components/wear_levelling/private_include/WL_Ext_Cfg.h +++ b/components/wear_levelling/private_include/WL_Ext_Cfg.h @@ -19,4 +19,4 @@ typedef struct WL_Ext_Cfg_s : public WL_Config_s { uint32_t fat_sector_size; /*!< virtual sector size*/ } wl_ext_cfg_t; -#endif // _WL_Ext_Cfg_H_ \ No newline at end of file +#endif // _WL_Ext_Cfg_H_ diff --git a/components/wear_levelling/private_include/WL_Ext_Perf.h b/components/wear_levelling/private_include/WL_Ext_Perf.h index 580bf2d47f..6d5d9de67a 100644 --- a/components/wear_levelling/private_include/WL_Ext_Perf.h +++ b/components/wear_levelling/private_include/WL_Ext_Perf.h @@ -43,4 +43,4 @@ protected: }; -#endif // _WL_Ext_Perf_H_ \ No newline at end of file +#endif // _WL_Ext_Perf_H_ diff --git a/components/wear_levelling/private_include/WL_Ext_Safe.h b/components/wear_levelling/private_include/WL_Ext_Safe.h index 9a6f1488a5..c1620edff5 100644 --- a/components/wear_levelling/private_include/WL_Ext_Safe.h +++ b/components/wear_levelling/private_include/WL_Ext_Safe.h @@ -39,4 +39,4 @@ protected: esp_err_t recover(); }; -#endif // _WL_Ext_Safe_H_ \ No newline at end of file +#endif // _WL_Ext_Safe_H_ diff --git a/components/wear_levelling/test/CMakeLists.txt b/components/wear_levelling/test/CMakeLists.txt index cf9bdf4bf3..367b056c84 100644 --- a/components/wear_levelling/test/CMakeLists.txt +++ b/components/wear_levelling/test/CMakeLists.txt @@ -2,4 +2,4 @@ idf_component_register(SRC_DIRS . PRIV_INCLUDE_DIRS . PRIV_REQUIRES cmock test_utils wear_levelling EMBED_FILES test_partition_v1.bin - ) \ No newline at end of file + ) diff --git a/components/wear_levelling/test_wl_host/Makefile b/components/wear_levelling/test_wl_host/Makefile index 40e517445a..4b48d492af 100644 --- a/components/wear_levelling/test_wl_host/Makefile +++ b/components/wear_levelling/test_wl_host/Makefile @@ -16,7 +16,7 @@ SPI_FLASH_SIM_LIB := libspi_flash.a include Makefile.files all: test - + ifndef SDKCONFIG SDKCONFIG_DIR := $(dir $(realpath sdkconfig/sdkconfig.h)) diff --git a/components/wear_levelling/test_wl_host/component.mk b/components/wear_levelling/test_wl_host/component.mk index 82dea0b0cf..928f5343aa 100644 --- a/components/wear_levelling/test_wl_host/component.mk +++ b/components/wear_levelling/test_wl_host/component.mk @@ -14,4 +14,4 @@ CLEAN_FILES := component_project_vars.mk clean: $(summary) RM $(CLEAN_FILES) rm -f $(CLEAN_FILES) - $(MAKE) -C $(COMPONENT_PATH) clean SDKCONFIG=$(SDKCONFIG_HEADER) BUILD_DIR=$(COMPONENT_BUILD_DIR) COMPONENT=$(COMPONENT_NAME) \ No newline at end of file + $(MAKE) -C $(COMPONENT_PATH) clean SDKCONFIG=$(SDKCONFIG_HEADER) BUILD_DIR=$(COMPONENT_BUILD_DIR) COMPONENT=$(COMPONENT_NAME) diff --git a/components/wear_levelling/test_wl_host/main.cpp b/components/wear_levelling/test_wl_host/main.cpp index 063e87874e..0c7c351f43 100644 --- a/components/wear_levelling/test_wl_host/main.cpp +++ b/components/wear_levelling/test_wl_host/main.cpp @@ -1,2 +1,2 @@ #define CATCH_CONFIG_MAIN -#include "catch.hpp" \ No newline at end of file +#include "catch.hpp" diff --git a/components/wear_levelling/test_wl_host/partition_table.csv b/components/wear_levelling/test_wl_host/partition_table.csv index f6383e46d4..a7a098250b 100644 --- a/components/wear_levelling/test_wl_host/partition_table.csv +++ b/components/wear_levelling/test_wl_host/partition_table.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, , , 1M, \ No newline at end of file +storage, data, , , 1M, diff --git a/components/wear_levelling/test_wl_host/sdkconfig/sdkconfig.h b/components/wear_levelling/test_wl_host/sdkconfig/sdkconfig.h index f9df47d6c2..7ed2f9eecb 100644 --- a/components/wear_levelling/test_wl_host/sdkconfig/sdkconfig.h +++ b/components/wear_levelling/test_wl_host/sdkconfig/sdkconfig.h @@ -6,4 +6,3 @@ #define CONFIG_ESPTOOLPY_FLASHSIZE "8MB" //currently use the legacy implementation, since the stubs for new HAL are not done yet #define CONFIG_SPI_FLASH_USE_LEGACY_IMPL 1 - diff --git a/components/wear_levelling/test_wl_host/test_wl.cpp b/components/wear_levelling/test_wl_host/test_wl.cpp index 32993876ca..54390c8920 100644 --- a/components/wear_levelling/test_wl_host/test_wl.cpp +++ b/components/wear_levelling/test_wl_host/test_wl.cpp @@ -135,7 +135,7 @@ TEST_CASE("power down test", "[wear_levelling]") // Perform test int32_t max_count = 100; int32_t max_check_count = TEST_COUNT_MAX; - + printf("used_sectors_count=%d\n", max_check_count); for (int32_t k = 0; k < max_check_count; k++) { @@ -207,4 +207,4 @@ TEST_CASE("power down test", "[wear_levelling]") // Unmount result = wl_unmount(wl_handle); REQUIRE(result == ESP_OK); -} \ No newline at end of file +} diff --git a/components/wifi_provisioning/component.mk b/components/wifi_provisioning/component.mk index 66a43c3f24..5a4b60459f 100644 --- a/components/wifi_provisioning/component.mk +++ b/components/wifi_provisioning/component.mk @@ -7,4 +7,3 @@ ifndef CONFIG_BT_BLUEDROID_ENABLED COMPONENT_OBJEXCLUDE := src/scheme_ble.o endif endif - diff --git a/components/wifi_provisioning/proto/wifi_constants.proto b/components/wifi_provisioning/proto/wifi_constants.proto index 95c761224e..23368960c2 100644 --- a/components/wifi_provisioning/proto/wifi_constants.proto +++ b/components/wifi_provisioning/proto/wifi_constants.proto @@ -28,4 +28,3 @@ message WifiConnectedState { bytes bssid = 4; int32 channel = 5; } - diff --git a/components/wpa_supplicant/include/esp_supplicant/esp_wpa.h b/components/wpa_supplicant/include/esp_supplicant/esp_wpa.h index 202c907d60..f448b737c7 100644 --- a/components/wpa_supplicant/include/esp_supplicant/esp_wpa.h +++ b/components/wpa_supplicant/include/esp_supplicant/esp_wpa.h @@ -49,7 +49,7 @@ const mesh_crypto_funcs_t g_wifi_default_mesh_crypto_funcs; /** * @brief Supplicant initialization * - * @return + * @return * - ESP_OK : succeed * - ESP_ERR_NO_MEM : out of memory */ @@ -58,7 +58,7 @@ esp_err_t esp_supplicant_init(void); /** * @brief Supplicant deinitialization * - * @return + * @return * - ESP_OK : succeed * - others: failed */ diff --git a/components/wpa_supplicant/include/esp_supplicant/esp_wps.h b/components/wpa_supplicant/include/esp_supplicant/esp_wps.h index 76c96730cd..25c06782ec 100644 --- a/components/wpa_supplicant/include/esp_supplicant/esp_wps.h +++ b/components/wpa_supplicant/include/esp_supplicant/esp_wps.h @@ -89,7 +89,7 @@ typedef struct { * * @param wps_type_t wps_type : WPS type, so far only WPS_TYPE_PBC and WPS_TYPE_PIN is supported * - * @return + * @return * - ESP_OK : succeed * - ESP_ERR_WIFI_WPS_TYPE : wps type is invalid * - ESP_ERR_WIFI_WPS_MODE : wifi is not in station mode or sniffer mode is on @@ -102,7 +102,7 @@ esp_err_t esp_wifi_wps_enable(const esp_wps_config_t *config); * * @param null * - * @return + * @return * - ESP_OK : succeed * - ESP_ERR_WIFI_WPS_MODE : wifi is not in station mode or sniffer mode is on */ @@ -117,7 +117,7 @@ esp_err_t esp_wifi_wps_disable(void); * - 0 : non-blocking * - 1~120000 : blocking time (not supported in IDF v1.0) * - * @return + * @return * - ESP_OK : succeed * - ESP_ERR_WIFI_WPS_TYPE : wps type is invalid * - ESP_ERR_WIFI_WPS_MODE : wifi is not in station mode or sniffer mode is on diff --git a/components/wpa_supplicant/include/utils/wpa_debug.h b/components/wpa_supplicant/include/utils/wpa_debug.h index e32c697fe9..ea19c4d319 100644 --- a/components/wpa_supplicant/include/utils/wpa_debug.h +++ b/components/wpa_supplicant/include/utils/wpa_debug.h @@ -28,7 +28,7 @@ #define MSG_DEBUG ESP_LOG_DEBUG #define MSG_MSGDUMP ESP_LOG_VERBOSE -#else +#else enum { MSG_MSGDUMP, MSG_DEBUG, MSG_INFO, MSG_WARNING, MSG_ERROR }; #endif diff --git a/components/wpa_supplicant/port/include/endian.h b/components/wpa_supplicant/port/include/endian.h index 392b40168b..3527cea658 100644 --- a/components/wpa_supplicant/port/include/endian.h +++ b/components/wpa_supplicant/port/include/endian.h @@ -59,19 +59,19 @@ typedef __uint8_t uint8_t; typedef __uint16_t uint16_t; #define _UINT16_T_DECLARED #endif - + #define _UINT32_T_DECLARED #ifndef _UINT32_T_DECLARED typedef __uint32_t uint32_t; #define _UINT32_T_DECLARED #endif - + #define _UINT64_T_DECLARED #ifndef _UINT64_T_DECLARED typedef __uint64_t uint64_t; #define _UINT64_T_DECLARED #endif - + /* * General byte order swapping functions. */ diff --git a/components/wpa_supplicant/port/os_xtensa.c b/components/wpa_supplicant/port/os_xtensa.c index 9a4ed9d9d0..55db624f91 100644 --- a/components/wpa_supplicant/port/os_xtensa.c +++ b/components/wpa_supplicant/port/os_xtensa.c @@ -48,4 +48,3 @@ int os_get_random(unsigned char *buf, size_t len) esp_fill_random(buf, len); return 0; } - diff --git a/components/wpa_supplicant/src/ap/ap_config.c b/components/wpa_supplicant/src/ap/ap_config.c index 14f73547ed..41ef160fc8 100644 --- a/components/wpa_supplicant/src/ap/ap_config.c +++ b/components/wpa_supplicant/src/ap/ap_config.c @@ -245,4 +245,3 @@ const u8 * hostapd_get_psk(const struct hostapd_bss_config *conf, return NULL; } - diff --git a/components/wpa_supplicant/src/ap/ieee802_1x.c b/components/wpa_supplicant/src/ap/ieee802_1x.c index 62de7f5940..9f8fd1bd8e 100644 --- a/components/wpa_supplicant/src/ap/ieee802_1x.c +++ b/components/wpa_supplicant/src/ap/ieee802_1x.c @@ -74,4 +74,3 @@ void ieee802_1x_receive(struct hostapd_data *hapd, const u8 *sa, const u8 *buf, return; } } - diff --git a/components/wpa_supplicant/src/ap/wpa_auth.c b/components/wpa_supplicant/src/ap/wpa_auth.c index 8b43098790..01bd7c7606 100644 --- a/components/wpa_supplicant/src/ap/wpa_auth.c +++ b/components/wpa_supplicant/src/ap/wpa_auth.c @@ -152,7 +152,7 @@ static inline int wpa_auth_get_seqnum(struct wpa_authenticator *wpa_auth, /* fix buf for tx for now */ #define WPA_TX_MSG_BUFF_MAXLEN 200 -static inline int +static inline int wpa_auth_send_eapol(struct wpa_authenticator *wpa_auth, const u8 *addr, const u8 *data, size_t data_len, int encrypt) { @@ -350,7 +350,7 @@ struct wpa_authenticator * wpa_init(const u8 *addr, return wpa_auth; } -struct wpa_state_machine * +struct wpa_state_machine * wpa_auth_sta_init(struct wpa_authenticator *wpa_auth, const u8 *addr) { struct wpa_state_machine *sm; @@ -1215,7 +1215,7 @@ int wpa_auth_sm_event(struct wpa_state_machine *sm, wpa_event event) if (sm == NULL) return -1; - + switch (event) { case WPA_AUTH: case WPA_ASSOC: @@ -2399,7 +2399,7 @@ bool wpa_ap_join(void** sm, uint8_t *bssid, uint8_t *wpa_ie, uint8_t wpa_ie_len) return false; } - + wpa_sm = (struct wpa_state_machine **)sm; if (hapd) { @@ -2436,4 +2436,3 @@ bool wpa_ap_remove(void* sm) return true; } - diff --git a/components/wpa_supplicant/src/ap/wpa_auth.h b/components/wpa_supplicant/src/ap/wpa_auth.h index ee40c2d43d..c666c85edb 100644 --- a/components/wpa_supplicant/src/ap/wpa_auth.h +++ b/components/wpa_supplicant/src/ap/wpa_auth.h @@ -219,7 +219,7 @@ enum { WPA_MGMT_FRAME_PROTECTION_VIOLATION, WPA_INVALID_MGMT_GROUP_CIPHER, WPA_INVALID_MDIE, WPA_INVALID_PROTO }; - + int wpa_validate_wpa_ie(struct wpa_authenticator *wpa_auth, struct wpa_state_machine *sm, const u8 *wpa_ie, size_t wpa_ie_len/*, diff --git a/components/wpa_supplicant/src/ap/wpa_auth_ie.c b/components/wpa_supplicant/src/ap/wpa_auth_ie.c index 34f12217db..a546123c61 100644 --- a/components/wpa_supplicant/src/ap/wpa_auth_ie.c +++ b/components/wpa_supplicant/src/ap/wpa_auth_ie.c @@ -5,7 +5,7 @@ * This software may be distributed under the terms of the BSD license. * See README for more details. */ - + #include "utils/includes.h" #include "utils/common.h" #include "common/ieee802_11_defs.h" diff --git a/components/wpa_supplicant/src/common/wpa_common.c b/components/wpa_supplicant/src/common/wpa_common.c index ba909fee26..6ad624c8b9 100644 --- a/components/wpa_supplicant/src/common/wpa_common.c +++ b/components/wpa_supplicant/src/common/wpa_common.c @@ -23,7 +23,7 @@ #include "crypto/sha256.h" #include "crypto/md5.h" #include "crypto/aes.h" - + #define MD5_MAC_LEN 16 #ifndef CONFIG_NO_WPA2 @@ -129,10 +129,10 @@ int wpa_parse_wpa_ie_rsn(const u8 *rsn_ie, size_t rsn_ie_len, } if (rsn_ie_len < sizeof(struct rsn_ie_hdr)) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "%s: ie len too short %lu", __func__, (unsigned long) rsn_ie_len); - #endif + #endif return -1; } @@ -141,10 +141,10 @@ int wpa_parse_wpa_ie_rsn(const u8 *rsn_ie, size_t rsn_ie_len, if (hdr->elem_id != WLAN_EID_RSN || hdr->len != rsn_ie_len - 2 || WPA_GET_LE16(hdr->version) != RSN_VERSION) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "%s: malformed ie or unknown version", __func__); - #endif + #endif return -2; } @@ -156,10 +156,10 @@ int wpa_parse_wpa_ie_rsn(const u8 *rsn_ie, size_t rsn_ie_len, pos += RSN_SELECTOR_LEN; left -= RSN_SELECTOR_LEN; } else if (left > 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "%s: ie length mismatch, %u too much", __func__, left); - #endif + #endif return -3; } @@ -169,10 +169,10 @@ int wpa_parse_wpa_ie_rsn(const u8 *rsn_ie, size_t rsn_ie_len, pos += 2; left -= 2; if (count == 0 || left < count * RSN_SELECTOR_LEN) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "%s: ie count botch (pairwise), " "count %u left %u", __func__, count, left); - #endif + #endif return -4; } for (i = 0; i < count; i++) { @@ -181,10 +181,10 @@ int wpa_parse_wpa_ie_rsn(const u8 *rsn_ie, size_t rsn_ie_len, left -= RSN_SELECTOR_LEN; } } else if (left == 1) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "%s: ie too short (for key mgmt)", __func__); - #endif + #endif return -5; } @@ -194,10 +194,10 @@ int wpa_parse_wpa_ie_rsn(const u8 *rsn_ie, size_t rsn_ie_len, pos += 2; left -= 2; if (count == 0 || left < count * RSN_SELECTOR_LEN) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "%s: ie count botch (key mgmt), " "count %u left %u", __func__, count, left); - #endif + #endif return -6; } for (i = 0; i < count; i++) { @@ -206,10 +206,10 @@ int wpa_parse_wpa_ie_rsn(const u8 *rsn_ie, size_t rsn_ie_len, left -= RSN_SELECTOR_LEN; } } else if (left == 1) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "%s: ie too short (for capabilities)", __func__); - #endif + #endif return -7; } @@ -224,12 +224,12 @@ int wpa_parse_wpa_ie_rsn(const u8 *rsn_ie, size_t rsn_ie_len, pos += 2; left -= 2; if (left < (int) data->num_pmkid * PMKID_LEN) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "%s: PMKID underflow " "(num_pmkid=%lu left=%d)", __func__, (unsigned long) data->num_pmkid, left); - #endif + #endif data->num_pmkid = 0; return -9; } else { @@ -240,10 +240,10 @@ int wpa_parse_wpa_ie_rsn(const u8 *rsn_ie, size_t rsn_ie_len, } if (left > 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "%s: ie has %u trailing bytes - ignored", __func__, left); - #endif + #endif } return 0; @@ -674,5 +674,3 @@ int wpa_cipher_put_suites(u8 *pos, int ciphers) } #endif // ESP_SUPPLICANT - - diff --git a/components/wpa_supplicant/src/crypto/aes-unwrap.c b/components/wpa_supplicant/src/crypto/aes-unwrap.c index 090c2a9095..3418249b4c 100644 --- a/components/wpa_supplicant/src/crypto/aes-unwrap.c +++ b/components/wpa_supplicant/src/crypto/aes-unwrap.c @@ -47,7 +47,7 @@ * @plain: Plaintext key, n * 64 bits * Returns: 0 on success, -1 on failure (e.g., integrity verification failed) */ -int +int aes_unwrap(const u8 *kek, int n, const u8 *cipher, u8 *plain) { u8 a[8], *r, b[16]; diff --git a/components/wpa_supplicant/src/crypto/bignum.c b/components/wpa_supplicant/src/crypto/bignum.c index 12a273e5ff..1572afa259 100644 --- a/components/wpa_supplicant/src/crypto/bignum.c +++ b/components/wpa_supplicant/src/crypto/bignum.c @@ -18,7 +18,7 @@ #include "utils/wpa_debug.h" #include "bignum.h" -#define CONFIG_INTERNAL_LIBTOMMATH +#define CONFIG_INTERNAL_LIBTOMMATH #ifdef CONFIG_INTERNAL_LIBTOMMATH #include "libtommath.h" #else /* CONFIG_INTERNAL_LIBTOMMATH */ @@ -35,7 +35,7 @@ * bignum_init - Allocate memory for bignum * Returns: Pointer to allocated bignum or %NULL on failure */ -struct bignum * +struct bignum * bignum_init(void) { struct bignum *n = (struct bignum *)os_zalloc(sizeof(mp_int)); @@ -53,7 +53,7 @@ bignum_init(void) * bignum_deinit - Free bignum * @n: Bignum from bignum_init() */ -void +void bignum_deinit(struct bignum *n) { if (n) { @@ -68,7 +68,7 @@ bignum_deinit(struct bignum *n) * @n: Bignum from bignum_init() * Returns: Length of n if written to a binary buffer */ -size_t +size_t bignum_get_unsigned_bin_len(struct bignum *n) { return mp_unsigned_bin_size((mp_int *) n); @@ -83,7 +83,7 @@ bignum_get_unsigned_bin_len(struct bignum *n) * enough. Set to used buffer length on success if not %NULL. * Returns: 0 on success, -1 on failure */ -int +int bignum_get_unsigned_bin(const struct bignum *n, u8 *buf, size_t *len) { size_t need = mp_unsigned_bin_size((mp_int *) n); @@ -108,7 +108,7 @@ bignum_get_unsigned_bin(const struct bignum *n, u8 *buf, size_t *len) * @len: Length of buf in octets * Returns: 0 on success, -1 on failure */ -int +int bignum_set_unsigned_bin(struct bignum *n, const u8 *buf, size_t len) { if (mp_read_unsigned_bin((mp_int *) n, (u8 *) buf, len) != MP_OKAY) { @@ -125,7 +125,7 @@ bignum_set_unsigned_bin(struct bignum *n, const u8 *buf, size_t len) * @b: Bignum from bignum_init() * Returns: 0 on success, -1 on failure */ -int +int bignum_cmp(const struct bignum *a, const struct bignum *b) { return mp_cmp((mp_int *) a, (mp_int *) b); @@ -138,7 +138,7 @@ bignum_cmp(const struct bignum *a, const struct bignum *b) * @b: Small integer * Returns: 0 on success, -1 on failure */ -int +int bignum_cmp_d(const struct bignum *a, unsigned long b) { return mp_cmp_d((mp_int *) a, b); @@ -152,7 +152,7 @@ bignum_cmp_d(const struct bignum *a, unsigned long b) * @c: Bignum from bignum_init(); used to store the result of a + b * Returns: 0 on success, -1 on failure */ -int +int bignum_add(const struct bignum *a, const struct bignum *b, struct bignum *c) { @@ -171,7 +171,7 @@ bignum_add(const struct bignum *a, const struct bignum *b, * @c: Bignum from bignum_init(); used to store the result of a - b * Returns: 0 on success, -1 on failure */ -int +int bignum_sub(const struct bignum *a, const struct bignum *b, struct bignum *c) { @@ -190,7 +190,7 @@ bignum_sub(const struct bignum *a, const struct bignum *b, * @c: Bignum from bignum_init(); used to store the result of a * b * Returns: 0 on success, -1 on failure */ -int +int bignum_mul(const struct bignum *a, const struct bignum *b, struct bignum *c) { @@ -210,7 +210,7 @@ bignum_mul(const struct bignum *a, const struct bignum *b, * @d: Bignum from bignum_init(); used to store the result of a * b (mod c) * Returns: 0 on success, -1 on failure */ -int +int bignum_mulmod(const struct bignum *a, const struct bignum *b, const struct bignum *c, struct bignum *d) { @@ -231,7 +231,7 @@ bignum_mulmod(const struct bignum *a, const struct bignum *b, * @d: Bignum from bignum_init(); used to store the result of a^b (mod c) * Returns: 0 on success, -1 on failure */ -int +int bignum_exptmod(const struct bignum *a, const struct bignum *b, const struct bignum *c, struct bignum *d) { diff --git a/components/wpa_supplicant/src/crypto/crypto_internal-modexp.c b/components/wpa_supplicant/src/crypto/crypto_internal-modexp.c index 8d9d7fe83d..2807d329c9 100644 --- a/components/wpa_supplicant/src/crypto/crypto_internal-modexp.c +++ b/components/wpa_supplicant/src/crypto/crypto_internal-modexp.c @@ -77,7 +77,7 @@ crypto_mod_exp(const uint8_t *base, size_t base_len, return ret; } #else /* USE_MBEDTLS_CRYPTO */ -int +int crypto_mod_exp(const u8 *base, size_t base_len, const u8 *power, size_t power_len, const u8 *modulus, size_t modulus_len, diff --git a/components/wpa_supplicant/src/crypto/crypto_mbedtls-ec.c b/components/wpa_supplicant/src/crypto/crypto_mbedtls-ec.c index 42290b0384..3f65393753 100644 --- a/components/wpa_supplicant/src/crypto/crypto_mbedtls-ec.c +++ b/components/wpa_supplicant/src/crypto/crypto_mbedtls-ec.c @@ -976,10 +976,10 @@ int crypto_ec_write_pub_key(struct crypto_key *key, unsigned char **key_buf) if (len <= 0) return 0; - *key_buf = os_malloc(len); + *key_buf = os_malloc(len); if (!*key_buf) { wpa_printf(MSG_ERROR, "%s: memory allocation failed\n", __func__); - return 0; + return 0; } os_memcpy(*key_buf, output_buf + 1600 - len, len); diff --git a/components/wpa_supplicant/src/crypto/crypto_ops.c b/components/wpa_supplicant/src/crypto/crypto_ops.c index ee1aee9401..6f1ab1354e 100644 --- a/components/wpa_supplicant/src/crypto/crypto_ops.c +++ b/components/wpa_supplicant/src/crypto/crypto_ops.c @@ -22,14 +22,14 @@ #include "esp_wpa.h" #include "ccmp.h" -/* +/* * This structure is used to set the cyrpto callback function for station to connect when in security mode. * These functions either call MbedTLS API's if USE_MBEDTLS_CRYPTO flag is set through Kconfig, or native * API's otherwise. We recommend setting the flag since MbedTLS API's utilize hardware acceleration while * native API's are use software implementations. */ const wpa_crypto_funcs_t g_wifi_default_wpa_crypto_funcs = { - .size = sizeof(wpa_crypto_funcs_t), + .size = sizeof(wpa_crypto_funcs_t), .version = ESP_WIFI_CRYPTO_VERSION, .aes_wrap = (esp_aes_wrap_t)aes_wrap, .aes_unwrap = (esp_aes_unwrap_t)aes_unwrap, diff --git a/components/wpa_supplicant/src/crypto/des-internal.c b/components/wpa_supplicant/src/crypto/des-internal.c index 077b7d013c..ed9674d2c2 100644 --- a/components/wpa_supplicant/src/crypto/des-internal.c +++ b/components/wpa_supplicant/src/crypto/des-internal.c @@ -49,7 +49,7 @@ static const u32 bytebit[8] = { - 0200, 0100, 040, 020, 010, 04, 02, 01 + 0200, 0100, 040, 020, 010, 04, 02, 01 }; static const u32 bigbyte[24] = @@ -59,22 +59,22 @@ static const u32 bigbyte[24] = 0x8000UL, 0x4000UL, 0x2000UL, 0x1000UL, 0x800UL, 0x400UL, 0x200UL, 0x100UL, 0x80UL, 0x40UL, 0x20UL, 0x10UL, - 0x8UL, 0x4UL, 0x2UL, 0x1L + 0x8UL, 0x4UL, 0x2UL, 0x1L }; /* Use the key schedule specific in the standard (ANSI X3.92-1981) */ static const u8 pc1[56] = { - 56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17, - 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, + 56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17, + 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, - 13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3 + 13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3 }; static const u8 totrot[16] = { 1, 2, 4, 6, - 8, 10, 12, 14, - 15, 17, 19, 21, + 8, 10, 12, 14, + 15, 17, 19, 21, 23, 25, 27, 28 }; @@ -491,4 +491,3 @@ void des3_decrypt(const u8 *crypt, const struct des3_key_s *key, u8 *plain) WPA_PUT_BE32(plain, work[0]); WPA_PUT_BE32(plain + 4, work[1]); }*/ - diff --git a/components/wpa_supplicant/src/crypto/dh_group5.c b/components/wpa_supplicant/src/crypto/dh_group5.c index d5adaf24fd..0a228b5f36 100644 --- a/components/wpa_supplicant/src/crypto/dh_group5.c +++ b/components/wpa_supplicant/src/crypto/dh_group5.c @@ -19,7 +19,7 @@ #include "dh_group5.h" -void * +void * dh5_init(struct wpabuf **priv, struct wpabuf **publ) { *publ = dh_init(dh_groups_get(5), priv); @@ -29,7 +29,7 @@ dh5_init(struct wpabuf **priv, struct wpabuf **publ) } -struct wpabuf * +struct wpabuf * dh5_derive_shared(void *ctx, const struct wpabuf *peer_public, const struct wpabuf *own_private) { @@ -37,7 +37,7 @@ dh5_derive_shared(void *ctx, const struct wpabuf *peer_public, } -void +void dh5_free(void *ctx) { } diff --git a/components/wpa_supplicant/src/crypto/dh_groups.c b/components/wpa_supplicant/src/crypto/dh_groups.c index 3d872d3b4e..63fdb3897c 100644 --- a/components/wpa_supplicant/src/crypto/dh_groups.c +++ b/components/wpa_supplicant/src/crypto/dh_groups.c @@ -1187,7 +1187,7 @@ static const struct dh_group dh_groups[] = { #define NUM_DH_GROUPS (sizeof(dh_groups) / sizeof(dh_groups[0])) -const struct dh_group * +const struct dh_group * dh_groups_get(int id) { size_t i; @@ -1205,7 +1205,7 @@ dh_groups_get(int id) * @priv: Pointer for returning Diffie-Hellman private key * Returns: Diffie-Hellman public value */ -struct wpabuf * +struct wpabuf * dh_init(const struct dh_group *dh, struct wpabuf **priv) { struct wpabuf *pv; @@ -1262,7 +1262,7 @@ dh_init(const struct dh_group *dh, struct wpabuf **priv) * @dh: Selected Diffie-Hellman group * Returns: Diffie-Hellman shared key */ -struct wpabuf * +struct wpabuf * dh_derive_shared(const struct wpabuf *peer_public, const struct wpabuf *own_private, const struct dh_group *dh) diff --git a/components/wpa_supplicant/src/crypto/libtommath.h b/components/wpa_supplicant/src/crypto/libtommath.h index 1010f9f63f..9e8ba2a0b2 100644 --- a/components/wpa_supplicant/src/crypto/libtommath.h +++ b/components/wpa_supplicant/src/crypto/libtommath.h @@ -109,7 +109,7 @@ typedef int mp_err; #define MP_PREC 32 /* default digits of precision */ #else #define MP_PREC 8 /* default digits of precision */ - #endif + #endif #endif /* size of comba arrays, should be at least 2 * 2**(BITS_PER_WORD - BITS_PER_DIGIT*2) */ @@ -190,7 +190,7 @@ static int mp_mul_d (mp_int * a, mp_digit b, mp_int * c); /* reverse an array, used for radix code */ -static void +static void bn_reverse (unsigned char *s, int len) { int ix, iy; @@ -209,7 +209,7 @@ bn_reverse (unsigned char *s, int len) /* low level addition, based on HAC pp.594, Algorithm 14.7 */ -static int +static int s_mp_add (mp_int * a, mp_int * b, mp_int * c) { mp_int *x; @@ -267,8 +267,8 @@ s_mp_add (mp_int * a, mp_int * b, mp_int * c) *tmpc++ &= MP_MASK; } - /* now copy higher words if any, that is in A+B - * if A or B has more digits add those in + /* now copy higher words if any, that is in A+B + * if A or B has more digits add those in */ if (min != max) { for (; i < max; i++) { @@ -298,7 +298,7 @@ s_mp_add (mp_int * a, mp_int * b, mp_int * c) /* low level subtraction (assumes |a| > |b|), HAC pp.595 Algorithm 14.9 */ -static int +static int s_mp_sub (mp_int * a, mp_int * b, mp_int * c) { int olduse, res, min, max; @@ -366,7 +366,7 @@ s_mp_sub (mp_int * a, mp_int * b, mp_int * c) /* init a new mp_int */ -static int +static int mp_init (mp_int * a) { int i; @@ -393,7 +393,7 @@ mp_init (mp_int * a) /* clear one (frees) */ -static void +static void mp_clear (mp_int * a) { int i; @@ -417,7 +417,7 @@ mp_clear (mp_int * a) /* high level addition (handles signs) */ -static int +static int mp_add (mp_int * a, mp_int * b, mp_int * c) { int sa, sb, res; @@ -450,7 +450,7 @@ mp_add (mp_int * a, mp_int * b, mp_int * c) /* high level subtraction (handles signs) */ -static int +static int mp_sub (mp_int * a, mp_int * b, mp_int * c) { int sa, sb, res; @@ -488,7 +488,7 @@ mp_sub (mp_int * a, mp_int * b, mp_int * c) /* high level multiplication (handles sign) */ -static int +static int mp_mul (mp_int * a, mp_int * b, mp_int * c) { int res, neg; @@ -498,29 +498,29 @@ mp_mul (mp_int * a, mp_int * b, mp_int * c) #ifdef BN_MP_TOOM_MUL_C if (MIN (a->used, b->used) >= TOOM_MUL_CUTOFF) { res = mp_toom_mul(a, b, c); - } else + } else #endif #ifdef BN_MP_KARATSUBA_MUL_C /* use Karatsuba? */ if (MIN (a->used, b->used) >= KARATSUBA_MUL_CUTOFF) { res = mp_karatsuba_mul (a, b, c); - } else + } else #endif { /* can we use the fast multiplier? * - * The fast multiplier can be used if the output will - * have less than MP_WARRAY digits and the number of + * The fast multiplier can be used if the output will + * have less than MP_WARRAY digits and the number of * digits won't affect carry propagation */ #ifdef BN_FAST_S_MP_MUL_DIGS_C int digs = a->used + b->used + 1; if ((digs < MP_WARRAY) && - MIN(a->used, b->used) <= + MIN(a->used, b->used) <= (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { res = fast_s_mp_mul_digs (a, b, c, digs); - } else + } else #endif #ifdef BN_S_MP_MUL_DIGS_C res = s_mp_mul (a, b, c); /* uses s_mp_mul_digs */ @@ -536,7 +536,7 @@ mp_mul (mp_int * a, mp_int * b, mp_int * c) /* d = a * b (mod c) */ -static int +static int mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) { int res; @@ -557,7 +557,7 @@ mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) /* c = a mod b, 0 <= c < b */ -static int +static int mp_mod (mp_int * a, mp_int * b, mp_int * c) { mp_int t; @@ -589,7 +589,7 @@ mp_mod (mp_int * a, mp_int * b, mp_int * c) * embedded in the normal function but that wasted a lot of stack space * for nothing (since 99% of the time the Montgomery code would be called) */ -static int +static int mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) { int dr; @@ -631,7 +631,7 @@ mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) err = mp_exptmod(&tmpG, &tmpX, P, Y); mp_clear_multi(&tmpG, &tmpX, NULL); return err; -#else +#else #error mp_exptmod would always fail /* no invmod */ return MP_VAL; @@ -660,7 +660,7 @@ mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) dr = mp_reduce_is_2k(P) << 1; } #endif - + /* if the modulus is odd or dr != 0 use the montgomery method */ #ifdef BN_MP_EXPTMOD_FAST_C if (mp_isodd (P) == 1 || dr != 0) { @@ -683,7 +683,7 @@ mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) /* compare two ints (signed)*/ -static int +static int mp_cmp (mp_int * a, mp_int * b) { /* compare based on sign */ @@ -694,7 +694,7 @@ mp_cmp (mp_int * a, mp_int * b) return MP_GT; } } - + /* compare digits */ if (a->sign == MP_NEG) { /* if negative compare opposite direction */ @@ -706,7 +706,7 @@ mp_cmp (mp_int * a, mp_int * b) /* compare a digit */ -static int +static int mp_cmp_d(mp_int * a, mp_digit b) { /* compare based on sign */ @@ -732,7 +732,7 @@ mp_cmp_d(mp_int * a, mp_digit b) #ifndef LTM_NO_NEG_EXP /* hac 14.61, pp608 */ -static int +static int mp_invmod (mp_int * a, mp_int * b, mp_int * c) { /* b cannot be negative */ @@ -762,7 +762,7 @@ mp_invmod (mp_int * a, mp_int * b, mp_int * c) /* get the size for an unsigned equivalent */ -static int +static int mp_unsigned_bin_size (mp_int * a) { int size = mp_count_bits (a); @@ -772,7 +772,7 @@ mp_unsigned_bin_size (mp_int * a) #ifndef LTM_NO_NEG_EXP /* hac 14.61, pp608 */ -static int +static int mp_invmod_slow (mp_int * a, mp_int * b, mp_int * c) { mp_int x, y, u, v, A, B, C, D; @@ -784,7 +784,7 @@ mp_invmod_slow (mp_int * a, mp_int * b, mp_int * c) } /* init temps */ - if ((res = mp_init_multi(&x, &y, &u, &v, + if ((res = mp_init_multi(&x, &y, &u, &v, &A, &B, &C, &D, NULL)) != MP_OKAY) { return res; } @@ -911,14 +911,14 @@ top: goto LBL_ERR; } } - + /* too big */ while (mp_cmp_mag(&C, b) != MP_LT) { if ((res = mp_sub(&C, b, &C)) != MP_OKAY) { goto LBL_ERR; } } - + /* C is now the inverse */ mp_exch (&C, c); res = MP_OKAY; @@ -929,7 +929,7 @@ LBL_ERR:mp_clear_multi (&x, &y, &u, &v, &A, &B, &C, &D, NULL); /* compare maginitude of two ints (unsigned) */ -static int +static int mp_cmp_mag (mp_int * a, mp_int * b) { int n; @@ -939,7 +939,7 @@ mp_cmp_mag (mp_int * a, mp_int * b) if (a->used > b->used) { return MP_GT; } - + if (a->used < b->used) { return MP_LT; } @@ -965,7 +965,7 @@ mp_cmp_mag (mp_int * a, mp_int * b) /* reads a unsigned char array, assumes the msb is stored first [big endian] */ -static int +static int mp_read_unsigned_bin (mp_int * a, const unsigned char *b, int c) { int res; @@ -1001,7 +1001,7 @@ mp_read_unsigned_bin (mp_int * a, const unsigned char *b, int c) /* store in unsigned [big endian] format */ -static int +static int mp_to_unsigned_bin (mp_int * a, unsigned char *b) { int x, res; @@ -1030,7 +1030,7 @@ mp_to_unsigned_bin (mp_int * a, unsigned char *b) /* shift right by a certain bit count (store quotient in c, optional remainder in d) */ -static int +static int mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d) { mp_digit D, r, rr; @@ -1107,7 +1107,7 @@ mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d) } -static int +static int mp_init_copy (mp_int * a, mp_int * b) { int res; @@ -1120,7 +1120,7 @@ mp_init_copy (mp_int * a, mp_int * b) /* set to zero */ -static void +static void mp_zero (mp_int * a) { int n; @@ -1137,7 +1137,7 @@ mp_zero (mp_int * a) /* copy, b = a */ -static int +static int mp_copy (mp_int * a, mp_int * b) { int res, n; @@ -1185,7 +1185,7 @@ mp_copy (mp_int * a, mp_int * b) /* shift right a certain amount of digits */ -static void +static void mp_rshd (mp_int * a, int b) { int x; @@ -1212,8 +1212,8 @@ mp_rshd (mp_int * a, int b) /* top [offset into digits] */ top = a->dp + b; - /* this is implemented as a sliding window where - * the window is b-digits long and digits from + /* this is implemented as a sliding window where + * the window is b-digits long and digits from * the top of the window are copied to the bottom * * e.g. @@ -1231,16 +1231,16 @@ mp_rshd (mp_int * a, int b) *bottom++ = 0; } } - + /* remove excess digits */ a->used -= b; } -/* swap the elements of two integers, for cases where you can't simply swap the +/* swap the elements of two integers, for cases where you can't simply swap the * mp_int pointers around */ -static void +static void mp_exch (mp_int * a, mp_int * b) { mp_int t; @@ -1251,14 +1251,14 @@ mp_exch (mp_int * a, mp_int * b) } -/* trim unused digits +/* trim unused digits * * This is used to ensure that leading zero digits are * trimed and the leading "used" digit will be non-zero * Typically very fast. Also fixes the sign if there * are no more leading digits */ -static void +static void mp_clamp (mp_int * a) { /* decrease used while the most significant digit is @@ -1276,7 +1276,7 @@ mp_clamp (mp_int * a) /* grow as required */ -static int +static int mp_grow (mp_int * a, int size) { int i; @@ -1314,11 +1314,11 @@ mp_grow (mp_int * a, int size) #ifdef BN_MP_ABS_C -/* b = |a| +/* b = |a| * * Simple function copies the input and fixes the sign to positive */ -static int +static int mp_abs (mp_int * a, mp_int * b) { int res; @@ -1339,7 +1339,7 @@ mp_abs (mp_int * a, mp_int * b) /* set to a digit */ -static void +static void mp_set (mp_int * a, mp_digit b) { mp_zero (a); @@ -1350,7 +1350,7 @@ mp_set (mp_int * a, mp_digit b) #ifndef LTM_NO_NEG_EXP /* b = a/2 */ -static int +static int mp_div_2(mp_int * a, mp_int * b) { int x, res, oldused; @@ -1400,7 +1400,7 @@ mp_div_2(mp_int * a, mp_int * b) /* shift left by a certain bit count */ -static int +static int mp_mul_2d (mp_int * a, int b, mp_int * c) { mp_digit d; @@ -1454,7 +1454,7 @@ mp_mul_2d (mp_int * a, int b, mp_int * c) /* set the carry to the carry bits of the current word */ r = rr; } - + /* set final carry */ if (r != 0) { c->dp[(c->used)++] = r; @@ -1466,8 +1466,8 @@ mp_mul_2d (mp_int * a, int b, mp_int * c) #ifdef BN_MP_INIT_MULTI_C -static int -mp_init_multi(mp_int *mp, ...) +static int +mp_init_multi(mp_int *mp, ...) { mp_err res = MP_OKAY; /* Assume ok until proven otherwise */ int n = 0; /* Number of ok inits */ @@ -1481,11 +1481,11 @@ mp_init_multi(mp_int *mp, ...) succeeded in init-ing, then return error. */ va_list clean_args; - + /* end the current list */ va_end(args); - - /* now start cleaning up */ + + /* now start cleaning up */ cur_arg = mp; va_start(clean_args, mp); while (n--) { @@ -1506,8 +1506,8 @@ mp_init_multi(mp_int *mp, ...) #ifdef BN_MP_CLEAR_MULTI_C -static void -mp_clear_multi(mp_int *mp, ...) +static void +mp_clear_multi(mp_int *mp, ...) { mp_int* next_mp = mp; va_list args; @@ -1522,7 +1522,7 @@ mp_clear_multi(mp_int *mp, ...) /* shift left a certain amount of digits */ -static int +static int mp_lshd (mp_int * a, int b) { int x, res; @@ -1570,7 +1570,7 @@ mp_lshd (mp_int * a, int b) /* returns the number of bits in an int */ -static int +static int mp_count_bits (mp_int * a) { int r; @@ -1583,7 +1583,7 @@ mp_count_bits (mp_int * a) /* get number of digits and add that */ r = (a->used - 1) * DIGIT_BIT; - + /* take the last digit and count the bits in it */ q = a->dp[a->used - 1]; while (q > ((mp_digit) 0)) { @@ -1595,7 +1595,7 @@ mp_count_bits (mp_int * a) /* calc a value mod 2**b */ -static int +static int mp_mod_2d (mp_int * a, int b, mp_int * c) { int x, res; @@ -1632,7 +1632,7 @@ mp_mod_2d (mp_int * a, int b, mp_int * c) #ifdef BN_MP_DIV_SMALL /* slower bit-bang division... also smaller */ -static int +static int mp_div(mp_int * a, mp_int * b, mp_int * c, mp_int * d) { mp_int ta, tb, tq, q; @@ -1655,7 +1655,7 @@ mp_div(mp_int * a, mp_int * b, mp_int * c, mp_int * d) } return res; } - + /* init our temps */ if ((res = mp_init_multi(&ta, &tb, &tq, &q, NULL) != MP_OKAY)) { return res; @@ -1665,7 +1665,7 @@ mp_div(mp_int * a, mp_int * b, mp_int * c, mp_int * d) mp_set(&tq, 1); n = mp_count_bits(a) - mp_count_bits(b); if (((res = mp_abs(a, &ta)) != MP_OKAY) || - ((res = mp_abs(b, &tb)) != MP_OKAY) || + ((res = mp_abs(b, &tb)) != MP_OKAY) || ((res = mp_mul_2d(&tb, n, &tb)) != MP_OKAY) || ((res = mp_mul_2d(&tq, n, &tq)) != MP_OKAY)) { goto LBL_ERR; @@ -1702,20 +1702,20 @@ LBL_ERR: #else -/* integer signed division. +/* integer signed division. * c*b + d == a [e.g. a/b, c=quotient, d=remainder] * HAC pp.598 Algorithm 14.20 * - * Note that the description in HAC is horribly - * incomplete. For example, it doesn't consider - * the case where digits are removed from 'x' in - * the inner loop. It also doesn't consider the + * Note that the description in HAC is horribly + * incomplete. For example, it doesn't consider + * the case where digits are removed from 'x' in + * the inner loop. It also doesn't consider the * case that y has fewer than three digits, etc.. * - * The overall algorithm is as described as + * The overall algorithm is as described as * 14.20 from HAC but fixed to treat these cases. */ -static int +static int mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) { mp_int q, x, y, t1, t2; @@ -1803,7 +1803,7 @@ mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) continue; } - /* step 3.1 if xi == yt then set q{i-t-1} to b-1, + /* step 3.1 if xi == yt then set q{i-t-1} to b-1, * otherwise set q{i-t-1} to (xi*b + x{i-1})/yt */ if (x.dp[i] == y.dp[t]) { q.dp[i - t - 1] = ((((mp_digit)1) << DIGIT_BIT) - 1); @@ -1817,10 +1817,10 @@ mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) q.dp[i - t - 1] = (mp_digit) (tmp & (mp_word) (MP_MASK)); } - /* while (q{i-t-1} * (yt * b + y{t-1})) > - xi * b**2 + xi-1 * b + xi-2 - - do q{i-t-1} -= 1; + /* while (q{i-t-1} * (yt * b + y{t-1})) > + xi * b**2 + xi-1 * b + xi-2 + + do q{i-t-1} -= 1; */ q.dp[i - t - 1] = (q.dp[i - t - 1] + 1) & MP_MASK; do { @@ -1871,10 +1871,10 @@ mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) } } - /* now q is the quotient and x is the remainder - * [which we have to normalize] + /* now q is the quotient and x is the remainder + * [which we have to normalize] */ - + /* get sign before writing to c */ x.sign = x.used == 0 ? MP_ZPOS : a->sign; @@ -1908,7 +1908,7 @@ LBL_Q:mp_clear (&q); #define TAB_SIZE 256 #endif -static int +static int s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) { mp_int M[TAB_SIZE], res, mu; @@ -1943,7 +1943,7 @@ s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) /* init M array */ /* init first cell */ if ((err = mp_init(&M[1])) != MP_OKAY) { - return err; + return err; } /* now init the second half of the array */ @@ -1961,7 +1961,7 @@ s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) if ((err = mp_init (&mu)) != MP_OKAY) { goto LBL_M; } - + if (redmode == 0) { if ((err = mp_reduce_setup (&mu, P)) != MP_OKAY) { goto LBL_MU; @@ -1972,22 +1972,22 @@ s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) goto LBL_MU; } redux = mp_reduce_2k_l; - } + } /* create M table * - * The M table contains powers of the base, + * The M table contains powers of the base, * e.g. M[x] = G**x mod P * - * The first half of the table is not + * The first half of the table is not * computed though accept for M[0] and M[1] */ if ((err = mp_mod (G, P, &M[1])) != MP_OKAY) { goto LBL_MU; } - /* compute the value at M[1<<(winsize-1)] by squaring - * M[1] (winsize-1) times + /* compute the value at M[1<<(winsize-1)] by squaring + * M[1] (winsize-1) times */ if ((err = mp_copy (&M[1], &M[1 << (winsize - 1)])) != MP_OKAY) { goto LBL_MU; @@ -1995,7 +1995,7 @@ s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) for (x = 0; x < (winsize - 1); x++) { /* square it */ - if ((err = mp_sqr (&M[1 << (winsize - 1)], + if ((err = mp_sqr (&M[1 << (winsize - 1)], &M[1 << (winsize - 1)])) != MP_OKAY) { goto LBL_MU; } @@ -2137,7 +2137,7 @@ LBL_M: /* computes b = a*a */ -static int +static int mp_sqr (mp_int * a, mp_int * b) { int res; @@ -2147,18 +2147,18 @@ mp_sqr (mp_int * a, mp_int * b) if (a->used >= TOOM_SQR_CUTOFF) { res = mp_toom_sqr(a, b); /* Karatsuba? */ - } else + } else #endif #ifdef BN_MP_KARATSUBA_SQR_C if (a->used >= KARATSUBA_SQR_CUTOFF) { res = mp_karatsuba_sqr (a, b); - } else + } else #endif { #ifdef BN_FAST_S_MP_SQR_C /* can we use the fast comba multiplier? */ - if ((a->used * 2 + 1) < MP_WARRAY && - a->used < + if ((a->used * 2 + 1) < MP_WARRAY && + a->used < (1 << (sizeof(mp_word) * CHAR_BIT - 2*DIGIT_BIT - 1))) { res = fast_s_mp_sqr (a, b); } else @@ -2175,42 +2175,42 @@ if (a->used >= KARATSUBA_SQR_CUTOFF) { } -/* reduces a modulo n where n is of the form 2**p - d +/* reduces a modulo n where n is of the form 2**p - d This differs from reduce_2k since "d" can be larger than a single digit. */ -static int +static int mp_reduce_2k_l(mp_int *a, mp_int *n, mp_int *d) { mp_int q; int p, res; - + if ((res = mp_init(&q)) != MP_OKAY) { return res; } - - p = mp_count_bits(n); + + p = mp_count_bits(n); top: /* q = a/2**p, a = a mod 2**p */ if ((res = mp_div_2d(a, p, &q, a)) != MP_OKAY) { goto ERR; } - + /* q = q * d */ - if ((res = mp_mul(&q, d, &q)) != MP_OKAY) { + if ((res = mp_mul(&q, d, &q)) != MP_OKAY) { goto ERR; } - + /* a = a + q */ if ((res = s_mp_add(a, &q, a)) != MP_OKAY) { goto ERR; } - + if (mp_cmp_mag(a, n) != MP_LT) { s_mp_sub(a, n, a); goto top; } - + ERR: mp_clear(&q); return res; @@ -2218,36 +2218,36 @@ ERR: /* determines the setup value */ -static int +static int mp_reduce_2k_setup_l(mp_int *a, mp_int *d) { int res; mp_int tmp; - + if ((res = mp_init(&tmp)) != MP_OKAY) { return res; } - + if ((res = mp_2expt(&tmp, mp_count_bits(a))) != MP_OKAY) { goto ERR; } - + if ((res = s_mp_sub(&tmp, a, d)) != MP_OKAY) { goto ERR; } - + ERR: mp_clear(&tmp); return res; } -/* computes a = 2**b +/* computes a = 2**b * * Simple algorithm which zeroes the int, grows it then just sets one bit * as required. */ -static int +static int mp_2expt (mp_int * a, int b) { int res; @@ -2273,11 +2273,11 @@ mp_2expt (mp_int * a, int b) /* pre-calculate the value required for Barrett reduction * For a given modulus "b" it calulates the value required in "a" */ -static int +static int mp_reduce_setup (mp_int * a, mp_int * b) { int res; - + if ((res = mp_2expt (a, b->used * 2 * DIGIT_BIT)) != MP_OKAY) { return res; } @@ -2285,11 +2285,11 @@ mp_reduce_setup (mp_int * a, mp_int * b) } -/* reduces x mod m, assumes 0 < x < m**2, mu is +/* reduces x mod m, assumes 0 < x < m**2, mu is * precomputed via mp_reduce_setup. * From HAC pp.604 Algorithm 14.42 */ -static int +static int mp_reduce (mp_int * x, mp_int * m, mp_int * mu) { mp_int q; @@ -2301,7 +2301,7 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) } /* q1 = x / b**(k-1) */ - mp_rshd (&q, um - 1); + mp_rshd (&q, um - 1); /* according to HAC this optimization is ok */ if (((unsigned long) um) > (((mp_digit)1) << (DIGIT_BIT - 1))) { @@ -2317,8 +2317,8 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) if ((res = fast_s_mp_mul_high_digs (&q, mu, &q, um)) != MP_OKAY) { goto CLEANUP; } -#else - { +#else + { #error mp_reduce would always fail res = MP_VAL; goto CLEANUP; @@ -2327,7 +2327,7 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) } /* q3 = q2 / b**(k+1) */ - mp_rshd (&q, um + 1); + mp_rshd (&q, um + 1); /* x = x mod b**(k+1), quick (no division) */ if ((res = mp_mod_2d (x, DIGIT_BIT * (um + 1), x)) != MP_OKAY) { @@ -2361,7 +2361,7 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) goto CLEANUP; } } - + CLEANUP: mp_clear (&q); @@ -2370,10 +2370,10 @@ CLEANUP: /* multiplies |a| * |b| and only computes up to digs digits of result - * HAC pp. 595, Algorithm 14.12 Modified so you can control how + * HAC pp. 595, Algorithm 14.12 Modified so you can control how * many digits of output are created. */ -static int +static int s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) { mp_int t; @@ -2384,7 +2384,7 @@ s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* can we use the fast multiplier? */ if (((digs) < MP_WARRAY) && - MIN (a->used, b->used) < + MIN (a->used, b->used) < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { return fast_s_mp_mul_digs (a, b, c, digs); } @@ -2406,10 +2406,10 @@ s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* setup some aliases */ /* copy of the digit from a used within the nested loop */ tmpx = a->dp[ix]; - + /* an alias for the destination shifted ix places */ tmpt = t.dp + ix; - + /* an alias for the digits of b */ tmpy = b->dp; @@ -2442,21 +2442,21 @@ s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* Fast (comba) multiplier * - * This is the fast column-array [comba] multiplier. It is - * designed to compute the columns of the product first - * then handle the carries afterwards. This has the effect + * This is the fast column-array [comba] multiplier. It is + * designed to compute the columns of the product first + * then handle the carries afterwards. This has the effect * of making the nested loops that compute the columns very * simple and schedulable on super-scalar processors. * - * This has been modified to produce a variable number of - * digits of output so if say only a half-product is required - * you don't have to compute the upper half (a feature + * This has been modified to produce a variable number of + * digits of output so if say only a half-product is required + * you don't have to compute the upper half (a feature * required for fast Barrett reduction). * * Based on Algorithm 14.12 on pp.595 of HAC. * */ -static int +static int fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) { int olduse, res, pa, ix, iz; @@ -2475,7 +2475,7 @@ fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* clear the carry */ _W = 0; - for (ix = 0; ix < pa; ix++) { + for (ix = 0; ix < pa; ix++) { int tx, ty; int iy; mp_digit *tmpx, *tmpy; @@ -2488,7 +2488,7 @@ fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) tmpx = a->dp + tx; tmpy = b->dp + ty; - /* this is the number of times the loop will iterrate, essentially + /* this is the number of times the loop will iterrate, essentially while (tx++ < a->used && ty-- >= 0) { ... } */ iy = MIN(a->used-tx, ty+1); @@ -2529,14 +2529,14 @@ fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* init an mp_init for a given size */ -static int +static int mp_init_size (mp_int * a, int size) { int x; /* pad size so there are always extra digits */ - size += (MP_PREC * 2) - (size % MP_PREC); - + size += (MP_PREC * 2) - (size % MP_PREC); + /* alloc mem */ a->dp = OPT_CAST(mp_digit) XMALLOC (sizeof (mp_digit) * size); if (a->dp == NULL) { @@ -2558,7 +2558,7 @@ mp_init_size (mp_int * a, int size) /* low level squaring, b = a*a, HAC pp.596-597, Algorithm 14.16 */ -static int +static int s_mp_sqr (mp_int * a, mp_int * b) { mp_int t; @@ -2591,7 +2591,7 @@ s_mp_sqr (mp_int * a, mp_int * b) /* alias for where to store the results */ tmpt = t.dp + (2*ix + 1); - + for (iy = ix + 1; iy < pa; iy++) { /* first calculate the product */ r = ((mp_word)tmpx) * ((mp_word)a->dp[iy]); @@ -2625,7 +2625,7 @@ s_mp_sqr (mp_int * a, mp_int * b) /* multiplies |a| * |b| and does not compute the lower digs digits * [meant to get the higher part of the product] */ -static int +static int s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs) { mp_int t; @@ -2685,7 +2685,7 @@ s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs) #ifdef BN_MP_MONTGOMERY_SETUP_C /* setups the montgomery reduction stuff */ -static int +static int mp_montgomery_setup (mp_int * n, mp_digit * rho) { mp_digit x, b; @@ -2733,7 +2733,7 @@ mp_montgomery_setup (mp_int * n, mp_digit * rho) * * Based on Algorithm 14.32 on pp.601 of HAC. */ -int +int fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) { int ix, res, olduse; @@ -2881,7 +2881,7 @@ fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) #ifdef BN_MP_MUL_2_C /* b = a*2 */ -static int +static int mp_mul_2(mp_int * a, mp_int * b) { int x, res, oldused; @@ -2901,24 +2901,24 @@ mp_mul_2(mp_int * a, mp_int * b) /* alias for source */ tmpa = a->dp; - + /* alias for dest */ tmpb = b->dp; /* carry */ r = 0; for (x = 0; x < a->used; x++) { - - /* get what will be the *next* carry bit from the - * MSB of the current digit + + /* get what will be the *next* carry bit from the + * MSB of the current digit */ rr = *tmpa >> ((mp_digit)(DIGIT_BIT - 1)); - + /* now shift up this digit, add in the carry [from the previous] */ *tmpb++ = ((*tmpa++ << ((mp_digit)1)) | r) & MP_MASK; - - /* copy the carry that would be from the source - * digit into the next iteration + + /* copy the carry that would be from the source + * digit into the next iteration */ r = rr; } @@ -2930,8 +2930,8 @@ mp_mul_2(mp_int * a, mp_int * b) ++(b->used); } - /* now zero any excess digits on the destination - * that we didn't write to + /* now zero any excess digits on the destination + * that we didn't write to */ tmpb = b->dp + b->used; for (x = b->used; x < oldused; x++) { @@ -2951,7 +2951,7 @@ mp_mul_2(mp_int * a, mp_int * b) * The method is slightly modified to shift B unconditionally up to just under * the leading bit of b. This saves a lot of multiple precision shifting. */ -static int +static int mp_montgomery_calc_normalization (mp_int * a, mp_int * b) { int x, bits, res; @@ -2995,7 +2995,7 @@ mp_montgomery_calc_normalization (mp_int * a, mp_int * b) * Uses Montgomery or Diminished Radix reduction [whichever appropriate] */ -static int +static int mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) { mp_int M[TAB_SIZE], res; @@ -3051,7 +3051,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) /* determine and setup reduction code */ if (redmode == 0) { -#ifdef BN_MP_MONTGOMERY_SETUP_C +#ifdef BN_MP_MONTGOMERY_SETUP_C /* now setup montgomery */ if ((err = mp_montgomery_setup (P, &mp)) != MP_OKAY) { goto LBL_M; @@ -3066,7 +3066,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) if (((P->used * 2 + 1) < MP_WARRAY) && P->used < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { redux = fast_mp_montgomery_reduce; - } else + } else #endif { #ifdef BN_MP_MONTGOMERY_REDUCE_C @@ -3117,7 +3117,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) if ((err = mp_montgomery_calc_normalization (&res, P)) != MP_OKAY) { goto LBL_RES; } -#else +#else err = MP_VAL; goto LBL_RES; #endif @@ -3285,16 +3285,16 @@ LBL_M: #ifdef BN_FAST_S_MP_SQR_C /* the jist of squaring... - * you do like mult except the offset of the tmpx [one that - * starts closer to zero] can't equal the offset of tmpy. + * you do like mult except the offset of the tmpx [one that + * starts closer to zero] can't equal the offset of tmpy. * So basically you set up iy like before then you min it with - * (ty-tx) so that it never happens. You double all those + * (ty-tx) so that it never happens. You double all those * you add in the inner loop After that loop you do the squares and add them in. */ -static int +static int fast_s_mp_sqr (mp_int * a, mp_int * b) { int olduse, res, pa, ix, iz; @@ -3311,7 +3311,7 @@ fast_s_mp_sqr (mp_int * a, mp_int * b) /* number of output digits to produce */ W1 = 0; - for (ix = 0; ix < pa; ix++) { + for (ix = 0; ix < pa; ix++) { int tx, ty, iy; mp_word _W; mp_digit *tmpy; @@ -3332,7 +3332,7 @@ fast_s_mp_sqr (mp_int * a, mp_int * b) */ iy = MIN(a->used-tx, ty+1); - /* now for squaring tx can never equal ty + /* now for squaring tx can never equal ty * we halve the distance since they approach at a rate of 2x * and we have to round because odd cases need to be executed */ @@ -3382,7 +3382,7 @@ fast_s_mp_sqr (mp_int * a, mp_int * b) #ifdef BN_MP_MUL_D_C /* multiply by a digit */ -static int +static int mp_mul_d (mp_int * a, mp_digit b, mp_int * c) { mp_digit u, *tmpa, *tmpc; diff --git a/components/wpa_supplicant/src/crypto/md4-internal.c b/components/wpa_supplicant/src/crypto/md4-internal.c index 9c99b7cbe1..839ef41ea2 100644 --- a/components/wpa_supplicant/src/crypto/md4-internal.c +++ b/components/wpa_supplicant/src/crypto/md4-internal.c @@ -1,6 +1,6 @@ /* * MD4 hash implementation - * + * * This software may be distributed under the terms of BSD license. */ diff --git a/components/wpa_supplicant/src/crypto/md5-internal.c b/components/wpa_supplicant/src/crypto/md5-internal.c index a6b394006b..74b50247f2 100644 --- a/components/wpa_supplicant/src/crypto/md5-internal.c +++ b/components/wpa_supplicant/src/crypto/md5-internal.c @@ -34,7 +34,7 @@ typedef struct MD5Context MD5_CTX; * @mac: Buffer for the hash * Returns: 0 on success, -1 of failure */ -int +int md5_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) { MD5_CTX ctx; @@ -88,7 +88,7 @@ static void byteReverse(unsigned char *buf, unsigned longs) * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious * initialization constants. */ -void +void MD5Init(struct MD5Context *ctx) { ctx->buf[0] = 0x67452301; @@ -104,7 +104,7 @@ MD5Init(struct MD5Context *ctx) * Update context to reflect the concatenation of another buffer full * of bytes. */ -void +void MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len) { u32 t; @@ -153,7 +153,7 @@ MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len) * Final wrapup - pad to 64-byte boundary with the bit pattern * 1 0* (64-bit count of bits processed, MSB-first) */ -void +void MD5Final(unsigned char digest[16], struct MD5Context *ctx) { unsigned count; @@ -212,7 +212,7 @@ MD5Final(unsigned char digest[16], struct MD5Context *ctx) * reflect the addition of 16 longwords of new data. MD5Update blocks * the data and converts bytes into longwords for this routine. */ -static void +static void MD5Transform(u32 buf[4], u32 const in[16]) { register u32 a, b, c, d; diff --git a/components/wpa_supplicant/src/crypto/md5.c b/components/wpa_supplicant/src/crypto/md5.c index 57ec4ea983..3678b4af60 100644 --- a/components/wpa_supplicant/src/crypto/md5.c +++ b/components/wpa_supplicant/src/crypto/md5.c @@ -29,7 +29,7 @@ * @mac: Buffer for the hash (16 bytes) * Returns: 0 on success, -1 on failure */ -int +int hmac_md5_vector(const u8 *key, size_t key_len, size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) { @@ -105,7 +105,7 @@ hmac_md5_vector(const u8 *key, size_t key_len, size_t num_elem, * @mac: Buffer for the hash (16 bytes) * Returns: 0 on success, -1 on failure */ -int +int hmac_md5(const u8 *key, size_t key_len, const u8 *data, size_t data_len, u8 *mac) { diff --git a/components/wpa_supplicant/src/crypto/ms_funcs.c b/components/wpa_supplicant/src/crypto/ms_funcs.c index 750a4083bd..05a148525e 100644 --- a/components/wpa_supplicant/src/crypto/ms_funcs.c +++ b/components/wpa_supplicant/src/crypto/ms_funcs.c @@ -525,4 +525,3 @@ int old_nt_password_hash_encrypted_with_new_nt_password_hash( encrypted_password_hash); return 0; } - diff --git a/components/wpa_supplicant/src/crypto/rc4.c b/components/wpa_supplicant/src/crypto/rc4.c index a014afe6e3..e76532e972 100644 --- a/components/wpa_supplicant/src/crypto/rc4.c +++ b/components/wpa_supplicant/src/crypto/rc4.c @@ -19,7 +19,7 @@ #define S_SWAP(a,b) do { u8 t = S[a]; S[a] = S[b]; S[b] = t; } while(0) -int +int rc4_skip(const u8 *key, size_t keylen, size_t skip, u8 *data, size_t data_len) { diff --git a/components/wpa_supplicant/src/crypto/sha1-internal.c b/components/wpa_supplicant/src/crypto/sha1-internal.c index 9210af03fe..f69a9f913d 100644 --- a/components/wpa_supplicant/src/crypto/sha1-internal.c +++ b/components/wpa_supplicant/src/crypto/sha1-internal.c @@ -39,7 +39,7 @@ void SHA1Transform(u32 state[5], const unsigned char buffer[64]); * @mac: Buffer for the hash * Returns: 0 on success, -1 of failure */ -int +int sha1_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) { SHA1_CTX ctx; @@ -51,7 +51,7 @@ sha1_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) SHA1Final(mac, &ctx); return 0; } -#else +#else /** * sha1_vector - SHA-1 hash for data vector * @num_elem: Number of elements in the data vector @@ -79,7 +79,7 @@ sha1_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) goto exit; } } - + if ((ret = mbedtls_sha1_finish_ret( &ctx, mac)) != 0) { goto exit; } @@ -103,7 +103,7 @@ By Steve Reid 100% Public Domain ----------------- -Modified 7/98 +Modified 7/98 By James H. Brown Still 100% Public Domain @@ -125,7 +125,7 @@ Since the file IO in main() reads 16K at a time, any file 8K or larger would be guaranteed to generate the wrong hash (e.g. Test Vector #3, a million "a"s). -I also changed the declaration of variables i & j in SHA1Update to +I also changed the declaration of variables i & j in SHA1Update to unsigned long from unsigned int for the same reason. These changes should make no difference to any 32 bit implementations since @@ -152,7 +152,7 @@ Still 100% public domain Modified 4/01 By Saul Kravitz Still 100% PD -Modified to run on Compaq Alpha hardware. +Modified to run on Compaq Alpha hardware. ----------------- Modified 4/01 @@ -212,7 +212,7 @@ void SHAPrintContext(SHA1_CTX *context, char *msg) { printf("%s (%d,%d) %x %x %x %x %x\n", msg, - context->count[0], context->count[1], + context->count[0], context->count[1], context->state[0], context->state[1], context->state[2], @@ -223,7 +223,7 @@ void SHAPrintContext(SHA1_CTX *context, char *msg) /* Hash a single 512-bit block. This is the core of the algorithm. */ -void +void SHA1Transform(u32 state[5], const unsigned char buffer[64]) { u32 a, b, c, d, e; @@ -282,7 +282,7 @@ SHA1Transform(u32 state[5], const unsigned char buffer[64]) /* SHA1Init - Initialize new context */ -void +void SHA1Init(SHA1_CTX* context) { /* SHA1 initialization constants */ @@ -297,7 +297,7 @@ SHA1Init(SHA1_CTX* context) /* Run your data through this. */ -void +void SHA1Update(SHA1_CTX* context, const void *_data, u32 len) { u32 i, j; @@ -328,7 +328,7 @@ SHA1Update(SHA1_CTX* context, const void *_data, u32 len) /* Add padding and return the message digest. */ -void +void SHA1Final(unsigned char digest[20], SHA1_CTX* context) { u32 i; diff --git a/components/wpa_supplicant/src/crypto/sha1-pbkdf2.c b/components/wpa_supplicant/src/crypto/sha1-pbkdf2.c index 79e1bc382c..c8d4de6d51 100644 --- a/components/wpa_supplicant/src/crypto/sha1-pbkdf2.c +++ b/components/wpa_supplicant/src/crypto/sha1-pbkdf2.c @@ -71,7 +71,7 @@ exit: } #else -static int +static int pbkdf2_sha1_f(const char *passphrase, const char *ssid, size_t ssid_len, int iterations, unsigned int count, u8 *digest) @@ -130,7 +130,7 @@ pbkdf2_sha1_f(const char *passphrase, const char *ssid, * iterations is set to 4096 and buflen to 32. This function is described in * IEEE Std 802.11-2004, Clause H.4. The main construction is from PKCS#5 v2.0. */ -int +int pbkdf2_sha1(const char *passphrase, const char *ssid, size_t ssid_len, int iterations, u8 *buf, size_t buflen) { diff --git a/components/wpa_supplicant/src/crypto/sha1.c b/components/wpa_supplicant/src/crypto/sha1.c index 27cf58b685..20910eeec6 100644 --- a/components/wpa_supplicant/src/crypto/sha1.c +++ b/components/wpa_supplicant/src/crypto/sha1.c @@ -29,7 +29,7 @@ * @mac: Buffer for the hash (20 bytes) * Returns: 0 on success, -1 on failure */ -int +int hmac_sha1_vector(const u8 *key, size_t key_len, size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) { @@ -104,7 +104,7 @@ hmac_sha1_vector(const u8 *key, size_t key_len, size_t num_elem, * @mac: Buffer for the hash (20 bytes) * Returns: 0 on success, -1 of failure */ -int +int hmac_sha1(const u8 *key, size_t key_len, const u8 *data, size_t data_len, u8 *mac) { @@ -125,7 +125,7 @@ hmac_sha1(const u8 *key, size_t key_len, const u8 *data, size_t data_len, * This function is used to derive new, cryptographically separate keys from a * given key (e.g., PMK in IEEE 802.11i). */ -int +int sha1_prf(const u8 *key, size_t key_len, const char *label, const u8 *data, size_t data_len, u8 *buf, size_t buf_len) { @@ -163,4 +163,3 @@ sha1_prf(const u8 *key, size_t key_len, const char *label, return 0; } - diff --git a/components/wpa_supplicant/src/eap_peer/eap.c b/components/wpa_supplicant/src/eap_peer/eap.c index b3277e3aa2..fd78331f47 100644 --- a/components/wpa_supplicant/src/eap_peer/eap.c +++ b/components/wpa_supplicant/src/eap_peer/eap.c @@ -15,7 +15,7 @@ * (session resumption). */ #include - + #include "esp_err.h" #include "utils/includes.h" @@ -85,7 +85,7 @@ EapType eap_peer_get_type(const char *name, int *vendor) return EAP_TYPE_NONE; } -static int +static int eap_allowed_phase2_type(int vendor, int type) { if (vendor != EAP_VENDOR_IETF) @@ -351,7 +351,7 @@ struct wpabuf * eap_sm_build_identity_resp(struct eap_sm *sm, u8 id, int encrypt eap_buf = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_IDENTITY, identity_len, EAP_CODE_RESPONSE, id); if (!eap_buf) { - return NULL; + return NULL; } wpabuf_put_data(eap_buf, identity, identity_len); @@ -481,7 +481,7 @@ int eap_peer_config_init( } return 0; - + } void eap_peer_config_deinit(struct eap_sm *sm) @@ -737,4 +737,3 @@ const struct wpa_config_blob * eap_get_config_blob(struct eap_sm *sm, } return NULL; } - diff --git a/components/wpa_supplicant/src/eap_peer/eap_mschapv2.c b/components/wpa_supplicant/src/eap_peer/eap_mschapv2.c index dff5aeec5c..2e87c0e65d 100644 --- a/components/wpa_supplicant/src/eap_peer/eap_mschapv2.c +++ b/components/wpa_supplicant/src/eap_peer/eap_mschapv2.c @@ -80,7 +80,7 @@ struct eap_mschapv2_data { struct wpabuf *prev_challenge; }; -static void +static void eap_mschapv2_deinit(struct eap_sm *sm, void *priv) { struct eap_mschapv2_data *data = priv; @@ -91,7 +91,7 @@ eap_mschapv2_deinit(struct eap_sm *sm, void *priv) os_free(data); } -static void * +static void * eap_mschapv2_init(struct eap_sm *sm) { struct eap_mschapv2_data *data; @@ -109,7 +109,7 @@ eap_mschapv2_init(struct eap_sm *sm) return data; } -static struct wpabuf * +static struct wpabuf * eap_mschapv2_challenge_reply( struct eap_sm *sm, struct eap_mschapv2_data *data, u8 id, u8 mschapv2_id, const u8 *auth_challenge) @@ -173,7 +173,7 @@ eap_mschapv2_challenge_reply( return resp; } -static struct wpabuf * +static struct wpabuf * eap_mschapv2_challenge( struct eap_sm *sm, struct eap_mschapv2_data *data, struct eap_method_ret *ret, const struct eap_mschapv2_hdr *req, @@ -219,7 +219,7 @@ eap_mschapv2_challenge( challenge); } -static void +static void eap_mschapv2_password_changed(struct eap_sm *sm, struct eap_mschapv2_data *data) { @@ -291,11 +291,11 @@ eap_mschapv2_success(struct eap_sm *sm, return resp; } -static int +static int eap_mschapv2_failure_txt(struct eap_sm *sm, struct eap_mschapv2_data *data, char *txt) { - char *pos; + char *pos; int retry = 1; struct eap_peer_config *config = eap_get_config(sm); @@ -361,7 +361,7 @@ eap_mschapv2_failure_txt(struct eap_sm *sm, return retry == 1; } -static struct wpabuf * +static struct wpabuf * eap_mschapv2_change_password( struct eap_sm *sm, struct eap_mschapv2_data *data, struct eap_method_ret *ret, const struct eap_mschapv2_hdr *req, u8 id) @@ -454,7 +454,7 @@ fail: return NULL; } -static struct wpabuf * +static struct wpabuf * eap_mschapv2_failure(struct eap_sm *sm, struct eap_mschapv2_data *data, struct eap_method_ret *ret, @@ -517,10 +517,10 @@ eap_mschapv2_check_config(struct eap_sm *sm) return -1; } - return 0; + return 0; } -static int +static int eap_mschapv2_check_mslen(struct eap_sm *sm, size_t len, const struct eap_mschapv2_hdr *ms) { @@ -541,7 +541,7 @@ eap_mschapv2_check_mslen(struct eap_sm *sm, size_t len, return -1; } -static void +static void eap_mschapv2_copy_challenge(struct eap_mschapv2_data *data, const struct wpabuf *reqData) { @@ -549,7 +549,7 @@ eap_mschapv2_copy_challenge(struct eap_mschapv2_data *data, data->prev_challenge = wpabuf_dup(reqData); } -static struct wpabuf * +static struct wpabuf * eap_mschapv2_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, const struct wpabuf *reqData) @@ -606,14 +606,14 @@ eap_mschapv2_process(struct eap_sm *sm, void *priv, } } -static bool +static bool eap_mschapv2_isKeyAvailable(struct eap_sm *sm, void *priv) { struct eap_mschapv2_data *data = priv; return data->success && data->master_key_valid; } -static u8 * +static u8 * eap_mschapv2_getKey(struct eap_sm *sm, void *priv, size_t *len) { struct eap_mschapv2_data *data = priv; @@ -638,7 +638,7 @@ eap_mschapv2_getKey(struct eap_sm *sm, void *priv, size_t *len) return key; } -int +int eap_peer_mschapv2_register(void) { struct eap_method *eap; diff --git a/components/wpa_supplicant/src/eap_peer/eap_peap.c b/components/wpa_supplicant/src/eap_peer/eap_peap.c index dad73ae2cb..3a06bc3e89 100644 --- a/components/wpa_supplicant/src/eap_peer/eap_peap.c +++ b/components/wpa_supplicant/src/eap_peer/eap_peap.c @@ -754,7 +754,7 @@ static int eap_peap_phase2_request(struct eap_sm *sm, wpabuf_free(data->pending_phase2_req); data->pending_phase2_req = wpabuf_alloc_copy(hdr, len); } -/* +/* if (*resp == NULL && (config->pending_req_identity || config->pending_req_password || config->pending_req_otp || config->pending_req_new_password)) { @@ -1117,7 +1117,7 @@ eap_peap_process(struct eap_sm *sm, void *priv, eap_peer_tls_derive_key(sm, &data->ssl, label, EAP_TLS_KEY_LEN); if (data->key_data) { - wpa_hexdump_key(MSG_DEBUG, + wpa_hexdump_key(MSG_DEBUG, "EAP-PEAP: Derived key", data->key_data, EAP_TLS_KEY_LEN); diff --git a/components/wpa_supplicant/src/eap_peer/eap_tls.h b/components/wpa_supplicant/src/eap_peer/eap_tls.h index ca9f55d4cc..0689e797a4 100644 --- a/components/wpa_supplicant/src/eap_peer/eap_tls.h +++ b/components/wpa_supplicant/src/eap_peer/eap_tls.h @@ -10,9 +10,9 @@ #define EAP_TLS_H #include "eap_i.h" -#include "eap_common.h" -#include "eap.h" -#include "utils/wpabuf.h" +#include "eap_common.h" +#include "eap.h" +#include "utils/wpabuf.h" void * eap_tls_init(struct eap_sm *sm); void eap_tls_deinit(struct eap_sm *sm, void *priv); diff --git a/components/wpa_supplicant/src/eap_peer/eap_tls_common.c b/components/wpa_supplicant/src/eap_peer/eap_tls_common.c index 9c93f6d0ca..3fd0e17a77 100644 --- a/components/wpa_supplicant/src/eap_peer/eap_tls_common.c +++ b/components/wpa_supplicant/src/eap_peer/eap_tls_common.c @@ -523,7 +523,7 @@ static int eap_tls_process_output(struct eap_ssl_data *data, EapType eap_type, if (*out_data == NULL) { printf("[Debug] out_data is null, return \n"); return -1; - } + } flags = wpabuf_put(*out_data, 1); *flags = peap_version; @@ -655,7 +655,7 @@ int eap_peer_tls_process_helper(struct eap_sm *sm, struct eap_ssl_data *data, */ struct wpabuf * eap_peer_tls_build_ack(u8 id, EapType eap_type, int peap_version) -{ +{ struct wpabuf *resp; resp = eap_tls_msg_alloc(eap_type, 1, EAP_CODE_RESPONSE, id); diff --git a/components/wpa_supplicant/src/eap_peer/eap_ttls.c b/components/wpa_supplicant/src/eap_peer/eap_ttls.c index d086087bac..933f035e66 100644 --- a/components/wpa_supplicant/src/eap_peer/eap_ttls.c +++ b/components/wpa_supplicant/src/eap_peer/eap_ttls.c @@ -77,7 +77,7 @@ static void * eap_ttls_init(struct eap_sm *sm) return NULL; data->ttls_version = EAP_TTLS_VERSION; data->phase2_type = EAP_TTLS_PHASE2_EAP; - + if (config && config->phase2) { if (os_strstr(config->phase2, "autheap=")) { data->phase2_type = EAP_TTLS_PHASE2_EAP; @@ -765,7 +765,7 @@ static int eap_ttls_phase2_request(struct eap_sm *sm, } if (eap_get_config_password(sm, &len) == NULL) { - wpa_printf(MSG_ERROR, "EAP-TTLS: Password not configured\n"); + wpa_printf(MSG_ERROR, "EAP-TTLS: Password not configured\n"); printf("[Debug] Return because no password EAP_TTLS_PHASE2_MSCHAPV2 EAP_TTLS_PHASE2_MSCHAP\n"); return 0; } @@ -1438,7 +1438,7 @@ static int eap_ttls_process_handshake(struct eap_sm *sm, } -static void eap_ttls_check_auth_status(struct eap_sm *sm, +static void eap_ttls_check_auth_status(struct eap_sm *sm, struct eap_ttls_data *data, struct eap_method_ret *ret) { diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_wpa2.c b/components/wpa_supplicant/src/esp_supplicant/esp_wpa2.c index ac8afdf10f..790523b2b2 100644 --- a/components/wpa_supplicant/src/esp_supplicant/esp_wpa2.c +++ b/components/wpa_supplicant/src/esp_supplicant/esp_wpa2.c @@ -1172,4 +1172,3 @@ esp_err_t esp_wifi_sta_wpa2_ent_set_ttls_phase2_method(esp_eap_ttls_phase2_types } return ESP_OK; } - diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_wpa_main.c b/components/wpa_supplicant/src/esp_supplicant/esp_wpa_main.c index df99e2139e..02b87565bb 100644 --- a/components/wpa_supplicant/src/esp_supplicant/esp_wpa_main.c +++ b/components/wpa_supplicant/src/esp_supplicant/esp_wpa_main.c @@ -112,10 +112,10 @@ void wpa_neg_complete(void) bool wpa_attach(void) { - bool ret = true; + bool ret = true; ret = wpa_sm_init(NULL, wpa_sendto_wrapper, wpa_config_assoc_ie, wpa_install_key, wpa_get_key, wpa_deauthenticate, wpa_neg_complete); - if(ret) { + if(ret) { ret = (esp_wifi_register_tx_cb_internal(eapol_txcb, WIFI_TXCB_EAPOL_ID) == ESP_OK); } return ret; diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_wps.c b/components/wpa_supplicant/src/esp_supplicant/esp_wps.c index a61aba992d..2e23e5251f 100644 --- a/components/wpa_supplicant/src/esp_supplicant/esp_wps.c +++ b/components/wpa_supplicant/src/esp_supplicant/esp_wps.c @@ -952,7 +952,7 @@ int wps_stop_process(wifi_event_sta_wps_fail_reason_t reason_code) esp_wifi_disconnect(); wpa_printf(MSG_DEBUG, "Write wps_fail_information"); - + esp_event_send_internal(WIFI_EVENT, WIFI_EVENT_STA_WPS_ER_FAILED, &reason_code, sizeof(reason_code), portMAX_DELAY); return ESP_OK; @@ -2190,4 +2190,3 @@ wifi_set_wps_cb(wps_st_cb_t cb) return false; } - diff --git a/components/wpa_supplicant/src/rsn_supp/wpa.c b/components/wpa_supplicant/src/rsn_supp/wpa.c index 412629279a..a301b6073e 100644 --- a/components/wpa_supplicant/src/rsn_supp/wpa.c +++ b/components/wpa_supplicant/src/rsn_supp/wpa.c @@ -50,7 +50,7 @@ #define ASSOC_IE_LEN 24 + 2 + PMKID_LEN + RSN_SELECTOR_LEN #define MAX_EAPOL_RETRIES 3 -u8 assoc_ie_buf[ASSOC_IE_LEN+2]; +u8 assoc_ie_buf[ASSOC_IE_LEN+2]; void set_assoc_ie(u8 * assoc_buf); @@ -213,13 +213,13 @@ void wpa_eapol_key_send(struct wpa_sm *sm, const u8 *kck, * BSSID from the driver. */ if (wpa_sm_get_bssid(sm, sm->bssid) < 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Failed to read BSSID for " "EAPOL-Key destination address"); #endif } else { dest = sm->bssid; - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Use BSSID (" MACSTR ") as the destination for EAPOL-Key", MAC2STR(dest)); @@ -228,10 +228,10 @@ void wpa_eapol_key_send(struct wpa_sm *sm, const u8 *kck, } if (key_mic && wpa_eapol_key_mic(kck, ver, msg, msg_len, key_mic)) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Failed to generate EAPOL-Key " "version %d MIC", ver); - #endif + #endif goto out; } wpa_hexdump(MSG_MSGDUMP, "WPA: TX EAPOL-Key", msg, msg_len); @@ -267,10 +267,10 @@ void wpa_sm_key_request(struct wpa_sm *sm, int error, int pairwise) ver = WPA_KEY_INFO_TYPE_HMAC_MD5_RC4; if (wpa_sm_get_bssid(sm, bssid) < 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "Failed to read BSSID for EAPOL-Key " "request"); - #endif + #endif return; } @@ -296,7 +296,7 @@ void wpa_sm_key_request(struct wpa_sm *sm, int error, int pairwise) WPA_PUT_BE16(reply->key_data_length, 0); - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Sending EAPOL-Key Request (error=%d " "pairwise=%d ptk_set=%d len=%lu)", error, pairwise, sm->ptk_set, (unsigned long) rlen); @@ -308,12 +308,12 @@ void wpa_sm_key_request(struct wpa_sm *sm, int error, int pairwise) } /* int wpa_supplicant_get_pmk(struct wpa_sm *sm) -{ +{ if(sm->pmk_len >0) { return 0; } else { return 1; - } + } } */ @@ -403,7 +403,7 @@ static int wpa_supplicant_get_pmk(struct wpa_sm *sm, //res = eapol_sm_get_key(sm->eapol, sm->pmk, PMK_LEN); if(!sm->pmk_len) { - res = -1; + res = -1; } if (res == 0) { @@ -508,7 +508,7 @@ int wpa_supplicant_send_2_of_4(struct wpa_sm *sm, const unsigned char *dst, u8 *rbuf; if (wpa_ie == NULL) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_ERROR, "WPA: No wpa_ie set - cannot " "generate msg 2/4"); #endif @@ -540,9 +540,9 @@ int wpa_supplicant_send_2_of_4(struct wpa_sm *sm, const unsigned char *dst, memcpy(reply + 1, wpa_ie, wpa_ie_len); memcpy(reply->key_nonce, nonce, WPA_NONCE_LEN); - + wpa_printf(MSG_DEBUG, "WPA Send EAPOL-Key 2/4\n"); - + wpa_eapol_key_send(sm, ptk->kck, ver, dst, ETH_P_EAPOL, rbuf, rlen, reply->key_mic); wpa_sm_free_eapol(rbuf); @@ -582,7 +582,7 @@ void wpa_supplicant_process_1_of_4(struct wpa_sm *sm, if (sm->proto == WPA_PROTO_RSN) { /* RSN: msg 1/4 should contain PMKID for the selected PMK */ const u8 *_buf = (const u8 *) (key + 1); - size_t len = WPA_GET_BE16(key->key_data_length); + size_t len = WPA_GET_BE16(key->key_data_length); wpa_hexdump(MSG_MSGDUMP, "RSN: msg 1/4 key data", _buf, len); wpa_supplicant_parse_ies(_buf, len, &ie); if (ie.pmkid) { @@ -592,12 +592,12 @@ void wpa_supplicant_process_1_of_4(struct wpa_sm *sm, } #endif /* CONFIG_NO_WPA2 */ res = wpa_supplicant_get_pmk(sm, src_addr, ie.pmkid); - + if (res == -2) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "RSN: Do not reply to msg 1/4 - " "requesting full EAP authentication"); - #endif + #endif return; } if (res) @@ -609,12 +609,12 @@ void wpa_supplicant_process_1_of_4(struct wpa_sm *sm, if (sm->renew_snonce) { if (os_get_random(sm->snonce, WPA_NONCE_LEN)) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Failed to get random data for SNonce"); - #endif + #endif goto failed; } - + sm->renew_snonce = 0; wpa_hexdump(MSG_DEBUG, "WPA: Renewed SNonce", sm->snonce, WPA_NONCE_LEN); @@ -645,7 +645,7 @@ failed: { struct wpa_sm *sm = eloop_ctx; - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Request PTK rekeying"); #endif wpa_sm_key_request(sm, 0, 1); @@ -657,10 +657,10 @@ int wpa_supplicant_install_ptk(struct wpa_sm *sm) int keylen; enum wpa_alg alg; - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Installing PTK to the driver.\n"); #endif - + switch (sm->pairwise_cipher) { case WPA_CIPHER_CCMP: alg = WPA_ALG_CCMP; @@ -671,13 +671,13 @@ int wpa_supplicant_install_ptk(struct wpa_sm *sm) keylen = 32; break; case WPA_CIPHER_NONE: - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Pairwise Cipher Suite: " "NONE - do not use pairwise keys"); - #endif + #endif return 0; default: - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Unsupported pairwise cipher %d", sm->pairwise_cipher); #endif @@ -689,11 +689,11 @@ int wpa_supplicant_install_ptk(struct wpa_sm *sm) if (wpa_sm_set_key(&(sm->install_ptk), alg, sm->bssid, 0, 1, (sm->install_ptk).seq, WPA_KEY_RSC_LEN, (u8 *) sm->ptk.tk1, keylen,sm->key_entry_valid) < 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Failed to set PTK to the " "driver (alg=%d keylen=%d bssid=" MACSTR ")", alg, keylen, MAC2STR(sm->bssid)); - #endif + #endif return -1; } @@ -747,7 +747,7 @@ int wpa_supplicant_check_group_cipher(int group_cipher, *alg = WPA_ALG_WEP40; break; default: - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Unsupported Group Cipher %d", group_cipher); #endif @@ -755,11 +755,11 @@ int wpa_supplicant_check_group_cipher(int group_cipher, } if (ret < 0 ) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Unsupported %s Group Cipher key " "length %d (%d).", wpa_cipher_txt(group_cipher), keylen, maxkeylen); - #endif + #endif } return ret; @@ -773,7 +773,7 @@ void wpa_supplicant_key_neg_complete(struct wpa_sm *sm, MACSTR " [PTK=%s GTK=%s]\n", MAC2STR(addr), wpa_cipher_txt(sm->pairwise_cipher), wpa_cipher_txt(sm->group_cipher)); -#endif +#endif wpa_sm_cancel_auth_timeout(sm); wpa_sm_set_state(WPA_COMPLETED); @@ -792,7 +792,7 @@ void wpa_supplicant_key_neg_complete(struct wpa_sm *sm, * configuration after the 4-Way Handshake. This increases the * likelyhood of the first preauth EAPOL-Start frame getting to * the target AP. - */ + */ } } @@ -804,14 +804,14 @@ int wpa_supplicant_install_gtk(struct wpa_sm *sm, u8 *_gtk = gd->gtk; u8 gtk_buf[32]; u8 *key_rsc=(sm->install_gtk).seq; - + wpa_hexdump(MSG_DEBUG, "WPA: Group Key", gd->gtk, gd->gtk_len); - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Installing GTK to the driver " "(keyidx=%d tx=%d len=%d).\n", gd->keyidx, gd->tx, gd->gtk_len); - #endif + #endif wpa_hexdump(MSG_DEBUG, "WPA: RSC", key_rsc, gd->key_rsc_len); if (sm->group_cipher == WPA_CIPHER_TKIP) { /* Swap Tx/Rx keys for Michael MIC */ @@ -827,21 +827,21 @@ int wpa_supplicant_install_gtk(struct wpa_sm *sm, sm->bssid, //(u8 *) "\xff\xff\xff\xff\xff\xff", gd->keyidx, 1, key_rsc, gd->key_rsc_len, _gtk, gd->gtk_len,sm->key_entry_valid) < 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Failed to set " "GTK to the driver (Group only)."); - #endif + #endif return -1; } } else if (wpa_sm_set_key(&(sm->install_gtk), gd->alg, sm->bssid, //(u8 *) "\xff\xff\xff\xff\xff\xff", gd->keyidx, gd->tx, key_rsc, gd->key_rsc_len, _gtk, gd->gtk_len, sm->key_entry_valid) < 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Failed to set GTK to " "the driver (alg=%d keylen=%d keyidx=%d)", gd->alg, gd->gtk_len, gd->keyidx); - #endif + #endif return -1; } @@ -901,10 +901,10 @@ int wpa_supplicant_gtk_tx_bit_workaround(const struct wpa_sm *sm, * doing Group Key only APs) and without this workaround, the * data connection does not work because wpa_supplicant * configured non-zero keyidx to be used for unicast. */ - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Tx bit set for GTK, but pairwise " "keys are used - ignore Tx bit"); - #endif + #endif return 0; } return tx; @@ -944,9 +944,9 @@ int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm, if (wpa_supplicant_check_group_cipher(sm->group_cipher, gtk_len, gtk_len, &(gd->key_rsc_len), &(gd->alg))) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "RSN: Failed to install GTK"); - #endif + #endif return -1; } return 0; @@ -966,7 +966,7 @@ void wpa_report_ie_mismatch(struct wpa_sm *sm, const u8 *src_addr, const u8 *rsn_ie, size_t rsn_ie_len) #endif { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: %s (src=" MACSTR ")", reason, MAC2STR(src_addr)); #endif @@ -979,7 +979,7 @@ void wpa_report_ie_mismatch(struct wpa_sm *sm, const u8 *src_addr, #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: No WPA IE in " "Beacon/ProbeResp"); - #endif + #endif } wpa_hexdump(MSG_INFO, "WPA: WPA IE in 3/4 msg", wpa_ie, wpa_ie_len); @@ -994,7 +994,7 @@ void wpa_report_ie_mismatch(struct wpa_sm *sm, const u8 *src_addr, #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: No RSN IE in " "Beacon/ProbeResp"); - #endif + #endif } wpa_hexdump(MSG_INFO, "WPA: RSN IE in 3/4 msg", rsn_ie, rsn_ie_len); @@ -1036,20 +1036,20 @@ int ieee80211w_set_keys(struct wpa_sm *sm, struct wpa_eapol_ie_parse *ie) { if (sm->ap_wpa_ie == NULL && sm->ap_rsn_ie == NULL) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: No WPA/RSN IE for this AP known. " "Trying to get from scan results\n"); - #endif + #endif if (wpa_sm_get_beacon_ie(sm) < 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Could not find AP from " "the scan results"); - #endif + #endif } else { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Found the current AP from " "updated scan results\n"); - #endif + #endif } } @@ -1167,10 +1167,10 @@ int ieee80211w_set_keys(struct wpa_sm *sm, } void wpa_sm_set_seq(struct wpa_sm *sm, struct wpa_eapol_key *key, u8 isptk) -{ +{ u8 *key_rsc, *seq; u8 null_rsc[WPA_KEY_RSC_LEN]; - + os_bzero(null_rsc, WPA_KEY_RSC_LEN); if (sm->proto == WPA_PROTO_RSN) { @@ -1180,7 +1180,7 @@ int ieee80211w_set_keys(struct wpa_sm *sm, wpa_hexdump(MSG_DEBUG, "WPA: RSC", key_rsc, WPA_KEY_RSC_LEN); } - seq=(isptk) ? (sm->install_ptk).seq : (sm->install_gtk).seq; + seq=(isptk) ? (sm->install_ptk).seq : (sm->install_gtk).seq; memcpy(seq, key_rsc, WPA_KEY_RSC_LEN); } @@ -1202,9 +1202,9 @@ int ieee80211w_set_keys(struct wpa_sm *sm, wpa_hexdump(MSG_DEBUG, "WPA: IE KeyData", pos, len); wpa_supplicant_parse_ies(pos, len, &ie); if (ie.gtk && !(key_info & WPA_KEY_INFO_ENCR_KEY_DATA)) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: GTK IE in unencrypted key data"); - #endif + #endif goto failed; } @@ -1212,11 +1212,11 @@ int ieee80211w_set_keys(struct wpa_sm *sm, goto failed; if (memcmp(sm->anonce, key->key_nonce, WPA_NONCE_LEN) != 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: ANonce from message 1 of 4-Way " "Handshake differs from 3 of 4-Way Handshake - drop" " packet (src=" MACSTR ")", MAC2STR(sm->bssid)); - #endif + #endif goto failed; } @@ -1224,27 +1224,27 @@ int ieee80211w_set_keys(struct wpa_sm *sm, switch (sm->pairwise_cipher) { case WPA_CIPHER_CCMP: if (keylen != 16) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Invalid CCMP key length " "%d (src=" MACSTR ")", keylen, MAC2STR(sm->bssid)); - #endif + #endif goto failed; } break; case WPA_CIPHER_TKIP: if (keylen != 32) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Invalid TKIP key length " "%d (src=" MACSTR ")", keylen, MAC2STR(sm->bssid)); - #endif + #endif goto failed; } break; } - + /* SNonce was successfully used in msg 3/4, so mark it to be renewed * for the next 4-Way Handshake. If msg 3 is received again, the old * SNonce will still be used to avoid changing PTK. */ @@ -1256,19 +1256,19 @@ int ieee80211w_set_keys(struct wpa_sm *sm, (sm->gd).gtk_len=0; //used as flag if gtk is installed in callback if (ie.gtk) { wpa_sm_set_seq(sm, key, 0); - if (wpa_supplicant_pairwise_gtk(sm, + if (wpa_supplicant_pairwise_gtk(sm, ie.gtk, ie.gtk_len, key_info) < 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "RSN: Failed to configure GTK"); - #endif + #endif goto failed; } } - + if (sm->pmf_cfg.capable && ieee80211w_set_keys(sm, &ie) < 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "RSN: Failed to configure IGTK"); - #endif + #endif goto failed; } @@ -1298,10 +1298,10 @@ failed: } wpa_sm_set_state(WPA_GROUP_HANDSHAKE); - + if((sm->gd).gtk_len) { if (sm->key_install) { - if (wpa_supplicant_install_gtk(sm, &(sm->gd))) + if (wpa_supplicant_install_gtk(sm, &(sm->gd))) goto failed; } else { @@ -1323,7 +1323,7 @@ failed: return 0; failed: - return WLAN_REASON_UNSPECIFIED; + return WLAN_REASON_UNSPECIFIED; } @@ -1339,15 +1339,15 @@ failed: wpa_hexdump(MSG_DEBUG, "RSN: msg 1/2 key data", keydata, keydatalen); wpa_supplicant_parse_ies(keydata, keydatalen, &ie); if (ie.gtk && !(key_info & WPA_KEY_INFO_ENCR_KEY_DATA)) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: GTK IE in unencrypted key data"); - #endif + #endif return -1; } if (ie.gtk == NULL) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: No GTK IE in Group Key msg 1/2"); - #endif + #endif return -1; } maxkeylen = gd->gtk_len = ie.gtk_len - 2; @@ -1363,20 +1363,20 @@ failed: gd->tx = wpa_supplicant_gtk_tx_bit_workaround(sm, !!(ie.gtk[0] & BIT(2))); if (ie.gtk_len - 2 > sizeof(gd->gtk)) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "RSN: Too long GTK in GTK IE " "(len=%lu)", (unsigned long) ie.gtk_len - 2); - #endif + #endif return -1; } memcpy(gd->gtk, ie.gtk + 2, ie.gtk_len - 2); if (ieee80211w_set_keys(sm, &ie) < 0) - { + { #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "RSN: Failed to configure IGTK"); #endif - } + } return 0; } @@ -1392,20 +1392,20 @@ failed: gd->gtk_len = WPA_GET_BE16(key->key_length); maxkeylen = keydatalen; if (keydatalen > extra_len) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Truncated EAPOL-Key packet:" " key_data_length=%lu > extra_len=%lu", (unsigned long) keydatalen, (unsigned long) extra_len); - #endif + #endif return -1; } if (ver == WPA_KEY_INFO_TYPE_HMAC_SHA1_AES) { if (maxkeylen < 8) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Too short maxkeylen (%lu)", (unsigned long) maxkeylen); - #endif + #endif return -1; } maxkeylen -= 8; @@ -1422,11 +1422,11 @@ failed: memcpy(ek, key->key_iv, 16); memcpy(ek + 16, sm->ptk.kek, 16); if (keydatalen > sizeof(gd->gtk)) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: RC4 key data " "too long (%lu)", (unsigned long) keydatalen); - #endif + #endif return -1; } memcpy(gd->gtk, key + 1, keydatalen); @@ -1438,34 +1438,34 @@ failed: } } else if (ver == WPA_KEY_INFO_TYPE_HMAC_SHA1_AES) { if (keydatalen % 8) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Unsupported AES-WRAP " "len %lu", (unsigned long) keydatalen); - #endif + #endif return -1; } if (maxkeylen > sizeof(gd->gtk)) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: AES-WRAP key data " "too long (keydatalen=%lu maxkeylen=%lu)", (unsigned long) keydatalen, (unsigned long) maxkeylen); - #endif + #endif return -1; } if (aes_unwrap(sm->ptk.kek, maxkeylen / 8, (const u8 *) (key + 1), gd->gtk)) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: AES unwrap " "failed - could not decrypt GTK"); #endif return -1; } } else { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Unsupported key_info type %d", ver); - #endif + #endif return -1; } gd->tx = wpa_supplicant_gtk_tx_bit_workaround( @@ -1502,7 +1502,7 @@ failed: WPA_REPLAY_COUNTER_LEN); WPA_PUT_BE16(reply->key_data_length, 0); - + wpa_printf(MSG_DEBUG, "WPA Send 2/2 Group key\n"); wpa_eapol_key_send(sm, sm->ptk.kck, ver, sm->bssid, ETH_P_EAPOL, @@ -1524,7 +1524,7 @@ failed: memset(gd, 0, sizeof(struct wpa_gtk_data)); wpa_printf(MSG_DEBUG, "WPA 1/2 Group Key Handshake\n"); - + key_info = WPA_GET_BE16(key->key_info); keydatalen = WPA_GET_BE16(key->key_data_length); @@ -1544,7 +1544,7 @@ failed: if (ret) goto failed; - /*before callback, set seq for add param difficult in callback*/ + /*before callback, set seq for add param difficult in callback*/ wpa_sm_set_seq(sm, key, 0); sm->key_info=key_info; @@ -1572,14 +1572,14 @@ failed: } if (rekey) { -#ifdef MSG_PRINT +#ifdef MSG_PRINT wpa_printf(MSG_DEBUG, "WPA: Group rekeying " "completed with " MACSTR " [GTK=%s]", MAC2STR(sm->bssid), wpa_cipher_txt(sm->group_cipher)); -#endif +#endif wpa_sm_cancel_auth_timeout(sm); wpa_sm_set_state(WPA_COMPLETED); - } else + } else wpa_supplicant_key_neg_complete(sm, sm->bssid, key_info &WPA_KEY_INFO_SECURE); return 0; @@ -1602,7 +1602,7 @@ failed: wpa_eapol_key_mic(sm->tptk.kck, ver, buf, len, key->key_mic); if (memcmp(mic, key->key_mic, 16) != 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Invalid EAPOL-Key MIC " "when using TPTK - ignoring TPTK"); #endif @@ -1619,20 +1619,20 @@ failed: wpa_eapol_key_mic(sm->ptk.kck, ver, buf, len, key->key_mic); if (memcmp(mic, key->key_mic, 16) != 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Invalid EAPOL-Key MIC " "- dropping packet"); - #endif + #endif return -1; } ok = 1; } if (!ok) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Could not verify EAPOL-Key MIC " "- dropping packet"); - #endif + #endif return -1; } @@ -1641,7 +1641,7 @@ failed: sm->rx_replay_counter_set = 1; /*update request_counter for mic failure report*/ memcpy(sm->request_counter, key->replay_counter, - WPA_REPLAY_COUNTER_LEN); + WPA_REPLAY_COUNTER_LEN); return 0; } @@ -1655,10 +1655,10 @@ failed: wpa_hexdump(MSG_DEBUG, "RSN: encrypted key data", (u8 *) (key + 1), keydatalen); if (!sm->ptk_set) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: PTK not available, " "cannot decrypt EAPOL-Key key data."); - #endif + #endif return -1; } @@ -1679,41 +1679,41 @@ failed: sm->key_mgmt == WPA_KEY_MGMT_SAE) { u8 *buf; if (keydatalen % 8) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Unsupported " "AES-WRAP len %d", keydatalen); - #endif + #endif return -1; } keydatalen -= 8; /* AES-WRAP adds 8 bytes */ - + /*replaced by xxx to remove malloc*/ buf = ((u8 *) (key+1))+ 8; /* buf = os_wifi_malloc(keydatalen); if (buf == NULL) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: No memory for " "AES-UNWRAP buffer"); - #endif + #endif return -1; } */ if (aes_unwrap(sm->ptk.kek, keydatalen / 8, (u8 *) (key + 1), buf)) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: AES unwrap failed - " "could not decrypt EAPOL-Key key data"); - #endif + #endif return -1; } memcpy(key + 1, buf, keydatalen); WPA_PUT_BE16(key->key_data_length, keydatalen); } else { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Unsupported key_info type %d", ver); - #endif + #endif return -1; } wpa_hexdump(MSG_DEBUG, "WPA: decrypted EAPOL-Key key data", @@ -1748,7 +1748,7 @@ failed: wpa_printf(MSG_DEBUG, " key_length=%u key_data_length=%u\n", WPA_GET_BE16(key->key_length), WPA_GET_BE16(key->key_data_length)); -#endif +#endif } /** @@ -1766,7 +1766,7 @@ failed: * The received EAPOL-Key packets are validated and valid packets are replied * to. In addition, key material (PTK, GTK) is configured at the end of a * successful key handshake. - * buf begin from version, so remove mac header ,snap header and ether_type + * buf begin from version, so remove mac header ,snap header and ether_type */ int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len) { @@ -1778,8 +1778,8 @@ int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len) u8 *tmp; int ret = -1; - if (len < sizeof(*hdr) + sizeof(*key)) { -#ifdef DEBUG_PRINT + if (len < sizeof(*hdr) + sizeof(*key)) { +#ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: EAPOL frame too short to be a WPA " "EAPOL-Key (len %lu, expecting at least %lu)", (unsigned long) len, @@ -1787,24 +1787,24 @@ int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len) #endif return 0; } - + tmp = buf; - + hdr = (struct ieee802_1x_hdr *) tmp; key = (struct wpa_eapol_key *) (hdr + 1); plen = be_to_host16(hdr->length); data_len = plen + sizeof(*hdr); -#ifdef DEBUG_PRINT +#ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "IEEE 802.1X RX: version=%d type=%d length=%d\n", hdr->version, hdr->type, plen); #endif - + if (hdr->version < EAPOL_VERSION) { /* TODO: backwards compatibility */ } if (hdr->type != IEEE802_1X_TYPE_EAPOL_KEY) { -#ifdef DEBUG_PRINT +#ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: EAPOL frame (type %u) discarded, " "not a Key frame", hdr->type); #endif @@ -1812,18 +1812,18 @@ int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len) goto out; } if (plen > len - sizeof(*hdr) || plen < sizeof(*key)) { -#ifdef DEBUG_PRINT +#ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: EAPOL frame payload size %lu " "invalid (frame size %lu)", (unsigned long) plen, (unsigned long) len); -#endif +#endif ret = 0; goto out; } if (key->type != EAPOL_KEY_TYPE_WPA && key->type != EAPOL_KEY_TYPE_RSN) { -#ifdef DEBUG_PRINT +#ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: EAPOL-Key type (%d) unknown, " "discarded", key->type); #endif @@ -1834,12 +1834,12 @@ int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len) wpa_eapol_key_dump(MSG_MSGDUMP, key); wpa_hexdump(MSG_MSGDUMP, "WPA: RX EAPOL-Key", tmp, len); - + if (data_len < len) { -#ifdef DEBUG_PRINT +#ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: ignoring %lu bytes after the IEEE " "802.1X data\n", (unsigned long) len - data_len); -#endif +#endif } key_info = WPA_GET_BE16(key->key_info); ver = key_info & WPA_KEY_INFO_TYPE_MASK; @@ -1852,10 +1852,10 @@ int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len) #endif #endif ver != WPA_KEY_INFO_TYPE_HMAC_SHA1_AES) { -#ifdef DEBUG_PRINT +#ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Unsupported EAPOL-Key descriptor " "version %d.", ver); -#endif +#endif goto out; } @@ -1871,21 +1871,21 @@ int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len) if (sm->pairwise_cipher == WPA_CIPHER_CCMP && ver != WPA_KEY_INFO_TYPE_HMAC_SHA1_AES && sm->key_mgmt != WPA_KEY_MGMT_SAE) { -#ifdef DEBUG_PRINT +#ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: CCMP is used, but EAPOL-Key " "descriptor version (%d) is not 2.", ver); -#endif +#endif if (sm->group_cipher != WPA_CIPHER_CCMP && !(key_info & WPA_KEY_INFO_KEY_TYPE)) { /* Earlier versions of IEEE 802.11i did not explicitly * require version 2 descriptor for all EAPOL-Key * packets, so allow group keys to use version 1 if * CCMP is not used for them. */ - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Backwards compatibility: " "allow invalid version for non-CCMP group " "keys"); - #endif + #endif } else goto out; } @@ -1894,40 +1894,40 @@ int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len) if ( sm->rx_replay_counter_set && memcmp(key->replay_counter, sm->rx_replay_counter, WPA_REPLAY_COUNTER_LEN) <= 0) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: EAPOL-Key Replay Counter did not" " increase - dropping packet"); - #endif + #endif goto out; } if (!(key_info & (WPA_KEY_INFO_ACK | WPA_KEY_INFO_SMK_MESSAGE))) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: No Ack bit in key_info"); - #endif + #endif goto out; } if (key_info & WPA_KEY_INFO_REQUEST) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: EAPOL-Key with Request bit - dropped"); - #endif + #endif goto out; } - if ((key_info & WPA_KEY_INFO_MIC) && - wpa_supplicant_verify_eapol_key_mic(sm, key, ver, tmp, data_len)) + if ((key_info & WPA_KEY_INFO_MIC) && + wpa_supplicant_verify_eapol_key_mic(sm, key, ver, tmp, data_len)) goto out; - + extra_len = data_len - sizeof(*hdr) - sizeof(*key); if (WPA_GET_BE16(key->key_data_length) > extra_len) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Invalid EAPOL-Key " "frame - key_data overflow (%d > %lu)", WPA_GET_BE16(key->key_data_length), (unsigned long) extra_len); - #endif + #endif goto out; } extra_len = WPA_GET_BE16(key->key_data_length); @@ -1941,10 +1941,10 @@ int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len) if (key_info & WPA_KEY_INFO_KEY_TYPE) { if (key_info & WPA_KEY_INFO_KEY_INDEX_MASK) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: Ignored EAPOL-Key " "(Pairwise) with non-zero key index"); - #endif + #endif goto out; } @@ -1970,10 +1970,10 @@ int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len) wpa_supplicant_process_1_of_2(sm, src_addr, key, extra_len, ver); } else { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: EAPOL-Key (Group) " "without Mic bit - dropped"); - #endif + #endif } } @@ -2064,7 +2064,7 @@ bool wpa_sm_init(char * payload, WPA_SEND_FUNC snd_func, { struct wpa_sm *sm = &gWpaSm; - sm->eapol_version = 0x1; /* DEFAULT_EAPOL_VERSION */ + sm->eapol_version = 0x1; /* DEFAULT_EAPOL_VERSION */ sm->sendto = snd_func; sm->config_assoc_ie = set_assoc_ie_func; sm->install_ppkey = ppinstallkey; @@ -2074,7 +2074,7 @@ bool wpa_sm_init(char * payload, WPA_SEND_FUNC snd_func, sm->key_entry_valid = 0; sm->key_install = false; wpa_sm_set_state(WPA_INACTIVE); - + sm->pmksa = pmksa_cache_init(wpa_sm_pmksa_free_cb, sm, sm); if (sm->pmksa == NULL) { wpa_printf(MSG_ERROR, @@ -2084,9 +2084,9 @@ bool wpa_sm_init(char * payload, WPA_SEND_FUNC snd_func, return true; } -/** +/** * * wpa_sm_deinit - Deinitialize WPA state machine - * */ + * */ void wpa_sm_deinit(void) { struct wpa_sm *sm = &gWpaSm; @@ -2115,7 +2115,7 @@ void wpa_set_profile(u32 wpa_proto, u8 auth_mode) void wpa_set_pmk(uint8_t *pmk, const u8 *pmkid, bool cache_pmksa) { struct wpa_sm *sm = &gWpaSm; - + memcpy(sm->pmk, pmk, PMK_LEN); sm->pmk_len = PMK_LEN; @@ -2130,7 +2130,7 @@ int wpa_set_bss(char *macddr, char * bssid, u8 pairwise_cipher, u8 group_cipher, { int res = 0; struct wpa_sm *sm = &gWpaSm; - + sm->pairwise_cipher = BIT(pairwise_cipher); sm->group_cipher = BIT(group_cipher); sm->rx_replay_counter_set = 0; //init state not intall replay counter value @@ -2173,7 +2173,7 @@ int wpa_set_bss(char *macddr, char * bssid, u8 pairwise_cipher, u8 group_cipher, #endif set_assoc_ie(assoc_ie_buf); /* use static buffer */ res = wpa_gen_wpa_ie(sm, sm->assoc_wpa_ie, sm->assoc_wpa_ie_len); - if (res < 0) + if (res < 0) return -1; sm->assoc_wpa_ie_len = res; wpa_set_passphrase(passphrase, ssid, ssid_len); @@ -2183,14 +2183,14 @@ int wpa_set_bss(char *macddr, char * bssid, u8 pairwise_cipher, u8 group_cipher, /* * Call after set ssid since we calc pmk inside this routine directly */ - void + void wpa_set_passphrase(char * passphrase, u8 *ssid, size_t ssid_len) { struct wifi_ssid *sta_ssid = esp_wifi_sta_get_prof_ssid_internal(); struct wpa_sm *sm = &gWpaSm; - + if (passphrase == NULL) return; - + /* * Here only handle passphrase string. Need extra step to handle 32B, 64Hex raw * PMK. @@ -2219,23 +2219,23 @@ wpa_set_passphrase(char * passphrase, u8 *ssid, size_t ssid_len) } } - void + void set_assoc_ie(u8 * assoc_buf) { struct wpa_sm *sm = &gWpaSm; - + sm->assoc_wpa_ie = assoc_buf + 2; //wpa_ie insert OUI 4 byte before ver, but RSN have 2 bytes of RSN capability, // so wpa_ie have two more bytes than rsn_ie - if ( sm->proto == WPA_PROTO_WPA) + if ( sm->proto == WPA_PROTO_WPA) sm->assoc_wpa_ie_len = ASSOC_IE_LEN; - else + else sm->assoc_wpa_ie_len = ASSOC_IE_LEN - 2; - sm->config_assoc_ie(sm->proto, assoc_buf, sm->assoc_wpa_ie_len); + sm->config_assoc_ie(sm->proto, assoc_buf, sm->assoc_wpa_ie_len); } - int + int wpa_sm_set_key(struct install_key *key_sm, enum wpa_alg alg, u8 *addr, int key_idx, int set_tx, u8 *seq, size_t seq_len, @@ -2254,14 +2254,14 @@ wpa_sm_set_key(struct install_key *key_sm, enum wpa_alg alg, key_sm->alg = alg; memcpy(key_sm->addr, addr, ETH_ALEN); key_sm->key_idx = key_idx; - key_sm->set_tx = set_tx; + key_sm->set_tx = set_tx; memcpy(key_sm->key, key, key_len); - + sm->install_ppkey(alg, addr, key_idx, set_tx, seq, seq_len, key, key_len, key_entry_valid); return 0; } - int + int wpa_sm_get_key(uint8_t *ifx, int *alg, u8 *addr, int *key_idx, u8 *key, size_t key_len, int key_entry_valid) { struct wpa_sm *sm = &gWpaSm; @@ -2278,7 +2278,7 @@ void wpa_supplicant_clr_countermeasures(u16 *pisunicast) } /*recovery from countermeasures state, countermeasures state is period that stop connection with ap - also used in wpa_init after connecting with ap + also used in wpa_init after connecting with ap */ void wpa_supplicant_stop_countermeasures(u16 *pisunicast) { @@ -2299,9 +2299,9 @@ int wpa_michael_mic_failure(u16 isunicast) { struct wpa_sm *sm = &gWpaSm; int32_t *pmic_errors_seen=(isunicast)? &((sm->install_ptk).mic_errors_seen) : &((sm->install_gtk).mic_errors_seen); - + wpa_printf(MSG_DEBUG, "\nTKIP MIC failure occur\n"); - + /*both unicast and multicast mic_errors_seen need statistics*/ if ((sm->install_ptk).mic_errors_seen + (sm->install_gtk).mic_errors_seen) { /* Send the new MIC error report immediately since we are going @@ -2320,14 +2320,14 @@ int wpa_michael_mic_failure(u16 isunicast) * short while and hope for the best. */ esp_rom_delay_us(10000); - /*deauthenticate AP*/ - - /*stop monitor next mic_failure timer,disconnect for 60sec, then stop contermeasures*/ + /*deauthenticate AP*/ + + /*stop monitor next mic_failure timer,disconnect for 60sec, then stop contermeasures*/ ets_timer_disarm(&(sm->cm_timer)); ets_timer_done(&(sm->cm_timer)); ets_timer_setfn(&(sm->cm_timer), (ETSTimerFunc *)wpa_supplicant_stop_countermeasures, NULL); ets_timer_arm(&(sm->cm_timer), 60*1000, false); - + /* TODO: mark the AP rejected for 60 second. STA is * allowed to associate with another AP.. */ } else { @@ -2345,11 +2345,11 @@ int wpa_michael_mic_failure(u16 isunicast) } /* - eapol tx callback function to make sure new key + eapol tx callback function to make sure new key install after 4-way handoff */ void eapol_txcb(void *eb) -{ +{ struct wpa_sm *sm = &gWpaSm; u8 isdeauth = 0; //no_zero value is the reason for deauth @@ -2357,8 +2357,8 @@ void eapol_txcb(void *eb) return; } - switch(WPA_SM_STATE(sm)) { - case WPA_FIRST_HALF_4WAY_HANDSHAKE: + switch(WPA_SM_STATE(sm)) { + case WPA_FIRST_HALF_4WAY_HANDSHAKE: break; case WPA_LAST_HALF_4WAY_HANDSHAKE: if (sm->txcb_flags & WPA_4_4_HANDSHAKE_BIT) { @@ -2377,12 +2377,12 @@ void eapol_txcb(void *eb) } break; case WPA_TKIP_COUNTERMEASURES: isdeauth=WLAN_REASON_MICHAEL_MIC_FAILURE; - break; - default: break; + break; + default: break; } if(isdeauth) { - wpa_sm_deauthenticate(sm, isdeauth); + wpa_sm_deauthenticate(sm, isdeauth); } } @@ -2419,4 +2419,3 @@ void wpa_sta_clear_curr_pmksa(void) { } #endif // ESP_SUPPLICANT - diff --git a/components/wpa_supplicant/src/rsn_supp/wpa.h b/components/wpa_supplicant/src/rsn_supp/wpa.h index e6356be62b..491c12c813 100644 --- a/components/wpa_supplicant/src/rsn_supp/wpa.h +++ b/components/wpa_supplicant/src/rsn_supp/wpa.h @@ -137,4 +137,3 @@ uint32_t cipher_type_map_supp_to_public(wifi_cipher_type_t cipher); void wpa_sta_clear_curr_pmksa(void); #endif /* WPA_H */ - diff --git a/components/wpa_supplicant/src/rsn_supp/wpa_i.h b/components/wpa_supplicant/src/rsn_supp/wpa_i.h index 831810a5d5..e7f29abe93 100644 --- a/components/wpa_supplicant/src/rsn_supp/wpa_i.h +++ b/components/wpa_supplicant/src/rsn_supp/wpa_i.h @@ -169,4 +169,3 @@ int wpa_set_bss(char *macddr, char * bssid, u8 pairwise_cipher, u8 group_cipher, int wpa_sm_rx_eapol(u8 *src_addr, u8 *buf, u32 len); #endif /* WPA_I_H */ - diff --git a/components/wpa_supplicant/src/rsn_supp/wpa_ie.c b/components/wpa_supplicant/src/rsn_supp/wpa_ie.c index d648a45429..7b949634ac 100644 --- a/components/wpa_supplicant/src/rsn_supp/wpa_ie.c +++ b/components/wpa_supplicant/src/rsn_supp/wpa_ie.c @@ -131,9 +131,9 @@ static int wpa_gen_wpa_ie_rsn(u8 *rsn_ie, size_t rsn_ie_len, return -1; } - /* For WPA2-PSK, if the RSNE in AP beacon/probe response doesn't specify the + /* For WPA2-PSK, if the RSNE in AP beacon/probe response doesn't specify the * pairwise cipher or AKM suite, the RSNE IE in association request - * should only contain group cihpher suite, otherwise the WPA2 improvements + * should only contain group cihpher suite, otherwise the WPA2 improvements * certification will fail. */ if ( (sm->ap_notify_completed_rsne == true) || (key_mgmt == WPA_KEY_MGMT_IEEE8021X) ) { @@ -370,11 +370,11 @@ int wpa_supplicant_parse_ies(const u8 *buf, size_t len, break; } if (pos + 2 + pos[1] > end) { - #ifdef DEBUG_PRINT + #ifdef DEBUG_PRINT wpa_printf(MSG_DEBUG, "WPA: EAPOL-Key Key Data " "underflow (ie=%d len=%d pos=%d)", pos[0], pos[1], (int) (pos - buf)); - #endif + #endif wpa_hexdump(MSG_DEBUG, "WPA: Key Data", buf, len); ret = -1; @@ -404,4 +404,3 @@ int wpa_supplicant_parse_ies(const u8 *buf, size_t len, #endif // ESP_SUPPLICANT - diff --git a/components/wpa_supplicant/src/tls/bignum.c b/components/wpa_supplicant/src/tls/bignum.c index 2e1ea8e282..7f2bd7eb04 100644 --- a/components/wpa_supplicant/src/tls/bignum.c +++ b/components/wpa_supplicant/src/tls/bignum.c @@ -35,7 +35,7 @@ * bignum_init - Allocate memory for bignum * Returns: Pointer to allocated bignum or %NULL on failure */ -struct bignum * +struct bignum * bignum_init(void) { struct bignum *n = (struct bignum *)os_zalloc(sizeof(mp_int)); @@ -53,7 +53,7 @@ bignum_init(void) * bignum_deinit - Free bignum * @n: Bignum from bignum_init() */ -void +void bignum_deinit(struct bignum *n) { if (n) { @@ -68,7 +68,7 @@ bignum_deinit(struct bignum *n) * @n: Bignum from bignum_init() * Returns: Length of n if written to a binary buffer */ -size_t +size_t bignum_get_unsigned_bin_len(struct bignum *n) { return mp_unsigned_bin_size((mp_int *) n); @@ -83,7 +83,7 @@ bignum_get_unsigned_bin_len(struct bignum *n) * enough. Set to used buffer length on success if not %NULL. * Returns: 0 on success, -1 on failure */ -int +int bignum_get_unsigned_bin(const struct bignum *n, u8 *buf, size_t *len) { size_t need = mp_unsigned_bin_size((mp_int *) n); @@ -108,7 +108,7 @@ bignum_get_unsigned_bin(const struct bignum *n, u8 *buf, size_t *len) * @len: Length of buf in octets * Returns: 0 on success, -1 on failure */ -int +int bignum_set_unsigned_bin(struct bignum *n, const u8 *buf, size_t len) { if (mp_read_unsigned_bin((mp_int *) n, (u8 *) buf, len) != MP_OKAY) { @@ -125,7 +125,7 @@ bignum_set_unsigned_bin(struct bignum *n, const u8 *buf, size_t len) * @b: Bignum from bignum_init() * Returns: 0 on success, -1 on failure */ -int +int bignum_cmp(const struct bignum *a, const struct bignum *b) { return mp_cmp((mp_int *) a, (mp_int *) b); @@ -138,7 +138,7 @@ bignum_cmp(const struct bignum *a, const struct bignum *b) * @b: Small integer * Returns: 0 on success, -1 on failure */ -int +int bignum_cmp_d(const struct bignum *a, unsigned long b) { return mp_cmp_d((mp_int *) a, b); @@ -152,7 +152,7 @@ bignum_cmp_d(const struct bignum *a, unsigned long b) * @c: Bignum from bignum_init(); used to store the result of a + b * Returns: 0 on success, -1 on failure */ -int +int bignum_add(const struct bignum *a, const struct bignum *b, struct bignum *c) { @@ -171,7 +171,7 @@ bignum_add(const struct bignum *a, const struct bignum *b, * @c: Bignum from bignum_init(); used to store the result of a - b * Returns: 0 on success, -1 on failure */ -int +int bignum_sub(const struct bignum *a, const struct bignum *b, struct bignum *c) { @@ -190,7 +190,7 @@ bignum_sub(const struct bignum *a, const struct bignum *b, * @c: Bignum from bignum_init(); used to store the result of a * b * Returns: 0 on success, -1 on failure */ -int +int bignum_mul(const struct bignum *a, const struct bignum *b, struct bignum *c) { @@ -210,7 +210,7 @@ bignum_mul(const struct bignum *a, const struct bignum *b, * @d: Bignum from bignum_init(); used to store the result of a * b (mod c) * Returns: 0 on success, -1 on failure */ -int +int bignum_mulmod(const struct bignum *a, const struct bignum *b, const struct bignum *c, struct bignum *d) { @@ -231,7 +231,7 @@ bignum_mulmod(const struct bignum *a, const struct bignum *b, * @d: Bignum from bignum_init(); used to store the result of a^b (mod c) * Returns: 0 on success, -1 on failure */ -int +int bignum_exptmod(const struct bignum *a, const struct bignum *b, const struct bignum *c, struct bignum *d) { diff --git a/components/wpa_supplicant/src/tls/libtommath.h b/components/wpa_supplicant/src/tls/libtommath.h index 07574de7fc..ea651db3ec 100644 --- a/components/wpa_supplicant/src/tls/libtommath.h +++ b/components/wpa_supplicant/src/tls/libtommath.h @@ -107,7 +107,7 @@ typedef int mp_err; #define MP_PREC 32 /* default digits of precision */ #else #define MP_PREC 8 /* default digits of precision */ - #endif + #endif #endif /* size of comba arrays, should be at least 2 * 2**(BITS_PER_WORD - BITS_PER_DIGIT*2) */ @@ -265,8 +265,8 @@ s_mp_add (mp_int * a, mp_int * b, mp_int * c) *tmpc++ &= MP_MASK; } - /* now copy higher words if any, that is in A+B - * if A or B has more digits add those in + /* now copy higher words if any, that is in A+B + * if A or B has more digits add those in */ if (min != max) { for (; i < max; i++) { @@ -496,29 +496,29 @@ mp_mul (mp_int * a, mp_int * b, mp_int * c) #ifdef BN_MP_TOOM_MUL_C if (MIN (a->used, b->used) >= TOOM_MUL_CUTOFF) { res = mp_toom_mul(a, b, c); - } else + } else #endif #ifdef BN_MP_KARATSUBA_MUL_C /* use Karatsuba? */ if (MIN (a->used, b->used) >= KARATSUBA_MUL_CUTOFF) { res = mp_karatsuba_mul (a, b, c); - } else + } else #endif { /* can we use the fast multiplier? * - * The fast multiplier can be used if the output will - * have less than MP_WARRAY digits and the number of + * The fast multiplier can be used if the output will + * have less than MP_WARRAY digits and the number of * digits won't affect carry propagation */ #ifdef BN_FAST_S_MP_MUL_DIGS_C int digs = a->used + b->used + 1; if ((digs < MP_WARRAY) && - MIN(a->used, b->used) <= + MIN(a->used, b->used) <= (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { res = fast_s_mp_mul_digs (a, b, c, digs); - } else + } else #endif #ifdef BN_S_MP_MUL_DIGS_C res = s_mp_mul (a, b, c); /* uses s_mp_mul_digs */ @@ -631,7 +631,7 @@ mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) err = mp_exptmod(&tmpG, &tmpX, P, Y); mp_clear_multi(&tmpG, &tmpX, NULL); return err; -#else +#else #error mp_exptmod would always fail /* no invmod */ return MP_VAL; @@ -657,7 +657,7 @@ mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) dr = mp_reduce_is_2k(P) << 1; } #endif - + /* if the modulus is odd or dr != 0 use the montgomery method */ #ifdef BN_MP_EXPTMOD_FAST_C if (mp_isodd (P) == 1 || dr != 0) { @@ -690,7 +690,7 @@ mp_cmp (mp_int * a, mp_int * b) return MP_GT; } } - + /* compare digits */ if (a->sign == MP_NEG) { /* if negative compare opposite direction */ @@ -780,7 +780,7 @@ mp_invmod_slow (mp_int * a, mp_int * b, mp_int * c) } /* init temps */ - if ((res = mp_init_multi(&x, &y, &u, &v, + if ((res = mp_init_multi(&x, &y, &u, &v, &A, &B, &C, &D, NULL)) != MP_OKAY) { return res; } @@ -907,14 +907,14 @@ top: goto LBL_ERR; } } - + /* too big */ while (mp_cmp_mag(&C, b) != MP_LT) { if ((res = mp_sub(&C, b, &C)) != MP_OKAY) { goto LBL_ERR; } } - + /* C is now the inverse */ mp_exch (&C, c); res = MP_OKAY; @@ -935,7 +935,7 @@ mp_cmp_mag (mp_int * a, mp_int * b) if (a->used > b->used) { return MP_GT; } - + if (a->used < b->used) { return MP_LT; } @@ -1208,8 +1208,8 @@ mp_rshd (mp_int * a, int b) /* top [offset into digits] */ top = a->dp + b; - /* this is implemented as a sliding window where - * the window is b-digits long and digits from + /* this is implemented as a sliding window where + * the window is b-digits long and digits from * the top of the window are copied to the bottom * * e.g. @@ -1227,13 +1227,13 @@ mp_rshd (mp_int * a, int b) *bottom++ = 0; } } - + /* remove excess digits */ a->used -= b; } -/* swap the elements of two integers, for cases where you can't simply swap the +/* swap the elements of two integers, for cases where you can't simply swap the * mp_int pointers around */ static void @@ -1247,7 +1247,7 @@ mp_exch (mp_int * a, mp_int * b) } -/* trim unused digits +/* trim unused digits * * This is used to ensure that leading zero digits are * trimed and the leading "used" digit will be non-zero @@ -1310,7 +1310,7 @@ mp_grow (mp_int * a, int size) #ifdef BN_MP_ABS_C -/* b = |a| +/* b = |a| * * Simple function copies the input and fixes the sign to positive */ @@ -1450,7 +1450,7 @@ mp_mul_2d (mp_int * a, int b, mp_int * c) /* set the carry to the carry bits of the current word */ r = rr; } - + /* set final carry */ if (r != 0) { c->dp[(c->used)++] = r; @@ -1463,7 +1463,7 @@ mp_mul_2d (mp_int * a, int b, mp_int * c) #ifdef BN_MP_INIT_MULTI_C static int -mp_init_multi(mp_int *mp, ...) +mp_init_multi(mp_int *mp, ...) { mp_err res = MP_OKAY; /* Assume ok until proven otherwise */ int n = 0; /* Number of ok inits */ @@ -1477,11 +1477,11 @@ mp_init_multi(mp_int *mp, ...) succeeded in init-ing, then return error. */ va_list clean_args; - + /* end the current list */ va_end(args); - - /* now start cleaning up */ + + /* now start cleaning up */ cur_arg = mp; va_start(clean_args, mp); while (n--) { @@ -1503,7 +1503,7 @@ mp_init_multi(mp_int *mp, ...) #ifdef BN_MP_CLEAR_MULTI_C static void -mp_clear_multi(mp_int *mp, ...) +mp_clear_multi(mp_int *mp, ...) { mp_int* next_mp = mp; va_list args; @@ -1579,7 +1579,7 @@ mp_count_bits (mp_int * a) /* get number of digits and add that */ r = (a->used - 1) * DIGIT_BIT; - + /* take the last digit and count the bits in it */ q = a->dp[a->used - 1]; while (q > ((mp_digit) 0)) { @@ -1651,7 +1651,7 @@ mp_div(mp_int * a, mp_int * b, mp_int * c, mp_int * d) } return res; } - + /* init our temps */ if ((res = mp_init_multi(&ta, &tb, &tq, &q, NULL) != MP_OKAY)) { return res; @@ -1661,7 +1661,7 @@ mp_div(mp_int * a, mp_int * b, mp_int * c, mp_int * d) mp_set(&tq, 1); n = mp_count_bits(a) - mp_count_bits(b); if (((res = mp_abs(a, &ta)) != MP_OKAY) || - ((res = mp_abs(b, &tb)) != MP_OKAY) || + ((res = mp_abs(b, &tb)) != MP_OKAY) || ((res = mp_mul_2d(&tb, n, &tb)) != MP_OKAY) || ((res = mp_mul_2d(&tq, n, &tq)) != MP_OKAY)) { goto LBL_ERR; @@ -1698,17 +1698,17 @@ LBL_ERR: #else -/* integer signed division. +/* integer signed division. * c*b + d == a [e.g. a/b, c=quotient, d=remainder] * HAC pp.598 Algorithm 14.20 * - * Note that the description in HAC is horribly - * incomplete. For example, it doesn't consider - * the case where digits are removed from 'x' in - * the inner loop. It also doesn't consider the + * Note that the description in HAC is horribly + * incomplete. For example, it doesn't consider + * the case where digits are removed from 'x' in + * the inner loop. It also doesn't consider the * case that y has fewer than three digits, etc.. * - * The overall algorithm is as described as + * The overall algorithm is as described as * 14.20 from HAC but fixed to treat these cases. */ static int @@ -1799,7 +1799,7 @@ mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) continue; } - /* step 3.1 if xi == yt then set q{i-t-1} to b-1, + /* step 3.1 if xi == yt then set q{i-t-1} to b-1, * otherwise set q{i-t-1} to (xi*b + x{i-1})/yt */ if (x.dp[i] == y.dp[t]) { q.dp[i - t - 1] = ((((mp_digit)1) << DIGIT_BIT) - 1); @@ -1813,10 +1813,10 @@ mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) q.dp[i - t - 1] = (mp_digit) (tmp & (mp_word) (MP_MASK)); } - /* while (q{i-t-1} * (yt * b + y{t-1})) > - xi * b**2 + xi-1 * b + xi-2 - - do q{i-t-1} -= 1; + /* while (q{i-t-1} * (yt * b + y{t-1})) > + xi * b**2 + xi-1 * b + xi-2 + + do q{i-t-1} -= 1; */ q.dp[i - t - 1] = (q.dp[i - t - 1] + 1) & MP_MASK; do { @@ -1867,10 +1867,10 @@ mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) } } - /* now q is the quotient and x is the remainder - * [which we have to normalize] + /* now q is the quotient and x is the remainder + * [which we have to normalize] */ - + /* get sign before writing to c */ x.sign = x.used == 0 ? MP_ZPOS : a->sign; @@ -1939,7 +1939,7 @@ s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) /* init M array */ /* init first cell */ if ((err = mp_init(&M[1])) != MP_OKAY) { - return err; + return err; } /* now init the second half of the array */ @@ -1957,7 +1957,7 @@ s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) if ((err = mp_init (&mu)) != MP_OKAY) { goto LBL_M; } - + if (redmode == 0) { if ((err = mp_reduce_setup (&mu, P)) != MP_OKAY) { goto LBL_MU; @@ -1968,22 +1968,22 @@ s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) goto LBL_MU; } redux = mp_reduce_2k_l; - } + } /* create M table * - * The M table contains powers of the base, + * The M table contains powers of the base, * e.g. M[x] = G**x mod P * - * The first half of the table is not + * The first half of the table is not * computed though accept for M[0] and M[1] */ if ((err = mp_mod (G, P, &M[1])) != MP_OKAY) { goto LBL_MU; } - /* compute the value at M[1<<(winsize-1)] by squaring - * M[1] (winsize-1) times + /* compute the value at M[1<<(winsize-1)] by squaring + * M[1] (winsize-1) times */ if ((err = mp_copy (&M[1], &M[1 << (winsize - 1)])) != MP_OKAY) { goto LBL_MU; @@ -1991,7 +1991,7 @@ s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) for (x = 0; x < (winsize - 1); x++) { /* square it */ - if ((err = mp_sqr (&M[1 << (winsize - 1)], + if ((err = mp_sqr (&M[1 << (winsize - 1)], &M[1 << (winsize - 1)])) != MP_OKAY) { goto LBL_MU; } @@ -2143,18 +2143,18 @@ mp_sqr (mp_int * a, mp_int * b) if (a->used >= TOOM_SQR_CUTOFF) { res = mp_toom_sqr(a, b); /* Karatsuba? */ - } else + } else #endif #ifdef BN_MP_KARATSUBA_SQR_C if (a->used >= KARATSUBA_SQR_CUTOFF) { res = mp_karatsuba_sqr (a, b); - } else + } else #endif { #ifdef BN_FAST_S_MP_SQR_C /* can we use the fast comba multiplier? */ - if ((a->used * 2 + 1) < MP_WARRAY && - a->used < + if ((a->used * 2 + 1) < MP_WARRAY && + a->used < (1 << (sizeof(mp_word) * CHAR_BIT - 2*DIGIT_BIT - 1))) { res = fast_s_mp_sqr (a, b); } else @@ -2171,7 +2171,7 @@ if (a->used >= KARATSUBA_SQR_CUTOFF) { } -/* reduces a modulo n where n is of the form 2**p - d +/* reduces a modulo n where n is of the form 2**p - d This differs from reduce_2k since "d" can be larger than a single digit. */ @@ -2180,33 +2180,33 @@ mp_reduce_2k_l(mp_int *a, mp_int *n, mp_int *d) { mp_int q; int p, res; - + if ((res = mp_init(&q)) != MP_OKAY) { return res; } - - p = mp_count_bits(n); + + p = mp_count_bits(n); top: /* q = a/2**p, a = a mod 2**p */ if ((res = mp_div_2d(a, p, &q, a)) != MP_OKAY) { goto ERR; } - + /* q = q * d */ - if ((res = mp_mul(&q, d, &q)) != MP_OKAY) { + if ((res = mp_mul(&q, d, &q)) != MP_OKAY) { goto ERR; } - + /* a = a + q */ if ((res = s_mp_add(a, &q, a)) != MP_OKAY) { goto ERR; } - + if (mp_cmp_mag(a, n) != MP_LT) { s_mp_sub(a, n, a); goto top; } - + ERR: mp_clear(&q); return res; @@ -2219,26 +2219,26 @@ mp_reduce_2k_setup_l(mp_int *a, mp_int *d) { int res; mp_int tmp; - + if ((res = mp_init(&tmp)) != MP_OKAY) { return res; } - + if ((res = mp_2expt(&tmp, mp_count_bits(a))) != MP_OKAY) { goto ERR; } - + if ((res = s_mp_sub(&tmp, a, d)) != MP_OKAY) { goto ERR; } - + ERR: mp_clear(&tmp); return res; } -/* computes a = 2**b +/* computes a = 2**b * * Simple algorithm which zeroes the int, grows it then just sets one bit * as required. @@ -2273,7 +2273,7 @@ static int mp_reduce_setup (mp_int * a, mp_int * b) { int res; - + if ((res = mp_2expt (a, b->used * 2 * DIGIT_BIT)) != MP_OKAY) { return res; } @@ -2281,7 +2281,7 @@ mp_reduce_setup (mp_int * a, mp_int * b) } -/* reduces x mod m, assumes 0 < x < m**2, mu is +/* reduces x mod m, assumes 0 < x < m**2, mu is * precomputed via mp_reduce_setup. * From HAC pp.604 Algorithm 14.42 */ @@ -2297,7 +2297,7 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) } /* q1 = x / b**(k-1) */ - mp_rshd (&q, um - 1); + mp_rshd (&q, um - 1); /* according to HAC this optimization is ok */ if (((unsigned long) um) > (((mp_digit)1) << (DIGIT_BIT - 1))) { @@ -2313,8 +2313,8 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) if ((res = fast_s_mp_mul_high_digs (&q, mu, &q, um)) != MP_OKAY) { goto CLEANUP; } -#else - { +#else + { #error mp_reduce would always fail res = MP_VAL; goto CLEANUP; @@ -2323,7 +2323,7 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) } /* q3 = q2 / b**(k+1) */ - mp_rshd (&q, um + 1); + mp_rshd (&q, um + 1); /* x = x mod b**(k+1), quick (no division) */ if ((res = mp_mod_2d (x, DIGIT_BIT * (um + 1), x)) != MP_OKAY) { @@ -2357,7 +2357,7 @@ mp_reduce (mp_int * x, mp_int * m, mp_int * mu) goto CLEANUP; } } - + CLEANUP: mp_clear (&q); @@ -2366,7 +2366,7 @@ CLEANUP: /* multiplies |a| * |b| and only computes up to digs digits of result - * HAC pp. 595, Algorithm 14.12 Modified so you can control how + * HAC pp. 595, Algorithm 14.12 Modified so you can control how * many digits of output are created. */ static int @@ -2380,7 +2380,7 @@ s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* can we use the fast multiplier? */ if (((digs) < MP_WARRAY) && - MIN (a->used, b->used) < + MIN (a->used, b->used) < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { return fast_s_mp_mul_digs (a, b, c, digs); } @@ -2402,10 +2402,10 @@ s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* setup some aliases */ /* copy of the digit from a used within the nested loop */ tmpx = a->dp[ix]; - + /* an alias for the destination shifted ix places */ tmpt = t.dp + ix; - + /* an alias for the digits of b */ tmpy = b->dp; @@ -2438,15 +2438,15 @@ s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* Fast (comba) multiplier * - * This is the fast column-array [comba] multiplier. It is - * designed to compute the columns of the product first - * then handle the carries afterwards. This has the effect + * This is the fast column-array [comba] multiplier. It is + * designed to compute the columns of the product first + * then handle the carries afterwards. This has the effect * of making the nested loops that compute the columns very * simple and schedulable on super-scalar processors. * - * This has been modified to produce a variable number of - * digits of output so if say only a half-product is required - * you don't have to compute the upper half (a feature + * This has been modified to produce a variable number of + * digits of output so if say only a half-product is required + * you don't have to compute the upper half (a feature * required for fast Barrett reduction). * * Based on Algorithm 14.12 on pp.595 of HAC. @@ -2471,7 +2471,7 @@ fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) /* clear the carry */ _W = 0; - for (ix = 0; ix < pa; ix++) { + for (ix = 0; ix < pa; ix++) { int tx, ty; int iy; mp_digit *tmpx, *tmpy; @@ -2484,7 +2484,7 @@ fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) tmpx = a->dp + tx; tmpy = b->dp + ty; - /* this is the number of times the loop will iterrate, essentially + /* this is the number of times the loop will iterrate, essentially while (tx++ < a->used && ty-- >= 0) { ... } */ iy = MIN(a->used-tx, ty+1); @@ -2531,8 +2531,8 @@ mp_init_size (mp_int * a, int size) int x; /* pad size so there are always extra digits */ - size += (MP_PREC * 2) - (size % MP_PREC); - + size += (MP_PREC * 2) - (size % MP_PREC); + /* alloc mem */ a->dp = OPT_CAST(mp_digit) XMALLOC (sizeof (mp_digit) * size); if (a->dp == NULL) { @@ -2587,7 +2587,7 @@ s_mp_sqr (mp_int * a, mp_int * b) /* alias for where to store the results */ tmpt = t.dp + (2*ix + 1); - + for (iy = ix + 1; iy < pa; iy++) { /* first calculate the product */ r = ((mp_word)tmpx) * ((mp_word)a->dp[iy]); @@ -2897,24 +2897,24 @@ mp_mul_2(mp_int * a, mp_int * b) /* alias for source */ tmpa = a->dp; - + /* alias for dest */ tmpb = b->dp; /* carry */ r = 0; for (x = 0; x < a->used; x++) { - - /* get what will be the *next* carry bit from the - * MSB of the current digit + + /* get what will be the *next* carry bit from the + * MSB of the current digit */ rr = *tmpa >> ((mp_digit)(DIGIT_BIT - 1)); - + /* now shift up this digit, add in the carry [from the previous] */ *tmpb++ = ((*tmpa++ << ((mp_digit)1)) | r) & MP_MASK; - - /* copy the carry that would be from the source - * digit into the next iteration + + /* copy the carry that would be from the source + * digit into the next iteration */ r = rr; } @@ -2926,8 +2926,8 @@ mp_mul_2(mp_int * a, mp_int * b) ++(b->used); } - /* now zero any excess digits on the destination - * that we didn't write to + /* now zero any excess digits on the destination + * that we didn't write to */ tmpb = b->dp + b->used; for (x = b->used; x < oldused; x++) { @@ -3047,7 +3047,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) /* determine and setup reduction code */ if (redmode == 0) { -#ifdef BN_MP_MONTGOMERY_SETUP_C +#ifdef BN_MP_MONTGOMERY_SETUP_C /* now setup montgomery */ if ((err = mp_montgomery_setup (P, &mp)) != MP_OKAY) { goto LBL_M; @@ -3062,7 +3062,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) if (((P->used * 2 + 1) < MP_WARRAY) && P->used < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { redux = fast_mp_montgomery_reduce; - } else + } else #endif { #ifdef BN_MP_MONTGOMERY_REDUCE_C @@ -3113,7 +3113,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) if ((err = mp_montgomery_calc_normalization (&res, P)) != MP_OKAY) { goto LBL_RES; } -#else +#else err = MP_VAL; goto LBL_RES; #endif @@ -3281,10 +3281,10 @@ LBL_M: #ifdef BN_FAST_S_MP_SQR_C /* the jist of squaring... - * you do like mult except the offset of the tmpx [one that - * starts closer to zero] can't equal the offset of tmpy. + * you do like mult except the offset of the tmpx [one that + * starts closer to zero] can't equal the offset of tmpy. * So basically you set up iy like before then you min it with - * (ty-tx) so that it never happens. You double all those + * (ty-tx) so that it never happens. You double all those * you add in the inner loop After that loop you do the squares and add them in. @@ -3307,7 +3307,7 @@ fast_s_mp_sqr (mp_int * a, mp_int * b) /* number of output digits to produce */ W1 = 0; - for (ix = 0; ix < pa; ix++) { + for (ix = 0; ix < pa; ix++) { int tx, ty, iy; mp_word _W; mp_digit *tmpy; @@ -3328,7 +3328,7 @@ fast_s_mp_sqr (mp_int * a, mp_int * b) */ iy = MIN(a->used-tx, ty+1); - /* now for squaring tx can never equal ty + /* now for squaring tx can never equal ty * we halve the distance since they approach at a rate of 2x * and we have to round because odd cases need to be executed */ diff --git a/components/wpa_supplicant/src/tls/pkcs5.c b/components/wpa_supplicant/src/tls/pkcs5.c index 4697074074..aa600a026b 100644 --- a/components/wpa_supplicant/src/tls/pkcs5.c +++ b/components/wpa_supplicant/src/tls/pkcs5.c @@ -166,7 +166,7 @@ static struct crypto_cipher * pkcs5_crypto_init(struct pkcs5_params *params, wpa_hexdump_key(MSG_DEBUG, "PKCS #5: DES IV", hash + 8, 8); return crypto_cipher_init(CRYPTO_CIPHER_ALG_DES, hash + 8, hash, 8); - + } u8 * pkcs5_decrypt(const u8 *enc_alg, size_t enc_alg_len, diff --git a/components/wpa_supplicant/src/tls/tls_internal.c b/components/wpa_supplicant/src/tls/tls_internal.c index 73e9aa2fd6..c0b237a89c 100644 --- a/components/wpa_supplicant/src/tls/tls_internal.c +++ b/components/wpa_supplicant/src/tls/tls_internal.c @@ -394,7 +394,7 @@ struct wpabuf * tls_connection_handshake2(void *tls_ctx, *appl_data = NULL; } else os_free(ad); - + return out; #else /* CONFIG_TLS_INTERNAL_CLIENT */ return NULL; diff --git a/components/wpa_supplicant/src/tls/tlsv1_client.c b/components/wpa_supplicant/src/tls/tlsv1_client.c index 6831410a59..7a6048eece 100644 --- a/components/wpa_supplicant/src/tls/tlsv1_client.c +++ b/components/wpa_supplicant/src/tls/tlsv1_client.c @@ -264,7 +264,7 @@ failed: * @in_data: Pointer to plaintext data to be encrypted * @in_len: Input buffer length * @out_data: Pointer to output buffer (encrypted TLS data) - * @out_len: Maximum out_data length + * @out_len: Maximum out_data length * Returns: Number of bytes written to out_data, -1 on failure * * This function is used after TLS handshake has been completed successfully to @@ -552,7 +552,7 @@ int tlsv1_client_prf(struct tlsv1_client *conn, const char *label, int tlsv1_client_get_cipher(struct tlsv1_client *conn, char *buf, size_t buflen) { -#ifndef ESPRESSIF_USE +#ifndef ESPRESSIF_USE char *cipher; switch (conn->rl.cipher_suite) { diff --git a/components/wpa_supplicant/src/tls/tlsv1_common.c b/components/wpa_supplicant/src/tls/tlsv1_common.c index ca48b1b8b7..3225a11c17 100644 --- a/components/wpa_supplicant/src/tls/tlsv1_common.c +++ b/components/wpa_supplicant/src/tls/tlsv1_common.c @@ -23,7 +23,7 @@ * RFC 2246 Section 9: Mandatory to implement TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA * Add support for commonly used cipher suites; don't bother with exportable * suites. - */ + */ static const struct tls_cipher_suite tls_cipher_suites[] = { { TLS_NULL_WITH_NULL_NULL, TLS_KEY_X_NULL, TLS_CIPHER_NULL, @@ -225,7 +225,7 @@ int tls_verify_hash_init(struct tls_verify_hash *verify) verify->sha256_client = crypto_hash_init(CRYPTO_HASH_ALG_SHA256, NULL, 0); verify->sha256_server = crypto_hash_init(CRYPTO_HASH_ALG_SHA256, NULL, 0); verify->sha256_cert = crypto_hash_init(CRYPTO_HASH_ALG_SHA256, NULL, 0); - + if (verify->sha256_client == NULL || verify->sha256_server == NULL || verify->sha256_cert == NULL) { diff --git a/components/wpa_supplicant/src/tls/tlsv1_record.c b/components/wpa_supplicant/src/tls/tlsv1_record.c index 8e3077d873..a5b8b0810b 100644 --- a/components/wpa_supplicant/src/tls/tlsv1_record.c +++ b/components/wpa_supplicant/src/tls/tlsv1_record.c @@ -83,7 +83,7 @@ int tlsv1_record_change_write_cipher(struct tlsv1_record_layer *rl) if (rl->write_cbc) { crypto_cipher_deinit(rl->write_cbc); rl->write_cbc = NULL; - + } if (rl->cipher_alg != CRYPTO_CIPHER_NULL) { rl->write_cbc = crypto_cipher_init(rl->cipher_alg, @@ -223,7 +223,7 @@ int tlsv1_record_send(struct tlsv1_record_layer *rl, u8 content_type, u8 *buf, wpa_printf(MSG_DEBUG, "TLSv1: Record Layer - Not " "enough room for MAC"); crypto_hash_finish(hmac, NULL, NULL); - + return -1; } @@ -231,7 +231,7 @@ int tlsv1_record_send(struct tlsv1_record_layer *rl, u8 content_type, u8 *buf, wpa_printf(MSG_DEBUG, "TLSv1: Record Layer - Failed to calculate HMAC"); return -1; } - + wpa_hexdump(MSG_MSGDUMP, "TLSv1: Record Layer - Write HMAC", pos, clen); pos += clen; @@ -363,7 +363,7 @@ int tlsv1_record_receive(struct tlsv1_record_layer *rl, *alert = TLS_ALERT_DECRYPTION_FAILED; return -1; } - + plen = in_len; wpa_hexdump_key(MSG_MSGDUMP, "TLSv1: Record Layer - Decrypted " "data", out_data, plen); @@ -453,14 +453,14 @@ int tlsv1_record_receive(struct tlsv1_record_layer *rl, WPA_PUT_BE16(len, plen); crypto_hash_update(hmac, len, 2); crypto_hash_update(hmac, out_data, plen); - + hlen = sizeof(hash); if ((int)crypto_hash_finish(hmac, hash, &hlen) < 0) { wpa_printf(MSG_DEBUG, "TLSv1: Record Layer - Failed to calculate HMAC"); *alert = TLS_ALERT_INTERNAL_ERROR; return -1; } - + if (hlen != rl->hash_size || os_memcmp(hash, out_data + plen, hlen) != 0 || force_mac_error) { diff --git a/components/wpa_supplicant/src/tls/tlsv1_server.c b/components/wpa_supplicant/src/tls/tlsv1_server.c index b835ce0fd6..e6ef926191 100644 --- a/components/wpa_supplicant/src/tls/tlsv1_server.c +++ b/components/wpa_supplicant/src/tls/tlsv1_server.c @@ -191,7 +191,7 @@ failed: * @in_data: Pointer to plaintext data to be encrypted * @in_len: Input buffer length * @out_data: Pointer to output buffer (encrypted TLS data) - * @out_len: Maximum out_data length + * @out_len: Maximum out_data length * Returns: Number of bytes written to out_data, -1 on failure * * This function is used after TLS handshake has been completed successfully to @@ -463,7 +463,7 @@ int tlsv1_server_prf(struct tlsv1_server *conn, const char *label, int tlsv1_server_get_cipher(struct tlsv1_server *conn, char *buf, size_t buflen) { -#ifndef ESPRESSIF_USE +#ifndef ESPRESSIF_USE char *cipher; switch (conn->rl.cipher_suite) { diff --git a/components/wpa_supplicant/src/tls/x509v3.c b/components/wpa_supplicant/src/tls/x509v3.c index df0db7063d..3491a5d724 100644 --- a/components/wpa_supplicant/src/tls/x509v3.c +++ b/components/wpa_supplicant/src/tls/x509v3.c @@ -469,7 +469,7 @@ static int x509_parse_name(const u8 *buf, size_t len, struct x509_name *name, static char * x509_name_attr_str(enum x509_name_attr_type type) { -#ifndef ESPRESSIF_USE +#ifndef ESPRESSIF_USE switch (type) { case X509_NAME_ATTR_NOT_USED: return "[N/A]"; @@ -520,7 +520,7 @@ static char * x509_name_attr_str(enum x509_name_attr_type type) strcpy(name_attr, "?"); } return name_attr; -#endif +#endif } @@ -1109,7 +1109,7 @@ static int x509_parse_extension(struct x509_certificate *cert, if (res == 1 && critical_ext) { wpa_printf(MSG_INFO, "X509: Unknown critical extension %s", buf); - //return -1; //for wpa2 certification , commenout , ignore the error + //return -1; //for wpa2 certification , commenout , ignore the error } return 0; @@ -1770,7 +1770,7 @@ int x509_certificate_chain_validate(struct x509_certificate *trusted, os_get_time(&now); for (cert = chain, idx = 0; cert; cert = cert->next, idx++) { - x509_name_string(&cert->subject, buf, sizeof(buf)); + x509_name_string(&cert->subject, buf, sizeof(buf)); wpa_printf(MSG_DEBUG, "X509: %lu: %s", idx, buf); if (chain_trusted) @@ -1794,11 +1794,11 @@ int x509_certificate_chain_validate(struct x509_certificate *trusted, wpa_printf(MSG_DEBUG, "X509: Certificate " "chain issuer name mismatch"); x509_name_string(&cert->issuer, buf, - sizeof(buf)); + sizeof(buf)); wpa_printf(MSG_DEBUG, "X509: cert issuer: %s", buf); x509_name_string(&cert->next->subject, buf, - sizeof(buf)); + sizeof(buf)); wpa_printf(MSG_DEBUG, "X509: next cert " "subject: %s", buf); *reason = X509_VALIDATE_CERTIFICATE_UNKNOWN; diff --git a/components/wpa_supplicant/src/utils/wpa_debug.c b/components/wpa_supplicant/src/utils/wpa_debug.c index 20a0ae4447..231a7e3233 100644 --- a/components/wpa_supplicant/src/utils/wpa_debug.c +++ b/components/wpa_supplicant/src/utils/wpa_debug.c @@ -82,12 +82,12 @@ void wpa_debug_print_timestamp(void) struct os_time tv; os_get_time(&tv); wpa_printf(MSG_DEBUG, "%ld.%06u: ", (long) tv.sec, (unsigned int) tv.usec); -#endif +#endif } void wpa_hexdump(int level, const char *title, const u8 *buf, size_t len) { -#ifdef DEBUG_PRINT +#ifdef DEBUG_PRINT size_t i; char output[50]; @@ -108,8 +108,8 @@ void wpa_hexdump(int level, const char *title, const u8 *buf, size_t len) len - bytes_printed, 0, 1); wpa_printf(MSG_DEBUG, "%s", output); } - } -#endif + } +#endif } void wpa_hexdump_key(int level, const char *title, const u8 *buf, size_t len) @@ -121,7 +121,7 @@ void wpa_hexdump_key(int level, const char *title, const u8 *buf, size_t len) int eloop_cancel_timeout(eloop_timeout_handler handler, void *eloop_data, void *user_data) { - return 0; + return 0; } int eloop_register_timeout(unsigned int secs, unsigned int usecs, @@ -131,4 +131,3 @@ int eloop_register_timeout(unsigned int secs, unsigned int usecs, return 0; } #endif // ESP_SUPPLICANT - diff --git a/components/wpa_supplicant/src/wps/wps_attr_process.c b/components/wpa_supplicant/src/wps/wps_attr_process.c index 112d683a3f..c298df3f69 100644 --- a/components/wpa_supplicant/src/wps/wps_attr_process.c +++ b/components/wpa_supplicant/src/wps/wps_attr_process.c @@ -338,4 +338,4 @@ int wps_process_ap_settings(struct wps_parse_attr *attr, return -1; return wps_workaround_cred_key(cred); -} \ No newline at end of file +} diff --git a/components/wpa_supplicant/src/wps/wps_validate.c b/components/wpa_supplicant/src/wps/wps_validate.c index 4bbe0ffb1b..fa64157700 100644 --- a/components/wpa_supplicant/src/wps/wps_validate.c +++ b/components/wpa_supplicant/src/wps/wps_validate.c @@ -2001,7 +2001,7 @@ int wps_validate_m7_encr(const struct wpabuf *tlvs, int ap, int wps2) ret = -99; goto _out; } - + if (tlvs == NULL) { wpa_printf(MSG_INFO, "WPS-STRICT: No TLVs in M7 encrypted " "settings"); diff --git a/components/wpa_supplicant/test/test_crypto.c b/components/wpa_supplicant/test/test_crypto.c index 18ab5ca295..0c17b0bddf 100644 --- a/components/wpa_supplicant/test/test_crypto.c +++ b/components/wpa_supplicant/test/test_crypto.c @@ -542,4 +542,3 @@ TEST_CASE("Test crypto lib ECC apis", "[wpa_crypto]") } } - diff --git a/components/xtensa/eri.c b/components/xtensa/eri.c index 8697572784..97525c384e 100644 --- a/components/xtensa/eri.c +++ b/components/xtensa/eri.c @@ -29,4 +29,3 @@ void eri_write(int addr, uint32_t data) { ::"r"(data),"r"(addr) ); } - diff --git a/components/xtensa/esp32/include/xtensa/config/core-isa.h b/components/xtensa/esp32/include/xtensa/config/core-isa.h index 1845647264..2bf761c418 100644 --- a/components/xtensa/esp32/include/xtensa/config/core-isa.h +++ b/components/xtensa/esp32/include/xtensa/config/core-isa.h @@ -1,4 +1,4 @@ -/* +/* * xtensa/config/core-isa.h -- HAL definitions that are dependent on Xtensa * processor CORE configuration * @@ -113,7 +113,7 @@ #define XCHAL_HAVE_HIFI3_VFPU 0 /* HiFi3 Audio Engine VFPU option */ #define XCHAL_HAVE_HIFI2 0 /* HiFi2 Audio Engine pkg */ #define XCHAL_HAVE_HIFI2EP 0 /* HiFi2EP */ -#define XCHAL_HAVE_HIFI_MINI 0 +#define XCHAL_HAVE_HIFI_MINI 0 #define XCHAL_HAVE_VECTORFPU2005 0 /* vector or user floating-point pkg */ @@ -652,4 +652,3 @@ #endif /* _XTENSA_CORE_CONFIGURATION_H */ - diff --git a/components/xtensa/esp32/include/xtensa/config/core-matmap.h b/components/xtensa/esp32/include/xtensa/config/core-matmap.h index b101f1e6aa..efd93c9311 100644 --- a/components/xtensa/esp32/include/xtensa/config/core-matmap.h +++ b/components/xtensa/esp32/include/xtensa/config/core-matmap.h @@ -1,4 +1,4 @@ -/* +/* * xtensa/config/core-matmap.h -- Memory access and translation mapping * parameters (CHAL) of the Xtensa processor core configuration. * @@ -315,4 +315,3 @@ #endif /*XTENSA_CONFIG_CORE_MATMAP_H*/ - diff --git a/components/xtensa/esp32/include/xtensa/config/core.h b/components/xtensa/esp32/include/xtensa/config/core.h index f8c39fa0e6..98083980ea 100644 --- a/components/xtensa/esp32/include/xtensa/config/core.h +++ b/components/xtensa/esp32/include/xtensa/config/core.h @@ -1413,4 +1413,3 @@ extern const unsigned int XCJOIN(Xthal_cp_mask_,XCHAL_CP7_IDENT); #endif #endif /*XTENSA_CONFIG_CORE_H*/ - diff --git a/components/xtensa/esp32/include/xtensa/config/extreg.h b/components/xtensa/esp32/include/xtensa/config/extreg.h index 12ab76618a..8c085b06c4 100644 --- a/components/xtensa/esp32/include/xtensa/config/extreg.h +++ b/components/xtensa/esp32/include/xtensa/config/extreg.h @@ -18,4 +18,4 @@ #pragma once -#define DSRSET 0x10200C \ No newline at end of file +#define DSRSET 0x10200C diff --git a/components/xtensa/esp32/include/xtensa/config/specreg.h b/components/xtensa/esp32/include/xtensa/config/specreg.h index d35988556d..2da7bae5b0 100644 --- a/components/xtensa/esp32/include/xtensa/config/specreg.h +++ b/components/xtensa/esp32/include/xtensa/config/specreg.h @@ -116,4 +116,3 @@ #define INTCLEAR 227 #endif /* XTENSA_SPECREG_H */ - diff --git a/components/xtensa/esp32/include/xtensa/config/system.h b/components/xtensa/esp32/include/xtensa/config/system.h index 0d56eef74f..3e0dc47e01 100644 --- a/components/xtensa/esp32/include/xtensa/config/system.h +++ b/components/xtensa/esp32/include/xtensa/config/system.h @@ -1,4 +1,4 @@ -/* +/* * xtensa/config/system.h -- HAL definitions that are dependent on SYSTEM configuration * * NOTE: The location and contents of this file are highly subject to change. @@ -271,4 +271,3 @@ #endif /*XTENSA_CONFIG_SYSTEM_H*/ - diff --git a/components/xtensa/esp32/include/xtensa/config/tie-asm.h b/components/xtensa/esp32/include/xtensa/config/tie-asm.h index 831d8676ae..649a105806 100644 --- a/components/xtensa/esp32/include/xtensa/config/tie-asm.h +++ b/components/xtensa/esp32/include/xtensa/config/tie-asm.h @@ -1,4 +1,4 @@ -/* +/* * tie-asm.h -- compile-time HAL assembler definitions dependent on CORE & TIE * * NOTE: This header file is not meant to be included directly. @@ -216,7 +216,7 @@ #define XCHAL_NCP_NUM_ATMPS 1 - /* + /* * Macro to store the state of TIE coprocessor FPU. * Required parameters: * ptr Save area pointer address register (clobbered) @@ -258,7 +258,7 @@ .endif .endm // xchal_cp0_store - /* + /* * Macro to load the state of TIE coprocessor FPU. * Required parameters: * ptr Save area pointer address register (clobbered) @@ -320,4 +320,3 @@ .macro xchal_cp7_load p a b c d continue=0 ofs=-1 select=-1 ; .endm #endif /*_XTENSA_CORE_TIE_ASM_H*/ - diff --git a/components/xtensa/esp32/include/xtensa/config/tie.h b/components/xtensa/esp32/include/xtensa/config/tie.h index e178799708..dcaff87860 100644 --- a/components/xtensa/esp32/include/xtensa/config/tie.h +++ b/components/xtensa/esp32/include/xtensa/config/tie.h @@ -1,4 +1,4 @@ -/* +/* * tie.h -- compile-time HAL definitions dependent on CORE & TIE configuration * * NOTE: This header file is not meant to be included directly. @@ -179,4 +179,3 @@ 3,3,3,3,3,3,3,3,2,2,2,2,2,2,3,3, 3,3,3,3,3,3,3,3,2,2,2,2,2,2,3,3 #endif /*_XTENSA_CORE_TIE_H*/ - diff --git a/components/xtensa/esp32/trax_init.c b/components/xtensa/esp32/trax_init.c index c027ac52a3..7341039a6c 100644 --- a/components/xtensa/esp32/trax_init.c +++ b/components/xtensa/esp32/trax_init.c @@ -26,7 +26,7 @@ static const char* __attribute__((unused)) TAG = "trax"; -int trax_enable(trax_ena_select_t which) +int trax_enable(trax_ena_select_t which) { #ifndef CONFIG_ESP32_TRAX ESP_LOGE(TAG, "Trax_enable called, but trax is disabled in menuconfig!"); diff --git a/components/xtensa/esp32s2/include/xtensa/config/core-isa.h b/components/xtensa/esp32s2/include/xtensa/config/core-isa.h index d07a1e7db4..607e9fd0d7 100644 --- a/components/xtensa/esp32s2/include/xtensa/config/core-isa.h +++ b/components/xtensa/esp32s2/include/xtensa/config/core-isa.h @@ -709,4 +709,3 @@ #endif /* _XTENSA_CORE_CONFIGURATION_H */ - diff --git a/components/xtensa/esp32s2/include/xtensa/config/core-matmap.h b/components/xtensa/esp32s2/include/xtensa/config/core-matmap.h index 724e84f1df..9659067658 100644 --- a/components/xtensa/esp32s2/include/xtensa/config/core-matmap.h +++ b/components/xtensa/esp32s2/include/xtensa/config/core-matmap.h @@ -319,4 +319,3 @@ #endif /*XTENSA_CONFIG_CORE_MATMAP_H*/ - diff --git a/components/xtensa/esp32s2/include/xtensa/config/core.h b/components/xtensa/esp32s2/include/xtensa/config/core.h index 8460d1c92b..155517b291 100644 --- a/components/xtensa/esp32s2/include/xtensa/config/core.h +++ b/components/xtensa/esp32s2/include/xtensa/config/core.h @@ -1,4 +1,4 @@ -/* +/* * xtensa/config/core.h -- HAL definitions dependent on CORE configuration * * This header file is sometimes referred to as the "compile-time HAL" or CHAL. @@ -1412,4 +1412,3 @@ extern const unsigned int XCJOIN(Xthal_cp_mask_,XCHAL_CP7_IDENT); #endif #endif /*XTENSA_CONFIG_CORE_H*/ - diff --git a/components/xtensa/esp32s2/include/xtensa/config/extreg.h b/components/xtensa/esp32s2/include/xtensa/config/extreg.h index 95a6a69b62..c9ab2443b5 100644 --- a/components/xtensa/esp32s2/include/xtensa/config/extreg.h +++ b/components/xtensa/esp32s2/include/xtensa/config/extreg.h @@ -18,4 +18,4 @@ #pragma once -#define DSRSET 0x10200C \ No newline at end of file +#define DSRSET 0x10200C diff --git a/components/xtensa/esp32s2/include/xtensa/config/specreg.h b/components/xtensa/esp32s2/include/xtensa/config/specreg.h index b63d82b964..355283c9c9 100644 --- a/components/xtensa/esp32s2/include/xtensa/config/specreg.h +++ b/components/xtensa/esp32s2/include/xtensa/config/specreg.h @@ -102,4 +102,3 @@ #define INTCLEAR 227 #endif /* XTENSA_SPECREG_H */ - diff --git a/components/xtensa/esp32s2/include/xtensa/config/system.h b/components/xtensa/esp32s2/include/xtensa/config/system.h index b9bad9e385..76aaea6ac6 100644 --- a/components/xtensa/esp32s2/include/xtensa/config/system.h +++ b/components/xtensa/esp32s2/include/xtensa/config/system.h @@ -274,4 +274,3 @@ #endif /*XTENSA_CONFIG_SYSTEM_H*/ - diff --git a/components/xtensa/esp32s2/include/xtensa/config/tie-asm.h b/components/xtensa/esp32s2/include/xtensa/config/tie-asm.h index ac1f374dad..fcaeb5132b 100644 --- a/components/xtensa/esp32s2/include/xtensa/config/tie-asm.h +++ b/components/xtensa/esp32s2/include/xtensa/config/tie-asm.h @@ -135,4 +135,3 @@ extern "C" { #endif #endif /*_XTENSA_CORE_TIE_ASM_H*/ - diff --git a/components/xtensa/esp32s2/include/xtensa/config/tie.h b/components/xtensa/esp32s2/include/xtensa/config/tie.h index f6765ba2df..d64e97218a 100644 --- a/components/xtensa/esp32s2/include/xtensa/config/tie.h +++ b/components/xtensa/esp32s2/include/xtensa/config/tie.h @@ -127,4 +127,3 @@ 3,3,3,3,3,3,3,3,2,2,2,2,2,2,3,3, 3,3,3,3,3,3,3,3,2,2,2,2,2,2,3,3 #endif /*_XTENSA_CORE_TIE_H*/ - diff --git a/components/xtensa/esp32s2/trax_init.c b/components/xtensa/esp32s2/trax_init.c index 01b2dbed93..dfb5771dba 100644 --- a/components/xtensa/esp32s2/trax_init.c +++ b/components/xtensa/esp32s2/trax_init.c @@ -24,7 +24,7 @@ static const char* __attribute__((unused)) TAG = "trax"; -int trax_enable(trax_ena_select_t which) +int trax_enable(trax_ena_select_t which) { #ifndef CONFIG_ESP32S2_TRAX ESP_LOGE(TAG, "Trax_enable called, but trax is disabled in menuconfig!"); diff --git a/components/xtensa/esp32s3/include/xtensa/config/extreg.h b/components/xtensa/esp32s3/include/xtensa/config/extreg.h index 3afb5651b9..3db7b8c3bd 100644 --- a/components/xtensa/esp32s3/include/xtensa/config/extreg.h +++ b/components/xtensa/esp32s3/include/xtensa/config/extreg.h @@ -18,4 +18,4 @@ #pragma once -#define DSRSET 0x10200C \ No newline at end of file +#define DSRSET 0x10200C diff --git a/components/xtensa/esp32s3/include/xtensa/config/specreg.h b/components/xtensa/esp32s3/include/xtensa/config/specreg.h index 2b40253c62..dca344acd2 100644 --- a/components/xtensa/esp32s3/include/xtensa/config/specreg.h +++ b/components/xtensa/esp32s3/include/xtensa/config/specreg.h @@ -116,4 +116,3 @@ #define INTCLEAR 227 #endif /* XTENSA_SPECREG_H */ - diff --git a/components/xtensa/expression_with_stack_xtensa.c b/components/xtensa/expression_with_stack_xtensa.c index 3ba962e316..074210748f 100644 --- a/components/xtensa/expression_with_stack_xtensa.c +++ b/components/xtensa/expression_with_stack_xtensa.c @@ -18,7 +18,7 @@ #include #include -StackType_t *xtensa_shared_stack; +StackType_t *xtensa_shared_stack; shared_stack_function xtensa_shared_stack_callback; jmp_buf xtensa_shared_stack_env; bool xtensa_shared_stack_function_done = false; @@ -32,7 +32,7 @@ static void esp_switch_stack_setup(StackType_t *stack, size_t stack_size) #if CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK esp_clear_watchpoint(1); uint32_t watchpoint_place = ((uint32_t)stack + 32) & ~0x1f ; -#endif +#endif //We need also to tweak current task stackpointer to avoid erroneous //stack overflow indication, so fills the stack with freertos known pattern: memset(stack, 0xa5U, stack_size * sizeof(StackType_t)); @@ -48,7 +48,7 @@ static void esp_switch_stack_setup(StackType_t *stack, size_t stack_size) top_of_stack = (StackType_t *)(((UBaseType_t)(top_of_stack - 16) & ~0xf)); #if CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK - esp_set_watchpoint(1, (uint8_t *)watchpoint_place, 32, ESP_WATCHPOINT_STORE); + esp_set_watchpoint(1, (uint8_t *)watchpoint_place, 32, ESP_WATCHPOINT_STORE); #endif xtensa_shared_stack = top_of_stack; @@ -68,10 +68,10 @@ void esp_execute_shared_stack_function(SemaphoreHandle_t lock, void *stack, size esp_switch_stack_setup(stack, stack_size); xtensa_shared_stack_callback = function; portEXIT_CRITICAL(&xtensa_shared_stack_spinlock); - - setjmp(xtensa_shared_stack_env); + + setjmp(xtensa_shared_stack_env); if(!xtensa_shared_stack_function_done) { - esp_shared_stack_invoke_function(); + esp_shared_stack_invoke_function(); } portENTER_CRITICAL(&xtensa_shared_stack_spinlock); @@ -83,4 +83,4 @@ void esp_execute_shared_stack_function(SemaphoreHandle_t lock, void *stack, size portEXIT_CRITICAL(&xtensa_shared_stack_spinlock); xSemaphoreGive(lock); -} \ No newline at end of file +} diff --git a/components/xtensa/expression_with_stack_xtensa_asm.S b/components/xtensa/expression_with_stack_xtensa_asm.S index 67f1fea976..38c0dd998c 100644 --- a/components/xtensa/expression_with_stack_xtensa_asm.S +++ b/components/xtensa/expression_with_stack_xtensa_asm.S @@ -13,7 +13,7 @@ // limitations under the License. #include - + .extern xtensa_shared_stack .extern xtensa_shared_stack_callback .extern xtensa_shared_stack_function_done @@ -33,19 +33,19 @@ esp_shared_stack_invoke_function: movi a0, 0 /* must not rotate the window here, */ /* the state of execution for shared stack */ /* functions will be completely destroyed at end */ - movi a6, xtensa_shared_stack + movi a6, xtensa_shared_stack l32i sp, a6, 0 /* load shared stack pointer */ movi a12, xtensa_shared_stack_callback l32i a12, a12, 0 callx4 a12 /* call user function */ movi a6, xtensa_shared_stack_function_done - movi a7, 1 + movi a7, 1 s32i a7, a6, 0 /* hint the function was finished */ - movi a6, xtensa_shared_stack_env + movi a6, xtensa_shared_stack_env movi a7, 0 - movi a12, longjmp + movi a12, longjmp callx4 a12 /* jump to last clean state previously saved */ ret - #else + #else #error "this code is written for Window ABI" #endif diff --git a/components/xtensa/include/eri.h b/components/xtensa/include/eri.h index 33e4dd0918..83ff776713 100644 --- a/components/xtensa/include/eri.h +++ b/components/xtensa/include/eri.h @@ -28,4 +28,4 @@ uint32_t eri_read(int addr); void eri_write(int addr, uint32_t data); -#endif \ No newline at end of file +#endif diff --git a/components/xtensa/include/trax.h b/components/xtensa/include/trax.h index 8147387c7d..543deb2e39 100644 --- a/components/xtensa/include/trax.h +++ b/components/xtensa/include/trax.h @@ -57,5 +57,3 @@ int trax_start_trace(trax_downcount_unit_t units_until_stop); * @return esp_err_t */ int trax_trigger_traceend_after_delay(int delay); - - diff --git a/components/xtensa/include/xtensa-debug-module.h b/components/xtensa/include/xtensa-debug-module.h index 8ac47a9ca8..d1aca40d5b 100644 --- a/components/xtensa/include/xtensa-debug-module.h +++ b/components/xtensa/include/xtensa-debug-module.h @@ -67,7 +67,7 @@ ERI registers / OCD offsets and field definitions #define TRAXADDR_TWSAT (1<<31) //1 if TWRAP has overflown, clear by disabling tren. #define PCMATCHCTRL_PCML_SHIFT 0 //Amount of lower bits to ignore in pc trigger register -#define PCMATCHCTRL_PCML_MASK 0x1F +#define PCMATCHCTRL_PCML_MASK 0x1F #define PCMATCHCTRL_PCMS (1<<31) //PC Match Sense, 0 - match when procs PC is in-range, 1 - match when //out-of-range @@ -112,4 +112,4 @@ ERI registers / OCD offsets and field definitions #define PGM_PMEN (1<<0) // Overall enable for all performance counting -#endif \ No newline at end of file +#endif diff --git a/components/xtensa/include/xtensa/cacheasm.h b/components/xtensa/include/xtensa/cacheasm.h index b9961ae1f1..e917b9f450 100644 --- a/components/xtensa/include/xtensa/cacheasm.h +++ b/components/xtensa/include/xtensa/cacheasm.h @@ -959,4 +959,3 @@ .endm #endif /*XTENSA_CACHEASM_H*/ - diff --git a/components/xtensa/include/xtensa/cacheattrasm.h b/components/xtensa/include/xtensa/cacheattrasm.h index 9c1c9c939e..c80caa7d25 100644 --- a/components/xtensa/include/xtensa/cacheattrasm.h +++ b/components/xtensa/include/xtensa/cacheattrasm.h @@ -433,4 +433,3 @@ #endif /*XTENSA_CACHEATTRASM_H*/ - diff --git a/components/xtensa/include/xtensa/core-macros.h b/components/xtensa/include/xtensa/core-macros.h index b9c99fad35..e042158dc5 100644 --- a/components/xtensa/include/xtensa/core-macros.h +++ b/components/xtensa/include/xtensa/core-macros.h @@ -503,4 +503,3 @@ static inline void xthal_mpu_set_entry_ (xthal_MPU_entry entry) #endif /* C code */ #endif /*XTENSA_CACHE_H*/ - diff --git a/components/xtensa/include/xtensa/coreasm.h b/components/xtensa/include/xtensa/coreasm.h index 8df8d6ecde..0dea3b094f 100644 --- a/components/xtensa/include/xtensa/coreasm.h +++ b/components/xtensa/include/xtensa/coreasm.h @@ -1056,4 +1056,3 @@ #endif #endif /*XTENSA_COREASM_H*/ - diff --git a/components/xtensa/include/xtensa/corebits.h b/components/xtensa/include/xtensa/corebits.h index 452aa69d69..5d14a8c671 100644 --- a/components/xtensa/include/xtensa/corebits.h +++ b/components/xtensa/include/xtensa/corebits.h @@ -192,4 +192,3 @@ #endif /*XTENSA_COREBITS_H*/ - diff --git a/components/xtensa/include/xtensa/hal.h b/components/xtensa/include/xtensa/hal.h index 1bbb04e68f..11120ec1c3 100644 --- a/components/xtensa/include/xtensa/hal.h +++ b/components/xtensa/include/xtensa/hal.h @@ -1505,4 +1505,3 @@ extern unsigned int xthal_get_npc(XTHAL_STATE *user_state); #endif /*!_ASMLANGUAGE && !_NOCLANGUAGE && !__ASSEMBLER__ */ #endif /*XTENSA_HAL_H*/ - diff --git a/components/xtensa/include/xtensa/specreg.h b/components/xtensa/include/xtensa/specreg.h index df1856347b..8f8222c2ad 100644 --- a/components/xtensa/include/xtensa/specreg.h +++ b/components/xtensa/include/xtensa/specreg.h @@ -141,4 +141,3 @@ #endif #endif /* XTENSA_SPECREG_H */ - diff --git a/components/xtensa/include/xtensa/traxreg.h b/components/xtensa/include/xtensa/traxreg.h index 9f7202f3da..82f87b1205 100644 --- a/components/xtensa/include/xtensa/traxreg.h +++ b/components/xtensa/include/xtensa/traxreg.h @@ -193,4 +193,3 @@ extern const char * trax_regname(int regno); #endif #endif /* _TRAX_REGISTERS_H_ */ - diff --git a/components/xtensa/include/xtensa/xtensa-libdb-macros.h b/components/xtensa/include/xtensa/xtensa-libdb-macros.h index c9d275452b..85b14ada98 100644 --- a/components/xtensa/include/xtensa/xtensa-libdb-macros.h +++ b/components/xtensa/include/xtensa/xtensa-libdb-macros.h @@ -158,4 +158,3 @@ extern "C" { #endif #endif /* __H_LIBDB_MACROS */ - diff --git a/components/xtensa/include/xtensa/xtensa-versions.h b/components/xtensa/include/xtensa/xtensa-versions.h index 9a5819ff0b..b60b251b2c 100644 --- a/components/xtensa/include/xtensa/xtensa-versions.h +++ b/components/xtensa/include/xtensa/xtensa-versions.h @@ -401,4 +401,3 @@ to avoid confusion. */ #endif /*XTENSA_VERSIONS_H*/ - diff --git a/components/xtensa/include/xtensa/xtensa-xer.h b/components/xtensa/include/xtensa/xtensa-xer.h index 900bda3338..52741c9963 100644 --- a/components/xtensa/include/xtensa/xtensa-xer.h +++ b/components/xtensa/include/xtensa/xtensa-xer.h @@ -1,8 +1,8 @@ -/* xer-constants.h -- various constants describing external registers accessed +/* xer-constants.h -- various constants describing external registers accessed via wer and rer. TODO: find a better prefix. Also conditionalize certain constants based - on number of cores and interrupts actually present. + on number of cores and interrupts actually present. */ /* @@ -33,7 +33,7 @@ #define NUM_INTERRUPTS 27 #define NUM_CORES 4 -/* Routing of NMI (BInterrupt2) and interrupts 0..n-1 (BInterrupt3+) +/* Routing of NMI (BInterrupt2) and interrupts 0..n-1 (BInterrupt3+) RER reads WER writes */ @@ -42,8 +42,8 @@ #define XER_MIROUT_LAST (XER_MIROUT + NUM_INTERRUPTS) -/* IPI to core M (all 16 causes). - +/* IPI to core M (all 16 causes). + RER reads WER clears */ @@ -58,7 +58,7 @@ #define XER_MIPICAUSE_FIELD_D_LAST 0xF -/* IPI from cause bit 0..15 +/* IPI from cause bit 0..15 RER invalid WER sets @@ -145,5 +145,3 @@ WER write */ #define XER_CCON 0x0220 - - diff --git a/components/xtensa/include/xtensa/xtensa_api.h b/components/xtensa/include/xtensa/xtensa_api.h index 7f263b8393..95501936c1 100644 --- a/components/xtensa/include/xtensa/xtensa_api.h +++ b/components/xtensa/include/xtensa/xtensa_api.h @@ -64,7 +64,7 @@ extern xt_exc_handler xt_set_exception_handler(int n, xt_exc_handler f); ------------------------------------------------------------------------------- Call this function to set a handler for the specified interrupt. The handler will be installed on the core that calls this function. - + n - Interrupt number. f - Handler function address, NULL to uninstall handler. arg - Argument to be passed to handler. @@ -120,7 +120,7 @@ static inline void xt_set_intclear(unsigned int arg) /* ------------------------------------------------------------------------------- Call this function to get handler's argument for the specified interrupt. - + n - Interrupt number. ------------------------------------------------------------------------------- */ @@ -129,7 +129,7 @@ extern void * xt_get_interrupt_handler_arg(int n); /* ------------------------------------------------------------------------------- Call this function to check if the specified interrupt is free to use. - + intr - Interrupt number. cpu - cpu number. ------------------------------------------------------------------------------- @@ -139,7 +139,7 @@ bool xt_int_has_handler(int intr, int cpu); /* ------------------------------------------------------------------------------- Call this function to disable non iram located interrupts. - + newmask - mask containing the interrupts to disable. ------------------------------------------------------------------------------- */ @@ -154,14 +154,14 @@ static inline uint32_t xt_int_disable_mask(uint32_t newmask) "wsr a3,INTENABLE\n" //write back "rsync\n" :"=&r"(oldint):"r"(newmask):"a3"); - - return oldint; + + return oldint; } /* ------------------------------------------------------------------------------- Call this function to enable non iram located interrupts. - + newmask - mask containing the interrupts to enable. ------------------------------------------------------------------------------- */ @@ -178,4 +178,3 @@ static inline void xt_int_enable_mask(uint32_t newmask) } #endif /* __XTENSA_API_H__ */ - diff --git a/components/xtensa/include/xtensa/xtensa_context.h b/components/xtensa/include/xtensa/xtensa_context.h index 120676dad4..e655904423 100644 --- a/components/xtensa/include/xtensa/xtensa_context.h +++ b/components/xtensa/include/xtensa/xtensa_context.h @@ -86,16 +86,16 @@ NOTE: The Xtensa architecture requires stack pointer alignment to 16 bytes. INTERRUPT/EXCEPTION STACK FRAME FOR A THREAD OR NESTED INTERRUPT A stack frame of this structure is allocated for any interrupt or exception. - It goes on the current stack. If the RTOS has a system stack for handling - interrupts, every thread stack must allow space for just one interrupt stack + It goes on the current stack. If the RTOS has a system stack for handling + interrupts, every thread stack must allow space for just one interrupt stack frame, then nested interrupt stack frames go on the system stack. - The frame includes basic registers (explicit) and "extra" registers introduced + The frame includes basic registers (explicit) and "extra" registers introduced by user TIE or the use of the MAC16 option in the user's Xtensa config. The frame size is minimized by omitting regs not applicable to user's config. For Windowed ABI, this stack frame includes the interruptee's base save area, - another base save area to manage gcc nested functions, and a little temporary + another base save area to manage gcc nested functions, and a little temporary space to help manage the spilling of the register windows. ------------------------------------------------------------------------------- */ @@ -163,7 +163,7 @@ STRUCT_END(XtExcFrame) #else -#define XT_STK_NEXT2 XT_STK_NEXT1 +#define XT_STK_NEXT2 XT_STK_NEXT1 #endif @@ -180,12 +180,12 @@ STRUCT_END(XtExcFrame) ------------------------------------------------------------------------------- SOLICITED STACK FRAME FOR A THREAD - A stack frame of this structure is allocated whenever a thread enters the + A stack frame of this structure is allocated whenever a thread enters the RTOS kernel intentionally (and synchronously) to submit to thread scheduling. It goes on the current thread's stack. The solicited frame only includes registers that are required to be preserved - by the callee according to the compiler's ABI conventions, some space to save + by the callee according to the compiler's ABI conventions, some space to save the return address for returning to the caller, and the caller's PS register. For Windowed ABI, this stack frame includes the caller's base save area. @@ -193,7 +193,7 @@ STRUCT_END(XtExcFrame) Note on XT_SOL_EXIT field: It is necessary to distinguish a solicited from an interrupt stack frame. This field corresponds to XT_STK_EXIT in the interrupt stack frame and is - always at the same offset (0). It can be written with a code (usually 0) + always at the same offset (0). It can be written with a code (usually 0) to distinguish a solicted frame from an interrupt frame. An RTOS port may opt to ignore this field if it has another way of distinguishing frames. ------------------------------------------------------------------------------- @@ -238,7 +238,7 @@ STRUCT_END(XtSolFrame) and the context switch of that co-processor is then peformed by the handler. Ownership represents which thread's state is currently in the co-processor. - Co-processors may not be used by interrupt or exception handlers. If an + Co-processors may not be used by interrupt or exception handlers. If an co-processor instruction is executed by an interrupt or exception handler, the co-processor exception handler will trigger a kernel panic and freeze. This restriction is introduced to reduce the overhead of saving and restoring @@ -249,7 +249,7 @@ STRUCT_END(XtSolFrame) such as in the thread control block or above the thread stack area. It need not be in the interrupt stack frame since interrupts don't use co-processors. - Along with the save area for each co-processor, two bitmasks with flags per + Along with the save area for each co-processor, two bitmasks with flags per co-processor (laid out as in the CPENABLE reg) help manage context-switching co-processors as efficiently as possible: @@ -265,10 +265,10 @@ STRUCT_END(XtSolFrame) XT_CPSTORED A bitmask with the same layout as CPENABLE, a bit per co-processor. - Indicates whether the state of each co-processor is saved in the state + Indicates whether the state of each co-processor is saved in the state save area. When a thread enters the kernel, only the state of co-procs - still enabled in CPENABLE is saved. When the co-processor exception - handler assigns ownership of a co-processor to a thread, it restores + still enabled in CPENABLE is saved. When the co-processor exception + handler assigns ownership of a co-processor to a thread, it restores the saved state only if this bit is set, and clears this bit. XT_CP_CS_ST @@ -349,7 +349,7 @@ STRUCT_END(XtSolFrame) For framed functions the frame is created and the return address saved at base of frame (Call0 ABI) or as determined by hardware (Windowed ABI). For frameless functions, there is no frame and return address remains in a0. - Note: Because CPP macros expand to a single line, macros requiring multi-line + Note: Because CPP macros expand to a single line, macros requiring multi-line expansions are implemented as assembler macros. ------------------------------------------------------------------------------- */ @@ -362,7 +362,7 @@ STRUCT_END(XtSolFrame) addi sp, sp, -\size s32i a0, sp, 0 .endm - #define ENTRY0 + #define ENTRY0 #define RET(sz) ret1 sz .macro ret1 size=0x10 l32i a0, sp, 0 @@ -384,4 +384,3 @@ STRUCT_END(XtSolFrame) #endif /* XTENSA_CONTEXT_H */ - diff --git a/components/xtensa/include/xtensa/xtruntime-core-state.h b/components/xtensa/include/xtensa/xtruntime-core-state.h index 586e7dc390..f099517be3 100644 --- a/components/xtensa/include/xtensa/xtruntime-core-state.h +++ b/components/xtensa/include/xtensa/xtruntime-core-state.h @@ -237,4 +237,3 @@ STRUCT_END(XtosCoreState) // ... locked cache lines ... #endif /* _XTOS_CORE_STATE_H_ */ - diff --git a/components/xtensa/include/xtensa/xtruntime-frames.h b/components/xtensa/include/xtensa/xtruntime-frames.h index e7764267ad..d0eb368735 100644 --- a/components/xtensa/include/xtensa/xtruntime-frames.h +++ b/components/xtensa/include/xtensa/xtruntime-frames.h @@ -159,4 +159,3 @@ STRUCT_END(SetupInfo) #endif /* _XTRUNTIME_FRAMES_H_ */ - diff --git a/components/xtensa/stdatomic.c b/components/xtensa/stdatomic.c index b052c2ba2e..dad6170fb3 100644 --- a/components/xtensa/stdatomic.c +++ b/components/xtensa/stdatomic.c @@ -135,4 +135,4 @@ FETCH_XOR(2, uint16_t) FETCH_XOR(4, uint32_t) FETCH_XOR(8, uint64_t) -#endif \ No newline at end of file +#endif diff --git a/components/xtensa/trax.c b/components/xtensa/trax.c index 0bddcb341b..5a46ad749a 100644 --- a/components/xtensa/trax.c +++ b/components/xtensa/trax.c @@ -27,7 +27,7 @@ static const char* TAG = "trax"; -int trax_start_trace(trax_downcount_unit_t units_until_stop) +int trax_start_trace(trax_downcount_unit_t units_until_stop) { #if !WITH_TRAX ESP_EARLY_LOGE(TAG, "Trax_start_trace called, but trax is disabled in menuconfig!"); @@ -51,7 +51,7 @@ int trax_start_trace(trax_downcount_unit_t units_until_stop) } -int trax_trigger_traceend_after_delay(int delay) +int trax_trigger_traceend_after_delay(int delay) { #if !WITH_TRAX ESP_EARLY_LOGE(TAG, "Trax_trigger_traceend_after_delay called, but trax is disabled in menuconfig!"); diff --git a/components/xtensa/trax/test/Makefile b/components/xtensa/trax/test/Makefile index 63a9d23a1f..c8c24904c0 100644 --- a/components/xtensa/trax/test/Makefile +++ b/components/xtensa/trax/test/Makefile @@ -37,5 +37,3 @@ clean: rm -f $(PROG_ELF) $(PROG_BIN) $(OBJ) $(TRACE_FILE) $(GDB_LOG) .PHONY: all clean flash test - - diff --git a/components/xtensa/xtensa_intr.c b/components/xtensa/xtensa_intr.c index 1afd33de6e..becb47a476 100644 --- a/components/xtensa/xtensa_intr.c +++ b/components/xtensa/xtensa_intr.c @@ -160,4 +160,3 @@ void * xt_get_interrupt_handler_arg(int n) #endif #endif /* XCHAL_HAVE_INTERRUPTS */ - diff --git a/components/xtensa/xtensa_intr_asm.S b/components/xtensa/xtensa_intr_asm.S index 8d1fe72209..cc62762275 100644 --- a/components/xtensa/xtensa_intr_asm.S +++ b/components/xtensa/xtensa_intr_asm.S @@ -221,5 +221,3 @@ xt_ints_off: RET0 .size xt_ints_off, . - xt_ints_off - - diff --git a/docs/Doxyfile b/docs/Doxyfile index a810fad210..c9a023aec4 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -361,4 +361,3 @@ GENERATE_RTF = NO ## Skip distracting progress messages ## QUIET = YES - diff --git a/docs/_static/404-page.svg b/docs/_static/404-page.svg index e5485d7dde..27897a09c5 100644 --- a/docs/_static/404-page.svg +++ b/docs/_static/404-page.svg @@ -740,4 +740,4 @@ inkscape:export-xdpi="96.009476" inkscape:export-ydpi="96.009476">SS! - \ No newline at end of file + diff --git a/docs/_static/404-page__cn.svg b/docs/_static/404-page__cn.svg index b03419b07f..fdfc7bc12e 100644 --- a/docs/_static/404-page__cn.svg +++ b/docs/_static/404-page__cn.svg @@ -38,7 +38,7 @@ - @@ -46,7 +46,7 @@ - @@ -66,21 +66,21 @@ - - + - + - + - + - + @@ -188,11 +188,11 @@ - - - diff --git a/docs/_static/404-page__en.svg b/docs/_static/404-page__en.svg index 4f3cff4198..928ec63115 100644 --- a/docs/_static/404-page__en.svg +++ b/docs/_static/404-page__en.svg @@ -37,7 +37,7 @@ - @@ -45,7 +45,7 @@ - @@ -59,21 +59,21 @@ - - + - + - + - + - + @@ -181,11 +181,11 @@ - - - diff --git a/docs/_static/chip-esp32-s2.svg b/docs/_static/chip-esp32-s2.svg index 9ff21a763c..1f59e2a3e5 100644 --- a/docs/_static/chip-esp32-s2.svg +++ b/docs/_static/chip-esp32-s2.svg @@ -266,7 +266,7 @@ id="g4538"> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - \ No newline at end of file + diff --git a/docs/_static/chip-esp32.svg b/docs/_static/chip-esp32.svg index 53e3c5f814..9c66177139 100644 --- a/docs/_static/chip-esp32.svg +++ b/docs/_static/chip-esp32.svg @@ -239,7 +239,7 @@ id="g4107"> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - \ No newline at end of file + diff --git a/docs/_static/diagrams/ethernet/RMII Interface.drawio b/docs/_static/diagrams/ethernet/RMII Interface.drawio index 7c6402ec0d..e64781b4a0 100644 --- a/docs/_static/diagrams/ethernet/RMII Interface.drawio +++ b/docs/_static/diagrams/ethernet/RMII Interface.drawio @@ -1 +1 @@ -7Vpbc6M2FP41nmkfugPi6sesN0kfms5O3W6fFSODGhlRIYK9v74SSObmS+KBxbhxZjLSQRxJ3/cdcSSYWYvN9pHBJHqiASIzYATbmfVlBoBneeK/NOxKg2naZmkJGQ6UrTIs8XekjIayZjhAaaMhp5RwnDSNKxrHaMUbNsgYzZvN1pQ0e01giDqG5QoSbf3kVPa/ccAjPRF3Xl34FeEwUp37wC0vPMPVS8hoFqseZ8BaF7/y8gZqX2qqaQQDmtdM1v3MWjBKeVnabBeISHQ1cPo+vtOjnVmfI74homKKYnH54cjN5ltuFpNjKOb17o75s6Dprc0VchzDBE4Af1EdvEKSqQ6WdM1z4VBYFzTmjJLOGPIIc7RM4ErWcyGp5qD2EMnKWvhQghFjE3VMyIISygpX1tqRf/Im0dMLql1xi9/+imZVAhDANELBUQj0nBDjaFszKUgeEd0gznaiiQ6AuQoApX/Ltst6XpOSo4iMaipylQ0q/YZ71xUHoqBoeCslVgdwFAi5qyoizzS/rwyfC/EWcBgtHjhk/E6GlzDENEba9oDlaIrm/yDOd4ofmHEqTJTxiIY0huQ3SpMujaYv6sUoREWCjEUgniIipRlboSOzBWq5gCxE/EgbxYZE4SSdDBHI8WtzqeiXG/uDm2Yb53q4cT64abZxr4cb94ObZhvverjxJsDNZUTo/PQkE6BvJopbBQ5wV2uQUBzztOb5qzRUOcjcaOYgnmO3WC09Vhzvh3YZ7aCT+S2ylNONxDTHfBWJwhPkDG9nwCVcpl34VRRDXtBRmp5Z2yLGcaBdzfRT6V1sF8Ci2BJkCUFM1TZ4i1hZhJtEGSHnKM7KcpoQLKos/flYh/3kqoXo3p+r9pGM+k0h2M6BZNQ7kIwCf4hs1O5uEBKxhWOZFMqdCNrdd8nY1FE3DasF+6E9APhRewCng/rviOeUvdw26A4YE3S3A/pXmkucjSfEbxJv1xgTb6+D9wND/34qDh4y+Wy8Pbz9MfE+cBR1fYleb0m4P5nUz3Naq6A5cOrndwLvm3ikU7nSLXEo+BGFRxQjBgvj1MPQmV/4aN+f+fUbht1D3RsOw/kYYXgxN/NOZNz9ISZuSI8iDaCBDJFyujcXFq415sNJb9Vr0H/568/po+zN5/rllN7Zewdwtp0Dyw8YBGj//7T8mPp15Kn1R2vvChYgPd56GMhzD70TWWZJQjBKpx8Y7eXHH3UvAsAEouLCEBjvELR7ytnaEHl6Q6RdlDNRd1V8nndktxyVs+04evexLDh5LHsFx7hTeFt8VLhD681vHabun73v1VvHkTWM3jr9nNHbmfYD6G0Kb8DH05tzRiZv1lvbUVu4femt3c979eYOrbcpvNUfT2/tx+DFems7Gkpv7X7O6c390XqbwpcK4+nN7EtvbUdD6a3dzzm92b3qTVSrT0PL5tUXuNb9fw==7V1be6o6E/416+K7WH0C4aCXKrayl2CrdnXZm/UgUERR3Ignfv034aAc0ta2ou2uPVgySSZh5s1kMgn0B25MNzeeNh8prmE6P1hkbH5g6QfLiliET0LYRgSG4ZiIYnm2EdP2hJ4dmDERxdSlbZiLTEHfdR3fnmeJujubmbqfoWme566zxZ5cJ9vqXLPMAqGna06R+mAb/iiiVni0p7dM2xolLTMozplqSeGYsBhphrtOkXDzB254rutHV9NNw3SI8HZyqba7/y467u1vsW91VnatjtHPiNn1W6rsbsEzZ/67WXPrAI39G3Fd+eXNmEem/dOox1XQSnOWsbya/sj0Zqb/gxUcaKw+9ODKIlcJxbBXCUmpNRIqNJzKiCXmbxM1rEe2b/bmmk7Sa4AaFBr5UwdSDFzuZEsST+7Mj4HEVEjadpyG67heyAobmll50kkl33MnZipH0Cvm8GnX/Mr0fHOTg8ErMmR2ioURYbpT0/e2UC/hgvmITzwacIKN9R5aDBeXGaVhJcQFtRjO1o73XmVwEWuNrsGA0+9/c8rT32DjtZ9wg22LfAKO92rwtjV4vtzpdGoyBm+KNJ1WBRFrQok65RPVnEWn3afFL+1+sjQ7jwNDMlZ/3Fr1Z7Wg04zmkObY1izMEP5dEvNT10ECprdP5zVJxJ9RXlKQZPxchIqpQQGmMt8UuTSgkOeSbt862sxMwSPi+ybUACzm5BLU5tua0wWjr80sklt/BVCO+UREj+DSi9WAKOaBNysGB/RESrFsKNiqsEMslIkttpLFFkfB1q5MGlulQYvhnsXWxzAiab72KkBODIUnnnxTZ4rwK763FD36OiEiaNbmxIgQKIjIKWru2jM/bJivww+6QgwYxMbu7w8eSjXCnGrltZz4byon4VbMYSNClkijiUUiE/JkeQqRRhPzbYcEhtJ2nsZSiFSWlLZRrpPwg+sEdja4sG1taDq37sL2bZdYsqHr++40OxKSsrXY2vkuGSraYh4500/2xjRoxjBUqek1V2ak2XjGDsfjdGORxcCVbi90l6leeSGv+tyT9bAfa9ebWJ67nP9drG1fHxVH3nWNfNNGHkI8EsscYVw1N8JwcYRxlAHGlTbAxNcHWEFfc9OzoXmiKgnagNWSebsnpQFQnOYSv4tYRENbjAjDyDxmjR3HimK9TqwpwVld00Olzoy0BQ2/cv4bSxoB02zPrD5Bm0TUaU/DhVjyV7KnFkjLsYfwaQ+n8Lma6/AJ9tqwzKvFyjohBrizY6BSwEBPkYsTYjhaknUq+6IyC3rPut6ZgTx19clyfgVS9q/AVjjukoxnx55N+kAibeM6yUw0LMZp2oxJ6ks2ofaacbIX3wEwNHNYEVM9jWfqgsnambXnHbTnfLzypmkmC6AKZZpGFAQxbFkQYotr9a4if3UMqUfCUDTtveDnPeMZntv/Yw4GVmm2iS2GEAqgcnKeSKKGRC2RP16nYo+GoqnmkT/60nO2dS/08qmhgwJinzcRhk3clKh7M9fzKV5J6WaDy5kNnqdpl6JcVJpy2a+s3N3wPUC5ZxvSXH5I8/y5lY4pSn/jIl+gLfIVSe4curj3w1nhRU81b8SntmGEq3/PhJ5ow5AVShYru/UnmWm0pe8u4vnhhYF++pAPj4SsCaAYeIGChvL8hiNEfJ4BQ+OChTdhQUBFLPAnxQJfEha6zeu/jfavr4AHWM+yOnX7yBCGAl8mHrCY2z6qFvFQPSkeaLG/Y+Ch/+dvU/0SaPh8IeK81aD5E+JJUUILYB0HJVIYAsU1JgyIXuByDLiIRbjQNhTKg0sx1nWkSeYCl+PDhWXODZfnd7s/BpdGt/dX+n2ByXFggs8ME0xzXXM6NGdGjRwZI0pztMXC1nORh0IE4+2+IQjV2/6JFR0mBiRxxSdJaZPOlLZxKuqsaRROqx2iJhb5mmeZcbnnzwEV1fnKSiOheaaj+fYq2zeaDuMWbgnCUyEQIe/YVq/4LJOFu/R0M663x0KBFZ8/YlVkFcmiwCqE1e7WP4C0AzbE/7NIOxeCsJi1N1w+OHYofvI7N2fAT9H/mXV7/QKGkuhpZue0lmwEh9sz+V3hVw8GvLQtkkZjsktrkFM7uBYl2WuyK8vWNwBjtnHbUtnHbR3d9uSN2reQIjWx2le2qmQh2a6PhzfXgR4gW3tQV0Nbtoyp4xjon5UpIVtp1Nay1Fwr4ztL6de2aoPk/97qrLMajiG/x22ABzd82CxDHq0u0iV31cYGNrY8Vrb8Sp/qK2VcWyuNamBMdVtu1Xzt4a4qj5tYGU8gPfKHN3zQmY0W2gPv3fb+cY1Wd92xKyvggtszPWhPq9vHbWXT6U/4No7KQbtYe+gijfQT+EPafXxwZlqL8JahPRlkcHvTdR5nCrlqqch82Dhyq8vrN/dVedZ1zNbdaoDVQLYrpESjOnl8eAxux5v14E/XlW+A0wSxqnS/VEBa6viOkSV50+lxgTLWGbWvjtR+c6lKtY06nkDe/aY9vlsr/QGv9ojkahZIcKtuOeAxCJSgaRFecL3tSPdIlhTUaXAbJbB46IOlBHdce9wMOtIEK3YoeUvpIWgL2ug3WdDehvBU+7UlSGKr9OXMdaQtaHOsL6GvrBIoftj38T2nSAMc9W+whjxO2dYY0B4LdNSRlKSurwZQPhhsOhL0pX/HtAmfscWojRoibYXICSxOlu4YpcExSiDjjmSR+lHfpCbbHk+QCjzULeH5pjZ5wrc9lpmOVGNV7NryzeN8eLOuyrayUfpN8ptFUFCz2wFX0W+ukdaoTwA9Ksh33R7rgHIdd6CNYZ/0ocmDjtakT0Mio1aT9AUQNeCVqP+ZNNGr0p+wnX6NG4b3dQ8874neuU6rGd9XxLPTQM/VxXFbfppfeM+pMu10/9j1msh9L9vRRnmBf7pu5zojr7XSVBg1HGFpeTVDebUxWIWAIxYsu0lb5raayHHZyYFjC84oZopzE35hGvqQM5rsxb7oIsAEnGxqL0xrCgJo7kn1lAcxc2f5LbKCwYbi1zbpJO2co4C0KkM9Pc1KIgk6f1GnQERZX/DdToGYO+PN5TfTS3YJuLLirJe4+0Fxd5xVv0iJeZw07s4VYx6XpzbeeMIvt7VG2UqpUB7aEMtSKX/AlHBOjz+tSuHdKwBOBf9O6Vv8eVcAxD9pfoUVAHiHnb4OXmr0rUn34BGDVz8ewK/BdoiXHeWhHni3ZlQnAG/48Dog+cepsxjC3cjo8abTt8gdWHqDmT+SOwzuWcWWV7m+8UqqX7A6CVJtyKokgzc+iNJ4ACuWu6UapzXwtpVd2cexMlbIyoSkceTJy0lZ8DKbPHjlOdrddsfbGcCqYN+PQVDz0/zi+v6z9bcIKfauLwJocqo9bBaAWOgXeLeTAWiovm4/OODhwz32B4nGWvWRcWNZREJ94KjuuOiA18lWa6Q5G/B7t4Y737fMKltly6FdHVjn7MvrPvBYwlosRRtk7uL3OCPxMfjqaX5xfZThmarPZqSQXe+walNmuuNBbrzcFf13z/W12J6gEm01mdyztro4/dKOxJT2yAtPOx/18QhfzsJ+IOLHvC3iZ25s/0/qOlULUvtKJHGkeHTkeR8wH6YD1y/4QudaYgh515B9b9y6mmfEnTjuyNMOel1Q/fmXuXlflgKdQ1HIscy5UVhc6l5eKfDSKwVyW2fnX8gc8LjaxYx8QjNSiHK834ywPP8aq7LNSGmHiC4Rs3dEzCrCmSNm/CViduSIWYU780QjfPDVNd/dUzi/AtmLp/Cf8BQq4tE8BQqrkj0F4YBgziXwfgm8XwLvl8D7Jwy8/6yWGXrHfC4edODTqKWF3oXPGqT8LnP/7hV0H5/782/ZqYgnnvmLjwTwSGkFBUCddhGfw2JpQzsvfcpy4KSPCQqfNHD4JYcpFnfH1hP9Yvy+YUphJeRYlT1Qi8E8lv82A1XIz8Hnfp5XKOuJu0ts9T2xVQaxZw6uJui7BFePFVxlEOVVHycNzokHvNXrqzjan+CZyxfGzWfx5BmEj+bKA6/T+vJiMZZ82Qx4w2bAJzA4n/1QXc54cOKr+wEklXrr7klsinDW43A7PkewKRi9zqtsq3JAtOnzvv1wB+FD3n6YDITSDE5utqEd4qW95RAfw+Dcdn/fLe368MESJE9Z/8Xol0L53zXfKfrDva6OshaVVG0U3c1vpY3sEh9m4zOro+hOaf/7HrrI/48m2sN++JSqKPpFw2+qiopY9FFPqoqiO6B/U1WAM1aaLiC5/694kSu3/9+CuPl/ \ No newline at end of file +7Vpbc6M2FP41nmkfugPi6sesN0kfms5O3W6fFSODGhlRIYK9v74SSObmS+KBxbhxZjLSQRxJ3/cdcSSYWYvN9pHBJHqiASIzYATbmfVlBoBneeK/NOxKg2naZmkJGQ6UrTIs8XekjIayZjhAaaMhp5RwnDSNKxrHaMUbNsgYzZvN1pQ0e01giDqG5QoSbf3kVPa/ccAjPRF3Xl34FeEwUp37wC0vPMPVS8hoFqseZ8BaF7/y8gZqX2qqaQQDmtdM1v3MWjBKeVnabBeISHQ1cPo+vtOjnVmfI74homKKYnH54cjN5ltuFpNjKOb17o75s6Dprc0VchzDBE4Af1EdvEKSqQ6WdM1z4VBYFzTmjJLOGPIIc7RM4ErWcyGp5qD2EMnKWvhQghFjE3VMyIISygpX1tqRf/Im0dMLql1xi9/+imZVAhDANELBUQj0nBDjaFszKUgeEd0gznaiiQ6AuQoApX/Ltst6XpOSo4iMaipylQ0q/YZ71xUHoqBoeCslVgdwFAi5qyoizzS/rwyfC/EWcBgtHjhk/E6GlzDENEba9oDlaIrm/yDOd4ofmHEqTJTxiIY0huQ3SpMujaYv6sUoREWCjEUgniIipRlboSOzBWq5gCxE/EgbxYZE4SSdDBHI8WtzqeiXG/uDm2Yb53q4cT64abZxr4cb94ObZhvverjxJsDNZUTo/PQkE6BvJopbBQ5wV2uQUBzztOb5qzRUOcjcaOYgnmO3WC09Vhzvh3YZ7aCT+S2ylNONxDTHfBWJwhPkDG9nwCVcpl34VRRDXtBRmp5Z2yLGcaBdzfRT6V1sF8Ci2BJkCUFM1TZ4i1hZhJtEGSHnKM7KcpoQLKos/flYh/3kqoXo3p+r9pGM+k0h2M6BZNQ7kIwCf4hs1O5uEBKxhWOZFMqdCNrdd8nY1FE3DasF+6E9APhRewCng/rviOeUvdw26A4YE3S3A/pXmkucjSfEbxJv1xgTb6+D9wND/34qDh4y+Wy8Pbz9MfE+cBR1fYleb0m4P5nUz3Naq6A5cOrndwLvm3ikU7nSLXEo+BGFRxQjBgvj1MPQmV/4aN+f+fUbht1D3RsOw/kYYXgxN/NOZNz9ISZuSI8iDaCBDJFyujcXFq415sNJb9Vr0H/568/po+zN5/rllN7Zewdwtp0Dyw8YBGj//7T8mPp15Kn1R2vvChYgPd56GMhzD70TWWZJQjBKpx8Y7eXHH3UvAsAEouLCEBjvELR7ytnaEHl6Q6RdlDNRd1V8nndktxyVs+04evexLDh5LHsFx7hTeFt8VLhD681vHabun73v1VvHkTWM3jr9nNHbmfYD6G0Kb8DH05tzRiZv1lvbUVu4femt3c979eYOrbcpvNUfT2/tx+DFems7Gkpv7X7O6c390XqbwpcK4+nN7EtvbUdD6a3dzzm92b3qTVSrT0PL5tUXuNb9fw==7V1be6o6E/416+K7WH0C4aCXKrayl2CrdnXZm/UgUERR3Ignfv034aAc0ta2ou2uPVgySSZh5s1kMgn0B25MNzeeNh8prmE6P1hkbH5g6QfLiliET0LYRgSG4ZiIYnm2EdP2hJ4dmDERxdSlbZiLTEHfdR3fnmeJujubmbqfoWme566zxZ5cJ9vqXLPMAqGna06R+mAb/iiiVni0p7dM2xolLTMozplqSeGYsBhphrtOkXDzB254rutHV9NNw3SI8HZyqba7/y467u1vsW91VnatjtHPiNn1W6rsbsEzZ/67WXPrAI39G3Fd+eXNmEem/dOox1XQSnOWsbya/sj0Zqb/gxUcaKw+9ODKIlcJxbBXCUmpNRIqNJzKiCXmbxM1rEe2b/bmmk7Sa4AaFBr5UwdSDFzuZEsST+7Mj4HEVEjadpyG67heyAobmll50kkl33MnZipH0Cvm8GnX/Mr0fHOTg8ErMmR2ioURYbpT0/e2UC/hgvmITzwacIKN9R5aDBeXGaVhJcQFtRjO1o73XmVwEWuNrsGA0+9/c8rT32DjtZ9wg22LfAKO92rwtjV4vtzpdGoyBm+KNJ1WBRFrQok65RPVnEWn3afFL+1+sjQ7jwNDMlZ/3Fr1Z7Wg04zmkObY1izMEP5dEvNT10ECprdP5zVJxJ9RXlKQZPxchIqpQQGmMt8UuTSgkOeSbt862sxMwSPi+ybUACzm5BLU5tua0wWjr80sklt/BVCO+UREj+DSi9WAKOaBNysGB/RESrFsKNiqsEMslIkttpLFFkfB1q5MGlulQYvhnsXWxzAiab72KkBODIUnnnxTZ4rwK763FD36OiEiaNbmxIgQKIjIKWru2jM/bJivww+6QgwYxMbu7w8eSjXCnGrltZz4byon4VbMYSNClkijiUUiE/JkeQqRRhPzbYcEhtJ2nsZSiFSWlLZRrpPwg+sEdja4sG1taDq37sL2bZdYsqHr++40OxKSsrXY2vkuGSraYh4500/2xjRoxjBUqek1V2ak2XjGDsfjdGORxcCVbi90l6leeSGv+tyT9bAfa9ebWJ67nP9drG1fHxVH3nWNfNNGHkI8EsscYVw1N8JwcYRxlAHGlTbAxNcHWEFfc9OzoXmiKgnagNWSebsnpQFQnOYSv4tYRENbjAjDyDxmjR3HimK9TqwpwVld00Olzoy0BQ2/cv4bSxoB02zPrD5Bm0TUaU/DhVjyV7KnFkjLsYfwaQ+n8Lma6/AJ9tqwzKvFyjohBrizY6BSwEBPkYsTYjhaknUq+6IyC3rPut6ZgTx19clyfgVS9q/AVjjukoxnx55N+kAibeM6yUw0LMZp2oxJ6ks2ofaacbIX3wEwNHNYEVM9jWfqgsnambXnHbTnfLzypmkmC6AKZZpGFAQxbFkQYotr9a4if3UMqUfCUDTtveDnPeMZntv/Yw4GVmm2iS2GEAqgcnKeSKKGRC2RP16nYo+GoqnmkT/60nO2dS/08qmhgwJinzcRhk3clKh7M9fzKV5J6WaDy5kNnqdpl6JcVJpy2a+s3N3wPUC5ZxvSXH5I8/y5lY4pSn/jIl+gLfIVSe4curj3w1nhRU81b8SntmGEq3/PhJ5ow5AVShYru/UnmWm0pe8u4vnhhYF++pAPj4SsCaAYeIGChvL8hiNEfJ4BQ+OChTdhQUBFLPAnxQJfEha6zeu/jfavr4AHWM+yOnX7yBCGAl8mHrCY2z6qFvFQPSkeaLG/Y+Ch/+dvU/0SaPh8IeK81aD5E+JJUUILYB0HJVIYAsU1JgyIXuByDLiIRbjQNhTKg0sx1nWkSeYCl+PDhWXODZfnd7s/BpdGt/dX+n2ByXFggs8ME0xzXXM6NGdGjRwZI0pztMXC1nORh0IE4+2+IQjV2/6JFR0mBiRxxSdJaZPOlLZxKuqsaRROqx2iJhb5mmeZcbnnzwEV1fnKSiOheaaj+fYq2zeaDuMWbgnCUyEQIe/YVq/4LJOFu/R0M663x0KBFZ8/YlVkFcmiwCqE1e7WP4C0AzbE/7NIOxeCsJi1N1w+OHYofvI7N2fAT9H/mXV7/QKGkuhpZue0lmwEh9sz+V3hVw8GvLQtkkZjsktrkFM7uBYl2WuyK8vWNwBjtnHbUtnHbR3d9uSN2reQIjWx2le2qmQh2a6PhzfXgR4gW3tQV0Nbtoyp4xjon5UpIVtp1Nay1Fwr4ztL6de2aoPk/97qrLMajiG/x22ABzd82CxDHq0u0iV31cYGNrY8Vrb8Sp/qK2VcWyuNamBMdVtu1Xzt4a4qj5tYGU8gPfKHN3zQmY0W2gPv3fb+cY1Wd92xKyvggtszPWhPq9vHbWXT6U/4No7KQbtYe+gijfQT+EPafXxwZlqL8JahPRlkcHvTdR5nCrlqqch82Dhyq8vrN/dVedZ1zNbdaoDVQLYrpESjOnl8eAxux5v14E/XlW+A0wSxqnS/VEBa6viOkSV50+lxgTLWGbWvjtR+c6lKtY06nkDe/aY9vlsr/QGv9ojkahZIcKtuOeAxCJSgaRFecL3tSPdIlhTUaXAbJbB46IOlBHdce9wMOtIEK3YoeUvpIWgL2ug3WdDehvBU+7UlSGKr9OXMdaQtaHOsL6GvrBIoftj38T2nSAMc9W+whjxO2dYY0B4LdNSRlKSurwZQPhhsOhL0pX/HtAmfscWojRoibYXICSxOlu4YpcExSiDjjmSR+lHfpCbbHk+QCjzULeH5pjZ5wrc9lpmOVGNV7NryzeN8eLOuyrayUfpN8ptFUFCz2wFX0W+ukdaoTwA9Ksh33R7rgHIdd6CNYZ/0ocmDjtakT0Mio1aT9AUQNeCVqP+ZNNGr0p+wnX6NG4b3dQ8874neuU6rGd9XxLPTQM/VxXFbfppfeM+pMu10/9j1msh9L9vRRnmBf7pu5zojr7XSVBg1HGFpeTVDebUxWIWAIxYsu0lb5raayHHZyYFjC84oZopzE35hGvqQM5rsxb7oIsAEnGxqL0xrCgJo7kn1lAcxc2f5LbKCwYbi1zbpJO2co4C0KkM9Pc1KIgk6f1GnQERZX/DdToGYO+PN5TfTS3YJuLLirJe4+0Fxd5xVv0iJeZw07s4VYx6XpzbeeMIvt7VG2UqpUB7aEMtSKX/AlHBOjz+tSuHdKwBOBf9O6Vv8eVcAxD9pfoUVAHiHnb4OXmr0rUn34BGDVz8ewK/BdoiXHeWhHni3ZlQnAG/48Dog+cepsxjC3cjo8abTt8gdWHqDmT+SOwzuWcWWV7m+8UqqX7A6CVJtyKokgzc+iNJ4ACuWu6UapzXwtpVd2cexMlbIyoSkceTJy0lZ8DKbPHjlOdrddsfbGcCqYN+PQVDz0/zi+v6z9bcIKfauLwJocqo9bBaAWOgXeLeTAWiovm4/OODhwz32B4nGWvWRcWNZREJ94KjuuOiA18lWa6Q5G/B7t4Y737fMKltly6FdHVjn7MvrPvBYwlosRRtk7uL3OCPxMfjqaX5xfZThmarPZqSQXe+walNmuuNBbrzcFf13z/W12J6gEm01mdyztro4/dKOxJT2yAtPOx/18QhfzsJ+IOLHvC3iZ25s/0/qOlULUvtKJHGkeHTkeR8wH6YD1y/4QudaYgh515B9b9y6mmfEnTjuyNMOel1Q/fmXuXlflgKdQ1HIscy5UVhc6l5eKfDSKwVyW2fnX8gc8LjaxYx8QjNSiHK834ywPP8aq7LNSGmHiC4Rs3dEzCrCmSNm/CViduSIWYU780QjfPDVNd/dUzi/AtmLp/Cf8BQq4tE8BQqrkj0F4YBgziXwfgm8XwLvl8D7Jwy8/6yWGXrHfC4edODTqKWF3oXPGqT8LnP/7hV0H5/782/ZqYgnnvmLjwTwSGkFBUCddhGfw2JpQzsvfcpy4KSPCQqfNHD4JYcpFnfH1hP9Yvy+YUphJeRYlT1Qi8E8lv82A1XIz8Hnfp5XKOuJu0ts9T2xVQaxZw6uJui7BFePFVxlEOVVHycNzokHvNXrqzjan+CZyxfGzWfx5BmEj+bKA6/T+vJiMZZ82Qx4w2bAJzA4n/1QXc54cOKr+wEklXrr7klsinDW43A7PkewKRi9zqtsq3JAtOnzvv1wB+FD3n6YDITSDE5utqEd4qW95RAfw+Dcdn/fLe368MESJE9Z/8Xol0L53zXfKfrDva6OshaVVG0U3c1vpY3sEh9m4zOro+hOaf/7HrrI/48m2sN++JSqKPpFw2+qiopY9FFPqoqiO6B/U1WAM1aaLiC5/694kSu3/9+CuPl/ diff --git a/docs/_static/diagrams/ethernet/data_frame_format.diag b/docs/_static/diagrams/ethernet/data_frame_format.diag index 201a14efc8..a8f4afa054 100644 --- a/docs/_static/diagrams/ethernet/data_frame_format.diag +++ b/docs/_static/diagrams/ethernet/data_frame_format.diag @@ -14,4 +14,4 @@ rackdiag ethernet_data_frame { 6: Payload (0 ~ 1500 Bytes) [2U]; 6: Pad (if necessary) [2U]; 8: Frame Check Sequence (4 Bytes) [color = lightgrey]; -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/i2c-command-link-master-read-blockdiag.diag b/docs/_static/diagrams/i2c-command-link-master-read-blockdiag.diag index 726d0e059a..e8a33ce7e1 100644 --- a/docs/_static/diagrams/i2c-command-link-master-read-blockdiag.diag +++ b/docs/_static/diagrams/i2c-command-link-master-read-blockdiag.diag @@ -1,6 +1,6 @@ #Diagram demonstrating how to build a command link for an I2C master to read n bytes from a slave -blockdiag i2c-command-link-master-read { +blockdiag i2c-command-link-master-read { # global properties span_width = 5; span_height = 5; @@ -11,9 +11,9 @@ blockdiag i2c-command-link-master-read { class cjoint [shape=none, width=40]; # all the rows - 0 -- a0 -- f0 [style=none]; - 1 -- a1 -- b1 -- c1 -- d1 -- e1 -- f1 -- g1 -- h1 -- i1 -- j1 [style=none]; - 2 -- a2 -- b2 -- c2 -- d2 -- e2 -- f2 -- g2 -- h2 -- i2 [style=none]; + 0 -- a0 -- f0 [style=none]; + 1 -- a1 -- b1 -- c1 -- d1 -- e1 -- f1 -- g1 -- h1 -- i1 -- j1 [style=none]; + 2 -- a2 -- b2 -- c2 -- d2 -- e2 -- f2 -- g2 -- h2 -- i2 [style=none]; 3 -- a3 -- d3 -- f3 -- h3 [style=none]; 4 -- a4 [style=none]; 5 -- a5 [style=none]; @@ -40,22 +40,22 @@ blockdiag i2c-command-link-master-read { 8 [class=spacer]; a8 [class=cmdlink]; c8 [class=cjoint, colwidth=3]; f8 [shape=none, colwidth=2]; a8 -- c8 -- f8 [style=solid]; f8 -> f3 [folded]; 9 [class=spacer]; a9 [class=cmdlink]; c9 [class=cjoint, colwidth=5]; h9 [shape=none, colwidth=2]; a9 -- c9 -- h9 [style=solid]; h9 -> h3 [folded]; 10 [class=spacer]; a10 [class=cmdlink]; c10 [class=cjoint, colwidth=7]; j10 [shape=none, width=40]; a10 -- c10 -- j10 [style=solid]; j10 -> j1 [folded]; - 11 [class=spacer]; a11 [class=cmdlink]; - 12 [class=spacer]; a12 [class=cmdlink]; + 11 [class=spacer]; a11 [class=cmdlink]; + 12 [class=spacer]; a12 [class=cmdlink]; # labels f0 [label="Data (n-1) times", shape=note, color=yellow]; b1 [label=Master, shape=note, color=lightyellow]; c1 [label=START]; d1 [label="Slave Address"]; g1 [label=ACK]; i1 [label=NAK]; j1 [label=STOP]; b2 [label=Slave, shape=note, color=lightyellow]; e2 [label=ACK]; f2 [label=Data]; h2 [label=Data]; - a4 [shape=note, label=Commands, color=yellow]; - a5 [label="cmd = i2c_cmd_link_create()", numbered = 1]; - a6 [label="i2c_master_start(cmd)", numbered = 2]; - a7 [label="i2c_master_write_byte(cmd, Address, ACK)", numbered = 3]; - a8 [label="i2c_master_read(Data, n-1, ACK)", numbered = 4]; - a9 [label="i2c_master_read(Data, 1, NAK)", numbered = 5]; - a10 [label="i2c_master_stop(cmd)", numbered = 6]; - a11 [label="i2c_master_cmd_begin(I2c_port, cmd, wait)", numbered = 7]; - a12 [label="i2c_cmd_link_delete(cmd)", numbered = 8]; + a4 [shape=note, label=Commands, color=yellow]; + a5 [label="cmd = i2c_cmd_link_create()", numbered = 1]; + a6 [label="i2c_master_start(cmd)", numbered = 2]; + a7 [label="i2c_master_write_byte(cmd, Address, ACK)", numbered = 3]; + a8 [label="i2c_master_read(Data, n-1, ACK)", numbered = 4]; + a9 [label="i2c_master_read(Data, 1, NAK)", numbered = 5]; + a10 [label="i2c_master_stop(cmd)", numbered = 6]; + a11 [label="i2c_master_cmd_begin(I2c_port, cmd, wait)", numbered = 7]; + a12 [label="i2c_cmd_link_delete(cmd)", numbered = 8]; # Slave Address group { d1; e1; } @@ -68,4 +68,4 @@ blockdiag i2c-command-link-master-read { # Data group { h1; i1; } group { h2; i2; h3; } -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/i2c-command-link-master-write-blockdiag.diag b/docs/_static/diagrams/i2c-command-link-master-write-blockdiag.diag index 01e73e582a..2326182059 100644 --- a/docs/_static/diagrams/i2c-command-link-master-write-blockdiag.diag +++ b/docs/_static/diagrams/i2c-command-link-master-write-blockdiag.diag @@ -1,7 +1,7 @@ #Diagram demonstrating how to build a command link for an I2C master to send n bytes to a slave -blockdiag i2c-command-link-master-write { +blockdiag i2c-command-link-master-write { # global properties span_width = 5; span_height = 5; @@ -12,9 +12,9 @@ blockdiag i2c-command-link-master-write { class cjoint [shape=none, width=40]; # all the rows - 0 -- a0 -- f0 [style=none]; - 1 -- a1 -- b1 -- c1 -- d1 -- e1 -- f1 -- g1 -- h1 [style=none]; - 2 -- a2 -- b2 -- c2 -- d2 -- e2 -- f2 -- g2 [style=none]; + 0 -- a0 -- f0 [style=none]; + 1 -- a1 -- b1 -- c1 -- d1 -- e1 -- f1 -- g1 -- h1 [style=none]; + 2 -- a2 -- b2 -- c2 -- d2 -- e2 -- f2 -- g2 [style=none]; 3 -- a3 -- d3 -- f3 [style=none]; 4 -- a4 [style=none]; 5 -- a5 [style=none]; @@ -39,21 +39,21 @@ blockdiag i2c-command-link-master-write { 7 [class=spacer]; a7 [class=cmdlink]; c7 [class=cjoint]; d7 [shape=none, colwidth=2]; a7 -- c7 -- d7 [style=solid]; d7 -> d3 [folded]; 8 [class=spacer]; a8 [class=cmdlink]; c8 [class=cjoint, colwidth=3]; f8 [shape=none, colwidth=2]; a8 -- c8 -- f8 [style=solid]; f8 -> f3 [folded]; 9 [class=spacer]; a9 [class=cmdlink]; c9 [class=cjoint, colwidth=5]; h9 [shape=none, width=40]; a9 -- c9 -- h9 [style=solid]; h9 -> h1 [folded]; - 10 [class=spacer]; a10 [class=cmdlink]; - 11 [class=spacer]; a11 [class=cmdlink]; + 10 [class=spacer]; a10 [class=cmdlink]; + 11 [class=spacer]; a11 [class=cmdlink]; # labels f0 [label="Data n times", shape=note, color=yellow]; b1 [label=Master, shape=note, color=lightyellow]; c1 [label=START]; d1 [label="Slave Address"]; f1 [label=Data]; h1 [label=STOP]; - b2 [label=Slave, shape=note, color=lightyellow]; e2 [label=ACK]; g2 [label=ACK]; - a4 [shape=note, label=Commands, color=yellow]; - a5 [label="cmd = i2c_cmd_link_create()", numbered = 1]; - a6 [label="i2c_master_start(cmd)", numbered = 2]; - a7 [label="i2c_master_write_byte(cmd, Address, ACK)", numbered = 3]; - a8 [label="i2c_master_write(Data, n, ACK)", numbered = 4]; - a9 [label="i2c_master_stop(cmd)", numbered = 5]; - a10 [label="i2c_master_cmd_begin(I2c_port, cmd, wait)", numbered = 6]; - a11 [label="i2c_cmd_link_delete(cmd)", numbered = 7]; + b2 [label=Slave, shape=note, color=lightyellow]; e2 [label=ACK]; g2 [label=ACK]; + a4 [shape=note, label=Commands, color=yellow]; + a5 [label="cmd = i2c_cmd_link_create()", numbered = 1]; + a6 [label="i2c_master_start(cmd)", numbered = 2]; + a7 [label="i2c_master_write_byte(cmd, Address, ACK)", numbered = 3]; + a8 [label="i2c_master_write(Data, n, ACK)", numbered = 4]; + a9 [label="i2c_master_stop(cmd)", numbered = 5]; + a10 [label="i2c_master_cmd_begin(I2c_port, cmd, wait)", numbered = 6]; + a11 [label="i2c_cmd_link_delete(cmd)", numbered = 7]; # Slave Address group { d1; e1; } @@ -62,4 +62,4 @@ blockdiag i2c-command-link-master-write { # Data x n times group { f1; g1;} group { f2; g2; f3; } - } \ No newline at end of file + } diff --git a/docs/_static/diagrams/ring-buffer/ring_buffer_read_ret_byte_buf.diag b/docs/_static/diagrams/ring-buffer/ring_buffer_read_ret_byte_buf.diag index 9ad33b05f4..ef7ccb22b3 100644 --- a/docs/_static/diagrams/ring-buffer/ring_buffer_read_ret_byte_buf.diag +++ b/docs/_static/diagrams/ring-buffer/ring_buffer_read_ret_byte_buf.diag @@ -27,4 +27,4 @@ packetdiag ring_buffer_read_ret_byte_buf { #Return data 512-639: 128 Free -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/ring-buffer/ring_buffer_read_ret_non_byte_buf.diag b/docs/_static/diagrams/ring-buffer/ring_buffer_read_ret_non_byte_buf.diag index a7773b9910..5cfa1e10c7 100644 --- a/docs/_static/diagrams/ring-buffer/ring_buffer_read_ret_non_byte_buf.diag +++ b/docs/_static/diagrams/ring-buffer/ring_buffer_read_ret_non_byte_buf.diag @@ -83,4 +83,4 @@ packetdiag ring_buffer_read_ret_non_byte_buf { 964-971: 8 [color = lightblue]; 972-995: 24 [color = lightyellow]; 996-1023: 28 Free -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/ring-buffer/ring_buffer_send_acquire_complete.diag b/docs/_static/diagrams/ring-buffer/ring_buffer_send_acquire_complete.diag index fd6c3e9db8..4aa95601a1 100644 --- a/docs/_static/diagrams/ring-buffer/ring_buffer_send_acquire_complete.diag +++ b/docs/_static/diagrams/ring-buffer/ring_buffer_send_acquire_complete.diag @@ -60,4 +60,4 @@ packetdiag ring_buffer_send_acquire_complete { 708-715: 8 [color = lightblue]; 716-739: 24 Available [color = lightyellow]; 740-767: 28 Free -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/ring-buffer/ring_buffer_send_byte_buf.diag b/docs/_static/diagrams/ring-buffer/ring_buffer_send_byte_buf.diag index 9bac570422..786ff5cce1 100644 --- a/docs/_static/diagrams/ring-buffer/ring_buffer_send_byte_buf.diag +++ b/docs/_static/diagrams/ring-buffer/ring_buffer_send_byte_buf.diag @@ -18,4 +18,4 @@ packetdiag ring_buffer_send_byte_buf { #Add 27 byte item 256-303: 48 [color = lightyellow]; 304-383: 80 Free -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/ring-buffer/ring_buffer_send_non_byte_buf.diag b/docs/_static/diagrams/ring-buffer/ring_buffer_send_non_byte_buf.diag index 25cb71e797..7094db0046 100644 --- a/docs/_static/diagrams/ring-buffer/ring_buffer_send_non_byte_buf.diag +++ b/docs/_static/diagrams/ring-buffer/ring_buffer_send_non_byte_buf.diag @@ -27,4 +27,4 @@ packetdiag ring_buffer_send_non_byte_buf { 296-303: 8 [color = lightblue]; 304-331: 28 [color = lightyellow]; 332-383: 52 Free -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_allow_split.diag b/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_allow_split.diag index 94e26e87a9..5fed720b8f 100644 --- a/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_allow_split.diag +++ b/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_allow_split.diag @@ -27,11 +27,11 @@ packetdiag ring_buffer_wrap_allow_split { #Send second part 256-263: 8 [color = lightblue]; 264-283: 20 [color = lightyellow]; - 284-295: 12 Free + 284-295: 12 Free 296-303: 8 [color = lightblue]; 304-319: 16 [color = lightyellow]; 320-327: 8 [color = lightblue]; 328-367: 40 [color = lightyellow]; 368-375: 8 [color = lightblue]; 376-383: 8 [color = lightyellow]; -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_byte_buf.diag b/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_byte_buf.diag index bf693779da..8b727f8489 100644 --- a/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_byte_buf.diag +++ b/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_byte_buf.diag @@ -20,4 +20,4 @@ packetdiag ring_buffer_wrap_byte_buf { 256-267: 12 [color = lightyellow]; 268-295: 28 Free 296-383: 88 [color = lightyellow]; -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_no_split.diag b/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_no_split.diag index ff4a11a8fb..385a92bb54 100644 --- a/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_no_split.diag +++ b/docs/_static/diagrams/ring-buffer/ring_buffer_wrap_no_split.diag @@ -32,4 +32,4 @@ packetdiag ring_buffer_wrap_no_split { 320-327: 8 [color = lightblue]; 328-367: 40 [color = lightyellow]; 368-383: Dummy [color = lightgrey]; -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/spi/spi_master_freq_tv.plt b/docs/_static/diagrams/spi/spi_master_freq_tv.plt index 358cd1c981..51d9ec5996 100644 --- a/docs/_static/diagrams/spi/spi_master_freq_tv.plt +++ b/docs/_static/diagrams/spi/spi_master_freq_tv.plt @@ -28,6 +28,4 @@ plot [0:125]\ "tv.csv" using 1:2 with circles notitle fill solid fc rgb "blue", \ "tv.csv" using 1:4 with circles notitle fc rgb "blue",\ "tv.csv" using 1:3 with circles notitle fill solid fc rgb "red" ,\ - "tv.csv" using 1:5 with circles notitle fc rgb "red" - - + "tv.csv" using 1:5 with circles notitle fc rgb "red" diff --git a/docs/_static/diagrams/twai/acceptance_filter_dual.diag b/docs/_static/diagrams/twai/acceptance_filter_dual.diag index 5f4bf02d75..54342da732 100644 --- a/docs/_static/diagrams/twai/acceptance_filter_dual.diag +++ b/docs/_static/diagrams/twai/acceptance_filter_dual.diag @@ -16,4 +16,4 @@ packetdiag acceptance_filter_dual { 32-47: "F2 29-bit ID [13:28]" [color = lightblue]; 48-63: "F1 29-bit ID [13:28]" [color = lightblue]; -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/twai/acceptance_filter_single.diag b/docs/_static/diagrams/twai/acceptance_filter_single.diag index 6cc4144daa..46226d76f1 100644 --- a/docs/_static/diagrams/twai/acceptance_filter_single.diag +++ b/docs/_static/diagrams/twai/acceptance_filter_single.diag @@ -18,4 +18,4 @@ packetdiag acceptance_filter_single { 34: RTR [color = lightblue]; 35-63: 29 bit ID [color = lightblue]; -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/twai/bit_timing.diag b/docs/_static/diagrams/twai/bit_timing.diag index 983e7f0858..3d27ea2bf7 100644 --- a/docs/_static/diagrams/twai/bit_timing.diag +++ b/docs/_static/diagrams/twai/bit_timing.diag @@ -9,4 +9,4 @@ packetdiag bit_timing_diag{ 0: "Sync" [color = lightgrey]; 1-14: "Tseg1 = 15" [color = lightblue]; 15-19: "Tseg2 = 4" [color = lightyellow]; -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/twai/controller_signals.diag b/docs/_static/diagrams/twai/controller_signals.diag index 0b65e6fdf7..71f2e6376d 100644 --- a/docs/_static/diagrams/twai/controller_signals.diag +++ b/docs/_static/diagrams/twai/controller_signals.diag @@ -1,7 +1,7 @@ #Diagram of TWAI controller signal lines blockdiag controller_signals_diagram { - + orientation = portrait; span_width = 80; @@ -54,4 +54,4 @@ blockdiag controller_signals_diagram { rx <- hide2 [folded]; bus_off -> hide3 [folded, label = "Optional"]; clkout -> hide4 [folded, label = "Optional"]; -} \ No newline at end of file +} diff --git a/docs/_static/diagrams/twai/state_transition.diag b/docs/_static/diagrams/twai/state_transition.diag index edfacdfdf7..55fd90f998 100644 --- a/docs/_static/diagrams/twai/state_transition.diag +++ b/docs/_static/diagrams/twai/state_transition.diag @@ -21,11 +21,10 @@ blockdiag state_transition_diagram { bus_off -> uninstalled [folded, thick, fontsize = 14, label = "F"]; bus_off -> recovering [thick, fontsize = 14, label = "G"]; recovering -> stopped [folded, thick, color = blue, fontsize = 14, label = "H"]; - + uninstalled <-> stopped [thick, fontsize = 14, label = "A/B"]; stopped <-> running [thick, fontsize = 14, label = "C/D"]; running -> bus_off [folded, thick, color = red, fontsize = 14, label = "E"]; - + app_start -> uninstalled [folded, style = dashed] } - diff --git a/docs/_static/esp-ble-mesh-architecture.xml b/docs/_static/esp-ble-mesh-architecture.xml index df6935b954..516ee4d95b 100644 --- a/docs/_static/esp-ble-mesh-architecture.xml +++ b/docs/_static/esp-ble-mesh-architecture.xml @@ -1 +1 @@ -5VtbV6M6FP41ffQsSCDAYy9WPWpPl1Zdc15cFELLSAknTS/Orz+BBtuSdGTWkOrUupaFnXDJ9+3s7Evagt3Z+oL62fSWhDhpASNct2CvBYBpWw7/yiWvQmJa1kYyoXEoZFvBffwDC6EhpIs4xPO9joyQhMXZvjAgaYoDtifzKSWr/W4RSfafmvkTLAnuAz+RpU9xyKYbqWsbW/kljifT8smWIVpmftlZCOZTPySrHRE8b8EuJYRtjmbrLk5y9EpcNtf1D7S+vRjFKatzwWAQuXdzSDrtdpSsv/9z2R0kZ1Dws/SThRixeFv2WkJAySINcX4XswU7q2nM8H3mB3nrirPOZVM2S0RzRFImWOTvAzt+Ek9SfhLwt8Q07xAnSZckhB/3UpLivA8NxCWQnxF+75jl+mLlN5CHKUa+xJTh9Y5IDPsCkxlm9JV3KVtLToQSgvJ8tWXUQUI23WHTdYXQF1o0ebv3Fmh+ILBW474wY/e893dyi25Q8m108/jv9PnMlGC/xfMplxRTaN4sBzlSMVfptuCCkawhYME+sBDKwAJXAezbpPgdYJUKLQPbzrKEj57FJG0Y111VbgEY+tiNAi6fM0pe8E4LClw8jvRg/gblrjIDBeaWLsiBDPnwqpW/Qp//P1/mY9WJe2Tnf0rci4+4w45889HEh2P9ZX8wI9Yh6zLAbEXoS5xO/lALY6OaFgbaniZwbQncfg5dYWBKA86/b/xXvt7p1HtshjZ2VHrvIQf6qCEGrH0GLAfKDFgKBpCliQAka/dnwlzfXKgwAR1DYWmUXLi6JoPsPraDAM/nn4UMDbAjoyboyNYEuiuB/pBlOdbGiPrpPCOUnTL+rllX7ZEutfckBm7I6ssw4KC6S4CuGVBmB3YIEK7NCcPuWrXtPXJ1AS/HV33sswXFf0rMagHJnEiYmipMAdQGqhxB9WmM01CrEkdRBAJluBqiMbIbUmILVmxH6Zfvwq0KjoAu221ClfHmguHGhDcEuel+GshNVA9yCHRBLgekdzjxX09Rvz33o/VbDlCHlKzzd77HdHmSKu6Weex3VVxb3lGOhLYeya2f+hM8azwRJiXXj7ZqQqAw46pVE1qmLsTlMGiLeJdikZBpUtd/WswolB+jA8rveGOjoXJGVfltR/YKlcpvaXPH5XjoGudvfIcjWmQevwALsCYL2lZZIAdFV4/8/CELfYa/AgeWV3cZ0GWUgBwfFRxccajXxYQICB9fc57PZ2bDUlVCjmuZgBxaDUiICyZmhEu/AhHQ9WoToSvGBXLUJWpS3DldxnO+VjdelTqee2S777tHQLXDwPa0VWUPFgE7mA+VRwE6EmXHg7xaGfSgHOUqq66OrsALyIFXOyzGPy9U+w14rYBXNyXY2A0tlcVxwRiiplKVFYvjOXJSDdrHjMeAXCW8aI9GJ82C5dVgQRmkaWNBjoo7/IgRwnJLtMm7naeYTvJhdAnNV+b7DAdxJLbsHJenft/jHxVPhmE7xfpc2UpiFB89Js00wEfvJAFykL2/XhvD3kPDqf/3SBqbYRgZKpJMw4EebmhJr0wm6CiWdNVk8nT5slCOLVoAJfyxnTBe8sNJfniB+XSKg7KFP2mnUdF/n866F/UeSumYVvtVrz593bA8RTaszMNO97YH69oUU2YVfq4cIhH86yyfPqdOyVeZzzFU1dZjsypHTcPOWbv3eIoMVGcVQopSigp/T1c2B77j0Z8+B45bkwOzLKs2T4LsyTe1jOX1sJjz84WXsqrZOy7hBrkazWByiYfw20NwEfUuM6bYT95NYt2byA9v6enYHO1eQx6+XXEcDEXC2tDk4CvBlrNEZbG4YdB/rVjcQx19xWKn7n4IXaArKvSds0164vQtzFGX9eV4+bIO+5fOcnZ99t0Y34Sj/xS7NweP93nigRGa/xywUZX/nCUBBJy6JYEm6pXD9nD2NJyQ1+jZ7LgDcP28eFLY+Yb3p/yWnZewVTBwEG7gHM/O89Ptj0iLtp3f4sLz/wE= \ No newline at end of file +5VtbV6M6FP41ffQsSCDAYy9WPWpPl1Zdc15cFELLSAknTS/Orz+BBtuSdGTWkOrUupaFnXDJ9+3s7Evagt3Z+oL62fSWhDhpASNct2CvBYBpWw7/yiWvQmJa1kYyoXEoZFvBffwDC6EhpIs4xPO9joyQhMXZvjAgaYoDtifzKSWr/W4RSfafmvkTLAnuAz+RpU9xyKYbqWsbW/kljifT8smWIVpmftlZCOZTPySrHRE8b8EuJYRtjmbrLk5y9EpcNtf1D7S+vRjFKatzwWAQuXdzSDrtdpSsv/9z2R0kZ1Dws/SThRixeFv2WkJAySINcX4XswU7q2nM8H3mB3nrirPOZVM2S0RzRFImWOTvAzt+Ek9SfhLwt8Q07xAnSZckhB/3UpLivA8NxCWQnxF+75jl+mLlN5CHKUa+xJTh9Y5IDPsCkxlm9JV3KVtLToQSgvJ8tWXUQUI23WHTdYXQF1o0ebv3Fmh+ILBW474wY/e893dyi25Q8m108/jv9PnMlGC/xfMplxRTaN4sBzlSMVfptuCCkawhYME+sBDKwAJXAezbpPgdYJUKLQPbzrKEj57FJG0Y111VbgEY+tiNAi6fM0pe8E4LClw8jvRg/gblrjIDBeaWLsiBDPnwqpW/Qp//P1/mY9WJe2Tnf0rci4+4w45889HEh2P9ZX8wI9Yh6zLAbEXoS5xO/lALY6OaFgbaniZwbQncfg5dYWBKA86/b/xXvt7p1HtshjZ2VHrvIQf6qCEGrH0GLAfKDFgKBpCliQAka/dnwlzfXKgwAR1DYWmUXLi6JoPsPraDAM/nn4UMDbAjoyboyNYEuiuB/pBlOdbGiPrpPCOUnTL+rllX7ZEutfckBm7I6ssw4KC6S4CuGVBmB3YIEK7NCcPuWrXtPXJ1AS/HV33sswXFf0rMagHJnEiYmipMAdQGqhxB9WmM01CrEkdRBAJluBqiMbIbUmILVmxH6Zfvwq0KjoAu221ClfHmguHGhDcEuel+GshNVA9yCHRBLgekdzjxX09Rvz33o/VbDlCHlKzzd77HdHmSKu6Weex3VVxb3lGOhLYeya2f+hM8azwRJiXXj7ZqQqAw46pVE1qmLsTlMGiLeJdikZBpUtd/WswolB+jA8rveGOjoXJGVfltR/YKlcpvaXPH5XjoGudvfIcjWmQevwALsCYL2lZZIAdFV4/8/CELfYa/AgeWV3cZ0GWUgBwfFRxccajXxYQICB9fc57PZ2bDUlVCjmuZgBxaDUiICyZmhEu/AhHQ9WoToSvGBXLUJWpS3DldxnO+VjdelTqee2S777tHQLXDwPa0VWUPFgE7mA+VRwE6EmXHg7xaGfSgHOUqq66OrsALyIFXOyzGPy9U+w14rYBXNyXY2A0tlcVxwRiiplKVFYvjOXJSDdrHjMeAXCW8aI9GJ82C5dVgQRmkaWNBjoo7/IgRwnJLtMm7naeYTvJhdAnNV+b7DAdxJLbsHJenft/jHxVPhmE7xfpc2UpiFB89Js00wEfvJAFykL2/XhvD3kPDqf/3SBqbYRgZKpJMw4EebmhJr0wm6CiWdNVk8nT5slCOLVoAJfyxnTBe8sNJfniB+XSKg7KFP2mnUdF/n866F/UeSumYVvtVrz593bA8RTaszMNO97YH69oUU2YVfq4cIhH86yyfPqdOyVeZzzFU1dZjsypHTcPOWbv3eIoMVGcVQopSigp/T1c2B77j0Z8+B45bkwOzLKs2T4LsyTe1jOX1sJjz84WXsqrZOy7hBrkazWByiYfw20NwEfUuM6bYT95NYt2byA9v6enYHO1eQx6+XXEcDEXC2tDk4CvBlrNEZbG4YdB/rVjcQx19xWKn7n4IXaArKvSds0164vQtzFGX9eV4+bIO+5fOcnZ99t0Y34Sj/xS7NweP93nigRGa/xywUZX/nCUBBJy6JYEm6pXD9nD2NJyQ1+jZ7LgDcP28eFLY+Yb3p/yWnZewVTBwEG7gHM/O89Ptj0iLtp3f4sLz/wE= diff --git a/docs/_static/esp-ble-mesh-interface.xml b/docs/_static/esp-ble-mesh-interface.xml index 3a708e7134..58a61e1b70 100644 --- a/docs/_static/esp-ble-mesh-interface.xml +++ b/docs/_static/esp-ble-mesh-interface.xml @@ -1 +1 @@ -5V1Zd9o6EP41PJJjyfL2yJImadMebrO0yUuPgxVw6yDXmK2//spggW2pNngnzUssIQtpZr7RzGgkOvLgbX3lme70M7Gw04GSte7Iww6EQFIV+i+o2exqNN3YVUw82wobHSru7D+YvRnWLmwLz2MNfUIc33bjlWMym+GxH6szPY+s4s1eiRP/VtecYK7ibmw6fO032/Knu1odaof6a2xPpuybgRrO781kjcOZzKemRVaRKvmyIw88Qvzd09t6gJ2AeIwuu/c+/OXT/cA8PPOPecH89ji6sqeoD7Vln3gzMH/0u3DXy9J0FuGEw8H6G0YBjyxmFg46AR25v5raPr5zzXHw6YrynNZN/Tcn/PjVdpwBcYhHyzMyo436hDa2/YD9SKJF0xuHXJZpiZ9EOK8l9ny8jlSFk7rC5A373oY2YZ+ikMChhClhcXVgF9LDummEVToTMTMUkcm+6wMV6UNISDFRn/9D4x+uv9xcrdZfVeKB9Z9BV84mKraolIVF4vlTMiEz07k81PYPtbeEuCF5f2Lf34TkMxc+iRP/wCkpjbRzsvDGOGX8DGemN8F+SrtwWsFcUhnlYcf07WUcUSKqb1/teZ65iTRwiT3z55GeR0HFgf9Qj/MfAD2Og9Pa04fdCA78308lv0gATiR6ruvYY0oXMqMf3Job7BWEHpn5oWjAVP6fAC01TipV56GFBNBCJSDrCSs3t78kfwAfwca3Fqun0U0X5QBSHBU5YIXXtv89eP1CU8LiU9hb8DxcRwsbVpjR+UbfCspPrMegcHhvW2Iv5octPBK2oGzYFlKW/ArUv72kFZ/xfEr/9e8HZwMPgGrEx/Of62ul9+yPPj4PH34vDWx8WnRzrTSlAQRE0XEAy4kAkTIAEmEkCF78uXhz2QSpcVEIQkgAIRGdS4dQrpVPkeWY/CFDy1j59LT2hVe+yWLjgsX1qouk6ydp+fTxavXQ1ZpV2QYyIlIJLiQJHimWMZm8gMoJYsm+YoQ9m9IPe7XpdtSUbjduxtLzmzQD6PfNd8MjL0D3uzIozPwxebPH4TOP9G3Njuh6QUnJqbt0pMUFxTCyVvhtKSkae++wmJyIFFgtpnshGwBxNkAHqg4df9+ylzH5UX8vAn95i7bufMvUHm0AFHd9+JA+TYL/I48s7Tk1sAPbQeqyPukQt93uGpX7TfZs8revKWK8WLaHx1tXQR5SGQiMC24dLMGgUUDcoJGBxhk0hsCeAXIJBo1w9QDKORo0sgLjSkGCKI9SSK4pR+kFoeMkcunba9jsY2bMUNHKddHTSFRaKCwDs1U5ISLMQpETUgpoxV5I8WW/AdAWckLyI1Nk2bUXmYiZdAyZeobLgZS09tW4HI2uGXkNSRWgqABSTwVmyGDFS8axLkc7osBJwaQV1Qsa878bi0cCLSZthvFenNs0iWxa0rS4SoNKuZKWNvWyPaQvxMJR1+jFy99Xze5VFUM9AxcNSfEYXq0umlA0VU40e6MbjpZ0en6cYB6mbDJftg0C/RHijrZW+h1lSGsC1TcPyRcUHXsSUNfBr0FXAc3ssen0wmo/UJ/9ebDbPJvcb3VpF1XDBKjHA68AqBwTZAETYFU80EpRD1tgJKByuQzIdBxe3hWPkaFk8lipiMdCB0Bv1tbItfV50s5nSRs7QoAYAmNWROTS4+e5TAw5kaKgqOleVjJul2hfPKVB6JA26uUzo5Vt7BwrkbAhN18ggMJ2slq2BBZSOkzpNbZ9J+lH650ks6IBWd04RRMJPevcPk+aPJSsaHjNoBgxzaDKKN7FTiDDt9JUTLKjMCS772g3Y66jshwgg7NwYmkiPct0/e02z3mkiqgsTbSxVCrQInviaO0NDDmK4650IQEtD5jLU+xsGczU7KUjvhj7+e2OBKACv+F+6mHTKg1NZdnmSTQpBuLQBLRa0WScozGkxuGUZQ1VjSRB8kK7kCQ0kRpOcKojJ7VaHtfjiBWDN5+hMvLIOhgA/e+TMXFapyQRPEJJig5GVJadCuA5KsmmPEbmCWa7jFqr9CH4B5L0G+Byu8xHmY/69+mT5RH6GpSuydwvTSFW5YNpMq8Q603XB03vH58XVLRjFWJjMbTUcUewcnk3ohU7h2tACeQRxzmDqIVm1Bi1ECKm4XCk1oAFkfd8S0oSWSaCQDv2QZIHVhQtfR8EqUpa+8L7IOJDDsWt2toOOeSLup0kvjkOMhSS1OZOM6YM+29RtdHwIYiqfS9N0281xMQzLZtSOHHwnlUPI5kps0B6OvFz+h0ov27/aL1lzqf7YVSwgux3KuuI1ImTkxu2uWAOmwvEAHhaul7ZS8ixQbqW5CsnVgSUsYLIKHnyoIaddNiwx/yPSCRshUQmczVQRm4H0tS09oUlUhk6v66d3n9DRXq5//Hyg+jjS0aqVpjZ+SQySyBLFbd2HcVNG3W6YfK1ZMOkbGuCC2mLrIl6Q9oKR9e7Qe8LR8Z3lRop6/JFfFlVZT4woNaZHAn4GEtv+Pi+2QCRnsmEWjNUWUpJhAlXvfv7980FpGZzoV4o8KlS758LSjK/qkYuiA+uc0z4gv0V8X51yk5RSz/md4qrHs/wQ4KTJaCqUw1CGkKOhrdktU3yu/fM2dylNubZUFPWm6Ymfyvhg+ueKzWVpqnJ29O98RjP5+dDQtg0CVk6SISGN9Rkkx5cy/Rx6wgoJy9HQZAjoMj3qI5+PKI/4WDAX/Grt3Xr2k5BjRfBeiko8IqxOQ5u5Gw56RBoWPjkhndi84TRpQtJjSe8shPztdyyIBZB0cm0Vt3YJWZ/w1mvQI+dC6J8NI6Vgfy3TdZy80GqlLTkXj9Y/IaVare582kHeFJi01FcF5JPsLd9FlwvfsahWq7nys6JrwelbBscrehbvHHK7s853HKS+HWBjFvVE+2ruX9HEOr6EMgbu1V9+3MU89YZc8mkCMiSWKKuGBBYc2Xc4aE4X7TpoDeaf0M/HLP3uvj0CJjMnZcxJ6OYMRfc7avnMebyY5pZ1+013oTcbjjdAOnRK/r2bCvfdmvGVmNC0ZZVu/g537NftaP5lafnJx4N/XqW82IhdYlbMXcZAB8e8cwiXnsXTc7AEC2aLLmv7EVTjKziPnCNyDpbL6h8fVqOQaymG8Qyk09x+4py0aWWi6QkybG4jaYeHbc5SSzLvaxFIKppIt2SlZ/fgmY/z/fZdN3tVYpFdHzVqeKQpYVneUVQP5mAtHj44b0d+A4/Xyhf/g8= \ No newline at end of file +5V1Zd9o6EP41PJJjyfL2yJImadMebrO0yUuPgxVw6yDXmK2//spggW2pNngnzUssIQtpZr7RzGgkOvLgbX3lme70M7Gw04GSte7Iww6EQFIV+i+o2exqNN3YVUw82wobHSru7D+YvRnWLmwLz2MNfUIc33bjlWMym+GxH6szPY+s4s1eiRP/VtecYK7ibmw6fO032/Knu1odaof6a2xPpuybgRrO781kjcOZzKemRVaRKvmyIw88Qvzd09t6gJ2AeIwuu/c+/OXT/cA8PPOPecH89ji6sqeoD7Vln3gzMH/0u3DXy9J0FuGEw8H6G0YBjyxmFg46AR25v5raPr5zzXHw6YrynNZN/Tcn/PjVdpwBcYhHyzMyo436hDa2/YD9SKJF0xuHXJZpiZ9EOK8l9ny8jlSFk7rC5A373oY2YZ+ikMChhClhcXVgF9LDummEVToTMTMUkcm+6wMV6UNISDFRn/9D4x+uv9xcrdZfVeKB9Z9BV84mKraolIVF4vlTMiEz07k81PYPtbeEuCF5f2Lf34TkMxc+iRP/wCkpjbRzsvDGOGX8DGemN8F+SrtwWsFcUhnlYcf07WUcUSKqb1/teZ65iTRwiT3z55GeR0HFgf9Qj/MfAD2Og9Pa04fdCA78308lv0gATiR6ruvYY0oXMqMf3Job7BWEHpn5oWjAVP6fAC01TipV56GFBNBCJSDrCSs3t78kfwAfwca3Fqun0U0X5QBSHBU5YIXXtv89eP1CU8LiU9hb8DxcRwsbVpjR+UbfCspPrMegcHhvW2Iv5octPBK2oGzYFlKW/ArUv72kFZ/xfEr/9e8HZwMPgGrEx/Of62ul9+yPPj4PH34vDWx8WnRzrTSlAQRE0XEAy4kAkTIAEmEkCF78uXhz2QSpcVEIQkgAIRGdS4dQrpVPkeWY/CFDy1j59LT2hVe+yWLjgsX1qouk6ydp+fTxavXQ1ZpV2QYyIlIJLiQJHimWMZm8gMoJYsm+YoQ9m9IPe7XpdtSUbjduxtLzmzQD6PfNd8MjL0D3uzIozPwxebPH4TOP9G3Njuh6QUnJqbt0pMUFxTCyVvhtKSkae++wmJyIFFgtpnshGwBxNkAHqg4df9+ylzH5UX8vAn95i7bufMvUHm0AFHd9+JA+TYL/I48s7Tk1sAPbQeqyPukQt93uGpX7TfZs8revKWK8WLaHx1tXQR5SGQiMC24dLMGgUUDcoJGBxhk0hsCeAXIJBo1w9QDKORo0sgLjSkGCKI9SSK4pR+kFoeMkcunba9jsY2bMUNHKddHTSFRaKCwDs1U5ISLMQpETUgpoxV5I8WW/AdAWckLyI1Nk2bUXmYiZdAyZeobLgZS09tW4HI2uGXkNSRWgqABSTwVmyGDFS8axLkc7osBJwaQV1Qsa878bi0cCLSZthvFenNs0iWxa0rS4SoNKuZKWNvWyPaQvxMJR1+jFy99Xze5VFUM9AxcNSfEYXq0umlA0VU40e6MbjpZ0en6cYB6mbDJftg0C/RHijrZW+h1lSGsC1TcPyRcUHXsSUNfBr0FXAc3ssen0wmo/UJ/9ebDbPJvcb3VpF1XDBKjHA68AqBwTZAETYFU80EpRD1tgJKByuQzIdBxe3hWPkaFk8lipiMdCB0Bv1tbItfV50s5nSRs7QoAYAmNWROTS4+e5TAw5kaKgqOleVjJul2hfPKVB6JA26uUzo5Vt7BwrkbAhN18ggMJ2slq2BBZSOkzpNbZ9J+lH650ks6IBWd04RRMJPevcPk+aPJSsaHjNoBgxzaDKKN7FTiDDt9JUTLKjMCS772g3Y66jshwgg7NwYmkiPct0/e02z3mkiqgsTbSxVCrQInviaO0NDDmK4650IQEtD5jLU+xsGczU7KUjvhj7+e2OBKACv+F+6mHTKg1NZdnmSTQpBuLQBLRa0WScozGkxuGUZQ1VjSRB8kK7kCQ0kRpOcKojJ7VaHtfjiBWDN5+hMvLIOhgA/e+TMXFapyQRPEJJig5GVJadCuA5KsmmPEbmCWa7jFqr9CH4B5L0G+Byu8xHmY/69+mT5RH6GpSuydwvTSFW5YNpMq8Q603XB03vH58XVLRjFWJjMbTUcUewcnk3ohU7h2tACeQRxzmDqIVm1Bi1ECKm4XCk1oAFkfd8S0oSWSaCQDv2QZIHVhQtfR8EqUpa+8L7IOJDDsWt2toOOeSLup0kvjkOMhSS1OZOM6YM+29RtdHwIYiqfS9N0281xMQzLZtSOHHwnlUPI5kps0B6OvFz+h0ov27/aL1lzqf7YVSwgux3KuuI1ImTkxu2uWAOmwvEAHhaul7ZS8ixQbqW5CsnVgSUsYLIKHnyoIaddNiwx/yPSCRshUQmczVQRm4H0tS09oUlUhk6v66d3n9DRXq5//Hyg+jjS0aqVpjZ+SQySyBLFbd2HcVNG3W6YfK1ZMOkbGuCC2mLrIl6Q9oKR9e7Qe8LR8Z3lRop6/JFfFlVZT4woNaZHAn4GEtv+Pi+2QCRnsmEWjNUWUpJhAlXvfv7980FpGZzoV4o8KlS758LSjK/qkYuiA+uc0z4gv0V8X51yk5RSz/md4qrHs/wQ4KTJaCqUw1CGkKOhrdktU3yu/fM2dylNubZUFPWm6Ymfyvhg+ueKzWVpqnJ29O98RjP5+dDQtg0CVk6SISGN9Rkkx5cy/Rx6wgoJy9HQZAjoMj3qI5+PKI/4WDAX/Grt3Xr2k5BjRfBeiko8IqxOQ5u5Gw56RBoWPjkhndi84TRpQtJjSe8shPztdyyIBZB0cm0Vt3YJWZ/w1mvQI+dC6J8NI6Vgfy3TdZy80GqlLTkXj9Y/IaVare582kHeFJi01FcF5JPsLd9FlwvfsahWq7nys6JrwelbBscrehbvHHK7s853HKS+HWBjFvVE+2ruX9HEOr6EMgbu1V9+3MU89YZc8mkCMiSWKKuGBBYc2Xc4aE4X7TpoDeaf0M/HLP3uvj0CJjMnZcxJ6OYMRfc7avnMebyY5pZ1+013oTcbjjdAOnRK/r2bCvfdmvGVmNC0ZZVu/g537NftaP5lafnJx4N/XqW82IhdYlbMXcZAB8e8cwiXnsXTc7AEC2aLLmv7EVTjKziPnCNyDpbL6h8fVqOQaymG8Qyk09x+4py0aWWi6QkybG4jaYeHbc5SSzLvaxFIKppIt2SlZ/fgmY/z/fZdN3tVYpFdHzVqeKQpYVneUVQP5mAtHj44b0d+A4/Xyhf/g8= diff --git a/docs/_static/espressif-logo.svg b/docs/_static/espressif-logo.svg index 5fccc316b9..1725310bff 100644 --- a/docs/_static/espressif-logo.svg +++ b/docs/_static/espressif-logo.svg @@ -42,10 +42,10 @@ - + - + diff --git a/docs/_static/unified_provisioning.xml b/docs/_static/unified_provisioning.xml index d15e9ef505..bc6e29357d 100644 --- a/docs/_static/unified_provisioning.xml +++ b/docs/_static/unified_provisioning.xml @@ -1 +1 @@ -7Zxtc6I6FMc/jTN7X+wOSXjQl/jU7dz21lm67b6NkGpmkTARa7uf/gYBFU/streAK72+UQ8kyO+cnJx/ADtksHi6kDSeX4uAhR1sBE8dMuxgjExiqLfU8pxZHKebGWaSB5nJ2Bk8/ovlLQvrigdsmdsyUyJEmPC4bPRFFDE/KdmolGJd3u1BhEHJENMZAwbPpyG03vMgmWfWLrZ39q+Mz+bFkZHdy7ZMqf9zJsUqyo/XweRh88o2L2jRV36iyzkNxHrPREYdMpBCJNmnxdOAhSnbMrbxka3b3y1ZlLymAc4aPNJwlZ/6yJt8vhyO85+XPBdINifF0maoQ/rrOU+YF1M/3bpWQaBs82QR5psfeBgORCjkpi1xewNz1Ff2/GhMJuzp6C9GWw4qvphYsEQ+q13yBmZOLo8sqyC53vnJsXPbfM9HRTuah8Zs2/MOj/qQE9LTIjpayuCuAi7U+5A9slDEi/RUsDGWdMHWQv5Unz+5w/FfHWyH6tf0p1J9miUbHh/HUlU8RSJSO/WXiRQ/2V6QGZuX2kKln2cUo5aQwz3rdSGHkfX+mDNBzF2zgFNl+upeVTpKA4t1A1OHtounxLargWmVYW6nij2YCPUgTKeC8WsBlsXI9RLJ6GIJ4/bTJfY6eJAOZ64gqz2flwlbZKavt7eTdFTTRUo2mi7jmmO/MS+hYsJ+0U1OPW7S5FmAMJ1k46MnmtcFdFrsbrw5TIuuCgAW+gKHPdYN+92e74GA4MC/ubh4U3AZbw4uVahg39cFV2BPbevVwZV58CjczwiXswCCaLs2JFtFPkWw5HG/396cJUZsOJCbZlBWwg0mz5vJd+8suSFN0VhbvPUAt/GVOzhLbsRsLty6cJim1FqR/gqOL2S/mrBCqvfuXaUMq6pPXp37mofoAIjXE9IKiJoqr7YBDos8bzIa/TjLAX1Yz+g41jW/wGh0r7+dJcWDtNhgMNqQYS4MByJgvkYXns+6SMUZA5UzhjLodFFXo4sc8n5HvSDhJzxmIVcMzk9tH6yJkC6ssyxCIFFiV0AU5g8vZsyfK9s35otZlHARaRZG7txhtgryN3teCxls9+dpA+1iZ4WOqSonvc0xxcrE/ioI0SxWWbgCx8BazWPykfvsP6ejs+OPegf1CYYjAxuambUSB0Dl1r9V3108nJyJEHmZ7naNqaBrEk0ur6twKab3PbzDq3/cVpAlhnFKsghOklzGIX1uBVwQtla3SbgYwL1XsyVNWsEWBG6zbI9dYJ0wyeM5kzSstRT/04vz3xQrvcMyEnqupxNQqIIyksDLFbdilVaRtY6KhurzXjnjmAQ3OSqg5umvkkRXlLeBreM0yRYqf2+Yyn6aCpo24jUbxQvF5T3/PObtRGs3mhWgPIRUy7cnXUYJkw8pQ6jmPb6IQ/7AFXHVYHL5ypuVKlSUzTjNROXr+jpFiRwMfVaFoiRQUU5UVc5kS2GDikQr31E9sE2oLwehWKXx/d51lHOpLmu8Ja48ipDTA47V3hKHUAX3B5lQgk2kSIQv/pcHx11mH66lNSkPTKjsWrPY4xikXAc4doN1gAmFV5/yYAXRDldM3njtmFjsEvHtBbxS+tFMK6gC3lCNDRmL+5LyqFKSDa2wW+h0KDWXXRf0l07YuiF7oq24pIFPCVxzr8AR4FfqBNuAmxSrJ6fADSXahRCzUKO/7gTXyTJ3ueTLhEZvW1z+U31hEud0voDSq/CFMeQ0FLNxKNZnCPXwRvUmoVpQYrkhn9IpPUOQ9ilBwit2tyvJo9kZcnRQ93QcYTEMCLIocNNHRDtb2bVHDJBxRq49MrZbiqdByZYVC8CjpL8ltX9fj+4BktwmWUgT/ljuXocnP8JE8M2Dh9vHcA8CuosPH0xZipX0Wd5uh/n3XRn2YVcJlTOWgK42Htue+uucCCvsj+tEpZu+WFW5UdNZrY6E9f3HdaSJzeocqemsVkdC3fBxHWkbFY5ITWe1OlJ30eijOtIxetU5UtNZhY5UX3f/CZHtvvvjDTL6Fw== \ No newline at end of file +7Zxtc6I6FMc/jTN7X+wOSXjQl/jU7dz21lm67b6NkGpmkTARa7uf/gYBFU/streAK72+UQ8kyO+cnJx/ADtksHi6kDSeX4uAhR1sBE8dMuxgjExiqLfU8pxZHKebGWaSB5nJ2Bk8/ovlLQvrigdsmdsyUyJEmPC4bPRFFDE/KdmolGJd3u1BhEHJENMZAwbPpyG03vMgmWfWLrZ39q+Mz+bFkZHdy7ZMqf9zJsUqyo/XweRh88o2L2jRV36iyzkNxHrPREYdMpBCJNmnxdOAhSnbMrbxka3b3y1ZlLymAc4aPNJwlZ/6yJt8vhyO85+XPBdINifF0maoQ/rrOU+YF1M/3bpWQaBs82QR5psfeBgORCjkpi1xewNz1Ff2/GhMJuzp6C9GWw4qvphYsEQ+q13yBmZOLo8sqyC53vnJsXPbfM9HRTuah8Zs2/MOj/qQE9LTIjpayuCuAi7U+5A9slDEi/RUsDGWdMHWQv5Unz+5w/FfHWyH6tf0p1J9miUbHh/HUlU8RSJSO/WXiRQ/2V6QGZuX2kKln2cUo5aQwz3rdSGHkfX+mDNBzF2zgFNl+upeVTpKA4t1A1OHtounxLargWmVYW6nij2YCPUgTKeC8WsBlsXI9RLJ6GIJ4/bTJfY6eJAOZ64gqz2flwlbZKavt7eTdFTTRUo2mi7jmmO/MS+hYsJ+0U1OPW7S5FmAMJ1k46MnmtcFdFrsbrw5TIuuCgAW+gKHPdYN+92e74GA4MC/ubh4U3AZbw4uVahg39cFV2BPbevVwZV58CjczwiXswCCaLs2JFtFPkWw5HG/396cJUZsOJCbZlBWwg0mz5vJd+8suSFN0VhbvPUAt/GVOzhLbsRsLty6cJim1FqR/gqOL2S/mrBCqvfuXaUMq6pPXp37mofoAIjXE9IKiJoqr7YBDos8bzIa/TjLAX1Yz+g41jW/wGh0r7+dJcWDtNhgMNqQYS4MByJgvkYXns+6SMUZA5UzhjLodFFXo4sc8n5HvSDhJzxmIVcMzk9tH6yJkC6ssyxCIFFiV0AU5g8vZsyfK9s35otZlHARaRZG7txhtgryN3teCxls9+dpA+1iZ4WOqSonvc0xxcrE/ioI0SxWWbgCx8BazWPykfvsP6ejs+OPegf1CYYjAxuambUSB0Dl1r9V3108nJyJEHmZ7naNqaBrEk0ur6twKab3PbzDq3/cVpAlhnFKsghOklzGIX1uBVwQtla3SbgYwL1XsyVNWsEWBG6zbI9dYJ0wyeM5kzSstRT/04vz3xQrvcMyEnqupxNQqIIyksDLFbdilVaRtY6KhurzXjnjmAQ3OSqg5umvkkRXlLeBreM0yRYqf2+Yyn6aCpo24jUbxQvF5T3/PObtRGs3mhWgPIRUy7cnXUYJkw8pQ6jmPb6IQ/7AFXHVYHL5ypuVKlSUzTjNROXr+jpFiRwMfVaFoiRQUU5UVc5kS2GDikQr31E9sE2oLwehWKXx/d51lHOpLmu8Ja48ipDTA47V3hKHUAX3B5lQgk2kSIQv/pcHx11mH66lNSkPTKjsWrPY4xikXAc4doN1gAmFV5/yYAXRDldM3njtmFjsEvHtBbxS+tFMK6gC3lCNDRmL+5LyqFKSDa2wW+h0KDWXXRf0l07YuiF7oq24pIFPCVxzr8AR4FfqBNuAmxSrJ6fADSXahRCzUKO/7gTXyTJ3ueTLhEZvW1z+U31hEud0voDSq/CFMeQ0FLNxKNZnCPXwRvUmoVpQYrkhn9IpPUOQ9ilBwit2tyvJo9kZcnRQ93QcYTEMCLIocNNHRDtb2bVHDJBxRq49MrZbiqdByZYVC8CjpL8ltX9fj+4BktwmWUgT/ljuXocnP8JE8M2Dh9vHcA8CuosPH0xZipX0Wd5uh/n3XRn2YVcJlTOWgK42Htue+uucCCvsj+tEpZu+WFW5UdNZrY6E9f3HdaSJzeocqemsVkdC3fBxHWkbFY5ITWe1OlJ30eijOtIxetU5UtNZhY5UX3f/CZHtvvvjDTL6Fw== diff --git a/docs/en/api-guides/SYSVIEW_FreeRTOS.txt b/docs/en/api-guides/SYSVIEW_FreeRTOS.txt index 4899a38220..04f27aae81 100644 --- a/docs/en/api-guides/SYSVIEW_FreeRTOS.txt +++ b/docs/en/api-guides/SYSVIEW_FreeRTOS.txt @@ -1,7 +1,7 @@ 128 vTaskAllocateMPURegions xTask=%t pxRegions=%u 33 vTaskDelete xTaskToDelete=%t 34 vTaskDelay xTicksToDelay=%u -35 vTaskDelayUntil +35 vTaskDelayUntil 129 uxTaskPriorityGet xTask=%t 56 uxTaskPriorityGetFromISR xTask=%t 130 eTaskGetState xTask=%t @@ -9,13 +9,13 @@ 36 vTaskSuspend xTaskToSuspend=%t 40 vTaskResume xTaskToResume=%t 43 xTaskResumeFromISR xTaskToResume=%t -131 vTaskStartScheduler -132 vTaskEndScheduler -133 vTaskSuspendAll -134 xTaskResumeAll -135 xTaskGetTickCount -57 xTaskGetTickCountFromISR -136 uxTaskGetNumberOfTasks +131 vTaskStartScheduler +132 vTaskEndScheduler +133 vTaskSuspendAll +134 xTaskResumeAll +135 xTaskGetTickCount +57 xTaskGetTickCountFromISR +136 uxTaskGetNumberOfTasks 137 pcTaskGetTaskName xTaskToQuery=%t 138 uxTaskGetStackHighWaterMark xTask=%t 139 vTaskSetApplicationTaskTag xTask=%t pxHookFunction=%u @@ -23,7 +23,7 @@ 141 vTaskSetThreadLocalStoragePointer xTaskToSet=%T xIndex=%u pvValue=%u 142 pvTaskGetThreadLocalStoragePointer xTaskToQuery=%T xIndex=%u 143 xTaskCallApplicationTaskHook xTask=%T pvParameter=%u -144 xTaskGetIdleTaskHandle +144 xTaskGetIdleTaskHandle 145 uxTaskGetSystemState pxTaskStatusArray=%u uxArraySize=%u pulTotalRunTime=%u 146 vTaskList pcWriteBuffer=%u 147 vTaskGetRunTimeStats pcWriteBuffer=%u @@ -33,27 +33,27 @@ 38 vTaskNotifyGiveFromISR xTaskToNotify=%t pxHigherPriorityTaskWoken=%u 37 ulTaskNotifyTake xClearCountOnExit=%u xTicksToWait=%u 148 xTaskNotifyStateClear xTask=%t -149 xTaskGetCurrentTaskHandle +149 xTaskGetCurrentTaskHandle 150 vTaskSetTimeOutState pxTimeOut=%u 151 xTaskCheckForTimeOut pxTimeOut=%u pxTicksToWait=%u -152 vTaskMissedYield -153 xTaskGetSchedulerState +152 vTaskMissedYield +153 xTaskGetSchedulerState 39 vTaskPriorityInherit pxMutexHolder=%p 42 xTaskPriorityDisinherit pxMutexHolder=%p 154 xTaskGenericCreate pxTaskCode=%u pcName=%u usStackDepth=%u pvParameters=%u uxPriority=%u pxCreatedTask=%u puxStackBuffer=%u xRegions=%u 155 uxTaskGetTaskNumber xTask=%u 156 vTaskSetTaskNumber xTask=%u uxHandle=%u 41 vTaskStepTick xTicksToJump=%u -157 eTaskConfirmSleepModeStatus +157 eTaskConfirmSleepModeStatus 158 xTimerCreate pcTimerName=%u xTimerPeriodInTicks=%u uxAutoReload=%u pvTimerID=%u pxCallbackFunction=%u 159 pvTimerGetTimerID xTimer=%u 160 vTimerSetTimerID xTimer=%u pvNewID=%u 161 xTimerIsTimerActive xTimer=%u -162 xTimerGetTimerDaemonTaskHandle +162 xTimerGetTimerDaemonTaskHandle 163 xTimerPendFunctionCallFromISR xFunctionToPend=%u pvParameter1=%u ulParameter2=%u pxHigherPriorityTaskWoken=%u 164 xTimerPendFunctionCall xFunctionToPend=%u pvParameter1=%u ulParameter2=%u xTicksToWait=%u 165 pcTimerGetTimerName xTimer=%u -166 xTimerCreateTimerTask +166 xTimerCreateTimerTask 167 xTimerGenericCommand xTimer=%u xCommandID=%u xOptionalValue=%u pxHigherPriorityTaskWoken=%u xTicksToWait=%u 53 xQueueGenericSend xQueue=%I pvItemToQueue=%p xTicksToWait=%u xCopyPosition=%u 50 xQueuePeekFromISR xQueue=%I pvBuffer=%p @@ -92,7 +92,7 @@ 191 vListInsert pxList=%u pxNewListItem=%u 192 vListInsertEnd pxList=%u pxNewListItem=%u 193 uxListRemove pxItemToRemove=%u -194 xEventGroupCreate +194 xEventGroupCreate 195 xEventGroupWaitBits xEventGroup=%u uxBitsToWaitFor=%u xClearOnExit=%u xWaitForAllBits=%u xTicksToWait=%u 196 xEventGroupClearBits xEventGroup=%u uxBitsToClear=%u 58 xEventGroupClearBitsFromISR xEventGroup=%u uxBitsToSet=%u diff --git a/docs/en/hw-reference/esp32/get-started-devkitc-v2.rst b/docs/en/hw-reference/esp32/get-started-devkitc-v2.rst index f0d2e2594d..56ca8c6b4d 100644 --- a/docs/en/hw-reference/esp32/get-started-devkitc-v2.rst +++ b/docs/en/hw-reference/esp32/get-started-devkitc-v2.rst @@ -1,82 +1,82 @@ -ESP32-DevKitC V2 Getting Started Guide -============================================== - -:link_to_translation:`zh_CN:[中文]` - -This guide shows how to start using the ESP32-DevKitC V2 development board. - - -What You Need -------------- - -* ESP32-DevKitC V2 board -* USB A / micro USB B cable -* Computer running Windows, Linux, or macOS - -You can skip the introduction sections and go directly to Section `Start Application Development`_. - - -Overview --------- - -ESP32-DevKitC V2 is a small-sized ESP32-based development board produced by `Espressif `_. Most of the I/O pins are broken out to the pin headers on both sides for easy interfacing. Developers can either connect peripherals with jumper wires or mount ESP32-DevKitC V4 on a breadboard. - - -Functional Description ----------------------- - -The following figure and the table below describe the key components, interfaces and controls of the ESP32-DevKitC V2 board. - -.. _get-started-esp32-devkitc-v2-board-front-make: - -.. figure:: ../../../_static/esp32-devkitc-v2-functional-overview.png - :align: center - :alt: ESP32-DevKitC V2 board layout - :figclass: align-center - - ESP32-DevKitC V2 board layout - - -+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Key Component | Description | -+=====================+=========================================================================================================================================================================================+ -| ESP32-WROOM-32 | Standard module with ESP32 at its core. For more information, see `ESP32-WROOM-32 Datasheet `_ | -+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| EN | Reset button. | -+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Boot | Download button. Holding down **Boot** and then pressing **EN** initiates Firmware Download mode for downloading firmware through the serial port. | -+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Micro USB Port | USB interface. Power supply for the board as well as the communication interface between a computer and ESP32-WROOM-32. | -+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| I/O | Most of the pins on the ESP module are broken out to the pin headers on the board. You can program ESP32 to enable multiple functions such as PWM, ADC, DAC, I2C, I2S, SPI, etc. | -+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - - -Power Supply Options --------------------- - -There are three mutually exclusive ways to provide power to the board: - -* Micro USB port, default power supply -* 5V / GND header pins -* 3V3 / GND header pins - -.. warning:: - - The power supply must be provided using **one and only one of the options above**, otherwise the board and/or the power supply source can be damaged. - - -Start Application Development ------------------------------- - -Before powering up your ESP32-DevKitC V2, please make sure that the board is in good condition with no obvious signs of damage. - -After that, proceed to :doc:`../../get-started/index`, where Section :ref:`get-started-step-by-step` will quickly help you set up the development environment and then flash an example project onto your board. - - -Related Documents ------------------ - -* `ESP32-DevKitC schematics `_ (PDF) -* `ESP32 Datasheet `_ (PDF) -* `ESP32-WROOM-32 Datasheet `_ (PDF) +ESP32-DevKitC V2 Getting Started Guide +============================================== + +:link_to_translation:`zh_CN:[中文]` + +This guide shows how to start using the ESP32-DevKitC V2 development board. + + +What You Need +------------- + +* ESP32-DevKitC V2 board +* USB A / micro USB B cable +* Computer running Windows, Linux, or macOS + +You can skip the introduction sections and go directly to Section `Start Application Development`_. + + +Overview +-------- + +ESP32-DevKitC V2 is a small-sized ESP32-based development board produced by `Espressif `_. Most of the I/O pins are broken out to the pin headers on both sides for easy interfacing. Developers can either connect peripherals with jumper wires or mount ESP32-DevKitC V4 on a breadboard. + + +Functional Description +---------------------- + +The following figure and the table below describe the key components, interfaces and controls of the ESP32-DevKitC V2 board. + +.. _get-started-esp32-devkitc-v2-board-front-make: + +.. figure:: ../../../_static/esp32-devkitc-v2-functional-overview.png + :align: center + :alt: ESP32-DevKitC V2 board layout + :figclass: align-center + + ESP32-DevKitC V2 board layout + + ++---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Key Component | Description | ++=====================+=========================================================================================================================================================================================+ +| ESP32-WROOM-32 | Standard module with ESP32 at its core. For more information, see `ESP32-WROOM-32 Datasheet `_ | ++---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EN | Reset button. | ++---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Boot | Download button. Holding down **Boot** and then pressing **EN** initiates Firmware Download mode for downloading firmware through the serial port. | ++---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Micro USB Port | USB interface. Power supply for the board as well as the communication interface between a computer and ESP32-WROOM-32. | ++---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| I/O | Most of the pins on the ESP module are broken out to the pin headers on the board. You can program ESP32 to enable multiple functions such as PWM, ADC, DAC, I2C, I2S, SPI, etc. | ++---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +Power Supply Options +-------------------- + +There are three mutually exclusive ways to provide power to the board: + +* Micro USB port, default power supply +* 5V / GND header pins +* 3V3 / GND header pins + +.. warning:: + + The power supply must be provided using **one and only one of the options above**, otherwise the board and/or the power supply source can be damaged. + + +Start Application Development +------------------------------ + +Before powering up your ESP32-DevKitC V2, please make sure that the board is in good condition with no obvious signs of damage. + +After that, proceed to :doc:`../../get-started/index`, where Section :ref:`get-started-step-by-step` will quickly help you set up the development environment and then flash an example project onto your board. + + +Related Documents +----------------- + +* `ESP32-DevKitC schematics `_ (PDF) +* `ESP32 Datasheet `_ (PDF) +* `ESP32-WROOM-32 Datasheet `_ (PDF) diff --git a/docs/en/hw-reference/esp32/get-started-devkitc.rst b/docs/en/hw-reference/esp32/get-started-devkitc.rst index db0ed1eb1d..4fd2ebda6e 100644 --- a/docs/en/hw-reference/esp32/get-started-devkitc.rst +++ b/docs/en/hw-reference/esp32/get-started-devkitc.rst @@ -1,152 +1,152 @@ -ESP32-DevKitC V4 Getting Started Guide -====================================== - -:link_to_translation:`zh_CN:[中文]` - -This guide shows how to start using the ESP32-DevKitC V4 development board. For description of other versions of ESP32-DevKitC check :doc:`../../hw-reference/index`. - - -What You Need -------------- - -* ESP32-DevKitC V4 board -* USB A / micro USB B cable -* Computer running Windows, Linux, or macOS - -You can skip the introduction sections and go directly to Section `Start Application Development`_. - - -.. _DevKitC-Overview: - -Overview --------- - -ESP32-DevKitC V4 is a small-sized ESP32-based development board produced by `Espressif `_. Most of the I/O pins are broken out to the pin headers on both sides for easy interfacing. Developers can either connect peripherals with jumper wires or mount ESP32-DevKitC V4 on a breadboard. - -To cover a wide range of user requirements, the following versions of ESP32-DevKitC V4 are available: - -- different ESP32 modules - - - `ESP32-WROOM-32E `_ - - `ESP32-WROOM-32UE `_ - - `ESP32-WROOM-32D `_ - - `ESP32-WROOM-32U `_ - - `ESP32-SOLO-1 `_ - - `ESP32-WROVER-E `_ - - `ESP32-WROVER-IE `_ - -- male or female pin headers. - -For details please refer to `Espressif Product Ordering Information`_. - - -Functional Description ----------------------- - -The following figure and the table below describe the key components, interfaces and controls of the ESP32-DevKitC V4 board. - -.. _get-started-esp32-devkitc-board-front: - -.. figure:: ../../../_static/esp32-devkitc-functional-overview.jpg - :align: center - :alt: ESP32-DevKitC V4 with ESP-WROOM-32 module soldered - :figclass: align-center - - ESP32-DevKitC V4 with ESP32-WROOM-32 module soldered - - -+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Key Component | Description | -+====================+======================================================================================================================================================================================+ -| ESP32-WROOM-32 | A module with ESP32 at its core. | -+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| EN | Reset button. | -+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Boot | Download button. Holding down **Boot** and then pressing **EN** initiates Firmware Download mode for downloading firmware through the serial port. | -+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| USB-to-UART Bridge | Single USB-UART bridge chip provides transfer rates of up to 3 Mbps. | -+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Micro USB Port | USB interface. Power supply for the board as well as the communication interface between a computer and the ESP32 module. | -+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| 5V Power On LED | Turns on when the USB or an external 5V power supply is connected to the board. For details see the schematics in `Related Documents`_. | -+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| I/O | Most of the pins on the ESP module are broken out to the pin headers on the board. You can program ESP32 to enable multiple functions such as PWM, ADC, DAC, I2C, I2S, SPI, etc. | -+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - - .. note:: - - The pins D0, D1, D2, D3, CMD and CLK are used internally for communication between ESP32 and SPI flash memory. They are grouped on both sides near the USB connector. Avoid using these pins, as it may disrupt access to the SPI flash memory / SPI RAM. - - .. note:: - - The pins GPIO16 and GPIO17 are available for use only on the boards with the modules ESP32-WROOM and ESP32-SOLO-1. The boards with ESP32-WROVER modules have the pins reserved for internal use. - - -Power Supply Options --------------------- - -There are three mutually exclusive ways to provide power to the board: - -* Micro USB port, default power supply -* 5V / GND header pins -* 3V3 / GND header pins - -.. warning:: - - The power supply must be provided using **one and only one of the options above**, otherwise the board and/or the power supply source can be damaged. - - -Note on C15 ------------ - -The component C15 may cause the following issues on earlier ESP32-DevKitC V4 boards: - -* The board may boot into Download mode -* If you output clock on GPIO0, C15 may impact the signal - -In case these issues occur, please remove the component. The figure below shows C15 highlighted in yellow. - - -.. figure:: ../../../_static/esp32-devkitc-c15-location.png - :align: center - :alt: Location of C15 (colored yellow) on ESP32-DevKitC V4 board - :figclass: align-center - :width: 30% - - Location of C15 (yellow) on ESP32-DevKitC V4 board - - -Start Application Development ------------------------------- - -Before powering up your ESP32-DevKitC V4, please make sure that the board is in good condition with no obvious signs of damage. - -After that, proceed to :doc:`../../get-started/index`, where Section :ref:`get-started-step-by-step` will quickly help you set up the development environment and then flash an example project onto your board. - - -Board Dimensions ----------------- - -.. figure:: ../../../_static/esp32-devkitc-dimensions-back.jpg - :align: center - :alt: ESP32 DevKitC board dimensions - back - :figclass: align-center - - ESP32 DevKitC board dimensions - back - - -Related Documents ------------------ - -* `ESP32-DevKitC V4 schematics `_ (PDF) -* `ESP32 Datasheet `_ (PDF) -* `ESP32-WROOM-32 Datasheet `_ (PDF) -* `ESP32-WROOM-32D & ESP32-WROOM-32U Datasheet `_ (PDF) -* `ESP32-WROVER Datasheet `_ (PDF) -* `ESP32-WROVER-B Datasheet `_ (PDF) -* `Espressif Product Ordering Information `_ (PDF) - -.. toctree:: - :hidden: - - get-started-devkitc-v2 +ESP32-DevKitC V4 Getting Started Guide +====================================== + +:link_to_translation:`zh_CN:[中文]` + +This guide shows how to start using the ESP32-DevKitC V4 development board. For description of other versions of ESP32-DevKitC check :doc:`../../hw-reference/index`. + + +What You Need +------------- + +* ESP32-DevKitC V4 board +* USB A / micro USB B cable +* Computer running Windows, Linux, or macOS + +You can skip the introduction sections and go directly to Section `Start Application Development`_. + + +.. _DevKitC-Overview: + +Overview +-------- + +ESP32-DevKitC V4 is a small-sized ESP32-based development board produced by `Espressif `_. Most of the I/O pins are broken out to the pin headers on both sides for easy interfacing. Developers can either connect peripherals with jumper wires or mount ESP32-DevKitC V4 on a breadboard. + +To cover a wide range of user requirements, the following versions of ESP32-DevKitC V4 are available: + +- different ESP32 modules + + - `ESP32-WROOM-32E `_ + - `ESP32-WROOM-32UE `_ + - `ESP32-WROOM-32D `_ + - `ESP32-WROOM-32U `_ + - `ESP32-SOLO-1 `_ + - `ESP32-WROVER-E `_ + - `ESP32-WROVER-IE `_ + +- male or female pin headers. + +For details please refer to `Espressif Product Ordering Information`_. + + +Functional Description +---------------------- + +The following figure and the table below describe the key components, interfaces and controls of the ESP32-DevKitC V4 board. + +.. _get-started-esp32-devkitc-board-front: + +.. figure:: ../../../_static/esp32-devkitc-functional-overview.jpg + :align: center + :alt: ESP32-DevKitC V4 with ESP-WROOM-32 module soldered + :figclass: align-center + + ESP32-DevKitC V4 with ESP32-WROOM-32 module soldered + + ++--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Key Component | Description | ++====================+======================================================================================================================================================================================+ +| ESP32-WROOM-32 | A module with ESP32 at its core. | ++--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EN | Reset button. | ++--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Boot | Download button. Holding down **Boot** and then pressing **EN** initiates Firmware Download mode for downloading firmware through the serial port. | ++--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| USB-to-UART Bridge | Single USB-UART bridge chip provides transfer rates of up to 3 Mbps. | ++--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Micro USB Port | USB interface. Power supply for the board as well as the communication interface between a computer and the ESP32 module. | ++--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| 5V Power On LED | Turns on when the USB or an external 5V power supply is connected to the board. For details see the schematics in `Related Documents`_. | ++--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| I/O | Most of the pins on the ESP module are broken out to the pin headers on the board. You can program ESP32 to enable multiple functions such as PWM, ADC, DAC, I2C, I2S, SPI, etc. | ++--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + .. note:: + + The pins D0, D1, D2, D3, CMD and CLK are used internally for communication between ESP32 and SPI flash memory. They are grouped on both sides near the USB connector. Avoid using these pins, as it may disrupt access to the SPI flash memory / SPI RAM. + + .. note:: + + The pins GPIO16 and GPIO17 are available for use only on the boards with the modules ESP32-WROOM and ESP32-SOLO-1. The boards with ESP32-WROVER modules have the pins reserved for internal use. + + +Power Supply Options +-------------------- + +There are three mutually exclusive ways to provide power to the board: + +* Micro USB port, default power supply +* 5V / GND header pins +* 3V3 / GND header pins + +.. warning:: + + The power supply must be provided using **one and only one of the options above**, otherwise the board and/or the power supply source can be damaged. + + +Note on C15 +----------- + +The component C15 may cause the following issues on earlier ESP32-DevKitC V4 boards: + +* The board may boot into Download mode +* If you output clock on GPIO0, C15 may impact the signal + +In case these issues occur, please remove the component. The figure below shows C15 highlighted in yellow. + + +.. figure:: ../../../_static/esp32-devkitc-c15-location.png + :align: center + :alt: Location of C15 (colored yellow) on ESP32-DevKitC V4 board + :figclass: align-center + :width: 30% + + Location of C15 (yellow) on ESP32-DevKitC V4 board + + +Start Application Development +------------------------------ + +Before powering up your ESP32-DevKitC V4, please make sure that the board is in good condition with no obvious signs of damage. + +After that, proceed to :doc:`../../get-started/index`, where Section :ref:`get-started-step-by-step` will quickly help you set up the development environment and then flash an example project onto your board. + + +Board Dimensions +---------------- + +.. figure:: ../../../_static/esp32-devkitc-dimensions-back.jpg + :align: center + :alt: ESP32 DevKitC board dimensions - back + :figclass: align-center + + ESP32 DevKitC board dimensions - back + + +Related Documents +----------------- + +* `ESP32-DevKitC V4 schematics `_ (PDF) +* `ESP32 Datasheet `_ (PDF) +* `ESP32-WROOM-32 Datasheet `_ (PDF) +* `ESP32-WROOM-32D & ESP32-WROOM-32U Datasheet `_ (PDF) +* `ESP32-WROVER Datasheet `_ (PDF) +* `ESP32-WROVER-B Datasheet `_ (PDF) +* `Espressif Product Ordering Information `_ (PDF) + +.. toctree:: + :hidden: + + get-started-devkitc-v2 diff --git a/docs/en/hw-reference/esp32/get-started-pico-kit-v3.rst b/docs/en/hw-reference/esp32/get-started-pico-kit-v3.rst index d96ab35238..b448a4b7e9 100644 --- a/docs/en/hw-reference/esp32/get-started-pico-kit-v3.rst +++ b/docs/en/hw-reference/esp32/get-started-pico-kit-v3.rst @@ -1,77 +1,77 @@ -ESP32-PICO-KIT V3 Getting Started Guide -======================================= -:link_to_translation:`zh_CN:[中文]` - -This guide shows how to get started with the ESP32-PICO-KIT V3 mini development board. For the description of other ESP32-PICO-KIT versions, please check :doc:`../../hw-reference/index`. - - -What You Need -------------- - -* ESP32-PICO-KIT V3 mini development board -* USB 2.0 A to Micro B cable -* Computer running Windows, Linux, or macOS - -You can skip the introduction sections and go directly to Section `Start Application Development`_. - - -Overview --------- - -ESP32-PICO-KIT V3 is an ESP32-based mini development board produced by `Espressif `_. The core of this board is ESP32-PICO-D4 - a System-in-Package (SiP) module. - -The development board features a USB-UART Bridge circuit, which allows developers to connect the board to a computer's USB port for flashing and debugging. - -All the IO signals and system power on ESP32-PICO-D4 are led out to two rows of 20 x 0.1" header pads on both sides of the development board for easy access. - - -Functional Description ----------------------- - -The following figure and the table below describe the key components, interfaces, and controls of the ESP32-PICO-KIT V3 board. - -.. figure:: ../../../_static/esp32-pico-kit-v3-layout.jpg - :align: center - :alt: ESP32-PICO-KIT V3 board layout - :figclass: align-center - - ESP32-PICO-KIT V3 board layout - -Below is the description of the items identified in the figure starting from the top left corner and going clockwise. - -================== ================================================================================================================================= -Key Component Description -================== ================================================================================================================================= -ESP32-PICO-D4 Standard ESP32-PICO-D4 module soldered to the ESP32-PICO-KIT V3 board. The complete ESP32 system on a chip (ESP32 SoC) has been integrated into the SiP module, requiring only an external antenna with LC matching network, decoupling capacitors, and a pull-up resistor for EN signals to function properly. - -LDO 5V-to-3.3V Low dropout voltage regulator (LDO). - -USB-UART bridge Single-chip USB-UART bridge provides up to 1 Mbps transfers rates. - -Micro USB Port USB interface. Power supply for the board as well as the communication interface between a computer and the board. - -Power On LED This red LED turns on when power is supplied to the board. - -I/O All the pins on ESP32-PICO-D4 are broken out to pin headers. You can program ESP32 to enable multiple functions, such as PWM, ADC, DAC, I2C, I2S, SPI, etc. - -BOOT Button Download button. Holding down **Boot** and then pressing **EN** initiates Firmware Download mode for downloading firmware through the serial port. - -EN Button Reset button. -================== ================================================================================================================================= - - -Start Application Development ------------------------------ - -Before powering up your ESP32-PICO-KIT V3, please make sure that the board is in good condition with no obvious signs of damage. - -After that, proceed to :doc:`../../get-started/index`, where Section :ref:`get-started-step-by-step` will quickly help you set up the development environment and then flash an example project onto your board. - - -Related Documents ------------------ - -* `ESP32-PICO-KIT V3 schematic `_ (PDF) -* `ESP32-PICO-D4 Datasheet `_ (PDF) -* :doc:`../../hw-reference/index` - +ESP32-PICO-KIT V3 Getting Started Guide +======================================= +:link_to_translation:`zh_CN:[中文]` + +This guide shows how to get started with the ESP32-PICO-KIT V3 mini development board. For the description of other ESP32-PICO-KIT versions, please check :doc:`../../hw-reference/index`. + + +What You Need +------------- + +* ESP32-PICO-KIT V3 mini development board +* USB 2.0 A to Micro B cable +* Computer running Windows, Linux, or macOS + +You can skip the introduction sections and go directly to Section `Start Application Development`_. + + +Overview +-------- + +ESP32-PICO-KIT V3 is an ESP32-based mini development board produced by `Espressif `_. The core of this board is ESP32-PICO-D4 - a System-in-Package (SiP) module. + +The development board features a USB-UART Bridge circuit, which allows developers to connect the board to a computer's USB port for flashing and debugging. + +All the IO signals and system power on ESP32-PICO-D4 are led out to two rows of 20 x 0.1" header pads on both sides of the development board for easy access. + + +Functional Description +---------------------- + +The following figure and the table below describe the key components, interfaces, and controls of the ESP32-PICO-KIT V3 board. + +.. figure:: ../../../_static/esp32-pico-kit-v3-layout.jpg + :align: center + :alt: ESP32-PICO-KIT V3 board layout + :figclass: align-center + + ESP32-PICO-KIT V3 board layout + +Below is the description of the items identified in the figure starting from the top left corner and going clockwise. + +================== ================================================================================================================================= +Key Component Description +================== ================================================================================================================================= +ESP32-PICO-D4 Standard ESP32-PICO-D4 module soldered to the ESP32-PICO-KIT V3 board. The complete ESP32 system on a chip (ESP32 SoC) has been integrated into the SiP module, requiring only an external antenna with LC matching network, decoupling capacitors, and a pull-up resistor for EN signals to function properly. + +LDO 5V-to-3.3V Low dropout voltage regulator (LDO). + +USB-UART bridge Single-chip USB-UART bridge provides up to 1 Mbps transfers rates. + +Micro USB Port USB interface. Power supply for the board as well as the communication interface between a computer and the board. + +Power On LED This red LED turns on when power is supplied to the board. + +I/O All the pins on ESP32-PICO-D4 are broken out to pin headers. You can program ESP32 to enable multiple functions, such as PWM, ADC, DAC, I2C, I2S, SPI, etc. + +BOOT Button Download button. Holding down **Boot** and then pressing **EN** initiates Firmware Download mode for downloading firmware through the serial port. + +EN Button Reset button. +================== ================================================================================================================================= + + +Start Application Development +----------------------------- + +Before powering up your ESP32-PICO-KIT V3, please make sure that the board is in good condition with no obvious signs of damage. + +After that, proceed to :doc:`../../get-started/index`, where Section :ref:`get-started-step-by-step` will quickly help you set up the development environment and then flash an example project onto your board. + + +Related Documents +----------------- + +* `ESP32-PICO-KIT V3 schematic `_ (PDF) +* `ESP32-PICO-D4 Datasheet `_ (PDF) +* :doc:`../../hw-reference/index` + diff --git a/docs/latex_templates/espidf.sty b/docs/latex_templates/espidf.sty index a41f764060..3ff7a67206 100644 --- a/docs/latex_templates/espidf.sty +++ b/docs/latex_templates/espidf.sty @@ -4,4 +4,4 @@ \newcommand{\idfTarget}{} \newcommand{\idfReleaseName}{} -\endinput \ No newline at end of file +\endinput diff --git a/docs/latex_templates/titlepage.tex b/docs/latex_templates/titlepage.tex index 768362366f..43e24080b0 100644 --- a/docs/latex_templates/titlepage.tex +++ b/docs/latex_templates/titlepage.tex @@ -36,4 +36,4 @@ \restoregeometry -\makeatother \ No newline at end of file +\makeatother diff --git a/docs/zh_CN/api-guides/SYSVIEW_FreeRTOS.txt b/docs/zh_CN/api-guides/SYSVIEW_FreeRTOS.txt index 4899a38220..04f27aae81 100644 --- a/docs/zh_CN/api-guides/SYSVIEW_FreeRTOS.txt +++ b/docs/zh_CN/api-guides/SYSVIEW_FreeRTOS.txt @@ -1,7 +1,7 @@ 128 vTaskAllocateMPURegions xTask=%t pxRegions=%u 33 vTaskDelete xTaskToDelete=%t 34 vTaskDelay xTicksToDelay=%u -35 vTaskDelayUntil +35 vTaskDelayUntil 129 uxTaskPriorityGet xTask=%t 56 uxTaskPriorityGetFromISR xTask=%t 130 eTaskGetState xTask=%t @@ -9,13 +9,13 @@ 36 vTaskSuspend xTaskToSuspend=%t 40 vTaskResume xTaskToResume=%t 43 xTaskResumeFromISR xTaskToResume=%t -131 vTaskStartScheduler -132 vTaskEndScheduler -133 vTaskSuspendAll -134 xTaskResumeAll -135 xTaskGetTickCount -57 xTaskGetTickCountFromISR -136 uxTaskGetNumberOfTasks +131 vTaskStartScheduler +132 vTaskEndScheduler +133 vTaskSuspendAll +134 xTaskResumeAll +135 xTaskGetTickCount +57 xTaskGetTickCountFromISR +136 uxTaskGetNumberOfTasks 137 pcTaskGetTaskName xTaskToQuery=%t 138 uxTaskGetStackHighWaterMark xTask=%t 139 vTaskSetApplicationTaskTag xTask=%t pxHookFunction=%u @@ -23,7 +23,7 @@ 141 vTaskSetThreadLocalStoragePointer xTaskToSet=%T xIndex=%u pvValue=%u 142 pvTaskGetThreadLocalStoragePointer xTaskToQuery=%T xIndex=%u 143 xTaskCallApplicationTaskHook xTask=%T pvParameter=%u -144 xTaskGetIdleTaskHandle +144 xTaskGetIdleTaskHandle 145 uxTaskGetSystemState pxTaskStatusArray=%u uxArraySize=%u pulTotalRunTime=%u 146 vTaskList pcWriteBuffer=%u 147 vTaskGetRunTimeStats pcWriteBuffer=%u @@ -33,27 +33,27 @@ 38 vTaskNotifyGiveFromISR xTaskToNotify=%t pxHigherPriorityTaskWoken=%u 37 ulTaskNotifyTake xClearCountOnExit=%u xTicksToWait=%u 148 xTaskNotifyStateClear xTask=%t -149 xTaskGetCurrentTaskHandle +149 xTaskGetCurrentTaskHandle 150 vTaskSetTimeOutState pxTimeOut=%u 151 xTaskCheckForTimeOut pxTimeOut=%u pxTicksToWait=%u -152 vTaskMissedYield -153 xTaskGetSchedulerState +152 vTaskMissedYield +153 xTaskGetSchedulerState 39 vTaskPriorityInherit pxMutexHolder=%p 42 xTaskPriorityDisinherit pxMutexHolder=%p 154 xTaskGenericCreate pxTaskCode=%u pcName=%u usStackDepth=%u pvParameters=%u uxPriority=%u pxCreatedTask=%u puxStackBuffer=%u xRegions=%u 155 uxTaskGetTaskNumber xTask=%u 156 vTaskSetTaskNumber xTask=%u uxHandle=%u 41 vTaskStepTick xTicksToJump=%u -157 eTaskConfirmSleepModeStatus +157 eTaskConfirmSleepModeStatus 158 xTimerCreate pcTimerName=%u xTimerPeriodInTicks=%u uxAutoReload=%u pvTimerID=%u pxCallbackFunction=%u 159 pvTimerGetTimerID xTimer=%u 160 vTimerSetTimerID xTimer=%u pvNewID=%u 161 xTimerIsTimerActive xTimer=%u -162 xTimerGetTimerDaemonTaskHandle +162 xTimerGetTimerDaemonTaskHandle 163 xTimerPendFunctionCallFromISR xFunctionToPend=%u pvParameter1=%u ulParameter2=%u pxHigherPriorityTaskWoken=%u 164 xTimerPendFunctionCall xFunctionToPend=%u pvParameter1=%u ulParameter2=%u xTicksToWait=%u 165 pcTimerGetTimerName xTimer=%u -166 xTimerCreateTimerTask +166 xTimerCreateTimerTask 167 xTimerGenericCommand xTimer=%u xCommandID=%u xOptionalValue=%u pxHigherPriorityTaskWoken=%u xTicksToWait=%u 53 xQueueGenericSend xQueue=%I pvItemToQueue=%p xTicksToWait=%u xCopyPosition=%u 50 xQueuePeekFromISR xQueue=%I pvBuffer=%p @@ -92,7 +92,7 @@ 191 vListInsert pxList=%u pxNewListItem=%u 192 vListInsertEnd pxList=%u pxNewListItem=%u 193 uxListRemove pxItemToRemove=%u -194 xEventGroupCreate +194 xEventGroupCreate 195 xEventGroupWaitBits xEventGroup=%u uxBitsToWaitFor=%u xClearOnExit=%u xWaitForAllBits=%u xTicksToWait=%u 196 xEventGroupClearBits xEventGroup=%u uxBitsToClear=%u 58 xEventGroupClearBitsFromISR xEventGroup=%u uxBitsToSet=%u diff --git a/docs/zh_CN/hw-reference/esp32/get-started-devkitc-v2.rst b/docs/zh_CN/hw-reference/esp32/get-started-devkitc-v2.rst index 5978b87100..93283d0af7 100644 --- a/docs/zh_CN/hw-reference/esp32/get-started-devkitc-v2.rst +++ b/docs/zh_CN/hw-reference/esp32/get-started-devkitc-v2.rst @@ -1,86 +1,86 @@ -ESP32-DevKitC V2 入门指南 -================================== - -:link_to_translation:`en: [English]` - -本指南介绍了如何开始使用 ESP32-DevKitC V2 开发板。 - - -准备工作 --------- - -* :ref:`ESP32-DevKitC V2 开发板 ` -* USB A / micro USB B 数据线 -* PC(Windows、Linux 或 Mac OS) - -您可以跳过介绍部分,直接前往 `应用程序开发`_ 章节。 - - -概述 ----- - -ESP32-DevKitC V2 是 `乐鑫 `_ 一款基于 ESP32 的小型开发板,板上模组的绝大部分管脚均已引出,开发人员可根据实际需求,轻松通过跳线连接多种外围器件,或将开发板插在面包板上使用。 - - -功能说明 --------- - -ESP32-DevKitC V2 开发板的主要组件、接口及控制方式见下。 - -.. _get-started-esp32-devkitc-v2-board-front: - -.. figure:: ../../../_static/esp32-devkitc-v2-functional-overview.png - :align: center - :alt: ESP32-DevKitC V2 开发板 - :figclass: align-center - - - -ESP32-DevKitC V2 开发板 - -.. list-table:: - :widths: 25 75 - :header-rows: 1 - - * - 主要组件 - - 基本介绍 - * - ESP32-WROOM-32 - - 基于 ESP32 的模组。更多详情,请见 `《ESP32-WROOM-32 技术规格书》`_。 - * - EN - - 复位按键。 - * - Boot - - 下载按键。按下 **Boot** 键并保持,同时按一下 **EN** 键(此时不要松开 **Boot** 键)进入“固件下载”模式,通过串口下载固件。 - * - Micro USB 端口 - - USB 接口。可用作电路板的供电电源,或连接 PC 和 ESP32-WROOM-32 模组的通信接口。 - * - I/O - - 板上模组的绝大部分管脚均已引出至开发板的排针。用户可以对 ESP32 进行编程,实现 PWM、ADC、DAC、I2C、I2S、SPI 等多种功能。 - -电源选项 --------- - -开发板可从以下三种供电方式中任选其一: - -* Micro USB 供电(默认) -* 5V / GND 管脚供电 -* 3V3 / GND 管脚供电 - -.. warning:: - - 上述供电模式 **不可同时连接**,否则可能会损坏开发板和/或电源。 - - -应用程序开发 ------------- - -ESP32-DevKitC V2 上电前,请首先确认开发板完好无损。 - -现在,请前往 :doc:`../../get-started/index` 中的 :ref:`get-started-step-by-step` 章节,查看如何设置开发环境,并尝试将示例项目烧录至您的开发板。 - - -相关文档 --------- - -* `ESP32-DevKitC 原理图 `_ (PDF) -* `《ESP32 技术规格书》 `_ (PDF) -* `《ESP32-WROOM-32 技术规格书》 `_ (PDF) - +ESP32-DevKitC V2 入门指南 +================================== + +:link_to_translation:`en: [English]` + +本指南介绍了如何开始使用 ESP32-DevKitC V2 开发板。 + + +准备工作 +-------- + +* :ref:`ESP32-DevKitC V2 开发板 ` +* USB A / micro USB B 数据线 +* PC(Windows、Linux 或 Mac OS) + +您可以跳过介绍部分,直接前往 `应用程序开发`_ 章节。 + + +概述 +---- + +ESP32-DevKitC V2 是 `乐鑫 `_ 一款基于 ESP32 的小型开发板,板上模组的绝大部分管脚均已引出,开发人员可根据实际需求,轻松通过跳线连接多种外围器件,或将开发板插在面包板上使用。 + + +功能说明 +-------- + +ESP32-DevKitC V2 开发板的主要组件、接口及控制方式见下。 + +.. _get-started-esp32-devkitc-v2-board-front: + +.. figure:: ../../../_static/esp32-devkitc-v2-functional-overview.png + :align: center + :alt: ESP32-DevKitC V2 开发板 + :figclass: align-center + + + +ESP32-DevKitC V2 开发板 + +.. list-table:: + :widths: 25 75 + :header-rows: 1 + + * - 主要组件 + - 基本介绍 + * - ESP32-WROOM-32 + - 基于 ESP32 的模组。更多详情,请见 `《ESP32-WROOM-32 技术规格书》`_。 + * - EN + - 复位按键。 + * - Boot + - 下载按键。按下 **Boot** 键并保持,同时按一下 **EN** 键(此时不要松开 **Boot** 键)进入“固件下载”模式,通过串口下载固件。 + * - Micro USB 端口 + - USB 接口。可用作电路板的供电电源,或连接 PC 和 ESP32-WROOM-32 模组的通信接口。 + * - I/O + - 板上模组的绝大部分管脚均已引出至开发板的排针。用户可以对 ESP32 进行编程,实现 PWM、ADC、DAC、I2C、I2S、SPI 等多种功能。 + +电源选项 +-------- + +开发板可从以下三种供电方式中任选其一: + +* Micro USB 供电(默认) +* 5V / GND 管脚供电 +* 3V3 / GND 管脚供电 + +.. warning:: + + 上述供电模式 **不可同时连接**,否则可能会损坏开发板和/或电源。 + + +应用程序开发 +------------ + +ESP32-DevKitC V2 上电前,请首先确认开发板完好无损。 + +现在,请前往 :doc:`../../get-started/index` 中的 :ref:`get-started-step-by-step` 章节,查看如何设置开发环境,并尝试将示例项目烧录至您的开发板。 + + +相关文档 +-------- + +* `ESP32-DevKitC 原理图 `_ (PDF) +* `《ESP32 技术规格书》 `_ (PDF) +* `《ESP32-WROOM-32 技术规格书》 `_ (PDF) + diff --git a/docs/zh_CN/hw-reference/esp32/get-started-devkitc.rst b/docs/zh_CN/hw-reference/esp32/get-started-devkitc.rst index ab4a493339..4ccd6eae89 100644 --- a/docs/zh_CN/hw-reference/esp32/get-started-devkitc.rst +++ b/docs/zh_CN/hw-reference/esp32/get-started-devkitc.rst @@ -1,154 +1,154 @@ -ESP32-DevKitC V4 入门指南 -============================================= - -:link_to_translation:`en: [English]` - -本指南介绍了如何开始使用 ESP32-DevKitC V4 开发板。有关 ESP32-DevKitC 其他版本的介绍,请见::doc:`../../hw-reference/index`。 - - -准备工作 ------------ - -* :ref:`ESP32-DevKitC V4 开发板 ` -* USB A / micro USB B 数据线 -* PC(Windows、Linux 或 Mac OS) - -您可以跳过介绍部分,直接前往 `应用程序开发`_ 章节。 - - -.. _DevKitC-Overview: - -概述 ----- - -ESP32-DevKitC V4 是 `乐鑫 `_ 一款基于 ESP32 的小型开发板,板上模组的绝大部分管脚均已引出,开发人员可根据实际需求,轻松通过跳线连接多种外围器件,或将开发板插在面包板上使用。 - -为了更好地满足不同用户需求,ESP32-DevKitC V4 还支持以下不同配置: - -- 可选多款 ESP32 模组 - - - `ESP32-WROOM-32E `_ - - `ESP32-WROOM-32UE `_ - - `ESP32-WROOM-32D `_ - - `ESP32-WROOM-32U `_ - - `ESP32-SOLO-1 `_ - - `ESP32-WROVER-E `_ - - `ESP32-WROVER-IE `_ - - -- 可选排针或排母 - -详情请见 `《乐鑫产品订购信息》 `_。 - - -功能说明 ---------- - -ESP32-DevKitC V4 开发板的主要组件、接口及控制方式见下。 - -.. _get-started-esp32-devkitc-board-front: - -.. figure:: ../../../_static/esp32-devkitc-functional-overview.jpg - :align: center - :alt: ESP32-DevKitC V4(板载 ESP32-WROOM-32) - :figclass: align-center - -ESP32-DevKitC V4(板载 ESP32-WROOM-32) - - -.. list-table:: - :widths: 25 75 - :header-rows: 1 - - * - 主要组件 - - 基本介绍 - * - ESP32-WROOM-32 - - 基于 ESP32 的模组。更多详情,请见 `《ESP32-WROOM-32 技术规格书》`_。 - * - EN - - 复位按键。 - * - Boot - - 下载按键。按下 **Boot** 键并保持,同时按一下 **EN** 键(此时不要松开 **Boot** 键)进入“固件下载”模式,通过串口下载固件。 - * - USB-to-UART 桥接器 | 单芯片 USB-UART 桥接器,可提供高达 3 Mbps 的传输速率。 - - Micro USB 端口 - * - USB 接口。 - - 可用作电路板的供电电源,或连接 PC 和 ESP32-WROOM-32 模组的通信接口。 - * - 5V Power On LED - - 开发板通电后(USB 或外部 5 V),该指示灯将亮起。更多信息,请见 `相关文档`_ 中的原理图。 - * - I/O - - 板上模组的绝大部分管脚均已引出至开发板的排针。用户可以对 ESP32 进行编程,实现 PWM、ADC、DAC、I2C、I2S、SPI 等多种功能。 - -.. note:: - - 管脚 D0、D1、D2、D3、CMD 和 CLK 用于 ESP32 芯片与 SPI flash 间的内部通信,集中分布在开发板两侧靠近 USB 端口的位置。通常而言,这些管脚最好不连,否则可能影响 SPI flash / SPI RAM 的工作。 - -.. note:: - - 管脚 GPIO16 和 GPIO17 仅适用于板载 ESP32-WROOM 系列和 ESP32-SOLO-1 的开发板,保留内部使用。 - - -电源选项 --------- - -开发板可从以下三种供电方式中任选其一: - -* Micro USB 供电(默认) -* 5V / GND 管脚供电 -* 3V3 / GND 管脚供电 - -.. warning:: - - 上述供电模式 **不可同时连接**,否则可能会损坏开发板和/或电源。 - - -有关 C15 的提示 --------------------- - -较早版本 ESP32-DevKitC 开发板上的 C15 可能存在以下问题: - -* 开发板上电后可能进入下载模式; -* 如果用户通过 GPIO0 输出时钟,C15 可能会影响信号。 - -用户如果认为 C15 可能影响开发板的使用,则可以将 C15 完全移除。C15 在开发板上的具体位置见下图黄色部分。 - -.. figure:: ../../../_static/esp32-devkitc-c15-location.png - :align: center - :alt: C15(黄色)在 ESP32-DevKitC V4 开发板上的位置 - :figclass: align-center - :width: 30% - -C15(黄色)在 ESP32-DevKitC V4 开发板上的位置 - - -应用程序开发 ------------------ - -ESP32-DevKitC V4 上电前,请首先确认开发板完好无损。 - -现在,请前往 :doc:`../../get-started/index` 中的 :ref:`get-started-step-by-step` 章节,查看如何设置开发环境,并尝试将示例项目烧录至您的开发板。 - -开发板尺寸 -------------- - -.. figure:: ../../../_static/esp32-devkitc-dimensions-back.jpg - :align: center - :alt: ESP32-DevKitC 开发板尺寸 -- 仰视图 - :figclass: align-center - -ESP32-DevKitC 开发板尺寸 -- 仰视图 - - -相关文档 ------------ - -* `ESP32-DevKitC V4 原理图 `_ (PDF) -* `《ESP32 技术规格书》 `_ (PDF) -* `《ESP32-WROOM-32 技术规格书》 `_ (PDF) -* `《ESP32-WROOM-32D & ESP32-WROOM-32U 技术规格书》 `_ (PDF) -* `《ESP32-WROVER 技术规格书》 `_ (PDF) -* `《ESP32-WROVER-B 技术规格书》 `_ (PDF) -* `《乐鑫产品订购信息》 `_ (PDF) - -.. toctree:: - :hidden: - - get-started-devkitc-v2 +ESP32-DevKitC V4 入门指南 +============================================= + +:link_to_translation:`en: [English]` + +本指南介绍了如何开始使用 ESP32-DevKitC V4 开发板。有关 ESP32-DevKitC 其他版本的介绍,请见::doc:`../../hw-reference/index`。 + + +准备工作 +----------- + +* :ref:`ESP32-DevKitC V4 开发板 ` +* USB A / micro USB B 数据线 +* PC(Windows、Linux 或 Mac OS) + +您可以跳过介绍部分,直接前往 `应用程序开发`_ 章节。 + + +.. _DevKitC-Overview: + +概述 +---- + +ESP32-DevKitC V4 是 `乐鑫 `_ 一款基于 ESP32 的小型开发板,板上模组的绝大部分管脚均已引出,开发人员可根据实际需求,轻松通过跳线连接多种外围器件,或将开发板插在面包板上使用。 + +为了更好地满足不同用户需求,ESP32-DevKitC V4 还支持以下不同配置: + +- 可选多款 ESP32 模组 + + - `ESP32-WROOM-32E `_ + - `ESP32-WROOM-32UE `_ + - `ESP32-WROOM-32D `_ + - `ESP32-WROOM-32U `_ + - `ESP32-SOLO-1 `_ + - `ESP32-WROVER-E `_ + - `ESP32-WROVER-IE `_ + + +- 可选排针或排母 + +详情请见 `《乐鑫产品订购信息》 `_。 + + +功能说明 +--------- + +ESP32-DevKitC V4 开发板的主要组件、接口及控制方式见下。 + +.. _get-started-esp32-devkitc-board-front: + +.. figure:: ../../../_static/esp32-devkitc-functional-overview.jpg + :align: center + :alt: ESP32-DevKitC V4(板载 ESP32-WROOM-32) + :figclass: align-center + +ESP32-DevKitC V4(板载 ESP32-WROOM-32) + + +.. list-table:: + :widths: 25 75 + :header-rows: 1 + + * - 主要组件 + - 基本介绍 + * - ESP32-WROOM-32 + - 基于 ESP32 的模组。更多详情,请见 `《ESP32-WROOM-32 技术规格书》`_。 + * - EN + - 复位按键。 + * - Boot + - 下载按键。按下 **Boot** 键并保持,同时按一下 **EN** 键(此时不要松开 **Boot** 键)进入“固件下载”模式,通过串口下载固件。 + * - USB-to-UART 桥接器 | 单芯片 USB-UART 桥接器,可提供高达 3 Mbps 的传输速率。 + - Micro USB 端口 + * - USB 接口。 + - 可用作电路板的供电电源,或连接 PC 和 ESP32-WROOM-32 模组的通信接口。 + * - 5V Power On LED + - 开发板通电后(USB 或外部 5 V),该指示灯将亮起。更多信息,请见 `相关文档`_ 中的原理图。 + * - I/O + - 板上模组的绝大部分管脚均已引出至开发板的排针。用户可以对 ESP32 进行编程,实现 PWM、ADC、DAC、I2C、I2S、SPI 等多种功能。 + +.. note:: + + 管脚 D0、D1、D2、D3、CMD 和 CLK 用于 ESP32 芯片与 SPI flash 间的内部通信,集中分布在开发板两侧靠近 USB 端口的位置。通常而言,这些管脚最好不连,否则可能影响 SPI flash / SPI RAM 的工作。 + +.. note:: + + 管脚 GPIO16 和 GPIO17 仅适用于板载 ESP32-WROOM 系列和 ESP32-SOLO-1 的开发板,保留内部使用。 + + +电源选项 +-------- + +开发板可从以下三种供电方式中任选其一: + +* Micro USB 供电(默认) +* 5V / GND 管脚供电 +* 3V3 / GND 管脚供电 + +.. warning:: + + 上述供电模式 **不可同时连接**,否则可能会损坏开发板和/或电源。 + + +有关 C15 的提示 +-------------------- + +较早版本 ESP32-DevKitC 开发板上的 C15 可能存在以下问题: + +* 开发板上电后可能进入下载模式; +* 如果用户通过 GPIO0 输出时钟,C15 可能会影响信号。 + +用户如果认为 C15 可能影响开发板的使用,则可以将 C15 完全移除。C15 在开发板上的具体位置见下图黄色部分。 + +.. figure:: ../../../_static/esp32-devkitc-c15-location.png + :align: center + :alt: C15(黄色)在 ESP32-DevKitC V4 开发板上的位置 + :figclass: align-center + :width: 30% + +C15(黄色)在 ESP32-DevKitC V4 开发板上的位置 + + +应用程序开发 +----------------- + +ESP32-DevKitC V4 上电前,请首先确认开发板完好无损。 + +现在,请前往 :doc:`../../get-started/index` 中的 :ref:`get-started-step-by-step` 章节,查看如何设置开发环境,并尝试将示例项目烧录至您的开发板。 + +开发板尺寸 +------------- + +.. figure:: ../../../_static/esp32-devkitc-dimensions-back.jpg + :align: center + :alt: ESP32-DevKitC 开发板尺寸 -- 仰视图 + :figclass: align-center + +ESP32-DevKitC 开发板尺寸 -- 仰视图 + + +相关文档 +----------- + +* `ESP32-DevKitC V4 原理图 `_ (PDF) +* `《ESP32 技术规格书》 `_ (PDF) +* `《ESP32-WROOM-32 技术规格书》 `_ (PDF) +* `《ESP32-WROOM-32D & ESP32-WROOM-32U 技术规格书》 `_ (PDF) +* `《ESP32-WROVER 技术规格书》 `_ (PDF) +* `《ESP32-WROVER-B 技术规格书》 `_ (PDF) +* `《乐鑫产品订购信息》 `_ (PDF) + +.. toctree:: + :hidden: + + get-started-devkitc-v2 diff --git a/docs/zh_CN/hw-reference/esp32/get-started-ethernet-kit-v1.0.rst b/docs/zh_CN/hw-reference/esp32/get-started-ethernet-kit-v1.0.rst index e931c6a33c..9fb3d83eb5 100644 --- a/docs/zh_CN/hw-reference/esp32/get-started-ethernet-kit-v1.0.rst +++ b/docs/zh_CN/hw-reference/esp32/get-started-ethernet-kit-v1.0.rst @@ -1,373 +1,373 @@ -ESP32-Ethernet-Kit V1.0 入门指南 -============================================= - -:link_to_translation:`en:[English]` - - -本指南介绍了如何使用 ESP32-Ethernet-Kit 开发板以及配置相关功能。 - -:ref:`ESP32-Ethernet-Kit ` 是一款以太网转 Wi-Fi 开发板,可为以太网设备赋予 Wi-Fi 连接功能。为了提供更灵活的电源选项,ESP32-Ethernet-Kit 也同时支持以太网供电 (PoE)。 - -准备工作 -------------- - -* :ref:`ESP32-Ethernet-Kit V1.0 开发板 ` -* USB 数据线(A 转 Micro-B) -* PC(Windows、Linux 或 Mac OS) - -您可以跳过介绍部分,直接前往 `应用程序开发`_ 章节。 - -概述 --------- - -ESP32-Ethernet-Kit 是一款来自 `乐鑫 `_ 的开发板,由以太网母板(A 板)和 PoE 子板(B 板)两部分组成。其中 :ref:`以太网母板(A 板)` 贴蓝牙 / Wi-Fi 双模 ESP32-WROVER-B 模组和单端口 10/100 快速以太网收发器 (PHY) IP101GRI。:ref:`PoE 子板(B 板) ` 提供以太网供电功能。ESP32-Ethernet-Kit 的 A 板可在不连接 B 板的情况下独立工作。 - -.. _get-started-esp32-ethernet-kit-b-v1.0: - -.. figure:: ../../../_static/esp32-ethernet-kit-v1.0.png - :align: center - :alt: ESP32-Ethernet-Kit V1.0 - :figclass: align-center - - ESP32-Ethernet-Kit V1.0 - -为了实现程序下载和监控,A 板还集成了一款先进多协议 USB 桥接器(FTDI FT2232H 芯片),进而允许开发人员直接通过 USB 接口,使用 JTAG 对 ESP32 进行调试,无需额外的 JTAG 适配器。 - - -功能概述 ------------ - -ESP32-Ethernet-Kit 开发板的主要组件和连接方式见下。 - -.. figure:: ../../../_static/esp32-ethernet-kit-block-diagram.png - :align: center - :scale: 50% - :alt: ESP32-Ethernet-Kit 功能框图(点击放大) - :figclass: align-center - - ESP32-Ethernet-Kit 功能框图(点击放大) - - -功能说明 ------------ - -ESP32-Ethernet-Kit 开发板的主要组件、接口及控制方式见下。 - - -.. _get-started-esp32-ethernet-kit-a-v1.0-layout: - -以太网母板(A 板) -^^^^^^^^^^^^^^^^^^ - -.. figure:: ../../../_static/esp32-ethernet-kit-a-v1.0-layout.png - :align: center - :scale: 80% - :alt: ESP32-Ethernet-Kit - 以太网母板(A 板)布局 - :figclass: align-center - - ESP32-Ethernet-Kit - 以太网母板(A 板)布局(点击放大) - -下表将从图片右上角开始,以顺时针顺序介绍图中的主要组件。 - -======================= ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== -主要组件 基本介绍 -======================= ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== -ESP32-WROVER-B 模组 这款 ESP32 模组内置 64-Mbit PSRAM,可提供灵活的额外存储空间和数据处理能力。 - -GPIO Header 2 由 5 个未引出通孔组成,可连接至 ESP32 的部分 GPIO。具体介绍,请见 `GPIO Header 2`_。 - -流控 跳线帽,可接入开发板信号。具体介绍,请见 `流控`_。 - -功能选择开关 DIP 开关,可配置 ESP32 部分 GPIO 的功能。具体介绍,请见 `功能选择开关`_。 - -Tx/Rx LED 2 个 LED,可显示 UART 传输的状态。 - -GPIO Header 3 可连接至 ESP32 的部分 GPIO,根据 `功能选择开关`_ 的位置有不同功能。 - -FT2232H FT2232H 多协议 USB 转串口桥接器。开发人员可通过 USB 接口对 FT2232H 芯片进行控制和编程,与 ESP32 建立连接。FT2232H 芯片可在通道 A 提供 USB-to-JTAG 接口功能,并在通道 B 提供 USB-to-Serial 接口功能,便利开发人员的应用开发与调试。见 `ESP32-Ethernet-Kit V1.0 以太网母板(A 板)原理图`_。 - -USB 端口 USB 接口。可用作开发板的供电电源,或连接 PC 和开发板的通信接口。 - -电源开关 电源开关。拨向 **Boot** 按键一侧,开发板上电;拨离 **Boot** 按键一侧,开发板掉电。 - -5V Input 5V 电源接口建议仅在开发板自动运行(未连接 PC)时使用。仅用于全负荷工作下的后备电源。 - -5V Power On LED 当开发板通电后(USB 或外部 5V 供电),该红色指示灯将亮起。 - -DC/DC 转换器 直流 5 V 转 3.3 V,输出电流高达 2 A。 - -B 板连接器 1 对 2 针排针,用于连接 :ref:`PoE 子板(B 板)`。 - -IP101GRI (PHY) 物理层 (PHY) 单端口10/100 快速以太网收发器 `IP101GRI`_ ,允许开发人员实现与以太网线缆的物理层连接。PHY 与 ESP32 通过简化媒体独立接口 (RMII) 实现连接。RMII 是 `媒体独立接口 (MII)`_ 的简化版本。PHY 可在 10/100 Mbps 速率下支持 IEEE 802.3 / 802.3u 标准。 - -RJ45 端口 以太网数据传输端口。 - -网络变压器 网络变压器属于以太网物理层的一部分,可保护电路免受故障和电压瞬变影响,包括防止收发器芯片和线缆之间产生共模信号。同时它也可以在收发器与以太网设备之间提供电流隔绝。 - -Link/Activity LED 2 个 LED(绿色和红色),可分别显示 PHY 处于 "Link" 状态或 "Activity" 状态。 - -BOOT 按键 下载按键。按下 **BOOT** 键并保持,同时按一下 **EN** 键(此时不要松开 **BOOT** 键)进入“固件下载”模式,通过串口下载固件。 - -CH_PU 按键 复位按键。 - -GPIO Header 1 由 6 个未引出通孔组成,可连接至 ESP32 的备用 GPIO。具体介绍,请见 `GPIO Header 1`_。 -======================= ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== - -.. _get-started-esp32-ethernet-kit-b-v1.0-layout: - -PoE 子板(B 板) -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -PoE 子板通过以太网电缆传输电能 (PoE),为以太网母板(A 板)提供电源。PoE 子板(B 板)的主要组件见 `功能概述`_ 中的功能框图。 - -PoE 子板(B 板)具有以下特性: - -* 支持 IEEE 802.3at -* 电源输出:5 V,1.4 A - -如需使用 PoE 功能,请用以太网线缆将以太网母板(A 板)上的 **RJ45 端口** 连接至 PoE 的交换机。太网母板(A 板)检测到来自 PoE 子板(B 板)的 5 V 供电后,将从 USB 供电自动切换至 PoE 供电。 - -.. figure:: ../../../_static/esp32-ethernet-kit-b-v1.0-layout.png - :align: center - :scale: 80% - :alt: ESP32-Ethernet-Kit - PoE 子板(B 板) - :figclass: align-center - - ESP32-Ethernet-Kit - PoE 子板(B 板)布局(点击放大) - -========================== ================================================================================================================================= -主要组件 基本介绍 -========================== ================================================================================================================================= -A 板连接器 1 个 4 针排母,用于将 B 板连接至 :ref:`以太网母板(A 板)`。 -外部电源终端 PoE 子板(B 板)备用电源。 -========================== ================================================================================================================================= - -.. _get-started-esp32-ethernet-kit-b-v1.0-setup-options: - -设置选项 -------------- - -本节介绍用于 ESP32-Ethernet-Kit 开发板的硬件配置选项。 - - -功能选择开关 -^^^^^^^^^^^^^^^ - -用户可使用 **功能选择开关** 配置特定 GPIO 管脚的功能。 - -======= ================ ================================================================ -DIP SW GPIO 管脚 管脚功能( DIP SW 开启状态) -======= ================ ================================================================ -1. GPIO14 连接至 FT2232H,提供 JTAG 功能 -2. GPIO12 连接至 FT2232H,提供 JTAG 功能 -3. GPIO13 连接至 FT2232H,提供 JTAG 功能 -4. GPIO15 连接至 FT2232H,提供 JTAG 功能 -5. GPIO4 连接至 FT2232H,提供 JTAG 功能 -6. GPIO2 连接至板上 25 MHz 晶振 -7. GPIO5 连接至 IP101GRI 的 RESET_N 输入 -8. n/a -======= ================ ================================================================ - -用户还可以关闭 DIP DW,将部分 GPIO 用于其他用途。 - - -流控 -^^^^^^^^^^^^ - -2 x 2 跳线连接器,可用于 UART 流控功能。 - -==== ======= ================================================= -. 信号 备注 -==== ======= ================================================= -1. MTDO GPIO13,见 `功能选择开关`_。 -2. MTCK GPIO15,见 `功能选择开关`_。 -3. RTS FT2232H 的 RTS 信号 -4. CTS FT2232H 的 CTS 信号 -==== ======= ================================================= - - -GPIO 分配 ---------------- - -本节介绍了 ESP32-Ethernet-Kit 开发板特定接口或功能的 GPIO 分配情况。 - - -IP101GRI (PHY) 接口 -^^^^^^^^^^^^^^^^^^^^^^^^ - -ESP32 (MAC) 与 IP101GRI (PHY) 的管脚对应关系见下: - -==== ================ =============== -. ESP32 管脚 (MAC) IP101GRI (PHY) -==== ================ =============== -*RMII 接口* ---------------------------------------- -1. GPIO21 TX_EN -2. GPIO19 TXD[0] -3. GPIO22 TXD[1] -4. GPIO25 RXD[0] -5. GPIO26 RXD[1] -6. GPIO27 CRS_DV -7. GPIO0 REF_CLK ----- ---------------- --------------- -*串行管理接口* ---------------------------------------- -8 GPIO23 MDC -9 GPIO18 MDIO ----- ---------------- --------------- -*PHY 复位* ---------------------------------------- -10 GPIO5 Reset_N -==== ================ =============== - -.. note:: - - 除了 REF_CLK 之外,*RMII 接口* 下的所有管脚分配都是固定的,不能通过 IOMUX 或 GPIO 矩阵进行更改。 - - -GPIO Header 1 -^^^^^^^^^^^^^ - -本连接器包括 ESP32-Ethernet-Kit 开发板上部分不用做他用的 GPIO。 - -==== ================ -. ESP32 管脚 -==== ================ -1. GPIO32 -2. GPIO33 -3. GPIO34 -4. GPIO35 -5. GPIO36 -6. GPIO39 -==== ================ - - -GPIO Header 2 -^^^^^^^^^^^^^ - -本连接器包括具有特定 MII 功能的 GPIO(GPIO2 除外)。根据具体情况,部分以太网应用程序可能需要使用此功能。 - -==== ========== ================= ================== -. ESP32 管脚 MII 功能 说明 -==== ========== ================= ================== -1. GPIO17 EMAC_CLK_180 见说明 1。 -2. GPIO16 EMAC_CLK_OUT 见说明 1。 -3. GPIO4 EMAC_TX_ER -4. GPIO2 n/a 见说明 2。 -5. GPIO5 EMAC_RX_CLK 见说明 2。 -==== ========== ================= ================== - -.. note:: - - 1. ESP32 芯片的 GPIO16 和 GPIO17 管脚没有引出至 ESP32-WROVER-B 模组的管脚,因此无法使用。如需使用 ESP32 的 GP1016 和 GPIO17 管脚,建议更换其他不含 SPIRAM 的模组,比如 ESP32-WROOM-32D 或 ESP32-SOLO-1。 - 2. 具体功能取决于 `功能选择开关`_ 的设置。 - - -GPIO Header 3 -^^^^^^^^^^^^^ - -本连接器中 GPIO 的功能取决于 `功能选择开关`_ 的设置。 - -==== =========== -. ESP32 管脚 -==== =========== -1. GPIO15 -2. GPIO13 -3. GPIO12 -4. GPIO14 -5. GND -6. 3V3 -==== =========== - - -GPIO 管脚分配 -^^^^^^^^^^^^^^^^^^^^^^^ - -.. csv-table:: - :header: ESP32-WROVER-B,IP101GRI,UART,JTAG,GPIO,说明 - - S_VP,,,,IO36, - S_VN,,,,IO39, - IO34,,,,IO34, - IO35,,,,IO35, - IO32,,,,IO32, - IO33,,,,IO33, - IO25,RXD[0],,,, - IO26,RXD[1],,,, - IO27,CRS_DV,,,, - IO14,,,TMS,IO14, - IO12,,,TDI,IO12, - IO13,,RTS,TCK,IO13, - IO15,,CTS,TDO,IO15, - IO2,,,,IO2,见下方说明 1 和说明 3。 - IO0,REF_CLK,,,,见下方说明 2 和说明 3。 - IO4,,,nTRST,IO4, - IO16,,,,IO16 (NC),见下方说明 4。 - IO17,,,,IO17 (NC),见下方说明 4。 - IO5,Reset_N,,,IO5, - IO18,MDIO,,,, - IO19,TXD[0],,,, - IO21,TX_EN,,,, - RXD0,,RXD,,, - TXD0,,TXD,,, - IO22,TXD[1],,,, - IO23,MDC,,,, - - -.. note:: - - 1. GPIO2 用于使能 PHY 的外部振荡器。 - 2. GPIO0 用于为 PHY 提供 50 MHz 基准时钟源。为了防止传输线路延迟对时钟相位带来的影响,该时钟信号将首先被反相,而后提供给 PHY。 - 3. 为防止 PHY 端 GPIO0 的上电状态受到时钟输出的影响,PHY 的外部晶振将在 ESP32 上电后通过 GPIO2 使能。 - 4. ESP32 芯片的 GPIO16 和 GPIO17 管脚没有引出至 ESP32-WROVER-B 模组的管脚,因此无法使用。如需使用 ESP32 的 GP1016 和 GPIO17 管脚,建议更换其他不含 SPIRAM 的模组,比如 ESP32-WROOM-32D 或 ESP32-SOLO-1。 - - -应用程序开发 ------------------------------ - -ESP32-Ethernet-Kit 上电前,请首先确认开发板完好无损。 - -初始设置 -^^^^^^^^^^^^^ - -1. 首先,请将 :ref:`以太网母板(A 板)` 上的所有开关均拨至 **ON** 状态,即使 **功能选择开关** 处于默认状态。 -2. 为了方便应用程序的下载和测试,此时请不要在开发板安装任何跳线帽,也不要为开发板接入任何信号。 -3. 此时可以连接 :ref:`PoE 子板(B 板) `,但不要向 B 板连接任何外部电源。 -4. 使用 USB 数据线将 :ref:`以太网母板(A 板) ` 连接至 PC。 -5. 将 **电源开关** 从 GND 拨至 5V0 一侧。此时,**5V Power On LED** 应点亮。 - - -正式开始开发 -^^^^^^^^^^^^^^^^^^ - -现在,请前往 :doc:`../../get-started/index` 中的 :ref:`get-started-step-by-step` 章节,查看如何设置开发环境,并尝试将示例项目烧录至您的开发板。 - -如需使用较早 GNU Make 编译系统,则请参考 :ref:`get-started-step-by-step` 章节。 - -请务必在进入下一步前,确保您已完成上述所有步骤。 - - -配置与加载以太网示例 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -在完成开发环境设置和开发板测试后,您可以配置并烧录 :example:`ethernet/basic` 示例。本示例专门用于测试以太网功能,支持不同 PHY,包括 :ref:`ESP32-Ethernet-Kit V1.0 开发板 ` 使用的 **IP101GRI**。 - - -相关文档 ------------------ - -* `ESP32-Ethernet-Kit V1.0 以太网母板(A 板)原理图`_ (PDF) -* `ESP32-Ethernet-Kit V1.0 PoE 子板(B 板)原理图`_ (PDF) -* `《ESP32 技术规格书》 `_ (PDF) -* `《ESP32-WROVER-B 技术规格书》 `_ (PDF) -* :doc:`../../api-guides/jtag-debugging/index` -* :doc:`../../hw-reference/index` - -有关本开发板的更多设计文档,请联系我们的商务部门 sales@espressif.com。 - -.. _ESP32-Ethernet-Kit V1.0 以太网母板(A 板)原理图: https://dl.espressif.com/dl/schematics/SCH_ESP32-ETHERNET-KIT_A_V1.0_20190517.pdf -.. _ESP32-Ethernet-Kit V1.0 PoE 子板(B 板)原理图: https://dl.espressif.com/dl/schematics/SCH_ESP32-ETHERNET-KIT_B_V1.0_20190517.pdf -.. _IP101GRI: http://www.bdtic.com/DataSheet/ICplus/IP101G_DS_R01_20121224.pdf -.. _媒体独立接口 (MII): https://en.wikipedia.org/wiki/Media-independent_interface - - +ESP32-Ethernet-Kit V1.0 入门指南 +============================================= + +:link_to_translation:`en:[English]` + + +本指南介绍了如何使用 ESP32-Ethernet-Kit 开发板以及配置相关功能。 + +:ref:`ESP32-Ethernet-Kit ` 是一款以太网转 Wi-Fi 开发板,可为以太网设备赋予 Wi-Fi 连接功能。为了提供更灵活的电源选项,ESP32-Ethernet-Kit 也同时支持以太网供电 (PoE)。 + +准备工作 +------------- + +* :ref:`ESP32-Ethernet-Kit V1.0 开发板 ` +* USB 数据线(A 转 Micro-B) +* PC(Windows、Linux 或 Mac OS) + +您可以跳过介绍部分,直接前往 `应用程序开发`_ 章节。 + +概述 +-------- + +ESP32-Ethernet-Kit 是一款来自 `乐鑫 `_ 的开发板,由以太网母板(A 板)和 PoE 子板(B 板)两部分组成。其中 :ref:`以太网母板(A 板)` 贴蓝牙 / Wi-Fi 双模 ESP32-WROVER-B 模组和单端口 10/100 快速以太网收发器 (PHY) IP101GRI。:ref:`PoE 子板(B 板) ` 提供以太网供电功能。ESP32-Ethernet-Kit 的 A 板可在不连接 B 板的情况下独立工作。 + +.. _get-started-esp32-ethernet-kit-b-v1.0: + +.. figure:: ../../../_static/esp32-ethernet-kit-v1.0.png + :align: center + :alt: ESP32-Ethernet-Kit V1.0 + :figclass: align-center + + ESP32-Ethernet-Kit V1.0 + +为了实现程序下载和监控,A 板还集成了一款先进多协议 USB 桥接器(FTDI FT2232H 芯片),进而允许开发人员直接通过 USB 接口,使用 JTAG 对 ESP32 进行调试,无需额外的 JTAG 适配器。 + + +功能概述 +----------- + +ESP32-Ethernet-Kit 开发板的主要组件和连接方式见下。 + +.. figure:: ../../../_static/esp32-ethernet-kit-block-diagram.png + :align: center + :scale: 50% + :alt: ESP32-Ethernet-Kit 功能框图(点击放大) + :figclass: align-center + + ESP32-Ethernet-Kit 功能框图(点击放大) + + +功能说明 +----------- + +ESP32-Ethernet-Kit 开发板的主要组件、接口及控制方式见下。 + + +.. _get-started-esp32-ethernet-kit-a-v1.0-layout: + +以太网母板(A 板) +^^^^^^^^^^^^^^^^^^ + +.. figure:: ../../../_static/esp32-ethernet-kit-a-v1.0-layout.png + :align: center + :scale: 80% + :alt: ESP32-Ethernet-Kit - 以太网母板(A 板)布局 + :figclass: align-center + + ESP32-Ethernet-Kit - 以太网母板(A 板)布局(点击放大) + +下表将从图片右上角开始,以顺时针顺序介绍图中的主要组件。 + +======================= ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== +主要组件 基本介绍 +======================= ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== +ESP32-WROVER-B 模组 这款 ESP32 模组内置 64-Mbit PSRAM,可提供灵活的额外存储空间和数据处理能力。 + +GPIO Header 2 由 5 个未引出通孔组成,可连接至 ESP32 的部分 GPIO。具体介绍,请见 `GPIO Header 2`_。 + +流控 跳线帽,可接入开发板信号。具体介绍,请见 `流控`_。 + +功能选择开关 DIP 开关,可配置 ESP32 部分 GPIO 的功能。具体介绍,请见 `功能选择开关`_。 + +Tx/Rx LED 2 个 LED,可显示 UART 传输的状态。 + +GPIO Header 3 可连接至 ESP32 的部分 GPIO,根据 `功能选择开关`_ 的位置有不同功能。 + +FT2232H FT2232H 多协议 USB 转串口桥接器。开发人员可通过 USB 接口对 FT2232H 芯片进行控制和编程,与 ESP32 建立连接。FT2232H 芯片可在通道 A 提供 USB-to-JTAG 接口功能,并在通道 B 提供 USB-to-Serial 接口功能,便利开发人员的应用开发与调试。见 `ESP32-Ethernet-Kit V1.0 以太网母板(A 板)原理图`_。 + +USB 端口 USB 接口。可用作开发板的供电电源,或连接 PC 和开发板的通信接口。 + +电源开关 电源开关。拨向 **Boot** 按键一侧,开发板上电;拨离 **Boot** 按键一侧,开发板掉电。 + +5V Input 5V 电源接口建议仅在开发板自动运行(未连接 PC)时使用。仅用于全负荷工作下的后备电源。 + +5V Power On LED 当开发板通电后(USB 或外部 5V 供电),该红色指示灯将亮起。 + +DC/DC 转换器 直流 5 V 转 3.3 V,输出电流高达 2 A。 + +B 板连接器 1 对 2 针排针,用于连接 :ref:`PoE 子板(B 板)`。 + +IP101GRI (PHY) 物理层 (PHY) 单端口10/100 快速以太网收发器 `IP101GRI`_ ,允许开发人员实现与以太网线缆的物理层连接。PHY 与 ESP32 通过简化媒体独立接口 (RMII) 实现连接。RMII 是 `媒体独立接口 (MII)`_ 的简化版本。PHY 可在 10/100 Mbps 速率下支持 IEEE 802.3 / 802.3u 标准。 + +RJ45 端口 以太网数据传输端口。 + +网络变压器 网络变压器属于以太网物理层的一部分,可保护电路免受故障和电压瞬变影响,包括防止收发器芯片和线缆之间产生共模信号。同时它也可以在收发器与以太网设备之间提供电流隔绝。 + +Link/Activity LED 2 个 LED(绿色和红色),可分别显示 PHY 处于 "Link" 状态或 "Activity" 状态。 + +BOOT 按键 下载按键。按下 **BOOT** 键并保持,同时按一下 **EN** 键(此时不要松开 **BOOT** 键)进入“固件下载”模式,通过串口下载固件。 + +CH_PU 按键 复位按键。 + +GPIO Header 1 由 6 个未引出通孔组成,可连接至 ESP32 的备用 GPIO。具体介绍,请见 `GPIO Header 1`_。 +======================= ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== + +.. _get-started-esp32-ethernet-kit-b-v1.0-layout: + +PoE 子板(B 板) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +PoE 子板通过以太网电缆传输电能 (PoE),为以太网母板(A 板)提供电源。PoE 子板(B 板)的主要组件见 `功能概述`_ 中的功能框图。 + +PoE 子板(B 板)具有以下特性: + +* 支持 IEEE 802.3at +* 电源输出:5 V,1.4 A + +如需使用 PoE 功能,请用以太网线缆将以太网母板(A 板)上的 **RJ45 端口** 连接至 PoE 的交换机。太网母板(A 板)检测到来自 PoE 子板(B 板)的 5 V 供电后,将从 USB 供电自动切换至 PoE 供电。 + +.. figure:: ../../../_static/esp32-ethernet-kit-b-v1.0-layout.png + :align: center + :scale: 80% + :alt: ESP32-Ethernet-Kit - PoE 子板(B 板) + :figclass: align-center + + ESP32-Ethernet-Kit - PoE 子板(B 板)布局(点击放大) + +========================== ================================================================================================================================= +主要组件 基本介绍 +========================== ================================================================================================================================= +A 板连接器 1 个 4 针排母,用于将 B 板连接至 :ref:`以太网母板(A 板)`。 +外部电源终端 PoE 子板(B 板)备用电源。 +========================== ================================================================================================================================= + +.. _get-started-esp32-ethernet-kit-b-v1.0-setup-options: + +设置选项 +------------- + +本节介绍用于 ESP32-Ethernet-Kit 开发板的硬件配置选项。 + + +功能选择开关 +^^^^^^^^^^^^^^^ + +用户可使用 **功能选择开关** 配置特定 GPIO 管脚的功能。 + +======= ================ ================================================================ +DIP SW GPIO 管脚 管脚功能( DIP SW 开启状态) +======= ================ ================================================================ +1. GPIO14 连接至 FT2232H,提供 JTAG 功能 +2. GPIO12 连接至 FT2232H,提供 JTAG 功能 +3. GPIO13 连接至 FT2232H,提供 JTAG 功能 +4. GPIO15 连接至 FT2232H,提供 JTAG 功能 +5. GPIO4 连接至 FT2232H,提供 JTAG 功能 +6. GPIO2 连接至板上 25 MHz 晶振 +7. GPIO5 连接至 IP101GRI 的 RESET_N 输入 +8. n/a +======= ================ ================================================================ + +用户还可以关闭 DIP DW,将部分 GPIO 用于其他用途。 + + +流控 +^^^^^^^^^^^^ + +2 x 2 跳线连接器,可用于 UART 流控功能。 + +==== ======= ================================================= +. 信号 备注 +==== ======= ================================================= +1. MTDO GPIO13,见 `功能选择开关`_。 +2. MTCK GPIO15,见 `功能选择开关`_。 +3. RTS FT2232H 的 RTS 信号 +4. CTS FT2232H 的 CTS 信号 +==== ======= ================================================= + + +GPIO 分配 +--------------- + +本节介绍了 ESP32-Ethernet-Kit 开发板特定接口或功能的 GPIO 分配情况。 + + +IP101GRI (PHY) 接口 +^^^^^^^^^^^^^^^^^^^^^^^^ + +ESP32 (MAC) 与 IP101GRI (PHY) 的管脚对应关系见下: + +==== ================ =============== +. ESP32 管脚 (MAC) IP101GRI (PHY) +==== ================ =============== +*RMII 接口* +--------------------------------------- +1. GPIO21 TX_EN +2. GPIO19 TXD[0] +3. GPIO22 TXD[1] +4. GPIO25 RXD[0] +5. GPIO26 RXD[1] +6. GPIO27 CRS_DV +7. GPIO0 REF_CLK +---- ---------------- --------------- +*串行管理接口* +--------------------------------------- +8 GPIO23 MDC +9 GPIO18 MDIO +---- ---------------- --------------- +*PHY 复位* +--------------------------------------- +10 GPIO5 Reset_N +==== ================ =============== + +.. note:: + + 除了 REF_CLK 之外,*RMII 接口* 下的所有管脚分配都是固定的,不能通过 IOMUX 或 GPIO 矩阵进行更改。 + + +GPIO Header 1 +^^^^^^^^^^^^^ + +本连接器包括 ESP32-Ethernet-Kit 开发板上部分不用做他用的 GPIO。 + +==== ================ +. ESP32 管脚 +==== ================ +1. GPIO32 +2. GPIO33 +3. GPIO34 +4. GPIO35 +5. GPIO36 +6. GPIO39 +==== ================ + + +GPIO Header 2 +^^^^^^^^^^^^^ + +本连接器包括具有特定 MII 功能的 GPIO(GPIO2 除外)。根据具体情况,部分以太网应用程序可能需要使用此功能。 + +==== ========== ================= ================== +. ESP32 管脚 MII 功能 说明 +==== ========== ================= ================== +1. GPIO17 EMAC_CLK_180 见说明 1。 +2. GPIO16 EMAC_CLK_OUT 见说明 1。 +3. GPIO4 EMAC_TX_ER +4. GPIO2 n/a 见说明 2。 +5. GPIO5 EMAC_RX_CLK 见说明 2。 +==== ========== ================= ================== + +.. note:: + + 1. ESP32 芯片的 GPIO16 和 GPIO17 管脚没有引出至 ESP32-WROVER-B 模组的管脚,因此无法使用。如需使用 ESP32 的 GP1016 和 GPIO17 管脚,建议更换其他不含 SPIRAM 的模组,比如 ESP32-WROOM-32D 或 ESP32-SOLO-1。 + 2. 具体功能取决于 `功能选择开关`_ 的设置。 + + +GPIO Header 3 +^^^^^^^^^^^^^ + +本连接器中 GPIO 的功能取决于 `功能选择开关`_ 的设置。 + +==== =========== +. ESP32 管脚 +==== =========== +1. GPIO15 +2. GPIO13 +3. GPIO12 +4. GPIO14 +5. GND +6. 3V3 +==== =========== + + +GPIO 管脚分配 +^^^^^^^^^^^^^^^^^^^^^^^ + +.. csv-table:: + :header: ESP32-WROVER-B,IP101GRI,UART,JTAG,GPIO,说明 + + S_VP,,,,IO36, + S_VN,,,,IO39, + IO34,,,,IO34, + IO35,,,,IO35, + IO32,,,,IO32, + IO33,,,,IO33, + IO25,RXD[0],,,, + IO26,RXD[1],,,, + IO27,CRS_DV,,,, + IO14,,,TMS,IO14, + IO12,,,TDI,IO12, + IO13,,RTS,TCK,IO13, + IO15,,CTS,TDO,IO15, + IO2,,,,IO2,见下方说明 1 和说明 3。 + IO0,REF_CLK,,,,见下方说明 2 和说明 3。 + IO4,,,nTRST,IO4, + IO16,,,,IO16 (NC),见下方说明 4。 + IO17,,,,IO17 (NC),见下方说明 4。 + IO5,Reset_N,,,IO5, + IO18,MDIO,,,, + IO19,TXD[0],,,, + IO21,TX_EN,,,, + RXD0,,RXD,,, + TXD0,,TXD,,, + IO22,TXD[1],,,, + IO23,MDC,,,, + + +.. note:: + + 1. GPIO2 用于使能 PHY 的外部振荡器。 + 2. GPIO0 用于为 PHY 提供 50 MHz 基准时钟源。为了防止传输线路延迟对时钟相位带来的影响,该时钟信号将首先被反相,而后提供给 PHY。 + 3. 为防止 PHY 端 GPIO0 的上电状态受到时钟输出的影响,PHY 的外部晶振将在 ESP32 上电后通过 GPIO2 使能。 + 4. ESP32 芯片的 GPIO16 和 GPIO17 管脚没有引出至 ESP32-WROVER-B 模组的管脚,因此无法使用。如需使用 ESP32 的 GP1016 和 GPIO17 管脚,建议更换其他不含 SPIRAM 的模组,比如 ESP32-WROOM-32D 或 ESP32-SOLO-1。 + + +应用程序开发 +----------------------------- + +ESP32-Ethernet-Kit 上电前,请首先确认开发板完好无损。 + +初始设置 +^^^^^^^^^^^^^ + +1. 首先,请将 :ref:`以太网母板(A 板)` 上的所有开关均拨至 **ON** 状态,即使 **功能选择开关** 处于默认状态。 +2. 为了方便应用程序的下载和测试,此时请不要在开发板安装任何跳线帽,也不要为开发板接入任何信号。 +3. 此时可以连接 :ref:`PoE 子板(B 板) `,但不要向 B 板连接任何外部电源。 +4. 使用 USB 数据线将 :ref:`以太网母板(A 板) ` 连接至 PC。 +5. 将 **电源开关** 从 GND 拨至 5V0 一侧。此时,**5V Power On LED** 应点亮。 + + +正式开始开发 +^^^^^^^^^^^^^^^^^^ + +现在,请前往 :doc:`../../get-started/index` 中的 :ref:`get-started-step-by-step` 章节,查看如何设置开发环境,并尝试将示例项目烧录至您的开发板。 + +如需使用较早 GNU Make 编译系统,则请参考 :ref:`get-started-step-by-step` 章节。 + +请务必在进入下一步前,确保您已完成上述所有步骤。 + + +配置与加载以太网示例 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +在完成开发环境设置和开发板测试后,您可以配置并烧录 :example:`ethernet/basic` 示例。本示例专门用于测试以太网功能,支持不同 PHY,包括 :ref:`ESP32-Ethernet-Kit V1.0 开发板 ` 使用的 **IP101GRI**。 + + +相关文档 +----------------- + +* `ESP32-Ethernet-Kit V1.0 以太网母板(A 板)原理图`_ (PDF) +* `ESP32-Ethernet-Kit V1.0 PoE 子板(B 板)原理图`_ (PDF) +* `《ESP32 技术规格书》 `_ (PDF) +* `《ESP32-WROVER-B 技术规格书》 `_ (PDF) +* :doc:`../../api-guides/jtag-debugging/index` +* :doc:`../../hw-reference/index` + +有关本开发板的更多设计文档,请联系我们的商务部门 sales@espressif.com。 + +.. _ESP32-Ethernet-Kit V1.0 以太网母板(A 板)原理图: https://dl.espressif.com/dl/schematics/SCH_ESP32-ETHERNET-KIT_A_V1.0_20190517.pdf +.. _ESP32-Ethernet-Kit V1.0 PoE 子板(B 板)原理图: https://dl.espressif.com/dl/schematics/SCH_ESP32-ETHERNET-KIT_B_V1.0_20190517.pdf +.. _IP101GRI: http://www.bdtic.com/DataSheet/ICplus/IP101G_DS_R01_20121224.pdf +.. _媒体独立接口 (MII): https://en.wikipedia.org/wiki/Media-independent_interface + + diff --git a/examples/bluetooth/bluedroid/ble/ble_ancs/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/ble_ancs/main/CMakeLists.txt index 460583de9a..18d14d5b56 100644 --- a/examples/bluetooth/bluedroid/ble/ble_ancs/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/ble_ancs/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "ble_ancs_demo.c" "ble_ancs.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs.c b/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs.c index 2035b67516..013b31a634 100644 --- a/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs.c +++ b/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs.c @@ -19,7 +19,7 @@ #define BLE_ANCS_TAG "BLE_ANCS" -/* +/* | EventID(1 Byte) | EventFlags(1 Byte) | CategoryID(1 Byte) | CategoryCount(1 Byte) | NotificationUID(4 Bytes) | A GATT notification delivered through the Notification Source characteristic contains the following information: @@ -28,7 +28,7 @@ A GATT notification delivered through the Notification Source characteristic con * EventFlags: A bitmask whose set bits inform an NC of specificities with the iOS notification. For example, if an iOS notification is considered “important”, the NC may want to display a more aggressive user interface (UI) to make sure the user is properly alerted. The enumerated bits for this field are defined in EventFlags. -* CategoryID: A numerical value providing a category in which the iOS notification can be classified. The NP will make a best effort to provide an accurate category +* CategoryID: A numerical value providing a category in which the iOS notification can be classified. The NP will make a best effort to provide an accurate category for each iOS notification. The enumerated values for this field are defined in CategoryID Values. * CategoryCount: The current number of active iOS notifications in the given category. For example, if two unread emails are sitting in a user’s email inbox, and a new email is pushed to the user’s iOS device, the value of CategoryCount is 3. @@ -104,7 +104,7 @@ char *CategoryID_to_String(uint8_t CategoryID) return Cidstr; } -/* +/* | EventID(1 Byte) | EventFlags(1 Byte) | CategoryID(1 Byte) | CategoryCount(1 Byte) | NotificationUID(4 Bytes) | */ @@ -124,7 +124,7 @@ void esp_receive_apple_notification_source(uint8_t *message, uint16_t message_le ESP_LOGI(BLE_ANCS_TAG, "EventID:%s EventFlags:0x%x CategoryID:%s CategoryCount:%d NotificationUID:%d", EventIDS, EventFlags, Cidstr, CategoryCount, NotificationUID); } -void esp_receive_apple_data_source(uint8_t *message, uint16_t message_len) +void esp_receive_apple_data_source(uint8_t *message, uint16_t message_len) { //esp_log_buffer_hex("data source", message, message_len); if (!message || message_len == 0) { @@ -195,7 +195,7 @@ void esp_receive_apple_data_source(uint8_t *message, uint16_t message_len) } } -char *Errcode_to_String(uint16_t status) +char *Errcode_to_String(uint16_t status) { char *Errstr = NULL; switch (status) { @@ -218,11 +218,3 @@ char *Errcode_to_String(uint16_t status) return Errstr; } - - - - - - - - diff --git a/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs.h b/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs.h index 64608ea029..2cb882dd23 100644 --- a/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs.h +++ b/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs.h @@ -118,7 +118,3 @@ char *CategoryID_to_String(uint8_t CategoryID); void esp_receive_apple_notification_source(uint8_t *message, uint16_t message_len); void esp_receive_apple_data_source(uint8_t *message, uint16_t message_len); char *Errcode_to_String(uint16_t status); - - - - diff --git a/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs_demo.c b/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs_demo.c index 4dc89b83ac..1d5bd81b7c 100644 --- a/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs_demo.c +++ b/examples/bluetooth/bluedroid/ble/ble_ancs/main/ble_ancs_demo.c @@ -161,7 +161,7 @@ esp_noti_attr_list_t p_attr[8] = { }; -/* +/* | CommandID(1 Byte) | NotificationUID(4 Bytes) | AttributeIDs | */ @@ -238,7 +238,7 @@ static void periodic_timer_callback(void* arg) esp_receive_apple_data_source(data_buffer.buffer, data_buffer.len); memset(data_buffer.buffer, 0, data_buffer.len); data_buffer.len = 0; - } + } } static void gap_event_handler(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param) @@ -405,7 +405,7 @@ static void gattc_profile_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_ for (int i = 0; i < count; i ++) { if (char_elem_result[i].uuid.len == ESP_UUID_LEN_128) { - if (char_elem_result[i].properties & ESP_GATT_CHAR_PROP_BIT_NOTIFY + if (char_elem_result[i].properties & ESP_GATT_CHAR_PROP_BIT_NOTIFY && memcmp(char_elem_result[i].uuid.uuid.uuid128, notification_source, 16) == 0) { gl_profile_tab[PROFILE_A_APP_ID].notification_source_handle = char_elem_result[i].char_handle; esp_ble_gattc_register_for_notify (gattc_if, @@ -413,7 +413,7 @@ static void gattc_profile_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_ char_elem_result[i].char_handle); ESP_LOGI(BLE_ANCS_TAG, "Find Apple noticification source char"); - } else if (char_elem_result[i].properties & ESP_GATT_CHAR_PROP_BIT_NOTIFY + } else if (char_elem_result[i].properties & ESP_GATT_CHAR_PROP_BIT_NOTIFY && memcmp(char_elem_result[i].uuid.uuid.uuid128, data_source, 16) == 0) { gl_profile_tab[PROFILE_A_APP_ID].data_source_handle = char_elem_result[i].char_handle; esp_ble_gattc_register_for_notify (gattc_if, @@ -421,7 +421,7 @@ static void gattc_profile_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_ char_elem_result[i].char_handle); ESP_LOGI(BLE_ANCS_TAG, "Find Apple data source char"); - } else if (char_elem_result[i].properties & ESP_GATT_CHAR_PROP_BIT_WRITE + } else if (char_elem_result[i].properties & ESP_GATT_CHAR_PROP_BIT_WRITE && memcmp(char_elem_result[i].uuid.uuid.uuid128, control_point, 16) == 0) { gl_profile_tab[PROFILE_A_APP_ID].contol_point_handle = char_elem_result[i].char_handle; ESP_LOGI(BLE_ANCS_TAG, "Find Apple control point char"); @@ -503,7 +503,7 @@ static void gattc_profile_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_ //get more information ESP_LOGI(BLE_ANCS_TAG, "Get detailed information"); esp_get_notification_attributes(notificationUID, sizeof(p_attr)/sizeof(esp_noti_attr_list_t), p_attr); - } + } } else if (param->notify.handle == gl_profile_tab[PROFILE_A_APP_ID].data_source_handle) { memcpy(&data_buffer.buffer[data_buffer.len], param->notify.value, param->notify.value_len); data_buffer.len += param->notify.value_len; @@ -514,7 +514,7 @@ static void gattc_profile_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_ esp_timer_stop(periodic_timer); esp_receive_apple_data_source(data_buffer.buffer, data_buffer.len); memset(data_buffer.buffer, 0, data_buffer.len); - data_buffer.len = 0; + data_buffer.len = 0; } } else { ESP_LOGI(BLE_ANCS_TAG, "unknown handle, receive notify value:"); @@ -683,6 +683,3 @@ void app_main(void) esp_ble_gap_set_security_param(ESP_BLE_SM_SET_INIT_KEY, &init_key, sizeof(uint8_t)); esp_ble_gap_set_security_param(ESP_BLE_SM_SET_RSP_KEY, &rsp_key, sizeof(uint8_t)); } - - - diff --git a/examples/bluetooth/bluedroid/ble/ble_ancs/main/component.mk b/examples/bluetooth/bluedroid/ble/ble_ancs/main/component.mk index f2f38c36c0..ab30be48c7 100644 --- a/examples/bluetooth/bluedroid/ble/ble_ancs/main/component.mk +++ b/examples/bluetooth/bluedroid/ble/ble_ancs/main/component.mk @@ -1,9 +1,8 @@ # # Main Makefile. This is basically the same as a component makefile. # -# This Makefile should, at the very least, just include $(SDK_PATH)/make/component_common.mk. By default, -# this will take the sources in the src/ directory, compile them and link them into +# This Makefile should, at the very least, just include $(SDK_PATH)/make/component_common.mk. By default, +# this will take the sources in the src/ directory, compile them and link them into # lib(subdirectory_name).a in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # - diff --git a/examples/bluetooth/bluedroid/ble/ble_compatibility_test/Makefile b/examples/bluetooth/bluedroid/ble/ble_compatibility_test/Makefile index 9026a1feb6..6353024e29 100644 --- a/examples/bluetooth/bluedroid/ble/ble_compatibility_test/Makefile +++ b/examples/bluetooth/bluedroid/ble/ble_compatibility_test/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := ble_compatibility_test COMPONENT_ADD_INCLUDEDIRS := components/include include $(IDF_PATH)/make/project.mk - diff --git a/examples/bluetooth/bluedroid/ble/ble_compatibility_test/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/ble_compatibility_test/main/CMakeLists.txt index 99553fec31..1989ce57b3 100644 --- a/examples/bluetooth/bluedroid/ble/ble_compatibility_test/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/ble_compatibility_test/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "ble_compatibility_test.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/ble_compatibility_test/main/ble_compatibility_test.c b/examples/bluetooth/bluedroid/ble/ble_compatibility_test/main/ble_compatibility_test.c index 7c1ca1c0b4..5117efa51c 100644 --- a/examples/bluetooth/bluedroid/ble/ble_compatibility_test/main/ble_compatibility_test.c +++ b/examples/bluetooth/bluedroid/ble/ble_compatibility_test/main/ble_compatibility_test.c @@ -32,7 +32,7 @@ #if DEBUG_ON #define EXAMPLE_DEBUG ESP_LOGI #else -#define EXAMPLE_DEBUG( tag, format, ... ) +#define EXAMPLE_DEBUG( tag, format, ... ) #endif #define EXAMPLE_TAG "BLE_COMP" @@ -43,8 +43,8 @@ #define SAMPLE_DEVICE_NAME "BLE_COMP_TEST" #define SVC_INST_ID 0 -/* The max length of characteristic value. When the gatt client write or prepare write, -* the data length must be less than GATTS_EXAMPLE_CHAR_VAL_LEN_MAX. +/* The max length of characteristic value. When the gatt client write or prepare write, +* the data length must be less than GATTS_EXAMPLE_CHAR_VAL_LEN_MAX. */ #define GATTS_EXAMPLE_CHAR_VAL_LEN_MAX 500 #define LONG_CHAR_VAL_LEN 500 @@ -241,8 +241,8 @@ static const esp_gatts_attr_db_t gatt_db[HRS_IDX_NB] = /* Characteristic Client Configuration Descriptor */ [IDX_CHAR_CFG_C_2] = {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_client_config_uuid, ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE, - sizeof(uint16_t), sizeof(char_ccc), (uint8_t *)char_ccc}}, - + sizeof(uint16_t), sizeof(char_ccc), (uint8_t *)char_ccc}}, + }; static void show_bonded_devices(void) @@ -335,7 +335,7 @@ static void gap_event_handler(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param EXAMPLE_DEBUG(EXAMPLE_TAG, "ESP_GAP_BLE_PASSKEY_REQ_EVT"); //esp_ble_passkey_reply(heart_rate_profile_tab[HEART_PROFILE_APP_IDX].remote_bda, true, 0x00); break; - + case ESP_GAP_BLE_NC_REQ_EVT: /* The app will receive this event when the IO has DisplayYesNO capability and the peer device IO also has DisplayYesNo capability. show the passkey number to the user to confirm it with the number displayed by peer device. */ @@ -374,7 +374,7 @@ static void gap_event_handler(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param EXAMPLE_DEBUG(EXAMPLE_TAG, "ESP_GAP_BLE_REMOVE_BOND_DEV_COMPLETE_EVT status = %d", param->remove_bond_dev_cmpl.status); #if DEBUG_ON esp_log_buffer_hex(EXAMPLE_TAG, (void *)param->remove_bond_dev_cmpl.bd_addr, sizeof(esp_bd_addr_t)); - #endif + #endif EXAMPLE_DEBUG(EXAMPLE_TAG, "------------------------------------"); break; } @@ -534,7 +534,7 @@ static void gatts_profile_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_ ESP_LOGI(EXAMPLE_TAG, "(3)***** short write success ***** \n"); } } - + /* send response when param->write.need_rsp is true*/ if (param->write.need_rsp){ esp_ble_gatts_send_response(gatts_if, param->write.conn_id, param->write.trans_id, ESP_GATT_OK, NULL); @@ -544,8 +544,8 @@ static void gatts_profile_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_ example_prepare_write_event_env(gatts_if, &prepare_write_env, param); } break; - case ESP_GATTS_EXEC_WRITE_EVT: - // the length of gattc prepare write data must be less than GATTS_EXAMPLE_CHAR_VAL_LEN_MAX. + case ESP_GATTS_EXEC_WRITE_EVT: + // the length of gattc prepare write data must be less than GATTS_EXAMPLE_CHAR_VAL_LEN_MAX. ESP_LOGI(EXAMPLE_TAG, "ESP_GATTS_EXEC_WRITE_EVT, Length=%d", prepare_write_env.prepare_len); example_exec_write_event_env(&prepare_write_env, param); break; @@ -696,5 +696,5 @@ void app_main(void) and the init key means which key you can distribute to the slave. */ esp_ble_gap_set_security_param(ESP_BLE_SM_SET_INIT_KEY, &init_key, sizeof(uint8_t)); esp_ble_gap_set_security_param(ESP_BLE_SM_SET_RSP_KEY, &rsp_key, sizeof(uint8_t)); - + } diff --git a/examples/bluetooth/bluedroid/ble/ble_eddystone/Makefile b/examples/bluetooth/bluedroid/ble/ble_eddystone/Makefile index e7b35bd9cc..d587878918 100644 --- a/examples/bluetooth/bluedroid/ble/ble_eddystone/Makefile +++ b/examples/bluetooth/bluedroid/ble/ble_eddystone/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := ble_eddystone_demo COMPONENT_ADD_INCLUDEDIRS := components/include include $(IDF_PATH)/make/project.mk - diff --git a/examples/bluetooth/bluedroid/ble/ble_eddystone/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/ble_eddystone/main/CMakeLists.txt index cdd852c570..8290fc6305 100644 --- a/examples/bluetooth/bluedroid/ble/ble_eddystone/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/ble_eddystone/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "esp_eddystone_api.c" "esp_eddystone_demo.c" - INCLUDE_DIRS "") \ No newline at end of file + INCLUDE_DIRS "") diff --git a/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_api.c b/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_api.c index 20fffb2e63..250270760d 100644 --- a/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_api.c +++ b/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_api.c @@ -62,21 +62,21 @@ Byte offset Field Description 0 Frame Type Value = 0x00 1 Ranging Data Calibrated Tx power at 0 m 2 NID[0] 10-byte Namespace - 3 NID[1] - 4 NID[2] - 5 NID[3] - 6 NID[4] - 7 NID[5] - 8 NID[6] - 9 NID[7] - 10 NID[8] - 11 NID[9] + 3 NID[1] + 4 NID[2] + 5 NID[3] + 6 NID[4] + 7 NID[5] + 8 NID[6] + 9 NID[7] + 10 NID[8] + 11 NID[9] 12 BID[0] 6-byte Instance - 13 BID[1] - 14 BID[2] - 15 BID[3] - 16 BID[4] - 17 BID[5] + 13 BID[1] + 14 BID[2] + 15 BID[3] + 16 BID[4] + 17 BID[5] 18 RFU Reserved for future use, must be0x00 19 RFU Reserved for future use, must be0x00 *********************************************/ @@ -135,7 +135,7 @@ static esp_err_t esp_eddystone_url_received(const uint8_t* buf, uint8_t len, esp //ERROR:too long url return -1; } - res->inform.url.tx_power = buf[pos++]; + res->inform.url.tx_power = buf[pos++]; url_res = esp_eddystone_resolve_url_scheme(buf+pos, buf+len-1); memcpy(&res->inform.url.url, url_res, strlen(url_res)); res->inform.url.url[strlen(url_res)] = '\0'; @@ -148,17 +148,17 @@ Byte offset Field Description 0 Frame Type Value = 0x20 1 Version TLM version, value = 0x00 2 VBATT[0] Battery voltage, 1 mV/bit - 3 VBATT[1] + 3 VBATT[1] 4 TEMP[0] Beacon temperature - 5 TEMP[1] + 5 TEMP[1] 6 ADV_CNT[0] Advertising PDU count - 7 ADV_CNT[1] - 8 ADV_CNT[2] - 9 ADV_CNT[3] + 7 ADV_CNT[1] + 8 ADV_CNT[2] + 9 ADV_CNT[3] 10 SEC_CNT[0] Time since power-on or reboot - 11 SEC_CNT[1] - 12 SEC_CNT[2] - 13 SEC_CNT[3] + 11 SEC_CNT[1] + 12 SEC_CNT[2] + 13 SEC_CNT[3] ************************************************/ /* decode and store received TLM */ static esp_err_t esp_eddystone_tlm_received(const uint8_t* buf, uint8_t len, esp_eddystone_result_t* res) @@ -211,14 +211,14 @@ esp_err_t esp_eddystone_decode(const uint8_t* buf, uint8_t len, esp_eddystone_re return -1; } uint8_t pos=0; - while(res->common.srv_data_type != EDDYSTONE_SERVICE_UUID) + while(res->common.srv_data_type != EDDYSTONE_SERVICE_UUID) { pos++; - if(pos >= len ) { + if(pos >= len ) { return -1; } uint8_t ad_type = buf[pos++]; - switch(ad_type) + switch(ad_type) { case ESP_BLE_AD_TYPE_FLAG: { res->common.flags = buf[pos++]; @@ -227,7 +227,7 @@ esp_err_t esp_eddystone_decode(const uint8_t* buf, uint8_t len, esp_eddystone_re case ESP_BLE_AD_TYPE_16SRV_CMPL: { uint16_t uuid = little_endian_read_16(buf, pos); if(uuid != EDDYSTONE_SERVICE_UUID) { - return -1; + return -1; } res->common.srv_uuid = uuid; pos += 2; @@ -237,7 +237,7 @@ esp_err_t esp_eddystone_decode(const uint8_t* buf, uint8_t len, esp_eddystone_re uint16_t type = little_endian_read_16(buf, pos); pos += 2; uint8_t frame_type = buf[pos++]; - if(type != EDDYSTONE_SERVICE_UUID || !(frame_type == EDDYSTONE_FRAME_TYPE_UID || frame_type == EDDYSTONE_FRAME_TYPE_URL || + if(type != EDDYSTONE_SERVICE_UUID || !(frame_type == EDDYSTONE_FRAME_TYPE_UID || frame_type == EDDYSTONE_FRAME_TYPE_URL || frame_type == EDDYSTONE_FRAME_TYPE_TLM)) { return -1; } @@ -251,4 +251,3 @@ esp_err_t esp_eddystone_decode(const uint8_t* buf, uint8_t len, esp_eddystone_re } return esp_eddystone_get_inform(buf+pos, len-pos, res); } - diff --git a/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_api.h b/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_api.h index 41ad278e8b..b4a81a65ee 100644 --- a/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_api.h +++ b/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_api.h @@ -57,8 +57,8 @@ static inline uint32_t big_endian_read_32(const uint8_t *buffer, uint8_t pos) } /* - * The esp eddystone API. - * This function is called to decode eddystone information from adv_data. + * The esp eddystone API. + * This function is called to decode eddystone information from adv_data. * The res points to the result struct. * */ @@ -67,4 +67,3 @@ esp_err_t esp_eddystone_decode(const uint8_t* buf, uint8_t len, esp_eddystone_re //bool esp_eddystone_is_eddystone_packet(.....); #endif /* __ESP_EDDYSTONE_API_H__ */ - diff --git a/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_demo.c b/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_demo.c index f41ebf6c13..0ab6ee29c2 100644 --- a/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_demo.c +++ b/examples/bluetooth/bluedroid/ble/ble_eddystone/main/esp_eddystone_demo.c @@ -110,7 +110,7 @@ static void esp_gap_cb(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t* par // error:The received data is not an eddystone frame packet or a correct eddystone frame packet. // just return return; - } else { + } else { // The received adv data is a correct eddystone frame packet. // Here, we get the eddystone infomation in eddystone_res, we can use the data in res to do other things. // For example, just print them: @@ -143,7 +143,7 @@ static void esp_gap_cb(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t* par void esp_eddystone_appRegister(void) { esp_err_t status; - + ESP_LOGI(DEMO_TAG,"Register callback"); /*vendor_write.data, param->vendor_write.length); - } + } default: break; } @@ -241,11 +241,10 @@ void app_main(void) esp_ble_gap_set_security_param(ESP_BLE_SM_MAX_KEY_SIZE, &key_size, sizeof(uint8_t)); /* If your BLE device act as a Slave, the init_key means you hope which types of key of the master should distribute to you, and the response key means which key you can distribute to the Master; - If your BLE device act as a master, the response key means you hope which types of key of the slave should distribute to you, + If your BLE device act as a master, the response key means you hope which types of key of the slave should distribute to you, and the init key means which key you can distribute to the slave. */ esp_ble_gap_set_security_param(ESP_BLE_SM_SET_INIT_KEY, &init_key, sizeof(uint8_t)); esp_ble_gap_set_security_param(ESP_BLE_SM_SET_RSP_KEY, &rsp_key, sizeof(uint8_t)); xTaskCreate(&hid_demo_task, "hid_task", 2048, NULL, 5, NULL); } - diff --git a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/component.mk b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/component.mk index 4c0df11035..362a1ef771 100644 --- a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/component.mk +++ b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/component.mk @@ -2,4 +2,4 @@ # Main Makefile. This is basically the same as a component makefile. # -hid_device_le_prf.o: CFLAGS += -Wno-unused-const-variable +hid_device_le_prf.o: CFLAGS += -Wno-unused-const-variable diff --git a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/esp_hidd_prf_api.c b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/esp_hidd_prf_api.c index d1be980c1f..c20cd3491a 100644 --- a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/esp_hidd_prf_api.c +++ b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/esp_hidd_prf_api.c @@ -46,11 +46,11 @@ esp_err_t esp_hidd_register_callbacks(esp_hidd_event_cb_t callbacks) } esp_ble_gatts_app_register(BATTRAY_APP_ID); - + if((hidd_status = esp_ble_gatts_app_register(HIDD_APP_ID)) != ESP_OK) { return hidd_status; } - + return hidd_status; } @@ -80,7 +80,7 @@ esp_err_t esp_hidd_profile_deinit(void) } else { return ESP_FAIL; } - + /* register the HID device profile to the BTA_GATTS module*/ esp_ble_gatts_app_unregister(hidd_le_env.gatt_if); @@ -111,11 +111,11 @@ void esp_hidd_send_keyboard_value(uint16_t conn_id, key_mask_t special_key_mask, ESP_LOGE(HID_LE_PRF_TAG, "%s(), the number key should not be more than %d", __func__, HID_KEYBOARD_IN_RPT_LEN); return; } - + uint8_t buffer[HID_KEYBOARD_IN_RPT_LEN] = {0}; - + buffer[0] = special_key_mask; - + for (int i = 0; i < num_key; i++) { buffer[i+2] = keyboard_cmd[i]; } @@ -129,7 +129,7 @@ void esp_hidd_send_keyboard_value(uint16_t conn_id, key_mask_t special_key_mask, void esp_hidd_send_mouse_value(uint16_t conn_id, uint8_t mouse_button, int8_t mickeys_x, int8_t mickeys_y) { uint8_t buffer[HID_MOUSE_IN_RPT_LEN]; - + buffer[0] = mouse_button; // Buttons buffer[1] = mickeys_x; // X buffer[2] = mickeys_y; // Y @@ -140,6 +140,3 @@ void esp_hidd_send_mouse_value(uint16_t conn_id, uint8_t mouse_button, int8_t mi HID_RPT_ID_MOUSE_IN, HID_REPORT_TYPE_INPUT, HID_MOUSE_IN_RPT_LEN, buffer); return; } - - - diff --git a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/esp_hidd_prf_api.h b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/esp_hidd_prf_api.h index 513bcbef3a..e7a1932f5c 100644 --- a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/esp_hidd_prf_api.h +++ b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/esp_hidd_prf_api.h @@ -24,10 +24,10 @@ extern "C" { #endif typedef enum { - ESP_HIDD_EVENT_REG_FINISH = 0, + ESP_HIDD_EVENT_REG_FINISH = 0, ESP_BAT_EVENT_REG, - ESP_HIDD_EVENT_DEINIT_FINISH, - ESP_HIDD_EVENT_BLE_CONNECT, + ESP_HIDD_EVENT_DEINIT_FINISH, + ESP_HIDD_EVENT_BLE_CONNECT, ESP_HIDD_EVENT_BLE_DISCONNECT, ESP_HIDD_EVENT_BLE_VENDOR_REPORT_WRITE_EVT, } esp_hidd_cb_event_t; @@ -61,7 +61,7 @@ typedef enum { typedef uint8_t key_mask_t; /** - * @brief HIDD callback parameters union + * @brief HIDD callback parameters union */ typedef union { /** @@ -148,7 +148,7 @@ esp_err_t esp_hidd_profile_deinit(void); /** * * @brief Get hidd profile version - * + * * @return Most 8bit significant is Great version, Least 8bit is Sub version * */ @@ -165,4 +165,3 @@ void esp_hidd_send_mouse_value(uint16_t conn_id, uint8_t mouse_button, int8_t mi #endif #endif /* __ESP_HIDD_API_H__ */ - diff --git a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_dev.c b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_dev.c index 64352f2247..92d3572bb8 100644 --- a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_dev.c +++ b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_dev.c @@ -53,7 +53,7 @@ void hid_dev_send_report(esp_gatt_if_t gatts_if, uint16_t conn_id, ESP_LOGD(HID_LE_PRF_TAG, "%s(), send the report, handle = %d", __func__, p_rpt->handle); esp_ble_gatts_send_indicate(gatts_if, conn_id, p_rpt->handle, length, data, false); } - + return; } @@ -63,7 +63,7 @@ void hid_consumer_build_report(uint8_t *buffer, consumer_cmd_t cmd) ESP_LOGE(HID_LE_PRF_TAG, "%s(), the buffer is NULL, hid build report failed.", __func__); return; } - + switch (cmd) { case HID_CONSUMER_CHANNEL_UP: HID_CC_RPT_SET_CHANNEL(buffer, HID_CC_RPT_CHANNEL_UP); @@ -135,4 +135,3 @@ void hid_consumer_build_report(uint8_t *buffer, consumer_cmd_t cmd) return; } - diff --git a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_dev.h b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_dev.h index 9954a83449..918046e799 100644 --- a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_dev.h +++ b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_dev.h @@ -258,4 +258,3 @@ void hid_mouse_build_report(uint8_t *buffer, mouse_cmd_t cmd); #endif #endif /* HID_DEV_H__ */ - diff --git a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_device_le_prf.c b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_device_le_prf.c index 8041e7b5e6..db697b04be 100644 --- a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_device_le_prf.c +++ b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hid_device_le_prf.c @@ -813,4 +813,3 @@ static void hid_add_id_tbl(void) // Setup report ID map hid_dev_register_reports(HID_NUM_REPORTS, hid_rpt_map); } - diff --git a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hidd_le_prf_int.h b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hidd_le_prf_int.h index 89e7cc20df..7f81e3f48f 100644 --- a/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hidd_le_prf_int.h +++ b/examples/bluetooth/bluedroid/ble/ble_hid_device_demo/main/hidd_le_prf_int.h @@ -153,7 +153,7 @@ enum { HIDD_LE_IDX_REPORT_CC_IN_VAL, HIDD_LE_IDX_REPORT_CC_IN_CCC, HIDD_LE_IDX_REPORT_CC_IN_REP_REF, - + // Boot Keyboard Input Report HIDD_LE_IDX_BOOT_KB_IN_REPORT_CHAR, HIDD_LE_IDX_BOOT_KB_IN_REPORT_VAL, @@ -341,4 +341,3 @@ esp_err_t hidd_register_cb(void); #endif ///__HID_DEVICE_LE_PRF__ - diff --git a/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/CMakeLists.txt index 50293e2a7b..ce4d00817e 100644 --- a/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "esp_ibeacon_api.c" "ibeacon_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/esp_ibeacon_api.c b/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/esp_ibeacon_api.c index 248db09ee4..9be7b8097d 100644 --- a/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/esp_ibeacon_api.c +++ b/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/esp_ibeacon_api.c @@ -10,7 +10,7 @@ /**************************************************************************** * -* This file is for iBeacon APIs. It supports both iBeacon encode and decode. +* This file is for iBeacon APIs. It supports both iBeacon encode and decode. * * iBeacon is a trademark of Apple Inc. Before building devices which use iBeacon technology, * visit https://developer.apple.com/ibeacon/ to obtain a license. @@ -68,5 +68,3 @@ esp_err_t esp_ble_config_ibeacon_data (esp_ble_ibeacon_vendor_t *vendor_config, return ESP_OK; } - - diff --git a/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/esp_ibeacon_api.h b/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/esp_ibeacon_api.h index 39529f22a2..45ab2fa47a 100644 --- a/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/esp_ibeacon_api.h +++ b/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/esp_ibeacon_api.h @@ -38,8 +38,8 @@ * iBeacon data */ #define ENDIAN_CHANGE_U16(x) ((((x)&0xFF00)>>8) + (((x)&0xFF)<<8)) -/* Espressif WeChat official account can be found using WeChat "Yao Yi Yao Zhou Bian", - * if device advertises using ESP defined UUID. +/* Espressif WeChat official account can be found using WeChat "Yao Yi Yao Zhou Bian", + * if device advertises using ESP defined UUID. * Please refer to http://zb.weixin.qq.com for further information. */ #define ESP_UUID {0xFD, 0xA5, 0x06, 0x93, 0xA4, 0xE2, 0x4F, 0xB1, 0xAF, 0xCF, 0xC6, 0xEB, 0x07, 0x64, 0x78, 0x25} #define ESP_MAJOR 10167 diff --git a/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/ibeacon_demo.c b/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/ibeacon_demo.c index 7aa8ae26dc..36ea1b597b 100644 --- a/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/ibeacon_demo.c +++ b/examples/bluetooth/bluedroid/ble/ble_ibeacon/main/ibeacon_demo.c @@ -188,4 +188,3 @@ void app_main(void) } #endif } - diff --git a/examples/bluetooth/bluedroid/ble/ble_spp_client/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/ble_spp_client/main/CMakeLists.txt index 1b83a293fa..5fa00fb626 100644 --- a/examples/bluetooth/bluedroid/ble/ble_spp_client/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/ble_spp_client/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "spp_client_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/ble_spp_client/main/spp_client_demo.c b/examples/bluetooth/bluedroid/ble/ble_spp_client/main/spp_client_demo.c index 6d83a31f20..04308d4216 100644 --- a/examples/bluetooth/bluedroid/ble/ble_spp_client/main/spp_client_demo.c +++ b/examples/bluetooth/bluedroid/ble/ble_spp_client/main/spp_client_demo.c @@ -637,7 +637,7 @@ void app_main(void) ESP_LOGE(GATTC_TAG, "%s enable bluetooth failed: %s\n", __func__, esp_err_to_name(ret)); return; } - + ble_client_appRegister(); spp_uart_init(); } diff --git a/examples/bluetooth/bluedroid/ble/ble_spp_server/Makefile b/examples/bluetooth/bluedroid/ble/ble_spp_server/Makefile index 0a272359d2..b4b746ea13 100644 --- a/examples/bluetooth/bluedroid/ble/ble_spp_server/Makefile +++ b/examples/bluetooth/bluedroid/ble/ble_spp_server/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := ble_spp_server_demo COMPONENT_ADD_INCLUDEDIRS := components/include include $(IDF_PATH)/make/project.mk - diff --git a/examples/bluetooth/bluedroid/ble/ble_spp_server/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/ble_spp_server/main/CMakeLists.txt index be4f67ba8d..a4b8961bf1 100644 --- a/examples/bluetooth/bluedroid/ble/ble_spp_server/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/ble_spp_server/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "ble_spp_server_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_client/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_client/main/CMakeLists.txt index e4c37ee280..4695587a07 100644 --- a/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_client/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_client/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "example_ble_client_throughput.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_client/main/example_ble_client_throughput.c b/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_client/main/example_ble_client_throughput.c index 60a3774cc1..603d112f6e 100644 --- a/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_client/main/example_ble_client_throughput.c +++ b/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_client/main/example_ble_client_throughput.c @@ -296,7 +296,7 @@ static void gattc_profile_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_ } case ESP_GATTC_NOTIFY_EVT: { #if (CONFIG_GATTS_NOTIFY_THROUGHPUT) - if (p_data->notify.is_notify && + if (p_data->notify.is_notify && (p_data->notify.value[p_data->notify.value_len - 1] == check_sum(p_data->notify.value, p_data->notify.value_len - 1))){ notify_len += p_data->notify.value_len; @@ -308,7 +308,7 @@ static void gattc_profile_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_ start = true; break; } - + #else /* #if (CONFIG_GATTS_NOTIFY_THROUGHPUT) */ esp_log_buffer_hex(GATTC_TAG, p_data->notify.value, p_data->notify.value_len); #endif /* #if (CONFIG_GATTS_NOTIFY_THROUGHPUT) */ @@ -498,7 +498,7 @@ static void throughput_client_task(void *param) } } #endif /* #if (CONFIG_GATTS_NOTIFY_THROUGHPUT) */ -#if (CONFIG_GATTC_WRITE_THROUGHPUT) +#if (CONFIG_GATTC_WRITE_THROUGHPUT) if (!can_send_write) { int res = xSemaphoreTake(gattc_semaphore, portMAX_DELAY); assert(res == pdTRUE); @@ -586,7 +586,7 @@ void app_main(void) if (local_mtu_ret){ ESP_LOGE(GATTC_TAG, "set local MTU failed, error code = %x", local_mtu_ret); } - // The task is only created on the CPU core that Bluetooth is working on, + // The task is only created on the CPU core that Bluetooth is working on, // preventing the sending task from using the un-updated Bluetooth state on another CPU. xTaskCreatePinnedToCore(&throughput_client_task, "throughput_client_task", 4096, NULL, 10, NULL, BLUETOOTH_TASK_PINNED_TO_CORE); @@ -598,4 +598,3 @@ void app_main(void) } #endif /* #if (CONFIG_GATTC_WRITE_THROUGHPUT) */ } - diff --git a/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/CMakeLists.txt index c54e45c928..419488adc3 100644 --- a/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "example_ble_server_throughput.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/Kconfig b/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/Kconfig index a5e9a858ab..11d9c1c17d 100644 --- a/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/Kconfig +++ b/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/Kconfig @@ -23,5 +23,3 @@ menu "Example 'GATT SERVER THROUGHPUT' Config" If this config item is set, then the 'EXAMPLE_GATTS_NOTIFY_THROUGHPUT' config should be close, it can't test both write or notify at the same time at this demo endmenu - - diff --git a/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/example_ble_server_throughput.c b/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/example_ble_server_throughput.c index 5b75ca0fe0..dd7ba2cc66 100644 --- a/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/example_ble_server_throughput.c +++ b/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/example_ble_server_throughput.c @@ -288,7 +288,7 @@ void example_write_event_env(esp_gatt_if_t gatts_if, prepare_type_env_t *prepare status = ESP_GATT_NO_RESOURCES; } } else { - if(param->write.offset > PREPARE_BUF_MAX_SIZE || + if(param->write.offset > PREPARE_BUF_MAX_SIZE || prepare_write_env->prepare_len > param->write.offset) { status = ESP_GATT_INVALID_OFFSET; } else if ((param->write.offset + param->write.len) > PREPARE_BUF_MAX_SIZE) { @@ -303,7 +303,7 @@ void example_write_event_env(esp_gatt_if_t gatts_if, prepare_type_env_t *prepare gatt_rsp->attr_value.auth_req = ESP_GATT_AUTH_REQ_NONE; memcpy(gatt_rsp->attr_value.value, param->write.value, param->write.len); esp_err_t response_err = esp_ble_gatts_send_response(gatts_if, param->write.conn_id, param->write.trans_id, status, gatt_rsp); - + if (response_err != ESP_OK) { ESP_LOGE(GATTS_TAG, "Send response error\n"); } @@ -400,7 +400,7 @@ static void gatts_profile_a_event_handler(esp_gatts_cb_event_t event, esp_gatt_i uint16_t descr_value = param->write.value[1]<<8 | param->write.value[0]; if (descr_value == 0x0001){ if (a_property & ESP_GATT_CHAR_PROP_BIT_NOTIFY){ - + ESP_LOGI(GATTS_TAG, "notify enable"); can_send_notify = true; xSemaphoreGive(gatts_semaphore); @@ -437,7 +437,7 @@ static void gatts_profile_a_event_handler(esp_gatts_cb_event_t event, esp_gatt_i #if (CONFIG_EXAMPLE_GATTC_WRITE_THROUGHPUT) if (param->write.handle == gl_profile_tab[PROFILE_A_APP_ID].char_handle) { // The last value byte is the checksum data, should used to check the data is received corrected or not. - if (param->write.value[param->write.len - 1] == + if (param->write.value[param->write.len - 1] == check_sum(param->write.value, param->write.len - 1)) { write_len += param->write.len; } @@ -618,7 +618,7 @@ void throughput_server_task(void *param) #endif /* #if (CONFIG_EXAMPLE_GATTS_NOTIFY_THROUGHPUT) */ while(1) { -#if (CONFIG_EXAMPLE_GATTS_NOTIFY_THROUGHPUT) +#if (CONFIG_EXAMPLE_GATTS_NOTIFY_THROUGHPUT) if (!can_send_notify) { int res = xSemaphoreTake(gatts_semaphore, portMAX_DELAY); assert(res == pdTRUE); @@ -706,12 +706,12 @@ void app_main(void) ESP_LOGE(GATTS_TAG, "gatts app register error, error code = %x", ret); return; } - + esp_err_t local_mtu_ret = esp_ble_gatt_set_local_mtu(517); if (local_mtu_ret){ ESP_LOGE(GATTS_TAG, "set local MTU failed, error code = %x", local_mtu_ret); } - // The task is only created on the CPU core that Bluetooth is working on, + // The task is only created on the CPU core that Bluetooth is working on, // preventing the sending task from using the un-updated Bluetooth state on another CPU. xTaskCreatePinnedToCore(&throughput_server_task, "throughput_server_task", 4096, NULL, 15, NULL, BLUETOOTH_TASK_PINNED_TO_CORE); #if (CONFIG_EXAMPLE_GATTS_NOTIFY_THROUGHPUT) diff --git a/examples/bluetooth/bluedroid/ble/blufi/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/blufi/main/CMakeLists.txt index 8e40bfbf2f..e4bc55caf1 100644 --- a/examples/bluetooth/bluedroid/ble/blufi/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/blufi/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "blufi_example_main.c" "blufi_security.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/blufi/main/blufi_example.h b/examples/bluetooth/bluedroid/ble/blufi/main/blufi_example.h index 955e238c73..3a1c72a1df 100644 --- a/examples/bluetooth/bluedroid/ble/blufi/main/blufi_example.h +++ b/examples/bluetooth/bluedroid/ble/blufi/main/blufi_example.h @@ -1,8 +1,8 @@ #pragma once #define BLUFI_EXAMPLE_TAG "BLUFI_EXAMPLE" -#define BLUFI_INFO(fmt, ...) ESP_LOGI(BLUFI_EXAMPLE_TAG, fmt, ##__VA_ARGS__) -#define BLUFI_ERROR(fmt, ...) ESP_LOGE(BLUFI_EXAMPLE_TAG, fmt, ##__VA_ARGS__) +#define BLUFI_INFO(fmt, ...) ESP_LOGI(BLUFI_EXAMPLE_TAG, fmt, ##__VA_ARGS__) +#define BLUFI_ERROR(fmt, ...) ESP_LOGE(BLUFI_EXAMPLE_TAG, fmt, ##__VA_ARGS__) void blufi_dh_negotiate_data_handler(uint8_t *data, int len, uint8_t **output_data, int *output_len, bool *need_free); int blufi_aes_encrypt(uint8_t iv8, uint8_t *crypt_data, int crypt_len); diff --git a/examples/bluetooth/bluedroid/ble/blufi/main/blufi_example_main.c b/examples/bluetooth/bluedroid/ble/blufi/main/blufi_example_main.c index c25e5c2fdb..1cbf25f5c5 100644 --- a/examples/bluetooth/bluedroid/ble/blufi/main/blufi_example_main.c +++ b/examples/bluetooth/bluedroid/ble/blufi/main/blufi_example_main.c @@ -9,7 +9,7 @@ /**************************************************************************** * This is a demo for bluetooth config wifi connection to ap. You can config ESP32 to connect a softap -* or config ESP32 as a softap to be connected by other device. APP can be downloaded from github +* or config ESP32 as a softap to be connected by other device. APP can be downloaded from github * android source code: https://github.com/EspressifApp/EspBlufi * iOS source code: https://github.com/EspressifApp/EspBlufiForiOS ****************************************************************************/ @@ -141,7 +141,7 @@ static void wifi_event_handler(void* arg, esp_event_base_t event_base, memcpy(gl_sta_bssid, event->bssid, 6); memcpy(gl_sta_ssid, event->ssid, event->ssid_len); gl_sta_ssid_len = event->ssid_len; - break; + break; case WIFI_EVENT_STA_DISCONNECTED: /* This is a workaround as ESP32 WiFi libs don't currently auto-reassociate. */ @@ -157,7 +157,7 @@ static void wifi_event_handler(void* arg, esp_event_base_t event_base, /* TODO: get config or information of softap, then set to report extra_info */ if (ble_is_connected == true) { - if (gl_sta_connected) { + if (gl_sta_connected) { esp_blufi_send_wifi_conn_report(mode, ESP_BLUFI_STA_CONN_SUCCESS, 0, NULL); } else { esp_blufi_send_wifi_conn_report(mode, ESP_BLUFI_STA_CONN_FAIL, 0, NULL); @@ -192,7 +192,7 @@ static void wifi_event_handler(void* arg, esp_event_base_t event_base, blufi_ap_list[i].rssi = ap_list[i].rssi; memcpy(blufi_ap_list[i].ssid, ap_list[i].ssid, sizeof(ap_list[i].ssid)); } - + if (ble_is_connected == true) { esp_blufi_send_wifi_list(apCount, blufi_ap_list); } else { @@ -288,7 +288,7 @@ static void example_event_callback(esp_blufi_cb_event_t event, esp_blufi_cb_para esp_wifi_get_mode(&mode); - if (gl_sta_connected) { + if (gl_sta_connected) { memset(&info, 0, sizeof(esp_blufi_extra_info_t)); memcpy(info.sta_bssid, gl_sta_bssid, 6); info.sta_bssid_set = true; diff --git a/examples/bluetooth/bluedroid/ble/gatt_client/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/gatt_client/main/CMakeLists.txt index 82a30b2f71..e3ddd8400d 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_client/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/gatt_client/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "gattc_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/gatt_client/main/gattc_demo.c b/examples/bluetooth/bluedroid/ble/gatt_client/main/gattc_demo.c index e53d85d338..d1d03a80d4 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_client/main/gattc_demo.c +++ b/examples/bluetooth/bluedroid/ble/gatt_client/main/gattc_demo.c @@ -497,4 +497,3 @@ void app_main(void) } } - diff --git a/examples/bluetooth/bluedroid/ble/gatt_security_client/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/gatt_security_client/main/CMakeLists.txt index 691e1edd29..9101064d3d 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_security_client/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/gatt_security_client/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "example_ble_sec_gattc_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/gatt_security_client/main/example_ble_sec_gattc_demo.c b/examples/bluetooth/bluedroid/ble/gatt_security_client/main/example_ble_sec_gattc_demo.c index 365fb40d8d..0be91b55b8 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_security_client/main/example_ble_sec_gattc_demo.c +++ b/examples/bluetooth/bluedroid/ble/gatt_security_client/main/example_ble_sec_gattc_demo.c @@ -430,7 +430,7 @@ static void esp_gap_cb(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *par if (!param->ble_security.auth_cmpl.success) { ESP_LOGI(GATTC_TAG, "fail reason = 0x%x",param->ble_security.auth_cmpl.fail_reason); } else { - ESP_LOGI(GATTC_TAG, "auth mode = %s",esp_auth_req_to_str(param->ble_security.auth_cmpl.auth_mode)); + ESP_LOGI(GATTC_TAG, "auth mode = %s",esp_auth_req_to_str(param->ble_security.auth_cmpl.auth_mode)); } break; } @@ -589,4 +589,3 @@ void app_main(void) esp_ble_gap_set_security_param(ESP_BLE_SM_SET_RSP_KEY, &rsp_key, sizeof(uint8_t)); } - diff --git a/examples/bluetooth/bluedroid/ble/gatt_security_server/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/gatt_security_server/main/CMakeLists.txt index 6514591112..f890f38d40 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_security_server/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/gatt_security_server/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "example_ble_sec_gatts_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/gatt_security_server/main/component.mk b/examples/bluetooth/bluedroid/ble/gatt_security_server/main/component.mk index f2f38c36c0..ab30be48c7 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_security_server/main/component.mk +++ b/examples/bluetooth/bluedroid/ble/gatt_security_server/main/component.mk @@ -1,9 +1,8 @@ # # Main Makefile. This is basically the same as a component makefile. # -# This Makefile should, at the very least, just include $(SDK_PATH)/make/component_common.mk. By default, -# this will take the sources in the src/ directory, compile them and link them into +# This Makefile should, at the very least, just include $(SDK_PATH)/make/component_common.mk. By default, +# this will take the sources in the src/ directory, compile them and link them into # lib(subdirectory_name).a in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # - diff --git a/examples/bluetooth/bluedroid/ble/gatt_security_server/main/example_ble_sec_gatts_demo.c b/examples/bluetooth/bluedroid/ble/gatt_security_server/main/example_ble_sec_gatts_demo.c index 6cbfb71820..b11aa439f4 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_security_server/main/example_ble_sec_gatts_demo.c +++ b/examples/bluetooth/bluedroid/ble/gatt_security_server/main/example_ble_sec_gatts_demo.c @@ -581,6 +581,3 @@ void app_main(void) * remove_all_bonded_devices(); */ } - - - diff --git a/examples/bluetooth/bluedroid/ble/gatt_server/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/gatt_server/main/CMakeLists.txt index e950c9ecd0..379d4659ab 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_server/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/gatt_server/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "gatts_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/gatt_server_service_table/Makefile b/examples/bluetooth/bluedroid/ble/gatt_server_service_table/Makefile index 2ff9c6eaee..1429333348 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_server_service_table/Makefile +++ b/examples/bluetooth/bluedroid/ble/gatt_server_service_table/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := gatt_server_service_table_demo COMPONENT_ADD_INCLUDEDIRS := components/include include $(IDF_PATH)/make/project.mk - diff --git a/examples/bluetooth/bluedroid/ble/gatt_server_service_table/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/gatt_server_service_table/main/CMakeLists.txt index fbe553576b..c0a6838afc 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_server_service_table/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/gatt_server_service_table/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "gatts_table_creat_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/gatt_server_service_table/main/gatts_table_creat_demo.c b/examples/bluetooth/bluedroid/ble/gatt_server_service_table/main/gatts_table_creat_demo.c index b6a9abffaf..ceaffd30e9 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_server_service_table/main/gatts_table_creat_demo.c +++ b/examples/bluetooth/bluedroid/ble/gatt_server_service_table/main/gatts_table_creat_demo.c @@ -40,7 +40,7 @@ #define SVC_INST_ID 0 /* The max length of characteristic value. When the GATT client performs a write or prepare write operation, -* the data length must be less than GATTS_DEMO_CHAR_VAL_LEN_MAX. +* the data length must be less than GATTS_DEMO_CHAR_VAL_LEN_MAX. */ #define GATTS_DEMO_CHAR_VAL_LEN_MAX 500 #define PREPARE_BUF_MAX_SIZE 1024 @@ -425,8 +425,8 @@ static void gatts_profile_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_ example_prepare_write_event_env(gatts_if, &prepare_write_env, param); } break; - case ESP_GATTS_EXEC_WRITE_EVT: - // the length of gattc prepare write data must be less than GATTS_DEMO_CHAR_VAL_LEN_MAX. + case ESP_GATTS_EXEC_WRITE_EVT: + // the length of gattc prepare write data must be less than GATTS_DEMO_CHAR_VAL_LEN_MAX. ESP_LOGI(GATTS_TABLE_TAG, "ESP_GATTS_EXEC_WRITE_EVT"); example_exec_write_event_env(&prepare_write_env, param); break; diff --git a/examples/bluetooth/bluedroid/ble/gattc_multi_connect/main/CMakeLists.txt b/examples/bluetooth/bluedroid/ble/gattc_multi_connect/main/CMakeLists.txt index 826febe746..5dc7d966cd 100644 --- a/examples/bluetooth/bluedroid/ble/gattc_multi_connect/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/ble/gattc_multi_connect/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "gattc_multi_connect.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/ble/gattc_multi_connect/main/gattc_multi_connect.c b/examples/bluetooth/bluedroid/ble/gattc_multi_connect/main/gattc_multi_connect.c index 175c0f98e6..a3c94200a7 100644 --- a/examples/bluetooth/bluedroid/ble/gattc_multi_connect/main/gattc_multi_connect.c +++ b/examples/bluetooth/bluedroid/ble/gattc_multi_connect/main/gattc_multi_connect.c @@ -957,4 +957,3 @@ void app_main(void) } - diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/Makefile b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/Makefile index 2db03bb7b7..eb53ecc8e7 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/Makefile +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := a2dp_sink include $(IDF_PATH)/make/project.mk - diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/CMakeLists.txt b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/CMakeLists.txt index 55f2d445aa..c34ea69578 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/CMakeLists.txt @@ -1,4 +1,4 @@ idf_component_register(SRCS "bt_app_av.c" "bt_app_core.c" "main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/bt_app_core.c b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/bt_app_core.c index 7dee9e7f40..559402cc3e 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/bt_app_core.c +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/bt_app_core.c @@ -163,4 +163,4 @@ size_t write_ringbuf(const uint8_t *data, size_t size) } else { return 0; } -} \ No newline at end of file +} diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/component.mk b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/component.mk +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/Makefile b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/Makefile index 62e30c0372..ced08806b4 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/Makefile +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := a2dp_source include $(IDF_PATH)/make/project.mk - diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/CMakeLists.txt b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/CMakeLists.txt index d0a3885ddb..9ec92bc110 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "bt_app_core.c" "main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/component.mk b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/component.mk +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/main.c b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/main.c index 63cd07785d..28d197c2a7 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_source/main/main.c @@ -695,4 +695,4 @@ static void bt_av_hdl_avrc_ct_evt(uint16_t event, void *p_param) ESP_LOGE(BT_RC_CT_TAG, "%s unhandled evt %d", __func__, event); break; } -} \ No newline at end of file +} diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_discovery/Makefile b/examples/bluetooth/bluedroid/classic_bt/bt_discovery/Makefile index 37e3abec5f..7504cfad69 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_discovery/Makefile +++ b/examples/bluetooth/bluedroid/classic_bt/bt_discovery/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := bt_discovery include $(IDF_PATH)/make/project.mk - diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_discovery/main/CMakeLists.txt b/examples/bluetooth/bluedroid/classic_bt/bt_discovery/main/CMakeLists.txt index 4bc23a96f4..45a1c91d24 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_discovery/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/classic_bt/bt_discovery/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "bt_discovery.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_discovery/main/component.mk b/examples/bluetooth/bluedroid/classic_bt/bt_discovery/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_discovery/main/component.mk +++ b/examples/bluetooth/bluedroid/classic_bt/bt_discovery/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/CMakeLists.txt b/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/CMakeLists.txt index a71f85ba7c..e75017250b 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "example_spp_acceptor_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/example_spp_acceptor_demo.c b/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/example_spp_acceptor_demo.c index 4abe7d5154..ef4540ab67 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/example_spp_acceptor_demo.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_acceptor/main/example_spp_acceptor_demo.c @@ -226,4 +226,3 @@ void app_main(void) esp_bt_pin_code_t pin_code; esp_bt_gap_set_pin(pin_type, 0, pin_code); } - diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/CMakeLists.txt b/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/CMakeLists.txt index 09a976ad1c..956e6c297f 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "example_spp_initiator_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/example_spp_initiator_demo.c b/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/example_spp_initiator_demo.c index 44c06541dd..1875d551e0 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/example_spp_initiator_demo.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/example_spp_initiator_demo.c @@ -308,4 +308,3 @@ void app_main(void) esp_bt_pin_code_t pin_code; esp_bt_gap_set_pin(pin_type, 0, pin_code); } - diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/CMakeLists.txt b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/CMakeLists.txt index 369e404a15..cb65049dfe 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "example_spp_vfs_acceptor_demo.c" "spp_task.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/example_spp_vfs_acceptor_demo.c b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/example_spp_vfs_acceptor_demo.c index 265d304f29..fffcd62de0 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/example_spp_vfs_acceptor_demo.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/example_spp_vfs_acceptor_demo.c @@ -230,4 +230,3 @@ void app_main(void) esp_bt_pin_code_t pin_code; esp_bt_gap_set_pin(pin_type, 0, pin_code); } - diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/spp_task.c b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/spp_task.c index a82ca19186..c3ca30db66 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/spp_task.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/spp_task.c @@ -125,4 +125,4 @@ void spp_wr_task_start_up(spp_wr_task_cb_t p_cback, int fd) void spp_wr_task_shut_down(void) { vTaskDelete(NULL); -} \ No newline at end of file +} diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/spp_task.h b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/spp_task.h index 512773ecbe..6ac091111d 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/spp_task.h +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_acceptor/main/spp_task.h @@ -60,4 +60,4 @@ void spp_wr_task_start_up(spp_wr_task_cb_t p_cback, int fd); void spp_wr_task_shut_down(void); -#endif ///__SPP_TASK_H__ \ No newline at end of file +#endif ///__SPP_TASK_H__ diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/CMakeLists.txt b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/CMakeLists.txt index 03781e4786..e853defaa2 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "example_spp_vfs_initiator_demo.c" "spp_task.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/example_spp_vfs_initiator_demo.c b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/example_spp_vfs_initiator_demo.c index 562ffdd237..cb47d1dbd3 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/example_spp_vfs_initiator_demo.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/example_spp_vfs_initiator_demo.c @@ -297,4 +297,3 @@ void app_main(void) esp_bt_pin_code_t pin_code; esp_bt_gap_set_pin(pin_type, 0, pin_code); } - diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/spp_task.c b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/spp_task.c index a82ca19186..c3ca30db66 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/spp_task.c +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/spp_task.c @@ -125,4 +125,4 @@ void spp_wr_task_start_up(spp_wr_task_cb_t p_cback, int fd) void spp_wr_task_shut_down(void) { vTaskDelete(NULL); -} \ No newline at end of file +} diff --git a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/spp_task.h b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/spp_task.h index 512773ecbe..6ac091111d 100644 --- a/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/spp_task.h +++ b/examples/bluetooth/bluedroid/classic_bt/bt_spp_vfs_initiator/main/spp_task.h @@ -60,4 +60,4 @@ void spp_wr_task_start_up(spp_wr_task_cb_t p_cback, int fd); void spp_wr_task_shut_down(void); -#endif ///__SPP_TASK_H__ \ No newline at end of file +#endif ///__SPP_TASK_H__ diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/Makefile b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/Makefile index b539a2d52b..7615e4f705 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/Makefile +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := hfp_ag include $(IDF_PATH)/make/project.mk - diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/CMakeLists.txt b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/CMakeLists.txt index eff055634e..9ec58efb3f 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/CMakeLists.txt @@ -5,4 +5,4 @@ idf_component_register(SRCS "app_hf_msg_prs.c" "console_uart.c" "gpio_pcm_config.c" "main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/app_hf_msg_prs.c b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/app_hf_msg_prs.c index 2610bf2398..22b71a0fd0 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/app_hf_msg_prs.c +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/app_hf_msg_prs.c @@ -39,9 +39,9 @@ void hf_msg_parser_register_callback(hf_msg_prs_cb_t *prs, hf_msg_callback cb) hf_msg_prs_err_t hf_msg_parse(char c, hf_msg_prs_cb_t *prs) { hf_msg_prs_err_t err = HF_MSG_PRS_ERR_IN_PROGRESS; - switch (prs->state) + switch (prs->state) { - case HF_MSG_PRS_IDLE: + case HF_MSG_PRS_IDLE: { if (c == hf_msg_hdr[0]) { prs->state = HF_MSG_PRS_HDR; @@ -53,8 +53,8 @@ hf_msg_prs_err_t hf_msg_parse(char c, hf_msg_prs_cb_t *prs) } } break; - - case HF_MSG_PRS_HDR: + + case HF_MSG_PRS_HDR: { if (c == hf_msg_hdr[prs->h_idx]) { prs->buf[prs->cnt++] = c; @@ -68,8 +68,8 @@ hf_msg_prs_err_t hf_msg_parse(char c, hf_msg_prs_cb_t *prs) } } break; - - case HF_MSG_PRS_PAYL: + + case HF_MSG_PRS_PAYL: { prs->buf[prs->cnt++] = c; if (c == hf_msg_tail[prs->t_idx]) { diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/app_hf_msg_prs.h b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/app_hf_msg_prs.h index 131a7a5418..96544beb19 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/app_hf_msg_prs.h +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/app_hf_msg_prs.h @@ -45,4 +45,3 @@ hf_msg_prs_err_t hf_msg_parse(char c, hf_msg_prs_cb_t *prs); void hf_msg_show_usage(void); #endif /* __APP_HF_MSG_PRS_H__*/ - diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/bt_app_hf.c b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/bt_app_hf.c index 30bdb9f9e7..658a992477 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/bt_app_hf.c +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/bt_app_hf.c @@ -307,4 +307,4 @@ void bt_app_hf_cb(esp_hf_cb_event_t event, esp_hf_cb_param_t *param) ESP_LOGI(BT_HF_TAG, "Unsupported HF_AG EVT: %d.", event); break; } -} \ No newline at end of file +} diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/bt_app_hf.h b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/bt_app_hf.h index e341d0f687..e4844316d3 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/bt_app_hf.h +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/bt_app_hf.h @@ -24,4 +24,3 @@ void bt_app_hf_cb(esp_hf_cb_event_t event, esp_hf_cb_param_t *param); #endif /* __BT_APP_HF_H__*/ - \ No newline at end of file diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/component.mk b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/component.mk +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/main.c b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/main.c index 91c99ca31a..0468761903 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/main.c @@ -46,7 +46,7 @@ static void bt_hf_hdl_stack_evt(uint16_t event, void *p_param) esp_bt_dev_set_device_name(dev_name); esp_bt_hf_register_callback(bt_app_hf_cb); - + // init and register for HFP_AG functions esp_bt_hf_init(hf_peer_addr); @@ -118,4 +118,4 @@ void app_main(void) #if ACOUSTIC_ECHO_CANCELLATION_ENABLE app_gpio_aec_io_cfg(); #endif /* ACOUSTIC_ECHO_CANCELLATION_ENABLE */ -} \ No newline at end of file +} diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/sdkconfig.defaults b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/sdkconfig.defaults index 0229678ea2..c7f714a012 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_ag/sdkconfig.defaults +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_ag/sdkconfig.defaults @@ -6,4 +6,4 @@ CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=y CONFIG_BT_BLUEDROID_ENABLED=y CONFIG_BT_CLASSIC_ENABLED=y CONFIG_BT_HFP_ENABLE=y -CONFIG_BT_HFP_AG_ENABLE=y \ No newline at end of file +CONFIG_BT_HFP_AG_ENABLE=y diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/Makefile b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/Makefile index 2813a67d7f..e1697d0f23 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/Makefile +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := hfp_hf include $(IDF_PATH)/make/project.mk - diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/CMakeLists.txt b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/CMakeLists.txt index eff055634e..9ec58efb3f 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/CMakeLists.txt @@ -5,4 +5,4 @@ idf_component_register(SRCS "app_hf_msg_prs.c" "console_uart.c" "gpio_pcm_config.c" "main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/app_hf_msg_prs.c b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/app_hf_msg_prs.c index a69100eace..9dec89209c 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/app_hf_msg_prs.c +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/app_hf_msg_prs.c @@ -40,7 +40,7 @@ void hf_msg_parser_register_callback(hf_msg_prs_cb_t *prs, hf_msg_callback cb) { hf_msg_prs_err_t err = HF_MSG_PRS_ERR_IN_PROGRESS; switch (prs->state) { - case HF_MSG_PRS_IDLE: + case HF_MSG_PRS_IDLE: { if (c == hf_msg_hdr[0]) { prs->state = HF_MSG_PRS_HDR; @@ -67,8 +67,8 @@ void hf_msg_parser_register_callback(hf_msg_prs_cb_t *prs, hf_msg_callback cb) } break; } - - case HF_MSG_PRS_PAYL: + + case HF_MSG_PRS_PAYL: { prs->buf[prs->cnt++] = c; if (c == hf_msg_tail[prs->t_idx]) { diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/app_hf_msg_prs.h b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/app_hf_msg_prs.h index 131a7a5418..96544beb19 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/app_hf_msg_prs.h +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/app_hf_msg_prs.h @@ -45,4 +45,3 @@ hf_msg_prs_err_t hf_msg_parse(char c, hf_msg_prs_cb_t *prs); void hf_msg_show_usage(void); #endif /* __APP_HF_MSG_PRS_H__*/ - diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/bt_app_core.c b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/bt_app_core.c index 8e30c53506..a809b45a01 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/bt_app_core.c +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/bt_app_core.c @@ -83,7 +83,7 @@ static void bt_app_task_handler(void *arg) bt_app_work_dispatched(&msg); break; } - + default: ESP_LOGW(BT_APP_CORE_TAG, "%s, unhandled sig: %d", __func__, msg.sig); break; diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/component.mk b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/component.mk index 088dacf503..96aff69d29 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/component.mk +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding include to include path.) - diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/main.c b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/main.c index cc23d1d992..272caa6ceb 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/main/main.c @@ -106,7 +106,7 @@ static void bt_hf_client_hdl_stack_evt(uint16_t event, void *p_param) pin_code[2] = '0'; pin_code[3] = '0'; esp_bt_gap_set_pin(pin_type, 4, pin_code); - + /* set discoverable and connectable mode, wait to be connected */ esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); break; diff --git a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/sdkconfig.defaults b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/sdkconfig.defaults index 115339e254..e9b56e3807 100644 --- a/examples/bluetooth/bluedroid/classic_bt/hfp_hf/sdkconfig.defaults +++ b/examples/bluetooth/bluedroid/classic_bt/hfp_hf/sdkconfig.defaults @@ -6,4 +6,4 @@ CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=y CONFIG_BT_BLUEDROID_ENABLED=y CONFIG_BT_CLASSIC_ENABLED=y CONFIG_BT_HFP_ENABLE=y -CONFIG_BT_HFP_CLIENT_ENABLE=y \ No newline at end of file +CONFIG_BT_HFP_CLIENT_ENABLE=y diff --git a/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/Makefile b/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/Makefile index 4c3cfbe06a..295e640477 100644 --- a/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/Makefile +++ b/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := bt_ble_coex include $(IDF_PATH)/make/project.mk - diff --git a/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/CMakeLists.txt b/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/CMakeLists.txt index d1d916efbd..c34ea69578 100644 --- a/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/CMakeLists.txt @@ -2,4 +2,3 @@ idf_component_register(SRCS "bt_app_av.c" "bt_app_core.c" "main.c" INCLUDE_DIRS ".") - diff --git a/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/bt_app_core.c b/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/bt_app_core.c index 7dee9e7f40..559402cc3e 100644 --- a/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/bt_app_core.c +++ b/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/bt_app_core.c @@ -163,4 +163,4 @@ size_t write_ringbuf(const uint8_t *data, size_t size) } else { return 0; } -} \ No newline at end of file +} diff --git a/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/component.mk b/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/component.mk +++ b/examples/bluetooth/bluedroid/coex/a2dp_gatts_coex/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/bluetooth/bluedroid/coex/gattc_gatts_coex/main/CMakeLists.txt b/examples/bluetooth/bluedroid/coex/gattc_gatts_coex/main/CMakeLists.txt index f0c3ba9036..912d96da7b 100644 --- a/examples/bluetooth/bluedroid/coex/gattc_gatts_coex/main/CMakeLists.txt +++ b/examples/bluetooth/bluedroid/coex/gattc_gatts_coex/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "gattc_gatts_coex.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/bluedroid/coex/gattc_gatts_coex/main/gattc_gatts_coex.c b/examples/bluetooth/bluedroid/coex/gattc_gatts_coex/main/gattc_gatts_coex.c index 00172ebd9b..def836866f 100644 --- a/examples/bluetooth/bluedroid/coex/gattc_gatts_coex/main/gattc_gatts_coex.c +++ b/examples/bluetooth/bluedroid/coex/gattc_gatts_coex/main/gattc_gatts_coex.c @@ -46,7 +46,7 @@ #define GATTS_PROFILE_B_APP_ID 1 #define GATTC_PROFILE_NUM 1 #define GATTC_PROFILE_C_APP_ID 0 -// gattc +// gattc #define REMOTE_SERVICE_UUID 0x00FF #define REMOTE_NOTIFY_CHAR_UUID 0xFF01 #define INVALID_HANDLE 0 @@ -89,7 +89,7 @@ struct gattc_profile_inst { esp_bd_addr_t remote_bda; }; -///Declare the static function +///Declare the static function static void gatts_profile_a_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param); static void gatts_profile_b_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param); /* Declare static functions */ @@ -130,8 +130,8 @@ static esp_ble_adv_data_t adv_data = { .min_interval = 0x20, .max_interval = 0x40, .appearance = 0x00, - .manufacturer_len = 0, - .p_manufacturer_data = NULL, + .manufacturer_len = 0, + .p_manufacturer_data = NULL, .service_data_len = 0, .p_service_data = NULL, .service_uuid_len = 32, @@ -147,8 +147,8 @@ static esp_ble_adv_data_t scan_rsp_data = { .min_interval = 0x0006, .max_interval = 0x0010, .appearance = 0x00, - .manufacturer_len = 0, - .p_manufacturer_data = NULL, + .manufacturer_len = 0, + .p_manufacturer_data = NULL, .service_data_len = 0, .p_service_data = NULL, .service_uuid_len = 0, @@ -723,7 +723,7 @@ static void gatts_profile_a_event_handler(esp_gatts_cb_event_t event, esp_gatt_i param->start.status, param->start.service_handle); break; case ESP_GATTS_CONNECT_EVT: { - + ESP_LOGI(COEX_TAG, "ESP_GATTS_CONNECT_EVT, conn_id %d, remote %02x:%02x:%02x:%02x:%02x:%02x\n", param->connect.conn_id, param->connect.remote_bda[0], param->connect.remote_bda[1], param->connect.remote_bda[2], @@ -1025,4 +1025,3 @@ void app_main(void) return; } - diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/ble_unit.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/ble_unit.h index 93272a91f2..809f4d30ec 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/ble_unit.h +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/ble_unit.h @@ -54,4 +54,4 @@ esp_err_t ble_gap_util_stop_scan(void); esp_err_t init_ble_gap_test_util(void); -#endif /* _BLE_UNIT_H_ */ \ No newline at end of file +#endif /* _BLE_UNIT_H_ */ diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/run_tc.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/run_tc.c index 9f243dce71..4a772ac1e9 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/run_tc.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/run_tc.c @@ -283,9 +283,3 @@ void run_tc_init(void) } xTaskCreatePinnedToCore(run_task, "run_task", 4096, tc_case, RUN_TASK_PRIORITY, NULL, 0); } - - - - - - diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/run_tc.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/run_tc.h index 1e82df683b..2940b1c2f2 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/run_tc.h +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/run_tc.h @@ -53,4 +53,4 @@ extern xQueueHandle xTaskQueue ; void run_tc_init(void); -#endif /* __RUN_TC_H__ */ \ No newline at end of file +#endif /* __RUN_TC_H__ */ diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/sync.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/sync.h index ad9df667d9..fbeb469525 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/sync.h +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/sync.h @@ -119,4 +119,4 @@ struct sync_t sync_obj; extern SemaphoreHandle_t client_mutex; void sync_init(void); -#endif \ No newline at end of file +#endif diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/test_env.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/test_env.c index c843598fd1..deaa086fe5 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/test_env.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/test_env.c @@ -125,4 +125,3 @@ bool coex_env_str_to_mac(uint8_t *str, uint8_t *dest) return true; } - diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/wifi_unit.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/wifi_unit.c index 41f9986004..7c3ddd8b4b 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/wifi_unit.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/wifi_unit.c @@ -184,4 +184,4 @@ void wifi_util_init(void) ESP_ERROR_CHECK(nvs_flash_init()); ESP_ERROR_CHECK(esp_netif_init()); ESP_ERROR_CHECK(esp_event_loop_create_default()); -} \ No newline at end of file +} diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/wifi_unit.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/wifi_unit.h index d0b664c709..bc15759a69 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/wifi_unit.h +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/components/case/wifi_unit.h @@ -35,4 +35,4 @@ esp_err_t wifi_unit_server_establish(int *socket_id, const char *port); esp_err_t wifi_unit_tcp_recv(int socket_id, const char *duration, uint32_t user_date[]); esp_err_t wifi_util_tcp_send(int socket_id, uint32_t len, uint32_t delay, uint32_t *sent_len, uint32_t timeout); -#endif /* _WIFI_UNIT_H */ \ No newline at end of file +#endif /* _WIFI_UNIT_H */ diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/CMakeLists.txt index cf4489a446..db5b9da87e 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "main.c" "coex_cmd.c" INCLUDE_DIRS "." - REQUIRED_IDF_TARGETS esp32) \ No newline at end of file + REQUIRED_IDF_TARGETS esp32) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/Kconfig.projbuild b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/Kconfig.projbuild index ac52aa2a7a..cf4ef2778c 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/Kconfig.projbuild +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/Kconfig.projbuild @@ -67,4 +67,4 @@ menu "Example Configuration" Can be left blank if the network has no security set. The length cannot exceed 20 bytes. -endmenu #"Example Configuration End" \ No newline at end of file +endmenu #"Example Configuration End" diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/coex_cmd.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/coex_cmd.c index 5df2616da5..cc5127c1d0 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/coex_cmd.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/coex_cmd.c @@ -111,7 +111,7 @@ static int process_get_mac_addr_cmd(int argc, char **argv) if (mac != NULL) { ESP_LOGI(TAG_CNSL, "+BTMAC:"MACSTR"\n", MAC2STR(mac)); - } + } return 0; } void register_coex_cmd(void) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/component.mk b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/component.mk index d68c5375e9..513091d975 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/component.mk +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_coex_test/main/component.mk @@ -2,4 +2,4 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) -# \ No newline at end of file +# diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_lib.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_lib.c index 7efe28c414..b38c7131b1 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_lib.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_lib.c @@ -129,4 +129,4 @@ bool str_2_mac(uint8_t *str, uint8_t *dest) } return true; -} \ No newline at end of file +} diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_lib.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_lib.h index f0e2e77c97..8c1ee3635b 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_lib.h +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_lib.h @@ -28,4 +28,4 @@ bool str_2_mac(uint8_t *str, uint8_t *dest); int hexstr_2_bin(const char *hex, uint8_t *buf, uint32_t len); int get_value_string(char *value_in, char *buf); -#endif //_BLE_MESH_CONSOLE_LIB_H_ \ No newline at end of file +#endif //_BLE_MESH_CONSOLE_LIB_H_ diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_main.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_main.c index 2fab8120e3..df1ac6316a 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_main.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_main.c @@ -116,4 +116,4 @@ void app_main(void) // start console REPL ESP_ERROR_CHECK(esp_console_start_repl(repl)); -} \ No newline at end of file +} diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_system.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_system.c index 88c0a6a0a9..1c51cf894d 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_system.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_console_system.c @@ -179,5 +179,3 @@ static void register_make(void) }; ESP_ERROR_CHECK( esp_console_cmd_register(&cmd) ); } - - diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_reg_cfg_client_cmd.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_reg_cfg_client_cmd.c index d0b35c5a32..66c03a6edb 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_reg_cfg_client_cmd.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_reg_cfg_client_cmd.c @@ -74,7 +74,7 @@ void ble_mesh_configuration_client_model_cb(esp_ble_mesh_cfg_client_cb_event_t e } else { ESP_LOGI(TAG, "CfgClient:PublishGet,Fail"); } - + break; case ESP_BLE_MESH_MODEL_OP_FRIEND_GET: ESP_LOGI(TAG, "CfgClient:friend,0x%x", param->status_cb.friend_status.friend_state); @@ -121,7 +121,7 @@ void ble_mesh_configuration_client_model_cb(esp_ble_mesh_cfg_client_cb_event_t e ESP_LOGI(TAG, "CfgClient:PublishSet,OK,0x%x", param->status_cb.model_pub_status.publish_addr); } else { ESP_LOGI(TAG, "CfgClient:PublishSet,Fail"); - } + } break; case ESP_BLE_MESH_MODEL_OP_MODEL_SUB_ADD: if (param->status_cb.model_sub_status.status == ESP_OK) { diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_reg_gen_onoff_client_cmd.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_reg_gen_onoff_client_cmd.c index 9b7917731a..bb80be6e75 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_reg_gen_onoff_client_cmd.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_reg_gen_onoff_client_cmd.c @@ -142,7 +142,7 @@ int ble_mesh_generic_onoff_client_model(int argc, char **argv) if (gen_onoff_state.action_type->count != 0) { if (strcmp(gen_onoff_state.action_type->sval[0], "get") == 0) { err = esp_ble_mesh_generic_client_get_state(&onoff_common, &gen_client_get); - } + } else if (strcmp(gen_onoff_state.action_type->sval[0], "set") == 0) { err = esp_ble_mesh_generic_client_set_state(&onoff_common, &gen_client_set); } else if (strcmp(gen_onoff_state.action_type->sval[0], "reg") == 0) { diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_register_cmd.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_register_cmd.c index 7ce04557a7..d67bda521f 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_register_cmd.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_register_cmd.c @@ -209,7 +209,7 @@ void ble_mesh_generic_server_model_cb(esp_ble_mesh_generic_server_cb_event_t eve srv->state.onoff = param->value.set.onoff.onoff; } } - + switch (opcode) { case ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET: ESP_LOGI(TAG, "GenOnOffServer:SetStatus,OK,%d", param->value.set.onoff.onoff); @@ -347,7 +347,7 @@ void ble_mesh_model_cb(esp_ble_mesh_model_cb_event_t event, esp_ble_mesh_model_c { uint16_t result; uint8_t data[4]; - + ESP_LOGD(TAG, "enter %s, event=%x\n", __func__, event); switch (event) { @@ -493,7 +493,7 @@ int ble_mesh_init(int argc, char **argv) } ESP_LOGD(TAG, "enter %s, module %x\n", __func__, component.model_type->ival[0]); - local_component = ble_mesh_get_component(component.model_type->ival[0]); + local_component = ble_mesh_get_component(component.model_type->ival[0]); if (component.dev_uuid->count != 0) { device_uuid = malloc((ESP_BLE_MESH_OCTET16_LEN + 1) * sizeof(uint8_t)); @@ -516,7 +516,7 @@ int ble_mesh_init(int argc, char **argv) ESP_LOGI(TAG, "Bm:Init,OK\n"); return err; } - + free(device_uuid); ESP_LOGD(TAG, "exit %s\n", __func__); return err; @@ -531,7 +531,7 @@ int ble_mesh_node_enable_bearer(int argc, char **argv) int nerrors = arg_parse(argc, argv, (void **) &bearer); if (nerrors != 0) { arg_print_errors(stderr, bearer.end, argv[0]); - + return 1; } @@ -788,7 +788,7 @@ int ble_mesh_provisioner_add_node(int argc, char **argv) get_value_string((char *)provisioner_add_node.dev_key->sval[0], (char *)node_info.dev_key); } if (provisioner_add_node.uuid->count != 0) { - get_value_string((char *)provisioner_add_node.uuid->sval[0], (char *)node_info.dev_uuid); + get_value_string((char *)provisioner_add_node.uuid->sval[0], (char *)node_info.dev_uuid); get_value_string((char *)provisioner_add_node.uuid->sval[0], (char *)node_info.dev_uuid); } @@ -1027,4 +1027,4 @@ void ble_mesh_register_cmd(void) .argtable = &node_network_info, }; ESP_ERROR_CHECK(esp_console_cmd_register(&node_network_info_cmd)); -} \ No newline at end of file +} diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_register_server_cmd.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_register_server_cmd.c index a9462052a1..2578888984 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_register_server_cmd.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/ble_mesh_register_server_cmd.c @@ -109,4 +109,3 @@ void ble_mesh_register_server_operation(void) }; ESP_ERROR_CHECK(esp_console_cmd_register(&msg_publish_cmd)); } - diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/component.mk b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/component.mk +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/register_bluetooth.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/register_bluetooth.c index 64358ba606..93618e515f 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/register_bluetooth.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_console/main/register_bluetooth.c @@ -42,4 +42,3 @@ void register_ble_address(void) }; ESP_ERROR_CHECK(esp_console_cmd_register(&cmd)); } - diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/CMakeLists.txt index 2d18e65b75..ab05eb8864 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/CMakeLists.txt @@ -1,2 +1,2 @@ -idf_component_register(SRCS "main.c" +idf_component_register(SRCS "main.c" INCLUDE_DIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/cmd_decl.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/cmd_decl.h index 78707eabd5..1d6e309863 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/cmd_decl.h +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/cmd_decl.h @@ -11,4 +11,3 @@ // Register WiFi functions void register_wifi(void); void initialise_wifi(void); - diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/component.mk b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/component.mk index da115f7d4b..e5a56dfd56 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/component.mk +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/component.mk @@ -1,8 +1,8 @@ # # Component Makefile # -# This Makefile should, at the very least, just include $(SDK_PATH)/Makefile. By default, -# this will take the sources in the src/ directory, compile them and link them into +# This Makefile should, at the very least, just include $(SDK_PATH)/Makefile. By default, +# this will take the sources in the src/ directory, compile them and link them into # lib(subdirectory_name).a in the build directory. This behaviour is entirely configurable, # please read the SDK documents if you need to do this. # diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/iperf.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/iperf.c index 70cfa272fe..6bae668c3e 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/iperf.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/components/iperf/iperf.c @@ -447,4 +447,3 @@ esp_err_t iperf_stop(void) return ESP_OK; } - diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/component.mk b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/component.mk index d68c5375e9..513091d975 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/component.mk +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/component.mk @@ -2,4 +2,4 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) -# \ No newline at end of file +# diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/partitions.csv b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/partitions.csv index 24200e5b33..166bee6ae3 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/partitions.csv +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/partitions.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 16k otadata, data, ota, 0xd000, 8k phy_init, data, phy, 0xf000, 4k -factory, app, factory, 0x10000, 2M \ No newline at end of file +factory, app, factory, 0x10000, 2M diff --git a/examples/bluetooth/esp_ble_mesh/common_components/button/Kconfig b/examples/bluetooth/esp_ble_mesh/common_components/button/Kconfig index 308410a696..76062fcf00 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/button/Kconfig +++ b/examples/bluetooth/esp_ble_mesh/common_components/button/Kconfig @@ -18,4 +18,4 @@ menu "Button" range 10 100 default 50 -endmenu \ No newline at end of file +endmenu diff --git a/examples/bluetooth/esp_ble_mesh/common_components/button/button.c b/examples/bluetooth/esp_ble_mesh/common_components/button/button.c index 144ec057b3..5f596e9d23 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/button/button.c +++ b/examples/bluetooth/esp_ble_mesh/common_components/button/button.c @@ -201,7 +201,7 @@ static void button_gpio_isr_handler(void* arg) #if !USE_ESP_TIMER xTimerStopFromISR(btn->tap_psh_cb.tmr, &HPTaskAwoken); xTimerResetFromISR(btn->tap_psh_cb.tmr, &HPTaskAwoken); - #else + #else esp_timer_stop(btn->tap_psh_cb.tmr); esp_timer_start_once(btn->tap_psh_cb.tmr, btn->tap_psh_cb.interval * portTICK_PERIOD_MS * 1000); #endif diff --git a/examples/bluetooth/esp_ble_mesh/common_components/button/include/iot_button.h b/examples/bluetooth/esp_ble_mesh/common_components/button/include/iot_button.h index 76333c1001..88367fa54c 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/button/include/iot_button.h +++ b/examples/bluetooth/esp_ble_mesh/common_components/button/include/iot_button.h @@ -153,13 +153,13 @@ public: /** * @brief constructor of CButton - * + * * @param gpio_num GPIO index of the pin that the button uses * @param active_level button hardware active level. * For "BUTTON_ACTIVE_LOW" it means when the button pressed, the GPIO will read low level. */ CButton(gpio_num_t gpio_num, button_active_t active_level = BUTTON_ACTIVE_LOW); - + ~CButton(); /** diff --git a/examples/bluetooth/esp_ble_mesh/common_components/example_init/component.mk b/examples/bluetooth/esp_ble_mesh/common_components/example_init/component.mk index 646c890db8..c7c5a4e99e 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/example_init/component.mk +++ b/examples/bluetooth/esp_ble_mesh/common_components/example_init/component.mk @@ -3,4 +3,4 @@ # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) # -COMPONENT_ADD_INCLUDEDIRS := . \ No newline at end of file +COMPONENT_ADD_INCLUDEDIRS := . diff --git a/examples/bluetooth/esp_ble_mesh/common_components/example_nvs/component.mk b/examples/bluetooth/esp_ble_mesh/common_components/example_nvs/component.mk index 646c890db8..c7c5a4e99e 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/example_nvs/component.mk +++ b/examples/bluetooth/esp_ble_mesh/common_components/example_nvs/component.mk @@ -3,4 +3,4 @@ # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) # -COMPONENT_ADD_INCLUDEDIRS := . \ No newline at end of file +COMPONENT_ADD_INCLUDEDIRS := . diff --git a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_client_model.c b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_client_model.c index 677c2425a6..ec754d06e5 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_client_model.c +++ b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_client_model.c @@ -408,4 +408,4 @@ esp_err_t example_fast_prov_client_recv_status(esp_ble_mesh_model_t *model, } return ESP_OK; -} \ No newline at end of file +} diff --git a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_client_model.h b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_client_model.h index 61fe845319..f4ab640fb5 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_client_model.h +++ b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_client_model.h @@ -33,4 +33,4 @@ esp_err_t example_fast_prov_client_recv_status(esp_ble_mesh_model_t *model, esp_ble_mesh_msg_ctx_t *ctx, uint16_t len, const uint8_t *data); -#endif /* _BLE_MESH_FAST_PROV_CLIENT_MODEL_H_ */ \ No newline at end of file +#endif /* _BLE_MESH_FAST_PROV_CLIENT_MODEL_H_ */ diff --git a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_common.h b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_common.h index f4588db446..c65ee41902 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_common.h +++ b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_common.h @@ -117,4 +117,4 @@ typedef struct { uint8_t status_act; /* Indicate the result of action */ } example_fast_prov_net_key_status_t; -#endif /* _BLE_MESH_FAST_PROV_COMMON_H_ */ \ No newline at end of file +#endif /* _BLE_MESH_FAST_PROV_COMMON_H_ */ diff --git a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_operation.c b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_operation.c index 726b561750..11af3e2311 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_operation.c +++ b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_operation.c @@ -576,4 +576,4 @@ esp_err_t example_send_fast_prov_status_msg(esp_ble_mesh_model_t *model, } return esp_ble_mesh_server_model_send_msg(model, ctx, opcode, msg ? msg->len : 0, msg ? msg->data : NULL); -} \ No newline at end of file +} diff --git a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_operation.h b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_operation.h index 962092b2b5..60122b5d51 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_operation.h +++ b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_operation.h @@ -66,4 +66,4 @@ esp_err_t example_send_fast_prov_status_msg(esp_ble_mesh_model_t *model, esp_ble_mesh_msg_ctx_t *ctx, uint32_t opcode, struct net_buf_simple *msg); -#endif /* _BLE_MESH_FAST_PROV_OPERATION_H_ */ \ No newline at end of file +#endif /* _BLE_MESH_FAST_PROV_OPERATION_H_ */ diff --git a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_server_model.h b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_server_model.h index 39872c28c4..2aeba7061c 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_server_model.h +++ b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/ble_mesh_fast_prov_server_model.h @@ -99,4 +99,4 @@ esp_err_t example_handle_fast_prov_status_send_comp_evt(int err_code, uint32_t o esp_err_t example_fast_prov_server_init(esp_ble_mesh_model_t *model); -#endif /* _BLE_MESH_FAST_PROV_SERVER_MODEL_H_ */ \ No newline at end of file +#endif /* _BLE_MESH_FAST_PROV_SERVER_MODEL_H_ */ diff --git a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/component.mk b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/component.mk index 646c890db8..c7c5a4e99e 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/component.mk +++ b/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning/component.mk @@ -3,4 +3,4 @@ # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) # -COMPONENT_ADD_INCLUDEDIRS := . \ No newline at end of file +COMPONENT_ADD_INCLUDEDIRS := . diff --git a/examples/bluetooth/esp_hid_device/main/CMakeLists.txt b/examples/bluetooth/esp_hid_device/main/CMakeLists.txt index f0081bdaf8..3e360f79a3 100644 --- a/examples/bluetooth/esp_hid_device/main/CMakeLists.txt +++ b/examples/bluetooth/esp_hid_device/main/CMakeLists.txt @@ -1,6 +1,6 @@ set(srcs "esp_hid_device_main.c" "esp_hid_gap.c") - + set(include_dirs ".") idf_component_register(SRCS "${srcs}" diff --git a/examples/bluetooth/esp_hid_host/main/CMakeLists.txt b/examples/bluetooth/esp_hid_host/main/CMakeLists.txt index ff0d113240..6d8582450b 100644 --- a/examples/bluetooth/esp_hid_host/main/CMakeLists.txt +++ b/examples/bluetooth/esp_hid_host/main/CMakeLists.txt @@ -1,6 +1,6 @@ set(srcs "esp_hid_host_main.c" "esp_hid_gap.c") - + set(include_dirs ".") idf_component_register(SRCS "${srcs}" diff --git a/examples/bluetooth/hci/ble_adv_scan_combined/main/CMakeLists.txt b/examples/bluetooth/hci/ble_adv_scan_combined/main/CMakeLists.txt index 494d32308b..b5fc77a0d2 100644 --- a/examples/bluetooth/hci/ble_adv_scan_combined/main/CMakeLists.txt +++ b/examples/bluetooth/hci/ble_adv_scan_combined/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_bt.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/hci/controller_hci_uart/main/CMakeLists.txt b/examples/bluetooth/hci/controller_hci_uart/main/CMakeLists.txt index b4eacc768a..a9c05c1e1c 100644 --- a/examples/bluetooth/hci/controller_hci_uart/main/CMakeLists.txt +++ b/examples/bluetooth/hci/controller_hci_uart/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "controller_hci_uart_demo.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/hci/controller_hci_uart/main/controller_hci_uart_demo.c b/examples/bluetooth/hci/controller_hci_uart/main/controller_hci_uart_demo.c index ad397fed28..9fa3b90fe7 100644 --- a/examples/bluetooth/hci/controller_hci_uart/main/controller_hci_uart_demo.c +++ b/examples/bluetooth/hci/controller_hci_uart/main/controller_hci_uart_demo.c @@ -34,7 +34,7 @@ static void uart_gpio_reset(void) } void app_main(void) -{ +{ esp_err_t ret; /* Initialize NVS — it is used to store PHY calibration data */ @@ -62,4 +62,3 @@ void app_main(void) return; } } - diff --git a/examples/bluetooth/hci/controller_vhci_ble_adv/main/CMakeLists.txt b/examples/bluetooth/hci/controller_vhci_ble_adv/main/CMakeLists.txt index 494d32308b..b5fc77a0d2 100644 --- a/examples/bluetooth/hci/controller_vhci_ble_adv/main/CMakeLists.txt +++ b/examples/bluetooth/hci/controller_vhci_ble_adv/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_bt.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/hci/controller_vhci_ble_adv/main/app_bt.c b/examples/bluetooth/hci/controller_vhci_ble_adv/main/app_bt.c index 36fb8bb0d7..50955a35d7 100644 --- a/examples/bluetooth/hci/controller_vhci_ble_adv/main/app_bt.c +++ b/examples/bluetooth/hci/controller_vhci_ble_adv/main/app_bt.c @@ -132,7 +132,7 @@ void app_main(void) } ESP_ERROR_CHECK( ret ); esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - + ret = esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT); if (ret) { ESP_LOGI(tag, "Bluetooth controller release classic bt memory failed: %s", esp_err_to_name(ret)); @@ -164,4 +164,3 @@ void app_main(void) xTaskCreatePinnedToCore(&bleAdvtTask, "bleAdvtTask", 2048, NULL, 5, NULL, 0); } - diff --git a/examples/bluetooth/nimble/blehr/main/gatt_svr.c b/examples/bluetooth/nimble/blehr/main/gatt_svr.c index 13fcd3698a..dfb928f887 100644 --- a/examples/bluetooth/nimble/blehr/main/gatt_svr.c +++ b/examples/bluetooth/nimble/blehr/main/gatt_svr.c @@ -183,4 +183,3 @@ gatt_svr_init(void) return 0; } - diff --git a/examples/bluetooth/nimble/blemesh/main/CMakeLists.txt b/examples/bluetooth/nimble/blemesh/main/CMakeLists.txt index 94176cab6d..99da938f3b 100644 --- a/examples/bluetooth/nimble/blemesh/main/CMakeLists.txt +++ b/examples/bluetooth/nimble/blemesh/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_mesh.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/build_system/cmake/idf_as_lib/CMakeLists.txt b/examples/build_system/cmake/idf_as_lib/CMakeLists.txt index aae439fc87..4df6092608 100644 --- a/examples/build_system/cmake/idf_as_lib/CMakeLists.txt +++ b/examples/build_system/cmake/idf_as_lib/CMakeLists.txt @@ -36,4 +36,4 @@ else() target_link_libraries(${elf_file} stub::esp32 stub::freertos stub::spi_flash) endif() -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) \ No newline at end of file +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) diff --git a/examples/build_system/cmake/idf_as_lib/build.sh b/examples/build_system/cmake/idf_as_lib/build.sh index a42c91510d..b46f026094 100755 --- a/examples/build_system/cmake/idf_as_lib/build.sh +++ b/examples/build_system/cmake/idf_as_lib/build.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash rm -rf build && mkdir build && cd build -cmake .. +cmake .. cmake --build . diff --git a/examples/build_system/cmake/idf_as_lib/stubs/esp32/CMakeLists.txt b/examples/build_system/cmake/idf_as_lib/stubs/esp32/CMakeLists.txt index 15d3145a92..df694d2662 100644 --- a/examples/build_system/cmake/idf_as_lib/stubs/esp32/CMakeLists.txt +++ b/examples/build_system/cmake/idf_as_lib/stubs/esp32/CMakeLists.txt @@ -2,4 +2,4 @@ add_library(stub_esp32 STATIC system_api.c flash_ops.c cpu_start.c) target_include_directories(stub_esp32 PUBLIC .) add_library(stub::esp32 ALIAS stub_esp32) -target_link_libraries(stub_esp32 stub::spi_flash) \ No newline at end of file +target_link_libraries(stub_esp32 stub::spi_flash) diff --git a/examples/build_system/cmake/idf_as_lib/stubs/esp32/cpu_start.c b/examples/build_system/cmake/idf_as_lib/stubs/esp32/cpu_start.c index 4aa606c8a7..6969d03be7 100644 --- a/examples/build_system/cmake/idf_as_lib/stubs/esp32/cpu_start.c +++ b/examples/build_system/cmake/idf_as_lib/stubs/esp32/cpu_start.c @@ -8,4 +8,4 @@ int main(void) { setjmp(buf); app_main(); -} \ No newline at end of file +} diff --git a/examples/build_system/cmake/idf_as_lib/stubs/esp32/esp_system.h b/examples/build_system/cmake/idf_as_lib/stubs/esp32/esp_system.h index 3bee3f7450..3cd073adf1 100644 --- a/examples/build_system/cmake/idf_as_lib/stubs/esp32/esp_system.h +++ b/examples/build_system/cmake/idf_as_lib/stubs/esp32/esp_system.h @@ -12,4 +12,4 @@ typedef struct { } esp_chip_info_t; void esp_restart(void); -void esp_chip_info(esp_chip_info_t* out_info); \ No newline at end of file +void esp_chip_info(esp_chip_info_t* out_info); diff --git a/examples/build_system/cmake/idf_as_lib/stubs/esp32/flash_ops.c b/examples/build_system/cmake/idf_as_lib/stubs/esp32/flash_ops.c index 72d5b6e4b4..046ae31071 100644 --- a/examples/build_system/cmake/idf_as_lib/stubs/esp32/flash_ops.c +++ b/examples/build_system/cmake/idf_as_lib/stubs/esp32/flash_ops.c @@ -3,4 +3,4 @@ int spi_flash_get_chip_size(void) { return (1024 * 1024 * 1024); -} \ No newline at end of file +} diff --git a/examples/build_system/cmake/idf_as_lib/stubs/esp32/system_api.c b/examples/build_system/cmake/idf_as_lib/stubs/esp32/system_api.c index 8a83c75cff..be70ac0ea8 100644 --- a/examples/build_system/cmake/idf_as_lib/stubs/esp32/system_api.c +++ b/examples/build_system/cmake/idf_as_lib/stubs/esp32/system_api.c @@ -5,7 +5,7 @@ extern jmp_buf buf; -void esp_restart(void) +void esp_restart(void) { printf("\n"); sleep(1); // pause for dramatic effect @@ -16,4 +16,4 @@ void esp_chip_info(esp_chip_info_t* out_info) { out_info->cores = 8; out_info->features = (uint32_t) -1; -} \ No newline at end of file +} diff --git a/examples/build_system/cmake/idf_as_lib/stubs/freertos/CMakeLists.txt b/examples/build_system/cmake/idf_as_lib/stubs/freertos/CMakeLists.txt index 5a96eb3e2d..28fd470328 100644 --- a/examples/build_system/cmake/idf_as_lib/stubs/freertos/CMakeLists.txt +++ b/examples/build_system/cmake/idf_as_lib/stubs/freertos/CMakeLists.txt @@ -1,3 +1,3 @@ add_library(stub_freertos STATIC task.c) target_include_directories(stub_freertos PUBLIC .) -add_library(stub::freertos ALIAS stub_freertos) \ No newline at end of file +add_library(stub::freertos ALIAS stub_freertos) diff --git a/examples/build_system/cmake/idf_as_lib/stubs/freertos/freertos/task.h b/examples/build_system/cmake/idf_as_lib/stubs/freertos/freertos/task.h index 6962f7023f..14533fbcdc 100644 --- a/examples/build_system/cmake/idf_as_lib/stubs/freertos/freertos/task.h +++ b/examples/build_system/cmake/idf_as_lib/stubs/freertos/freertos/task.h @@ -4,4 +4,4 @@ #define portTICK_PERIOD_MS 1000 -void vTaskDelay( const uint32_t xTicksToDelay ); \ No newline at end of file +void vTaskDelay( const uint32_t xTicksToDelay ); diff --git a/examples/build_system/cmake/idf_as_lib/stubs/freertos/task.c b/examples/build_system/cmake/idf_as_lib/stubs/freertos/task.c index 5a752ec8b3..095025804d 100644 --- a/examples/build_system/cmake/idf_as_lib/stubs/freertos/task.c +++ b/examples/build_system/cmake/idf_as_lib/stubs/freertos/task.c @@ -4,4 +4,4 @@ void vTaskDelay( const uint32_t xTicksToDelay ) { sleep(xTicksToDelay); -} \ No newline at end of file +} diff --git a/examples/build_system/cmake/idf_as_lib/stubs/spi_flash/CMakeLists.txt b/examples/build_system/cmake/idf_as_lib/stubs/spi_flash/CMakeLists.txt index 1f2d357e48..c44bb82f1a 100644 --- a/examples/build_system/cmake/idf_as_lib/stubs/spi_flash/CMakeLists.txt +++ b/examples/build_system/cmake/idf_as_lib/stubs/spi_flash/CMakeLists.txt @@ -1,3 +1,3 @@ add_library(stub_spi_flash INTERFACE) target_include_directories(stub_spi_flash INTERFACE .) -add_library(stub::spi_flash ALIAS stub_spi_flash) \ No newline at end of file +add_library(stub::spi_flash ALIAS stub_spi_flash) diff --git a/examples/build_system/cmake/idf_as_lib/stubs/spi_flash/esp_spi_flash.h b/examples/build_system/cmake/idf_as_lib/stubs/spi_flash/esp_spi_flash.h index 4ca6ae9402..788bfa2606 100644 --- a/examples/build_system/cmake/idf_as_lib/stubs/spi_flash/esp_spi_flash.h +++ b/examples/build_system/cmake/idf_as_lib/stubs/spi_flash/esp_spi_flash.h @@ -2,4 +2,4 @@ #include -int spi_flash_get_chip_size(void); \ No newline at end of file +int spi_flash_get_chip_size(void); diff --git a/examples/build_system/cmake/import_lib/main/CMakeLists.txt b/examples/build_system/cmake/import_lib/main/CMakeLists.txt index 6c60c8f980..3459763fc2 100644 --- a/examples/build_system/cmake/import_lib/main/CMakeLists.txt +++ b/examples/build_system/cmake/import_lib/main/CMakeLists.txt @@ -6,7 +6,7 @@ idf_component_register(SRCS "main.cpp" option(BUILD_SHARED_LIBS OFF) option(BUILD_TESTING OFF) -# Unfortunately the library performs install and export. Would +# Unfortunately the library performs install and export. Would # have been nice if devs made that an option like BUILD_SHARED_LIBS # and BUILD_TESTING. Override install() and export() to do nothing # instead. @@ -16,7 +16,7 @@ endfunction() function(export) endfunction() -# Import tinyxml2 targets +# Import tinyxml2 targets add_subdirectory(lib/tinyxml2) # Link tinyxml2 to main component diff --git a/examples/build_system/cmake/import_lib/main/main.cpp b/examples/build_system/cmake/import_lib/main/main.cpp index 6df76dcaf3..2241ea92dc 100644 --- a/examples/build_system/cmake/import_lib/main/main.cpp +++ b/examples/build_system/cmake/import_lib/main/main.cpp @@ -69,4 +69,4 @@ extern "C" void app_main(void) to_data, from_data, heading_data, body_data); ESP_LOGI(TAG, "Example end"); -} \ No newline at end of file +} diff --git a/examples/build_system/cmake/import_lib/main/sample.xml b/examples/build_system/cmake/import_lib/main/sample.xml index fa0c0a5b64..d3f0eca227 100644 --- a/examples/build_system/cmake/import_lib/main/sample.xml +++ b/examples/build_system/cmake/import_lib/main/sample.xml @@ -4,4 +4,4 @@ Jani Reminder Don't forget me this weekend! - \ No newline at end of file + diff --git a/examples/build_system/cmake/import_lib/partitions_example.csv b/examples/build_system/cmake/import_lib/partitions_example.csv index 3337f31642..d8fe545ba2 100644 --- a/examples/build_system/cmake/import_lib/partitions_example.csv +++ b/examples/build_system/cmake/import_lib/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, fat, , 528K, +storage, data, fat, , 528K, diff --git a/examples/build_system/cmake/import_prebuilt/main/CMakeLists.txt b/examples/build_system/cmake/import_prebuilt/main/CMakeLists.txt index 8184f63d84..6c0888f23c 100644 --- a/examples/build_system/cmake/import_prebuilt/main/CMakeLists.txt +++ b/examples/build_system/cmake/import_prebuilt/main/CMakeLists.txt @@ -8,5 +8,3 @@ add_prebuilt_library(prebuilt "libprebuilt.a" # `main` calls a function from the library, so link it to `main` target_link_libraries(${COMPONENT_LIB} PRIVATE prebuilt) - - diff --git a/examples/build_system/cmake/import_prebuilt/main/main.c b/examples/build_system/cmake/import_prebuilt/main/main.c index 8751293849..7e498146e1 100644 --- a/examples/build_system/cmake/import_prebuilt/main/main.c +++ b/examples/build_system/cmake/import_prebuilt/main/main.c @@ -7,7 +7,7 @@ CONDITIONS OF ANY KIND, either express or implied. */ -// Include the prebuilt library's header file so as to be able +// Include the prebuilt library's header file so as to be able // to reference `prebuilt_func` here. #include "prebuilt.h" diff --git a/examples/build_system/cmake/import_prebuilt/prebuilt/components/prebuilt/prebuilt.c b/examples/build_system/cmake/import_prebuilt/prebuilt/components/prebuilt/prebuilt.c index 8830747775..1e5cf862e5 100644 --- a/examples/build_system/cmake/import_prebuilt/prebuilt/components/prebuilt/prebuilt.c +++ b/examples/build_system/cmake/import_prebuilt/prebuilt/components/prebuilt/prebuilt.c @@ -17,5 +17,3 @@ void prebuilt_func(void) const esp_partition_t* running_partition = esp_ota_get_running_partition(); ESP_LOGI(TAG, "The running partition is '%s'!", running_partition->label); } - - diff --git a/examples/common_components/protocol_examples_common/addr_from_stdin.c b/examples/common_components/protocol_examples_common/addr_from_stdin.c index 460fe9a2ec..0320a27bf3 100644 --- a/examples/common_components/protocol_examples_common/addr_from_stdin.c +++ b/examples/common_components/protocol_examples_common/addr_from_stdin.c @@ -62,4 +62,4 @@ esp_err_t get_addr_from_stdin(int port, int sock_type, int *ip_protocol, int *ad // no match found freeaddrinfo( addr_list ); return ESP_FAIL; -} \ No newline at end of file +} diff --git a/examples/common_components/protocol_examples_common/include/addr_from_stdin.h b/examples/common_components/protocol_examples_common/include/addr_from_stdin.h index ab5043aed6..959a7ed099 100644 --- a/examples/common_components/protocol_examples_common/include/addr_from_stdin.h +++ b/examples/common_components/protocol_examples_common/include/addr_from_stdin.h @@ -41,4 +41,4 @@ esp_err_t get_addr_from_stdin(int port, int sock_type, #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/examples/cxx/exceptions/Makefile b/examples/cxx/exceptions/Makefile index bbca3f7162..a1a246a244 100644 --- a/examples/cxx/exceptions/Makefile +++ b/examples/cxx/exceptions/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := cpp_exceptions_example include $(IDF_PATH)/make/project.mk - diff --git a/examples/cxx/exceptions/main/CMakeLists.txt b/examples/cxx/exceptions/main/CMakeLists.txt index 6668d4f291..19ae5d7d62 100644 --- a/examples/cxx/exceptions/main/CMakeLists.txt +++ b/examples/cxx/exceptions/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "exception_example_main.cpp" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/cxx/experimental/esp_event_async_cxx/Makefile b/examples/cxx/experimental/esp_event_async_cxx/Makefile index 2ffc7368bb..eb641cae8e 100644 --- a/examples/cxx/experimental/esp_event_async_cxx/Makefile +++ b/examples/cxx/experimental/esp_event_async_cxx/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := esp_event_async_cxx EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/cxx/experimental/experimental_cpp_component include $(IDF_PATH)/make/project.mk - diff --git a/examples/cxx/experimental/esp_event_async_cxx/main/component.mk b/examples/cxx/experimental/esp_event_async_cxx/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/cxx/experimental/esp_event_async_cxx/main/component.mk +++ b/examples/cxx/experimental/esp_event_async_cxx/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/cxx/experimental/esp_event_cxx/Makefile b/examples/cxx/experimental/esp_event_cxx/Makefile index ece170bf6c..61ae7f1524 100644 --- a/examples/cxx/experimental/esp_event_cxx/Makefile +++ b/examples/cxx/experimental/esp_event_cxx/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := esp_event_cxx EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/cxx/experimental/experimental_cpp_component include $(IDF_PATH)/make/project.mk - diff --git a/examples/cxx/experimental/esp_event_cxx/main/component.mk b/examples/cxx/experimental/esp_event_cxx/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/cxx/experimental/esp_event_cxx/main/component.mk +++ b/examples/cxx/experimental/esp_event_cxx/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/cxx/experimental/experimental_cpp_component/component.mk b/examples/cxx/experimental/experimental_cpp_component/component.mk index 3e0b3af925..6716993856 100644 --- a/examples/cxx/experimental/experimental_cpp_component/component.mk +++ b/examples/cxx/experimental/experimental_cpp_component/component.mk @@ -1,4 +1,3 @@ COMPONENT_ADD_INCLUDEDIRS := include COMPONENT_SRCDIRS := ./ driver - diff --git a/examples/cxx/experimental/experimental_cpp_component/esp_event_api.cpp b/examples/cxx/experimental/experimental_cpp_component/esp_event_api.cpp index bc17945587..bc49a5b54e 100644 --- a/examples/cxx/experimental/experimental_cpp_component/esp_event_api.cpp +++ b/examples/cxx/experimental/experimental_cpp_component/esp_event_api.cpp @@ -113,4 +113,3 @@ esp_err_t ESPEventAPICustom::run(TickType_t ticks_to_run) } // idf #endif // __cpp_exceptions - diff --git a/examples/cxx/experimental/experimental_cpp_component/include/esp_event_api.hpp b/examples/cxx/experimental/experimental_cpp_component/include/esp_event_api.hpp index f14b2256e0..81f9d28c06 100644 --- a/examples/cxx/experimental/experimental_cpp_component/include/esp_event_api.hpp +++ b/examples/cxx/experimental/experimental_cpp_component/include/esp_event_api.hpp @@ -120,4 +120,3 @@ private: } // idf #endif // ESP_EVENT_API_HPP_ - diff --git a/examples/cxx/experimental/experimental_cpp_component/include/i2c_cxx.hpp b/examples/cxx/experimental/experimental_cpp_component/include/i2c_cxx.hpp index d850fe77d8..b1663ba771 100644 --- a/examples/cxx/experimental/experimental_cpp_component/include/i2c_cxx.hpp +++ b/examples/cxx/experimental/experimental_cpp_component/include/i2c_cxx.hpp @@ -491,4 +491,3 @@ std::future I2CMaster::transfer(std::shared } } // idf - diff --git a/examples/cxx/experimental/experimental_cpp_component/test/test_cxx_exceptions.cpp b/examples/cxx/experimental/experimental_cpp_component/test/test_cxx_exceptions.cpp index 4a36f84fda..369ca1479a 100644 --- a/examples/cxx/experimental/experimental_cpp_component/test/test_cxx_exceptions.cpp +++ b/examples/cxx/experimental/experimental_cpp_component/test/test_cxx_exceptions.cpp @@ -59,4 +59,3 @@ TEST_CASE("ESPException has working what() method", "[cxx exception][leaks=" LEA } #endif // __cpp_exceptions - diff --git a/examples/cxx/experimental/experimental_cpp_component/test/test_esp_event_cxx.cpp b/examples/cxx/experimental/experimental_cpp_component/test/test_esp_event_cxx.cpp index e7f3efc965..048c82dcf4 100644 --- a/examples/cxx/experimental/experimental_cpp_component/test/test_esp_event_cxx.cpp +++ b/examples/cxx/experimental/experimental_cpp_component/test/test_esp_event_cxx.cpp @@ -759,4 +759,3 @@ TEST_CASE("ESPEventAPICustom no mem", "[cxx event]") } #endif // __cpp_exceptions - diff --git a/examples/cxx/experimental/experimental_cpp_component/test/unity_cxx.hpp b/examples/cxx/experimental/experimental_cpp_component/test/unity_cxx.hpp index c9058c7dc0..dfaf79ce63 100644 --- a/examples/cxx/experimental/experimental_cpp_component/test/unity_cxx.hpp +++ b/examples/cxx/experimental/experimental_cpp_component/test/unity_cxx.hpp @@ -29,4 +29,3 @@ ", but no exception thrown."); \ } \ while (0) - diff --git a/examples/cxx/experimental/sensor_mcp9808/Makefile b/examples/cxx/experimental/sensor_mcp9808/Makefile index 507667bb67..a2488937a5 100644 --- a/examples/cxx/experimental/sensor_mcp9808/Makefile +++ b/examples/cxx/experimental/sensor_mcp9808/Makefile @@ -8,4 +8,3 @@ EXTRA_COMPONENT_DIRS += ${IDF_PATH}/examples/cxx/experimental/experimental_cpp_c PROJECT_NAME := sensor_mcp9808 include $(IDF_PATH)/make/project.mk - diff --git a/examples/cxx/pthread/Makefile b/examples/cxx/pthread/Makefile index 7001b522b6..bfd94a11b9 100644 --- a/examples/cxx/pthread/Makefile +++ b/examples/cxx/pthread/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := cpp_pthread include $(IDF_PATH)/make/project.mk - diff --git a/examples/cxx/pthread/main/CMakeLists.txt b/examples/cxx/pthread/main/CMakeLists.txt index f4c4d218e0..3be8a73643 100644 --- a/examples/cxx/pthread/main/CMakeLists.txt +++ b/examples/cxx/pthread/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "cpp_pthread.cpp" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/cxx/pthread/main/cpp_pthread.cpp b/examples/cxx/pthread/main/cpp_pthread.cpp index d39ea91f3e..7ba4658a5c 100644 --- a/examples/cxx/pthread/main/cpp_pthread.cpp +++ b/examples/cxx/pthread/main/cpp_pthread.cpp @@ -109,4 +109,4 @@ extern "C" void app_main(void) ESP_LOGI(pcTaskGetTaskName(nullptr), "%s", ss.str().c_str()); std::this_thread::sleep_for(sleep_time); } -} \ No newline at end of file +} diff --git a/examples/cxx/rtti/Makefile b/examples/cxx/rtti/Makefile index 72303c2e67..ff6b842a7c 100644 --- a/examples/cxx/rtti/Makefile +++ b/examples/cxx/rtti/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := cpp_rtti include $(IDF_PATH)/make/project.mk - diff --git a/examples/cxx/rtti/main/rtti_example_main.cpp b/examples/cxx/rtti/main/rtti_example_main.cpp index b6417547ed..e2a4a5efd3 100644 --- a/examples/cxx/rtti/main/rtti_example_main.cpp +++ b/examples/cxx/rtti/main/rtti_example_main.cpp @@ -73,7 +73,7 @@ extern "C" void app_main() for (auto &obj: objects) { cout << "obj->name() is: " << obj->name() << endl << '\t'; cout << "typeid(*obj).name() is: " << demangle(typeid(*obj).name()) << endl << '\t'; - + const DerivedA* cast_to_derived_a = dynamic_cast(obj.get()); const DerivedB* cast_to_derived_b = dynamic_cast(obj.get()); diff --git a/examples/ethernet/basic/Makefile b/examples/ethernet/basic/Makefile index 624c6dc49e..acb6d3a9ba 100644 --- a/examples/ethernet/basic/Makefile +++ b/examples/ethernet/basic/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := ethernet_basic include $(IDF_PATH)/make/project.mk - diff --git a/examples/ethernet/basic/main/CMakeLists.txt b/examples/ethernet/basic/main/CMakeLists.txt index 9c922a6ec0..ff186a4a5b 100644 --- a/examples/ethernet/basic/main/CMakeLists.txt +++ b/examples/ethernet/basic/main/CMakeLists.txt @@ -1,3 +1,2 @@ idf_component_register(SRCS "ethernet_example_main.c" INCLUDE_DIRS ".") - diff --git a/examples/ethernet/enc28j60/Makefile b/examples/ethernet/enc28j60/Makefile index a358eeae0b..ebbd741d90 100644 --- a/examples/ethernet/enc28j60/Makefile +++ b/examples/ethernet/enc28j60/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := enc28j60 include $(IDF_PATH)/make/project.mk - diff --git a/examples/ethernet/iperf/Makefile b/examples/ethernet/iperf/Makefile index 4abc0f97ca..3056f79ca8 100644 --- a/examples/ethernet/iperf/Makefile +++ b/examples/ethernet/iperf/Makefile @@ -10,4 +10,3 @@ EXTRA_COMPONENT_DIRS += $(IDF_PATH)/examples/wifi/iperf/components include $(IDF_PATH)/make/project.mk - diff --git a/examples/ethernet/iperf/main/component.mk b/examples/ethernet/iperf/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/ethernet/iperf/main/component.mk +++ b/examples/ethernet/iperf/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/ethernet/iperf/partitions_example.csv b/examples/ethernet/iperf/partitions_example.csv index ac18e080c8..1c79321a10 100644 --- a/examples/ethernet/iperf/partitions_example.csv +++ b/examples/ethernet/iperf/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, fat, , 1M, +storage, data, fat, , 1M, diff --git a/examples/get-started/blink/Makefile b/examples/get-started/blink/Makefile index 6f8b9fabe8..5a04497aa6 100644 --- a/examples/get-started/blink/Makefile +++ b/examples/get-started/blink/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := blink include $(IDF_PATH)/make/project.mk - diff --git a/examples/get-started/blink/main/CMakeLists.txt b/examples/get-started/blink/main/CMakeLists.txt index 413c3b5141..6f47c26eab 100644 --- a/examples/get-started/blink/main/CMakeLists.txt +++ b/examples/get-started/blink/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "blink.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/get-started/blink/sdkconfig.defaults b/examples/get-started/blink/sdkconfig.defaults index 8fa2136f68..792d600548 100644 --- a/examples/get-started/blink/sdkconfig.defaults +++ b/examples/get-started/blink/sdkconfig.defaults @@ -1,2 +1 @@ # - diff --git a/examples/get-started/hello_world/CMakeLists.txt b/examples/get-started/hello_world/CMakeLists.txt index 519e5a1d7b..8a022b8486 100644 --- a/examples/get-started/hello_world/CMakeLists.txt +++ b/examples/get-started/hello_world/CMakeLists.txt @@ -3,4 +3,4 @@ cmake_minimum_required(VERSION 3.5) include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(hello-world) \ No newline at end of file +project(hello-world) diff --git a/examples/get-started/hello_world/Makefile b/examples/get-started/hello_world/Makefile index 0d1f5e687d..51085159f2 100644 --- a/examples/get-started/hello_world/Makefile +++ b/examples/get-started/hello_world/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := hello-world include $(IDF_PATH)/make/project.mk - diff --git a/examples/get-started/hello_world/main/CMakeLists.txt b/examples/get-started/hello_world/main/CMakeLists.txt index c299e03782..07686dc8e1 100644 --- a/examples/get-started/hello_world/main/CMakeLists.txt +++ b/examples/get-started/hello_world/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "hello_world_main.c" - INCLUDE_DIRS "") \ No newline at end of file + INCLUDE_DIRS "") diff --git a/examples/get-started/hello_world/main/component.mk b/examples/get-started/hello_world/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/get-started/hello_world/main/component.mk +++ b/examples/get-started/hello_world/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/get-started/sample_project/main/component.mk b/examples/get-started/sample_project/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/get-started/sample_project/main/component.mk +++ b/examples/get-started/sample_project/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/mesh/internal_communication/Makefile b/examples/mesh/internal_communication/Makefile index 3e340792b1..83a296c4cb 100644 --- a/examples/mesh/internal_communication/Makefile +++ b/examples/mesh/internal_communication/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := internal_communication include $(IDF_PATH)/make/project.mk - diff --git a/examples/mesh/internal_communication/main/Kconfig.projbuild b/examples/mesh/internal_communication/main/Kconfig.projbuild index 0455f2fbe7..6dfb1dad43 100644 --- a/examples/mesh/internal_communication/main/Kconfig.projbuild +++ b/examples/mesh/internal_communication/main/Kconfig.projbuild @@ -163,4 +163,3 @@ menu "Example Configuration" help The number of devices over the network(max: 300). endmenu - diff --git a/examples/mesh/ip_internal_network/Makefile b/examples/mesh/ip_internal_network/Makefile index ab2f5cc428..86211310ee 100644 --- a/examples/mesh/ip_internal_network/Makefile +++ b/examples/mesh/ip_internal_network/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := ip_internal_network include $(IDF_PATH)/make/project.mk - diff --git a/examples/mesh/ip_internal_network/main/Kconfig.projbuild b/examples/mesh/ip_internal_network/main/Kconfig.projbuild index f0d29f381d..d4aec56eea 100644 --- a/examples/mesh/ip_internal_network/main/Kconfig.projbuild +++ b/examples/mesh/ip_internal_network/main/Kconfig.projbuild @@ -91,4 +91,3 @@ menu "Example Configuration" format. endmenu - diff --git a/examples/mesh/manual_networking/Makefile b/examples/mesh/manual_networking/Makefile index 6a51b332dc..6fcd715f9e 100644 --- a/examples/mesh/manual_networking/Makefile +++ b/examples/mesh/manual_networking/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := manual_networking include $(IDF_PATH)/make/project.mk - diff --git a/examples/mesh/manual_networking/main/Kconfig.projbuild b/examples/mesh/manual_networking/main/Kconfig.projbuild index 36f77e4f73..0dbac81842 100644 --- a/examples/mesh/manual_networking/main/Kconfig.projbuild +++ b/examples/mesh/manual_networking/main/Kconfig.projbuild @@ -102,4 +102,3 @@ menu "Example Configuration" Mesh IE crypto enable/disable. endmenu - diff --git a/examples/peripherals/adc/Makefile b/examples/peripherals/adc/Makefile index 937dac7c11..e183ec8735 100644 --- a/examples/peripherals/adc/Makefile +++ b/examples/peripherals/adc/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := adc include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/adc/main/CMakeLists.txt b/examples/peripherals/adc/main/CMakeLists.txt index 035e5bd270..19ed60c765 100644 --- a/examples/peripherals/adc/main/CMakeLists.txt +++ b/examples/peripherals/adc/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "adc1_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/adc2/Makefile b/examples/peripherals/adc2/Makefile index 2f322486e4..7176286536 100644 --- a/examples/peripherals/adc2/Makefile +++ b/examples/peripherals/adc2/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := adc2 include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/adc2/main/CMakeLists.txt b/examples/peripherals/adc2/main/CMakeLists.txt index 5a6c87d577..8a9ead9672 100644 --- a/examples/peripherals/adc2/main/CMakeLists.txt +++ b/examples/peripherals/adc2/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "adc2_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/adc2/main/adc2_example_main.c b/examples/peripherals/adc2/main/adc2_example_main.c index 558e393ecf..9b1a5003fa 100644 --- a/examples/peripherals/adc2/main/adc2_example_main.c +++ b/examples/peripherals/adc2/main/adc2_example_main.c @@ -43,7 +43,7 @@ void app_main(void) dac_output_enable( DAC_EXAMPLE_CHANNEL ); - //be sure to do the init before using adc2. + //be sure to do the init before using adc2. printf("adc2_init...\n"); adc2_config_channel_atten( ADC2_EXAMPLE_CHANNEL, ADC_ATTEN_11db ); diff --git a/examples/peripherals/gpio/generic_gpio/Makefile b/examples/peripherals/gpio/generic_gpio/Makefile index 9422164da3..c7b47b5dd7 100644 --- a/examples/peripherals/gpio/generic_gpio/Makefile +++ b/examples/peripherals/gpio/generic_gpio/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := generic-gpio include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/gpio/generic_gpio/main/CMakeLists.txt b/examples/peripherals/gpio/generic_gpio/main/CMakeLists.txt index d33d5e1716..81e99f92f9 100644 --- a/examples/peripherals/gpio/generic_gpio/main/CMakeLists.txt +++ b/examples/peripherals/gpio/generic_gpio/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "gpio_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/gpio/generic_gpio/main/gpio_example_main.c b/examples/peripherals/gpio/generic_gpio/main/gpio_example_main.c index 05abd57dd3..425f8fa9e1 100644 --- a/examples/peripherals/gpio/generic_gpio/main/gpio_example_main.c +++ b/examples/peripherals/gpio/generic_gpio/main/gpio_example_main.c @@ -77,7 +77,7 @@ void app_main(void) io_conf.intr_type = GPIO_INTR_POSEDGE; //bit mask of the pins, use GPIO4/5 here io_conf.pin_bit_mask = GPIO_INPUT_PIN_SEL; - //set as input mode + //set as input mode io_conf.mode = GPIO_MODE_INPUT; //enable pull-up mode io_conf.pull_up_en = 1; @@ -113,4 +113,3 @@ void app_main(void) gpio_set_level(GPIO_OUTPUT_IO_1, cnt % 2); } } - diff --git a/examples/peripherals/gpio/matrix_keyboard/CMakeLists.txt b/examples/peripherals/gpio/matrix_keyboard/CMakeLists.txt index fddd4236e9..5769057306 100644 --- a/examples/peripherals/gpio/matrix_keyboard/CMakeLists.txt +++ b/examples/peripherals/gpio/matrix_keyboard/CMakeLists.txt @@ -3,4 +3,4 @@ cmake_minimum_required(VERSION 3.5) include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(matrix-keyboard) \ No newline at end of file +project(matrix-keyboard) diff --git a/examples/peripherals/gpio/matrix_keyboard/main/CMakeLists.txt b/examples/peripherals/gpio/matrix_keyboard/main/CMakeLists.txt index 357c4dd2f2..ce42fe41d6 100644 --- a/examples/peripherals/gpio/matrix_keyboard/main/CMakeLists.txt +++ b/examples/peripherals/gpio/matrix_keyboard/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "matrix_keyboard_example_main.c" - INCLUDE_DIRS "") \ No newline at end of file + INCLUDE_DIRS "") diff --git a/examples/peripherals/i2c/i2c_self_test/Makefile b/examples/peripherals/i2c/i2c_self_test/Makefile index 8f64567bf1..ad935bf70b 100644 --- a/examples/peripherals/i2c/i2c_self_test/Makefile +++ b/examples/peripherals/i2c/i2c_self_test/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := i2c-example include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/i2c/i2c_self_test/main/CMakeLists.txt b/examples/peripherals/i2c/i2c_self_test/main/CMakeLists.txt index 4dc828aacc..2fedda516d 100644 --- a/examples/peripherals/i2c/i2c_self_test/main/CMakeLists.txt +++ b/examples/peripherals/i2c/i2c_self_test/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "i2c_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/i2c/i2c_tools/Makefile b/examples/peripherals/i2c/i2c_tools/Makefile index bf73cbd8c0..f64fb25c9c 100644 --- a/examples/peripherals/i2c/i2c_tools/Makefile +++ b/examples/peripherals/i2c/i2c_tools/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := i2c-tools EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/system/console/components include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/i2c/i2c_tools/main/CMakeLists.txt b/examples/peripherals/i2c/i2c_tools/main/CMakeLists.txt index fed3a94434..7af0d47cfc 100644 --- a/examples/peripherals/i2c/i2c_tools/main/CMakeLists.txt +++ b/examples/peripherals/i2c/i2c_tools/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "i2ctools_example_main.c" "cmd_i2ctools.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/i2c/i2c_tools/partitions_example.csv b/examples/peripherals/i2c/i2c_tools/partitions_example.csv index ac18e080c8..1c79321a10 100644 --- a/examples/peripherals/i2c/i2c_tools/partitions_example.csv +++ b/examples/peripherals/i2c/i2c_tools/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, fat, , 1M, +storage, data, fat, , 1M, diff --git a/examples/peripherals/i2s/Makefile b/examples/peripherals/i2s/Makefile index b15a137b88..099e920221 100644 --- a/examples/peripherals/i2s/Makefile +++ b/examples/peripherals/i2s/Makefile @@ -5,4 +5,3 @@ VERBOSE = 1 PROJECT_NAME := esp32-i2s-driver-example include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/i2s/main/CMakeLists.txt b/examples/peripherals/i2s/main/CMakeLists.txt index 5233689fb2..4c583513cd 100644 --- a/examples/peripherals/i2s/main/CMakeLists.txt +++ b/examples/peripherals/i2s/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "i2s_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/i2s_adc_dac/Makefile b/examples/peripherals/i2s_adc_dac/Makefile index 7bc6540ac5..a6d343aad1 100644 --- a/examples/peripherals/i2s_adc_dac/Makefile +++ b/examples/peripherals/i2s_adc_dac/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := i2s-adc-dac include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/i2s_adc_dac/main/CMakeLists.txt b/examples/peripherals/i2s_adc_dac/main/CMakeLists.txt index e7392559ee..61fac40e63 100644 --- a/examples/peripherals/i2s_adc_dac/main/CMakeLists.txt +++ b/examples/peripherals/i2s_adc_dac/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/i2s_adc_dac/main/audio_example_file.h b/examples/peripherals/i2s_adc_dac/main/audio_example_file.h index 1bf8135807..6723c6fc2b 100644 --- a/examples/peripherals/i2s_adc_dac/main/audio_example_file.h +++ b/examples/peripherals/i2s_adc_dac/main/audio_example_file.h @@ -1,4975 +1,4974 @@ #include const unsigned char audio_table[] = { -0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x81, 0x7e, 0x7a, 0x79, 0x79, 0x7c, 0x81, 0x82, 0x82, -0x81, 0x7e, 0x7d, 0x7b, 0x7a, 0x7a, 0x7b, 0x7e, 0x82, 0x84, 0x84, 0x85, 0x84, 0x80, 0x7d, 0x7a, -0x78, 0x78, 0x7a, 0x80, 0x84, 0x87, 0x86, 0x80, 0x7a, 0x77, 0x79, 0x7d, 0x82, 0x85, 0x84, 0x82, -0x7d, 0x7a, 0x77, 0x76, 0x77, 0x79, 0x80, 0x84, 0x86, 0x88, 0x87, 0x84, 0x7e, 0x77, 0x74, 0x75, -0x79, 0x81, 0x88, 0x8b, 0x89, 0x87, 0x84, 0x7e, 0x78, 0x73, 0x72, 0x78, 0x82, 0x8b, 0x8f, 0x8e, -0x88, 0x7e, 0x71, 0x69, 0x6d, 0x79, 0x88, 0x8f, 0x8c, 0x85, 0x80, 0x80, 0x81, 0x7d, 0x77, 0x73, -0x76, 0x7e, 0x88, 0x8f, 0x8d, 0x85, 0x7e, 0x7b, 0x7b, 0x7e, 0x81, 0x80, 0x7d, 0x7c, 0x7c, 0x80, -0x83, 0x82, 0x80, 0x7d, 0x7d, 0x80, 0x82, 0x84, 0x83, 0x80, 0x7c, 0x7b, 0x7d, 0x81, 0x84, 0x84, -0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x7c, 0x7a, 0x79, 0x7c, 0x83, 0x87, 0x87, 0x83, 0x7e, 0x79, 0x78, -0x78, 0x79, 0x7b, 0x7c, 0x7d, 0x81, 0x82, 0x83, 0x84, 0x83, 0x7e, 0x7a, 0x77, 0x78, 0x7b, 0x7e, -0x81, 0x82, 0x80, 0x7e, 0x7e, 0x81, 0x82, 0x80, 0x7e, 0x80, 0x82, 0x82, 0x81, 0x7e, 0x7c, 0x7b, -0x7b, 0x7c, 0x80, 0x83, 0x84, 0x83, 0x82, 0x80, 0x7e, 0x7a, 0x77, 0x77, 0x78, 0x7c, 0x82, 0x85, -0x86, 0x85, 0x84, 0x82, 0x7e, 0x7b, 0x77, 0x75, 0x78, 0x7e, 0x83, 0x85, 0x85, 0x85, 0x84, 0x83, -0x81, 0x7c, 0x7a, 0x7a, 0x7c, 0x7e, 0x81, 0x82, 0x83, 0x84, 0x84, 0x82, 0x80, 0x7e, 0x7c, 0x7a, -0x7a, 0x7c, 0x80, 0x83, 0x86, 0x87, 0x84, 0x80, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, -0x83, 0x87, 0x88, 0x87, 0x82, 0x7c, 0x78, 0x79, 0x7b, 0x7c, 0x7d, 0x81, 0x85, 0x8a, 0x8a, 0x85, -0x7e, 0x79, 0x78, 0x79, 0x7a, 0x7c, 0x7c, 0x7e, 0x81, 0x82, 0x83, 0x81, 0x7e, 0x7d, 0x7c, 0x7d, -0x80, 0x7e, 0x7b, 0x7a, 0x7b, 0x7c, 0x81, 0x83, 0x83, 0x84, 0x81, 0x7d, 0x7a, 0x77, 0x78, 0x7a, -0x7d, 0x80, 0x83, 0x85, 0x85, 0x83, 0x7e, 0x7a, 0x7c, 0x80, 0x82, 0x81, 0x7e, 0x7c, 0x7c, 0x7e, -0x81, 0x82, 0x84, 0x84, 0x84, 0x84, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, -0x7d, 0x82, 0x86, 0x89, 0x89, 0x85, 0x7a, 0x6f, 0x69, 0x64, 0x62, 0x6f, 0x8f, 0xb2, 0xc9, 0xcc, -0xb1, 0x80, 0x4f, 0x2c, 0x18, 0x24, 0x53, 0x8c, 0xb3, 0xc9, 0xd0, 0xbe, 0x9c, 0x78, 0x5b, 0x4b, -0x4e, 0x5d, 0x76, 0x8b, 0x92, 0x9d, 0x9d, 0x90, 0x87, 0x7a, 0x70, 0x6c, 0x70, 0x7a, 0x86, 0x8b, -0x8e, 0x8b, 0x83, 0x7b, 0x77, 0x78, 0x7a, 0x80, 0x82, 0x82, 0x83, 0x81, 0x7a, 0x79, 0x7e, 0x84, -0x89, 0x8b, 0x85, 0x7b, 0x71, 0x6f, 0x71, 0x73, 0x79, 0x88, 0x94, 0x99, 0x96, 0x8f, 0x82, 0x6c, -0x5f, 0x60, 0x67, 0x77, 0x8f, 0xa1, 0xa6, 0x9c, 0x85, 0x67, 0x56, 0x58, 0x69, 0x83, 0x99, 0xa7, -0xa7, 0x97, 0x82, 0x6a, 0x57, 0x54, 0x5e, 0x74, 0x90, 0xa5, 0xa9, 0x9c, 0x86, 0x6f, 0x60, 0x5d, -0x67, 0x7b, 0x8f, 0x98, 0x98, 0x8e, 0x7d, 0x6b, 0x60, 0x63, 0x70, 0x84, 0x99, 0xa5, 0xa4, 0x94, -0x7d, 0x67, 0x58, 0x59, 0x63, 0x75, 0x89, 0x93, 0x96, 0x98, 0x96, 0x90, 0x86, 0x77, 0x69, 0x5f, -0x5d, 0x69, 0x7c, 0x8d, 0x99, 0x9a, 0x92, 0x86, 0x74, 0x68, 0x68, 0x74, 0x84, 0x93, 0x9b, 0x98, -0x8d, 0x7a, 0x69, 0x60, 0x61, 0x6a, 0x7a, 0x8d, 0x9e, 0xa4, 0x98, 0x83, 0x6c, 0x5e, 0x60, 0x6c, -0x7d, 0x91, 0x98, 0x94, 0x8b, 0x79, 0x6c, 0x67, 0x6a, 0x78, 0x88, 0x92, 0x98, 0x8e, 0x7b, 0x69, -0x61, 0x69, 0x7a, 0x8f, 0x9e, 0xa1, 0x97, 0x87, 0x78, 0x6d, 0x6a, 0x6e, 0x74, 0x7c, 0x82, 0x80, -0x7c, 0x7d, 0x81, 0x85, 0x8b, 0x91, 0x92, 0x8b, 0x7d, 0x70, 0x64, 0x5d, 0x5c, 0x67, 0x80, 0x9a, -0xb1, 0xbd, 0xb7, 0x9f, 0x7a, 0x53, 0x36, 0x31, 0x45, 0x6a, 0x99, 0xc5, 0xd8, 0xca, 0xa4, 0x73, -0x46, 0x2a, 0x2d, 0x50, 0x83, 0xad, 0xc1, 0xba, 0xa3, 0x8a, 0x70, 0x5c, 0x53, 0x57, 0x67, 0x79, -0x89, 0x9b, 0xa7, 0xa3, 0x93, 0x81, 0x71, 0x6a, 0x68, 0x69, 0x6d, 0x75, 0x78, 0x78, 0x80, 0x8c, -0x9b, 0xaa, 0xb0, 0xa7, 0x91, 0x71, 0x4c, 0x34, 0x35, 0x4d, 0x78, 0xa9, 0xcc, 0xd8, 0xcd, 0xa7, -0x73, 0x41, 0x19, 0xf, 0x29, 0x5f, 0xa5, 0xe3, 0xff, 0xf8, 0xc1, 0x6c, 0x22, 0x0, 0x9, 0x34, -0x74, 0xb3, 0xdc, 0xe3, 0xca, 0x98, 0x64, 0x42, 0x36, 0x44, 0x6a, 0x96, 0xb6, 0xbb, 0xa5, 0x83, -0x64, 0x57, 0x57, 0x5e, 0x71, 0x8d, 0x9f, 0xa4, 0x98, 0x85, 0x75, 0x6b, 0x6a, 0x73, 0x81, 0x8d, -0x97, 0x94, 0x7a, 0x5e, 0x53, 0x5e, 0x7a, 0x91, 0xa1, 0xa6, 0x9c, 0x91, 0x78, 0x66, 0x66, 0x6c, -0x7b, 0x82, 0x84, 0x93, 0x9c, 0x93, 0x85, 0x74, 0x62, 0x58, 0x62, 0x7a, 0x8f, 0xa3, 0xb3, 0xaf, -0x92, 0x63, 0x40, 0x3c, 0x55, 0x81, 0xa8, 0xbb, 0xb4, 0x90, 0x65, 0x50, 0x58, 0x74, 0x8a, 0x95, -0x96, 0x91, 0x87, 0x80, 0x7a, 0x70, 0x68, 0x68, 0x6f, 0x7e, 0x95, 0xa8, 0xa7, 0x98, 0x7d, 0x60, -0x54, 0x5c, 0x6d, 0x81, 0x95, 0xa3, 0xa4, 0x99, 0x7d, 0x68, 0x5d, 0x5d, 0x67, 0x76, 0x88, 0x96, -0x9f, 0xa2, 0x9d, 0x87, 0x6a, 0x53, 0x4d, 0x5e, 0x7a, 0x99, 0xad, 0xb1, 0xa3, 0x81, 0x62, 0x59, -0x5d, 0x67, 0x77, 0x8d, 0x9c, 0x9b, 0x91, 0x83, 0x70, 0x64, 0x69, 0x7b, 0x93, 0xa1, 0x9e, 0x89, -0x74, 0x64, 0x50, 0x4d, 0x69, 0x96, 0xbd, 0xc5, 0xad, 0x8a, 0x5c, 0x3d, 0x38, 0x46, 0x6c, 0x99, -0xbb, 0xce, 0xc8, 0xa7, 0x72, 0x3e, 0x21, 0x27, 0x4f, 0x8b, 0xbc, 0xd1, 0xc7, 0xa5, 0x76, 0x50, -0x3d, 0x41, 0x5e, 0x84, 0xa9, 0xc0, 0xb7, 0xa0, 0x82, 0x66, 0x58, 0x58, 0x60, 0x6e, 0x7e, 0x8e, -0x9b, 0xa1, 0x9e, 0x97, 0x87, 0x71, 0x62, 0x57, 0x54, 0x61, 0x7c, 0xa1, 0xbb, 0xbd, 0xa9, 0x84, -0x59, 0x3c, 0x3b, 0x57, 0x81, 0xa8, 0xc2, 0xc4, 0xac, 0x81, 0x58, 0x3d, 0x3a, 0x52, 0x75, 0x98, -0xb4, 0xc2, 0xbb, 0xa1, 0x7b, 0x5a, 0x44, 0x3c, 0x4d, 0x6e, 0x93, 0xb0, 0xbc, 0xba, 0xa4, 0x80, -0x5c, 0x45, 0x42, 0x52, 0x72, 0x98, 0xb2, 0xba, 0xaf, 0x92, 0x6e, 0x52, 0x45, 0x48, 0x5a, 0x7a, -0x9c, 0xb1, 0xb8, 0xaf, 0x99, 0x7b, 0x60, 0x51, 0x51, 0x63, 0x7b, 0x96, 0xa8, 0xa8, 0x99, 0x82, -0x6c, 0x5e, 0x59, 0x61, 0x76, 0x90, 0xa3, 0xa6, 0x9c, 0x89, 0x6f, 0x5a, 0x4d, 0x4f, 0x64, 0x82, -0xa0, 0xb5, 0xb8, 0xad, 0x93, 0x72, 0x58, 0x49, 0x4d, 0x64, 0x83, 0x9f, 0xb3, 0xb5, 0xa5, 0x8b, -0x6f, 0x59, 0x54, 0x5b, 0x67, 0x77, 0x8b, 0x98, 0x9d, 0x97, 0x8c, 0x7e, 0x71, 0x6a, 0x68, 0x6c, -0x76, 0x86, 0x92, 0x9a, 0x9d, 0x98, 0x8a, 0x75, 0x61, 0x54, 0x55, 0x65, 0x83, 0xa0, 0xaf, 0xaa, -0x99, 0x86, 0x75, 0x69, 0x5f, 0x5e, 0x67, 0x79, 0x8c, 0x96, 0x95, 0x8b, 0x80, 0x78, 0x76, 0x78, -0x79, 0x76, 0x77, 0x80, 0x88, 0x89, 0x86, 0x86, 0x86, 0x84, 0x81, 0x7b, 0x78, 0x78, 0x7e, 0x83, -0x81, 0x7c, 0x79, 0x7b, 0x84, 0x88, 0x86, 0x83, 0x80, 0x80, 0x82, 0x7e, 0x77, 0x74, 0x7b, 0x89, -0x91, 0x89, 0x7a, 0x6f, 0x6c, 0x70, 0x7a, 0x84, 0x85, 0x81, 0x84, 0x89, 0x8e, 0x90, 0x8e, 0x8a, -0x84, 0x7b, 0x6e, 0x63, 0x62, 0x71, 0x8c, 0xa5, 0xad, 0xa1, 0x8a, 0x73, 0x62, 0x58, 0x57, 0x5f, -0x70, 0x8d, 0xa7, 0xb3, 0xae, 0x9c, 0x83, 0x68, 0x51, 0x41, 0x3e, 0x4f, 0x75, 0xa3, 0xc6, 0xd2, -0xc3, 0x9b, 0x6b, 0x46, 0x35, 0x3a, 0x55, 0x7d, 0xa9, 0xc3, 0xc4, 0xb4, 0x95, 0x73, 0x5b, 0x4a, -0x44, 0x4b, 0x5c, 0x79, 0x9b, 0xb7, 0xc2, 0xb5, 0x99, 0x7a, 0x5f, 0x4b, 0x45, 0x4d, 0x62, 0x7d, -0x9a, 0xae, 0xb1, 0xaa, 0x9a, 0x8a, 0x7b, 0x64, 0x4d, 0x45, 0x50, 0x6b, 0x8e, 0xaa, 0xb4, 0xad, -0x9d, 0x82, 0x68, 0x58, 0x53, 0x5b, 0x6d, 0x85, 0x97, 0xa4, 0xa9, 0xa4, 0x97, 0x81, 0x66, 0x56, -0x54, 0x62, 0x78, 0x8e, 0x9d, 0xa3, 0x9c, 0x8e, 0x80, 0x75, 0x6d, 0x65, 0x63, 0x6a, 0x77, 0x89, -0x97, 0x9d, 0x98, 0x8c, 0x7c, 0x6f, 0x67, 0x65, 0x67, 0x6e, 0x7d, 0x92, 0xa3, 0xa8, 0xa2, 0x95, -0x84, 0x71, 0x63, 0x5d, 0x5f, 0x68, 0x78, 0x8a, 0x95, 0x98, 0x93, 0x88, 0x7e, 0x79, 0x76, 0x76, -0x77, 0x7a, 0x81, 0x84, 0x85, 0x84, 0x82, 0x80, 0x7e, 0x81, 0x82, 0x81, 0x7b, 0x77, 0x75, 0x77, -0x7c, 0x85, 0x8e, 0x96, 0x96, 0x8c, 0x7e, 0x6f, 0x64, 0x61, 0x66, 0x75, 0x85, 0x8c, 0x91, 0x90, -0x8b, 0x86, 0x80, 0x7a, 0x78, 0x78, 0x7c, 0x81, 0x81, 0x7b, 0x79, 0x79, 0x7d, 0x82, 0x83, 0x80, -0x79, 0x76, 0x79, 0x82, 0x8a, 0x90, 0x92, 0x8e, 0x88, 0x7c, 0x6e, 0x66, 0x66, 0x6b, 0x7b, 0x8f, -0x99, 0x97, 0x8e, 0x86, 0x7e, 0x79, 0x75, 0x71, 0x6f, 0x73, 0x7b, 0x85, 0x8b, 0x8d, 0x8b, 0x88, -0x82, 0x7a, 0x72, 0x6f, 0x72, 0x78, 0x7d, 0x81, 0x79, 0x69, 0x5b, 0x56, 0x64, 0x83, 0xa7, 0xc6, -0xce, 0xc2, 0xa4, 0x7e, 0x5d, 0x48, 0x45, 0x52, 0x67, 0x7e, 0x91, 0x9c, 0xa1, 0x9d, 0x91, 0x7e, -0x66, 0x4f, 0x3f, 0x3f, 0x51, 0x75, 0xa0, 0xc1, 0xd2, 0xc7, 0xa7, 0x80, 0x5b, 0x49, 0x4c, 0x5d, -0x7b, 0x97, 0xa9, 0xaf, 0xa7, 0x9a, 0x87, 0x72, 0x60, 0x52, 0x49, 0x4b, 0x58, 0x71, 0x92, 0xaa, -0xb4, 0xac, 0x97, 0x7c, 0x65, 0x5a, 0x5f, 0x6e, 0x82, 0x93, 0x9f, 0xa0, 0x9a, 0x90, 0x85, 0x7a, -0x6f, 0x64, 0x5d, 0x5b, 0x61, 0x70, 0x84, 0x93, 0x9b, 0x9d, 0x97, 0x8b, 0x80, 0x76, 0x70, 0x70, -0x6e, 0x6c, 0x6c, 0x6f, 0x7b, 0x8c, 0x9d, 0xa6, 0xa3, 0x98, 0x89, 0x7a, 0x6b, 0x5f, 0x5c, 0x62, -0x6e, 0x80, 0x8e, 0x99, 0xa2, 0xa5, 0x9c, 0x84, 0x66, 0x53, 0x50, 0x5d, 0x74, 0x8e, 0x9e, 0xa2, -0x9a, 0x8e, 0x84, 0x80, 0x7d, 0x7b, 0x74, 0x65, 0x5a, 0x5d, 0x72, 0x90, 0xa7, 0xb1, 0xa9, 0x95, -0x7b, 0x69, 0x62, 0x64, 0x6c, 0x78, 0x84, 0x89, 0x8b, 0x8d, 0x8e, 0x8c, 0x8a, 0x84, 0x7a, 0x73, -0x6d, 0x6b, 0x6f, 0x72, 0x6e, 0x66, 0x5d, 0x5b, 0x6b, 0x89, 0xab, 0xc3, 0xc7, 0xba, 0xa1, 0x83, -0x6d, 0x63, 0x62, 0x67, 0x6d, 0x70, 0x72, 0x77, 0x7d, 0x85, 0x8b, 0x8a, 0x84, 0x7b, 0x72, 0x6a, -0x67, 0x69, 0x6e, 0x75, 0x7a, 0x7c, 0x82, 0x8c, 0x96, 0x9e, 0xa2, 0x9e, 0x95, 0x8a, 0x81, 0x7b, -0x7a, 0x7b, 0x79, 0x75, 0x71, 0x6e, 0x71, 0x79, 0x7d, 0x7e, 0x7a, 0x72, 0x70, 0x72, 0x76, 0x83, -0x8e, 0x93, 0x93, 0x8c, 0x80, 0x77, 0x71, 0x70, 0x76, 0x7e, 0x87, 0x8d, 0x92, 0x95, 0x93, 0x8c, -0x80, 0x71, 0x66, 0x60, 0x60, 0x66, 0x72, 0x81, 0x8d, 0x93, 0x96, 0x96, 0x94, 0x8f, 0x87, 0x7e, -0x74, 0x69, 0x61, 0x62, 0x6e, 0x7c, 0x86, 0x8d, 0x8f, 0x8c, 0x89, 0x89, 0x8c, 0x8d, 0x8a, 0x82, -0x78, 0x6c, 0x67, 0x6a, 0x70, 0x78, 0x81, 0x86, 0x8c, 0x90, 0x92, 0x93, 0x8e, 0x85, 0x79, 0x6e, -0x67, 0x66, 0x6b, 0x75, 0x84, 0x90, 0x96, 0x96, 0x91, 0x8c, 0x85, 0x79, 0x6f, 0x66, 0x63, 0x67, -0x6f, 0x7c, 0x8c, 0x99, 0x9e, 0x9d, 0x96, 0x89, 0x79, 0x6f, 0x69, 0x67, 0x6b, 0x74, 0x7e, 0x88, -0x8b, 0x8a, 0x85, 0x7b, 0x71, 0x6a, 0x6a, 0x71, 0x80, 0x8e, 0x98, 0x9f, 0x9f, 0x95, 0x8b, 0x7c, -0x6f, 0x69, 0x66, 0x68, 0x70, 0x78, 0x83, 0x8b, 0x90, 0x92, 0x8e, 0x87, 0x7c, 0x72, 0x6d, 0x6c, -0x70, 0x78, 0x83, 0x8d, 0x93, 0x94, 0x90, 0x8a, 0x83, 0x7a, 0x73, 0x6f, 0x6f, 0x73, 0x79, 0x82, -0x88, 0x8b, 0x8c, 0x8a, 0x85, 0x80, 0x7c, 0x78, 0x76, 0x76, 0x77, 0x7a, 0x7d, 0x80, 0x83, 0x87, -0x8b, 0x8b, 0x8c, 0x8a, 0x84, 0x7c, 0x74, 0x6d, 0x6c, 0x6f, 0x76, 0x82, 0x8b, 0x93, 0x96, 0x95, -0x8f, 0x87, 0x7b, 0x70, 0x69, 0x66, 0x69, 0x70, 0x7a, 0x86, 0x8e, 0x93, 0x94, 0x8d, 0x85, 0x7c, -0x75, 0x72, 0x72, 0x74, 0x77, 0x7b, 0x80, 0x83, 0x87, 0x87, 0x87, 0x84, 0x80, 0x7d, 0x7a, 0x77, -0x77, 0x7a, 0x7d, 0x80, 0x83, 0x83, 0x81, 0x7d, 0x7b, 0x7a, 0x7c, 0x7d, 0x82, 0x85, 0x87, 0x87, -0x85, 0x82, 0x7c, 0x78, 0x75, 0x75, 0x78, 0x80, 0x86, 0x8a, 0x8e, 0x8e, 0x89, 0x83, 0x7b, 0x72, -0x6e, 0x6e, 0x70, 0x77, 0x80, 0x88, 0x8e, 0x90, 0x8d, 0x87, 0x7e, 0x74, 0x6e, 0x6c, 0x70, 0x79, -0x85, 0x8a, 0x8e, 0x8e, 0x88, 0x83, 0x7c, 0x77, 0x74, 0x75, 0x77, 0x7b, 0x83, 0x87, 0x88, 0x87, -0x82, 0x7d, 0x7d, 0x7c, 0x7c, 0x7e, 0x80, 0x80, 0x80, 0x7d, 0x7c, 0x7a, 0x7a, 0x7d, 0x80, 0x83, -0x85, 0x86, 0x83, 0x81, 0x7c, 0x7a, 0x7a, 0x7a, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x81, -0x83, 0x84, 0x83, 0x83, 0x82, 0x7e, 0x7a, 0x77, 0x73, 0x73, 0x76, 0x79, 0x80, 0x87, 0x8b, 0x8d, -0x8a, 0x85, 0x81, 0x7a, 0x75, 0x74, 0x74, 0x76, 0x7a, 0x7e, 0x84, 0x88, 0x8a, 0x8a, 0x88, 0x84, -0x7d, 0x77, 0x73, 0x72, 0x75, 0x7b, 0x83, 0x88, 0x8c, 0x8b, 0x86, 0x81, 0x7a, 0x76, 0x75, 0x76, -0x78, 0x7b, 0x81, 0x86, 0x89, 0x89, 0x87, 0x82, 0x7b, 0x76, 0x74, 0x75, 0x78, 0x7d, 0x83, 0x84, -0x85, 0x84, 0x82, 0x80, 0x7c, 0x7b, 0x7c, 0x7b, 0x7d, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, -0x7e, 0x80, 0x82, 0x83, 0x82, 0x82, 0x80, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x81, 0x81, 0x7e, 0x7e, -0x7e, 0x7c, 0x7d, 0x7d, 0x7d, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7e, 0x7b, 0x7a, 0x7c, 0x7e, 0x83, -0x83, 0x82, 0x82, 0x80, 0x80, 0x81, 0x83, 0x85, 0x84, 0x82, 0x80, 0x7d, 0x7b, 0x79, 0x78, 0x78, -0x7a, 0x7d, 0x82, 0x87, 0x88, 0x87, 0x83, 0x7d, 0x79, 0x79, 0x79, 0x7c, 0x80, 0x83, 0x83, 0x82, -0x81, 0x7c, 0x7c, 0x7d, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x82, 0x82, 0x7e, 0x7c, 0x7c, 0x7c, 0x7e, -0x80, 0x81, 0x82, 0x83, 0x81, 0x7e, 0x7c, 0x7b, 0x7c, 0x7d, 0x81, 0x85, 0x86, 0x85, 0x83, 0x80, -0x7b, 0x78, 0x77, 0x77, 0x76, 0x79, 0x81, 0x86, 0x8a, 0x8b, 0x88, 0x81, 0x7b, 0x79, 0x78, 0x7b, -0x7d, 0x7c, 0x7b, 0x7c, 0x7d, 0x82, 0x87, 0x88, 0x86, 0x81, 0x7c, 0x7a, 0x7b, 0x7e, 0x82, 0x83, -0x81, 0x7d, 0x7c, 0x7d, 0x81, 0x82, 0x81, 0x80, 0x81, 0x80, 0x7d, 0x7c, 0x7b, 0x7a, 0x7c, 0x80, -0x81, 0x7e, 0x7b, 0x7c, 0x7c, 0x79, 0x78, 0x7b, 0x7d, 0x80, 0x83, 0x84, 0x84, 0x83, 0x7e, 0x7a, -0x79, 0x78, 0x76, 0x77, 0x7b, 0x84, 0x88, 0x87, 0x85, 0x83, 0x80, 0x7d, 0x7c, 0x7d, 0x7c, 0x7b, -0x7c, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x82, 0x86, 0x88, 0x86, 0x81, 0x7b, 0x79, 0x79, 0x78, -0x79, 0x7a, 0x7c, 0x80, 0x84, 0x87, 0x86, 0x87, 0x85, 0x81, 0x7a, 0x75, 0x74, 0x77, 0x7b, 0x81, -0x84, 0x84, 0x84, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, 0x80, 0x7b, 0x7b, 0x7b, 0x7a, 0x7c, 0x80, -0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x80, -0x7e, 0x7e, 0x7d, 0x7d, 0x80, 0x80, 0x80, 0x81, 0x83, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x79, -0x77, 0x76, 0x77, 0x7b, 0x83, 0x8a, 0x8f, 0x8f, 0x87, 0x80, 0x78, 0x74, 0x73, 0x74, 0x7b, 0x80, -0x83, 0x86, 0x85, 0x85, 0x84, 0x83, 0x80, 0x7c, 0x7a, 0x7b, 0x7c, 0x81, 0x85, 0x87, 0x87, 0x88, -0x87, 0x83, 0x7e, 0x78, 0x77, 0x77, 0x77, 0x7b, 0x7e, 0x85, 0x89, 0x8b, 0x8c, 0x89, 0x82, 0x79, -0x71, 0x70, 0x73, 0x76, 0x76, 0x76, 0x78, 0x80, 0x88, 0x8e, 0x90, 0x8b, 0x83, 0x78, 0x70, 0x6f, -0x70, 0x77, 0x83, 0x88, 0x8a, 0x89, 0x85, 0x82, 0x81, 0x7e, 0x7a, 0x77, 0x7b, 0x82, 0x88, 0x87, -0x7e, 0x76, 0x72, 0x75, 0x7b, 0x84, 0x8b, 0x8c, 0x87, 0x81, 0x79, 0x78, 0x7c, 0x81, 0x83, 0x7d, -0x7a, 0x79, 0x7c, 0x85, 0x88, 0x85, 0x7e, 0x77, 0x74, 0x79, 0x7d, 0x81, 0x84, 0x83, 0x80, 0x7e, -0x7d, 0x7a, 0x7c, 0x82, 0x80, 0x7c, 0x79, 0x78, 0x7e, 0x84, 0x84, 0x83, 0x82, 0x81, 0x7e, 0x7d, -0x7c, 0x7d, 0x7e, 0x7a, 0x7b, 0x7e, 0x7e, 0x80, 0x82, 0x84, 0x87, 0x89, 0x86, 0x82, 0x81, 0x7d, -0x7a, 0x78, 0x7a, 0x7e, 0x81, 0x82, 0x84, 0x83, 0x82, 0x82, 0x82, 0x80, 0x80, 0x7e, 0x79, 0x78, -0x79, 0x7c, 0x7e, 0x7e, 0x7e, 0x81, 0x80, 0x7c, 0x7b, 0x7c, 0x7e, 0x81, 0x81, 0x83, 0x83, 0x82, -0x82, 0x7e, 0x7d, 0x7b, 0x79, 0x7b, 0x80, 0x83, 0x84, 0x88, 0x86, 0x82, 0x7d, 0x77, 0x76, 0x79, -0x7d, 0x82, 0x85, 0x87, 0x89, 0x88, 0x87, 0x84, 0x79, 0x74, 0x6f, 0x6c, 0x74, 0x7c, 0x87, 0x8d, -0x8b, 0x8a, 0x84, 0x7d, 0x7a, 0x77, 0x74, 0x74, 0x76, 0x77, 0x7d, 0x84, 0x87, 0x87, 0x85, 0x80, -0x7d, 0x81, 0x81, 0x81, 0x7e, 0x78, 0x78, 0x77, 0x79, 0x7e, 0x84, 0x85, 0x83, 0x82, 0x7e, 0x7e, -0x84, 0x87, 0x87, 0x86, 0x81, 0x79, 0x76, 0x7a, 0x7c, 0x80, 0x82, 0x80, 0x80, 0x82, 0x88, 0x8e, -0x8e, 0x8b, 0x83, 0x7a, 0x72, 0x6e, 0x6d, 0x72, 0x7c, 0x86, 0x8a, 0x8c, 0x8d, 0x8a, 0x88, 0x83, -0x7b, 0x72, 0x6b, 0x6a, 0x6d, 0x77, 0x84, 0x8c, 0x91, 0x8f, 0x87, 0x80, 0x7d, 0x7c, 0x7d, 0x7e, -0x7a, 0x78, 0x77, 0x77, 0x7b, 0x82, 0x85, 0x87, 0x88, 0x85, 0x86, 0x86, 0x85, 0x84, 0x80, 0x7b, -0x78, 0x76, 0x77, 0x7a, 0x80, 0x80, 0x81, 0x83, 0x83, 0x85, 0x87, 0x87, 0x85, 0x80, 0x7b, 0x76, -0x75, 0x77, 0x76, 0x78, 0x7c, 0x7e, 0x81, 0x84, 0x86, 0x87, 0x8a, 0x8a, 0x87, 0x81, 0x7c, 0x78, -0x73, 0x74, 0x75, 0x78, 0x84, 0x8d, 0x8e, 0x8c, 0x87, 0x7e, 0x79, 0x7a, 0x7c, 0x81, 0x80, 0x7d, -0x7a, 0x7a, 0x7e, 0x83, 0x87, 0x89, 0x86, 0x84, 0x80, 0x7b, 0x78, 0x73, 0x72, 0x74, 0x77, 0x81, -0x8b, 0x8f, 0x8e, 0x86, 0x7b, 0x73, 0x6e, 0x71, 0x78, 0x7b, 0x7e, 0x81, 0x80, 0x82, 0x86, 0x89, -0x8a, 0x86, 0x7c, 0x75, 0x74, 0x77, 0x7b, 0x81, 0x84, 0x83, 0x82, 0x7e, 0x81, 0x85, 0x87, 0x88, -0x86, 0x80, 0x7a, 0x77, 0x77, 0x7b, 0x7e, 0x82, 0x84, 0x83, 0x83, 0x83, 0x83, 0x83, 0x80, 0x7d, -0x7c, 0x7b, 0x7c, 0x81, 0x83, 0x83, 0x80, 0x79, 0x74, 0x70, 0x70, 0x74, 0x7a, 0x86, 0x8f, 0x92, -0x90, 0x89, 0x7d, 0x74, 0x71, 0x70, 0x74, 0x78, 0x7a, 0x7c, 0x7d, 0x7c, 0x7d, 0x82, 0x86, 0x8c, -0x8f, 0x8d, 0x88, 0x7d, 0x74, 0x73, 0x72, 0x76, 0x7a, 0x7b, 0x82, 0x86, 0x89, 0x8e, 0x8e, 0x8b, -0x86, 0x7b, 0x76, 0x75, 0x78, 0x7e, 0x85, 0x86, 0x83, 0x80, 0x7c, 0x7c, 0x80, 0x84, 0x87, 0x87, -0x84, 0x82, 0x80, 0x80, 0x7e, 0x7a, 0x75, 0x73, 0x72, 0x76, 0x7c, 0x82, 0x86, 0x87, 0x85, 0x86, -0x88, 0x86, 0x81, 0x7b, 0x75, 0x6f, 0x6e, 0x72, 0x7a, 0x82, 0x8a, 0x90, 0x91, 0x8e, 0x88, 0x84, -0x7b, 0x76, 0x72, 0x6f, 0x70, 0x78, 0x84, 0x8b, 0x8e, 0x8a, 0x7d, 0x73, 0x71, 0x76, 0x82, 0x8e, -0x92, 0x8b, 0x7e, 0x71, 0x6c, 0x70, 0x78, 0x81, 0x82, 0x7e, 0x7a, 0x7b, 0x80, 0x89, 0x92, 0x92, -0x89, 0x7c, 0x70, 0x6b, 0x6f, 0x76, 0x7b, 0x7e, 0x80, 0x82, 0x87, 0x8d, 0x92, 0x91, 0x8c, 0x82, -0x75, 0x6f, 0x6d, 0x6f, 0x73, 0x79, 0x80, 0x86, 0x8d, 0x93, 0x93, 0x8d, 0x84, 0x76, 0x6b, 0x6a, -0x73, 0x7c, 0x88, 0x8d, 0x8b, 0x88, 0x83, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7c, 0x7a, 0x78, 0x78, -0x78, 0x76, 0x78, 0x7c, 0x85, 0x91, 0x96, 0x91, 0x85, 0x72, 0x67, 0x68, 0x6f, 0x77, 0x80, 0x82, -0x80, 0x7e, 0x81, 0x88, 0x93, 0x99, 0x94, 0x88, 0x78, 0x69, 0x66, 0x6e, 0x78, 0x80, 0x84, 0x82, -0x82, 0x86, 0x8d, 0x91, 0x92, 0x8e, 0x84, 0x7b, 0x74, 0x6e, 0x71, 0x77, 0x7c, 0x7e, 0x80, 0x81, -0x82, 0x86, 0x87, 0x87, 0x85, 0x83, 0x80, 0x7c, 0x7b, 0x7b, 0x7a, 0x77, 0x76, 0x77, 0x79, 0x7b, -0x7e, 0x81, 0x84, 0x86, 0x86, 0x85, 0x86, 0x85, 0x81, 0x80, 0x79, 0x75, 0x73, 0x71, 0x75, 0x7a, -0x80, 0x88, 0x8f, 0x95, 0x93, 0x85, 0x74, 0x67, 0x65, 0x74, 0x8c, 0x9c, 0x9e, 0x89, 0x69, 0x53, -0x50, 0x66, 0x89, 0xa6, 0xae, 0x9d, 0x81, 0x6a, 0x65, 0x76, 0x8d, 0x97, 0x8b, 0x6f, 0x5b, 0x5a, -0x6c, 0x88, 0x9e, 0xa2, 0x91, 0x7e, 0x74, 0x76, 0x83, 0x8f, 0x8f, 0x83, 0x71, 0x65, 0x64, 0x73, -0x89, 0x97, 0x9a, 0x90, 0x80, 0x76, 0x76, 0x7b, 0x7e, 0x7d, 0x77, 0x74, 0x78, 0x81, 0x8a, 0x8f, -0x8c, 0x83, 0x77, 0x70, 0x6e, 0x76, 0x84, 0x8e, 0x94, 0x92, 0x8c, 0x87, 0x84, 0x84, 0x83, 0x7c, -0x72, 0x66, 0x58, 0x4b, 0x44, 0x46, 0x5b, 0x81, 0xad, 0xce, 0xd4, 0xba, 0x93, 0x73, 0x66, 0x66, -0x6b, 0x6c, 0x67, 0x66, 0x69, 0x72, 0x84, 0x9e, 0xba, 0xc7, 0xb8, 0x93, 0x67, 0x54, 0x57, 0x68, -0x73, 0x6d, 0x60, 0x57, 0x62, 0x7c, 0x98, 0xa6, 0xa9, 0xa2, 0x92, 0x7b, 0x68, 0x63, 0x6b, 0x78, -0x83, 0x85, 0x80, 0x7d, 0x86, 0x92, 0x98, 0x94, 0x87, 0x7c, 0x77, 0x76, 0x78, 0x7a, 0x7b, 0x7a, -0x7b, 0x7d, 0x7c, 0x7a, 0x79, 0x7d, 0x80, 0x80, 0x80, 0x7c, 0x7c, 0x83, 0x8a, 0x8d, 0x8c, 0x8a, -0x87, 0x86, 0x85, 0x80, 0x7a, 0x79, 0x7b, 0x7c, 0x7b, 0x7c, 0x80, 0x84, 0x8a, 0x8b, 0x89, 0x84, -0x77, 0x68, 0x59, 0x53, 0x55, 0x64, 0x81, 0x9b, 0xa9, 0xab, 0xa5, 0x9a, 0x8e, 0x87, 0x7c, 0x73, -0x6d, 0x6b, 0x69, 0x6d, 0x76, 0x83, 0x91, 0x96, 0x94, 0x89, 0x77, 0x6e, 0x6c, 0x6e, 0x72, 0x73, -0x76, 0x7a, 0x7d, 0x86, 0x8d, 0x8e, 0x8f, 0x8a, 0x84, 0x7c, 0x75, 0x76, 0x7e, 0x88, 0x8f, 0x90, -0x8a, 0x85, 0x7e, 0x79, 0x76, 0x73, 0x74, 0x77, 0x79, 0x81, 0x86, 0x87, 0x89, 0x88, 0x85, 0x83, -0x80, 0x7a, 0x75, 0x70, 0x69, 0x5f, 0x56, 0x54, 0x60, 0x7e, 0xa4, 0xc7, 0xd1, 0xc3, 0xa9, 0x86, -0x6b, 0x5d, 0x57, 0x56, 0x57, 0x5e, 0x68, 0x75, 0x86, 0x95, 0xa1, 0xa5, 0x9a, 0x84, 0x68, 0x53, -0x50, 0x59, 0x6c, 0x7b, 0x83, 0x8c, 0x97, 0xa3, 0xab, 0xa6, 0x9b, 0x8d, 0x79, 0x6b, 0x5e, 0x5b, -0x66, 0x76, 0x85, 0x8e, 0x8f, 0x8c, 0x86, 0x81, 0x7b, 0x70, 0x64, 0x5f, 0x64, 0x71, 0x85, 0x96, -0xa1, 0xa5, 0xa1, 0x93, 0x81, 0x6f, 0x62, 0x5e, 0x63, 0x6f, 0x79, 0x87, 0x94, 0x99, 0x98, 0x93, -0x8b, 0x82, 0x7c, 0x79, 0x75, 0x71, 0x68, 0x5d, 0x5a, 0x63, 0x73, 0x8a, 0xa2, 0xb6, 0xba, 0xae, -0x99, 0x7a, 0x5a, 0x40, 0x30, 0x2c, 0x3b, 0x5e, 0x8b, 0xb8, 0xd9, 0xe6, 0xdd, 0xc1, 0x99, 0x6a, -0x43, 0x2e, 0x2c, 0x3c, 0x59, 0x77, 0x92, 0xa8, 0xb5, 0xb8, 0xaf, 0x9a, 0x7c, 0x5d, 0x42, 0x34, -0x38, 0x50, 0x75, 0xa6, 0xd0, 0xe1, 0xd9, 0xba, 0x90, 0x64, 0x47, 0x3b, 0x3c, 0x4b, 0x5f, 0x77, -0x91, 0xa7, 0xb3, 0xad, 0x9d, 0x86, 0x68, 0x51, 0x48, 0x4f, 0x64, 0x7e, 0x9b, 0xb2, 0xbb, 0xba, -0xb1, 0x9c, 0x82, 0x6a, 0x55, 0x4b, 0x49, 0x4f, 0x5a, 0x69, 0x75, 0x7c, 0x7e, 0x87, 0x9b, 0xb3, -0xc4, 0xbe, 0x9d, 0x70, 0x53, 0x4d, 0x5b, 0x74, 0x85, 0x8e, 0x95, 0x99, 0x9a, 0x91, 0x81, 0x76, -0x6c, 0x62, 0x57, 0x4e, 0x53, 0x69, 0x8a, 0xa5, 0xb0, 0xa9, 0x9b, 0x8c, 0x83, 0x80, 0x74, 0x6d, -0x6f, 0x73, 0x78, 0x7e, 0x87, 0x91, 0x97, 0x98, 0x90, 0x7e, 0x6e, 0x61, 0x60, 0x68, 0x71, 0x7a, -0x84, 0x8f, 0x99, 0x9d, 0x9b, 0x93, 0x89, 0x80, 0x74, 0x6b, 0x64, 0x63, 0x6d, 0x7c, 0x8c, 0x96, -0x9a, 0x99, 0x91, 0x89, 0x7d, 0x72, 0x6f, 0x72, 0x79, 0x83, 0x8a, 0x8b, 0x87, 0x82, 0x7a, 0x6f, -0x64, 0x5e, 0x61, 0x70, 0x83, 0x97, 0xab, 0xbb, 0xc1, 0xb5, 0x93, 0x61, 0x39, 0x28, 0x30, 0x4e, -0x79, 0xa2, 0xbd, 0xc9, 0xc2, 0xaa, 0x86, 0x62, 0x4a, 0x40, 0x44, 0x57, 0x72, 0x94, 0xb5, 0xcb, -0xcd, 0xb5, 0x90, 0x6a, 0x4a, 0x39, 0x3a, 0x4b, 0x65, 0x8a, 0xaa, 0xbb, 0xbe, 0xb2, 0x98, 0x7a, -0x5d, 0x43, 0x39, 0x40, 0x5b, 0x83, 0xac, 0xca, 0xd3, 0xc5, 0xa3, 0x79, 0x53, 0x36, 0x30, 0x3d, -0x5a, 0x81, 0xa1, 0xb8, 0xc4, 0xba, 0xa6, 0x89, 0x67, 0x50, 0x45, 0x45, 0x50, 0x5f, 0x73, 0x84, -0x97, 0xab, 0xbd, 0xc7, 0xbf, 0xa4, 0x74, 0x48, 0x33, 0x36, 0x53, 0x78, 0x93, 0xa5, 0xac, 0xa9, -0x9a, 0x86, 0x6f, 0x5d, 0x52, 0x51, 0x56, 0x64, 0x7b, 0x98, 0xaf, 0xb8, 0xb1, 0x99, 0x7a, 0x64, -0x5a, 0x5c, 0x66, 0x72, 0x82, 0x92, 0x9a, 0x98, 0x92, 0x88, 0x81, 0x77, 0x6b, 0x64, 0x62, 0x67, -0x78, 0x8a, 0x94, 0x97, 0x92, 0x8d, 0x86, 0x7d, 0x77, 0x76, 0x78, 0x7c, 0x81, 0x81, 0x7e, 0x7b, -0x7a, 0x7c, 0x7e, 0x7e, 0x84, 0x88, 0x89, 0x88, 0x85, 0x84, 0x85, 0x89, 0x8d, 0x8e, 0x87, 0x75, -0x63, 0x57, 0x5a, 0x6a, 0x80, 0x93, 0x9d, 0x98, 0x8c, 0x83, 0x80, 0x85, 0x8c, 0x8b, 0x78, 0x59, -0x3f, 0x39, 0x51, 0x81, 0xb8, 0xde, 0xe0, 0xc2, 0x92, 0x60, 0x3a, 0x2a, 0x33, 0x4e, 0x6e, 0x8f, -0xa9, 0xba, 0xc1, 0xb6, 0x9b, 0x75, 0x51, 0x38, 0x38, 0x50, 0x76, 0xa0, 0xbd, 0xc9, 0xc0, 0xa5, -0x84, 0x62, 0x4d, 0x44, 0x4a, 0x5d, 0x75, 0x8f, 0xa7, 0xb1, 0xab, 0x9c, 0x83, 0x6c, 0x5e, 0x5a, -0x5f, 0x6d, 0x82, 0x94, 0xa0, 0xa3, 0x9c, 0x8f, 0x7c, 0x6a, 0x61, 0x5f, 0x65, 0x6c, 0x75, 0x7d, -0x81, 0x84, 0x82, 0x85, 0x90, 0x99, 0xa0, 0x99, 0x88, 0x73, 0x65, 0x68, 0x73, 0x7c, 0x83, 0x85, -0x86, 0x89, 0x88, 0x83, 0x7a, 0x72, 0x6f, 0x6d, 0x6c, 0x70, 0x7a, 0x8a, 0x98, 0x9d, 0x96, 0x8a, -0x7d, 0x73, 0x6f, 0x70, 0x74, 0x7a, 0x82, 0x89, 0x8c, 0x89, 0x84, 0x80, 0x7c, 0x76, 0x6e, 0x66, -0x67, 0x73, 0x81, 0x8f, 0x97, 0x93, 0x8c, 0x85, 0x81, 0x7a, 0x76, 0x79, 0x81, 0x87, 0x89, 0x87, -0x82, 0x7b, 0x73, 0x6c, 0x69, 0x6c, 0x72, 0x82, 0x90, 0x96, 0x96, 0x94, 0x94, 0x96, 0x90, 0x82, -0x73, 0x68, 0x65, 0x66, 0x68, 0x6b, 0x6f, 0x72, 0x73, 0x71, 0x6f, 0x7c, 0x99, 0xb2, 0xb6, 0xa5, -0x8d, 0x77, 0x66, 0x5f, 0x60, 0x64, 0x6c, 0x81, 0x9c, 0xab, 0xa7, 0x97, 0x7b, 0x5b, 0x46, 0x45, -0x55, 0x71, 0x8f, 0xa2, 0xac, 0xaa, 0x9e, 0x8e, 0x7c, 0x6f, 0x63, 0x61, 0x6e, 0x87, 0xa0, 0xad, -0xa8, 0x96, 0x78, 0x5b, 0x4c, 0x49, 0x55, 0x69, 0x85, 0x9f, 0xab, 0xa7, 0x97, 0x82, 0x6d, 0x63, -0x65, 0x71, 0x83, 0x92, 0x9c, 0x9c, 0x92, 0x82, 0x74, 0x6a, 0x63, 0x60, 0x64, 0x6d, 0x77, 0x7b, -0x78, 0x6e, 0x69, 0x7b, 0xa2, 0xc6, 0xcf, 0xb0, 0x7a, 0x4f, 0x45, 0x59, 0x7c, 0x99, 0xa1, 0x9b, -0x8e, 0x7a, 0x66, 0x58, 0x53, 0x5e, 0x70, 0x80, 0x87, 0x90, 0x9d, 0xa5, 0x9f, 0x87, 0x69, 0x57, -0x56, 0x68, 0x81, 0x97, 0xab, 0xb1, 0xac, 0x9e, 0x7b, 0x55, 0x41, 0x46, 0x5b, 0x74, 0x90, 0xa5, -0xaf, 0xac, 0x98, 0x79, 0x5d, 0x4d, 0x50, 0x62, 0x7e, 0x9c, 0xb1, 0xbe, 0xba, 0x9c, 0x6f, 0x48, -0x38, 0x3e, 0x57, 0x78, 0x95, 0xac, 0xb6, 0xb3, 0xa2, 0x84, 0x63, 0x4d, 0x4b, 0x5b, 0x78, 0x99, -0xb0, 0xb3, 0xa1, 0x7e, 0x5a, 0x45, 0x4c, 0x65, 0x81, 0x8f, 0x94, 0x9b, 0xa2, 0x9d, 0x8b, 0x73, -0x5c, 0x48, 0x46, 0x5b, 0x7e, 0xa6, 0xc0, 0xc3, 0xa7, 0x7d, 0x5e, 0x57, 0x62, 0x73, 0x82, 0x8a, -0x91, 0x92, 0x8f, 0x83, 0x70, 0x63, 0x5e, 0x6a, 0x7c, 0x92, 0x9e, 0xa2, 0x9d, 0x89, 0x6f, 0x60, -0x61, 0x6f, 0x80, 0x8e, 0x98, 0x9c, 0x9a, 0x91, 0x82, 0x6c, 0x5d, 0x5c, 0x65, 0x74, 0x85, 0x91, -0x96, 0x93, 0x8e, 0x83, 0x77, 0x70, 0x6a, 0x6a, 0x75, 0x84, 0x90, 0x9a, 0x9d, 0x95, 0x89, 0x77, -0x68, 0x61, 0x5a, 0x5d, 0x6c, 0x86, 0xa5, 0xbc, 0xbd, 0xa1, 0x73, 0x50, 0x41, 0x4e, 0x70, 0x95, -0xab, 0xac, 0xa0, 0x8e, 0x79, 0x69, 0x61, 0x5e, 0x62, 0x6f, 0x82, 0x93, 0xa0, 0xa5, 0x9d, 0x88, -0x6b, 0x51, 0x46, 0x51, 0x70, 0x97, 0xb4, 0xbe, 0xb2, 0x96, 0x72, 0x57, 0x53, 0x5d, 0x6d, 0x81, -0x8e, 0x93, 0x8d, 0x84, 0x7a, 0x75, 0x76, 0x79, 0x7d, 0x82, 0x86, 0x87, 0x86, 0x83, 0x7d, 0x79, -0x76, 0x76, 0x7b, 0x83, 0x87, 0x89, 0x87, 0x7e, 0x76, 0x73, 0x72, 0x76, 0x7b, 0x82, 0x88, 0x8d, -0x93, 0x93, 0x8d, 0x82, 0x74, 0x6c, 0x6a, 0x6d, 0x76, 0x84, 0x8c, 0x8c, 0x82, 0x75, 0x71, 0x75, -0x7c, 0x86, 0x8b, 0x8c, 0x89, 0x80, 0x79, 0x7c, 0x83, 0x89, 0x8d, 0x89, 0x81, 0x7b, 0x73, 0x6e, -0x6d, 0x6e, 0x73, 0x80, 0x8f, 0x97, 0x96, 0x8f, 0x83, 0x76, 0x6d, 0x6a, 0x70, 0x7a, 0x88, 0x91, -0x93, 0x92, 0x89, 0x7b, 0x72, 0x6d, 0x6d, 0x71, 0x7a, 0x87, 0x8f, 0x8f, 0x8f, 0x89, 0x80, 0x79, -0x75, 0x72, 0x71, 0x70, 0x71, 0x79, 0x87, 0x98, 0xa5, 0xa6, 0x96, 0x79, 0x5a, 0x4d, 0x59, 0x74, -0x94, 0xa6, 0xa2, 0x91, 0x7a, 0x67, 0x61, 0x67, 0x72, 0x7e, 0x89, 0x90, 0x94, 0x8f, 0x88, 0x7e, -0x74, 0x6d, 0x6c, 0x74, 0x82, 0x8d, 0x97, 0x95, 0x86, 0x73, 0x68, 0x68, 0x71, 0x82, 0x8d, 0x94, -0x92, 0x8a, 0x81, 0x77, 0x70, 0x6c, 0x6d, 0x75, 0x81, 0x8b, 0x91, 0x8f, 0x86, 0x7b, 0x74, 0x70, -0x70, 0x77, 0x82, 0x88, 0x8c, 0x8b, 0x85, 0x7b, 0x74, 0x70, 0x6f, 0x73, 0x7c, 0x85, 0x8b, 0x91, -0x8e, 0x88, 0x81, 0x76, 0x72, 0x71, 0x73, 0x7b, 0x84, 0x89, 0x89, 0x87, 0x86, 0x81, 0x7a, 0x76, -0x77, 0x77, 0x76, 0x77, 0x7a, 0x7c, 0x7d, 0x81, 0x87, 0x8b, 0x8c, 0x87, 0x81, 0x7a, 0x73, 0x70, -0x72, 0x79, 0x82, 0x86, 0x86, 0x83, 0x80, 0x80, 0x83, 0x85, 0x80, 0x7b, 0x7c, 0x7e, 0x85, 0x88, -0x84, 0x79, 0x67, 0x4f, 0x43, 0x55, 0x8c, 0xca, 0xef, 0xe4, 0x9c, 0x44, 0x13, 0x1c, 0x55, 0x99, -0xbf, 0xc4, 0xb0, 0x94, 0x77, 0x5c, 0x4b, 0x4a, 0x5c, 0x75, 0x8e, 0x9f, 0xa9, 0xae, 0xa5, 0x88, -0x60, 0x48, 0x4c, 0x6b, 0x91, 0xa8, 0xac, 0x9e, 0x8b, 0x77, 0x69, 0x63, 0x67, 0x73, 0x80, 0x8a, -0x8f, 0x87, 0x7d, 0x7a, 0x78, 0x76, 0x77, 0x83, 0x8c, 0x8d, 0x89, 0x81, 0x77, 0x73, 0x76, 0x7d, -0x88, 0x8c, 0x8c, 0x8d, 0x8a, 0x81, 0x73, 0x6c, 0x6f, 0x76, 0x81, 0x8b, 0x92, 0x92, 0x8a, 0x7a, -0x69, 0x64, 0x6c, 0x7e, 0x8f, 0x97, 0x96, 0x90, 0x88, 0x7a, 0x6b, 0x65, 0x6a, 0x74, 0x80, 0x8a, -0x95, 0x98, 0x92, 0x88, 0x78, 0x68, 0x5c, 0x5a, 0x67, 0x81, 0x96, 0xa8, 0xaf, 0xa4, 0x89, 0x6a, -0x57, 0x52, 0x5c, 0x72, 0x90, 0xa5, 0xac, 0xa5, 0x90, 0x76, 0x60, 0x53, 0x5c, 0x72, 0x8c, 0x9f, -0xa7, 0xa2, 0x91, 0x7d, 0x6b, 0x60, 0x62, 0x6e, 0x81, 0x91, 0x97, 0x94, 0x8e, 0x83, 0x77, 0x71, -0x72, 0x74, 0x74, 0x72, 0x6e, 0x6a, 0x6f, 0x82, 0x9e, 0xb6, 0xb8, 0x9f, 0x6f, 0x44, 0x37, 0x50, -0x85, 0xb3, 0xc1, 0xaa, 0x7d, 0x58, 0x4f, 0x5a, 0x72, 0x89, 0x91, 0x90, 0x8d, 0x89, 0x83, 0x79, -0x71, 0x6d, 0x6f, 0x77, 0x86, 0x95, 0xa2, 0xa1, 0x8f, 0x75, 0x5f, 0x59, 0x63, 0x75, 0x8a, 0x98, -0x97, 0x8d, 0x81, 0x75, 0x72, 0x73, 0x75, 0x7b, 0x7d, 0x80, 0x88, 0x90, 0x91, 0x88, 0x7c, 0x74, -0x72, 0x76, 0x7e, 0x87, 0x89, 0x86, 0x81, 0x7b, 0x78, 0x75, 0x75, 0x7b, 0x83, 0x85, 0x83, 0x7e, -0x7b, 0x77, 0x76, 0x79, 0x7e, 0x86, 0x8d, 0x92, 0x8f, 0x85, 0x75, 0x6a, 0x69, 0x6d, 0x77, 0x85, -0x8b, 0x86, 0x7d, 0x77, 0x7a, 0x81, 0x86, 0x88, 0x81, 0x79, 0x71, 0x6c, 0x6f, 0x79, 0x86, 0x8c, -0x89, 0x83, 0x81, 0x82, 0x84, 0x81, 0x78, 0x71, 0x74, 0x80, 0x8e, 0x96, 0x92, 0x86, 0x75, 0x6a, -0x69, 0x73, 0x85, 0x92, 0x95, 0x8e, 0x81, 0x75, 0x72, 0x74, 0x79, 0x81, 0x86, 0x8c, 0x90, 0x90, -0x8a, 0x7d, 0x6e, 0x5e, 0x53, 0x59, 0x72, 0x9e, 0xc5, 0xd3, 0xbc, 0x82, 0x41, 0x1c, 0x2a, 0x62, -0xab, 0xdb, 0xd9, 0xad, 0x6c, 0x3b, 0x32, 0x45, 0x69, 0x8e, 0xa2, 0xab, 0xa7, 0x9a, 0x83, 0x6a, -0x56, 0x50, 0x5c, 0x75, 0x94, 0xac, 0xb4, 0xa4, 0x84, 0x61, 0x4b, 0x50, 0x67, 0x85, 0x9b, 0xa4, -0x9e, 0x8b, 0x73, 0x65, 0x5e, 0x65, 0x77, 0x8a, 0x97, 0x9d, 0x97, 0x8a, 0x78, 0x6a, 0x65, 0x6b, -0x78, 0x89, 0x93, 0x93, 0x8c, 0x80, 0x74, 0x6e, 0x6f, 0x76, 0x81, 0x8b, 0x91, 0x90, 0x85, 0x78, -0x6f, 0x6e, 0x73, 0x7c, 0x87, 0x8e, 0x8f, 0x8a, 0x81, 0x77, 0x71, 0x73, 0x7b, 0x83, 0x88, 0x8a, -0x86, 0x7e, 0x7a, 0x7a, 0x7c, 0x7b, 0x79, 0x7a, 0x7e, 0x84, 0x89, 0x8b, 0x84, 0x7a, 0x75, 0x77, -0x7b, 0x7a, 0x76, 0x76, 0x79, 0x7d, 0x82, 0x86, 0x8c, 0x8b, 0x85, 0x81, 0x7c, 0x7a, 0x7d, 0x84, -0x86, 0x85, 0x84, 0x83, 0x83, 0x82, 0x7c, 0x78, 0x76, 0x77, 0x7b, 0x80, 0x87, 0x8a, 0x86, 0x82, -0x7c, 0x78, 0x77, 0x76, 0x77, 0x76, 0x75, 0x7a, 0x88, 0x98, 0xa5, 0xa7, 0x95, 0x71, 0x51, 0x47, -0x58, 0x7e, 0xa9, 0xc3, 0xbb, 0x97, 0x67, 0x45, 0x3f, 0x53, 0x79, 0x9a, 0xa7, 0xa4, 0x96, 0x88, -0x7a, 0x6f, 0x69, 0x67, 0x6e, 0x7c, 0x8e, 0x9b, 0x9b, 0x90, 0x7d, 0x6b, 0x63, 0x68, 0x77, 0x88, -0x93, 0x96, 0x8d, 0x7e, 0x72, 0x6c, 0x6e, 0x74, 0x7e, 0x87, 0x8d, 0x90, 0x8d, 0x83, 0x7a, 0x74, -0x73, 0x79, 0x81, 0x86, 0x86, 0x83, 0x7d, 0x79, 0x7a, 0x7e, 0x83, 0x85, 0x84, 0x82, 0x82, 0x7e, -0x7a, 0x76, 0x75, 0x7a, 0x80, 0x85, 0x89, 0x8a, 0x85, 0x7c, 0x74, 0x71, 0x75, 0x7e, 0x89, 0x8d, -0x8d, 0x86, 0x7a, 0x74, 0x73, 0x76, 0x7c, 0x82, 0x8b, 0x92, 0x92, 0x8a, 0x7a, 0x6f, 0x6d, 0x72, -0x75, 0x79, 0x82, 0x89, 0x89, 0x84, 0x7e, 0x7d, 0x7d, 0x7d, 0x80, 0x84, 0x85, 0x7d, 0x70, 0x57, -0x42, 0x4b, 0x7e, 0xc4, 0xef, 0xde, 0x9b, 0x4c, 0x1f, 0x2c, 0x5b, 0x93, 0xb7, 0xc2, 0xbd, 0x9d, -0x6b, 0x46, 0x40, 0x54, 0x6c, 0x7d, 0x8f, 0xa3, 0xae, 0xa6, 0x89, 0x62, 0x4a, 0x4a, 0x63, 0x8b, -0xab, 0xb8, 0xae, 0x92, 0x6f, 0x56, 0x50, 0x5b, 0x74, 0x91, 0xa1, 0x9e, 0x90, 0x80, 0x6e, 0x5e, -0x58, 0x61, 0x73, 0x8c, 0xa5, 0xac, 0x9a, 0x7c, 0x68, 0x60, 0x5e, 0x6a, 0x86, 0xa3, 0xab, 0x9f, -0x8e, 0x7c, 0x6e, 0x67, 0x6c, 0x74, 0x7a, 0x84, 0x8b, 0x86, 0x7a, 0x73, 0x76, 0x7a, 0x80, 0x87, -0x8d, 0x8e, 0x87, 0x7c, 0x76, 0x75, 0x7a, 0x84, 0x8d, 0x90, 0x8d, 0x81, 0x72, 0x6b, 0x6a, 0x72, -0x80, 0x89, 0x8d, 0x8b, 0x85, 0x79, 0x6e, 0x6a, 0x70, 0x7d, 0x89, 0x93, 0x96, 0x93, 0x87, 0x79, -0x71, 0x6e, 0x72, 0x7c, 0x86, 0x8a, 0x8a, 0x85, 0x7e, 0x7b, 0x77, 0x77, 0x7a, 0x7a, 0x7a, 0x7b, -0x7c, 0x7b, 0x7d, 0x7d, 0x81, 0x84, 0x86, 0x85, 0x82, 0x7c, 0x7a, 0x78, 0x7a, 0x80, 0x87, 0x8b, -0x89, 0x7e, 0x6e, 0x61, 0x5f, 0x6f, 0x8d, 0xa9, 0xb3, 0xa1, 0x78, 0x4f, 0x40, 0x55, 0x81, 0xa9, -0xb8, 0xa9, 0x89, 0x6a, 0x5e, 0x63, 0x6d, 0x79, 0x84, 0x8c, 0x91, 0x93, 0x90, 0x87, 0x78, 0x6b, -0x65, 0x66, 0x73, 0x8c, 0x9e, 0xa1, 0x91, 0x78, 0x67, 0x65, 0x6d, 0x7a, 0x89, 0x8f, 0x8f, 0x8a, -0x83, 0x7a, 0x72, 0x6b, 0x6c, 0x73, 0x7e, 0x8a, 0x92, 0x94, 0x8b, 0x7d, 0x71, 0x6b, 0x6d, 0x77, -0x85, 0x8d, 0x8d, 0x86, 0x83, 0x7e, 0x78, 0x75, 0x75, 0x7b, 0x82, 0x89, 0x8e, 0x8e, 0x86, 0x79, -0x6e, 0x6a, 0x6e, 0x79, 0x87, 0x8f, 0x8f, 0x87, 0x7a, 0x74, 0x72, 0x76, 0x80, 0x87, 0x8a, 0x89, -0x85, 0x7c, 0x75, 0x6f, 0x6e, 0x73, 0x7c, 0x86, 0x8b, 0x89, 0x7e, 0x72, 0x69, 0x6b, 0x77, 0x85, -0x90, 0x96, 0x93, 0x89, 0x7d, 0x76, 0x71, 0x70, 0x76, 0x83, 0x8d, 0x91, 0x8d, 0x87, 0x7e, 0x75, -0x6f, 0x70, 0x76, 0x7c, 0x83, 0x86, 0x86, 0x85, 0x82, 0x7e, 0x7a, 0x75, 0x70, 0x6f, 0x77, 0x85, -0x97, 0xa4, 0xa7, 0x97, 0x79, 0x5e, 0x52, 0x5e, 0x7a, 0x98, 0xa7, 0x9e, 0x81, 0x64, 0x59, 0x65, -0x81, 0x9b, 0xa0, 0x94, 0x7e, 0x6e, 0x6a, 0x6b, 0x70, 0x74, 0x77, 0x83, 0x94, 0xa6, 0xae, 0xa2, -0x86, 0x66, 0x54, 0x53, 0x62, 0x7c, 0x97, 0xa4, 0xa0, 0x90, 0x7b, 0x6c, 0x67, 0x6a, 0x71, 0x77, -0x7c, 0x85, 0x8c, 0x8d, 0x86, 0x7c, 0x72, 0x70, 0x77, 0x85, 0x92, 0x94, 0x8b, 0x7d, 0x6f, 0x6c, -0x70, 0x7a, 0x87, 0x8b, 0x8a, 0x84, 0x7a, 0x73, 0x71, 0x74, 0x7a, 0x84, 0x8e, 0x94, 0x91, 0x88, -0x78, 0x69, 0x65, 0x6b, 0x77, 0x85, 0x8e, 0x91, 0x8e, 0x89, 0x83, 0x7d, 0x77, 0x71, 0x70, 0x74, -0x7e, 0x89, 0x8d, 0x8a, 0x85, 0x81, 0x7b, 0x77, 0x7a, 0x80, 0x82, 0x7e, 0x7a, 0x79, 0x7b, 0x7d, -0x82, 0x88, 0x8c, 0x8d, 0x89, 0x80, 0x6f, 0x58, 0x43, 0x43, 0x6a, 0xad, 0xe6, 0xeb, 0xb4, 0x60, -0x24, 0x23, 0x50, 0x87, 0xad, 0xba, 0xb5, 0xa5, 0x8d, 0x6f, 0x55, 0x47, 0x4b, 0x5e, 0x7b, 0x9b, -0xae, 0xb1, 0xa2, 0x81, 0x5b, 0x44, 0x47, 0x69, 0x96, 0xb3, 0xb7, 0x9f, 0x82, 0x6e, 0x66, 0x66, -0x6e, 0x7c, 0x8d, 0x97, 0x99, 0x92, 0x81, 0x69, 0x59, 0x57, 0x64, 0x7b, 0x95, 0xa4, 0xa4, 0x96, -0x7e, 0x67, 0x5b, 0x5b, 0x6b, 0x83, 0x94, 0x9c, 0x9e, 0x9c, 0x8f, 0x7b, 0x6b, 0x64, 0x6b, 0x77, -0x89, 0x95, 0x95, 0x8a, 0x78, 0x6b, 0x68, 0x70, 0x7b, 0x86, 0x8d, 0x90, 0x8e, 0x8a, 0x84, 0x79, -0x70, 0x6d, 0x70, 0x7a, 0x87, 0x91, 0x94, 0x8e, 0x85, 0x79, 0x72, 0x70, 0x6f, 0x73, 0x79, 0x7e, -0x82, 0x87, 0x8d, 0x90, 0x8b, 0x81, 0x76, 0x71, 0x72, 0x7d, 0x8c, 0x93, 0x92, 0x89, 0x7e, 0x77, -0x77, 0x7c, 0x83, 0x85, 0x84, 0x81, 0x7d, 0x7d, 0x7b, 0x7c, 0x7d, 0x80, 0x83, 0x82, 0x82, 0x82, -0x81, 0x7d, 0x78, 0x74, 0x76, 0x7c, 0x87, 0x8f, 0x94, 0x92, 0x8a, 0x7b, 0x69, 0x5b, 0x53, 0x5c, -0x76, 0x9e, 0xc3, 0xce, 0xb1, 0x74, 0x37, 0x1b, 0x36, 0x7a, 0xbb, 0xdd, 0xc7, 0x8d, 0x5b, 0x48, -0x58, 0x72, 0x81, 0x7b, 0x75, 0x81, 0x9a, 0xaf, 0xab, 0x8a, 0x5f, 0x43, 0x44, 0x63, 0x8f, 0xab, -0xb1, 0xa2, 0x8a, 0x70, 0x60, 0x5f, 0x68, 0x77, 0x85, 0x8d, 0x90, 0x90, 0x8c, 0x84, 0x77, 0x6a, -0x64, 0x69, 0x79, 0x8d, 0x9a, 0x99, 0x8d, 0x7a, 0x6d, 0x69, 0x70, 0x7e, 0x8a, 0x8f, 0x8e, 0x8b, -0x88, 0x81, 0x78, 0x71, 0x71, 0x78, 0x84, 0x8f, 0x94, 0x91, 0x83, 0x70, 0x66, 0x69, 0x77, 0x88, -0x93, 0x96, 0x90, 0x84, 0x76, 0x6d, 0x6b, 0x70, 0x78, 0x84, 0x8f, 0x97, 0x99, 0x93, 0x83, 0x71, -0x62, 0x5b, 0x62, 0x71, 0x86, 0x94, 0x97, 0x93, 0x87, 0x78, 0x6f, 0x6c, 0x6f, 0x74, 0x7e, 0x87, -0x8b, 0x8c, 0x88, 0x84, 0x7e, 0x7e, 0x83, 0x84, 0x82, 0x78, 0x6e, 0x67, 0x6a, 0x7c, 0x96, 0xad, -0xb1, 0x9b, 0x74, 0x4d, 0x41, 0x59, 0x82, 0xa9, 0xb5, 0xa1, 0x80, 0x65, 0x62, 0x72, 0x87, 0x8c, -0x7c, 0x6d, 0x6c, 0x82, 0x9e, 0xad, 0xa1, 0x7b, 0x57, 0x49, 0x5b, 0x81, 0xa0, 0xa7, 0x9a, 0x82, -0x72, 0x73, 0x79, 0x81, 0x81, 0x79, 0x74, 0x76, 0x81, 0x8d, 0x91, 0x8b, 0x7c, 0x71, 0x6f, 0x79, -0x88, 0x90, 0x8e, 0x84, 0x77, 0x6f, 0x70, 0x7b, 0x87, 0x8e, 0x8b, 0x86, 0x83, 0x82, 0x81, 0x7c, -0x77, 0x73, 0x74, 0x7d, 0x89, 0x91, 0x93, 0x8a, 0x7a, 0x6e, 0x6b, 0x6f, 0x79, 0x83, 0x87, 0x85, -0x83, 0x82, 0x83, 0x83, 0x80, 0x7a, 0x75, 0x75, 0x7b, 0x84, 0x8a, 0x8c, 0x87, 0x80, 0x7a, 0x7a, -0x7e, 0x82, 0x83, 0x7d, 0x77, 0x76, 0x7a, 0x84, 0x8c, 0x8e, 0x8a, 0x81, 0x7a, 0x77, 0x78, 0x7a, -0x7b, 0x7c, 0x7b, 0x80, 0x85, 0x87, 0x88, 0x85, 0x80, 0x7b, 0x77, 0x74, 0x73, 0x74, 0x79, 0x7e, -0x86, 0x8f, 0x94, 0x90, 0x83, 0x73, 0x66, 0x66, 0x71, 0x80, 0x8d, 0x8e, 0x88, 0x80, 0x7b, 0x7c, -0x7e, 0x7e, 0x7b, 0x77, 0x75, 0x79, 0x82, 0x8a, 0x8e, 0x8c, 0x86, 0x7b, 0x74, 0x73, 0x77, 0x80, -0x85, 0x86, 0x85, 0x83, 0x82, 0x82, 0x80, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x80, 0x7c, -0x79, 0x78, 0x79, 0x7c, 0x82, 0x86, 0x87, 0x83, 0x7d, 0x79, 0x77, 0x77, 0x79, 0x7c, 0x7e, 0x7e, -0x80, 0x82, 0x83, 0x83, 0x82, 0x80, 0x7a, 0x78, 0x78, 0x79, 0x7d, 0x83, 0x84, 0x84, 0x83, 0x81, -0x80, 0x7e, 0x7c, 0x7a, 0x7a, 0x7a, 0x81, 0x87, 0x8c, 0x8b, 0x85, 0x7e, 0x78, 0x75, 0x76, 0x7a, -0x7d, 0x81, 0x84, 0x86, 0x87, 0x86, 0x82, 0x7e, 0x79, 0x78, 0x78, 0x7a, 0x7b, 0x7c, 0x7e, 0x82, -0x85, 0x86, 0x87, 0x84, 0x7d, 0x77, 0x74, 0x76, 0x79, 0x7e, 0x84, 0x89, 0x8b, 0x89, 0x82, 0x7c, -0x7a, 0x79, 0x78, 0x79, 0x7d, 0x85, 0x8b, 0x8d, 0x8c, 0x86, 0x80, 0x7b, 0x75, 0x74, 0x75, 0x79, -0x80, 0x85, 0x8c, 0x8e, 0x89, 0x82, 0x77, 0x75, 0x77, 0x7d, 0x83, 0x82, 0x7d, 0x78, 0x76, 0x79, -0x81, 0x8a, 0x90, 0x8c, 0x80, 0x74, 0x71, 0x74, 0x7d, 0x84, 0x83, 0x80, 0x79, 0x7a, 0x80, 0x85, -0x89, 0x87, 0x80, 0x73, 0x70, 0x76, 0x80, 0x89, 0x8b, 0x85, 0x80, 0x7d, 0x7e, 0x82, 0x82, 0x7d, -0x78, 0x75, 0x78, 0x80, 0x86, 0x8c, 0x8e, 0x88, 0x7d, 0x74, 0x6f, 0x72, 0x78, 0x80, 0x85, 0x88, -0x87, 0x83, 0x80, 0x80, 0x7d, 0x7a, 0x77, 0x79, 0x7d, 0x81, 0x84, 0x84, 0x82, 0x7e, 0x7a, 0x77, -0x78, 0x7c, 0x81, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x7d, 0x7b, -0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x81, 0x82, 0x83, 0x81, 0x7d, 0x79, 0x77, 0x78, 0x7b, 0x7d, 0x80, -0x81, 0x82, 0x84, 0x84, 0x83, 0x81, 0x7c, 0x77, 0x75, 0x77, 0x7a, 0x7c, 0x7e, 0x80, 0x84, 0x88, -0x88, 0x85, 0x7c, 0x77, 0x76, 0x79, 0x81, 0x89, 0x8a, 0x85, 0x7d, 0x77, 0x78, 0x80, 0x86, 0x8a, -0x87, 0x7d, 0x79, 0x7a, 0x82, 0x8a, 0x8a, 0x85, 0x7a, 0x72, 0x71, 0x76, 0x80, 0x86, 0x86, 0x82, -0x7a, 0x79, 0x80, 0x85, 0x88, 0x85, 0x7c, 0x76, 0x74, 0x77, 0x7e, 0x86, 0x89, 0x87, 0x80, 0x78, -0x77, 0x7b, 0x81, 0x82, 0x7d, 0x7b, 0x7c, 0x80, 0x83, 0x85, 0x82, 0x7b, 0x76, 0x75, 0x78, 0x80, -0x85, 0x87, 0x84, 0x80, 0x7c, 0x79, 0x7b, 0x7d, 0x82, 0x83, 0x80, 0x7c, 0x7b, 0x7e, 0x81, 0x80, -0x7e, 0x7d, 0x7d, 0x80, 0x83, 0x86, 0x86, 0x83, 0x7d, 0x7b, 0x78, 0x78, 0x7a, 0x7c, 0x83, 0x87, -0x8a, 0x8b, 0x87, 0x82, 0x7d, 0x7a, 0x79, 0x77, 0x77, 0x7b, 0x82, 0x87, 0x87, 0x84, 0x82, 0x7e, -0x7a, 0x78, 0x77, 0x77, 0x79, 0x7b, 0x80, 0x86, 0x8b, 0x8c, 0x88, 0x83, 0x7d, 0x79, 0x76, 0x72, -0x71, 0x75, 0x7b, 0x85, 0x8d, 0x90, 0x8c, 0x84, 0x7b, 0x77, 0x78, 0x7b, 0x7e, 0x80, 0x80, 0x7d, -0x7d, 0x81, 0x85, 0x88, 0x88, 0x86, 0x82, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7c, 0x7b, 0x7d, 0x82, -0x88, 0x8b, 0x89, 0x83, 0x7b, 0x76, 0x74, 0x75, 0x79, 0x80, 0x83, 0x84, 0x84, 0x85, 0x87, 0x85, -0x82, 0x7c, 0x78, 0x76, 0x77, 0x7a, 0x80, 0x85, 0x85, 0x82, 0x7e, 0x7c, 0x7c, 0x7e, 0x7d, 0x7b, -0x79, 0x78, 0x7a, 0x7e, 0x84, 0x88, 0x88, 0x85, 0x81, 0x7b, 0x78, 0x7a, 0x7c, 0x7e, 0x7e, 0x7e, -0x7d, 0x7c, 0x7c, 0x7e, 0x83, 0x86, 0x88, 0x8a, 0x87, 0x82, 0x7b, 0x77, 0x77, 0x77, 0x78, 0x7c, -0x84, 0x8a, 0x8e, 0x8e, 0x89, 0x81, 0x77, 0x72, 0x71, 0x74, 0x7b, 0x83, 0x89, 0x8a, 0x88, 0x83, -0x7d, 0x7b, 0x7a, 0x78, 0x76, 0x77, 0x7c, 0x82, 0x86, 0x87, 0x86, 0x83, 0x7d, 0x79, 0x78, 0x7a, -0x7e, 0x82, 0x84, 0x84, 0x86, 0x86, 0x84, 0x82, 0x7d, 0x7a, 0x77, 0x78, 0x7d, 0x84, 0x89, 0x89, -0x84, 0x7e, 0x7a, 0x79, 0x7c, 0x82, 0x85, 0x83, 0x7b, 0x77, 0x77, 0x7d, 0x83, 0x85, 0x86, 0x82, -0x80, 0x80, 0x81, 0x84, 0x83, 0x7e, 0x79, 0x74, 0x74, 0x7a, 0x84, 0x8a, 0x8b, 0x87, 0x7e, 0x79, -0x77, 0x7a, 0x7e, 0x81, 0x81, 0x7e, 0x7c, 0x7c, 0x82, 0x87, 0x87, 0x85, 0x80, 0x7a, 0x78, 0x79, -0x7d, 0x81, 0x81, 0x7d, 0x7b, 0x7b, 0x7e, 0x82, 0x84, 0x83, 0x82, 0x7e, 0x7b, 0x7b, 0x7d, 0x82, -0x84, 0x83, 0x7e, 0x7d, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x81, 0x80, 0x81, 0x80, 0x81, 0x82, 0x83, -0x81, 0x81, 0x82, 0x84, 0x84, 0x83, 0x81, 0x7c, 0x7a, 0x79, 0x7d, 0x82, 0x84, 0x84, 0x82, 0x81, -0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x80, 0x82, 0x83, 0x82, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, -0x7e, 0x7e, 0x7c, 0x7b, 0x7a, 0x7b, 0x7e, 0x84, 0x88, 0x88, 0x84, 0x7c, 0x74, 0x6f, 0x70, 0x77, -0x80, 0x87, 0x88, 0x87, 0x83, 0x80, 0x7d, 0x7c, 0x7b, 0x79, 0x77, 0x78, 0x7d, 0x86, 0x8b, 0x8d, -0x8b, 0x83, 0x79, 0x72, 0x74, 0x78, 0x7d, 0x82, 0x84, 0x84, 0x84, 0x84, 0x83, 0x83, 0x80, 0x7a, -0x76, 0x74, 0x76, 0x7d, 0x85, 0x8b, 0x8b, 0x88, 0x82, 0x7b, 0x78, 0x78, 0x79, 0x7c, 0x7e, 0x80, -0x81, 0x83, 0x83, 0x81, 0x7e, 0x7c, 0x79, 0x77, 0x79, 0x7d, 0x83, 0x86, 0x84, 0x80, 0x7d, 0x7b, -0x7b, 0x7e, 0x82, 0x82, 0x81, 0x7e, 0x7b, 0x7b, 0x7c, 0x7e, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x7e, 0x7e, 0x7e, 0x80, 0x83, 0x85, 0x85, 0x83, 0x7e, 0x7b, 0x7a, 0x7a, 0x7c, 0x81, 0x84, -0x85, 0x85, 0x84, 0x80, 0x7c, 0x79, 0x77, 0x77, 0x7a, 0x7c, 0x80, 0x83, 0x83, 0x82, 0x7d, 0x7b, -0x7a, 0x79, 0x7a, 0x7c, 0x7e, 0x80, 0x7e, 0x7c, 0x7b, 0x7d, 0x80, 0x82, 0x80, 0x7c, 0x7c, 0x7c, -0x7e, 0x81, 0x84, 0x84, 0x82, 0x80, 0x7d, 0x7c, 0x7a, 0x77, 0x77, 0x7b, 0x83, 0x86, 0x85, 0x82, -0x7d, 0x7b, 0x7c, 0x7d, 0x7d, 0x7c, 0x79, 0x78, 0x7b, 0x80, 0x85, 0x87, 0x87, 0x84, 0x80, 0x7b, -0x78, 0x7a, 0x7e, 0x83, 0x85, 0x82, 0x80, 0x7e, 0x7e, 0x81, 0x84, 0x84, 0x81, 0x7e, 0x7b, 0x7b, -0x80, 0x84, 0x84, 0x83, 0x80, 0x7d, 0x7d, 0x7e, 0x82, 0x84, 0x84, 0x83, 0x7e, 0x7a, 0x79, 0x7a, -0x7d, 0x80, 0x82, 0x84, 0x84, 0x84, 0x82, 0x7e, 0x7a, 0x75, 0x72, 0x73, 0x78, 0x80, 0x86, 0x89, -0x86, 0x81, 0x7c, 0x7b, 0x7a, 0x7a, 0x7c, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7d, 0x7c, -0x7c, 0x7e, 0x81, 0x83, 0x82, 0x82, 0x81, 0x7d, 0x7b, 0x7b, 0x7d, 0x80, 0x82, 0x83, 0x83, 0x83, -0x82, 0x81, 0x80, 0x7c, 0x7a, 0x7a, 0x7b, 0x7e, 0x81, 0x83, 0x83, 0x82, 0x82, 0x82, 0x81, 0x7c, -0x76, 0x71, 0x72, 0x78, 0x81, 0x87, 0x88, 0x86, 0x80, 0x78, 0x74, 0x76, 0x7c, 0x81, 0x83, 0x83, -0x81, 0x7e, 0x7d, 0x7c, 0x7d, 0x7b, 0x7a, 0x7c, 0x80, 0x86, 0x8c, 0x90, 0x8e, 0x85, 0x7a, 0x72, -0x6f, 0x71, 0x77, 0x80, 0x89, 0x8d, 0x8e, 0x8e, 0x8b, 0x85, 0x78, 0x68, 0x67, 0x75, 0x95, 0xae, -0xaa, 0x8c, 0x5f, 0x3f, 0x41, 0x66, 0x95, 0xb2, 0xb9, 0xad, 0x99, 0x87, 0x78, 0x6c, 0x5e, 0x53, -0x51, 0x60, 0x79, 0x92, 0xa0, 0x9e, 0x92, 0x86, 0x7b, 0x79, 0x7a, 0x79, 0x75, 0x6c, 0x65, 0x67, -0x73, 0x88, 0x9d, 0xa8, 0xa6, 0x97, 0x7b, 0x63, 0x53, 0x54, 0x63, 0x7b, 0x93, 0xa3, 0xa7, 0x9d, -0x8a, 0x75, 0x64, 0x5e, 0x63, 0x73, 0x88, 0x98, 0x9f, 0x9a, 0x8f, 0x80, 0x70, 0x64, 0x60, 0x66, -0x72, 0x87, 0x97, 0x9d, 0x9a, 0x8a, 0x78, 0x6c, 0x69, 0x71, 0x7d, 0x86, 0x88, 0x84, 0x7e, 0x7b, -0x7c, 0x7d, 0x7c, 0x7b, 0x7a, 0x7b, 0x7d, 0x80, 0x82, 0x84, 0x84, 0x82, 0x7e, 0x7b, 0x79, 0x7a, -0x7a, 0x79, 0x79, 0x7a, 0x7c, 0x80, 0x87, 0x90, 0x93, 0x8d, 0x81, 0x71, 0x6c, 0x6f, 0x79, 0x88, -0x91, 0x92, 0x8c, 0x83, 0x7d, 0x7c, 0x7d, 0x7b, 0x77, 0x75, 0x76, 0x7b, 0x84, 0x89, 0x89, 0x84, -0x7b, 0x75, 0x74, 0x77, 0x80, 0x87, 0x8a, 0x89, 0x82, 0x7a, 0x76, 0x74, 0x76, 0x7b, 0x80, 0x82, -0x80, 0x7e, 0x83, 0x89, 0x89, 0x85, 0x7c, 0x71, 0x6b, 0x6f, 0x7a, 0x87, 0x8c, 0x8a, 0x84, 0x7e, -0x7a, 0x78, 0x78, 0x78, 0x7b, 0x81, 0x85, 0x86, 0x86, 0x83, 0x80, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, -0x7c, 0x7c, 0x7c, 0x7d, 0x80, 0x85, 0x87, 0x86, 0x7e, 0x72, 0x6d, 0x73, 0x7e, 0x8a, 0x8b, 0x88, -0x84, 0x84, 0x8a, 0x8a, 0x7e, 0x6f, 0x61, 0x60, 0x6f, 0x86, 0x96, 0x95, 0x87, 0x79, 0x73, 0x7b, -0x8a, 0x91, 0x8b, 0x7d, 0x72, 0x72, 0x78, 0x7b, 0x71, 0x5a, 0x47, 0x4a, 0x6e, 0xa4, 0xd5, 0xe1, -0xbd, 0x7e, 0x42, 0x25, 0x2e, 0x53, 0x7d, 0x9d, 0xab, 0xaf, 0xb0, 0xaa, 0x9a, 0x82, 0x62, 0x47, -0x42, 0x55, 0x7c, 0xa6, 0xc0, 0xc6, 0xb4, 0x8c, 0x5e, 0x3d, 0x32, 0x3e, 0x5d, 0x87, 0xad, 0xc1, -0xbc, 0xa5, 0x86, 0x67, 0x51, 0x48, 0x4e, 0x62, 0x80, 0x9a, 0xb0, 0xb7, 0xaa, 0x8f, 0x6d, 0x53, -0x4a, 0x50, 0x63, 0x81, 0x99, 0xa8, 0xab, 0xa1, 0x8d, 0x74, 0x5f, 0x54, 0x56, 0x63, 0x77, 0x8b, -0x9a, 0xa1, 0x9e, 0x96, 0x8b, 0x7e, 0x74, 0x68, 0x5f, 0x60, 0x69, 0x7d, 0x94, 0xa3, 0xa7, 0x97, -0x7c, 0x63, 0x55, 0x59, 0x6c, 0x8c, 0xa8, 0xb3, 0xac, 0x96, 0x76, 0x5e, 0x58, 0x61, 0x72, 0x81, -0x89, 0x8b, 0x8b, 0x88, 0x83, 0x7a, 0x72, 0x70, 0x76, 0x7d, 0x81, 0x81, 0x80, 0x81, 0x87, 0x8d, -0x8c, 0x83, 0x75, 0x6c, 0x6b, 0x74, 0x84, 0x92, 0x97, 0x8f, 0x83, 0x79, 0x74, 0x75, 0x79, 0x80, -0x84, 0x85, 0x88, 0x89, 0x88, 0x85, 0x81, 0x7a, 0x74, 0x6c, 0x65, 0x63, 0x6e, 0x89, 0xa5, 0xb7, -0xb1, 0x90, 0x66, 0x47, 0x41, 0x5a, 0x81, 0xa1, 0xab, 0xa0, 0x91, 0x84, 0x7c, 0x7a, 0x74, 0x6b, -0x65, 0x66, 0x72, 0x86, 0x96, 0x9d, 0x9b, 0x92, 0x85, 0x72, 0x64, 0x5d, 0x60, 0x6f, 0x86, 0x99, -0x9f, 0x97, 0x87, 0x76, 0x6e, 0x6e, 0x73, 0x78, 0x7d, 0x7e, 0x82, 0x86, 0x8a, 0x8b, 0x88, 0x81, -0x7a, 0x78, 0x79, 0x7c, 0x80, 0x84, 0x87, 0x88, 0x86, 0x82, 0x7b, 0x76, 0x76, 0x79, 0x81, 0x88, -0x8a, 0x86, 0x80, 0x79, 0x76, 0x76, 0x77, 0x7b, 0x81, 0x84, 0x88, 0x89, 0x87, 0x82, 0x7c, 0x77, -0x77, 0x7a, 0x7e, 0x82, 0x86, 0x86, 0x86, 0x86, 0x85, 0x80, 0x78, 0x73, 0x74, 0x7b, 0x85, 0x89, -0x8a, 0x87, 0x82, 0x81, 0x83, 0x88, 0x89, 0x81, 0x6d, 0x54, 0x3f, 0x42, 0x65, 0x9d, 0xd1, 0xec, -0xda, 0xa0, 0x55, 0x20, 0x13, 0x32, 0x6a, 0xa0, 0xc8, 0xd6, 0xc6, 0xa8, 0x82, 0x60, 0x4b, 0x46, -0x55, 0x6a, 0x81, 0x93, 0xa1, 0xa9, 0xa9, 0x9f, 0x8b, 0x6c, 0x4e, 0x3b, 0x3f, 0x5e, 0x87, 0xaa, -0xbd, 0xb9, 0xa2, 0x80, 0x5e, 0x4b, 0x49, 0x57, 0x72, 0x92, 0xa8, 0xaf, 0xa7, 0x94, 0x7e, 0x6c, -0x62, 0x62, 0x68, 0x73, 0x80, 0x8e, 0x9c, 0xa3, 0x9e, 0x8f, 0x79, 0x65, 0x5b, 0x5b, 0x65, 0x77, -0x88, 0x95, 0x9c, 0x9a, 0x90, 0x80, 0x71, 0x6b, 0x6d, 0x76, 0x80, 0x85, 0x82, 0x7b, 0x78, 0x7a, -0x83, 0x89, 0x89, 0x85, 0x82, 0x81, 0x83, 0x87, 0x89, 0x87, 0x82, 0x7c, 0x78, 0x76, 0x74, 0x73, -0x72, 0x76, 0x7d, 0x86, 0x8a, 0x89, 0x82, 0x7a, 0x76, 0x74, 0x75, 0x79, 0x81, 0x89, 0x8b, 0x8a, -0x85, 0x7c, 0x76, 0x74, 0x79, 0x82, 0x89, 0x8b, 0x89, 0x85, 0x81, 0x7e, 0x7c, 0x7d, 0x7d, 0x7d, -0x80, 0x81, 0x82, 0x81, 0x7d, 0x7b, 0x7d, 0x81, 0x84, 0x87, 0x87, 0x82, 0x74, 0x68, 0x5f, 0x5f, -0x6e, 0x8a, 0xa6, 0xb9, 0xb1, 0x92, 0x67, 0x46, 0x40, 0x57, 0x7b, 0x9d, 0xb0, 0xb2, 0xa3, 0x8c, -0x74, 0x60, 0x57, 0x5b, 0x6d, 0x88, 0x9e, 0xa4, 0x98, 0x86, 0x77, 0x6f, 0x70, 0x76, 0x78, 0x77, -0x77, 0x7a, 0x83, 0x8a, 0x8d, 0x8c, 0x86, 0x7e, 0x78, 0x71, 0x6c, 0x6d, 0x73, 0x7e, 0x8e, 0x99, -0x98, 0x8e, 0x80, 0x73, 0x6c, 0x6e, 0x76, 0x80, 0x88, 0x8d, 0x8f, 0x8b, 0x84, 0x78, 0x70, 0x6f, -0x76, 0x80, 0x89, 0x8d, 0x8b, 0x86, 0x81, 0x7c, 0x7a, 0x76, 0x75, 0x77, 0x7b, 0x82, 0x88, 0x8a, -0x88, 0x84, 0x80, 0x7c, 0x78, 0x77, 0x78, 0x7c, 0x84, 0x8c, 0x91, 0x8e, 0x86, 0x7a, 0x71, 0x6d, -0x72, 0x7a, 0x84, 0x8d, 0x93, 0x93, 0x8e, 0x83, 0x70, 0x58, 0x42, 0x3d, 0x51, 0x7b, 0xae, 0xd1, -0xdd, 0xc6, 0x92, 0x5a, 0x2e, 0x1d, 0x2a, 0x56, 0x94, 0xcb, 0xeb, 0xe7, 0xc1, 0x83, 0x48, 0x24, -0x23, 0x40, 0x6f, 0x9d, 0xbc, 0xc7, 0xbb, 0x9e, 0x7a, 0x5b, 0x47, 0x45, 0x55, 0x6d, 0x84, 0x96, -0x9f, 0xa1, 0x9c, 0x92, 0x84, 0x71, 0x5f, 0x56, 0x5a, 0x66, 0x7b, 0x92, 0xa2, 0xad, 0xa9, 0x98, -0x80, 0x66, 0x57, 0x53, 0x5e, 0x76, 0x93, 0xa7, 0xad, 0xa5, 0x91, 0x77, 0x61, 0x55, 0x56, 0x64, -0x7a, 0x90, 0x9f, 0xa0, 0x95, 0x86, 0x78, 0x70, 0x6f, 0x71, 0x75, 0x79, 0x7c, 0x80, 0x82, 0x83, -0x86, 0x8a, 0x8d, 0x8d, 0x88, 0x7d, 0x74, 0x6e, 0x6f, 0x7a, 0x8d, 0x9a, 0x9e, 0x97, 0x87, 0x72, -0x5f, 0x58, 0x5e, 0x70, 0x88, 0x9c, 0xa8, 0xa2, 0x8c, 0x6f, 0x5a, 0x55, 0x5f, 0x74, 0x8d, 0xa2, -0xa8, 0x9d, 0x88, 0x70, 0x60, 0x5c, 0x65, 0x7a, 0x90, 0x9e, 0xa2, 0x99, 0x8a, 0x7a, 0x6e, 0x69, -0x6f, 0x79, 0x84, 0x8c, 0x8d, 0x89, 0x83, 0x7d, 0x7c, 0x7c, 0x80, 0x81, 0x80, 0x79, 0x6f, 0x67, -0x65, 0x6c, 0x7e, 0x94, 0xa5, 0xa9, 0x9b, 0x81, 0x64, 0x50, 0x4e, 0x61, 0x80, 0x9f, 0xb2, 0xb2, -0xa5, 0x8d, 0x6e, 0x56, 0x4e, 0x56, 0x6e, 0x8e, 0xa7, 0xb0, 0xa7, 0x92, 0x78, 0x65, 0x5b, 0x5d, -0x69, 0x78, 0x89, 0x95, 0x9a, 0x93, 0x86, 0x77, 0x70, 0x6f, 0x73, 0x78, 0x7b, 0x7d, 0x7e, 0x81, -0x84, 0x86, 0x88, 0x89, 0x87, 0x84, 0x7d, 0x76, 0x72, 0x72, 0x77, 0x7e, 0x8a, 0x90, 0x90, 0x8b, -0x80, 0x76, 0x71, 0x6e, 0x72, 0x7a, 0x85, 0x8e, 0x90, 0x8c, 0x83, 0x76, 0x6e, 0x6c, 0x71, 0x79, -0x84, 0x8c, 0x90, 0x8e, 0x88, 0x7e, 0x76, 0x71, 0x72, 0x78, 0x81, 0x87, 0x88, 0x87, 0x83, 0x80, -0x7e, 0x7c, 0x7c, 0x7c, 0x7d, 0x81, 0x86, 0x87, 0x7e, 0x6e, 0x5d, 0x54, 0x5a, 0x71, 0x92, 0xb0, -0xc0, 0xba, 0xa0, 0x7c, 0x56, 0x3b, 0x37, 0x48, 0x72, 0xa5, 0xcd, 0xdd, 0xcd, 0xa2, 0x6d, 0x40, -0x29, 0x2e, 0x4c, 0x7c, 0xab, 0xcc, 0xd3, 0xbc, 0x93, 0x63, 0x41, 0x35, 0x3e, 0x5c, 0x81, 0xa0, -0xb3, 0xb5, 0xa7, 0x8d, 0x72, 0x5f, 0x56, 0x5c, 0x6a, 0x7b, 0x8b, 0x94, 0x98, 0x97, 0x91, 0x88, -0x7e, 0x75, 0x6f, 0x6e, 0x73, 0x78, 0x80, 0x88, 0x90, 0x96, 0x96, 0x8e, 0x82, 0x73, 0x67, 0x62, -0x65, 0x71, 0x80, 0x8d, 0x9a, 0x9e, 0x97, 0x8a, 0x76, 0x67, 0x5f, 0x60, 0x6b, 0x7a, 0x89, 0x93, -0x98, 0x95, 0x8e, 0x83, 0x78, 0x71, 0x6d, 0x6d, 0x73, 0x7c, 0x87, 0x90, 0x97, 0x99, 0x93, 0x88, -0x77, 0x69, 0x62, 0x61, 0x6a, 0x77, 0x86, 0x92, 0x97, 0x94, 0x8a, 0x7a, 0x6e, 0x69, 0x6b, 0x74, -0x80, 0x89, 0x8e, 0x8d, 0x8a, 0x83, 0x7b, 0x78, 0x76, 0x79, 0x7e, 0x83, 0x87, 0x88, 0x85, 0x82, -0x7e, 0x7e, 0x82, 0x83, 0x83, 0x83, 0x82, 0x7e, 0x7a, 0x76, 0x73, 0x73, 0x75, 0x7c, 0x85, 0x8e, -0x94, 0x92, 0x87, 0x77, 0x69, 0x63, 0x66, 0x71, 0x82, 0x92, 0x9c, 0x9b, 0x92, 0x85, 0x73, 0x66, -0x62, 0x68, 0x78, 0x8a, 0x96, 0x9c, 0x98, 0x8c, 0x7d, 0x6e, 0x66, 0x67, 0x6f, 0x7c, 0x8b, 0x94, -0x95, 0x90, 0x85, 0x78, 0x70, 0x6d, 0x70, 0x76, 0x7d, 0x83, 0x86, 0x86, 0x85, 0x84, 0x83, 0x82, -0x82, 0x81, 0x7e, 0x7c, 0x79, 0x78, 0x79, 0x79, 0x7c, 0x81, 0x85, 0x88, 0x88, 0x86, 0x82, 0x7c, -0x78, 0x76, 0x77, 0x7a, 0x80, 0x83, 0x84, 0x84, 0x82, 0x80, 0x7d, 0x7c, 0x7b, 0x7d, 0x7e, 0x80, -0x81, 0x7e, 0x7c, 0x7a, 0x7b, 0x7d, 0x81, 0x85, 0x86, 0x85, 0x82, 0x7c, 0x78, 0x77, 0x7a, 0x82, -0x8a, 0x8e, 0x89, 0x79, 0x65, 0x54, 0x4e, 0x5c, 0x78, 0x9d, 0xbd, 0xcb, 0xc2, 0xa1, 0x74, 0x46, -0x24, 0x23, 0x3f, 0x74, 0xb2, 0xde, 0xf0, 0xdc, 0xa9, 0x6c, 0x35, 0x13, 0x10, 0x35, 0x70, 0xac, -0xdc, 0xee, 0xd7, 0xa6, 0x6b, 0x39, 0x1b, 0x1d, 0x3c, 0x6e, 0xa5, 0xca, 0xd6, 0xc8, 0xa3, 0x74, -0x51, 0x3b, 0x3b, 0x51, 0x72, 0x94, 0xad, 0xb8, 0xad, 0x96, 0x7c, 0x65, 0x5c, 0x5e, 0x68, 0x78, -0x88, 0x94, 0x9a, 0x97, 0x8d, 0x80, 0x74, 0x6e, 0x6d, 0x6d, 0x6f, 0x70, 0x72, 0x79, 0x84, 0x8c, -0x93, 0x94, 0x90, 0x86, 0x77, 0x69, 0x5d, 0x5a, 0x5f, 0x70, 0x87, 0x9c, 0xa9, 0xaa, 0x9e, 0x8b, -0x73, 0x5e, 0x55, 0x58, 0x68, 0x83, 0x9c, 0xad, 0xb0, 0xa1, 0x89, 0x6d, 0x57, 0x4c, 0x52, 0x65, -0x81, 0x9b, 0xac, 0xae, 0x9f, 0x87, 0x6c, 0x58, 0x51, 0x59, 0x6b, 0x83, 0x9a, 0xa7, 0xa7, 0x9c, -0x87, 0x70, 0x60, 0x59, 0x5b, 0x64, 0x74, 0x88, 0x9b, 0xaa, 0xaf, 0xa7, 0x94, 0x7b, 0x65, 0x56, -0x4f, 0x55, 0x69, 0x86, 0xa3, 0xb8, 0xbc, 0xaf, 0x93, 0x73, 0x56, 0x44, 0x43, 0x52, 0x6e, 0x92, -0xaf, 0xbd, 0xb8, 0xa2, 0x82, 0x61, 0x4b, 0x43, 0x4d, 0x65, 0x83, 0xa0, 0xb3, 0xb4, 0xa6, 0x8c, -0x6f, 0x5a, 0x52, 0x57, 0x65, 0x7c, 0x95, 0xa6, 0xac, 0xa4, 0x91, 0x79, 0x66, 0x5c, 0x5f, 0x6b, -0x7a, 0x8b, 0x98, 0x9c, 0x99, 0x8e, 0x7e, 0x72, 0x6a, 0x6a, 0x6f, 0x77, 0x7e, 0x86, 0x8b, 0x8c, -0x8a, 0x85, 0x7e, 0x79, 0x76, 0x75, 0x76, 0x78, 0x7b, 0x82, 0x87, 0x8a, 0x8b, 0x88, 0x84, 0x7e, -0x79, 0x74, 0x71, 0x72, 0x77, 0x81, 0x8a, 0x8f, 0x90, 0x8b, 0x82, 0x78, 0x72, 0x71, 0x74, 0x7b, -0x84, 0x88, 0x85, 0x79, 0x69, 0x5c, 0x5a, 0x66, 0x80, 0x9d, 0xb4, 0xbf, 0xb5, 0x9b, 0x75, 0x4d, -0x33, 0x2f, 0x47, 0x75, 0xa8, 0xd4, 0xe7, 0xdb, 0xb7, 0x7e, 0x44, 0x1e, 0x14, 0x29, 0x5d, 0x9b, -0xd2, 0xed, 0xe5, 0xc0, 0x87, 0x4b, 0x20, 0x10, 0x22, 0x4f, 0x88, 0xbc, 0xdb, 0xdc, 0xc0, 0x90, -0x5e, 0x39, 0x26, 0x33, 0x53, 0x7e, 0xac, 0xc7, 0xcc, 0xbb, 0x99, 0x74, 0x56, 0x47, 0x49, 0x5b, -0x76, 0x93, 0xa8, 0xaf, 0xa8, 0x96, 0x81, 0x6c, 0x5f, 0x5b, 0x5f, 0x6b, 0x7b, 0x8c, 0x97, 0x9a, -0x97, 0x8f, 0x85, 0x78, 0x6e, 0x66, 0x64, 0x67, 0x70, 0x7d, 0x8c, 0x96, 0x9b, 0x99, 0x91, 0x83, -0x73, 0x66, 0x5e, 0x61, 0x6e, 0x83, 0x96, 0xa5, 0xa8, 0xa0, 0x8e, 0x76, 0x60, 0x51, 0x51, 0x5e, -0x75, 0x93, 0xaa, 0xb1, 0xa8, 0x94, 0x74, 0x58, 0x48, 0x49, 0x5c, 0x7c, 0x9d, 0xb5, 0xba, 0xa8, -0x86, 0x5d, 0x42, 0x38, 0x47, 0x6b, 0x9a, 0xc3, 0xd8, 0xcf, 0xad, 0x78, 0x47, 0x28, 0x22, 0x3d, -0x6b, 0xa4, 0xd3, 0xe6, 0xda, 0xb5, 0x7b, 0x43, 0x1e, 0x17, 0x30, 0x61, 0x99, 0xc9, 0xe0, 0xd9, -0xb8, 0x85, 0x4d, 0x29, 0x20, 0x34, 0x5e, 0x8f, 0xba, 0xd1, 0xd0, 0xb6, 0x8c, 0x61, 0x40, 0x35, -0x41, 0x5f, 0x85, 0xa5, 0xba, 0xbb, 0xa9, 0x8c, 0x6f, 0x58, 0x4e, 0x53, 0x65, 0x7e, 0x97, 0xa2, -0xa4, 0x9a, 0x88, 0x77, 0x68, 0x63, 0x68, 0x72, 0x81, 0x8c, 0x90, 0x8e, 0x86, 0x7b, 0x75, 0x73, -0x75, 0x7b, 0x84, 0x89, 0x8a, 0x86, 0x7d, 0x74, 0x6f, 0x6f, 0x76, 0x82, 0x8e, 0x97, 0x9a, 0x94, -0x89, 0x7a, 0x6e, 0x66, 0x66, 0x6f, 0x7e, 0x8d, 0x99, 0x9d, 0x99, 0x8e, 0x81, 0x70, 0x60, 0x53, -0x4d, 0x53, 0x64, 0x7e, 0x9b, 0xb2, 0xbe, 0xba, 0xa7, 0x89, 0x63, 0x42, 0x2f, 0x34, 0x50, 0x78, -0xa8, 0xcf, 0xe0, 0xdb, 0xbb, 0x8c, 0x56, 0x2c, 0x1a, 0x22, 0x46, 0x79, 0xac, 0xd2, 0xe4, 0xd7, -0xb2, 0x80, 0x4c, 0x28, 0x1a, 0x27, 0x4b, 0x7b, 0xab, 0xcb, 0xd5, 0xc5, 0xa3, 0x78, 0x50, 0x36, -0x30, 0x41, 0x60, 0x87, 0xa7, 0xbc, 0xbf, 0xb0, 0x95, 0x76, 0x5d, 0x51, 0x51, 0x5e, 0x72, 0x86, -0x97, 0xa0, 0xa0, 0x98, 0x8a, 0x7b, 0x6f, 0x66, 0x65, 0x69, 0x71, 0x7b, 0x85, 0x8e, 0x93, 0x93, -0x90, 0x89, 0x80, 0x76, 0x6f, 0x6b, 0x6b, 0x6f, 0x76, 0x81, 0x8a, 0x91, 0x95, 0x94, 0x8e, 0x85, -0x7a, 0x71, 0x6d, 0x6e, 0x72, 0x79, 0x81, 0x86, 0x88, 0x87, 0x83, 0x7e, 0x7b, 0x78, 0x79, 0x7b, -0x7e, 0x81, 0x82, 0x81, 0x80, 0x7d, 0x7b, 0x7b, 0x7c, 0x80, 0x83, 0x83, 0x81, 0x7a, 0x74, 0x70, -0x72, 0x78, 0x82, 0x8c, 0x94, 0x99, 0x97, 0x8e, 0x7e, 0x6f, 0x62, 0x5e, 0x64, 0x72, 0x87, 0x98, -0xa4, 0xa7, 0x9e, 0x8d, 0x77, 0x63, 0x56, 0x55, 0x5f, 0x72, 0x87, 0x9a, 0xa7, 0xa8, 0x9f, 0x8d, -0x76, 0x62, 0x57, 0x58, 0x62, 0x72, 0x88, 0x97, 0xa0, 0xa0, 0x97, 0x88, 0x78, 0x6b, 0x64, 0x64, -0x6b, 0x75, 0x83, 0x8c, 0x92, 0x95, 0x91, 0x8a, 0x82, 0x79, 0x74, 0x72, 0x73, 0x75, 0x7a, 0x7d, -0x83, 0x86, 0x87, 0x88, 0x89, 0x89, 0x89, 0x88, 0x84, 0x7d, 0x77, 0x72, 0x70, 0x71, 0x77, 0x80, -0x8a, 0x91, 0x96, 0x95, 0x8d, 0x82, 0x76, 0x6c, 0x66, 0x67, 0x70, 0x7c, 0x8a, 0x96, 0x9b, 0x99, -0x90, 0x84, 0x75, 0x69, 0x64, 0x65, 0x6d, 0x7b, 0x8c, 0x98, 0x9b, 0x93, 0x80, 0x67, 0x52, 0x47, -0x4b, 0x61, 0x82, 0xa5, 0xc2, 0xcb, 0xc1, 0xa4, 0x7b, 0x51, 0x35, 0x2e, 0x3b, 0x5b, 0x87, 0xb1, -0xd1, 0xdc, 0xcf, 0xae, 0x84, 0x5a, 0x3b, 0x2f, 0x36, 0x50, 0x75, 0x9a, 0xb8, 0xc5, 0xbe, 0xa9, -0x8b, 0x6b, 0x54, 0x48, 0x49, 0x57, 0x6b, 0x83, 0x95, 0x9d, 0x9c, 0x96, 0x8b, 0x80, 0x78, 0x74, -0x72, 0x74, 0x76, 0x79, 0x7a, 0x7a, 0x7b, 0x7d, 0x82, 0x88, 0x8e, 0x92, 0x93, 0x91, 0x8b, 0x81, -0x73, 0x67, 0x5f, 0x5f, 0x68, 0x79, 0x8d, 0x9e, 0xa9, 0xaa, 0x9f, 0x8a, 0x72, 0x5d, 0x52, 0x52, -0x5e, 0x71, 0x84, 0x94, 0x9e, 0xa0, 0x9b, 0x8e, 0x7e, 0x71, 0x6b, 0x6d, 0x74, 0x7e, 0x89, 0x91, -0x93, 0x8f, 0x84, 0x75, 0x68, 0x64, 0x68, 0x72, 0x80, 0x8d, 0x94, 0x94, 0x8e, 0x82, 0x73, 0x68, -0x63, 0x68, 0x72, 0x80, 0x8d, 0x95, 0x98, 0x95, 0x8d, 0x80, 0x6f, 0x60, 0x58, 0x59, 0x62, 0x71, -0x85, 0x96, 0xa2, 0xaa, 0xa9, 0xa0, 0x90, 0x7d, 0x6c, 0x5f, 0x5b, 0x5f, 0x6a, 0x78, 0x88, 0x95, -0x9e, 0x9f, 0x9a, 0x91, 0x84, 0x79, 0x71, 0x6d, 0x6d, 0x71, 0x76, 0x7a, 0x7c, 0x7d, 0x7d, 0x7e, -0x83, 0x87, 0x89, 0x8a, 0x88, 0x84, 0x7e, 0x79, 0x73, 0x6e, 0x6e, 0x71, 0x77, 0x7d, 0x84, 0x89, -0x8d, 0x8d, 0x8b, 0x86, 0x81, 0x7c, 0x7a, 0x7a, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x82, -0x84, 0x82, 0x80, 0x7b, 0x77, 0x75, 0x74, 0x77, 0x80, 0x8a, 0x93, 0x98, 0x95, 0x8d, 0x81, 0x73, -0x68, 0x63, 0x64, 0x6b, 0x78, 0x87, 0x92, 0x97, 0x95, 0x90, 0x87, 0x7d, 0x76, 0x72, 0x74, 0x79, -0x80, 0x85, 0x87, 0x86, 0x84, 0x81, 0x7b, 0x7a, 0x7b, 0x80, 0x84, 0x85, 0x7e, 0x72, 0x66, 0x5f, -0x5e, 0x67, 0x76, 0x88, 0x99, 0xa5, 0xa9, 0xa3, 0x94, 0x81, 0x6f, 0x63, 0x5f, 0x62, 0x6b, 0x76, -0x82, 0x8a, 0x8d, 0x8b, 0x88, 0x82, 0x7d, 0x7c, 0x7e, 0x82, 0x86, 0x89, 0x89, 0x84, 0x7d, 0x76, -0x71, 0x6f, 0x70, 0x75, 0x7b, 0x83, 0x88, 0x8b, 0x8b, 0x88, 0x83, 0x7d, 0x79, 0x76, 0x75, 0x77, -0x7a, 0x7d, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x80, 0x7e, 0x7c, 0x7a, 0x79, 0x7a, 0x7b, 0x7d, -0x80, 0x82, 0x84, 0x84, 0x83, 0x81, 0x7c, 0x79, 0x78, 0x78, 0x7b, 0x7e, 0x83, 0x86, 0x86, 0x85, -0x82, 0x7d, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, 0x81, 0x83, 0x85, 0x85, 0x85, 0x83, 0x81, 0x7d, 0x7c, -0x7c, 0x7c, 0x7d, 0x7e, 0x81, 0x83, 0x83, 0x83, 0x82, 0x81, 0x7f, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, -0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7a, 0x79, 0x79, -0x7a, 0x7c, 0x80, 0x82, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7e, 0x80, 0x80, 0x80, -0x7e, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x82, 0x83, 0x82, 0x80, 0x80, 0x80, 0x80, -0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x82, 0x82, 0x81, 0x7e, -0x7d, 0x7c, 0x7d, 0x7e, 0x81, 0x83, 0x83, 0x84, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x7b, 0x7c, 0x7e, -0x81, 0x84, 0x85, 0x85, 0x84, 0x82, 0x7e, 0x7c, 0x7a, 0x7a, 0x7b, 0x7e, 0x82, 0x85, 0x86, 0x84, -0x81, 0x7c, 0x79, 0x79, 0x79, 0x7b, 0x7e, 0x81, 0x83, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7e, 0x81, -0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7b, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7c, 0x7b, 0x7b, -0x7b, 0x7c, 0x80, 0x83, 0x84, 0x84, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x81, -0x81, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x82, 0x82, 0x82, 0x81, 0x7e, -0x7c, 0x7b, 0x7b, 0x7b, 0x7d, 0x7e, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7d, 0x7c, 0x7c, 0x7c, 0x7e, -0x80, 0x82, 0x84, 0x85, 0x84, 0x83, 0x82, 0x7e, 0x7c, 0x7b, 0x7c, 0x7e, 0x81, 0x83, 0x84, 0x84, -0x83, 0x80, 0x7d, 0x7b, 0x7b, 0x7c, 0x7c, 0x7e, 0x82, 0x84, 0x84, 0x84, 0x82, 0x7e, 0x7c, 0x7a, -0x7a, 0x7a, 0x7b, 0x7e, 0x82, 0x84, 0x85, 0x85, 0x83, 0x82, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, -0x7e, 0x80, 0x82, 0x84, 0x85, 0x84, 0x83, 0x81, 0x7d, 0x7b, 0x7a, 0x7a, 0x7b, 0x80, 0x84, 0x86, -0x85, 0x83, 0x7e, 0x7c, 0x7b, 0x7a, 0x7a, 0x7d, 0x81, 0x84, 0x86, 0x88, 0x87, 0x83, 0x7e, 0x79, -0x77, 0x77, 0x7a, 0x7e, 0x82, 0x84, 0x85, 0x85, 0x83, 0x80, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x80, -0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, -0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, -0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x82, 0x83, 0x84, 0x84, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x7a, -0x7a, 0x7b, 0x7d, 0x81, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x7a, 0x7b, 0x80, 0x83, 0x84, 0x85, -0x84, 0x81, 0x7d, 0x7b, 0x7a, 0x7b, 0x7e, 0x82, 0x85, 0x85, 0x83, 0x80, 0x7b, 0x78, 0x77, 0x78, -0x7c, 0x80, 0x84, 0x86, 0x85, 0x84, 0x80, 0x7c, 0x7a, 0x7b, 0x7c, 0x7e, 0x82, 0x82, 0x83, 0x83, -0x81, 0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x81, 0x82, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7d, 0x80, -0x81, 0x83, 0x84, 0x83, 0x81, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x83, 0x83, 0x83, 0x81, -0x7d, 0x7b, 0x7b, 0x7b, 0x7c, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, -0x80, 0x82, 0x82, 0x82, 0x81, 0x7d, 0x7b, 0x7a, 0x7b, 0x7c, 0x7e, 0x81, 0x82, 0x82, 0x82, 0x82, -0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x80, 0x7d, -0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x80, 0x82, 0x82, 0x83, 0x82, 0x7f, 0x7c, 0x7a, 0x78, 0x79, 0x7b, -0x7d, 0x80, 0x82, 0x84, 0x84, 0x83, 0x81, 0x7d, 0x7b, 0x79, 0x78, 0x79, 0x7b, 0x7e, 0x82, 0x84, -0x84, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7c, 0x7e, 0x81, 0x83, 0x84, 0x84, 0x84, 0x82, 0x7e, 0x7d, -0x7c, 0x7c, 0x7d, 0x80, 0x83, 0x84, 0x84, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, -0x81, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7c, -0x7b, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, -0x7d, 0x80, 0x82, 0x83, 0x82, 0x81, 0x7e, 0x7b, 0x7a, 0x79, 0x79, 0x7b, 0x7d, 0x80, 0x81, 0x82, -0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, -0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7d, -0x7e, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x80, -0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x80, 0x7d, 0x7c, 0x7b, 0x7a, 0x7b, 0x7d, 0x7e, 0x80, -0x82, 0x83, 0x85, 0x85, 0x83, 0x80, 0x7c, 0x7a, 0x7a, 0x7b, 0x7c, 0x7e, 0x81, 0x83, 0x84, 0x84, -0x83, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, -0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x83, 0x83, 0x83, 0x82, 0x7e, 0x7c, 0x7a, 0x79, 0x7b, -0x7d, 0x82, 0x84, 0x84, 0x82, 0x7e, 0x7b, 0x7a, 0x79, 0x7b, 0x7e, 0x81, 0x83, 0x84, 0x84, 0x82, -0x80, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x83, 0x82, 0x82, 0x82, 0x81, 0x80, 0x80, 0x80, -0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7e, 0x80, 0x82, 0x83, 0x83, 0x82, 0x81, 0x80, 0x80, 0x7e, -0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7e, -0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x82, -0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x7e, -0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x85, 0x88, 0x86, 0x82, 0x7c, 0x78, -0x77, 0x7a, 0x7d, 0x81, 0x84, 0x87, 0x89, 0x87, 0x82, 0x7b, 0x79, 0x79, 0x7b, 0x7d, 0x7e, 0x80, -0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, -0x81, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, -0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x81, -0x82, 0x82, 0x81, 0x7e, 0x7c, 0x7b, 0x7c, 0x7d, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x7e, -0x7d, 0x7c, 0x7c, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, -0x7d, 0x7e, 0x81, 0x82, 0x82, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x80, -0x81, 0x82, 0x82, 0x80, 0x7d, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, 0x80, 0x82, 0x83, 0x83, 0x81, 0x7d, -0x7b, 0x7a, 0x7b, 0x7c, 0x80, 0x82, 0x84, 0x84, 0x83, 0x81, 0x7e, 0x7c, 0x7b, 0x7b, 0x7c, 0x7e, -0x81, 0x83, 0x83, 0x83, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x80, 0x81, 0x82, 0x83, 0x83, 0x82, 0x80, -0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, -0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x7d, 0x7c, -0x7d, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x82, 0x83, -0x83, 0x80, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x82, 0x81, 0x81, 0x80, 0x7e, 0x7d, -0x7e, 0x80, 0x81, 0x81, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, -0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, -0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x81, -0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, -0x7c, 0x7d, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x81, -0x81, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x80, 0x81, 0x82, 0x83, 0x82, 0x81, 0x80, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x82, 0x83, -0x83, 0x83, 0x82, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x83, 0x84, 0x83, 0x81, 0x7e, -0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x80, 0x82, 0x82, 0x82, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7e, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, -0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x81, 0x81, -0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, -0x80, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x80, 0x7e, -0x7c, 0x7a, 0x78, 0x79, 0x80, 0x88, 0x8d, 0x8d, 0x86, 0x7b, 0x71, 0x6c, 0x6d, 0x73, 0x7b, 0x85, -0x8c, 0x8e, 0x8d, 0x87, 0x80, 0x77, 0x71, 0x70, 0x72, 0x77, 0x7e, 0x86, 0x8a, 0x8c, 0x8b, 0x86, -0x80, 0x79, 0x77, 0x75, 0x77, 0x7b, 0x7e, 0x83, 0x86, 0x87, 0x87, 0x85, 0x83, 0x7e, 0x78, 0x75, -0x76, 0x7a, 0x81, 0x85, 0x88, 0x89, 0x86, 0x83, 0x7e, 0x7b, 0x78, 0x78, 0x7a, 0x7c, 0x80, 0x83, -0x85, 0x85, 0x84, 0x82, 0x7e, 0x7c, 0x7c, 0x7b, 0x7c, 0x7e, 0x81, 0x83, 0x83, 0x82, 0x80, 0x7c, -0x7a, 0x79, 0x79, 0x7a, 0x7d, 0x81, 0x85, 0x87, 0x88, 0x85, 0x80, 0x7a, 0x74, 0x71, 0x73, 0x79, -0x80, 0x85, 0x88, 0x8a, 0x88, 0x84, 0x80, 0x7b, 0x78, 0x75, 0x75, 0x76, 0x7b, 0x81, 0x86, 0x89, -0x89, 0x86, 0x81, 0x7b, 0x76, 0x73, 0x74, 0x79, 0x7e, 0x86, 0x8a, 0x8c, 0x88, 0x83, 0x7d, 0x79, -0x78, 0x7c, 0x80, 0x82, 0x82, 0x80, 0x7c, 0x7b, 0x7a, 0x7c, 0x80, 0x83, 0x85, 0x85, 0x82, 0x7c, -0x78, 0x76, 0x79, 0x7c, 0x80, 0x83, 0x83, 0x83, 0x82, 0x80, 0x7c, 0x7a, 0x7a, 0x7b, 0x7e, 0x81, -0x82, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x82, 0x84, 0x84, 0x83, 0x80, 0x7d, -0x7b, 0x7b, 0x7e, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7b, 0x7d, 0x80, 0x83, 0x85, 0x84, 0x82, -0x7e, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x81, 0x81, 0x80, 0x81, 0x7e, 0x7b, -0x79, 0x77, 0x78, 0x7a, 0x7d, 0x82, 0x85, 0x86, 0x85, 0x83, 0x80, 0x7c, 0x79, 0x77, 0x79, 0x7c, -0x82, 0x85, 0x86, 0x85, 0x82, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, -0x7d, 0x7e, 0x80, 0x83, 0x85, 0x84, 0x82, 0x7e, 0x7b, 0x7a, 0x79, 0x7a, 0x7c, 0x80, 0x83, 0x85, -0x85, 0x84, 0x82, 0x7e, 0x7c, 0x7a, 0x7a, 0x7b, 0x7d, 0x81, 0x82, 0x82, 0x83, 0x83, 0x82, 0x80, -0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x83, 0x84, 0x84, 0x83, 0x81, 0x7d, 0x7c, 0x7c, -0x7b, 0x7c, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x83, 0x82, 0x80, 0x7e, 0x7b, 0x79, 0x7a, 0x7b, 0x7c, -0x80, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x80, 0x7e, -0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x80, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, -0x80, 0x81, 0x82, 0x82, 0x80, 0x7c, 0x7b, 0x7a, 0x7b, 0x7c, 0x80, 0x83, 0x83, 0x83, 0x82, 0x80, -0x7d, 0x7b, 0x7a, 0x79, 0x7b, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x84, 0x83, 0x81, 0x7e, 0x7c, 0x7a, -0x79, 0x7a, 0x7b, 0x7d, 0x81, 0x83, 0x84, 0x84, 0x83, 0x81, 0x7c, 0x7a, 0x78, 0x78, 0x7a, 0x7d, -0x81, 0x84, 0x85, 0x85, 0x84, 0x81, 0x7d, 0x7a, 0x79, 0x7a, 0x7b, 0x7e, 0x82, 0x83, 0x85, 0x85, -0x83, 0x81, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x81, -0x81, 0x81, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, -0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, -0x80, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, -0x7d, 0x7c, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, -0x80, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7e, -0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, -0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x80, 0x80, -0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, -0x7e, 0x81, 0x82, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, -0x80, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, -0x7e, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, -0x81, 0x82, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x81, -0x81, 0x82, 0x81, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x81, 0x80, 0x80, 0x7e, -0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, -0x7d, 0x7e, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x82, 0x82, -0x82, 0x81, 0x80, 0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x82, 0x80, 0x7e, 0x7d, -0x7d, 0x7d, 0x80, 0x82, 0x82, 0x83, 0x82, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x81, 0x82, 0x82, -0x81, 0x80, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7c, -0x7c, 0x7d, 0x80, 0x80, 0x81, 0x82, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, -0x7d, 0x7d, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x82, 0x81, 0x7e, 0x7c, 0x7b, 0x7b, 0x7d, 0x81, 0x83, -0x84, 0x84, 0x83, 0x7e, 0x7c, 0x7a, 0x7a, 0x7e, 0x82, 0x84, 0x85, 0x83, 0x81, 0x7e, 0x7d, 0x7d, -0x7e, 0x80, 0x82, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x83, -0x83, 0x81, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x82, 0x82, 0x81, 0x7e, 0x7c, 0x7b, 0x7c, 0x7c, -0x7e, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x7d, 0x7b, 0x7a, 0x7b, 0x7d, 0x82, 0x85, -0x87, 0x87, 0x84, 0x81, 0x7d, 0x7a, 0x78, 0x78, 0x79, 0x7e, 0x83, 0x87, 0x89, 0x88, 0x84, 0x80, -0x7a, 0x77, 0x76, 0x77, 0x7a, 0x7e, 0x83, 0x86, 0x87, 0x86, 0x83, 0x7d, 0x7a, 0x78, 0x78, 0x7a, -0x7d, 0x81, 0x83, 0x84, 0x84, 0x84, 0x82, 0x7e, 0x7b, 0x79, 0x77, 0x78, 0x7c, 0x80, 0x84, 0x86, -0x86, 0x83, 0x7e, 0x7a, 0x78, 0x78, 0x7a, 0x7d, 0x82, 0x85, 0x86, 0x84, 0x82, 0x80, 0x7d, 0x7c, -0x7d, 0x7d, 0x7e, 0x81, 0x83, 0x82, 0x82, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7e, 0x81, 0x81, 0x81, -0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, -0x7d, 0x7d, 0x7d, 0x7e, 0x82, 0x83, 0x84, 0x83, 0x81, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x82, -0x82, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7e, -0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, -0x81, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, 0x80, 0x81, -0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, -0x7e, 0x7e, 0x7d, 0x7e, 0x81, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, -0x7e, 0x81, 0x83, 0x85, 0x85, 0x83, 0x7e, 0x79, 0x76, 0x76, 0x79, 0x7e, 0x84, 0x87, 0x86, 0x83, -0x7e, 0x7b, 0x7a, 0x7b, 0x7c, 0x7e, 0x81, 0x83, 0x84, 0x84, 0x82, 0x80, 0x7e, 0x7d, 0x7c, 0x7c, -0x7d, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7e, -0x81, 0x82, 0x82, 0x81, 0x7d, 0x7b, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7c, 0x7c, -0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, -0x7e, 0x7d, 0x7e, 0x80, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x80, 0x81, -0x81, 0x82, 0x81, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, -0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x80, -0x80, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7e, -0x7e, 0x7e, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x82, -0x81, 0x81, 0x7e, 0x7b, 0x78, 0x77, 0x78, 0x7c, 0x82, 0x87, 0x88, 0x86, 0x81, 0x79, 0x74, 0x71, -0x73, 0x7a, 0x83, 0x89, 0x8e, 0x8e, 0x87, 0x7e, 0x76, 0x72, 0x73, 0x78, 0x7e, 0x86, 0x88, 0x88, -0x84, 0x81, 0x7d, 0x7a, 0x7a, 0x7a, 0x7c, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x82, 0x82, 0x82, 0x81, -0x7e, 0x7b, 0x79, 0x77, 0x79, 0x7c, 0x81, 0x85, 0x87, 0x86, 0x82, 0x7c, 0x78, 0x78, 0x7b, 0x81, -0x85, 0x87, 0x85, 0x81, 0x7b, 0x77, 0x76, 0x78, 0x7b, 0x82, 0x86, 0x88, 0x87, 0x83, 0x7c, 0x78, -0x76, 0x76, 0x7b, 0x81, 0x86, 0x8a, 0x8a, 0x87, 0x81, 0x7a, 0x75, 0x72, 0x73, 0x78, 0x80, 0x87, -0x8a, 0x89, 0x84, 0x7c, 0x77, 0x75, 0x76, 0x7a, 0x80, 0x84, 0x86, 0x85, 0x82, 0x7d, 0x7c, 0x7b, -0x7c, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x83, 0x84, 0x83, 0x80, 0x7b, 0x78, 0x76, 0x77, 0x7b, 0x82, -0x87, 0x89, 0x86, 0x81, 0x7a, 0x77, 0x76, 0x78, 0x7d, 0x82, 0x84, 0x83, 0x80, 0x7d, 0x7a, 0x7a, -0x7c, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, -0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, -0x7c, 0x7c, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x80, 0x80, -0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x82, 0x81, 0x7d, 0x79, 0x77, 0x77, 0x7c, 0x82, 0x83, 0x83, -0x81, 0x7e, 0x7d, 0x7a, 0x78, 0x78, 0x7a, 0x7d, 0x83, 0x86, 0x86, 0x87, 0x85, 0x81, 0x7c, 0x79, -0x75, 0x75, 0x78, 0x80, 0x86, 0x8a, 0x88, 0x81, 0x78, 0x74, 0x77, 0x7d, 0x84, 0x87, 0x86, 0x83, -0x7d, 0x79, 0x74, 0x72, 0x74, 0x78, 0x80, 0x85, 0x89, 0x8b, 0x8a, 0x85, 0x7d, 0x74, 0x70, 0x71, -0x77, 0x82, 0x8c, 0x8f, 0x8d, 0x8a, 0x85, 0x7e, 0x75, 0x6e, 0x6d, 0x76, 0x83, 0x8f, 0x95, 0x93, -0x8c, 0x7d, 0x6c, 0x61, 0x65, 0x77, 0x8b, 0x95, 0x91, 0x87, 0x80, 0x80, 0x81, 0x7c, 0x74, 0x6e, -0x72, 0x7e, 0x8c, 0x96, 0x93, 0x88, 0x7e, 0x79, 0x7a, 0x7e, 0x82, 0x80, 0x7d, 0x7b, 0x7c, 0x81, -0x84, 0x83, 0x80, 0x7b, 0x7c, 0x81, 0x83, 0x85, 0x84, 0x81, 0x7b, 0x7a, 0x7d, 0x82, 0x85, 0x85, -0x80, 0x7c, 0x7b, 0x7b, 0x7d, 0x7b, 0x78, 0x77, 0x7b, 0x84, 0x8a, 0x8a, 0x85, 0x7d, 0x78, 0x75, -0x76, 0x77, 0x7a, 0x7b, 0x7d, 0x81, 0x82, 0x84, 0x86, 0x85, 0x80, 0x79, 0x75, 0x75, 0x79, 0x7d, -0x81, 0x82, 0x7e, 0x7d, 0x7e, 0x81, 0x83, 0x81, 0x7e, 0x80, 0x82, 0x82, 0x81, 0x7d, 0x7b, 0x7a, -0x7a, 0x7b, 0x80, 0x85, 0x85, 0x85, 0x83, 0x81, 0x7e, 0x78, 0x75, 0x74, 0x76, 0x7b, 0x83, 0x88, -0x89, 0x86, 0x84, 0x82, 0x7e, 0x7a, 0x74, 0x72, 0x76, 0x7e, 0x85, 0x87, 0x86, 0x86, 0x85, 0x84, -0x81, 0x7c, 0x79, 0x7a, 0x7c, 0x7e, 0x82, 0x82, 0x84, 0x85, 0x85, 0x83, 0x81, 0x80, 0x7c, 0x79, -0x78, 0x7a, 0x80, 0x84, 0x87, 0x89, 0x85, 0x80, 0x7c, 0x7b, 0x7d, 0x80, 0x7d, 0x7a, 0x79, 0x7c, -0x83, 0x8a, 0x8c, 0x8b, 0x85, 0x7c, 0x77, 0x77, 0x79, 0x79, 0x7c, 0x81, 0x86, 0x8d, 0x8e, 0x88, -0x81, 0x78, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7c, 0x81, 0x84, 0x86, 0x84, 0x81, 0x7d, 0x7b, 0x7b, -0x7d, 0x7c, 0x7a, 0x78, 0x7a, 0x7c, 0x83, 0x86, 0x85, 0x85, 0x81, 0x7b, 0x76, 0x73, 0x75, 0x79, -0x7e, 0x83, 0x86, 0x88, 0x86, 0x81, 0x7b, 0x77, 0x7a, 0x81, 0x84, 0x82, 0x80, 0x7d, 0x7b, 0x7d, -0x81, 0x83, 0x84, 0x84, 0x84, 0x85, 0x86, 0x85, 0x81, 0x7d, 0x7b, 0x7a, 0x79, 0x78, 0x78, 0x7b, -0x7e, 0x85, 0x8b, 0x8e, 0x8e, 0x89, 0x7e, 0x72, 0x6b, 0x67, 0x6c, 0x74, 0x7d, 0x89, 0x92, 0x97, -0x94, 0x8c, 0x81, 0x75, 0x6c, 0x6a, 0x6c, 0x73, 0x7c, 0x87, 0x8f, 0x92, 0x90, 0x8b, 0x82, 0x75, -0x71, 0x73, 0x78, 0x7d, 0x7e, 0x81, 0x85, 0x88, 0x89, 0x88, 0x81, 0x79, 0x75, 0x78, 0x81, 0x8c, -0x92, 0x8f, 0x84, 0x75, 0x6d, 0x6d, 0x72, 0x7b, 0x88, 0x91, 0x93, 0x8e, 0x83, 0x78, 0x74, 0x74, -0x77, 0x7b, 0x7e, 0x7e, 0x7e, 0x7e, 0x81, 0x89, 0x8d, 0x8a, 0x83, 0x7b, 0x76, 0x75, 0x75, 0x7a, -0x80, 0x82, 0x81, 0x81, 0x85, 0x89, 0x8b, 0x87, 0x7d, 0x76, 0x74, 0x76, 0x79, 0x7d, 0x80, 0x82, -0x83, 0x85, 0x8a, 0x8b, 0x84, 0x7b, 0x72, 0x70, 0x74, 0x78, 0x7e, 0x83, 0x84, 0x85, 0x85, 0x85, -0x87, 0x85, 0x7d, 0x75, 0x71, 0x74, 0x79, 0x80, 0x85, 0x86, 0x83, 0x7d, 0x7c, 0x7c, 0x80, 0x82, -0x83, 0x81, 0x7b, 0x78, 0x76, 0x76, 0x7b, 0x81, 0x85, 0x8a, 0x8e, 0x8e, 0x8a, 0x7c, 0x6d, 0x63, -0x60, 0x6d, 0x81, 0x91, 0x9c, 0x9c, 0x92, 0x85, 0x75, 0x69, 0x66, 0x68, 0x70, 0x7e, 0x8f, 0x98, -0x99, 0x93, 0x87, 0x79, 0x6c, 0x65, 0x68, 0x72, 0x81, 0x8f, 0x95, 0x93, 0x8a, 0x7c, 0x71, 0x6d, -0x6e, 0x76, 0x7e, 0x86, 0x8b, 0x89, 0x87, 0x81, 0x77, 0x74, 0x74, 0x7a, 0x83, 0x88, 0x89, 0x85, -0x80, 0x7c, 0x77, 0x78, 0x7b, 0x7d, 0x80, 0x84, 0x88, 0x8a, 0x89, 0x82, 0x7a, 0x75, 0x70, 0x6c, -0x71, 0x7b, 0x86, 0x90, 0x96, 0x98, 0x92, 0x85, 0x75, 0x67, 0x61, 0x69, 0x77, 0x84, 0x8e, 0x96, -0x9a, 0x97, 0x8b, 0x80, 0x75, 0x6b, 0x65, 0x64, 0x6c, 0x7a, 0x8a, 0x99, 0xa0, 0x9c, 0x8f, 0x7b, -0x6b, 0x63, 0x60, 0x69, 0x75, 0x84, 0x90, 0x99, 0x9d, 0x98, 0x8a, 0x76, 0x67, 0x5f, 0x60, 0x69, -0x7a, 0x8c, 0x96, 0x9a, 0x98, 0x91, 0x83, 0x77, 0x73, 0x6d, 0x66, 0x68, 0x71, 0x7d, 0x8c, 0x98, -0xa0, 0xa3, 0x9b, 0x89, 0x75, 0x63, 0x57, 0x59, 0x67, 0x76, 0x8a, 0xa0, 0xaa, 0xa7, 0x9b, 0x89, -0x73, 0x60, 0x55, 0x52, 0x58, 0x67, 0x7e, 0x97, 0xa9, 0xb0, 0xaa, 0x98, 0x80, 0x67, 0x58, 0x54, -0x59, 0x62, 0x72, 0x88, 0x9b, 0xa6, 0xaa, 0xa0, 0x8c, 0x76, 0x65, 0x5a, 0x5c, 0x6c, 0x7d, 0x8d, -0x9a, 0x9f, 0x9c, 0x90, 0x78, 0x65, 0x5c, 0x5b, 0x65, 0x77, 0x8f, 0xa0, 0xa7, 0xa3, 0x93, 0x7b, -0x68, 0x5b, 0x58, 0x60, 0x70, 0x82, 0x91, 0x9a, 0x9c, 0x99, 0x91, 0x84, 0x76, 0x6d, 0x69, 0x6a, -0x73, 0x7b, 0x86, 0x8e, 0x92, 0x94, 0x90, 0x88, 0x7e, 0x76, 0x6f, 0x6d, 0x6d, 0x75, 0x83, 0x8d, -0x95, 0x98, 0x93, 0x88, 0x7a, 0x6b, 0x66, 0x69, 0x6e, 0x7b, 0x84, 0x8b, 0x92, 0x8e, 0x8a, 0x87, -0x84, 0x7c, 0x74, 0x75, 0x76, 0x74, 0x77, 0x7c, 0x80, 0x81, 0x86, 0x8c, 0x8b, 0x8a, 0x88, 0x80, -0x7a, 0x7b, 0x7b, 0x75, 0x76, 0x80, 0x83, 0x81, 0x81, 0x82, 0x81, 0x7d, 0x81, 0x82, 0x7d, 0x81, -0x85, 0x85, 0x7d, 0x78, 0x7a, 0x7c, 0x7c, 0x7b, 0x7b, 0x83, 0x85, 0x82, 0x84, 0x89, 0x8a, 0x85, -0x7d, 0x79, 0x73, 0x72, 0x73, 0x79, 0x82, 0x8a, 0x93, 0x96, 0x90, 0x87, 0x79, 0x6a, 0x62, 0x65, -0x73, 0x84, 0x93, 0x9a, 0x99, 0x94, 0x86, 0x75, 0x6a, 0x67, 0x69, 0x6d, 0x79, 0x88, 0x8e, 0x8e, -0x8f, 0x8b, 0x86, 0x80, 0x77, 0x72, 0x70, 0x6d, 0x6f, 0x77, 0x82, 0x8a, 0x8f, 0x94, 0x91, 0x89, -0x7e, 0x75, 0x6f, 0x6a, 0x6b, 0x74, 0x80, 0x8e, 0x99, 0xa0, 0xa0, 0x91, 0x7c, 0x6b, 0x5c, 0x55, -0x5b, 0x6f, 0x87, 0x9b, 0xab, 0xaf, 0xa7, 0x92, 0x73, 0x5a, 0x52, 0x54, 0x62, 0x78, 0x8e, 0x9f, -0xa8, 0xa6, 0x9d, 0x89, 0x73, 0x67, 0x61, 0x5f, 0x68, 0x78, 0x87, 0x91, 0x96, 0x95, 0x91, 0x85, -0x79, 0x71, 0x6a, 0x6e, 0x77, 0x82, 0x8d, 0x94, 0x92, 0x88, 0x7c, 0x74, 0x6d, 0x6b, 0x74, 0x82, -0x8c, 0x93, 0x93, 0x8b, 0x7d, 0x73, 0x6b, 0x6d, 0x78, 0x84, 0x8a, 0x8a, 0x8a, 0x85, 0x78, 0x74, -0x75, 0x73, 0x75, 0x7e, 0x8b, 0x91, 0x8f, 0x8f, 0x8a, 0x7b, 0x6f, 0x6b, 0x6d, 0x74, 0x76, 0x79, -0x88, 0x96, 0x93, 0x8e, 0x8f, 0x8c, 0x80, 0x70, 0x69, 0x65, 0x61, 0x66, 0x75, 0x86, 0x95, 0x9c, -0xa2, 0xa4, 0x94, 0x7c, 0x6a, 0x63, 0x5d, 0x59, 0x69, 0x86, 0x99, 0x9e, 0xa2, 0xa3, 0x8e, 0x72, -0x63, 0x5f, 0x66, 0x70, 0x7c, 0x8f, 0x9d, 0x9a, 0x8e, 0x84, 0x7b, 0x6d, 0x61, 0x6b, 0x7d, 0x86, -0x87, 0x91, 0x9a, 0x8f, 0x7d, 0x79, 0x78, 0x6f, 0x6a, 0x72, 0x7b, 0x80, 0x83, 0x8a, 0x90, 0x8e, -0x88, 0x84, 0x7e, 0x78, 0x74, 0x75, 0x79, 0x7e, 0x7d, 0x7c, 0x80, 0x82, 0x83, 0x82, 0x83, 0x84, -0x80, 0x7c, 0x7e, 0x82, 0x82, 0x86, 0x88, 0x81, 0x77, 0x74, 0x74, 0x76, 0x7c, 0x86, 0x8f, 0x8f, -0x8b, 0x89, 0x80, 0x71, 0x6c, 0x6d, 0x71, 0x7a, 0x86, 0x90, 0x96, 0x94, 0x8c, 0x7e, 0x73, 0x6e, -0x6e, 0x70, 0x7a, 0x86, 0x8c, 0x90, 0x91, 0x89, 0x7c, 0x76, 0x76, 0x75, 0x75, 0x7d, 0x87, 0x8b, -0x8c, 0x8a, 0x85, 0x7c, 0x72, 0x70, 0x7a, 0x7e, 0x84, 0x8c, 0x8f, 0x8b, 0x7d, 0x74, 0x70, 0x68, -0x65, 0x75, 0x89, 0x91, 0x97, 0x9b, 0x99, 0x88, 0x6e, 0x60, 0x5e, 0x61, 0x6d, 0x83, 0x96, 0x9f, -0x9f, 0x96, 0x8a, 0x75, 0x61, 0x5f, 0x67, 0x70, 0x7d, 0x8d, 0x9a, 0xa2, 0x95, 0x85, 0x80, 0x74, -0x65, 0x5e, 0x68, 0x77, 0x7a, 0x82, 0x96, 0xa1, 0x9c, 0x91, 0x8a, 0x80, 0x6d, 0x5e, 0x5d, 0x64, -0x6a, 0x71, 0x83, 0x9b, 0xa5, 0xa4, 0x9e, 0x93, 0x83, 0x65, 0x50, 0x55, 0x64, 0x6a, 0x76, 0x94, -0xa8, 0xa4, 0x99, 0x96, 0x8a, 0x6b, 0x5c, 0x65, 0x70, 0x75, 0x7a, 0x89, 0x9a, 0x95, 0x89, 0x8a, -0x8c, 0x7b, 0x66, 0x68, 0x7a, 0x7d, 0x7a, 0x8a, 0x9d, 0x98, 0x87, 0x83, 0x7c, 0x6e, 0x60, 0x64, -0x7a, 0x8c, 0x8a, 0x8b, 0x98, 0x99, 0x87, 0x77, 0x78, 0x77, 0x66, 0x5e, 0x6d, 0x7e, 0x83, 0x8a, -0x97, 0xa1, 0x9b, 0x8b, 0x83, 0x74, 0x61, 0x55, 0x5f, 0x6f, 0x76, 0x85, 0x9f, 0xaa, 0x9f, 0x95, -0x90, 0x7c, 0x60, 0x57, 0x61, 0x69, 0x6b, 0x7d, 0x9f, 0xab, 0x9e, 0x94, 0x91, 0x82, 0x61, 0x4f, -0x59, 0x6c, 0x71, 0x7b, 0x9f, 0xb4, 0xa5, 0x90, 0x8e, 0x83, 0x5e, 0x48, 0x55, 0x69, 0x6d, 0x72, -0x96, 0xb4, 0xa8, 0x94, 0x99, 0x95, 0x70, 0x53, 0x5e, 0x70, 0x68, 0x64, 0x83, 0xa1, 0x9a, 0x8d, -0x94, 0x96, 0x7d, 0x66, 0x6b, 0x80, 0x7d, 0x6d, 0x7d, 0x99, 0x8f, 0x76, 0x79, 0x89, 0x7b, 0x68, -0x75, 0x8e, 0x90, 0x87, 0x8c, 0x96, 0x88, 0x68, 0x5f, 0x6a, 0x6f, 0x73, 0x80, 0x92, 0x9c, 0x99, -0x93, 0x87, 0x75, 0x6c, 0x67, 0x60, 0x68, 0x78, 0x84, 0x91, 0x9a, 0x9a, 0x94, 0x86, 0x7b, 0x70, -0x63, 0x64, 0x69, 0x70, 0x7d, 0x8c, 0x94, 0x93, 0x8e, 0x8b, 0x89, 0x7d, 0x72, 0x6d, 0x6d, 0x67, -0x64, 0x6c, 0x7c, 0x90, 0xa0, 0xaa, 0xa7, 0x9b, 0x86, 0x69, 0x54, 0x4c, 0x4d, 0x59, 0x73, 0x8f, -0xa8, 0xae, 0xac, 0xab, 0x9a, 0x7c, 0x67, 0x59, 0x54, 0x57, 0x64, 0x7a, 0x8c, 0x99, 0xa8, 0xac, -0xa0, 0x89, 0x6f, 0x5e, 0x56, 0x54, 0x5c, 0x77, 0x98, 0xa7, 0xa4, 0xa1, 0x9f, 0x87, 0x61, 0x52, -0x55, 0x5b, 0x68, 0x7c, 0x97, 0xb0, 0xb3, 0xa2, 0x8f, 0x7c, 0x67, 0x52, 0x52, 0x5d, 0x66, 0x7d, -0x9c, 0xa7, 0xa0, 0x9f, 0x9f, 0x89, 0x6f, 0x63, 0x62, 0x67, 0x6d, 0x74, 0x83, 0x94, 0x9e, 0x97, -0x95, 0x98, 0x85, 0x69, 0x65, 0x75, 0x77, 0x6d, 0x74, 0x8a, 0x92, 0x8b, 0x87, 0x88, 0x7e, 0x73, -0x73, 0x7a, 0x7a, 0x79, 0x7c, 0x85, 0x8a, 0x81, 0x77, 0x7c, 0x89, 0x8e, 0x8d, 0x8b, 0x84, 0x7b, -0x6e, 0x66, 0x69, 0x6f, 0x74, 0x7e, 0x91, 0xa7, 0xaa, 0x9b, 0x8c, 0x76, 0x65, 0x5a, 0x54, 0x5c, -0x6e, 0x85, 0x9a, 0xa3, 0xa5, 0xa9, 0x9c, 0x80, 0x6f, 0x63, 0x57, 0x58, 0x65, 0x75, 0x7b, 0x80, -0x96, 0xab, 0xa3, 0x91, 0x86, 0x7a, 0x6d, 0x64, 0x60, 0x60, 0x62, 0x6d, 0x86, 0x9a, 0x9a, 0x93, -0x99, 0x9b, 0x88, 0x74, 0x6c, 0x68, 0x63, 0x67, 0x72, 0x7b, 0x7d, 0x85, 0x9b, 0xa2, 0x94, 0x87, -0x84, 0x7e, 0x6e, 0x66, 0x6d, 0x73, 0x77, 0x81, 0x8d, 0x8f, 0x82, 0x76, 0x80, 0x88, 0x84, 0x80, -0x80, 0x84, 0x89, 0x7d, 0x71, 0x77, 0x77, 0x73, 0x7c, 0x89, 0x8a, 0x80, 0x7e, 0x8a, 0x89, 0x78, -0x70, 0x7a, 0x83, 0x85, 0x88, 0x8b, 0x88, 0x7a, 0x73, 0x75, 0x6f, 0x6a, 0x75, 0x83, 0x93, 0x98, -0x92, 0x92, 0x88, 0x7b, 0x75, 0x6f, 0x68, 0x68, 0x72, 0x83, 0x8f, 0x8f, 0x90, 0x92, 0x98, 0x8a, -0x71, 0x6e, 0x72, 0x72, 0x6d, 0x72, 0x80, 0x85, 0x85, 0x90, 0x98, 0x8b, 0x82, 0x84, 0x80, 0x74, -0x66, 0x69, 0x72, 0x6f, 0x75, 0x8b, 0x9b, 0x98, 0x8d, 0x8b, 0x8f, 0x7d, 0x65, 0x64, 0x69, 0x6b, -0x6f, 0x76, 0x8c, 0xa3, 0xa0, 0x98, 0x90, 0x84, 0x73, 0x63, 0x62, 0x6b, 0x6e, 0x75, 0x8b, 0x99, -0x96, 0x95, 0x95, 0x8d, 0x75, 0x62, 0x67, 0x6a, 0x6e, 0x7d, 0x87, 0x95, 0x9d, 0x8b, 0x88, 0x87, -0x77, 0x6b, 0x68, 0x74, 0x7a, 0x78, 0x81, 0x8b, 0x8e, 0x8a, 0x8b, 0x88, 0x7b, 0x75, 0x74, 0x6e, -0x71, 0x7d, 0x84, 0x87, 0x92, 0x99, 0x8c, 0x81, 0x7e, 0x73, 0x6f, 0x72, 0x71, 0x75, 0x7b, 0x89, -0x91, 0x8a, 0x87, 0x90, 0x88, 0x7c, 0x80, 0x77, 0x71, 0x6e, 0x6f, 0x79, 0x7e, 0x7d, 0x86, 0x90, -0x93, 0x95, 0x94, 0x89, 0x82, 0x76, 0x66, 0x62, 0x63, 0x67, 0x75, 0x8f, 0x9b, 0x9b, 0x99, 0x9c, -0x94, 0x7e, 0x6e, 0x6e, 0x67, 0x5e, 0x65, 0x70, 0x7d, 0x85, 0x8e, 0x99, 0x99, 0x93, 0x8c, 0x7d, -0x74, 0x70, 0x6e, 0x71, 0x70, 0x74, 0x86, 0x8a, 0x88, 0x86, 0x8b, 0x8c, 0x7b, 0x73, 0x7c, 0x7b, -0x7a, 0x7a, 0x7b, 0x82, 0x85, 0x81, 0x7d, 0x79, 0x7b, 0x7b, 0x78, 0x80, 0x85, 0x87, 0x89, 0x89, -0x85, 0x7c, 0x7a, 0x7b, 0x71, 0x6d, 0x7b, 0x83, 0x84, 0x86, 0x90, 0x97, 0x86, 0x80, 0x82, 0x76, -0x6a, 0x65, 0x73, 0x80, 0x7c, 0x7c, 0x8e, 0x9b, 0x8e, 0x7a, 0x7a, 0x7d, 0x71, 0x5e, 0x65, 0x87, -0x8a, 0x7d, 0x8d, 0xa4, 0x94, 0x7a, 0x7b, 0x7a, 0x6d, 0x63, 0x70, 0x7e, 0x81, 0x8c, 0x94, 0x8b, -0x7c, 0x7d, 0x84, 0x7d, 0x76, 0x7d, 0x83, 0x7b, 0x7c, 0x7b, 0x78, 0x79, 0x78, 0x77, 0x82, 0x8f, -0x89, 0x7c, 0x85, 0x8e, 0x80, 0x6c, 0x75, 0x82, 0x7b, 0x76, 0x7a, 0x84, 0x85, 0x80, 0x7a, 0x84, -0x8b, 0x83, 0x7e, 0x7d, 0x87, 0x86, 0x72, 0x70, 0x72, 0x75, 0x78, 0x75, 0x80, 0x90, 0x94, 0x8a, -0x89, 0x87, 0x84, 0x7b, 0x6e, 0x72, 0x76, 0x6f, 0x74, 0x85, 0x88, 0x84, 0x91, 0x94, 0x83, 0x82, -0x7e, 0x76, 0x6b, 0x68, 0x7b, 0x7e, 0x7d, 0x8c, 0x91, 0x91, 0x84, 0x78, 0x7d, 0x7a, 0x70, 0x6e, -0x75, 0x7c, 0x85, 0x87, 0x86, 0x91, 0x8d, 0x78, 0x76, 0x7c, 0x76, 0x69, 0x6e, 0x82, 0x93, 0x82, -0x75, 0x92, 0x9b, 0x78, 0x64, 0x87, 0x8f, 0x6f, 0x69, 0x8b, 0x8f, 0x76, 0x7a, 0x81, 0x88, 0x86, -0x7b, 0x6e, 0x76, 0x90, 0x83, 0x71, 0x7e, 0x91, 0x8a, 0x6f, 0x7a, 0x8e, 0x7e, 0x6a, 0x77, 0x8a, -0x7b, 0x73, 0x83, 0x86, 0x7c, 0x81, 0x85, 0x7c, 0x7a, 0x83, 0x7e, 0x78, 0x7d, 0x80, 0x7c, 0x83, -0x88, 0x83, 0x7c, 0x7c, 0x85, 0x83, 0x85, 0x84, 0x87, 0x86, 0x7a, 0x82, 0x80, 0x72, 0x71, 0x79, -0x80, 0x84, 0x81, 0x84, 0x8d, 0x88, 0x80, 0x78, 0x77, 0x79, 0x7c, 0x82, 0x7c, 0x7c, 0x85, 0x87, -0x7c, 0x78, 0x81, 0x7d, 0x75, 0x7d, 0x8c, 0x85, 0x7c, 0x81, 0x86, 0x82, 0x76, 0x77, 0x86, 0x83, -0x7b, 0x80, 0x84, 0x85, 0x7e, 0x74, 0x77, 0x82, 0x80, 0x7e, 0x82, 0x8c, 0x8f, 0x84, 0x7d, 0x7e, -0x7a, 0x6f, 0x73, 0x7c, 0x7e, 0x7e, 0x83, 0x8c, 0x89, 0x7d, 0x80, 0x86, 0x82, 0x7a, 0x77, 0x7b, -0x7c, 0x78, 0x79, 0x80, 0x83, 0x82, 0x88, 0x89, 0x7e, 0x7e, 0x82, 0x7a, 0x76, 0x7e, 0x83, 0x7b, -0x75, 0x82, 0x8d, 0x81, 0x75, 0x80, 0x88, 0x80, 0x77, 0x7a, 0x7e, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, -0x82, 0x82, 0x7a, 0x78, 0x7e, 0x82, 0x7d, 0x78, 0x7b, 0x7e, 0x80, 0x81, 0x83, 0x84, 0x7e, 0x7d, -0x83, 0x80, 0x78, 0x79, 0x7e, 0x81, 0x7c, 0x7c, 0x84, 0x85, 0x7d, 0x7c, 0x84, 0x87, 0x80, 0x7a, -0x7a, 0x7d, 0x79, 0x75, 0x7a, 0x7e, 0x81, 0x82, 0x83, 0x88, 0x87, 0x81, 0x7d, 0x7b, 0x7b, 0x77, -0x75, 0x79, 0x80, 0x82, 0x84, 0x86, 0x86, 0x85, 0x83, 0x80, 0x7d, 0x7b, 0x79, 0x79, 0x7d, 0x7e, -0x80, 0x82, 0x84, 0x82, 0x84, 0x82, 0x80, 0x80, 0x81, 0x81, 0x7d, 0x80, 0x7e, 0x7b, 0x7b, 0x7d, -0x7e, 0x7e, 0x7e, 0x80, 0x7d, 0x7c, 0x7c, 0x7c, 0x7e, 0x82, 0x84, 0x83, 0x84, 0x82, 0x7e, 0x7b, -0x78, 0x79, 0x7a, 0x7b, 0x80, 0x7e, 0x7d, 0x81, 0x85, 0x88, 0x8b, 0x8a, 0x86, 0x80, 0x7a, 0x74, -0x70, 0x70, 0x74, 0x7a, 0x82, 0x8b, 0x91, 0x91, 0x8e, 0x89, 0x82, 0x7c, 0x75, 0x71, 0x74, 0x74, -0x78, 0x7e, 0x81, 0x84, 0x88, 0x89, 0x87, 0x84, 0x81, 0x7e, 0x7d, 0x80, 0x80, 0x7d, 0x7d, 0x81, -0x82, 0x83, 0x83, 0x7e, 0x7d, 0x7b, 0x7a, 0x7c, 0x7d, 0x84, 0x88, 0x87, 0x88, 0x86, 0x80, 0x7b, -0x76, 0x73, 0x73, 0x75, 0x78, 0x7e, 0x82, 0x85, 0x87, 0x85, 0x82, 0x7e, 0x7d, 0x7b, 0x7b, 0x7e, -0x7d, 0x7e, 0x82, 0x82, 0x84, 0x84, 0x81, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7e, 0x81, 0x82, 0x82, -0x80, 0x7d, 0x7c, 0x7b, 0x79, 0x77, 0x7a, 0x7c, 0x7e, 0x83, 0x83, 0x83, 0x83, 0x82, 0x7e, 0x78, -0x77, 0x78, 0x7b, 0x82, 0x83, 0x84, 0x85, 0x81, 0x7e, 0x7e, 0x7a, 0x76, 0x79, 0x7e, 0x84, 0x86, -0x86, 0x83, 0x81, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x81, 0x83, 0x82, 0x7e, 0x7d, 0x7d, 0x7c, 0x7b, -0x7b, 0x7e, 0x82, 0x81, 0x84, 0x84, 0x81, 0x81, 0x7e, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x81, 0x82, -0x81, 0x81, 0x82, 0x83, 0x80, 0x7e, 0x81, 0x7e, 0x7d, 0x7e, 0x80, 0x7d, 0x7e, 0x80, 0x7d, 0x7e, -0x81, 0x81, 0x80, 0x81, 0x80, 0x81, 0x7e, 0x7a, 0x77, 0x76, 0x79, 0x80, 0x84, 0x89, 0x8a, 0x89, -0x86, 0x7e, 0x7b, 0x77, 0x74, 0x76, 0x7b, 0x7e, 0x82, 0x89, 0x88, 0x85, 0x83, 0x7b, 0x78, 0x78, -0x7a, 0x7b, 0x82, 0x87, 0x8a, 0x87, 0x84, 0x82, 0x79, 0x78, 0x76, 0x74, 0x78, 0x7b, 0x82, 0x88, -0x89, 0x8c, 0x87, 0x7e, 0x7b, 0x78, 0x75, 0x77, 0x7a, 0x7a, 0x7e, 0x83, 0x85, 0x85, 0x87, 0x83, -0x81, 0x83, 0x7d, 0x7c, 0x7a, 0x77, 0x7a, 0x7b, 0x7a, 0x7c, 0x7e, 0x80, 0x81, 0x83, 0x81, 0x7e, -0x81, 0x81, 0x80, 0x81, 0x84, 0x80, 0x7e, 0x81, 0x7c, 0x7a, 0x79, 0x78, 0x7c, 0x82, 0x88, 0x8b, -0x8a, 0x87, 0x84, 0x81, 0x7b, 0x79, 0x76, 0x76, 0x7d, 0x84, 0x86, 0x89, 0x8a, 0x84, 0x81, 0x7d, -0x79, 0x78, 0x78, 0x7a, 0x7d, 0x82, 0x85, 0x87, 0x88, 0x86, 0x81, 0x7c, 0x7c, 0x79, 0x78, 0x78, -0x79, 0x7e, 0x84, 0x84, 0x86, 0x86, 0x83, 0x82, 0x81, 0x7a, 0x79, 0x79, 0x79, 0x7d, 0x7e, 0x83, -0x85, 0x86, 0x85, 0x82, 0x81, 0x7b, 0x79, 0x7a, 0x79, 0x7c, 0x81, 0x83, 0x84, 0x83, 0x83, 0x7d, -0x7c, 0x7d, 0x79, 0x78, 0x7c, 0x7c, 0x7c, 0x80, 0x82, 0x84, 0x88, 0x89, 0x88, 0x83, 0x81, 0x80, -0x7a, 0x7a, 0x78, 0x76, 0x7d, 0x83, 0x84, 0x87, 0x89, 0x86, 0x83, 0x82, 0x7e, 0x7d, 0x7b, 0x79, -0x7b, 0x7d, 0x81, 0x81, 0x82, 0x86, 0x85, 0x84, 0x82, 0x7e, 0x7d, 0x79, 0x79, 0x7c, 0x7b, 0x7d, -0x80, 0x7e, 0x81, 0x80, 0x7e, 0x81, 0x7d, 0x7d, 0x7d, 0x7a, 0x7d, 0x82, 0x82, 0x82, 0x84, 0x83, -0x81, 0x7e, 0x79, 0x77, 0x78, 0x7b, 0x7b, 0x7e, 0x82, 0x85, 0x86, 0x83, 0x84, 0x83, 0x80, 0x7d, -0x7c, 0x79, 0x78, 0x78, 0x77, 0x7b, 0x7d, 0x82, 0x85, 0x86, 0x87, 0x86, 0x84, 0x82, 0x7d, 0x79, -0x77, 0x75, 0x76, 0x7a, 0x7d, 0x81, 0x83, 0x83, 0x82, 0x82, 0x82, 0x80, 0x7d, 0x7e, 0x82, 0x82, -0x81, 0x7e, 0x7b, 0x7c, 0x80, 0x80, 0x82, 0x82, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x80, -0x81, 0x82, 0x84, 0x82, 0x7d, 0x7e, 0x7b, 0x7c, 0x7e, 0x7c, 0x82, 0x84, 0x82, 0x84, 0x81, 0x7e, -0x7e, 0x7b, 0x7b, 0x7d, 0x80, 0x83, 0x87, 0x89, 0x88, 0x86, 0x81, 0x7d, 0x7b, 0x7b, 0x7c, 0x7b, -0x7d, 0x7e, 0x81, 0x83, 0x85, 0x81, 0x7c, 0x7a, 0x77, 0x77, 0x7c, 0x81, 0x83, 0x84, 0x80, 0x7e, -0x81, 0x7d, 0x79, 0x78, 0x77, 0x78, 0x7c, 0x82, 0x88, 0x89, 0x89, 0x89, 0x86, 0x80, 0x78, 0x76, -0x73, 0x76, 0x79, 0x7c, 0x81, 0x87, 0x8a, 0x87, 0x86, 0x82, 0x7b, 0x79, 0x7b, 0x7a, 0x7b, 0x7e, -0x81, 0x81, 0x83, 0x83, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7b, 0x7b, 0x80, 0x7e, 0x80, 0x82, 0x81, -0x81, 0x81, 0x7d, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7d, 0x82, 0x85, 0x87, 0x85, 0x82, 0x80, 0x7a, -0x75, 0x74, 0x76, 0x79, 0x7b, 0x82, 0x88, 0x88, 0x88, 0x87, 0x82, 0x7b, 0x79, 0x76, 0x73, 0x78, -0x80, 0x83, 0x88, 0x8a, 0x89, 0x87, 0x83, 0x7c, 0x78, 0x75, 0x75, 0x79, 0x7b, 0x7e, 0x81, 0x84, -0x84, 0x82, 0x84, 0x82, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7e, 0x7c, 0x7d, 0x7a, 0x79, 0x7d, 0x82, -0x83, 0x86, 0x85, 0x85, 0x86, 0x83, 0x7c, 0x7c, 0x7d, 0x7a, 0x7a, 0x7d, 0x7e, 0x83, 0x87, 0x86, -0x84, 0x82, 0x81, 0x7c, 0x7b, 0x7b, 0x79, 0x7e, 0x83, 0x83, 0x85, 0x85, 0x83, 0x7e, 0x7b, 0x78, -0x77, 0x78, 0x7a, 0x80, 0x83, 0x85, 0x84, 0x80, 0x7e, 0x80, 0x7e, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, -0x7c, 0x7b, 0x7b, 0x7d, 0x7d, 0x7d, 0x82, 0x83, 0x82, 0x83, 0x80, 0x7e, 0x7e, 0x7a, 0x7b, 0x7b, -0x7b, 0x7d, 0x7e, 0x84, 0x85, 0x82, 0x85, 0x83, 0x80, 0x7e, 0x7a, 0x79, 0x7d, 0x7d, 0x7c, 0x7e, -0x81, 0x83, 0x82, 0x82, 0x83, 0x82, 0x82, 0x80, 0x7e, 0x81, 0x82, 0x82, 0x7e, 0x7b, 0x7c, 0x80, -0x81, 0x81, 0x85, 0x85, 0x80, 0x7d, 0x7c, 0x7a, 0x7c, 0x7e, 0x7d, 0x7e, 0x81, 0x83, 0x83, 0x81, -0x7e, 0x7b, 0x7a, 0x7c, 0x7c, 0x7c, 0x7e, 0x82, 0x83, 0x83, 0x81, 0x81, 0x80, 0x7c, 0x7a, 0x7b, -0x7e, 0x81, 0x83, 0x83, 0x7d, 0x7c, 0x7a, 0x79, 0x7a, 0x7b, 0x81, 0x84, 0x86, 0x87, 0x84, 0x81, -0x7b, 0x78, 0x75, 0x76, 0x7c, 0x81, 0x84, 0x86, 0x84, 0x85, 0x86, 0x82, 0x7e, 0x7d, 0x7b, 0x7a, -0x7c, 0x7a, 0x78, 0x7a, 0x7c, 0x80, 0x82, 0x83, 0x86, 0x86, 0x83, 0x82, 0x7e, 0x7d, 0x7e, 0x7e, -0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x82, 0x86, 0x86, 0x85, 0x84, 0x82, 0x81, 0x7e, 0x7c, 0x7c, 0x7c, -0x7e, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x80, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x81, 0x83, 0x81, -0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x81, 0x81, 0x82, 0x84, 0x81, 0x7d, 0x7b, 0x7b, 0x7b, 0x7b, 0x7e, -0x80, 0x82, 0x83, 0x82, 0x82, 0x80, 0x80, 0x80, 0x81, 0x83, 0x81, 0x80, 0x82, 0x81, 0x83, 0x84, -0x81, 0x7e, 0x7d, 0x80, 0x80, 0x7c, 0x7e, 0x80, 0x7e, 0x80, 0x82, 0x7e, 0x7e, 0x7e, 0x7d, 0x7a, -0x7b, 0x7e, 0x7d, 0x81, 0x82, 0x82, 0x83, 0x7e, 0x80, 0x80, 0x79, 0x78, 0x79, 0x78, 0x7b, 0x7d, -0x82, 0x87, 0x84, 0x84, 0x83, 0x7d, 0x7d, 0x7b, 0x7c, 0x7d, 0x7c, 0x80, 0x83, 0x84, 0x86, 0x85, -0x84, 0x84, 0x82, 0x80, 0x7e, 0x7d, 0x80, 0x80, 0x7b, 0x7e, 0x81, 0x80, 0x82, 0x82, 0x7e, 0x7d, -0x80, 0x7d, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x7e, 0x7e, 0x7e, 0x7b, -0x7b, 0x7a, 0x7a, 0x75, 0x70, 0x7d, 0x8a, 0x83, 0x82, 0x89, 0x80, 0x6b, 0x63, 0x75, 0x91, 0x9c, -0x91, 0x75, 0x6f, 0x7e, 0x81, 0x79, 0x74, 0x75, 0x7b, 0x80, 0x90, 0x9c, 0x8a, 0x74, 0x71, 0x7b, -0x7c, 0x72, 0x76, 0x89, 0x8d, 0x84, 0x7d, 0x81, 0x83, 0x72, 0x68, 0x78, 0x90, 0x96, 0x83, 0x70, -0x7a, 0x8e, 0x8c, 0x73, 0x70, 0x7e, 0x7c, 0x71, 0x75, 0x88, 0x89, 0x78, 0x76, 0x8a, 0x99, 0x8e, -0x7b, 0x74, 0x77, 0x73, 0x6e, 0x70, 0x72, 0x72, 0x85, 0xa2, 0xa9, 0x8e, 0x77, 0x7e, 0x7e, 0x6f, -0x6a, 0x73, 0x79, 0x7c, 0x82, 0x87, 0x82, 0x76, 0x76, 0x83, 0x8f, 0x8d, 0x85, 0x7e, 0x79, 0x70, -0x6d, 0x77, 0x82, 0x82, 0x86, 0x8f, 0x90, 0x85, 0x79, 0x79, 0x7b, 0x73, 0x6e, 0x76, 0x81, 0x88, -0x8a, 0x85, 0x79, 0x73, 0x7b, 0x83, 0x82, 0x86, 0x8a, 0x7d, 0x71, 0x76, 0x83, 0x86, 0x7c, 0x78, -0x78, 0x7b, 0x81, 0x89, 0x90, 0x86, 0x7a, 0x7d, 0x81, 0x7a, 0x77, 0x80, 0x88, 0x82, 0x73, 0x77, -0x8a, 0x8a, 0x81, 0x81, 0x84, 0x82, 0x7b, 0x7a, 0x7d, 0x7a, 0x75, 0x74, 0x7b, 0x86, 0x8e, 0x8b, -0x83, 0x80, 0x7c, 0x78, 0x78, 0x76, 0x7b, 0x85, 0x85, 0x83, 0x85, 0x89, 0x88, 0x7c, 0x75, 0x7d, -0x83, 0x7c, 0x79, 0x7b, 0x81, 0x7e, 0x79, 0x80, 0x87, 0x83, 0x80, 0x7c, 0x7a, 0x7e, 0x7e, 0x80, -0x83, 0x82, 0x81, 0x82, 0x83, 0x84, 0x82, 0x80, 0x7d, 0x7c, 0x83, 0x84, 0x81, 0x80, 0x82, 0x85, -0x83, 0x80, 0x7e, 0x80, 0x80, 0x7c, 0x7d, 0x82, 0x86, 0x88, 0x87, 0x86, 0x82, 0x7c, 0x79, 0x79, -0x80, 0x82, 0x7e, 0x80, 0x85, 0x86, 0x87, 0x87, 0x84, 0x81, 0x7e, 0x7c, 0x79, 0x7c, 0x83, 0x85, -0x86, 0x84, 0x7e, 0x80, 0x7e, 0x7e, 0x7d, 0x7a, 0x7c, 0x7e, 0x81, 0x82, 0x84, 0x86, 0x84, 0x81, -0x7e, 0x7d, 0x7d, 0x81, 0x82, 0x80, 0x7d, 0x7c, 0x7d, 0x80, 0x83, 0x88, 0x88, 0x88, 0x87, 0x87, -0x86, 0x7d, 0x72, 0x69, 0x64, 0x68, 0x76, 0x8e, 0x9e, 0x9f, 0x91, 0x7b, 0x70, 0x71, 0x75, 0x7e, -0x82, 0x80, 0x80, 0x7d, 0x7c, 0x7e, 0x82, 0x85, 0x87, 0x89, 0x8e, 0x8f, 0x84, 0x73, 0x68, 0x60, -0x63, 0x74, 0x89, 0x97, 0x9a, 0x92, 0x88, 0x7b, 0x6e, 0x6b, 0x6d, 0x6e, 0x71, 0x7d, 0x8e, 0x90, -0x8f, 0x91, 0x8c, 0x85, 0x81, 0x82, 0x7b, 0x71, 0x6d, 0x6c, 0x6f, 0x76, 0x85, 0x96, 0x9c, 0x99, -0x8e, 0x7a, 0x6b, 0x60, 0x5f, 0x66, 0x70, 0x83, 0x91, 0x95, 0x91, 0x89, 0x7d, 0x73, 0x70, 0x75, -0x7b, 0x82, 0x86, 0x84, 0x82, 0x86, 0x87, 0x86, 0x84, 0x7e, 0x7c, 0x7d, 0x7d, 0x81, 0x81, 0x7c, -0x7e, 0x81, 0x7c, 0x79, 0x76, 0x77, 0x76, 0x76, 0x7d, 0x88, 0x8a, 0x84, 0x7a, 0x75, 0x78, 0x7e, -0x83, 0x89, 0x8e, 0x8d, 0x8b, 0x83, 0x79, 0x77, 0x7b, 0x83, 0x8b, 0x8f, 0x8d, 0x87, 0x7e, 0x75, -0x73, 0x75, 0x7a, 0x82, 0x87, 0x89, 0x89, 0x84, 0x7b, 0x71, 0x6a, 0x6c, 0x73, 0x7b, 0x85, 0x8a, -0x8b, 0x84, 0x7e, 0x80, 0x81, 0x83, 0x83, 0x7e, 0x7b, 0x78, 0x75, 0x6c, 0x60, 0x5d, 0x73, 0xa3, -0xcd, 0xd0, 0xa2, 0x54, 0x1d, 0x23, 0x62, 0xb0, 0xcd, 0xb6, 0x89, 0x68, 0x67, 0x77, 0x78, 0x6c, -0x69, 0x78, 0x94, 0xa5, 0xa3, 0x8b, 0x66, 0x4b, 0x50, 0x75, 0xa8, 0xc2, 0xac, 0x80, 0x60, 0x56, -0x5a, 0x6c, 0x8a, 0x9d, 0x9c, 0x93, 0x8f, 0x8b, 0x73, 0x5a, 0x5d, 0x70, 0x7c, 0x8b, 0xa4, 0xa5, -0x7c, 0x5d, 0x5f, 0x6d, 0x76, 0x8b, 0xa3, 0x9b, 0x7d, 0x70, 0x70, 0x6c, 0x6e, 0x81, 0x90, 0x8c, -0x8b, 0x92, 0x8a, 0x77, 0x72, 0x78, 0x7e, 0x84, 0x8d, 0x8d, 0x7a, 0x6c, 0x6d, 0x72, 0x78, 0x87, -0x96, 0x92, 0x85, 0x79, 0x70, 0x66, 0x61, 0x6a, 0x7b, 0x8c, 0x99, 0xa0, 0x9a, 0x88, 0x79, 0x69, -0x5c, 0x5e, 0x6d, 0x84, 0x94, 0x94, 0x92, 0x8b, 0x80, 0x75, 0x71, 0x79, 0x83, 0x88, 0x89, 0x84, -0x7e, 0x7b, 0x7a, 0x78, 0x7b, 0x82, 0x82, 0x82, 0x81, 0x7d, 0x7c, 0x7c, 0x7e, 0x82, 0x83, 0x82, -0x82, 0x7a, 0x76, 0x79, 0x7e, 0x86, 0x8b, 0x8c, 0x86, 0x75, 0x60, 0x56, 0x60, 0x82, 0xb3, 0xcd, -0xb5, 0x7a, 0x40, 0x27, 0x44, 0x86, 0xc0, 0xcf, 0xad, 0x73, 0x4e, 0x4d, 0x69, 0x85, 0x89, 0x81, -0x7e, 0x8d, 0x9e, 0x9c, 0x81, 0x58, 0x42, 0x52, 0x7e, 0xac, 0xba, 0xab, 0x87, 0x62, 0x58, 0x63, -0x7d, 0x97, 0x98, 0x88, 0x78, 0x70, 0x73, 0x76, 0x7c, 0x87, 0x8d, 0x93, 0x93, 0x88, 0x71, 0x5c, -0x55, 0x5e, 0x75, 0x92, 0xab, 0xb1, 0x99, 0x74, 0x5c, 0x52, 0x59, 0x6c, 0x84, 0x97, 0x9d, 0x9c, -0x97, 0x8a, 0x77, 0x6d, 0x68, 0x66, 0x69, 0x75, 0x83, 0x8a, 0x91, 0x95, 0x96, 0x92, 0x8b, 0x80, -0x6e, 0x5e, 0x56, 0x5d, 0x6d, 0x88, 0xa6, 0xb1, 0xa9, 0x9c, 0x88, 0x6b, 0x54, 0x4c, 0x54, 0x65, -0x7b, 0x97, 0xae, 0xb3, 0xa9, 0x91, 0x75, 0x64, 0x5b, 0x5a, 0x62, 0x6f, 0x83, 0x9a, 0xa8, 0xa7, -0x9e, 0x8d, 0x76, 0x64, 0x5b, 0x5a, 0x61, 0x73, 0x8f, 0xa6, 0xa3, 0x80, 0x5b, 0x5e, 0x88, 0xb3, -0xb6, 0x7d, 0x36, 0x1e, 0x53, 0xb6, 0xef, 0xdf, 0x9f, 0x5d, 0x3a, 0x3d, 0x55, 0x67, 0x74, 0x8a, -0xaa, 0xc0, 0xbb, 0x9d, 0x6d, 0x40, 0x27, 0x33, 0x61, 0xa2, 0xca, 0xca, 0xac, 0x82, 0x64, 0x5a, -0x5f, 0x6c, 0x81, 0x91, 0x91, 0x88, 0x88, 0x88, 0x7e, 0x71, 0x72, 0x7d, 0x83, 0x89, 0x92, 0x89, -0x6b, 0x57, 0x65, 0x7c, 0x87, 0x90, 0x9a, 0x94, 0x7d, 0x71, 0x74, 0x79, 0x7c, 0x84, 0x8b, 0x87, -0x7c, 0x7c, 0x81, 0x81, 0x86, 0x90, 0x94, 0x8c, 0x80, 0x76, 0x6e, 0x63, 0x64, 0x77, 0x8b, 0x98, -0x9f, 0x99, 0x86, 0x6a, 0x5b, 0x5f, 0x69, 0x7a, 0x91, 0x9c, 0x96, 0x89, 0x7a, 0x6c, 0x6d, 0x77, -0x87, 0x9b, 0x9a, 0x8b, 0x77, 0x6e, 0x73, 0x7c, 0x83, 0x85, 0x88, 0x8a, 0x7d, 0x71, 0x72, 0x79, -0x81, 0x84, 0x88, 0x8b, 0x88, 0x80, 0x75, 0x71, 0x76, 0x7e, 0x86, 0x8c, 0x93, 0x92, 0x85, 0x71, -0x5f, 0x55, 0x5b, 0x6f, 0x83, 0x91, 0x9d, 0xa6, 0x9e, 0x83, 0x6c, 0x63, 0x6c, 0x85, 0x99, 0x9b, -0x8a, 0x76, 0x6b, 0x69, 0x6f, 0x7e, 0x90, 0x99, 0x95, 0x87, 0x73, 0x61, 0x5a, 0x5b, 0x65, 0x79, -0x91, 0x9f, 0xa3, 0x98, 0x84, 0x73, 0x6a, 0x6b, 0x7a, 0x8f, 0x96, 0x93, 0x8a, 0x7e, 0x72, 0x6e, -0x78, 0x87, 0x8b, 0x86, 0x82, 0x79, 0x6a, 0x60, 0x6a, 0x7a, 0x86, 0x92, 0x9c, 0x96, 0x83, 0x74, -0x6f, 0x6c, 0x6a, 0x75, 0x8a, 0x93, 0x95, 0x99, 0x95, 0x84, 0x7a, 0x78, 0x76, 0x77, 0x77, 0x7a, -0x7b, 0x7a, 0x7d, 0x87, 0x8b, 0x88, 0x85, 0x80, 0x78, 0x74, 0x73, 0x74, 0x77, 0x7d, 0x88, 0x90, -0x90, 0x8f, 0x86, 0x78, 0x6d, 0x6d, 0x76, 0x80, 0x82, 0x82, 0x80, 0x7b, 0x7d, 0x81, 0x84, 0x8a, -0x88, 0x80, 0x7c, 0x7b, 0x7a, 0x7b, 0x83, 0x8a, 0x8c, 0x8b, 0x89, 0x81, 0x74, 0x70, 0x75, 0x7a, -0x81, 0x86, 0x86, 0x83, 0x7c, 0x76, 0x74, 0x77, 0x7d, 0x84, 0x89, 0x8a, 0x88, 0x80, 0x7a, 0x78, -0x79, 0x7b, 0x7b, 0x79, 0x75, 0x76, 0x89, 0x9d, 0xa3, 0x98, 0x7a, 0x57, 0x49, 0x61, 0x8b, 0xb3, -0xc0, 0xa4, 0x74, 0x50, 0x4b, 0x5c, 0x75, 0x8b, 0x93, 0x90, 0x8b, 0x86, 0x7e, 0x75, 0x6d, 0x68, -0x6a, 0x78, 0x8e, 0x9d, 0xa0, 0x96, 0x7d, 0x65, 0x5c, 0x66, 0x79, 0x8c, 0x94, 0x8a, 0x7c, 0x7a, -0x7b, 0x82, 0x87, 0x84, 0x81, 0x7a, 0x74, 0x74, 0x73, 0x76, 0x7d, 0x87, 0x90, 0x91, 0x8f, 0x86, -0x77, 0x69, 0x61, 0x64, 0x71, 0x83, 0x92, 0x99, 0x95, 0x88, 0x79, 0x6f, 0x71, 0x77, 0x7b, 0x7c, -0x78, 0x78, 0x80, 0x86, 0x87, 0x83, 0x7d, 0x7c, 0x81, 0x84, 0x80, 0x7c, 0x7b, 0x7b, 0x7d, 0x7e, -0x7e, 0x83, 0x88, 0x87, 0x82, 0x78, 0x74, 0x75, 0x7b, 0x89, 0x8c, 0x83, 0x7d, 0x7a, 0x7a, 0x80, -0x83, 0x85, 0x85, 0x80, 0x7a, 0x74, 0x61, 0x3f, 0x2b, 0x51, 0xa5, 0xe5, 0xee, 0xcc, 0x8f, 0x47, -0x26, 0x48, 0x8d, 0xbb, 0xc4, 0xb2, 0x92, 0x64, 0x43, 0x49, 0x68, 0x89, 0x97, 0x90, 0x82, 0x7a, -0x71, 0x58, 0x4b, 0x5f, 0x81, 0x9a, 0xb6, 0xcf, 0xbb, 0x7a, 0x45, 0x3d, 0x4c, 0x66, 0x97, 0xcf, -0xdc, 0xb4, 0x81, 0x5f, 0x4a, 0x41, 0x55, 0x84, 0xa2, 0xa3, 0xa3, 0x9e, 0x81, 0x5b, 0x4f, 0x5a, -0x64, 0x75, 0x93, 0xab, 0xa5, 0x8d, 0x79, 0x6c, 0x62, 0x6e, 0x8c, 0xa3, 0xa2, 0x93, 0x86, 0x74, -0x68, 0x6d, 0x82, 0x91, 0x8b, 0x81, 0x78, 0x67, 0x5f, 0x6b, 0x7d, 0x8a, 0x90, 0x95, 0x94, 0x87, -0x77, 0x6f, 0x6b, 0x6c, 0x7e, 0x94, 0x9f, 0x9d, 0x8d, 0x7b, 0x69, 0x5d, 0x66, 0x7d, 0x8d, 0x90, -0x8b, 0x84, 0x7e, 0x84, 0x8c, 0x8d, 0x84, 0x72, 0x69, 0x6d, 0x7a, 0x8a, 0x99, 0x9b, 0x8d, 0x7c, -0x71, 0x6b, 0x6b, 0x76, 0x80, 0x82, 0x81, 0x80, 0x82, 0x83, 0x83, 0x81, 0x7c, 0x76, 0x77, 0x7d, -0x83, 0x85, 0x84, 0x7a, 0x6b, 0x62, 0x67, 0x78, 0x94, 0xaf, 0xb8, 0xa4, 0x79, 0x4c, 0x38, 0x4a, -0x79, 0xae, 0xc5, 0xb8, 0x8d, 0x61, 0x51, 0x5b, 0x71, 0x85, 0x87, 0x84, 0x83, 0x86, 0x8c, 0x87, -0x76, 0x6c, 0x70, 0x7d, 0x92, 0xa0, 0x9c, 0x8c, 0x70, 0x58, 0x54, 0x66, 0x86, 0xa2, 0xb0, 0xa6, -0x8b, 0x6d, 0x59, 0x59, 0x68, 0x7a, 0x8e, 0x9a, 0x99, 0x8b, 0x7c, 0x75, 0x71, 0x6f, 0x71, 0x77, -0x79, 0x7c, 0x83, 0x85, 0x83, 0x80, 0x84, 0x89, 0x89, 0x85, 0x7a, 0x6c, 0x63, 0x64, 0x72, 0x87, -0x98, 0xa3, 0xa2, 0x90, 0x75, 0x5e, 0x56, 0x62, 0x78, 0x92, 0xa0, 0x9e, 0x92, 0x7b, 0x65, 0x5d, -0x5e, 0x6a, 0x7c, 0x92, 0x9d, 0x97, 0x8a, 0x80, 0x77, 0x78, 0x87, 0x93, 0x8d, 0x78, 0x5f, 0x4e, -0x52, 0x60, 0x5e, 0x56, 0x73, 0xb5, 0xe4, 0xd9, 0xb9, 0x87, 0x42, 0x22, 0x4d, 0xa4, 0xd3, 0xd5, -0xc9, 0x9f, 0x52, 0x1a, 0x27, 0x59, 0x85, 0x99, 0x9d, 0x95, 0x82, 0x68, 0x55, 0x5d, 0x71, 0x78, -0x87, 0xa9, 0xc2, 0xaa, 0x78, 0x62, 0x5f, 0x50, 0x5b, 0x97, 0xc7, 0xc0, 0xa1, 0x8c, 0x6c, 0x45, -0x40, 0x68, 0x91, 0x98, 0x95, 0x97, 0x82, 0x58, 0x45, 0x57, 0x6a, 0x7b, 0x96, 0xa8, 0xa0, 0x86, -0x74, 0x6d, 0x6d, 0x76, 0x89, 0x9d, 0xa2, 0x97, 0x89, 0x77, 0x66, 0x61, 0x70, 0x85, 0x95, 0x9b, -0x94, 0x82, 0x67, 0x58, 0x59, 0x69, 0x7e, 0x93, 0x9c, 0x96, 0x89, 0x7d, 0x78, 0x77, 0x7b, 0x84, -0x8a, 0x86, 0x7d, 0x74, 0x69, 0x63, 0x6f, 0x89, 0x9e, 0xa7, 0x9d, 0x83, 0x5e, 0x41, 0x41, 0x61, -0x95, 0xc1, 0xd7, 0xc4, 0x8b, 0x49, 0x22, 0x28, 0x5b, 0x9d, 0xcf, 0xda, 0xba, 0x86, 0x55, 0x3c, -0x42, 0x5d, 0x85, 0xa9, 0xb9, 0xb3, 0x98, 0x73, 0x57, 0x46, 0x45, 0x53, 0x6b, 0x8e, 0xb5, 0xce, -0xcd, 0xa9, 0x68, 0x2a, 0x1f, 0x52, 0xa0, 0xde, 0xe5, 0xb4, 0x6d, 0x3a, 0x37, 0x55, 0x75, 0x8f, -0x9d, 0xa1, 0x97, 0x7e, 0x67, 0x5b, 0x5f, 0x6f, 0x83, 0x91, 0x9e, 0xa7, 0x9d, 0x7d, 0x5a, 0x4c, -0x5a, 0x7e, 0xa9, 0xbf, 0xb8, 0x9c, 0x75, 0x56, 0x49, 0x51, 0x6f, 0x99, 0xb1, 0xb0, 0x9d, 0x82, -0x68, 0x5b, 0x5e, 0x6c, 0x7c, 0x8a, 0x92, 0x8f, 0x7c, 0x6c, 0x68, 0x6f, 0x7c, 0x8f, 0x9c, 0x9b, -0x90, 0x81, 0x72, 0x66, 0x65, 0x74, 0x89, 0x93, 0x8e, 0x86, 0x7c, 0x79, 0x78, 0x79, 0x84, 0x8f, -0x95, 0x8f, 0x7e, 0x6f, 0x6b, 0x6c, 0x70, 0x7d, 0x8f, 0x9a, 0x99, 0x91, 0x87, 0x7a, 0x74, 0x6f, -0x68, 0x5c, 0x53, 0x56, 0x55, 0x4e, 0x5f, 0x9b, 0xd7, 0xe9, 0xcf, 0x99, 0x56, 0x2b, 0x3d, 0x85, -0xc3, 0xd5, 0xcb, 0xae, 0x72, 0x33, 0x23, 0x44, 0x6f, 0x8e, 0x9e, 0xa1, 0x91, 0x75, 0x5c, 0x55, -0x59, 0x5f, 0x72, 0x96, 0xb9, 0xb9, 0x9a, 0x80, 0x6d, 0x57, 0x4f, 0x73, 0xa3, 0xb2, 0xaa, 0x9e, -0x89, 0x62, 0x4c, 0x5c, 0x7a, 0x86, 0x89, 0x92, 0x89, 0x6c, 0x5a, 0x61, 0x6b, 0x6f, 0x82, 0x9c, -0xa4, 0x98, 0x87, 0x7a, 0x6b, 0x60, 0x6d, 0x8c, 0x9d, 0xa1, 0x9f, 0x91, 0x79, 0x65, 0x63, 0x6e, -0x7a, 0x86, 0x90, 0x8c, 0x7b, 0x6f, 0x6a, 0x68, 0x6c, 0x7b, 0x8d, 0x93, 0x8f, 0x88, 0x7b, 0x6f, -0x6e, 0x7b, 0x8d, 0x94, 0x92, 0x88, 0x77, 0x6c, 0x6c, 0x76, 0x7d, 0x83, 0x83, 0x82, 0x80, 0x7c, -0x7c, 0x7d, 0x80, 0x82, 0x86, 0x88, 0x84, 0x81, 0x7d, 0x79, 0x79, 0x7d, 0x88, 0x93, 0x95, 0x8e, -0x80, 0x72, 0x6b, 0x6b, 0x6f, 0x71, 0x6d, 0x71, 0x84, 0x9f, 0xb4, 0xac, 0x86, 0x56, 0x3d, 0x4b, -0x7e, 0xac, 0xbe, 0xb4, 0x94, 0x73, 0x5c, 0x54, 0x5b, 0x6e, 0x8b, 0x9f, 0xa2, 0x98, 0x88, 0x76, -0x6a, 0x5e, 0x5b, 0x66, 0x7d, 0x98, 0xa7, 0xa2, 0x8b, 0x71, 0x60, 0x61, 0x6f, 0x80, 0x8c, 0x93, -0x8f, 0x7e, 0x72, 0x72, 0x79, 0x82, 0x8c, 0x93, 0x8a, 0x78, 0x71, 0x6f, 0x6b, 0x6b, 0x7a, 0x8d, -0x93, 0x90, 0x86, 0x78, 0x68, 0x65, 0x71, 0x80, 0x87, 0x8e, 0x91, 0x8a, 0x7e, 0x7c, 0x81, 0x85, -0x8b, 0x8f, 0x8d, 0x83, 0x7b, 0x76, 0x72, 0x71, 0x76, 0x7c, 0x80, 0x83, 0x84, 0x7e, 0x74, 0x75, -0x7a, 0x79, 0x75, 0x7e, 0x90, 0x9c, 0x9d, 0x91, 0x7c, 0x67, 0x5d, 0x61, 0x60, 0x51, 0x4b, 0x73, -0xbb, 0xe5, 0xdc, 0xb0, 0x6a, 0x29, 0x1a, 0x49, 0x98, 0xc8, 0xd1, 0xc2, 0x90, 0x53, 0x2b, 0x34, -0x5e, 0x83, 0x9a, 0xa1, 0x9e, 0x8f, 0x73, 0x60, 0x5d, 0x66, 0x6d, 0x81, 0xa9, 0xc3, 0xb0, 0x86, -0x68, 0x54, 0x3f, 0x4c, 0x88, 0xbb, 0xbd, 0xa9, 0x96, 0x72, 0x47, 0x42, 0x6b, 0x8a, 0x8a, 0x92, -0xa1, 0x8d, 0x66, 0x5b, 0x67, 0x67, 0x67, 0x84, 0xa3, 0xa1, 0x90, 0x89, 0x7c, 0x62, 0x5e, 0x76, -0x8f, 0x98, 0x9a, 0x99, 0x88, 0x6f, 0x66, 0x6b, 0x6f, 0x75, 0x87, 0x94, 0x8f, 0x87, 0x82, 0x77, -0x69, 0x68, 0x75, 0x83, 0x8a, 0x8d, 0x8b, 0x82, 0x78, 0x7b, 0x86, 0x8c, 0x89, 0x82, 0x76, 0x6a, -0x67, 0x74, 0x89, 0x96, 0x95, 0x89, 0x76, 0x67, 0x62, 0x6b, 0x7b, 0x89, 0x8f, 0x90, 0x8f, 0x90, -0x96, 0x99, 0x8f, 0x80, 0x70, 0x64, 0x60, 0x5e, 0x63, 0x6e, 0x7a, 0x92, 0xac, 0xb7, 0xad, 0x8d, -0x68, 0x50, 0x4d, 0x61, 0x7c, 0x91, 0x9d, 0x9d, 0x95, 0x88, 0x79, 0x70, 0x71, 0x76, 0x7c, 0x7e, -0x7c, 0x7d, 0x7d, 0x7b, 0x79, 0x79, 0x7b, 0x81, 0x88, 0x8c, 0x8d, 0x83, 0x74, 0x6d, 0x6b, 0x71, -0x7d, 0x8b, 0x95, 0x92, 0x88, 0x7c, 0x6e, 0x66, 0x6b, 0x7a, 0x8c, 0x99, 0x9f, 0x99, 0x85, 0x6e, -0x5d, 0x59, 0x64, 0x79, 0x8d, 0x95, 0x91, 0x87, 0x7b, 0x76, 0x76, 0x7e, 0x87, 0x88, 0x86, 0x7e, -0x79, 0x74, 0x73, 0x79, 0x87, 0x95, 0x98, 0x92, 0x86, 0x79, 0x6e, 0x66, 0x69, 0x72, 0x84, 0x92, -0x97, 0x92, 0x84, 0x73, 0x68, 0x68, 0x74, 0x86, 0x94, 0x96, 0x92, 0x85, 0x6a, 0x40, 0x22, 0x3c, -0x8c, 0xd5, 0xf1, 0xdd, 0x9e, 0x53, 0x24, 0x30, 0x68, 0xa3, 0xc6, 0xc8, 0xa7, 0x74, 0x4a, 0x3b, -0x45, 0x5e, 0x81, 0x9c, 0xae, 0xaf, 0x9e, 0x7e, 0x5b, 0x45, 0x43, 0x56, 0x81, 0xb7, 0xd4, 0xc1, -0x9a, 0x72, 0x50, 0x40, 0x51, 0x7d, 0x9d, 0xa4, 0xa2, 0x95, 0x7c, 0x63, 0x62, 0x70, 0x79, 0x83, -0x93, 0x99, 0x8d, 0x78, 0x6e, 0x68, 0x5d, 0x60, 0x78, 0x96, 0xa1, 0xa3, 0x9f, 0x8b, 0x6f, 0x5f, -0x66, 0x77, 0x8a, 0x9c, 0xa1, 0x93, 0x7e, 0x6e, 0x6b, 0x6c, 0x75, 0x86, 0x91, 0x92, 0x8a, 0x7b, -0x6d, 0x63, 0x61, 0x6f, 0x86, 0x99, 0xa4, 0xa4, 0x98, 0x7d, 0x66, 0x5d, 0x5d, 0x6b, 0x81, 0x92, -0x99, 0x92, 0x85, 0x7a, 0x77, 0x7b, 0x86, 0x8d, 0x8c, 0x86, 0x81, 0x7a, 0x78, 0x7a, 0x81, 0x86, -0x8b, 0x8d, 0x8a, 0x7c, 0x69, 0x59, 0x59, 0x72, 0x96, 0xb3, 0xb6, 0x9b, 0x73, 0x55, 0x55, 0x6e, -0x8c, 0x9a, 0x95, 0x86, 0x78, 0x75, 0x77, 0x79, 0x7c, 0x82, 0x85, 0x86, 0x86, 0x87, 0x83, 0x7c, -0x71, 0x67, 0x69, 0x75, 0x89, 0x9a, 0x9c, 0x8f, 0x7a, 0x69, 0x65, 0x6e, 0x7e, 0x8c, 0x91, 0x8b, -0x82, 0x7b, 0x7b, 0x7a, 0x7b, 0x7d, 0x7c, 0x78, 0x77, 0x79, 0x84, 0x89, 0x85, 0x7c, 0x6f, 0x68, -0x6e, 0x80, 0x93, 0x9d, 0x98, 0x89, 0x73, 0x65, 0x66, 0x70, 0x7d, 0x8b, 0x93, 0x91, 0x89, 0x81, -0x7d, 0x79, 0x77, 0x78, 0x7b, 0x7e, 0x83, 0x88, 0x8b, 0x87, 0x83, 0x80, 0x7b, 0x78, 0x74, 0x73, -0x73, 0x77, 0x7e, 0x8d, 0x9b, 0xa1, 0x97, 0x77, 0x4a, 0x28, 0x32, 0x6f, 0xc3, 0xf7, 0xee, 0xb2, -0x63, 0x2f, 0x2b, 0x4e, 0x7e, 0xa6, 0xb8, 0xaf, 0x95, 0x7a, 0x6d, 0x67, 0x5f, 0x5e, 0x6a, 0x7e, -0x90, 0x99, 0x97, 0x84, 0x67, 0x53, 0x56, 0x74, 0x99, 0xb6, 0xbc, 0xa0, 0x74, 0x50, 0x4a, 0x5a, -0x77, 0x98, 0xaf, 0xb0, 0x9c, 0x87, 0x73, 0x63, 0x56, 0x57, 0x68, 0x82, 0x99, 0xa9, 0xa9, 0x95, -0x74, 0x59, 0x4c, 0x52, 0x6b, 0x8e, 0xa6, 0xa8, 0x9b, 0x85, 0x72, 0x66, 0x65, 0x6f, 0x83, 0x95, -0xa0, 0xa2, 0x96, 0x83, 0x6f, 0x64, 0x66, 0x73, 0x87, 0x92, 0x92, 0x85, 0x74, 0x69, 0x68, 0x74, -0x88, 0x98, 0x9c, 0x95, 0x86, 0x75, 0x6c, 0x68, 0x69, 0x73, 0x7e, 0x89, 0x8f, 0x92, 0x92, 0x8e, -0x87, 0x78, 0x70, 0x6b, 0x71, 0x80, 0x93, 0x9e, 0x94, 0x77, 0x58, 0x54, 0x72, 0xa0, 0xc0, 0xb3, -0x83, 0x4c, 0x35, 0x50, 0x85, 0xb1, 0xbd, 0xa6, 0x7c, 0x60, 0x61, 0x6c, 0x76, 0x79, 0x74, 0x72, -0x7d, 0x92, 0xa2, 0xa1, 0x8b, 0x68, 0x51, 0x52, 0x6b, 0x91, 0xad, 0xb2, 0x9e, 0x7e, 0x65, 0x5e, -0x69, 0x7b, 0x88, 0x8a, 0x86, 0x84, 0x86, 0x8a, 0x8a, 0x82, 0x74, 0x6d, 0x70, 0x7d, 0x8e, 0x94, -0x8d, 0x7c, 0x6c, 0x69, 0x70, 0x7c, 0x8c, 0x90, 0x8b, 0x81, 0x77, 0x72, 0x71, 0x77, 0x80, 0x83, -0x83, 0x84, 0x87, 0x89, 0x89, 0x86, 0x7b, 0x73, 0x71, 0x74, 0x7d, 0x86, 0x8a, 0x88, 0x84, 0x84, -0x80, 0x7a, 0x74, 0x73, 0x76, 0x79, 0x80, 0x8a, 0x92, 0x94, 0x8e, 0x81, 0x67, 0x45, 0x2b, 0x35, -0x6d, 0xb5, 0xe1, 0xdf, 0xb9, 0x77, 0x38, 0x25, 0x4c, 0x8b, 0xb6, 0xc7, 0xbf, 0xa1, 0x74, 0x59, -0x54, 0x54, 0x57, 0x67, 0x86, 0x9f, 0xa8, 0xa8, 0x9a, 0x77, 0x4f, 0x3e, 0x4d, 0x6b, 0x8c, 0xab, -0xb8, 0xa2, 0x7d, 0x66, 0x5b, 0x5a, 0x64, 0x7c, 0x8e, 0x91, 0x96, 0x9d, 0x98, 0x88, 0x78, 0x6b, -0x63, 0x66, 0x76, 0x8e, 0x99, 0x96, 0x8e, 0x82, 0x71, 0x6a, 0x6b, 0x73, 0x7a, 0x82, 0x8b, 0x8d, -0x89, 0x82, 0x7a, 0x74, 0x72, 0x78, 0x82, 0x8c, 0x90, 0x91, 0x8b, 0x80, 0x73, 0x6b, 0x6a, 0x72, -0x83, 0x91, 0x9d, 0x9e, 0x91, 0x7b, 0x66, 0x5e, 0x60, 0x6b, 0x80, 0x96, 0xa3, 0x9f, 0x8e, 0x7a, -0x6b, 0x66, 0x66, 0x6e, 0x7b, 0x8b, 0x98, 0x9c, 0x99, 0x8e, 0x81, 0x6d, 0x55, 0x4b, 0x57, 0x81, -0xaf, 0xc9, 0xc3, 0x98, 0x61, 0x3d, 0x41, 0x68, 0x94, 0xae, 0xad, 0x97, 0x7d, 0x70, 0x70, 0x74, -0x77, 0x77, 0x77, 0x7a, 0x82, 0x8e, 0x93, 0x8f, 0x83, 0x72, 0x66, 0x66, 0x73, 0x89, 0x9a, 0x9d, -0x92, 0x7e, 0x6b, 0x5f, 0x62, 0x72, 0x84, 0x90, 0x91, 0x8b, 0x87, 0x86, 0x87, 0x86, 0x7d, 0x72, -0x6a, 0x6d, 0x78, 0x89, 0x94, 0x98, 0x94, 0x87, 0x77, 0x6b, 0x67, 0x6e, 0x76, 0x7e, 0x87, 0x8c, -0x8c, 0x87, 0x82, 0x7d, 0x76, 0x70, 0x6e, 0x75, 0x80, 0x88, 0x8c, 0x8a, 0x85, 0x7e, 0x7a, 0x75, -0x77, 0x7c, 0x82, 0x83, 0x82, 0x7e, 0x7a, 0x77, 0x78, 0x7c, 0x7e, 0x82, 0x86, 0x8a, 0x88, 0x7e, -0x71, 0x65, 0x62, 0x67, 0x75, 0x88, 0x94, 0x92, 0x82, 0x72, 0x6d, 0x74, 0x85, 0x97, 0x99, 0x8a, -0x77, 0x6d, 0x73, 0x7e, 0x8f, 0x97, 0x8b, 0x73, 0x63, 0x65, 0x75, 0x8a, 0x9b, 0x9c, 0x90, 0x7e, -0x73, 0x72, 0x78, 0x86, 0x8d, 0x86, 0x78, 0x74, 0x74, 0x78, 0x83, 0x89, 0x85, 0x7c, 0x79, 0x7e, -0x85, 0x89, 0x8e, 0x89, 0x7b, 0x74, 0x71, 0x73, 0x77, 0x82, 0x8a, 0x86, 0x7c, 0x77, 0x75, 0x73, -0x75, 0x7e, 0x88, 0x88, 0x86, 0x86, 0x83, 0x7e, 0x7c, 0x7a, 0x75, 0x75, 0x7c, 0x86, 0x8b, 0x8a, -0x8a, 0x87, 0x7c, 0x74, 0x71, 0x77, 0x83, 0x8c, 0x90, 0x8b, 0x81, 0x75, 0x71, 0x72, 0x76, 0x80, -0x84, 0x84, 0x80, 0x7d, 0x7d, 0x7c, 0x80, 0x83, 0x86, 0x88, 0x82, 0x7a, 0x6e, 0x67, 0x67, 0x6d, -0x7e, 0x8d, 0x93, 0x8d, 0x82, 0x77, 0x72, 0x78, 0x85, 0x90, 0x8f, 0x82, 0x75, 0x6d, 0x73, 0x83, -0x91, 0x96, 0x8a, 0x7c, 0x76, 0x76, 0x80, 0x88, 0x88, 0x83, 0x7c, 0x7a, 0x7d, 0x86, 0x90, 0x93, -0x88, 0x76, 0x67, 0x61, 0x66, 0x74, 0x85, 0x91, 0x96, 0x93, 0x89, 0x82, 0x7d, 0x7c, 0x7a, 0x74, -0x6f, 0x71, 0x78, 0x86, 0x91, 0x95, 0x91, 0x86, 0x7a, 0x73, 0x73, 0x77, 0x7a, 0x7c, 0x7c, 0x7b, -0x7d, 0x83, 0x8b, 0x90, 0x8f, 0x8a, 0x81, 0x78, 0x75, 0x78, 0x7c, 0x80, 0x81, 0x80, 0x83, 0x86, -0x8b, 0x8d, 0x89, 0x82, 0x78, 0x72, 0x6f, 0x71, 0x78, 0x83, 0x8a, 0x8d, 0x8b, 0x82, 0x76, 0x69, -0x65, 0x6b, 0x76, 0x85, 0x8d, 0x89, 0x81, 0x7b, 0x79, 0x7b, 0x85, 0x8d, 0x8d, 0x84, 0x79, 0x73, -0x71, 0x74, 0x7e, 0x85, 0x81, 0x7a, 0x7c, 0x85, 0x8e, 0x94, 0x94, 0x8b, 0x77, 0x69, 0x6a, 0x77, -0x86, 0x8e, 0x8f, 0x86, 0x76, 0x6f, 0x79, 0x85, 0x88, 0x87, 0x81, 0x73, 0x6d, 0x75, 0x83, 0x89, -0x8b, 0x8c, 0x87, 0x7d, 0x7b, 0x83, 0x84, 0x7c, 0x75, 0x71, 0x6e, 0x71, 0x83, 0x95, 0x95, 0x8d, -0x84, 0x79, 0x71, 0x6f, 0x77, 0x81, 0x84, 0x84, 0x85, 0x82, 0x81, 0x88, 0x8c, 0x86, 0x7c, 0x77, -0x77, 0x79, 0x82, 0x8d, 0x92, 0x8b, 0x82, 0x7b, 0x76, 0x76, 0x7c, 0x80, 0x7e, 0x7b, 0x78, 0x7a, -0x7d, 0x84, 0x89, 0x87, 0x7e, 0x78, 0x78, 0x79, 0x7d, 0x83, 0x83, 0x7c, 0x73, 0x6e, 0x75, 0x82, -0x8e, 0x91, 0x88, 0x79, 0x6e, 0x6d, 0x77, 0x84, 0x8c, 0x8c, 0x86, 0x7e, 0x7c, 0x82, 0x88, 0x89, -0x80, 0x74, 0x6b, 0x6d, 0x7a, 0x8d, 0x97, 0x94, 0x8b, 0x7e, 0x73, 0x76, 0x80, 0x8b, 0x8e, 0x88, -0x7c, 0x73, 0x70, 0x73, 0x7a, 0x82, 0x84, 0x81, 0x7c, 0x7d, 0x84, 0x8a, 0x8a, 0x85, 0x7a, 0x74, -0x75, 0x79, 0x82, 0x8a, 0x8e, 0x88, 0x7d, 0x77, 0x77, 0x79, 0x7e, 0x82, 0x7e, 0x7b, 0x7d, 0x84, -0x8b, 0x8e, 0x8d, 0x87, 0x7d, 0x77, 0x78, 0x80, 0x85, 0x87, 0x85, 0x7e, 0x78, 0x76, 0x7d, 0x85, -0x89, 0x87, 0x81, 0x79, 0x73, 0x76, 0x7d, 0x86, 0x8a, 0x88, 0x80, 0x70, 0x68, 0x6d, 0x77, 0x82, -0x89, 0x8c, 0x85, 0x79, 0x73, 0x76, 0x7e, 0x89, 0x94, 0x91, 0x81, 0x73, 0x6a, 0x67, 0x6d, 0x7c, -0x87, 0x88, 0x84, 0x81, 0x82, 0x84, 0x89, 0x8a, 0x83, 0x77, 0x6e, 0x6e, 0x7a, 0x8b, 0x94, 0x95, -0x8e, 0x7b, 0x6e, 0x6f, 0x7a, 0x83, 0x86, 0x85, 0x7d, 0x75, 0x79, 0x85, 0x89, 0x88, 0x83, 0x77, -0x6c, 0x68, 0x73, 0x82, 0x89, 0x8c, 0x8c, 0x86, 0x7d, 0x7e, 0x84, 0x81, 0x79, 0x77, 0x76, 0x73, -0x79, 0x87, 0x8c, 0x85, 0x7c, 0x78, 0x72, 0x70, 0x7c, 0x89, 0x8e, 0x8b, 0x84, 0x7c, 0x77, 0x7a, -0x85, 0x8a, 0x88, 0x84, 0x7d, 0x77, 0x74, 0x79, 0x7e, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x83, 0x87, -0x85, 0x80, 0x7a, 0x7a, 0x7d, 0x84, 0x86, 0x82, 0x7b, 0x75, 0x76, 0x7a, 0x7d, 0x81, 0x82, 0x81, -0x7c, 0x7b, 0x80, 0x85, 0x87, 0x83, 0x7a, 0x71, 0x71, 0x77, 0x80, 0x86, 0x87, 0x85, 0x7e, 0x79, -0x7a, 0x7e, 0x83, 0x83, 0x80, 0x7a, 0x75, 0x75, 0x7e, 0x8b, 0x90, 0x8d, 0x83, 0x75, 0x70, 0x72, -0x7c, 0x86, 0x8b, 0x89, 0x83, 0x7d, 0x7b, 0x80, 0x80, 0x7a, 0x73, 0x71, 0x75, 0x7c, 0x86, 0x8d, -0x8e, 0x88, 0x7e, 0x76, 0x6f, 0x6f, 0x73, 0x79, 0x81, 0x84, 0x85, 0x85, 0x84, 0x84, 0x84, 0x7e, -0x76, 0x72, 0x73, 0x79, 0x82, 0x8a, 0x8d, 0x8b, 0x85, 0x81, 0x7e, 0x7e, 0x81, 0x81, 0x7b, 0x75, -0x76, 0x7b, 0x83, 0x8e, 0x93, 0x93, 0x8e, 0x84, 0x7b, 0x73, 0x70, 0x71, 0x73, 0x76, 0x79, 0x7d, -0x81, 0x81, 0x81, 0x82, 0x81, 0x82, 0x87, 0x86, 0x81, 0x7b, 0x76, 0x74, 0x75, 0x7b, 0x83, 0x84, -0x83, 0x7d, 0x7a, 0x7c, 0x80, 0x81, 0x80, 0x7e, 0x7b, 0x7b, 0x80, 0x85, 0x89, 0x8b, 0x88, 0x7e, -0x79, 0x78, 0x7a, 0x7e, 0x81, 0x84, 0x82, 0x7b, 0x7a, 0x7b, 0x80, 0x83, 0x84, 0x82, 0x7c, 0x7b, -0x7e, 0x84, 0x85, 0x83, 0x7d, 0x76, 0x71, 0x75, 0x7d, 0x83, 0x86, 0x86, 0x84, 0x82, 0x81, 0x81, -0x7c, 0x76, 0x73, 0x72, 0x73, 0x79, 0x84, 0x8c, 0x8e, 0x8a, 0x81, 0x79, 0x75, 0x78, 0x80, 0x86, -0x88, 0x85, 0x7c, 0x74, 0x75, 0x7a, 0x81, 0x85, 0x85, 0x81, 0x7e, 0x83, 0x88, 0x87, 0x84, 0x7c, -0x70, 0x64, 0x64, 0x75, 0x90, 0x9e, 0x9d, 0x94, 0x89, 0x82, 0x74, 0x5f, 0x5b, 0x72, 0x94, 0x96, -0x7b, 0x6b, 0x78, 0x92, 0x97, 0x89, 0x77, 0x6d, 0x6f, 0x77, 0x8a, 0xa2, 0xad, 0x97, 0x6c, 0x4d, -0x4e, 0x69, 0x8b, 0xa2, 0xa6, 0x95, 0x7a, 0x68, 0x69, 0x7b, 0x8a, 0x86, 0x79, 0x74, 0x78, 0x84, -0x8f, 0x94, 0x8c, 0x74, 0x5f, 0x60, 0x74, 0x93, 0xa2, 0x9a, 0x87, 0x71, 0x64, 0x63, 0x70, 0x84, -0x8e, 0x88, 0x7a, 0x76, 0x7c, 0x86, 0x8c, 0x8a, 0x82, 0x77, 0x70, 0x76, 0x84, 0x8c, 0x85, 0x72, -0x64, 0x6b, 0x84, 0x97, 0x9b, 0x90, 0x83, 0x81, 0x7c, 0x74, 0x6f, 0x79, 0x88, 0x8a, 0x83, 0x84, -0x8d, 0x89, 0x67, 0x3c, 0x2f, 0x57, 0x9b, 0xce, 0xdf, 0xc9, 0x92, 0x4a, 0x19, 0x17, 0x48, 0x90, -0xbf, 0xc5, 0xad, 0x91, 0x7d, 0x70, 0x66, 0x60, 0x5d, 0x67, 0x81, 0x9b, 0xba, 0xc9, 0xb2, 0x75, -0x3a, 0x2c, 0x4a, 0x7c, 0xb4, 0xce, 0xc3, 0x97, 0x63, 0x46, 0x46, 0x5b, 0x74, 0x82, 0x86, 0x91, -0x9b, 0x9a, 0x8f, 0x7c, 0x67, 0x56, 0x5b, 0x79, 0x97, 0xa5, 0x9e, 0x84, 0x65, 0x58, 0x63, 0x79, -0x8f, 0x9c, 0x9c, 0x8f, 0x7c, 0x73, 0x6d, 0x6a, 0x6e, 0x76, 0x80, 0x88, 0x91, 0x94, 0x8c, 0x7e, -0x71, 0x69, 0x6b, 0x77, 0x88, 0x94, 0x94, 0x8c, 0x80, 0x73, 0x70, 0x77, 0x7a, 0x7b, 0x7b, 0x7d, -0x83, 0x87, 0x89, 0x85, 0x7a, 0x70, 0x6b, 0x72, 0x82, 0x91, 0x99, 0x96, 0x85, 0x65, 0x40, 0x37, -0x58, 0x9b, 0xd2, 0xd5, 0xa5, 0x68, 0x42, 0x3f, 0x54, 0x6b, 0x8a, 0xa7, 0xb4, 0xa9, 0x90, 0x7a, -0x72, 0x69, 0x58, 0x4f, 0x62, 0x94, 0xbd, 0xbf, 0x9c, 0x6f, 0x52, 0x46, 0x4a, 0x66, 0x96, 0xb8, -0xb3, 0x8e, 0x6a, 0x60, 0x6b, 0x74, 0x70, 0x70, 0x7a, 0x89, 0x93, 0x93, 0x8f, 0x86, 0x73, 0x60, -0x61, 0x7a, 0x98, 0xa4, 0x9b, 0x85, 0x71, 0x68, 0x6b, 0x78, 0x84, 0x89, 0x85, 0x7c, 0x7b, 0x84, -0x8b, 0x87, 0x79, 0x6c, 0x65, 0x69, 0x78, 0x8e, 0x98, 0x92, 0x85, 0x75, 0x6f, 0x71, 0x7c, 0x87, -0x8d, 0x8d, 0x86, 0x81, 0x7d, 0x7e, 0x80, 0x7e, 0x80, 0x85, 0x8c, 0x8e, 0x87, 0x6f, 0x45, 0x27, -0x38, 0x77, 0xc1, 0xe1, 0xcc, 0x94, 0x58, 0x2f, 0x29, 0x51, 0x8f, 0xb9, 0xbe, 0xab, 0x94, 0x81, -0x70, 0x65, 0x5d, 0x5f, 0x70, 0x93, 0xba, 0xc4, 0xae, 0x88, 0x58, 0x35, 0x38, 0x64, 0x99, 0xb5, -0xb2, 0x99, 0x79, 0x5e, 0x54, 0x5f, 0x70, 0x81, 0x8e, 0x92, 0x8d, 0x88, 0x83, 0x78, 0x6c, 0x68, -0x6d, 0x7c, 0x96, 0xac, 0xa8, 0x8f, 0x71, 0x60, 0x5e, 0x6c, 0x87, 0x9c, 0xa0, 0x97, 0x89, 0x79, -0x6f, 0x6d, 0x72, 0x79, 0x7d, 0x83, 0x85, 0x84, 0x83, 0x80, 0x7a, 0x75, 0x77, 0x7e, 0x84, 0x87, -0x86, 0x81, 0x7e, 0x82, 0x83, 0x82, 0x80, 0x7e, 0x7d, 0x7c, 0x7d, 0x82, 0x82, 0x81, 0x7d, 0x80, -0x89, 0x91, 0x8e, 0x6f, 0x3d, 0x23, 0x47, 0x9b, 0xe2, 0xea, 0xb9, 0x75, 0x43, 0x2e, 0x36, 0x5c, -0x95, 0xc0, 0xc1, 0xa2, 0x87, 0x82, 0x80, 0x6c, 0x50, 0x49, 0x69, 0x9a, 0xb9, 0xba, 0xa7, 0x85, -0x5a, 0x3d, 0x46, 0x73, 0xa1, 0xb4, 0xa6, 0x85, 0x69, 0x5e, 0x60, 0x67, 0x74, 0x8a, 0x9b, 0x9d, -0x93, 0x88, 0x79, 0x66, 0x58, 0x5c, 0x75, 0x9a, 0xb4, 0xb4, 0x9b, 0x7a, 0x60, 0x56, 0x5e, 0x78, -0x94, 0xa0, 0x9c, 0x8b, 0x79, 0x6c, 0x69, 0x6e, 0x76, 0x80, 0x8c, 0x94, 0x8e, 0x83, 0x75, 0x6b, -0x6b, 0x76, 0x8a, 0x99, 0x9c, 0x94, 0x81, 0x6c, 0x63, 0x67, 0x76, 0x89, 0x95, 0x96, 0x8d, 0x86, -0x7c, 0x75, 0x70, 0x71, 0x76, 0x82, 0x93, 0xa1, 0x9a, 0x72, 0x3d, 0x29, 0x51, 0xa2, 0xe2, 0xe7, -0xa9, 0x4e, 0x1d, 0x2d, 0x64, 0x9d, 0xb4, 0xab, 0x9a, 0x8e, 0x86, 0x7e, 0x72, 0x65, 0x58, 0x57, -0x6d, 0x95, 0xbc, 0xc6, 0xa5, 0x6a, 0x3a, 0x34, 0x59, 0x8d, 0xae, 0xb0, 0x9c, 0x81, 0x6a, 0x61, -0x67, 0x77, 0x83, 0x85, 0x84, 0x87, 0x92, 0x95, 0x88, 0x71, 0x60, 0x63, 0x7b, 0x96, 0xa5, 0xa3, -0x8e, 0x70, 0x5c, 0x5a, 0x6b, 0x86, 0x9a, 0x9e, 0x92, 0x84, 0x77, 0x70, 0x6d, 0x6c, 0x70, 0x77, -0x83, 0x8e, 0x91, 0x8c, 0x83, 0x76, 0x71, 0x76, 0x83, 0x90, 0x94, 0x8f, 0x84, 0x78, 0x71, 0x72, -0x78, 0x82, 0x8b, 0x8c, 0x87, 0x7d, 0x73, 0x63, 0x4f, 0x4a, 0x65, 0x94, 0xba, 0xc1, 0xab, 0x85, -0x58, 0x3f, 0x49, 0x6b, 0x91, 0xae, 0xb7, 0xa8, 0x8c, 0x76, 0x6e, 0x69, 0x65, 0x6f, 0x85, 0x99, -0xa5, 0xa1, 0x8e, 0x6f, 0x54, 0x4d, 0x5c, 0x7b, 0x9d, 0xae, 0xa8, 0x8e, 0x6f, 0x5a, 0x53, 0x5c, -0x72, 0x86, 0x94, 0x9b, 0x98, 0x8b, 0x7a, 0x71, 0x6e, 0x6f, 0x79, 0x8a, 0x99, 0x9e, 0x94, 0x82, -0x70, 0x66, 0x69, 0x75, 0x88, 0x97, 0x9d, 0x94, 0x82, 0x71, 0x6a, 0x68, 0x6d, 0x79, 0x86, 0x8d, -0x90, 0x8c, 0x83, 0x75, 0x6b, 0x69, 0x6f, 0x7d, 0x90, 0x9a, 0x9a, 0x8d, 0x77, 0x67, 0x64, 0x6f, -0x81, 0x91, 0x9a, 0x94, 0x85, 0x76, 0x74, 0x7d, 0x84, 0x76, 0x55, 0x3a, 0x4d, 0x8f, 0xcf, 0xdd, -0xb2, 0x73, 0x45, 0x36, 0x48, 0x70, 0xa5, 0xc4, 0xb8, 0x91, 0x71, 0x6f, 0x78, 0x75, 0x6b, 0x68, -0x74, 0x8e, 0xa8, 0xae, 0x9b, 0x76, 0x54, 0x47, 0x54, 0x7b, 0xa8, 0xbe, 0xae, 0x84, 0x5f, 0x51, -0x5a, 0x6a, 0x7a, 0x8b, 0x96, 0x9c, 0x9a, 0x8f, 0x7c, 0x68, 0x5a, 0x5c, 0x70, 0x91, 0xac, 0xb0, -0x9d, 0x79, 0x5b, 0x53, 0x61, 0x78, 0x8e, 0x9b, 0x98, 0x8a, 0x7a, 0x71, 0x72, 0x76, 0x79, 0x7a, -0x7e, 0x88, 0x8f, 0x90, 0x88, 0x7a, 0x71, 0x6f, 0x77, 0x85, 0x8c, 0x8b, 0x82, 0x75, 0x6e, 0x73, -0x80, 0x8b, 0x91, 0x8e, 0x87, 0x82, 0x83, 0x80, 0x69, 0x44, 0x2e, 0x4a, 0x8f, 0xd4, 0xec, 0xc6, -0x81, 0x45, 0x27, 0x30, 0x5c, 0x9a, 0xc7, 0xc5, 0xa5, 0x83, 0x71, 0x6d, 0x67, 0x61, 0x61, 0x75, -0x97, 0xb7, 0xc0, 0xa8, 0x76, 0x48, 0x32, 0x40, 0x6f, 0xa7, 0xc6, 0xbf, 0x9d, 0x71, 0x54, 0x4f, -0x5c, 0x6e, 0x7d, 0x8a, 0x95, 0x9b, 0x98, 0x8b, 0x77, 0x66, 0x60, 0x6a, 0x82, 0x9b, 0xab, 0xa7, -0x8e, 0x6e, 0x5a, 0x5b, 0x6d, 0x89, 0x9f, 0xa3, 0x96, 0x81, 0x71, 0x6c, 0x6e, 0x76, 0x7d, 0x84, -0x89, 0x8a, 0x87, 0x7d, 0x74, 0x6d, 0x6a, 0x74, 0x87, 0x97, 0x9d, 0x94, 0x85, 0x74, 0x69, 0x69, -0x73, 0x82, 0x8b, 0x8d, 0x89, 0x83, 0x7d, 0x7b, 0x81, 0x85, 0x87, 0x81, 0x6e, 0x58, 0x53, 0x6e, -0x9a, 0xb6, 0xac, 0x87, 0x65, 0x56, 0x59, 0x6f, 0x8a, 0x9e, 0xa3, 0x97, 0x85, 0x7a, 0x76, 0x75, -0x73, 0x71, 0x71, 0x78, 0x89, 0x9a, 0xa0, 0x97, 0x82, 0x6b, 0x60, 0x65, 0x79, 0x90, 0x99, 0x94, -0x87, 0x75, 0x6e, 0x72, 0x7b, 0x81, 0x81, 0x81, 0x83, 0x87, 0x88, 0x84, 0x7c, 0x76, 0x72, 0x74, -0x7b, 0x84, 0x8c, 0x8d, 0x87, 0x7d, 0x77, 0x73, 0x77, 0x7d, 0x80, 0x7e, 0x7d, 0x7e, 0x81, 0x82, -0x81, 0x80, 0x7d, 0x7c, 0x7c, 0x7e, 0x81, 0x84, 0x83, 0x81, 0x81, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, -0x7c, 0x7e, 0x84, 0x86, 0x86, 0x83, 0x7d, 0x79, 0x77, 0x79, 0x7c, 0x80, 0x81, 0x81, 0x80, 0x7e, -0x7e, 0x80, 0x81, 0x81, 0x7d, 0x7b, 0x7c, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, -0x7e, 0x7e, 0x80, 0x81, 0x83, 0x84, 0x84, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7b, 0x7a, 0x7b, 0x7d, -0x7e, 0x80, 0x82, 0x84, 0x84, 0x84, 0x84, 0x81, 0x7d, 0x7c, 0x7c, 0x7c, 0x7a, 0x7b, 0x80, 0x82, -0x84, 0x86, 0x85, 0x82, 0x80, 0x80, 0x7e, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7e, 0x82, 0x84, 0x84, -0x83, 0x80, 0x7d, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7e, -0x7e, 0x80, 0x80, 0x7d, 0x80, 0x80, 0x80, 0x80, 0x7d, 0x7c, 0x7a, 0x78, 0x7a, 0x7d, 0x82, 0x84, -0x83, 0x7e, 0x7b, 0x7b, 0x7d, 0x80, 0x80, 0x7d, 0x7a, 0x79, 0x7a, 0x7d, 0x83, 0x86, 0x87, 0x86, -0x81, 0x7c, 0x79, 0x78, 0x77, 0x78, 0x7b, 0x80, 0x84, 0x88, 0x89, 0x87, 0x83, 0x7e, 0x7a, 0x7a, -0x7a, 0x7c, 0x80, 0x82, 0x83, 0x83, 0x83, 0x84, 0x82, 0x80, 0x7d, 0x7b, 0x7b, 0x7c, 0x7c, 0x7e, -0x80, 0x83, 0x86, 0x86, 0x83, 0x81, 0x7d, 0x7b, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x80, 0x7e, 0x80, -0x82, 0x82, 0x82, 0x80, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7c, 0x80, 0x82, 0x81, -0x82, 0x82, 0x83, 0x81, 0x7c, 0x7b, 0x7b, 0x7b, 0x7d, 0x7e, 0x82, 0x84, 0x85, 0x84, 0x83, 0x7e, -0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7c, 0x7a, 0x7a, 0x7d, 0x84, 0x88, -0x8b, 0x88, 0x80, 0x78, 0x73, 0x72, 0x75, 0x78, 0x7c, 0x80, 0x83, 0x84, 0x85, 0x85, 0x85, 0x82, -0x7d, 0x77, 0x75, 0x76, 0x7a, 0x80, 0x84, 0x86, 0x86, 0x86, 0x85, 0x83, 0x7e, 0x7b, 0x78, 0x76, -0x78, 0x7b, 0x80, 0x83, 0x85, 0x84, 0x80, 0x7d, 0x7b, 0x7a, 0x7b, 0x7c, 0x7e, 0x82, 0x83, 0x84, -0x84, 0x82, 0x7e, 0x7c, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, -0x81, 0x81, 0x80, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7a, -0x7b, 0x7e, 0x81, 0x82, 0x84, 0x83, 0x80, 0x7b, 0x78, 0x77, 0x79, 0x7b, 0x81, 0x88, 0x8b, 0x8a, -0x86, 0x7d, 0x77, 0x75, 0x76, 0x7a, 0x7d, 0x81, 0x81, 0x81, 0x81, 0x82, 0x83, 0x83, 0x80, 0x7c, -0x7c, 0x7d, 0x7d, 0x7e, 0x7b, 0x78, 0x76, 0x78, 0x7c, 0x82, 0x85, 0x83, 0x81, 0x7d, 0x79, 0x77, -0x76, 0x76, 0x79, 0x7a, 0x7d, 0x81, 0x83, 0x85, 0x85, 0x83, 0x7e, 0x7b, 0x79, 0x79, 0x7b, 0x81, -0x82, 0x82, 0x82, 0x80, 0x7d, 0x7b, 0x7b, 0x7e, 0x80, 0x80, 0x81, 0x82, 0x82, 0x81, 0x81, 0x7e, -0x7b, 0x7c, 0x7e, 0x81, 0x82, 0x83, 0x80, 0x7b, 0x7a, 0x7c, 0x80, 0x83, 0x87, 0x87, 0x82, 0x7e, -0x7c, 0x7c, 0x7e, 0x82, 0x84, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7c, 0x7a, 0x77, 0x76, -0x77, 0x7a, 0x81, 0x85, 0x87, 0x87, 0x83, 0x7e, 0x7c, 0x7b, 0x7a, 0x7c, 0x7d, 0x7c, 0x7e, 0x83, -0x87, 0x89, 0x87, 0x82, 0x7c, 0x79, 0x79, 0x7b, 0x84, 0x88, 0x87, 0x82, 0x7e, 0x7c, 0x7b, 0x7d, -0x7e, 0x7e, 0x81, 0x82, 0x81, 0x82, 0x84, 0x83, 0x81, 0x7d, 0x7b, 0x7b, 0x7d, 0x82, 0x85, 0x85, -0x83, 0x80, 0x80, 0x81, 0x82, 0x83, 0x80, 0x7a, 0x79, 0x7a, 0x7d, 0x81, 0x82, 0x80, 0x7b, 0x79, -0x7b, 0x7d, 0x80, 0x82, 0x83, 0x81, 0x7e, 0x80, 0x80, 0x83, 0x83, 0x80, 0x7c, 0x79, 0x78, 0x7a, -0x7e, 0x80, 0x81, 0x80, 0x80, 0x83, 0x84, 0x84, 0x84, 0x81, 0x7b, 0x76, 0x76, 0x78, 0x7c, 0x82, -0x86, 0x87, 0x84, 0x81, 0x79, 0x74, 0x75, 0x79, 0x81, 0x86, 0x88, 0x83, 0x7c, 0x7a, 0x7d, 0x83, -0x87, 0x86, 0x80, 0x79, 0x78, 0x7a, 0x7e, 0x83, 0x81, 0x7a, 0x76, 0x77, 0x7e, 0x89, 0x8f, 0x8d, -0x85, 0x7c, 0x79, 0x7a, 0x80, 0x84, 0x83, 0x80, 0x7c, 0x7c, 0x80, 0x84, 0x85, 0x7e, 0x78, 0x74, -0x76, 0x7e, 0x86, 0x8c, 0x8b, 0x82, 0x78, 0x78, 0x7c, 0x80, 0x83, 0x84, 0x7e, 0x79, 0x7a, 0x7d, -0x81, 0x83, 0x82, 0x7c, 0x7c, 0x82, 0x87, 0x89, 0x86, 0x7e, 0x74, 0x6f, 0x72, 0x79, 0x7e, 0x82, -0x82, 0x82, 0x84, 0x87, 0x89, 0x89, 0x85, 0x7e, 0x78, 0x77, 0x7a, 0x7e, 0x82, 0x82, 0x80, 0x7e, -0x7e, 0x80, 0x7e, 0x76, 0x6e, 0x6b, 0x70, 0x7b, 0x85, 0x8d, 0x89, 0x80, 0x7a, 0x7c, 0x82, 0x86, -0x87, 0x81, 0x77, 0x74, 0x79, 0x83, 0x8a, 0x8a, 0x80, 0x74, 0x70, 0x73, 0x80, 0x8c, 0x8f, 0x8a, -0x85, 0x82, 0x83, 0x88, 0x89, 0x82, 0x76, 0x70, 0x70, 0x77, 0x86, 0x8f, 0x8d, 0x85, 0x7b, 0x77, -0x79, 0x81, 0x86, 0x83, 0x7a, 0x76, 0x79, 0x82, 0x89, 0x8a, 0x84, 0x79, 0x72, 0x74, 0x7a, 0x82, -0x87, 0x84, 0x7b, 0x78, 0x7d, 0x86, 0x8d, 0x8e, 0x87, 0x7d, 0x75, 0x75, 0x77, 0x7b, 0x7d, 0x7c, -0x7b, 0x7e, 0x86, 0x8c, 0x8f, 0x8b, 0x81, 0x76, 0x72, 0x76, 0x7a, 0x7e, 0x80, 0x7e, 0x81, 0x82, -0x86, 0x87, 0x82, 0x79, 0x6b, 0x64, 0x65, 0x72, 0x85, 0x8d, 0x8e, 0x87, 0x7b, 0x78, 0x7d, 0x84, -0x84, 0x80, 0x77, 0x6f, 0x73, 0x7d, 0x89, 0x8e, 0x89, 0x7d, 0x74, 0x77, 0x80, 0x8c, 0x90, 0x8a, -0x80, 0x79, 0x80, 0x87, 0x8c, 0x8c, 0x84, 0x77, 0x6f, 0x73, 0x7e, 0x88, 0x8a, 0x86, 0x7e, 0x78, -0x7b, 0x84, 0x87, 0x83, 0x7a, 0x72, 0x70, 0x75, 0x80, 0x86, 0x82, 0x7d, 0x7a, 0x7a, 0x82, 0x88, -0x89, 0x85, 0x7e, 0x7a, 0x79, 0x7d, 0x82, 0x81, 0x79, 0x75, 0x73, 0x77, 0x80, 0x86, 0x89, 0x87, -0x84, 0x85, 0x84, 0x85, 0x83, 0x7e, 0x79, 0x75, 0x76, 0x78, 0x7b, 0x7e, 0x80, 0x81, 0x82, 0x83, -0x82, 0x7a, 0x70, 0x68, 0x68, 0x72, 0x7e, 0x86, 0x86, 0x7e, 0x78, 0x7c, 0x85, 0x8e, 0x8f, 0x84, -0x72, 0x65, 0x69, 0x76, 0x85, 0x8d, 0x88, 0x7b, 0x75, 0x7a, 0x85, 0x90, 0x91, 0x84, 0x76, 0x73, -0x79, 0x84, 0x8e, 0x8e, 0x81, 0x74, 0x73, 0x79, 0x83, 0x88, 0x86, 0x7c, 0x75, 0x79, 0x84, 0x8b, -0x8d, 0x85, 0x79, 0x71, 0x71, 0x79, 0x82, 0x82, 0x7d, 0x77, 0x74, 0x7b, 0x86, 0x87, 0x83, 0x7b, -0x76, 0x75, 0x7d, 0x88, 0x8b, 0x85, 0x7c, 0x76, 0x75, 0x79, 0x83, 0x84, 0x81, 0x7e, 0x7d, 0x81, -0x86, 0x8a, 0x88, 0x83, 0x7e, 0x7e, 0x81, 0x82, 0x82, 0x7e, 0x7a, 0x79, 0x7b, 0x84, 0x89, 0x86, -0x7d, 0x6e, 0x64, 0x67, 0x75, 0x82, 0x88, 0x85, 0x7a, 0x75, 0x7b, 0x89, 0x91, 0x90, 0x87, 0x74, -0x6a, 0x6e, 0x7a, 0x88, 0x8a, 0x82, 0x78, 0x75, 0x7d, 0x89, 0x92, 0x8f, 0x81, 0x74, 0x72, 0x7b, -0x87, 0x8d, 0x8b, 0x7d, 0x74, 0x76, 0x80, 0x89, 0x8b, 0x85, 0x7b, 0x76, 0x78, 0x83, 0x89, 0x86, -0x80, 0x7a, 0x78, 0x80, 0x89, 0x8b, 0x86, 0x7d, 0x76, 0x74, 0x78, 0x80, 0x82, 0x80, 0x80, 0x83, -0x85, 0x89, 0x8d, 0x89, 0x7e, 0x78, 0x76, 0x78, 0x79, 0x7c, 0x80, 0x7e, 0x81, 0x86, 0x89, 0x89, -0x88, 0x85, 0x81, 0x80, 0x81, 0x81, 0x7e, 0x7c, 0x7b, 0x7a, 0x7d, 0x83, 0x85, 0x81, 0x76, 0x6c, -0x65, 0x6a, 0x77, 0x82, 0x87, 0x86, 0x7c, 0x77, 0x80, 0x8b, 0x91, 0x8e, 0x82, 0x73, 0x6b, 0x6f, -0x7b, 0x85, 0x87, 0x80, 0x77, 0x78, 0x82, 0x8a, 0x90, 0x8a, 0x7b, 0x73, 0x76, 0x81, 0x8a, 0x8f, -0x8b, 0x7e, 0x77, 0x78, 0x7c, 0x82, 0x82, 0x7c, 0x78, 0x78, 0x7e, 0x89, 0x8b, 0x88, 0x82, 0x7b, -0x79, 0x7c, 0x81, 0x80, 0x7a, 0x77, 0x76, 0x78, 0x80, 0x86, 0x86, 0x83, 0x82, 0x82, 0x83, 0x85, -0x84, 0x7c, 0x77, 0x78, 0x7a, 0x7e, 0x82, 0x82, 0x7c, 0x7a, 0x7b, 0x7d, 0x82, 0x84, 0x83, 0x83, -0x84, 0x86, 0x88, 0x87, 0x82, 0x7d, 0x7b, 0x7b, 0x7e, 0x81, 0x81, 0x7e, 0x78, 0x6f, 0x6d, 0x73, -0x7c, 0x85, 0x87, 0x82, 0x79, 0x77, 0x80, 0x89, 0x8e, 0x8c, 0x81, 0x73, 0x6e, 0x72, 0x7c, 0x83, -0x81, 0x7b, 0x77, 0x7a, 0x85, 0x8e, 0x91, 0x89, 0x7c, 0x77, 0x79, 0x81, 0x8a, 0x8b, 0x85, 0x7b, -0x79, 0x7d, 0x82, 0x84, 0x82, 0x7b, 0x75, 0x78, 0x81, 0x84, 0x86, 0x82, 0x7c, 0x79, 0x7c, 0x83, -0x84, 0x7e, 0x7a, 0x77, 0x75, 0x7a, 0x81, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x82, 0x85, 0x84, 0x82, -0x81, 0x80, 0x7e, 0x7d, 0x7b, 0x79, 0x78, 0x7b, 0x81, 0x85, 0x89, 0x88, 0x86, 0x84, 0x81, 0x81, -0x81, 0x80, 0x81, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7a, 0x74, 0x6e, 0x6d, 0x73, 0x7c, 0x85, -0x88, 0x87, 0x83, 0x82, 0x84, 0x85, 0x83, 0x7a, 0x73, 0x70, 0x73, 0x7c, 0x83, 0x84, 0x80, 0x7b, -0x7a, 0x7e, 0x84, 0x87, 0x84, 0x7c, 0x7a, 0x7c, 0x80, 0x85, 0x86, 0x85, 0x83, 0x83, 0x85, 0x84, -0x80, 0x7b, 0x79, 0x78, 0x7c, 0x83, 0x85, 0x85, 0x83, 0x80, 0x7c, 0x7c, 0x7e, 0x7c, 0x7a, 0x7c, -0x7e, 0x81, 0x83, 0x82, 0x80, 0x7d, 0x7d, 0x80, 0x7d, 0x7a, 0x7a, 0x7a, 0x7c, 0x81, 0x84, 0x84, -0x81, 0x7d, 0x7a, 0x78, 0x79, 0x79, 0x7b, 0x80, 0x83, 0x87, 0x88, 0x87, 0x85, 0x82, 0x80, 0x7e, -0x7d, 0x7c, 0x79, 0x76, 0x76, 0x7a, 0x7d, 0x7e, 0x7c, 0x74, 0x6e, 0x6f, 0x75, 0x7e, 0x85, 0x8a, -0x8a, 0x86, 0x84, 0x81, 0x79, 0x76, 0x76, 0x76, 0x79, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x81, 0x83, -0x83, 0x7e, 0x7a, 0x76, 0x77, 0x7e, 0x85, 0x8a, 0x8d, 0x8b, 0x86, 0x7e, 0x79, 0x76, 0x76, 0x79, -0x81, 0x84, 0x84, 0x84, 0x83, 0x83, 0x85, 0x8a, 0x89, 0x83, 0x7c, 0x78, 0x76, 0x77, 0x7b, 0x82, -0x85, 0x86, 0x87, 0x83, 0x7c, 0x7a, 0x79, 0x79, 0x7b, 0x7e, 0x7d, 0x7d, 0x80, 0x83, 0x86, 0x88, -0x87, 0x83, 0x7d, 0x7a, 0x79, 0x7a, 0x7d, 0x83, 0x85, 0x87, 0x86, 0x83, 0x81, 0x7e, 0x7c, 0x7c, -0x7b, 0x78, 0x77, 0x77, 0x77, 0x7a, 0x7e, 0x82, 0x82, 0x80, 0x7b, 0x77, 0x77, 0x7c, 0x84, 0x8b, -0x8e, 0x8b, 0x83, 0x79, 0x73, 0x70, 0x70, 0x74, 0x79, 0x7c, 0x7e, 0x7d, 0x7c, 0x7e, 0x85, 0x8a, -0x8d, 0x8b, 0x84, 0x7b, 0x77, 0x79, 0x80, 0x86, 0x89, 0x88, 0x83, 0x7d, 0x7b, 0x7a, 0x7c, 0x7e, -0x80, 0x80, 0x7e, 0x7c, 0x7c, 0x82, 0x89, 0x8e, 0x8d, 0x88, 0x80, 0x77, 0x76, 0x78, 0x7d, 0x83, -0x86, 0x86, 0x84, 0x82, 0x81, 0x82, 0x83, 0x83, 0x81, 0x7b, 0x77, 0x76, 0x7b, 0x82, 0x88, 0x89, -0x86, 0x81, 0x7b, 0x79, 0x79, 0x7c, 0x80, 0x80, 0x7e, 0x7c, 0x7b, 0x7c, 0x7c, 0x7e, 0x80, 0x81, -0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83, 0x82, 0x82, 0x83, 0x82, 0x81, 0x7b, 0x73, 0x6e, 0x6e, -0x72, 0x79, 0x83, 0x89, 0x89, 0x86, 0x80, 0x7b, 0x78, 0x78, 0x7c, 0x80, 0x83, 0x83, 0x81, 0x80, -0x82, 0x85, 0x86, 0x83, 0x7d, 0x77, 0x74, 0x75, 0x79, 0x81, 0x88, 0x8c, 0x8a, 0x86, 0x82, 0x7e, -0x7e, 0x80, 0x81, 0x7e, 0x7c, 0x7a, 0x7a, 0x7d, 0x83, 0x86, 0x86, 0x85, 0x81, 0x7d, 0x7b, 0x7c, -0x80, 0x82, 0x84, 0x84, 0x81, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x7d, 0x7a, 0x79, 0x7c, 0x81, 0x87, -0x89, 0x88, 0x85, 0x7e, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x7d, 0x7a, 0x7a, 0x7b, 0x7e, 0x83, 0x84, -0x84, 0x80, 0x7b, 0x7b, 0x7d, 0x81, 0x83, 0x84, 0x85, 0x86, 0x85, 0x85, 0x85, 0x84, 0x83, 0x81, -0x7d, 0x79, 0x77, 0x78, 0x7c, 0x81, 0x84, 0x86, 0x85, 0x82, 0x7d, 0x7a, 0x78, 0x7a, 0x80, 0x82, -0x81, 0x7d, 0x7a, 0x7b, 0x80, 0x84, 0x87, 0x87, 0x83, 0x7d, 0x79, 0x79, 0x7d, 0x82, 0x85, 0x85, -0x83, 0x82, 0x81, 0x82, 0x82, 0x82, 0x7e, 0x7b, 0x78, 0x76, 0x77, 0x7d, 0x84, 0x88, 0x88, 0x84, -0x80, 0x7b, 0x79, 0x79, 0x7a, 0x7b, 0x7b, 0x7c, 0x7e, 0x82, 0x84, 0x84, 0x82, 0x80, 0x7c, 0x7a, -0x79, 0x79, 0x7a, 0x7c, 0x7d, 0x7e, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x7d, 0x7b, 0x7b, 0x7b, -0x7d, 0x80, 0x83, 0x85, 0x86, 0x85, 0x83, 0x7e, 0x7c, 0x7a, 0x7a, 0x7b, 0x7c, 0x7e, 0x81, 0x83, -0x83, 0x82, 0x81, 0x7e, 0x7c, 0x7b, 0x7a, 0x79, 0x78, 0x79, 0x7b, 0x7e, 0x83, 0x85, 0x85, 0x83, -0x80, 0x7c, 0x78, 0x77, 0x79, 0x7b, 0x7e, 0x81, 0x83, 0x83, 0x84, 0x84, 0x83, 0x81, 0x7d, 0x7a, -0x78, 0x77, 0x79, 0x7c, 0x80, 0x83, 0x84, 0x84, 0x84, 0x85, 0x84, 0x83, 0x83, 0x7e, 0x7c, 0x7c, -0x7c, 0x7d, 0x81, 0x83, 0x84, 0x85, 0x84, 0x83, 0x82, 0x80, 0x7e, 0x7c, 0x7c, 0x7b, 0x7d, 0x81, -0x82, 0x85, 0x87, 0x87, 0x85, 0x82, 0x7e, 0x7b, 0x7a, 0x7b, 0x7c, 0x7e, 0x83, 0x85, 0x85, 0x84, -0x81, 0x7e, 0x7c, 0x79, 0x78, 0x78, 0x7a, 0x7e, 0x81, 0x83, 0x83, 0x82, 0x7e, 0x7b, 0x78, 0x77, -0x79, 0x7b, 0x7e, 0x81, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x80, 0x81, 0x82, 0x82, -0x7e, 0x7b, 0x7b, 0x7c, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7d, 0x7c, 0x7c, 0x7b, 0x7a, 0x78, 0x77, -0x79, 0x7c, 0x82, 0x86, 0x87, 0x87, 0x85, 0x80, 0x7c, 0x79, 0x75, 0x75, 0x77, 0x7a, 0x80, 0x84, -0x87, 0x89, 0x87, 0x85, 0x81, 0x7a, 0x76, 0x75, 0x76, 0x79, 0x7d, 0x82, 0x85, 0x86, 0x85, 0x83, -0x81, 0x7c, 0x7a, 0x7a, 0x7b, 0x7d, 0x80, 0x82, 0x85, 0x86, 0x85, 0x84, 0x82, 0x80, 0x7d, 0x7d, -0x7c, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x83, 0x84, 0x85, 0x83, 0x81, 0x7e, 0x7d, 0x7a, 0x7a, -0x7b, 0x7b, 0x7c, 0x80, 0x83, 0x84, 0x84, 0x83, 0x82, 0x7e, 0x7a, 0x78, 0x78, 0x79, 0x7b, 0x7e, -0x82, 0x84, 0x85, 0x84, 0x80, 0x7c, 0x7a, 0x78, 0x77, 0x75, 0x75, 0x77, 0x7b, 0x7e, 0x82, 0x84, -0x83, 0x81, 0x7d, 0x7b, 0x77, 0x76, 0x78, 0x79, 0x79, 0x79, 0x7b, 0x7e, 0x82, 0x85, 0x87, 0x86, -0x82, 0x7c, 0x77, 0x76, 0x76, 0x77, 0x79, 0x7b, 0x80, 0x83, 0x86, 0x88, 0x87, 0x83, 0x7d, 0x77, -0x74, 0x75, 0x79, 0x7e, 0x85, 0x87, 0x87, 0x84, 0x80, 0x7c, 0x7a, 0x79, 0x7a, 0x7b, 0x7b, 0x7c, -0x7e, 0x81, 0x82, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7e, -0x81, 0x83, 0x84, 0x83, 0x83, 0x81, 0x7e, 0x7d, 0x7b, 0x7a, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x84, -0x85, 0x86, 0x85, 0x82, 0x80, 0x7d, 0x7a, 0x79, 0x7b, 0x7d, 0x81, 0x84, 0x85, 0x85, 0x84, 0x83, -0x81, 0x7e, 0x7b, 0x79, 0x78, 0x76, 0x78, 0x7a, 0x7e, 0x82, 0x83, 0x82, 0x81, 0x80, 0x7d, 0x7a, -0x79, 0x7b, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x82, 0x83, 0x83, 0x80, 0x7d, 0x7d, 0x7e, 0x80, 0x81, -0x81, 0x80, 0x7d, 0x7d, 0x80, 0x84, 0x87, 0x89, 0x88, 0x85, 0x81, 0x7c, 0x79, 0x77, 0x78, 0x7d, -0x84, 0x88, 0x8a, 0x89, 0x87, 0x85, 0x83, 0x82, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, -0x80, 0x81, 0x83, 0x83, 0x83, 0x81, 0x7e, 0x7a, 0x77, 0x77, 0x78, 0x7b, 0x7e, 0x83, 0x86, 0x86, -0x85, 0x84, 0x82, 0x7e, 0x7b, 0x78, 0x75, 0x76, 0x7b, 0x7e, 0x84, 0x8a, 0x8c, 0x8b, 0x87, 0x80, -0x7a, 0x76, 0x75, 0x76, 0x79, 0x7d, 0x83, 0x86, 0x87, 0x87, 0x85, 0x82, 0x80, 0x7e, 0x7d, 0x7b, -0x7a, 0x79, 0x78, 0x79, 0x7d, 0x81, 0x83, 0x85, 0x85, 0x84, 0x82, 0x7e, 0x7d, 0x7c, 0x7a, 0x7a, -0x7c, 0x7d, 0x81, 0x84, 0x87, 0x88, 0x87, 0x84, 0x7e, 0x7b, 0x7a, 0x78, 0x79, 0x7b, 0x7d, 0x81, -0x84, 0x87, 0x88, 0x88, 0x86, 0x82, 0x7c, 0x79, 0x78, 0x79, 0x7b, 0x7d, 0x81, 0x83, 0x84, 0x84, -0x85, 0x84, 0x82, 0x80, 0x7c, 0x7b, 0x79, 0x79, 0x78, 0x7b, 0x88, 0x90, 0x8e, 0x89, 0x82, 0x7a, -0x76, 0x77, 0x79, 0x7b, 0x81, 0x86, 0x89, 0x89, 0x82, 0x7b, 0x79, 0x7a, 0x7d, 0x80, 0x81, 0x82, -0x81, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, 0x78, 0x78, 0x87, 0x94, 0x92, 0x83, 0x7a, 0x78, 0x75, 0x74, -0x73, 0x7c, 0x8b, 0x90, 0x8f, 0x8e, 0x89, 0x81, 0x7a, 0x77, 0x78, 0x77, 0x6e, 0x63, 0x60, 0x66, -0x77, 0x8f, 0xa3, 0xa9, 0xa3, 0x95, 0x83, 0x70, 0x64, 0x60, 0x5e, 0x58, 0x53, 0x5c, 0x74, 0x95, -0xb6, 0xc8, 0xc1, 0xa5, 0x85, 0x66, 0x51, 0x4f, 0x5c, 0x6f, 0x80, 0x8a, 0x97, 0xa9, 0xb6, 0xb8, -0xaa, 0x85, 0x54, 0x33, 0x30, 0x3e, 0x59, 0x80, 0xa0, 0xaf, 0xae, 0xa9, 0xa2, 0x96, 0x89, 0x74, -0x56, 0x3b, 0x3b, 0x56, 0x78, 0x9e, 0xbb, 0xbe, 0xaa, 0x93, 0x7c, 0x67, 0x60, 0x63, 0x63, 0x61, -0x68, 0x83, 0xa8, 0xc1, 0xc5, 0xae, 0x81, 0x52, 0x38, 0x33, 0x43, 0x64, 0x8a, 0xa4, 0xb0, 0xb0, -0xaa, 0x9c, 0x87, 0x71, 0x5f, 0x57, 0x5d, 0x6c, 0x7d, 0x8c, 0x96, 0x97, 0x90, 0x84, 0x77, 0x72, -0x70, 0x71, 0x72, 0x73, 0x7b, 0x8e, 0xa3, 0xa9, 0x92, 0x64, 0x33, 0x1e, 0x39, 0x79, 0xb4, 0xd1, -0xd3, 0xbe, 0xa1, 0x88, 0x71, 0x65, 0x61, 0x5c, 0x53, 0x53, 0x6d, 0xa1, 0xd2, 0xdd, 0xbf, 0x87, -0x53, 0x35, 0x32, 0x43, 0x5d, 0x79, 0x8d, 0x97, 0x9e, 0xa7, 0xb0, 0xb0, 0x95, 0x67, 0x3f, 0x33, -0x4b, 0x78, 0xa3, 0xba, 0xbb, 0xb0, 0xa0, 0x8b, 0x77, 0x6d, 0x63, 0x54, 0x4b, 0x53, 0x6f, 0x97, -0xb8, 0xbc, 0xa2, 0x7c, 0x5c, 0x4d, 0x4d, 0x5b, 0x72, 0x8a, 0x9b, 0xa1, 0xa2, 0xa3, 0x9f, 0x92, -0x79, 0x5e, 0x52, 0x5e, 0x78, 0x94, 0xa3, 0xa2, 0x92, 0x79, 0x69, 0x65, 0x6c, 0x75, 0x76, 0x73, -0x76, 0x83, 0x91, 0x9d, 0x9c, 0x8b, 0x75, 0x67, 0x63, 0x6d, 0x81, 0x99, 0xae, 0xb5, 0xa1, 0x66, -0x1f, 0x8, 0x2d, 0x74, 0xbb, 0xda, 0xce, 0xb5, 0x9f, 0x88, 0x6e, 0x5d, 0x55, 0x51, 0x4d, 0x54, -0x72, 0xa6, 0xd0, 0xd6, 0xb5, 0x7b, 0x4a, 0x34, 0x35, 0x4b, 0x66, 0x7e, 0x90, 0x9d, 0xa8, 0xb2, -0xb6, 0xa6, 0x81, 0x53, 0x39, 0x3f, 0x5c, 0x84, 0xaa, 0xc0, 0xb7, 0x9a, 0x84, 0x77, 0x6b, 0x5e, -0x55, 0x54, 0x58, 0x6c, 0x91, 0xab, 0xb4, 0xad, 0x94, 0x6f, 0x52, 0x50, 0x61, 0x75, 0x86, 0x93, -0x9c, 0xa1, 0xa4, 0x9f, 0x8d, 0x70, 0x5b, 0x50, 0x55, 0x68, 0x84, 0x9a, 0x9e, 0x93, 0x84, 0x76, -0x6f, 0x6f, 0x75, 0x79, 0x7c, 0x85, 0x8d, 0x90, 0x8d, 0x88, 0x7e, 0x71, 0x67, 0x68, 0x73, 0x84, -0x93, 0x9f, 0xa0, 0x93, 0x6c, 0x35, 0x17, 0x26, 0x57, 0x9b, 0xd4, 0xf0, 0xe9, 0xc5, 0x98, 0x6c, -0x4d, 0x3f, 0x3b, 0x40, 0x56, 0x7c, 0xaf, 0xdb, 0xe1, 0xba, 0x76, 0x3d, 0x1e, 0x1e, 0x39, 0x60, -0x91, 0xb9, 0xc6, 0xc2, 0xc0, 0xb9, 0x9a, 0x6a, 0x44, 0x38, 0x42, 0x69, 0xa0, 0xc2, 0xc5, 0xb5, -0x9b, 0x71, 0x4a, 0x3f, 0x46, 0x4a, 0x54, 0x6d, 0x90, 0xaf, 0xc1, 0xc0, 0xa7, 0x7e, 0x5f, 0x55, -0x56, 0x66, 0x83, 0x9e, 0xa8, 0xa6, 0xa2, 0x9a, 0x88, 0x6c, 0x54, 0x40, 0x3d, 0x4e, 0x6e, 0x8e, -0xa5, 0xb1, 0xab, 0x9a, 0x86, 0x79, 0x75, 0x72, 0x70, 0x70, 0x71, 0x79, 0x86, 0x90, 0x91, 0x89, -0x7d, 0x72, 0x67, 0x64, 0x6b, 0x75, 0x7b, 0x82, 0x8a, 0x93, 0x98, 0x99, 0x94, 0x89, 0x79, 0x61, -0x40, 0x2a, 0x3c, 0x7a, 0xc5, 0xf6, 0xed, 0xb9, 0x7d, 0x56, 0x49, 0x46, 0x41, 0x45, 0x5a, 0x7e, -0xa8, 0xc4, 0xcd, 0xbe, 0x97, 0x61, 0x33, 0x21, 0x3a, 0x6d, 0x9e, 0xb3, 0xb5, 0xb3, 0xad, 0x9d, -0x81, 0x5d, 0x41, 0x3b, 0x4b, 0x6e, 0x9a, 0xbf, 0xc9, 0xad, 0x80, 0x54, 0x3f, 0x47, 0x59, 0x6b, -0x7c, 0x94, 0xac, 0xb7, 0xb0, 0xa0, 0x89, 0x6c, 0x52, 0x49, 0x54, 0x6d, 0x8a, 0x99, 0x99, 0x94, -0x90, 0x8b, 0x80, 0x71, 0x68, 0x67, 0x6a, 0x74, 0x85, 0x93, 0x9b, 0x99, 0x91, 0x85, 0x7b, 0x78, -0x76, 0x72, 0x72, 0x77, 0x82, 0x89, 0x8b, 0x89, 0x83, 0x7a, 0x74, 0x6f, 0x6f, 0x76, 0x85, 0x91, -0x91, 0x89, 0x82, 0x7c, 0x7c, 0x80, 0x8a, 0x94, 0x99, 0x8c, 0x54, 0x20, 0x1c, 0x43, 0x92, 0xda, -0xef, 0xd6, 0xb0, 0x90, 0x71, 0x53, 0x3f, 0x44, 0x56, 0x61, 0x71, 0x9a, 0xca, 0xd8, 0xb0, 0x66, -0x2c, 0x25, 0x3f, 0x63, 0x83, 0x9f, 0xb7, 0xc2, 0xb8, 0xa3, 0x8f, 0x7b, 0x61, 0x41, 0x32, 0x4b, -0x8a, 0xc0, 0xc3, 0xa9, 0x8d, 0x73, 0x57, 0x43, 0x49, 0x5f, 0x74, 0x84, 0x96, 0xa7, 0xb4, 0xbb, -0xad, 0x85, 0x5c, 0x53, 0x5d, 0x63, 0x6b, 0x81, 0x94, 0x9a, 0x96, 0x92, 0x8c, 0x80, 0x6f, 0x5b, -0x4d, 0x53, 0x74, 0x95, 0xa1, 0xa0, 0x9d, 0x94, 0x83, 0x73, 0x6d, 0x6f, 0x71, 0x78, 0x83, 0x8a, -0x91, 0x96, 0x8b, 0x74, 0x63, 0x61, 0x69, 0x72, 0x7d, 0x8b, 0x91, 0x8e, 0x87, 0x7e, 0x7e, 0x84, -0x87, 0x84, 0x81, 0x81, 0x84, 0x85, 0x86, 0x89, 0x8b, 0x85, 0x6b, 0x47, 0x31, 0x40, 0x77, 0xbc, -0xe3, 0xda, 0xae, 0x7e, 0x64, 0x5f, 0x62, 0x5a, 0x50, 0x57, 0x73, 0x9b, 0xba, 0xc3, 0xb0, 0x89, -0x5a, 0x39, 0x34, 0x4f, 0x7a, 0x9a, 0xa3, 0x9f, 0xa0, 0xa4, 0x9e, 0x88, 0x6a, 0x57, 0x51, 0x58, -0x6d, 0x8b, 0xa0, 0xa4, 0x95, 0x7e, 0x6d, 0x68, 0x6f, 0x72, 0x6d, 0x6b, 0x77, 0x8e, 0x9e, 0xa2, -0x9e, 0x93, 0x7e, 0x6e, 0x69, 0x6f, 0x78, 0x7e, 0x81, 0x7b, 0x7a, 0x85, 0x8d, 0x8b, 0x83, 0x7a, -0x75, 0x73, 0x75, 0x7d, 0x87, 0x87, 0x84, 0x81, 0x81, 0x84, 0x88, 0x88, 0x81, 0x7a, 0x7b, 0x80, -0x82, 0x7e, 0x7a, 0x75, 0x72, 0x74, 0x7a, 0x83, 0x89, 0x8b, 0x86, 0x81, 0x7c, 0x7b, 0x7a, 0x76, -0x71, 0x74, 0x82, 0x92, 0x9e, 0x9f, 0x92, 0x7b, 0x6b, 0x6a, 0x75, 0x7e, 0x75, 0x56, 0x3f, 0x4b, -0x81, 0xc9, 0xf2, 0xe0, 0xa2, 0x61, 0x44, 0x51, 0x6a, 0x72, 0x6b, 0x65, 0x72, 0x92, 0xab, 0xaf, -0x9e, 0x7a, 0x55, 0x3c, 0x41, 0x60, 0x92, 0xb3, 0xb4, 0xa1, 0x8e, 0x8d, 0x8f, 0x84, 0x6a, 0x55, -0x53, 0x63, 0x7d, 0x99, 0xa8, 0xa5, 0x8d, 0x70, 0x5f, 0x5f, 0x6b, 0x78, 0x80, 0x80, 0x83, 0x92, -0xa2, 0xa2, 0x91, 0x7c, 0x6d, 0x64, 0x65, 0x72, 0x82, 0x87, 0x83, 0x78, 0x72, 0x74, 0x7d, 0x84, -0x82, 0x7c, 0x7c, 0x85, 0x8c, 0x8d, 0x8b, 0x86, 0x7a, 0x72, 0x72, 0x78, 0x7e, 0x81, 0x80, 0x7a, -0x77, 0x7d, 0x87, 0x8a, 0x86, 0x7d, 0x77, 0x73, 0x73, 0x7a, 0x82, 0x86, 0x84, 0x82, 0x80, 0x7b, -0x79, 0x78, 0x76, 0x76, 0x7d, 0x84, 0x87, 0x86, 0x83, 0x7e, 0x7d, 0x80, 0x84, 0x85, 0x82, 0x7b, -0x76, 0x75, 0x79, 0x80, 0x87, 0x8a, 0x84, 0x73, 0x61, 0x58, 0x60, 0x7b, 0x9e, 0xb5, 0xb5, 0xa0, -0x83, 0x6a, 0x60, 0x65, 0x6f, 0x74, 0x73, 0x74, 0x80, 0x91, 0xa0, 0x9f, 0x8a, 0x6c, 0x5a, 0x5b, -0x6b, 0x83, 0x95, 0x9e, 0x9a, 0x92, 0x8b, 0x85, 0x80, 0x78, 0x6d, 0x66, 0x67, 0x75, 0x8c, 0x9c, -0x9f, 0x94, 0x81, 0x71, 0x6a, 0x6c, 0x74, 0x7b, 0x82, 0x87, 0x8d, 0x92, 0x95, 0x91, 0x87, 0x76, -0x6a, 0x68, 0x6f, 0x79, 0x81, 0x83, 0x81, 0x7c, 0x7b, 0x80, 0x85, 0x89, 0x8a, 0x88, 0x85, 0x82, -0x81, 0x80, 0x7a, 0x75, 0x73, 0x74, 0x7a, 0x83, 0x88, 0x87, 0x82, 0x7d, 0x79, 0x78, 0x7a, 0x7d, -0x7d, 0x7e, 0x83, 0x85, 0x84, 0x80, 0x7c, 0x7c, 0x7b, 0x78, 0x76, 0x7b, 0x84, 0x89, 0x8b, 0x86, -0x81, 0x7e, 0x81, 0x83, 0x84, 0x85, 0x8b, 0x91, 0x92, 0x8d, 0x81, 0x5e, 0x30, 0x25, 0x3e, 0x65, -0xa8, 0xe9, 0xf8, 0xda, 0xac, 0x83, 0x5b, 0x3a, 0x28, 0x30, 0x4a, 0x6a, 0x91, 0xbd, 0xdc, 0xd4, -0x9a, 0x52, 0x24, 0x1f, 0x3c, 0x69, 0x93, 0xb0, 0xc4, 0xc7, 0xbb, 0xa5, 0x85, 0x5f, 0x40, 0x32, -0x3a, 0x58, 0x8a, 0xb8, 0xc3, 0xa8, 0x88, 0x77, 0x66, 0x52, 0x4f, 0x61, 0x75, 0x86, 0x9a, 0xb3, -0xbd, 0xb1, 0x98, 0x77, 0x55, 0x46, 0x52, 0x69, 0x79, 0x87, 0x94, 0x9d, 0x95, 0x85, 0x7b, 0x71, -0x63, 0x5d, 0x68, 0x7e, 0x96, 0xa8, 0xb2, 0xa5, 0x8d, 0x79, 0x6b, 0x5f, 0x58, 0x61, 0x71, 0x7c, -0x85, 0x90, 0x96, 0x91, 0x85, 0x78, 0x6f, 0x6e, 0x77, 0x86, 0x8e, 0x8c, 0x89, 0x86, 0x80, 0x78, -0x76, 0x75, 0x72, 0x71, 0x75, 0x7c, 0x84, 0x88, 0x88, 0x83, 0x7d, 0x7d, 0x86, 0x8c, 0x8e, 0x8c, -0x89, 0x82, 0x78, 0x72, 0x6f, 0x70, 0x72, 0x76, 0x80, 0x86, 0x8a, 0x8c, 0x89, 0x82, 0x7a, 0x73, -0x67, 0x5a, 0x57, 0x65, 0x85, 0xb0, 0xcf, 0xcf, 0xaf, 0x7a, 0x4f, 0x3f, 0x47, 0x5f, 0x76, 0x81, -0x85, 0x8f, 0x9e, 0xa9, 0xa2, 0x86, 0x63, 0x4b, 0x4c, 0x66, 0x8a, 0xa5, 0xb0, 0xaa, 0x97, 0x83, -0x76, 0x71, 0x6c, 0x63, 0x5e, 0x63, 0x75, 0x8f, 0xa3, 0xa5, 0x96, 0x80, 0x6b, 0x63, 0x69, 0x76, -0x84, 0x8a, 0x8e, 0x91, 0x93, 0x92, 0x8c, 0x81, 0x6e, 0x60, 0x62, 0x6d, 0x79, 0x82, 0x85, 0x83, -0x80, 0x80, 0x84, 0x87, 0x84, 0x7c, 0x79, 0x7c, 0x84, 0x8d, 0x91, 0x8c, 0x80, 0x74, 0x6f, 0x6f, -0x72, 0x78, 0x7d, 0x81, 0x83, 0x85, 0x87, 0x86, 0x83, 0x80, 0x7e, 0x80, 0x84, 0x88, 0x8a, 0x88, -0x82, 0x77, 0x6f, 0x6c, 0x6f, 0x77, 0x82, 0x8a, 0x8c, 0x8d, 0x8d, 0x88, 0x7c, 0x72, 0x6f, 0x73, -0x7c, 0x87, 0x8e, 0x91, 0x8e, 0x87, 0x80, 0x7a, 0x76, 0x76, 0x76, 0x76, 0x79, 0x81, 0x88, 0x88, -0x7c, 0x6a, 0x5c, 0x5b, 0x6f, 0x93, 0xb4, 0xc5, 0xb9, 0x97, 0x6d, 0x55, 0x55, 0x64, 0x73, 0x79, -0x77, 0x78, 0x84, 0x97, 0xa3, 0x9c, 0x83, 0x61, 0x50, 0x58, 0x71, 0x92, 0xa5, 0xa4, 0x98, 0x8b, -0x85, 0x83, 0x7b, 0x6f, 0x63, 0x5d, 0x66, 0x7d, 0x96, 0xa4, 0xa2, 0x8e, 0x74, 0x64, 0x65, 0x71, -0x81, 0x89, 0x8e, 0x8f, 0x90, 0x92, 0x91, 0x8a, 0x7a, 0x6b, 0x66, 0x6b, 0x78, 0x87, 0x92, 0x94, -0x8b, 0x7d, 0x73, 0x6f, 0x70, 0x73, 0x7a, 0x85, 0x90, 0x95, 0x93, 0x8b, 0x7e, 0x73, 0x6d, 0x6e, -0x75, 0x80, 0x86, 0x88, 0x85, 0x82, 0x81, 0x80, 0x7d, 0x7a, 0x77, 0x77, 0x78, 0x7e, 0x85, 0x8c, -0x8e, 0x8b, 0x85, 0x82, 0x83, 0x82, 0x7d, 0x76, 0x73, 0x78, 0x7e, 0x82, 0x82, 0x84, 0x87, 0x86, -0x82, 0x7b, 0x77, 0x79, 0x7b, 0x79, 0x79, 0x83, 0x92, 0x9b, 0x98, 0x87, 0x65, 0x38, 0x24, 0x38, -0x66, 0xb3, 0xf1, 0xfe, 0xd9, 0xa3, 0x78, 0x56, 0x37, 0x21, 0x24, 0x41, 0x68, 0x95, 0xc5, 0xe6, -0xdd, 0xa3, 0x51, 0x1b, 0x17, 0x3b, 0x73, 0xa4, 0xc6, 0xd2, 0xcc, 0xb9, 0x9a, 0x73, 0x4b, 0x30, -0x2e, 0x41, 0x64, 0x99, 0xc9, 0xcd, 0xa8, 0x7e, 0x67, 0x5c, 0x51, 0x55, 0x71, 0x8d, 0x9d, 0xa9, -0xb2, 0xab, 0x93, 0x76, 0x5c, 0x49, 0x49, 0x62, 0x82, 0x8f, 0x8f, 0x92, 0x92, 0x88, 0x77, 0x6f, -0x6f, 0x6d, 0x6c, 0x7a, 0x90, 0x9e, 0xa3, 0xa1, 0x90, 0x75, 0x68, 0x6a, 0x6c, 0x6c, 0x74, 0x82, -0x8a, 0x8b, 0x8b, 0x8b, 0x87, 0x7d, 0x76, 0x76, 0x7d, 0x86, 0x8f, 0x93, 0x8e, 0x85, 0x80, 0x7d, -0x78, 0x74, 0x76, 0x78, 0x77, 0x79, 0x7e, 0x82, 0x85, 0x87, 0x89, 0x88, 0x86, 0x83, 0x80, 0x7b, -0x78, 0x78, 0x7a, 0x7d, 0x82, 0x87, 0x8d, 0x8d, 0x86, 0x7e, 0x74, 0x6c, 0x6c, 0x71, 0x78, 0x81, -0x89, 0x8c, 0x89, 0x86, 0x85, 0x84, 0x81, 0x7a, 0x78, 0x7a, 0x80, 0x87, 0x8c, 0x8e, 0x88, 0x7e, -0x75, 0x70, 0x6f, 0x72, 0x71, 0x68, 0x5f, 0x64, 0x7d, 0xa7, 0xcc, 0xd9, 0xc0, 0x8a, 0x51, 0x2d, -0x2f, 0x53, 0x80, 0x9f, 0xa9, 0xa0, 0x92, 0x88, 0x7e, 0x72, 0x61, 0x52, 0x52, 0x66, 0x8b, 0xae, -0xbf, 0xb8, 0x9b, 0x77, 0x5f, 0x5a, 0x62, 0x6f, 0x79, 0x81, 0x86, 0x8e, 0x97, 0x98, 0x8e, 0x78, -0x63, 0x59, 0x60, 0x74, 0x8e, 0x9d, 0xa0, 0x99, 0x8c, 0x81, 0x77, 0x6f, 0x69, 0x65, 0x68, 0x73, -0x84, 0x92, 0x97, 0x92, 0x83, 0x71, 0x68, 0x68, 0x70, 0x7c, 0x88, 0x8f, 0x91, 0x8e, 0x87, 0x7d, -0x74, 0x6c, 0x6a, 0x73, 0x83, 0x92, 0x9a, 0x98, 0x8b, 0x79, 0x6b, 0x65, 0x67, 0x6f, 0x7b, 0x87, -0x8f, 0x92, 0x92, 0x8f, 0x86, 0x79, 0x6c, 0x65, 0x67, 0x72, 0x83, 0x90, 0x97, 0x96, 0x8e, 0x7e, -0x6e, 0x67, 0x66, 0x6a, 0x73, 0x7e, 0x8c, 0x99, 0xa1, 0x9f, 0x94, 0x82, 0x6e, 0x5f, 0x5a, 0x63, -0x78, 0x92, 0x9e, 0x9b, 0x8f, 0x82, 0x75, 0x6b, 0x68, 0x6a, 0x72, 0x82, 0x92, 0x9b, 0x97, 0x81, -0x5c, 0x3d, 0x44, 0x76, 0xbf, 0xef, 0xe6, 0xa9, 0x61, 0x38, 0x3d, 0x5c, 0x74, 0x72, 0x64, 0x65, -0x82, 0xaf, 0xcb, 0xbb, 0x87, 0x50, 0x37, 0x48, 0x74, 0x9d, 0xb2, 0xb0, 0xa0, 0x8c, 0x7c, 0x78, -0x77, 0x70, 0x5e, 0x4e, 0x53, 0x71, 0x9a, 0xb0, 0xa9, 0x92, 0x77, 0x66, 0x62, 0x6a, 0x78, 0x80, -0x81, 0x85, 0x91, 0x9b, 0x9e, 0x94, 0x81, 0x64, 0x4c, 0x50, 0x70, 0x8d, 0x96, 0x99, 0x93, 0x84, -0x74, 0x72, 0x79, 0x79, 0x78, 0x7b, 0x84, 0x8c, 0x91, 0x94, 0x8c, 0x78, 0x68, 0x68, 0x74, 0x7d, -0x83, 0x87, 0x83, 0x79, 0x75, 0x7b, 0x82, 0x87, 0x8a, 0x86, 0x7e, 0x78, 0x7b, 0x7e, 0x81, 0x83, -0x84, 0x84, 0x81, 0x7b, 0x76, 0x74, 0x76, 0x7a, 0x83, 0x8c, 0x91, 0x8f, 0x85, 0x76, 0x68, 0x65, -0x6c, 0x76, 0x81, 0x8b, 0x92, 0x95, 0x93, 0x8e, 0x85, 0x79, 0x6e, 0x66, 0x65, 0x6e, 0x7e, 0x90, -0x98, 0x95, 0x8b, 0x7c, 0x70, 0x6c, 0x6d, 0x74, 0x7b, 0x82, 0x88, 0x8a, 0x88, 0x85, 0x82, 0x7c, -0x78, 0x76, 0x78, 0x7a, 0x7d, 0x81, 0x86, 0x89, 0x8a, 0x86, 0x80, 0x77, 0x6f, 0x6e, 0x73, 0x7e, -0x8c, 0x94, 0x93, 0x87, 0x75, 0x65, 0x5b, 0x5c, 0x6b, 0x86, 0xa0, 0xad, 0xaa, 0x98, 0x7c, 0x62, -0x57, 0x59, 0x63, 0x72, 0x81, 0x8d, 0x95, 0x97, 0x93, 0x88, 0x78, 0x6a, 0x64, 0x69, 0x75, 0x87, -0x95, 0x9b, 0x98, 0x90, 0x85, 0x78, 0x6f, 0x6c, 0x6c, 0x71, 0x7a, 0x85, 0x8d, 0x91, 0x8b, 0x81, -0x75, 0x6d, 0x6d, 0x74, 0x7d, 0x87, 0x8d, 0x8d, 0x8a, 0x85, 0x7d, 0x77, 0x74, 0x73, 0x74, 0x78, -0x7e, 0x85, 0x89, 0x89, 0x86, 0x81, 0x7a, 0x76, 0x76, 0x77, 0x7c, 0x83, 0x88, 0x89, 0x88, 0x84, -0x7d, 0x7a, 0x78, 0x77, 0x7a, 0x7e, 0x82, 0x84, 0x85, 0x83, 0x7e, 0x79, 0x74, 0x72, 0x76, 0x80, -0x8a, 0x92, 0x95, 0x93, 0x8b, 0x81, 0x79, 0x73, 0x6f, 0x6e, 0x70, 0x76, 0x7d, 0x88, 0x8f, 0x8f, -0x8a, 0x82, 0x7b, 0x79, 0x79, 0x7d, 0x83, 0x85, 0x86, 0x88, 0x83, 0x7a, 0x78, 0x7e, 0x81, 0x80, -0x82, 0x86, 0x86, 0x83, 0x7d, 0x76, 0x6f, 0x6d, 0x74, 0x81, 0x8e, 0x99, 0x9e, 0x99, 0x86, 0x73, -0x69, 0x66, 0x6a, 0x75, 0x88, 0x99, 0x9f, 0x95, 0x72, 0x3e, 0x20, 0x3f, 0x90, 0xdb, 0xf9, 0xe4, -0xad, 0x78, 0x57, 0x48, 0x3d, 0x3e, 0x50, 0x71, 0x8f, 0x9f, 0xaf, 0xb5, 0xa4, 0x76, 0x47, 0x3c, -0x55, 0x80, 0xa5, 0xb3, 0xad, 0xa0, 0x90, 0x7a, 0x6a, 0x64, 0x61, 0x5d, 0x61, 0x76, 0x92, 0xa4, -0xa8, 0x9e, 0x82, 0x5d, 0x4e, 0x5f, 0x79, 0x88, 0x92, 0xa4, 0xaa, 0x9a, 0x87, 0x7d, 0x74, 0x62, -0x57, 0x62, 0x76, 0x87, 0x97, 0xa0, 0x98, 0x81, 0x71, 0x6c, 0x67, 0x63, 0x6b, 0x83, 0x94, 0x9b, -0xa0, 0xa2, 0x95, 0x79, 0x64, 0x5c, 0x5e, 0x66, 0x77, 0x88, 0x8e, 0x8d, 0x8e, 0x8c, 0x81, 0x73, -0x71, 0x73, 0x72, 0x76, 0x85, 0x93, 0x96, 0x91, 0x89, 0x7e, 0x74, 0x72, 0x74, 0x75, 0x75, 0x79, -0x7c, 0x7e, 0x80, 0x82, 0x86, 0x85, 0x82, 0x7e, 0x7b, 0x78, 0x79, 0x7c, 0x81, 0x85, 0x85, 0x82, -0x7d, 0x76, 0x72, 0x75, 0x7a, 0x82, 0x89, 0x8b, 0x87, 0x81, 0x7a, 0x76, 0x76, 0x79, 0x7c, 0x7d, -0x7d, 0x7d, 0x7e, 0x81, 0x83, 0x85, 0x85, 0x85, 0x84, 0x81, 0x7d, 0x79, 0x77, 0x75, 0x74, 0x77, -0x7c, 0x82, 0x87, 0x88, 0x84, 0x7d, 0x77, 0x73, 0x73, 0x7a, 0x84, 0x8b, 0x90, 0x8f, 0x8b, 0x85, -0x7d, 0x79, 0x76, 0x74, 0x74, 0x78, 0x7d, 0x84, 0x88, 0x8b, 0x89, 0x84, 0x7e, 0x7b, 0x7a, 0x77, -0x6e, 0x62, 0x5a, 0x62, 0x7a, 0xa2, 0xc5, 0xcb, 0xae, 0x77, 0x45, 0x31, 0x42, 0x6a, 0x8f, 0x9a, -0x94, 0x87, 0x84, 0x8c, 0x93, 0x88, 0x6a, 0x50, 0x4f, 0x6a, 0x97, 0xb9, 0xbf, 0xa8, 0x85, 0x65, -0x57, 0x5c, 0x69, 0x77, 0x80, 0x82, 0x86, 0x92, 0x9e, 0x9e, 0x8b, 0x6d, 0x58, 0x56, 0x67, 0x83, -0x9a, 0xa6, 0xa3, 0x91, 0x81, 0x77, 0x71, 0x6b, 0x68, 0x6c, 0x76, 0x82, 0x8e, 0x97, 0x97, 0x86, -0x71, 0x68, 0x6b, 0x73, 0x7d, 0x88, 0x8d, 0x88, 0x84, 0x84, 0x85, 0x81, 0x7a, 0x75, 0x72, 0x74, -0x7a, 0x84, 0x8b, 0x89, 0x81, 0x7b, 0x79, 0x78, 0x79, 0x81, 0x87, 0x88, 0x87, 0x87, 0x86, 0x81, -0x7b, 0x78, 0x77, 0x7a, 0x81, 0x87, 0x8a, 0x85, 0x7c, 0x77, 0x74, 0x75, 0x7b, 0x84, 0x88, 0x86, -0x83, 0x7e, 0x7b, 0x79, 0x77, 0x78, 0x7d, 0x87, 0x8f, 0x91, 0x89, 0x7b, 0x71, 0x6a, 0x69, 0x6f, -0x7d, 0x8e, 0x96, 0x95, 0x8f, 0x87, 0x7c, 0x72, 0x6d, 0x6c, 0x71, 0x7d, 0x88, 0x8b, 0x88, 0x85, -0x82, 0x7b, 0x74, 0x73, 0x7c, 0x88, 0x8e, 0x8e, 0x8a, 0x84, 0x7a, 0x74, 0x73, 0x78, 0x83, 0x8c, -0x8e, 0x7e, 0x60, 0x45, 0x45, 0x6b, 0xac, 0xe2, 0xec, 0xc1, 0x77, 0x3e, 0x34, 0x52, 0x72, 0x7d, -0x75, 0x70, 0x7e, 0x9d, 0xb2, 0xa9, 0x85, 0x59, 0x44, 0x49, 0x67, 0x91, 0xb2, 0xbc, 0xad, 0x8e, -0x71, 0x67, 0x69, 0x6c, 0x68, 0x60, 0x67, 0x81, 0x9f, 0xae, 0xa5, 0x8d, 0x6e, 0x57, 0x51, 0x66, -0x89, 0x9d, 0x9c, 0x91, 0x8a, 0x86, 0x81, 0x81, 0x80, 0x72, 0x63, 0x63, 0x76, 0x88, 0x8c, 0x8e, -0x8b, 0x7b, 0x6c, 0x6f, 0x7e, 0x89, 0x8a, 0x88, 0x85, 0x80, 0x7d, 0x84, 0x8a, 0x86, 0x7b, 0x76, -0x7a, 0x7c, 0x7e, 0x87, 0x8b, 0x83, 0x78, 0x78, 0x7d, 0x82, 0x85, 0x87, 0x84, 0x7b, 0x76, 0x78, -0x7d, 0x7e, 0x80, 0x83, 0x86, 0x86, 0x88, 0x8b, 0x87, 0x79, 0x6b, 0x66, 0x66, 0x6b, 0x76, 0x84, -0x8f, 0x93, 0x94, 0x93, 0x8d, 0x81, 0x74, 0x6a, 0x63, 0x63, 0x6d, 0x7c, 0x8c, 0x97, 0x9b, 0x96, -0x87, 0x75, 0x6b, 0x69, 0x6e, 0x77, 0x81, 0x86, 0x86, 0x87, 0x89, 0x8a, 0x88, 0x83, 0x7c, 0x76, -0x73, 0x75, 0x7b, 0x82, 0x85, 0x84, 0x81, 0x80, 0x80, 0x81, 0x84, 0x84, 0x82, 0x80, 0x7e, 0x7c, -0x79, 0x77, 0x75, 0x77, 0x7e, 0x87, 0x90, 0x94, 0x90, 0x89, 0x7d, 0x73, 0x6b, 0x68, 0x6a, 0x71, -0x79, 0x86, 0x90, 0x97, 0x96, 0x8f, 0x82, 0x74, 0x6d, 0x6f, 0x77, 0x82, 0x8b, 0x8f, 0x8c, 0x84, -0x7b, 0x76, 0x76, 0x76, 0x77, 0x79, 0x7c, 0x81, 0x87, 0x8a, 0x8a, 0x87, 0x81, 0x75, 0x63, 0x53, -0x51, 0x68, 0x99, 0xcc, 0xe8, 0xd5, 0x98, 0x51, 0x29, 0x2b, 0x4e, 0x7b, 0x93, 0x92, 0x86, 0x84, -0x90, 0x98, 0x8d, 0x6f, 0x54, 0x4d, 0x64, 0x90, 0xb5, 0xc4, 0xb0, 0x8a, 0x66, 0x4e, 0x50, 0x62, -0x79, 0x89, 0x8a, 0x89, 0x8e, 0x93, 0x91, 0x82, 0x6b, 0x5a, 0x59, 0x69, 0x86, 0xa3, 0xb2, 0xad, -0x94, 0x77, 0x67, 0x61, 0x62, 0x69, 0x75, 0x80, 0x85, 0x8c, 0x96, 0x98, 0x89, 0x75, 0x6b, 0x69, -0x6d, 0x7b, 0x8e, 0x96, 0x91, 0x87, 0x7e, 0x7a, 0x79, 0x7a, 0x7c, 0x7c, 0x7b, 0x7d, 0x84, 0x88, -0x84, 0x7c, 0x77, 0x75, 0x77, 0x7e, 0x8a, 0x90, 0x8d, 0x86, 0x7d, 0x78, 0x75, 0x76, 0x79, 0x7c, -0x7e, 0x80, 0x83, 0x86, 0x84, 0x7d, 0x77, 0x72, 0x70, 0x74, 0x7c, 0x84, 0x87, 0x89, 0x8a, 0x8a, -0x89, 0x87, 0x82, 0x79, 0x70, 0x6a, 0x6b, 0x71, 0x79, 0x80, 0x86, 0x87, 0x85, 0x84, 0x83, 0x81, -0x7e, 0x7d, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x78, 0x73, 0x73, 0x77, 0x7e, 0x85, 0x8c, 0x8f, 0x8d, -0x86, 0x7c, 0x76, 0x77, 0x7b, 0x83, 0x88, 0x87, 0x82, 0x7b, 0x77, 0x76, 0x79, 0x7e, 0x82, 0x82, -0x81, 0x82, 0x86, 0x88, 0x86, 0x80, 0x78, 0x74, 0x74, 0x77, 0x7d, 0x85, 0x88, 0x86, 0x80, 0x78, -0x75, 0x78, 0x7d, 0x83, 0x88, 0x8d, 0x91, 0x94, 0x91, 0x87, 0x73, 0x58, 0x40, 0x3e, 0x5c, 0x94, -0xcf, 0xe9, 0xd4, 0x99, 0x54, 0x30, 0x34, 0x54, 0x78, 0x90, 0x9a, 0x9a, 0x9d, 0x9e, 0x93, 0x74, -0x4f, 0x38, 0x3c, 0x5f, 0x92, 0xbe, 0xcc, 0xbc, 0x98, 0x6e, 0x53, 0x4c, 0x58, 0x6c, 0x7b, 0x87, -0x90, 0x9a, 0x9e, 0x98, 0x83, 0x68, 0x57, 0x55, 0x62, 0x7e, 0x9b, 0xab, 0xa5, 0x90, 0x7c, 0x6f, -0x6b, 0x6c, 0x73, 0x7b, 0x7d, 0x7e, 0x85, 0x8c, 0x8a, 0x82, 0x79, 0x72, 0x6d, 0x6f, 0x7d, 0x8d, -0x92, 0x8d, 0x86, 0x7d, 0x77, 0x76, 0x78, 0x7d, 0x7e, 0x7d, 0x80, 0x85, 0x86, 0x82, 0x7d, 0x78, -0x72, 0x70, 0x78, 0x85, 0x8e, 0x90, 0x8c, 0x84, 0x7c, 0x78, 0x77, 0x7a, 0x7a, 0x79, 0x7b, 0x82, -0x86, 0x88, 0x88, 0x83, 0x79, 0x72, 0x73, 0x7a, 0x82, 0x87, 0x88, 0x86, 0x82, 0x7c, 0x79, 0x7a, -0x7a, 0x7c, 0x81, 0x85, 0x87, 0x87, 0x83, 0x7c, 0x78, 0x76, 0x77, 0x7c, 0x82, 0x83, 0x83, 0x83, -0x84, 0x85, 0x87, 0x89, 0x88, 0x86, 0x82, 0x7b, 0x76, 0x71, 0x6f, 0x73, 0x7b, 0x84, 0x8c, 0x91, -0x8e, 0x88, 0x82, 0x7c, 0x79, 0x76, 0x71, 0x6d, 0x6a, 0x6f, 0x7b, 0x8b, 0x9a, 0xa0, 0x9a, 0x8c, -0x77, 0x67, 0x5f, 0x61, 0x6c, 0x7b, 0x8c, 0x99, 0x9d, 0x98, 0x8b, 0x79, 0x6c, 0x66, 0x69, 0x76, -0x88, 0x95, 0x97, 0x90, 0x84, 0x75, 0x6b, 0x6a, 0x6e, 0x76, 0x81, 0x89, 0x8d, 0x8c, 0x8c, 0x88, -0x81, 0x7a, 0x78, 0x7a, 0x7e, 0x82, 0x84, 0x80, 0x78, 0x74, 0x76, 0x7c, 0x86, 0x8d, 0x8f, 0x85, -0x6e, 0x51, 0x44, 0x54, 0x85, 0xbf, 0xdf, 0xda, 0xab, 0x6a, 0x3d, 0x37, 0x4e, 0x69, 0x7c, 0x86, -0x8a, 0x96, 0xa3, 0xa7, 0x95, 0x72, 0x53, 0x4a, 0x5b, 0x7e, 0xa5, 0xbd, 0xbd, 0xa2, 0x7c, 0x60, -0x59, 0x64, 0x74, 0x7e, 0x80, 0x7e, 0x84, 0x8a, 0x8a, 0x84, 0x79, 0x70, 0x6d, 0x73, 0x87, 0x9c, -0xa2, 0x97, 0x83, 0x70, 0x65, 0x65, 0x6c, 0x7b, 0x8a, 0x8e, 0x8a, 0x88, 0x85, 0x7b, 0x73, 0x70, -0x71, 0x73, 0x79, 0x89, 0x96, 0x97, 0x8d, 0x81, 0x75, 0x71, 0x70, 0x76, 0x81, 0x84, 0x83, 0x83, -0x86, 0x85, 0x7d, 0x78, 0x76, 0x74, 0x78, 0x81, 0x8c, 0x93, 0x8e, 0x83, 0x7a, 0x75, 0x72, 0x76, -0x81, 0x87, 0x86, 0x85, 0x85, 0x81, 0x7a, 0x74, 0x70, 0x70, 0x74, 0x7c, 0x89, 0x90, 0x8f, 0x8a, -0x82, 0x79, 0x75, 0x74, 0x78, 0x7e, 0x81, 0x82, 0x84, 0x83, 0x81, 0x7e, 0x7c, 0x7b, 0x7b, 0x7a, -0x79, 0x7b, 0x7b, 0x7e, 0x85, 0x89, 0x89, 0x87, 0x81, 0x7d, 0x7e, 0x7c, 0x7d, 0x80, 0x7d, 0x79, -0x78, 0x7c, 0x80, 0x82, 0x84, 0x86, 0x84, 0x81, 0x81, 0x81, 0x81, 0x80, 0x79, 0x70, 0x65, 0x62, -0x6a, 0x7b, 0x91, 0xa4, 0xaa, 0xa0, 0x8d, 0x71, 0x5e, 0x59, 0x61, 0x74, 0x89, 0x96, 0x9c, 0x99, -0x8d, 0x7b, 0x6b, 0x60, 0x5f, 0x69, 0x7c, 0x95, 0xa6, 0xa6, 0x98, 0x81, 0x6d, 0x63, 0x62, 0x6c, -0x7b, 0x86, 0x8a, 0x8c, 0x8b, 0x84, 0x7b, 0x74, 0x71, 0x75, 0x7e, 0x88, 0x8d, 0x8b, 0x82, 0x75, -0x6b, 0x6c, 0x77, 0x88, 0x94, 0x94, 0x84, 0x64, 0x45, 0x3b, 0x59, 0x90, 0xc3, 0xdd, 0xca, 0x92, -0x5a, 0x47, 0x53, 0x6f, 0x82, 0x81, 0x76, 0x71, 0x7c, 0x8e, 0x95, 0x8c, 0x79, 0x68, 0x69, 0x7b, -0x95, 0xa9, 0xab, 0x97, 0x74, 0x57, 0x53, 0x64, 0x7e, 0x95, 0x9b, 0x93, 0x89, 0x82, 0x78, 0x6b, -0x61, 0x5f, 0x65, 0x73, 0x8c, 0xa7, 0xb6, 0xad, 0x91, 0x72, 0x60, 0x5e, 0x65, 0x73, 0x85, 0x8b, -0x8b, 0x89, 0x88, 0x89, 0x83, 0x78, 0x71, 0x6e, 0x6d, 0x77, 0x87, 0x93, 0x94, 0x8b, 0x82, 0x7d, -0x79, 0x7a, 0x80, 0x85, 0x86, 0x82, 0x7d, 0x7b, 0x79, 0x77, 0x7a, 0x80, 0x84, 0x86, 0x87, 0x87, -0x83, 0x7b, 0x76, 0x76, 0x78, 0x7b, 0x81, 0x87, 0x8a, 0x8a, 0x87, 0x83, 0x7b, 0x74, 0x71, 0x73, -0x78, 0x7e, 0x84, 0x87, 0x89, 0x86, 0x81, 0x7d, 0x7b, 0x79, 0x7a, 0x7e, 0x84, 0x86, 0x86, 0x85, -0x83, 0x7d, 0x7a, 0x7b, 0x7d, 0x80, 0x81, 0x81, 0x81, 0x7c, 0x79, 0x79, 0x7a, 0x78, 0x78, 0x81, -0x8b, 0x92, 0x93, 0x8d, 0x82, 0x74, 0x68, 0x63, 0x68, 0x75, 0x84, 0x90, 0x98, 0x96, 0x8b, 0x7b, -0x70, 0x67, 0x63, 0x6c, 0x7b, 0x8a, 0x96, 0x9f, 0x9e, 0x93, 0x7e, 0x66, 0x4e, 0x41, 0x48, 0x60, -0x88, 0xae, 0xc4, 0xc4, 0xb0, 0x90, 0x6b, 0x54, 0x4e, 0x57, 0x68, 0x7d, 0x95, 0xa3, 0xa4, 0x98, -0x83, 0x68, 0x57, 0x58, 0x66, 0x7a, 0x8f, 0x9b, 0x99, 0x8d, 0x7d, 0x75, 0x75, 0x7a, 0x83, 0x86, -0x84, 0x7e, 0x76, 0x6f, 0x6b, 0x6b, 0x70, 0x7d, 0x8c, 0x97, 0x9e, 0x9a, 0x8b, 0x76, 0x63, 0x56, -0x59, 0x68, 0x7c, 0x92, 0xa1, 0xa7, 0xa1, 0x94, 0x7d, 0x60, 0x44, 0x35, 0x41, 0x6d, 0xa8, 0xd7, -0xe2, 0xbf, 0x81, 0x45, 0x29, 0x3a, 0x67, 0x93, 0xa7, 0xa6, 0x99, 0x8c, 0x82, 0x78, 0x69, 0x58, -0x54, 0x64, 0x84, 0xa7, 0xbe, 0xb9, 0x9c, 0x71, 0x4d, 0x43, 0x57, 0x78, 0x97, 0xa2, 0x9b, 0x8f, -0x84, 0x77, 0x6c, 0x64, 0x64, 0x6a, 0x78, 0x8c, 0x9d, 0xa2, 0x96, 0x7d, 0x65, 0x5e, 0x66, 0x77, -0x8b, 0x97, 0x94, 0x89, 0x7a, 0x71, 0x6e, 0x70, 0x73, 0x7b, 0x85, 0x8a, 0x8f, 0x91, 0x8d, 0x80, -0x71, 0x66, 0x67, 0x72, 0x85, 0x95, 0x9d, 0x9a, 0x8e, 0x7d, 0x70, 0x69, 0x65, 0x68, 0x71, 0x7c, -0x87, 0x90, 0x96, 0x97, 0x8f, 0x82, 0x73, 0x69, 0x66, 0x6b, 0x76, 0x81, 0x87, 0x8a, 0x8c, 0x8a, -0x88, 0x84, 0x7e, 0x77, 0x72, 0x6e, 0x70, 0x75, 0x7c, 0x84, 0x89, 0x8b, 0x8b, 0x88, 0x82, 0x7b, -0x74, 0x6f, 0x70, 0x78, 0x83, 0x8c, 0x91, 0x90, 0x88, 0x7b, 0x71, 0x6c, 0x6d, 0x73, 0x7d, 0x89, -0x8f, 0x91, 0x8d, 0x87, 0x80, 0x78, 0x6f, 0x66, 0x68, 0x7a, 0x91, 0xa1, 0xa9, 0xa3, 0x8b, 0x6a, -0x56, 0x53, 0x60, 0x78, 0x91, 0xa0, 0x9f, 0x95, 0x86, 0x79, 0x70, 0x68, 0x6a, 0x73, 0x83, 0x93, -0x9b, 0x9a, 0x8f, 0x7a, 0x6a, 0x63, 0x63, 0x69, 0x70, 0x77, 0x82, 0x8c, 0x95, 0x9a, 0x93, 0x80, -0x6a, 0x5f, 0x63, 0x76, 0x94, 0xae, 0xb6, 0xaa, 0x8f, 0x6f, 0x55, 0x47, 0x47, 0x52, 0x66, 0x7e, -0x97, 0xab, 0xb3, 0xac, 0x98, 0x7e, 0x69, 0x5e, 0x5d, 0x68, 0x78, 0x86, 0x8f, 0x95, 0x92, 0x8d, -0x87, 0x7e, 0x76, 0x72, 0x72, 0x72, 0x75, 0x79, 0x7e, 0x84, 0x89, 0x8c, 0x90, 0x95, 0x96, 0x94, -0x8b, 0x77, 0x5f, 0x45, 0x34, 0x3b, 0x5f, 0x9b, 0xd2, 0xed, 0xdc, 0xab, 0x6e, 0x3e, 0x30, 0x43, -0x68, 0x89, 0x9b, 0x9e, 0x99, 0x91, 0x87, 0x7a, 0x68, 0x59, 0x58, 0x67, 0x82, 0x98, 0xa3, 0x9e, -0x8d, 0x78, 0x6e, 0x71, 0x7e, 0x90, 0x97, 0x8f, 0x7d, 0x69, 0x5d, 0x5b, 0x63, 0x74, 0x89, 0x9d, -0xab, 0xad, 0xa4, 0x90, 0x71, 0x53, 0x42, 0x47, 0x61, 0x8a, 0xb0, 0xc7, 0xc1, 0xa1, 0x7c, 0x5b, -0x4a, 0x48, 0x57, 0x70, 0x8a, 0x9f, 0xab, 0xab, 0xa0, 0x89, 0x6a, 0x55, 0x53, 0x65, 0x7e, 0x98, -0xa6, 0xa4, 0x93, 0x7c, 0x6c, 0x66, 0x67, 0x6e, 0x79, 0x84, 0x89, 0x8d, 0x8c, 0x87, 0x7c, 0x71, -0x6d, 0x71, 0x7b, 0x8b, 0x96, 0x98, 0x93, 0x83, 0x72, 0x68, 0x66, 0x6c, 0x75, 0x80, 0x8a, 0x90, -0x94, 0x94, 0x8d, 0x81, 0x74, 0x6c, 0x69, 0x6d, 0x76, 0x80, 0x89, 0x8f, 0x93, 0x92, 0x8c, 0x83, -0x79, 0x71, 0x6d, 0x6e, 0x73, 0x7b, 0x85, 0x8c, 0x91, 0x92, 0x8d, 0x85, 0x79, 0x72, 0x70, 0x73, -0x79, 0x80, 0x85, 0x87, 0x85, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7a, 0x77, 0x75, 0x6f, 0x66, -0x6f, 0x8f, 0xaf, 0xbe, 0xb9, 0x9c, 0x72, 0x47, 0x33, 0x3f, 0x5d, 0x83, 0xa7, 0xb9, 0xb9, 0xa9, -0x8c, 0x70, 0x58, 0x49, 0x4d, 0x65, 0x87, 0xa3, 0xb0, 0xac, 0x94, 0x75, 0x5f, 0x5a, 0x65, 0x7a, -0x91, 0x99, 0x90, 0x78, 0x64, 0x5d, 0x60, 0x6d, 0x7e, 0x92, 0xa0, 0xa5, 0xa2, 0x96, 0x86, 0x72, -0x63, 0x61, 0x6a, 0x7a, 0x8a, 0x92, 0x8e, 0x7b, 0x6a, 0x61, 0x62, 0x6d, 0x81, 0x96, 0xa4, 0xa7, -0x9d, 0x8c, 0x76, 0x66, 0x5d, 0x5b, 0x65, 0x78, 0x8e, 0xa1, 0xa7, 0x9e, 0x8d, 0x7a, 0x6c, 0x66, -0x68, 0x73, 0x80, 0x86, 0x85, 0x7d, 0x76, 0x73, 0x75, 0x7d, 0x87, 0x8d, 0x8f, 0x8e, 0x89, 0x83, -0x7b, 0x73, 0x67, 0x59, 0x57, 0x6d, 0x94, 0xb4, 0xbe, 0xac, 0x89, 0x67, 0x58, 0x59, 0x65, 0x77, -0x8a, 0x99, 0x9d, 0x93, 0x82, 0x70, 0x64, 0x5e, 0x5f, 0x6b, 0x80, 0x98, 0xa9, 0xaa, 0x98, 0x7c, -0x6a, 0x64, 0x69, 0x74, 0x82, 0x8f, 0x94, 0x8f, 0x82, 0x77, 0x72, 0x71, 0x70, 0x72, 0x7c, 0x8b, -0x93, 0x93, 0x88, 0x78, 0x6d, 0x66, 0x68, 0x73, 0x86, 0x96, 0x9e, 0x9b, 0x91, 0x7d, 0x6e, 0x68, -0x69, 0x6c, 0x71, 0x7d, 0x8d, 0x96, 0x95, 0x90, 0x88, 0x7d, 0x73, 0x6f, 0x71, 0x78, 0x82, 0x87, -0x87, 0x83, 0x7d, 0x7c, 0x80, 0x83, 0x85, 0x85, 0x84, 0x81, 0x7b, 0x76, 0x74, 0x74, 0x76, 0x7b, -0x84, 0x8b, 0x90, 0x90, 0x8a, 0x81, 0x78, 0x74, 0x73, 0x77, 0x7d, 0x84, 0x89, 0x8c, 0x89, 0x81, -0x79, 0x75, 0x74, 0x77, 0x7e, 0x84, 0x88, 0x88, 0x84, 0x7e, 0x7b, 0x79, 0x78, 0x7c, 0x81, 0x86, -0x89, 0x88, 0x85, 0x7e, 0x76, 0x72, 0x73, 0x77, 0x7d, 0x83, 0x87, 0x87, 0x85, 0x82, 0x80, 0x7d, -0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7e, 0x81, 0x83, 0x85, 0x84, 0x81, 0x7b, 0x77, 0x76, -0x78, 0x7c, 0x81, 0x86, 0x88, 0x82, 0x75, 0x6f, 0x74, 0x80, 0x8b, 0x92, 0x92, 0x8a, 0x7b, 0x72, -0x72, 0x76, 0x79, 0x7b, 0x7e, 0x7e, 0x7e, 0x83, 0x86, 0x83, 0x7a, 0x74, 0x7a, 0x87, 0x90, 0x92, -0x8e, 0x81, 0x70, 0x67, 0x6c, 0x77, 0x87, 0x92, 0x93, 0x8a, 0x7a, 0x71, 0x70, 0x73, 0x78, 0x7d, -0x82, 0x85, 0x89, 0x8c, 0x8c, 0x86, 0x79, 0x6e, 0x6a, 0x6f, 0x7b, 0x8a, 0x94, 0x95, 0x8b, 0x7e, -0x75, 0x70, 0x6b, 0x68, 0x68, 0x6b, 0x71, 0x7d, 0x8f, 0x9e, 0xa4, 0xa0, 0x93, 0x82, 0x73, 0x6c, -0x6d, 0x76, 0x80, 0x87, 0x8a, 0x88, 0x82, 0x7b, 0x76, 0x73, 0x72, 0x74, 0x7a, 0x84, 0x8c, 0x8f, -0x8d, 0x88, 0x81, 0x7a, 0x78, 0x7c, 0x84, 0x8b, 0x8d, 0x8a, 0x82, 0x78, 0x71, 0x70, 0x73, 0x77, -0x7d, 0x86, 0x8a, 0x8a, 0x88, 0x82, 0x7a, 0x76, 0x78, 0x7d, 0x86, 0x8d, 0x8f, 0x8c, 0x85, 0x7e, -0x7b, 0x7a, 0x79, 0x79, 0x7c, 0x81, 0x84, 0x83, 0x81, 0x7c, 0x77, 0x77, 0x7a, 0x7d, 0x80, 0x7d, -0x7a, 0x79, 0x80, 0x8b, 0x91, 0x90, 0x88, 0x7c, 0x75, 0x75, 0x77, 0x79, 0x7c, 0x80, 0x82, 0x82, -0x7e, 0x7b, 0x77, 0x76, 0x76, 0x78, 0x7c, 0x83, 0x89, 0x8b, 0x87, 0x7e, 0x75, 0x6f, 0x70, 0x78, -0x85, 0x92, 0x9a, 0x97, 0x8b, 0x7b, 0x6d, 0x65, 0x63, 0x69, 0x74, 0x84, 0x93, 0x9e, 0xa1, 0x9a, -0x8b, 0x78, 0x69, 0x63, 0x68, 0x73, 0x7e, 0x8a, 0x91, 0x93, 0x91, 0x8d, 0x85, 0x7a, 0x70, 0x6c, -0x6d, 0x74, 0x7e, 0x88, 0x8d, 0x8f, 0x8b, 0x83, 0x7c, 0x77, 0x74, 0x73, 0x75, 0x79, 0x7b, 0x82, -0x8d, 0x95, 0x94, 0x8b, 0x7c, 0x6d, 0x62, 0x64, 0x74, 0x89, 0x96, 0x9b, 0x97, 0x88, 0x76, 0x6b, -0x68, 0x69, 0x6f, 0x7a, 0x86, 0x8f, 0x93, 0x91, 0x8c, 0x83, 0x77, 0x6e, 0x6d, 0x73, 0x7c, 0x87, -0x8d, 0x8c, 0x85, 0x7a, 0x75, 0x72, 0x72, 0x74, 0x79, 0x7d, 0x82, 0x87, 0x8a, 0x89, 0x84, 0x7c, -0x77, 0x76, 0x7b, 0x80, 0x84, 0x85, 0x82, 0x7d, 0x7c, 0x81, 0x85, 0x86, 0x84, 0x80, 0x79, 0x75, -0x77, 0x7b, 0x82, 0x87, 0x89, 0x8a, 0x89, 0x86, 0x84, 0x80, 0x7a, 0x74, 0x70, 0x72, 0x76, 0x79, -0x7d, 0x82, 0x85, 0x86, 0x84, 0x83, 0x84, 0x82, 0x81, 0x78, 0x68, 0x5d, 0x65, 0x85, 0xa9, 0xc3, -0xca, 0xb2, 0x84, 0x54, 0x37, 0x35, 0x47, 0x68, 0x8a, 0x9e, 0xa2, 0x9d, 0x92, 0x85, 0x74, 0x6b, -0x6e, 0x7d, 0x92, 0x9f, 0xa1, 0x95, 0x7d, 0x66, 0x5b, 0x5f, 0x6f, 0x83, 0x94, 0x9c, 0x95, 0x87, -0x78, 0x6e, 0x68, 0x6c, 0x77, 0x87, 0x92, 0x97, 0x95, 0x89, 0x7a, 0x6f, 0x69, 0x71, 0x80, 0x91, -0x9d, 0x9e, 0x90, 0x76, 0x60, 0x54, 0x58, 0x6a, 0x86, 0x9d, 0xaa, 0xa7, 0x98, 0x81, 0x68, 0x59, -0x55, 0x5e, 0x72, 0x8b, 0xa1, 0xad, 0xa9, 0x97, 0x80, 0x68, 0x5a, 0x57, 0x5f, 0x6d, 0x7d, 0x8c, -0x94, 0x96, 0x92, 0x88, 0x7d, 0x76, 0x73, 0x76, 0x7c, 0x83, 0x86, 0x85, 0x81, 0x7a, 0x78, 0x79, -0x7b, 0x82, 0x85, 0x84, 0x81, 0x7d, 0x7b, 0x7b, 0x7d, 0x7e, 0x7e, 0x80, 0x82, 0x84, 0x87, 0x86, -0x82, 0x7e, 0x7c, 0x7e, 0x80, 0x7e, 0x7c, 0x78, 0x78, 0x7a, 0x81, 0x86, 0x88, 0x8a, 0x88, 0x85, -0x80, 0x7b, 0x77, 0x74, 0x75, 0x77, 0x7b, 0x80, 0x85, 0x87, 0x88, 0x89, 0x88, 0x86, 0x84, 0x80, -0x79, 0x75, 0x72, 0x72, 0x77, 0x7e, 0x86, 0x8a, 0x8d, 0x8d, 0x88, 0x81, 0x7b, 0x74, 0x6f, 0x70, -0x74, 0x7b, 0x81, 0x87, 0x8a, 0x8a, 0x88, 0x85, 0x82, 0x7e, 0x7c, 0x76, 0x72, 0x72, 0x77, 0x83, -0x8e, 0x92, 0x8d, 0x81, 0x75, 0x71, 0x74, 0x7b, 0x82, 0x86, 0x86, 0x88, 0x89, 0x8a, 0x87, 0x81, -0x7a, 0x76, 0x77, 0x7b, 0x80, 0x81, 0x81, 0x81, 0x82, 0x83, 0x81, 0x7e, 0x7d, 0x7e, 0x81, 0x83, -0x82, 0x7e, 0x7a, 0x78, 0x7b, 0x82, 0x88, 0x8a, 0x89, 0x85, 0x80, 0x7d, 0x7c, 0x7a, 0x74, 0x6e, -0x6a, 0x6e, 0x7c, 0x8d, 0x9b, 0xa2, 0x9e, 0x93, 0x83, 0x70, 0x64, 0x5e, 0x60, 0x6d, 0x7d, 0x8d, -0x98, 0x9a, 0x94, 0x87, 0x7a, 0x73, 0x70, 0x71, 0x75, 0x7b, 0x81, 0x85, 0x85, 0x84, 0x81, 0x7b, -0x78, 0x76, 0x79, 0x80, 0x88, 0x8d, 0x8c, 0x86, 0x7d, 0x76, 0x74, 0x76, 0x7c, 0x85, 0x8b, 0x8d, -0x8b, 0x84, 0x7a, 0x70, 0x6d, 0x72, 0x7c, 0x89, 0x93, 0x96, 0x91, 0x87, 0x7a, 0x6e, 0x69, 0x6c, -0x77, 0x86, 0x91, 0x95, 0x90, 0x88, 0x7e, 0x76, 0x73, 0x75, 0x78, 0x7d, 0x83, 0x87, 0x89, 0x87, -0x82, 0x7b, 0x79, 0x78, 0x78, 0x7a, 0x7e, 0x7d, 0x7b, 0x7c, 0x7e, 0x82, 0x88, 0x8d, 0x8e, 0x8a, -0x83, 0x7a, 0x71, 0x6d, 0x6e, 0x75, 0x81, 0x8d, 0x95, 0x99, 0x95, 0x89, 0x78, 0x6a, 0x65, 0x69, -0x76, 0x88, 0x95, 0x9b, 0x97, 0x8c, 0x7d, 0x6f, 0x67, 0x67, 0x6d, 0x77, 0x84, 0x8e, 0x93, 0x93, -0x8e, 0x85, 0x7b, 0x73, 0x6f, 0x6f, 0x73, 0x7a, 0x81, 0x85, 0x87, 0x88, 0x87, 0x86, 0x82, 0x7e, -0x7c, 0x7a, 0x7a, 0x79, 0x79, 0x7b, 0x7d, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x82, 0x84, -0x85, 0x83, 0x80, 0x7b, 0x79, 0x7a, 0x7a, 0x7a, 0x7c, 0x80, 0x85, 0x8a, 0x8c, 0x88, 0x7e, 0x75, -0x6f, 0x6d, 0x71, 0x7a, 0x84, 0x8b, 0x8f, 0x8e, 0x8a, 0x84, 0x7a, 0x71, 0x6b, 0x69, 0x6e, 0x7b, -0x8a, 0x95, 0x98, 0x94, 0x8c, 0x80, 0x75, 0x6e, 0x6c, 0x6f, 0x76, 0x7e, 0x86, 0x89, 0x8a, 0x89, -0x86, 0x80, 0x78, 0x71, 0x6d, 0x6e, 0x78, 0x89, 0x98, 0xa1, 0x9d, 0x8f, 0x7e, 0x6f, 0x67, 0x66, -0x6b, 0x74, 0x7a, 0x7d, 0x7e, 0x7e, 0x81, 0x86, 0x8c, 0x91, 0x92, 0x90, 0x8c, 0x83, 0x77, 0x69, -0x5f, 0x5f, 0x69, 0x7d, 0x92, 0xa0, 0xa0, 0x95, 0x83, 0x6f, 0x62, 0x5c, 0x5f, 0x69, 0x78, 0x8b, -0x9a, 0xa2, 0x9e, 0x90, 0x7b, 0x69, 0x60, 0x64, 0x70, 0x80, 0x8c, 0x90, 0x8d, 0x87, 0x80, 0x79, -0x76, 0x78, 0x80, 0x89, 0x8f, 0x8f, 0x86, 0x79, 0x6e, 0x6a, 0x6e, 0x77, 0x82, 0x89, 0x8d, 0x8c, -0x87, 0x7e, 0x75, 0x71, 0x73, 0x7b, 0x86, 0x8b, 0x89, 0x84, 0x80, 0x7e, 0x7d, 0x7b, 0x7a, 0x7b, -0x7c, 0x7e, 0x7e, 0x7a, 0x78, 0x7a, 0x7e, 0x84, 0x88, 0x89, 0x88, 0x81, 0x74, 0x69, 0x68, 0x70, -0x80, 0x8e, 0x95, 0x93, 0x8c, 0x83, 0x79, 0x70, 0x6c, 0x6c, 0x73, 0x7c, 0x88, 0x94, 0x99, 0x96, -0x89, 0x79, 0x6b, 0x65, 0x66, 0x6e, 0x7a, 0x86, 0x90, 0x97, 0x96, 0x8f, 0x83, 0x75, 0x6f, 0x6c, -0x6f, 0x77, 0x82, 0x8d, 0x94, 0x93, 0x8b, 0x7b, 0x6d, 0x67, 0x6a, 0x74, 0x82, 0x90, 0x97, 0x95, -0x8c, 0x7e, 0x73, 0x6d, 0x6e, 0x73, 0x7d, 0x88, 0x8f, 0x8f, 0x88, 0x7d, 0x78, 0x79, 0x7b, 0x7b, -0x79, 0x78, 0x7a, 0x7e, 0x85, 0x89, 0x8c, 0x8c, 0x89, 0x83, 0x79, 0x73, 0x71, 0x70, 0x72, 0x78, -0x81, 0x8a, 0x8e, 0x8e, 0x88, 0x80, 0x78, 0x74, 0x76, 0x7c, 0x82, 0x84, 0x82, 0x7c, 0x7b, 0x80, -0x86, 0x87, 0x85, 0x81, 0x78, 0x71, 0x6d, 0x70, 0x7a, 0x88, 0x92, 0x97, 0x94, 0x8a, 0x7c, 0x6d, -0x61, 0x5e, 0x66, 0x77, 0x8a, 0x98, 0x9d, 0x99, 0x8d, 0x7d, 0x6e, 0x64, 0x64, 0x6c, 0x78, 0x84, -0x8d, 0x92, 0x91, 0x8b, 0x83, 0x7a, 0x74, 0x73, 0x76, 0x7a, 0x81, 0x89, 0x8d, 0x88, 0x7d, 0x77, -0x77, 0x7d, 0x85, 0x89, 0x86, 0x80, 0x7a, 0x77, 0x79, 0x7c, 0x81, 0x84, 0x83, 0x81, 0x7c, 0x7a, -0x76, 0x72, 0x6f, 0x73, 0x7c, 0x8a, 0x93, 0x95, 0x8e, 0x81, 0x72, 0x6a, 0x6b, 0x71, 0x7c, 0x87, -0x8f, 0x91, 0x8c, 0x84, 0x7a, 0x73, 0x70, 0x74, 0x7b, 0x83, 0x89, 0x8d, 0x8d, 0x88, 0x81, 0x77, -0x71, 0x71, 0x74, 0x7b, 0x83, 0x87, 0x87, 0x82, 0x7d, 0x7c, 0x7d, 0x80, 0x81, 0x80, 0x81, 0x83, -0x85, 0x84, 0x80, 0x7a, 0x76, 0x75, 0x78, 0x7c, 0x82, 0x88, 0x8b, 0x8b, 0x8a, 0x85, 0x81, 0x7e, -0x7c, 0x7b, 0x7a, 0x79, 0x77, 0x77, 0x7c, 0x82, 0x85, 0x88, 0x89, 0x86, 0x83, 0x7e, 0x78, 0x75, -0x77, 0x7c, 0x85, 0x8c, 0x8e, 0x89, 0x7e, 0x77, 0x73, 0x74, 0x7a, 0x83, 0x88, 0x88, 0x89, 0x88, -0x87, 0x85, 0x80, 0x79, 0x72, 0x6d, 0x70, 0x7a, 0x85, 0x90, 0x95, 0x94, 0x8d, 0x82, 0x76, 0x69, -0x5f, 0x5f, 0x68, 0x79, 0x8e, 0x9f, 0xa6, 0xa1, 0x92, 0x7d, 0x6a, 0x5e, 0x5b, 0x60, 0x6d, 0x7c, -0x8b, 0x95, 0x97, 0x94, 0x8d, 0x84, 0x79, 0x71, 0x6e, 0x6e, 0x71, 0x76, 0x7d, 0x85, 0x8b, 0x8d, -0x8f, 0x8c, 0x86, 0x7e, 0x77, 0x71, 0x70, 0x73, 0x7a, 0x84, 0x8c, 0x90, 0x91, 0x90, 0x88, 0x7c, -0x70, 0x67, 0x66, 0x6f, 0x7e, 0x8f, 0x9a, 0x9c, 0x93, 0x84, 0x73, 0x66, 0x62, 0x68, 0x74, 0x87, -0x96, 0x9c, 0x9b, 0x92, 0x85, 0x78, 0x6f, 0x6c, 0x6e, 0x74, 0x7c, 0x85, 0x8b, 0x8d, 0x89, 0x82, -0x7c, 0x7a, 0x7c, 0x7d, 0x7e, 0x7d, 0x7a, 0x79, 0x7a, 0x7d, 0x81, 0x84, 0x85, 0x85, 0x83, 0x80, -0x7e, 0x7d, 0x7c, 0x7b, 0x7a, 0x7a, 0x7a, 0x7b, 0x7d, 0x80, 0x83, 0x84, 0x83, 0x80, 0x7d, 0x7e, -0x83, 0x86, 0x86, 0x83, 0x80, 0x7a, 0x74, 0x6e, 0x6b, 0x6f, 0x7c, 0x8c, 0x9a, 0xa0, 0x9b, 0x8c, -0x79, 0x6b, 0x67, 0x69, 0x71, 0x7b, 0x82, 0x87, 0x8a, 0x8b, 0x88, 0x80, 0x77, 0x74, 0x76, 0x7a, -0x81, 0x84, 0x83, 0x7e, 0x79, 0x78, 0x7a, 0x7d, 0x83, 0x87, 0x8a, 0x88, 0x82, 0x7a, 0x75, 0x73, -0x76, 0x7a, 0x7e, 0x82, 0x84, 0x85, 0x83, 0x81, 0x80, 0x7d, 0x7b, 0x78, 0x77, 0x77, 0x7a, 0x7c, -0x80, 0x81, 0x83, 0x86, 0x87, 0x87, 0x85, 0x81, 0x7c, 0x7a, 0x79, 0x7b, 0x7c, 0x7e, 0x81, 0x83, -0x85, 0x87, 0x84, 0x7e, 0x7a, 0x7a, 0x7d, 0x80, 0x81, 0x7d, 0x78, 0x75, 0x76, 0x7c, 0x86, 0x8b, -0x8a, 0x85, 0x7e, 0x7b, 0x7b, 0x7d, 0x7d, 0x7d, 0x7d, 0x80, 0x84, 0x88, 0x89, 0x86, 0x81, 0x7b, -0x78, 0x77, 0x78, 0x7c, 0x80, 0x83, 0x85, 0x85, 0x83, 0x82, 0x7e, 0x7b, 0x7a, 0x7d, 0x82, 0x87, -0x89, 0x88, 0x86, 0x82, 0x7d, 0x7a, 0x78, 0x78, 0x79, 0x7e, 0x83, 0x86, 0x86, 0x85, 0x84, 0x82, -0x7d, 0x7a, 0x76, 0x74, 0x76, 0x7a, 0x80, 0x83, 0x83, 0x82, 0x81, 0x80, 0x82, 0x85, 0x85, 0x82, -0x7d, 0x7a, 0x79, 0x7a, 0x7d, 0x80, 0x82, 0x84, 0x85, 0x83, 0x81, 0x7d, 0x79, 0x77, 0x77, 0x7a, -0x80, 0x86, 0x89, 0x8a, 0x88, 0x84, 0x7e, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, 0x82, 0x85, 0x87, -0x87, 0x83, 0x7d, 0x78, 0x75, 0x75, 0x78, 0x7e, 0x86, 0x8d, 0x90, 0x8d, 0x85, 0x7b, 0x73, 0x6f, -0x70, 0x76, 0x7e, 0x87, 0x8d, 0x8e, 0x8a, 0x82, 0x79, 0x73, 0x70, 0x70, 0x74, 0x7b, 0x84, 0x8b, -0x8f, 0x8d, 0x86, 0x7c, 0x75, 0x72, 0x73, 0x78, 0x7d, 0x83, 0x87, 0x8a, 0x8b, 0x88, 0x83, 0x7b, -0x73, 0x70, 0x70, 0x72, 0x77, 0x7e, 0x85, 0x8c, 0x8f, 0x8f, 0x8a, 0x82, 0x79, 0x71, 0x6e, 0x6f, -0x75, 0x7c, 0x84, 0x89, 0x8b, 0x8b, 0x88, 0x83, 0x7e, 0x7a, 0x7a, 0x7b, 0x7c, 0x7c, 0x7a, 0x78, -0x78, 0x78, 0x7b, 0x80, 0x84, 0x87, 0x8a, 0x8a, 0x89, 0x84, 0x7c, 0x75, 0x70, 0x71, 0x76, 0x7c, -0x84, 0x88, 0x88, 0x86, 0x83, 0x80, 0x7c, 0x7b, 0x7a, 0x7a, 0x7b, 0x7c, 0x7e, 0x82, 0x85, 0x86, -0x85, 0x81, 0x7c, 0x79, 0x77, 0x77, 0x7a, 0x7e, 0x83, 0x88, 0x8a, 0x89, 0x85, 0x7e, 0x79, 0x77, -0x77, 0x7a, 0x7d, 0x7e, 0x81, 0x81, 0x80, 0x80, 0x80, 0x84, 0x88, 0x89, 0x88, 0x83, 0x7a, 0x75, -0x73, 0x73, 0x77, 0x7c, 0x82, 0x87, 0x8a, 0x89, 0x85, 0x7e, 0x79, 0x75, 0x71, 0x72, 0x77, 0x7d, -0x86, 0x8c, 0x90, 0x8e, 0x89, 0x82, 0x79, 0x74, 0x73, 0x75, 0x7a, 0x81, 0x87, 0x8b, 0x8a, 0x85, -0x80, 0x79, 0x75, 0x73, 0x76, 0x7c, 0x82, 0x88, 0x8d, 0x8f, 0x8d, 0x86, 0x7c, 0x73, 0x6d, 0x6d, -0x72, 0x7a, 0x83, 0x8a, 0x90, 0x92, 0x8f, 0x87, 0x7d, 0x75, 0x70, 0x6f, 0x72, 0x77, 0x7d, 0x84, -0x88, 0x89, 0x88, 0x86, 0x84, 0x81, 0x7d, 0x7a, 0x78, 0x77, 0x78, 0x7b, 0x7e, 0x82, 0x84, 0x84, -0x82, 0x81, 0x81, 0x82, 0x83, 0x83, 0x80, 0x7b, 0x77, 0x77, 0x78, 0x7b, 0x80, 0x80, 0x7d, 0x7b, -0x7b, 0x80, 0x86, 0x8c, 0x8d, 0x8b, 0x83, 0x79, 0x72, 0x6e, 0x6f, 0x73, 0x79, 0x7e, 0x86, 0x8d, -0x92, 0x94, 0x8f, 0x87, 0x7d, 0x74, 0x6e, 0x6c, 0x6d, 0x72, 0x7a, 0x83, 0x8a, 0x90, 0x91, 0x8d, -0x86, 0x7d, 0x76, 0x72, 0x72, 0x74, 0x78, 0x7b, 0x7d, 0x82, 0x87, 0x8b, 0x8b, 0x86, 0x7e, 0x78, -0x75, 0x76, 0x79, 0x7b, 0x7e, 0x81, 0x83, 0x83, 0x83, 0x80, 0x7c, 0x7b, 0x7a, 0x7a, 0x7e, 0x83, -0x85, 0x86, 0x85, 0x81, 0x7c, 0x78, 0x75, 0x77, 0x7b, 0x82, 0x87, 0x89, 0x87, 0x81, 0x79, 0x75, -0x75, 0x78, 0x7e, 0x84, 0x88, 0x88, 0x85, 0x83, 0x80, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x80, -0x80, 0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x80, 0x7d, 0x7b, 0x78, 0x78, 0x7a, 0x7e, 0x86, -0x8c, 0x8d, 0x89, 0x81, 0x79, 0x74, 0x72, 0x75, 0x7a, 0x80, 0x84, 0x88, 0x88, 0x86, 0x83, 0x7b, -0x74, 0x71, 0x71, 0x76, 0x80, 0x87, 0x8b, 0x8c, 0x8b, 0x87, 0x80, 0x79, 0x74, 0x72, 0x73, 0x77, -0x7d, 0x83, 0x87, 0x88, 0x85, 0x82, 0x7e, 0x7b, 0x7b, 0x7a, 0x78, 0x79, 0x7d, 0x81, 0x84, 0x85, -0x84, 0x82, 0x7e, 0x7c, 0x7a, 0x79, 0x78, 0x79, 0x7d, 0x81, 0x83, 0x84, 0x82, 0x7d, 0x7b, 0x7a, -0x7c, 0x80, 0x83, 0x84, 0x83, 0x80, 0x7d, 0x7b, 0x7a, 0x7b, 0x7e, 0x82, 0x84, 0x87, 0x88, 0x86, -0x84, 0x7d, 0x78, 0x75, 0x73, 0x75, 0x7a, 0x82, 0x88, 0x8c, 0x8e, 0x8b, 0x85, 0x7d, 0x74, 0x70, -0x6e, 0x70, 0x79, 0x83, 0x8b, 0x8f, 0x8b, 0x86, 0x83, 0x7e, 0x7d, 0x7a, 0x78, 0x76, 0x74, 0x74, -0x77, 0x7d, 0x86, 0x8d, 0x8f, 0x8f, 0x8b, 0x86, 0x7e, 0x75, 0x6e, 0x6a, 0x6a, 0x71, 0x7b, 0x88, -0x92, 0x98, 0x97, 0x8f, 0x83, 0x76, 0x6e, 0x6c, 0x6f, 0x78, 0x82, 0x8a, 0x8f, 0x8e, 0x8a, 0x83, -0x7c, 0x75, 0x72, 0x72, 0x78, 0x81, 0x8a, 0x91, 0x92, 0x8d, 0x84, 0x78, 0x71, 0x6c, 0x6b, 0x70, -0x79, 0x85, 0x8c, 0x90, 0x8e, 0x86, 0x7d, 0x77, 0x74, 0x75, 0x76, 0x78, 0x7c, 0x84, 0x8a, 0x8d, -0x8a, 0x85, 0x7d, 0x76, 0x74, 0x75, 0x77, 0x7a, 0x7e, 0x82, 0x85, 0x85, 0x84, 0x83, 0x82, 0x7d, -0x7a, 0x78, 0x76, 0x77, 0x79, 0x7c, 0x80, 0x81, 0x84, 0x85, 0x82, 0x80, 0x7c, 0x7b, 0x7b, 0x7b, -0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x82, 0x81, 0x7d, 0x79, 0x76, -0x75, 0x78, 0x7b, 0x7d, 0x81, 0x84, 0x86, 0x8a, 0x8c, 0x8c, 0x84, 0x7a, 0x70, 0x6a, 0x6b, 0x70, -0x78, 0x83, 0x8b, 0x91, 0x94, 0x90, 0x88, 0x7d, 0x71, 0x6a, 0x69, 0x6e, 0x77, 0x81, 0x8a, 0x8e, -0x8c, 0x88, 0x84, 0x80, 0x7a, 0x76, 0x75, 0x77, 0x7d, 0x83, 0x86, 0x85, 0x81, 0x7c, 0x7b, 0x7d, -0x82, 0x84, 0x83, 0x81, 0x7c, 0x7a, 0x7a, 0x7c, 0x7c, 0x7d, 0x80, 0x84, 0x88, 0x89, 0x84, 0x7a, -0x73, 0x70, 0x73, 0x78, 0x7e, 0x84, 0x86, 0x87, 0x87, 0x86, 0x83, 0x7e, 0x7a, 0x7a, 0x7b, 0x7c, -0x7b, 0x78, 0x78, 0x78, 0x7b, 0x81, 0x85, 0x87, 0x88, 0x87, 0x85, 0x80, 0x79, 0x75, 0x73, 0x74, -0x77, 0x7b, 0x81, 0x86, 0x88, 0x89, 0x86, 0x81, 0x7b, 0x77, 0x75, 0x77, 0x79, 0x7b, 0x7e, 0x84, -0x89, 0x8c, 0x8c, 0x88, 0x81, 0x79, 0x74, 0x72, 0x73, 0x78, 0x7d, 0x83, 0x88, 0x8a, 0x88, 0x84, -0x80, 0x7a, 0x77, 0x76, 0x79, 0x7c, 0x7d, 0x80, 0x83, 0x86, 0x88, 0x87, 0x85, 0x81, 0x7b, 0x78, -0x75, 0x75, 0x78, 0x7c, 0x82, 0x88, 0x8b, 0x8b, 0x87, 0x7e, 0x76, 0x72, 0x70, 0x72, 0x77, 0x7c, -0x82, 0x86, 0x88, 0x87, 0x83, 0x7c, 0x78, 0x77, 0x78, 0x79, 0x7a, 0x7c, 0x7e, 0x83, 0x88, 0x8c, -0x8b, 0x86, 0x7d, 0x74, 0x71, 0x74, 0x77, 0x7b, 0x80, 0x82, 0x82, 0x83, 0x86, 0x87, 0x85, 0x83, -0x81, 0x80, 0x7e, 0x7c, 0x7b, 0x79, 0x79, 0x7d, 0x82, 0x86, 0x88, 0x87, 0x85, 0x82, 0x7e, 0x7b, -0x78, 0x78, 0x7a, 0x7d, 0x81, 0x84, 0x85, 0x84, 0x82, 0x83, 0x84, 0x84, 0x82, 0x7b, 0x75, 0x71, -0x71, 0x77, 0x80, 0x87, 0x8c, 0x8f, 0x90, 0x8b, 0x83, 0x77, 0x6d, 0x67, 0x67, 0x6c, 0x78, 0x86, -0x91, 0x98, 0x99, 0x94, 0x8a, 0x7b, 0x6e, 0x66, 0x64, 0x6b, 0x76, 0x84, 0x8d, 0x94, 0x96, 0x93, -0x8d, 0x83, 0x78, 0x70, 0x6d, 0x6e, 0x74, 0x7a, 0x82, 0x88, 0x8d, 0x8e, 0x8a, 0x84, 0x7b, 0x77, -0x76, 0x77, 0x78, 0x7a, 0x7d, 0x81, 0x83, 0x84, 0x83, 0x81, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7b, -0x7b, 0x7b, 0x7c, 0x7e, 0x82, 0x84, 0x85, 0x85, 0x81, 0x7c, 0x79, 0x79, 0x7c, 0x7d, 0x7e, 0x81, -0x83, 0x83, 0x85, 0x84, 0x82, 0x7c, 0x78, 0x79, 0x7c, 0x80, 0x83, 0x83, 0x82, 0x83, 0x83, 0x82, -0x7d, 0x78, 0x74, 0x73, 0x76, 0x7b, 0x80, 0x84, 0x87, 0x89, 0x8a, 0x89, 0x83, 0x7b, 0x76, 0x75, -0x78, 0x7a, 0x7c, 0x7e, 0x81, 0x84, 0x88, 0x8a, 0x8a, 0x85, 0x80, 0x7a, 0x77, 0x76, 0x75, 0x77, -0x7b, 0x83, 0x8a, 0x8e, 0x8c, 0x87, 0x80, 0x79, 0x76, 0x74, 0x73, 0x74, 0x78, 0x7d, 0x84, 0x89, -0x8d, 0x8d, 0x8a, 0x87, 0x81, 0x7a, 0x72, 0x6e, 0x70, 0x76, 0x80, 0x88, 0x8f, 0x91, 0x8e, 0x88, -0x81, 0x77, 0x70, 0x6f, 0x72, 0x78, 0x7e, 0x84, 0x88, 0x8b, 0x8e, 0x8e, 0x8b, 0x81, 0x73, 0x69, -0x63, 0x67, 0x75, 0x84, 0x92, 0x9a, 0x9a, 0x96, 0x8c, 0x80, 0x72, 0x67, 0x62, 0x64, 0x6c, 0x79, -0x88, 0x94, 0x99, 0x98, 0x92, 0x87, 0x7b, 0x70, 0x68, 0x67, 0x6d, 0x76, 0x80, 0x89, 0x8d, 0x8e, -0x8c, 0x8a, 0x86, 0x82, 0x7d, 0x78, 0x75, 0x73, 0x73, 0x74, 0x77, 0x7e, 0x87, 0x8d, 0x8f, 0x8e, -0x89, 0x83, 0x7b, 0x74, 0x71, 0x70, 0x72, 0x78, 0x80, 0x86, 0x88, 0x86, 0x85, 0x84, 0x82, 0x80, -0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7b, 0x7b, 0x7c, 0x7e, 0x83, 0x85, 0x84, 0x83, 0x80, 0x7e, -0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x82, 0x86, 0x88, 0x86, -0x82, 0x7e, 0x7a, 0x79, 0x7a, 0x7b, 0x7d, 0x81, 0x82, 0x82, 0x81, 0x7c, 0x7a, 0x7b, 0x81, 0x87, -0x8a, 0x89, 0x85, 0x7d, 0x78, 0x75, 0x76, 0x79, 0x7d, 0x82, 0x85, 0x89, 0x8b, 0x89, 0x84, 0x7d, -0x78, 0x76, 0x75, 0x77, 0x79, 0x7b, 0x7d, 0x80, 0x85, 0x89, 0x89, 0x88, 0x86, 0x82, 0x7c, 0x78, -0x74, 0x73, 0x75, 0x7a, 0x82, 0x88, 0x8a, 0x8a, 0x88, 0x83, 0x7d, 0x7a, 0x78, 0x77, 0x77, 0x79, -0x7d, 0x83, 0x89, 0x8b, 0x89, 0x84, 0x7c, 0x75, 0x71, 0x71, 0x77, 0x82, 0x8a, 0x8f, 0x8d, 0x86, -0x7d, 0x77, 0x74, 0x75, 0x78, 0x7d, 0x84, 0x87, 0x89, 0x86, 0x82, 0x7d, 0x7b, 0x78, 0x79, 0x7b, -0x7c, 0x7b, 0x7b, 0x7d, 0x7e, 0x81, 0x83, 0x85, 0x85, 0x83, 0x80, 0x7b, 0x78, 0x77, 0x79, 0x79, -0x80, 0x86, 0x84, 0x86, 0x87, 0x81, 0x7c, 0x7a, 0x7b, 0x7e, 0x7c, 0x7e, 0x80, 0x7b, 0x7b, 0x7b, -0x7c, 0x82, 0x82, 0x81, 0x82, 0x82, 0x83, 0x82, 0x7c, 0x7a, 0x78, 0x77, 0x7a, 0x80, 0x83, 0x81, -0x80, 0x7e, 0x7b, 0x7a, 0x7b, 0x7c, 0x7e, 0x7e, 0x7e, 0x81, 0x80, 0x7d, 0x7d, 0x80, 0x81, 0x80, -0x7e, 0x7d, 0x7c, 0x7c, 0x7e, 0x81, 0x81, 0x7d, 0x7b, 0x7b, 0x7d, 0x80, 0x82, 0x83, 0x86, 0x86, -0x85, 0x81, 0x7b, 0x77, 0x72, 0x73, 0x75, 0x7a, 0x80, 0x84, 0x8a, 0x8e, 0x90, 0x8b, 0x81, 0x75, -0x6d, 0x68, 0x69, 0x71, 0x7b, 0x86, 0x8f, 0x91, 0x90, 0x89, 0x7d, 0x72, 0x6c, 0x6e, 0x73, 0x7a, -0x82, 0x87, 0x89, 0x87, 0x85, 0x83, 0x80, 0x7d, 0x7b, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x83, 0x84, -0x84, 0x84, 0x84, 0x82, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7d, 0x7d, -0x7e, 0x7d, 0x7d, 0x7c, 0x7d, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7c, 0x7e, 0x81, 0x82, 0x82, 0x81, -0x80, 0x7e, 0x7c, 0x7b, 0x7a, 0x7b, 0x7b, 0x7e, 0x84, 0x87, 0x87, 0x85, 0x82, 0x7e, 0x79, 0x76, -0x75, 0x77, 0x79, 0x7d, 0x83, 0x88, 0x8b, 0x8b, 0x8a, 0x86, 0x7d, 0x75, 0x72, 0x73, 0x76, 0x7c, -0x84, 0x89, 0x8b, 0x87, 0x84, 0x80, 0x7a, 0x75, 0x74, 0x79, 0x7e, 0x83, 0x86, 0x88, 0x86, 0x81, -0x7d, 0x7a, 0x76, 0x75, 0x78, 0x7c, 0x82, 0x86, 0x88, 0x86, 0x81, 0x7e, 0x7c, 0x79, 0x78, 0x7b, -0x7e, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x81, 0x83, 0x82, 0x81, 0x80, 0x7e, 0x7b, 0x77, 0x75, 0x75, -0x77, 0x7d, 0x85, 0x8a, 0x8c, 0x8b, 0x88, 0x82, 0x79, 0x72, 0x6f, 0x71, 0x75, 0x7d, 0x86, 0x8a, -0x8c, 0x8d, 0x8b, 0x86, 0x7e, 0x77, 0x72, 0x70, 0x72, 0x79, 0x81, 0x85, 0x89, 0x8c, 0x8c, 0x89, -0x86, 0x82, 0x7c, 0x77, 0x73, 0x73, 0x74, 0x78, 0x80, 0x86, 0x88, 0x87, 0x85, 0x82, 0x7d, 0x7a, -0x79, 0x79, 0x7a, 0x7e, 0x84, 0x86, 0x85, 0x82, 0x80, 0x80, 0x81, 0x82, 0x80, 0x7c, 0x79, 0x7a, -0x7e, 0x82, 0x84, 0x85, 0x86, 0x85, 0x84, 0x81, 0x7d, 0x78, 0x75, 0x78, 0x7e, 0x84, 0x88, 0x8b, -0x8c, 0x88, 0x83, 0x7e, 0x77, 0x72, 0x72, 0x74, 0x78, 0x81, 0x88, 0x8b, 0x8c, 0x8b, 0x86, 0x82, -0x7d, 0x77, 0x73, 0x71, 0x70, 0x72, 0x79, 0x82, 0x8c, 0x93, 0x94, 0x90, 0x89, 0x7d, 0x75, 0x70, -0x6e, 0x70, 0x74, 0x7a, 0x84, 0x8d, 0x92, 0x93, 0x8f, 0x88, 0x7e, 0x75, 0x6f, 0x6e, 0x72, 0x79, -0x82, 0x89, 0x8e, 0x8f, 0x8c, 0x84, 0x7b, 0x74, 0x70, 0x6f, 0x74, 0x7a, 0x82, 0x88, 0x8b, 0x89, -0x85, 0x81, 0x7b, 0x76, 0x73, 0x72, 0x74, 0x79, 0x80, 0x86, 0x8b, 0x8d, 0x8b, 0x89, 0x83, 0x7b, -0x75, 0x72, 0x71, 0x73, 0x78, 0x80, 0x87, 0x8d, 0x91, 0x90, 0x8c, 0x86, 0x7b, 0x72, 0x6f, 0x6f, -0x72, 0x76, 0x7c, 0x82, 0x86, 0x88, 0x88, 0x86, 0x84, 0x82, 0x80, 0x7c, 0x78, 0x76, 0x74, 0x75, -0x79, 0x7d, 0x83, 0x87, 0x8b, 0x8b, 0x88, 0x84, 0x7d, 0x75, 0x70, 0x6f, 0x71, 0x78, 0x80, 0x88, -0x8d, 0x8d, 0x8b, 0x86, 0x82, 0x7c, 0x7a, 0x7a, 0x79, 0x79, 0x7a, 0x7a, 0x7d, 0x84, 0x89, 0x8b, -0x8c, 0x89, 0x84, 0x7d, 0x77, 0x73, 0x72, 0x74, 0x78, 0x7c, 0x82, 0x87, 0x8c, 0x90, 0x91, 0x8d, -0x85, 0x79, 0x6f, 0x69, 0x69, 0x6d, 0x75, 0x80, 0x8a, 0x92, 0x97, 0x95, 0x8d, 0x82, 0x75, 0x6e, -0x6c, 0x6e, 0x75, 0x7c, 0x84, 0x89, 0x8d, 0x8f, 0x8c, 0x85, 0x7c, 0x73, 0x6d, 0x6d, 0x72, 0x7b, -0x86, 0x8f, 0x92, 0x91, 0x8c, 0x84, 0x79, 0x71, 0x6f, 0x70, 0x75, 0x7d, 0x86, 0x8b, 0x8c, 0x88, -0x82, 0x7d, 0x7a, 0x78, 0x77, 0x76, 0x77, 0x7b, 0x80, 0x83, 0x83, 0x82, 0x81, 0x82, 0x83, 0x82, -0x83, 0x82, 0x7e, 0x7b, 0x7a, 0x79, 0x7a, 0x7b, 0x7e, 0x82, 0x86, 0x89, 0x89, 0x85, 0x80, 0x78, -0x74, 0x73, 0x75, 0x79, 0x7e, 0x84, 0x88, 0x8b, 0x8b, 0x89, 0x83, 0x7b, 0x76, 0x73, 0x73, 0x76, -0x7b, 0x81, 0x84, 0x87, 0x88, 0x89, 0x87, 0x83, 0x7e, 0x7a, 0x77, 0x78, 0x7a, 0x7d, 0x80, 0x82, -0x82, 0x82, 0x81, 0x7f, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, -0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7d, -0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x78, 0x79, 0x7a, 0x7b, 0x7a, 0x79, 0x78, -0x78, 0x79, 0x7a, 0x7a, 0x78, 0x77, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7e, 0x7c, 0x7b, 0x7b, -0x7d, 0x81, 0x83, 0x85, 0x85, 0x84, 0x83, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x83, -0x84, 0x85, 0x85, 0x84, 0x84, 0x84, 0x84, 0x85, 0x87, 0x87, 0x85, 0x80, 0x75, 0x77, 0x80, 0x85, -0x88, 0x87, 0x85, 0x82, 0x7e, 0x7e, 0x7e, 0x81, 0x84, 0x86, 0x84, 0x83, 0x85, 0x88, 0x89, 0x8a, -0x8a, 0x87, 0x81, 0x7a, 0x78, 0x77, 0x77, 0x79, 0x79, 0x75, 0x70, 0x6d, 0x6b, 0x6f, 0x73, 0x77, -0x79, 0x77, 0x75, 0x74, 0x71, 0x70, 0x71, 0x7a, 0x83, 0x7d, 0x76, 0x76, 0x7c, 0x7d, 0x7c, 0x7a, -0x77, 0x75, 0x72, 0x77, 0x7a, 0x83, 0x8b, 0x8a, 0x8b, 0x87, 0x85, 0x87, 0x8c, 0x94, 0x9e, 0xa8, -0xac, 0xa8, 0xa3, 0x9d, 0x98, 0x92, 0x89, 0x87, 0x86, 0x7e, 0x79, 0x7e, 0x81, 0x7d, 0x72, 0x6a, -0x67, 0x61, 0x66, 0x6c, 0x70, 0x74, 0x71, 0x6a, 0x67, 0x69, 0x6a, 0x6c, 0x6e, 0x71, 0x70, 0x6b, -0x68, 0x69, 0x6b, 0x6e, 0x6f, 0x6f, 0x6a, 0x64, 0x61, 0x5e, 0x6c, 0x7a, 0x82, 0x84, 0x86, 0x89, -0x8a, 0x8e, 0x97, 0x9f, 0xa6, 0xa4, 0xa5, 0xa7, 0xa3, 0x9d, 0xa0, 0xa2, 0xa3, 0xb1, 0xb1, 0xab, -0xa8, 0xa4, 0xa0, 0x9a, 0x93, 0x8a, 0x83, 0x7e, 0x76, 0x7b, 0x86, 0x8c, 0x8b, 0x83, 0x7d, 0x7d, -0x7e, 0x82, 0x86, 0x89, 0x85, 0x7d, 0x7e, 0x7c, 0x79, 0x7c, 0x78, 0x71, 0x6f, 0x69, 0x68, 0x66, -0x62, 0x63, 0x63, 0x5f, 0x5a, 0x4c, 0x49, 0x5e, 0x64, 0x6c, 0x74, 0x74, 0x6d, 0x6e, 0x76, 0x81, -0x89, 0x8e, 0x90, 0x8e, 0x88, 0x87, 0x86, 0x86, 0x88, 0x86, 0x7b, 0x7e, 0x84, 0x8a, 0x92, 0x99, -0xa2, 0xa5, 0x9c, 0x91, 0x88, 0x7c, 0x7e, 0x81, 0x73, 0x70, 0x69, 0x61, 0x5e, 0x5c, 0x58, 0x5e, -0x5b, 0x5f, 0x67, 0x6a, 0x71, 0x76, 0x83, 0x8a, 0x8d, 0x8a, 0x81, 0x84, 0x89, 0x8c, 0x90, 0x8f, -0x8d, 0x85, 0x79, 0x75, 0x70, 0x72, 0x7e, 0x70, 0x68, 0x6d, 0x6e, 0x72, 0x7c, 0x87, 0x8b, 0x8a, -0x87, 0x7d, 0x72, 0x78, 0x82, 0x8a, 0x8d, 0x86, 0x77, 0x69, 0x67, 0x7a, 0x8c, 0x92, 0x98, 0xa3, -0xa2, 0x97, 0x89, 0x80, 0x7b, 0x88, 0x95, 0x8e, 0x92, 0x96, 0x98, 0x9b, 0x9c, 0x9a, 0x9e, 0x9b, -0x95, 0x93, 0x94, 0x94, 0x96, 0x93, 0x8c, 0x83, 0x78, 0x6d, 0x6f, 0x72, 0x6d, 0x68, 0x67, 0x66, -0x63, 0x5f, 0x59, 0x5a, 0x63, 0x6b, 0x67, 0x68, 0x70, 0x7a, 0x7a, 0x7c, 0x7a, 0x79, 0x7b, 0x7a, -0x76, 0x6c, 0x68, 0x70, 0x6a, 0x67, 0x6e, 0x74, 0x71, 0x78, 0x8e, 0x91, 0x87, 0x86, 0x8d, 0x8c, -0x84, 0x7b, 0x7e, 0x80, 0x72, 0x5f, 0x63, 0x71, 0x7e, 0x85, 0x88, 0x83, 0x74, 0x72, 0x70, 0x74, -0x82, 0x8d, 0x8f, 0x89, 0x82, 0x7b, 0x7a, 0x80, 0x88, 0x95, 0x96, 0x90, 0x90, 0x91, 0x8d, 0x8a, -0x8c, 0x8b, 0x8f, 0x93, 0x90, 0x98, 0xa9, 0xa6, 0x9a, 0x8f, 0x89, 0x83, 0x74, 0x6a, 0x68, 0x6e, -0x7a, 0x7a, 0x76, 0x6c, 0x67, 0x80, 0x88, 0x80, 0x83, 0x8d, 0x91, 0x91, 0x8d, 0x8b, 0x89, 0x8b, -0x8b, 0x83, 0x7a, 0x72, 0x6c, 0x76, 0x7c, 0x7b, 0x81, 0x87, 0x86, 0x89, 0x8e, 0x94, 0xa2, 0xb7, -0xb1, 0x97, 0x86, 0x81, 0x8a, 0x82, 0x7a, 0x80, 0x7d, 0x77, 0x78, 0x6d, 0x66, 0x6e, 0x75, 0x7b, -0x6a, 0x5c, 0x5d, 0x69, 0x79, 0x80, 0x7b, 0x77, 0x77, 0x76, 0x73, 0x74, 0x72, 0x77, 0x7a, 0x72, -0x63, 0x60, 0x62, 0x64, 0x6b, 0x6d, 0x69, 0x68, 0x6d, 0x82, 0x80, 0x75, 0x6e, 0x74, 0x7a, 0x67, -0x66, 0x6d, 0x67, 0x74, 0x8d, 0x8f, 0x8d, 0x8e, 0x89, 0x84, 0x78, 0x73, 0x78, 0x87, 0x85, 0x77, -0x74, 0x76, 0x76, 0x7c, 0x83, 0x7a, 0x71, 0x70, 0x72, 0x73, 0x78, 0x83, 0x9d, 0xa6, 0x91, 0x86, -0x86, 0x87, 0x9e, 0xad, 0xa6, 0xa2, 0xa2, 0xa0, 0x95, 0x90, 0x8d, 0x81, 0x7d, 0x94, 0x90, 0x83, -0x8a, 0x94, 0x9f, 0x9c, 0x88, 0x7d, 0x8c, 0x8f, 0x83, 0x89, 0x93, 0x8a, 0x7d, 0x73, 0x72, 0x78, -0x70, 0x6b, 0x75, 0x72, 0x6f, 0x71, 0x79, 0x83, 0x8a, 0x82, 0x91, 0x9a, 0x82, 0x6d, 0x63, 0x70, -0x77, 0x6a, 0x6b, 0x6a, 0x69, 0x71, 0x72, 0x6c, 0x78, 0x89, 0x88, 0x7b, 0x74, 0x6e, 0x6a, 0x6a, -0x80, 0x95, 0x8a, 0x7a, 0x6e, 0x5f, 0x5b, 0x64, 0x65, 0x65, 0x69, 0x6b, 0x67, 0x68, 0x6f, 0x78, -0x82, 0x86, 0x7d, 0x85, 0x89, 0x79, 0x76, 0x82, 0x79, 0x70, 0x64, 0x5e, 0x61, 0x6b, 0x73, 0x65, -0x6e, 0x85, 0x87, 0x87, 0x88, 0x8a, 0x8b, 0x8d, 0x99, 0xac, 0xbc, 0xba, 0xaf, 0xa4, 0x9d, 0xa0, -0x9a, 0x7e, 0x75, 0x7c, 0x77, 0x81, 0x9b, 0x9d, 0x95, 0x8b, 0x89, 0x85, 0x8f, 0x96, 0x86, 0x80, -0x7e, 0x77, 0x6b, 0x68, 0x6b, 0x65, 0x61, 0x70, 0x7b, 0x83, 0x8e, 0x90, 0x91, 0x8e, 0x85, 0x7d, -0x7a, 0x7c, 0x82, 0x8e, 0xa8, 0x9c, 0x91, 0x9b, 0x93, 0x88, 0x7b, 0x78, 0x74, 0x68, 0x74, 0x74, -0x63, 0x5d, 0x68, 0x69, 0x6a, 0x82, 0x86, 0x78, 0x77, 0x77, 0x77, 0x73, 0x70, 0x7b, 0x85, 0x83, -0x81, 0x87, 0x98, 0xac, 0xab, 0xad, 0xa0, 0x98, 0x99, 0x96, 0x97, 0x87, 0x71, 0x77, 0x6f, 0x6c, -0x75, 0x7c, 0x79, 0x71, 0x7e, 0x84, 0x83, 0x82, 0x81, 0x7e, 0x7a, 0x6f, 0x5e, 0x61, 0x68, 0x5f, -0x5f, 0x73, 0x76, 0x5f, 0x48, 0x4a, 0x53, 0x53, 0x55, 0x56, 0x48, 0x48, 0x62, 0x67, 0x62, 0x61, -0x64, 0x68, 0x7d, 0x91, 0x87, 0x81, 0x95, 0xa3, 0x9d, 0x83, 0x6d, 0x64, 0x62, 0x65, 0x6e, 0x71, -0x6e, 0x86, 0x8c, 0x8f, 0x8f, 0x89, 0x91, 0x9a, 0x92, 0x80, 0x73, 0x79, 0x78, 0x73, 0x82, 0x99, -0xa7, 0xab, 0xa3, 0x95, 0xa6, 0xbc, 0xbe, 0xb9, 0xb3, 0xae, 0xab, 0xa4, 0xa6, 0xa7, 0xae, 0xb4, -0xc5, 0xc8, 0xb6, 0xb3, 0xb6, 0xb1, 0xae, 0x9b, 0x7a, 0x73, 0x79, 0x83, 0x86, 0x82, 0x78, 0x81, -0x86, 0x7d, 0x84, 0x8c, 0x88, 0x77, 0x6f, 0x65, 0x59, 0x57, 0x5a, 0x5c, 0x68, 0x83, 0x8a, 0x7a, -0x68, 0x5f, 0x59, 0x57, 0x60, 0x6b, 0x6c, 0x5c, 0x4c, 0x54, 0x4d, 0x41, 0x3f, 0x40, 0x55, 0x6d, -0x68, 0x6f, 0x76, 0x78, 0x79, 0x73, 0x6a, 0x74, 0x80, 0x7e, 0x7e, 0x84, 0x85, 0x84, 0x78, 0x78, -0x81, 0x84, 0x83, 0x7e, 0x71, 0x62, 0x5c, 0x64, 0x6c, 0x7b, 0x8b, 0x90, 0x94, 0xa3, 0x9e, 0x98, -0x99, 0x93, 0x95, 0x99, 0x93, 0x89, 0x92, 0x99, 0x9b, 0x90, 0x8f, 0xa1, 0xa0, 0xa3, 0xa1, 0xa2, -0xaf, 0xb5, 0xa8, 0x99, 0x97, 0x8a, 0x7a, 0x73, 0x7a, 0x83, 0x83, 0x88, 0x88, 0x79, 0x70, 0x83, -0x9e, 0x9a, 0x8a, 0x7d, 0x79, 0x6b, 0x65, 0x78, 0x78, 0x79, 0x73, 0x62, 0x5b, 0x5d, 0x5f, 0x6b, -0x6e, 0x6b, 0x68, 0x67, 0x64, 0x64, 0x64, 0x66, 0x62, 0x77, 0x94, 0x8b, 0x84, 0x83, 0x87, 0x84, -0x72, 0x66, 0x73, 0x7e, 0x81, 0x8b, 0x7c, 0x68, 0x70, 0x88, 0x92, 0x8d, 0x8c, 0x8a, 0x8a, 0x80, -0x73, 0x72, 0x6c, 0x5a, 0x4d, 0x4f, 0x66, 0x6f, 0x72, 0x80, 0x8c, 0x8e, 0x86, 0x86, 0x92, 0x91, -0x8c, 0x93, 0x98, 0x94, 0x91, 0x88, 0x85, 0x87, 0x6c, 0x5a, 0x69, 0x74, 0x79, 0x7c, 0x6e, 0x67, -0x61, 0x64, 0x6d, 0x7b, 0x8b, 0x8e, 0x88, 0x9b, 0xa4, 0xa3, 0xa4, 0xac, 0xad, 0xa0, 0x94, 0x9f, -0xa1, 0x99, 0x9f, 0x9d, 0xa3, 0xad, 0xa5, 0x90, 0x9c, 0xae, 0xb3, 0xb5, 0x9d, 0x97, 0x94, 0x84, -0x6d, 0x5a, 0x67, 0x79, 0x83, 0x90, 0x9a, 0x91, 0x7b, 0x6c, 0x83, 0x97, 0x93, 0xa0, 0xaf, 0xa6, -0xa1, 0x9a, 0x90, 0x8d, 0x86, 0x87, 0x6e, 0x5a, 0x60, 0x61, 0x58, 0x59, 0x6b, 0x6a, 0x57, 0x46, -0x49, 0x56, 0x62, 0x7a, 0x86, 0x79, 0x71, 0x66, 0x5d, 0x54, 0x43, 0x3e, 0x46, 0x46, 0x4b, 0x43, -0x39, 0x3d, 0x46, 0x62, 0x68, 0x5d, 0x5b, 0x6f, 0x67, 0x4f, 0x48, 0x57, 0x68, 0x6b, 0x72, 0x82, -0x7a, 0x6d, 0x68, 0x80, 0x97, 0x94, 0x88, 0x81, 0x89, 0x86, 0x89, 0x9a, 0xb7, 0xbb, 0xae, 0xa5, -0x91, 0x8b, 0x84, 0x78, 0x86, 0x8f, 0x90, 0x89, 0x72, 0x68, 0x65, 0x60, 0x68, 0x7b, 0x90, 0x9c, -0xa1, 0x9c, 0x92, 0x8d, 0x92, 0x9d, 0x9e, 0x94, 0x8d, 0x81, 0x78, 0x92, 0xaf, 0xc4, 0xc1, 0xaa, -0x98, 0x9b, 0xa3, 0xa5, 0x99, 0xa7, 0xa2, 0x91, 0x8b, 0x84, 0x7d, 0x70, 0x6b, 0x6d, 0x72, 0x70, -0x7b, 0x85, 0x7b, 0x6e, 0x64, 0x69, 0x6d, 0x75, 0x77, 0x78, 0x73, 0x74, 0x94, 0xa5, 0xa2, 0x94, -0x81, 0x76, 0x67, 0x55, 0x5c, 0x70, 0x7a, 0x7a, 0x8a, 0x9d, 0xa2, 0xa2, 0x98, 0x9b, 0x9c, 0x9a, -0x99, 0x90, 0x8c, 0x83, 0x6e, 0x6a, 0x75, 0x79, 0x75, 0x6a, 0x6d, 0x71, 0x68, 0x55, 0x5c, 0x80, -0x8d, 0x84, 0x78, 0x64, 0x66, 0x74, 0x81, 0x8d, 0x9a, 0xa3, 0xa8, 0xa1, 0x9f, 0x8c, 0x81, 0x89, -0x91, 0x99, 0x99, 0x8a, 0x8e, 0x9c, 0xb4, 0xb4, 0xb1, 0xb4, 0x9b, 0x77, 0x5e, 0x5c, 0x60, 0x5b, -0x53, 0x4c, 0x42, 0x3b, 0x37, 0x33, 0x2f, 0x41, 0x61, 0x78, 0x83, 0x76, 0x6c, 0x75, 0x89, 0x96, -0x95, 0x88, 0x84, 0x84, 0x85, 0x7e, 0x77, 0x8f, 0xad, 0xb4, 0xab, 0x91, 0x7e, 0x79, 0x84, 0x89, -0x70, 0x5c, 0x68, 0x6b, 0x6e, 0x6f, 0x6b, 0x66, 0x64, 0x6b, 0x6f, 0x74, 0x76, 0x6f, 0x6b, 0x69, -0x74, 0x89, 0x9d, 0x97, 0x7e, 0x76, 0x77, 0x80, 0x87, 0x83, 0x76, 0x6f, 0x6f, 0x68, 0x56, 0x4c, -0x50, 0x67, 0x75, 0x7b, 0x80, 0x8b, 0x97, 0xb7, 0xc5, 0x9b, 0x77, 0x6f, 0x74, 0x6c, 0x4d, 0x37, -0x3f, 0x5f, 0x6d, 0x78, 0x79, 0x65, 0x50, 0x3b, 0x39, 0x5c, 0x81, 0x84, 0x75, 0x71, 0x6e, 0x6a, -0x73, 0x79, 0x8e, 0x90, 0x90, 0xa0, 0xa6, 0x9b, 0x8a, 0x80, 0x98, 0xb4, 0xb5, 0xa8, 0xa7, 0xc4, -0xda, 0xd4, 0xc6, 0xb8, 0xa9, 0xa9, 0x8b, 0x6e, 0x6c, 0x6e, 0x76, 0x78, 0x7e, 0x84, 0x80, 0x79, -0x7b, 0x8c, 0x9f, 0xa3, 0xa8, 0xa9, 0x99, 0x8f, 0x96, 0xa5, 0xab, 0xad, 0xa2, 0x9f, 0xa4, 0x93, -0x8a, 0x8c, 0x90, 0x93, 0x91, 0x88, 0x7b, 0x77, 0x86, 0x96, 0x83, 0x6e, 0x65, 0x64, 0x6d, 0x74, -0x74, 0x70, 0x81, 0x97, 0x90, 0x84, 0x79, 0x78, 0x6e, 0x57, 0x4a, 0x5a, 0x81, 0x92, 0x8d, 0x8a, -0x83, 0x7b, 0x79, 0x77, 0x71, 0x74, 0x7a, 0x72, 0x5b, 0x59, 0x66, 0x66, 0x67, 0x76, 0x8a, 0x86, -0x85, 0xa1, 0xbb, 0xa4, 0x7d, 0x68, 0x5d, 0x53, 0x50, 0x4d, 0x5b, 0x75, 0x80, 0x87, 0x8f, 0x93, -0x94, 0x79, 0x4d, 0x3c, 0x4c, 0x5f, 0x64, 0x59, 0x62, 0x62, 0x5b, 0x67, 0x83, 0x95, 0x80, 0x6a, -0x6d, 0x77, 0x6d, 0x69, 0x7b, 0x7d, 0x7c, 0x8a, 0x8e, 0xad, 0xd1, 0xcd, 0xaf, 0x9b, 0x86, 0x70, -0x4f, 0x3b, 0x38, 0x2e, 0x21, 0x16, 0x2a, 0x49, 0x56, 0x57, 0x59, 0x64, 0x63, 0x71, 0x9f, 0xab, -0xac, 0xa0, 0x95, 0x99, 0x9b, 0xa0, 0xa4, 0xa9, 0xb4, 0xb8, 0xc1, 0xc6, 0xbc, 0xb1, 0xa3, 0x8b, -0x86, 0x96, 0xb1, 0xc2, 0xb3, 0xa8, 0x9e, 0x94, 0x86, 0x7c, 0x8f, 0x8b, 0x87, 0x89, 0x8d, 0x96, -0x9b, 0x93, 0x75, 0x5a, 0x4d, 0x5e, 0x82, 0xa0, 0xae, 0xb2, 0xa1, 0x91, 0x95, 0x86, 0x6a, 0x5f, -0x5a, 0x5e, 0x56, 0x53, 0x6e, 0x80, 0x8d, 0x95, 0x9d, 0x9f, 0x9e, 0xb8, 0xbc, 0xaf, 0xb0, 0xa7, -0x9b, 0x84, 0x6f, 0x67, 0x6a, 0x68, 0x64, 0x64, 0x67, 0x75, 0x78, 0x63, 0x43, 0x2b, 0x27, 0x27, -0x37, 0x3b, 0x40, 0x54, 0x5a, 0x5b, 0x5e, 0x65, 0x5c, 0x60, 0x6f, 0x6c, 0x70, 0x75, 0x77, 0x75, -0x73, 0x6d, 0x71, 0x8a, 0xac, 0xaf, 0xa6, 0xa2, 0x93, 0x83, 0x6b, 0x4f, 0x46, 0x4f, 0x57, 0x5b, -0x68, 0x86, 0xa3, 0xac, 0xad, 0xa6, 0x9c, 0x99, 0xa3, 0xac, 0xb9, 0xb6, 0xa8, 0x95, 0x82, 0x7c, -0x77, 0x84, 0x91, 0x91, 0x8e, 0x91, 0x9e, 0xaf, 0xa8, 0x90, 0x79, 0x75, 0x85, 0x96, 0x7e, 0x7c, -0x88, 0x89, 0x84, 0x82, 0x92, 0x88, 0x7b, 0x74, 0x6a, 0x6a, 0x68, 0x73, 0x74, 0x69, 0x62, 0x65, -0x6f, 0x6e, 0x71, 0x7b, 0x81, 0x7a, 0x74, 0x6e, 0x59, 0x3e, 0x39, 0x37, 0x2c, 0x2e, 0x4c, 0x68, -0x83, 0x93, 0x9c, 0x94, 0x98, 0xb7, 0xac, 0x9f, 0x9d, 0x97, 0x91, 0x77, 0x6d, 0x7d, 0x8c, 0x91, -0x95, 0x9b, 0xa8, 0xb4, 0xb7, 0xa0, 0x81, 0x5e, 0x4c, 0x5a, 0x72, 0x74, 0x84, 0x8f, 0x91, 0x92, -0x85, 0x82, 0x6f, 0x6d, 0x7d, 0x84, 0x93, 0x9f, 0xa5, 0xa2, 0xa4, 0xa5, 0xac, 0xbd, 0xc7, 0xc4, -0xbe, 0xb7, 0xc2, 0xb4, 0x88, 0x65, 0x55, 0x4f, 0x3e, 0x34, 0x2a, 0x34, 0x4d, 0x57, 0x5c, 0x6e, -0x71, 0x6e, 0x89, 0x92, 0x97, 0xa2, 0x9a, 0x96, 0xa4, 0xa3, 0x98, 0xa1, 0xa0, 0x96, 0x91, 0x9b, -0xae, 0xb0, 0xa2, 0x97, 0x81, 0x7a, 0x8e, 0x8b, 0x79, 0x79, 0x90, 0xa5, 0xa0, 0xa9, 0xb9, 0xb5, -0xae, 0xa6, 0x8e, 0x7e, 0x84, 0x83, 0x70, 0x60, 0x5c, 0x67, 0x80, 0x80, 0x7a, 0x80, 0x88, 0x8b, -0x71, 0x54, 0x3c, 0x1b, 0x1b, 0x2e, 0x42, 0x53, 0x57, 0x60, 0x5f, 0x57, 0x56, 0x55, 0x53, 0x65, -0x62, 0x4c, 0x53, 0x5f, 0x53, 0x3b, 0x36, 0x42, 0x54, 0x4c, 0x3a, 0x36, 0x45, 0x6a, 0x7b, 0x6d, -0x59, 0x3c, 0x37, 0x4e, 0x51, 0x52, 0x5c, 0x66, 0x72, 0x80, 0x97, 0x95, 0x82, 0x7c, 0x82, 0x82, -0x82, 0x8c, 0x95, 0x96, 0x98, 0xa7, 0xbb, 0xd5, 0xce, 0xb1, 0x9a, 0x9c, 0xbc, 0xc3, 0xb6, 0xac, -0x97, 0x90, 0x89, 0x80, 0x7c, 0x7a, 0x87, 0x99, 0xa4, 0x9f, 0x9b, 0xaf, 0xb1, 0xa9, 0xa4, 0xad, -0xb2, 0x9c, 0x84, 0x81, 0x7c, 0x7d, 0x84, 0x8d, 0x9f, 0xab, 0xbd, 0xcd, 0xbd, 0x9f, 0x86, 0x7a, -0x8a, 0x87, 0x7e, 0x80, 0x81, 0x8c, 0x94, 0x98, 0x95, 0x8b, 0x88, 0x8a, 0x8e, 0x8e, 0x99, 0x9a, -0x91, 0x8e, 0x86, 0x85, 0x92, 0x89, 0x7c, 0x79, 0x89, 0xa3, 0x9f, 0x7e, 0x64, 0x4b, 0x3a, 0x35, -0x34, 0x3e, 0x47, 0x55, 0x69, 0x83, 0x97, 0xa1, 0xab, 0xac, 0x90, 0x75, 0x70, 0x78, 0x7e, 0x7e, -0x80, 0x86, 0x8e, 0x82, 0x67, 0x53, 0x47, 0x44, 0x57, 0x6b, 0x6f, 0x63, 0x4f, 0x52, 0x59, 0x55, -0x52, 0x57, 0x59, 0x68, 0x73, 0x7e, 0x84, 0x80, 0x82, 0x77, 0x74, 0x89, 0x95, 0x8f, 0x93, 0x97, -0xa1, 0xbc, 0xbd, 0xa8, 0x9d, 0x99, 0x9b, 0xab, 0xac, 0xa0, 0x86, 0x75, 0x7a, 0x76, 0x5e, 0x5e, -0x6a, 0x5f, 0x61, 0x6a, 0x61, 0x55, 0x5d, 0x66, 0x66, 0x69, 0x72, 0x7e, 0x80, 0x76, 0x76, 0x7d, -0x82, 0x8c, 0x8a, 0x9b, 0xa4, 0xa8, 0xb2, 0xa8, 0x9c, 0x98, 0x9e, 0x93, 0x83, 0x78, 0x7c, 0x76, -0x80, 0xa2, 0xaa, 0xa0, 0x95, 0x91, 0x7d, 0x6e, 0x73, 0x7e, 0x83, 0x80, 0x78, 0x80, 0x88, 0x7d, -0x6a, 0x5e, 0x50, 0x4c, 0x62, 0x71, 0x6c, 0x5e, 0x47, 0x42, 0x45, 0x45, 0x45, 0x4e, 0x56, 0x67, -0x83, 0x98, 0x9c, 0x90, 0x7a, 0x6f, 0x73, 0x7a, 0x74, 0x74, 0x8a, 0x95, 0x92, 0x87, 0x87, 0x79, -0x71, 0x75, 0x77, 0x78, 0x72, 0x62, 0x54, 0x57, 0x5e, 0x60, 0x5f, 0x66, 0x69, 0x6c, 0x66, 0x68, -0x69, 0x64, 0x6e, 0x7b, 0x87, 0x8d, 0x99, 0xa8, 0xa9, 0xab, 0xaf, 0xc0, 0xc2, 0xb5, 0xb7, 0xbf, -0xb3, 0xa8, 0xac, 0xb8, 0xb2, 0x99, 0x83, 0x86, 0x8e, 0x99, 0xa6, 0xaa, 0xae, 0xb4, 0xb7, 0xb5, -0xb4, 0xaa, 0x9b, 0x94, 0x8f, 0x90, 0x94, 0x91, 0x88, 0x8d, 0x8f, 0x80, 0x6c, 0x68, 0x65, 0x6a, -0x7c, 0x81, 0x7d, 0x75, 0x76, 0x6f, 0x62, 0x5b, 0x5b, 0x63, 0x6b, 0x7c, 0x9c, 0x99, 0x76, 0x5b, -0x49, 0x53, 0x6d, 0x71, 0x72, 0x78, 0x7a, 0x84, 0x90, 0x8b, 0x89, 0x84, 0x78, 0x67, 0x61, 0x63, -0x5a, 0x48, 0x46, 0x47, 0x40, 0x41, 0x48, 0x56, 0x5b, 0x56, 0x55, 0x62, 0x6d, 0x77, 0x74, 0x6d, -0x75, 0x88, 0x90, 0x8e, 0x8d, 0x90, 0x8c, 0x7d, 0x75, 0x81, 0x8f, 0x8e, 0x86, 0x80, 0x74, 0x7a, -0x82, 0x82, 0x72, 0x72, 0x77, 0x71, 0x6a, 0x66, 0x73, 0x73, 0x6f, 0x7b, 0x87, 0x85, 0x7e, 0x85, -0x98, 0xa0, 0xa8, 0xb1, 0xc0, 0xce, 0xc6, 0xab, 0x92, 0x91, 0x97, 0x9b, 0x9d, 0x9a, 0x9b, 0x99, -0x86, 0x6c, 0x6a, 0x65, 0x6c, 0x7d, 0x8b, 0x9d, 0x8c, 0x73, 0x6c, 0x6b, 0x6a, 0x71, 0x78, 0x74, -0x77, 0x8a, 0x9a, 0xaa, 0xbf, 0xbc, 0xa5, 0x9f, 0xa3, 0xa3, 0x9e, 0x9f, 0xa0, 0xa5, 0xb3, 0xa9, -0x9b, 0x97, 0x91, 0x96, 0x93, 0x8e, 0x84, 0x83, 0x88, 0x84, 0x7c, 0x7a, 0x7e, 0x8c, 0x8a, 0x87, -0x77, 0x6b, 0x73, 0x78, 0x84, 0x90, 0x83, 0x5f, 0x45, 0x40, 0x44, 0x3d, 0x3d, 0x4b, 0x44, 0x39, -0x3b, 0x4a, 0x5d, 0x60, 0x64, 0x6b, 0x71, 0x81, 0x7e, 0x70, 0x61, 0x68, 0x73, 0x6e, 0x74, 0x78, -0x7e, 0x7e, 0x6f, 0x5e, 0x53, 0x56, 0x65, 0x6c, 0x71, 0x69, 0x63, 0x6e, 0x6b, 0x64, 0x5c, 0x58, -0x5c, 0x5f, 0x77, 0x91, 0x77, 0x5e, 0x73, 0x7d, 0x74, 0x6b, 0x80, 0x93, 0x95, 0x9c, 0xa8, 0xc0, -0xc8, 0xb1, 0xa6, 0xaa, 0xb8, 0xb7, 0xad, 0x9d, 0x8b, 0x9e, 0xa5, 0x93, 0x79, 0x66, 0x65, 0x71, -0x82, 0x8c, 0x7e, 0x6a, 0x75, 0x83, 0x89, 0x86, 0x84, 0x77, 0x5a, 0x5a, 0x75, 0x8d, 0x99, 0xa4, -0xac, 0xa0, 0x8c, 0x88, 0x87, 0x84, 0x79, 0x6a, 0x81, 0x96, 0x8d, 0x76, 0x73, 0x8a, 0x8c, 0x89, -0x95, 0x8c, 0x82, 0x8b, 0x88, 0x75, 0x6e, 0x80, 0x93, 0x91, 0x91, 0x8e, 0x8b, 0x89, 0x83, 0x76, -0x62, 0x53, 0x47, 0x3e, 0x3c, 0x48, 0x53, 0x4c, 0x52, 0x55, 0x44, 0x50, 0x67, 0x7d, 0x90, 0x8e, -0x78, 0x7e, 0xa0, 0xa4, 0x8f, 0x76, 0x7d, 0x82, 0x80, 0x8f, 0x9c, 0xad, 0xa9, 0x98, 0x8d, 0x87, -0x8c, 0x91, 0x8c, 0x77, 0x79, 0x8f, 0x9d, 0x9e, 0x8d, 0x7c, 0x7c, 0x77, 0x81, 0x89, 0x84, 0x74, -0x6f, 0x8e, 0xa3, 0x9f, 0x9b, 0x93, 0x92, 0x9d, 0xaf, 0xc5, 0xd9, 0xe3, 0xd1, 0xb2, 0x9d, 0x9b, -0x98, 0x82, 0x6b, 0x62, 0x77, 0x93, 0x93, 0x74, 0x6a, 0x6f, 0x6c, 0x75, 0x77, 0x68, 0x63, 0x6b, -0x71, 0x6d, 0x72, 0x73, 0x69, 0x5f, 0x60, 0x6b, 0x7c, 0x85, 0x8c, 0x8b, 0x7e, 0x77, 0x7b, 0x87, -0x7e, 0x7d, 0x80, 0x87, 0x92, 0x82, 0x78, 0x7b, 0x7b, 0x7e, 0x6d, 0x54, 0x45, 0x4d, 0x6d, 0x77, -0x5e, 0x53, 0x58, 0x65, 0x6f, 0x70, 0x78, 0x8f, 0x8f, 0x81, 0x78, 0x70, 0x62, 0x4f, 0x37, 0x2e, -0x42, 0x4f, 0x51, 0x54, 0x4a, 0x43, 0x3e, 0x49, 0x61, 0x62, 0x53, 0x54, 0x74, 0x97, 0x96, 0x96, -0x95, 0x91, 0x88, 0x82, 0x8a, 0x92, 0xa3, 0xae, 0xa4, 0x96, 0x93, 0x94, 0x92, 0x87, 0x74, 0x75, -0x84, 0x94, 0x86, 0x79, 0x7b, 0x78, 0x74, 0x6e, 0x71, 0x7a, 0x82, 0x86, 0x99, 0xa4, 0xa9, 0xa9, -0xa8, 0xaa, 0xb2, 0xb1, 0xb3, 0xc4, 0xc3, 0xac, 0x96, 0x93, 0x9b, 0x89, 0x6d, 0x6a, 0x6d, 0x7b, -0x92, 0x92, 0x94, 0x96, 0x92, 0x8e, 0x87, 0x7b, 0x79, 0x84, 0x95, 0x95, 0x82, 0x6c, 0x62, 0x5c, -0x5a, 0x64, 0x74, 0x8f, 0x88, 0x82, 0x8f, 0x88, 0x7d, 0x77, 0x79, 0x85, 0x95, 0x93, 0x90, 0x8a, -0x77, 0x6f, 0x6a, 0x6c, 0x67, 0x56, 0x45, 0x50, 0x7b, 0x9c, 0xa2, 0x95, 0x8f, 0x8d, 0x86, 0x92, -0xa0, 0xa7, 0xb3, 0xb1, 0xa5, 0x98, 0x89, 0x7e, 0x6a, 0x54, 0x4b, 0x51, 0x52, 0x4b, 0x4d, 0x5f, -0x68, 0x63, 0x62, 0x6c, 0x72, 0x75, 0x7d, 0x8f, 0x9a, 0x9e, 0x9d, 0x9a, 0x8b, 0x7a, 0x76, 0x71, -0x73, 0x7d, 0x8c, 0x95, 0x7e, 0x73, 0x7e, 0x7a, 0x79, 0x7c, 0x7d, 0x76, 0x78, 0x82, 0x89, 0x90, -0x92, 0x7b, 0x61, 0x5d, 0x6c, 0x80, 0x7b, 0x7c, 0x84, 0x81, 0x74, 0x70, 0x80, 0x91, 0x9f, 0xa4, -0xa6, 0xa8, 0xa3, 0x9b, 0x9b, 0x99, 0x93, 0x92, 0x8f, 0x82, 0x73, 0x75, 0x82, 0x7a, 0x75, 0x6c, -0x63, 0x6b, 0x6b, 0x70, 0x77, 0x73, 0x6c, 0x5f, 0x57, 0x57, 0x4e, 0x5c, 0x76, 0x98, 0xac, 0x9b, -0x91, 0x94, 0x94, 0x93, 0x8f, 0x8f, 0x8e, 0x89, 0x75, 0x6f, 0x7d, 0x90, 0x9a, 0x97, 0x85, 0x6d, -0x69, 0x73, 0x7e, 0x8f, 0xae, 0xc6, 0xb8, 0xac, 0x9e, 0x8e, 0x8d, 0x89, 0x8b, 0x79, 0x76, 0x7a, -0x69, 0x58, 0x4c, 0x37, 0x2f, 0x37, 0x3f, 0x3d, 0x2c, 0x3b, 0x57, 0x64, 0x68, 0x59, 0x53, 0x60, -0x6e, 0x85, 0x95, 0x99, 0x95, 0x91, 0x8e, 0x8a, 0x8c, 0x88, 0x8f, 0x93, 0x8c, 0x9d, 0xa6, 0x98, -0x95, 0x91, 0x93, 0xa5, 0xa5, 0x92, 0x75, 0x62, 0x64, 0x66, 0x67, 0x5d, 0x48, 0x4d, 0x5d, 0x6c, -0x7c, 0x78, 0x7d, 0x81, 0x83, 0x87, 0x86, 0x94, 0x9e, 0xb6, 0xc3, 0xb6, 0xa3, 0x94, 0x94, 0x9d, -0x95, 0x86, 0x7a, 0x6f, 0x5f, 0x64, 0x80, 0x99, 0x92, 0x86, 0x7d, 0x6e, 0x82, 0x96, 0x9f, 0xa5, -0xad, 0xb4, 0xa8, 0x9f, 0x86, 0x5f, 0x49, 0x56, 0x78, 0x72, 0x61, 0x62, 0x55, 0x49, 0x49, 0x4e, -0x5a, 0x5a, 0x5a, 0x62, 0x69, 0x76, 0x83, 0x86, 0x8f, 0x88, 0x6b, 0x67, 0x76, 0x8d, 0xa3, 0xbb, -0xbd, 0xa5, 0x98, 0x90, 0x92, 0x9b, 0xae, 0xb4, 0x9d, 0x8a, 0x8a, 0x91, 0x8b, 0x74, 0x61, 0x61, -0x61, 0x5c, 0x4c, 0x34, 0x36, 0x3e, 0x44, 0x50, 0x5e, 0x65, 0x5e, 0x66, 0x84, 0x94, 0x9c, 0x8f, -0x8c, 0x98, 0x91, 0x7b, 0x73, 0x8b, 0x9a, 0x9b, 0x9f, 0xa2, 0x9b, 0x94, 0x91, 0x96, 0xa2, 0x9b, -0x82, 0x6f, 0x72, 0x7e, 0x82, 0x7d, 0x73, 0x5e, 0x63, 0x83, 0xa1, 0xa5, 0x97, 0xa0, 0x9b, 0x9a, -0x97, 0x8c, 0x82, 0x92, 0xb4, 0xbc, 0xc0, 0xb3, 0x99, 0x8a, 0x8e, 0x90, 0x87, 0x75, 0x6d, 0x7a, -0x8b, 0x9d, 0xa3, 0x9c, 0xa4, 0x9f, 0x90, 0x92, 0x9d, 0xa0, 0x91, 0x83, 0x7e, 0x78, 0x72, 0x63, -0x55, 0x55, 0x78, 0x85, 0x7a, 0x6a, 0x75, 0x89, 0x87, 0x84, 0x85, 0x87, 0x7b, 0x74, 0x74, 0x72, -0x67, 0x60, 0x6a, 0x78, 0x7d, 0x69, 0x4e, 0x53, 0x6b, 0x7a, 0x90, 0x8a, 0x82, 0x8a, 0x88, 0x77, -0x82, 0x96, 0x93, 0x7b, 0x61, 0x5c, 0x5e, 0x51, 0x3b, 0x24, 0x29, 0x34, 0x33, 0x31, 0x38, 0x46, -0x4b, 0x45, 0x4a, 0x54, 0x5e, 0x68, 0x81, 0x94, 0x9e, 0x9a, 0x93, 0x99, 0x9a, 0x8a, 0x6b, 0x6e, -0x8a, 0x94, 0xa2, 0xa8, 0x92, 0x76, 0x75, 0x7a, 0x7a, 0x78, 0x72, 0x6a, 0x5a, 0x57, 0x5c, 0x64, -0x6c, 0x60, 0x50, 0x5c, 0x77, 0x8a, 0x85, 0x77, 0x77, 0x82, 0x84, 0x87, 0x91, 0x98, 0xa6, 0xa0, -0xa1, 0xad, 0xa3, 0x9a, 0x9b, 0x9e, 0x8f, 0x89, 0x89, 0x87, 0x8a, 0x8d, 0x9a, 0x95, 0x8a, 0x92, -0xa2, 0x9f, 0x96, 0x91, 0x95, 0x92, 0x94, 0x93, 0x9c, 0xa0, 0x93, 0x7e, 0x8b, 0xa1, 0x9e, 0x8c, -0x79, 0x76, 0x77, 0x75, 0x6d, 0x6b, 0x72, 0x76, 0x74, 0x79, 0x89, 0x8e, 0x84, 0x80, 0x8d, 0x8a, -0x7e, 0x81, 0x93, 0xa1, 0xa2, 0xa2, 0x98, 0x8c, 0x84, 0x86, 0x8a, 0x9d, 0xa2, 0x99, 0x99, 0x8e, -0x76, 0x66, 0x67, 0x60, 0x60, 0x63, 0x64, 0x61, 0x54, 0x59, 0x69, 0x6e, 0x77, 0x81, 0x82, 0x88, -0x92, 0x9a, 0x9f, 0x9d, 0x8d, 0x8d, 0x91, 0x95, 0x93, 0x8a, 0x8c, 0x8a, 0x8c, 0x95, 0x9a, 0x90, -0x89, 0x7e, 0x78, 0x79, 0x76, 0x74, 0x69, 0x69, 0x75, 0x75, 0x71, 0x7a, 0x7e, 0x6d, 0x62, 0x61, -0x6a, 0x73, 0x75, 0x75, 0x87, 0x8a, 0x85, 0x87, 0x99, 0xa5, 0xa2, 0xa2, 0xa2, 0x92, 0x88, 0x86, -0x7c, 0x73, 0x66, 0x65, 0x6b, 0x6c, 0x84, 0x9f, 0x93, 0x86, 0x90, 0x96, 0x90, 0xa2, 0xab, 0x95, -0x80, 0x6c, 0x64, 0x62, 0x59, 0x4d, 0x4c, 0x5c, 0x5f, 0x5f, 0x64, 0x5c, 0x4a, 0x44, 0x4d, 0x56, -0x63, 0x68, 0x6c, 0x6c, 0x72, 0x84, 0x82, 0x82, 0x8d, 0x89, 0x72, 0x60, 0x6f, 0x74, 0x72, 0x76, -0x79, 0x7a, 0x76, 0x7a, 0x87, 0x9b, 0xa9, 0x9f, 0x99, 0x96, 0x90, 0x94, 0x8e, 0x76, 0x62, 0x5a, -0x59, 0x56, 0x51, 0x54, 0x52, 0x48, 0x4e, 0x5c, 0x69, 0x64, 0x65, 0x70, 0x79, 0x96, 0x9f, 0x91, -0x92, 0x9b, 0xa0, 0x9e, 0xa2, 0xac, 0xaf, 0xa3, 0x99, 0x8e, 0x8a, 0x83, 0x7c, 0x71, 0x68, 0x69, -0x66, 0x60, 0x6c, 0x77, 0x79, 0x7b, 0x78, 0x73, 0x7a, 0x98, 0xa3, 0x9c, 0x99, 0x90, 0x92, 0x9a, -0xa6, 0xad, 0xad, 0xaa, 0xa6, 0xa1, 0xac, 0x9e, 0x86, 0x85, 0x93, 0x9f, 0x90, 0x7b, 0x76, 0x73, -0x6a, 0x6f, 0x7c, 0x88, 0x95, 0x92, 0x88, 0x86, 0x93, 0x97, 0x95, 0x8a, 0x89, 0x8d, 0x8a, 0x86, -0x91, 0x9f, 0x9e, 0x87, 0x77, 0x64, 0x4d, 0x59, 0x61, 0x55, 0x50, 0x4d, 0x50, 0x51, 0x54, 0x60, -0x5b, 0x50, 0x5d, 0x68, 0x6f, 0x68, 0x6a, 0x72, 0x7c, 0x84, 0x8e, 0x99, 0x9c, 0x9c, 0xa1, 0xa9, -0xb4, 0xb8, 0xb1, 0x9e, 0x88, 0x77, 0x7d, 0x8a, 0x83, 0x72, 0x74, 0x74, 0x6e, 0x6d, 0x6b, 0x64, -0x6e, 0x77, 0x72, 0x6f, 0x7b, 0x87, 0x87, 0x83, 0x87, 0x86, 0x85, 0x8b, 0x96, 0xa2, 0x9d, 0x94, -0x89, 0x7c, 0x72, 0x67, 0x63, 0x65, 0x6c, 0x74, 0x75, 0x7a, 0x7a, 0x72, 0x6a, 0x6b, 0x75, 0x8b, -0x94, 0x7d, 0x6a, 0x6a, 0x6f, 0x82, 0x85, 0x73, 0x6e, 0x74, 0x78, 0x7e, 0x96, 0xa5, 0x9d, 0x8a, -0x7d, 0x84, 0x81, 0x87, 0x96, 0x98, 0x93, 0x90, 0x97, 0x97, 0x8d, 0x83, 0x7c, 0x7d, 0x83, 0x83, -0x84, 0x84, 0x82, 0x80, 0x89, 0x88, 0x89, 0x8b, 0x87, 0x84, 0x85, 0x92, 0x9e, 0xa4, 0xa9, 0x92, -0x68, 0x55, 0x65, 0x7d, 0x7d, 0x7b, 0x80, 0x80, 0x74, 0x70, 0x8f, 0x9a, 0xa1, 0xa2, 0x9d, 0x96, -0x89, 0x86, 0x89, 0x7a, 0x6c, 0x77, 0x82, 0x84, 0x88, 0x95, 0x9b, 0x88, 0x79, 0x6f, 0x5f, 0x53, -0x52, 0x54, 0x53, 0x4d, 0x50, 0x54, 0x4f, 0x48, 0x42, 0x3b, 0x48, 0x6e, 0x84, 0x72, 0x60, 0x5f, -0x69, 0x7e, 0x84, 0x95, 0xa1, 0xa2, 0xa0, 0xa1, 0xae, 0xae, 0xa2, 0x90, 0x74, 0x62, 0x63, 0x6b, -0x6b, 0x5f, 0x64, 0x6e, 0x71, 0x71, 0x66, 0x63, 0x65, 0x6f, 0x79, 0x7b, 0x72, 0x6a, 0x64, 0x68, -0x76, 0x73, 0x6d, 0x6b, 0x71, 0x71, 0x74, 0x84, 0x8d, 0x92, 0x91, 0x78, 0x76, 0x82, 0x8f, 0x93, -0x8d, 0x89, 0x81, 0x81, 0x73, 0x63, 0x75, 0x93, 0xa3, 0x9d, 0x98, 0x94, 0x88, 0x8b, 0x98, 0x90, -0x8d, 0xa0, 0xad, 0xae, 0xab, 0xb3, 0xb8, 0xa5, 0x97, 0x8e, 0x7b, 0x6e, 0x6b, 0x73, 0x75, 0x70, -0x6e, 0x6a, 0x61, 0x56, 0x5c, 0x72, 0x8b, 0x9e, 0x9e, 0x83, 0x6c, 0x60, 0x71, 0x7c, 0x74, 0x80, -0x94, 0x96, 0x8d, 0x96, 0xb5, 0xc3, 0xb2, 0x9b, 0x80, 0x72, 0x73, 0x77, 0x77, 0x6f, 0x71, 0x75, -0x78, 0x70, 0x5e, 0x56, 0x4f, 0x53, 0x64, 0x67, 0x5f, 0x5a, 0x60, 0x6e, 0x7c, 0x90, 0xa4, 0xa7, -0x9d, 0x97, 0xa6, 0xb7, 0xb5, 0xb3, 0xa0, 0x78, 0x71, 0x72, 0x70, 0x71, 0x76, 0x77, 0x75, 0x76, -0x6c, 0x62, 0x7e, 0xa1, 0xa9, 0xa2, 0x93, 0x88, 0x7c, 0x85, 0x93, 0x9b, 0x9f, 0x90, 0x91, 0x95, -0x8e, 0x8e, 0x8e, 0x80, 0x77, 0x76, 0x7e, 0x92, 0x90, 0x89, 0x8f, 0x98, 0x9b, 0x97, 0x90, 0x7c, -0x7c, 0x97, 0xad, 0xb2, 0xa8, 0x90, 0x75, 0x6b, 0x7d, 0x85, 0x83, 0x85, 0x86, 0x7c, 0x6e, 0x70, -0x8d, 0x97, 0x85, 0x79, 0x72, 0x64, 0x54, 0x53, 0x5b, 0x64, 0x63, 0x64, 0x67, 0x64, 0x5c, 0x69, -0x82, 0x87, 0x81, 0x75, 0x6d, 0x5e, 0x60, 0x6b, 0x6a, 0x7b, 0x89, 0x82, 0x72, 0x6b, 0x7b, 0x82, -0x77, 0x77, 0x69, 0x52, 0x4c, 0x52, 0x51, 0x4e, 0x4d, 0x4c, 0x4e, 0x4d, 0x4b, 0x4e, 0x62, 0x6f, -0x72, 0x6e, 0x66, 0x57, 0x4b, 0x59, 0x6a, 0x7e, 0xa5, 0xb0, 0x9f, 0x90, 0x8c, 0x90, 0x85, 0x7b, -0x77, 0x72, 0x7b, 0x8a, 0x8d, 0x7e, 0x84, 0x8f, 0x8b, 0x86, 0x77, 0x62, 0x65, 0x7e, 0x9b, 0xaa, -0x9e, 0x82, 0x71, 0x6e, 0x7a, 0x8c, 0x99, 0x9a, 0x83, 0x7c, 0x8c, 0x9c, 0xa8, 0xaf, 0xa5, 0x95, -0x99, 0xa2, 0x9a, 0x84, 0x77, 0x81, 0x8c, 0x8d, 0x8a, 0x78, 0x68, 0x73, 0x87, 0x92, 0x90, 0x92, -0x93, 0x96, 0x9d, 0x9d, 0x99, 0xaa, 0xb3, 0xaa, 0xa2, 0x9f, 0xa0, 0x9d, 0x96, 0x97, 0x9b, 0x8e, -0x74, 0x60, 0x5a, 0x62, 0x60, 0x5a, 0x58, 0x57, 0x57, 0x72, 0xa1, 0xb5, 0x9f, 0x82, 0x6b, 0x5f, -0x56, 0x5e, 0x6a, 0x76, 0x8d, 0x8f, 0x81, 0x7c, 0x86, 0x87, 0x82, 0x7e, 0x7b, 0x7d, 0x86, 0x91, -0x8e, 0x79, 0x76, 0x73, 0x69, 0x61, 0x57, 0x5b, 0x6c, 0x75, 0x7a, 0x8a, 0x8a, 0x6e, 0x5b, 0x57, -0x67, 0x7a, 0x88, 0x9a, 0x92, 0x84, 0x8b, 0x9f, 0xad, 0xa7, 0x97, 0x88, 0x82, 0x81, 0x73, 0x63, -0x6d, 0x89, 0x91, 0x90, 0x8d, 0x81, 0x77, 0x80, 0x96, 0xa2, 0x9d, 0x90, 0x8d, 0x94, 0x93, 0x90, -0x98, 0xa0, 0x89, 0x6a, 0x6d, 0x81, 0x84, 0x80, 0x7d, 0x90, 0x9e, 0x9f, 0xa6, 0x99, 0x89, 0x88, -0x7b, 0x77, 0x76, 0x73, 0x6e, 0x80, 0x9d, 0xaa, 0xa2, 0x94, 0x86, 0x7b, 0x72, 0x72, 0x7b, 0x88, -0x93, 0x8d, 0x81, 0x80, 0x77, 0x66, 0x5e, 0x58, 0x5c, 0x6a, 0x70, 0x66, 0x50, 0x4a, 0x5d, 0x66, -0x5a, 0x52, 0x4e, 0x58, 0x73, 0x96, 0x9c, 0x9a, 0x87, 0x68, 0x5b, 0x53, 0x59, 0x58, 0x57, 0x5f, -0x55, 0x52, 0x65, 0x7b, 0x82, 0x7d, 0x75, 0x70, 0x6b, 0x68, 0x62, 0x63, 0x70, 0x7c, 0x7e, 0x78, -0x6d, 0x5f, 0x61, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x7a, 0x82, 0x80, 0x84, 0x9d, 0xb7, 0xbb, 0x9f, -0x94, 0x9d, 0xa6, 0xa7, 0x9c, 0xaa, 0xae, 0xa3, 0x9b, 0x87, 0x7d, 0x76, 0x71, 0x72, 0x73, 0x70, -0x72, 0x84, 0x9f, 0xb1, 0xa8, 0x91, 0x7c, 0x75, 0x76, 0x81, 0x8e, 0xa5, 0xa8, 0x95, 0x84, 0x8c, -0x92, 0x85, 0x70, 0x67, 0x6f, 0x7a, 0x88, 0x8c, 0x6d, 0x59, 0x5d, 0x67, 0x64, 0x4f, 0x4b, 0x5b, -0x75, 0x93, 0xa2, 0xa7, 0x94, 0x84, 0x82, 0x83, 0x86, 0x83, 0x83, 0x88, 0x90, 0x91, 0xa1, 0xa8, -0x9f, 0x8f, 0x83, 0x83, 0x80, 0x73, 0x5d, 0x5d, 0x6b, 0x7a, 0x83, 0x7e, 0x6e, 0x67, 0x70, 0x88, -0x9f, 0x98, 0x80, 0x76, 0x86, 0x8a, 0x75, 0x6d, 0x81, 0x91, 0x8b, 0x80, 0x7e, 0x87, 0x8b, 0x8c, -0x8a, 0x96, 0x92, 0x7e, 0x6b, 0x5f, 0x5e, 0x5a, 0x51, 0x56, 0x54, 0x49, 0x54, 0x6f, 0x82, 0x81, -0x78, 0x6c, 0x6a, 0x72, 0x79, 0x82, 0x91, 0xa8, 0xb6, 0xbf, 0xaa, 0x94, 0x97, 0x99, 0x89, 0x7c, -0x87, 0x90, 0x97, 0x8f, 0x77, 0x68, 0x6b, 0x76, 0x77, 0x6e, 0x72, 0x7e, 0x95, 0xad, 0xbd, 0xc7, -0xbb, 0xac, 0x9e, 0x9c, 0x98, 0x94, 0x95, 0x97, 0x91, 0x8b, 0x9e, 0xb2, 0xac, 0x9c, 0x97, 0x94, -0x8f, 0x93, 0x95, 0x81, 0x78, 0x85, 0x92, 0x80, 0x61, 0x62, 0x6f, 0x85, 0x91, 0x90, 0x7a, 0x6e, -0x77, 0x7d, 0x75, 0x6d, 0x72, 0x6f, 0x67, 0x61, 0x5f, 0x6b, 0x6a, 0x62, 0x6f, 0x89, 0x87, 0x76, -0x63, 0x43, 0x34, 0x3b, 0x46, 0x52, 0x49, 0x41, 0x4f, 0x6e, 0x8d, 0x98, 0x7d, 0x62, 0x64, 0x70, -0x71, 0x69, 0x6c, 0x79, 0x7c, 0x7b, 0x76, 0x69, 0x68, 0x67, 0x6b, 0x76, 0x82, 0x89, 0x85, 0x76, -0x61, 0x61, 0x6f, 0x72, 0x68, 0x60, 0x65, 0x73, 0x88, 0x92, 0x8f, 0x8c, 0x80, 0x7a, 0x79, 0x7c, -0x77, 0x75, 0x7d, 0x98, 0xa4, 0x91, 0x9b, 0xaf, 0xa6, 0x8e, 0x88, 0x89, 0x87, 0x89, 0x86, 0x7e, -0x76, 0x72, 0x72, 0x6b, 0x61, 0x64, 0x6f, 0x7a, 0x87, 0x8c, 0x86, 0x8a, 0x8f, 0x90, 0x8a, 0x84, -0x8b, 0x90, 0x8e, 0x84, 0x7a, 0x85, 0x8c, 0x8d, 0x9c, 0xa8, 0x9b, 0x89, 0x82, 0x71, 0x58, 0x57, -0x60, 0x61, 0x4d, 0x48, 0x5e, 0x77, 0x8b, 0x90, 0x8b, 0x78, 0x75, 0x83, 0x98, 0xa2, 0xa1, 0x9d, -0x97, 0x97, 0x95, 0x98, 0x98, 0x86, 0x81, 0x8b, 0x8f, 0x8d, 0x84, 0x6c, 0x48, 0x47, 0x5d, 0x67, -0x66, 0x6a, 0x6b, 0x78, 0x8b, 0xa6, 0xbb, 0xac, 0x92, 0x8b, 0x81, 0x71, 0x70, 0x68, 0x73, 0x86, -0x8b, 0x98, 0xa0, 0x96, 0x8f, 0x91, 0x9b, 0xa8, 0x9f, 0x92, 0x8c, 0x87, 0x90, 0x8f, 0x82, 0x7d, -0x78, 0x77, 0x81, 0x84, 0x85, 0x7a, 0x75, 0x7c, 0x82, 0x83, 0x82, 0x7e, 0x7d, 0x82, 0x8e, 0x8d, -0x89, 0x8b, 0x8a, 0x85, 0x88, 0x92, 0x82, 0x6e, 0x5f, 0x50, 0x51, 0x52, 0x55, 0x5e, 0x6a, 0x7b, -0x91, 0x98, 0x98, 0x98, 0x9f, 0xaa, 0xa4, 0x9c, 0xa4, 0xa4, 0x9b, 0x97, 0x98, 0x8e, 0x7c, 0x80, -0x7d, 0x76, 0x76, 0x7b, 0x83, 0x7e, 0x74, 0x72, 0x60, 0x5a, 0x68, 0x6d, 0x64, 0x5b, 0x5c, 0x67, -0x75, 0x90, 0xa7, 0xa3, 0x8b, 0x75, 0x6a, 0x6c, 0x71, 0x6c, 0x66, 0x67, 0x65, 0x7d, 0x97, 0x86, -0x73, 0x6c, 0x77, 0x82, 0x7b, 0x72, 0x62, 0x52, 0x57, 0x5f, 0x5e, 0x62, 0x60, 0x5d, 0x63, 0x6b, -0x84, 0x7d, 0x70, 0x74, 0x74, 0x75, 0x6d, 0x6c, 0x6e, 0x75, 0x86, 0x92, 0x9d, 0x95, 0x8b, 0x95, -0xab, 0xba, 0xaa, 0x8d, 0x72, 0x69, 0x73, 0x79, 0x6f, 0x68, 0x6a, 0x72, 0x7e, 0x83, 0x84, 0x7e, -0x75, 0x7c, 0x85, 0x87, 0x8f, 0x92, 0x92, 0x90, 0x97, 0xa9, 0xa8, 0xa9, 0x99, 0x8b, 0x86, 0x7c, -0x72, 0x68, 0x62, 0x60, 0x61, 0x66, 0x61, 0x56, 0x5c, 0x6a, 0x6f, 0x76, 0x7a, 0x84, 0x92, 0x98, -0x8e, 0x7e, 0x71, 0x74, 0x80, 0x79, 0x70, 0x74, 0x72, 0x87, 0x99, 0x8a, 0x82, 0x7b, 0x84, 0x88, -0x83, 0x7e, 0x87, 0x86, 0x87, 0x86, 0x83, 0x85, 0x76, 0x6d, 0x6c, 0x79, 0x90, 0x96, 0x90, 0x8e, -0x8d, 0x94, 0x9e, 0xa9, 0xa3, 0x96, 0x96, 0xa1, 0xb8, 0xaf, 0xa0, 0xa0, 0xa0, 0x9b, 0x85, 0x6e, -0x55, 0x4b, 0x51, 0x54, 0x4c, 0x4f, 0x59, 0x64, 0x6c, 0x73, 0x83, 0x8e, 0x87, 0x90, 0x97, 0x91, -0x8f, 0x89, 0x82, 0x72, 0x7a, 0x8a, 0x96, 0x93, 0x76, 0x6f, 0x78, 0x82, 0x84, 0x82, 0x73, 0x67, -0x71, 0x88, 0x87, 0x75, 0x6e, 0x69, 0x67, 0x69, 0x76, 0x7e, 0x7b, 0x76, 0x6f, 0x69, 0x68, 0x6a, -0x6c, 0x5d, 0x57, 0x71, 0x8c, 0xa7, 0xb0, 0xa1, 0x9a, 0x92, 0x88, 0x82, 0x7e, 0x80, 0x87, 0x92, -0x8f, 0x7d, 0x76, 0x7e, 0x82, 0x85, 0x8b, 0x8f, 0x96, 0xa5, 0xb1, 0xb2, 0xad, 0xa6, 0x9f, 0x97, -0x82, 0x7b, 0x7b, 0x83, 0x98, 0x98, 0x98, 0x9e, 0xa2, 0x95, 0x79, 0x6b, 0x68, 0x70, 0x71, 0x65, -0x5b, 0x65, 0x6f, 0x76, 0x7a, 0x7a, 0x84, 0x86, 0x83, 0x81, 0x7b, 0x79, 0x83, 0x8f, 0x8c, 0x83, -0x80, 0x85, 0x9c, 0xa3, 0x92, 0x84, 0x82, 0x7b, 0x6b, 0x64, 0x61, 0x5b, 0x5c, 0x66, 0x60, 0x5d, -0x62, 0x63, 0x68, 0x72, 0x83, 0x8a, 0x8d, 0x88, 0x7d, 0x79, 0x81, 0x87, 0x77, 0x5a, 0x55, 0x6f, -0x90, 0xa5, 0x98, 0x88, 0x7b, 0x78, 0x7c, 0x7d, 0x7b, 0x6f, 0x74, 0x8b, 0x90, 0x85, 0x7b, 0x73, -0x6b, 0x6a, 0x68, 0x6b, 0x6c, 0x63, 0x6a, 0x74, 0x7e, 0x8a, 0x8b, 0x81, 0x76, 0x78, 0x81, 0x96, -0xa0, 0xa1, 0xa4, 0x9c, 0x91, 0x76, 0x58, 0x51, 0x5e, 0x67, 0x61, 0x48, 0x3f, 0x49, 0x5e, 0x71, -0x7e, 0x80, 0x75, 0x73, 0x81, 0x90, 0x97, 0x99, 0x99, 0x91, 0x85, 0x78, 0x74, 0x74, 0x7a, 0x80, -0x7a, 0x7e, 0x86, 0x7c, 0x6f, 0x6c, 0x6f, 0x73, 0x7c, 0x80, 0x7c, 0x7d, 0x7d, 0x78, 0x7d, 0x8c, -0x9b, 0xa3, 0xa1, 0x9a, 0x8f, 0x89, 0x8b, 0x8c, 0x7e, 0x6e, 0x71, 0x83, 0xa4, 0xb7, 0xb0, 0xa9, -0x98, 0x82, 0x72, 0x6e, 0x6e, 0x6a, 0x6e, 0x76, 0x7b, 0x77, 0x79, 0x7c, 0x7a, 0x7e, 0x80, 0x7d, -0x81, 0x86, 0x8f, 0x98, 0xa1, 0x9f, 0x8e, 0x7b, 0x73, 0x80, 0x8a, 0x92, 0x97, 0x99, 0x96, 0x86, -0x80, 0x70, 0x69, 0x6a, 0x6d, 0x79, 0x78, 0x6c, 0x6c, 0x72, 0x7a, 0x7e, 0x85, 0x81, 0x75, 0x69, -0x6e, 0x81, 0x8c, 0x93, 0xa0, 0xa0, 0x96, 0x8e, 0x8e, 0x97, 0xa6, 0xa5, 0xa4, 0xa6, 0x9d, 0x86, -0x73, 0x79, 0x8c, 0x91, 0x86, 0x7e, 0x7d, 0x71, 0x69, 0x72, 0x81, 0x94, 0x94, 0x90, 0x9c, 0xa5, -0xa0, 0x9b, 0x96, 0x8d, 0x79, 0x66, 0x70, 0x7e, 0x87, 0x8f, 0x8c, 0x8e, 0x8b, 0x79, 0x69, 0x65, -0x67, 0x66, 0x73, 0x81, 0x7d, 0x77, 0x76, 0x76, 0x6c, 0x65, 0x6f, 0x7b, 0x7e, 0x7a, 0x84, 0x87, -0x86, 0x83, 0x77, 0x6e, 0x6d, 0x71, 0x6f, 0x7c, 0x8c, 0x8d, 0x89, 0x79, 0x70, 0x5e, 0x4a, 0x48, -0x49, 0x45, 0x3a, 0x3c, 0x4c, 0x5f, 0x6f, 0x78, 0x7e, 0x7b, 0x6d, 0x70, 0x7d, 0x89, 0x8d, 0x8e, -0x91, 0x88, 0x75, 0x76, 0x8b, 0x92, 0x91, 0x8e, 0x8a, 0x8a, 0x7e, 0x70, 0x68, 0x6f, 0x76, 0x77, -0x74, 0x75, 0x7a, 0x76, 0x74, 0x7e, 0x8e, 0x95, 0x8d, 0x84, 0x8d, 0x87, 0x79, 0x78, 0x81, 0x83, -0x7a, 0x72, 0x78, 0x77, 0x85, 0x97, 0x94, 0x97, 0x8d, 0x6c, 0x4f, 0x4e, 0x60, 0x6f, 0x77, 0x75, -0x72, 0x69, 0x66, 0x70, 0x70, 0x70, 0x72, 0x70, 0x73, 0x7d, 0x8f, 0x9a, 0x97, 0x8d, 0x82, 0x7a, -0x77, 0x7a, 0x7b, 0x83, 0x84, 0x88, 0x92, 0x98, 0x9f, 0x91, 0x82, 0x83, 0x83, 0x92, 0x9b, 0x99, -0x9c, 0x99, 0x92, 0x8c, 0x93, 0xa0, 0x9e, 0x99, 0x9d, 0xa2, 0x99, 0x95, 0x9b, 0x9b, 0x91, 0x8d, -0x92, 0x98, 0x98, 0x96, 0x9b, 0x98, 0x88, 0x76, 0x74, 0x78, 0x7a, 0x71, 0x5f, 0x50, 0x4c, 0x51, -0x61, 0x69, 0x6b, 0x68, 0x5e, 0x5e, 0x85, 0x8a, 0x77, 0x6f, 0x6c, 0x68, 0x5c, 0x5b, 0x71, 0x76, -0x7b, 0x88, 0x95, 0x98, 0x89, 0x79, 0x6d, 0x6c, 0x71, 0x77, 0x80, 0x83, 0x84, 0x84, 0x8a, 0x95, -0x90, 0x8d, 0x89, 0x87, 0x89, 0x8c, 0x8c, 0x91, 0x97, 0x97, 0x91, 0x88, 0x86, 0x88, 0x88, 0x9c, -0xa1, 0x9f, 0x9d, 0x95, 0x89, 0x6c, 0x63, 0x6a, 0x6d, 0x75, 0x7c, 0x78, 0x76, 0x7b, 0x83, 0x89, -0x8d, 0x8c, 0x86, 0x87, 0x8f, 0x95, 0x97, 0x91, 0x95, 0x94, 0x88, 0x84, 0x85, 0x8a, 0x7d, 0x6c, -0x71, 0x73, 0x6f, 0x63, 0x61, 0x65, 0x69, 0x63, 0x6a, 0x6f, 0x6d, 0x73, 0x74, 0x66, 0x5f, 0x61, -0x6a, 0x76, 0x8d, 0x93, 0x8a, 0x7d, 0x7b, 0x85, 0x7e, 0x6d, 0x6f, 0x74, 0x7c, 0x82, 0x8b, 0x8f, -0x82, 0x74, 0x68, 0x67, 0x67, 0x69, 0x6f, 0x6b, 0x6a, 0x77, 0x89, 0x92, 0x88, 0x80, 0x82, 0x85, -0x8a, 0xa5, 0xb2, 0xad, 0xa2, 0x8f, 0x80, 0x78, 0x7e, 0x8a, 0x8a, 0x8d, 0x8e, 0x8b, 0x82, 0x7d, -0x7e, 0x69, 0x5c, 0x60, 0x66, 0x69, 0x6a, 0x68, 0x74, 0x7d, 0x80, 0x80, 0x80, 0x79, 0x73, 0x72, -0x70, 0x6e, 0x72, 0x76, 0x86, 0x8b, 0x88, 0x8e, 0x8f, 0x96, 0xa3, 0x9e, 0x98, 0x8f, 0x7c, 0x69, -0x66, 0x74, 0x74, 0x60, 0x57, 0x5e, 0x67, 0x6b, 0x69, 0x65, 0x60, 0x5a, 0x63, 0x73, 0x85, 0x87, -0x89, 0x89, 0x87, 0x90, 0x8d, 0x82, 0x85, 0x87, 0x93, 0x8f, 0x8b, 0x8d, 0x81, 0x75, 0x67, 0x61, -0x63, 0x65, 0x73, 0x91, 0x9b, 0x9d, 0xa0, 0x97, 0x84, 0x79, 0x84, 0x8e, 0x8d, 0x8d, 0x99, 0xa2, -0x98, 0x89, 0x8c, 0x8a, 0x8a, 0x8f, 0x92, 0x96, 0x8d, 0x8c, 0x91, 0x8c, 0x8d, 0x7c, 0x71, 0x6d, -0x69, 0x69, 0x5f, 0x5f, 0x70, 0x79, 0x7d, 0x7a, 0x73, 0x6d, 0x69, 0x6f, 0x85, 0x88, 0x7c, 0x74, -0x79, 0x7c, 0x79, 0x8a, 0x93, 0x95, 0x8c, 0x87, 0x8c, 0x84, 0x7a, 0x7a, 0x78, 0x79, 0x7b, 0x6f, -0x6a, 0x6f, 0x7c, 0x8a, 0x88, 0x82, 0x79, 0x75, 0x78, 0x7e, 0x8a, 0x7d, 0x76, 0x7b, 0x83, 0x8c, -0x81, 0x73, 0x76, 0x7e, 0x9e, 0xb6, 0xb0, 0xa0, 0x84, 0x75, 0x6f, 0x66, 0x6f, 0x78, 0x79, 0x7e, -0x8e, 0x97, 0x98, 0x90, 0x86, 0x7d, 0x7a, 0x88, 0x92, 0x96, 0x9f, 0xa8, 0xa6, 0x9c, 0x9b, 0x94, -0x93, 0x92, 0x91, 0x8f, 0x79, 0x76, 0x80, 0x7e, 0x83, 0x75, 0x5f, 0x5a, 0x5e, 0x69, 0x7b, 0x7e, -0x74, 0x6e, 0x76, 0x7e, 0x78, 0x79, 0x78, 0x73, 0x75, 0x7e, 0x84, 0x8a, 0x96, 0x99, 0x90, 0x93, -0x9f, 0xa2, 0x97, 0x8f, 0x94, 0x8f, 0x83, 0x83, 0x82, 0x79, 0x6f, 0x61, 0x5f, 0x63, 0x71, 0x7c, -0x79, 0x70, 0x69, 0x62, 0x67, 0x76, 0x93, 0x9c, 0x8f, 0x82, 0x7c, 0x86, 0x7b, 0x6f, 0x74, 0x81, -0x8c, 0x88, 0x80, 0x74, 0x64, 0x5a, 0x5d, 0x57, 0x5f, 0x71, 0x73, 0x77, 0x88, 0x94, 0x93, 0x83, -0x79, 0x72, 0x6a, 0x66, 0x69, 0x6e, 0x6e, 0x76, 0x77, 0x76, 0x7c, 0x78, 0x76, 0x7a, 0x83, 0x8d, -0x8f, 0x86, 0x79, 0x6e, 0x74, 0x6a, 0x57, 0x5c, 0x5b, 0x52, 0x51, 0x57, 0x62, 0x6e, 0x75, 0x79, -0x6c, 0x68, 0x6c, 0x6d, 0x7b, 0x92, 0x9d, 0xa0, 0xa6, 0xa6, 0xa6, 0xa5, 0xa1, 0xa6, 0x9d, 0x8a, -0x87, 0x8a, 0x8a, 0x8d, 0x8a, 0x82, 0x7e, 0x77, 0x85, 0x9c, 0x99, 0x88, 0x74, 0x6e, 0x6b, 0x68, -0x73, 0x7c, 0x88, 0x86, 0x83, 0x86, 0x8b, 0x91, 0x85, 0x73, 0x7d, 0x9b, 0xa3, 0x9e, 0x96, 0x8f, -0x80, 0x6e, 0x71, 0x75, 0x72, 0x71, 0x6f, 0x72, 0x77, 0x81, 0x85, 0x7b, 0x77, 0x6e, 0x67, 0x69, -0x7d, 0x9a, 0xab, 0xa0, 0x8c, 0x87, 0x8d, 0x88, 0x81, 0x80, 0x7e, 0x78, 0x71, 0x71, 0x74, 0x70, -0x74, 0x71, 0x65, 0x6b, 0x6e, 0x67, 0x69, 0x6f, 0x84, 0x93, 0x90, 0x8e, 0x83, 0x74, 0x6a, 0x73, -0x83, 0x84, 0x89, 0x96, 0xa3, 0xa0, 0xa0, 0xa1, 0xa5, 0xb3, 0xb8, 0xb5, 0x9f, 0x8b, 0x88, 0x8c, -0x8c, 0x89, 0x84, 0x73, 0x74, 0x7b, 0x7d, 0x82, 0x78, 0x73, 0x75, 0x72, 0x79, 0x83, 0x94, 0x9a, -0x9b, 0xa3, 0xa7, 0xa3, 0x94, 0x89, 0x8b, 0x99, 0x9d, 0x8c, 0x77, 0x6c, 0x61, 0x5c, 0x65, 0x6c, -0x6c, 0x69, 0x6e, 0x84, 0x9b, 0x97, 0x91, 0x88, 0x82, 0x79, 0x74, 0x77, 0x82, 0x8d, 0x8f, 0x8f, -0x8f, 0x8b, 0x88, 0x7b, 0x70, 0x78, 0x81, 0x7b, 0x7c, 0x80, 0x7c, 0x76, 0x78, 0x72, 0x6c, 0x5f, -0x4f, 0x4f, 0x54, 0x52, 0x68, 0x77, 0x74, 0x6e, 0x64, 0x5a, 0x59, 0x70, 0x8d, 0x9a, 0x8e, 0x88, -0x88, 0x86, 0x89, 0x8a, 0x8e, 0x8d, 0x7a, 0x70, 0x6b, 0x61, 0x61, 0x68, 0x6d, 0x6c, 0x65, 0x59, -0x5b, 0x64, 0x6d, 0x7b, 0x70, 0x64, 0x63, 0x60, 0x5b, 0x6a, 0x89, 0x8c, 0x7b, 0x79, 0x7b, 0x79, -0x71, 0x6f, 0x7b, 0x92, 0x9c, 0x99, 0x9a, 0x84, 0x6d, 0x6b, 0x74, 0x7e, 0x7c, 0x70, 0x69, 0x73, -0x82, 0x90, 0x93, 0x87, 0x82, 0x78, 0x70, 0x7b, 0x95, 0xa8, 0xad, 0xac, 0xaf, 0xa3, 0x92, 0x83, -0x80, 0x8b, 0x92, 0x91, 0x8f, 0x8c, 0x83, 0x84, 0x97, 0x97, 0x8f, 0x76, 0x62, 0x69, 0x77, 0x80, -0x84, 0x7e, 0x6b, 0x63, 0x5f, 0x5b, 0x64, 0x73, 0x82, 0x8b, 0x8f, 0x96, 0x96, 0x95, 0x93, 0x96, -0x9f, 0x9f, 0x92, 0x8b, 0x8c, 0x89, 0x85, 0x85, 0x84, 0x80, 0x6c, 0x55, 0x57, 0x5a, 0x58, 0x63, -0x60, 0x5e, 0x5d, 0x58, 0x59, 0x74, 0x9a, 0xa3, 0xa0, 0x8f, 0x87, 0x7e, 0x77, 0x78, 0x89, 0x99, -0x8e, 0x7e, 0x84, 0x83, 0x76, 0x7a, 0x86, 0x8b, 0x85, 0x75, 0x78, 0x88, 0x91, 0x9f, 0xa0, 0x8f, -0x7c, 0x6a, 0x65, 0x77, 0x8a, 0x95, 0x99, 0x95, 0x9b, 0x94, 0x8c, 0x88, 0x8d, 0x98, 0x9f, 0xa0, -0xa0, 0xa9, 0x98, 0x90, 0xa1, 0xa0, 0x91, 0x76, 0x5f, 0x61, 0x65, 0x6f, 0x82, 0x83, 0x6f, 0x63, -0x5c, 0x5d, 0x6e, 0x84, 0x8f, 0x94, 0x9c, 0xa6, 0x9d, 0x91, 0x8a, 0x8f, 0x97, 0x8e, 0x7a, 0x6d, -0x66, 0x64, 0x65, 0x6c, 0x6b, 0x66, 0x53, 0x46, 0x54, 0x65, 0x7c, 0x7d, 0x6d, 0x63, 0x60, 0x60, -0x61, 0x76, 0x8e, 0x88, 0x7e, 0x7b, 0x79, 0x73, 0x71, 0x74, 0x86, 0x92, 0x84, 0x79, 0x78, 0x77, -0x71, 0x70, 0x76, 0x79, 0x73, 0x6a, 0x6c, 0x77, 0x81, 0x86, 0x89, 0x83, 0x77, 0x6c, 0x6f, 0x80, -0x9b, 0xa7, 0xac, 0xb8, 0xa9, 0x90, 0x88, 0x8e, 0x97, 0x9e, 0x98, 0x86, 0x7e, 0x85, 0x82, 0x85, -0x94, 0x90, 0x82, 0x72, 0x68, 0x74, 0x7c, 0x83, 0x92, 0x8d, 0x78, 0x6a, 0x62, 0x65, 0x6e, 0x79, -0x7d, 0x7d, 0x7a, 0x82, 0x83, 0x80, 0x84, 0x8e, 0x99, 0x98, 0x8b, 0x8e, 0xa0, 0x94, 0x83, 0x81, -0x82, 0x7d, 0x63, 0x4a, 0x50, 0x60, 0x72, 0x7b, 0x70, 0x64, 0x5c, 0x5b, 0x62, 0x87, 0xad, 0xa5, -0x92, 0x8d, 0x89, 0x80, 0x77, 0x76, 0x86, 0x88, 0x78, 0x72, 0x6f, 0x66, 0x60, 0x5e, 0x65, 0x70, -0x6e, 0x66, 0x68, 0x74, 0x8c, 0x9d, 0x90, 0x79, 0x67, 0x61, 0x65, 0x6d, 0x79, 0x7c, 0x7b, 0x88, -0x8c, 0x7e, 0x79, 0x80, 0x87, 0x90, 0x97, 0x99, 0x98, 0x91, 0x88, 0x8c, 0x95, 0x8c, 0x81, 0x6f, -0x5c, 0x5f, 0x69, 0x6e, 0x6d, 0x68, 0x5e, 0x52, 0x53, 0x5a, 0x69, 0x7a, 0x84, 0x9c, 0xa9, 0x9a, -0x8c, 0x89, 0x90, 0x95, 0x95, 0x8d, 0x80, 0x7e, 0x89, 0x8b, 0x7d, 0x74, 0x75, 0x79, 0x68, 0x5d, -0x72, 0x82, 0x83, 0x82, 0x7b, 0x75, 0x6f, 0x6e, 0x75, 0x8c, 0x9f, 0x9b, 0x95, 0x8b, 0x8b, 0x94, -0x98, 0x9b, 0xa7, 0xa9, 0xa0, 0x9e, 0xb0, 0xb0, 0x95, 0x7d, 0x78, 0x8a, 0x83, 0x6b, 0x6b, 0x73, -0x7d, 0x8d, 0x96, 0x8b, 0x76, 0x6e, 0x76, 0x85, 0x98, 0xa1, 0x9c, 0x9e, 0xa0, 0x96, 0x9a, 0x9a, -0x94, 0x93, 0x8a, 0x83, 0x84, 0x79, 0x68, 0x72, 0x80, 0x81, 0x80, 0x6e, 0x69, 0x73, 0x81, 0x98, -0x9e, 0x86, 0x69, 0x5d, 0x63, 0x6a, 0x6f, 0x72, 0x74, 0x83, 0x93, 0x9d, 0x9b, 0x97, 0x92, 0x9a, -0xa2, 0xa2, 0xa3, 0xa1, 0x98, 0x91, 0x88, 0x7c, 0x7b, 0x78, 0x65, 0x58, 0x63, 0x6e, 0x6d, 0x65, -0x64, 0x65, 0x66, 0x63, 0x6d, 0x8a, 0x9c, 0x9b, 0xa1, 0x98, 0x7d, 0x73, 0x6f, 0x6d, 0x72, 0x6a, -0x5d, 0x55, 0x5d, 0x65, 0x66, 0x5d, 0x60, 0x72, 0x6e, 0x66, 0x76, 0x84, 0x87, 0x87, 0x88, 0x7e, -0x76, 0x70, 0x70, 0x79, 0x79, 0x73, 0x71, 0x74, 0x6d, 0x64, 0x70, 0x71, 0x6b, 0x73, 0x79, 0x7e, -0x89, 0x91, 0x8c, 0x89, 0x85, 0x7e, 0x81, 0x68, 0x56, 0x55, 0x4f, 0x56, 0x64, 0x62, 0x53, 0x4f, -0x57, 0x63, 0x6c, 0x7c, 0x92, 0x94, 0x8c, 0x91, 0x95, 0x94, 0x8b, 0x92, 0x9a, 0x8f, 0x86, 0x87, -0x83, 0x78, 0x73, 0x6d, 0x75, 0x78, 0x6a, 0x68, 0x77, 0x8a, 0x95, 0x8e, 0x76, 0x68, 0x66, 0x6b, -0x75, 0x89, 0x98, 0x8d, 0x87, 0x8e, 0x93, 0x90, 0x8c, 0x89, 0x95, 0x92, 0x8e, 0x96, 0x94, 0x8a, -0x8c, 0x8c, 0x8b, 0x91, 0x87, 0x80, 0x7b, 0x74, 0x79, 0x7d, 0x74, 0x6c, 0x6e, 0x70, 0x72, 0x7a, -0x84, 0x94, 0xa3, 0xae, 0xa7, 0x8f, 0x8d, 0x90, 0x95, 0x99, 0x93, 0x86, 0x75, 0x75, 0x88, 0x9d, -0x9f, 0x92, 0x8d, 0x7e, 0x76, 0x7b, 0x82, 0x84, 0x80, 0x7b, 0x7c, 0x85, 0x84, 0x86, 0x8a, 0x86, -0x8e, 0x95, 0x8f, 0x91, 0x93, 0x92, 0x92, 0x98, 0xa0, 0xa0, 0xa2, 0xa8, 0xaf, 0xa2, 0x89, 0x78, -0x82, 0x89, 0x74, 0x66, 0x65, 0x63, 0x6b, 0x74, 0x72, 0x67, 0x60, 0x6c, 0x86, 0x9b, 0xb0, 0xac, -0x98, 0x90, 0x98, 0x9a, 0x93, 0x8b, 0x8a, 0x7e, 0x6c, 0x6b, 0x6c, 0x6b, 0x64, 0x5b, 0x5f, 0x68, -0x5e, 0x63, 0x73, 0x7a, 0x86, 0x97, 0x8c, 0x75, 0x6b, 0x6f, 0x75, 0x72, 0x6d, 0x6b, 0x69, 0x69, -0x70, 0x72, 0x6e, 0x6f, 0x82, 0x89, 0x82, 0x79, 0x7a, 0x7d, 0x87, 0x98, 0xa3, 0x96, 0x86, 0x76, -0x69, 0x5f, 0x5b, 0x5c, 0x5d, 0x53, 0x4f, 0x54, 0x52, 0x5a, 0x6b, 0x7a, 0x89, 0x92, 0x98, 0x96, -0x88, 0x77, 0x80, 0x8f, 0x85, 0x74, 0x6d, 0x6c, 0x70, 0x75, 0x73, 0x6e, 0x74, 0x7a, 0x79, 0x76, -0x7c, 0x83, 0x7e, 0x79, 0x7a, 0x79, 0x75, 0x7b, 0x8d, 0x93, 0x96, 0x91, 0x8d, 0x8a, 0x80, 0x78, -0x75, 0x7b, 0x82, 0x84, 0x8a, 0x90, 0x96, 0xa3, 0x9c, 0x8c, 0x89, 0x8a, 0x7d, 0x74, 0x71, 0x6b, -0x66, 0x6b, 0x71, 0x72, 0x6b, 0x6f, 0x82, 0x8c, 0x8d, 0x98, 0x9e, 0x92, 0x8a, 0x90, 0x97, 0x97, -0x9c, 0x90, 0x78, 0x65, 0x67, 0x78, 0x83, 0x85, 0x8a, 0x85, 0x78, 0x6d, 0x6e, 0x79, 0x7b, 0x7a, -0x86, 0x7d, 0x6c, 0x67, 0x6f, 0x7c, 0x7c, 0x7c, 0x81, 0x7e, 0x7e, 0x89, 0x8d, 0x84, 0x92, 0xa5, -0x9e, 0x92, 0x8b, 0x8e, 0x88, 0x81, 0x89, 0x92, 0x8d, 0x7b, 0x6f, 0x66, 0x67, 0x6b, 0x6a, 0x68, -0x5c, 0x51, 0x56, 0x6a, 0x80, 0x9a, 0xb0, 0xab, 0xa8, 0xaa, 0x99, 0x8d, 0x87, 0x90, 0x8e, 0x79, -0x6d, 0x6b, 0x70, 0x79, 0x84, 0x85, 0x83, 0x84, 0x83, 0x87, 0x88, 0x84, 0x7d, 0x76, 0x71, 0x77, -0x7b, 0x7b, 0x84, 0x83, 0x7c, 0x7d, 0x83, 0x87, 0x8b, 0x89, 0x86, 0x86, 0x8a, 0x7e, 0x7d, 0x7d, -0x85, 0x98, 0xaa, 0xaa, 0xa9, 0x97, 0x84, 0x74, 0x65, 0x66, 0x64, 0x56, 0x59, 0x5a, 0x54, 0x57, -0x6d, 0x87, 0x90, 0x8f, 0x8e, 0x8b, 0x81, 0x81, 0x92, 0x96, 0x99, 0x93, 0x7c, 0x6d, 0x65, 0x70, -0x74, 0x70, 0x6b, 0x68, 0x64, 0x5a, 0x66, 0x77, 0x85, 0x7e, 0x7c, 0x8b, 0x80, 0x71, 0x6f, 0x84, -0x94, 0x99, 0xa4, 0x9b, 0x8b, 0x84, 0x84, 0x89, 0x8d, 0x9c, 0x9d, 0x90, 0x85, 0x87, 0x91, 0x8f, -0x97, 0xa3, 0xa3, 0x96, 0x87, 0x83, 0x80, 0x7b, 0x77, 0x76, 0x73, 0x67, 0x63, 0x6c, 0x76, 0x7a, -0x82, 0x8a, 0x89, 0x92, 0xa6, 0xa1, 0x94, 0x85, 0x84, 0x75, 0x66, 0x61, 0x65, 0x6e, 0x79, 0x89, -0x92, 0x8b, 0x7e, 0x77, 0x73, 0x75, 0x70, 0x63, 0x5d, 0x59, 0x5e, 0x67, 0x72, 0x79, 0x7a, 0x75, -0x75, 0x7b, 0x7b, 0x78, 0x79, 0x77, 0x81, 0x7e, 0x76, 0x7b, 0x83, 0x8a, 0x93, 0x9a, 0x8e, 0x84, -0x74, 0x6e, 0x77, 0x74, 0x73, 0x62, 0x53, 0x57, 0x5a, 0x5a, 0x66, 0x83, 0x95, 0x9c, 0xa6, 0xa0, -0x90, 0x7b, 0x79, 0x86, 0x89, 0x85, 0x72, 0x5c, 0x56, 0x60, 0x6e, 0x73, 0x76, 0x77, 0x75, 0x70, -0x69, 0x72, 0x82, 0x87, 0x81, 0x86, 0x8e, 0x81, 0x78, 0x75, 0x7a, 0x77, 0x71, 0x73, 0x70, 0x71, -0x7b, 0x7e, 0x81, 0x86, 0x8c, 0x84, 0x7a, 0x73, 0x77, 0x80, 0x82, 0x89, 0x9e, 0x9a, 0x82, 0x6d, -0x69, 0x6f, 0x6c, 0x62, 0x5c, 0x56, 0x55, 0x5c, 0x6c, 0x7b, 0x8a, 0x91, 0x96, 0x9a, 0xa1, 0xaa, -0xa2, 0xa0, 0x9f, 0x98, 0x88, 0x80, 0x84, 0x81, 0x7d, 0x7b, 0x84, 0x8c, 0x8c, 0x95, 0x9e, 0x99, -0x91, 0x82, 0x76, 0x72, 0x74, 0x76, 0x86, 0x98, 0x9d, 0xa1, 0xaa, 0xa6, 0x9d, 0x8c, 0x86, 0x8b, -0x8e, 0x86, 0x7c, 0x7b, 0x81, 0x8d, 0x93, 0xa1, 0xad, 0xa3, 0x95, 0x86, 0x81, 0x7e, 0x80, 0x7d, -0x6f, 0x67, 0x6e, 0x77, 0x7e, 0x8c, 0x9b, 0x9c, 0x9c, 0x9b, 0x9a, 0x9d, 0x99, 0x90, 0x96, 0xa2, -0x9d, 0x8f, 0x81, 0x76, 0x7d, 0x86, 0x86, 0x8d, 0x9a, 0x85, 0x6e, 0x67, 0x73, 0x81, 0x7b, 0x6c, -0x6e, 0x71, 0x62, 0x5e, 0x66, 0x74, 0x78, 0x72, 0x6f, 0x6d, 0x66, 0x66, 0x6d, 0x7e, 0x90, 0x95, -0x90, 0x8b, 0x89, 0x84, 0x7d, 0x78, 0x80, 0x86, 0x85, 0x84, 0x77, 0x67, 0x5f, 0x59, 0x55, 0x54, -0x52, 0x4d, 0x50, 0x5c, 0x6e, 0x8e, 0xa4, 0x9e, 0x90, 0x88, 0x8c, 0x87, 0x8a, 0x7e, 0x74, 0x67, -0x5d, 0x63, 0x69, 0x6f, 0x75, 0x77, 0x73, 0x73, 0x74, 0x73, 0x79, 0x79, 0x71, 0x6b, 0x65, 0x6b, -0x76, 0x7c, 0x79, 0x72, 0x73, 0x74, 0x81, 0x86, 0x7c, 0x6c, 0x6c, 0x6f, 0x6a, 0x6d, 0x73, 0x75, -0x7e, 0x82, 0x94, 0xb0, 0xad, 0x93, 0x7e, 0x71, 0x6f, 0x6f, 0x67, 0x5a, 0x54, 0x4f, 0x53, 0x61, -0x77, 0x89, 0x91, 0x90, 0x92, 0x90, 0x80, 0x74, 0x77, 0x8e, 0x98, 0x88, 0x75, 0x6e, 0x70, 0x76, -0x77, 0x77, 0x79, 0x77, 0x73, 0x7a, 0x7e, 0x82, 0x81, 0x82, 0x80, 0x84, 0x8b, 0x7b, 0x78, 0x7d, -0x90, 0xa6, 0xa8, 0x99, 0x88, 0x79, 0x78, 0x85, 0x96, 0x96, 0x94, 0x89, 0x81, 0x88, 0x8d, 0x90, -0x90, 0x8f, 0x90, 0x93, 0x88, 0x78, 0x7e, 0x81, 0x83, 0x7e, 0x73, 0x77, 0x79, 0x76, 0x80, 0x8f, -0x9f, 0xa3, 0xa7, 0xa5, 0xa8, 0x9e, 0x91, 0x96, 0x88, 0x82, 0x75, 0x6b, 0x6d, 0x72, 0x86, 0x99, -0x9d, 0x92, 0x8e, 0x88, 0x8b, 0x8f, 0x87, 0x7a, 0x69, 0x5f, 0x68, 0x7a, 0x8e, 0x93, 0x8f, 0x88, -0x84, 0x87, 0x80, 0x75, 0x78, 0x86, 0x86, 0x84, 0x89, 0x8d, 0x8f, 0x8f, 0x8e, 0x9d, 0xa6, 0x95, -0x8e, 0x89, 0x83, 0x79, 0x6d, 0x67, 0x61, 0x5b, 0x5a, 0x5d, 0x6d, 0x83, 0x9e, 0xb3, 0xb3, 0xa0, -0x8a, 0x77, 0x77, 0x88, 0x9a, 0x95, 0x83, 0x70, 0x66, 0x6b, 0x76, 0x7c, 0x77, 0x6a, 0x60, 0x5f, -0x5f, 0x62, 0x71, 0x74, 0x73, 0x69, 0x6a, 0x73, 0x6a, 0x69, 0x6b, 0x77, 0x79, 0x75, 0x71, 0x6a, -0x6c, 0x6b, 0x7a, 0x8e, 0x8b, 0x89, 0x82, 0x7d, 0x83, 0x8a, 0x93, 0x9e, 0x9e, 0x92, 0x89, 0x70, -0x6c, 0x70, 0x67, 0x62, 0x56, 0x49, 0x48, 0x53, 0x62, 0x75, 0x82, 0x85, 0x89, 0x88, 0x7e, 0x84, -0x8f, 0x95, 0x93, 0x85, 0x81, 0x7c, 0x7b, 0x7b, 0x7e, 0x86, 0x88, 0x86, 0x8c, 0x8d, 0x8e, 0x92, -0x90, 0x8a, 0x79, 0x67, 0x65, 0x6b, 0x7d, 0x92, 0x9a, 0xa0, 0xa0, 0x91, 0x80, 0x71, 0x6a, 0x74, -0x7e, 0x75, 0x72, 0x76, 0x79, 0x82, 0x8f, 0x94, 0x9c, 0x97, 0x88, 0x87, 0x7b, 0x76, 0x79, 0x74, -0x6d, 0x66, 0x63, 0x69, 0x74, 0x80, 0x89, 0x90, 0x91, 0x95, 0x92, 0x82, 0x78, 0x7b, 0x8b, 0x91, -0x85, 0x73, 0x63, 0x5d, 0x69, 0x7d, 0x84, 0x87, 0x7e, 0x71, 0x6b, 0x65, 0x75, 0x80, 0x74, 0x6c, -0x62, 0x69, 0x6d, 0x6e, 0x77, 0x7b, 0x7b, 0x78, 0x7b, 0x75, 0x71, 0x72, 0x82, 0x98, 0x99, 0x90, -0x8c, 0x8b, 0x8c, 0x8e, 0x89, 0x83, 0x85, 0x81, 0x83, 0x84, 0x81, 0x86, 0x7e, 0x76, 0x73, 0x63, -0x59, 0x5d, 0x75, 0x8a, 0x96, 0xab, 0xb1, 0xa5, 0x91, 0x83, 0x92, 0x9f, 0x96, 0x86, 0x7d, 0x78, -0x72, 0x78, 0x85, 0x8c, 0x88, 0x86, 0x88, 0x8c, 0x87, 0x87, 0x90, 0x8c, 0x85, 0x71, 0x68, 0x76, -0x84, 0x90, 0x95, 0x8e, 0x8b, 0x86, 0x7b, 0x78, 0x7a, 0x7c, 0x82, 0x87, 0x7d, 0x76, 0x76, 0x7a, -0x8c, 0x94, 0x95, 0xa7, 0x9f, 0x8c, 0x7c, 0x6d, 0x73, 0x72, 0x63, 0x5e, 0x5c, 0x5a, 0x67, 0x79, -0x8a, 0x90, 0x90, 0x97, 0x9b, 0x90, 0x80, 0x79, 0x8e, 0x9e, 0xa0, 0x96, 0x8f, 0x8e, 0x8e, 0x90, -0x90, 0x87, 0x77, 0x6a, 0x6f, 0x70, 0x79, 0x8b, 0x84, 0x77, 0x6c, 0x5e, 0x64, 0x6e, 0x80, 0x87, -0x88, 0x95, 0x97, 0x8a, 0x76, 0x71, 0x7b, 0x90, 0x90, 0x86, 0x82, 0x7d, 0x83, 0x8c, 0x90, 0x87, -0x7d, 0x82, 0x82, 0x87, 0x80, 0x79, 0x7b, 0x76, 0x73, 0x6b, 0x5e, 0x5f, 0x6a, 0x7b, 0x7d, 0x80, -0x8b, 0x8d, 0x87, 0x82, 0x8f, 0xa6, 0x9e, 0x8f, 0x7a, 0x6a, 0x64, 0x6d, 0x7e, 0x85, 0x87, 0x93, -0x95, 0x8a, 0x7e, 0x78, 0x80, 0x84, 0x75, 0x6c, 0x5d, 0x54, 0x62, 0x72, 0x80, 0x82, 0x7d, 0x80, -0x7e, 0x78, 0x71, 0x65, 0x68, 0x75, 0x7c, 0x6c, 0x6a, 0x77, 0x80, 0x83, 0x83, 0x85, 0x89, 0x77, -0x6f, 0x6e, 0x75, 0x7b, 0x6c, 0x5d, 0x51, 0x43, 0x47, 0x63, 0x76, 0x7c, 0x82, 0x94, 0x9a, 0x8c, -0x7c, 0x70, 0x74, 0x7e, 0x7a, 0x77, 0x6e, 0x67, 0x6a, 0x6e, 0x76, 0x75, 0x69, 0x65, 0x6c, 0x77, -0x6e, 0x6d, 0x7a, 0x81, 0x81, 0x76, 0x7b, 0x8f, 0x90, 0x8d, 0x84, 0x81, 0x7c, 0x73, 0x71, 0x78, -0x84, 0x93, 0x95, 0x8b, 0x7c, 0x74, 0x82, 0x97, 0x9f, 0x9a, 0x92, 0x9c, 0xa0, 0x9c, 0x95, 0x8d, -0x8e, 0x8a, 0x7d, 0x7b, 0x74, 0x6a, 0x71, 0x83, 0x90, 0x86, 0x85, 0x91, 0x92, 0x92, 0x8c, 0x93, -0xa2, 0xa0, 0x94, 0x82, 0x83, 0x8f, 0x91, 0x91, 0x90, 0x8a, 0x86, 0x85, 0x88, 0x8f, 0x9c, 0xa5, -0x99, 0x85, 0x6f, 0x5c, 0x65, 0x82, 0x93, 0x94, 0x93, 0x9d, 0x98, 0x8a, 0x7e, 0x72, 0x71, 0x76, -0x79, 0x7b, 0x6a, 0x6d, 0x81, 0x8a, 0x8e, 0x8c, 0x96, 0x97, 0x8c, 0x82, 0x71, 0x6b, 0x6b, 0x6b, -0x6b, 0x67, 0x67, 0x75, 0x82, 0x84, 0x83, 0x84, 0x86, 0x83, 0x83, 0x84, 0x87, 0x8d, 0x8b, 0x84, -0x72, 0x66, 0x74, 0x86, 0x8a, 0x88, 0x83, 0x84, 0x7d, 0x7d, 0x73, 0x60, 0x63, 0x67, 0x63, 0x65, -0x63, 0x71, 0x7e, 0x81, 0x80, 0x7a, 0x7c, 0x7b, 0x74, 0x79, 0x78, 0x78, 0x86, 0x8a, 0x83, 0x7e, -0x86, 0x99, 0xa1, 0x99, 0x8e, 0x83, 0x79, 0x7e, 0x89, 0x8a, 0x91, 0x8d, 0x7e, 0x72, 0x65, 0x5a, -0x66, 0x7e, 0x8d, 0x89, 0x84, 0x93, 0x8f, 0x88, 0x82, 0x7c, 0x91, 0x8c, 0x77, 0x6b, 0x60, 0x67, -0x71, 0x71, 0x75, 0x74, 0x73, 0x74, 0x77, 0x76, 0x73, 0x73, 0x79, 0x7e, 0x77, 0x6d, 0x68, 0x70, -0x80, 0x80, 0x7b, 0x78, 0x73, 0x6e, 0x6f, 0x75, 0x7b, 0x81, 0x77, 0x6d, 0x5e, 0x53, 0x67, 0x7c, -0x83, 0x82, 0x8d, 0xa6, 0x98, 0x8d, 0x79, 0x6a, 0x6d, 0x63, 0x5b, 0x5a, 0x57, 0x60, 0x73, 0x80, -0x85, 0x8a, 0x8f, 0x93, 0x8e, 0x8f, 0x8e, 0x83, 0x81, 0x88, 0x88, 0x84, 0x88, 0x94, 0x95, 0x8d, -0x88, 0x82, 0x7d, 0x84, 0x8c, 0x88, 0x86, 0x81, 0x79, 0x76, 0x6e, 0x79, 0x99, 0x9f, 0x9d, 0x92, -0x95, 0xa4, 0x94, 0x86, 0x7d, 0x77, 0x80, 0x81, 0x77, 0x74, 0x78, 0x86, 0x97, 0x9b, 0x9c, 0x9a, -0x91, 0x89, 0x92, 0x94, 0x8a, 0x81, 0x7c, 0x81, 0x7d, 0x72, 0x78, 0x86, 0x91, 0x8d, 0x7e, 0x71, -0x6b, 0x6b, 0x72, 0x81, 0x94, 0x9b, 0x80, 0x6b, 0x61, 0x69, 0x7c, 0x81, 0x80, 0x7e, 0x86, 0x95, -0x94, 0x8f, 0x7c, 0x72, 0x71, 0x6c, 0x68, 0x65, 0x63, 0x68, 0x73, 0x87, 0x90, 0x94, 0x94, 0x8d, -0x83, 0x7c, 0x7a, 0x7a, 0x83, 0x88, 0x86, 0x80, 0x7b, 0x86, 0x8b, 0x8c, 0x8a, 0x8e, 0x90, 0x87, -0x85, 0x83, 0x84, 0x79, 0x67, 0x60, 0x5c, 0x68, 0x7d, 0x92, 0x96, 0x92, 0x9d, 0xac, 0xa4, 0x95, -0x8e, 0x8d, 0x84, 0x76, 0x72, 0x77, 0x7e, 0x86, 0x8c, 0x8c, 0x8c, 0x8c, 0x8f, 0x8e, 0x8e, 0x87, -0x73, 0x5f, 0x5d, 0x6b, 0x71, 0x6a, 0x7b, 0x8d, 0x8a, 0x81, 0x76, 0x75, 0x6f, 0x65, 0x67, 0x76, -0x81, 0x7e, 0x72, 0x66, 0x69, 0x76, 0x85, 0x8f, 0x94, 0x95, 0x98, 0x9a, 0x8e, 0x8c, 0x81, 0x79, -0x73, 0x6a, 0x65, 0x5e, 0x65, 0x7a, 0x8b, 0x97, 0x97, 0x90, 0x87, 0x7f, 0x7d, 0x80, 0x82, 0x8a, -0x8c, 0x7e, 0x79, 0x78, 0x80, 0x84, 0x7b, 0x77, 0x72, 0x6c, 0x6c, 0x79, 0x81, 0x85, 0x82, 0x78, -0x6e, 0x6b, 0x6a, 0x6f, 0x75, 0x83, 0x90, 0x8f, 0x99, 0xa0, 0x8b, 0x74, 0x66, 0x6e, 0x73, 0x68, -0x61, 0x64, 0x68, 0x69, 0x6e, 0x7a, 0x84, 0x81, 0x8b, 0x87, 0x79, 0x71, 0x69, 0x63, 0x61, 0x62, -0x60, 0x60, 0x6b, 0x79, 0x88, 0x82, 0x7c, 0x78, 0x75, 0x77, 0x7d, 0x8d, 0x8e, 0x7c, 0x6b, 0x71, -0x7e, 0x86, 0x87, 0x87, 0x86, 0x84, 0x93, 0x9d, 0x90, 0x85, 0x77, 0x6b, 0x5d, 0x56, 0x62, 0x65, -0x70, 0x8f, 0x99, 0x96, 0x91, 0x8f, 0x8f, 0x81, 0x74, 0x72, 0x74, 0x72, 0x77, 0x82, 0x87, 0x8e, -0x8f, 0x93, 0x93, 0x93, 0x90, 0x87, 0x7e, 0x8c, 0x9a, 0x9e, 0x95, 0x83, 0x75, 0x73, 0x75, 0x8d, -0x9c, 0xa4, 0xa4, 0x99, 0x9d, 0x9a, 0x85, 0x83, 0x81, 0x86, 0x8e, 0x79, 0x6c, 0x70, 0x7c, 0x88, -0x87, 0x86, 0x8a, 0x86, 0x7e, 0x83, 0x89, 0x82, 0x7b, 0x6d, 0x6d, 0x77, 0x79, 0x7a, 0x84, 0x84, -0x89, 0x8c, 0x8a, 0x88, 0x7e, 0x7c, 0x7d, 0x85, 0x8a, 0x84, 0x79, 0x7e, 0x87, 0x85, 0x80, 0x86, -0x94, 0x94, 0xa2, 0xab, 0x94, 0x82, 0x76, 0x75, 0x6b, 0x5d, 0x5b, 0x5c, 0x6f, 0x84, 0x94, 0x9e, -0x9b, 0x98, 0x93, 0x8e, 0x8c, 0x8f, 0x8a, 0x7c, 0x77, 0x81, 0x8f, 0x94, 0x93, 0x8a, 0x80, 0x79, -0x7b, 0x7b, 0x78, 0x81, 0x82, 0x78, 0x68, 0x56, 0x55, 0x61, 0x6a, 0x86, 0x96, 0x91, 0x8a, 0x83, -0x91, 0x8c, 0x74, 0x6b, 0x67, 0x66, 0x64, 0x63, 0x66, 0x6f, 0x7d, 0x88, 0x8f, 0x95, 0x99, 0x94, -0x88, 0x82, 0x84, 0x84, 0x81, 0x74, 0x6e, 0x74, 0x76, 0x88, 0x9a, 0x97, 0x92, 0x8b, 0x7d, 0x74, -0x6e, 0x72, 0x84, 0x85, 0x87, 0x88, 0x75, 0x6e, 0x74, 0x7b, 0x7b, 0x7a, 0x7b, 0x77, 0x7e, 0x7b, -0x7a, 0x71, 0x66, 0x67, 0x5c, 0x56, 0x57, 0x5e, 0x74, 0x81, 0x85, 0x8a, 0x88, 0x86, 0x80, 0x74, -0x70, 0x74, 0x6f, 0x69, 0x6a, 0x70, 0x76, 0x72, 0x6e, 0x68, 0x6a, 0x73, 0x75, 0x7d, 0x80, 0x77, -0x6d, 0x6d, 0x6b, 0x63, 0x5b, 0x56, 0x62, 0x71, 0x7a, 0x8a, 0x89, 0x83, 0x91, 0x8d, 0x7e, 0x7e, -0x7d, 0x76, 0x73, 0x6d, 0x6e, 0x78, 0x87, 0x8d, 0x8c, 0x8c, 0x90, 0x93, 0x8d, 0x8b, 0x87, 0x7d, -0x6f, 0x63, 0x61, 0x70, 0x83, 0x99, 0xaf, 0xaa, 0x9c, 0x93, 0x8e, 0x8f, 0x8b, 0x89, 0x8e, 0x85, -0x7c, 0x85, 0x89, 0x89, 0x92, 0x9a, 0x9b, 0x9c, 0x99, 0x9c, 0xa6, 0x9c, 0x93, 0x8a, 0x85, 0x82, -0x74, 0x66, 0x63, 0x78, 0x97, 0xa2, 0xa2, 0xa2, 0x97, 0x83, 0x7c, 0x76, 0x7e, 0x89, 0x80, 0x88, -0x88, 0x82, 0x82, 0x89, 0x8d, 0x84, 0x7d, 0x78, 0x74, 0x73, 0x79, 0x85, 0x84, 0x82, 0x7c, 0x79, -0x70, 0x6d, 0x7e, 0x8c, 0x92, 0x94, 0x92, 0x95, 0x9f, 0x94, 0x86, 0x86, 0x84, 0x7c, 0x75, 0x6b, -0x6d, 0x72, 0x76, 0x7c, 0x7a, 0x82, 0x8a, 0x8f, 0x96, 0x8d, 0x7c, 0x71, 0x6a, 0x64, 0x61, 0x66, -0x6e, 0x7c, 0x83, 0x85, 0x89, 0x87, 0x83, 0x81, 0x81, 0x86, 0x8e, 0x8a, 0x88, 0x91, 0x89, 0x83, -0x8a, 0x8f, 0x89, 0x80, 0x7d, 0x85, 0x89, 0x82, 0x7c, 0x77, 0x6a, 0x5d, 0x56, 0x4c, 0x52, 0x6c, -0x89, 0x9d, 0x91, 0x85, 0x7b, 0x78, 0x77, 0x70, 0x73, 0x6a, 0x5d, 0x5f, 0x67, 0x73, 0x80, 0x88, -0x88, 0x80, 0x78, 0x7a, 0x80, 0x7e, 0x80, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x78, 0x7b, 0x91, 0x9f, -0xa1, 0x9a, 0x91, 0x82, 0x75, 0x71, 0x76, 0x89, 0x89, 0x8a, 0x89, 0x71, 0x68, 0x6d, 0x81, 0x83, -0x78, 0x76, 0x71, 0x6e, 0x6d, 0x71, 0x72, 0x6f, 0x68, 0x66, 0x64, 0x61, 0x74, 0x86, 0x8b, 0x86, -0x78, 0x75, 0x73, 0x6f, 0x69, 0x72, 0x7e, 0x82, 0x8c, 0x8c, 0x85, 0x7c, 0x78, 0x7a, 0x75, 0x73, -0x7c, 0x82, 0x88, 0x8a, 0x80, 0x7a, 0x73, 0x74, 0x70, 0x61, 0x60, 0x72, 0x83, 0x8d, 0x8f, 0x8d, -0x8c, 0x88, 0x87, 0x87, 0x8a, 0x89, 0x86, 0x84, 0x82, 0x83, 0x8d, 0x94, 0x8e, 0x7a, 0x74, 0x79, -0x7e, 0x84, 0x88, 0x85, 0x7d, 0x75, 0x79, 0x7d, 0x72, 0x7c, 0x92, 0xa5, 0xa8, 0x97, 0x8c, 0x85, -0x87, 0x82, 0x89, 0x8c, 0x80, 0x78, 0x6e, 0x6b, 0x75, 0x84, 0x92, 0x90, 0x85, 0x82, 0x87, 0x88, -0x88, 0x84, 0x78, 0x75, 0x6f, 0x6c, 0x68, 0x6a, 0x83, 0x94, 0x9d, 0x99, 0x89, 0x7c, 0x74, 0x74, -0x77, 0x82, 0x87, 0x91, 0xa0, 0x90, 0x7e, 0x7a, 0x82, 0x90, 0x85, 0x80, 0x7b, 0x71, 0x6c, 0x72, -0x78, 0x7a, 0x78, 0x70, 0x6f, 0x63, 0x65, 0x82, 0x90, 0x98, 0x91, 0x85, 0x87, 0x86, 0x7e, 0x80, -0x86, 0x86, 0x85, 0x7e, 0x78, 0x7d, 0x81, 0x83, 0x81, 0x73, 0x71, 0x77, 0x80, 0x8e, 0x87, 0x77, -0x74, 0x7d, 0x8d, 0x85, 0x77, 0x7b, 0x82, 0x8a, 0x94, 0x92, 0x90, 0x8c, 0x87, 0x8d, 0x96, 0x97, -0x98, 0x95, 0x87, 0x7a, 0x7c, 0x89, 0x90, 0x84, 0x79, 0x7d, 0x81, 0x83, 0x88, 0x81, 0x73, 0x68, -0x5d, 0x5f, 0x61, 0x6a, 0x80, 0x91, 0x96, 0x81, 0x6e, 0x66, 0x6d, 0x77, 0x71, 0x73, 0x74, 0x78, -0x7d, 0x75, 0x72, 0x76, 0x7a, 0x82, 0x87, 0x86, 0x85, 0x84, 0x86, 0x8c, 0x8b, 0x87, 0x89, 0x87, -0x80, 0x7b, 0x85, 0x92, 0x9a, 0x9d, 0x97, 0x8d, 0x86, 0x85, 0x85, 0x85, 0x86, 0x87, 0x8d, 0x8e, -0x7d, 0x79, 0x79, 0x81, 0x80, 0x6f, 0x6d, 0x6c, 0x6b, 0x6e, 0x6c, 0x69, 0x73, 0x81, 0x8f, 0x90, -0x84, 0x7b, 0x7a, 0x7c, 0x81, 0x83, 0x7c, 0x75, 0x6f, 0x67, 0x6b, 0x76, 0x7c, 0x7c, 0x78, 0x70, -0x6c, 0x6a, 0x6d, 0x6f, 0x6f, 0x70, 0x77, 0x86, 0x85, 0x73, 0x67, 0x60, 0x67, 0x6d, 0x67, 0x6c, -0x6d, 0x6a, 0x68, 0x62, 0x63, 0x68, 0x6f, 0x76, 0x76, 0x78, 0x84, 0x91, 0x97, 0x91, 0x8a, 0x85, -0x83, 0x7b, 0x79, 0x81, 0x85, 0x82, 0x83, 0x83, 0x7d, 0x79, 0x78, 0x7e, 0x83, 0x81, 0x83, 0x88, -0x96, 0x95, 0x8c, 0x89, 0x89, 0x91, 0x8b, 0x81, 0x81, 0x7e, 0x7b, 0x79, 0x76, 0x78, 0x7e, 0x83, -0x82, 0x7c, 0x79, 0x7a, 0x7e, 0x7e, 0x7a, 0x7a, 0x80, 0x89, 0x8b, 0x86, 0x86, 0x86, 0x85, 0x88, -0x90, 0x90, 0x87, 0x80, 0x81, 0x81, 0x86, 0x8a, 0x93, 0x9b, 0x91, 0x82, 0x7a, 0x7b, 0x86, 0x7e, -0x7a, 0x81, 0x84, 0x83, 0x7c, 0x73, 0x70, 0x74, 0x7d, 0x8a, 0x8d, 0x8d, 0x8a, 0x8a, 0x87, 0x83, -0x83, 0x82, 0x83, 0x7b, 0x7c, 0x8d, 0x9d, 0xa7, 0xa9, 0xa3, 0x94, 0x86, 0x84, 0x85, 0x8b, 0x90, -0x8d, 0x8f, 0x95, 0x8a, 0x7e, 0x79, 0x7b, 0x8a, 0x84, 0x7d, 0x81, 0x81, 0x7e, 0x7b, 0x7b, 0x82, -0x8b, 0x8e, 0x8c, 0x8a, 0x88, 0x88, 0x89, 0x88, 0x88, 0x86, 0x81, 0x7b, 0x71, 0x6d, 0x70, 0x73, -0x73, 0x74, 0x76, 0x78, 0x78, 0x7e, 0x87, 0x84, 0x80, 0x78, 0x78, 0x80, 0x81, 0x81, 0x7c, 0x75, -0x74, 0x71, 0x73, 0x78, 0x78, 0x74, 0x6d, 0x68, 0x68, 0x70, 0x74, 0x76, 0x7c, 0x83, 0x87, 0x86, -0x80, 0x78, 0x74, 0x76, 0x7d, 0x83, 0x84, 0x85, 0x82, 0x7d, 0x7d, 0x7c, 0x7b, 0x78, 0x77, 0x76, -0x7a, 0x84, 0x88, 0x8a, 0x8a, 0x85, 0x7a, 0x70, 0x6e, 0x6e, 0x71, 0x70, 0x6e, 0x6a, 0x69, 0x67, -0x65, 0x6a, 0x73, 0x7b, 0x7d, 0x7c, 0x7c, 0x79, 0x77, 0x75, 0x78, 0x7d, 0x7b, 0x74, 0x6d, 0x6c, -0x6c, 0x6c, 0x6b, 0x6d, 0x71, 0x6c, 0x65, 0x66, 0x67, 0x6b, 0x71, 0x73, 0x74, 0x74, 0x73, 0x75, -0x7a, 0x82, 0x8a, 0x89, 0x85, 0x82, 0x7d, 0x7c, 0x7d, 0x7b, 0x7e, 0x7e, 0x81, 0x87, 0x8c, 0x91, -0x8f, 0x8d, 0x8c, 0x8a, 0x86, 0x87, 0x89, 0x88, 0x8c, 0x8e, 0x8d, 0x87, 0x80, 0x7c, 0x7a, 0x7d, -0x85, 0x88, 0x8c, 0x91, 0x8d, 0x87, 0x84, 0x80, 0x81, 0x82, 0x82, 0x85, 0x89, 0x8b, 0x8d, 0x90, -0x92, 0x90, 0x8b, 0x87, 0x89, 0x89, 0x8c, 0x8e, 0x8e, 0x89, 0x87, 0x84, 0x83, 0x84, 0x84, 0x85, -0x83, 0x82, 0x80, 0x7d, 0x7c, 0x82, 0x8a, 0x8e, 0x8b, 0x88, 0x86, 0x88, 0x8b, 0x8a, 0x87, 0x84, -0x84, 0x81, 0x7b, 0x79, 0x79, 0x79, 0x79, 0x79, 0x7b, 0x7b, 0x79, 0x7b, 0x84, 0x8d, 0x90, 0x8f, -0x90, 0x8d, 0x85, 0x82, 0x84, 0x85, 0x81, 0x7d, 0x82, 0x85, 0x89, 0x8b, 0x89, 0x86, 0x85, 0x85, -0x7c, 0x78, 0x7b, 0x82, 0x8a, 0x8e, 0x8b, 0x80, 0x72, 0x6d, 0x6e, 0x71, 0x71, 0x72, 0x76, 0x79, -0x76, 0x75, 0x76, 0x74, 0x74, 0x7a, 0x81, 0x85, 0x86, 0x8c, 0x90, 0x90, 0x93, 0x92, 0x8c, 0x81, -0x7a, 0x79, 0x7a, 0x79, 0x76, 0x72, 0x70, 0x6e, 0x70, 0x70, 0x70, 0x72, 0x73, 0x77, 0x77, 0x76, -0x75, 0x75, 0x76, 0x76, 0x74, 0x6e, 0x6d, 0x70, 0x71, 0x6f, 0x70, 0x72, 0x73, 0x72, 0x71, 0x75, -0x78, 0x78, 0x7b, 0x7e, 0x7e, 0x80, 0x81, 0x86, 0x8c, 0x93, 0x97, 0x98, 0x99, 0x94, 0x8e, 0x8a, -0x8c, 0x8e, 0x8a, 0x88, 0x8b, 0x8c, 0x90, 0x93, 0x8f, 0x8a, 0x85, 0x7d, 0x78, 0x78, 0x79, 0x7e, -0x80, 0x7b, 0x77, 0x71, 0x6b, 0x6a, 0x6c, 0x73, 0x79, 0x7b, 0x80, 0x83, 0x7e, 0x78, 0x78, 0x74, -0x73, 0x72, 0x72, 0x73, 0x74, 0x78, 0x7a, 0x7a, 0x7b, 0x7e, 0x7c, 0x74, 0x72, 0x76, 0x7b, 0x7d, -0x7b, 0x79, 0x76, 0x71, 0x71, 0x75, 0x79, 0x77, 0x79, 0x7d, 0x80, 0x82, 0x83, 0x85, 0x84, 0x82, -0x83, 0x83, 0x83, 0x83, 0x87, 0x86, 0x84, 0x88, 0x8a, 0x85, 0x7e, 0x82, 0x87, 0x82, 0x7d, 0x7a, -0x78, 0x74, 0x75, 0x7c, 0x83, 0x8a, 0x8f, 0x94, 0x97, 0x94, 0x8f, 0x8a, 0x88, 0x84, 0x81, 0x7d, -0x7c, 0x7d, 0x80, 0x82, 0x7e, 0x7d, 0x7c, 0x78, 0x76, 0x7d, 0x86, 0x89, 0x86, 0x84, 0x7e, 0x76, -0x72, 0x71, 0x73, 0x75, 0x79, 0x7c, 0x7e, 0x7c, 0x78, 0x78, 0x76, 0x74, 0x76, 0x78, 0x7a, 0x80, -0x87, 0x90, 0x94, 0x91, 0x92, 0x91, 0x8b, 0x85, 0x7e, 0x7e, 0x81, 0x7d, 0x7b, 0x78, 0x75, 0x72, -0x71, 0x76, 0x7e, 0x82, 0x82, 0x83, 0x84, 0x86, 0x87, 0x89, 0x88, 0x82, 0x7b, 0x78, 0x7b, 0x7e, -0x80, 0x7c, 0x7b, 0x7e, 0x80, 0x7e, 0x7a, 0x7b, 0x7b, 0x78, 0x7a, 0x7d, 0x7a, 0x76, 0x76, 0x78, -0x7e, 0x7d, 0x7e, 0x86, 0x8b, 0x8c, 0x8a, 0x8a, 0x8a, 0x86, 0x84, 0x88, 0x8e, 0x8f, 0x90, 0x91, -0x8c, 0x8a, 0x8b, 0x87, 0x85, 0x86, 0x8a, 0x88, 0x7e, 0x78, 0x74, 0x6c, 0x66, 0x6a, 0x72, 0x74, -0x76, 0x78, 0x7d, 0x81, 0x7e, 0x7b, 0x78, 0x73, 0x6f, 0x6e, 0x6e, 0x72, 0x78, 0x80, 0x84, 0x84, -0x8b, 0x90, 0x8d, 0x8f, 0x93, 0x96, 0x91, 0x89, 0x88, 0x85, 0x82, 0x81, 0x83, 0x87, 0x86, 0x89, -0x8b, 0x8a, 0x8a, 0x8c, 0x8a, 0x86, 0x83, 0x80, 0x7c, 0x7b, 0x80, 0x87, 0x88, 0x84, 0x80, 0x7e, -0x7b, 0x77, 0x76, 0x72, 0x6e, 0x68, 0x68, 0x6c, 0x68, 0x67, 0x68, 0x6c, 0x77, 0x84, 0x8d, 0x90, -0x8d, 0x8e, 0x8b, 0x89, 0x86, 0x80, 0x78, 0x76, 0x7e, 0x82, 0x83, 0x82, 0x7c, 0x7a, 0x77, 0x75, -0x78, 0x7c, 0x7e, 0x80, 0x7e, 0x7d, 0x78, 0x70, 0x6e, 0x71, 0x71, 0x73, 0x71, 0x71, 0x72, 0x77, -0x7a, 0x78, 0x77, 0x6f, 0x6a, 0x6d, 0x76, 0x82, 0x85, 0x89, 0x8e, 0x8d, 0x8f, 0x8e, 0x8b, 0x86, -0x82, 0x84, 0x81, 0x7b, 0x77, 0x74, 0x73, 0x70, 0x71, 0x74, 0x75, 0x76, 0x79, 0x7d, 0x82, 0x85, -0x84, 0x81, 0x7b, 0x76, 0x70, 0x6c, 0x6f, 0x76, 0x7c, 0x7a, 0x76, 0x76, 0x70, 0x70, 0x75, 0x7b, -0x7d, 0x74, 0x71, 0x72, 0x70, 0x70, 0x75, 0x80, 0x87, 0x8a, 0x91, 0x91, 0x8d, 0x8e, 0x8f, 0x8e, -0x87, 0x81, 0x7c, 0x7e, 0x8a, 0x94, 0x9a, 0x99, 0x94, 0x91, 0x8e, 0x8e, 0x92, 0x92, 0x8c, 0x87, -0x83, 0x84, 0x80, 0x7b, 0x7d, 0x80, 0x82, 0x86, 0x8b, 0x8c, 0x86, 0x85, 0x87, 0x86, 0x84, 0x7e, -0x7d, 0x79, 0x78, 0x80, 0x84, 0x8b, 0x8f, 0x92, 0x94, 0x90, 0x8d, 0x8c, 0x8c, 0x8d, 0x8a, 0x84, -0x7d, 0x7c, 0x82, 0x82, 0x82, 0x82, 0x7e, 0x7a, 0x77, 0x7b, 0x86, 0x8a, 0x87, 0x85, 0x7c, 0x78, -0x7b, 0x85, 0x8d, 0x92, 0x93, 0x8e, 0x85, 0x7e, 0x7d, 0x82, 0x7d, 0x7b, 0x7a, 0x6f, 0x69, 0x68, -0x6a, 0x6d, 0x6e, 0x73, 0x7b, 0x82, 0x88, 0x8b, 0x8a, 0x88, 0x86, 0x84, 0x7d, 0x75, 0x72, 0x72, -0x77, 0x7b, 0x80, 0x84, 0x80, 0x7c, 0x7c, 0x7c, 0x83, 0x8a, 0x93, 0x92, 0x89, 0x83, 0x81, 0x82, -0x82, 0x86, 0x89, 0x87, 0x85, 0x85, 0x83, 0x86, 0x87, 0x87, 0x83, 0x78, 0x72, 0x72, 0x75, 0x7e, -0x8b, 0x93, 0x92, 0x90, 0x8f, 0x8a, 0x86, 0x82, 0x7d, 0x78, 0x6d, 0x66, 0x6a, 0x6d, 0x74, 0x72, -0x6d, 0x70, 0x75, 0x77, 0x76, 0x75, 0x78, 0x78, 0x74, 0x70, 0x6d, 0x6a, 0x66, 0x67, 0x6d, 0x71, -0x70, 0x6d, 0x6c, 0x67, 0x64, 0x67, 0x69, 0x69, 0x69, 0x64, 0x63, 0x65, 0x68, 0x6c, 0x6f, 0x72, -0x79, 0x79, 0x77, 0x75, 0x76, 0x79, 0x7b, 0x7e, 0x7a, 0x74, 0x77, 0x81, 0x8d, 0x91, 0x91, 0x90, -0x8b, 0x84, 0x82, 0x87, 0x8a, 0x85, 0x82, 0x7e, 0x75, 0x74, 0x79, 0x83, 0x84, 0x7d, 0x7b, 0x7e, -0x80, 0x80, 0x84, 0x89, 0x8a, 0x8a, 0x87, 0x7e, 0x79, 0x78, 0x79, 0x80, 0x89, 0x8f, 0x91, 0x90, -0x91, 0x8f, 0x8c, 0x8c, 0x8e, 0x91, 0x88, 0x7e, 0x82, 0x89, 0x8d, 0x89, 0x8a, 0x8e, 0x8d, 0x89, -0x8a, 0x8a, 0x8d, 0x8f, 0x90, 0x8d, 0x85, 0x7d, 0x7e, 0x86, 0x8f, 0x97, 0x98, 0x93, 0x8d, 0x89, -0x88, 0x8b, 0x88, 0x83, 0x7b, 0x6f, 0x6e, 0x75, 0x7a, 0x83, 0x84, 0x86, 0x8d, 0x92, 0x91, 0x8c, -0x88, 0x87, 0x88, 0x87, 0x82, 0x81, 0x81, 0x81, 0x86, 0x88, 0x87, 0x82, 0x7b, 0x7c, 0x80, 0x7e, -0x80, 0x81, 0x82, 0x80, 0x79, 0x7a, 0x7c, 0x7b, 0x77, 0x72, 0x75, 0x7c, 0x79, 0x74, 0x74, 0x79, -0x7a, 0x79, 0x76, 0x70, 0x6f, 0x75, 0x80, 0x8c, 0x8f, 0x8f, 0x8c, 0x8a, 0x88, 0x87, 0x87, 0x84, -0x7c, 0x78, 0x70, 0x6d, 0x72, 0x78, 0x7b, 0x76, 0x70, 0x71, 0x75, 0x78, 0x7d, 0x81, 0x83, 0x82, -0x7c, 0x76, 0x6f, 0x6d, 0x6d, 0x70, 0x74, 0x79, 0x7d, 0x7d, 0x7a, 0x7a, 0x7d, 0x82, 0x82, 0x83, -0x7e, 0x75, 0x78, 0x84, 0x8d, 0x91, 0x91, 0x93, 0x96, 0x92, 0x8f, 0x8d, 0x87, 0x85, 0x86, 0x86, -0x83, 0x7c, 0x7b, 0x82, 0x89, 0x8c, 0x8d, 0x88, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x7a, 0x74, 0x6e, -0x69, 0x6c, 0x6f, 0x6e, 0x6c, 0x6c, 0x72, 0x79, 0x79, 0x77, 0x75, 0x77, 0x77, 0x75, 0x6f, 0x6a, -0x6c, 0x6f, 0x75, 0x7e, 0x83, 0x81, 0x7e, 0x7e, 0x83, 0x83, 0x7a, 0x76, 0x79, 0x7b, 0x7b, 0x7c, -0x80, 0x7e, 0x79, 0x71, 0x70, 0x75, 0x74, 0x73, 0x75, 0x75, 0x79, 0x7a, 0x79, 0x78, 0x76, 0x78, -0x7b, 0x82, 0x87, 0x8b, 0x8b, 0x8b, 0x8a, 0x89, 0x88, 0x88, 0x84, 0x7b, 0x72, 0x6e, 0x70, 0x78, -0x83, 0x8b, 0x88, 0x84, 0x87, 0x8c, 0x90, 0x91, 0x8f, 0x8c, 0x89, 0x85, 0x82, 0x81, 0x81, 0x80, -0x81, 0x83, 0x83, 0x82, 0x81, 0x83, 0x84, 0x85, 0x86, 0x84, 0x81, 0x7c, 0x7a, 0x79, 0x7c, 0x7e, -0x7c, 0x80, 0x86, 0x89, 0x87, 0x85, 0x82, 0x82, 0x80, 0x7b, 0x78, 0x74, 0x73, 0x7b, 0x89, 0x94, -0x96, 0x93, 0x91, 0x8e, 0x8e, 0x8b, 0x86, 0x83, 0x82, 0x80, 0x81, 0x83, 0x84, 0x84, 0x81, 0x7d, -0x80, 0x83, 0x84, 0x86, 0x85, 0x85, 0x87, 0x84, 0x80, 0x7c, 0x79, 0x76, 0x75, 0x77, 0x7c, 0x7e, -0x7d, 0x7e, 0x80, 0x82, 0x7c, 0x77, 0x78, 0x78, 0x76, 0x76, 0x78, 0x7b, 0x7a, 0x77, 0x76, 0x79, -0x7c, 0x7e, 0x82, 0x84, 0x83, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x83, 0x87, 0x8a, 0x8a, 0x8a, -0x8b, 0x8a, 0x88, 0x87, 0x86, 0x81, 0x77, 0x73, 0x72, 0x71, 0x74, 0x78, 0x79, 0x76, 0x79, 0x7e, -0x83, 0x84, 0x83, 0x82, 0x7c, 0x71, 0x6b, 0x6a, 0x6e, 0x76, 0x7d, 0x86, 0x88, 0x87, 0x89, 0x8b, -0x8d, 0x8d, 0x89, 0x88, 0x8a, 0x8c, 0x8d, 0x8f, 0x8f, 0x92, 0x93, 0x92, 0x96, 0x99, 0x96, 0x90, -0x8c, 0x8a, 0x89, 0x84, 0x81, 0x80, 0x79, 0x77, 0x7d, 0x85, 0x8a, 0x8c, 0x8b, 0x89, 0x82, 0x7b, -0x77, 0x77, 0x73, 0x6c, 0x6a, 0x6e, 0x73, 0x79, 0x7c, 0x7a, 0x76, 0x77, 0x7a, 0x7d, 0x81, 0x80, -0x7c, 0x79, 0x78, 0x76, 0x75, 0x73, 0x73, 0x73, 0x74, 0x76, 0x77, 0x79, 0x7b, 0x7c, 0x7a, 0x74, -0x71, 0x71, 0x70, 0x70, 0x6f, 0x6d, 0x69, 0x63, 0x66, 0x6e, 0x74, 0x73, 0x70, 0x6d, 0x6d, 0x70, -0x6c, 0x65, 0x62, 0x65, 0x6e, 0x7b, 0x84, 0x89, 0x89, 0x86, 0x86, 0x87, 0x89, 0x88, 0x84, 0x81, -0x81, 0x7a, 0x78, 0x78, 0x76, 0x79, 0x80, 0x81, 0x82, 0x85, 0x86, 0x86, 0x83, 0x82, 0x7e, 0x72, -0x6a, 0x6a, 0x74, 0x7a, 0x7b, 0x7e, 0x85, 0x88, 0x89, 0x89, 0x87, 0x80, 0x78, 0x7b, 0x7e, 0x7b, -0x79, 0x7d, 0x84, 0x88, 0x8a, 0x89, 0x8c, 0x91, 0x94, 0x93, 0x8f, 0x8f, 0x8e, 0x8b, 0x8b, 0x8d, -0x8b, 0x87, 0x89, 0x91, 0x98, 0x9c, 0x9c, 0x99, 0x94, 0x8a, 0x87, 0x81, 0x78, 0x7d, 0x7c, 0x79, -0x7a, 0x7c, 0x7e, 0x7d, 0x79, 0x7a, 0x83, 0x87, 0x86, 0x84, 0x82, 0x82, 0x78, 0x6d, 0x6c, 0x74, -0x7c, 0x82, 0x84, 0x84, 0x89, 0x87, 0x85, 0x87, 0x8e, 0x91, 0x8d, 0x88, 0x8f, 0x91, 0x8d, 0x87, -0x84, 0x86, 0x81, 0x7a, 0x7a, 0x7d, 0x79, 0x81, 0x89, 0x89, 0x84, 0x7b, 0x75, 0x70, 0x70, 0x79, -0x82, 0x85, 0x89, 0x8c, 0x8e, 0x8e, 0x88, 0x81, 0x7c, 0x79, 0x71, 0x6e, 0x70, 0x79, 0x7c, 0x7b, -0x7d, 0x7e, 0x78, 0x72, 0x72, 0x76, 0x78, 0x81, 0x86, 0x82, 0x7a, 0x76, 0x74, 0x70, 0x71, 0x76, -0x77, 0x7d, 0x8d, 0x92, 0x95, 0x98, 0x93, 0x8d, 0x8c, 0x83, 0x7e, 0x86, 0x8c, 0x92, 0x97, 0x98, -0x96, 0x96, 0x98, 0x95, 0x8c, 0x86, 0x8a, 0x87, 0x7d, 0x79, 0x7b, 0x7c, 0x7a, 0x83, 0x89, 0x8a, -0x88, 0x83, 0x85, 0x85, 0x86, 0x84, 0x78, 0x76, 0x72, 0x60, 0x5e, 0x5d, 0x67, 0x71, 0x75, 0x76, -0x76, 0x72, 0x6e, 0x6f, 0x6e, 0x6c, 0x6a, 0x64, 0x60, 0x61, 0x62, 0x62, 0x69, 0x6c, 0x6b, 0x73, -0x77, 0x7a, 0x81, 0x7d, 0x79, 0x79, 0x73, 0x75, 0x7a, 0x6e, 0x6e, 0x6f, 0x6b, 0x6c, 0x72, 0x70, -0x6c, 0x68, 0x67, 0x66, 0x6c, 0x67, 0x6e, 0x7b, 0x77, 0x7b, 0x80, 0x7d, 0x84, 0x8a, 0x8c, 0x8b, -0x8a, 0x8b, 0x8b, 0x89, 0x8b, 0x85, 0x7b, 0x80, 0x75, 0x6f, 0x81, 0x86, 0x88, 0x8b, 0x87, 0x84, -0x87, 0x8e, 0x91, 0x8a, 0x7b, 0x71, 0x70, 0x73, 0x76, 0x78, 0x75, 0x76, 0x84, 0x89, 0x8a, 0x8b, -0x9a, 0xa1, 0x9a, 0x93, 0x8e, 0x7e, 0x89, 0x93, 0x8b, 0x94, 0x9a, 0x98, 0x93, 0x8c, 0x88, 0x87, -0x84, 0x87, 0x86, 0x85, 0x89, 0x8d, 0x8b, 0x8d, 0x94, 0x9c, 0x99, 0x91, 0x8f, 0x8b, 0x86, 0x84, -0x88, 0x8a, 0x87, 0x7d, 0x78, 0x85, 0x85, 0x74, 0x7e, 0x86, 0x8d, 0x8b, 0x87, 0x88, 0x8a, 0x89, -0x87, 0x81, 0x74, 0x6a, 0x66, 0x63, 0x75, 0x86, 0x8a, 0x82, 0x7b, 0x7c, 0x7a, 0x75, 0x76, 0x7c, -0x84, 0x8d, 0x7e, 0x74, 0x76, 0x6f, 0x65, 0x62, 0x6b, 0x6f, 0x6b, 0x67, 0x6b, 0x6e, 0x6a, 0x73, -0x82, 0x7e, 0x79, 0x79, 0x87, 0x8e, 0x91, 0x8f, 0x86, 0x7d, 0x86, 0x89, 0x84, 0x85, 0x89, 0x89, -0x83, 0x78, 0x72, 0x77, 0x77, 0x7a, 0x7e, 0x88, 0x85, 0x85, 0x8b, 0x86, 0x80, 0x7b, 0x78, 0x72, -0x65, 0x68, 0x6d, 0x6f, 0x78, 0x7b, 0x71, 0x7a, 0x86, 0x89, 0x89, 0x81, 0x82, 0x89, 0x93, 0x8f, -0x8b, 0x8c, 0x88, 0x8e, 0x91, 0x86, 0x8b, 0x8f, 0x8a, 0x87, 0x86, 0x8a, 0x8e, 0x8e, 0x8b, 0x87, -0x87, 0x80, 0x81, 0x8c, 0x9e, 0x9c, 0x8f, 0x7d, 0x7a, 0x74, 0x6f, 0x7a, 0x7a, 0x71, 0x66, 0x62, -0x70, 0x7c, 0x80, 0x81, 0x75, 0x6e, 0x6c, 0x70, 0x79, 0x76, 0x7a, 0x7d, 0x78, 0x6d, 0x6a, 0x71, -0x78, 0x7e, 0x7c, 0x75, 0x6f, 0x72, 0x72, 0x71, 0x74, 0x74, 0x7c, 0x7d, 0x83, 0x80, 0x74, 0x76, -0x71, 0x70, 0x6c, 0x65, 0x67, 0x6b, 0x64, 0x5a, 0x5e, 0x62, 0x70, 0x7d, 0x7a, 0x75, 0x72, 0x6e, -0x72, 0x84, 0x8d, 0x8b, 0x8d, 0x8f, 0x80, 0x77, 0x7e, 0x8e, 0x8f, 0x84, 0x7e, 0x92, 0x98, 0x8c, -0x87, 0x83, 0x7b, 0x73, 0x7b, 0x8a, 0x85, 0x82, 0x87, 0x8a, 0x89, 0x74, 0x66, 0x76, 0x8f, 0x90, -0x84, 0x71, 0x79, 0x96, 0x9c, 0x8d, 0x83, 0x89, 0x88, 0x7e, 0x89, 0x9d, 0x98, 0x93, 0x8e, 0x89, -0x83, 0x7b, 0x7c, 0x88, 0x84, 0x83, 0x84, 0x87, 0x92, 0x91, 0x8a, 0x99, 0x97, 0x93, 0x99, 0x85, -0x7f, 0x85, 0x80, 0x80, 0x76, 0x79, 0x87, 0x89, 0x7d, 0x6a, 0x6b, 0x81, 0x91, 0x93, 0x8a, 0x7e, -0x6f, 0x6e, 0x74, 0x70, 0x7d, 0x88, 0x82, 0x80, 0x79, 0x6a, 0x6f, 0x72, 0x76, 0x7d, 0x7a, 0x75, -0x7c, 0x84, 0x83, 0x7d, 0x7a, 0x81, 0x81, 0x89, 0x8c, 0x85, 0x8a, 0x81, 0x73, 0x67, 0x65, 0x66, -0x5b, 0x5d, 0x6a, 0x72, 0x7e, 0x8d, 0x92, 0x88, 0x82, 0x8b, 0x92, 0x94, 0x8c, 0x86, 0x8a, 0x88, -0x91, 0x93, 0x85, 0x7c, 0x83, 0x7b, 0x75, 0x7c, 0x80, 0x86, 0x84, 0x86, 0x85, 0x81, 0x7c, 0x77, -0x83, 0x88, 0x88, 0x85, 0x85, 0x80, 0x6d, 0x77, 0x8d, 0x88, 0x7e, 0x79, 0x74, 0x79, 0x85, 0x8e, -0x91, 0x8c, 0x8d, 0x97, 0x94, 0x96, 0x8b, 0x93, 0xa9, 0xa3, 0x99, 0x92, 0x83, 0x76, 0x6d, 0x7b, -0x85, 0x89, 0x88, 0x8e, 0x89, 0x7e, 0x82, 0x81, 0x8d, 0x94, 0x85, 0x80, 0x7c, 0x73, 0x6f, 0x72, -0x7a, 0x78, 0x79, 0x7b, 0x7a, 0x76, 0x7d, 0x7d, 0x76, 0x6f, 0x6c, 0x6c, 0x67, 0x63, 0x72, 0x71, -0x72, 0x7e, 0x7b, 0x66, 0x5d, 0x75, 0x86, 0x80, 0x73, 0x72, 0x6c, 0x67, 0x64, 0x69, 0x78, 0x78, -0x71, 0x7d, 0x7e, 0x6e, 0x59, 0x54, 0x5c, 0x5b, 0x5e, 0x64, 0x5f, 0x54, 0x53, 0x5f, 0x67, 0x7a, -0x7e, 0x76, 0x70, 0x81, 0x87, 0x80, 0x7e, 0x83, 0x80, 0x77, 0x78, 0x88, 0x84, 0x85, 0x92, 0x97, -0x8e, 0x81, 0x8d, 0x89, 0x8b, 0x8a, 0x8e, 0x8c, 0x85, 0x83, 0x84, 0x7e, 0x8b, 0x8c, 0x84, 0x7a, -0x72, 0x6d, 0x6e, 0x73, 0x6e, 0x6e, 0x79, 0x87, 0x94, 0x95, 0x93, 0x90, 0x89, 0x8f, 0x96, 0xa1, -0xa3, 0xa1, 0x92, 0x84, 0x86, 0x81, 0x81, 0x88, 0x88, 0x82, 0x88, 0x93, 0x93, 0x8a, 0x7c, 0x78, -0x8b, 0x97, 0xa4, 0xae, 0xa3, 0x98, 0x8c, 0x83, 0x7c, 0x74, 0x7d, 0x89, 0x82, 0x7d, 0x83, 0x83, -0x7e, 0x87, 0x8b, 0x83, 0x76, 0x78, 0x81, 0x87, 0x81, 0x80, 0x84, 0x76, 0x6a, 0x6f, 0x71, 0x75, -0x80, 0x82, 0x81, 0x79, 0x7b, 0x80, 0x7c, 0x7c, 0x80, 0x80, 0x83, 0x8e, 0x8e, 0x79, 0x7c, 0x78, -0x7c, 0x73, 0x68, 0x6d, 0x6c, 0x6e, 0x6e, 0x66, 0x5d, 0x6b, 0x8b, 0x8e, 0x7e, 0x76, 0x80, 0x81, -0x87, 0x91, 0x8d, 0x84, 0x80, 0x7c, 0x83, 0x95, 0x97, 0x9f, 0x9c, 0x84, 0x85, 0x81, 0x7a, 0x82, -0x80, 0x85, 0x84, 0x7c, 0x88, 0x99, 0x96, 0x8f, 0x8b, 0x84, 0x76, 0x6b, 0x77, 0x83, 0x86, 0x87, -0x83, 0x7c, 0x79, 0x8a, 0x91, 0x90, 0x87, 0x84, 0x9a, 0x96, 0x88, 0x85, 0x7a, 0x6f, 0x70, 0x74, -0x84, 0x8c, 0x80, 0x7e, 0x85, 0x7b, 0x81, 0x85, 0x81, 0x77, 0x80, 0x83, 0x7b, 0x7c, 0x6e, 0x6e, -0x75, 0x72, 0x70, 0x72, 0x7d, 0x84, 0x8d, 0x8c, 0x69, 0x5c, 0x68, 0x6f, 0x77, 0x76, 0x75, 0x76, -0x70, 0x6d, 0x7b, 0x7e, 0x6b, 0x5c, 0x5c, 0x66, 0x5c, 0x56, 0x63, 0x69, 0x6a, 0x60, 0x5b, 0x68, -0x6b, 0x6a, 0x70, 0x77, 0x82, 0x9c, 0x91, 0x74, 0x73, 0x5b, 0x50, 0x59, 0x5b, 0x66, 0x6e, 0x69, -0x73, 0x7c, 0x79, 0x73, 0x7b, 0x89, 0x84, 0x83, 0x93, 0x9b, 0x9b, 0x9a, 0x94, 0x88, 0x8c, 0x93, -0x9d, 0x9e, 0x94, 0x97, 0x93, 0x88, 0x83, 0x87, 0x77, 0x7c, 0x8e, 0x90, 0x95, 0x91, 0xa7, 0xb1, -0xa2, 0x8e, 0x82, 0x87, 0x7a, 0x77, 0x87, 0x86, 0x83, 0x7e, 0x72, 0x74, 0x7b, 0x78, 0x8f, 0xa0, -0xa4, 0xb2, 0xb4, 0xa1, 0x91, 0x88, 0x8c, 0x82, 0x77, 0x83, 0x88, 0x78, 0x77, 0x90, 0x95, 0x8e, -0x81, 0x75, 0x72, 0x76, 0x77, 0x73, 0x82, 0x9b, 0x95, 0x85, 0x7c, 0x74, 0x6a, 0x69, 0x6f, 0x81, -0x89, 0x7d, 0x71, 0x65, 0x6c, 0x6b, 0x63, 0x64, 0x6f, 0x7c, 0x78, 0x7c, 0x8b, 0x93, 0x90, 0x87, -0x85, 0x85, 0x84, 0x75, 0x6c, 0x72, 0x7b, 0x7b, 0x6d, 0x6f, 0x77, 0x7c, 0x88, 0x95, 0x9a, 0x97, -0x96, 0x83, 0x74, 0x71, 0x72, 0x72, 0x66, 0x6a, 0x74, 0x6f, 0x74, 0x7b, 0x81, 0x81, 0x77, 0x78, -0x84, 0x85, 0x7d, 0x88, 0x90, 0x8b, 0x8a, 0x89, 0x83, 0x81, 0x88, 0x92, 0xa1, 0xa1, 0x95, 0x8e, -0x81, 0x72, 0x73, 0x7a, 0x7d, 0x71, 0x75, 0x82, 0x8a, 0x93, 0x92, 0x8f, 0x7e, 0x70, 0x6f, 0x70, -0x6d, 0x71, 0x78, 0x76, 0x74, 0x75, 0x75, 0x6e, 0x6e, 0x72, 0x7d, 0x8b, 0x89, 0x85, 0x7e, 0x76, -0x73, 0x79, 0x7a, 0x75, 0x75, 0x81, 0x8b, 0x90, 0x91, 0x95, 0x9b, 0x96, 0x92, 0x94, 0x8d, 0x85, -0x86, 0x8b, 0x8f, 0x8c, 0x83, 0x7b, 0x77, 0x7b, 0x7d, 0x82, 0x7d, 0x71, 0x68, 0x65, 0x65, 0x6d, -0x74, 0x71, 0x6c, 0x6e, 0x73, 0x78, 0x80, 0x81, 0x84, 0x85, 0x7d, 0x76, 0x73, 0x72, 0x75, 0x79, -0x7a, 0x7a, 0x7a, 0x7b, 0x7c, 0x7e, 0x83, 0x87, 0x88, 0x84, 0x81, 0x82, 0x7c, 0x75, 0x6e, 0x69, -0x69, 0x68, 0x69, 0x6e, 0x71, 0x70, 0x70, 0x75, 0x75, 0x6d, 0x69, 0x68, 0x6b, 0x72, 0x7a, 0x7e, -0x82, 0x84, 0x84, 0x84, 0x83, 0x83, 0x84, 0x84, 0x83, 0x79, 0x76, 0x7a, 0x82, 0x88, 0x8a, 0x8c, -0x8f, 0x90, 0x90, 0x93, 0x96, 0x9e, 0xa0, 0x94, 0x8a, 0x85, 0x7c, 0x7c, 0x7e, 0x7a, 0x75, 0x70, -0x74, 0x7e, 0x80, 0x7a, 0x78, 0x78, 0x77, 0x76, 0x77, 0x7a, 0x82, 0x84, 0x85, 0x83, 0x84, 0x89, -0x8d, 0x90, 0x8e, 0x8c, 0x8d, 0x8c, 0x89, 0x85, 0x84, 0x85, 0x89, 0x8a, 0x8d, 0x8f, 0x90, 0x8d, -0x85, 0x7e, 0x7d, 0x7e, 0x81, 0x7e, 0x7b, 0x76, 0x74, 0x7c, 0x80, 0x7b, 0x76, 0x70, 0x71, 0x78, -0x7b, 0x7d, 0x81, 0x81, 0x7b, 0x74, 0x70, 0x72, 0x76, 0x7a, 0x7e, 0x80, 0x7d, 0x80, 0x84, 0x87, -0x89, 0x88, 0x83, 0x81, 0x7d, 0x76, 0x77, 0x7d, 0x80, 0x7a, 0x78, 0x7b, 0x7c, 0x80, 0x81, 0x81, -0x81, 0x85, 0x8d, 0x91, 0x90, 0x89, 0x84, 0x83, 0x84, 0x89, 0x89, 0x89, 0x8b, 0x8b, 0x8a, 0x87, -0x85, 0x83, 0x82, 0x7c, 0x77, 0x79, 0x7e, 0x85, 0x86, 0x86, 0x8b, 0x8f, 0x91, 0x93, 0x91, 0x8f, -0x8c, 0x83, 0x7a, 0x76, 0x75, 0x7a, 0x7d, 0x7d, 0x79, 0x74, 0x77, 0x7d, 0x83, 0x83, 0x80, 0x7c, -0x7c, 0x80, 0x81, 0x85, 0x89, 0x8b, 0x89, 0x86, 0x83, 0x86, 0x8b, 0x8e, 0x90, 0x8d, 0x89, 0x87, -0x86, 0x85, 0x85, 0x87, 0x8b, 0x8a, 0x87, 0x87, 0x87, 0x86, 0x80, 0x7c, 0x7d, 0x7b, 0x76, 0x72, -0x6b, 0x62, 0x64, 0x6b, 0x75, 0x79, 0x75, 0x73, 0x72, 0x71, 0x76, 0x79, 0x7b, 0x82, 0x82, 0x7d, -0x78, 0x74, 0x74, 0x74, 0x70, 0x6c, 0x67, 0x66, 0x66, 0x69, 0x6d, 0x6d, 0x6a, 0x66, 0x61, 0x5b, -0x5d, 0x61, 0x62, 0x61, 0x5f, 0x63, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x61, 0x66, 0x6a, 0x6e, 0x6e, -0x70, 0x72, 0x75, 0x79, 0x7d, 0x80, 0x85, 0x8a, 0x8b, 0x8c, 0x8b, 0x8f, 0x92, 0x91, 0x90, 0x8f, -0x8f, 0x90, 0x8e, 0x8c, 0x8d, 0x8f, 0x8f, 0x91, 0x92, 0x8f, 0x8b, 0x86, 0x7e, 0x7d, 0x81, 0x83, -0x85, 0x87, 0x84, 0x81, 0x81, 0x84, 0x8a, 0x8b, 0x89, 0x83, 0x7c, 0x7a, 0x7c, 0x81, 0x8a, 0x92, -0x93, 0x91, 0x8d, 0x8f, 0x94, 0x96, 0x9b, 0x9b, 0x98, 0x98, 0x98, 0x99, 0x9b, 0x9b, 0x99, 0x98, -0x95, 0x91, 0x8a, 0x83, 0x7d, 0x78, 0x7a, 0x7b, 0x78, 0x73, 0x71, 0x6f, 0x6f, 0x72, 0x79, 0x7c, -0x7c, 0x80, 0x81, 0x80, 0x7d, 0x82, 0x83, 0x83, 0x81, 0x7d, 0x7c, 0x7b, 0x7c, 0x83, 0x86, 0x84, -0x82, 0x81, 0x82, 0x86, 0x87, 0x89, 0x8a, 0x8b, 0x8b, 0x88, 0x88, 0x89, 0x85, 0x80, 0x77, 0x74, -0x76, 0x78, 0x78, 0x79, 0x79, 0x75, 0x74, 0x74, 0x79, 0x7c, 0x7a, 0x7b, 0x7c, 0x7e, 0x83, 0x86, -0x88, 0x87, 0x84, 0x81, 0x80, 0x7a, 0x77, 0x78, 0x78, 0x7b, 0x80, 0x84, 0x86, 0x85, 0x85, 0x85, -0x88, 0x89, 0x87, 0x86, 0x89, 0x8d, 0x88, 0x83, 0x81, 0x82, 0x81, 0x7c, 0x75, 0x71, 0x6f, 0x6c, -0x6c, 0x6d, 0x6f, 0x6b, 0x63, 0x60, 0x64, 0x6a, 0x72, 0x78, 0x7c, 0x80, 0x80, 0x7e, 0x7e, 0x83, -0x87, 0x8b, 0x87, 0x85, 0x82, 0x83, 0x86, 0x87, 0x8a, 0x8a, 0x89, 0x88, 0x85, 0x85, 0x82, 0x7c, -0x76, 0x77, 0x7a, 0x7a, 0x7a, 0x78, 0x75, 0x72, 0x72, 0x73, 0x72, 0x73, 0x70, 0x69, 0x68, 0x6c, -0x71, 0x74, 0x75, 0x74, 0x73, 0x70, 0x6e, 0x72, 0x75, 0x76, 0x7a, 0x79, 0x76, 0x75, 0x76, 0x79, -0x79, 0x74, 0x6f, 0x6d, 0x6b, 0x6f, 0x71, 0x72, 0x72, 0x70, 0x76, 0x7a, 0x79, 0x7c, 0x7a, 0x78, -0x7d, 0x83, 0x8a, 0x8f, 0x8e, 0x8a, 0x86, 0x80, 0x82, 0x8a, 0x8c, 0x8c, 0x89, 0x88, 0x89, 0x89, -0x89, 0x8b, 0x8b, 0x88, 0x8b, 0x8f, 0x94, 0x9a, 0x9c, 0x9f, 0x9d, 0x9a, 0x98, 0x94, 0x92, 0x90, -0x8a, 0x87, 0x84, 0x82, 0x88, 0x8b, 0x88, 0x84, 0x81, 0x80, 0x82, 0x85, 0x85, 0x84, 0x7c, 0x73, -0x79, 0x81, 0x86, 0x88, 0x86, 0x82, 0x7e, 0x7b, 0x78, 0x76, 0x79, 0x7d, 0x7c, 0x7c, 0x7d, 0x7c, -0x7d, 0x7e, 0x80, 0x81, 0x81, 0x7e, 0x82, 0x85, 0x87, 0x86, 0x81, 0x7c, 0x7c, 0x7a, 0x78, 0x75, -0x71, 0x71, 0x73, 0x81, 0x8a, 0x8b, 0x86, 0x81, 0x7e, 0x81, 0x8e, 0x95, 0x93, 0x90, 0x8f, 0x8b, -0x87, 0x87, 0x86, 0x84, 0x82, 0x80, 0x79, 0x77, 0x78, 0x78, 0x77, 0x75, 0x75, 0x74, 0x70, 0x6c, -0x6e, 0x6f, 0x6e, 0x6d, 0x6f, 0x73, 0x73, 0x75, 0x79, 0x77, 0x76, 0x75, 0x78, 0x7b, 0x7c, 0x7c, -0x7e, 0x7b, 0x7a, 0x86, 0x8b, 0x8f, 0x8f, 0x8d, 0x8a, 0x83, 0x82, 0x85, 0x85, 0x83, 0x83, 0x84, -0x85, 0x86, 0x88, 0x88, 0x80, 0x7d, 0x7e, 0x7d, 0x7c, 0x7e, 0x80, 0x7d, 0x7a, 0x79, 0x7d, 0x81, -0x80, 0x7d, 0x7d, 0x78, 0x70, 0x72, 0x75, 0x74, 0x71, 0x6d, 0x6d, 0x6d, 0x6c, 0x73, 0x74, 0x78, -0x82, 0x83, 0x82, 0x8d, 0x91, 0x95, 0x94, 0x92, 0x92, 0x91, 0x95, 0x9a, 0x9e, 0x9d, 0x9b, 0x96, -0x92, 0x91, 0x8d, 0x83, 0x7d, 0x80, 0x87, 0x87, 0x85, 0x85, 0x76, 0x6d, 0x6f, 0x73, 0x7a, 0x7d, -0x80, 0x7c, 0x7b, 0x7c, 0x7a, 0x77, 0x6f, 0x6f, 0x6f, 0x73, 0x7e, 0x83, 0x85, 0x89, 0x89, 0x85, -0x81, 0x74, 0x71, 0x77, 0x81, 0x86, 0x88, 0x85, 0x81, 0x7a, 0x78, 0x77, 0x71, 0x6c, 0x6e, 0x70, -0x71, 0x73, 0x74, 0x71, 0x69, 0x63, 0x6a, 0x69, 0x65, 0x68, 0x6f, 0x78, 0x82, 0x89, 0x8e, 0x8d, -0x81, 0x78, 0x70, 0x66, 0x70, 0x75, 0x77, 0x7c, 0x84, 0x83, 0x7e, 0x83, 0x89, 0x87, 0x7d, 0x7b, -0x7d, 0x76, 0x7e, 0x86, 0x82, 0x7e, 0x7e, 0x81, 0x8c, 0x90, 0x8d, 0x8b, 0x8a, 0x89, 0x85, 0x81, -0x80, 0x81, 0x74, 0x73, 0x73, 0x6e, 0x68, 0x6b, 0x6e, 0x71, 0x77, 0x7a, 0x7c, 0x7c, 0x86, 0x8e, -0x8f, 0x91, 0x93, 0x8b, 0x82, 0x84, 0x8c, 0x91, 0x91, 0x8e, 0x91, 0x95, 0x92, 0x90, 0x85, 0x7c, -0x83, 0x88, 0x85, 0x8c, 0x89, 0x86, 0x84, 0x80, 0x7a, 0x80, 0x83, 0x7d, 0x76, 0x75, 0x7c, 0x7e, -0x7e, 0x80, 0x81, 0x79, 0x6e, 0x6f, 0x75, 0x76, 0x86, 0x96, 0x9f, 0x9d, 0x95, 0x89, 0x86, 0x8f, -0x94, 0x88, 0x84, 0x7c, 0x77, 0x76, 0x76, 0x75, 0x75, 0x79, 0x82, 0x85, 0x86, 0x87, 0x83, 0x7b, -0x85, 0x93, 0x90, 0x81, 0x80, 0x82, 0x79, 0x77, 0x7c, 0x87, 0x8d, 0x8c, 0x85, 0x7d, 0x78, 0x73, -0x6f, 0x71, 0x78, 0x78, 0x72, 0x74, 0x7b, 0x82, 0x89, 0x8b, 0x89, 0x81, 0x78, 0x7b, 0x82, 0x7b, -0x75, 0x72, 0x70, 0x6f, 0x76, 0x78, 0x7a, 0x82, 0x8f, 0x9a, 0x90, 0x7a, 0x6e, 0x73, 0x6d, 0x67, -0x71, 0x7b, 0x7e, 0x80, 0x7d, 0x77, 0x6e, 0x76, 0x8e, 0x8e, 0x84, 0x7e, 0x86, 0x86, 0x83, 0x83, -0x80, 0x7e, 0x84, 0x8e, 0x91, 0x90, 0x9c, 0xa0, 0x9c, 0x9c, 0x98, 0x92, 0x87, 0x7b, 0x72, 0x6b, -0x6a, 0x6d, 0x7d, 0x73, 0x71, 0x74, 0x77, 0x73, 0x61, 0x67, 0x7b, 0x78, 0x75, 0x6f, 0x66, 0x70, -0x83, 0x80, 0x7b, 0x72, 0x66, 0x70, 0x7d, 0x7d, 0x77, 0x75, 0x6f, 0x68, 0x67, 0x5f, 0x50, 0x5a, -0x69, 0x6a, 0x63, 0x66, 0x74, 0x7e, 0x82, 0x86, 0x7e, 0x73, 0x6d, 0x6f, 0x7b, 0x74, 0x67, 0x6f, -0x73, 0x71, 0x77, 0x86, 0x8e, 0x80, 0x87, 0x8d, 0x8d, 0xa1, 0x9e, 0x93, 0x88, 0x7e, 0x7d, 0x88, -0x8e, 0x85, 0x81, 0x87, 0x8d, 0x8e, 0x89, 0x86, 0x89, 0x87, 0x7d, 0x71, 0x6e, 0x75, 0x86, 0x96, -0x9a, 0x96, 0x8f, 0x8c, 0x8d, 0x93, 0x92, 0x85, 0x85, 0x83, 0x7d, 0x7b, 0x6f, 0x6e, 0x7c, 0x77, -0x75, 0x72, 0x83, 0x94, 0x97, 0x9a, 0x9a, 0x98, 0x94, 0x99, 0x96, 0x8d, 0x95, 0x9b, 0x94, 0x85, -0x87, 0x91, 0x99, 0x91, 0x86, 0x83, 0x88, 0x8b, 0x8a, 0x83, 0x7c, 0x6d, 0x64, 0x82, 0x88, 0x7c, -0x74, 0x75, 0x75, 0x76, 0x81, 0x82, 0x83, 0x87, 0x7e, 0x6b, 0x66, 0x7e, 0x92, 0x94, 0x8f, 0x8a, -0x88, 0x81, 0x7c, 0x93, 0xa4, 0x98, 0x8e, 0x84, 0x70, 0x63, 0x5d, 0x63, 0x6e, 0x69, 0x6a, 0x72, -0x80, 0x81, 0x79, 0x6e, 0x68, 0x70, 0x7e, 0x73, 0x5d, 0x64, 0x77, 0x7b, 0x7c, 0x7c, 0x83, 0x89, -0x82, 0x7c, 0x7c, 0x85, 0x87, 0x85, 0x85, 0x85, 0x76, 0x68, 0x65, 0x6e, 0x81, 0x8d, 0x89, 0x83, -0x81, 0x87, 0x88, 0x86, 0x83, 0x87, 0x82, 0x71, 0x6e, 0x83, 0x8c, 0x85, 0x7c, 0x7e, 0x8b, 0x88, -0x76, 0x6c, 0x65, 0x61, 0x60, 0x5c, 0x5c, 0x62, 0x6b, 0x6e, 0x70, 0x75, 0x81, 0x8b, 0x92, 0xa1, -0x9d, 0x8e, 0x8a, 0x8b, 0x8b, 0x89, 0x8e, 0x92, 0x94, 0x99, 0x9a, 0x93, 0x86, 0x82, 0x88, 0x94, -0xa9, 0xa8, 0x9e, 0x97, 0x8e, 0x7c, 0x6b, 0x66, 0x74, 0x7a, 0x72, 0x6e, 0x72, 0x75, 0x6a, 0x5f, -0x5f, 0x63, 0x68, 0x70, 0x68, 0x6b, 0x7e, 0x82, 0x84, 0x85, 0x7d, 0x78, 0x79, 0x81, 0x8e, 0x8f, -0x88, 0x81, 0x7b, 0x7b, 0x69, 0x5e, 0x60, 0x5c, 0x61, 0x6c, 0x6e, 0x6f, 0x7b, 0x87, 0x87, 0x88, -0x93, 0x94, 0x7d, 0x6e, 0x6b, 0x6c, 0x6b, 0x78, 0x8d, 0x8d, 0x87, 0x8b, 0x8f, 0x89, 0x7d, 0x7c, -0x7c, 0x7e, 0x82, 0x85, 0x87, 0x87, 0x81, 0x7a, 0x76, 0x81, 0x89, 0x92, 0x97, 0x95, 0x97, 0x93, -0x89, 0x86, 0x81, 0x85, 0x8e, 0x8c, 0x8d, 0x93, 0x94, 0x92, 0x95, 0x9d, 0x9d, 0x91, 0x87, 0x7e, -0x78, 0x76, 0x75, 0x74, 0x6e, 0x6a, 0x7c, 0x8d, 0x8b, 0x89, 0x86, 0x7a, 0x78, 0x80, 0x80, 0x72, -0x72, 0x7b, 0x87, 0x91, 0x87, 0x80, 0x84, 0x84, 0x87, 0x9a, 0x98, 0x8d, 0x7b, 0x74, 0x77, 0x75, -0x69, 0x6d, 0x7b, 0x71, 0x6a, 0x6c, 0x6d, 0x63, 0x6a, 0x80, 0x85, 0x87, 0x85, 0x7d, 0x74, 0x79, -0x8e, 0x91, 0x87, 0x85, 0x8f, 0x8f, 0x8f, 0x86, 0x89, 0x8a, 0x79, 0x6d, 0x72, 0x70, 0x6c, 0x6f, -0x7a, 0x7d, 0x71, 0x6a, 0x6d, 0x6b, 0x6e, 0x73, 0x78, 0x75, 0x7a, 0x83, 0x7c, 0x73, 0x73, 0x78, -0x75, 0x75, 0x7d, 0x82, 0x76, 0x6e, 0x82, 0x9a, 0x9c, 0x9c, 0x9a, 0x8f, 0x85, 0x84, 0x88, 0x8a, -0x82, 0x70, 0x66, 0x6f, 0x6d, 0x6b, 0x75, 0x77, 0x79, 0x83, 0x81, 0x7e, 0x7c, 0x7e, 0x81, 0x85, -0x84, 0x7c, 0x7a, 0x89, 0x9a, 0x8c, 0x82, 0x81, 0x71, 0x69, 0x67, 0x73, 0x7a, 0x84, 0x8c, 0x8c, -0x79, 0x72, 0x8a, 0x9b, 0xa5, 0xa6, 0xa2, 0xa5, 0xa1, 0x97, 0x9b, 0x9e, 0x99, 0x91, 0x91, 0x93, -0x92, 0x9b, 0x9e, 0x8b, 0x7c, 0x86, 0x7b, 0x72, 0x76, 0x74, 0x77, 0x6d, 0x6f, 0x6b, 0x63, 0x57, -0x51, 0x5e, 0x6a, 0x6e, 0x71, 0x77, 0x6d, 0x68, 0x65, 0x5c, 0x69, 0x7b, 0x83, 0x82, 0x7e, 0x79, -0x79, 0x83, 0x86, 0x86, 0x84, 0x6e, 0x58, 0x52, 0x67, 0x7c, 0x7c, 0x70, 0x6c, 0x62, 0x51, 0x52, -0x5e, 0x60, 0x63, 0x6a, 0x79, 0x75, 0x60, 0x5b, 0x63, 0x6e, 0x75, 0x6d, 0x6e, 0x79, 0x87, 0xa8, -0xb8, 0x9c, 0x92, 0x8c, 0x8f, 0x8a, 0x8c, 0x91, 0x9d, 0xa0, 0xa4, 0xaf, 0xa8, 0x8f, 0x87, 0x8d, -0x9d, 0xa5, 0xa8, 0x9c, 0x8e, 0x8a, 0x88, 0x89, 0x97, 0x99, 0x93, 0x95, 0x86, 0x8d, 0xa3, 0x92, -0x82, 0x80, 0x71, 0x62, 0x66, 0x70, 0x79, 0x83, 0x84, 0x88, 0x80, 0x6e, 0x68, 0x86, 0x9a, 0x9c, -0x94, 0x8b, 0x83, 0x7b, 0x73, 0x6f, 0x71, 0x81, 0x89, 0x8f, 0x95, 0x8f, 0x90, 0x8f, 0x91, 0x94, -0x8d, 0x70, 0x68, 0x78, 0x7c, 0x7e, 0x7d, 0x81, 0x7e, 0x6c, 0x5a, 0x55, 0x5a, 0x64, 0x6c, 0x6e, -0x6e, 0x6f, 0x6b, 0x63, 0x68, 0x72, 0x74, 0x7b, 0x8c, 0x92, 0x9f, 0xab, 0xa0, 0x92, 0x89, 0x80, -0x6e, 0x64, 0x72, 0x7b, 0x79, 0x7c, 0x8a, 0x90, 0x85, 0x71, 0x75, 0x82, 0x8c, 0x8a, 0x7e, 0x7d, -0x80, 0x7c, 0x7a, 0x85, 0x8a, 0x82, 0x81, 0x84, 0x8c, 0x92, 0x8e, 0x85, 0x7b, 0x75, 0x6d, 0x6b, -0x6d, 0x75, 0x82, 0x7d, 0x7c, 0x82, 0x87, 0x85, 0x82, 0x89, 0x8c, 0x8e, 0x87, 0x80, 0x80, 0x81, -0x80, 0x7c, 0x7a, 0x7a, 0x7d, 0x7d, 0x7d, 0x7d, 0x7a, 0x7a, 0x79, 0x7a, 0x79, 0x75, 0x72, 0x72, -0x76, 0x7a, 0x7b, 0x80, 0x7d, 0x79, 0x75, 0x74, 0x79, 0x7d, 0x82, 0x7e, 0x7a, 0x79, 0x7d, 0x84, -0x88, 0x86, 0x82, 0x7e, 0x7e, 0x87, 0x95, 0x99, 0x97, 0x93, 0x8e, 0x8b, 0x89, 0x89, 0x85, 0x7b, -0x74, 0x72, 0x72, 0x73, 0x77, 0x78, 0x77, 0x78, 0x79, 0x7a, 0x76, 0x75, 0x77, 0x77, 0x74, 0x71, -0x71, 0x72, 0x70, 0x6f, 0x6e, 0x6e, 0x6f, 0x72, 0x73, 0x71, 0x70, 0x6e, 0x6e, 0x6f, 0x72, 0x76, -0x7d, 0x7e, 0x80, 0x86, 0x87, 0x87, 0x84, 0x85, 0x85, 0x7c, 0x79, 0x79, 0x7b, 0x82, 0x82, 0x80, -0x82, 0x80, 0x7d, 0x81, 0x85, 0x8b, 0x90, 0x8e, 0x89, 0x8b, 0x90, 0x91, 0x91, 0x8f, 0x8c, 0x8d, -0x8f, 0x92, 0x92, 0x8c, 0x86, 0x83, 0x83, 0x83, 0x82, 0x81, 0x80, 0x81, 0x83, 0x86, 0x87, 0x87, -0x87, 0x86, 0x84, 0x7d, 0x7a, 0x83, 0x8c, 0x8f, 0x90, 0x8b, 0x83, 0x7e, 0x7c, 0x7e, 0x83, 0x84, -0x84, 0x80, 0x7d, 0x80, 0x84, 0x82, 0x7c, 0x79, 0x79, 0x7b, 0x7e, 0x81, 0x7d, 0x79, 0x78, 0x76, -0x74, 0x78, 0x7c, 0x80, 0x80, 0x7b, 0x79, 0x79, 0x77, 0x77, 0x74, 0x70, 0x70, 0x73, 0x7c, 0x82, -0x81, 0x7b, 0x77, 0x7a, 0x7a, 0x7a, 0x7e, 0x7c, 0x7b, 0x79, 0x7a, 0x7c, 0x80, 0x82, 0x7e, 0x7d, -0x82, 0x87, 0x8c, 0x8c, 0x89, 0x86, 0x81, 0x7b, 0x7b, 0x7a, 0x7c, 0x86, 0x8a, 0x89, 0x80, 0x77, -0x76, 0x76, 0x76, 0x72, 0x6f, 0x6f, 0x6f, 0x6f, 0x75, 0x7a, 0x79, 0x7a, 0x80, 0x81, 0x7b, 0x78, -0x7d, 0x83, 0x84, 0x83, 0x84, 0x84, 0x81, 0x80, 0x7e, 0x7d, 0x86, 0x8d, 0x8d, 0x89, 0x88, 0x88, -0x85, 0x83, 0x83, 0x85, 0x87, 0x87, 0x87, 0x85, 0x82, 0x80, 0x7e, 0x7c, 0x77, 0x71, 0x6f, 0x72, -0x74, 0x75, 0x72, 0x74, 0x75, 0x74, 0x75, 0x78, 0x7e, 0x88, 0x91, 0x8e, 0x89, 0x86, 0x86, 0x8c, -0x90, 0x91, 0x94, 0x97, 0x9a, 0x9a, 0x9a, 0x98, 0x96, 0x94, 0x93, 0x93, 0x98, 0x97, 0x95, 0x92, -0x8c, 0x86, 0x84, 0x83, 0x82, 0x7d, 0x77, 0x76, 0x78, 0x76, 0x72, 0x70, 0x71, 0x6f, 0x6b, 0x63, -0x5f, 0x64, 0x6a, 0x6b, 0x6a, 0x6b, 0x6d, 0x70, 0x73, 0x72, 0x6e, 0x6d, 0x6f, 0x72, 0x75, 0x75, -0x74, 0x72, 0x75, 0x78, 0x79, 0x7c, 0x84, 0x85, 0x82, 0x7e, 0x7d, 0x7a, 0x7a, 0x7a, 0x73, 0x6c, -0x6b, 0x70, 0x73, 0x75, 0x7b, 0x80, 0x80, 0x7b, 0x75, 0x74, 0x7a, 0x7d, 0x79, 0x76, 0x7c, 0x81, -0x82, 0x86, 0x89, 0x8a, 0x90, 0x96, 0x99, 0x95, 0x8d, 0x89, 0x8a, 0x8c, 0x8b, 0x8a, 0x8b, 0x8c, -0x8c, 0x8d, 0x8a, 0x85, 0x83, 0x82, 0x81, 0x7e, 0x79, 0x74, 0x70, 0x71, 0x78, 0x7a, 0x7b, 0x7b, -0x7a, 0x77, 0x78, 0x7e, 0x85, 0x81, 0x79, 0x78, 0x78, 0x78, 0x77, 0x76, 0x76, 0x75, 0x7a, 0x80, -0x82, 0x84, 0x86, 0x89, 0x88, 0x84, 0x86, 0x8d, 0x8f, 0x8d, 0x8a, 0x8a, 0x8c, 0x8b, 0x8c, 0x8a, -0x87, 0x86, 0x81, 0x7c, 0x7d, 0x82, 0x84, 0x83, 0x82, 0x7e, 0x79, 0x76, 0x79, 0x81, 0x83, 0x81, -0x84, 0x8a, 0x88, 0x85, 0x82, 0x81, 0x82, 0x82, 0x81, 0x7d, 0x7c, 0x80, 0x82, 0x83, 0x80, 0x85, -0x8a, 0x8b, 0x86, 0x7e, 0x7b, 0x7d, 0x7e, 0x80, 0x7e, 0x79, 0x74, 0x74, 0x73, 0x74, 0x7b, 0x81, -0x86, 0x85, 0x84, 0x87, 0x87, 0x86, 0x83, 0x7a, 0x79, 0x7d, 0x82, 0x86, 0x89, 0x8a, 0x8a, 0x8d, -0x8d, 0x87, 0x83, 0x81, 0x7d, 0x7d, 0x80, 0x81, 0x83, 0x85, 0x85, 0x82, 0x7e, 0x7e, 0x7e, 0x7c, -0x78, 0x73, 0x6d, 0x6b, 0x6b, 0x67, 0x65, 0x69, 0x70, 0x77, 0x7a, 0x7c, 0x7b, 0x7b, 0x83, 0x87, -0x85, 0x84, 0x84, 0x82, 0x82, 0x85, 0x86, 0x8a, 0x8d, 0x92, 0x93, 0x93, 0x92, 0x8c, 0x88, 0x86, -0x86, 0x89, 0x88, 0x84, 0x80, 0x7c, 0x7a, 0x7b, 0x7c, 0x7a, 0x7a, 0x77, 0x73, 0x6f, 0x6b, 0x69, -0x6c, 0x72, 0x75, 0x71, 0x6a, 0x66, 0x6a, 0x70, 0x71, 0x71, 0x71, 0x6e, 0x6c, 0x6a, 0x6c, 0x6f, -0x6f, 0x6d, 0x6c, 0x6c, 0x6a, 0x6c, 0x71, 0x73, 0x78, 0x81, 0x83, 0x81, 0x7e, 0x79, 0x75, 0x73, -0x72, 0x77, 0x78, 0x75, 0x75, 0x76, 0x75, 0x76, 0x7e, 0x89, 0x8c, 0x8b, 0x88, 0x84, 0x85, 0x88, -0x8c, 0x8c, 0x8a, 0x8b, 0x8c, 0x8f, 0x93, 0x96, 0x95, 0x94, 0x92, 0x94, 0x94, 0x93, 0x91, 0x90, -0x90, 0x8d, 0x8c, 0x90, 0x90, 0x91, 0x93, 0x93, 0x92, 0x8c, 0x87, 0x83, 0x7b, 0x74, 0x71, 0x72, -0x73, 0x78, 0x7e, 0x8a, 0x90, 0x8c, 0x8a, 0x8b, 0x8d, 0x8e, 0x8e, 0x8d, 0x90, 0x91, 0x8d, 0x8c, -0x8c, 0x85, 0x81, 0x81, 0x84, 0x85, 0x82, 0x7d, 0x7a, 0x79, 0x76, 0x75, 0x78, 0x75, 0x72, 0x70, -0x6e, 0x6d, 0x70, 0x70, 0x69, 0x6b, 0x74, 0x73, 0x6b, 0x68, 0x6c, 0x72, 0x76, 0x78, 0x74, 0x6b, -0x68, 0x6e, 0x76, 0x7b, 0x79, 0x77, 0x78, 0x7b, 0x81, 0x82, 0x7d, 0x7c, 0x7d, 0x84, 0x87, 0x87, -0x8a, 0x8f, 0x91, 0x92, 0x97, 0x9a, 0x96, 0x91, 0x8f, 0x8b, 0x87, 0x84, 0x81, 0x79, 0x73, 0x73, -0x76, 0x74, 0x77, 0x7b, 0x7d, 0x81, 0x82, 0x7d, 0x77, 0x77, 0x79, 0x7d, 0x80, 0x80, 0x80, 0x83, -0x87, 0x8a, 0x8c, 0x8a, 0x82, 0x7c, 0x86, 0x8b, 0x87, 0x84, 0x83, 0x81, 0x80, 0x82, 0x83, 0x82, -0x84, 0x80, 0x79, 0x71, 0x6e, 0x6f, 0x6a, 0x64, 0x64, 0x5c, 0x5b, 0x60, 0x68, 0x71, 0x76, 0x77, -0x78, 0x79, 0x7d, 0x83, 0x86, 0x84, 0x84, 0x84, 0x86, 0x8c, 0x90, 0x91, 0x91, 0x95, 0x9c, 0xa1, -0xa2, 0x9d, 0x98, 0x98, 0x96, 0x90, 0x8d, 0x8d, 0x92, 0x8f, 0x87, 0x81, 0x84, 0x81, 0x7e, 0x7c, -0x77, 0x6e, 0x66, 0x62, 0x65, 0x76, 0x82, 0x84, 0x81, 0x79, 0x6e, 0x6d, 0x6f, 0x70, 0x6f, 0x6e, -0x72, 0x74, 0x76, 0x78, 0x72, 0x6d, 0x6d, 0x6b, 0x6e, 0x70, 0x71, 0x7b, 0x83, 0x87, 0x88, 0x85, -0x85, 0x86, 0x82, 0x82, 0x80, 0x79, 0x75, 0x77, 0x7b, 0x78, 0x76, 0x7a, 0x79, 0x7b, 0x79, 0x87, -0x8b, 0x80, 0x7d, 0x84, 0x8b, 0x8e, 0x92, 0x95, 0x90, 0x87, 0x8d, 0x99, 0x9c, 0x97, 0x93, 0x91, -0x8f, 0x8e, 0x8f, 0x93, 0x96, 0x91, 0x8b, 0x89, 0x8b, 0x8d, 0x8b, 0x84, 0x79, 0x79, 0x77, 0x70, -0x69, 0x68, 0x6b, 0x6a, 0x6a, 0x70, 0x71, 0x70, 0x61, 0x5c, 0x74, 0x7d, 0x74, 0x7e, 0x85, 0x7d, -0x7a, 0x79, 0x78, 0x7c, 0x80, 0x79, 0x76, 0x75, 0x76, 0x7a, 0x76, 0x71, 0x75, 0x79, 0x74, 0x70, -0x75, 0x81, 0x89, 0x88, 0x88, 0x88, 0x82, 0x82, 0x7e, 0x81, 0x84, 0x81, 0x80, 0x7c, 0x7b, 0x78, -0x74, 0x74, 0x75, 0x7c, 0x85, 0x87, 0x8f, 0x98, 0x9b, 0x94, 0x8a, 0x87, 0x82, 0x84, 0x81, 0x82, -0x8f, 0x99, 0x9b, 0x9a, 0x9a, 0x8d, 0x89, 0x8e, 0x83, 0x87, 0x8b, 0x82, 0x74, 0x6c, 0x6c, 0x74, -0x7a, 0x76, 0x71, 0x69, 0x65, 0x68, 0x6a, 0x72, 0x7b, 0x7d, 0x75, 0x76, 0x7a, 0x7c, 0x8c, 0x8f, -0x91, 0x9a, 0x99, 0x93, 0x8d, 0x8c, 0x9d, 0x95, 0x85, 0x8c, 0x8f, 0x89, 0x89, 0x88, 0x83, 0x86, -0x83, 0x79, 0x84, 0x8e, 0x8f, 0x8c, 0x8a, 0x8e, 0x88, 0x70, 0x62, 0x63, 0x5f, 0x5b, 0x5a, 0x60, -0x70, 0x77, 0x75, 0x71, 0x6d, 0x79, 0x80, 0x74, 0x85, 0x89, 0x7b, 0x72, 0x72, 0x79, 0x7e, 0x88, -0x8e, 0x89, 0x88, 0x91, 0x9c, 0x9c, 0x95, 0x8d, 0x88, 0x82, 0x86, 0x91, 0x93, 0x8f, 0x90, 0x90, -0x82, 0x75, 0x6e, 0x64, 0x74, 0x7c, 0x6f, 0x70, 0x7b, 0x7a, 0x70, 0x69, 0x60, 0x6e, 0x76, 0x70, -0x6c, 0x73, 0x78, 0x72, 0x72, 0x71, 0x6d, 0x71, 0x6b, 0x60, 0x68, 0x72, 0x76, 0x7d, 0x88, 0x85, -0x81, 0x86, 0x8a, 0x92, 0x93, 0x87, 0x83, 0x8b, 0x84, 0x75, 0x71, 0x6b, 0x67, 0x64, 0x64, 0x6d, -0x71, 0x72, 0x78, 0x73, 0x6c, 0x76, 0x8c, 0x92, 0x88, 0x86, 0x87, 0x89, 0x8a, 0x85, 0x81, 0x83, -0x8d, 0x92, 0x8f, 0x8c, 0x89, 0x85, 0x86, 0x84, 0x7c, 0x79, 0x88, 0x93, 0x9a, 0x9c, 0x99, 0x94, -0x8b, 0x8c, 0x88, 0x80, 0x7c, 0x7d, 0x79, 0x6b, 0x6d, 0x73, 0x72, 0x70, 0x6e, 0x69, 0x75, 0x91, -0x99, 0x95, 0x8d, 0x79, 0x61, 0x6f, 0x7b, 0x75, 0x81, 0x8b, 0x8a, 0x84, 0x7d, 0x77, 0x74, 0x77, -0x72, 0x6d, 0x72, 0x75, 0x79, 0x84, 0x84, 0x83, 0x83, 0x7e, 0x8c, 0x89, 0x7c, 0x76, 0x75, 0x85, -0x81, 0x7a, 0x82, 0x8a, 0x8d, 0x8d, 0x81, 0x77, 0x8c, 0x98, 0x96, 0x8e, 0x81, 0x77, 0x81, 0x91, -0x8e, 0x8c, 0x91, 0x88, 0x8d, 0x9c, 0x99, 0x96, 0x91, 0x92, 0x94, 0x8d, 0x83, 0x85, 0x97, 0x92, -0x86, 0x78, 0x6d, 0x6e, 0x6c, 0x66, 0x60, 0x65, 0x6a, 0x65, 0x63, 0x64, 0x6c, 0x70, 0x6c, 0x5e, -0x68, 0x87, 0x94, 0x9c, 0xa9, 0x9a, 0x83, 0x78, 0x87, 0x88, 0x84, 0x81, 0x8b, 0x8b, 0x7c, 0x7a, -0x7a, 0x6d, 0x60, 0x67, 0x7e, 0x8b, 0x96, 0x95, 0x91, 0x87, 0x72, 0x7c, 0x8a, 0x79, 0x69, 0x5e, -0x5c, 0x60, 0x65, 0x6e, 0x6f, 0x6d, 0x70, 0x65, 0x61, 0x7e, 0x98, 0x92, 0x88, 0x82, 0x81, 0x7c, -0x6e, 0x70, 0x87, 0x8c, 0x8c, 0x98, 0xa3, 0x9f, 0x96, 0x86, 0x87, 0x8c, 0x89, 0x84, 0x84, 0x91, -0x9c, 0x98, 0x92, 0x88, 0x84, 0x96, 0x94, 0x89, 0x8d, 0x92, 0x7a, 0x63, 0x5d, 0x65, 0x63, 0x54, -0x4c, 0x60, 0x78, 0x82, 0x85, 0x8c, 0x89, 0x7e, 0x6f, 0x68, 0x64, 0x68, 0x72, 0x6f, 0x74, 0x87, -0x88, 0x80, 0x74, 0x6b, 0x6e, 0x73, 0x88, 0x9f, 0x99, 0x8a, 0x7b, 0x74, 0x6e, 0x70, 0x72, 0x69, -0x6f, 0x75, 0x71, 0x70, 0x77, 0x79, 0x7a, 0x86, 0x8d, 0x8c, 0x86, 0x89, 0x86, 0x7c, 0x7e, 0x8d, -0x8c, 0x83, 0x84, 0x90, 0x8f, 0x9a, 0xa8, 0xa0, 0x96, 0x8d, 0x82, 0x7c, 0x7d, 0x77, 0x70, 0x7d, -0x8d, 0x90, 0x8d, 0x91, 0x8b, 0x7b, 0x8d, 0x96, 0x83, 0x7a, 0x73, 0x71, 0x6f, 0x67, 0x67, 0x69, -0x68, 0x6b, 0x76, 0x7c, 0x96, 0x97, 0x89, 0x90, 0x8f, 0x85, 0x75, 0x71, 0x6a, 0x57, 0x61, 0x72, -0x81, 0x80, 0x81, 0x85, 0x85, 0x85, 0x80, 0x70, 0x6b, 0x7b, 0x87, 0x89, 0x82, 0x7a, 0x83, 0x83, -0x7a, 0x7e, 0x8b, 0x99, 0x8c, 0x78, 0x7d, 0x8c, 0x8a, 0x80, 0x78, 0x71, 0x7b, 0x8e, 0x86, 0x7d, -0x82, 0x86, 0x89, 0x88, 0x8c, 0x7d, 0x6f, 0x80, 0x9b, 0xa7, 0xa0, 0x9a, 0x96, 0x92, 0x8d, 0x88, -0x80, 0x8d, 0x9b, 0x92, 0x88, 0x82, 0x79, 0x76, 0x72, 0x61, 0x4f, 0x51, 0x60, 0x5b, 0x56, 0x5a, -0x63, 0x62, 0x5e, 0x63, 0x64, 0x71, 0x80, 0x8b, 0x9a, 0x9a, 0x8e, 0x85, 0x82, 0x88, 0x8c, 0x86, -0x7a, 0x8a, 0x86, 0x7a, 0x75, 0x78, 0x77, 0x7c, 0x86, 0x88, 0x8f, 0x98, 0x8e, 0x88, 0x84, 0x80, -0x81, 0x78, 0x70, 0x7a, 0x7e, 0x7c, 0x78, 0x7c, 0x80, 0x76, 0x6a, 0x5f, 0x61, 0x66, 0x87, 0xa6, -0xa6, 0x93, 0x8b, 0x8b, 0x87, 0x85, 0x90, 0x92, 0x8f, 0x93, 0x96, 0x99, 0x96, 0x8f, 0x93, 0x90, -0x7a, 0x75, 0x79, 0x82, 0x8d, 0x8d, 0x83, 0x76, 0x87, 0xa4, 0x9c, 0x89, 0x86, 0x8b, 0x7c, 0x62, -0x5c, 0x62, 0x62, 0x60, 0x6d, 0x73, 0x6d, 0x79, 0x8b, 0x88, 0x75, 0x74, 0x77, 0x6c, 0x61, 0x60, -0x61, 0x62, 0x63, 0x66, 0x77, 0x83, 0x82, 0x89, 0x8c, 0x90, 0x87, 0x80, 0x84, 0x86, 0x74, 0x6b, -0x5f, 0x5f, 0x6e, 0x72, 0x73, 0x74, 0x6f, 0x65, 0x5c, 0x69, 0x7c, 0x89, 0x84, 0x85, 0x78, 0x6e, -0x82, 0x95, 0x9a, 0x99, 0x90, 0x94, 0xa4, 0xa3, 0xa2, 0x9d, 0x8e, 0x92, 0x83, 0x77, 0x87, 0x8c, -0x8a, 0x7c, 0x7b, 0x84, 0x92, 0x90, 0x8c, 0x8d, 0x91, 0xa0, 0xa1, 0x89, 0x6b, 0x60, 0x62, 0x64, -0x5c, 0x5a, 0x6c, 0x7a, 0x8a, 0x96, 0x90, 0x8d, 0x7a, 0x87, 0xa4, 0xa3, 0x99, 0x93, 0x90, 0x8a, -0x80, 0x74, 0x76, 0x82, 0x7a, 0x71, 0x6d, 0x87, 0x98, 0x88, 0x75, 0x72, 0x74, 0x76, 0x78, 0x80, -0x86, 0x7c, 0x7e, 0x8b, 0x87, 0x84, 0x82, 0x74, 0x70, 0x74, 0x77, 0x6d, 0x68, 0x6c, 0x73, 0x70, -0x62, 0x61, 0x77, 0x84, 0x8a, 0x96, 0x96, 0x90, 0x84, 0x7c, 0x85, 0x87, 0x8c, 0x8d, 0x8b, 0x81, -0x7c, 0x8b, 0x8d, 0x88, 0x92, 0x95, 0x8a, 0x7e, 0x83, 0x87, 0x81, 0x84, 0x8d, 0x82, 0x76, 0x72, -0x67, 0x5a, 0x54, 0x5f, 0x6c, 0x6f, 0x71, 0x70, 0x6d, 0x72, 0x81, 0x8a, 0x90, 0x8e, 0x91, 0x98, -0x95, 0x8c, 0x87, 0x87, 0x8b, 0x92, 0x95, 0x93, 0x81, 0x6f, 0x71, 0x7d, 0x85, 0x86, 0x86, 0x81, -0x7d, 0x7c, 0x81, 0x88, 0x99, 0x98, 0x83, 0x79, 0x71, 0x6b, 0x67, 0x60, 0x63, 0x6b, 0x73, 0x77, -0x74, 0x6b, 0x6b, 0x6b, 0x76, 0x83, 0x81, 0x7d, 0x7e, 0x80, 0x82, 0x85, 0x87, 0x89, 0x8b, 0x8d, -0x8f, 0x8e, 0x84, 0x7e, 0x87, 0x8d, 0x8b, 0x86, 0x84, 0x88, 0x8e, 0x8d, 0x8b, 0x8c, 0x89, 0x84, -0x83, 0x7b, 0x77, 0x77, 0x74, 0x71, 0x70, 0x6c, 0x6d, 0x6f, 0x71, 0x73, 0x72, 0x73, 0x77, 0x81, -0x87, 0x84, 0x7a, 0x6d, 0x64, 0x65, 0x67, 0x68, 0x6d, 0x73, 0x78, 0x79, 0x75, 0x78, 0x83, 0x86, -0x82, 0x82, 0x87, 0x8b, 0x8a, 0x8a, 0x89, 0x87, 0x86, 0x88, 0x86, 0x84, 0x84, 0x87, 0x8c, 0x8b, -0x86, 0x84, 0x82, 0x80, 0x80, 0x7e, 0x81, 0x85, 0x8c, 0x8f, 0x91, 0x8d, 0x89, 0x87, 0x85, 0x81, -0x80, 0x7c, 0x78, 0x74, 0x72, 0x75, 0x7c, 0x80, 0x80, 0x7d, 0x7c, 0x80, 0x86, 0x8d, 0x8d, 0x84, -0x7c, 0x78, 0x72, 0x70, 0x70, 0x72, 0x7b, 0x82, 0x7d, 0x7c, 0x7b, 0x80, 0x81, 0x7b, 0x7b, 0x81, -0x84, 0x84, 0x80, 0x7e, 0x81, 0x81, 0x80, 0x7b, 0x78, 0x7a, 0x7e, 0x81, 0x82, 0x7d, 0x7a, 0x7a, -0x79, 0x75, 0x73, 0x75, 0x7a, 0x83, 0x8b, 0x8f, 0x8c, 0x85, 0x83, 0x83, 0x81, 0x83, 0x87, 0x8b, -0x8d, 0x86, 0x81, 0x82, 0x88, 0x90, 0x91, 0x8f, 0x91, 0x8e, 0x8b, 0x8b, 0x88, 0x85, 0x82, 0x7e, -0x7d, 0x7b, 0x7c, 0x7e, 0x80, 0x7c, 0x7c, 0x7d, 0x7d, 0x80, 0x82, 0x7e, 0x7b, 0x79, 0x79, 0x79, -0x79, 0x74, 0x6c, 0x68, 0x66, 0x65, 0x6a, 0x76, 0x7a, 0x78, 0x75, 0x71, 0x71, 0x77, 0x7a, 0x7a, -0x7a, 0x7e, 0x85, 0x87, 0x8c, 0x93, 0x93, 0x90, 0x8f, 0x8b, 0x88, 0x87, 0x87, 0x85, 0x7e, 0x7b, -0x7d, 0x82, 0x84, 0x85, 0x80, 0x7e, 0x84, 0x88, 0x8c, 0x8b, 0x88, 0x81, 0x78, 0x71, 0x6e, 0x70, -0x72, 0x70, 0x6c, 0x69, 0x68, 0x6b, 0x76, 0x7e, 0x7a, 0x75, 0x71, 0x6e, 0x6f, 0x76, 0x80, 0x83, -0x85, 0x89, 0x8a, 0x8a, 0x92, 0x9a, 0x9a, 0x98, 0x92, 0x8d, 0x8d, 0x8c, 0x87, 0x84, 0x84, 0x89, -0x8d, 0x8e, 0x8b, 0x86, 0x82, 0x80, 0x7d, 0x79, 0x78, 0x76, 0x74, 0x74, 0x73, 0x77, 0x7a, 0x78, -0x79, 0x77, 0x75, 0x79, 0x81, 0x85, 0x85, 0x87, 0x85, 0x7e, 0x77, 0x6d, 0x69, 0x6b, 0x70, 0x79, -0x80, 0x7e, 0x7e, 0x82, 0x82, 0x84, 0x87, 0x8a, 0x89, 0x86, 0x88, 0x86, 0x82, 0x7c, 0x77, 0x74, -0x74, 0x77, 0x7d, 0x7e, 0x79, 0x71, 0x6b, 0x68, 0x6a, 0x69, 0x68, 0x67, 0x6c, 0x70, 0x73, 0x7a, -0x7d, 0x81, 0x85, 0x83, 0x84, 0x87, 0x85, 0x82, 0x85, 0x87, 0x86, 0x83, 0x83, 0x86, 0x8c, 0x90, -0x93, 0x95, 0x99, 0x97, 0x92, 0x8b, 0x84, 0x80, 0x79, 0x75, 0x75, 0x79, 0x7d, 0x7d, 0x7a, 0x7b, -0x81, 0x87, 0x86, 0x80, 0x77, 0x71, 0x70, 0x74, 0x78, 0x79, 0x77, 0x74, 0x73, 0x75, 0x79, 0x7c, -0x7e, 0x83, 0x82, 0x81, 0x83, 0x83, 0x85, 0x87, 0x8a, 0x8c, 0x8b, 0x8c, 0x8e, 0x8c, 0x89, 0x8c, -0x90, 0x8d, 0x89, 0x88, 0x88, 0x87, 0x86, 0x85, 0x87, 0x8b, 0x89, 0x85, 0x84, 0x84, 0x82, 0x82, -0x87, 0x86, 0x80, 0x7c, 0x79, 0x77, 0x7a, 0x7b, 0x7b, 0x7a, 0x78, 0x79, 0x7c, 0x83, 0x8c, 0x91, -0x8f, 0x8a, 0x87, 0x84, 0x85, 0x86, 0x85, 0x83, 0x7c, 0x74, 0x70, 0x71, 0x73, 0x75, 0x75, 0x76, -0x78, 0x79, 0x7b, 0x79, 0x74, 0x73, 0x78, 0x7c, 0x7d, 0x84, 0x8b, 0x89, 0x88, 0x88, 0x86, 0x7e, -0x79, 0x77, 0x76, 0x76, 0x77, 0x76, 0x72, 0x72, 0x77, 0x7e, 0x89, 0x8b, 0x8b, 0x8d, 0x8c, 0x8a, -0x83, 0x75, 0x6d, 0x6b, 0x72, 0x7c, 0x80, 0x7d, 0x7a, 0x77, 0x75, 0x75, 0x74, 0x70, 0x65, 0x62, -0x6a, 0x6f, 0x76, 0x7e, 0x82, 0x7e, 0x7a, 0x7b, 0x81, 0x87, 0x8a, 0x8a, 0x87, 0x81, 0x7c, 0x7b, -0x78, 0x78, 0x7d, 0x83, 0x84, 0x84, 0x86, 0x86, 0x87, 0x87, 0x86, 0x82, 0x7d, 0x7e, 0x83, 0x87, -0x86, 0x85, 0x85, 0x89, 0x8d, 0x8e, 0x8e, 0x8e, 0x8b, 0x8a, 0x88, 0x86, 0x82, 0x7a, 0x73, 0x6b, -0x65, 0x66, 0x69, 0x69, 0x6b, 0x6a, 0x68, 0x6e, 0x76, 0x7c, 0x81, 0x83, 0x81, 0x82, 0x81, 0x80, -0x82, 0x7c, 0x76, 0x71, 0x6e, 0x72, 0x76, 0x79, 0x7a, 0x77, 0x72, 0x6b, 0x67, 0x67, 0x65, 0x66, -0x6a, 0x6c, 0x70, 0x7a, 0x87, 0x90, 0x9b, 0xa0, 0x9e, 0x9a, 0x97, 0x95, 0x93, 0x8f, 0x8f, 0x91, -0x92, 0x96, 0x9d, 0xa4, 0xa3, 0x9f, 0x9f, 0x9e, 0x9a, 0x92, 0x8b, 0x84, 0x79, 0x73, 0x71, 0x71, -0x75, 0x7b, 0x7d, 0x81, 0x8a, 0x94, 0x95, 0x90, 0x8a, 0x84, 0x81, 0x7c, 0x7b, 0x80, 0x88, 0x8a, -0x84, 0x83, 0x81, 0x7d, 0x7b, 0x7a, 0x73, 0x6d, 0x6c, 0x6c, 0x71, 0x78, 0x7a, 0x79, 0x7a, 0x7c, -0x80, 0x85, 0x87, 0x88, 0x86, 0x84, 0x85, 0x86, 0x87, 0x88, 0x86, 0x80, 0x7c, 0x7b, 0x78, 0x76, -0x77, 0x7b, 0x7e, 0x84, 0x89, 0x8a, 0x8a, 0x85, 0x7e, 0x78, 0x72, 0x6d, 0x6b, 0x69, 0x67, 0x69, -0x6e, 0x70, 0x73, 0x74, 0x7c, 0x84, 0x85, 0x86, 0x81, 0x81, 0x80, 0x7e, 0x7b, 0x73, 0x6e, 0x71, -0x75, 0x79, 0x80, 0x80, 0x78, 0x74, 0x6f, 0x6d, 0x6f, 0x6c, 0x68, 0x66, 0x68, 0x6c, 0x74, 0x83, -0x88, 0x88, 0x8b, 0x8e, 0x90, 0x91, 0x8e, 0x88, 0x83, 0x7d, 0x78, 0x7a, 0x7d, 0x7e, 0x87, 0x90, -0x92, 0x94, 0x91, 0x8a, 0x8a, 0x88, 0x83, 0x80, 0x7b, 0x7a, 0x7a, 0x7a, 0x7c, 0x80, 0x80, 0x7c, -0x7c, 0x7e, 0x7e, 0x7b, 0x78, 0x77, 0x7b, 0x83, 0x89, 0x88, 0x88, 0x8d, 0x92, 0x91, 0x8c, 0x87, -0x84, 0x7c, 0x77, 0x7b, 0x81, 0x83, 0x87, 0x84, 0x80, 0x79, 0x77, 0x7d, 0x81, 0x83, 0x81, 0x7c, -0x79, 0x7b, 0x80, 0x83, 0x85, 0x83, 0x82, 0x80, 0x7b, 0x7c, 0x7d, 0x7e, 0x7c, 0x79, 0x77, 0x79, -0x7b, 0x7a, 0x7c, 0x7b, 0x79, 0x76, 0x73, 0x6e, 0x69, 0x69, 0x70, 0x78, 0x7e, 0x87, 0x8b, 0x8c, -0x8a, 0x87, 0x89, 0x8e, 0x91, 0x93, 0x93, 0x8d, 0x84, 0x80, 0x79, 0x7a, 0x7c, 0x77, 0x6e, 0x6d, -0x72, 0x73, 0x74, 0x72, 0x71, 0x71, 0x71, 0x76, 0x80, 0x8b, 0x90, 0x90, 0x90, 0x90, 0x8d, 0x87, -0x80, 0x79, 0x75, 0x73, 0x79, 0x80, 0x86, 0x8c, 0x8c, 0x8b, 0x8d, 0x8f, 0x8f, 0x8e, 0x8f, 0x8b, -0x7e, 0x74, 0x72, 0x79, 0x80, 0x80, 0x80, 0x7c, 0x79, 0x79, 0x77, 0x76, 0x76, 0x75, 0x75, 0x73, -0x76, 0x7c, 0x86, 0x8c, 0x89, 0x8a, 0x8d, 0x8d, 0x8d, 0x87, 0x7d, 0x76, 0x71, 0x74, 0x7a, 0x7c, -0x7a, 0x78, 0x78, 0x7a, 0x80, 0x8a, 0x8d, 0x8c, 0x8d, 0x86, 0x7e, 0x7e, 0x84, 0x88, 0x88, 0x80, -0x77, 0x75, 0x73, 0x76, 0x7c, 0x7d, 0x7d, 0x7b, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x79, 0x79, 0x78, -0x75, 0x77, 0x7a, 0x7a, 0x7b, 0x7a, 0x7d, 0x84, 0x89, 0x8a, 0x86, 0x83, 0x89, 0x8d, 0x8a, 0x86, -0x87, 0x84, 0x7a, 0x78, 0x7c, 0x83, 0x85, 0x81, 0x7c, 0x75, 0x70, 0x6d, 0x6f, 0x74, 0x78, 0x77, -0x76, 0x77, 0x7d, 0x89, 0x90, 0x95, 0x94, 0x90, 0x8f, 0x8c, 0x86, 0x86, 0x80, 0x74, 0x72, 0x74, -0x77, 0x81, 0x87, 0x87, 0x83, 0x83, 0x85, 0x8a, 0x8c, 0x8b, 0x86, 0x7d, 0x76, 0x76, 0x79, 0x79, -0x7b, 0x7c, 0x77, 0x75, 0x77, 0x76, 0x73, 0x72, 0x72, 0x6f, 0x6e, 0x75, 0x7d, 0x84, 0x86, 0x85, -0x87, 0x89, 0x85, 0x80, 0x7b, 0x7a, 0x7a, 0x7b, 0x80, 0x84, 0x85, 0x82, 0x79, 0x75, 0x79, 0x82, -0x86, 0x88, 0x8c, 0x8d, 0x87, 0x85, 0x84, 0x82, 0x83, 0x83, 0x80, 0x77, 0x75, 0x74, 0x77, 0x81, -0x86, 0x84, 0x7b, 0x76, 0x7d, 0x85, 0x85, 0x82, 0x80, 0x7d, 0x77, 0x72, 0x71, 0x73, 0x73, 0x73, -0x71, 0x6d, 0x6d, 0x71, 0x76, 0x7b, 0x7d, 0x83, 0x8d, 0x8d, 0x85, 0x82, 0x80, 0x7c, 0x80, 0x84, -0x7c, 0x75, 0x77, 0x79, 0x75, 0x72, 0x72, 0x6f, 0x6e, 0x6e, 0x6c, 0x6f, 0x78, 0x84, 0x8f, 0x97, -0x98, 0x95, 0x93, 0x92, 0x91, 0x8f, 0x8e, 0x91, 0x93, 0x91, 0x8e, 0x8d, 0x92, 0x97, 0x95, 0x8f, -0x89, 0x87, 0x87, 0x83, 0x83, 0x84, 0x83, 0x86, 0x85, 0x83, 0x84, 0x83, 0x7e, 0x77, 0x74, 0x73, -0x74, 0x7b, 0x82, 0x80, 0x7b, 0x7d, 0x82, 0x7e, 0x7b, 0x7c, 0x7e, 0x82, 0x86, 0x88, 0x88, 0x88, -0x85, 0x82, 0x80, 0x7c, 0x79, 0x7e, 0x82, 0x83, 0x84, 0x87, 0x89, 0x87, 0x83, 0x82, 0x7d, 0x79, -0x7b, 0x7b, 0x74, 0x72, 0x77, 0x76, 0x6f, 0x6d, 0x72, 0x79, 0x7e, 0x7d, 0x7a, 0x74, 0x72, 0x78, -0x7c, 0x7e, 0x80, 0x7e, 0x7c, 0x7b, 0x7b, 0x81, 0x87, 0x88, 0x87, 0x86, 0x83, 0x82, 0x85, 0x8a, -0x8b, 0x8a, 0x8a, 0x8b, 0x89, 0x84, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x77, 0x6f, 0x6c, 0x69, 0x67, -0x67, 0x66, 0x66, 0x67, 0x69, 0x6e, 0x71, 0x78, 0x85, 0x89, 0x88, 0x87, 0x83, 0x7d, 0x76, 0x6f, -0x73, 0x7b, 0x7d, 0x7c, 0x78, 0x75, 0x7a, 0x83, 0x88, 0x8d, 0x8b, 0x89, 0x8c, 0x88, 0x85, 0x85, -0x84, 0x85, 0x87, 0x87, 0x88, 0x86, 0x81, 0x7a, 0x74, 0x72, 0x70, 0x6c, 0x6c, 0x69, 0x69, 0x6d, -0x77, 0x7d, 0x7d, 0x7c, 0x7c, 0x80, 0x81, 0x80, 0x80, 0x80, 0x83, 0x86, 0x86, 0x80, 0x77, 0x75, -0x7a, 0x83, 0x89, 0x8e, 0x92, 0x91, 0x8d, 0x89, 0x89, 0x8d, 0x8e, 0x88, 0x82, 0x7e, 0x7e, 0x80, -0x7e, 0x7c, 0x80, 0x82, 0x84, 0x89, 0x8a, 0x81, 0x7d, 0x82, 0x8b, 0x8c, 0x86, 0x85, 0x84, 0x84, -0x85, 0x86, 0x87, 0x87, 0x87, 0x83, 0x7c, 0x7c, 0x83, 0x83, 0x80, 0x83, 0x89, 0x8b, 0x87, 0x82, -0x7e, 0x81, 0x85, 0x88, 0x8a, 0x81, 0x76, 0x72, 0x6e, 0x69, 0x6a, 0x6b, 0x6b, 0x6b, 0x6c, 0x6f, -0x77, 0x7a, 0x7c, 0x84, 0x88, 0x8a, 0x8a, 0x87, 0x81, 0x7b, 0x80, 0x86, 0x8a, 0x89, 0x89, 0x87, -0x86, 0x8a, 0x8e, 0x8e, 0x8b, 0x8a, 0x8a, 0x88, 0x86, 0x82, 0x81, 0x84, 0x85, 0x83, 0x7b, 0x77, -0x73, 0x6f, 0x6f, 0x74, 0x79, 0x7c, 0x76, 0x6e, 0x70, 0x73, 0x77, 0x7e, 0x81, 0x80, 0x81, 0x84, -0x88, 0x8a, 0x89, 0x88, 0x8d, 0x94, 0x95, 0x90, 0x85, 0x7e, 0x83, 0x88, 0x89, 0x8e, 0x91, 0x8f, -0x8a, 0x89, 0x88, 0x83, 0x7c, 0x78, 0x70, 0x6a, 0x69, 0x6b, 0x6c, 0x68, 0x65, 0x6a, 0x6d, 0x66, -0x60, 0x60, 0x63, 0x67, 0x6d, 0x6e, 0x6a, 0x68, 0x68, 0x6a, 0x70, 0x73, 0x72, 0x72, 0x76, 0x7a, -0x80, 0x85, 0x89, 0x8d, 0x90, 0x92, 0x98, 0x9c, 0x9c, 0x9b, 0x97, 0x90, 0x92, 0x99, 0x97, 0x8f, -0x89, 0x83, 0x7c, 0x77, 0x73, 0x6d, 0x68, 0x67, 0x6b, 0x71, 0x78, 0x7d, 0x83, 0x88, 0x87, 0x85, -0x83, 0x83, 0x84, 0x83, 0x83, 0x84, 0x89, 0x90, 0x94, 0x90, 0x8c, 0x93, 0x9b, 0x97, 0x94, 0x93, -0x92, 0x92, 0x92, 0x91, 0x8d, 0x8d, 0x8e, 0x8c, 0x87, 0x7d, 0x73, 0x6c, 0x6a, 0x6a, 0x68, 0x64, -0x5c, 0x56, 0x53, 0x56, 0x5e, 0x62, 0x64, 0x62, 0x62, 0x65, 0x6f, 0x79, 0x77, 0x74, 0x73, 0x71, -0x71, 0x72, 0x72, 0x72, 0x76, 0x79, 0x7e, 0x81, 0x81, 0x80, 0x81, 0x83, 0x83, 0x82, 0x7c, 0x77, -0x77, 0x75, 0x75, 0x77, 0x7c, 0x82, 0x83, 0x83, 0x84, 0x84, 0x81, 0x82, 0x88, 0x8a, 0x8d, 0x96, -0x97, 0x94, 0x93, 0x94, 0x97, 0x98, 0x96, 0x91, 0x90, 0x93, 0x97, 0x99, 0x97, 0x94, 0x8f, 0x8b, -0x8d, 0x90, 0x95, 0x97, 0x97, 0x95, 0x96, 0x9b, 0x9e, 0x99, 0x8e, 0x84, 0x7c, 0x7b, 0x79, 0x75, -0x72, 0x6f, 0x6c, 0x6d, 0x72, 0x75, 0x76, 0x7c, 0x84, 0x82, 0x7b, 0x77, 0x7a, 0x7c, 0x7e, 0x82, -0x85, 0x88, 0x88, 0x88, 0x89, 0x8e, 0x90, 0x8d, 0x87, 0x84, 0x85, 0x84, 0x82, 0x82, 0x7e, 0x79, -0x76, 0x74, 0x73, 0x6f, 0x6a, 0x66, 0x6a, 0x70, 0x71, 0x6b, 0x64, 0x5e, 0x5c, 0x5d, 0x64, 0x6e, -0x76, 0x79, 0x7b, 0x79, 0x7c, 0x85, 0x8b, 0x88, 0x80, 0x7c, 0x80, 0x85, 0x8a, 0x8d, 0x8f, 0x8f, -0x8c, 0x8a, 0x8d, 0x91, 0x90, 0x8f, 0x8a, 0x84, 0x81, 0x7b, 0x76, 0x74, 0x72, 0x6f, 0x71, 0x75, -0x77, 0x7a, 0x7c, 0x7d, 0x80, 0x80, 0x7a, 0x7b, 0x82, 0x86, 0x87, 0x82, 0x7e, 0x80, 0x84, 0x85, -0x84, 0x80, 0x7b, 0x7d, 0x85, 0x89, 0x89, 0x86, 0x82, 0x7c, 0x79, 0x7d, 0x84, 0x88, 0x8a, 0x87, -0x86, 0x8b, 0x8d, 0x8b, 0x85, 0x7c, 0x72, 0x66, 0x62, 0x64, 0x67, 0x69, 0x6a, 0x69, 0x69, 0x6a, -0x6c, 0x71, 0x78, 0x7b, 0x75, 0x6d, 0x70, 0x78, 0x79, 0x76, 0x72, 0x6e, 0x70, 0x79, 0x7e, 0x7e, -0x7e, 0x84, 0x85, 0x83, 0x86, 0x8b, 0x8b, 0x8b, 0x8d, 0x90, 0x8f, 0x8c, 0x8d, 0x8d, 0x8a, 0x86, -0x83, 0x83, 0x81, 0x7a, 0x72, 0x6c, 0x67, 0x62, 0x5e, 0x5f, 0x66, 0x6e, 0x72, 0x70, 0x70, 0x7a, -0x83, 0x81, 0x79, 0x78, 0x7a, 0x7c, 0x83, 0x8c, 0x92, 0x8e, 0x88, 0x87, 0x8a, 0x8f, 0x96, 0x98, -0x92, 0x8f, 0x8b, 0x85, 0x87, 0x8d, 0x8f, 0x91, 0x93, 0x94, 0x96, 0x97, 0x98, 0x9c, 0xa0, 0x9f, -0x9c, 0x9b, 0x9b, 0x9c, 0x9d, 0x98, 0x90, 0x8a, 0x85, 0x82, 0x83, 0x7e, 0x7d, 0x82, 0x82, 0x81, -0x7e, 0x76, 0x6a, 0x66, 0x6a, 0x72, 0x78, 0x7e, 0x82, 0x80, 0x78, 0x73, 0x74, 0x77, 0x76, 0x76, -0x73, 0x70, 0x6e, 0x6d, 0x72, 0x75, 0x75, 0x76, 0x76, 0x77, 0x77, 0x78, 0x7c, 0x7c, 0x78, 0x73, -0x6f, 0x71, 0x78, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x82, 0x81, 0x83, 0x8a, 0x8e, -0x8a, 0x82, 0x7c, 0x7a, 0x7a, 0x79, 0x7c, 0x81, 0x83, 0x7d, 0x75, 0x6f, 0x6a, 0x66, 0x66, 0x67, -0x68, 0x6e, 0x74, 0x7c, 0x87, 0x8d, 0x91, 0x90, 0x8e, 0x8f, 0x92, 0x92, 0x90, 0x92, 0x92, 0x93, -0x93, 0x95, 0x96, 0x90, 0x8a, 0x87, 0x86, 0x86, 0x86, 0x80, 0x76, 0x74, 0x76, 0x78, 0x75, 0x71, -0x74, 0x74, 0x71, 0x6e, 0x6c, 0x6b, 0x6b, 0x6d, 0x75, 0x76, 0x76, 0x76, 0x74, 0x76, 0x7c, 0x7e, -0x7c, 0x7a, 0x7b, 0x82, 0x8a, 0x8d, 0x89, 0x85, 0x83, 0x85, 0x86, 0x81, 0x7b, 0x78, 0x79, 0x80, -0x8a, 0x93, 0x96, 0x91, 0x8d, 0x8f, 0x91, 0x8e, 0x86, 0x85, 0x87, 0x84, 0x7e, 0x79, 0x77, 0x77, -0x73, 0x70, 0x70, 0x71, 0x70, 0x6e, 0x70, 0x77, 0x80, 0x7e, 0x76, 0x72, 0x71, 0x72, 0x75, 0x7a, -0x7d, 0x7e, 0x7a, 0x7a, 0x81, 0x85, 0x85, 0x85, 0x8b, 0x91, 0x94, 0x93, 0x90, 0x8d, 0x8b, 0x8a, -0x8b, 0x8d, 0x8d, 0x8a, 0x82, 0x79, 0x71, 0x6a, 0x66, 0x61, 0x5d, 0x5b, 0x5c, 0x63, 0x69, 0x6e, -0x70, 0x6e, 0x69, 0x6a, 0x6d, 0x6f, 0x75, 0x7b, 0x85, 0x8c, 0x8a, 0x85, 0x82, 0x84, 0x82, 0x83, -0x8a, 0x92, 0x97, 0x9a, 0x9d, 0x9c, 0x97, 0x8f, 0x8b, 0x88, 0x85, 0x89, 0x8d, 0x8d, 0x87, 0x82, -0x7d, 0x81, 0x88, 0x87, 0x86, 0x8c, 0x91, 0x90, 0x8d, 0x8b, 0x89, 0x87, 0x89, 0x8b, 0x89, 0x88, -0x83, 0x7a, 0x71, 0x6c, 0x69, 0x65, 0x62, 0x62, 0x64, 0x69, 0x71, 0x77, 0x7c, 0x7c, 0x79, 0x76, -0x76, 0x7a, 0x7e, 0x85, 0x8e, 0x90, 0x87, 0x7b, 0x74, 0x70, 0x73, 0x7c, 0x7e, 0x7e, 0x7c, 0x7a, -0x77, 0x76, 0x7a, 0x7b, 0x7c, 0x7c, 0x7a, 0x7a, 0x7d, 0x81, 0x83, 0x88, 0x8c, 0x8a, 0x8b, 0x8e, -0x8e, 0x8d, 0x90, 0x94, 0x95, 0x93, 0x92, 0x91, 0x8e, 0x8f, 0x93, 0x92, 0x92, 0x8e, 0x88, 0x7e, -0x76, 0x72, 0x72, 0x76, 0x77, 0x77, 0x77, 0x78, 0x79, 0x7c, 0x83, 0x81, 0x7a, 0x7c, 0x80, 0x80, -0x80, 0x84, 0x88, 0x89, 0x89, 0x8c, 0x8d, 0x8e, 0x93, 0x92, 0x8c, 0x8a, 0x88, 0x85, 0x85, 0x85, -0x84, 0x7c, 0x71, 0x69, 0x68, 0x6b, 0x6c, 0x6d, 0x6f, 0x6e, 0x6c, 0x6c, 0x6d, 0x6d, 0x72, 0x74, -0x75, 0x76, 0x79, 0x80, 0x84, 0x83, 0x83, 0x85, 0x85, 0x85, 0x87, 0x83, 0x7d, 0x7a, 0x7c, 0x80, -0x7e, 0x7c, 0x7c, 0x80, 0x85, 0x8d, 0x93, 0x96, 0x95, 0x91, 0x8c, 0x89, 0x89, 0x8d, 0x8f, 0x8e, -0x85, 0x77, 0x6b, 0x62, 0x5a, 0x5a, 0x59, 0x57, 0x58, 0x5f, 0x65, 0x6a, 0x6f, 0x71, 0x70, 0x69, -0x65, 0x69, 0x6f, 0x75, 0x7b, 0x80, 0x80, 0x7b, 0x7a, 0x7c, 0x7d, 0x7c, 0x7e, 0x82, 0x87, 0x8d, -0x90, 0x90, 0x8c, 0x8c, 0x8e, 0x8d, 0x8c, 0x8f, 0x8c, 0x83, 0x78, 0x73, 0x70, 0x69, 0x63, 0x61, -0x61, 0x5f, 0x5e, 0x60, 0x62, 0x62, 0x5f, 0x5d, 0x5e, 0x61, 0x69, 0x75, 0x81, 0x84, 0x83, 0x7e, -0x80, 0x89, 0x93, 0x98, 0x96, 0x94, 0x9b, 0x9e, 0x9e, 0xa2, 0xa6, 0xa2, 0x9a, 0x95, 0x94, 0x9a, -0x9e, 0x9c, 0x9a, 0x95, 0x91, 0x90, 0x92, 0x91, 0x92, 0x98, 0x9b, 0x9e, 0x9e, 0xa0, 0xa2, 0xa0, -0xa2, 0xa1, 0x9b, 0x95, 0x92, 0x91, 0x88, 0x7d, 0x7b, 0x7d, 0x7d, 0x7e, 0x7d, 0x76, 0x72, 0x71, -0x71, 0x76, 0x7e, 0x82, 0x7e, 0x7a, 0x78, 0x7a, 0x7e, 0x80, 0x7c, 0x74, 0x6b, 0x67, 0x6b, 0x72, -0x71, 0x6f, 0x6d, 0x6c, 0x6e, 0x70, 0x6f, 0x71, 0x74, 0x70, 0x6c, 0x6d, 0x71, 0x75, 0x77, 0x7b, -0x7e, 0x82, 0x85, 0x87, 0x88, 0x86, 0x82, 0x7e, 0x7d, 0x80, 0x86, 0x8d, 0x91, 0x8a, 0x83, 0x84, -0x81, 0x7c, 0x7c, 0x7c, 0x76, 0x71, 0x6e, 0x6e, 0x6e, 0x6d, 0x6e, 0x6d, 0x6d, 0x6f, 0x73, 0x7c, -0x81, 0x82, 0x7d, 0x7c, 0x82, 0x8a, 0x93, 0x94, 0x8e, 0x8b, 0x8c, 0x90, 0x97, 0x9c, 0x99, 0x94, -0x90, 0x8d, 0x90, 0x91, 0x8a, 0x7d, 0x70, 0x5e, 0x5c, 0x6d, 0x71, 0x71, 0x72, 0x6f, 0x64, 0x60, -0x61, 0x5f, 0x5e, 0x61, 0x69, 0x70, 0x6f, 0x6d, 0x71, 0x79, 0x7c, 0x79, 0x77, 0x77, 0x79, 0x80, -0x82, 0x80, 0x80, 0x7e, 0x81, 0x88, 0x8d, 0x8d, 0x8a, 0x8b, 0x91, 0x9a, 0xa1, 0xa4, 0x9d, 0x96, -0x97, 0x99, 0x93, 0x95, 0x96, 0x8b, 0x7a, 0x6f, 0x6a, 0x67, 0x6b, 0x6f, 0x68, 0x65, 0x67, 0x64, -0x60, 0x62, 0x61, 0x5e, 0x60, 0x65, 0x6a, 0x71, 0x77, 0x7a, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x87, -0x8c, 0x88, 0x85, 0x87, 0x8a, 0x8d, 0x92, 0x97, 0x95, 0x8f, 0x86, 0x84, 0x86, 0x83, 0x8b, 0x89, -0x7d, 0x77, 0x74, 0x71, 0x70, 0x6b, 0x6a, 0x69, 0x67, 0x6a, 0x73, 0x7b, 0x76, 0x7a, 0x8b, 0x93, -0x97, 0x97, 0x95, 0x93, 0x97, 0xa1, 0xaa, 0xaf, 0xab, 0x9f, 0x9a, 0x9a, 0x99, 0x99, 0x99, 0x99, -0x97, 0x98, 0x98, 0x94, 0x90, 0x90, 0x93, 0x8e, 0x93, 0x94, 0x8e, 0x8a, 0x88, 0x8f, 0x91, 0x8f, -0x8b, 0x84, 0x81, 0x80, 0x80, 0x79, 0x6f, 0x64, 0x5c, 0x5a, 0x5b, 0x57, 0x55, 0x5d, 0x5a, 0x57, -0x66, 0x6b, 0x66, 0x64, 0x70, 0x7e, 0x89, 0x90, 0x90, 0x8e, 0x8e, 0x8c, 0x84, 0x86, 0x83, 0x75, -0x6d, 0x67, 0x63, 0x6d, 0x70, 0x71, 0x74, 0x75, 0x73, 0x71, 0x78, 0x7e, 0x7e, 0x74, 0x6e, 0x71, -0x70, 0x6f, 0x6c, 0x6e, 0x74, 0x77, 0x7a, 0x80, 0x85, 0x86, 0x90, 0x8f, 0x87, 0x8f, 0x90, 0x8b, -0x89, 0x85, 0x8c, 0x8e, 0x8b, 0x8d, 0x94, 0x94, 0x89, 0x7d, 0x73, 0x6b, 0x66, 0x66, 0x60, 0x65, -0x71, 0x75, 0x72, 0x76, 0x87, 0x8a, 0x88, 0x8f, 0x92, 0x9a, 0xa0, 0x91, 0x91, 0x95, 0x90, 0x92, -0x9d, 0xa2, 0x9e, 0x9a, 0x95, 0x94, 0x92, 0x8d, 0x8c, 0x84, 0x77, 0x73, 0x6f, 0x62, 0x61, 0x6d, -0x70, 0x6b, 0x6f, 0x6d, 0x6c, 0x7a, 0x87, 0x9b, 0xa0, 0xa0, 0x92, 0x81, 0x80, 0x7e, 0x7e, 0x7c, -0x78, 0x76, 0x76, 0x74, 0x78, 0x7d, 0x7b, 0x7b, 0x7c, 0x7b, 0x7d, 0x86, 0x83, 0x74, 0x7d, 0x8d, -0x92, 0x95, 0x99, 0x96, 0x92, 0x8c, 0x81, 0x76, 0x7a, 0x73, 0x60, 0x5c, 0x59, 0x4f, 0x4e, 0x50, -0x51, 0x5a, 0x54, 0x50, 0x54, 0x57, 0x60, 0x6e, 0x6f, 0x72, 0x72, 0x6e, 0x62, 0x66, 0x73, 0x72, -0x74, 0x84, 0x95, 0x9a, 0x9a, 0x95, 0x92, 0x9a, 0x9a, 0x88, 0x8a, 0x88, 0x87, 0x82, 0x7a, 0x7e, -0x8d, 0x9c, 0xa4, 0xa0, 0x8e, 0x79, 0x84, 0x8d, 0x87, 0x7a, 0x70, 0x6a, 0x62, 0x5f, 0x5d, 0x5d, -0x65, 0x6b, 0x73, 0x7c, 0x7b, 0x71, 0x72, 0x75, 0x72, 0x89, 0x9d, 0xa0, 0x94, 0x8e, 0x92, 0x96, -0xa9, 0xb8, 0xae, 0xa2, 0x98, 0x8e, 0x8c, 0x8a, 0x8a, 0x8d, 0x8d, 0x8b, 0x83, 0x71, 0x85, 0x9e, -0xa7, 0xaa, 0xa8, 0x9a, 0x93, 0x8c, 0x85, 0x83, 0x80, 0x85, 0x86, 0x7a, 0x70, 0x71, 0x6f, 0x6d, -0x70, 0x69, 0x6b, 0x70, 0x6f, 0x6c, 0x6a, 0x66, 0x75, 0x81, 0x8f, 0x97, 0x89, 0x85, 0x84, 0x80, -0x77, 0x77, 0x80, 0x7d, 0x6f, 0x6b, 0x64, 0x60, 0x75, 0x81, 0x7c, 0x71, 0x67, 0x68, 0x7a, 0x80, -0x79, 0x81, 0x85, 0x80, 0x79, 0x7e, 0x85, 0x7e, 0x80, 0x75, 0x6c, 0x76, 0x86, 0x90, 0x96, 0x98, -0x91, 0x95, 0x9a, 0x9e, 0x9b, 0x8b, 0x75, 0x8a, 0x99, 0x8c, 0x82, 0x85, 0x91, 0x8d, 0x7c, 0x6a, -0x61, 0x74, 0x7e, 0x78, 0x6f, 0x68, 0x67, 0x74, 0x83, 0x81, 0x8b, 0x9d, 0xa0, 0x94, 0x90, 0x8f, -0x93, 0x8f, 0x87, 0x88, 0x8a, 0x83, 0x90, 0x9d, 0x8a, 0x7e, 0x7c, 0x8c, 0x9c, 0x89, 0x73, 0x71, -0x75, 0x73, 0x64, 0x61, 0x68, 0x63, 0x65, 0x67, 0x5b, 0x72, 0x93, 0x93, 0x82, 0x78, 0x75, 0x5e, -0x4e, 0x58, 0x69, 0x6c, 0x66, 0x70, 0x71, 0x65, 0x6c, 0x79, 0x82, 0x87, 0x81, 0x77, 0x73, 0x7a, -0x82, 0x81, 0x80, 0x8b, 0x97, 0x98, 0x8d, 0x86, 0x9b, 0xa4, 0x92, 0x86, 0x8e, 0x83, 0x6b, 0x5b, -0x4c, 0x51, 0x66, 0x66, 0x63, 0x5e, 0x51, 0x4f, 0x61, 0x6c, 0x75, 0x7e, 0x79, 0x6f, 0x67, 0x66, -0x64, 0x5d, 0x5c, 0x6b, 0x76, 0x75, 0x75, 0x8b, 0x9d, 0x9e, 0x9e, 0x99, 0x88, 0x84, 0x8c, 0x8f, -0x93, 0x9e, 0xa2, 0x9c, 0x97, 0x96, 0x95, 0x92, 0x92, 0x92, 0x8c, 0x93, 0x94, 0x90, 0x89, 0x7a, -0x6f, 0x66, 0x66, 0x66, 0x6d, 0x73, 0x7e, 0x88, 0x86, 0x90, 0x93, 0x88, 0x85, 0x83, 0x83, 0x87, -0x8a, 0x91, 0x93, 0x94, 0x96, 0x95, 0xa1, 0xae, 0xa9, 0xa1, 0x9f, 0xa1, 0x9e, 0x95, 0x95, 0x92, -0x87, 0x84, 0x8b, 0x8e, 0x98, 0xa5, 0xaa, 0x9e, 0x94, 0x8b, 0x79, 0x6d, 0x68, 0x6e, 0x83, 0x8c, -0x78, 0x69, 0x70, 0x6f, 0x6e, 0x6c, 0x64, 0x57, 0x56, 0x6f, 0x8a, 0x8b, 0x81, 0x7c, 0x7a, 0x7c, -0x6e, 0x62, 0x6c, 0x76, 0x7c, 0x82, 0x8a, 0x8c, 0x75, 0x67, 0x61, 0x63, 0x6d, 0x7c, 0x85, 0x75, -0x67, 0x6d, 0x70, 0x71, 0x71, 0x72, 0x69, 0x6f, 0x7b, 0x84, 0x7d, 0x75, 0x7c, 0x84, 0x83, 0x79, -0x70, 0x70, 0x81, 0x8e, 0x93, 0x94, 0x82, 0x6e, 0x6d, 0x83, 0x98, 0xa5, 0xa7, 0x9a, 0x85, 0x84, -0x85, 0x74, 0x67, 0x60, 0x60, 0x6f, 0x84, 0x8a, 0x85, 0x7a, 0x79, 0x7d, 0x7c, 0x79, 0x78, 0x6f, -0x73, 0x87, 0x9a, 0x9d, 0x99, 0x92, 0x83, 0x7d, 0x7e, 0x7c, 0x87, 0x92, 0x8c, 0x86, 0x8d, 0x91, -0x99, 0x9b, 0x88, 0x7b, 0x71, 0x72, 0x6c, 0x5f, 0x65, 0x73, 0x87, 0x8b, 0x81, 0x77, 0x80, 0x8b, -0x85, 0x7d, 0x81, 0x73, 0x67, 0x6a, 0x7a, 0x81, 0x7a, 0x75, 0x83, 0x81, 0x70, 0x74, 0x7c, 0x75, -0x6f, 0x70, 0x74, 0x79, 0x7b, 0x77, 0x78, 0x81, 0x89, 0x98, 0x96, 0x92, 0x90, 0x88, 0x81, 0x78, -0x7d, 0x87, 0x73, 0x5d, 0x55, 0x56, 0x57, 0x5c, 0x68, 0x6a, 0x62, 0x6a, 0x75, 0x79, 0x74, 0x70, -0x65, 0x52, 0x48, 0x4d, 0x5c, 0x66, 0x6d, 0x88, 0x99, 0x8f, 0x88, 0x96, 0x9c, 0x9e, 0x9f, 0x92, -0x8d, 0x8b, 0x9b, 0xac, 0xaa, 0xa9, 0x9f, 0x96, 0x89, 0x86, 0x84, 0x94, 0xa1, 0x9a, 0x8d, 0x7d, -0x87, 0xa2, 0x9e, 0x91, 0x93, 0x97, 0x94, 0x8c, 0x7b, 0x74, 0x71, 0x6c, 0x81, 0x80, 0x80, 0x79, -0x64, 0x5e, 0x61, 0x6a, 0x78, 0x80, 0x79, 0x78, 0x87, 0x81, 0x88, 0x99, 0x99, 0x93, 0x8d, 0x85, -0x72, 0x69, 0x6e, 0x7b, 0x8e, 0x98, 0x92, 0x7e, 0x76, 0x81, 0x96, 0xa1, 0x95, 0x88, 0x7d, 0x6f, -0x68, 0x76, 0x7e, 0x75, 0x6a, 0x62, 0x68, 0x6d, 0x66, 0x5d, 0x50, 0x50, 0x61, 0x6a, 0x6c, 0x62, -0x5b, 0x5a, 0x64, 0x79, 0x7b, 0x74, 0x7d, 0x7b, 0x74, 0x80, 0x86, 0x85, 0x83, 0x85, 0x8d, 0x86, -0x86, 0x8c, 0x9d, 0x9f, 0x9b, 0x9f, 0x8e, 0x83, 0x88, 0x89, 0x81, 0x76, 0x80, 0x87, 0x84, 0x82, -0x8d, 0x9a, 0x9a, 0x8e, 0x8d, 0x9b, 0x9c, 0xa3, 0xa5, 0x93, 0x8b, 0x85, 0x92, 0xa1, 0xaa, 0xa3, -0x9c, 0x98, 0x8a, 0x8a, 0x8d, 0x89, 0x8c, 0x93, 0x86, 0x69, 0x62, 0x7e, 0x8d, 0x8b, 0x8c, 0x91, -0x91, 0x8c, 0x89, 0x85, 0x82, 0x84, 0x8e, 0x88, 0x74, 0x73, 0x76, 0x6a, 0x73, 0x8e, 0x95, 0x93, -0x8f, 0x89, 0x89, 0x83, 0x80, 0x8c, 0x86, 0x7b, 0x71, 0x65, 0x57, 0x4a, 0x4e, 0x5d, 0x72, 0x74, -0x64, 0x53, 0x4c, 0x4a, 0x56, 0x69, 0x6c, 0x69, 0x68, 0x5f, 0x57, 0x5b, 0x6e, 0x84, 0x86, 0x83, -0x89, 0x8a, 0x79, 0x6e, 0x6e, 0x6a, 0x6b, 0x6c, 0x70, 0x72, 0x6a, 0x6b, 0x81, 0xac, 0xb8, 0xa4, -0x9d, 0x93, 0x89, 0x82, 0x72, 0x6f, 0x7c, 0x85, 0x86, 0x82, 0x75, 0x72, 0x6c, 0x6c, 0x86, 0x90, -0x87, 0x75, 0x65, 0x61, 0x5d, 0x5e, 0x65, 0x69, 0x6b, 0x6a, 0x64, 0x56, 0x54, 0x68, 0x76, 0x75, -0x7c, 0x8c, 0x90, 0x91, 0x93, 0x8f, 0x9f, 0xa9, 0xa2, 0xa1, 0xa0, 0x9e, 0x94, 0x9f, 0xab, 0xa8, -0xa1, 0x94, 0x85, 0x78, 0x6f, 0x64, 0x6b, 0x77, 0x7d, 0x7e, 0x7a, 0x73, 0x62, 0x58, 0x5d, 0x65, -0x6d, 0x70, 0x70, 0x72, 0x66, 0x5d, 0x6b, 0x78, 0x7b, 0x86, 0x91, 0x92, 0x92, 0x95, 0xa1, 0xb0, -0xa6, 0x9d, 0x98, 0x93, 0x8e, 0x88, 0x8c, 0x93, 0x92, 0x8b, 0x82, 0x7c, 0x82, 0x8d, 0x94, 0x93, -0x9a, 0x99, 0x93, 0x8f, 0x87, 0x84, 0x86, 0x8c, 0x8d, 0x8c, 0x89, 0x89, 0x84, 0x72, 0x61, 0x59, -0x61, 0x69, 0x6e, 0x78, 0x7c, 0x7d, 0x86, 0x96, 0x9c, 0x90, 0x86, 0x7d, 0x7e, 0x85, 0x8c, 0x94, -0x96, 0x92, 0x89, 0x83, 0x7b, 0x82, 0x91, 0x8f, 0x8c, 0x92, 0x8e, 0x8a, 0x7d, 0x74, 0x7a, 0x83, -0x82, 0x7c, 0x73, 0x6e, 0x6d, 0x6d, 0x6b, 0x60, 0x53, 0x5d, 0x6a, 0x73, 0x7c, 0x88, 0x8d, 0x8f, -0x98, 0x94, 0x8c, 0x8a, 0x8a, 0x8f, 0x8d, 0x8d, 0x92, 0x94, 0x8e, 0x81, 0x73, 0x6d, 0x73, 0x7b, -0x78, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x6e, 0x6b, 0x6e, 0x73, 0x70, 0x6e, 0x6f, 0x72, 0x77, 0x77, -0x72, 0x69, 0x68, 0x75, 0x80, 0x87, 0x92, 0x98, 0x9b, 0xa3, 0x93, 0x81, 0x7b, 0x7e, 0x84, 0x76, -0x6f, 0x6f, 0x70, 0x71, 0x6e, 0x62, 0x5f, 0x67, 0x64, 0x63, 0x66, 0x6c, 0x6a, 0x65, 0x6b, 0x73, -0x78, 0x80, 0x82, 0x85, 0x86, 0x87, 0x8e, 0x89, 0x78, 0x69, 0x5c, 0x58, 0x68, 0x7a, 0x84, 0x89, -0x8c, 0x96, 0x9e, 0x8f, 0x82, 0x7c, 0x84, 0x88, 0x85, 0x89, 0x8d, 0x8e, 0x92, 0x95, 0x93, 0x8f, -0x8b, 0x7c, 0x6c, 0x6d, 0x73, 0x6c, 0x66, 0x62, 0x64, 0x67, 0x67, 0x65, 0x64, 0x62, 0x68, 0x75, -0x7e, 0x7a, 0x72, 0x6d, 0x70, 0x7a, 0x8d, 0x9b, 0x9f, 0xa0, 0xa5, 0xa5, 0x9f, 0xa2, 0xa6, 0xa7, -0xa6, 0xa3, 0xa4, 0xa7, 0xa6, 0xa1, 0x9f, 0x9b, 0x99, 0x96, 0x8b, 0x7e, 0x79, 0x79, 0x7d, 0x7b, -0x74, 0x6d, 0x6a, 0x6a, 0x6a, 0x6a, 0x6e, 0x76, 0x7d, 0x83, 0x83, 0x7e, 0x78, 0x76, 0x79, 0x83, -0x8c, 0x8f, 0x8a, 0x85, 0x80, 0x7c, 0x7e, 0x85, 0x87, 0x83, 0x80, 0x83, 0x89, 0x8d, 0x8c, 0x8d, -0x8c, 0x8d, 0x91, 0x8e, 0x8a, 0x87, 0x87, 0x8c, 0x91, 0x91, 0x91, 0x90, 0x8a, 0x85, 0x81, 0x81, -0x84, 0x82, 0x78, 0x6e, 0x65, 0x61, 0x63, 0x68, 0x6a, 0x6c, 0x6f, 0x72, 0x6b, 0x5f, 0x5c, 0x61, -0x6a, 0x6d, 0x6a, 0x6a, 0x70, 0x75, 0x7a, 0x7d, 0x7e, 0x7d, 0x7c, 0x78, 0x75, 0x76, 0x7b, 0x81, -0x7c, 0x77, 0x72, 0x6f, 0x73, 0x72, 0x6e, 0x6a, 0x6e, 0x79, 0x83, 0x81, 0x78, 0x73, 0x72, 0x74, -0x79, 0x7e, 0x83, 0x83, 0x80, 0x80, 0x84, 0x8a, 0x91, 0x96, 0x98, 0x96, 0x93, 0x93, 0x94, 0x93, -0x90, 0x8b, 0x84, 0x80, 0x7b, 0x79, 0x78, 0x7e, 0x84, 0x83, 0x7b, 0x77, 0x78, 0x7d, 0x83, 0x84, -0x80, 0x82, 0x8c, 0x93, 0x9a, 0x9f, 0x9e, 0x9e, 0x9f, 0xa4, 0xab, 0xa9, 0xa3, 0x9a, 0x90, 0x87, -0x85, 0x83, 0x7d, 0x77, 0x6f, 0x6c, 0x70, 0x72, 0x6f, 0x6b, 0x66, 0x64, 0x65, 0x63, 0x62, 0x66, -0x70, 0x78, 0x76, 0x73, 0x77, 0x7d, 0x86, 0x8a, 0x85, 0x82, 0x85, 0x88, 0x89, 0x88, 0x84, 0x82, -0x7c, 0x79, 0x79, 0x7e, 0x88, 0x8f, 0x8f, 0x88, 0x83, 0x84, 0x88, 0x8c, 0x8c, 0x87, 0x84, 0x84, -0x86, 0x8d, 0x8d, 0x87, 0x7d, 0x76, 0x73, 0x71, 0x71, 0x74, 0x71, 0x6c, 0x65, 0x61, 0x61, 0x60, -0x60, 0x5e, 0x5c, 0x60, 0x65, 0x67, 0x69, 0x6a, 0x6a, 0x6b, 0x6d, 0x6f, 0x78, 0x86, 0x8f, 0x92, -0x91, 0x8e, 0x8d, 0x94, 0x9e, 0xa5, 0xa7, 0xa7, 0xa5, 0xa4, 0xa1, 0x9b, 0x92, 0x88, 0x7d, 0x74, -0x6e, 0x70, 0x75, 0x71, 0x65, 0x5d, 0x5b, 0x5d, 0x5d, 0x5b, 0x57, 0x58, 0x5f, 0x66, 0x6a, 0x6c, -0x70, 0x73, 0x73, 0x6f, 0x6d, 0x74, 0x7e, 0x82, 0x80, 0x7c, 0x7a, 0x7d, 0x84, 0x8d, 0x93, 0x95, -0x97, 0x93, 0x8c, 0x8b, 0x8e, 0x94, 0x97, 0x96, 0x98, 0x98, 0x97, 0x97, 0x94, 0x8b, 0x82, 0x7e, -0x7a, 0x77, 0x75, 0x72, 0x72, 0x6f, 0x70, 0x75, 0x76, 0x72, 0x6d, 0x6e, 0x6c, 0x6b, 0x6f, 0x73, -0x75, 0x73, 0x6f, 0x6f, 0x71, 0x75, 0x7a, 0x81, 0x88, 0x8a, 0x8a, 0x8a, 0x8c, 0x92, 0x97, 0x95, -0x93, 0x92, 0x8d, 0x8e, 0x8e, 0x93, 0x99, 0x9a, 0x9a, 0x9a, 0x9b, 0x96, 0x92, 0x94, 0x93, 0x93, -0x92, 0x90, 0x92, 0x93, 0x93, 0x8f, 0x8f, 0x95, 0x9c, 0x9c, 0x96, 0x92, 0x94, 0x98, 0x90, 0x8a, -0x8e, 0x92, 0x93, 0x91, 0x92, 0x95, 0x96, 0x93, 0x90, 0x90, 0x8c, 0x86, 0x84, 0x84, 0x86, 0x84, -0x7c, 0x79, 0x74, 0x6c, 0x67, 0x68, 0x6e, 0x75, 0x78, 0x75, 0x70, 0x6d, 0x69, 0x64, 0x63, 0x66, -0x68, 0x67, 0x67, 0x66, 0x6b, 0x6f, 0x71, 0x73, 0x74, 0x73, 0x75, 0x75, 0x72, 0x6f, 0x6a, 0x63, -0x5d, 0x5d, 0x5f, 0x60, 0x62, 0x66, 0x69, 0x6a, 0x6c, 0x6f, 0x71, 0x71, 0x71, 0x73, 0x78, 0x79, -0x79, 0x7b, 0x76, 0x71, 0x72, 0x73, 0x77, 0x79, 0x79, 0x7c, 0x7e, 0x7c, 0x7c, 0x81, 0x83, 0x83, -0x80, 0x81, 0x84, 0x8a, 0x8d, 0x8b, 0x86, 0x85, 0x87, 0x81, 0x79, 0x74, 0x73, 0x72, 0x6a, 0x65, -0x65, 0x63, 0x64, 0x6b, 0x70, 0x71, 0x6d, 0x6d, 0x70, 0x74, 0x79, 0x7d, 0x80, 0x7d, 0x7e, 0x84, -0x88, 0x89, 0x89, 0x85, 0x81, 0x85, 0x90, 0x99, 0x99, 0x97, 0x96, 0x97, 0x96, 0x93, 0x94, 0x96, -0x94, 0x92, 0x95, 0x99, 0x98, 0x97, 0x94, 0x8e, 0x88, 0x87, 0x88, 0x84, 0x7a, 0x78, 0x78, 0x72, -0x70, 0x74, 0x76, 0x73, 0x74, 0x78, 0x77, 0x73, 0x77, 0x7c, 0x7e, 0x7e, 0x80, 0x87, 0x91, 0x9b, -0xa4, 0xa5, 0xa1, 0x99, 0x94, 0x93, 0x96, 0x98, 0x99, 0x97, 0x90, 0x84, 0x7e, 0x81, 0x84, 0x85, -0x7d, 0x73, 0x6d, 0x72, 0x7b, 0x82, 0x83, 0x82, 0x81, 0x82, 0x81, 0x85, 0x8a, 0x8e, 0x8e, 0x8b, -0x88, 0x83, 0x82, 0x81, 0x7c, 0x79, 0x76, 0x78, 0x7b, 0x78, 0x75, 0x74, 0x79, 0x80, 0x86, 0x8b, -0x8b, 0x88, 0x85, 0x80, 0x7c, 0x82, 0x88, 0x8e, 0x8e, 0x86, 0x7d, 0x7a, 0x79, 0x7a, 0x7e, 0x7d, -0x77, 0x70, 0x6d, 0x6e, 0x6f, 0x74, 0x78, 0x75, 0x6c, 0x68, 0x6e, 0x77, 0x7e, 0x7d, 0x78, 0x75, -0x7b, 0x86, 0x88, 0x89, 0x8c, 0x89, 0x83, 0x7e, 0x80, 0x84, 0x84, 0x81, 0x81, 0x80, 0x7d, 0x81, -0x84, 0x80, 0x7a, 0x73, 0x6c, 0x6b, 0x6d, 0x71, 0x78, 0x7c, 0x7c, 0x78, 0x71, 0x6b, 0x6e, 0x79, -0x7b, 0x75, 0x74, 0x7b, 0x82, 0x84, 0x83, 0x81, 0x7e, 0x80, 0x87, 0x90, 0x94, 0x8b, 0x7e, 0x75, -0x75, 0x7d, 0x83, 0x82, 0x7c, 0x72, 0x6a, 0x68, 0x69, 0x6d, 0x6c, 0x64, 0x5d, 0x5f, 0x64, 0x67, -0x6d, 0x74, 0x78, 0x75, 0x6f, 0x6d, 0x6f, 0x76, 0x81, 0x88, 0x8c, 0x88, 0x82, 0x80, 0x86, 0x8e, -0x93, 0x94, 0x96, 0x9d, 0xa1, 0x9f, 0x9a, 0x94, 0x8d, 0x8a, 0x8a, 0x8d, 0x94, 0x93, 0x86, 0x79, -0x7a, 0x7e, 0x7d, 0x7a, 0x73, 0x69, 0x61, 0x63, 0x6e, 0x75, 0x77, 0x75, 0x76, 0x7c, 0x82, 0x85, -0x8b, 0x92, 0x92, 0x8b, 0x82, 0x7a, 0x7a, 0x7e, 0x84, 0x89, 0x8e, 0x92, 0x91, 0x8c, 0x8d, 0x91, -0x91, 0x8d, 0x8c, 0x8e, 0x90, 0x94, 0x9d, 0xa4, 0xa1, 0x99, 0x92, 0x90, 0x8f, 0x8a, 0x82, 0x78, -0x73, 0x72, 0x74, 0x73, 0x6e, 0x67, 0x60, 0x5c, 0x5f, 0x63, 0x65, 0x65, 0x6a, 0x74, 0x7b, 0x7c, -0x81, 0x87, 0x85, 0x7e, 0x7d, 0x84, 0x8c, 0x8f, 0x8d, 0x89, 0x8a, 0x8f, 0x8e, 0x8c, 0x8c, 0x89, -0x83, 0x80, 0x7e, 0x7b, 0x78, 0x76, 0x74, 0x6e, 0x6a, 0x68, 0x68, 0x6f, 0x7a, 0x81, 0x7b, 0x71, -0x66, 0x60, 0x5f, 0x67, 0x72, 0x73, 0x6c, 0x61, 0x5e, 0x64, 0x68, 0x6c, 0x74, 0x7e, 0x83, 0x7d, -0x7c, 0x82, 0x82, 0x82, 0x87, 0x8c, 0x8e, 0x8f, 0x90, 0x90, 0x92, 0x96, 0x97, 0x93, 0x88, 0x7b, -0x74, 0x76, 0x86, 0x94, 0x98, 0x96, 0x93, 0x91, 0x8e, 0x88, 0x89, 0x90, 0x96, 0x95, 0x8f, 0x87, -0x7e, 0x78, 0x7a, 0x84, 0x8a, 0x89, 0x83, 0x81, 0x89, 0x90, 0x90, 0x91, 0x93, 0x93, 0x90, 0x8d, -0x91, 0x9a, 0x9d, 0x98, 0x90, 0x8a, 0x88, 0x84, 0x7c, 0x7b, 0x80, 0x81, 0x80, 0x79, 0x70, 0x6c, -0x6c, 0x70, 0x79, 0x7d, 0x7d, 0x7b, 0x7d, 0x83, 0x84, 0x7e, 0x7d, 0x80, 0x80, 0x80, 0x82, 0x85, -0x84, 0x7e, 0x7a, 0x74, 0x6e, 0x6c, 0x6e, 0x73, 0x7d, 0x86, 0x84, 0x79, 0x74, 0x75, 0x75, 0x75, -0x74, 0x70, 0x6a, 0x63, 0x65, 0x6c, 0x71, 0x73, 0x75, 0x79, 0x77, 0x70, 0x71, 0x7a, 0x7c, 0x7b, -0x7a, 0x76, 0x72, 0x75, 0x7a, 0x81, 0x87, 0x8b, 0x89, 0x82, 0x7a, 0x7a, 0x7e, 0x82, 0x83, 0x86, -0x84, 0x7c, 0x74, 0x72, 0x78, 0x7b, 0x7d, 0x7c, 0x76, 0x6b, 0x62, 0x62, 0x6a, 0x72, 0x78, 0x77, -0x6f, 0x69, 0x6d, 0x6e, 0x71, 0x78, 0x81, 0x87, 0x83, 0x80, 0x82, 0x84, 0x84, 0x8b, 0x8d, 0x86, -0x81, 0x80, 0x87, 0x93, 0x99, 0x9a, 0x9b, 0x97, 0x8f, 0x8d, 0x91, 0x99, 0x9e, 0x9f, 0x99, 0x8e, -0x88, 0x86, 0x81, 0x7c, 0x80, 0x80, 0x7b, 0x73, 0x6c, 0x6b, 0x6c, 0x6e, 0x71, 0x74, 0x72, 0x6f, -0x6f, 0x73, 0x79, 0x80, 0x85, 0x84, 0x82, 0x80, 0x82, 0x82, 0x81, 0x82, 0x7e, 0x78, 0x72, 0x70, -0x70, 0x73, 0x78, 0x80, 0x81, 0x7a, 0x75, 0x75, 0x77, 0x75, 0x71, 0x6e, 0x6f, 0x73, 0x74, 0x77, -0x7d, 0x84, 0x88, 0x87, 0x85, 0x80, 0x7d, 0x7d, 0x7a, 0x78, 0x79, 0x7b, 0x7d, 0x85, 0x8d, 0x92, -0x95, 0x9b, 0x9d, 0x99, 0x96, 0x96, 0x9a, 0x9f, 0xa1, 0xa0, 0x9b, 0x95, 0x92, 0x95, 0x99, 0x97, -0x95, 0x97, 0x92, 0x8c, 0x89, 0x8b, 0x8a, 0x88, 0x85, 0x83, 0x81, 0x7e, 0x83, 0x8a, 0x8e, 0x8f, -0x8b, 0x7a, 0x6a, 0x62, 0x69, 0x77, 0x80, 0x83, 0x81, 0x7a, 0x79, 0x78, 0x80, 0x8e, 0x94, 0x91, -0x90, 0x8c, 0x89, 0x87, 0x86, 0x87, 0x8b, 0x91, 0x92, 0x8d, 0x87, 0x82, 0x7e, 0x7d, 0x7b, 0x78, -0x6f, 0x67, 0x68, 0x72, 0x7c, 0x7b, 0x78, 0x75, 0x70, 0x68, 0x5e, 0x5b, 0x60, 0x69, 0x70, 0x72, -0x71, 0x6e, 0x6c, 0x6a, 0x6b, 0x71, 0x72, 0x6c, 0x61, 0x5d, 0x60, 0x64, 0x68, 0x6d, 0x6f, 0x6a, -0x63, 0x63, 0x67, 0x66, 0x61, 0x5c, 0x5b, 0x5f, 0x64, 0x6b, 0x6f, 0x6c, 0x69, 0x68, 0x69, 0x6a, -0x6e, 0x72, 0x75, 0x7b, 0x82, 0x83, 0x84, 0x89, 0x8e, 0x92, 0x95, 0x99, 0x9a, 0x94, 0x93, 0x95, -0x97, 0x99, 0x95, 0x95, 0x93, 0x93, 0x98, 0x99, 0x99, 0x94, 0x92, 0x96, 0x97, 0x93, 0x8e, 0x8e, -0x8c, 0x89, 0x88, 0x85, 0x7b, 0x6f, 0x6e, 0x78, 0x83, 0x8a, 0x8b, 0x82, 0x6f, 0x64, 0x61, 0x6a, -0x70, 0x6f, 0x6f, 0x72, 0x7c, 0x83, 0x85, 0x87, 0x88, 0x85, 0x84, 0x86, 0x86, 0x85, 0x89, 0x8f, -0x92, 0x8f, 0x87, 0x7d, 0x77, 0x76, 0x77, 0x77, 0x76, 0x6d, 0x62, 0x5d, 0x60, 0x68, 0x6e, 0x70, -0x70, 0x6f, 0x6c, 0x6a, 0x65, 0x5f, 0x5c, 0x5f, 0x68, 0x74, 0x79, 0x77, 0x76, 0x7a, 0x7d, 0x7e, -0x7e, 0x80, 0x81, 0x87, 0x93, 0xa0, 0xa7, 0xac, 0xac, 0xa9, 0xa8, 0xa8, 0xaa, 0xa8, 0xa2, 0x9c, -0x9a, 0x9c, 0x9a, 0x97, 0x97, 0x97, 0x95, 0x94, 0x96, 0x93, 0x90, 0x8e, 0x90, 0x94, 0x94, 0x8e, -0x88, 0x86, 0x86, 0x88, 0x86, 0x84, 0x88, 0x8b, 0x8d, 0x91, 0x96, 0x9b, 0x9a, 0x97, 0x92, 0x8e, -0x8e, 0x8c, 0x8b, 0x8c, 0x8c, 0x8a, 0x87, 0x83, 0x7d, 0x7a, 0x79, 0x7c, 0x7e, 0x79, 0x75, 0x74, -0x73, 0x73, 0x74, 0x77, 0x75, 0x6d, 0x66, 0x63, 0x62, 0x5f, 0x5a, 0x59, 0x59, 0x5c, 0x66, 0x70, -0x71, 0x6d, 0x68, 0x65, 0x66, 0x6a, 0x6d, 0x6e, 0x74, 0x7c, 0x83, 0x86, 0x85, 0x83, 0x7e, 0x75, -0x6e, 0x6c, 0x6d, 0x6f, 0x73, 0x76, 0x78, 0x7a, 0x78, 0x76, 0x73, 0x75, 0x7e, 0x86, 0x85, 0x7e, -0x7a, 0x78, 0x78, 0x7a, 0x78, 0x74, 0x75, 0x7e, 0x87, 0x85, 0x7b, 0x74, 0x77, 0x7d, 0x85, 0x8c, -0x8d, 0x89, 0x80, 0x7a, 0x7b, 0x7d, 0x80, 0x7b, 0x75, 0x72, 0x74, 0x77, 0x7b, 0x79, 0x73, 0x6d, -0x6a, 0x6a, 0x6c, 0x6c, 0x6f, 0x76, 0x7d, 0x84, 0x85, 0x83, 0x84, 0x88, 0x8c, 0x8b, 0x88, 0x8a, -0x8f, 0x92, 0x91, 0x8e, 0x8d, 0x8c, 0x8a, 0x8a, 0x8c, 0x86, 0x7d, 0x78, 0x76, 0x79, 0x7e, 0x82, -0x80, 0x76, 0x6b, 0x68, 0x6a, 0x6b, 0x67, 0x62, 0x62, 0x6a, 0x73, 0x77, 0x7a, 0x81, 0x85, 0x82, -0x7c, 0x7a, 0x7a, 0x80, 0x83, 0x82, 0x81, 0x87, 0x92, 0x9e, 0xa3, 0xa1, 0x9c, 0x9b, 0x9b, 0x9a, -0x9a, 0x99, 0x95, 0x94, 0x95, 0x96, 0x93, 0x93, 0x93, 0x8a, 0x7d, 0x71, 0x71, 0x75, 0x77, 0x7a, -0x7a, 0x79, 0x77, 0x77, 0x76, 0x78, 0x7d, 0x7e, 0x7d, 0x80, 0x83, 0x85, 0x87, 0x8c, 0x8b, 0x85, -0x80, 0x83, 0x8a, 0x8d, 0x8c, 0x87, 0x84, 0x88, 0x8c, 0x90, 0x94, 0x93, 0x8f, 0x8e, 0x93, 0x96, -0x95, 0x8f, 0x85, 0x77, 0x72, 0x74, 0x75, 0x72, 0x6c, 0x64, 0x5b, 0x54, 0x51, 0x52, 0x59, 0x61, -0x65, 0x6a, 0x6f, 0x73, 0x78, 0x7e, 0x85, 0x85, 0x84, 0x87, 0x8e, 0x95, 0x98, 0x95, 0x93, 0x8f, -0x8a, 0x89, 0x88, 0x89, 0x8a, 0x84, 0x7c, 0x79, 0x7b, 0x82, 0x86, 0x80, 0x72, 0x6b, 0x6e, 0x70, -0x73, 0x71, 0x6b, 0x67, 0x67, 0x69, 0x6b, 0x71, 0x74, 0x6e, 0x63, 0x5c, 0x61, 0x6d, 0x75, 0x7a, -0x7e, 0x80, 0x85, 0x8e, 0x95, 0x97, 0x94, 0x8f, 0x8e, 0x94, 0x9b, 0x9c, 0x99, 0x96, 0x96, 0x96, -0x94, 0x92, 0x91, 0x90, 0x8b, 0x82, 0x7a, 0x78, 0x78, 0x7a, 0x7d, 0x80, 0x7d, 0x7c, 0x7e, 0x84, -0x8b, 0x8c, 0x86, 0x7a, 0x74, 0x78, 0x81, 0x85, 0x83, 0x7a, 0x6e, 0x6a, 0x6f, 0x79, 0x86, 0x87, -0x82, 0x82, 0x86, 0x8a, 0x8c, 0x89, 0x80, 0x7a, 0x78, 0x78, 0x7a, 0x7d, 0x82, 0x82, 0x80, 0x80, -0x80, 0x7d, 0x79, 0x74, 0x71, 0x6d, 0x6b, 0x69, 0x66, 0x69, 0x6e, 0x70, 0x72, 0x77, 0x7d, 0x87, -0x91, 0x94, 0x8d, 0x86, 0x84, 0x85, 0x8b, 0x8f, 0x8e, 0x86, 0x79, 0x78, 0x7e, 0x87, 0x8c, 0x88, -0x84, 0x7e, 0x7c, 0x80, 0x84, 0x88, 0x85, 0x79, 0x74, 0x78, 0x7c, 0x7e, 0x7e, 0x7a, 0x75, 0x76, -0x77, 0x79, 0x7a, 0x75, 0x70, 0x6c, 0x6c, 0x71, 0x77, 0x7b, 0x80, 0x81, 0x7e, 0x83, 0x89, 0x8d, -0x8c, 0x87, 0x82, 0x7a, 0x74, 0x70, 0x6b, 0x6b, 0x70, 0x72, 0x6f, 0x6a, 0x67, 0x6f, 0x7e, 0x86, -0x82, 0x79, 0x77, 0x7d, 0x86, 0x8d, 0x8b, 0x83, 0x7d, 0x7e, 0x89, 0x90, 0x8f, 0x86, 0x7a, 0x74, -0x74, 0x79, 0x7e, 0x7c, 0x70, 0x68, 0x69, 0x74, 0x7b, 0x7c, 0x7b, 0x78, 0x77, 0x7c, 0x80, 0x80, -0x7d, 0x7e, 0x83, 0x88, 0x8a, 0x87, 0x86, 0x85, 0x87, 0x85, 0x7d, 0x74, 0x6c, 0x6c, 0x71, 0x73, -0x74, 0x72, 0x71, 0x74, 0x7b, 0x86, 0x88, 0x83, 0x80, 0x86, 0x91, 0x9d, 0xa4, 0x9e, 0x91, 0x8c, -0x93, 0x9d, 0xa3, 0xa1, 0x99, 0x94, 0x90, 0x90, 0x93, 0x94, 0x94, 0x93, 0x8f, 0x8e, 0x92, 0x99, -0x9b, 0x97, 0x8e, 0x8a, 0x88, 0x85, 0x84, 0x82, 0x7d, 0x7c, 0x7b, 0x77, 0x75, 0x77, 0x7c, 0x84, -0x8c, 0x93, 0x98, 0x9d, 0xa2, 0xa8, 0xa2, 0x98, 0x93, 0x96, 0x9b, 0x9d, 0x99, 0x93, 0x89, 0x7e, -0x73, 0x71, 0x77, 0x7a, 0x76, 0x71, 0x6e, 0x6e, 0x73, 0x73, 0x6e, 0x65, 0x5e, 0x60, 0x69, 0x74, -0x78, 0x75, 0x72, 0x70, 0x74, 0x78, 0x78, 0x77, 0x73, 0x71, 0x6e, 0x6c, 0x70, 0x74, 0x72, 0x6e, -0x6c, 0x6f, 0x75, 0x78, 0x7b, 0x81, 0x82, 0x80, 0x76, 0x6f, 0x70, 0x76, 0x7c, 0x7c, 0x79, 0x77, -0x77, 0x78, 0x7d, 0x7e, 0x7a, 0x76, 0x75, 0x77, 0x75, 0x6d, 0x67, 0x65, 0x65, 0x67, 0x6c, 0x70, -0x6f, 0x6c, 0x69, 0x69, 0x6e, 0x78, 0x80, 0x7b, 0x73, 0x72, 0x76, 0x79, 0x7c, 0x80, 0x84, 0x84, -0x83, 0x81, 0x7e, 0x84, 0x8b, 0x8c, 0x86, 0x79, 0x6f, 0x6d, 0x70, 0x73, 0x72, 0x6c, 0x67, 0x69, -0x6b, 0x6c, 0x6a, 0x69, 0x6a, 0x6a, 0x6d, 0x6e, 0x6d, 0x6b, 0x69, 0x6f, 0x7a, 0x82, 0x8a, 0x92, -0x92, 0x8f, 0x94, 0x9a, 0x9a, 0x98, 0x92, 0x8a, 0x83, 0x7d, 0x78, 0x76, 0x76, 0x76, 0x78, 0x74, -0x71, 0x77, 0x82, 0x88, 0x8d, 0x8e, 0x88, 0x84, 0x86, 0x8c, 0x93, 0x99, 0x9c, 0x98, 0x94, 0x92, -0x93, 0x93, 0x92, 0x8f, 0x8c, 0x8e, 0x95, 0x98, 0x99, 0x93, 0x8d, 0x92, 0x9c, 0xa1, 0xa0, 0xa1, -0xa1, 0x9e, 0x9b, 0x9b, 0x9f, 0xa1, 0x9e, 0x98, 0x94, 0x92, 0x95, 0x95, 0x8f, 0x8b, 0x84, 0x79, -0x76, 0x77, 0x7b, 0x7d, 0x7e, 0x83, 0x84, 0x83, 0x7b, 0x74, 0x73, 0x78, 0x7b, 0x7c, 0x7e, 0x81, -0x83, 0x83, 0x7d, 0x79, 0x7d, 0x82, 0x89, 0x92, 0x94, 0x8d, 0x80, 0x77, 0x7d, 0x86, 0x8d, 0x8f, -0x8a, 0x86, 0x88, 0x8b, 0x8c, 0x8d, 0x88, 0x78, 0x6d, 0x69, 0x66, 0x63, 0x5f, 0x59, 0x53, 0x50, -0x51, 0x51, 0x52, 0x54, 0x5e, 0x6f, 0x7e, 0x81, 0x7b, 0x75, 0x72, 0x77, 0x82, 0x8a, 0x8c, 0x8f, -0x95, 0x94, 0x8b, 0x82, 0x80, 0x81, 0x83, 0x8a, 0x8c, 0x82, 0x74, 0x6d, 0x6e, 0x74, 0x77, 0x78, -0x72, 0x6c, 0x6f, 0x76, 0x7d, 0x82, 0x7e, 0x76, 0x72, 0x73, 0x74, 0x78, 0x78, 0x76, 0x75, 0x74, -0x72, 0x71, 0x73, 0x76, 0x78, 0x7d, 0x86, 0x86, 0x7c, 0x71, 0x6b, 0x67, 0x68, 0x6f, 0x73, 0x77, -0x79, 0x79, 0x77, 0x73, 0x7b, 0x86, 0x8a, 0x90, 0x94, 0x95, 0x92, 0x8b, 0x87, 0x86, 0x81, 0x7a, -0x75, 0x74, 0x75, 0x79, 0x7b, 0x80, 0x7e, 0x75, 0x69, 0x62, 0x61, 0x65, 0x68, 0x68, 0x6a, 0x6c, -0x74, 0x84, 0x8c, 0x8a, 0x86, 0x88, 0x8d, 0x8f, 0x8e, 0x89, 0x81, 0x7a, 0x7a, 0x80, 0x8a, 0x91, -0x93, 0x94, 0x90, 0x8b, 0x89, 0x87, 0x84, 0x83, 0x82, 0x7e, 0x82, 0x87, 0x8d, 0x97, 0xa0, 0xa2, -0xa0, 0x9b, 0x95, 0x97, 0x9a, 0x9e, 0x9f, 0x98, 0x94, 0x91, 0x8c, 0x89, 0x81, 0x76, 0x6f, 0x6b, -0x6a, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x62, 0x58, 0x5a, 0x59, 0x59, 0x61, 0x6c, 0x71, 0x75, -0x7a, 0x78, 0x71, 0x6b, 0x6c, 0x74, 0x7c, 0x82, 0x84, 0x85, 0x86, 0x88, 0x91, 0x9f, 0xa5, 0xa5, -0xa7, 0xa8, 0xa7, 0xa7, 0xa7, 0xa3, 0x98, 0x8a, 0x82, 0x82, 0x89, 0x8f, 0x8e, 0x8b, 0x89, 0x83, -0x78, 0x6e, 0x64, 0x68, 0x70, 0x7b, 0x83, 0x84, 0x84, 0x80, 0x79, 0x74, 0x78, 0x7d, 0x81, 0x87, -0x89, 0x85, 0x7d, 0x74, 0x6c, 0x6c, 0x78, 0x80, 0x7a, 0x78, 0x7b, 0x80, 0x84, 0x89, 0x83, 0x74, -0x68, 0x65, 0x6a, 0x73, 0x7d, 0x7e, 0x7c, 0x87, 0x8c, 0x8c, 0x86, 0x82, 0x7d, 0x7d, 0x87, 0x83, -0x7d, 0x7b, 0x6e, 0x5a, 0x4f, 0x58, 0x63, 0x6e, 0x7e, 0x83, 0x87, 0x8b, 0x90, 0x99, 0xa2, 0xad, -0xb5, 0xb3, 0xac, 0xa5, 0x9a, 0x8d, 0x97, 0xa6, 0xa7, 0x9e, 0x97, 0x96, 0x97, 0x96, 0x8f, 0x89, -0x83, 0x77, 0x6f, 0x6f, 0x72, 0x76, 0x83, 0x7b, 0x77, 0x82, 0x81, 0x77, 0x6b, 0x62, 0x65, 0x6e, -0x74, 0x73, 0x68, 0x5f, 0x61, 0x68, 0x7c, 0x8c, 0x92, 0x86, 0x85, 0x89, 0x88, 0x89, 0x8d, 0x8d, -0x88, 0x81, 0x76, 0x73, 0x7b, 0x83, 0x81, 0x7b, 0x83, 0x87, 0x88, 0x86, 0x85, 0x87, 0x86, 0x7d, -0x73, 0x6a, 0x6e, 0x80, 0x81, 0x7a, 0x86, 0x86, 0x84, 0x86, 0x85, 0x7d, 0x75, 0x70, 0x6c, 0x69, -0x69, 0x70, 0x7a, 0x7a, 0x77, 0x78, 0x77, 0x77, 0x7b, 0x71, 0x66, 0x57, 0x55, 0x72, 0x81, 0x7e, -0x7d, 0x80, 0x89, 0x8b, 0x73, 0x68, 0x6a, 0x67, 0x69, 0x6a, 0x65, 0x5b, 0x5c, 0x5e, 0x55, 0x4f, -0x53, 0x5a, 0x62, 0x66, 0x69, 0x6a, 0x67, 0x6c, 0x78, 0x83, 0x94, 0x9a, 0x95, 0x8d, 0x86, 0x83, -0x89, 0x99, 0xa2, 0x90, 0x7d, 0x83, 0x8b, 0x89, 0x7d, 0x71, 0x68, 0x5f, 0x5b, 0x5d, 0x65, 0x7b, -0x89, 0x93, 0x94, 0x88, 0x80, 0x71, 0x67, 0x6c, 0x76, 0x7e, 0x82, 0x82, 0x80, 0x7a, 0x7e, 0x8a, -0x99, 0xaa, 0xab, 0xa1, 0xa4, 0xa6, 0xa5, 0x9f, 0x9a, 0x96, 0x94, 0x8c, 0x86, 0x8b, 0x89, 0x8a, -0x8b, 0x84, 0x77, 0x6e, 0x6d, 0x69, 0x76, 0x90, 0x92, 0x8b, 0x83, 0x8b, 0xa2, 0xa3, 0x9f, 0xa5, -0xab, 0xa9, 0x91, 0x8b, 0x87, 0x7e, 0x74, 0x6f, 0x72, 0x79, 0x85, 0x94, 0xa1, 0xa6, 0xa6, 0xa9, -0xa5, 0x9c, 0x99, 0x98, 0x94, 0x9d, 0xb6, 0xb1, 0x9f, 0x97, 0x91, 0x8e, 0x8b, 0x95, 0x9a, 0x92, -0x83, 0x69, 0x57, 0x61, 0x75, 0x77, 0x6e, 0x65, 0x57, 0x54, 0x5f, 0x5c, 0x5d, 0x69, 0x62, 0x5b, -0x65, 0x6a, 0x78, 0x8c, 0x92, 0x99, 0x8e, 0x83, 0x85, 0x8a, 0x91, 0x9a, 0xa5, 0xa4, 0x92, 0x86, -0x82, 0x76, 0x78, 0x78, 0x70, 0x65, 0x64, 0x6c, 0x6d, 0x62, 0x5d, 0x6a, 0x6e, 0x77, 0x7b, 0x6d, -0x60, 0x58, 0x56, 0x5e, 0x6e, 0x6b, 0x67, 0x6d, 0x6e, 0x72, 0x73, 0x80, 0x88, 0x74, 0x69, 0x7b, -0x88, 0x92, 0x97, 0x90, 0x90, 0x8a, 0x7c, 0x6b, 0x64, 0x71, 0x77, 0x76, 0x6f, 0x63, 0x61, 0x62, -0x6d, 0x7e, 0x83, 0x7b, 0x7b, 0x75, 0x82, 0x9a, 0x9e, 0x93, 0x92, 0x90, 0x76, 0x6d, 0x78, 0x70, -0x66, 0x6b, 0x64, 0x5a, 0x5f, 0x65, 0x6a, 0x73, 0x7b, 0x87, 0x88, 0x78, 0x65, 0x52, 0x60, 0x7b, -0x8d, 0xa3, 0x9d, 0x8b, 0x83, 0x82, 0x8c, 0x89, 0x83, 0x8a, 0x85, 0x73, 0x6a, 0x6a, 0x61, 0x77, -0x8d, 0x83, 0x75, 0x6e, 0x69, 0x5d, 0x5c, 0x70, 0x7b, 0x76, 0x6c, 0x63, 0x5d, 0x67, 0x7d, 0x8e, -0xa3, 0xa7, 0xa3, 0xa4, 0xa6, 0xa6, 0xad, 0xac, 0x9a, 0x8a, 0x7e, 0x6b, 0x53, 0x44, 0x4a, 0x57, -0x5d, 0x69, 0x75, 0x7e, 0x80, 0x73, 0x65, 0x77, 0x8a, 0x84, 0x76, 0x78, 0x8c, 0x9a, 0xa2, 0xa7, -0xae, 0xb9, 0xbd, 0xbe, 0xc6, 0xd1, 0xcb, 0xb6, 0xa5, 0xa2, 0xa7, 0xab, 0xaa, 0xaa, 0xa7, 0x98, -0x8e, 0x92, 0x8f, 0x92, 0x8d, 0x83, 0x7b, 0x6f, 0x5d, 0x4f, 0x56, 0x6c, 0x7e, 0x82, 0x83, 0x82, -0x8f, 0xaf, 0xba, 0xc4, 0xc8, 0xad, 0x87, 0x61, 0x47, 0x4a, 0x62, 0x66, 0x63, 0x71, 0x7a, 0x70, -0x6c, 0x71, 0x76, 0x85, 0x95, 0x96, 0x84, 0x74, 0x6e, 0x6d, 0x73, 0x89, 0x9e, 0x9f, 0x8b, 0x7b, -0x78, 0x83, 0x87, 0x85, 0x76, 0x63, 0x52, 0x4b, 0x3e, 0x40, 0x53, 0x5a, 0x61, 0x60, 0x56, 0x50, -0x4e, 0x60, 0x74, 0x81, 0x82, 0x6d, 0x65, 0x66, 0x62, 0x65, 0x7d, 0x9f, 0xa6, 0xa8, 0xb4, 0xc0, -0xc2, 0xc2, 0xaa, 0x8f, 0x8b, 0x86, 0x77, 0x6a, 0x65, 0x62, 0x62, 0x6b, 0x6e, 0x72, 0x76, 0x7a, -0x75, 0x71, 0x7c, 0x75, 0x63, 0x5a, 0x5a, 0x5e, 0x63, 0x69, 0x7a, 0x78, 0x67, 0x74, 0x8a, 0x99, -0x93, 0x91, 0x98, 0x9b, 0x99, 0x95, 0x8b, 0x8d, 0x8f, 0x83, 0x7c, 0x6f, 0x77, 0x8c, 0x93, 0x8c, -0x83, 0x76, 0x61, 0x4c, 0x4e, 0x60, 0x7b, 0x97, 0xa1, 0x98, 0x91, 0x9e, 0xa9, 0xb5, 0xbf, 0xb2, -0x8f, 0x73, 0x6c, 0x6f, 0x64, 0x5d, 0x69, 0x75, 0x7a, 0x77, 0x70, 0x76, 0x79, 0x81, 0x84, 0x82, -0x81, 0x77, 0x87, 0x9a, 0xa0, 0xae, 0xc4, 0xc0, 0xa5, 0x90, 0x85, 0x82, 0x80, 0x89, 0x8d, 0x79, -0x64, 0x52, 0x4f, 0x4e, 0x5b, 0x61, 0x59, 0x55, 0x4b, 0x3e, 0x45, 0x4f, 0x51, 0x52, 0x50, 0x46, -0x42, 0x48, 0x52, 0x6d, 0x8e, 0xa3, 0xad, 0xa0, 0x95, 0x98, 0x98, 0x9e, 0x9c, 0x8c, 0x7c, 0x6f, -0x68, 0x67, 0x63, 0x74, 0x7e, 0x7b, 0x78, 0x70, 0x66, 0x61, 0x5a, 0x50, 0x47, 0x41, 0x3b, 0x47, -0x55, 0x64, 0x76, 0x94, 0xaa, 0xad, 0xa7, 0xa2, 0xa2, 0xaf, 0xc2, 0xc2, 0xb9, 0xb8, 0xb9, 0xbb, -0xba, 0xb7, 0xb3, 0xb7, 0xaf, 0x96, 0x8a, 0x86, 0x88, 0x88, 0x7a, 0x71, 0x6c, 0x68, 0x75, 0x88, -0x9b, 0xb0, 0xc0, 0xc4, 0xc1, 0xb0, 0xa8, 0x9f, 0x8f, 0x86, 0x71, 0x59, 0x51, 0x53, 0x56, 0x53, -0x66, 0x7e, 0x87, 0x7a, 0x77, 0x84, 0x94, 0xa1, 0x9d, 0x90, 0x86, 0x71, 0x6e, 0x79, 0x86, 0x97, -0xaa, 0xb1, 0xad, 0xa2, 0x9b, 0x9b, 0x8f, 0x90, 0x91, 0x73, 0x67, 0x60, 0x61, 0x66, 0x62, 0x68, -0x72, 0x71, 0x5b, 0x4e, 0x55, 0x5b, 0x5b, 0x54, 0x4c, 0x3c, 0x2f, 0x32, 0x43, 0x5b, 0x79, 0x98, -0xac, 0xb1, 0xa9, 0xb0, 0xb6, 0xac, 0xac, 0xaa, 0x98, 0x81, 0x81, 0x8c, 0x95, 0x99, 0x9e, 0xa9, -0x9f, 0x84, 0x7a, 0x77, 0x7a, 0x7d, 0x7c, 0x70, 0x5d, 0x54, 0x57, 0x65, 0x7a, 0x94, 0xa3, 0xab, -0xa8, 0xa9, 0xbb, 0xb7, 0xad, 0xa1, 0x8c, 0x7e, 0x75, 0x7c, 0x80, 0x81, 0x82, 0x88, 0x8d, 0x7d, -0x69, 0x6a, 0x6c, 0x6c, 0x67, 0x61, 0x53, 0x4c, 0x54, 0x57, 0x5f, 0x76, 0x8a, 0x9c, 0xa9, 0xa1, -0xa1, 0x9e, 0x85, 0x75, 0x61, 0x41, 0x38, 0x45, 0x4c, 0x4e, 0x57, 0x63, 0x69, 0x61, 0x4e, 0x47, -0x53, 0x5e, 0x67, 0x64, 0x5a, 0x4c, 0x47, 0x4a, 0x4f, 0x5b, 0x6c, 0x78, 0x83, 0x83, 0x82, 0x88, -0x85, 0x84, 0x87, 0x75, 0x52, 0x5a, 0x73, 0x7e, 0x85, 0x88, 0x90, 0x89, 0x70, 0x5a, 0x5e, 0x6d, -0x76, 0x72, 0x66, 0x59, 0x50, 0x52, 0x58, 0x6a, 0x84, 0x9a, 0xb3, 0xbf, 0xbc, 0xc0, 0xbb, 0xb6, -0xb3, 0xaa, 0x9b, 0x82, 0x7e, 0x92, 0x96, 0x92, 0x9c, 0xb0, 0xb2, 0x9b, 0x84, 0x86, 0x8e, 0x94, -0x8b, 0x82, 0x81, 0x7c, 0x71, 0x71, 0x84, 0x8f, 0x98, 0xa2, 0x9f, 0xa0, 0xa0, 0x9f, 0xa0, 0xa0, -0x9b, 0x8e, 0x81, 0x78, 0x8e, 0x99, 0x9c, 0xaa, 0xb5, 0xb3, 0xa0, 0x90, 0x8e, 0x8e, 0x88, 0x72, -0x65, 0x5f, 0x61, 0x6a, 0x71, 0x7e, 0x89, 0x90, 0x96, 0x9e, 0xa0, 0x9b, 0x91, 0x82, 0x71, 0x65, -0x58, 0x54, 0x56, 0x6a, 0x79, 0x81, 0x92, 0x97, 0x8d, 0x78, 0x6e, 0x6f, 0x76, 0x72, 0x6e, 0x75, -0x78, 0x7c, 0x83, 0x80, 0x81, 0x89, 0x8d, 0x8d, 0x90, 0x90, 0x94, 0x97, 0x93, 0x89, 0x7d, 0x72, -0x6d, 0x68, 0x79, 0x8a, 0x94, 0x9a, 0x91, 0x7a, 0x63, 0x60, 0x69, 0x6b, 0x61, 0x5c, 0x5a, 0x59, -0x5d, 0x65, 0x71, 0x83, 0x97, 0x9e, 0xa3, 0xa7, 0xa3, 0xa2, 0x9a, 0x86, 0x76, 0x6a, 0x63, 0x61, -0x6a, 0x77, 0x83, 0x88, 0x87, 0x81, 0x74, 0x6b, 0x6c, 0x6f, 0x6e, 0x67, 0x66, 0x63, 0x61, 0x61, -0x65, 0x6a, 0x76, 0x85, 0x8d, 0x91, 0x91, 0x92, 0x93, 0x8c, 0x84, 0x81, 0x7c, 0x77, 0x71, 0x77, -0x83, 0x91, 0x97, 0x94, 0x8b, 0x82, 0x7c, 0x82, 0x87, 0x86, 0x7d, 0x71, 0x6c, 0x6f, 0x79, 0x8c, -0x9a, 0xa0, 0x9b, 0x8e, 0x82, 0x79, 0x76, 0x76, 0x6e, 0x5e, 0x55, 0x52, 0x53, 0x56, 0x60, 0x6c, -0x75, 0x74, 0x6b, 0x66, 0x69, 0x70, 0x79, 0x7c, 0x79, 0x73, 0x6a, 0x67, 0x67, 0x6f, 0x7b, 0x85, -0x88, 0x87, 0x85, 0x89, 0x8e, 0x91, 0x95, 0x96, 0x8f, 0x86, 0x81, 0x7e, 0x79, 0x7b, 0x82, 0x86, -0x85, 0x77, 0x67, 0x5e, 0x5a, 0x5b, 0x5b, 0x5c, 0x59, 0x55, 0x57, 0x5e, 0x6e, 0x80, 0x8d, 0x94, -0x93, 0x92, 0x97, 0x9f, 0xa7, 0xae, 0xad, 0xa6, 0xa5, 0xab, 0xaf, 0xb5, 0xbb, 0xbf, 0xba, 0xad, -0xa1, 0x97, 0x8f, 0x8e, 0x8f, 0x8a, 0x81, 0x74, 0x6b, 0x64, 0x61, 0x65, 0x68, 0x61, 0x56, 0x4d, -0x51, 0x56, 0x5b, 0x5f, 0x5c, 0x5a, 0x5c, 0x68, 0x77, 0x82, 0x93, 0xa3, 0xaa, 0xa7, 0x9b, 0x92, -0x8a, 0x87, 0x89, 0x8b, 0x8b, 0x86, 0x80, 0x7d, 0x82, 0x8e, 0x9c, 0xa1, 0x9b, 0x8d, 0x7e, 0x7a, -0x7c, 0x80, 0x7c, 0x70, 0x68, 0x62, 0x64, 0x66, 0x6f, 0x81, 0x89, 0x88, 0x81, 0x73, 0x6a, 0x6b, -0x73, 0x7b, 0x80, 0x7e, 0x74, 0x6a, 0x69, 0x70, 0x80, 0x91, 0x96, 0x93, 0x8a, 0x85, 0x86, 0x91, -0x9c, 0x99, 0x93, 0x91, 0x92, 0x96, 0x9c, 0xa5, 0xb0, 0xb5, 0xad, 0x9b, 0x84, 0x72, 0x66, 0x5f, -0x60, 0x62, 0x5f, 0x57, 0x58, 0x5e, 0x66, 0x75, 0x82, 0x88, 0x84, 0x7d, 0x82, 0x8b, 0x94, 0x96, -0x93, 0x8f, 0x8c, 0x8b, 0x8a, 0x89, 0x8d, 0x94, 0x9a, 0x97, 0x8d, 0x88, 0x87, 0x83, 0x82, 0x86, -0x8a, 0x83, 0x79, 0x78, 0x7b, 0x88, 0x95, 0x98, 0x91, 0x87, 0x88, 0x92, 0x99, 0x9c, 0x94, 0x89, -0x81, 0x7d, 0x81, 0x84, 0x8a, 0x94, 0x97, 0x90, 0x86, 0x7b, 0x79, 0x7a, 0x7b, 0x80, 0x80, 0x77, -0x6c, 0x66, 0x64, 0x6e, 0x7d, 0x82, 0x78, 0x65, 0x56, 0x56, 0x5e, 0x63, 0x63, 0x5a, 0x4f, 0x48, -0x49, 0x4f, 0x58, 0x6a, 0x82, 0x8f, 0x88, 0x77, 0x70, 0x6c, 0x6f, 0x77, 0x7e, 0x80, 0x73, 0x67, -0x5e, 0x5c, 0x67, 0x76, 0x7d, 0x77, 0x69, 0x60, 0x64, 0x6d, 0x75, 0x7b, 0x79, 0x76, 0x75, 0x74, -0x73, 0x74, 0x7b, 0x83, 0x80, 0x6c, 0x55, 0x4a, 0x45, 0x4c, 0x58, 0x65, 0x6c, 0x6c, 0x69, 0x66, -0x69, 0x79, 0x89, 0x8f, 0x8d, 0x8d, 0x97, 0xa0, 0xa5, 0xa8, 0xa4, 0x9a, 0x95, 0x9a, 0xa0, 0x9f, -0xa3, 0xab, 0xb3, 0xb1, 0xa7, 0x9b, 0x93, 0x8a, 0x87, 0x84, 0x7c, 0x70, 0x67, 0x62, 0x61, 0x65, -0x6b, 0x6c, 0x62, 0x56, 0x54, 0x58, 0x5e, 0x64, 0x68, 0x6f, 0x78, 0x86, 0x97, 0xa0, 0xa9, 0xb6, -0xbe, 0xbd, 0xad, 0x9c, 0x94, 0x97, 0xa0, 0xad, 0xb0, 0xa7, 0x9c, 0x94, 0x92, 0x99, 0xa5, 0xac, -0xa4, 0x92, 0x82, 0x81, 0x83, 0x83, 0x82, 0x78, 0x6a, 0x63, 0x67, 0x6a, 0x6a, 0x75, 0x86, 0x8e, -0x8a, 0x7c, 0x75, 0x76, 0x7a, 0x82, 0x88, 0x87, 0x7e, 0x79, 0x7c, 0x84, 0x90, 0x9e, 0xa4, 0xa0, -0x99, 0x94, 0x8e, 0x87, 0x89, 0x92, 0x99, 0x97, 0x95, 0x97, 0x91, 0x8e, 0x96, 0x9e, 0x9d, 0x91, -0x7e, 0x70, 0x64, 0x62, 0x6b, 0x71, 0x6c, 0x63, 0x61, 0x63, 0x67, 0x74, 0x80, 0x83, 0x7b, 0x75, -0x72, 0x70, 0x70, 0x74, 0x74, 0x6e, 0x66, 0x66, 0x69, 0x69, 0x6f, 0x7e, 0x88, 0x87, 0x83, 0x82, -0x7e, 0x78, 0x78, 0x79, 0x7a, 0x77, 0x7a, 0x81, 0x7d, 0x7e, 0x88, 0x8c, 0x87, 0x84, 0x88, 0x8e, -0x92, 0x97, 0x97, 0x90, 0x89, 0x88, 0x8a, 0x83, 0x7c, 0x86, 0x94, 0x96, 0x8b, 0x7e, 0x79, 0x78, -0x75, 0x75, 0x71, 0x68, 0x5c, 0x57, 0x5c, 0x61, 0x69, 0x70, 0x6d, 0x68, 0x66, 0x67, 0x64, 0x63, -0x65, 0x5e, 0x4f, 0x45, 0x42, 0x47, 0x4f, 0x5a, 0x65, 0x6b, 0x66, 0x59, 0x54, 0x57, 0x63, 0x72, -0x7c, 0x7d, 0x7a, 0x78, 0x7c, 0x88, 0x97, 0xa2, 0xa0, 0x9a, 0x98, 0x96, 0x94, 0x95, 0x9a, 0xa2, -0xa5, 0x9d, 0x96, 0x96, 0x94, 0x96, 0x99, 0x98, 0x8e, 0x79, 0x63, 0x5e, 0x63, 0x6d, 0x76, 0x76, -0x72, 0x6d, 0x6a, 0x66, 0x65, 0x6f, 0x80, 0x8c, 0x91, 0x92, 0x93, 0x91, 0x8d, 0x8b, 0x8a, 0x8b, -0x8c, 0x88, 0x87, 0x86, 0x88, 0x90, 0x96, 0x94, 0x86, 0x7b, 0x7e, 0x84, 0x8d, 0x95, 0x98, 0x98, -0x91, 0x8b, 0x86, 0x88, 0x94, 0x9a, 0x91, 0x7c, 0x6b, 0x64, 0x64, 0x6b, 0x70, 0x70, 0x6e, 0x6d, -0x76, 0x85, 0x90, 0x98, 0x97, 0x8f, 0x84, 0x7c, 0x82, 0x8c, 0x92, 0x95, 0x94, 0x8f, 0x89, 0x89, -0x91, 0x94, 0x97, 0x96, 0x8e, 0x87, 0x84, 0x88, 0x83, 0x74, 0x6d, 0x6a, 0x65, 0x60, 0x65, 0x6e, -0x6f, 0x6d, 0x6e, 0x72, 0x78, 0x71, 0x63, 0x59, 0x5a, 0x62, 0x6b, 0x74, 0x75, 0x70, 0x6c, 0x71, -0x7d, 0x8e, 0x99, 0x93, 0x80, 0x6e, 0x71, 0x7e, 0x8f, 0x9f, 0xa2, 0x96, 0x8a, 0x91, 0xa1, 0xb5, -0xc6, 0xca, 0xbb, 0xa3, 0x84, 0x71, 0x73, 0x80, 0x87, 0x7b, 0x70, 0x6f, 0x74, 0x87, 0x96, 0xa0, -0xa1, 0x9c, 0x95, 0x8e, 0x91, 0x98, 0x99, 0x94, 0x8e, 0x86, 0x7d, 0x7b, 0x83, 0x86, 0x82, 0x85, -0x88, 0x87, 0x7e, 0x6a, 0x5a, 0x5a, 0x6b, 0x7e, 0x8e, 0x94, 0x8c, 0x81, 0x7c, 0x7e, 0x89, 0x94, -0x95, 0x88, 0x72, 0x68, 0x69, 0x6f, 0x75, 0x71, 0x61, 0x4b, 0x47, 0x55, 0x6a, 0x83, 0x93, 0x94, -0x89, 0x79, 0x6f, 0x71, 0x81, 0x90, 0x90, 0x84, 0x70, 0x62, 0x67, 0x71, 0x75, 0x75, 0x71, 0x6c, -0x62, 0x64, 0x6f, 0x71, 0x6c, 0x62, 0x53, 0x4a, 0x54, 0x66, 0x72, 0x75, 0x7d, 0x89, 0x8b, 0x85, -0x79, 0x6f, 0x6b, 0x70, 0x77, 0x7d, 0x7a, 0x6d, 0x65, 0x60, 0x60, 0x6b, 0x76, 0x7b, 0x76, 0x69, -0x65, 0x6d, 0x79, 0x84, 0x88, 0x81, 0x73, 0x73, 0x82, 0x8d, 0x99, 0xa4, 0xa3, 0x8f, 0x73, 0x68, -0x6b, 0x79, 0x89, 0x8a, 0x7b, 0x66, 0x5a, 0x5c, 0x67, 0x76, 0x85, 0x89, 0x88, 0x86, 0x8a, 0x96, -0xa1, 0xa4, 0x9d, 0x95, 0x8c, 0x89, 0x93, 0x9c, 0xa0, 0x9f, 0x9d, 0x9b, 0x9a, 0x96, 0x92, 0x90, -0x96, 0xa1, 0xa6, 0xa1, 0x93, 0x85, 0x79, 0x73, 0x78, 0x7e, 0x80, 0x75, 0x60, 0x54, 0x55, 0x5e, -0x64, 0x63, 0x5a, 0x4e, 0x4a, 0x57, 0x69, 0x77, 0x7d, 0x80, 0x7c, 0x74, 0x77, 0x83, 0x95, 0xa9, -0xb4, 0xad, 0x9a, 0x8d, 0x89, 0x8d, 0x97, 0x9c, 0x95, 0x89, 0x80, 0x77, 0x7e, 0x89, 0x87, 0x79, -0x6b, 0x63, 0x64, 0x6f, 0x7a, 0x7c, 0x76, 0x75, 0x7a, 0x7a, 0x79, 0x7a, 0x76, 0x76, 0x7d, 0x86, -0x87, 0x82, 0x7d, 0x7a, 0x7e, 0x8d, 0x9d, 0xa9, 0xab, 0xa1, 0x94, 0x91, 0x99, 0x9e, 0x9f, 0x9e, -0x98, 0x93, 0x97, 0xa2, 0xaa, 0xb3, 0xb9, 0xb5, 0x9f, 0x8e, 0x8c, 0x92, 0x9b, 0x9d, 0x9a, 0x90, -0x89, 0x87, 0x87, 0x8c, 0x8c, 0x80, 0x70, 0x6d, 0x6a, 0x6b, 0x74, 0x78, 0x6e, 0x63, 0x62, 0x6a, -0x7a, 0x8d, 0x95, 0x8d, 0x83, 0x85, 0x8c, 0x94, 0x97, 0x94, 0x90, 0x8e, 0x93, 0x92, 0x8d, 0x89, -0x7c, 0x6b, 0x67, 0x6b, 0x6b, 0x6e, 0x6d, 0x64, 0x5e, 0x5f, 0x5f, 0x5c, 0x5b, 0x5d, 0x5c, 0x5c, -0x65, 0x6f, 0x74, 0x7a, 0x7d, 0x78, 0x70, 0x71, 0x74, 0x75, 0x71, 0x69, 0x59, 0x49, 0x49, 0x4f, -0x58, 0x63, 0x64, 0x5b, 0x51, 0x51, 0x5c, 0x6c, 0x73, 0x66, 0x4c, 0x44, 0x52, 0x68, 0x7c, 0x89, -0x8a, 0x81, 0x7b, 0x79, 0x7c, 0x87, 0x91, 0x8e, 0x85, 0x80, 0x7b, 0x7a, 0x81, 0x85, 0x81, 0x81, -0x89, 0x8e, 0x92, 0x8f, 0x8b, 0x85, 0x7d, 0x7b, 0x7b, 0x7e, 0x84, 0x86, 0x88, 0x8d, 0x96, 0xa0, -0xa8, 0xa5, 0x95, 0x7d, 0x75, 0x7a, 0x85, 0x94, 0x98, 0x8e, 0x7e, 0x76, 0x75, 0x7e, 0x8c, 0x92, -0x86, 0x75, 0x6f, 0x6f, 0x71, 0x77, 0x79, 0x71, 0x6a, 0x6c, 0x73, 0x83, 0x8c, 0x8d, 0x86, 0x87, -0x92, 0x9e, 0xab, 0xb4, 0xb5, 0xae, 0xa4, 0x99, 0x96, 0x98, 0x8e, 0x73, 0x5d, 0x56, 0x5b, 0x65, -0x6c, 0x70, 0x6f, 0x65, 0x5e, 0x5d, 0x62, 0x6a, 0x6a, 0x5f, 0x5a, 0x5f, 0x69, 0x7b, 0x91, 0x9f, -0x9f, 0x9c, 0x9e, 0xa4, 0xa9, 0xa3, 0x96, 0x8d, 0x89, 0x86, 0x84, 0x8d, 0x94, 0x90, 0x84, 0x7b, -0x7e, 0x83, 0x86, 0x84, 0x74, 0x66, 0x68, 0x70, 0x80, 0x8e, 0x8f, 0x86, 0x7b, 0x79, 0x83, 0x93, -0xa1, 0x9f, 0x8d, 0x7d, 0x74, 0x74, 0x83, 0x8e, 0x8d, 0x86, 0x83, 0x84, 0x86, 0x8a, 0x8b, 0x8a, -0x86, 0x89, 0x8d, 0x92, 0x9c, 0xa3, 0xa6, 0xa5, 0xa7, 0xa8, 0xab, 0xae, 0xab, 0x9d, 0x94, 0x97, -0x9c, 0xa0, 0xa4, 0xa2, 0x9b, 0x90, 0x87, 0x82, 0x83, 0x81, 0x6e, 0x51, 0x3e, 0x37, 0x3a, 0x4d, -0x5d, 0x5c, 0x51, 0x4a, 0x4d, 0x5b, 0x6b, 0x73, 0x6f, 0x68, 0x6f, 0x7a, 0x87, 0x98, 0xa2, 0x9f, -0x91, 0x87, 0x82, 0x84, 0x7d, 0x6d, 0x5c, 0x5b, 0x64, 0x69, 0x71, 0x74, 0x6f, 0x5e, 0x52, 0x53, -0x5b, 0x60, 0x5d, 0x5a, 0x5a, 0x61, 0x69, 0x77, 0x8d, 0x9d, 0x9c, 0x8e, 0x89, 0x88, 0x89, 0x8b, -0x8b, 0x87, 0x88, 0x8d, 0x90, 0x99, 0xa9, 0xad, 0x9f, 0x8b, 0x80, 0x74, 0x6f, 0x6f, 0x6a, 0x5f, -0x54, 0x4f, 0x57, 0x6d, 0x79, 0x78, 0x6d, 0x6a, 0x71, 0x7e, 0x87, 0x83, 0x72, 0x61, 0x5c, 0x60, -0x6f, 0x84, 0x8b, 0x84, 0x7b, 0x81, 0x8a, 0x8e, 0x8a, 0x7b, 0x64, 0x56, 0x54, 0x58, 0x60, 0x66, -0x6f, 0x74, 0x78, 0x7c, 0x79, 0x7a, 0x7b, 0x73, 0x68, 0x64, 0x64, 0x68, 0x6f, 0x72, 0x6e, 0x64, -0x62, 0x66, 0x72, 0x82, 0x81, 0x6e, 0x5f, 0x60, 0x69, 0x7c, 0x91, 0x98, 0x92, 0x89, 0x8b, 0x9a, -0xb2, 0xbe, 0xb7, 0xaa, 0xa9, 0xb4, 0xc0, 0xd0, 0xdd, 0xda, 0xc8, 0xb7, 0xb0, 0xaf, 0xaf, 0xa8, -0x9b, 0x92, 0x96, 0x9b, 0x9a, 0x9c, 0x97, 0x86, 0x6f, 0x65, 0x64, 0x67, 0x68, 0x5c, 0x50, 0x51, -0x60, 0x71, 0x84, 0x95, 0x9f, 0x9a, 0x8f, 0x90, 0x9a, 0xa2, 0x9c, 0x8d, 0x80, 0x7c, 0x80, 0x88, -0x9b, 0xab, 0xa7, 0x96, 0x89, 0x7e, 0x79, 0x76, 0x6f, 0x5f, 0x51, 0x4e, 0x51, 0x62, 0x75, 0x7a, -0x72, 0x69, 0x6c, 0x76, 0x82, 0x7c, 0x6d, 0x5c, 0x55, 0x5a, 0x64, 0x73, 0x7e, 0x7e, 0x74, 0x71, -0x78, 0x82, 0x88, 0x82, 0x73, 0x6b, 0x6f, 0x79, 0x8b, 0x9f, 0xab, 0xb2, 0xb5, 0xb8, 0xbc, 0xc1, -0xc2, 0xbb, 0xaa, 0x9e, 0x9a, 0x9b, 0xa7, 0xb3, 0xaf, 0xa1, 0x93, 0x87, 0x83, 0x89, 0x89, 0x77, -0x5e, 0x52, 0x54, 0x5f, 0x72, 0x7a, 0x71, 0x60, 0x55, 0x55, 0x62, 0x6e, 0x6a, 0x5c, 0x50, 0x53, -0x5c, 0x6b, 0x79, 0x7e, 0x75, 0x67, 0x5f, 0x5e, 0x68, 0x71, 0x6a, 0x59, 0x52, 0x57, 0x61, 0x6f, -0x7c, 0x7d, 0x73, 0x6e, 0x71, 0x79, 0x82, 0x7d, 0x6b, 0x5b, 0x5d, 0x6a, 0x7e, 0x95, 0x9e, 0x9b, -0x90, 0x89, 0x87, 0x8a, 0x88, 0x7a, 0x6c, 0x63, 0x64, 0x69, 0x75, 0x83, 0x84, 0x77, 0x67, 0x5e, -0x5d, 0x69, 0x72, 0x6c, 0x5d, 0x54, 0x58, 0x68, 0x83, 0x9b, 0xa6, 0x9d, 0x92, 0x8e, 0x96, 0xa1, -0x9e, 0x8c, 0x78, 0x74, 0x7d, 0x98, 0xad, 0xb0, 0xa4, 0x97, 0x92, 0x90, 0x91, 0x90, 0x82, 0x6d, -0x68, 0x6f, 0x75, 0x7e, 0x83, 0x7b, 0x72, 0x70, 0x73, 0x7b, 0x82, 0x7e, 0x76, 0x6c, 0x6c, 0x72, -0x80, 0x97, 0xa6, 0xa7, 0xa1, 0x98, 0x90, 0x92, 0x99, 0x97, 0x87, 0x6f, 0x64, 0x66, 0x76, 0x8b, -0x91, 0x84, 0x73, 0x6b, 0x6c, 0x7c, 0x90, 0x99, 0x92, 0x8a, 0x8a, 0x95, 0xa9, 0xb2, 0xa7, 0x93, -0x87, 0x84, 0x88, 0x88, 0x79, 0x61, 0x4f, 0x4e, 0x5b, 0x6c, 0x77, 0x78, 0x72, 0x70, 0x70, 0x6b, -0x6d, 0x75, 0x73, 0x65, 0x5f, 0x69, 0x78, 0x89, 0x91, 0x94, 0x95, 0x91, 0x8a, 0x85, 0x89, 0x89, -0x80, 0x71, 0x69, 0x6d, 0x7a, 0x8c, 0x98, 0x9a, 0x8e, 0x82, 0x77, 0x7d, 0x8c, 0x88, 0x6e, 0x56, -0x4d, 0x52, 0x67, 0x7d, 0x89, 0x86, 0x80, 0x7b, 0x84, 0x97, 0x9d, 0x8d, 0x72, 0x67, 0x6a, 0x76, -0x87, 0x93, 0x97, 0x97, 0x95, 0x96, 0x9a, 0x9b, 0x8e, 0x79, 0x71, 0x79, 0x81, 0x87, 0x8f, 0x94, -0x94, 0x92, 0x9a, 0xa4, 0xac, 0xae, 0xa8, 0x9e, 0x95, 0x8d, 0x8b, 0x95, 0xa0, 0xa3, 0x9a, 0x8d, -0x80, 0x78, 0x7c, 0x7a, 0x65, 0x47, 0x33, 0x34, 0x48, 0x64, 0x75, 0x74, 0x67, 0x60, 0x65, 0x6f, -0x76, 0x77, 0x6f, 0x62, 0x63, 0x70, 0x89, 0x98, 0x96, 0x89, 0x83, 0x85, 0x85, 0x89, 0x8b, 0x87, -0x7e, 0x78, 0x79, 0x83, 0x93, 0x99, 0x98, 0x9a, 0x9d, 0x9a, 0x96, 0x92, 0x8d, 0x84, 0x76, 0x75, -0x7e, 0x8b, 0x99, 0x9e, 0x99, 0x8d, 0x83, 0x7d, 0x81, 0x82, 0x74, 0x63, 0x58, 0x5a, 0x68, 0x7c, -0x88, 0x86, 0x7c, 0x76, 0x73, 0x79, 0x8b, 0x8f, 0x80, 0x68, 0x58, 0x57, 0x62, 0x75, 0x82, 0x81, -0x78, 0x76, 0x77, 0x7e, 0x87, 0x82, 0x72, 0x62, 0x60, 0x6b, 0x7c, 0x8d, 0x93, 0x8e, 0x87, 0x82, -0x7d, 0x7c, 0x76, 0x68, 0x59, 0x53, 0x52, 0x53, 0x58, 0x5f, 0x65, 0x67, 0x6a, 0x71, 0x78, 0x7d, -0x7c, 0x6f, 0x60, 0x5e, 0x65, 0x75, 0x8a, 0x94, 0x95, 0x8c, 0x84, 0x84, 0x87, 0x89, 0x82, 0x6f, -0x61, 0x5d, 0x65, 0x7b, 0x8e, 0x8d, 0x7e, 0x75, 0x74, 0x7d, 0x8b, 0x8f, 0x85, 0x74, 0x72, 0x7a, -0x84, 0x8c, 0x91, 0x93, 0x91, 0x8f, 0x8f, 0x94, 0x93, 0x8a, 0x7c, 0x6c, 0x6b, 0x70, 0x7a, 0x86, -0x87, 0x83, 0x79, 0x74, 0x72, 0x75, 0x7c, 0x7d, 0x75, 0x6d, 0x6c, 0x6f, 0x7c, 0x87, 0x88, 0x83, -0x83, 0x8b, 0x94, 0x9d, 0x9a, 0x90, 0x84, 0x85, 0x90, 0xa0, 0xb0, 0xb9, 0xb8, 0xaf, 0xab, 0xab, -0xb0, 0xb3, 0xa6, 0x8c, 0x79, 0x79, 0x84, 0x9b, 0xae, 0xb1, 0xa5, 0x9c, 0x9d, 0x9f, 0xa2, 0xa2, -0x91, 0x75, 0x61, 0x59, 0x63, 0x72, 0x78, 0x78, 0x71, 0x6b, 0x6b, 0x68, 0x63, 0x5b, 0x50, 0x4c, -0x52, 0x59, 0x65, 0x74, 0x7d, 0x85, 0x8f, 0x9e, 0xa9, 0xad, 0xb0, 0xaf, 0xa2, 0x98, 0x97, 0x9b, -0xab, 0xb3, 0xae, 0xa2, 0x95, 0x8e, 0x8e, 0x90, 0x8b, 0x78, 0x5c, 0x4d, 0x4d, 0x5e, 0x74, 0x7c, -0x74, 0x67, 0x62, 0x64, 0x6e, 0x78, 0x76, 0x6a, 0x61, 0x61, 0x68, 0x75, 0x7e, 0x82, 0x7c, 0x7a, -0x88, 0x97, 0xa2, 0xa5, 0xa1, 0x97, 0x8d, 0x8d, 0x92, 0x95, 0x8f, 0x87, 0x7e, 0x79, 0x7b, 0x80, -0x83, 0x80, 0x72, 0x64, 0x5f, 0x5f, 0x65, 0x6e, 0x6e, 0x67, 0x60, 0x5c, 0x5d, 0x64, 0x68, 0x66, -0x5f, 0x53, 0x49, 0x45, 0x4c, 0x5a, 0x65, 0x65, 0x62, 0x67, 0x72, 0x79, 0x71, 0x5f, 0x4b, 0x43, -0x48, 0x5e, 0x7a, 0x87, 0x85, 0x7b, 0x7e, 0x8b, 0x9b, 0xa2, 0x95, 0x7b, 0x6c, 0x6e, 0x7c, 0x92, -0x9e, 0x9e, 0x94, 0x88, 0x85, 0x83, 0x7e, 0x77, 0x6a, 0x5a, 0x53, 0x4e, 0x4b, 0x59, 0x6a, 0x74, -0x7d, 0x87, 0x8d, 0x8b, 0x87, 0x83, 0x7e, 0x7c, 0x80, 0x84, 0x8d, 0x9d, 0xa3, 0x9c, 0x90, 0x8d, -0x93, 0x9c, 0x9f, 0x94, 0x80, 0x71, 0x74, 0x80, 0x91, 0x9e, 0x9c, 0x92, 0x92, 0x9c, 0xae, 0xbd, -0xbe, 0xb3, 0xa0, 0x94, 0x92, 0x98, 0xa3, 0xa4, 0x9e, 0x97, 0x98, 0x9e, 0xa3, 0xa4, 0x9b, 0x8a, -0x7a, 0x78, 0x76, 0x78, 0x7d, 0x7d, 0x74, 0x70, 0x74, 0x7d, 0x8c, 0x8f, 0x84, 0x72, 0x66, 0x66, -0x6b, 0x75, 0x7e, 0x7d, 0x7a, 0x7b, 0x7e, 0x85, 0x8e, 0x93, 0x8c, 0x7e, 0x75, 0x71, 0x74, 0x80, -0x80, 0x76, 0x6c, 0x68, 0x69, 0x6b, 0x66, 0x57, 0x43, 0x3a, 0x3d, 0x43, 0x52, 0x5a, 0x5a, 0x57, -0x57, 0x5e, 0x70, 0x84, 0x85, 0x72, 0x62, 0x68, 0x78, 0x8b, 0x9d, 0xa4, 0x9d, 0x92, 0x8f, 0x8f, -0x93, 0x9e, 0xa1, 0x91, 0x81, 0x7b, 0x77, 0x7a, 0x89, 0x95, 0x99, 0x9c, 0xa1, 0xa6, 0xb0, 0xb0, -0xa6, 0x96, 0x8d, 0x8a, 0x8a, 0x93, 0x9f, 0xa1, 0x98, 0x94, 0x94, 0x95, 0x94, 0x84, 0x69, 0x54, -0x55, 0x58, 0x5a, 0x63, 0x67, 0x5c, 0x50, 0x57, 0x69, 0x80, 0x8f, 0x8b, 0x75, 0x64, 0x5e, 0x5d, -0x69, 0x7a, 0x81, 0x80, 0x82, 0x8d, 0x9e, 0xad, 0xb0, 0xa6, 0x99, 0x92, 0x8d, 0x8f, 0x9b, 0xa3, -0x9c, 0x8d, 0x85, 0x81, 0x7e, 0x82, 0x7e, 0x71, 0x60, 0x5b, 0x5e, 0x64, 0x67, 0x66, 0x66, 0x6a, -0x72, 0x7b, 0x88, 0x8c, 0x88, 0x7b, 0x6c, 0x61, 0x67, 0x7b, 0x86, 0x87, 0x81, 0x7e, 0x84, 0x8d, -0x96, 0x92, 0x82, 0x73, 0x76, 0x83, 0x8e, 0x98, 0x9f, 0xa1, 0xa0, 0x9d, 0x9e, 0xa8, 0xac, 0xa1, -0x8c, 0x7d, 0x7c, 0x7d, 0x80, 0x80, 0x7b, 0x77, 0x72, 0x6f, 0x76, 0x82, 0x7b, 0x68, 0x57, 0x50, -0x4d, 0x4d, 0x5f, 0x70, 0x78, 0x75, 0x72, 0x74, 0x85, 0x92, 0x8f, 0x88, 0x7e, 0x79, 0x78, 0x7e, -0x86, 0x89, 0x87, 0x80, 0x7d, 0x7c, 0x80, 0x78, 0x6c, 0x62, 0x5e, 0x60, 0x60, 0x68, 0x72, 0x72, -0x6a, 0x6c, 0x76, 0x86, 0x90, 0x88, 0x78, 0x6b, 0x67, 0x63, 0x6b, 0x78, 0x82, 0x81, 0x7b, 0x84, -0x94, 0xa0, 0xa8, 0xa4, 0x96, 0x8b, 0x89, 0x8b, 0x8d, 0x88, 0x83, 0x7b, 0x6f, 0x6c, 0x67, 0x63, -0x60, 0x59, 0x51, 0x4a, 0x47, 0x47, 0x47, 0x44, 0x42, 0x48, 0x55, 0x68, 0x7d, 0x93, 0xa1, 0x9f, -0x95, 0x93, 0x94, 0x91, 0x8c, 0x83, 0x72, 0x6d, 0x71, 0x77, 0x86, 0x8f, 0x83, 0x6a, 0x61, 0x6b, -0x76, 0x81, 0x83, 0x81, 0x80, 0x82, 0x85, 0x8d, 0x9d, 0xaa, 0xab, 0xa6, 0xa6, 0xac, 0xac, 0xa6, -0xae, 0xb0, 0xac, 0xb1, 0xc4, 0xdb, 0xe3, 0xd3, 0xb9, 0xa2, 0x97, 0x92, 0x94, 0x9b, 0x98, 0x92, -0x8c, 0x94, 0xa6, 0xb5, 0xb1, 0x9b, 0x83, 0x7b, 0x84, 0x92, 0xa3, 0xa9, 0xa4, 0x9e, 0x9c, 0x9d, -0xa3, 0x9d, 0x89, 0x6e, 0x58, 0x55, 0x55, 0x51, 0x4b, 0x3f, 0x37, 0x3b, 0x4b, 0x5f, 0x6b, 0x6a, -0x60, 0x48, 0x4c, 0x60, 0x6a, 0x6d, 0x70, 0x75, 0x7a, 0x86, 0x91, 0x95, 0xa2, 0xa4, 0x9a, 0x9a, -0xa8, 0xa9, 0x9f, 0x98, 0x97, 0x98, 0x9a, 0x9e, 0x96, 0x89, 0x87, 0x84, 0x7d, 0x76, 0x6a, 0x5a, -0x52, 0x51, 0x51, 0x53, 0x4f, 0x4b, 0x51, 0x63, 0x72, 0x77, 0x7b, 0x75, 0x6d, 0x6c, 0x5f, 0x60, -0x65, 0x57, 0x4b, 0x45, 0x4f, 0x5e, 0x72, 0x79, 0x69, 0x63, 0x66, 0x6d, 0x7c, 0x87, 0x8a, 0x84, -0x80, 0x8a, 0x97, 0xa3, 0xa3, 0x8f, 0x7a, 0x78, 0x7a, 0x85, 0x8a, 0x83, 0x81, 0x73, 0x68, 0x78, -0x84, 0x83, 0x78, 0x63, 0x54, 0x55, 0x5e, 0x6b, 0x6a, 0x5d, 0x58, 0x58, 0x5b, 0x6f, 0x86, 0x80, -0x6f, 0x73, 0x79, 0x87, 0x9d, 0xa8, 0xa7, 0xac, 0xa7, 0xa3, 0xaf, 0xbc, 0xb8, 0x9a, 0x8a, 0x85, -0x8f, 0x95, 0x8b, 0x78, 0x6a, 0x5e, 0x59, 0x62, 0x6f, 0x76, 0x70, 0x68, 0x6a, 0x77, 0x7c, 0x68, -0x4f, 0x51, 0x58, 0x5b, 0x69, 0x77, 0x7d, 0x83, 0x83, 0x72, 0x7c, 0x8c, 0x77, 0x6d, 0x77, 0x7c, -0x81, 0x83, 0x81, 0x7d, 0x85, 0x90, 0x92, 0x89, 0x82, 0x81, 0x77, 0x80, 0x90, 0x9d, 0x97, 0x8a, -0x93, 0xa5, 0xb2, 0xbf, 0xce, 0xc3, 0xab, 0x9a, 0x8f, 0x8c, 0x89, 0x80, 0x7c, 0x86, 0x8e, 0x99, -0x93, 0x87, 0x81, 0x74, 0x77, 0x85, 0x86, 0x86, 0x87, 0x7d, 0x76, 0x7c, 0x85, 0x8e, 0x93, 0x8c, -0x79, 0x6f, 0x77, 0x81, 0x91, 0x9f, 0x99, 0x86, 0x7e, 0x7d, 0x8b, 0xaf, 0xbb, 0xa8, 0x98, 0x8e, -0x8d, 0x99, 0x9d, 0x98, 0x99, 0x99, 0x90, 0x8d, 0x8b, 0x93, 0x9b, 0x87, 0x76, 0x77, 0x90, 0x9a, -0x85, 0x73, 0x70, 0x73, 0x82, 0x97, 0xa4, 0x88, 0x66, 0x52, 0x48, 0x56, 0x60, 0x52, 0x3b, 0x3a, -0x45, 0x56, 0x69, 0x71, 0x77, 0x6f, 0x5e, 0x6c, 0x82, 0x78, 0x5a, 0x4f, 0x5b, 0x6f, 0x88, 0x95, -0x8f, 0x91, 0xa5, 0xa7, 0x9d, 0x9f, 0x91, 0x78, 0x7d, 0x78, 0x77, 0x85, 0x74, 0x5e, 0x5e, 0x6b, -0x6d, 0x65, 0x5c, 0x56, 0x51, 0x4f, 0x61, 0x77, 0x79, 0x6f, 0x67, 0x60, 0x64, 0x6f, 0x7b, 0x85, -0x83, 0x73, 0x64, 0x54, 0x58, 0x5d, 0x62, 0x72, 0x6e, 0x6b, 0x73, 0x7c, 0x81, 0x7e, 0x8e, 0x9f, -0xaa, 0xb9, 0xd0, 0xc8, 0xaf, 0xa4, 0x9e, 0xa3, 0xb2, 0xb9, 0xb2, 0x9e, 0x9a, 0x98, 0xa0, 0xa3, -0x93, 0x78, 0x6b, 0x67, 0x62, 0x61, 0x6b, 0x71, 0x68, 0x6a, 0x66, 0x63, 0x67, 0x65, 0x5d, 0x59, -0x5e, 0x65, 0x74, 0x7b, 0x7b, 0x86, 0x8c, 0x94, 0xa5, 0xa7, 0x94, 0x81, 0x81, 0x77, 0x75, 0x88, -0x9f, 0x94, 0x83, 0x80, 0x87, 0x8d, 0x8d, 0x81, 0x76, 0x6b, 0x6d, 0x7b, 0x8c, 0x8e, 0x81, 0x86, -0x8a, 0x77, 0x6e, 0x69, 0x53, 0x3c, 0x3f, 0x48, 0x5c, 0x75, 0x72, 0x69, 0x6a, 0x88, 0x9e, 0xa1, -0x8d, 0x73, 0x60, 0x57, 0x56, 0x60, 0x5f, 0x5e, 0x59, 0x6e, 0x80, 0x84, 0x8b, 0x8b, 0x78, 0x6b, -0x66, 0x71, 0x85, 0x84, 0x7b, 0x82, 0x8d, 0x93, 0x9e, 0xa1, 0x9e, 0x90, 0x85, 0x83, 0x71, 0x6b, -0x6d, 0x69, 0x6e, 0x78, 0x72, 0x76, 0x87, 0x8c, 0x85, 0x88, 0x87, 0x87, 0x8f, 0x8f, 0x97, 0xa1, -0xa2, 0xa0, 0xa7, 0xa4, 0x99, 0x90, 0x88, 0x88, 0x88, 0x9e, 0xae, 0xb0, 0xaf, 0xa8, 0xa1, 0x9c, -0x97, 0x9a, 0x9c, 0x9a, 0x84, 0x7d, 0x95, 0x9d, 0x8e, 0x85, 0x89, 0x91, 0x9d, 0xa7, 0xad, 0xa6, -0x98, 0x8e, 0x8b, 0x88, 0x85, 0x7d, 0x72, 0x6c, 0x7b, 0x92, 0xa0, 0x92, 0x70, 0x59, 0x50, 0x58, -0x60, 0x59, 0x51, 0x43, 0x46, 0x5e, 0x72, 0x6c, 0x57, 0x5f, 0x73, 0x86, 0x96, 0x9a, 0x91, 0x89, -0x84, 0x7a, 0x76, 0x81, 0x94, 0x90, 0x79, 0x7e, 0xa3, 0xbe, 0xb6, 0x9d, 0x89, 0x7e, 0x84, 0x87, -0x79, 0x65, 0x4f, 0x4f, 0x56, 0x58, 0x5d, 0x6a, 0x72, 0x6f, 0x7d, 0x8e, 0x8c, 0x89, 0x81, 0x71, -0x68, 0x5e, 0x5c, 0x71, 0x74, 0x6a, 0x6e, 0x7a, 0x85, 0x7a, 0x7a, 0x7a, 0x73, 0x77, 0x80, 0x7b, -0x76, 0x7a, 0x86, 0x93, 0x95, 0x99, 0xb1, 0xb8, 0xad, 0x9d, 0x90, 0x8e, 0x96, 0x9a, 0x96, 0x92, -0x93, 0x8b, 0x80, 0x83, 0x7b, 0x7c, 0x82, 0x85, 0x81, 0x84, 0x87, 0x95, 0x92, 0x81, 0x6d, 0x58, -0x5d, 0x6a, 0x5d, 0x4a, 0x47, 0x50, 0x61, 0x6d, 0x74, 0x7c, 0x79, 0x83, 0x90, 0x96, 0x8d, 0x79, -0x68, 0x5d, 0x57, 0x52, 0x63, 0x73, 0x60, 0x56, 0x5b, 0x5f, 0x60, 0x5c, 0x48, 0x30, 0x2b, 0x39, -0x57, 0x56, 0x4a, 0x4d, 0x5a, 0x53, 0x4b, 0x4b, 0x47, 0x3f, 0x34, 0x3d, 0x54, 0x5e, 0x59, 0x54, -0x50, 0x4d, 0x5e, 0x70, 0x73, 0x69, 0x57, 0x55, 0x64, 0x74, 0x7c, 0x72, 0x6a, 0x6b, 0x83, 0x95, -0x9f, 0xad, 0xb0, 0xaa, 0xad, 0xbd, 0xca, 0xd4, 0xe3, 0xe5, 0xec, 0xec, 0xea, 0xf4, 0xee, 0xd5, -0xbc, 0xac, 0xac, 0xb6, 0xb3, 0xb1, 0xae, 0xb6, 0xb9, 0xb5, 0xaf, 0xb5, 0xb4, 0x9f, 0x9f, 0xaa, -0xb9, 0xbf, 0xaf, 0xa0, 0x98, 0x87, 0x85, 0x8f, 0x98, 0x94, 0x8a, 0x8c, 0xae, 0xbd, 0xc0, 0xb4, -0xa0, 0xa1, 0x8c, 0x72, 0x81, 0x95, 0xa0, 0x88, 0x71, 0x77, 0x95, 0x92, 0x72, 0x75, 0x84, 0x8e, -0x95, 0x88, 0x68, 0x4a, 0x4e, 0x51, 0x57, 0x6f, 0x82, 0x81, 0x76, 0x72, 0x76, 0x7b, 0x61, 0x3c, -0x36, 0x41, 0x46, 0x50, 0x63, 0x66, 0x5b, 0x50, 0x59, 0x64, 0x5f, 0x53, 0x57, 0x62, 0x70, 0x73, -0x72, 0x72, 0x6d, 0x6b, 0x71, 0x81, 0x95, 0xa7, 0xa9, 0x9d, 0x90, 0x92, 0x97, 0x9a, 0x96, 0x8d, -0x86, 0x84, 0x82, 0x80, 0x7b, 0x73, 0x5e, 0x50, 0x50, 0x5d, 0x7e, 0x9a, 0x9e, 0x9a, 0x8f, 0x85, -0x88, 0x8c, 0x7c, 0x64, 0x58, 0x60, 0x71, 0x80, 0x71, 0x5c, 0x54, 0x54, 0x50, 0x5c, 0x76, 0x80, -0x82, 0x83, 0x82, 0x7e, 0x8b, 0x99, 0xa7, 0xaf, 0xaf, 0xac, 0xa8, 0xa0, 0x97, 0x89, 0x7d, 0x77, -0x7c, 0x7e, 0x73, 0x67, 0x6c, 0x68, 0x5e, 0x5b, 0x5b, 0x52, 0x3c, 0x2f, 0x35, 0x4c, 0x57, 0x53, -0x4d, 0x3e, 0x31, 0x30, 0x34, 0x34, 0x38, 0x3b, 0x4b, 0x63, 0x7a, 0x84, 0x7d, 0x7b, 0x97, 0xab, -0xa4, 0x96, 0x84, 0x72, 0x6a, 0x71, 0x86, 0x9d, 0xa3, 0x98, 0x8f, 0x8c, 0x88, 0x93, 0x9d, 0x95, -0x86, 0x83, 0x84, 0x84, 0x81, 0x78, 0x76, 0x74, 0x78, 0x7a, 0x78, 0x75, 0x69, 0x62, 0x64, 0x5e, -0x6c, 0x82, 0x87, 0x82, 0x7a, 0x7a, 0x85, 0x8f, 0x9a, 0xa2, 0xa4, 0xa3, 0x9f, 0xa4, 0xb0, 0xbd, -0xbd, 0xbb, 0xbb, 0xbc, 0xc1, 0xcb, 0xcb, 0xc4, 0xc1, 0xc1, 0xcc, 0xce, 0xc4, 0xaf, 0xa0, 0xa3, -0xa9, 0xa9, 0x98, 0x84, 0x6f, 0x67, 0x6b, 0x77, 0x81, 0x80, 0x7c, 0x82, 0x83, 0x86, 0x8f, 0x88, -0x7a, 0x77, 0x7d, 0x85, 0x8d, 0x8c, 0x85, 0x81, 0x87, 0x94, 0x9b, 0x94, 0x80, 0x69, 0x68, 0x74, -0x82, 0x8e, 0x8f, 0x84, 0x79, 0x79, 0x83, 0x8f, 0x8c, 0x77, 0x63, 0x55, 0x4d, 0x52, 0x62, 0x6f, -0x71, 0x70, 0x75, 0x76, 0x74, 0x6a, 0x5b, 0x50, 0x4e, 0x4c, 0x51, 0x5a, 0x5c, 0x5b, 0x62, 0x6b, -0x74, 0x7d, 0x82, 0x73, 0x5c, 0x56, 0x5e, 0x6e, 0x7b, 0x85, 0x89, 0x8e, 0x96, 0x9d, 0xa7, 0xaa, -0x9e, 0x8b, 0x7b, 0x70, 0x6d, 0x72, 0x7c, 0x87, 0x90, 0x90, 0x92, 0x96, 0x92, 0x83, 0x77, 0x7c, -0x84, 0x8e, 0x90, 0x89, 0x80, 0x7d, 0x7a, 0x7d, 0x85, 0x80, 0x71, 0x69, 0x68, 0x73, 0x8a, 0x94, -0x8c, 0x7e, 0x7e, 0x81, 0x82, 0x7a, 0x69, 0x53, 0x46, 0x4b, 0x57, 0x62, 0x61, 0x55, 0x4c, 0x50, -0x5c, 0x6d, 0x73, 0x69, 0x58, 0x55, 0x61, 0x7d, 0x9b, 0xb0, 0xbb, 0xc4, 0xce, 0xd4, 0xd8, 0xce, -0xb8, 0xa1, 0x98, 0x96, 0x98, 0x9b, 0x93, 0x84, 0x7c, 0x7a, 0x7e, 0x88, 0x84, 0x71, 0x5f, 0x59, -0x5c, 0x66, 0x73, 0x75, 0x69, 0x5f, 0x5a, 0x5c, 0x68, 0x70, 0x70, 0x71, 0x79, 0x7e, 0x84, 0x88, -0x89, 0x8f, 0x97, 0x96, 0x91, 0x88, 0x7d, 0x71, 0x6e, 0x72, 0x7c, 0x8b, 0x91, 0x90, 0x8a, 0x8c, -0x89, 0x86, 0x88, 0x81, 0x73, 0x68, 0x5e, 0x5e, 0x67, 0x6d, 0x6d, 0x69, 0x62, 0x57, 0x55, 0x5b, -0x5a, 0x4f, 0x4d, 0x54, 0x60, 0x6c, 0x6d, 0x66, 0x65, 0x6e, 0x7c, 0x93, 0xa2, 0x9a, 0x84, 0x72, -0x6a, 0x73, 0x81, 0x84, 0x7e, 0x7a, 0x82, 0x93, 0xa5, 0xaf, 0xaa, 0x98, 0x90, 0x93, 0xa2, 0xaa, -0xa3, 0x97, 0x95, 0x95, 0x96, 0x95, 0x87, 0x6c, 0x54, 0x4d, 0x56, 0x69, 0x73, 0x6c, 0x62, 0x68, -0x77, 0x86, 0x96, 0x9f, 0x98, 0x8f, 0x86, 0x82, 0x8c, 0x93, 0x8e, 0x87, 0x8c, 0x93, 0x98, 0x97, -0x8a, 0x77, 0x6c, 0x6c, 0x76, 0x87, 0x90, 0x90, 0x94, 0x9a, 0x9d, 0xa4, 0xa6, 0x98, 0x82, 0x78, -0x77, 0x7b, 0x87, 0x8e, 0x8e, 0x8b, 0x8c, 0x8f, 0x92, 0x90, 0x8b, 0x88, 0x8e, 0x95, 0x9e, 0xa2, -0xa1, 0x9c, 0x9b, 0xa1, 0xa7, 0xac, 0xaa, 0x9b, 0x84, 0x73, 0x70, 0x75, 0x7a, 0x80, 0x84, 0x83, -0x7c, 0x79, 0x80, 0x7e, 0x74, 0x6a, 0x65, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x73, 0x78, 0x7a, 0x7b, -0x79, 0x6d, 0x62, 0x60, 0x6c, 0x87, 0x9a, 0x98, 0x87, 0x7a, 0x74, 0x7b, 0x8b, 0x91, 0x89, 0x7a, -0x75, 0x7c, 0x8f, 0x9f, 0xa9, 0xa9, 0xa3, 0x99, 0x95, 0x93, 0x85, 0x6c, 0x5d, 0x5c, 0x67, 0x72, -0x6e, 0x61, 0x57, 0x58, 0x63, 0x74, 0x7c, 0x75, 0x64, 0x5f, 0x6a, 0x83, 0x9c, 0xa8, 0xa5, 0xa0, -0x9c, 0x99, 0x9d, 0x9f, 0x92, 0x7b, 0x6f, 0x6f, 0x78, 0x81, 0x80, 0x7d, 0x88, 0x8e, 0x8a, 0x85, -0x7b, 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x57, 0x47, 0x42, 0x44, 0x45, 0x45, 0x44, 0x40, 0x39, -0x35, 0x3c, 0x4b, 0x51, 0x4d, 0x4e, 0x5a, 0x66, 0x6e, 0x71, 0x6d, 0x66, 0x60, 0x5e, 0x61, 0x6f, -0x7d, 0x85, 0x86, 0x86, 0x81, 0x81, 0x7d, 0x72, 0x63, 0x5d, 0x59, 0x5b, 0x69, 0x73, 0x71, 0x6b, -0x6f, 0x74, 0x73, 0x6f, 0x69, 0x5e, 0x5b, 0x5b, 0x63, 0x75, 0x80, 0x82, 0x81, 0x82, 0x88, 0x96, -0x9e, 0x95, 0x81, 0x73, 0x6b, 0x74, 0x8a, 0x9c, 0xa6, 0xb0, 0xb9, 0xc8, 0xd6, 0xdc, 0xd9, 0xd0, -0xc7, 0xc5, 0xce, 0xd5, 0xd4, 0xc9, 0xbf, 0xbb, 0xbd, 0xbe, 0xb7, 0xa2, 0x8f, 0x88, 0x89, 0x93, -0x99, 0x93, 0x8c, 0x8a, 0x8e, 0x9b, 0xa9, 0xa5, 0x93, 0x8a, 0x89, 0x8d, 0x9a, 0xa8, 0xa9, 0xa3, -0xa0, 0xa0, 0xa4, 0xa5, 0x9b, 0x8e, 0x8c, 0x93, 0x9a, 0x9d, 0x96, 0x91, 0x91, 0x91, 0x90, 0x8c, -0x84, 0x76, 0x62, 0x56, 0x51, 0x52, 0x54, 0x53, 0x50, 0x48, 0x42, 0x43, 0x4d, 0x54, 0x4a, 0x3d, -0x39, 0x3d, 0x46, 0x52, 0x61, 0x6d, 0x7a, 0x80, 0x7d, 0x81, 0x8a, 0x8c, 0x88, 0x8a, 0x8f, 0x97, -0x99, 0x91, 0x8a, 0x86, 0x82, 0x82, 0x8a, 0x8b, 0x84, 0x7c, 0x7b, 0x7d, 0x82, 0x85, 0x81, 0x76, -0x71, 0x6d, 0x72, 0x80, 0x84, 0x79, 0x6d, 0x67, 0x68, 0x73, 0x75, 0x6e, 0x67, 0x63, 0x61, 0x5e, -0x60, 0x5f, 0x51, 0x45, 0x43, 0x4e, 0x61, 0x6a, 0x72, 0x75, 0x77, 0x79, 0x86, 0x90, 0x8c, 0x85, -0x81, 0x86, 0x94, 0xa2, 0xa8, 0xa2, 0x9d, 0x9e, 0xa4, 0xb4, 0xbe, 0xb5, 0xa1, 0x94, 0x91, 0x9f, -0xa7, 0x98, 0x8a, 0x86, 0x80, 0x79, 0x7e, 0x81, 0x75, 0x65, 0x5b, 0x5b, 0x64, 0x67, 0x68, 0x69, -0x77, 0x88, 0x91, 0x93, 0x90, 0x83, 0x71, 0x68, 0x62, 0x5f, 0x57, 0x4e, 0x4c, 0x51, 0x55, 0x53, -0x4f, 0x4b, 0x42, 0x37, 0x38, 0x46, 0x59, 0x68, 0x72, 0x7b, 0x85, 0x86, 0x82, 0x86, 0x8f, 0x98, -0x97, 0x91, 0x8e, 0x8d, 0x8c, 0x8d, 0x93, 0x9c, 0x9e, 0x9b, 0x92, 0x8a, 0x83, 0x7c, 0x7b, 0x7b, -0x7d, 0x7e, 0x7c, 0x80, 0x86, 0x8a, 0x8a, 0x8a, 0x8a, 0x88, 0x7a, 0x6f, 0x75, 0x89, 0x99, 0xa5, -0xaf, 0xb1, 0xaa, 0x9f, 0x98, 0x99, 0x97, 0x8d, 0x81, 0x7d, 0x83, 0x8a, 0x8a, 0x89, 0x8e, 0x96, -0x9d, 0xac, 0xbb, 0xba, 0xad, 0xa1, 0xa0, 0xa6, 0xa3, 0x94, 0x84, 0x7a, 0x77, 0x80, 0x89, 0x81, -0x70, 0x67, 0x63, 0x67, 0x6c, 0x66, 0x5b, 0x57, 0x5d, 0x64, 0x6b, 0x68, 0x5f, 0x58, 0x54, 0x55, -0x5c, 0x5b, 0x53, 0x55, 0x64, 0x76, 0x8b, 0x93, 0x96, 0xa1, 0xac, 0xb4, 0xba, 0xb3, 0xa2, 0x9b, -0x9f, 0xa0, 0xa3, 0xa0, 0x8e, 0x7c, 0x72, 0x71, 0x74, 0x6c, 0x5b, 0x4d, 0x46, 0x49, 0x50, 0x52, -0x4e, 0x53, 0x62, 0x74, 0x84, 0x84, 0x78, 0x75, 0x80, 0x85, 0x88, 0x87, 0x80, 0x78, 0x74, 0x74, -0x77, 0x79, 0x73, 0x6c, 0x6c, 0x69, 0x71, 0x83, 0x8a, 0x8a, 0x92, 0x9c, 0xa2, 0x9d, 0x91, 0x8a, -0x94, 0xa2, 0xab, 0xb6, 0xb3, 0xa0, 0x93, 0x91, 0x95, 0x9d, 0x9d, 0x92, 0x88, 0x81, 0x7d, 0x7e, -0x79, 0x73, 0x71, 0x6e, 0x6a, 0x71, 0x79, 0x78, 0x75, 0x75, 0x79, 0x86, 0x8d, 0x89, 0x84, 0x84, -0x86, 0x91, 0x94, 0x89, 0x82, 0x7d, 0x78, 0x87, 0x99, 0xa1, 0xa1, 0x9f, 0x98, 0x97, 0x96, 0x8f, -0x88, 0x87, 0x8c, 0x9a, 0xa3, 0xa0, 0x97, 0x95, 0x9b, 0xa2, 0xa4, 0x94, 0x7e, 0x73, 0x6c, 0x6c, -0x70, 0x6a, 0x60, 0x60, 0x67, 0x78, 0x8a, 0x8b, 0x83, 0x7e, 0x79, 0x7a, 0x7d, 0x7a, 0x6e, 0x60, -0x55, 0x56, 0x5b, 0x51, 0x3f, 0x35, 0x36, 0x40, 0x4f, 0x59, 0x5e, 0x68, 0x74, 0x7d, 0x85, 0x85, -0x7e, 0x7b, 0x7d, 0x85, 0x8f, 0x90, 0x87, 0x80, 0x79, 0x70, 0x6b, 0x62, 0x55, 0x4e, 0x50, 0x55, -0x5d, 0x5f, 0x57, 0x4e, 0x53, 0x5e, 0x6b, 0x70, 0x67, 0x5a, 0x5d, 0x63, 0x69, 0x6c, 0x63, 0x57, -0x51, 0x50, 0x5e, 0x72, 0x83, 0x8b, 0x8b, 0x88, 0x8b, 0x93, 0x96, 0x91, 0x87, 0x7e, 0x83, 0x8c, -0x89, 0x7c, 0x7b, 0x85, 0x96, 0xa5, 0xa6, 0xa2, 0xa8, 0xaa, 0xab, 0xab, 0xa3, 0x99, 0x97, 0x9d, -0xa6, 0xb2, 0xb7, 0xb4, 0xb0, 0xac, 0xa8, 0xa5, 0x9b, 0x82, 0x71, 0x6c, 0x76, 0x8c, 0x93, 0x83, -0x72, 0x76, 0x82, 0x8c, 0x8b, 0x7a, 0x6c, 0x6c, 0x7a, 0x92, 0xa5, 0xa3, 0x9a, 0x94, 0x92, 0xa0, -0xb3, 0xb7, 0xaf, 0xac, 0xb0, 0xb5, 0xb0, 0xa2, 0x9b, 0x9a, 0x91, 0x8d, 0x8c, 0x7e, 0x70, 0x6e, -0x71, 0x76, 0x75, 0x68, 0x5c, 0x60, 0x68, 0x71, 0x79, 0x71, 0x63, 0x65, 0x70, 0x80, 0x8b, 0x86, -0x76, 0x71, 0x70, 0x70, 0x6f, 0x61, 0x4f, 0x4b, 0x53, 0x69, 0x85, 0x91, 0x89, 0x7c, 0x7b, 0x83, -0x8d, 0x8e, 0x81, 0x77, 0x7c, 0x8b, 0x9d, 0xa6, 0x9e, 0x94, 0x8f, 0x8c, 0x89, 0x84, 0x7e, 0x83, -0x8d, 0x94, 0x97, 0x97, 0x8c, 0x7c, 0x75, 0x73, 0x7b, 0x7e, 0x70, 0x60, 0x63, 0x70, 0x7a, 0x75, -0x66, 0x5d, 0x65, 0x72, 0x7e, 0x84, 0x79, 0x69, 0x6b, 0x7a, 0x93, 0xa4, 0xa6, 0xa2, 0xa1, 0xa2, -0xa7, 0xa3, 0x90, 0x78, 0x72, 0x7b, 0x8b, 0x9c, 0xa1, 0x96, 0x8c, 0x8a, 0x8e, 0x8f, 0x88, 0x76, -0x6c, 0x6b, 0x6e, 0x73, 0x73, 0x6e, 0x6d, 0x70, 0x77, 0x7a, 0x75, 0x6e, 0x70, 0x79, 0x84, 0x82, -0x6a, 0x4d, 0x3d, 0x3a, 0x3c, 0x40, 0x3f, 0x32, 0x28, 0x2f, 0x43, 0x52, 0x51, 0x4a, 0x44, 0x45, -0x4f, 0x63, 0x6b, 0x61, 0x61, 0x72, 0x86, 0x8e, 0x84, 0x74, 0x6e, 0x6d, 0x6d, 0x75, 0x79, 0x72, -0x6c, 0x6c, 0x6f, 0x77, 0x84, 0x83, 0x6f, 0x66, 0x6f, 0x7b, 0x76, 0x65, 0x5c, 0x62, 0x72, 0x82, -0x85, 0x7b, 0x73, 0x77, 0x80, 0x8c, 0x93, 0x8b, 0x82, 0x8c, 0xa1, 0xba, 0xc0, 0xb1, 0xa0, 0x9a, -0x9b, 0xa5, 0xb1, 0xb4, 0xaf, 0xaf, 0xb5, 0xc1, 0xc3, 0xb8, 0xac, 0xab, 0xb2, 0xbd, 0xc5, 0xbd, -0xab, 0xa1, 0xa0, 0xa6, 0xb0, 0xaa, 0x96, 0x8c, 0x87, 0x8c, 0x95, 0x8c, 0x76, 0x71, 0x79, 0x84, -0x87, 0x80, 0x78, 0x73, 0x6f, 0x72, 0x79, 0x77, 0x6d, 0x6a, 0x6f, 0x74, 0x7e, 0x86, 0x81, 0x78, -0x7c, 0x8d, 0xa4, 0xa8, 0x97, 0x92, 0x9f, 0xa9, 0xaf, 0xa9, 0x91, 0x7b, 0x71, 0x6e, 0x6c, 0x68, -0x66, 0x69, 0x69, 0x68, 0x70, 0x73, 0x65, 0x57, 0x55, 0x5d, 0x69, 0x6b, 0x65, 0x60, 0x65, 0x70, -0x80, 0x84, 0x73, 0x5a, 0x4f, 0x4d, 0x51, 0x58, 0x52, 0x4b, 0x54, 0x5e, 0x69, 0x72, 0x7b, 0x84, -0x86, 0x85, 0x8a, 0x8d, 0x86, 0x7e, 0x84, 0x8a, 0x8e, 0x89, 0x7c, 0x73, 0x71, 0x77, 0x86, 0x94, -0x96, 0x8e, 0x8a, 0x89, 0x8f, 0x9a, 0x96, 0x85, 0x75, 0x75, 0x82, 0x85, 0x78, 0x70, 0x79, 0x89, -0x95, 0x99, 0x96, 0x8b, 0x7e, 0x7a, 0x81, 0x86, 0x82, 0x80, 0x8a, 0x97, 0xa4, 0xb4, 0xc0, 0xbf, -0xb7, 0xae, 0xa6, 0xa8, 0xa8, 0x9f, 0x97, 0x9a, 0x9d, 0x9b, 0x92, 0x87, 0x89, 0x92, 0x97, 0x98, -0x8c, 0x73, 0x62, 0x5d, 0x5e, 0x5e, 0x58, 0x50, 0x4b, 0x4b, 0x4a, 0x52, 0x5d, 0x63, 0x67, 0x6d, -0x6e, 0x6a, 0x65, 0x5b, 0x4b, 0x44, 0x43, 0x46, 0x45, 0x3d, 0x3d, 0x48, 0x4e, 0x51, 0x55, 0x54, -0x4c, 0x4c, 0x52, 0x5a, 0x5b, 0x56, 0x5a, 0x68, 0x74, 0x77, 0x76, 0x73, 0x6f, 0x6f, 0x6e, 0x6c, -0x69, 0x63, 0x54, 0x4a, 0x4a, 0x53, 0x5e, 0x66, 0x6a, 0x78, 0x8a, 0x99, 0xa0, 0x9d, 0x96, 0x97, -0x9d, 0xa4, 0xa3, 0x9a, 0x92, 0x98, 0xa0, 0xa8, 0xb4, 0xba, 0xb9, 0xbb, 0xb9, 0xb6, 0xb7, 0xb6, -0xb0, 0xaf, 0xb3, 0xba, 0xbd, 0xb7, 0xaf, 0xb2, 0xbd, 0xbd, 0xb3, 0xa5, 0x9b, 0x9a, 0x9f, 0xa4, -0xa9, 0xa0, 0x8f, 0x89, 0x93, 0xa0, 0xa9, 0xaa, 0xa4, 0x9e, 0x9c, 0x98, 0x8f, 0x82, 0x74, 0x6d, -0x6e, 0x73, 0x77, 0x6c, 0x58, 0x55, 0x66, 0x74, 0x7b, 0x77, 0x6d, 0x6c, 0x75, 0x79, 0x7a, 0x78, -0x71, 0x64, 0x61, 0x6e, 0x82, 0x89, 0x7e, 0x73, 0x74, 0x70, 0x63, 0x52, 0x3f, 0x35, 0x3c, 0x4b, -0x5c, 0x63, 0x57, 0x4c, 0x54, 0x62, 0x6f, 0x71, 0x6b, 0x60, 0x54, 0x50, 0x52, 0x53, 0x51, 0x55, -0x64, 0x74, 0x84, 0x8d, 0x8e, 0x87, 0x86, 0x86, 0x82, 0x7a, 0x6a, 0x5e, 0x61, 0x6d, 0x83, 0x98, -0x9f, 0x9f, 0xa6, 0xb3, 0xc0, 0xc4, 0xbc, 0xb5, 0xba, 0xc2, 0xc1, 0xb6, 0xa4, 0x92, 0x8d, 0x94, -0x9f, 0xaa, 0xaa, 0xa2, 0x9c, 0x9b, 0x99, 0x99, 0x98, 0x90, 0x83, 0x76, 0x74, 0x7d, 0x7d, 0x76, -0x79, 0x8d, 0xa0, 0xa7, 0xa1, 0x96, 0x8f, 0x90, 0x8e, 0x87, 0x77, 0x65, 0x5e, 0x61, 0x6d, 0x82, -0x9a, 0xa7, 0xa8, 0xa8, 0xa4, 0xa1, 0x99, 0x88, 0x75, 0x6f, 0x6c, 0x6f, 0x6c, 0x60, 0x55, 0x5c, -0x6d, 0x83, 0x8a, 0x7c, 0x6d, 0x6b, 0x6b, 0x70, 0x75, 0x71, 0x69, 0x66, 0x63, 0x67, 0x71, 0x79, -0x7e, 0x88, 0x8e, 0x8e, 0x88, 0x7b, 0x6d, 0x65, 0x5d, 0x59, 0x57, 0x49, 0x39, 0x38, 0x41, 0x51, -0x61, 0x62, 0x5b, 0x58, 0x59, 0x5e, 0x5e, 0x51, 0x42, 0x3f, 0x44, 0x49, 0x49, 0x4d, 0x55, 0x60, -0x71, 0x85, 0x90, 0x8f, 0x85, 0x7e, 0x79, 0x7b, 0x8c, 0x99, 0x98, 0x94, 0x93, 0x96, 0xa0, 0xa1, -0x9a, 0x98, 0x9a, 0x9c, 0x9c, 0x93, 0x85, 0x78, 0x75, 0x79, 0x80, 0x7c, 0x75, 0x77, 0x85, 0x92, -0x9c, 0x9d, 0x95, 0x87, 0x7e, 0x7a, 0x7e, 0x83, 0x7b, 0x75, 0x80, 0x8e, 0x97, 0x96, 0x8c, 0x82, -0x87, 0x97, 0xac, 0xb7, 0xac, 0x9e, 0x97, 0x8f, 0x8e, 0x91, 0x93, 0x8c, 0x80, 0x72, 0x6d, 0x66, -0x5c, 0x5a, 0x64, 0x69, 0x67, 0x61, 0x58, 0x51, 0x51, 0x5a, 0x6b, 0x75, 0x6d, 0x66, 0x6a, 0x74, -0x84, 0x91, 0x8f, 0x85, 0x7d, 0x78, 0x7b, 0x82, 0x82, 0x85, 0x99, 0xb0, 0xbf, 0xbd, 0xac, 0x99, -0x8e, 0x8d, 0x92, 0x96, 0x8f, 0x85, 0x83, 0x82, 0x86, 0x93, 0x99, 0x91, 0x83, 0x75, 0x6c, 0x68, -0x63, 0x5f, 0x64, 0x6f, 0x7a, 0x80, 0x7e, 0x7a, 0x73, 0x74, 0x7b, 0x85, 0x85, 0x77, 0x70, 0x78, -0x83, 0x94, 0x9f, 0xa4, 0xad, 0xb8, 0xc0, 0xc6, 0xc3, 0xb2, 0xac, 0xb8, 0xc1, 0xc3, 0xb7, 0xa3, -0x8c, 0x82, 0x85, 0x91, 0x96, 0x92, 0x90, 0x92, 0x98, 0xa3, 0xac, 0xad, 0xa2, 0x96, 0x8e, 0x85, -0x7e, 0x73, 0x67, 0x6c, 0x79, 0x87, 0x8d, 0x87, 0x75, 0x6c, 0x6c, 0x79, 0x88, 0x88, 0x7b, 0x76, -0x78, 0x7c, 0x80, 0x7b, 0x78, 0x7b, 0x80, 0x83, 0x7e, 0x6e, 0x5b, 0x58, 0x5f, 0x62, 0x5e, 0x4e, -0x3a, 0x34, 0x40, 0x58, 0x71, 0x79, 0x74, 0x76, 0x7e, 0x84, 0x8a, 0x8c, 0x85, 0x7a, 0x6e, 0x65, -0x64, 0x5d, 0x54, 0x5e, 0x74, 0x84, 0x8b, 0x83, 0x70, 0x5c, 0x51, 0x4f, 0x51, 0x4d, 0x40, 0x3a, -0x44, 0x52, 0x5c, 0x5c, 0x59, 0x59, 0x5f, 0x63, 0x65, 0x66, 0x5f, 0x5b, 0x66, 0x71, 0x75, 0x71, -0x67, 0x64, 0x69, 0x6d, 0x74, 0x78, 0x73, 0x6b, 0x6a, 0x69, 0x6c, 0x6a, 0x60, 0x54, 0x4f, 0x53, -0x5e, 0x68, 0x68, 0x65, 0x6f, 0x7b, 0x87, 0x8c, 0x88, 0x7d, 0x75, 0x6e, 0x72, 0x7d, 0x82, 0x84, -0x93, 0xa0, 0xa3, 0xa0, 0x99, 0x96, 0x9b, 0x9d, 0xa1, 0xa4, 0x9e, 0x92, 0x93, 0xa1, 0xb3, 0xc1, -0xc1, 0xb7, 0xad, 0xa9, 0xad, 0xb4, 0xb8, 0xb6, 0xb7, 0xbd, 0xc4, 0xc7, 0xb9, 0xa4, 0x98, 0x95, -0x93, 0x94, 0x8f, 0x83, 0x7a, 0x7c, 0x85, 0x8e, 0x89, 0x78, 0x6a, 0x66, 0x6c, 0x7e, 0x8f, 0x95, -0x97, 0x9f, 0xa0, 0x9b, 0x92, 0x8b, 0x87, 0x8a, 0x8e, 0x98, 0x9c, 0x94, 0x8f, 0x9f, 0xb3, 0xbb, -0xb4, 0xa4, 0x93, 0x8a, 0x82, 0x83, 0x80, 0x70, 0x66, 0x6b, 0x76, 0x80, 0x81, 0x78, 0x6c, 0x64, -0x60, 0x62, 0x62, 0x5b, 0x53, 0x57, 0x61, 0x6e, 0x75, 0x6e, 0x63, 0x62, 0x69, 0x74, 0x7e, 0x80, -0x7b, 0x80, 0x86, 0x87, 0x80, 0x6e, 0x65, 0x6a, 0x6f, 0x78, 0x82, 0x81, 0x77, 0x77, 0x7b, 0x80, -0x7e, 0x72, 0x64, 0x62, 0x65, 0x6b, 0x79, 0x81, 0x7d, 0x82, 0x90, 0xa1, 0xaa, 0xa4, 0x96, 0x8e, -0x8c, 0x90, 0x94, 0x8f, 0x83, 0x7d, 0x83, 0x8c, 0x93, 0x8f, 0x85, 0x80, 0x7c, 0x77, 0x79, 0x7a, -0x74, 0x76, 0x85, 0x90, 0x99, 0x95, 0x8a, 0x83, 0x84, 0x88, 0x92, 0x91, 0x85, 0x7c, 0x80, 0x86, -0x89, 0x7a, 0x63, 0x57, 0x57, 0x59, 0x61, 0x68, 0x68, 0x68, 0x6f, 0x78, 0x81, 0x7c, 0x6b, 0x56, -0x4d, 0x4a, 0x50, 0x57, 0x53, 0x4a, 0x4d, 0x59, 0x69, 0x6f, 0x69, 0x60, 0x5c, 0x5d, 0x65, 0x6a, -0x61, 0x54, 0x56, 0x61, 0x6b, 0x67, 0x5b, 0x54, 0x57, 0x5b, 0x60, 0x69, 0x6a, 0x64, 0x6a, 0x78, -0x88, 0x91, 0x8d, 0x82, 0x7e, 0x81, 0x87, 0x93, 0x97, 0x94, 0x94, 0x9c, 0xa9, 0xaf, 0xa1, 0x88, -0x7a, 0x79, 0x83, 0x91, 0x98, 0x9c, 0xa9, 0xb8, 0xc3, 0xc6, 0xb8, 0xa3, 0x98, 0x94, 0x97, 0x9f, -0xa0, 0x9a, 0x98, 0x9f, 0xaa, 0xb5, 0xb2, 0xa3, 0x98, 0x92, 0x91, 0x9c, 0xa0, 0x92, 0x89, 0x90, -0x9b, 0xa5, 0x9e, 0x8d, 0x84, 0x85, 0x87, 0x88, 0x8a, 0x84, 0x7e, 0x84, 0x8a, 0x91, 0x91, 0x85, -0x74, 0x6d, 0x6b, 0x73, 0x7a, 0x77, 0x72, 0x74, 0x7a, 0x8d, 0x93, 0x88, 0x72, 0x66, 0x64, 0x6c, -0x74, 0x6f, 0x69, 0x6f, 0x78, 0x7e, 0x7a, 0x67, 0x54, 0x4c, 0x46, 0x47, 0x4d, 0x49, 0x3e, 0x3c, -0x44, 0x53, 0x5f, 0x5d, 0x50, 0x49, 0x46, 0x4d, 0x5d, 0x65, 0x61, 0x67, 0x74, 0x83, 0x8f, 0x8c, -0x7e, 0x7a, 0x7d, 0x82, 0x8a, 0x8a, 0x82, 0x81, 0x86, 0x8d, 0x91, 0x86, 0x75, 0x69, 0x63, 0x69, -0x78, 0x82, 0x86, 0x8a, 0x90, 0x9a, 0xa1, 0x9d, 0x91, 0x86, 0x89, 0x8e, 0x96, 0x9a, 0x92, 0x8d, -0x97, 0xa5, 0xb2, 0xb3, 0xa6, 0x9a, 0x98, 0x98, 0x9c, 0xa1, 0x9f, 0x9e, 0xa6, 0xab, 0xb4, 0xb4, -0xa3, 0x94, 0x92, 0x91, 0x94, 0x98, 0x92, 0x88, 0x88, 0x8e, 0x98, 0x97, 0x86, 0x71, 0x69, 0x6c, -0x78, 0x83, 0x83, 0x81, 0x88, 0x8e, 0x96, 0x98, 0x90, 0x88, 0x83, 0x80, 0x86, 0x8f, 0x8e, 0x85, -0x85, 0x8b, 0x93, 0x96, 0x8c, 0x79, 0x6d, 0x69, 0x6f, 0x7a, 0x7e, 0x7d, 0x86, 0x90, 0x9a, 0xa2, -0x96, 0x80, 0x78, 0x7a, 0x7d, 0x80, 0x7b, 0x6f, 0x6c, 0x70, 0x77, 0x84, 0x83, 0x71, 0x63, 0x5c, -0x5e, 0x6a, 0x70, 0x6e, 0x70, 0x74, 0x76, 0x78, 0x70, 0x5e, 0x4e, 0x47, 0x48, 0x4f, 0x52, 0x4a, -0x47, 0x51, 0x62, 0x74, 0x76, 0x6c, 0x62, 0x5e, 0x5d, 0x65, 0x70, 0x70, 0x72, 0x7d, 0x81, 0x7d, -0x74, 0x68, 0x5f, 0x5f, 0x65, 0x6f, 0x77, 0x73, 0x6e, 0x76, 0x86, 0x97, 0xa0, 0x98, 0x8a, 0x83, -0x80, 0x85, 0x85, 0x7b, 0x73, 0x78, 0x7d, 0x83, 0x86, 0x7d, 0x72, 0x6e, 0x6f, 0x71, 0x72, 0x6d, -0x6a, 0x6d, 0x71, 0x7a, 0x83, 0x7a, 0x6a, 0x59, 0x4b, 0x4a, 0x50, 0x54, 0x57, 0x69, 0x81, 0x90, -0x96, 0x91, 0x87, 0x89, 0x92, 0x9a, 0xa4, 0xa4, 0x95, 0x8d, 0x8c, 0x89, 0x88, 0x82, 0x75, 0x6d, -0x67, 0x6a, 0x79, 0x84, 0x82, 0x80, 0x83, 0x8a, 0x91, 0x8d, 0x82, 0x78, 0x74, 0x76, 0x7b, 0x7d, -0x76, 0x79, 0x87, 0x97, 0xaa, 0xb3, 0xad, 0xa8, 0xa3, 0xa0, 0xa2, 0xa2, 0x9e, 0xa2, 0xad, 0xb2, -0xb4, 0xae, 0x9d, 0x89, 0x81, 0x77, 0x83, 0x91, 0x8f, 0x8c, 0x90, 0x94, 0x98, 0x96, 0x8e, 0x7b, -0x6d, 0x6c, 0x75, 0x80, 0x79, 0x6c, 0x77, 0x86, 0x8e, 0x8f, 0x84, 0x7b, 0x7c, 0x78, 0x7d, 0x8a, -0x8b, 0x8e, 0x96, 0x9e, 0xa9, 0xb0, 0xa7, 0x90, 0x8a, 0x8a, 0x8c, 0x97, 0x90, 0x84, 0x93, 0x9e, -0xa5, 0xac, 0xa8, 0x9e, 0x99, 0x9c, 0xa5, 0xa7, 0x9c, 0x88, 0x85, 0x8e, 0x99, 0x98, 0x8a, 0x74, -0x68, 0x61, 0x65, 0x6c, 0x6e, 0x72, 0x79, 0x86, 0x97, 0xa9, 0xad, 0x9d, 0x92, 0x91, 0x8f, 0x93, -0x8d, 0x80, 0x7e, 0x83, 0x8f, 0x8f, 0x7c, 0x6b, 0x60, 0x5f, 0x5f, 0x5f, 0x55, 0x49, 0x4d, 0x55, -0x59, 0x5d, 0x53, 0x46, 0x3e, 0x3d, 0x49, 0x52, 0x4f, 0x42, 0x3c, 0x4a, 0x51, 0x57, 0x5f, 0x59, -0x54, 0x57, 0x5e, 0x6c, 0x6b, 0x5d, 0x59, 0x66, 0x75, 0x73, 0x64, 0x5b, 0x58, 0x56, 0x4c, 0x3c, -0x37, 0x39, 0x39, 0x44, 0x4c, 0x4d, 0x4c, 0x41, 0x31, 0x1d, 0xe, 0x14, 0x1f, 0x24, 0x31, 0x4a, -0x5e, 0x6a, 0x77, 0x82, 0x7e, 0x7b, 0x88, 0x95, 0xa0, 0xae, 0xaa, 0xaa, 0xb9, 0xca, 0xd5, 0xc8, -0xb0, 0xac, 0xa8, 0xb0, 0xc3, 0xbe, 0xaa, 0x9f, 0xa3, 0xba, 0xd2, 0xda, 0xcf, 0xbb, 0xb1, 0xb5, -0xbc, 0xaf, 0x8d, 0x81, 0x95, 0xae, 0xc6, 0xc1, 0xa4, 0xa3, 0xa7, 0xa7, 0xb3, 0xa9, 0x9a, 0x9e, -0xaa, 0xbd, 0xcb, 0xca, 0xb3, 0xaf, 0xbb, 0xb9, 0xac, 0x96, 0x81, 0x81, 0x9b, 0xb3, 0xb7, 0xa0, -0x7d, 0x6b, 0x69, 0x6c, 0x69, 0x58, 0x46, 0x45, 0x55, 0x65, 0x59, 0x45, 0x3d, 0x46, 0x53, 0x51, -0x44, 0x3f, 0x3e, 0x42, 0x4f, 0x50, 0x4d, 0x4c, 0x44, 0x45, 0x4e, 0x44, 0x41, 0x50, 0x55, 0x6c, -0x89, 0x86, 0x86, 0x90, 0x99, 0xb2, 0xbf, 0xb8, 0xb2, 0xb1, 0xab, 0xa5, 0xad, 0xbb, 0xc9, 0xd1, -0xd3, 0xd4, 0xc9, 0xb5, 0xa6, 0x9d, 0x9f, 0x91, 0x80, 0x81, 0x84, 0x89, 0x92, 0x88, 0x7a, 0x7a, -0x7e, 0x87, 0x80, 0x66, 0x59, 0x60, 0x7c, 0x8d, 0x7e, 0x6c, 0x66, 0x67, 0x6d, 0x80, 0x8a, 0x7e, -0x7a, 0x7b, 0x88, 0x8c, 0x7e, 0x73, 0x74, 0x78, 0x73, 0x77, 0x68, 0x57, 0x62, 0x6e, 0x7c, 0x85, -0x73, 0x60, 0x63, 0x69, 0x83, 0x8f, 0x80, 0x6f, 0x6c, 0x8b, 0xa3, 0xad, 0xa9, 0x99, 0x9b, 0xb0, -0xa9, 0x93, 0x7b, 0x69, 0x6b, 0x78, 0x7e, 0x72, 0x64, 0x58, 0x49, 0x4c, 0x4c, 0x3b, 0x38, 0x3c, -0x34, 0x3f, 0x4b, 0x45, 0x48, 0x52, 0x68, 0x85, 0x79, 0x6e, 0x7c, 0x81, 0x94, 0x9d, 0x98, 0xa0, -0x95, 0x8f, 0x8d, 0x81, 0x70, 0x63, 0x53, 0x54, 0x5f, 0x68, 0x77, 0x86, 0x88, 0x8e, 0x80, 0x70, -0x68, 0x62, 0x6a, 0x6d, 0x72, 0x67, 0x61, 0x82, 0x96, 0xa6, 0xad, 0x99, 0x87, 0x84, 0x92, 0xa0, -0x9c, 0x9a, 0xa7, 0xb3, 0xc6, 0xc3, 0xa7, 0xa7, 0xa5, 0x97, 0x9a, 0xa1, 0x8e, 0x7e, 0x87, 0xa1, -0xb9, 0xba, 0xa8, 0x94, 0x85, 0x7d, 0x83, 0x82, 0x81, 0x84, 0x94, 0xa6, 0x9c, 0x82, 0x61, 0x59, -0x69, 0x7d, 0x82, 0x72, 0x58, 0x5d, 0x66, 0x76, 0x8b, 0x7b, 0x6a, 0x5a, 0x53, 0x5e, 0x5a, 0x4d, -0x52, 0x5f, 0x71, 0x83, 0x83, 0x77, 0x6c, 0x72, 0x7a, 0x70, 0x67, 0x66, 0x62, 0x5d, 0x64, 0x6e, -0x6f, 0x67, 0x58, 0x5c, 0x64, 0x57, 0x49, 0x51, 0x67, 0x82, 0x88, 0x81, 0x7b, 0x6a, 0x6a, 0x6d, -0x77, 0x74, 0x63, 0x72, 0x80, 0x88, 0x7d, 0x6c, 0x7a, 0x8f, 0x97, 0x9e, 0x93, 0x79, 0x6f, 0x72, -0x81, 0x79, 0x6c, 0x6f, 0x87, 0x90, 0x8d, 0x8b, 0x84, 0x74, 0x6e, 0x79, 0x68, 0x58, 0x61, 0x68, -0x7b, 0x97, 0xab, 0xaa, 0x9d, 0xa2, 0xa4, 0x9e, 0xa0, 0x96, 0x8a, 0xa2, 0xb6, 0xbb, 0xad, 0x98, -0x94, 0x9e, 0xa8, 0xaa, 0x95, 0x8d, 0x82, 0x87, 0x99, 0x97, 0x85, 0x80, 0x9c, 0xb6, 0xb2, 0x9b, -0x8e, 0x9a, 0xaf, 0xb2, 0xc6, 0xc6, 0xa2, 0x85, 0x8e, 0x9e, 0xa4, 0x9c, 0x7e, 0x7a, 0x88, 0x94, -0xa2, 0xa4, 0xa5, 0xb3, 0xa4, 0xa2, 0x9d, 0x76, 0x73, 0x75, 0x77, 0x71, 0x6a, 0x62, 0x58, 0x66, -0x8f, 0x90, 0x94, 0x85, 0x75, 0x81, 0x84, 0x8c, 0x83, 0x8b, 0x98, 0x9a, 0x92, 0x83, 0x73, 0x70, -0x86, 0x90, 0x8f, 0x7e, 0x77, 0x75, 0x6c, 0x75, 0x73, 0x64, 0x58, 0x59, 0x5f, 0x58, 0x54, 0x53, -0x5b, 0x61, 0x61, 0x5a, 0x45, 0x37, 0x16, 0x13, 0x3b, 0x4d, 0x49, 0x42, 0x43, 0x59, 0x76, 0x78, -0x63, 0x57, 0x50, 0x57, 0x61, 0x61, 0x69, 0x86, 0x9f, 0xa5, 0xab, 0xa4, 0x94, 0x7d, 0x7b, 0x97, -0xa2, 0x81, 0x6d, 0x59, 0x57, 0x5d, 0x5b, 0x54, 0x44, 0x38, 0x5d, 0x76, 0x76, 0x73, 0x7a, 0x87, -0x93, 0x8b, 0x92, 0x95, 0x7b, 0x69, 0x7e, 0x70, 0x67, 0x66, 0x74, 0x76, 0x76, 0x84, 0x7c, 0x7b, -0x89, 0x78, 0x7a, 0x86, 0x76, 0x83, 0x9d, 0xb1, 0xb0, 0x98, 0x7b, 0x82, 0x9e, 0xad, 0xa3, 0x83, -0x66, 0x65, 0x6f, 0x64, 0x62, 0x63, 0x6b, 0x6b, 0x82, 0x88, 0x79, 0x7d, 0x76, 0x81, 0x94, 0x95, -0x7e, 0x72, 0x69, 0x84, 0xa5, 0x95, 0x6c, 0x65, 0x6f, 0x73, 0x71, 0x7c, 0x7d, 0x7c, 0x80, 0x91, -0xae, 0x9b, 0x8b, 0x9d, 0xb5, 0xd9, 0xd1, 0xb7, 0xa9, 0x9a, 0x97, 0x99, 0xb1, 0xbd, 0xab, 0x9f, -0x87, 0x7b, 0x66, 0x4f, 0x45, 0x57, 0x6f, 0x75, 0x89, 0x87, 0x97, 0xb0, 0xb0, 0xa9, 0x9c, 0x92, -0x9e, 0xa2, 0xa3, 0xa2, 0xac, 0xbb, 0xaa, 0xab, 0xab, 0xa3, 0xad, 0xa2, 0xa8, 0xbe, 0xc1, 0xa6, -0x9b, 0xad, 0xb0, 0xb0, 0x9b, 0x7e, 0x84, 0x82, 0x91, 0x8c, 0x91, 0x97, 0x86, 0x77, 0x68, 0x5c, -0x59, 0x46, 0x38, 0x51, 0x5a, 0x64, 0x56, 0x57, 0x69, 0x76, 0x70, 0x60, 0x3f, 0x49, 0x68, 0x7d, -0xa1, 0x88, 0x7b, 0x7e, 0x73, 0x89, 0x84, 0x69, 0x6f, 0x68, 0x83, 0x8b, 0x6f, 0x66, 0x73, 0x88, -0x88, 0x87, 0x6c, 0x54, 0x53, 0x59, 0x73, 0x74, 0x69, 0x75, 0x75, 0x6c, 0x75, 0x69, 0x4f, 0x2a, -0x2a, 0x3f, 0x4f, 0x64, 0x62, 0x4b, 0x6b, 0x9c, 0xa1, 0x6e, 0x59, 0x4e, 0x50, 0x53, 0x6b, 0x85, -0x80, 0x7a, 0x79, 0x86, 0x8c, 0x87, 0x69, 0x64, 0x85, 0x80, 0x67, 0x4d, 0x4e, 0x63, 0x6d, 0x71, -0x69, 0x3c, 0x36, 0x4f, 0x71, 0x8f, 0x86, 0x95, 0x92, 0x81, 0x9b, 0xa7, 0x8a, 0x71, 0x82, 0x97, -0x96, 0xac, 0x93, 0x99, 0xa6, 0xb0, 0xa7, 0x85, 0x82, 0x8a, 0x80, 0x88, 0x95, 0x94, 0x97, 0x99, -0xa0, 0xa6, 0x96, 0x8e, 0x8f, 0xa2, 0xbf, 0xb6, 0x97, 0x8e, 0x7c, 0x90, 0xaf, 0xbe, 0xba, 0xa5, -0xa9, 0xbb, 0xab, 0x9c, 0x86, 0x84, 0x9e, 0xa5, 0xa7, 0x95, 0x83, 0x8a, 0x96, 0x90, 0x96, 0x98, -0x71, 0x69, 0x89, 0x8b, 0x69, 0x44, 0x42, 0x41, 0x3e, 0x54, 0x57, 0x44, 0x3c, 0x52, 0x6a, 0x83, -0x7a, 0x70, 0x7d, 0x8e, 0xaa, 0xb1, 0x8c, 0x87, 0x97, 0x92, 0xad, 0xa5, 0x88, 0x60, 0x6d, 0x82, -0x7c, 0x8f, 0x74, 0x6d, 0x82, 0x83, 0x73, 0x62, 0x3d, 0x47, 0x52, 0x5f, 0x76, 0x77, 0x62, 0x56, -0x60, 0x7d, 0x8b, 0x6f, 0x66, 0x5a, 0x77, 0x8d, 0x6c, 0x65, 0x7b, 0x7a, 0x84, 0x85, 0x78, 0x8d, -0x98, 0xb1, 0xc4, 0xb8, 0x9d, 0x94, 0x9a, 0xa7, 0xb3, 0x98, 0x78, 0x74, 0x73, 0x6e, 0x68, 0x68, -0x63, 0x4f, 0x56, 0x5b, 0x5f, 0x63, 0x5d, 0x58, 0x7e, 0x9a, 0x8a, 0x77, 0x6a, 0x6c, 0x6a, 0x72, -0x6c, 0x6a, 0x6d, 0x74, 0x8d, 0x8e, 0x6e, 0x8f, 0x90, 0x80, 0xa3, 0xa3, 0x8b, 0x89, 0x9d, 0x9f, -0xa7, 0x9b, 0x92, 0x93, 0x95, 0x9f, 0xa5, 0x9e, 0x71, 0x6d, 0x6c, 0x70, 0x78, 0x8e, 0x8b, 0x8a, -0x97, 0x7d, 0x6c, 0x68, 0x70, 0x82, 0x93, 0x96, 0x92, 0x88, 0x8f, 0x87, 0x7b, 0x91, 0x8d, 0x92, -0xa8, 0xaf, 0xc5, 0xb3, 0x94, 0x8d, 0x80, 0x68, 0x5f, 0x54, 0x46, 0x4e, 0x67, 0x86, 0x94, 0xa7, -0x99, 0x99, 0xba, 0xbb, 0xbc, 0xa8, 0x7b, 0x77, 0x9d, 0x97, 0x94, 0xa0, 0x82, 0x55, 0x5c, 0x61, -0x51, 0x60, 0x61, 0x65, 0x83, 0x86, 0x75, 0x79, 0x72, 0x6b, 0x99, 0xa1, 0x7a, 0x83, 0x8f, 0x7c, -0x98, 0xa2, 0x98, 0x9a, 0x95, 0x82, 0x94, 0x7a, 0x5d, 0x60, 0x84, 0x9d, 0xae, 0x9e, 0x83, 0x7c, -0x91, 0xad, 0xa3, 0x90, 0x81, 0x7b, 0x8f, 0x83, 0x74, 0x84, 0x6b, 0x58, 0x5a, 0x48, 0x2f, 0x2b, -0x38, 0x3b, 0x46, 0x45, 0x34, 0x22, 0x37, 0x3b, 0x4a, 0x52, 0x4b, 0x62, 0x8a, 0xa0, 0xa0, 0x9a, -0x7d, 0x76, 0x84, 0x7b, 0x6b, 0x56, 0x46, 0x4d, 0x64, 0x63, 0x70, 0x88, 0x86, 0x82, 0x83, 0x84, -0x87, 0x76, 0x61, 0x6c, 0x72, 0x62, 0x52, 0x5c, 0x5c, 0x5d, 0x74, 0x6e, 0x50, 0x55, 0x71, 0x83, -0x86, 0x88, 0x83, 0x70, 0x71, 0x84, 0x86, 0x71, 0x77, 0x8a, 0x9a, 0xb0, 0xaf, 0xa2, 0x8e, 0x98, -0x96, 0x8c, 0x7e, 0x67, 0x70, 0x8b, 0x9f, 0xb9, 0xaa, 0x98, 0xa1, 0x80, 0x81, 0x93, 0x7e, 0x6d, -0x76, 0x97, 0xab, 0xa9, 0xa8, 0xad, 0x99, 0x92, 0x9d, 0x9e, 0x75, 0x64, 0x8d, 0xa2, 0x9a, 0xa0, -0xab, 0x9e, 0x8a, 0x96, 0x9f, 0x96, 0x88, 0x8b, 0xb7, 0xd4, 0xc2, 0xc1, 0xb5, 0xa9, 0xae, 0x9e, -0x84, 0x7c, 0x74, 0x87, 0xa2, 0x9f, 0x9c, 0x94, 0x95, 0x99, 0xab, 0xb0, 0xac, 0x93, 0x88, 0xa0, -0x87, 0x85, 0x75, 0x67, 0x62, 0x6a, 0x7c, 0x92, 0x7d, 0x60, 0x6a, 0x76, 0x7b, 0x7a, 0x6c, 0x6a, -0x6b, 0x6d, 0x5e, 0x4b, 0x57, 0x65, 0x76, 0x90, 0x9e, 0x8d, 0x88, 0x75, 0x84, 0x85, 0x4d, 0x34, -0x46, 0x7a, 0x8b, 0x85, 0x79, 0x89, 0x8b, 0x77, 0xa7, 0x9a, 0x90, 0x84, 0x81, 0x93, 0x90, 0x8b, -0x6f, 0x74, 0x72, 0x65, 0x6f, 0x5d, 0x3b, 0x32, 0x2c, 0x44, 0x68, 0x44, 0x29, 0x2f, 0x21, 0x39, -0x51, 0x3d, 0x41, 0x64, 0x8b, 0xa2, 0x9c, 0x8a, 0x84, 0x7a, 0x8e, 0x94, 0x77, 0x53, 0x6c, 0x97, -0xa3, 0xa4, 0xae, 0x97, 0x87, 0x90, 0x94, 0x82, 0x61, 0x5e, 0x6c, 0x6e, 0x4c, 0x49, 0x55, 0x4e, -0x52, 0x6e, 0x81, 0x6e, 0x69, 0x6b, 0x76, 0x8b, 0x8e, 0x7a, 0x76, 0x6b, 0x67, 0x6e, 0x71, 0x6e, -0x5d, 0x7b, 0xa3, 0xa2, 0x9a, 0x98, 0x9a, 0x86, 0x7a, 0x7a, 0x5a, 0x58, 0x70, 0x7b, 0x94, 0x90, -0x8d, 0x89, 0x8f, 0x8c, 0x75, 0x57, 0x4a, 0x5e, 0x71, 0x8a, 0x8f, 0x91, 0x96, 0x90, 0x90, 0x8c, -0x94, 0x72, 0x55, 0x62, 0x68, 0x70, 0x6f, 0x73, 0x86, 0x8e, 0x99, 0xa4, 0xa4, 0xa2, 0xb1, 0xcd, -0xdf, 0xe2, 0xd6, 0xc4, 0xab, 0xa5, 0xa3, 0x95, 0x77, 0x8c, 0x87, 0x9b, 0xc4, 0xb0, 0xb1, 0xcb, -0xcd, 0xb5, 0x8e, 0x87, 0x82, 0x7a, 0x7e, 0x81, 0x8c, 0x93, 0x8d, 0x81, 0xac, 0xd6, 0xb7, 0x93, -0x82, 0x81, 0x87, 0x6c, 0x58, 0x6c, 0x7a, 0x7e, 0x8b, 0x90, 0x7d, 0x71, 0x74, 0x81, 0x8d, 0x8e, -0x73, 0x74, 0x87, 0x84, 0x82, 0x7e, 0x68, 0x63, 0x78, 0x97, 0x98, 0x6e, 0x5a, 0x81, 0x91, 0x75, -0x74, 0x7a, 0x65, 0x48, 0x4d, 0x69, 0x7d, 0x7b, 0x6e, 0x5f, 0x6e, 0x75, 0x57, 0x3e, 0x3a, 0x3c, -0x3b, 0x46, 0x4d, 0x55, 0x58, 0x55, 0x5c, 0x53, 0x4b, 0x55, 0x71, 0x86, 0x8e, 0x98, 0x80, 0x73, -0x6c, 0x66, 0x55, 0x60, 0x6f, 0x77, 0xa1, 0xc9, 0xbb, 0xb1, 0xad, 0xb2, 0x8f, 0x6c, 0x58, 0x54, -0x52, 0x54, 0x46, 0x3e, 0x4c, 0x49, 0x5e, 0x74, 0x8f, 0x9e, 0x91, 0x8b, 0x8e, 0x92, 0x9f, 0x9a, -0x71, 0x5f, 0x68, 0x6c, 0x7b, 0x6a, 0x5f, 0x7d, 0x9f, 0xb2, 0xb6, 0x9e, 0x83, 0x98, 0x9d, 0x97, -0x8a, 0x7a, 0x6f, 0x6f, 0x8c, 0xb2, 0xa3, 0x8b, 0x8b, 0x8e, 0x91, 0x91, 0x7a, 0x62, 0x56, 0x61, -0x72, 0x88, 0x82, 0x7a, 0x86, 0x9c, 0xa6, 0x97, 0x74, 0x60, 0x5d, 0x60, 0x6a, 0x79, 0x64, 0x4c, -0x70, 0xa8, 0xbf, 0xac, 0xaa, 0xba, 0xd1, 0xf2, 0xd3, 0xa7, 0xa3, 0x86, 0x66, 0x6f, 0x79, 0x70, -0x61, 0x6b, 0x88, 0x9c, 0x88, 0x8a, 0xa2, 0x97, 0x9d, 0x82, 0x60, 0x5f, 0x5c, 0x68, 0x7d, 0x9b, -0x9e, 0x8d, 0xaf, 0xc8, 0xc1, 0xb8, 0x81, 0x78, 0x81, 0x75, 0x74, 0x6d, 0x66, 0x75, 0x7b, 0x81, -0x7d, 0x75, 0x5d, 0x7d, 0xaf, 0xb6, 0xa6, 0x95, 0x8c, 0x71, 0x6f, 0x5a, 0x43, 0x41, 0x39, 0x58, -0x7b, 0x8b, 0xae, 0xb9, 0xba, 0xc6, 0xbc, 0x84, 0x6c, 0x78, 0x87, 0x91, 0x88, 0x8e, 0x7b, 0x61, -0x69, 0x79, 0x69, 0x3a, 0x1e, 0x2d, 0x31, 0x3d, 0x4d, 0x37, 0x40, 0x49, 0x3a, 0x4d, 0x5f, 0x57, -0x69, 0x90, 0x8b, 0x83, 0x7c, 0x73, 0x6e, 0x4e, 0x5c, 0x6c, 0x55, 0x6a, 0x92, 0x9a, 0x9e, 0xae, -0xb9, 0xb2, 0xb2, 0xa0, 0x81, 0x65, 0x5a, 0x59, 0x3e, 0x26, 0x46, 0x5c, 0x52, 0x7b, 0xa4, 0xb4, -0xba, 0xa7, 0x9e, 0x9b, 0x79, 0x83, 0x8e, 0x7c, 0x76, 0x59, 0x69, 0x73, 0x6e, 0x8f, 0x98, 0x8e, -0x88, 0x8b, 0x9c, 0x8e, 0x9c, 0xa4, 0x84, 0x7c, 0x66, 0x6d, 0x67, 0x5c, 0x74, 0x7d, 0x9c, 0xbc, -0xc5, 0xb2, 0x8c, 0x78, 0x77, 0x7a, 0x82, 0x84, 0x84, 0x93, 0x96, 0x99, 0x9d, 0x94, 0x85, 0x71, -0x59, 0x69, 0x72, 0x5f, 0x73, 0x74, 0x70, 0x6b, 0x78, 0x7a, 0x7c, 0xaf, 0xdc, 0xe4, 0xea, 0xf4, -0xfe, 0xc0, 0xa9, 0xa7, 0x83, 0x6d, 0x6c, 0x86, 0x96, 0x96, 0xa3, 0xa4, 0xb0, 0xb2, 0xa1, 0x86, -0x6a, 0x4a, 0x3d, 0x3c, 0x45, 0x4e, 0x5c, 0x74, 0x93, 0x98, 0x99, 0xa9, 0x96, 0x7a, 0x90, 0x9c, -0x80, 0x6f, 0x67, 0x64, 0x75, 0x77, 0x78, 0x74, 0x70, 0x92, 0xac, 0x97, 0x7e, 0x6f, 0x88, 0x86, -0x85, 0x78, 0x6e, 0x5a, 0x4d, 0x48, 0x53, 0x6f, 0x7e, 0x95, 0xbe, 0xd1, 0xdb, 0xdb, 0xa4, 0x81, -0x6f, 0x5e, 0x6a, 0x71, 0x57, 0x60, 0x7b, 0x78, 0x79, 0x7c, 0x48, 0x33, 0x27, 0x25, 0x28, 0x2e, -0x3b, 0x43, 0x47, 0x3f, 0x48, 0x51, 0x48, 0x49, 0x50, 0x4a, 0x3b, 0x5a, 0x65, 0x60, 0x5f, 0x59, -0x64, 0x76, 0x7a, 0x77, 0x93, 0x98, 0x9f, 0xb0, 0xd6, 0xdb, 0xb4, 0x8e, 0x66, 0x58, 0x5a, 0x5c, -0x55, 0x54, 0x52, 0x56, 0x6a, 0x82, 0x8e, 0x87, 0x7a, 0x8f, 0x91, 0x7d, 0x89, 0x9a, 0x9c, 0x8a, -0x94, 0x91, 0x9a, 0xa2, 0x9e, 0xb3, 0xc8, 0xce, 0x98, 0x72, 0x9a, 0x9f, 0x84, 0x78, 0x72, 0x69, -0x5c, 0x63, 0x87, 0x96, 0x99, 0xa9, 0xbb, 0xaf, 0xb9, 0xaf, 0x7e, 0x84, 0x7a, 0x6e, 0x87, 0x80, -0x7d, 0x74, 0x80, 0x76, 0x66, 0x69, 0x4d, 0x49, 0x42, 0x51, 0x7a, 0x92, 0x9c, 0x91, 0x8e, 0x8d, -0x71, 0x71, 0xaa, 0xbc, 0xb3, 0xbb, 0xbd, 0xd2, 0xdc, 0xbe, 0x9c, 0x9b, 0x93, 0x8c, 0x84, 0x76, -0x90, 0xa6, 0xaa, 0xc1, 0xc6, 0x9d, 0xa2, 0x8c, 0x64, 0x6c, 0x55, 0x57, 0x6a, 0x67, 0x7a, 0x92, -0x9c, 0x84, 0x67, 0x66, 0x68, 0x5c, 0x6e, 0x5d, 0x6d, 0x89, 0x76, 0x82, 0x8a, 0x7b, 0x79, 0x8a, -0x90, 0x95, 0x87, 0x7a, 0x79, 0x7c, 0x81, 0x6b, 0x66, 0x68, 0x63, 0x57, 0x45, 0x48, 0x52, 0x63, -0x87, 0x9f, 0xc2, 0xd1, 0xc7, 0xc8, 0xb2, 0x9d, 0x8e, 0x80, 0x80, 0x95, 0xa2, 0x91, 0x7c, 0x80, -0x83, 0x75, 0x47, 0x28, 0x31, 0x3b, 0x4f, 0x4d, 0x45, 0x46, 0x41, 0x3d, 0x42, 0x6c, 0x73, 0x5b, -0x4f, 0x3b, 0x42, 0x4f, 0x65, 0x76, 0x7b, 0x75, 0x84, 0x78, 0x83, 0x7e, 0x79, 0x9b, 0xbc, 0xcf, -0xcc, 0xa6, 0x89, 0x7b, 0x5c, 0x5c, 0x4d, 0x3b, 0x3f, 0x3e, 0x3e, 0x3d, 0x4a, 0x6d, 0x67, 0x5c, -0x58, 0x52, 0x76, 0x7b, 0x70, 0x6e, 0x6d, 0x74, 0x79, 0x79, 0x91, 0xae, 0xb7, 0xa0, 0x8e, 0x81, -0x71, 0x63, 0x6d, 0x85, 0x94, 0xa2, 0x95, 0x72, 0x85, 0x9a, 0xa6, 0x9f, 0xa2, 0xaf, 0xb6, 0xa0, -0x6c, 0x8b, 0x89, 0x75, 0x6d, 0x6b, 0x91, 0x96, 0x7d, 0x7c, 0x8f, 0xac, 0xa8, 0x85, 0x81, 0x7e, -0x8a, 0xa5, 0x9b, 0x9c, 0x8c, 0x51, 0x60, 0x94, 0x8b, 0x99, 0x8f, 0x82, 0x97, 0x9d, 0xcb, 0xd7, -0xd2, 0xc8, 0xae, 0xb1, 0xb2, 0xba, 0xc6, 0xb3, 0xaa, 0xab, 0xc2, 0xd5, 0xbf, 0x9b, 0x7a, 0x75, -0x73, 0x61, 0x63, 0x6f, 0x73, 0x82, 0x90, 0x95, 0x8a, 0x82, 0x77, 0x6d, 0x60, 0x61, 0x69, 0x6b, -0x69, 0x7e, 0x8c, 0x89, 0x86, 0x77, 0x7a, 0x7b, 0x88, 0x7c, 0x78, 0x6b, 0x4c, 0x55, 0x5b, 0x6b, -0x7d, 0x68, 0x56, 0x51, 0x51, 0x5c, 0x6b, 0x83, 0x98, 0xaf, 0xc0, 0xa7, 0x93, 0x88, 0x7d, 0x8d, -0x87, 0x79, 0x7d, 0x70, 0x5d, 0x74, 0x85, 0x72, 0x82, 0x65, 0x41, 0x36, 0x44, 0x67, 0x66, 0x62, -0x59, 0x52, 0x45, 0x4b, 0x5d, 0x52, 0x48, 0x38, 0x32, 0x2a, 0x2a, 0x3c, 0x52, 0x5d, 0x64, 0x7e, -0x89, 0x7e, 0x83, 0x92, 0xac, 0xbc, 0xda, 0xe1, 0xc4, 0xa0, 0x98, 0x95, 0x91, 0x6e, 0x4c, 0x4b, -0x40, 0x4c, 0x62, 0x5e, 0x68, 0x56, 0x51, 0x5a, 0x63, 0x77, 0x80, 0x83, 0x8f, 0x93, 0x9f, 0xa2, -0xa2, 0xb7, 0xbf, 0xc7, 0xc3, 0x9c, 0x97, 0x81, 0x6c, 0x85, 0x8e, 0x94, 0x8e, 0x82, 0x73, 0x56, -0x68, 0x7a, 0x72, 0x8f, 0x99, 0x96, 0xa8, 0x93, 0x8b, 0x8c, 0x7d, 0x71, 0x7a, 0x7a, 0x78, 0x76, -0x8c, 0x8b, 0x78, 0x7e, 0x85, 0x9d, 0x94, 0x7b, 0x84, 0x7b, 0x60, 0x6a, 0x75, 0x6f, 0x78, 0x85, -0x7c, 0x87, 0x8f, 0x90, 0x9b, 0x99, 0x87, 0x8b, 0xa4, 0xa5, 0xa8, 0xc3, 0xc1, 0x98, 0x8c, 0x87, -0x97, 0xb0, 0xaf, 0xba, 0xae, 0x95, 0x93, 0xb0, 0xb0, 0x9d, 0x92, 0x80, 0x86, 0x8b, 0x76, 0x61, -0x63, 0x5d, 0x61, 0x75, 0x79, 0x76, 0x6f, 0x76, 0x78, 0x6c, 0x79, 0x82, 0x8b, 0x88, 0x8a, 0x93, -0xaa, 0xa3, 0x89, 0x78, 0x5a, 0x59, 0x79, 0x75, 0x63, 0x5c, 0x5b, 0x48, 0x4e, 0x7c, 0x9f, 0x95, -0x8c, 0x8f, 0x7b, 0x69, 0x81, 0x8b, 0x8c, 0x80, 0x86, 0x91, 0x91, 0x99, 0x91, 0x81, 0x6d, 0x5f, -0x5e, 0x58, 0x5b, 0x4b, 0x50, 0x65, 0x5f, 0x49, 0x31, 0x40, 0x50, 0x5f, 0x58, 0x4f, 0x5e, 0x66, -0x71, 0x81, 0x6d, 0x6f, 0x90, 0x96, 0x7a, 0x74, 0x79, 0x7d, 0x77, 0x85, 0x9b, 0x98, 0xb0, 0xb4, -0x97, 0xa1, 0x9e, 0x76, 0x5f, 0x51, 0x53, 0x45, 0x52, 0x68, 0x57, 0x3f, 0x4c, 0x55, 0x65, 0x6e, -0x6e, 0x5f, 0x68, 0x83, 0x89, 0x9f, 0xa5, 0x9a, 0xa1, 0x94, 0x88, 0x84, 0x85, 0x94, 0x97, 0x71, -0x66, 0x78, 0x8e, 0x91, 0x88, 0x7b, 0x76, 0x6f, 0x79, 0x8e, 0x91, 0xa0, 0xa9, 0xa4, 0xa7, 0x8d, -0x76, 0x6c, 0x77, 0x68, 0x56, 0x68, 0x7e, 0x8a, 0x88, 0x8d, 0xa9, 0xa7, 0xa5, 0xb0, 0xb8, 0xa7, -0x9e, 0x99, 0x93, 0x93, 0x77, 0x70, 0x85, 0x9f, 0xa3, 0x97, 0x99, 0xab, 0x97, 0x80, 0x7b, 0x8d, -0xa6, 0xb3, 0x9b, 0x8f, 0x9c, 0xa6, 0x9a, 0x98, 0xa4, 0xa9, 0xac, 0xaa, 0xb3, 0xac, 0xa8, 0xa1, -0x94, 0x79, 0x61, 0x59, 0x5c, 0x4f, 0x52, 0x5f, 0x5a, 0x66, 0x72, 0x6f, 0x7c, 0x86, 0x97, 0xa3, -0x94, 0x80, 0x8d, 0x93, 0xa6, 0xa2, 0x83, 0x75, 0x76, 0x6b, 0x68, 0x63, 0x55, 0x44, 0x50, 0x65, -0x6c, 0x6c, 0x6d, 0x71, 0x62, 0x59, 0x71, 0x86, 0x77, 0x72, 0x69, 0x56, 0x5e, 0x52, 0x5a, 0x5f, -0x56, 0x71, 0x78, 0x6d, 0x6d, 0x44, 0x50, 0x63, 0x68, 0x65, 0x5c, 0x71, 0x6a, 0x57, 0x4f, 0x51, -0x55, 0x42, 0x48, 0x4f, 0x63, 0x75, 0x89, 0x95, 0x81, 0x72, 0x6c, 0x52, 0x5f, 0x7b, 0x70, 0x73, -0x88, 0x93, 0xab, 0xc0, 0xc3, 0xcf, 0xdc, 0xdf, 0xc8, 0x88, 0x81, 0x9b, 0x90, 0x8b, 0x84, 0x74, -0x5b, 0x46, 0x36, 0x34, 0x54, 0x57, 0x42, 0x50, 0x6c, 0x87, 0x9e, 0xa3, 0xa6, 0x97, 0x9f, 0xc1, -0xce, 0xbb, 0xb5, 0xa8, 0x8f, 0xa1, 0xb1, 0x99, 0x8c, 0x81, 0x90, 0x93, 0x87, 0x91, 0x86, 0x81, -0x7e, 0x72, 0x78, 0x96, 0x94, 0x8e, 0x93, 0x7a, 0x74, 0x83, 0x87, 0x8b, 0x80, 0x77, 0x92, 0xa1, -0x91, 0x78, 0x62, 0x77, 0x82, 0x7d, 0x7e, 0x7c, 0x7c, 0x7e, 0x77, 0x5e, 0x79, 0x88, 0x83, 0x85, -0x8b, 0x8b, 0x81, 0x76, 0x79, 0x90, 0x94, 0x90, 0x95, 0x88, 0x86, 0x78, 0x69, 0x7e, 0x8a, 0x90, -0x94, 0xa3, 0xb7, 0xb5, 0xac, 0xb3, 0xa8, 0x9a, 0x9d, 0x9c, 0x86, 0x78, 0x65, 0x61, 0x68, 0x5c, -0x4f, 0x60, 0x76, 0x72, 0x60, 0x54, 0x6e, 0x6e, 0x6b, 0x7d, 0x89, 0x84, 0x83, 0x9c, 0xa3, 0x91, -0xa2, 0xa3, 0x97, 0x93, 0x95, 0x74, 0x80, 0x97, 0x95, 0x78, 0x66, 0x65, 0x5a, 0x54, 0x6a, 0x73, -0x72, 0x67, 0x66, 0x76, 0x78, 0x7e, 0x96, 0x7c, 0x6c, 0x75, 0x6f, 0x75, 0x76, 0x6f, 0x6c, 0x6d, -0x7c, 0x78, 0x67, 0x5c, 0x5a, 0x3d, 0x41, 0x5b, 0x54, 0x54, 0x62, 0x71, 0x6e, 0x6d, 0x65, 0x72, -0x6d, 0x5b, 0x67, 0x55, 0x63, 0x74, 0x67, 0x70, 0x6c, 0x6e, 0x7b, 0x9c, 0x99, 0x96, 0x82, 0x86, -0x9b, 0x81, 0x73, 0x7a, 0x7b, 0x65, 0x59, 0x49, 0x4f, 0x5e, 0x57, 0x59, 0x56, 0x6c, 0x75, 0x6c, -0x7c, 0x89, 0x7b, 0x60, 0x6d, 0x82, 0x86, 0x94, 0x98, 0x93, 0x9f, 0x9d, 0x99, 0xa4, 0xaf, 0xae, -0xa0, 0x99, 0xa3, 0xa5, 0x9c, 0x9c, 0x9c, 0x8a, 0x79, 0x9b, 0x9c, 0x89, 0x93, 0xa1, 0x7b, 0x76, -0x8f, 0x9f, 0x9e, 0x9e, 0x94, 0x78, 0x8f, 0xa4, 0xa5, 0x96, 0x9d, 0xb0, 0xae, 0xad, 0xac, 0x8e, -0x78, 0x8d, 0x8f, 0x94, 0x92, 0x8f, 0x94, 0x8e, 0x8e, 0xa4, 0xa6, 0x86, 0x8d, 0x9d, 0x92, 0x87, -0x73, 0x70, 0x82, 0x85, 0x89, 0x99, 0x9b, 0xa1, 0x9d, 0x97, 0xaa, 0x9f, 0x84, 0x88, 0x84, 0x84, -0x8a, 0x7e, 0x6b, 0x69, 0x5c, 0x5f, 0x74, 0x65, 0x5c, 0x5f, 0x66, 0x91, 0x7e, 0x66, 0x6b, 0x73, -0x74, 0x5c, 0x5c, 0x82, 0x7a, 0x63, 0x6a, 0x65, 0x6b, 0x72, 0x63, 0x6e, 0x7c, 0x70, 0x5e, 0x6a, -0x76, 0x70, 0x67, 0x76, 0x7a, 0x72, 0x71, 0x6a, 0x5e, 0x5a, 0x69, 0x81, 0x6c, 0x57, 0x67, 0x62, -0x62, 0x52, 0x64, 0x7a, 0x71, 0x75, 0x71, 0x68, 0x6c, 0x72, 0x56, 0x55, 0x74, 0x7d, 0x72, 0x78, -0x76, 0x80, 0x72, 0x62, 0x67, 0x5a, 0x56, 0x6a, 0x6b, 0x76, 0x7b, 0x65, 0x6e, 0x84, 0x8d, 0x8c, -0x8d, 0x9d, 0x9b, 0x8e, 0xbc, 0xce, 0xbc, 0xb1, 0xac, 0x9c, 0x8a, 0x7d, 0x79, 0x7e, 0x75, 0x76, -0x78, 0x6f, 0x6c, 0x72, 0x77, 0x81, 0x88, 0x80, 0x76, 0x72, 0x68, 0x62, 0x8a, 0x96, 0x98, 0xb1, -0x9a, 0x8a, 0x8d, 0x95, 0xa2, 0x8e, 0x8d, 0x8e, 0x7d, 0x79, 0x76, 0x91, 0x91, 0x77, 0x8f, 0x98, -0x7b, 0x64, 0x66, 0x74, 0x79, 0x8b, 0x8b, 0x9d, 0xa2, 0x97, 0x8a, 0x83, 0x7b, 0x6c, 0x70, 0x7a, -0x7b, 0x85, 0x81, 0x8c, 0x93, 0x88, 0x85, 0x80, 0x83, 0x8a, 0x86, 0x8e, 0x8e, 0xa7, 0xae, 0x7e, -0x86, 0x88, 0x78, 0x72, 0x6a, 0x6f, 0x72, 0x6d, 0x6e, 0x7c, 0x8f, 0x7b, 0x85, 0x8c, 0x81, 0x8e, -0x93, 0xa0, 0xb3, 0xa7, 0x98, 0xb6, 0xa6, 0x9a, 0x96, 0x78, 0x6e, 0x6d, 0x70, 0x78, 0x6c, 0x67, -0x79, 0x89, 0x8a, 0x81, 0x6e, 0x65, 0x75, 0x86, 0x75, 0x73, 0x87, 0x8b, 0x78, 0x6b, 0x7c, 0x8a, -0x8f, 0x97, 0x7d, 0x83, 0x6b, 0x55, 0x5b, 0x67, 0x74, 0x73, 0x81, 0x77, 0x87, 0x79, 0x7a, 0x8b, -0x70, 0x75, 0x7c, 0x74, 0x72, 0x78, 0x80, 0x88, 0x69, 0x6f, 0x83, 0x6d, 0x61, 0x60, 0x4b, 0x4f, -0x6d, 0x6a, 0x73, 0x6a, 0x5f, 0x73, 0x70, 0x72, 0x6a, 0x67, 0x57, 0x59, 0x5a, 0x5f, 0x7c, 0x8d, -0x71, 0x6e, 0x6b, 0x66, 0x74, 0x76, 0x87, 0x7e, 0x77, 0xa0, 0x96, 0x79, 0x85, 0xa4, 0xa4, 0x92, -0x9d, 0xa1, 0x84, 0x7e, 0x77, 0x78, 0x64, 0x64, 0x77, 0x7e, 0x80, 0x75, 0x5c, 0x62, 0x7a, 0x6c, -0x55, 0x62, 0x67, 0x69, 0x6d, 0x84, 0x95, 0x8e, 0x80, 0x70, 0x5d, 0x7d, 0x9a, 0x9d, 0x91, 0x94, -0xae, 0x8d, 0x80, 0xa0, 0xa4, 0x92, 0x90, 0x8c, 0x81, 0x8e, 0xa1, 0xa5, 0xa5, 0xa6, 0x9f, 0x9b, -0x95, 0x9a, 0xa1, 0x82, 0x7d, 0x95, 0x95, 0xaf, 0xa6, 0x93, 0x89, 0x9e, 0xaa, 0xa1, 0x99, 0x97, -0x8b, 0x96, 0xa9, 0xb0, 0xa2, 0x8c, 0x92, 0x87, 0x87, 0x8e, 0x95, 0x7e, 0x6a, 0x5f, 0x62, 0x6c, -0x7d, 0x90, 0x90, 0x8c, 0x83, 0x75, 0x70, 0x87, 0x8f, 0x97, 0x91, 0x9a, 0xa7, 0x93, 0x8e, 0x9c, -0x89, 0x7d, 0x6e, 0x63, 0x75, 0x7b, 0x89, 0x71, 0x66, 0x80, 0x62, 0x4e, 0x5f, 0x5b, 0x49, 0x4e, -0x5c, 0x62, 0x5d, 0x62, 0x6f, 0x73, 0x5e, 0x5c, 0x69, 0x73, 0x6b, 0x51, 0x42, 0x43, 0x4d, 0x66, -0x7b, 0x71, 0x5b, 0x5b, 0x6b, 0x78, 0x7d, 0x74, 0x64, 0x70, 0x7d, 0x88, 0x85, 0x82, 0x71, 0x68, -0x6d, 0x5e, 0x6f, 0x77, 0x59, 0x4f, 0x64, 0x73, 0x73, 0x6a, 0x76, 0x88, 0x80, 0x78, 0x7a, 0x90, -0xa8, 0x9c, 0x8c, 0x7c, 0x85, 0x97, 0xa3, 0x97, 0x92, 0x8d, 0x6c, 0x63, 0x75, 0x8e, 0x96, 0x8c, -0x81, 0x8e, 0x9d, 0x9c, 0x7a, 0x8b, 0xa9, 0x97, 0x81, 0x8b, 0x83, 0x74, 0x68, 0x7c, 0x86, 0x8a, -0x8c, 0x88, 0x9c, 0x94, 0x8d, 0x8f, 0x7d, 0x7e, 0x84, 0x89, 0x84, 0x8b, 0x89, 0x8e, 0xa3, 0xa2, -0x92, 0x85, 0x7b, 0x87, 0x9b, 0x97, 0x7d, 0x6e, 0x72, 0x73, 0x6d, 0x87, 0x87, 0x79, 0x62, 0x67, -0x6d, 0x74, 0x84, 0x74, 0x72, 0x6a, 0x6f, 0x80, 0x79, 0x88, 0x8c, 0x8b, 0x83, 0x86, 0x84, 0x9f, -0xaa, 0x95, 0x8e, 0x8c, 0x91, 0x98, 0x94, 0x93, 0x9a, 0x8a, 0x99, 0x9c, 0x8f, 0x95, 0x7a, 0x6a, -0x7a, 0x7b, 0x73, 0x6d, 0x65, 0x71, 0x7b, 0x76, 0x8a, 0x97, 0x87, 0x9a, 0xa0, 0x90, 0x96, 0x95, -0x96, 0x92, 0x9a, 0x91, 0x94, 0x87, 0x7b, 0x8a, 0x89, 0x82, 0x6c, 0x6a, 0x7c, 0x7b, 0x77, 0x63, -0x51, 0x7b, 0x85, 0x77, 0x80, 0x87, 0x87, 0x62, 0x66, 0x76, 0x7a, 0x84, 0x71, 0x68, 0x6f, 0x79, -0x6c, 0x65, 0x72, 0x7e, 0x6e, 0x5f, 0x75, 0x8e, 0x94, 0x93, 0x91, 0x7d, 0x6e, 0x6b, 0x7d, 0x6e, -0x6f, 0x69, 0x5f, 0x74, 0x7a, 0x70, 0x68, 0x70, 0x6c, 0x5d, 0x64, 0x68, 0x58, 0x53, 0x58, 0x69, -0x76, 0x7d, 0x84, 0x86, 0x8b, 0x89, 0x8d, 0x8f, 0x7e, 0x74, 0x72, 0x74, 0x70, 0x6c, 0x5f, 0x65, -0x71, 0x6e, 0x73, 0x6f, 0x6b, 0x7a, 0x89, 0x8f, 0x86, 0x74, 0x80, 0x85, 0x83, 0x91, 0x87, 0x6e, -0x6c, 0x6f, 0x67, 0x65, 0x71, 0x66, 0x6c, 0x7c, 0x78, 0x7c, 0x69, 0x6c, 0x76, 0x6d, 0x7b, 0x86, -0x95, 0xa4, 0xa3, 0x9d, 0x9e, 0x87, 0x93, 0xa0, 0x83, 0x7b, 0x80, 0x7b, 0x83, 0x8b, 0x8d, 0x8a, -0x88, 0x8e, 0x8a, 0x88, 0x9c, 0x9b, 0x89, 0x8a, 0x92, 0xaa, 0xad, 0xa9, 0xa0, 0xa2, 0xa5, 0xaf, -0xaa, 0x9a, 0xaa, 0xae, 0x90, 0x8b, 0x90, 0x99, 0x7e, 0x84, 0x95, 0x8f, 0x8d, 0x83, 0x9b, 0x97, -0x94, 0x8c, 0x82, 0x93, 0x94, 0x8e, 0x84, 0x88, 0x71, 0x6b, 0x6b, 0x61, 0x5d, 0x67, 0x7b, 0x73, -0x79, 0x82, 0x84, 0x8a, 0x8b, 0x8b, 0x91, 0x91, 0x92, 0xa2, 0x8f, 0x8e, 0x93, 0x86, 0x83, 0x6d, -0x6f, 0x7c, 0x65, 0x56, 0x58, 0x69, 0x63, 0x4d, 0x5d, 0x68, 0x71, 0x6a, 0x65, 0x6e, 0x71, 0x6b, -0x67, 0x70, 0x7b, 0x87, 0x76, 0x66, 0x67, 0x67, 0x6e, 0x6a, 0x67, 0x71, 0x87, 0x6f, 0x6c, 0x78, -0x77, 0x7e, 0x75, 0x71, 0x6b, 0x68, 0x6e, 0x67, 0x61, 0x5f, 0x68, 0x5e, 0x66, 0x69, 0x6f, 0x78, -0x70, 0x6b, 0x61, 0x5a, 0x60, 0x5b, 0x48, 0x6c, 0x85, 0x81, 0x8a, 0x8b, 0x90, 0x92, 0x8c, 0x8e, -0x94, 0x8a, 0x95, 0x90, 0x8d, 0x9f, 0x8c, 0x90, 0xa0, 0x97, 0x91, 0x8c, 0x89, 0x88, 0x8b, 0x92, -0x9d, 0xa4, 0xa4, 0x8c, 0x8a, 0x8f, 0x8e, 0x80, 0x75, 0x82, 0x84, 0x7b, 0x7b, 0x7e, 0x82, 0x7e, -0x83, 0x78, 0x6e, 0x76, 0x6b, 0x6e, 0x79, 0x92, 0x9e, 0x9c, 0x96, 0x9f, 0xa6, 0x9e, 0x9f, 0x91, -0x94, 0x92, 0x8d, 0x81, 0x76, 0x82, 0x8d, 0x86, 0x80, 0x83, 0x87, 0x7c, 0x6c, 0x75, 0x84, 0x7a, -0x71, 0x70, 0x7b, 0x77, 0x75, 0x6e, 0x6c, 0x76, 0x70, 0x71, 0x75, 0x85, 0x8a, 0x77, 0x85, 0x83, -0x6f, 0x73, 0x81, 0x87, 0x77, 0x82, 0x8e, 0x87, 0x8c, 0x8b, 0x8b, 0x8e, 0x86, 0x83, 0x7e, 0x7a, -0x76, 0x60, 0x65, 0x80, 0x96, 0x87, 0x7e, 0x84, 0x80, 0x85, 0x8d, 0x8d, 0x95, 0x94, 0x8e, 0x81, -0x89, 0x8d, 0x8b, 0x8b, 0x94, 0x9c, 0x8b, 0x8a, 0x95, 0x8a, 0x85, 0x92, 0x93, 0x83, 0x7d, 0x87, -0x7b, 0x75, 0x7c, 0x86, 0x87, 0x74, 0x7b, 0x6f, 0x77, 0x81, 0x70, 0x76, 0x80, 0x78, 0x69, 0x59, -0x60, 0x67, 0x71, 0x7a, 0x83, 0x86, 0x78, 0x7b, 0x79, 0x70, 0x76, 0x71, 0x6a, 0x5f, 0x5c, 0x58, -0x54, 0x62, 0x5c, 0x5e, 0x7b, 0x79, 0x7d, 0x6c, 0x69, 0x7b, 0x74, 0x6c, 0x70, 0x7b, 0x76, 0x78, -0x86, 0x94, 0x95, 0x7e, 0x78, 0x7e, 0x86, 0x78, 0x73, 0x7b, 0x81, 0x75, 0x6c, 0x61, 0x77, 0x7e, -0x69, 0x7e, 0x86, 0x73, 0x71, 0x72, 0x7e, 0x8f, 0x9c, 0x88, 0x81, 0x84, 0x7b, 0x72, 0x78, 0x83, -0x77, 0x7b, 0x74, 0x72, 0x7e, 0x78, 0x77, 0x79, 0x77, 0x82, 0x8b, 0x7c, 0x83, 0x92, 0x99, 0x93, -0x9a, 0x96, 0x96, 0x91, 0x90, 0x8b, 0x85, 0x92, 0x8f, 0x77, 0x71, 0x74, 0x6c, 0x6e, 0x80, 0x8d, -0x8f, 0x8e, 0x97, 0x91, 0x9a, 0xa1, 0xa4, 0x98, 0x9d, 0x97, 0x88, 0x8d, 0x84, 0x84, 0x8b, 0x8d, -0xa4, 0xa4, 0x96, 0x94, 0x92, 0x89, 0x86, 0x92, 0x95, 0x92, 0x95, 0x97, 0x98, 0x9a, 0x9d, 0x95, -0x91, 0x89, 0x8e, 0x8e, 0x87, 0x80, 0x7d, 0x73, 0x79, 0x79, 0x73, 0x70, 0x7d, 0x77, 0x75, 0x84, -0x84, 0x83, 0x7e, 0x89, 0x9d, 0x94, 0x8b, 0x87, 0x7d, 0x7a, 0x87, 0x83, 0x7e, 0x77, 0x82, 0x70, -0x6b, 0x6b, 0x67, 0x59, 0x60, 0x5b, 0x6a, 0x73, 0x62, 0x55, 0x5e, 0x6c, 0x6a, 0x5b, 0x5c, 0x6a, -0x63, 0x5e, 0x5c, 0x5f, 0x5c, 0x59, 0x5a, 0x4e, 0x58, 0x5e, 0x70, 0x6f, 0x7e, 0x81, 0x6d, 0x77, -0x80, 0x77, 0x77, 0x75, 0x68, 0x6a, 0x6b, 0x6a, 0x73, 0x65, 0x68, 0x70, 0x71, 0x73, 0x77, 0x66, -0x64, 0x68, 0x70, 0x79, 0x80, 0x83, 0x8b, 0x91, 0x95, 0x9d, 0x99, 0x95, 0x97, 0xa4, 0xa9, 0xa4, -0xa2, 0xa6, 0xa1, 0xa1, 0xa4, 0x96, 0x9c, 0x8b, 0x87, 0x9a, 0x95, 0x8d, 0x8a, 0x8b, 0x91, 0x91, -0x94, 0x88, 0x7e, 0x7a, 0x72, 0x78, 0x80, 0x7a, 0x82, 0x8d, 0x88, 0x83, 0x86, 0x77, 0x7d, 0x77, -0x6e, 0x84, 0x82, 0x8e, 0x8c, 0x83, 0x8e, 0x8a, 0x8c, 0x8a, 0x7b, 0x7c, 0x7e, 0x7d, 0x78, 0x71, -0x7b, 0x70, 0x79, 0x71, 0x67, 0x68, 0x79, 0x7b, 0x65, 0x6a, 0x84, 0x7c, 0x75, 0x6a, 0x7b, 0x7a, -0x6e, 0x7d, 0x7d, 0x86, 0x80, 0x8a, 0x8f, 0x96, 0x9d, 0x98, 0x8e, 0x99, 0x9e, 0x82, 0x92, 0x91, -0x95, 0x8e, 0x8b, 0x8b, 0x83, 0x90, 0x8b, 0x87, 0x82, 0x85, 0x85, 0x7d, 0x78, 0x7b, 0x76, 0x68, -0x7a, 0x7d, 0x68, 0x6b, 0x6f, 0x68, 0x68, 0x78, 0x78, 0x79, 0x83, 0x83, 0x86, 0x83, 0x81, 0x7e, -0x83, 0x82, 0x8c, 0x89, 0x8a, 0x88, 0x8f, 0x84, 0x87, 0x89, 0x79, 0x6f, 0x71, 0x88, 0x8a, 0x80, -0x81, 0x7b, 0x7b, 0x7c, 0x92, 0x8f, 0x7a, 0x8f, 0x95, 0x88, 0x8e, 0x82, 0x84, 0x77, 0x6d, 0x7e, -0x72, 0x77, 0x80, 0x74, 0x76, 0x81, 0x83, 0x75, 0x6f, 0x76, 0x6b, 0x66, 0x75, 0x79, 0x7c, 0x78, -0x74, 0x79, 0x79, 0x73, 0x79, 0x7a, 0x77, 0x7b, 0x72, 0x68, 0x73, 0x73, 0x74, 0x74, 0x6e, 0x6e, -0x6b, 0x78, 0x76, 0x7d, 0x85, 0x7d, 0x7c, 0x7b, 0x79, 0x75, 0x6e, 0x72, 0x6b, 0x60, 0x62, 0x68, -0x6a, 0x6a, 0x74, 0x78, 0x83, 0x81, 0x7b, 0x7c, 0x76, 0x77, 0x71, 0x71, 0x80, 0x89, 0x84, 0x7b, -0x83, 0x85, 0x81, 0x89, 0x7a, 0x7c, 0x7d, 0x79, 0x7b, 0x84, 0x8b, 0x8d, 0x8a, 0x87, 0x90, 0x8e, -0x85, 0x90, 0x9b, 0x99, 0x8d, 0x8e, 0x90, 0x8c, 0x89, 0x8e, 0x8f, 0x93, 0x87, 0x84, 0x82, 0x7a, -0x85, 0x8b, 0x8f, 0x9a, 0x8f, 0x78, 0x7a, 0x88, 0x8f, 0x82, 0x9a, 0xa2, 0x92, 0x9d, 0x9b, 0x8d, -0x85, 0x89, 0x90, 0x95, 0x94, 0x8e, 0x84, 0x83, 0x82, 0x80, 0x8e, 0x8b, 0x85, 0x89, 0x7e, 0x93, -0x91, 0x85, 0x92, 0x80, 0x72, 0x81, 0x75, 0x73, 0x6a, 0x6b, 0x76, 0x6c, 0x7c, 0x7a, 0x75, 0x83, -0x7e, 0x7b, 0x77, 0x82, 0x80, 0x6f, 0x6c, 0x7d, 0x87, 0x74, 0x70, 0x6f, 0x6b, 0x66, 0x65, 0x5d, -0x64, 0x67, 0x68, 0x66, 0x73, 0x77, 0x6d, 0x64, 0x6d, 0x78, 0x77, 0x75, 0x71, 0x7e, 0x89, 0x8d, -0x83, 0x89, 0x7a, 0x79, 0x8c, 0x81, 0x87, 0x81, 0x7a, 0x81, 0x7a, 0x7a, 0x80, 0x83, 0x77, 0x6e, -0x6c, 0x6b, 0x66, 0x5f, 0x6d, 0x7b, 0x87, 0x82, 0x7e, 0x85, 0x7b, 0x77, 0x80, 0x89, 0x88, 0x87, -0x7a, 0x77, 0x73, 0x83, 0x75, 0x6f, 0x7e, 0x7d, 0x86, 0x80, 0x8b, 0x90, 0x92, 0x9b, 0x9b, 0xa4, -0x9b, 0x90, 0x8b, 0x81, 0x7b, 0x79, 0x80, 0x87, 0x81, 0x75, 0x7c, 0x89, 0x79, 0x76, 0x84, 0x77, -0x6a, 0x78, 0x7d, 0x7c, 0x85, 0x95, 0x8a, 0x83, 0x92, 0x8b, 0x7d, 0x77, 0x86, 0x97, 0x8b, 0x89, -0x90, 0x89, 0x89, 0x92, 0x86, 0x8b, 0x8f, 0x89, 0x94, 0x94, 0x92, 0x94, 0x93, 0x8b, 0x88, 0x86, -0x8f, 0x7c, 0x68, 0x68, 0x70, 0x71, 0x66, 0x5c, 0x61, 0x68, 0x60, 0x64, 0x7c, 0x77, 0x69, 0x6c, -0x6d, 0x6f, 0x72, 0x73, 0x72, 0x75, 0x7b, 0x73, 0x72, 0x82, 0x82, 0x85, 0x8d, 0x8b, 0x81, 0x82, -0x7e, 0x7d, 0x89, 0x83, 0x94, 0x94, 0x84, 0x84, 0x89, 0x89, 0x83, 0x8a, 0x81, 0x71, 0x82, 0x84, -0x73, 0x79, 0x7a, 0x77, 0x77, 0x81, 0x8f, 0x8b, 0x8e, 0x88, 0x8d, 0x8d, 0x90, 0x8c, 0x84, 0x8b, -0x97, 0x84, 0x7a, 0x8a, 0x7d, 0x75, 0x7e, 0x8b, 0x90, 0x91, 0x91, 0x8c, 0x84, 0x86, 0x8d, 0x79, -0x7a, 0x7a, 0x73, 0x7b, 0x7c, 0x82, 0x80, 0x79, 0x8c, 0x8b, 0x74, 0x76, 0x76, 0x6d, 0x76, 0x74, -0x77, 0x72, 0x71, 0x7c, 0x73, 0x74, 0x7a, 0x6d, 0x6f, 0x78, 0x7d, 0x79, 0x6e, 0x76, 0x87, 0x80, -0x79, 0x75, 0x7b, 0x77, 0x6e, 0x75, 0x80, 0x85, 0x81, 0x78, 0x78, 0x71, 0x72, 0x67, 0x70, 0x72, -0x74, 0x7e, 0x7c, 0x7a, 0x7b, 0x7e, 0x85, 0x7a, 0x7c, 0x80, 0x80, 0x71, 0x6c, 0x6c, 0x66, 0x75, -0x86, 0x87, 0x7b, 0x76, 0x7c, 0x6d, 0x77, 0x87, 0x83, 0x70, 0x6f, 0x7c, 0x6e, 0x73, 0x7e, 0x6d, -0x68, 0x82, 0x84, 0x83, 0x89, 0x90, 0x90, 0x89, 0x93, 0x89, 0x82, 0x82, 0x86, 0x83, 0x81, 0x87, -0x8e, 0x85, 0x8c, 0x9d, 0x93, 0x8b, 0x99, 0x90, 0x8c, 0x8f, 0x80, 0x76, 0x7d, 0x74, 0x7c, 0x7c, -0x82, 0x8a, 0x75, 0x78, 0x96, 0x9b, 0x92, 0x9d, 0x90, 0x96, 0x9d, 0x9b, 0x9a, 0x95, 0x9a, 0x93, -0x8e, 0x9e, 0x9e, 0x93, 0x89, 0x87, 0x8f, 0x89, 0x85, 0x8b, 0x98, 0x88, 0x87, 0x89, 0x84, 0x89, -0x83, 0x7c, 0x7d, 0x7a, 0x79, 0x6c, 0x6d, 0x75, 0x72, 0x77, 0x7d, 0x7d, 0x87, 0x7d, 0x87, 0x8d, -0x84, 0x8b, 0x81, 0x7e, 0x88, 0x87, 0x77, 0x7a, 0x7a, 0x76, 0x73, 0x67, 0x6f, 0x5f, 0x55, 0x7c, -0x84, 0x71, 0x71, 0x7a, 0x70, 0x60, 0x5f, 0x67, 0x62, 0x5c, 0x5e, 0x60, 0x5a, 0x68, 0x69, 0x60, -0x74, 0x76, 0x6a, 0x75, 0x7a, 0x75, 0x71, 0x68, 0x71, 0x77, 0x77, 0x73, 0x6c, 0x63, 0x68, 0x80, -0x7c, 0x7c, 0x83, 0x7b, 0x78, 0x71, 0x74, 0x7c, 0x86, 0x86, 0x7d, 0x82, 0x82, 0x8e, 0x85, 0x80, -0x9a, 0x99, 0x8f, 0x8b, 0x8e, 0x98, 0x9b, 0xa5, 0x9f, 0x9a, 0xa1, 0xa0, 0x97, 0x9c, 0xa3, 0xa3, -0x9a, 0x90, 0x88, 0x8a, 0x80, 0x77, 0x80, 0x7c, 0x84, 0x8e, 0x85, 0x71, 0x7b, 0x80, 0x71, 0x73, -0x76, 0x72, 0x75, 0x65, 0x5f, 0x6c, 0x73, 0x77, 0x6d, 0x6a, 0x77, 0x7d, 0x86, 0x88, 0x86, 0x80, -0x80, 0x86, 0x81, 0x7e, 0x82, 0x84, 0x76, 0x7e, 0x8d, 0x86, 0x7d, 0x7e, 0x8a, 0x7d, 0x76, 0x75, -0x69, 0x67, 0x6b, 0x66, 0x6c, 0x64, 0x69, 0x6e, 0x6a, 0x71, 0x7c, 0x76, 0x79, 0x85, 0x86, 0x8b, -0x8a, 0x87, 0x83, 0x7a, 0x8c, 0x8d, 0x7c, 0x7e, 0x84, 0x7c, 0x93, 0x80, 0x86, 0x8f, 0x88, 0x8e, -0x87, 0x93, 0x99, 0x8b, 0x8c, 0x8c, 0x8a, 0x81, 0x83, 0x7a, 0x81, 0x86, 0x7d, 0x76, 0x76, 0x7e, -0x83, 0x82, 0x84, 0x87, 0x83, 0x8c, 0x87, 0x85, 0x90, 0x8d, 0x95, 0x91, 0x8a, 0x82, 0x84, 0x7b, -0x7e, 0x81, 0x83, 0x7b, 0x82, 0x89, 0x8c, 0x93, 0x95, 0x9a, 0x91, 0x91, 0x94, 0x89, 0x83, 0x7e, -0x78, 0x77, 0x85, 0x85, 0x7d, 0x81, 0x8d, 0x85, 0x83, 0x86, 0x81, 0x7a, 0x6e, 0x78, 0x7b, 0x7a, -0x80, 0x7c, 0x6e, 0x77, 0x76, 0x6e, 0x70, 0x72, 0x77, 0x6c, 0x6d, 0x72, 0x6f, 0x66, 0x6b, 0x6b, -0x68, 0x6e, 0x77, 0x6b, 0x65, 0x6f, 0x76, 0x7a, 0x77, 0x72, 0x6b, 0x77, 0x84, 0x73, 0x69, 0x7b, -0x76, 0x71, 0x72, 0x73, 0x7b, 0x85, 0x7c, 0x80, 0x8b, 0x8a, 0x7c, 0x74, 0x7b, 0x86, 0x82, 0x78, -0x72, 0x7e, 0x78, 0x72, 0x76, 0x6f, 0x73, 0x70, 0x6c, 0x75, 0x76, 0x75, 0x7b, 0x77, 0x78, 0x87, -0x86, 0x8d, 0x8c, 0x91, 0x94, 0x94, 0x9b, 0x8d, 0x84, 0x8a, 0x8b, 0x7d, 0x83, 0x8d, 0x82, 0x82, -0x89, 0x8e, 0x95, 0x8f, 0x8f, 0x92, 0x8a, 0x80, 0x78, 0x7c, 0x81, 0x89, 0x80, 0x83, 0x88, 0x81, -0x75, 0x81, 0x8a, 0x8a, 0x8e, 0x8b, 0x99, 0x8e, 0x89, 0x8e, 0x7d, 0x7e, 0x80, 0x84, 0x83, 0x8a, -0x89, 0x83, 0x84, 0x87, 0x89, 0x7c, 0x85, 0x87, 0x83, 0x77, 0x83, 0x80, 0x78, 0x7c, 0x7d, 0x80, -0x80, 0x79, 0x7a, 0x7e, 0x84, 0x73, 0x6d, 0x88, 0x92, 0x89, 0x83, 0x7c, 0x8c, 0x8b, 0x84, 0x90, -0x90, 0x85, 0x7a, 0x73, 0x73, 0x6b, 0x6d, 0x6b, 0x61, 0x6d, 0x6c, 0x6e, 0x78, 0x78, 0x76, 0x77, -0x84, 0x89, 0x7e, 0x79, 0x84, 0x7c, 0x77, 0x7d, 0x7a, 0x73, 0x79, 0x7d, 0x7d, 0x87, 0x88, 0x85, -0x76, 0x7d, 0x86, 0x70, 0x6f, 0x75, 0x80, 0x87, 0x7d, 0x77, 0x83, 0x74, 0x79, 0x79, 0x66, 0x68, -0x71, 0x6c, 0x5e, 0x64, 0x63, 0x59, 0x56, 0x67, 0x6c, 0x70, 0x79, 0x82, 0x87, 0x90, 0x9a, 0x94, -0x93, 0x9d, 0x9d, 0x93, 0x8d, 0x97, 0x9c, 0x93, 0x9a, 0xa6, 0x98, 0x98, 0x93, 0x8c, 0x8d, 0x94, -0x94, 0x85, 0x88, 0x8e, 0x8a, 0x8e, 0x8e, 0x7d, 0x8d, 0x8e, 0x8c, 0x92, 0x7e, 0x7e, 0x7b, 0x78, -0x7a, 0x7b, 0x72, 0x71, 0x72, 0x70, 0x77, 0x7c, 0x8a, 0x7e, 0x7c, 0x8c, 0x8c, 0x88, 0x89, 0x76, -0x6e, 0x81, 0x7d, 0x83, 0x84, 0x7d, 0x75, 0x7c, 0x7e, 0x7d, 0x7a, 0x72, 0x67, 0x6a, 0x67, 0x5f, -0x68, 0x64, 0x69, 0x70, 0x79, 0x6c, 0x6a, 0x72, 0x67, 0x70, 0x77, 0x81, 0x78, 0x72, 0x7d, 0x7d, -0x69, 0x69, 0x7e, 0x74, 0x73, 0x80, 0x8e, 0x92, 0x8d, 0x8a, 0x8c, 0x91, 0x97, 0x90, 0x7d, 0x8c, -0x83, 0x87, 0x8e, 0x89, 0x8a, 0x83, 0x7b, 0x83, 0x7e, 0x7e, 0x77, 0x6e, 0x75, 0x74, 0x78, 0x83, -0x85, 0x8c, 0x8a, 0x84, 0x97, 0xa0, 0x92, 0x8b, 0x95, 0x8f, 0x8a, 0x96, 0x95, 0x8d, 0x85, 0x83, -0x8c, 0x90, 0x8c, 0x7b, 0x86, 0x8f, 0x88, 0x81, 0x88, 0x90, 0x8a, 0x82, 0x84, 0x86, 0x81, 0x7d, -0x79, 0x79, 0x82, 0x84, 0x86, 0x79, 0x7e, 0x78, 0x6f, 0x6e, 0x6e, 0x6f, 0x6b, 0x6c, 0x6f, 0x6a, -0x6d, 0x6f, 0x6f, 0x71, 0x6f, 0x79, 0x7b, 0x6d, 0x72, 0x7b, 0x73, 0x69, 0x62, 0x68, 0x65, 0x62, -0x6e, 0x74, 0x7b, 0x84, 0x7c, 0x85, 0x86, 0x87, 0x89, 0x83, 0x87, 0x88, 0x77, 0x7d, 0x8f, 0x84, -0x79, 0x84, 0x8d, 0x86, 0x87, 0x82, 0x84, 0x89, 0x8a, 0x8a, 0x90, 0x84, 0x89, 0x88, 0x73, 0x7b, -0x7d, 0x78, 0x78, 0x7b, 0x77, 0x7c, 0x7a, 0x73, 0x6b, 0x76, 0x73, 0x67, 0x73, 0x71, 0x6a, 0x80, -0x89, 0x7e, 0x7e, 0x8c, 0x80, 0x7b, 0x7d, 0x81, 0x7d, 0x79, 0x80, 0x80, 0x8e, 0x8d, 0x88, 0x93, -0x92, 0x90, 0x90, 0x8a, 0x80, 0x87, 0x80, 0x7c, 0x84, 0x87, 0x8d, 0x83, 0x77, 0x82, 0x89, 0x8e, -0x86, 0x7e, 0x8f, 0x98, 0x8d, 0x84, 0x8b, 0x8f, 0x82, 0x75, 0x80, 0x8c, 0x88, 0x91, 0x9a, 0x99, -0x9a, 0x98, 0x8e, 0x94, 0x94, 0x87, 0x86, 0x81, 0x7b, 0x81, 0x85, 0x80, 0x8b, 0x8b, 0x7a, 0x81, -0x82, 0x79, 0x78, 0x77, 0x79, 0x78, 0x7c, 0x82, 0x7e, 0x83, 0x73, 0x7c, 0x7d, 0x79, 0x7b, 0x6d, -0x73, 0x73, 0x6a, 0x73, 0x6a, 0x63, 0x67, 0x62, 0x6c, 0x6f, 0x68, 0x6e, 0x81, 0x79, 0x7b, 0x7b, -0x76, 0x7c, 0x7a, 0x78, 0x77, 0x76, 0x70, 0x75, 0x83, 0x7e, 0x76, 0x87, 0x83, 0x72, 0x77, 0x79, -0x74, 0x73, 0x71, 0x78, 0x79, 0x86, 0x85, 0x82, 0x7e, 0x70, 0x73, 0x7b, 0x76, 0x77, 0x7d, 0x74, -0x78, 0x75, 0x6c, 0x70, 0x71, 0x6b, 0x6d, 0x7a, 0x78, 0x8c, 0x98, 0x92, 0x90, 0x9c, 0x9f, 0xa0, -0x92, 0x9b, 0x98, 0x7b, 0x84, 0x8e, 0x8f, 0x85, 0x86, 0x88, 0x8b, 0x90, 0x82, 0x7a, 0x7d, 0x81, -0x7d, 0x84, 0x81, 0x8b, 0x8e, 0x82, 0x85, 0x89, 0x87, 0x7c, 0x7c, 0x7a, 0x7a, 0x81, 0x83, 0x7d, -0x76, 0x7c, 0x78, 0x6e, 0x75, 0x84, 0x81, 0x81, 0x80, 0x8c, 0x81, 0x78, 0x7e, 0x85, 0x86, 0x8a, -0x7e, 0x6e, 0x7c, 0x7c, 0x71, 0x79, 0x7d, 0x7e, 0x76, 0x68, 0x69, 0x78, 0x6f, 0x67, 0x6e, 0x6c, -0x6c, 0x77, 0x73, 0x6f, 0x78, 0x7a, 0x81, 0x7d, 0x85, 0x88, 0x79, 0x7b, 0x81, 0x79, 0x81, 0x7d, -0x7a, 0x7e, 0x7d, 0x90, 0x91, 0x82, 0x80, 0x85, 0x88, 0x84, 0x87, 0x93, 0x9a, 0x92, 0x8c, 0x85, -0x8f, 0x96, 0x7a, 0x7e, 0x89, 0x81, 0x88, 0x80, 0x7a, 0x84, 0x73, 0x75, 0x88, 0x84, 0x7b, 0x80, -0x87, 0x8d, 0x8d, 0x88, 0x8c, 0x91, 0x89, 0x8b, 0x8f, 0x8f, 0x8c, 0x7a, 0x76, 0x7a, 0x7a, 0x82, -0x79, 0x80, 0x86, 0x81, 0x83, 0x82, 0x88, 0x88, 0x84, 0x81, 0x8b, 0x87, 0x81, 0x85, 0x90, 0x96, -0x8d, 0x99, 0x95, 0x85, 0x86, 0x7e, 0x82, 0x80, 0x73, 0x87, 0x89, 0x80, 0x7d, 0x7d, 0x78, 0x74, -0x6f, 0x70, 0x7e, 0x7a, 0x74, 0x75, 0x77, 0x71, 0x6c, 0x6c, 0x6d, 0x68, 0x62, 0x69, 0x63, 0x67, -0x71, 0x6f, 0x74, 0x68, 0x66, 0x6a, 0x66, 0x65, 0x6d, 0x72, 0x70, 0x7e, 0x81, 0x7c, 0x89, 0x8b, -0x81, 0x84, 0x80, 0x76, 0x7e, 0x75, 0x6a, 0x7d, 0x80, 0x79, 0x78, 0x78, 0x83, 0x86, 0x7e, 0x82, -0x89, 0x83, 0x82, 0x86, 0x8d, 0x8a, 0x90, 0x94, 0x83, 0x7c, 0x7e, 0x80, 0x81, 0x7d, 0x7d, 0x7e, -0x85, 0x80, 0x7e, 0x8c, 0x86, 0x87, 0x89, 0x86, 0x81, 0x7e, 0x83, 0x89, 0x8d, 0x8f, 0x8d, 0x8d, -0x87, 0x7d, 0x83, 0x82, 0x78, 0x78, 0x7c, 0x84, 0x79, 0x79, 0x7e, 0x79, 0x77, 0x76, 0x76, 0x7e, -0x7e, 0x7a, 0x83, 0x88, 0x7a, 0x79, 0x81, 0x7b, 0x88, 0x87, 0x7c, 0x86, 0x8b, 0x8a, 0x8e, 0x8e, -0x8a, 0x8d, 0x8e, 0x88, 0x92, 0x96, 0x89, 0x89, 0x94, 0x91, 0x8e, 0x8b, 0x85, 0x88, 0x8a, 0x80, -0x77, 0x7e, 0x80, 0x75, 0x75, 0x76, 0x7a, 0x75, 0x70, 0x77, 0x85, 0x82, 0x76, 0x81, 0x84, 0x75, -0x72, 0x73, 0x73, 0x6d, 0x6f, 0x67, 0x6f, 0x81, 0x7d, 0x79, 0x7e, 0x7c, 0x7c, 0x77, 0x70, 0x7d, -0x77, 0x76, 0x75, 0x81, 0x81, 0x7a, 0x78, 0x78, 0x82, 0x86, 0x79, 0x74, 0x7b, 0x75, 0x73, 0x6d, -0x7d, 0x77, 0x6b, 0x6a, 0x6f, 0x74, 0x6f, 0x6f, 0x79, 0x6d, 0x6e, 0x85, 0x81, 0x76, 0x7c, 0x7c, -0x7b, 0x77, 0x78, 0x80, 0x82, 0x7a, 0x80, 0x90, 0x91, 0x8e, 0x87, 0x88, 0x91, 0x8f, 0x8b, 0x8d, -0x8e, 0x8e, 0x89, 0x90, 0x94, 0x8a, 0x8b, 0x8d, 0x8e, 0x8c, 0x87, 0x82, 0x7d, 0x80, 0x88, 0x87, -0x88, 0x8c, 0x8b, 0x84, 0x86, 0x92, 0x8f, 0x83, 0x87, 0x8d, 0x8b, 0x88, 0x93, 0x8d, 0x84, 0x7c, -0x7b, 0x86, 0x86, 0x7e, 0x7d, 0x83, 0x8d, 0x79, 0x7a, 0x88, 0x7c, 0x72, 0x6b, 0x7d, 0x85, 0x73, -0x6f, 0x72, 0x7a, 0x75, 0x76, 0x7c, 0x82, 0x77, 0x6c, 0x6c, 0x71, 0x73, 0x6c, 0x65, 0x69, 0x74, -0x75, 0x6b, 0x68, 0x6e, 0x68, 0x6c, 0x6b, 0x75, 0x7a, 0x72, 0x70, 0x72, 0x82, 0x7b, 0x77, 0x7c, -0x78, 0x79, 0x81, 0x80, 0x7a, 0x78, 0x7e, 0x8d, 0x86, 0x83, 0x85, 0x89, 0x85, 0x7d, 0x8e, 0x8d, -0x90, 0x87, 0x82, 0x8f, 0x91, 0x81, 0x7c, 0x82, 0x7d, 0x83, 0x86, 0x82, 0x86, 0x88, 0x85, 0x98, -0x9e, 0x97, 0x99, 0x97, 0x9a, 0x93, 0x96, 0x98, 0x90, 0x8b, 0x88, 0x82, 0x8b, 0x8c, 0x79, 0x7b, -0x7e, 0x83, 0x81, 0x73, 0x7a, 0x80, 0x73, 0x70, 0x79, 0x7e, 0x7b, 0x6a, 0x71, 0x70, 0x76, 0x7b, -0x6c, 0x7a, 0x79, 0x71, 0x70, 0x78, 0x7c, 0x71, 0x76, 0x73, 0x7b, 0x79, 0x74, 0x7b, 0x77, 0x77, -0x77, 0x79, 0x7c, 0x7d, 0x7b, 0x75, 0x86, 0x8c, 0x79, 0x7a, 0x8e, 0x84, 0x76, 0x79, 0x7c, 0x76, -0x77, 0x75, 0x78, 0x80, 0x78, 0x70, 0x6e, 0x79, 0x7a, 0x71, 0x70, 0x76, 0x7c, 0x7a, 0x79, 0x7a, -0x79, 0x75, 0x83, 0x7e, 0x76, 0x7c, 0x77, 0x77, 0x7d, 0x7e, 0x85, 0x86, 0x82, 0x7c, 0x7c, 0x7c, -0x81, 0x81, 0x7d, 0x78, 0x7b, 0x82, 0x7a, 0x7c, 0x85, 0x80, 0x80, 0x7d, 0x80, 0x7e, 0x81, 0x83, -0x76, 0x7e, 0x88, 0x88, 0x8b, 0x87, 0x93, 0x8e, 0x90, 0x8f, 0x8e, 0x8a, 0x8e, 0x90, 0x8c, 0x89, -0x8a, 0x89, 0x85, 0x8e, 0x91, 0x88, 0x81, 0x84, 0x7e, 0x7b, 0x83, 0x87, 0x84, 0x7b, 0x83, 0x86, -0x82, 0x87, 0x7d, 0x79, 0x7d, 0x8f, 0x8c, 0x7d, 0x85, 0x89, 0x84, 0x89, 0x92, 0x8b, 0x87, 0x95, -0x91, 0x8c, 0x8d, 0x89, 0x87, 0x80, 0x7a, 0x81, 0x81, 0x79, 0x7b, 0x71, 0x73, 0x76, 0x76, 0x70, -0x72, 0x80, 0x81, 0x83, 0x88, 0x8b, 0x83, 0x7a, 0x80, 0x82, 0x79, 0x77, 0x76, 0x77, 0x6f, 0x73, -0x7e, 0x76, 0x70, 0x70, 0x71, 0x71, 0x73, 0x70, 0x6e, 0x74, 0x74, 0x77, 0x74, 0x79, 0x75, 0x65, -0x6e, 0x76, 0x71, 0x74, 0x74, 0x76, 0x7a, 0x7e, 0x7b, 0x78, 0x77, 0x7c, 0x7c, 0x7b, 0x83, 0x82, -0x7b, 0x75, 0x74, 0x81, 0x7b, 0x6f, 0x79, 0x74, 0x76, 0x81, 0x7a, 0x78, 0x87, 0x82, 0x79, 0x86, -0x7e, 0x80, 0x85, 0x88, 0x7d, 0x7e, 0x86, 0x83, 0x86, 0x83, 0x85, 0x96, 0x98, 0x93, 0x95, 0x8c, -0x94, 0x97, 0x85, 0x80, 0x8c, 0x8e, 0x77, 0x80, 0x8d, 0x86, 0x85, 0x7b, 0x76, 0x81, 0x84, 0x82, -0x84, 0x81, 0x85, 0x8c, 0x89, 0x82, 0x7e, 0x7e, 0x74, 0x7d, 0x88, 0x81, 0x82, 0x84, 0x7e, 0x7e, -0x87, 0x81, 0x7a, 0x7c, 0x77, 0x80, 0x85, 0x7e, 0x84, 0x81, 0x80, 0x85, 0x77, 0x73, 0x79, 0x76, -0x6f, 0x6e, 0x79, 0x7e, 0x6e, 0x6e, 0x78, 0x77, 0x74, 0x6f, 0x76, 0x7a, 0x79, 0x77, 0x6e, 0x6c, -0x71, 0x73, 0x72, 0x77, 0x84, 0x7b, 0x6f, 0x80, 0x7d, 0x80, 0x82, 0x80, 0x80, 0x82, 0x85, 0x7c, -0x80, 0x7e, 0x80, 0x7e, 0x81, 0x81, 0x7a, 0x7e, 0x80, 0x88, 0x83, 0x87, 0x93, 0x93, 0x83, 0x82, -0x7d, 0x7a, 0x81, 0x83, 0x7d, 0x82, 0x8a, 0x83, 0x83, 0x85, 0x86, 0x88, 0x92, 0x8d, 0x8d, 0x8f, -0x93, 0x91, 0x8d, 0x92, 0x91, 0x95, 0x91, 0x88, 0x8c, 0x91, 0x8f, 0x8c, 0x88, 0x84, 0x86, 0x81, -0x76, 0x7b, 0x81, 0x84, 0x7e, 0x7c, 0x80, 0x83, 0x75, 0x73, 0x7a, 0x85, 0x7b, 0x77, 0x83, 0x83, -0x84, 0x85, 0x84, 0x82, 0x83, 0x85, 0x85, 0x8a, 0x83, 0x7e, 0x7a, 0x77, 0x79, 0x76, 0x70, 0x6f, -0x6b, 0x67, 0x69, 0x6e, 0x71, 0x73, 0x71, 0x69, 0x73, 0x71, 0x6b, 0x6b, 0x6e, 0x6f, 0x6b, 0x74, -0x78, 0x70, 0x6f, 0x76, 0x7d, 0x7a, 0x73, 0x74, 0x7c, 0x7c, 0x75, 0x76, 0x7d, 0x80, 0x79, 0x75, -0x7c, 0x7d, 0x79, 0x78, 0x7d, 0x82, 0x82, 0x88, 0x86, 0x86, 0x8d, 0x90, 0x80, 0x87, 0x8a, 0x83, -0x7b, 0x85, 0x90, 0x81, 0x7e, 0x85, 0x8e, 0x8b, 0x81, 0x80, 0x7c, 0x85, 0x7d, 0x7b, 0x8b, 0x8b, -0x84, 0x81, 0x84, 0x8e, 0x8a, 0x85, 0x82, 0x83, 0x86, 0x85, 0x81, 0x82, 0x87, 0x87, 0x84, 0x88, -0x88, 0x8c, 0x85, 0x7c, 0x85, 0x83, 0x7d, 0x86, 0x8a, 0x7e, 0x73, 0x78, 0x80, 0x79, 0x76, 0x76, -0x7c, 0x7c, 0x83, 0x7d, 0x82, 0x82, 0x79, 0x83, 0x7e, 0x80, 0x85, 0x7e, 0x85, 0x88, 0x84, 0x8a, -0x8e, 0x8b, 0x7e, 0x7c, 0x87, 0x7b, 0x78, 0x79, 0x80, 0x83, 0x7b, 0x80, 0x7d, 0x85, 0x88, 0x83, -0x83, 0x7e, 0x85, 0x8a, 0x81, 0x86, 0x88, 0x80, 0x7d, 0x89, 0x87, 0x76, 0x81, 0x7c, 0x74, 0x7d, -0x84, 0x7c, 0x7a, 0x7a, 0x72, 0x75, 0x7e, 0x78, 0x6f, 0x72, 0x7b, 0x7a, 0x73, 0x7a, 0x79, 0x78, -0x71, 0x73, 0x78, 0x69, 0x6a, 0x75, 0x75, 0x6f, 0x72, 0x77, 0x72, 0x7c, 0x7e, 0x7d, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x85, 0x7c, 0x79, 0x7e, 0x80, 0x89, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7a, 0x82, -0x85, 0x7c, 0x79, 0x7c, 0x81, 0x81, 0x79, 0x84, 0x8e, 0x88, 0x86, 0x87, 0x95, 0x96, 0x85, 0x82, -0x8f, 0x83, 0x81, 0x83, 0x7e, 0x85, 0x81, 0x7a, 0x79, 0x80, 0x8e, 0x8a, 0x7e, 0x88, 0x91, 0x91, -0x8b, 0x87, 0x84, 0x86, 0x8d, 0x85, 0x87, 0x8a, 0x8a, 0x86, 0x82, 0x8b, 0x87, 0x85, 0x88, 0x7d, -0x7d, 0x82, 0x78, 0x7e, 0x86, 0x84, 0x84, 0x83, 0x7e, 0x80, 0x7c, 0x71, 0x6f, 0x73, 0x6a, 0x6e, -0x73, 0x75, 0x73, 0x77, 0x6d, 0x74, 0x7b, 0x75, 0x78, 0x76, 0x79, 0x7b, 0x7e, 0x84, 0x81, 0x87, -0x7d, 0x76, 0x7d, 0x74, 0x70, 0x70, 0x6d, 0x70, 0x75, 0x7a, 0x7b, 0x77, 0x73, 0x6d, 0x74, 0x6f, -0x72, 0x7a, 0x75, 0x7b, 0x83, 0x83, 0x84, 0x89, 0x88, 0x7d, 0x80, 0x87, 0x83, 0x7b, 0x7d, 0x7b, -0x82, 0x89, 0x86, 0x8e, 0x8d, 0x83, 0x81, 0x8c, 0x93, 0x8f, 0x8a, 0x8c, 0x99, 0x9e, 0x94, 0x8e, -0x99, 0x97, 0x94, 0x93, 0x8e, 0x8e, 0x8e, 0x88, 0x87, 0x83, 0x87, 0x85, 0x7b, 0x73, 0x74, 0x80, -0x7c, 0x75, 0x7a, 0x81, 0x83, 0x84, 0x87, 0x79, 0x83, 0x85, 0x84, 0x7d, 0x7d, 0x89, 0x84, 0x7c, -0x7c, 0x80, 0x7b, 0x77, 0x7d, 0x82, 0x7b, 0x76, 0x78, 0x73, 0x7e, 0x82, 0x7d, 0x7c, 0x7a, 0x83, -0x84, 0x7c, 0x73, 0x6a, 0x6f, 0x74, 0x70, 0x69, 0x6d, 0x73, 0x6c, 0x66, 0x73, 0x77, 0x6f, 0x70, -0x70, 0x76, 0x7e, 0x77, 0x74, 0x72, 0x7a, 0x78, 0x71, 0x77, 0x77, 0x76, 0x79, 0x7d, 0x7a, 0x83, -0x7e, 0x71, 0x75, 0x7b, 0x82, 0x7a, 0x7a, 0x78, 0x7b, 0x7d, 0x77, 0x7a, 0x7e, 0x78, 0x80, 0x83, -0x84, 0x85, 0x8b, 0x8b, 0x84, 0x88, 0x8f, 0x8c, 0x86, 0x82, 0x7e, 0x89, 0x91, 0x8d, 0x8b, 0x88, -0x84, 0x87, 0x83, 0x7c, 0x86, 0x85, 0x81, 0x8b, 0x8b, 0x8a, 0x8c, 0x90, 0x8c, 0x88, 0x84, 0x89, -0x88, 0x7d, 0x86, 0x8c, 0x83, 0x82, 0x85, 0x83, 0x80, 0x81, 0x82, 0x7d, 0x87, 0x8a, 0x87, 0x88, -0x8d, 0x86, 0x83, 0x88, 0x82, 0x7e, 0x82, 0x82, 0x81, 0x85, 0x81, 0x87, 0x90, 0x8e, 0x88, 0x84, -0x84, 0x84, 0x7e, 0x7b, 0x7b, 0x81, 0x6f, 0x77, 0x84, 0x80, 0x81, 0x73, 0x70, 0x7b, 0x7a, 0x79, -0x7c, 0x78, 0x7a, 0x78, 0x82, 0x84, 0x77, 0x75, 0x73, 0x79, 0x74, 0x79, 0x7b, 0x78, 0x78, 0x7a, -0x83, 0x7e, 0x74, 0x71, 0x78, 0x73, 0x75, 0x75, 0x78, 0x7c, 0x79, 0x79, 0x78, 0x79, 0x75, 0x70, -0x6f, 0x74, 0x73, 0x7e, 0x7b, 0x79, 0x86, 0x87, 0x7e, 0x79, 0x84, 0x7e, 0x7b, 0x82, 0x80, 0x78, -0x81, 0x7b, 0x75, 0x74, 0x76, 0x7b, 0x7d, 0x80, 0x7a, 0x80, 0x85, 0x87, 0x87, 0x8e, 0x8c, 0x81, -0x86, 0x8a, 0x8a, 0x89, 0x87, 0x8b, 0x8f, 0x8f, 0x8b, 0x8b, 0x88, 0x86, 0x87, 0x85, 0x81, 0x7e, -0x7c, 0x86, 0x88, 0x85, 0x7c, 0x7e, 0x81, 0x7b, 0x7b, 0x7b, 0x7b, 0x84, 0x86, 0x85, 0x85, 0x85, -0x81, 0x80, 0x80, 0x81, 0x80, 0x79, 0x78, 0x82, 0x86, 0x82, 0x87, 0x88, 0x7e, 0x81, 0x86, 0x87, -0x84, 0x7a, 0x7c, 0x8a, 0x88, 0x84, 0x7e, 0x79, 0x78, 0x77, 0x71, 0x72, 0x6c, 0x6f, 0x6c, 0x6c, -0x70, 0x73, 0x74, 0x73, 0x74, 0x78, 0x79, 0x75, 0x7b, 0x7d, 0x77, 0x81, 0x86, 0x81, 0x7d, 0x80, -0x7d, 0x76, 0x74, 0x79, 0x78, 0x78, 0x72, 0x6d, 0x79, 0x76, 0x73, 0x78, 0x75, 0x76, 0x78, 0x73, -0x78, 0x80, 0x83, 0x7b, 0x7b, 0x88, 0x84, 0x86, 0x82, 0x82, 0x7c, 0x82, 0x88, 0x84, 0x8e, 0x8b, -0x8c, 0x8f, 0x8c, 0x89, 0x8f, 0x8d, 0x8c, 0x95, 0x95, 0x98, 0x93, 0x8e, 0x8f, 0x93, 0x93, 0x94, -0x8f, 0x8b, 0x92, 0x8d, 0x83, 0x8a, 0x92, 0x8b, 0x84, 0x81, 0x7a, 0x85, 0x83, 0x7e, 0x85, 0x88, -0x85, 0x82, 0x7e, 0x83, 0x7d, 0x7e, 0x81, 0x7b, 0x81, 0x7b, 0x7e, 0x88, 0x86, 0x80, 0x7e, 0x89, -0x79, 0x70, 0x77, 0x78, 0x79, 0x78, 0x73, 0x7a, 0x79, 0x74, 0x7a, 0x76, 0x78, 0x7c, 0x77, 0x6f, -0x70, 0x72, 0x6a, 0x66, 0x66, 0x68, 0x67, 0x64, 0x68, 0x69, 0x6b, 0x6e, 0x69, 0x74, 0x7b, 0x78, -0x77, 0x79, 0x77, 0x7b, 0x7e, 0x78, 0x7b, 0x80, 0x7b, 0x7e, 0x80, 0x76, 0x79, 0x7d, 0x6b, 0x71, -0x78, 0x77, 0x79, 0x7a, 0x7d, 0x89, 0x88, 0x82, 0x85, 0x8e, 0x8b, 0x80, 0x84, 0x8a, 0x88, 0x8b, -0x88, 0x83, 0x8f, 0x8f, 0x81, 0x82, 0x87, 0x83, 0x89, 0x8e, 0x8e, 0x95, 0x8e, 0x8c, 0x8b, 0x82, -0x85, 0x83, 0x81, 0x89, 0x86, 0x81, 0x86, 0x90, 0x8c, 0x87, 0x8b, 0x8c, 0x82, 0x7e, 0x7d, 0x7d, -0x7e, 0x86, 0x83, 0x89, 0x84, 0x7c, 0x7e, 0x7d, 0x7d, 0x7c, 0x7e, 0x7c, 0x7c, 0x78, 0x78, 0x7e, -0x82, 0x76, 0x73, 0x82, 0x83, 0x76, 0x6d, 0x79, 0x7a, 0x7c, 0x7b, 0x7d, 0x85, 0x87, 0x7b, 0x7b, -0x85, 0x85, 0x84, 0x7c, 0x80, 0x88, 0x85, 0x81, 0x82, 0x7b, 0x7b, 0x7c, 0x7a, 0x82, 0x7d, 0x82, -0x80, 0x80, 0x7e, 0x83, 0x89, 0x84, 0x7e, 0x83, 0x85, 0x7e, 0x81, 0x7d, 0x81, 0x82, 0x82, 0x81, -0x7a, 0x7c, 0x7d, 0x74, 0x74, 0x80, 0x79, 0x7d, 0x79, 0x77, 0x7c, 0x76, 0x75, 0x77, 0x7c, 0x78, -0x7d, 0x75, 0x72, 0x7a, 0x82, 0x82, 0x80, 0x77, 0x72, 0x7b, 0x7b, 0x7b, 0x76, 0x79, 0x7c, 0x77, -0x79, 0x84, 0x79, 0x76, 0x7b, 0x77, 0x85, 0x83, 0x79, 0x7c, 0x78, 0x7b, 0x80, 0x7e, 0x81, 0x83, -0x82, 0x7d, 0x7e, 0x86, 0x83, 0x89, 0x87, 0x84, 0x8b, 0x83, 0x87, 0x8f, 0x8b, 0x85, 0x86, 0x8c, -0x88, 0x8a, 0x82, 0x79, 0x84, 0x88, 0x80, 0x84, 0x84, 0x84, 0x81, 0x80, 0x89, 0x81, 0x86, 0x81, -0x77, 0x88, 0x89, 0x8a, 0x87, 0x7a, 0x88, 0x8e, 0x88, 0x84, 0x7d, 0x80, 0x81, 0x80, 0x81, 0x84, -0x85, 0x7a, 0x79, 0x7e, 0x7d, 0x77, 0x75, 0x72, 0x73, 0x79, 0x76, 0x75, 0x6d, 0x76, 0x7a, 0x7a, -0x77, 0x75, 0x7a, 0x7c, 0x71, 0x71, 0x74, 0x76, 0x7c, 0x73, 0x73, 0x79, 0x79, 0x74, 0x6e, 0x77, -0x75, 0x6f, 0x75, 0x75, 0x82, 0x85, 0x7c, 0x78, 0x75, 0x7b, 0x83, 0x79, 0x7a, 0x7c, 0x7c, 0x7d, -0x79, 0x7e, 0x86, 0x79, 0x79, 0x7d, 0x7b, 0x7b, 0x78, 0x7c, 0x7b, 0x85, 0x93, 0x8b, 0x8b, 0x90, -0x8b, 0x90, 0x90, 0x8a, 0x8d, 0x91, 0x96, 0x95, 0x8f, 0x9a, 0x95, 0x90, 0x95, 0x95, 0x90, 0x8a, -0x8d, 0x93, 0x90, 0x8e, 0x94, 0x92, 0x8d, 0x91, 0x90, 0x87, 0x80, 0x7d, 0x82, 0x82, 0x84, 0x7e, -0x7d, 0x7d, 0x7d, 0x7e, 0x77, 0x75, 0x7d, 0x78, 0x74, 0x80, 0x7d, 0x82, 0x81, 0x7b, 0x7d, 0x78, -0x79, 0x72, 0x6d, 0x74, 0x71, 0x6e, 0x6e, 0x75, 0x74, 0x70, 0x72, 0x77, 0x73, 0x70, 0x74, 0x74, -0x72, 0x69, 0x72, 0x72, 0x6e, 0x75, 0x72, 0x74, 0x77, 0x71, 0x77, 0x72, 0x72, 0x79, 0x72, 0x7b, -0x83, 0x7a, 0x77, 0x75, 0x77, 0x7c, 0x7d, 0x80, 0x77, 0x77, 0x78, 0x79, 0x7c, 0x77, 0x7c, 0x7e, -0x79, 0x7a, 0x80, 0x80, 0x7b, 0x7b, 0x7e, 0x79, 0x80, 0x83, 0x7d, 0x7d, 0x80, 0x82, 0x83, 0x80, -0x83, 0x81, 0x83, 0x82, 0x82, 0x8d, 0x91, 0x8e, 0x8b, 0x83, 0x88, 0x8a, 0x83, 0x89, 0x84, 0x80, -0x84, 0x82, 0x82, 0x87, 0x8e, 0x89, 0x87, 0x92, 0x92, 0x8d, 0x8b, 0x83, 0x87, 0x8d, 0x8e, 0x8b, -0x86, 0x88, 0x87, 0x82, 0x88, 0x83, 0x80, 0x80, 0x83, 0x83, 0x82, 0x8a, 0x8d, 0x83, 0x81, 0x87, -0x89, 0x85, 0x78, 0x79, 0x84, 0x80, 0x7e, 0x84, 0x84, 0x7a, 0x78, 0x7a, 0x77, 0x76, 0x7b, 0x74, -0x71, 0x77, 0x7c, 0x7d, 0x77, 0x79, 0x75, 0x73, 0x74, 0x74, 0x71, 0x72, 0x76, 0x7c, 0x7d, 0x7d, -0x7e, 0x7c, 0x78, 0x7c, 0x75, 0x71, 0x7c, 0x7c, 0x79, 0x7b, 0x7c, 0x88, 0x87, 0x83, 0x83, 0x89, -0x85, 0x81, 0x80, 0x81, 0x85, 0x84, 0x7d, 0x79, 0x80, 0x80, 0x7a, 0x74, 0x6e, 0x7b, 0x78, 0x78, -0x7d, 0x80, 0x7e, 0x7e, 0x84, 0x84, 0x7d, 0x88, 0x8b, 0x7c, 0x84, 0x86, 0x86, 0x8a, 0x88, 0x84, -0x89, 0x85, 0x7e, 0x81, 0x7e, 0x81, 0x80, 0x7c, 0x7e, 0x83, 0x85, 0x80, 0x7d, 0x7b, 0x7b, 0x7d, -0x79, 0x79, 0x80, 0x77, 0x7d, 0x83, 0x81, 0x86, 0x82, 0x7e, 0x7a, 0x7d, 0x82, 0x7d, 0x78, 0x78, -0x7b, 0x82, 0x85, 0x7c, 0x75, 0x7b, 0x7c, 0x76, 0x7c, 0x86, 0x88, 0x84, 0x80, 0x88, 0x87, 0x81, -0x7d, 0x7a, 0x7d, 0x81, 0x76, 0x72, 0x7c, 0x7e, 0x7b, 0x81, 0x82, 0x84, 0x8e, 0x85, 0x81, 0x81, -0x7d, 0x7b, 0x7d, 0x80, 0x7c, 0x7b, 0x79, 0x7b, 0x7d, 0x7a, 0x76, 0x78, 0x77, 0x75, 0x77, 0x7d, -0x7d, 0x73, 0x75, 0x83, 0x82, 0x7c, 0x7c, 0x81, 0x84, 0x7a, 0x7c, 0x7d, 0x77, 0x78, 0x7a, 0x80, -0x7c, 0x7b, 0x7a, 0x74, 0x73, 0x7b, 0x73, 0x71, 0x7d, 0x7d, 0x7e, 0x7a, 0x81, 0x85, 0x82, 0x82, -0x7e, 0x81, 0x7d, 0x7d, 0x83, 0x7c, 0x81, 0x81, 0x81, 0x86, 0x87, 0x83, 0x7b, 0x7b, 0x82, 0x85, -0x8a, 0x8e, 0x88, 0x86, 0x8c, 0x95, 0x95, 0x92, 0x8e, 0x8a, 0x84, 0x85, 0x8c, 0x8a, 0x87, 0x86, -0x8a, 0x8f, 0x8c, 0x88, 0x83, 0x86, 0x8e, 0x8d, 0x8a, 0x89, 0x8c, 0x87, 0x85, 0x88, 0x83, 0x8a, -0x84, 0x79, 0x7d, 0x81, 0x81, 0x83, 0x87, 0x89, 0x88, 0x89, 0x83, 0x80, 0x7e, 0x82, 0x7c, 0x78, -0x7c, 0x83, 0x80, 0x7c, 0x79, 0x79, 0x78, 0x79, 0x76, 0x6a, 0x66, 0x6c, 0x6b, 0x6e, 0x6a, 0x6a, -0x70, 0x6a, 0x65, 0x69, 0x70, 0x69, 0x60, 0x66, 0x6a, 0x77, 0x78, 0x6c, 0x6f, 0x73, 0x75, 0x72, -0x6f, 0x72, 0x74, 0x76, 0x79, 0x79, 0x78, 0x76, 0x7b, 0x7e, 0x7c, 0x80, 0x81, 0x7b, 0x77, 0x7d, -0x7b, 0x7d, 0x80, 0x88, 0x8a, 0x85, 0x82, 0x7e, 0x82, 0x81, 0x85, 0x87, 0x86, 0x8b, 0x92, 0x8d, -0x90, 0x94, 0x91, 0x94, 0x91, 0x8b, 0x8b, 0x90, 0x8c, 0x85, 0x8c, 0x91, 0x8e, 0x87, 0x8b, 0x91, -0x88, 0x85, 0x88, 0x85, 0x89, 0x8b, 0x84, 0x88, 0x83, 0x82, 0x87, 0x86, 0x7e, 0x83, 0x80, 0x7d, -0x83, 0x89, 0x8a, 0x88, 0x7e, 0x7b, 0x7d, 0x7e, 0x7e, 0x7d, 0x7a, 0x7a, 0x7a, 0x74, 0x78, 0x7c, -0x7b, 0x80, 0x7d, 0x80, 0x7e, 0x7b, 0x7c, 0x7a, 0x75, 0x78, 0x6c, 0x70, 0x78, 0x71, 0x6d, 0x78, -0x7a, 0x79, 0x78, 0x74, 0x79, 0x82, 0x7c, 0x81, 0x81, 0x85, 0x83, 0x85, 0x84, 0x80, 0x85, 0x85, -0x80, 0x86, 0x80, 0x7c, 0x83, 0x84, 0x81, 0x82, 0x85, 0x80, 0x7e, 0x81, 0x7d, 0x82, 0x8c, 0x86, -0x80, 0x83, 0x82, 0x7c, 0x74, 0x77, 0x70, 0x6d, 0x76, 0x75, 0x76, 0x7c, 0x83, 0x82, 0x83, 0x86, -0x81, 0x85, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x7c, 0x80, 0x82, 0x7d, -0x76, 0x75, 0x75, 0x76, 0x79, 0x73, 0x75, 0x75, 0x74, 0x79, 0x79, 0x77, 0x7c, 0x7e, 0x80, 0x82, -0x88, 0x85, 0x8a, 0x88, 0x82, 0x7e, 0x82, 0x80, 0x7b, 0x7d, 0x81, 0x80, 0x83, 0x85, 0x83, 0x84, -0x80, 0x7b, 0x82, 0x88, 0x85, 0x83, 0x82, 0x82, 0x82, 0x89, 0x8a, 0x8c, 0x89, 0x81, 0x7c, 0x84, -0x83, 0x82, 0x82, 0x7d, 0x7e, 0x84, 0x85, 0x87, 0x81, 0x7c, 0x86, 0x85, 0x85, 0x81, 0x7a, 0x78, -0x7e, 0x7c, 0x75, 0x77, 0x78, 0x74, 0x77, 0x77, 0x7b, 0x7c, 0x75, 0x76, 0x75, 0x7a, 0x7e, 0x72, -0x77, 0x76, 0x75, 0x79, 0x79, 0x77, 0x79, 0x81, 0x84, 0x81, 0x7d, 0x84, 0x82, 0x78, 0x74, 0x79, -0x7c, 0x79, 0x70, 0x78, 0x82, 0x7a, 0x79, 0x7d, 0x86, 0x85, 0x82, 0x85, 0x88, 0x8b, 0x86, 0x82, -0x84, 0x7e, 0x7c, 0x86, 0x81, 0x82, 0x87, 0x81, 0x83, 0x8c, 0x87, 0x87, 0x8b, 0x88, 0x8a, 0x91, -0x93, 0x92, 0x8f, 0x90, 0x92, 0x90, 0x92, 0x8d, 0x8c, 0x8c, 0x87, 0x87, 0x84, 0x88, 0x85, 0x7d, -0x82, 0x86, 0x85, 0x7a, 0x77, 0x81, 0x84, 0x84, 0x7c, 0x7e, 0x85, 0x7c, 0x76, 0x80, 0x86, 0x80, -0x80, 0x81, 0x84, 0x85, 0x7e, 0x7d, 0x80, 0x7c, 0x78, 0x77, 0x7c, 0x78, 0x78, 0x78, 0x79, 0x76, -0x6e, 0x73, 0x76, 0x72, 0x74, 0x7a, 0x79, 0x73, 0x74, 0x76, 0x75, 0x76, 0x75, 0x72, 0x72, 0x74, -0x73, 0x74, 0x77, 0x79, 0x76, 0x75, 0x75, 0x77, 0x7b, 0x71, 0x71, 0x76, 0x77, 0x79, 0x7a, 0x76, -0x77, 0x77, 0x75, 0x76, 0x7a, 0x74, 0x6f, 0x79, 0x7e, 0x79, 0x79, 0x7a, 0x76, 0x76, 0x77, 0x78, -0x7d, 0x78, 0x7a, 0x81, 0x82, 0x84, 0x86, 0x85, 0x88, 0x8e, 0x8c, 0x82, 0x85, 0x8a, 0x87, 0x82, -0x7d, 0x84, 0x88, 0x89, 0x86, 0x88, 0x90, 0x89, 0x86, 0x87, 0x84, 0x88, 0x8b, 0x87, 0x86, 0x8e, -0x8f, 0x85, 0x87, 0x88, 0x8a, 0x8b, 0x8b, 0x87, 0x88, 0x8c, 0x8d, 0x89, 0x8a, 0x8d, 0x8a, 0x84, -0x87, 0x8e, 0x8c, 0x89, 0x87, 0x84, 0x86, 0x89, 0x83, 0x7c, 0x7b, 0x80, 0x7d, 0x79, 0x7b, 0x7c, -0x7d, 0x81, 0x7b, 0x7d, 0x84, 0x81, 0x79, 0x7b, 0x7b, 0x7b, 0x7a, 0x76, 0x7a, 0x77, 0x70, 0x75, -0x76, 0x79, 0x7b, 0x7c, 0x78, 0x7b, 0x82, 0x7a, 0x7a, 0x77, 0x75, 0x75, 0x77, 0x78, 0x77, 0x7c, -0x7c, 0x73, 0x78, 0x7c, 0x7a, 0x7d, 0x79, 0x75, 0x7d, 0x83, 0x80, 0x7c, 0x7a, 0x79, 0x77, 0x7a, -0x7c, 0x7e, 0x7d, 0x7e, 0x80, 0x7a, 0x81, 0x84, 0x7c, 0x7b, 0x85, 0x86, 0x85, 0x80, 0x82, 0x86, -0x84, 0x83, 0x85, 0x8e, 0x87, 0x81, 0x83, 0x87, 0x8d, 0x85, 0x81, 0x84, 0x86, 0x86, 0x86, 0x84, -0x84, 0x80, 0x82, 0x87, 0x83, 0x83, 0x7e, 0x7a, 0x79, 0x7e, 0x86, 0x80, 0x7a, 0x80, 0x82, 0x81, -0x81, 0x79, 0x7c, 0x78, 0x78, 0x80, 0x80, 0x80, 0x82, 0x7c, 0x7c, 0x77, 0x7c, 0x80, 0x77, 0x76, -0x7d, 0x83, 0x81, 0x7c, 0x7d, 0x82, 0x7d, 0x79, 0x7c, 0x80, 0x82, 0x7b, 0x80, 0x7e, 0x7a, 0x79, -0x77, 0x7c, 0x78, 0x77, 0x7d, 0x7d, 0x7d, 0x7c, 0x80, 0x7e, 0x7a, 0x83, 0x80, 0x74, 0x77, 0x7d, -0x81, 0x7e, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7b, 0x79, 0x7b, 0x7c, 0x84, 0x87, 0x89, 0x83, -0x83, 0x8e, 0x8b, 0x87, 0x8a, 0x81, 0x85, 0x8a, 0x7e, 0x7c, 0x7b, 0x7a, 0x75, 0x74, 0x7c, 0x7d, -0x7b, 0x76, 0x77, 0x7b, 0x7c, 0x7d, 0x79, 0x7b, 0x7a, 0x80, 0x85, 0x81, 0x83, 0x88, 0x7e, 0x79, -0x82, 0x83, 0x83, 0x82, 0x80, 0x80, 0x82, 0x80, 0x84, 0x80, 0x84, 0x86, 0x80, 0x81, 0x85, 0x84, -0x83, 0x83, 0x87, 0x89, 0x87, 0x87, 0x82, 0x80, 0x84, 0x89, 0x87, 0x85, 0x86, 0x81, 0x81, 0x85, -0x83, 0x87, 0x86, 0x85, 0x86, 0x8a, 0x88, 0x84, 0x87, 0x84, 0x82, 0x87, 0x84, 0x85, 0x84, 0x81, -0x88, 0x8b, 0x86, 0x81, 0x83, 0x81, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x83, 0x80, 0x7b, 0x82, 0x7c, -0x73, 0x75, 0x78, 0x74, 0x74, 0x76, 0x74, 0x71, 0x6f, 0x70, 0x6f, 0x68, 0x6d, 0x71, 0x69, 0x67, -0x69, 0x6c, 0x6c, 0x69, 0x6d, 0x70, 0x73, 0x74, 0x73, 0x79, 0x78, 0x7a, 0x79, 0x78, 0x77, 0x76, -0x7a, 0x73, 0x79, 0x7d, 0x76, 0x7c, 0x7c, 0x7a, 0x7e, 0x7b, 0x74, 0x7d, 0x83, 0x82, 0x85, 0x86, -0x84, 0x85, 0x84, 0x89, 0x8b, 0x88, 0x8a, 0x8b, 0x8a, 0x89, 0x8c, 0x8f, 0x85, 0x88, 0x94, 0x91, -0x8e, 0x8d, 0x8a, 0x8f, 0x90, 0x8c, 0x90, 0x93, 0x8a, 0x87, 0x86, 0x88, 0x8a, 0x87, 0x87, 0x86, -0x81, 0x82, 0x82, 0x82, 0x81, 0x85, 0x86, 0x81, 0x82, 0x83, 0x7d, 0x80, 0x85, 0x85, 0x81, 0x80, -0x86, 0x85, 0x88, 0x81, 0x7d, 0x87, 0x83, 0x7c, 0x7e, 0x7d, 0x7d, 0x7c, 0x77, 0x7a, 0x7c, 0x79, -0x76, 0x73, 0x77, 0x7c, 0x80, 0x7a, 0x73, 0x78, 0x7c, 0x79, 0x73, 0x73, 0x76, 0x76, 0x72, 0x72, -0x7b, 0x7e, 0x7b, 0x75, 0x7a, 0x80, 0x7c, 0x7c, 0x78, 0x7c, 0x82, 0x80, 0x80, 0x81, 0x80, 0x85, -0x8b, 0x7c, 0x7d, 0x86, 0x7e, 0x79, 0x7d, 0x7d, 0x7b, 0x79, 0x79, 0x7b, 0x81, 0x81, 0x7c, 0x7b, -0x7b, 0x81, 0x83, 0x7c, 0x79, 0x7e, 0x85, 0x7b, 0x79, 0x86, 0x81, 0x7c, 0x7d, 0x7b, 0x84, 0x87, -0x85, 0x88, 0x87, 0x89, 0x86, 0x7e, 0x7c, 0x81, 0x83, 0x7d, 0x7d, 0x84, 0x83, 0x85, 0x88, 0x7e, -0x7b, 0x81, 0x7d, 0x76, 0x75, 0x78, 0x74, 0x71, 0x7c, 0x79, 0x75, 0x78, 0x75, 0x76, 0x76, 0x7a, -0x80, 0x74, 0x78, 0x84, 0x80, 0x7d, 0x80, 0x83, 0x83, 0x80, 0x81, 0x86, 0x7a, 0x83, 0x88, 0x87, -0x86, 0x81, 0x83, 0x83, 0x82, 0x84, 0x88, 0x87, 0x83, 0x81, 0x80, 0x84, 0x87, 0x82, 0x7c, 0x81, -0x81, 0x81, 0x7a, 0x7c, 0x7e, 0x80, 0x81, 0x7e, 0x84, 0x85, 0x80, 0x7a, 0x7a, 0x84, 0x81, 0x78, -0x7a, 0x7c, 0x7a, 0x78, 0x7b, 0x7d, 0x7b, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x82, 0x7c, 0x7d, 0x7d, -0x7e, 0x83, 0x79, 0x76, 0x81, 0x86, 0x81, 0x80, 0x83, 0x84, 0x84, 0x7e, 0x80, 0x82, 0x7b, 0x7b, -0x7b, 0x7b, 0x7d, 0x7d, 0x7a, 0x7a, 0x7b, 0x85, 0x85, 0x7d, 0x82, 0x83, 0x83, 0x88, 0x7e, 0x81, -0x82, 0x80, 0x7b, 0x7d, 0x83, 0x82, 0x82, 0x82, 0x83, 0x85, 0x89, 0x88, 0x85, 0x85, 0x8a, 0x8b, -0x86, 0x84, 0x81, 0x86, 0x83, 0x7d, 0x86, 0x86, 0x81, 0x81, 0x7c, 0x80, 0x7c, 0x7b, 0x83, 0x82, -0x81, 0x83, 0x8a, 0x88, 0x82, 0x83, 0x86, 0x83, 0x82, 0x86, 0x84, 0x80, 0x7d, 0x80, 0x7c, 0x7d, -0x81, 0x7a, 0x78, 0x7a, 0x79, 0x7e, 0x81, 0x7d, 0x85, 0x84, 0x7d, 0x7b, 0x78, 0x78, 0x70, 0x76, -0x79, 0x77, 0x7a, 0x7c, 0x7d, 0x7a, 0x7b, 0x7d, 0x78, 0x74, 0x75, 0x74, 0x74, 0x71, 0x77, 0x75, -0x71, 0x73, 0x76, 0x79, 0x76, 0x72, 0x77, 0x78, 0x7a, 0x79, 0x75, 0x73, 0x73, 0x72, 0x72, 0x75, -0x71, 0x72, 0x75, 0x76, 0x77, 0x7d, 0x7c, 0x7c, 0x7b, 0x80, 0x80, 0x82, 0x7e, 0x7c, 0x7e, 0x83, -0x88, 0x86, 0x85, 0x87, 0x8a, 0x89, 0x87, 0x84, 0x84, 0x84, 0x82, 0x7d, 0x86, 0x89, 0x87, 0x85, -0x89, 0x8d, 0x8c, 0x88, 0x8a, 0x85, 0x85, 0x85, 0x88, 0x87, 0x83, 0x89, 0x8a, 0x86, 0x87, 0x90, -0x8c, 0x88, 0x8c, 0x8b, 0x8d, 0x8e, 0x8c, 0x8b, 0x8d, 0x8b, 0x87, 0x84, 0x82, 0x84, 0x81, 0x7e, -0x83, 0x84, 0x83, 0x7d, 0x7d, 0x83, 0x7b, 0x7a, 0x7e, 0x7a, 0x7c, 0x80, 0x80, 0x7d, 0x80, 0x80, -0x7c, 0x7d, 0x85, 0x84, 0x7a, 0x76, 0x7a, 0x73, 0x6e, 0x73, 0x72, 0x6f, 0x6b, 0x71, 0x77, 0x72, -0x6f, 0x76, 0x74, 0x75, 0x77, 0x72, 0x76, 0x77, 0x76, 0x7a, 0x7c, 0x7a, 0x78, 0x78, 0x7c, 0x7c, -0x77, 0x7a, 0x7b, 0x76, 0x77, 0x7d, 0x7d, 0x7b, 0x7a, 0x7d, 0x80, 0x7d, 0x84, 0x82, 0x81, 0x83, -0x87, 0x87, 0x82, 0x85, 0x88, 0x84, 0x83, 0x88, 0x83, 0x86, 0x89, 0x8a, 0x8c, 0x8a, 0x91, 0x91, -0x8a, 0x8e, 0x8e, 0x8c, 0x88, 0x8a, 0x89, 0x82, 0x84, 0x86, 0x82, 0x85, 0x86, 0x87, 0x81, 0x80, -0x81, 0x80, 0x7a, 0x7a, 0x7b, 0x74, 0x77, 0x7b, 0x7b, 0x76, 0x78, 0x7b, 0x7b, 0x7b, 0x7e, 0x7d, -0x7d, 0x7e, 0x7c, 0x7a, 0x77, 0x79, 0x74, 0x74, 0x79, 0x79, 0x78, 0x79, 0x7c, 0x7e, 0x78, 0x7d, -0x80, 0x75, 0x72, 0x79, 0x78, 0x78, 0x79, 0x7b, 0x83, 0x80, 0x7e, 0x83, 0x7c, 0x7b, 0x7a, 0x7c, -0x7d, 0x79, 0x7a, 0x82, 0x84, 0x7e, 0x7e, 0x86, 0x83, 0x80, 0x82, 0x81, 0x85, 0x83, 0x80, 0x82, -0x84, 0x87, 0x85, 0x7b, 0x81, 0x83, 0x84, 0x83, 0x7e, 0x81, 0x86, 0x86, 0x7c, 0x7c, 0x81, 0x85, -0x80, 0x7b, 0x80, 0x7e, 0x80, 0x7c, 0x7e, 0x85, 0x82, 0x85, 0x84, 0x81, 0x7e, 0x7d, 0x82, 0x7b, -0x79, 0x84, 0x82, 0x7b, 0x7a, 0x83, 0x87, 0x80, 0x7c, 0x82, 0x81, 0x7b, 0x7e, 0x7b, 0x75, 0x77, -0x76, 0x7a, 0x7d, 0x78, 0x80, 0x7b, 0x77, 0x7b, 0x80, 0x80, 0x7c, 0x7e, 0x82, 0x7e, 0x7d, 0x7a, -0x7b, 0x80, 0x81, 0x86, 0x87, 0x83, 0x84, 0x87, 0x8b, 0x89, 0x81, 0x82, 0x83, 0x81, 0x7d, 0x82, -0x85, 0x80, 0x80, 0x85, 0x87, 0x85, 0x82, 0x82, 0x86, 0x82, 0x84, 0x86, 0x81, 0x81, 0x84, 0x88, -0x89, 0x84, 0x87, 0x8a, 0x83, 0x8a, 0x8a, 0x84, 0x85, 0x7c, 0x80, 0x83, 0x7d, 0x7e, 0x82, 0x7d, -0x7c, 0x80, 0x80, 0x7a, 0x74, 0x78, 0x7a, 0x73, 0x71, 0x70, 0x70, 0x73, 0x6c, 0x6f, 0x71, 0x6f, -0x6c, 0x6c, 0x72, 0x70, 0x72, 0x77, 0x75, 0x73, 0x77, 0x74, 0x74, 0x74, 0x73, 0x72, 0x74, 0x78, -0x82, 0x83, 0x7b, 0x7d, 0x7d, 0x7c, 0x7d, 0x80, 0x7e, 0x7c, 0x7b, 0x7c, 0x7e, 0x83, 0x83, 0x83, -0x87, 0x87, 0x86, 0x84, 0x89, 0x88, 0x80, 0x85, 0x89, 0x8f, 0x8d, 0x8b, 0x92, 0x92, 0x8e, 0x8e, -0x90, 0x8e, 0x8a, 0x8c, 0x88, 0x87, 0x8f, 0x8b, 0x82, 0x82, 0x85, 0x83, 0x81, 0x81, 0x84, 0x82, -0x83, 0x87, 0x86, 0x83, 0x85, 0x81, 0x80, 0x7d, 0x82, 0x86, 0x7e, 0x7e, 0x89, 0x88, 0x87, 0x85, -0x82, 0x81, 0x7e, 0x7e, 0x78, 0x75, 0x77, 0x7a, 0x79, 0x7b, 0x7b, 0x7a, 0x78, 0x75, 0x79, 0x78, -0x79, 0x78, 0x73, 0x74, 0x77, 0x75, 0x77, 0x79, 0x77, 0x73, 0x72, 0x79, 0x7c, 0x79, 0x79, 0x7a, -0x7e, 0x7b, 0x7c, 0x83, 0x80, 0x7d, 0x79, 0x7c, 0x82, 0x78, 0x7b, 0x78, 0x7a, 0x85, 0x7e, 0x7c, -0x7e, 0x7a, 0x7a, 0x7b, 0x79, 0x79, 0x7a, 0x78, 0x78, 0x80, 0x84, 0x82, 0x7d, 0x7d, 0x7d, 0x7b, -0x82, 0x7e, 0x7c, 0x81, 0x81, 0x85, 0x8b, 0x85, 0x83, 0x86, 0x87, 0x83, 0x83, 0x86, 0x86, 0x83, -0x7e, 0x87, 0x8b, 0x89, 0x88, 0x8a, 0x8b, 0x84, 0x85, 0x85, 0x86, 0x84, 0x82, 0x81, 0x82, 0x83, -0x7d, 0x7b, 0x7d, 0x7b, 0x7c, 0x7a, 0x7e, 0x81, 0x7c, 0x7b, 0x7b, 0x81, 0x86, 0x81, 0x7e, 0x7c, -0x7c, 0x7c, 0x75, 0x73, 0x76, 0x75, 0x79, 0x7c, 0x83, 0x81, 0x7b, 0x7e, 0x81, 0x7e, 0x7a, 0x7c, -0x7c, 0x7a, 0x80, 0x85, 0x84, 0x7c, 0x7b, 0x81, 0x82, 0x7e, 0x81, 0x7e, 0x7a, 0x7c, 0x82, 0x7e, -0x7e, 0x82, 0x80, 0x7b, 0x81, 0x7e, 0x7a, 0x7b, 0x79, 0x79, 0x7b, 0x7b, 0x7d, 0x7d, 0x79, 0x79, -0x7a, 0x7a, 0x7c, 0x7a, 0x7d, 0x80, 0x81, 0x81, 0x85, 0x84, 0x80, 0x84, 0x81, 0x7e, 0x82, 0x80, -0x82, 0x80, 0x83, 0x84, 0x81, 0x86, 0x88, 0x84, 0x80, 0x81, 0x80, 0x7a, 0x79, 0x7c, 0x7e, 0x7a, -0x7c, 0x7d, 0x7d, 0x80, 0x85, 0x84, 0x7e, 0x81, 0x83, 0x82, 0x81, 0x85, 0x86, 0x85, 0x84, 0x86, -0x88, 0x7e, 0x85, 0x87, 0x81, 0x86, 0x86, 0x84, 0x84, 0x81, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x7b, -0x7b, 0x82, 0x7d, 0x7c, 0x82, 0x81, 0x82, 0x7c, 0x80, 0x7e, 0x78, 0x7c, 0x80, 0x78, 0x7d, 0x82, -0x7e, 0x82, 0x86, 0x7e, 0x7d, 0x80, 0x7b, 0x7d, 0x7b, 0x81, 0x7e, 0x7b, 0x7e, 0x85, 0x8a, 0x85, -0x84, 0x85, 0x81, 0x83, 0x83, 0x7d, 0x7b, 0x7c, 0x7b, 0x7a, 0x7a, 0x80, 0x7d, 0x78, 0x7a, 0x7b, -0x7c, 0x7c, 0x7a, 0x7b, 0x7b, 0x76, 0x7b, 0x7b, 0x78, 0x77, 0x78, 0x79, 0x82, 0x80, 0x7b, 0x83, -0x86, 0x82, 0x82, 0x84, 0x81, 0x7d, 0x7c, 0x75, 0x74, 0x78, 0x79, 0x76, 0x75, 0x7a, 0x7b, 0x7a, -0x7a, 0x7b, 0x7d, 0x7a, 0x76, 0x78, 0x79, 0x77, 0x79, 0x82, 0x81, 0x7c, 0x80, 0x83, 0x82, 0x83, -0x82, 0x85, 0x83, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x81, 0x80, 0x7e, 0x7d, 0x7e, 0x83, 0x84, 0x82, -0x83, 0x82, 0x83, 0x84, 0x85, 0x82, 0x80, 0x84, 0x86, 0x85, 0x89, 0x85, 0x84, 0x86, 0x87, 0x8b, -0x8c, 0x88, 0x84, 0x87, 0x8b, 0x86, 0x84, 0x87, 0x87, 0x86, 0x84, 0x86, 0x87, 0x81, 0x81, 0x88, -0x83, 0x82, 0x80, 0x82, 0x7e, 0x7b, 0x81, 0x7e, 0x7e, 0x82, 0x82, 0x81, 0x81, 0x82, 0x81, 0x79, -0x7d, 0x7c, 0x74, 0x77, 0x77, 0x76, 0x77, 0x76, 0x78, 0x76, 0x73, 0x75, 0x75, 0x76, 0x77, 0x74, -0x70, 0x73, 0x75, 0x70, 0x72, 0x75, 0x76, 0x75, 0x75, 0x79, 0x7b, 0x7a, 0x79, 0x81, 0x82, 0x7d, -0x80, 0x80, 0x79, 0x79, 0x7b, 0x7a, 0x7d, 0x7b, 0x7e, 0x7c, 0x7d, 0x81, 0x7e, 0x80, 0x80, 0x82, -0x85, 0x85, 0x86, 0x88, 0x87, 0x88, 0x89, 0x87, 0x88, 0x86, 0x87, 0x8b, 0x8e, 0x8c, 0x89, 0x8e, -0x8d, 0x89, 0x8b, 0x8b, 0x8d, 0x8a, 0x84, 0x8d, 0x8b, 0x83, 0x86, 0x85, 0x86, 0x84, 0x82, 0x84, -0x81, 0x7d, 0x7b, 0x7b, 0x81, 0x82, 0x7b, 0x79, 0x7a, 0x7d, 0x7b, 0x7d, 0x7a, 0x76, 0x78, 0x76, -0x79, 0x78, 0x7c, 0x79, 0x76, 0x7c, 0x7a, 0x78, 0x7a, 0x7b, 0x78, 0x78, 0x77, 0x78, 0x79, 0x78, -0x77, 0x7b, 0x7b, 0x79, 0x7b, 0x7c, 0x7b, 0x79, 0x7b, 0x7d, 0x80, 0x81, 0x7d, 0x7c, 0x7c, 0x7b, -0x78, 0x78, 0x78, 0x7a, 0x7a, 0x78, 0x7b, 0x7e, 0x7e, 0x82, 0x81, 0x7e, 0x82, 0x81, 0x83, 0x85, -0x84, 0x80, 0x81, 0x88, 0x82, 0x85, 0x85, 0x84, 0x86, 0x85, 0x85, 0x86, 0x83, 0x82, 0x82, 0x82, -0x82, 0x80, 0x81, 0x82, 0x7e, 0x83, 0x83, 0x81, 0x84, 0x85, 0x82, 0x7e, 0x7b, 0x7a, 0x79, 0x7e, -0x80, 0x7e, 0x7d, 0x7d, 0x82, 0x81, 0x81, 0x7e, 0x7e, 0x81, 0x7c, 0x7d, 0x84, 0x84, 0x7e, 0x79, -0x7e, 0x83, 0x80, 0x7c, 0x7a, 0x83, 0x82, 0x7b, 0x82, 0x81, 0x7b, 0x7c, 0x7e, 0x81, 0x81, 0x7c, -0x80, 0x81, 0x7d, 0x7d, 0x7d, 0x83, 0x81, 0x80, 0x81, 0x7e, 0x82, 0x82, 0x80, 0x83, 0x87, 0x82, -0x7e, 0x83, 0x88, 0x80, 0x7e, 0x81, 0x84, 0x84, 0x80, 0x84, 0x85, 0x81, 0x83, 0x82, 0x83, 0x88, -0x87, 0x84, 0x89, 0x8c, 0x86, 0x83, 0x88, 0x89, 0x84, 0x81, 0x80, 0x84, 0x82, 0x7e, 0x7b, 0x7b, -0x7a, 0x78, 0x76, 0x78, 0x77, 0x79, 0x77, 0x75, 0x78, 0x77, 0x76, 0x76, 0x74, 0x79, 0x77, 0x75, -0x79, 0x78, 0x75, 0x79, 0x78, 0x76, 0x75, 0x77, 0x74, 0x73, 0x76, 0x77, 0x77, 0x75, 0x76, 0x77, -0x7a, 0x7c, 0x78, 0x7c, 0x82, 0x82, 0x7c, 0x7d, 0x83, 0x85, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x83, -0x84, 0x87, 0x85, 0x84, 0x85, 0x87, 0x88, 0x89, 0x88, 0x88, 0x8c, 0x8c, 0x88, 0x89, 0x8a, 0x88, -0x8a, 0x89, 0x85, 0x84, 0x87, 0x86, 0x85, 0x88, 0x84, 0x82, 0x83, 0x82, 0x81, 0x83, 0x84, 0x86, -0x80, 0x81, 0x88, 0x84, 0x82, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7a, 0x79, 0x7b, 0x7c, 0x7d, 0x7b, -0x7a, 0x7c, 0x79, 0x77, 0x77, 0x78, 0x75, 0x73, 0x78, 0x79, 0x7b, 0x7c, 0x7a, 0x7e, 0x7c, 0x7e, -0x84, 0x7d, 0x7c, 0x7d, 0x7c, 0x7d, 0x7b, 0x78, 0x7a, 0x7c, 0x77, 0x78, 0x7d, 0x80, 0x78, 0x77, -0x7c, 0x81, 0x81, 0x7e, 0x7c, 0x7a, 0x83, 0x7e, 0x7a, 0x7d, 0x7a, 0x7c, 0x7c, 0x7a, 0x82, 0x80, -0x7c, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x82, 0x83, 0x80, 0x7d, 0x82, 0x7d, 0x7e, 0x86, 0x87, -0x81, 0x81, 0x84, 0x81, 0x83, 0x86, 0x82, 0x84, 0x85, 0x7e, 0x84, 0x88, 0x86, 0x89, 0x84, 0x84, -0x89, 0x87, 0x87, 0x87, 0x85, 0x83, 0x82, 0x83, 0x85, 0x85, 0x80, 0x83, 0x83, 0x80, 0x83, 0x84, -0x7e, 0x7b, 0x7a, 0x7e, 0x7c, 0x7d, 0x7d, 0x7b, 0x7b, 0x7e, 0x82, 0x80, 0x80, 0x7e, 0x7d, 0x80, -0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7b, 0x7c, 0x7d, 0x7c, 0x7b, 0x79, 0x80, 0x80, 0x79, -0x7a, 0x7b, 0x7b, 0x79, 0x73, 0x77, 0x7d, 0x79, 0x79, 0x7e, 0x80, 0x7b, 0x7e, 0x7d, 0x7e, 0x7e, -0x7b, 0x7d, 0x77, 0x78, 0x7e, 0x78, 0x79, 0x79, 0x78, 0x7b, 0x79, 0x7c, 0x7d, 0x7a, 0x7a, 0x7a, -0x7d, 0x7e, 0x7d, 0x80, 0x80, 0x7e, 0x80, 0x85, 0x81, 0x7c, 0x7e, 0x81, 0x80, 0x80, 0x80, 0x7e, -0x81, 0x80, 0x80, 0x85, 0x86, 0x85, 0x83, 0x84, 0x8a, 0x85, 0x82, 0x83, 0x83, 0x82, 0x81, 0x80, -0x81, 0x7e, 0x81, 0x84, 0x81, 0x83, 0x86, 0x84, 0x87, 0x8a, 0x88, 0x84, 0x85, 0x83, 0x86, 0x83, -0x83, 0x84, 0x82, 0x82, 0x7d, 0x85, 0x88, 0x81, 0x82, 0x81, 0x81, 0x82, 0x7d, 0x7c, 0x7e, 0x7e, -0x78, 0x78, 0x80, 0x7d, 0x7a, 0x7b, 0x80, 0x7c, 0x79, 0x7d, 0x83, 0x7e, 0x7b, 0x7d, 0x82, 0x81, -0x7c, 0x7e, 0x7c, 0x7e, 0x80, 0x7e, 0x7e, 0x81, 0x82, 0x79, 0x7b, 0x7d, 0x7d, 0x7d, 0x7a, 0x7b, -0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x80, 0x83, 0x80, 0x7b, 0x81, 0x81, 0x7e, 0x81, 0x82, -0x83, 0x81, 0x7e, 0x81, 0x88, 0x83, 0x7d, 0x81, 0x82, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x82, -0x83, 0x81, 0x80, 0x7c, 0x7c, 0x7e, 0x7c, 0x77, 0x78, 0x7c, 0x7a, 0x79, 0x7d, 0x7c, 0x7b, 0x77, -0x75, 0x7e, 0x7c, 0x7a, 0x7c, 0x7a, 0x7b, 0x7b, 0x78, 0x77, 0x78, 0x79, 0x7a, 0x76, 0x7d, 0x7d, -0x7b, 0x7d, 0x7d, 0x81, 0x80, 0x7e, 0x82, 0x80, 0x80, 0x82, 0x85, 0x84, 0x85, 0x84, 0x81, 0x82, -0x83, 0x84, 0x86, 0x85, 0x83, 0x83, 0x85, 0x87, 0x86, 0x83, 0x87, 0x89, 0x84, 0x82, 0x86, 0x87, -0x82, 0x7c, 0x80, 0x85, 0x84, 0x80, 0x80, 0x82, 0x83, 0x84, 0x86, 0x86, 0x87, 0x8a, 0x87, 0x82, -0x85, 0x86, 0x7e, 0x7d, 0x83, 0x82, 0x7c, 0x7c, 0x80, 0x7e, 0x7d, 0x7e, 0x81, 0x81, 0x80, 0x7c, -0x7d, 0x7d, 0x79, 0x77, 0x77, 0x7a, 0x79, 0x75, 0x75, 0x77, 0x75, 0x72, 0x74, 0x77, 0x77, 0x76, -0x77, 0x79, 0x78, 0x76, 0x78, 0x79, 0x77, 0x76, 0x78, 0x7a, 0x7b, 0x7c, 0x7a, 0x78, 0x7e, 0x7d, -0x77, 0x79, 0x7c, 0x7a, 0x76, 0x7a, 0x7d, 0x82, 0x82, 0x7d, 0x81, 0x86, 0x88, 0x83, 0x82, 0x83, -0x85, 0x84, 0x84, 0x87, 0x8a, 0x87, 0x87, 0x8e, 0x8b, 0x8b, 0x8b, 0x8b, 0x8c, 0x8c, 0x8c, 0x8a, -0x8b, 0x89, 0x88, 0x8a, 0x8a, 0x8a, 0x8c, 0x8d, 0x8b, 0x85, 0x85, 0x86, 0x85, 0x82, 0x81, 0x86, -0x85, 0x7e, 0x7b, 0x81, 0x84, 0x7c, 0x7d, 0x7c, 0x7a, 0x80, 0x7a, 0x74, 0x77, 0x7b, 0x7d, 0x75, -0x75, 0x79, 0x76, 0x72, 0x73, 0x76, 0x75, 0x78, 0x76, 0x74, 0x75, 0x78, 0x75, 0x70, 0x6f, 0x71, -0x73, 0x72, 0x6f, 0x72, 0x76, 0x79, 0x7b, 0x78, 0x79, 0x7c, 0x7e, 0x7b, 0x76, 0x7a, 0x7d, 0x7a, -0x78, 0x7a, 0x7e, 0x7b, 0x7b, 0x7a, 0x7b, 0x85, 0x83, 0x7d, 0x81, 0x83, 0x85, 0x85, 0x87, 0x8b, -0x89, 0x89, 0x88, 0x88, 0x89, 0x8a, 0x8b, 0x86, 0x84, 0x86, 0x88, 0x85, 0x83, 0x86, 0x81, 0x81, -0x86, 0x83, 0x81, 0x85, 0x86, 0x85, 0x80, 0x81, 0x82, 0x7e, 0x7e, 0x7b, 0x7d, 0x7e, 0x7c, 0x7c, -0x83, 0x84, 0x81, 0x80, 0x80, 0x81, 0x81, 0x7d, 0x7e, 0x80, 0x7e, 0x7c, 0x7e, 0x81, 0x7b, 0x7d, -0x7e, 0x7c, 0x81, 0x81, 0x80, 0x7a, 0x7d, 0x80, 0x7d, 0x7c, 0x7b, 0x7c, 0x78, 0x78, 0x7a, 0x7b, -0x79, 0x7c, 0x7c, 0x7a, 0x7c, 0x7e, 0x7d, 0x7c, 0x7e, 0x7e, 0x81, 0x7e, 0x80, 0x81, 0x82, 0x84, -0x83, 0x81, 0x85, 0x88, 0x85, 0x83, 0x84, 0x82, 0x83, 0x81, 0x82, 0x86, 0x85, 0x82, 0x84, 0x82, -0x81, 0x82, 0x82, 0x80, 0x7e, 0x83, 0x80, 0x81, 0x82, 0x81, 0x7e, 0x7e, 0x80, 0x80, 0x7d, 0x7d, -0x7e, 0x7d, 0x7c, 0x7c, 0x80, 0x7e, 0x7c, 0x7c, 0x80, 0x7c, 0x7a, 0x7c, 0x80, 0x81, 0x7d, 0x7d, -0x81, 0x7c, 0x7b, 0x7c, 0x78, 0x78, 0x79, 0x75, 0x76, 0x76, 0x74, 0x75, 0x77, 0x78, 0x78, 0x7a, -0x7d, 0x7c, 0x7b, 0x7a, 0x7a, 0x77, 0x76, 0x77, 0x76, 0x7a, 0x7b, 0x7e, 0x81, 0x85, 0x83, 0x86, -0x83, 0x84, 0x87, 0x85, 0x85, 0x85, 0x86, 0x84, 0x84, 0x82, 0x83, 0x85, 0x83, 0x83, 0x86, 0x86, -0x83, 0x84, 0x84, 0x84, 0x84, 0x83, 0x81, 0x82, 0x83, 0x81, 0x81, 0x81, 0x83, 0x84, 0x85, 0x85, -0x88, 0x85, 0x81, 0x82, 0x83, 0x81, 0x7d, 0x83, 0x84, 0x81, 0x80, 0x7e, 0x80, 0x7d, 0x7b, 0x7d, -0x7b, 0x79, 0x7b, 0x79, 0x7a, 0x79, 0x79, 0x78, 0x7b, 0x80, 0x7d, 0x79, 0x7c, 0x7b, 0x7a, 0x7c, -0x7b, 0x7d, 0x7b, 0x7a, 0x79, 0x7a, 0x7d, 0x7b, 0x7b, 0x7b, 0x7e, 0x81, 0x7d, 0x7e, 0x7e, 0x7d, -0x7c, 0x7b, 0x7b, 0x7d, 0x7b, 0x7e, 0x81, 0x7d, 0x7e, 0x84, 0x83, 0x80, 0x7e, 0x82, 0x81, 0x7e, -0x7d, 0x7e, 0x81, 0x82, 0x7d, 0x7a, 0x82, 0x85, 0x80, 0x7e, 0x83, 0x82, 0x82, 0x7e, 0x80, 0x80, -0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x81, 0x83, 0x83, 0x85, 0x86, 0x83, 0x83, 0x84, 0x86, -0x85, 0x83, 0x82, 0x82, 0x84, 0x82, 0x81, 0x81, 0x84, 0x83, 0x7e, 0x80, 0x80, 0x81, 0x83, 0x7c, -0x7c, 0x82, 0x80, 0x80, 0x83, 0x81, 0x7e, 0x81, 0x83, 0x81, 0x7d, 0x7d, 0x84, 0x81, 0x7d, 0x82, -0x82, 0x82, 0x81, 0x83, 0x83, 0x80, 0x80, 0x7c, 0x7a, 0x7d, 0x7b, 0x76, 0x76, 0x7b, 0x7c, 0x76, -0x77, 0x79, 0x78, 0x7a, 0x79, 0x7a, 0x7b, 0x77, 0x75, 0x75, 0x79, 0x79, 0x75, 0x76, 0x79, 0x79, -0x79, 0x77, 0x77, 0x7a, 0x7c, 0x7a, 0x7b, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7b, -0x7e, 0x81, 0x7e, 0x7b, 0x7e, 0x82, 0x83, 0x84, 0x7e, 0x7e, 0x81, 0x82, 0x83, 0x82, 0x81, 0x80, -0x81, 0x82, 0x81, 0x83, 0x83, 0x81, 0x7d, 0x81, 0x84, 0x82, 0x83, 0x86, 0x84, 0x84, 0x84, 0x83, -0x86, 0x85, 0x84, 0x82, 0x85, 0x88, 0x86, 0x84, 0x87, 0x88, 0x87, 0x87, 0x88, 0x88, 0x88, 0x84, -0x83, 0x86, 0x86, 0x80, 0x80, 0x81, 0x7e, 0x7c, 0x7b, 0x7e, 0x7a, 0x79, 0x7c, 0x79, 0x7c, 0x7d, -0x7b, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x80, 0x80, 0x7e, 0x82, 0x7d, 0x7b, 0x80, 0x7d, 0x80, 0x80, -0x7c, 0x7d, 0x81, 0x7e, 0x7a, 0x7b, 0x7d, 0x7b, 0x79, 0x7a, 0x7e, 0x7a, 0x76, 0x74, 0x79, 0x7e, -0x7b, 0x78, 0x79, 0x7e, 0x7e, 0x7a, 0x7a, 0x7c, 0x7d, 0x7c, 0x7c, 0x7e, 0x7d, 0x80, 0x83, 0x84, -0x80, 0x83, 0x84, 0x84, 0x81, 0x80, 0x82, 0x83, 0x83, 0x82, 0x81, 0x83, 0x82, 0x80, 0x80, 0x82, -0x83, 0x80, 0x7d, 0x7d, 0x84, 0x88, 0x82, 0x80, 0x82, 0x80, 0x81, 0x82, 0x7e, 0x7e, 0x80, 0x80, -0x7e, 0x7d, 0x80, 0x7e, 0x77, 0x7a, 0x7e, 0x7d, 0x79, 0x79, 0x7b, 0x7b, 0x7b, 0x81, 0x7c, 0x79, -0x7b, 0x7c, 0x7a, 0x7c, 0x80, 0x7c, 0x79, 0x79, 0x7b, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, -0x7b, 0x79, 0x7b, 0x7b, 0x7c, 0x81, 0x84, 0x85, 0x80, 0x7e, 0x84, 0x87, 0x88, 0x83, 0x82, 0x83, -0x83, 0x83, 0x84, 0x84, 0x84, 0x86, 0x83, 0x85, 0x84, 0x84, 0x84, 0x85, 0x86, 0x87, 0x86, 0x84, -0x83, 0x83, 0x83, 0x82, 0x83, 0x7e, 0x80, 0x81, 0x7c, 0x7c, 0x7c, 0x7b, 0x7d, 0x7c, 0x7b, 0x7b, -0x7a, 0x7c, 0x79, 0x7b, 0x7e, 0x79, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x79, 0x77, 0x76, 0x77, 0x78, -0x76, 0x76, 0x7a, 0x7b, 0x7b, 0x80, 0x7d, 0x7b, 0x79, 0x7a, 0x7b, 0x7c, 0x79, 0x79, 0x7c, 0x7d, -0x7d, 0x7e, 0x81, 0x80, 0x7c, 0x7e, 0x83, 0x82, 0x81, 0x81, 0x81, 0x84, 0x80, 0x81, 0x85, 0x85, -0x84, 0x83, 0x85, 0x87, 0x86, 0x87, 0x89, 0x85, 0x8b, 0x8b, 0x85, 0x85, 0x85, 0x83, 0x80, 0x83, -0x87, 0x84, 0x81, 0x84, 0x86, 0x84, 0x83, 0x85, 0x86, 0x81, 0x82, 0x86, 0x83, 0x83, 0x85, 0x86, -0x86, 0x84, 0x83, 0x81, 0x7e, 0x7e, 0x80, 0x7b, 0x79, 0x7c, 0x79, 0x79, 0x7c, 0x7b, 0x7a, 0x79, -0x7c, 0x7c, 0x7a, 0x78, 0x79, 0x78, 0x79, 0x7c, 0x7b, 0x78, 0x76, 0x77, 0x79, 0x77, 0x79, 0x78, -0x74, 0x79, 0x79, 0x77, 0x77, 0x77, 0x76, 0x74, 0x77, 0x7a, 0x79, 0x76, 0x77, 0x7a, 0x79, 0x7a, -0x7c, 0x7e, 0x7d, 0x7d, 0x80, 0x7d, 0x7c, 0x80, 0x80, 0x7c, 0x7e, 0x84, 0x86, 0x83, 0x83, 0x84, -0x83, 0x85, 0x86, 0x84, 0x84, 0x84, 0x83, 0x83, 0x81, 0x84, 0x86, 0x83, 0x81, 0x83, 0x83, 0x80, -0x7e, 0x81, 0x81, 0x81, 0x82, 0x83, 0x84, 0x82, 0x80, 0x81, 0x82, 0x83, 0x8a, 0x87, 0x80, 0x81, -0x85, 0x88, 0x82, 0x82, 0x82, 0x7e, 0x81, 0x80, 0x82, 0x83, 0x82, 0x7e, 0x7e, 0x80, 0x81, 0x7d, -0x7b, 0x7c, 0x7d, 0x7e, 0x7b, 0x78, 0x7a, 0x7d, 0x7e, 0x80, 0x7d, 0x80, 0x7d, 0x7c, 0x7d, 0x7d, -0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x82, 0x84, 0x7b, 0x79, 0x7e, 0x7d, -0x7c, 0x7c, 0x7d, 0x82, 0x81, 0x80, 0x80, 0x81, 0x82, 0x7e, 0x80, 0x80, 0x81, 0x83, 0x82, 0x82, -0x82, 0x81, 0x7d, 0x7e, 0x7c, 0x7d, 0x80, 0x80, 0x80, 0x80, 0x7d, 0x7e, 0x7e, 0x7b, 0x7a, 0x81, -0x80, 0x7c, 0x7a, 0x7d, 0x80, 0x7e, 0x7d, 0x80, 0x82, 0x81, 0x7e, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, -0x7c, 0x80, 0x7d, 0x78, 0x7a, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x79, 0x78, 0x7d, 0x7c, 0x7b, 0x7c, -0x7b, 0x7c, 0x7c, 0x7c, 0x80, 0x7e, 0x7d, 0x80, 0x82, 0x81, 0x83, 0x83, 0x80, 0x82, 0x83, 0x82, -0x80, 0x83, 0x85, 0x83, 0x81, 0x86, 0x85, 0x83, 0x82, 0x7e, 0x7e, 0x80, 0x7e, 0x81, 0x7e, 0x7c, -0x80, 0x80, 0x83, 0x83, 0x82, 0x81, 0x81, 0x83, 0x84, 0x83, 0x81, 0x83, 0x83, 0x83, 0x85, 0x82, -0x7e, 0x7e, 0x80, 0x7e, 0x82, 0x81, 0x7c, 0x7e, 0x81, 0x7d, 0x80, 0x82, 0x82, 0x80, 0x81, 0x80, -0x7d, 0x7c, 0x7b, 0x7e, 0x7e, 0x7e, 0x7e, 0x7b, 0x80, 0x7e, 0x7a, 0x7b, 0x7c, 0x7d, 0x7d, 0x7b, -0x7c, 0x7c, 0x7a, 0x7e, 0x7d, 0x7c, 0x7d, 0x79, 0x7b, 0x80, 0x7e, 0x7c, 0x7d, 0x7c, 0x80, 0x7d, -0x7b, 0x7d, 0x80, 0x7c, 0x7e, 0x83, 0x80, 0x81, 0x82, 0x82, 0x84, 0x84, 0x82, 0x82, 0x82, 0x81, -0x84, 0x82, 0x7e, 0x80, 0x80, 0x82, 0x80, 0x7c, 0x7a, 0x7b, 0x7d, 0x80, 0x7d, 0x7d, 0x82, 0x82, -0x7d, 0x80, 0x81, 0x81, 0x81, 0x80, 0x84, 0x85, 0x83, 0x84, 0x84, 0x82, 0x87, 0x89, 0x83, 0x82, -0x86, 0x84, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x80, 0x80, 0x80, 0x81, 0x7e, 0x80, 0x84, -0x83, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7d, 0x81, 0x83, 0x80, 0x7d, 0x81, 0x83, 0x80, 0x80, 0x7d, -0x80, 0x81, 0x7e, 0x80, 0x81, 0x7d, 0x7b, 0x7e, 0x7d, 0x7c, 0x7a, 0x7a, 0x78, 0x7a, 0x7b, 0x78, -0x75, 0x72, 0x74, 0x75, 0x77, 0x7a, 0x7a, 0x78, 0x79, 0x7d, 0x7d, 0x7a, 0x7a, 0x7c, 0x7b, 0x7b, -0x7a, 0x7a, 0x78, 0x77, 0x79, 0x78, 0x7a, 0x7a, 0x77, 0x7b, 0x7b, 0x78, 0x7b, 0x7c, 0x7a, 0x7a, -0x7b, 0x7d, 0x7d, 0x7b, 0x7c, 0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x84, 0x81, 0x83, 0x85, 0x84, -0x84, 0x82, 0x83, 0x86, 0x87, 0x84, 0x83, 0x87, 0x88, 0x88, 0x89, 0x8a, 0x88, 0x88, 0x89, 0x86, -0x85, 0x88, 0x84, 0x83, 0x89, 0x89, 0x88, 0x86, 0x84, 0x86, 0x85, 0x83, 0x82, 0x83, 0x80, 0x80, -0x82, 0x82, 0x82, 0x83, 0x82, 0x7e, 0x82, 0x83, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7b, -0x7c, 0x7d, 0x7d, 0x7a, 0x7b, 0x81, 0x80, 0x7a, 0x7b, 0x7c, 0x7a, 0x7b, 0x7a, 0x78, 0x7b, 0x7b, -0x78, 0x7b, 0x7b, 0x79, 0x7d, 0x7c, 0x7b, 0x7c, 0x7d, 0x7a, 0x7b, 0x7b, 0x7a, 0x7c, 0x7c, 0x78, -0x79, 0x7b, 0x7c, 0x80, 0x80, 0x7c, 0x7e, 0x80, 0x7e, 0x7c, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, -0x80, 0x7e, 0x7e, 0x83, 0x83, 0x80, 0x82, 0x82, 0x81, 0x84, 0x85, 0x81, 0x83, 0x81, 0x81, 0x84, -0x84, 0x82, 0x84, 0x85, 0x84, 0x83, 0x83, 0x83, 0x83, 0x80, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x7d, -0x7d, 0x7e, 0x7c, 0x7a, 0x7c, 0x81, 0x7e, 0x7b, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, -0x7e, 0x7e, 0x7e, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x78, 0x78, 0x7a, 0x7a, 0x79, 0x79, 0x7c, 0x7e, -0x7c, 0x7d, 0x7e, 0x7b, 0x7a, 0x7d, 0x82, 0x7d, 0x7e, 0x82, 0x82, 0x80, 0x7e, 0x83, 0x83, 0x84, -0x87, 0x88, 0x85, 0x82, 0x83, 0x83, 0x83, 0x81, 0x81, 0x82, 0x82, 0x81, 0x83, 0x82, 0x84, 0x84, -0x82, 0x82, 0x84, 0x83, 0x7d, 0x80, 0x82, 0x81, 0x82, 0x80, 0x7d, 0x81, 0x81, 0x82, 0x82, 0x80, -0x80, 0x80, 0x80, 0x81, 0x81, 0x7e, 0x7d, 0x7e, 0x7e, 0x7c, 0x7c, 0x7d, 0x7b, 0x7b, 0x7b, 0x79, -0x7b, 0x7b, 0x79, 0x7a, 0x79, 0x7a, 0x7e, 0x7c, 0x7b, 0x7d, 0x7d, 0x7a, 0x7b, 0x7d, 0x7b, 0x7b, -0x79, 0x7a, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x82, 0x85, 0x84, 0x83, 0x82, 0x84, 0x85, 0x85, -0x84, 0x85, 0x86, 0x85, 0x84, 0x88, 0x86, 0x86, 0x87, 0x87, 0x88, 0x8b, 0x8b, 0x86, 0x85, 0x87, -0x84, 0x84, 0x86, 0x81, 0x82, 0x81, 0x81, 0x81, 0x7e, 0x80, 0x82, 0x82, 0x7e, 0x83, 0x83, 0x81, -0x82, 0x81, 0x80, 0x81, 0x83, 0x80, 0x7c, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7a, 0x79, 0x78, 0x7b, -0x7b, 0x79, 0x78, 0x7a, 0x76, 0x78, 0x7a, 0x76, 0x76, 0x76, 0x76, 0x75, 0x77, 0x79, 0x78, 0x77, -0x7a, 0x7a, 0x79, 0x7a, 0x7c, 0x7b, 0x79, 0x7d, 0x80, 0x7c, 0x79, 0x7e, 0x80, 0x7b, 0x7c, 0x7c, -0x7d, 0x7d, 0x7b, 0x7d, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, 0x7e, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, 0x80, -0x80, 0x81, 0x83, 0x82, 0x81, 0x83, 0x84, 0x85, 0x84, 0x82, 0x82, 0x85, 0x86, 0x85, 0x87, 0x84, -0x83, 0x85, 0x85, 0x7e, 0x7e, 0x83, 0x83, 0x83, 0x82, 0x83, 0x86, 0x85, 0x84, 0x85, 0x85, 0x85, -0x82, 0x82, 0x84, 0x83, 0x84, 0x82, 0x82, 0x84, 0x84, 0x83, 0x82, 0x80, 0x81, 0x85, 0x82, 0x80, -0x81, 0x82, 0x82, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7b, 0x7d, 0x82, -0x7e, 0x7b, 0x7e, 0x81, 0x80, 0x7d, 0x7b, 0x7d, 0x7c, 0x7e, 0x7e, 0x7b, 0x7b, 0x7b, 0x7d, 0x7b, -0x7d, 0x7d, 0x7b, 0x79, 0x79, 0x7c, 0x7c, 0x7b, 0x7a, 0x7b, 0x7b, 0x7d, 0x7c, 0x7b, 0x7e, 0x7d, -0x80, 0x81, 0x80, 0x82, 0x81, 0x7b, 0x7e, 0x81, 0x7e, 0x80, 0x7d, 0x7d, 0x7d, 0x7b, 0x7e, 0x7e, -0x7d, 0x7b, 0x7c, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7c, -0x7e, 0x80, 0x7d, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x81, 0x7e, 0x7d, 0x7e, 0x7e, 0x81, 0x80, 0x7d, -0x81, 0x80, 0x7e, 0x81, 0x82, 0x80, 0x82, 0x84, 0x82, 0x84, 0x84, 0x82, 0x83, 0x82, 0x80, 0x82, -0x83, 0x81, 0x7e, 0x7d, 0x7e, 0x82, 0x82, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x82, 0x81, 0x7d, -0x7c, 0x7d, 0x80, 0x82, 0x81, 0x7d, 0x7e, 0x82, 0x82, 0x82, 0x81, 0x80, 0x81, 0x82, 0x81, 0x7e, -0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x81, 0x7c, 0x7b, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, -0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7b, 0x7c, 0x80, 0x7e, 0x7e, 0x81, 0x82, 0x81, 0x83, 0x84, 0x82, -0x80, 0x82, 0x83, 0x83, 0x83, 0x81, 0x80, 0x83, 0x82, 0x82, 0x81, 0x7d, 0x80, 0x81, 0x7e, 0x7e, -0x7d, 0x7e, 0x7e, 0x81, 0x82, 0x82, 0x85, 0x81, 0x7e, 0x82, 0x83, 0x82, 0x80, 0x82, 0x83, 0x81, -0x82, 0x81, 0x81, 0x83, 0x80, 0x81, 0x83, 0x80, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x80, 0x82, -0x7e, 0x80, 0x82, 0x81, 0x7e, 0x81, 0x83, 0x84, 0x82, 0x82, 0x84, 0x83, 0x7e, 0x7d, 0x81, 0x81, -0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7c, 0x7c, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, -0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x82, 0x83, 0x80, 0x7e, 0x81, 0x83, 0x81, 0x7d, 0x80, -0x7d, 0x7c, 0x7c, 0x7b, 0x7d, 0x7c, 0x79, 0x78, 0x78, 0x78, 0x79, 0x78, 0x7a, 0x7a, 0x79, 0x7a, -0x7a, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x79, 0x7b, 0x7e, 0x7b, 0x79, -0x7b, 0x7c, 0x7d, 0x7b, 0x78, 0x7b, 0x7c, 0x78, 0x78, 0x7a, 0x78, 0x78, 0x7a, 0x7c, 0x7b, 0x7b, -0x7c, 0x7d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x82, 0x84, 0x83, 0x85, 0x88, 0x86, 0x86, 0x88, 0x89, -0x84, 0x84, 0x88, 0x87, 0x85, 0x85, 0x85, 0x84, 0x84, 0x85, 0x85, 0x85, 0x84, 0x83, 0x85, 0x87, -0x87, 0x84, 0x84, 0x87, 0x88, 0x88, 0x86, 0x87, 0x88, 0x87, 0x85, 0x87, 0x87, 0x85, 0x83, 0x82, -0x83, 0x86, 0x84, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x83, 0x81, 0x7d, 0x80, 0x80, 0x7c, 0x7d, -0x7e, 0x7a, 0x79, 0x7b, 0x7d, 0x7c, 0x7a, 0x78, 0x78, 0x79, 0x7b, 0x78, 0x75, 0x75, 0x77, 0x78, -0x76, 0x78, 0x79, 0x76, 0x76, 0x77, 0x7a, 0x7b, 0x78, 0x78, 0x7b, 0x7d, 0x7e, 0x80, 0x7d, 0x7b, -0x7c, 0x7b, 0x7c, 0x7e, 0x7a, 0x7b, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x7d, 0x80, 0x7e, -0x80, 0x81, 0x7d, 0x80, 0x82, 0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x81, 0x81, 0x81, 0x82, 0x84, -0x85, 0x84, 0x86, 0x88, 0x86, 0x82, 0x83, 0x85, 0x84, 0x82, 0x7d, 0x7d, 0x82, 0x81, 0x7c, 0x7c, -0x80, 0x82, 0x80, 0x80, 0x80, 0x82, 0x80, 0x7d, 0x81, 0x82, 0x80, 0x80, 0x7d, 0x7c, 0x80, 0x80, -0x7c, 0x7d, 0x7c, 0x7c, 0x7d, 0x7c, 0x7b, 0x7a, 0x7a, 0x7e, 0x7c, 0x79, 0x7b, 0x7c, 0x7d, 0x7a, -0x7d, 0x80, 0x7d, 0x7c, 0x7c, 0x7e, 0x7d, 0x7b, 0x7c, 0x7d, 0x81, 0x7e, 0x7b, 0x7d, 0x7e, 0x80, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x80, 0x80, 0x80, 0x81, 0x81, -0x81, 0x82, 0x83, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x80, 0x81, 0x81, 0x82, 0x80, 0x81, 0x82, -0x82, 0x82, 0x81, 0x82, 0x84, 0x81, 0x80, 0x81, 0x81, 0x7e, 0x7d, 0x81, 0x80, 0x7e, 0x81, 0x7e, -0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7e, 0x7e, 0x7d, 0x80, 0x7d, 0x7c, 0x7c, -0x7d, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x7e, 0x80, 0x83, 0x82, 0x82, 0x84, 0x82, -0x81, 0x82, 0x83, 0x84, 0x82, 0x82, 0x83, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x84, 0x84, -0x82, 0x81, 0x81, 0x85, 0x83, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x81, 0x81, 0x82, 0x80, 0x7c, 0x7d, -0x7e, 0x7b, 0x7b, 0x7c, 0x7a, 0x7b, 0x7a, 0x7c, 0x7b, 0x78, 0x7a, 0x7b, 0x79, 0x7a, 0x79, 0x78, -0x79, 0x78, 0x79, 0x78, 0x78, 0x77, 0x76, 0x74, 0x77, 0x79, 0x79, 0x79, 0x78, 0x7a, 0x78, 0x7a, -0x7b, 0x7b, 0x7b, 0x7a, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x80, 0x7e, 0x81, 0x82, 0x7d, 0x80, -0x82, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x82, 0x82, 0x7e, 0x81, 0x83, 0x82, 0x82, -0x82, 0x83, 0x85, 0x81, 0x82, 0x83, 0x85, 0x85, 0x82, 0x84, 0x85, 0x84, 0x86, 0x83, 0x83, 0x87, -0x83, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x84, 0x84, 0x85, 0x86, 0x81, 0x81, 0x85, 0x83, 0x7e, -0x80, 0x82, 0x81, 0x81, 0x82, 0x83, 0x82, 0x83, 0x85, 0x83, 0x82, 0x84, 0x86, 0x82, 0x81, 0x82, -0x83, 0x83, 0x83, 0x81, 0x80, 0x80, 0x82, 0x81, 0x7c, 0x7e, 0x81, 0x7d, 0x7c, 0x7e, 0x7e, 0x7a, -0x79, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7a, 0x7d, 0x7d, 0x78, 0x7a, 0x7c, 0x7a, -0x79, 0x78, 0x7b, 0x7e, 0x7d, 0x7d, 0x7e, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7b, 0x79, 0x7a, 0x7b, -0x7a, 0x79, 0x7b, 0x7c, 0x7d, 0x7c, 0x7d, 0x80, 0x7c, 0x7a, 0x7a, 0x7d, 0x7d, 0x7b, 0x7c, 0x7c, -0x7c, 0x7d, 0x80, 0x7e, 0x7e, 0x7e, 0x7c, 0x7d, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x7d, 0x80, -0x82, 0x7e, 0x7c, 0x81, 0x83, 0x80, 0x7d, 0x81, 0x81, 0x82, 0x84, 0x81, 0x7e, 0x81, 0x80, 0x80, -0x80, 0x81, 0x83, 0x81, 0x83, 0x83, 0x82, 0x83, 0x81, 0x80, 0x80, 0x82, 0x84, 0x82, 0x81, 0x82, -0x82, 0x85, 0x83, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x81, 0x7e, 0x7d, 0x80, 0x83, 0x81, -0x7c, 0x7c, 0x80, 0x80, 0x7d, 0x7b, 0x7e, 0x80, 0x7e, 0x7c, 0x7c, 0x7d, 0x7c, 0x7b, 0x7b, 0x7d, -0x7e, 0x7e, 0x7a, 0x7b, 0x7e, 0x7d, 0x7a, 0x7b, 0x7d, 0x7c, 0x7a, 0x78, 0x79, 0x7b, 0x7b, 0x7c, -0x7c, 0x7d, 0x7c, 0x7d, 0x7b, 0x7c, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x83, 0x84, 0x84, 0x83, 0x82, -0x84, 0x85, 0x82, 0x81, 0x83, 0x85, 0x84, 0x81, 0x83, 0x84, 0x81, 0x7e, 0x82, 0x85, 0x83, 0x82, -0x83, 0x83, 0x86, 0x86, 0x83, 0x83, 0x84, 0x82, 0x7e, 0x82, 0x82, 0x81, 0x7e, 0x81, 0x83, 0x83, -0x81, 0x7e, 0x7d, 0x80, 0x7d, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x7d, 0x7e, 0x81, 0x80, -0x7d, 0x80, 0x7d, 0x7d, 0x7d, 0x7b, 0x7d, 0x80, 0x7c, 0x7b, 0x7c, 0x7e, 0x7c, 0x7a, 0x7c, 0x80, -0x7e, 0x79, 0x7b, 0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x7d, 0x7b, 0x7d, -0x81, 0x80, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7c, 0x7d, 0x80, 0x7b, 0x79, 0x79, -0x7a, 0x7a, 0x79, 0x79, 0x7b, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7c, 0x7b, 0x7c, 0x7e, 0x7e, 0x7b, -0x7c, 0x7e, 0x7e, 0x7d, 0x7e, 0x82, 0x82, 0x7e, 0x7d, 0x7d, 0x80, 0x7d, 0x7a, 0x7c, 0x7c, 0x79, -0x7b, 0x7c, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7c, 0x7c, 0x7e, 0x7e, 0x7e, 0x81, -0x7e, 0x81, 0x81, 0x82, 0x81, 0x80, 0x84, 0x83, 0x83, 0x84, 0x85, 0x86, 0x85, 0x86, 0x85, 0x85, -0x87, 0x88, 0x88, 0x8a, 0x8b, 0x88, 0x86, 0x87, 0x89, 0x85, 0x84, 0x86, 0x84, 0x82, 0x83, 0x84, -0x84, 0x83, 0x84, 0x85, 0x85, 0x85, 0x84, 0x83, 0x85, 0x87, 0x84, 0x84, 0x85, 0x85, 0x85, 0x83, -0x80, 0x81, 0x81, 0x7e, 0x80, 0x80, 0x80, 0x7d, 0x7c, 0x7e, 0x7e, 0x7e, 0x7c, 0x7b, 0x7b, 0x7a, -0x7b, 0x7b, 0x79, 0x79, 0x7a, 0x79, 0x79, 0x7b, 0x77, 0x75, 0x77, 0x74, 0x73, 0x76, 0x76, 0x78, -0x76, 0x75, 0x79, 0x79, 0x77, 0x77, 0x7a, 0x7a, 0x79, 0x7b, 0x7d, 0x7c, 0x7a, 0x7c, 0x7c, 0x7b, -0x7e, 0x7d, 0x7a, 0x7a, 0x7d, 0x7e, 0x7b, 0x7c, 0x7e, 0x7a, 0x7a, 0x7e, 0x81, 0x7d, 0x7d, 0x81, -0x82, 0x83, 0x83, 0x83, 0x83, 0x85, 0x84, 0x83, 0x83, 0x84, 0x81, 0x82, 0x86, 0x87, 0x82, 0x83, -0x83, 0x83, 0x84, 0x83, 0x83, 0x83, 0x81, 0x82, 0x83, 0x82, 0x81, 0x82, 0x83, 0x82, 0x83, 0x86, -0x83, 0x81, 0x82, 0x81, 0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x7e, 0x7c, 0x7e, 0x80, 0x80, 0x7d, -0x7d, 0x82, 0x82, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x79, 0x7a, 0x7c, -0x7b, 0x7a, 0x7a, 0x7d, 0x80, 0x7b, 0x7a, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, -0x80, 0x7e, 0x7e, 0x81, 0x7e, 0x7b, 0x7d, 0x7c, 0x7c, 0x7e, 0x82, 0x82, 0x82, 0x83, 0x82, 0x83, -0x83, 0x83, 0x81, 0x7d, 0x80, 0x82, 0x81, 0x80, 0x82, 0x84, 0x82, 0x80, 0x82, 0x84, 0x84, 0x81, -0x82, 0x83, 0x83, 0x80, 0x80, 0x82, 0x83, 0x80, 0x81, 0x82, 0x82, 0x81, 0x81, 0x83, 0x85, 0x84, -0x82, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7c, 0x80, -0x80, 0x7c, 0x7d, 0x80, 0x7d, 0x7d, 0x82, 0x83, 0x7d, 0x7d, 0x81, 0x83, 0x7e, 0x7e, 0x81, 0x7e, -0x7c, 0x7c, 0x7e, 0x7d, 0x7d, 0x7e, 0x81, 0x81, 0x81, 0x80, 0x81, 0x80, 0x82, 0x83, 0x80, 0x7e, -0x80, 0x80, 0x7c, 0x7c, 0x82, 0x81, 0x7e, 0x81, 0x81, 0x7e, 0x7e, 0x7d, 0x7b, 0x7b, 0x7c, 0x7b, -0x79, 0x7a, 0x7a, 0x7b, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7d, 0x79, 0x79, 0x7d, 0x7d, 0x7a, 0x78, -0x79, 0x7a, 0x78, 0x77, 0x79, 0x79, 0x7b, 0x79, 0x7a, 0x7c, 0x7d, 0x7b, 0x7b, 0x7d, 0x7d, 0x7d, -0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x7e, 0x7e, 0x80, -0x80, 0x80, 0x81, 0x82, 0x81, 0x80, 0x82, 0x82, 0x84, 0x85, 0x83, 0x84, 0x86, 0x85, 0x85, 0x86, -0x86, 0x84, 0x85, 0x85, 0x85, 0x85, 0x82, 0x84, 0x86, 0x82, 0x84, 0x84, 0x81, 0x82, 0x84, 0x81, -0x83, 0x85, 0x83, 0x82, 0x83, 0x84, 0x83, 0x81, 0x7e, 0x7e, 0x81, 0x7c, 0x7d, 0x82, 0x7d, 0x7e, -0x83, 0x83, 0x80, 0x81, 0x82, 0x82, 0x81, 0x84, 0x83, 0x83, 0x84, 0x83, 0x82, 0x81, 0x84, 0x82, -0x7e, 0x80, 0x81, 0x81, 0x7e, 0x80, 0x80, 0x7d, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x7c, 0x7c, 0x7c, -0x7c, 0x7d, 0x7c, 0x78, 0x79, 0x7a, 0x7a, 0x7a, 0x78, 0x79, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x7a, -0x78, 0x7a, 0x7b, 0x7a, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, -0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7b, 0x7d, 0x7b, 0x7a, 0x7c, 0x7a, 0x7b, 0x80, 0x7e, 0x7d, 0x7e, -0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x7e, -0x80, 0x81, 0x82, 0x81, 0x81, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x82, 0x81, 0x84, 0x85, 0x85, -0x85, 0x83, 0x83, 0x86, 0x85, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x83, 0x84, 0x83, 0x83, 0x83, -0x85, 0x84, 0x83, 0x82, 0x81, 0x82, 0x80, 0x80, 0x82, 0x7e, 0x7d, 0x80, 0x7c, 0x7c, 0x7c, 0x7b, -0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x80, 0x80, 0x7d, 0x7c, 0x7e, 0x7b, 0x7a, 0x7d, 0x7c, 0x7b, 0x7a, -0x7b, 0x7c, 0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x78, 0x7a, 0x7d, 0x7d, 0x7b, 0x7b, 0x7c, 0x7b, 0x7c, -0x7d, 0x7d, 0x80, 0x7c, 0x7d, 0x81, 0x82, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x82, 0x80, 0x81, -0x83, 0x83, 0x83, 0x85, 0x84, 0x81, 0x84, 0x85, 0x84, 0x83, 0x85, 0x86, 0x85, 0x84, 0x86, 0x86, -0x84, 0x83, 0x84, 0x86, 0x83, 0x82, 0x84, 0x84, 0x80, 0x81, 0x82, 0x82, 0x80, 0x7e, 0x82, 0x83, -0x80, 0x80, 0x81, 0x82, 0x80, 0x80, 0x81, 0x7e, 0x80, 0x7e, 0x7c, 0x7e, 0x81, 0x80, 0x7e, 0x7e, -0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7b, 0x7a, 0x7b, 0x7d, 0x7b, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7a, -0x79, 0x79, 0x79, 0x7a, 0x7a, 0x7b, 0x7a, 0x79, 0x79, 0x7a, 0x78, 0x78, 0x7a, 0x7a, 0x7a, 0x7c, -0x7e, 0x7d, 0x7e, 0x81, 0x80, 0x7e, 0x80, 0x7d, 0x7c, 0x7d, 0x7c, 0x7b, 0x7c, 0x80, 0x80, 0x7d, -0x7c, 0x7e, 0x80, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x81, -0x80, 0x7e, 0x7c, 0x80, 0x82, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x7e, 0x7e, 0x80, 0x80, 0x7d, -0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x83, 0x84, 0x83, 0x83, 0x83, -0x83, 0x83, 0x83, 0x81, 0x81, 0x82, 0x82, 0x82, 0x83, 0x83, 0x82, 0x83, 0x83, 0x84, 0x84, 0x83, -0x83, 0x85, 0x85, 0x83, 0x83, 0x83, 0x82, 0x82, 0x83, 0x84, 0x84, 0x84, 0x82, 0x83, 0x85, 0x85, -0x83, 0x83, 0x83, 0x84, 0x83, 0x82, 0x84, 0x83, 0x82, 0x82, 0x83, 0x83, 0x80, 0x81, 0x81, 0x7d, -0x7e, 0x80, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7a, 0x7b, 0x7d, 0x7b, 0x7a, 0x7a, 0x7a, 0x7b, -0x7b, 0x7a, 0x79, 0x7a, 0x7a, 0x77, 0x77, 0x79, 0x7a, 0x78, 0x78, 0x79, 0x78, 0x78, 0x76, 0x77, -0x77, 0x78, 0x79, 0x79, 0x7a, 0x7c, 0x7b, 0x7d, 0x80, 0x7e, 0x7c, 0x7e, 0x7c, 0x79, 0x7b, 0x7e, -0x7d, 0x7b, 0x7d, 0x7e, 0x7d, 0x7a, 0x7a, 0x7e, 0x7e, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x81, -0x81, 0x83, 0x83, 0x82, 0x85, 0x85, 0x84, 0x84, 0x84, 0x85, 0x86, 0x84, 0x84, 0x84, 0x82, 0x83, -0x82, 0x80, 0x82, 0x84, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x81, 0x81, 0x81, 0x81, -0x80, 0x82, 0x82, 0x81, 0x81, 0x82, 0x80, 0x7d, 0x80, 0x81, 0x80, 0x80, 0x82, 0x81, 0x81, 0x81, -0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7b, 0x7d, -0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x80, 0x80, -0x7d, 0x7c, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7b, 0x7b, 0x7b, 0x7d, 0x7d, -0x7e, 0x7e, 0x7e, 0x81, 0x81, 0x80, 0x82, 0x82, 0x81, 0x80, 0x81, 0x82, 0x83, 0x82, 0x82, 0x84, -0x84, 0x83, 0x85, 0x83, 0x82, 0x82, 0x81, 0x83, 0x82, 0x84, 0x82, 0x81, 0x83, 0x82, 0x80, 0x81, -0x82, 0x80, 0x7e, 0x7e, 0x80, 0x7d, 0x7b, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x81, -0x81, 0x7e, 0x7e, 0x81, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x81, 0x81, 0x7e, 0x80, 0x81, 0x7e, 0x7e, -0x81, 0x81, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x7e, 0x7d, 0x7c, 0x7d, 0x7c, -0x7b, 0x7c, 0x7c, 0x7b, 0x7a, 0x7b, 0x7b, 0x7a, 0x7b, 0x7c, 0x7c, 0x7a, 0x7b, 0x7d, 0x7e, 0x7d, -0x7c, 0x7e, 0x7e, 0x7c, 0x7c, 0x7a, 0x7a, 0x7c, 0x7b, 0x7b, 0x7e, 0x7e, 0x7b, 0x7a, 0x7a, 0x7b, -0x7b, 0x7a, 0x78, 0x7a, 0x7c, 0x7b, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7c, -0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x84, -0x85, 0x84, 0x84, 0x83, 0x84, 0x87, 0x85, 0x84, 0x86, 0x87, 0x86, 0x85, 0x85, 0x86, 0x84, 0x82, -0x83, 0x83, 0x83, 0x83, 0x85, 0x85, 0x85, 0x85, 0x83, 0x82, 0x82, 0x83, 0x80, 0x80, 0x82, 0x80, -0x7d, 0x81, 0x81, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x82, 0x80, -0x80, 0x80, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x81, 0x81, 0x7d, 0x80, 0x82, 0x7d, 0x7c, 0x7e, 0x7d, -0x7b, 0x7d, 0x7e, 0x7c, 0x7b, 0x7d, 0x7d, 0x7d, 0x7c, 0x7b, 0x7a, 0x7b, 0x7c, 0x7b, 0x7a, 0x7d, -0x7e, 0x7b, 0x79, 0x7c, 0x7e, 0x7c, 0x7a, 0x7c, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, -0x7b, 0x7d, 0x7d, 0x7c, 0x7b, 0x7c, 0x7e, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7b, 0x7b, 0x79, 0x7b, -0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7b, 0x7b, 0x7e, 0x7e, 0x80, 0x80, -0x80, 0x82, 0x82, 0x81, 0x80, 0x81, 0x81, 0x80, 0x82, 0x80, 0x7e, 0x81, 0x81, 0x80, 0x80, 0x81, -0x83, 0x83, 0x82, 0x82, 0x83, 0x83, 0x82, 0x83, 0x84, 0x83, 0x82, 0x83, 0x84, 0x86, 0x86, 0x84, -0x83, 0x83, 0x83, 0x83, 0x82, 0x81, 0x80, 0x82, 0x81, 0x80, 0x82, 0x82, 0x80, 0x80, 0x81, 0x82, -0x82, 0x7e, 0x7e, 0x81, 0x80, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c, -0x7e, 0x80, 0x80, 0x7e, 0x7c, 0x7d, 0x7e, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x7e, -0x7c, 0x7b, 0x7a, 0x7b, 0x7a, 0x79, 0x78, 0x78, 0x7a, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, 0x7d, 0x7b, -0x7b, 0x7e, 0x7e, 0x7c, 0x7e, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x81, 0x83, 0x82, 0x81, 0x83, 0x84, -0x83, 0x80, 0x80, 0x82, 0x82, 0x80, 0x81, 0x84, 0x83, 0x82, 0x83, 0x83, 0x82, 0x84, 0x84, 0x83, -0x83, 0x84, 0x84, 0x81, 0x80, 0x81, 0x83, 0x83, 0x81, 0x81, 0x82, 0x82, 0x83, 0x82, 0x80, 0x82, -0x83, 0x81, 0x7e, 0x81, 0x82, 0x81, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x7c, 0x7b, -0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x79, -0x79, 0x79, 0x79, 0x7a, 0x7b, 0x7b, 0x7a, 0x7a, 0x7a, 0x7c, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x81, 0x80, 0x7e, 0x80, 0x7e, 0x7d, -0x7c, 0x7c, 0x7e, 0x7e, 0x7d, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7e, -0x80, 0x80, 0x7e, 0x80, 0x81, 0x7d, 0x7e, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, -0x81, 0x81, 0x83, 0x81, 0x81, 0x83, 0x83, 0x83, 0x84, 0x84, 0x85, 0x83, 0x83, 0x83, 0x82, 0x82, -0x84, 0x84, 0x82, 0x83, 0x84, 0x83, 0x82, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x83, 0x81, -0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x83, 0x82, 0x7e, 0x81, 0x80, 0x80, 0x82, 0x83, 0x83, 0x82, -0x82, 0x83, 0x84, 0x82, 0x83, 0x82, 0x81, 0x81, 0x81, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, -0x7d, 0x7b, 0x7b, 0x7c, 0x7d, 0x7b, 0x7a, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7a, 0x7a, 0x7b, 0x7a, -0x7a, 0x79, 0x78, 0x7a, 0x79, 0x78, 0x7a, 0x7a, 0x78, 0x78, 0x79, 0x7a, 0x7b, 0x7a, 0x7a, 0x7a, -0x7b, 0x7c, 0x7b, 0x7a, 0x7d, 0x7d, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7c, 0x7c, 0x80, 0x80, 0x7e, -0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x82, 0x83, 0x82, 0x81, -0x82, 0x83, 0x82, 0x82, 0x83, 0x84, 0x84, 0x82, 0x84, 0x85, 0x84, 0x84, 0x86, 0x84, 0x84, 0x86, -0x84, 0x83, 0x85, 0x83, 0x82, 0x83, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x82, -0x81, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x7d, -0x7d, 0x7d, 0x7b, 0x7c, 0x7d, 0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7e, 0x80, -0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x82, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, -0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x80, 0x80, -0x7d, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x81, 0x82, 0x80, 0x80, 0x82, 0x83, 0x82, 0x81, 0x80, 0x81, -0x81, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7c, 0x7d, 0x80, 0x80, 0x7d, 0x7e, -0x80, 0x7e, 0x7e, 0x80, 0x82, 0x82, 0x81, 0x82, 0x83, 0x81, 0x81, 0x82, 0x83, 0x82, 0x82, 0x81, -0x81, 0x81, 0x7e, 0x7e, 0x81, 0x82, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x81, 0x80, 0x7d, -0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7c, 0x7b, 0x7a, 0x7b, -0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7c, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, -0x7d, 0x7e, 0x80, 0x80, 0x7d, 0x7e, 0x80, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7b, 0x7b, 0x7d, -0x7c, 0x7a, 0x7b, 0x7e, 0x7e, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x81, -0x80, 0x81, 0x82, 0x81, 0x82, 0x84, 0x84, 0x84, 0x82, 0x81, 0x82, 0x82, 0x82, 0x83, 0x82, 0x83, -0x85, 0x85, 0x84, 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x81, 0x83, 0x85, 0x85, 0x84, -0x84, 0x85, 0x85, 0x84, 0x82, 0x82, 0x84, 0x83, 0x81, 0x80, 0x83, 0x81, 0x80, 0x81, 0x81, 0x82, -0x82, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x7c, 0x7e, 0x80, 0x7d, 0x7e, 0x81, 0x80, 0x7c, 0x7c, -0x7e, 0x7d, 0x7e, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, -0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x79, 0x79, 0x7c, 0x7c, 0x7b, 0x7c, 0x7e, 0x7d, 0x7c, 0x7d, -0x7e, 0x7d, 0x7c, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x7d, 0x7c, 0x80, 0x7e, 0x7c, 0x7e, 0x80, 0x7c, -0x7b, 0x7d, 0x7d, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x79, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, -0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x82, 0x81, 0x80, 0x81, 0x80, 0x80, 0x7e, -0x7e, 0x80, 0x81, 0x81, 0x7d, 0x7e, 0x81, 0x81, 0x81, 0x80, 0x81, 0x82, 0x82, 0x80, 0x80, 0x83, -0x83, 0x82, 0x82, 0x84, 0x86, 0x85, 0x83, 0x84, 0x86, 0x85, 0x84, 0x84, 0x84, 0x85, 0x83, 0x82, -0x83, 0x84, 0x83, 0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x80, 0x81, 0x82, 0x80, 0x7e, 0x80, 0x7e, -0x7d, 0x7d, 0x7e, 0x7c, 0x7d, 0x7d, 0x7c, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, -0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, -0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, -0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x82, 0x81, 0x81, 0x82, -0x82, 0x82, 0x83, 0x82, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x82, 0x81, 0x80, 0x82, 0x81, -0x81, 0x83, 0x83, 0x81, 0x82, 0x83, 0x82, 0x82, 0x82, 0x84, 0x83, 0x82, 0x84, 0x85, 0x83, 0x81, -0x80, 0x82, 0x80, 0x80, 0x83, 0x81, 0x81, 0x80, 0x7d, 0x80, 0x81, 0x7e, 0x7c, 0x7d, 0x7d, 0x7c, -0x7b, 0x7b, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7a, 0x7a, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, -0x7c, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7d, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d, -0x7c, 0x7a, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x81, 0x80, 0x7e, 0x81, -0x83, 0x81, 0x81, 0x83, 0x83, 0x83, 0x81, 0x80, 0x82, 0x82, 0x81, 0x80, 0x81, 0x82, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x81, 0x80, 0x80, 0x80, -0x80, 0x82, 0x82, 0x80, 0x81, 0x84, 0x83, 0x81, 0x82, 0x83, 0x83, 0x80, 0x81, 0x83, 0x82, 0x81, -0x81, 0x82, 0x83, 0x83, 0x82, 0x82, 0x82, 0x83, 0x82, 0x81, 0x82, 0x80, 0x80, 0x82, 0x82, 0x83, -0x83, 0x81, 0x80, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x80, 0x81, -0x81, 0x81, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7a, 0x79, 0x7a, -0x7b, 0x7a, 0x7a, 0x7b, 0x7c, 0x7a, 0x79, 0x7a, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7a, 0x79, 0x79, -0x7a, 0x7b, 0x7b, 0x79, 0x7b, 0x7d, 0x7b, 0x7a, 0x7c, 0x7c, 0x7b, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, -0x7b, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x81, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x80, -0x7e, 0x81, 0x82, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x82, 0x83, -0x84, 0x83, 0x82, 0x83, 0x82, 0x82, 0x83, 0x83, 0x82, 0x81, 0x82, 0x82, 0x82, 0x83, 0x83, 0x81, -0x82, 0x83, 0x84, 0x84, 0x82, 0x82, 0x82, 0x81, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82, -0x82, 0x81, 0x81, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7c, 0x7c, -0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x81, -0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x81, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x7d, 0x7e, 0x7e, 0x7c, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x80, 0x80, -0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, -0x80, 0x7d, 0x7c, 0x7d, 0x7c, 0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x80, 0x7e, 0x7e, 0x7e, -0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, -0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, -0x80, 0x80, 0x81, 0x80, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7c, 0x7c, -0x7d, 0x7d, 0x7c, 0x7d, 0x80, 0x7e, 0x7c, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x7a, -0x7a, 0x7a, 0x7a, 0x7b, 0x7a, 0x79, 0x7c, 0x7b, 0x7a, 0x7b, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, -0x80, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, -0x81, 0x81, 0x82, 0x81, 0x80, 0x81, 0x83, 0x84, 0x83, 0x81, 0x82, 0x82, 0x82, 0x84, 0x84, 0x83, -0x83, 0x84, 0x83, 0x84, 0x85, 0x85, 0x84, 0x84, 0x85, 0x84, 0x84, 0x85, 0x84, 0x83, 0x84, 0x85, -0x85, 0x84, 0x84, 0x85, 0x85, 0x82, 0x80, 0x82, 0x82, 0x80, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, -0x7e, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7c, 0x7e, 0x7e, 0x7d, -0x7c, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7a, 0x79, 0x79, 0x7c, 0x7c, 0x7c, 0x7b, -0x7b, 0x7c, 0x7b, 0x7a, 0x7b, 0x7c, 0x7b, 0x7a, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, -0x7c, 0x7c, 0x7e, 0x7e, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7b, 0x7c, -0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x80, 0x7e, 0x7e, 0x80, 0x80, -0x81, 0x81, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x80, -0x80, 0x80, 0x7e, 0x81, 0x83, 0x82, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x82, -0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x83, 0x84, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x83, -0x84, 0x83, 0x83, 0x83, 0x81, 0x82, 0x83, 0x81, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x80, -0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, -0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, -0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, -0x80, 0x81, 0x7d, 0x7d, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x82, 0x81, 0x81, -0x80, 0x80, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x80, 0x80, 0x81, 0x81, 0x81, -0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x81, 0x80, 0x82, 0x81, 0x80, 0x81, 0x80, -0x80, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, -0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, -0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7b, 0x7a, -0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e, -0x81, 0x82, 0x81, 0x81, 0x83, 0x83, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, -0x80, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x82, 0x81, 0x80, 0x7e, 0x80, -0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x82, 0x81, 0x81, 0x82, 0x82, 0x83, 0x82, 0x82, 0x83, 0x83, -0x82, 0x82, 0x83, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x82, -0x83, 0x83, 0x83, 0x83, 0x83, 0x84, 0x82, 0x81, 0x82, 0x82, 0x81, 0x7e, 0x80, 0x81, 0x80, 0x7d, -0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, -0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7b, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7a, 0x7a, 0x7b, -0x7a, 0x79, 0x7b, 0x7b, 0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7d, 0x7d, -0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x82, 0x83, 0x81, 0x82, 0x83, -0x83, 0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x84, 0x84, 0x82, 0x81, 0x81, 0x82, 0x83, 0x83, 0x82, -0x83, 0x84, 0x84, 0x83, 0x83, 0x84, 0x82, 0x81, 0x83, 0x84, 0x84, 0x82, 0x81, 0x83, 0x83, 0x82, -0x82, 0x82, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x81, 0x82, 0x82, 0x83, 0x82, 0x7e, 0x7e, -0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, -0x7b, 0x7c, 0x7d, 0x80, 0x7e, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, -0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7d, 0x7c, 0x7d, -0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x80, 0x7e, -0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7d, -0x7d, 0x7e, 0x80, 0x81, 0x80, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x82, 0x80, 0x7e, 0x81, 0x80, 0x80, -0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x80, 0x7d, 0x7e, -0x81, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x80, 0x82, 0x81, 0x81, 0x82, -0x80, 0x7e, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, -0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7c, 0x7b, 0x7d, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, -0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, -0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x80, -0x80, 0x7e, 0x81, 0x82, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x83, 0x82, 0x83, 0x83, 0x82, 0x83, -0x82, 0x82, 0x84, 0x84, 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x85, 0x84, 0x84, 0x84, 0x84, 0x83, -0x84, 0x84, 0x82, 0x82, 0x83, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, -0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7c, 0x7d, 0x7c, 0x7c, -0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, -0x7a, 0x7a, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, -0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, -0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, -0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, -0x81, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x84, 0x83, 0x82, 0x83, 0x83, 0x82, 0x81, 0x83, 0x82, -0x82, 0x82, 0x82, 0x80, 0x80, 0x82, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, -0x7e, 0x7d, 0x7c, 0x7e, 0x7e, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7d, -0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, -0x7a, 0x7a, 0x7b, 0x7b, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x83, -0x84, 0x83, 0x82, 0x83, 0x82, 0x81, 0x81, 0x82, 0x82, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, -0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, -0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x81, 0x81, -0x81, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x7e, 0x7e, -0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x83, 0x82, 0x82, -0x83, 0x83, 0x82, 0x83, 0x82, 0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x81, -0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x80, 0x80, 0x82, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, -0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, 0x7b, 0x7a, 0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, -0x7b, 0x7c, 0x7c, 0x7d, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, -0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7b, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, -0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, 0x83, 0x82, 0x81, 0x81, -0x83, 0x83, 0x84, 0x83, 0x82, 0x83, 0x83, 0x82, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x83, -0x82, 0x83, 0x84, 0x84, 0x83, 0x82, 0x83, 0x82, 0x82, 0x83, 0x83, 0x82, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, -0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, -0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, -0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x81, 0x81, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, -0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x83, -0x82, 0x81, 0x81, 0x81, 0x82, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7e, -0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, -0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, -0x7b, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x81, -0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x83, -0x84, 0x84, 0x83, 0x83, 0x82, 0x82, 0x84, 0x84, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, -0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, -0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, -0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7d, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x81, 0x82, 0x82, 0x81, 0x81, -0x82, 0x82, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x80, 0x81, 0x82, -0x82, 0x82, 0x83, 0x83, 0x82, 0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83, 0x82, 0x83, 0x83, 0x83, -0x83, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x80, -0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, -0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7c, 0x7b, 0x7c, 0x7d, 0x7c, 0x7c, -0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7b, 0x7b, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7b, 0x7c, -0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, -0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, -0x82, 0x81, 0x82, 0x83, 0x83, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x84, 0x83, 0x83, 0x83, 0x82, -0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, -0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7e, -0x80, 0x81, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, -0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x82, -0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x82, 0x82, 0x81, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, -0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, -0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, -0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x83, -0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x84, 0x83, 0x83, 0x83, 0x83, 0x84, 0x83, 0x83, 0x84, -0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x83, 0x82, 0x82, 0x81, 0x82, 0x82, 0x81, 0x81, -0x81, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, -0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, -0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, -0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, -0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x81, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x81, -0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, -0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7c, -0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, -0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x83, 0x83, 0x82, -0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x81, 0x82, 0x82, 0x82, 0x83, 0x82, 0x82, 0x82, 0x82, -0x82, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7d, -0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, -0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, -0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, -0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x81, 0x80, -0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, -0x81, 0x81, 0x81, 0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, -0x81, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x83, 0x82, 0x82, -0x82, 0x82, 0x82, 0x83, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, -0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, -0x7e, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, -0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7d, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, -0x83, 0x83, 0x82, 0x82, 0x83, 0x83, 0x82, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x83, 0x83, 0x82, -0x81, 0x81, 0x81, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, -0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, -0x80, 0x81, 0x82, 0x81, 0x82, 0x82, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x80, 0x80, -0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x7e, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, -0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, -0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, -0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, -0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, -0x82, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x82, -0x82, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, -0x82, 0x82, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, -0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, -0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, -0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, -0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, -0x82, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x81, -0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, -0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, -0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, -0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x81, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, -0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, -0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, -0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x82, 0x82, 0x82, -0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x80, 0x81, 0x81, 0x81, -0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, -0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, -0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, -0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, -0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, -0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, -0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x80, -0x80, 0x7e, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, -0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, -0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, -0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, -0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, -0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, -0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, -0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, -0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, -0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, -0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, -0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, -0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, -0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, -0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, -0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, -0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, -0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, -0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, -0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, -0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, -0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, -0x80, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, -0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, -0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, -0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, -0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, -0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, -0x80, 0x80, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, -0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, -0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7f, 0x80, 0x7e, 0x7e, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, -0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x81, 0x80, 0x80, 0x81, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7f, 0x80, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, -0x81, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, -0x80, 0x81, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, -0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, -0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, -0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, -0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, -0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, -0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, -0x7e, 0x7e, 0x7f, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x81, 0x7e, 0x7a, 0x79, 0x79, 0x7c, 0x81, 0x82, 0x82, +0x81, 0x7e, 0x7d, 0x7b, 0x7a, 0x7a, 0x7b, 0x7e, 0x82, 0x84, 0x84, 0x85, 0x84, 0x80, 0x7d, 0x7a, +0x78, 0x78, 0x7a, 0x80, 0x84, 0x87, 0x86, 0x80, 0x7a, 0x77, 0x79, 0x7d, 0x82, 0x85, 0x84, 0x82, +0x7d, 0x7a, 0x77, 0x76, 0x77, 0x79, 0x80, 0x84, 0x86, 0x88, 0x87, 0x84, 0x7e, 0x77, 0x74, 0x75, +0x79, 0x81, 0x88, 0x8b, 0x89, 0x87, 0x84, 0x7e, 0x78, 0x73, 0x72, 0x78, 0x82, 0x8b, 0x8f, 0x8e, +0x88, 0x7e, 0x71, 0x69, 0x6d, 0x79, 0x88, 0x8f, 0x8c, 0x85, 0x80, 0x80, 0x81, 0x7d, 0x77, 0x73, +0x76, 0x7e, 0x88, 0x8f, 0x8d, 0x85, 0x7e, 0x7b, 0x7b, 0x7e, 0x81, 0x80, 0x7d, 0x7c, 0x7c, 0x80, +0x83, 0x82, 0x80, 0x7d, 0x7d, 0x80, 0x82, 0x84, 0x83, 0x80, 0x7c, 0x7b, 0x7d, 0x81, 0x84, 0x84, +0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x7c, 0x7a, 0x79, 0x7c, 0x83, 0x87, 0x87, 0x83, 0x7e, 0x79, 0x78, +0x78, 0x79, 0x7b, 0x7c, 0x7d, 0x81, 0x82, 0x83, 0x84, 0x83, 0x7e, 0x7a, 0x77, 0x78, 0x7b, 0x7e, +0x81, 0x82, 0x80, 0x7e, 0x7e, 0x81, 0x82, 0x80, 0x7e, 0x80, 0x82, 0x82, 0x81, 0x7e, 0x7c, 0x7b, +0x7b, 0x7c, 0x80, 0x83, 0x84, 0x83, 0x82, 0x80, 0x7e, 0x7a, 0x77, 0x77, 0x78, 0x7c, 0x82, 0x85, +0x86, 0x85, 0x84, 0x82, 0x7e, 0x7b, 0x77, 0x75, 0x78, 0x7e, 0x83, 0x85, 0x85, 0x85, 0x84, 0x83, +0x81, 0x7c, 0x7a, 0x7a, 0x7c, 0x7e, 0x81, 0x82, 0x83, 0x84, 0x84, 0x82, 0x80, 0x7e, 0x7c, 0x7a, +0x7a, 0x7c, 0x80, 0x83, 0x86, 0x87, 0x84, 0x80, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, +0x83, 0x87, 0x88, 0x87, 0x82, 0x7c, 0x78, 0x79, 0x7b, 0x7c, 0x7d, 0x81, 0x85, 0x8a, 0x8a, 0x85, +0x7e, 0x79, 0x78, 0x79, 0x7a, 0x7c, 0x7c, 0x7e, 0x81, 0x82, 0x83, 0x81, 0x7e, 0x7d, 0x7c, 0x7d, +0x80, 0x7e, 0x7b, 0x7a, 0x7b, 0x7c, 0x81, 0x83, 0x83, 0x84, 0x81, 0x7d, 0x7a, 0x77, 0x78, 0x7a, +0x7d, 0x80, 0x83, 0x85, 0x85, 0x83, 0x7e, 0x7a, 0x7c, 0x80, 0x82, 0x81, 0x7e, 0x7c, 0x7c, 0x7e, +0x81, 0x82, 0x84, 0x84, 0x84, 0x84, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, +0x7d, 0x82, 0x86, 0x89, 0x89, 0x85, 0x7a, 0x6f, 0x69, 0x64, 0x62, 0x6f, 0x8f, 0xb2, 0xc9, 0xcc, +0xb1, 0x80, 0x4f, 0x2c, 0x18, 0x24, 0x53, 0x8c, 0xb3, 0xc9, 0xd0, 0xbe, 0x9c, 0x78, 0x5b, 0x4b, +0x4e, 0x5d, 0x76, 0x8b, 0x92, 0x9d, 0x9d, 0x90, 0x87, 0x7a, 0x70, 0x6c, 0x70, 0x7a, 0x86, 0x8b, +0x8e, 0x8b, 0x83, 0x7b, 0x77, 0x78, 0x7a, 0x80, 0x82, 0x82, 0x83, 0x81, 0x7a, 0x79, 0x7e, 0x84, +0x89, 0x8b, 0x85, 0x7b, 0x71, 0x6f, 0x71, 0x73, 0x79, 0x88, 0x94, 0x99, 0x96, 0x8f, 0x82, 0x6c, +0x5f, 0x60, 0x67, 0x77, 0x8f, 0xa1, 0xa6, 0x9c, 0x85, 0x67, 0x56, 0x58, 0x69, 0x83, 0x99, 0xa7, +0xa7, 0x97, 0x82, 0x6a, 0x57, 0x54, 0x5e, 0x74, 0x90, 0xa5, 0xa9, 0x9c, 0x86, 0x6f, 0x60, 0x5d, +0x67, 0x7b, 0x8f, 0x98, 0x98, 0x8e, 0x7d, 0x6b, 0x60, 0x63, 0x70, 0x84, 0x99, 0xa5, 0xa4, 0x94, +0x7d, 0x67, 0x58, 0x59, 0x63, 0x75, 0x89, 0x93, 0x96, 0x98, 0x96, 0x90, 0x86, 0x77, 0x69, 0x5f, +0x5d, 0x69, 0x7c, 0x8d, 0x99, 0x9a, 0x92, 0x86, 0x74, 0x68, 0x68, 0x74, 0x84, 0x93, 0x9b, 0x98, +0x8d, 0x7a, 0x69, 0x60, 0x61, 0x6a, 0x7a, 0x8d, 0x9e, 0xa4, 0x98, 0x83, 0x6c, 0x5e, 0x60, 0x6c, +0x7d, 0x91, 0x98, 0x94, 0x8b, 0x79, 0x6c, 0x67, 0x6a, 0x78, 0x88, 0x92, 0x98, 0x8e, 0x7b, 0x69, +0x61, 0x69, 0x7a, 0x8f, 0x9e, 0xa1, 0x97, 0x87, 0x78, 0x6d, 0x6a, 0x6e, 0x74, 0x7c, 0x82, 0x80, +0x7c, 0x7d, 0x81, 0x85, 0x8b, 0x91, 0x92, 0x8b, 0x7d, 0x70, 0x64, 0x5d, 0x5c, 0x67, 0x80, 0x9a, +0xb1, 0xbd, 0xb7, 0x9f, 0x7a, 0x53, 0x36, 0x31, 0x45, 0x6a, 0x99, 0xc5, 0xd8, 0xca, 0xa4, 0x73, +0x46, 0x2a, 0x2d, 0x50, 0x83, 0xad, 0xc1, 0xba, 0xa3, 0x8a, 0x70, 0x5c, 0x53, 0x57, 0x67, 0x79, +0x89, 0x9b, 0xa7, 0xa3, 0x93, 0x81, 0x71, 0x6a, 0x68, 0x69, 0x6d, 0x75, 0x78, 0x78, 0x80, 0x8c, +0x9b, 0xaa, 0xb0, 0xa7, 0x91, 0x71, 0x4c, 0x34, 0x35, 0x4d, 0x78, 0xa9, 0xcc, 0xd8, 0xcd, 0xa7, +0x73, 0x41, 0x19, 0xf, 0x29, 0x5f, 0xa5, 0xe3, 0xff, 0xf8, 0xc1, 0x6c, 0x22, 0x0, 0x9, 0x34, +0x74, 0xb3, 0xdc, 0xe3, 0xca, 0x98, 0x64, 0x42, 0x36, 0x44, 0x6a, 0x96, 0xb6, 0xbb, 0xa5, 0x83, +0x64, 0x57, 0x57, 0x5e, 0x71, 0x8d, 0x9f, 0xa4, 0x98, 0x85, 0x75, 0x6b, 0x6a, 0x73, 0x81, 0x8d, +0x97, 0x94, 0x7a, 0x5e, 0x53, 0x5e, 0x7a, 0x91, 0xa1, 0xa6, 0x9c, 0x91, 0x78, 0x66, 0x66, 0x6c, +0x7b, 0x82, 0x84, 0x93, 0x9c, 0x93, 0x85, 0x74, 0x62, 0x58, 0x62, 0x7a, 0x8f, 0xa3, 0xb3, 0xaf, +0x92, 0x63, 0x40, 0x3c, 0x55, 0x81, 0xa8, 0xbb, 0xb4, 0x90, 0x65, 0x50, 0x58, 0x74, 0x8a, 0x95, +0x96, 0x91, 0x87, 0x80, 0x7a, 0x70, 0x68, 0x68, 0x6f, 0x7e, 0x95, 0xa8, 0xa7, 0x98, 0x7d, 0x60, +0x54, 0x5c, 0x6d, 0x81, 0x95, 0xa3, 0xa4, 0x99, 0x7d, 0x68, 0x5d, 0x5d, 0x67, 0x76, 0x88, 0x96, +0x9f, 0xa2, 0x9d, 0x87, 0x6a, 0x53, 0x4d, 0x5e, 0x7a, 0x99, 0xad, 0xb1, 0xa3, 0x81, 0x62, 0x59, +0x5d, 0x67, 0x77, 0x8d, 0x9c, 0x9b, 0x91, 0x83, 0x70, 0x64, 0x69, 0x7b, 0x93, 0xa1, 0x9e, 0x89, +0x74, 0x64, 0x50, 0x4d, 0x69, 0x96, 0xbd, 0xc5, 0xad, 0x8a, 0x5c, 0x3d, 0x38, 0x46, 0x6c, 0x99, +0xbb, 0xce, 0xc8, 0xa7, 0x72, 0x3e, 0x21, 0x27, 0x4f, 0x8b, 0xbc, 0xd1, 0xc7, 0xa5, 0x76, 0x50, +0x3d, 0x41, 0x5e, 0x84, 0xa9, 0xc0, 0xb7, 0xa0, 0x82, 0x66, 0x58, 0x58, 0x60, 0x6e, 0x7e, 0x8e, +0x9b, 0xa1, 0x9e, 0x97, 0x87, 0x71, 0x62, 0x57, 0x54, 0x61, 0x7c, 0xa1, 0xbb, 0xbd, 0xa9, 0x84, +0x59, 0x3c, 0x3b, 0x57, 0x81, 0xa8, 0xc2, 0xc4, 0xac, 0x81, 0x58, 0x3d, 0x3a, 0x52, 0x75, 0x98, +0xb4, 0xc2, 0xbb, 0xa1, 0x7b, 0x5a, 0x44, 0x3c, 0x4d, 0x6e, 0x93, 0xb0, 0xbc, 0xba, 0xa4, 0x80, +0x5c, 0x45, 0x42, 0x52, 0x72, 0x98, 0xb2, 0xba, 0xaf, 0x92, 0x6e, 0x52, 0x45, 0x48, 0x5a, 0x7a, +0x9c, 0xb1, 0xb8, 0xaf, 0x99, 0x7b, 0x60, 0x51, 0x51, 0x63, 0x7b, 0x96, 0xa8, 0xa8, 0x99, 0x82, +0x6c, 0x5e, 0x59, 0x61, 0x76, 0x90, 0xa3, 0xa6, 0x9c, 0x89, 0x6f, 0x5a, 0x4d, 0x4f, 0x64, 0x82, +0xa0, 0xb5, 0xb8, 0xad, 0x93, 0x72, 0x58, 0x49, 0x4d, 0x64, 0x83, 0x9f, 0xb3, 0xb5, 0xa5, 0x8b, +0x6f, 0x59, 0x54, 0x5b, 0x67, 0x77, 0x8b, 0x98, 0x9d, 0x97, 0x8c, 0x7e, 0x71, 0x6a, 0x68, 0x6c, +0x76, 0x86, 0x92, 0x9a, 0x9d, 0x98, 0x8a, 0x75, 0x61, 0x54, 0x55, 0x65, 0x83, 0xa0, 0xaf, 0xaa, +0x99, 0x86, 0x75, 0x69, 0x5f, 0x5e, 0x67, 0x79, 0x8c, 0x96, 0x95, 0x8b, 0x80, 0x78, 0x76, 0x78, +0x79, 0x76, 0x77, 0x80, 0x88, 0x89, 0x86, 0x86, 0x86, 0x84, 0x81, 0x7b, 0x78, 0x78, 0x7e, 0x83, +0x81, 0x7c, 0x79, 0x7b, 0x84, 0x88, 0x86, 0x83, 0x80, 0x80, 0x82, 0x7e, 0x77, 0x74, 0x7b, 0x89, +0x91, 0x89, 0x7a, 0x6f, 0x6c, 0x70, 0x7a, 0x84, 0x85, 0x81, 0x84, 0x89, 0x8e, 0x90, 0x8e, 0x8a, +0x84, 0x7b, 0x6e, 0x63, 0x62, 0x71, 0x8c, 0xa5, 0xad, 0xa1, 0x8a, 0x73, 0x62, 0x58, 0x57, 0x5f, +0x70, 0x8d, 0xa7, 0xb3, 0xae, 0x9c, 0x83, 0x68, 0x51, 0x41, 0x3e, 0x4f, 0x75, 0xa3, 0xc6, 0xd2, +0xc3, 0x9b, 0x6b, 0x46, 0x35, 0x3a, 0x55, 0x7d, 0xa9, 0xc3, 0xc4, 0xb4, 0x95, 0x73, 0x5b, 0x4a, +0x44, 0x4b, 0x5c, 0x79, 0x9b, 0xb7, 0xc2, 0xb5, 0x99, 0x7a, 0x5f, 0x4b, 0x45, 0x4d, 0x62, 0x7d, +0x9a, 0xae, 0xb1, 0xaa, 0x9a, 0x8a, 0x7b, 0x64, 0x4d, 0x45, 0x50, 0x6b, 0x8e, 0xaa, 0xb4, 0xad, +0x9d, 0x82, 0x68, 0x58, 0x53, 0x5b, 0x6d, 0x85, 0x97, 0xa4, 0xa9, 0xa4, 0x97, 0x81, 0x66, 0x56, +0x54, 0x62, 0x78, 0x8e, 0x9d, 0xa3, 0x9c, 0x8e, 0x80, 0x75, 0x6d, 0x65, 0x63, 0x6a, 0x77, 0x89, +0x97, 0x9d, 0x98, 0x8c, 0x7c, 0x6f, 0x67, 0x65, 0x67, 0x6e, 0x7d, 0x92, 0xa3, 0xa8, 0xa2, 0x95, +0x84, 0x71, 0x63, 0x5d, 0x5f, 0x68, 0x78, 0x8a, 0x95, 0x98, 0x93, 0x88, 0x7e, 0x79, 0x76, 0x76, +0x77, 0x7a, 0x81, 0x84, 0x85, 0x84, 0x82, 0x80, 0x7e, 0x81, 0x82, 0x81, 0x7b, 0x77, 0x75, 0x77, +0x7c, 0x85, 0x8e, 0x96, 0x96, 0x8c, 0x7e, 0x6f, 0x64, 0x61, 0x66, 0x75, 0x85, 0x8c, 0x91, 0x90, +0x8b, 0x86, 0x80, 0x7a, 0x78, 0x78, 0x7c, 0x81, 0x81, 0x7b, 0x79, 0x79, 0x7d, 0x82, 0x83, 0x80, +0x79, 0x76, 0x79, 0x82, 0x8a, 0x90, 0x92, 0x8e, 0x88, 0x7c, 0x6e, 0x66, 0x66, 0x6b, 0x7b, 0x8f, +0x99, 0x97, 0x8e, 0x86, 0x7e, 0x79, 0x75, 0x71, 0x6f, 0x73, 0x7b, 0x85, 0x8b, 0x8d, 0x8b, 0x88, +0x82, 0x7a, 0x72, 0x6f, 0x72, 0x78, 0x7d, 0x81, 0x79, 0x69, 0x5b, 0x56, 0x64, 0x83, 0xa7, 0xc6, +0xce, 0xc2, 0xa4, 0x7e, 0x5d, 0x48, 0x45, 0x52, 0x67, 0x7e, 0x91, 0x9c, 0xa1, 0x9d, 0x91, 0x7e, +0x66, 0x4f, 0x3f, 0x3f, 0x51, 0x75, 0xa0, 0xc1, 0xd2, 0xc7, 0xa7, 0x80, 0x5b, 0x49, 0x4c, 0x5d, +0x7b, 0x97, 0xa9, 0xaf, 0xa7, 0x9a, 0x87, 0x72, 0x60, 0x52, 0x49, 0x4b, 0x58, 0x71, 0x92, 0xaa, +0xb4, 0xac, 0x97, 0x7c, 0x65, 0x5a, 0x5f, 0x6e, 0x82, 0x93, 0x9f, 0xa0, 0x9a, 0x90, 0x85, 0x7a, +0x6f, 0x64, 0x5d, 0x5b, 0x61, 0x70, 0x84, 0x93, 0x9b, 0x9d, 0x97, 0x8b, 0x80, 0x76, 0x70, 0x70, +0x6e, 0x6c, 0x6c, 0x6f, 0x7b, 0x8c, 0x9d, 0xa6, 0xa3, 0x98, 0x89, 0x7a, 0x6b, 0x5f, 0x5c, 0x62, +0x6e, 0x80, 0x8e, 0x99, 0xa2, 0xa5, 0x9c, 0x84, 0x66, 0x53, 0x50, 0x5d, 0x74, 0x8e, 0x9e, 0xa2, +0x9a, 0x8e, 0x84, 0x80, 0x7d, 0x7b, 0x74, 0x65, 0x5a, 0x5d, 0x72, 0x90, 0xa7, 0xb1, 0xa9, 0x95, +0x7b, 0x69, 0x62, 0x64, 0x6c, 0x78, 0x84, 0x89, 0x8b, 0x8d, 0x8e, 0x8c, 0x8a, 0x84, 0x7a, 0x73, +0x6d, 0x6b, 0x6f, 0x72, 0x6e, 0x66, 0x5d, 0x5b, 0x6b, 0x89, 0xab, 0xc3, 0xc7, 0xba, 0xa1, 0x83, +0x6d, 0x63, 0x62, 0x67, 0x6d, 0x70, 0x72, 0x77, 0x7d, 0x85, 0x8b, 0x8a, 0x84, 0x7b, 0x72, 0x6a, +0x67, 0x69, 0x6e, 0x75, 0x7a, 0x7c, 0x82, 0x8c, 0x96, 0x9e, 0xa2, 0x9e, 0x95, 0x8a, 0x81, 0x7b, +0x7a, 0x7b, 0x79, 0x75, 0x71, 0x6e, 0x71, 0x79, 0x7d, 0x7e, 0x7a, 0x72, 0x70, 0x72, 0x76, 0x83, +0x8e, 0x93, 0x93, 0x8c, 0x80, 0x77, 0x71, 0x70, 0x76, 0x7e, 0x87, 0x8d, 0x92, 0x95, 0x93, 0x8c, +0x80, 0x71, 0x66, 0x60, 0x60, 0x66, 0x72, 0x81, 0x8d, 0x93, 0x96, 0x96, 0x94, 0x8f, 0x87, 0x7e, +0x74, 0x69, 0x61, 0x62, 0x6e, 0x7c, 0x86, 0x8d, 0x8f, 0x8c, 0x89, 0x89, 0x8c, 0x8d, 0x8a, 0x82, +0x78, 0x6c, 0x67, 0x6a, 0x70, 0x78, 0x81, 0x86, 0x8c, 0x90, 0x92, 0x93, 0x8e, 0x85, 0x79, 0x6e, +0x67, 0x66, 0x6b, 0x75, 0x84, 0x90, 0x96, 0x96, 0x91, 0x8c, 0x85, 0x79, 0x6f, 0x66, 0x63, 0x67, +0x6f, 0x7c, 0x8c, 0x99, 0x9e, 0x9d, 0x96, 0x89, 0x79, 0x6f, 0x69, 0x67, 0x6b, 0x74, 0x7e, 0x88, +0x8b, 0x8a, 0x85, 0x7b, 0x71, 0x6a, 0x6a, 0x71, 0x80, 0x8e, 0x98, 0x9f, 0x9f, 0x95, 0x8b, 0x7c, +0x6f, 0x69, 0x66, 0x68, 0x70, 0x78, 0x83, 0x8b, 0x90, 0x92, 0x8e, 0x87, 0x7c, 0x72, 0x6d, 0x6c, +0x70, 0x78, 0x83, 0x8d, 0x93, 0x94, 0x90, 0x8a, 0x83, 0x7a, 0x73, 0x6f, 0x6f, 0x73, 0x79, 0x82, +0x88, 0x8b, 0x8c, 0x8a, 0x85, 0x80, 0x7c, 0x78, 0x76, 0x76, 0x77, 0x7a, 0x7d, 0x80, 0x83, 0x87, +0x8b, 0x8b, 0x8c, 0x8a, 0x84, 0x7c, 0x74, 0x6d, 0x6c, 0x6f, 0x76, 0x82, 0x8b, 0x93, 0x96, 0x95, +0x8f, 0x87, 0x7b, 0x70, 0x69, 0x66, 0x69, 0x70, 0x7a, 0x86, 0x8e, 0x93, 0x94, 0x8d, 0x85, 0x7c, +0x75, 0x72, 0x72, 0x74, 0x77, 0x7b, 0x80, 0x83, 0x87, 0x87, 0x87, 0x84, 0x80, 0x7d, 0x7a, 0x77, +0x77, 0x7a, 0x7d, 0x80, 0x83, 0x83, 0x81, 0x7d, 0x7b, 0x7a, 0x7c, 0x7d, 0x82, 0x85, 0x87, 0x87, +0x85, 0x82, 0x7c, 0x78, 0x75, 0x75, 0x78, 0x80, 0x86, 0x8a, 0x8e, 0x8e, 0x89, 0x83, 0x7b, 0x72, +0x6e, 0x6e, 0x70, 0x77, 0x80, 0x88, 0x8e, 0x90, 0x8d, 0x87, 0x7e, 0x74, 0x6e, 0x6c, 0x70, 0x79, +0x85, 0x8a, 0x8e, 0x8e, 0x88, 0x83, 0x7c, 0x77, 0x74, 0x75, 0x77, 0x7b, 0x83, 0x87, 0x88, 0x87, +0x82, 0x7d, 0x7d, 0x7c, 0x7c, 0x7e, 0x80, 0x80, 0x80, 0x7d, 0x7c, 0x7a, 0x7a, 0x7d, 0x80, 0x83, +0x85, 0x86, 0x83, 0x81, 0x7c, 0x7a, 0x7a, 0x7a, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x81, +0x83, 0x84, 0x83, 0x83, 0x82, 0x7e, 0x7a, 0x77, 0x73, 0x73, 0x76, 0x79, 0x80, 0x87, 0x8b, 0x8d, +0x8a, 0x85, 0x81, 0x7a, 0x75, 0x74, 0x74, 0x76, 0x7a, 0x7e, 0x84, 0x88, 0x8a, 0x8a, 0x88, 0x84, +0x7d, 0x77, 0x73, 0x72, 0x75, 0x7b, 0x83, 0x88, 0x8c, 0x8b, 0x86, 0x81, 0x7a, 0x76, 0x75, 0x76, +0x78, 0x7b, 0x81, 0x86, 0x89, 0x89, 0x87, 0x82, 0x7b, 0x76, 0x74, 0x75, 0x78, 0x7d, 0x83, 0x84, +0x85, 0x84, 0x82, 0x80, 0x7c, 0x7b, 0x7c, 0x7b, 0x7d, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, +0x7e, 0x80, 0x82, 0x83, 0x82, 0x82, 0x80, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x81, 0x81, 0x7e, 0x7e, +0x7e, 0x7c, 0x7d, 0x7d, 0x7d, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7e, 0x7b, 0x7a, 0x7c, 0x7e, 0x83, +0x83, 0x82, 0x82, 0x80, 0x80, 0x81, 0x83, 0x85, 0x84, 0x82, 0x80, 0x7d, 0x7b, 0x79, 0x78, 0x78, +0x7a, 0x7d, 0x82, 0x87, 0x88, 0x87, 0x83, 0x7d, 0x79, 0x79, 0x79, 0x7c, 0x80, 0x83, 0x83, 0x82, +0x81, 0x7c, 0x7c, 0x7d, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x82, 0x82, 0x7e, 0x7c, 0x7c, 0x7c, 0x7e, +0x80, 0x81, 0x82, 0x83, 0x81, 0x7e, 0x7c, 0x7b, 0x7c, 0x7d, 0x81, 0x85, 0x86, 0x85, 0x83, 0x80, +0x7b, 0x78, 0x77, 0x77, 0x76, 0x79, 0x81, 0x86, 0x8a, 0x8b, 0x88, 0x81, 0x7b, 0x79, 0x78, 0x7b, +0x7d, 0x7c, 0x7b, 0x7c, 0x7d, 0x82, 0x87, 0x88, 0x86, 0x81, 0x7c, 0x7a, 0x7b, 0x7e, 0x82, 0x83, +0x81, 0x7d, 0x7c, 0x7d, 0x81, 0x82, 0x81, 0x80, 0x81, 0x80, 0x7d, 0x7c, 0x7b, 0x7a, 0x7c, 0x80, +0x81, 0x7e, 0x7b, 0x7c, 0x7c, 0x79, 0x78, 0x7b, 0x7d, 0x80, 0x83, 0x84, 0x84, 0x83, 0x7e, 0x7a, +0x79, 0x78, 0x76, 0x77, 0x7b, 0x84, 0x88, 0x87, 0x85, 0x83, 0x80, 0x7d, 0x7c, 0x7d, 0x7c, 0x7b, +0x7c, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x82, 0x86, 0x88, 0x86, 0x81, 0x7b, 0x79, 0x79, 0x78, +0x79, 0x7a, 0x7c, 0x80, 0x84, 0x87, 0x86, 0x87, 0x85, 0x81, 0x7a, 0x75, 0x74, 0x77, 0x7b, 0x81, +0x84, 0x84, 0x84, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, 0x80, 0x7b, 0x7b, 0x7b, 0x7a, 0x7c, 0x80, +0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x80, +0x7e, 0x7e, 0x7d, 0x7d, 0x80, 0x80, 0x80, 0x81, 0x83, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x79, +0x77, 0x76, 0x77, 0x7b, 0x83, 0x8a, 0x8f, 0x8f, 0x87, 0x80, 0x78, 0x74, 0x73, 0x74, 0x7b, 0x80, +0x83, 0x86, 0x85, 0x85, 0x84, 0x83, 0x80, 0x7c, 0x7a, 0x7b, 0x7c, 0x81, 0x85, 0x87, 0x87, 0x88, +0x87, 0x83, 0x7e, 0x78, 0x77, 0x77, 0x77, 0x7b, 0x7e, 0x85, 0x89, 0x8b, 0x8c, 0x89, 0x82, 0x79, +0x71, 0x70, 0x73, 0x76, 0x76, 0x76, 0x78, 0x80, 0x88, 0x8e, 0x90, 0x8b, 0x83, 0x78, 0x70, 0x6f, +0x70, 0x77, 0x83, 0x88, 0x8a, 0x89, 0x85, 0x82, 0x81, 0x7e, 0x7a, 0x77, 0x7b, 0x82, 0x88, 0x87, +0x7e, 0x76, 0x72, 0x75, 0x7b, 0x84, 0x8b, 0x8c, 0x87, 0x81, 0x79, 0x78, 0x7c, 0x81, 0x83, 0x7d, +0x7a, 0x79, 0x7c, 0x85, 0x88, 0x85, 0x7e, 0x77, 0x74, 0x79, 0x7d, 0x81, 0x84, 0x83, 0x80, 0x7e, +0x7d, 0x7a, 0x7c, 0x82, 0x80, 0x7c, 0x79, 0x78, 0x7e, 0x84, 0x84, 0x83, 0x82, 0x81, 0x7e, 0x7d, +0x7c, 0x7d, 0x7e, 0x7a, 0x7b, 0x7e, 0x7e, 0x80, 0x82, 0x84, 0x87, 0x89, 0x86, 0x82, 0x81, 0x7d, +0x7a, 0x78, 0x7a, 0x7e, 0x81, 0x82, 0x84, 0x83, 0x82, 0x82, 0x82, 0x80, 0x80, 0x7e, 0x79, 0x78, +0x79, 0x7c, 0x7e, 0x7e, 0x7e, 0x81, 0x80, 0x7c, 0x7b, 0x7c, 0x7e, 0x81, 0x81, 0x83, 0x83, 0x82, +0x82, 0x7e, 0x7d, 0x7b, 0x79, 0x7b, 0x80, 0x83, 0x84, 0x88, 0x86, 0x82, 0x7d, 0x77, 0x76, 0x79, +0x7d, 0x82, 0x85, 0x87, 0x89, 0x88, 0x87, 0x84, 0x79, 0x74, 0x6f, 0x6c, 0x74, 0x7c, 0x87, 0x8d, +0x8b, 0x8a, 0x84, 0x7d, 0x7a, 0x77, 0x74, 0x74, 0x76, 0x77, 0x7d, 0x84, 0x87, 0x87, 0x85, 0x80, +0x7d, 0x81, 0x81, 0x81, 0x7e, 0x78, 0x78, 0x77, 0x79, 0x7e, 0x84, 0x85, 0x83, 0x82, 0x7e, 0x7e, +0x84, 0x87, 0x87, 0x86, 0x81, 0x79, 0x76, 0x7a, 0x7c, 0x80, 0x82, 0x80, 0x80, 0x82, 0x88, 0x8e, +0x8e, 0x8b, 0x83, 0x7a, 0x72, 0x6e, 0x6d, 0x72, 0x7c, 0x86, 0x8a, 0x8c, 0x8d, 0x8a, 0x88, 0x83, +0x7b, 0x72, 0x6b, 0x6a, 0x6d, 0x77, 0x84, 0x8c, 0x91, 0x8f, 0x87, 0x80, 0x7d, 0x7c, 0x7d, 0x7e, +0x7a, 0x78, 0x77, 0x77, 0x7b, 0x82, 0x85, 0x87, 0x88, 0x85, 0x86, 0x86, 0x85, 0x84, 0x80, 0x7b, +0x78, 0x76, 0x77, 0x7a, 0x80, 0x80, 0x81, 0x83, 0x83, 0x85, 0x87, 0x87, 0x85, 0x80, 0x7b, 0x76, +0x75, 0x77, 0x76, 0x78, 0x7c, 0x7e, 0x81, 0x84, 0x86, 0x87, 0x8a, 0x8a, 0x87, 0x81, 0x7c, 0x78, +0x73, 0x74, 0x75, 0x78, 0x84, 0x8d, 0x8e, 0x8c, 0x87, 0x7e, 0x79, 0x7a, 0x7c, 0x81, 0x80, 0x7d, +0x7a, 0x7a, 0x7e, 0x83, 0x87, 0x89, 0x86, 0x84, 0x80, 0x7b, 0x78, 0x73, 0x72, 0x74, 0x77, 0x81, +0x8b, 0x8f, 0x8e, 0x86, 0x7b, 0x73, 0x6e, 0x71, 0x78, 0x7b, 0x7e, 0x81, 0x80, 0x82, 0x86, 0x89, +0x8a, 0x86, 0x7c, 0x75, 0x74, 0x77, 0x7b, 0x81, 0x84, 0x83, 0x82, 0x7e, 0x81, 0x85, 0x87, 0x88, +0x86, 0x80, 0x7a, 0x77, 0x77, 0x7b, 0x7e, 0x82, 0x84, 0x83, 0x83, 0x83, 0x83, 0x83, 0x80, 0x7d, +0x7c, 0x7b, 0x7c, 0x81, 0x83, 0x83, 0x80, 0x79, 0x74, 0x70, 0x70, 0x74, 0x7a, 0x86, 0x8f, 0x92, +0x90, 0x89, 0x7d, 0x74, 0x71, 0x70, 0x74, 0x78, 0x7a, 0x7c, 0x7d, 0x7c, 0x7d, 0x82, 0x86, 0x8c, +0x8f, 0x8d, 0x88, 0x7d, 0x74, 0x73, 0x72, 0x76, 0x7a, 0x7b, 0x82, 0x86, 0x89, 0x8e, 0x8e, 0x8b, +0x86, 0x7b, 0x76, 0x75, 0x78, 0x7e, 0x85, 0x86, 0x83, 0x80, 0x7c, 0x7c, 0x80, 0x84, 0x87, 0x87, +0x84, 0x82, 0x80, 0x80, 0x7e, 0x7a, 0x75, 0x73, 0x72, 0x76, 0x7c, 0x82, 0x86, 0x87, 0x85, 0x86, +0x88, 0x86, 0x81, 0x7b, 0x75, 0x6f, 0x6e, 0x72, 0x7a, 0x82, 0x8a, 0x90, 0x91, 0x8e, 0x88, 0x84, +0x7b, 0x76, 0x72, 0x6f, 0x70, 0x78, 0x84, 0x8b, 0x8e, 0x8a, 0x7d, 0x73, 0x71, 0x76, 0x82, 0x8e, +0x92, 0x8b, 0x7e, 0x71, 0x6c, 0x70, 0x78, 0x81, 0x82, 0x7e, 0x7a, 0x7b, 0x80, 0x89, 0x92, 0x92, +0x89, 0x7c, 0x70, 0x6b, 0x6f, 0x76, 0x7b, 0x7e, 0x80, 0x82, 0x87, 0x8d, 0x92, 0x91, 0x8c, 0x82, +0x75, 0x6f, 0x6d, 0x6f, 0x73, 0x79, 0x80, 0x86, 0x8d, 0x93, 0x93, 0x8d, 0x84, 0x76, 0x6b, 0x6a, +0x73, 0x7c, 0x88, 0x8d, 0x8b, 0x88, 0x83, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7c, 0x7a, 0x78, 0x78, +0x78, 0x76, 0x78, 0x7c, 0x85, 0x91, 0x96, 0x91, 0x85, 0x72, 0x67, 0x68, 0x6f, 0x77, 0x80, 0x82, +0x80, 0x7e, 0x81, 0x88, 0x93, 0x99, 0x94, 0x88, 0x78, 0x69, 0x66, 0x6e, 0x78, 0x80, 0x84, 0x82, +0x82, 0x86, 0x8d, 0x91, 0x92, 0x8e, 0x84, 0x7b, 0x74, 0x6e, 0x71, 0x77, 0x7c, 0x7e, 0x80, 0x81, +0x82, 0x86, 0x87, 0x87, 0x85, 0x83, 0x80, 0x7c, 0x7b, 0x7b, 0x7a, 0x77, 0x76, 0x77, 0x79, 0x7b, +0x7e, 0x81, 0x84, 0x86, 0x86, 0x85, 0x86, 0x85, 0x81, 0x80, 0x79, 0x75, 0x73, 0x71, 0x75, 0x7a, +0x80, 0x88, 0x8f, 0x95, 0x93, 0x85, 0x74, 0x67, 0x65, 0x74, 0x8c, 0x9c, 0x9e, 0x89, 0x69, 0x53, +0x50, 0x66, 0x89, 0xa6, 0xae, 0x9d, 0x81, 0x6a, 0x65, 0x76, 0x8d, 0x97, 0x8b, 0x6f, 0x5b, 0x5a, +0x6c, 0x88, 0x9e, 0xa2, 0x91, 0x7e, 0x74, 0x76, 0x83, 0x8f, 0x8f, 0x83, 0x71, 0x65, 0x64, 0x73, +0x89, 0x97, 0x9a, 0x90, 0x80, 0x76, 0x76, 0x7b, 0x7e, 0x7d, 0x77, 0x74, 0x78, 0x81, 0x8a, 0x8f, +0x8c, 0x83, 0x77, 0x70, 0x6e, 0x76, 0x84, 0x8e, 0x94, 0x92, 0x8c, 0x87, 0x84, 0x84, 0x83, 0x7c, +0x72, 0x66, 0x58, 0x4b, 0x44, 0x46, 0x5b, 0x81, 0xad, 0xce, 0xd4, 0xba, 0x93, 0x73, 0x66, 0x66, +0x6b, 0x6c, 0x67, 0x66, 0x69, 0x72, 0x84, 0x9e, 0xba, 0xc7, 0xb8, 0x93, 0x67, 0x54, 0x57, 0x68, +0x73, 0x6d, 0x60, 0x57, 0x62, 0x7c, 0x98, 0xa6, 0xa9, 0xa2, 0x92, 0x7b, 0x68, 0x63, 0x6b, 0x78, +0x83, 0x85, 0x80, 0x7d, 0x86, 0x92, 0x98, 0x94, 0x87, 0x7c, 0x77, 0x76, 0x78, 0x7a, 0x7b, 0x7a, +0x7b, 0x7d, 0x7c, 0x7a, 0x79, 0x7d, 0x80, 0x80, 0x80, 0x7c, 0x7c, 0x83, 0x8a, 0x8d, 0x8c, 0x8a, +0x87, 0x86, 0x85, 0x80, 0x7a, 0x79, 0x7b, 0x7c, 0x7b, 0x7c, 0x80, 0x84, 0x8a, 0x8b, 0x89, 0x84, +0x77, 0x68, 0x59, 0x53, 0x55, 0x64, 0x81, 0x9b, 0xa9, 0xab, 0xa5, 0x9a, 0x8e, 0x87, 0x7c, 0x73, +0x6d, 0x6b, 0x69, 0x6d, 0x76, 0x83, 0x91, 0x96, 0x94, 0x89, 0x77, 0x6e, 0x6c, 0x6e, 0x72, 0x73, +0x76, 0x7a, 0x7d, 0x86, 0x8d, 0x8e, 0x8f, 0x8a, 0x84, 0x7c, 0x75, 0x76, 0x7e, 0x88, 0x8f, 0x90, +0x8a, 0x85, 0x7e, 0x79, 0x76, 0x73, 0x74, 0x77, 0x79, 0x81, 0x86, 0x87, 0x89, 0x88, 0x85, 0x83, +0x80, 0x7a, 0x75, 0x70, 0x69, 0x5f, 0x56, 0x54, 0x60, 0x7e, 0xa4, 0xc7, 0xd1, 0xc3, 0xa9, 0x86, +0x6b, 0x5d, 0x57, 0x56, 0x57, 0x5e, 0x68, 0x75, 0x86, 0x95, 0xa1, 0xa5, 0x9a, 0x84, 0x68, 0x53, +0x50, 0x59, 0x6c, 0x7b, 0x83, 0x8c, 0x97, 0xa3, 0xab, 0xa6, 0x9b, 0x8d, 0x79, 0x6b, 0x5e, 0x5b, +0x66, 0x76, 0x85, 0x8e, 0x8f, 0x8c, 0x86, 0x81, 0x7b, 0x70, 0x64, 0x5f, 0x64, 0x71, 0x85, 0x96, +0xa1, 0xa5, 0xa1, 0x93, 0x81, 0x6f, 0x62, 0x5e, 0x63, 0x6f, 0x79, 0x87, 0x94, 0x99, 0x98, 0x93, +0x8b, 0x82, 0x7c, 0x79, 0x75, 0x71, 0x68, 0x5d, 0x5a, 0x63, 0x73, 0x8a, 0xa2, 0xb6, 0xba, 0xae, +0x99, 0x7a, 0x5a, 0x40, 0x30, 0x2c, 0x3b, 0x5e, 0x8b, 0xb8, 0xd9, 0xe6, 0xdd, 0xc1, 0x99, 0x6a, +0x43, 0x2e, 0x2c, 0x3c, 0x59, 0x77, 0x92, 0xa8, 0xb5, 0xb8, 0xaf, 0x9a, 0x7c, 0x5d, 0x42, 0x34, +0x38, 0x50, 0x75, 0xa6, 0xd0, 0xe1, 0xd9, 0xba, 0x90, 0x64, 0x47, 0x3b, 0x3c, 0x4b, 0x5f, 0x77, +0x91, 0xa7, 0xb3, 0xad, 0x9d, 0x86, 0x68, 0x51, 0x48, 0x4f, 0x64, 0x7e, 0x9b, 0xb2, 0xbb, 0xba, +0xb1, 0x9c, 0x82, 0x6a, 0x55, 0x4b, 0x49, 0x4f, 0x5a, 0x69, 0x75, 0x7c, 0x7e, 0x87, 0x9b, 0xb3, +0xc4, 0xbe, 0x9d, 0x70, 0x53, 0x4d, 0x5b, 0x74, 0x85, 0x8e, 0x95, 0x99, 0x9a, 0x91, 0x81, 0x76, +0x6c, 0x62, 0x57, 0x4e, 0x53, 0x69, 0x8a, 0xa5, 0xb0, 0xa9, 0x9b, 0x8c, 0x83, 0x80, 0x74, 0x6d, +0x6f, 0x73, 0x78, 0x7e, 0x87, 0x91, 0x97, 0x98, 0x90, 0x7e, 0x6e, 0x61, 0x60, 0x68, 0x71, 0x7a, +0x84, 0x8f, 0x99, 0x9d, 0x9b, 0x93, 0x89, 0x80, 0x74, 0x6b, 0x64, 0x63, 0x6d, 0x7c, 0x8c, 0x96, +0x9a, 0x99, 0x91, 0x89, 0x7d, 0x72, 0x6f, 0x72, 0x79, 0x83, 0x8a, 0x8b, 0x87, 0x82, 0x7a, 0x6f, +0x64, 0x5e, 0x61, 0x70, 0x83, 0x97, 0xab, 0xbb, 0xc1, 0xb5, 0x93, 0x61, 0x39, 0x28, 0x30, 0x4e, +0x79, 0xa2, 0xbd, 0xc9, 0xc2, 0xaa, 0x86, 0x62, 0x4a, 0x40, 0x44, 0x57, 0x72, 0x94, 0xb5, 0xcb, +0xcd, 0xb5, 0x90, 0x6a, 0x4a, 0x39, 0x3a, 0x4b, 0x65, 0x8a, 0xaa, 0xbb, 0xbe, 0xb2, 0x98, 0x7a, +0x5d, 0x43, 0x39, 0x40, 0x5b, 0x83, 0xac, 0xca, 0xd3, 0xc5, 0xa3, 0x79, 0x53, 0x36, 0x30, 0x3d, +0x5a, 0x81, 0xa1, 0xb8, 0xc4, 0xba, 0xa6, 0x89, 0x67, 0x50, 0x45, 0x45, 0x50, 0x5f, 0x73, 0x84, +0x97, 0xab, 0xbd, 0xc7, 0xbf, 0xa4, 0x74, 0x48, 0x33, 0x36, 0x53, 0x78, 0x93, 0xa5, 0xac, 0xa9, +0x9a, 0x86, 0x6f, 0x5d, 0x52, 0x51, 0x56, 0x64, 0x7b, 0x98, 0xaf, 0xb8, 0xb1, 0x99, 0x7a, 0x64, +0x5a, 0x5c, 0x66, 0x72, 0x82, 0x92, 0x9a, 0x98, 0x92, 0x88, 0x81, 0x77, 0x6b, 0x64, 0x62, 0x67, +0x78, 0x8a, 0x94, 0x97, 0x92, 0x8d, 0x86, 0x7d, 0x77, 0x76, 0x78, 0x7c, 0x81, 0x81, 0x7e, 0x7b, +0x7a, 0x7c, 0x7e, 0x7e, 0x84, 0x88, 0x89, 0x88, 0x85, 0x84, 0x85, 0x89, 0x8d, 0x8e, 0x87, 0x75, +0x63, 0x57, 0x5a, 0x6a, 0x80, 0x93, 0x9d, 0x98, 0x8c, 0x83, 0x80, 0x85, 0x8c, 0x8b, 0x78, 0x59, +0x3f, 0x39, 0x51, 0x81, 0xb8, 0xde, 0xe0, 0xc2, 0x92, 0x60, 0x3a, 0x2a, 0x33, 0x4e, 0x6e, 0x8f, +0xa9, 0xba, 0xc1, 0xb6, 0x9b, 0x75, 0x51, 0x38, 0x38, 0x50, 0x76, 0xa0, 0xbd, 0xc9, 0xc0, 0xa5, +0x84, 0x62, 0x4d, 0x44, 0x4a, 0x5d, 0x75, 0x8f, 0xa7, 0xb1, 0xab, 0x9c, 0x83, 0x6c, 0x5e, 0x5a, +0x5f, 0x6d, 0x82, 0x94, 0xa0, 0xa3, 0x9c, 0x8f, 0x7c, 0x6a, 0x61, 0x5f, 0x65, 0x6c, 0x75, 0x7d, +0x81, 0x84, 0x82, 0x85, 0x90, 0x99, 0xa0, 0x99, 0x88, 0x73, 0x65, 0x68, 0x73, 0x7c, 0x83, 0x85, +0x86, 0x89, 0x88, 0x83, 0x7a, 0x72, 0x6f, 0x6d, 0x6c, 0x70, 0x7a, 0x8a, 0x98, 0x9d, 0x96, 0x8a, +0x7d, 0x73, 0x6f, 0x70, 0x74, 0x7a, 0x82, 0x89, 0x8c, 0x89, 0x84, 0x80, 0x7c, 0x76, 0x6e, 0x66, +0x67, 0x73, 0x81, 0x8f, 0x97, 0x93, 0x8c, 0x85, 0x81, 0x7a, 0x76, 0x79, 0x81, 0x87, 0x89, 0x87, +0x82, 0x7b, 0x73, 0x6c, 0x69, 0x6c, 0x72, 0x82, 0x90, 0x96, 0x96, 0x94, 0x94, 0x96, 0x90, 0x82, +0x73, 0x68, 0x65, 0x66, 0x68, 0x6b, 0x6f, 0x72, 0x73, 0x71, 0x6f, 0x7c, 0x99, 0xb2, 0xb6, 0xa5, +0x8d, 0x77, 0x66, 0x5f, 0x60, 0x64, 0x6c, 0x81, 0x9c, 0xab, 0xa7, 0x97, 0x7b, 0x5b, 0x46, 0x45, +0x55, 0x71, 0x8f, 0xa2, 0xac, 0xaa, 0x9e, 0x8e, 0x7c, 0x6f, 0x63, 0x61, 0x6e, 0x87, 0xa0, 0xad, +0xa8, 0x96, 0x78, 0x5b, 0x4c, 0x49, 0x55, 0x69, 0x85, 0x9f, 0xab, 0xa7, 0x97, 0x82, 0x6d, 0x63, +0x65, 0x71, 0x83, 0x92, 0x9c, 0x9c, 0x92, 0x82, 0x74, 0x6a, 0x63, 0x60, 0x64, 0x6d, 0x77, 0x7b, +0x78, 0x6e, 0x69, 0x7b, 0xa2, 0xc6, 0xcf, 0xb0, 0x7a, 0x4f, 0x45, 0x59, 0x7c, 0x99, 0xa1, 0x9b, +0x8e, 0x7a, 0x66, 0x58, 0x53, 0x5e, 0x70, 0x80, 0x87, 0x90, 0x9d, 0xa5, 0x9f, 0x87, 0x69, 0x57, +0x56, 0x68, 0x81, 0x97, 0xab, 0xb1, 0xac, 0x9e, 0x7b, 0x55, 0x41, 0x46, 0x5b, 0x74, 0x90, 0xa5, +0xaf, 0xac, 0x98, 0x79, 0x5d, 0x4d, 0x50, 0x62, 0x7e, 0x9c, 0xb1, 0xbe, 0xba, 0x9c, 0x6f, 0x48, +0x38, 0x3e, 0x57, 0x78, 0x95, 0xac, 0xb6, 0xb3, 0xa2, 0x84, 0x63, 0x4d, 0x4b, 0x5b, 0x78, 0x99, +0xb0, 0xb3, 0xa1, 0x7e, 0x5a, 0x45, 0x4c, 0x65, 0x81, 0x8f, 0x94, 0x9b, 0xa2, 0x9d, 0x8b, 0x73, +0x5c, 0x48, 0x46, 0x5b, 0x7e, 0xa6, 0xc0, 0xc3, 0xa7, 0x7d, 0x5e, 0x57, 0x62, 0x73, 0x82, 0x8a, +0x91, 0x92, 0x8f, 0x83, 0x70, 0x63, 0x5e, 0x6a, 0x7c, 0x92, 0x9e, 0xa2, 0x9d, 0x89, 0x6f, 0x60, +0x61, 0x6f, 0x80, 0x8e, 0x98, 0x9c, 0x9a, 0x91, 0x82, 0x6c, 0x5d, 0x5c, 0x65, 0x74, 0x85, 0x91, +0x96, 0x93, 0x8e, 0x83, 0x77, 0x70, 0x6a, 0x6a, 0x75, 0x84, 0x90, 0x9a, 0x9d, 0x95, 0x89, 0x77, +0x68, 0x61, 0x5a, 0x5d, 0x6c, 0x86, 0xa5, 0xbc, 0xbd, 0xa1, 0x73, 0x50, 0x41, 0x4e, 0x70, 0x95, +0xab, 0xac, 0xa0, 0x8e, 0x79, 0x69, 0x61, 0x5e, 0x62, 0x6f, 0x82, 0x93, 0xa0, 0xa5, 0x9d, 0x88, +0x6b, 0x51, 0x46, 0x51, 0x70, 0x97, 0xb4, 0xbe, 0xb2, 0x96, 0x72, 0x57, 0x53, 0x5d, 0x6d, 0x81, +0x8e, 0x93, 0x8d, 0x84, 0x7a, 0x75, 0x76, 0x79, 0x7d, 0x82, 0x86, 0x87, 0x86, 0x83, 0x7d, 0x79, +0x76, 0x76, 0x7b, 0x83, 0x87, 0x89, 0x87, 0x7e, 0x76, 0x73, 0x72, 0x76, 0x7b, 0x82, 0x88, 0x8d, +0x93, 0x93, 0x8d, 0x82, 0x74, 0x6c, 0x6a, 0x6d, 0x76, 0x84, 0x8c, 0x8c, 0x82, 0x75, 0x71, 0x75, +0x7c, 0x86, 0x8b, 0x8c, 0x89, 0x80, 0x79, 0x7c, 0x83, 0x89, 0x8d, 0x89, 0x81, 0x7b, 0x73, 0x6e, +0x6d, 0x6e, 0x73, 0x80, 0x8f, 0x97, 0x96, 0x8f, 0x83, 0x76, 0x6d, 0x6a, 0x70, 0x7a, 0x88, 0x91, +0x93, 0x92, 0x89, 0x7b, 0x72, 0x6d, 0x6d, 0x71, 0x7a, 0x87, 0x8f, 0x8f, 0x8f, 0x89, 0x80, 0x79, +0x75, 0x72, 0x71, 0x70, 0x71, 0x79, 0x87, 0x98, 0xa5, 0xa6, 0x96, 0x79, 0x5a, 0x4d, 0x59, 0x74, +0x94, 0xa6, 0xa2, 0x91, 0x7a, 0x67, 0x61, 0x67, 0x72, 0x7e, 0x89, 0x90, 0x94, 0x8f, 0x88, 0x7e, +0x74, 0x6d, 0x6c, 0x74, 0x82, 0x8d, 0x97, 0x95, 0x86, 0x73, 0x68, 0x68, 0x71, 0x82, 0x8d, 0x94, +0x92, 0x8a, 0x81, 0x77, 0x70, 0x6c, 0x6d, 0x75, 0x81, 0x8b, 0x91, 0x8f, 0x86, 0x7b, 0x74, 0x70, +0x70, 0x77, 0x82, 0x88, 0x8c, 0x8b, 0x85, 0x7b, 0x74, 0x70, 0x6f, 0x73, 0x7c, 0x85, 0x8b, 0x91, +0x8e, 0x88, 0x81, 0x76, 0x72, 0x71, 0x73, 0x7b, 0x84, 0x89, 0x89, 0x87, 0x86, 0x81, 0x7a, 0x76, +0x77, 0x77, 0x76, 0x77, 0x7a, 0x7c, 0x7d, 0x81, 0x87, 0x8b, 0x8c, 0x87, 0x81, 0x7a, 0x73, 0x70, +0x72, 0x79, 0x82, 0x86, 0x86, 0x83, 0x80, 0x80, 0x83, 0x85, 0x80, 0x7b, 0x7c, 0x7e, 0x85, 0x88, +0x84, 0x79, 0x67, 0x4f, 0x43, 0x55, 0x8c, 0xca, 0xef, 0xe4, 0x9c, 0x44, 0x13, 0x1c, 0x55, 0x99, +0xbf, 0xc4, 0xb0, 0x94, 0x77, 0x5c, 0x4b, 0x4a, 0x5c, 0x75, 0x8e, 0x9f, 0xa9, 0xae, 0xa5, 0x88, +0x60, 0x48, 0x4c, 0x6b, 0x91, 0xa8, 0xac, 0x9e, 0x8b, 0x77, 0x69, 0x63, 0x67, 0x73, 0x80, 0x8a, +0x8f, 0x87, 0x7d, 0x7a, 0x78, 0x76, 0x77, 0x83, 0x8c, 0x8d, 0x89, 0x81, 0x77, 0x73, 0x76, 0x7d, +0x88, 0x8c, 0x8c, 0x8d, 0x8a, 0x81, 0x73, 0x6c, 0x6f, 0x76, 0x81, 0x8b, 0x92, 0x92, 0x8a, 0x7a, +0x69, 0x64, 0x6c, 0x7e, 0x8f, 0x97, 0x96, 0x90, 0x88, 0x7a, 0x6b, 0x65, 0x6a, 0x74, 0x80, 0x8a, +0x95, 0x98, 0x92, 0x88, 0x78, 0x68, 0x5c, 0x5a, 0x67, 0x81, 0x96, 0xa8, 0xaf, 0xa4, 0x89, 0x6a, +0x57, 0x52, 0x5c, 0x72, 0x90, 0xa5, 0xac, 0xa5, 0x90, 0x76, 0x60, 0x53, 0x5c, 0x72, 0x8c, 0x9f, +0xa7, 0xa2, 0x91, 0x7d, 0x6b, 0x60, 0x62, 0x6e, 0x81, 0x91, 0x97, 0x94, 0x8e, 0x83, 0x77, 0x71, +0x72, 0x74, 0x74, 0x72, 0x6e, 0x6a, 0x6f, 0x82, 0x9e, 0xb6, 0xb8, 0x9f, 0x6f, 0x44, 0x37, 0x50, +0x85, 0xb3, 0xc1, 0xaa, 0x7d, 0x58, 0x4f, 0x5a, 0x72, 0x89, 0x91, 0x90, 0x8d, 0x89, 0x83, 0x79, +0x71, 0x6d, 0x6f, 0x77, 0x86, 0x95, 0xa2, 0xa1, 0x8f, 0x75, 0x5f, 0x59, 0x63, 0x75, 0x8a, 0x98, +0x97, 0x8d, 0x81, 0x75, 0x72, 0x73, 0x75, 0x7b, 0x7d, 0x80, 0x88, 0x90, 0x91, 0x88, 0x7c, 0x74, +0x72, 0x76, 0x7e, 0x87, 0x89, 0x86, 0x81, 0x7b, 0x78, 0x75, 0x75, 0x7b, 0x83, 0x85, 0x83, 0x7e, +0x7b, 0x77, 0x76, 0x79, 0x7e, 0x86, 0x8d, 0x92, 0x8f, 0x85, 0x75, 0x6a, 0x69, 0x6d, 0x77, 0x85, +0x8b, 0x86, 0x7d, 0x77, 0x7a, 0x81, 0x86, 0x88, 0x81, 0x79, 0x71, 0x6c, 0x6f, 0x79, 0x86, 0x8c, +0x89, 0x83, 0x81, 0x82, 0x84, 0x81, 0x78, 0x71, 0x74, 0x80, 0x8e, 0x96, 0x92, 0x86, 0x75, 0x6a, +0x69, 0x73, 0x85, 0x92, 0x95, 0x8e, 0x81, 0x75, 0x72, 0x74, 0x79, 0x81, 0x86, 0x8c, 0x90, 0x90, +0x8a, 0x7d, 0x6e, 0x5e, 0x53, 0x59, 0x72, 0x9e, 0xc5, 0xd3, 0xbc, 0x82, 0x41, 0x1c, 0x2a, 0x62, +0xab, 0xdb, 0xd9, 0xad, 0x6c, 0x3b, 0x32, 0x45, 0x69, 0x8e, 0xa2, 0xab, 0xa7, 0x9a, 0x83, 0x6a, +0x56, 0x50, 0x5c, 0x75, 0x94, 0xac, 0xb4, 0xa4, 0x84, 0x61, 0x4b, 0x50, 0x67, 0x85, 0x9b, 0xa4, +0x9e, 0x8b, 0x73, 0x65, 0x5e, 0x65, 0x77, 0x8a, 0x97, 0x9d, 0x97, 0x8a, 0x78, 0x6a, 0x65, 0x6b, +0x78, 0x89, 0x93, 0x93, 0x8c, 0x80, 0x74, 0x6e, 0x6f, 0x76, 0x81, 0x8b, 0x91, 0x90, 0x85, 0x78, +0x6f, 0x6e, 0x73, 0x7c, 0x87, 0x8e, 0x8f, 0x8a, 0x81, 0x77, 0x71, 0x73, 0x7b, 0x83, 0x88, 0x8a, +0x86, 0x7e, 0x7a, 0x7a, 0x7c, 0x7b, 0x79, 0x7a, 0x7e, 0x84, 0x89, 0x8b, 0x84, 0x7a, 0x75, 0x77, +0x7b, 0x7a, 0x76, 0x76, 0x79, 0x7d, 0x82, 0x86, 0x8c, 0x8b, 0x85, 0x81, 0x7c, 0x7a, 0x7d, 0x84, +0x86, 0x85, 0x84, 0x83, 0x83, 0x82, 0x7c, 0x78, 0x76, 0x77, 0x7b, 0x80, 0x87, 0x8a, 0x86, 0x82, +0x7c, 0x78, 0x77, 0x76, 0x77, 0x76, 0x75, 0x7a, 0x88, 0x98, 0xa5, 0xa7, 0x95, 0x71, 0x51, 0x47, +0x58, 0x7e, 0xa9, 0xc3, 0xbb, 0x97, 0x67, 0x45, 0x3f, 0x53, 0x79, 0x9a, 0xa7, 0xa4, 0x96, 0x88, +0x7a, 0x6f, 0x69, 0x67, 0x6e, 0x7c, 0x8e, 0x9b, 0x9b, 0x90, 0x7d, 0x6b, 0x63, 0x68, 0x77, 0x88, +0x93, 0x96, 0x8d, 0x7e, 0x72, 0x6c, 0x6e, 0x74, 0x7e, 0x87, 0x8d, 0x90, 0x8d, 0x83, 0x7a, 0x74, +0x73, 0x79, 0x81, 0x86, 0x86, 0x83, 0x7d, 0x79, 0x7a, 0x7e, 0x83, 0x85, 0x84, 0x82, 0x82, 0x7e, +0x7a, 0x76, 0x75, 0x7a, 0x80, 0x85, 0x89, 0x8a, 0x85, 0x7c, 0x74, 0x71, 0x75, 0x7e, 0x89, 0x8d, +0x8d, 0x86, 0x7a, 0x74, 0x73, 0x76, 0x7c, 0x82, 0x8b, 0x92, 0x92, 0x8a, 0x7a, 0x6f, 0x6d, 0x72, +0x75, 0x79, 0x82, 0x89, 0x89, 0x84, 0x7e, 0x7d, 0x7d, 0x7d, 0x80, 0x84, 0x85, 0x7d, 0x70, 0x57, +0x42, 0x4b, 0x7e, 0xc4, 0xef, 0xde, 0x9b, 0x4c, 0x1f, 0x2c, 0x5b, 0x93, 0xb7, 0xc2, 0xbd, 0x9d, +0x6b, 0x46, 0x40, 0x54, 0x6c, 0x7d, 0x8f, 0xa3, 0xae, 0xa6, 0x89, 0x62, 0x4a, 0x4a, 0x63, 0x8b, +0xab, 0xb8, 0xae, 0x92, 0x6f, 0x56, 0x50, 0x5b, 0x74, 0x91, 0xa1, 0x9e, 0x90, 0x80, 0x6e, 0x5e, +0x58, 0x61, 0x73, 0x8c, 0xa5, 0xac, 0x9a, 0x7c, 0x68, 0x60, 0x5e, 0x6a, 0x86, 0xa3, 0xab, 0x9f, +0x8e, 0x7c, 0x6e, 0x67, 0x6c, 0x74, 0x7a, 0x84, 0x8b, 0x86, 0x7a, 0x73, 0x76, 0x7a, 0x80, 0x87, +0x8d, 0x8e, 0x87, 0x7c, 0x76, 0x75, 0x7a, 0x84, 0x8d, 0x90, 0x8d, 0x81, 0x72, 0x6b, 0x6a, 0x72, +0x80, 0x89, 0x8d, 0x8b, 0x85, 0x79, 0x6e, 0x6a, 0x70, 0x7d, 0x89, 0x93, 0x96, 0x93, 0x87, 0x79, +0x71, 0x6e, 0x72, 0x7c, 0x86, 0x8a, 0x8a, 0x85, 0x7e, 0x7b, 0x77, 0x77, 0x7a, 0x7a, 0x7a, 0x7b, +0x7c, 0x7b, 0x7d, 0x7d, 0x81, 0x84, 0x86, 0x85, 0x82, 0x7c, 0x7a, 0x78, 0x7a, 0x80, 0x87, 0x8b, +0x89, 0x7e, 0x6e, 0x61, 0x5f, 0x6f, 0x8d, 0xa9, 0xb3, 0xa1, 0x78, 0x4f, 0x40, 0x55, 0x81, 0xa9, +0xb8, 0xa9, 0x89, 0x6a, 0x5e, 0x63, 0x6d, 0x79, 0x84, 0x8c, 0x91, 0x93, 0x90, 0x87, 0x78, 0x6b, +0x65, 0x66, 0x73, 0x8c, 0x9e, 0xa1, 0x91, 0x78, 0x67, 0x65, 0x6d, 0x7a, 0x89, 0x8f, 0x8f, 0x8a, +0x83, 0x7a, 0x72, 0x6b, 0x6c, 0x73, 0x7e, 0x8a, 0x92, 0x94, 0x8b, 0x7d, 0x71, 0x6b, 0x6d, 0x77, +0x85, 0x8d, 0x8d, 0x86, 0x83, 0x7e, 0x78, 0x75, 0x75, 0x7b, 0x82, 0x89, 0x8e, 0x8e, 0x86, 0x79, +0x6e, 0x6a, 0x6e, 0x79, 0x87, 0x8f, 0x8f, 0x87, 0x7a, 0x74, 0x72, 0x76, 0x80, 0x87, 0x8a, 0x89, +0x85, 0x7c, 0x75, 0x6f, 0x6e, 0x73, 0x7c, 0x86, 0x8b, 0x89, 0x7e, 0x72, 0x69, 0x6b, 0x77, 0x85, +0x90, 0x96, 0x93, 0x89, 0x7d, 0x76, 0x71, 0x70, 0x76, 0x83, 0x8d, 0x91, 0x8d, 0x87, 0x7e, 0x75, +0x6f, 0x70, 0x76, 0x7c, 0x83, 0x86, 0x86, 0x85, 0x82, 0x7e, 0x7a, 0x75, 0x70, 0x6f, 0x77, 0x85, +0x97, 0xa4, 0xa7, 0x97, 0x79, 0x5e, 0x52, 0x5e, 0x7a, 0x98, 0xa7, 0x9e, 0x81, 0x64, 0x59, 0x65, +0x81, 0x9b, 0xa0, 0x94, 0x7e, 0x6e, 0x6a, 0x6b, 0x70, 0x74, 0x77, 0x83, 0x94, 0xa6, 0xae, 0xa2, +0x86, 0x66, 0x54, 0x53, 0x62, 0x7c, 0x97, 0xa4, 0xa0, 0x90, 0x7b, 0x6c, 0x67, 0x6a, 0x71, 0x77, +0x7c, 0x85, 0x8c, 0x8d, 0x86, 0x7c, 0x72, 0x70, 0x77, 0x85, 0x92, 0x94, 0x8b, 0x7d, 0x6f, 0x6c, +0x70, 0x7a, 0x87, 0x8b, 0x8a, 0x84, 0x7a, 0x73, 0x71, 0x74, 0x7a, 0x84, 0x8e, 0x94, 0x91, 0x88, +0x78, 0x69, 0x65, 0x6b, 0x77, 0x85, 0x8e, 0x91, 0x8e, 0x89, 0x83, 0x7d, 0x77, 0x71, 0x70, 0x74, +0x7e, 0x89, 0x8d, 0x8a, 0x85, 0x81, 0x7b, 0x77, 0x7a, 0x80, 0x82, 0x7e, 0x7a, 0x79, 0x7b, 0x7d, +0x82, 0x88, 0x8c, 0x8d, 0x89, 0x80, 0x6f, 0x58, 0x43, 0x43, 0x6a, 0xad, 0xe6, 0xeb, 0xb4, 0x60, +0x24, 0x23, 0x50, 0x87, 0xad, 0xba, 0xb5, 0xa5, 0x8d, 0x6f, 0x55, 0x47, 0x4b, 0x5e, 0x7b, 0x9b, +0xae, 0xb1, 0xa2, 0x81, 0x5b, 0x44, 0x47, 0x69, 0x96, 0xb3, 0xb7, 0x9f, 0x82, 0x6e, 0x66, 0x66, +0x6e, 0x7c, 0x8d, 0x97, 0x99, 0x92, 0x81, 0x69, 0x59, 0x57, 0x64, 0x7b, 0x95, 0xa4, 0xa4, 0x96, +0x7e, 0x67, 0x5b, 0x5b, 0x6b, 0x83, 0x94, 0x9c, 0x9e, 0x9c, 0x8f, 0x7b, 0x6b, 0x64, 0x6b, 0x77, +0x89, 0x95, 0x95, 0x8a, 0x78, 0x6b, 0x68, 0x70, 0x7b, 0x86, 0x8d, 0x90, 0x8e, 0x8a, 0x84, 0x79, +0x70, 0x6d, 0x70, 0x7a, 0x87, 0x91, 0x94, 0x8e, 0x85, 0x79, 0x72, 0x70, 0x6f, 0x73, 0x79, 0x7e, +0x82, 0x87, 0x8d, 0x90, 0x8b, 0x81, 0x76, 0x71, 0x72, 0x7d, 0x8c, 0x93, 0x92, 0x89, 0x7e, 0x77, +0x77, 0x7c, 0x83, 0x85, 0x84, 0x81, 0x7d, 0x7d, 0x7b, 0x7c, 0x7d, 0x80, 0x83, 0x82, 0x82, 0x82, +0x81, 0x7d, 0x78, 0x74, 0x76, 0x7c, 0x87, 0x8f, 0x94, 0x92, 0x8a, 0x7b, 0x69, 0x5b, 0x53, 0x5c, +0x76, 0x9e, 0xc3, 0xce, 0xb1, 0x74, 0x37, 0x1b, 0x36, 0x7a, 0xbb, 0xdd, 0xc7, 0x8d, 0x5b, 0x48, +0x58, 0x72, 0x81, 0x7b, 0x75, 0x81, 0x9a, 0xaf, 0xab, 0x8a, 0x5f, 0x43, 0x44, 0x63, 0x8f, 0xab, +0xb1, 0xa2, 0x8a, 0x70, 0x60, 0x5f, 0x68, 0x77, 0x85, 0x8d, 0x90, 0x90, 0x8c, 0x84, 0x77, 0x6a, +0x64, 0x69, 0x79, 0x8d, 0x9a, 0x99, 0x8d, 0x7a, 0x6d, 0x69, 0x70, 0x7e, 0x8a, 0x8f, 0x8e, 0x8b, +0x88, 0x81, 0x78, 0x71, 0x71, 0x78, 0x84, 0x8f, 0x94, 0x91, 0x83, 0x70, 0x66, 0x69, 0x77, 0x88, +0x93, 0x96, 0x90, 0x84, 0x76, 0x6d, 0x6b, 0x70, 0x78, 0x84, 0x8f, 0x97, 0x99, 0x93, 0x83, 0x71, +0x62, 0x5b, 0x62, 0x71, 0x86, 0x94, 0x97, 0x93, 0x87, 0x78, 0x6f, 0x6c, 0x6f, 0x74, 0x7e, 0x87, +0x8b, 0x8c, 0x88, 0x84, 0x7e, 0x7e, 0x83, 0x84, 0x82, 0x78, 0x6e, 0x67, 0x6a, 0x7c, 0x96, 0xad, +0xb1, 0x9b, 0x74, 0x4d, 0x41, 0x59, 0x82, 0xa9, 0xb5, 0xa1, 0x80, 0x65, 0x62, 0x72, 0x87, 0x8c, +0x7c, 0x6d, 0x6c, 0x82, 0x9e, 0xad, 0xa1, 0x7b, 0x57, 0x49, 0x5b, 0x81, 0xa0, 0xa7, 0x9a, 0x82, +0x72, 0x73, 0x79, 0x81, 0x81, 0x79, 0x74, 0x76, 0x81, 0x8d, 0x91, 0x8b, 0x7c, 0x71, 0x6f, 0x79, +0x88, 0x90, 0x8e, 0x84, 0x77, 0x6f, 0x70, 0x7b, 0x87, 0x8e, 0x8b, 0x86, 0x83, 0x82, 0x81, 0x7c, +0x77, 0x73, 0x74, 0x7d, 0x89, 0x91, 0x93, 0x8a, 0x7a, 0x6e, 0x6b, 0x6f, 0x79, 0x83, 0x87, 0x85, +0x83, 0x82, 0x83, 0x83, 0x80, 0x7a, 0x75, 0x75, 0x7b, 0x84, 0x8a, 0x8c, 0x87, 0x80, 0x7a, 0x7a, +0x7e, 0x82, 0x83, 0x7d, 0x77, 0x76, 0x7a, 0x84, 0x8c, 0x8e, 0x8a, 0x81, 0x7a, 0x77, 0x78, 0x7a, +0x7b, 0x7c, 0x7b, 0x80, 0x85, 0x87, 0x88, 0x85, 0x80, 0x7b, 0x77, 0x74, 0x73, 0x74, 0x79, 0x7e, +0x86, 0x8f, 0x94, 0x90, 0x83, 0x73, 0x66, 0x66, 0x71, 0x80, 0x8d, 0x8e, 0x88, 0x80, 0x7b, 0x7c, +0x7e, 0x7e, 0x7b, 0x77, 0x75, 0x79, 0x82, 0x8a, 0x8e, 0x8c, 0x86, 0x7b, 0x74, 0x73, 0x77, 0x80, +0x85, 0x86, 0x85, 0x83, 0x82, 0x82, 0x80, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x80, 0x7c, +0x79, 0x78, 0x79, 0x7c, 0x82, 0x86, 0x87, 0x83, 0x7d, 0x79, 0x77, 0x77, 0x79, 0x7c, 0x7e, 0x7e, +0x80, 0x82, 0x83, 0x83, 0x82, 0x80, 0x7a, 0x78, 0x78, 0x79, 0x7d, 0x83, 0x84, 0x84, 0x83, 0x81, +0x80, 0x7e, 0x7c, 0x7a, 0x7a, 0x7a, 0x81, 0x87, 0x8c, 0x8b, 0x85, 0x7e, 0x78, 0x75, 0x76, 0x7a, +0x7d, 0x81, 0x84, 0x86, 0x87, 0x86, 0x82, 0x7e, 0x79, 0x78, 0x78, 0x7a, 0x7b, 0x7c, 0x7e, 0x82, +0x85, 0x86, 0x87, 0x84, 0x7d, 0x77, 0x74, 0x76, 0x79, 0x7e, 0x84, 0x89, 0x8b, 0x89, 0x82, 0x7c, +0x7a, 0x79, 0x78, 0x79, 0x7d, 0x85, 0x8b, 0x8d, 0x8c, 0x86, 0x80, 0x7b, 0x75, 0x74, 0x75, 0x79, +0x80, 0x85, 0x8c, 0x8e, 0x89, 0x82, 0x77, 0x75, 0x77, 0x7d, 0x83, 0x82, 0x7d, 0x78, 0x76, 0x79, +0x81, 0x8a, 0x90, 0x8c, 0x80, 0x74, 0x71, 0x74, 0x7d, 0x84, 0x83, 0x80, 0x79, 0x7a, 0x80, 0x85, +0x89, 0x87, 0x80, 0x73, 0x70, 0x76, 0x80, 0x89, 0x8b, 0x85, 0x80, 0x7d, 0x7e, 0x82, 0x82, 0x7d, +0x78, 0x75, 0x78, 0x80, 0x86, 0x8c, 0x8e, 0x88, 0x7d, 0x74, 0x6f, 0x72, 0x78, 0x80, 0x85, 0x88, +0x87, 0x83, 0x80, 0x80, 0x7d, 0x7a, 0x77, 0x79, 0x7d, 0x81, 0x84, 0x84, 0x82, 0x7e, 0x7a, 0x77, +0x78, 0x7c, 0x81, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x7d, 0x7b, +0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x81, 0x82, 0x83, 0x81, 0x7d, 0x79, 0x77, 0x78, 0x7b, 0x7d, 0x80, +0x81, 0x82, 0x84, 0x84, 0x83, 0x81, 0x7c, 0x77, 0x75, 0x77, 0x7a, 0x7c, 0x7e, 0x80, 0x84, 0x88, +0x88, 0x85, 0x7c, 0x77, 0x76, 0x79, 0x81, 0x89, 0x8a, 0x85, 0x7d, 0x77, 0x78, 0x80, 0x86, 0x8a, +0x87, 0x7d, 0x79, 0x7a, 0x82, 0x8a, 0x8a, 0x85, 0x7a, 0x72, 0x71, 0x76, 0x80, 0x86, 0x86, 0x82, +0x7a, 0x79, 0x80, 0x85, 0x88, 0x85, 0x7c, 0x76, 0x74, 0x77, 0x7e, 0x86, 0x89, 0x87, 0x80, 0x78, +0x77, 0x7b, 0x81, 0x82, 0x7d, 0x7b, 0x7c, 0x80, 0x83, 0x85, 0x82, 0x7b, 0x76, 0x75, 0x78, 0x80, +0x85, 0x87, 0x84, 0x80, 0x7c, 0x79, 0x7b, 0x7d, 0x82, 0x83, 0x80, 0x7c, 0x7b, 0x7e, 0x81, 0x80, +0x7e, 0x7d, 0x7d, 0x80, 0x83, 0x86, 0x86, 0x83, 0x7d, 0x7b, 0x78, 0x78, 0x7a, 0x7c, 0x83, 0x87, +0x8a, 0x8b, 0x87, 0x82, 0x7d, 0x7a, 0x79, 0x77, 0x77, 0x7b, 0x82, 0x87, 0x87, 0x84, 0x82, 0x7e, +0x7a, 0x78, 0x77, 0x77, 0x79, 0x7b, 0x80, 0x86, 0x8b, 0x8c, 0x88, 0x83, 0x7d, 0x79, 0x76, 0x72, +0x71, 0x75, 0x7b, 0x85, 0x8d, 0x90, 0x8c, 0x84, 0x7b, 0x77, 0x78, 0x7b, 0x7e, 0x80, 0x80, 0x7d, +0x7d, 0x81, 0x85, 0x88, 0x88, 0x86, 0x82, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7c, 0x7b, 0x7d, 0x82, +0x88, 0x8b, 0x89, 0x83, 0x7b, 0x76, 0x74, 0x75, 0x79, 0x80, 0x83, 0x84, 0x84, 0x85, 0x87, 0x85, +0x82, 0x7c, 0x78, 0x76, 0x77, 0x7a, 0x80, 0x85, 0x85, 0x82, 0x7e, 0x7c, 0x7c, 0x7e, 0x7d, 0x7b, +0x79, 0x78, 0x7a, 0x7e, 0x84, 0x88, 0x88, 0x85, 0x81, 0x7b, 0x78, 0x7a, 0x7c, 0x7e, 0x7e, 0x7e, +0x7d, 0x7c, 0x7c, 0x7e, 0x83, 0x86, 0x88, 0x8a, 0x87, 0x82, 0x7b, 0x77, 0x77, 0x77, 0x78, 0x7c, +0x84, 0x8a, 0x8e, 0x8e, 0x89, 0x81, 0x77, 0x72, 0x71, 0x74, 0x7b, 0x83, 0x89, 0x8a, 0x88, 0x83, +0x7d, 0x7b, 0x7a, 0x78, 0x76, 0x77, 0x7c, 0x82, 0x86, 0x87, 0x86, 0x83, 0x7d, 0x79, 0x78, 0x7a, +0x7e, 0x82, 0x84, 0x84, 0x86, 0x86, 0x84, 0x82, 0x7d, 0x7a, 0x77, 0x78, 0x7d, 0x84, 0x89, 0x89, +0x84, 0x7e, 0x7a, 0x79, 0x7c, 0x82, 0x85, 0x83, 0x7b, 0x77, 0x77, 0x7d, 0x83, 0x85, 0x86, 0x82, +0x80, 0x80, 0x81, 0x84, 0x83, 0x7e, 0x79, 0x74, 0x74, 0x7a, 0x84, 0x8a, 0x8b, 0x87, 0x7e, 0x79, +0x77, 0x7a, 0x7e, 0x81, 0x81, 0x7e, 0x7c, 0x7c, 0x82, 0x87, 0x87, 0x85, 0x80, 0x7a, 0x78, 0x79, +0x7d, 0x81, 0x81, 0x7d, 0x7b, 0x7b, 0x7e, 0x82, 0x84, 0x83, 0x82, 0x7e, 0x7b, 0x7b, 0x7d, 0x82, +0x84, 0x83, 0x7e, 0x7d, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x81, 0x80, 0x81, 0x80, 0x81, 0x82, 0x83, +0x81, 0x81, 0x82, 0x84, 0x84, 0x83, 0x81, 0x7c, 0x7a, 0x79, 0x7d, 0x82, 0x84, 0x84, 0x82, 0x81, +0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x80, 0x82, 0x83, 0x82, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, +0x7e, 0x7e, 0x7c, 0x7b, 0x7a, 0x7b, 0x7e, 0x84, 0x88, 0x88, 0x84, 0x7c, 0x74, 0x6f, 0x70, 0x77, +0x80, 0x87, 0x88, 0x87, 0x83, 0x80, 0x7d, 0x7c, 0x7b, 0x79, 0x77, 0x78, 0x7d, 0x86, 0x8b, 0x8d, +0x8b, 0x83, 0x79, 0x72, 0x74, 0x78, 0x7d, 0x82, 0x84, 0x84, 0x84, 0x84, 0x83, 0x83, 0x80, 0x7a, +0x76, 0x74, 0x76, 0x7d, 0x85, 0x8b, 0x8b, 0x88, 0x82, 0x7b, 0x78, 0x78, 0x79, 0x7c, 0x7e, 0x80, +0x81, 0x83, 0x83, 0x81, 0x7e, 0x7c, 0x79, 0x77, 0x79, 0x7d, 0x83, 0x86, 0x84, 0x80, 0x7d, 0x7b, +0x7b, 0x7e, 0x82, 0x82, 0x81, 0x7e, 0x7b, 0x7b, 0x7c, 0x7e, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x7e, 0x7e, 0x7e, 0x80, 0x83, 0x85, 0x85, 0x83, 0x7e, 0x7b, 0x7a, 0x7a, 0x7c, 0x81, 0x84, +0x85, 0x85, 0x84, 0x80, 0x7c, 0x79, 0x77, 0x77, 0x7a, 0x7c, 0x80, 0x83, 0x83, 0x82, 0x7d, 0x7b, +0x7a, 0x79, 0x7a, 0x7c, 0x7e, 0x80, 0x7e, 0x7c, 0x7b, 0x7d, 0x80, 0x82, 0x80, 0x7c, 0x7c, 0x7c, +0x7e, 0x81, 0x84, 0x84, 0x82, 0x80, 0x7d, 0x7c, 0x7a, 0x77, 0x77, 0x7b, 0x83, 0x86, 0x85, 0x82, +0x7d, 0x7b, 0x7c, 0x7d, 0x7d, 0x7c, 0x79, 0x78, 0x7b, 0x80, 0x85, 0x87, 0x87, 0x84, 0x80, 0x7b, +0x78, 0x7a, 0x7e, 0x83, 0x85, 0x82, 0x80, 0x7e, 0x7e, 0x81, 0x84, 0x84, 0x81, 0x7e, 0x7b, 0x7b, +0x80, 0x84, 0x84, 0x83, 0x80, 0x7d, 0x7d, 0x7e, 0x82, 0x84, 0x84, 0x83, 0x7e, 0x7a, 0x79, 0x7a, +0x7d, 0x80, 0x82, 0x84, 0x84, 0x84, 0x82, 0x7e, 0x7a, 0x75, 0x72, 0x73, 0x78, 0x80, 0x86, 0x89, +0x86, 0x81, 0x7c, 0x7b, 0x7a, 0x7a, 0x7c, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7d, 0x7c, +0x7c, 0x7e, 0x81, 0x83, 0x82, 0x82, 0x81, 0x7d, 0x7b, 0x7b, 0x7d, 0x80, 0x82, 0x83, 0x83, 0x83, +0x82, 0x81, 0x80, 0x7c, 0x7a, 0x7a, 0x7b, 0x7e, 0x81, 0x83, 0x83, 0x82, 0x82, 0x82, 0x81, 0x7c, +0x76, 0x71, 0x72, 0x78, 0x81, 0x87, 0x88, 0x86, 0x80, 0x78, 0x74, 0x76, 0x7c, 0x81, 0x83, 0x83, +0x81, 0x7e, 0x7d, 0x7c, 0x7d, 0x7b, 0x7a, 0x7c, 0x80, 0x86, 0x8c, 0x90, 0x8e, 0x85, 0x7a, 0x72, +0x6f, 0x71, 0x77, 0x80, 0x89, 0x8d, 0x8e, 0x8e, 0x8b, 0x85, 0x78, 0x68, 0x67, 0x75, 0x95, 0xae, +0xaa, 0x8c, 0x5f, 0x3f, 0x41, 0x66, 0x95, 0xb2, 0xb9, 0xad, 0x99, 0x87, 0x78, 0x6c, 0x5e, 0x53, +0x51, 0x60, 0x79, 0x92, 0xa0, 0x9e, 0x92, 0x86, 0x7b, 0x79, 0x7a, 0x79, 0x75, 0x6c, 0x65, 0x67, +0x73, 0x88, 0x9d, 0xa8, 0xa6, 0x97, 0x7b, 0x63, 0x53, 0x54, 0x63, 0x7b, 0x93, 0xa3, 0xa7, 0x9d, +0x8a, 0x75, 0x64, 0x5e, 0x63, 0x73, 0x88, 0x98, 0x9f, 0x9a, 0x8f, 0x80, 0x70, 0x64, 0x60, 0x66, +0x72, 0x87, 0x97, 0x9d, 0x9a, 0x8a, 0x78, 0x6c, 0x69, 0x71, 0x7d, 0x86, 0x88, 0x84, 0x7e, 0x7b, +0x7c, 0x7d, 0x7c, 0x7b, 0x7a, 0x7b, 0x7d, 0x80, 0x82, 0x84, 0x84, 0x82, 0x7e, 0x7b, 0x79, 0x7a, +0x7a, 0x79, 0x79, 0x7a, 0x7c, 0x80, 0x87, 0x90, 0x93, 0x8d, 0x81, 0x71, 0x6c, 0x6f, 0x79, 0x88, +0x91, 0x92, 0x8c, 0x83, 0x7d, 0x7c, 0x7d, 0x7b, 0x77, 0x75, 0x76, 0x7b, 0x84, 0x89, 0x89, 0x84, +0x7b, 0x75, 0x74, 0x77, 0x80, 0x87, 0x8a, 0x89, 0x82, 0x7a, 0x76, 0x74, 0x76, 0x7b, 0x80, 0x82, +0x80, 0x7e, 0x83, 0x89, 0x89, 0x85, 0x7c, 0x71, 0x6b, 0x6f, 0x7a, 0x87, 0x8c, 0x8a, 0x84, 0x7e, +0x7a, 0x78, 0x78, 0x78, 0x7b, 0x81, 0x85, 0x86, 0x86, 0x83, 0x80, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, +0x7c, 0x7c, 0x7c, 0x7d, 0x80, 0x85, 0x87, 0x86, 0x7e, 0x72, 0x6d, 0x73, 0x7e, 0x8a, 0x8b, 0x88, +0x84, 0x84, 0x8a, 0x8a, 0x7e, 0x6f, 0x61, 0x60, 0x6f, 0x86, 0x96, 0x95, 0x87, 0x79, 0x73, 0x7b, +0x8a, 0x91, 0x8b, 0x7d, 0x72, 0x72, 0x78, 0x7b, 0x71, 0x5a, 0x47, 0x4a, 0x6e, 0xa4, 0xd5, 0xe1, +0xbd, 0x7e, 0x42, 0x25, 0x2e, 0x53, 0x7d, 0x9d, 0xab, 0xaf, 0xb0, 0xaa, 0x9a, 0x82, 0x62, 0x47, +0x42, 0x55, 0x7c, 0xa6, 0xc0, 0xc6, 0xb4, 0x8c, 0x5e, 0x3d, 0x32, 0x3e, 0x5d, 0x87, 0xad, 0xc1, +0xbc, 0xa5, 0x86, 0x67, 0x51, 0x48, 0x4e, 0x62, 0x80, 0x9a, 0xb0, 0xb7, 0xaa, 0x8f, 0x6d, 0x53, +0x4a, 0x50, 0x63, 0x81, 0x99, 0xa8, 0xab, 0xa1, 0x8d, 0x74, 0x5f, 0x54, 0x56, 0x63, 0x77, 0x8b, +0x9a, 0xa1, 0x9e, 0x96, 0x8b, 0x7e, 0x74, 0x68, 0x5f, 0x60, 0x69, 0x7d, 0x94, 0xa3, 0xa7, 0x97, +0x7c, 0x63, 0x55, 0x59, 0x6c, 0x8c, 0xa8, 0xb3, 0xac, 0x96, 0x76, 0x5e, 0x58, 0x61, 0x72, 0x81, +0x89, 0x8b, 0x8b, 0x88, 0x83, 0x7a, 0x72, 0x70, 0x76, 0x7d, 0x81, 0x81, 0x80, 0x81, 0x87, 0x8d, +0x8c, 0x83, 0x75, 0x6c, 0x6b, 0x74, 0x84, 0x92, 0x97, 0x8f, 0x83, 0x79, 0x74, 0x75, 0x79, 0x80, +0x84, 0x85, 0x88, 0x89, 0x88, 0x85, 0x81, 0x7a, 0x74, 0x6c, 0x65, 0x63, 0x6e, 0x89, 0xa5, 0xb7, +0xb1, 0x90, 0x66, 0x47, 0x41, 0x5a, 0x81, 0xa1, 0xab, 0xa0, 0x91, 0x84, 0x7c, 0x7a, 0x74, 0x6b, +0x65, 0x66, 0x72, 0x86, 0x96, 0x9d, 0x9b, 0x92, 0x85, 0x72, 0x64, 0x5d, 0x60, 0x6f, 0x86, 0x99, +0x9f, 0x97, 0x87, 0x76, 0x6e, 0x6e, 0x73, 0x78, 0x7d, 0x7e, 0x82, 0x86, 0x8a, 0x8b, 0x88, 0x81, +0x7a, 0x78, 0x79, 0x7c, 0x80, 0x84, 0x87, 0x88, 0x86, 0x82, 0x7b, 0x76, 0x76, 0x79, 0x81, 0x88, +0x8a, 0x86, 0x80, 0x79, 0x76, 0x76, 0x77, 0x7b, 0x81, 0x84, 0x88, 0x89, 0x87, 0x82, 0x7c, 0x77, +0x77, 0x7a, 0x7e, 0x82, 0x86, 0x86, 0x86, 0x86, 0x85, 0x80, 0x78, 0x73, 0x74, 0x7b, 0x85, 0x89, +0x8a, 0x87, 0x82, 0x81, 0x83, 0x88, 0x89, 0x81, 0x6d, 0x54, 0x3f, 0x42, 0x65, 0x9d, 0xd1, 0xec, +0xda, 0xa0, 0x55, 0x20, 0x13, 0x32, 0x6a, 0xa0, 0xc8, 0xd6, 0xc6, 0xa8, 0x82, 0x60, 0x4b, 0x46, +0x55, 0x6a, 0x81, 0x93, 0xa1, 0xa9, 0xa9, 0x9f, 0x8b, 0x6c, 0x4e, 0x3b, 0x3f, 0x5e, 0x87, 0xaa, +0xbd, 0xb9, 0xa2, 0x80, 0x5e, 0x4b, 0x49, 0x57, 0x72, 0x92, 0xa8, 0xaf, 0xa7, 0x94, 0x7e, 0x6c, +0x62, 0x62, 0x68, 0x73, 0x80, 0x8e, 0x9c, 0xa3, 0x9e, 0x8f, 0x79, 0x65, 0x5b, 0x5b, 0x65, 0x77, +0x88, 0x95, 0x9c, 0x9a, 0x90, 0x80, 0x71, 0x6b, 0x6d, 0x76, 0x80, 0x85, 0x82, 0x7b, 0x78, 0x7a, +0x83, 0x89, 0x89, 0x85, 0x82, 0x81, 0x83, 0x87, 0x89, 0x87, 0x82, 0x7c, 0x78, 0x76, 0x74, 0x73, +0x72, 0x76, 0x7d, 0x86, 0x8a, 0x89, 0x82, 0x7a, 0x76, 0x74, 0x75, 0x79, 0x81, 0x89, 0x8b, 0x8a, +0x85, 0x7c, 0x76, 0x74, 0x79, 0x82, 0x89, 0x8b, 0x89, 0x85, 0x81, 0x7e, 0x7c, 0x7d, 0x7d, 0x7d, +0x80, 0x81, 0x82, 0x81, 0x7d, 0x7b, 0x7d, 0x81, 0x84, 0x87, 0x87, 0x82, 0x74, 0x68, 0x5f, 0x5f, +0x6e, 0x8a, 0xa6, 0xb9, 0xb1, 0x92, 0x67, 0x46, 0x40, 0x57, 0x7b, 0x9d, 0xb0, 0xb2, 0xa3, 0x8c, +0x74, 0x60, 0x57, 0x5b, 0x6d, 0x88, 0x9e, 0xa4, 0x98, 0x86, 0x77, 0x6f, 0x70, 0x76, 0x78, 0x77, +0x77, 0x7a, 0x83, 0x8a, 0x8d, 0x8c, 0x86, 0x7e, 0x78, 0x71, 0x6c, 0x6d, 0x73, 0x7e, 0x8e, 0x99, +0x98, 0x8e, 0x80, 0x73, 0x6c, 0x6e, 0x76, 0x80, 0x88, 0x8d, 0x8f, 0x8b, 0x84, 0x78, 0x70, 0x6f, +0x76, 0x80, 0x89, 0x8d, 0x8b, 0x86, 0x81, 0x7c, 0x7a, 0x76, 0x75, 0x77, 0x7b, 0x82, 0x88, 0x8a, +0x88, 0x84, 0x80, 0x7c, 0x78, 0x77, 0x78, 0x7c, 0x84, 0x8c, 0x91, 0x8e, 0x86, 0x7a, 0x71, 0x6d, +0x72, 0x7a, 0x84, 0x8d, 0x93, 0x93, 0x8e, 0x83, 0x70, 0x58, 0x42, 0x3d, 0x51, 0x7b, 0xae, 0xd1, +0xdd, 0xc6, 0x92, 0x5a, 0x2e, 0x1d, 0x2a, 0x56, 0x94, 0xcb, 0xeb, 0xe7, 0xc1, 0x83, 0x48, 0x24, +0x23, 0x40, 0x6f, 0x9d, 0xbc, 0xc7, 0xbb, 0x9e, 0x7a, 0x5b, 0x47, 0x45, 0x55, 0x6d, 0x84, 0x96, +0x9f, 0xa1, 0x9c, 0x92, 0x84, 0x71, 0x5f, 0x56, 0x5a, 0x66, 0x7b, 0x92, 0xa2, 0xad, 0xa9, 0x98, +0x80, 0x66, 0x57, 0x53, 0x5e, 0x76, 0x93, 0xa7, 0xad, 0xa5, 0x91, 0x77, 0x61, 0x55, 0x56, 0x64, +0x7a, 0x90, 0x9f, 0xa0, 0x95, 0x86, 0x78, 0x70, 0x6f, 0x71, 0x75, 0x79, 0x7c, 0x80, 0x82, 0x83, +0x86, 0x8a, 0x8d, 0x8d, 0x88, 0x7d, 0x74, 0x6e, 0x6f, 0x7a, 0x8d, 0x9a, 0x9e, 0x97, 0x87, 0x72, +0x5f, 0x58, 0x5e, 0x70, 0x88, 0x9c, 0xa8, 0xa2, 0x8c, 0x6f, 0x5a, 0x55, 0x5f, 0x74, 0x8d, 0xa2, +0xa8, 0x9d, 0x88, 0x70, 0x60, 0x5c, 0x65, 0x7a, 0x90, 0x9e, 0xa2, 0x99, 0x8a, 0x7a, 0x6e, 0x69, +0x6f, 0x79, 0x84, 0x8c, 0x8d, 0x89, 0x83, 0x7d, 0x7c, 0x7c, 0x80, 0x81, 0x80, 0x79, 0x6f, 0x67, +0x65, 0x6c, 0x7e, 0x94, 0xa5, 0xa9, 0x9b, 0x81, 0x64, 0x50, 0x4e, 0x61, 0x80, 0x9f, 0xb2, 0xb2, +0xa5, 0x8d, 0x6e, 0x56, 0x4e, 0x56, 0x6e, 0x8e, 0xa7, 0xb0, 0xa7, 0x92, 0x78, 0x65, 0x5b, 0x5d, +0x69, 0x78, 0x89, 0x95, 0x9a, 0x93, 0x86, 0x77, 0x70, 0x6f, 0x73, 0x78, 0x7b, 0x7d, 0x7e, 0x81, +0x84, 0x86, 0x88, 0x89, 0x87, 0x84, 0x7d, 0x76, 0x72, 0x72, 0x77, 0x7e, 0x8a, 0x90, 0x90, 0x8b, +0x80, 0x76, 0x71, 0x6e, 0x72, 0x7a, 0x85, 0x8e, 0x90, 0x8c, 0x83, 0x76, 0x6e, 0x6c, 0x71, 0x79, +0x84, 0x8c, 0x90, 0x8e, 0x88, 0x7e, 0x76, 0x71, 0x72, 0x78, 0x81, 0x87, 0x88, 0x87, 0x83, 0x80, +0x7e, 0x7c, 0x7c, 0x7c, 0x7d, 0x81, 0x86, 0x87, 0x7e, 0x6e, 0x5d, 0x54, 0x5a, 0x71, 0x92, 0xb0, +0xc0, 0xba, 0xa0, 0x7c, 0x56, 0x3b, 0x37, 0x48, 0x72, 0xa5, 0xcd, 0xdd, 0xcd, 0xa2, 0x6d, 0x40, +0x29, 0x2e, 0x4c, 0x7c, 0xab, 0xcc, 0xd3, 0xbc, 0x93, 0x63, 0x41, 0x35, 0x3e, 0x5c, 0x81, 0xa0, +0xb3, 0xb5, 0xa7, 0x8d, 0x72, 0x5f, 0x56, 0x5c, 0x6a, 0x7b, 0x8b, 0x94, 0x98, 0x97, 0x91, 0x88, +0x7e, 0x75, 0x6f, 0x6e, 0x73, 0x78, 0x80, 0x88, 0x90, 0x96, 0x96, 0x8e, 0x82, 0x73, 0x67, 0x62, +0x65, 0x71, 0x80, 0x8d, 0x9a, 0x9e, 0x97, 0x8a, 0x76, 0x67, 0x5f, 0x60, 0x6b, 0x7a, 0x89, 0x93, +0x98, 0x95, 0x8e, 0x83, 0x78, 0x71, 0x6d, 0x6d, 0x73, 0x7c, 0x87, 0x90, 0x97, 0x99, 0x93, 0x88, +0x77, 0x69, 0x62, 0x61, 0x6a, 0x77, 0x86, 0x92, 0x97, 0x94, 0x8a, 0x7a, 0x6e, 0x69, 0x6b, 0x74, +0x80, 0x89, 0x8e, 0x8d, 0x8a, 0x83, 0x7b, 0x78, 0x76, 0x79, 0x7e, 0x83, 0x87, 0x88, 0x85, 0x82, +0x7e, 0x7e, 0x82, 0x83, 0x83, 0x83, 0x82, 0x7e, 0x7a, 0x76, 0x73, 0x73, 0x75, 0x7c, 0x85, 0x8e, +0x94, 0x92, 0x87, 0x77, 0x69, 0x63, 0x66, 0x71, 0x82, 0x92, 0x9c, 0x9b, 0x92, 0x85, 0x73, 0x66, +0x62, 0x68, 0x78, 0x8a, 0x96, 0x9c, 0x98, 0x8c, 0x7d, 0x6e, 0x66, 0x67, 0x6f, 0x7c, 0x8b, 0x94, +0x95, 0x90, 0x85, 0x78, 0x70, 0x6d, 0x70, 0x76, 0x7d, 0x83, 0x86, 0x86, 0x85, 0x84, 0x83, 0x82, +0x82, 0x81, 0x7e, 0x7c, 0x79, 0x78, 0x79, 0x79, 0x7c, 0x81, 0x85, 0x88, 0x88, 0x86, 0x82, 0x7c, +0x78, 0x76, 0x77, 0x7a, 0x80, 0x83, 0x84, 0x84, 0x82, 0x80, 0x7d, 0x7c, 0x7b, 0x7d, 0x7e, 0x80, +0x81, 0x7e, 0x7c, 0x7a, 0x7b, 0x7d, 0x81, 0x85, 0x86, 0x85, 0x82, 0x7c, 0x78, 0x77, 0x7a, 0x82, +0x8a, 0x8e, 0x89, 0x79, 0x65, 0x54, 0x4e, 0x5c, 0x78, 0x9d, 0xbd, 0xcb, 0xc2, 0xa1, 0x74, 0x46, +0x24, 0x23, 0x3f, 0x74, 0xb2, 0xde, 0xf0, 0xdc, 0xa9, 0x6c, 0x35, 0x13, 0x10, 0x35, 0x70, 0xac, +0xdc, 0xee, 0xd7, 0xa6, 0x6b, 0x39, 0x1b, 0x1d, 0x3c, 0x6e, 0xa5, 0xca, 0xd6, 0xc8, 0xa3, 0x74, +0x51, 0x3b, 0x3b, 0x51, 0x72, 0x94, 0xad, 0xb8, 0xad, 0x96, 0x7c, 0x65, 0x5c, 0x5e, 0x68, 0x78, +0x88, 0x94, 0x9a, 0x97, 0x8d, 0x80, 0x74, 0x6e, 0x6d, 0x6d, 0x6f, 0x70, 0x72, 0x79, 0x84, 0x8c, +0x93, 0x94, 0x90, 0x86, 0x77, 0x69, 0x5d, 0x5a, 0x5f, 0x70, 0x87, 0x9c, 0xa9, 0xaa, 0x9e, 0x8b, +0x73, 0x5e, 0x55, 0x58, 0x68, 0x83, 0x9c, 0xad, 0xb0, 0xa1, 0x89, 0x6d, 0x57, 0x4c, 0x52, 0x65, +0x81, 0x9b, 0xac, 0xae, 0x9f, 0x87, 0x6c, 0x58, 0x51, 0x59, 0x6b, 0x83, 0x9a, 0xa7, 0xa7, 0x9c, +0x87, 0x70, 0x60, 0x59, 0x5b, 0x64, 0x74, 0x88, 0x9b, 0xaa, 0xaf, 0xa7, 0x94, 0x7b, 0x65, 0x56, +0x4f, 0x55, 0x69, 0x86, 0xa3, 0xb8, 0xbc, 0xaf, 0x93, 0x73, 0x56, 0x44, 0x43, 0x52, 0x6e, 0x92, +0xaf, 0xbd, 0xb8, 0xa2, 0x82, 0x61, 0x4b, 0x43, 0x4d, 0x65, 0x83, 0xa0, 0xb3, 0xb4, 0xa6, 0x8c, +0x6f, 0x5a, 0x52, 0x57, 0x65, 0x7c, 0x95, 0xa6, 0xac, 0xa4, 0x91, 0x79, 0x66, 0x5c, 0x5f, 0x6b, +0x7a, 0x8b, 0x98, 0x9c, 0x99, 0x8e, 0x7e, 0x72, 0x6a, 0x6a, 0x6f, 0x77, 0x7e, 0x86, 0x8b, 0x8c, +0x8a, 0x85, 0x7e, 0x79, 0x76, 0x75, 0x76, 0x78, 0x7b, 0x82, 0x87, 0x8a, 0x8b, 0x88, 0x84, 0x7e, +0x79, 0x74, 0x71, 0x72, 0x77, 0x81, 0x8a, 0x8f, 0x90, 0x8b, 0x82, 0x78, 0x72, 0x71, 0x74, 0x7b, +0x84, 0x88, 0x85, 0x79, 0x69, 0x5c, 0x5a, 0x66, 0x80, 0x9d, 0xb4, 0xbf, 0xb5, 0x9b, 0x75, 0x4d, +0x33, 0x2f, 0x47, 0x75, 0xa8, 0xd4, 0xe7, 0xdb, 0xb7, 0x7e, 0x44, 0x1e, 0x14, 0x29, 0x5d, 0x9b, +0xd2, 0xed, 0xe5, 0xc0, 0x87, 0x4b, 0x20, 0x10, 0x22, 0x4f, 0x88, 0xbc, 0xdb, 0xdc, 0xc0, 0x90, +0x5e, 0x39, 0x26, 0x33, 0x53, 0x7e, 0xac, 0xc7, 0xcc, 0xbb, 0x99, 0x74, 0x56, 0x47, 0x49, 0x5b, +0x76, 0x93, 0xa8, 0xaf, 0xa8, 0x96, 0x81, 0x6c, 0x5f, 0x5b, 0x5f, 0x6b, 0x7b, 0x8c, 0x97, 0x9a, +0x97, 0x8f, 0x85, 0x78, 0x6e, 0x66, 0x64, 0x67, 0x70, 0x7d, 0x8c, 0x96, 0x9b, 0x99, 0x91, 0x83, +0x73, 0x66, 0x5e, 0x61, 0x6e, 0x83, 0x96, 0xa5, 0xa8, 0xa0, 0x8e, 0x76, 0x60, 0x51, 0x51, 0x5e, +0x75, 0x93, 0xaa, 0xb1, 0xa8, 0x94, 0x74, 0x58, 0x48, 0x49, 0x5c, 0x7c, 0x9d, 0xb5, 0xba, 0xa8, +0x86, 0x5d, 0x42, 0x38, 0x47, 0x6b, 0x9a, 0xc3, 0xd8, 0xcf, 0xad, 0x78, 0x47, 0x28, 0x22, 0x3d, +0x6b, 0xa4, 0xd3, 0xe6, 0xda, 0xb5, 0x7b, 0x43, 0x1e, 0x17, 0x30, 0x61, 0x99, 0xc9, 0xe0, 0xd9, +0xb8, 0x85, 0x4d, 0x29, 0x20, 0x34, 0x5e, 0x8f, 0xba, 0xd1, 0xd0, 0xb6, 0x8c, 0x61, 0x40, 0x35, +0x41, 0x5f, 0x85, 0xa5, 0xba, 0xbb, 0xa9, 0x8c, 0x6f, 0x58, 0x4e, 0x53, 0x65, 0x7e, 0x97, 0xa2, +0xa4, 0x9a, 0x88, 0x77, 0x68, 0x63, 0x68, 0x72, 0x81, 0x8c, 0x90, 0x8e, 0x86, 0x7b, 0x75, 0x73, +0x75, 0x7b, 0x84, 0x89, 0x8a, 0x86, 0x7d, 0x74, 0x6f, 0x6f, 0x76, 0x82, 0x8e, 0x97, 0x9a, 0x94, +0x89, 0x7a, 0x6e, 0x66, 0x66, 0x6f, 0x7e, 0x8d, 0x99, 0x9d, 0x99, 0x8e, 0x81, 0x70, 0x60, 0x53, +0x4d, 0x53, 0x64, 0x7e, 0x9b, 0xb2, 0xbe, 0xba, 0xa7, 0x89, 0x63, 0x42, 0x2f, 0x34, 0x50, 0x78, +0xa8, 0xcf, 0xe0, 0xdb, 0xbb, 0x8c, 0x56, 0x2c, 0x1a, 0x22, 0x46, 0x79, 0xac, 0xd2, 0xe4, 0xd7, +0xb2, 0x80, 0x4c, 0x28, 0x1a, 0x27, 0x4b, 0x7b, 0xab, 0xcb, 0xd5, 0xc5, 0xa3, 0x78, 0x50, 0x36, +0x30, 0x41, 0x60, 0x87, 0xa7, 0xbc, 0xbf, 0xb0, 0x95, 0x76, 0x5d, 0x51, 0x51, 0x5e, 0x72, 0x86, +0x97, 0xa0, 0xa0, 0x98, 0x8a, 0x7b, 0x6f, 0x66, 0x65, 0x69, 0x71, 0x7b, 0x85, 0x8e, 0x93, 0x93, +0x90, 0x89, 0x80, 0x76, 0x6f, 0x6b, 0x6b, 0x6f, 0x76, 0x81, 0x8a, 0x91, 0x95, 0x94, 0x8e, 0x85, +0x7a, 0x71, 0x6d, 0x6e, 0x72, 0x79, 0x81, 0x86, 0x88, 0x87, 0x83, 0x7e, 0x7b, 0x78, 0x79, 0x7b, +0x7e, 0x81, 0x82, 0x81, 0x80, 0x7d, 0x7b, 0x7b, 0x7c, 0x80, 0x83, 0x83, 0x81, 0x7a, 0x74, 0x70, +0x72, 0x78, 0x82, 0x8c, 0x94, 0x99, 0x97, 0x8e, 0x7e, 0x6f, 0x62, 0x5e, 0x64, 0x72, 0x87, 0x98, +0xa4, 0xa7, 0x9e, 0x8d, 0x77, 0x63, 0x56, 0x55, 0x5f, 0x72, 0x87, 0x9a, 0xa7, 0xa8, 0x9f, 0x8d, +0x76, 0x62, 0x57, 0x58, 0x62, 0x72, 0x88, 0x97, 0xa0, 0xa0, 0x97, 0x88, 0x78, 0x6b, 0x64, 0x64, +0x6b, 0x75, 0x83, 0x8c, 0x92, 0x95, 0x91, 0x8a, 0x82, 0x79, 0x74, 0x72, 0x73, 0x75, 0x7a, 0x7d, +0x83, 0x86, 0x87, 0x88, 0x89, 0x89, 0x89, 0x88, 0x84, 0x7d, 0x77, 0x72, 0x70, 0x71, 0x77, 0x80, +0x8a, 0x91, 0x96, 0x95, 0x8d, 0x82, 0x76, 0x6c, 0x66, 0x67, 0x70, 0x7c, 0x8a, 0x96, 0x9b, 0x99, +0x90, 0x84, 0x75, 0x69, 0x64, 0x65, 0x6d, 0x7b, 0x8c, 0x98, 0x9b, 0x93, 0x80, 0x67, 0x52, 0x47, +0x4b, 0x61, 0x82, 0xa5, 0xc2, 0xcb, 0xc1, 0xa4, 0x7b, 0x51, 0x35, 0x2e, 0x3b, 0x5b, 0x87, 0xb1, +0xd1, 0xdc, 0xcf, 0xae, 0x84, 0x5a, 0x3b, 0x2f, 0x36, 0x50, 0x75, 0x9a, 0xb8, 0xc5, 0xbe, 0xa9, +0x8b, 0x6b, 0x54, 0x48, 0x49, 0x57, 0x6b, 0x83, 0x95, 0x9d, 0x9c, 0x96, 0x8b, 0x80, 0x78, 0x74, +0x72, 0x74, 0x76, 0x79, 0x7a, 0x7a, 0x7b, 0x7d, 0x82, 0x88, 0x8e, 0x92, 0x93, 0x91, 0x8b, 0x81, +0x73, 0x67, 0x5f, 0x5f, 0x68, 0x79, 0x8d, 0x9e, 0xa9, 0xaa, 0x9f, 0x8a, 0x72, 0x5d, 0x52, 0x52, +0x5e, 0x71, 0x84, 0x94, 0x9e, 0xa0, 0x9b, 0x8e, 0x7e, 0x71, 0x6b, 0x6d, 0x74, 0x7e, 0x89, 0x91, +0x93, 0x8f, 0x84, 0x75, 0x68, 0x64, 0x68, 0x72, 0x80, 0x8d, 0x94, 0x94, 0x8e, 0x82, 0x73, 0x68, +0x63, 0x68, 0x72, 0x80, 0x8d, 0x95, 0x98, 0x95, 0x8d, 0x80, 0x6f, 0x60, 0x58, 0x59, 0x62, 0x71, +0x85, 0x96, 0xa2, 0xaa, 0xa9, 0xa0, 0x90, 0x7d, 0x6c, 0x5f, 0x5b, 0x5f, 0x6a, 0x78, 0x88, 0x95, +0x9e, 0x9f, 0x9a, 0x91, 0x84, 0x79, 0x71, 0x6d, 0x6d, 0x71, 0x76, 0x7a, 0x7c, 0x7d, 0x7d, 0x7e, +0x83, 0x87, 0x89, 0x8a, 0x88, 0x84, 0x7e, 0x79, 0x73, 0x6e, 0x6e, 0x71, 0x77, 0x7d, 0x84, 0x89, +0x8d, 0x8d, 0x8b, 0x86, 0x81, 0x7c, 0x7a, 0x7a, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x82, +0x84, 0x82, 0x80, 0x7b, 0x77, 0x75, 0x74, 0x77, 0x80, 0x8a, 0x93, 0x98, 0x95, 0x8d, 0x81, 0x73, +0x68, 0x63, 0x64, 0x6b, 0x78, 0x87, 0x92, 0x97, 0x95, 0x90, 0x87, 0x7d, 0x76, 0x72, 0x74, 0x79, +0x80, 0x85, 0x87, 0x86, 0x84, 0x81, 0x7b, 0x7a, 0x7b, 0x80, 0x84, 0x85, 0x7e, 0x72, 0x66, 0x5f, +0x5e, 0x67, 0x76, 0x88, 0x99, 0xa5, 0xa9, 0xa3, 0x94, 0x81, 0x6f, 0x63, 0x5f, 0x62, 0x6b, 0x76, +0x82, 0x8a, 0x8d, 0x8b, 0x88, 0x82, 0x7d, 0x7c, 0x7e, 0x82, 0x86, 0x89, 0x89, 0x84, 0x7d, 0x76, +0x71, 0x6f, 0x70, 0x75, 0x7b, 0x83, 0x88, 0x8b, 0x8b, 0x88, 0x83, 0x7d, 0x79, 0x76, 0x75, 0x77, +0x7a, 0x7d, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x80, 0x7e, 0x7c, 0x7a, 0x79, 0x7a, 0x7b, 0x7d, +0x80, 0x82, 0x84, 0x84, 0x83, 0x81, 0x7c, 0x79, 0x78, 0x78, 0x7b, 0x7e, 0x83, 0x86, 0x86, 0x85, +0x82, 0x7d, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, 0x81, 0x83, 0x85, 0x85, 0x85, 0x83, 0x81, 0x7d, 0x7c, +0x7c, 0x7c, 0x7d, 0x7e, 0x81, 0x83, 0x83, 0x83, 0x82, 0x81, 0x7f, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, +0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7a, 0x79, 0x79, +0x7a, 0x7c, 0x80, 0x82, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7e, 0x80, 0x80, 0x80, +0x7e, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x82, 0x83, 0x82, 0x80, 0x80, 0x80, 0x80, +0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x82, 0x82, 0x81, 0x7e, +0x7d, 0x7c, 0x7d, 0x7e, 0x81, 0x83, 0x83, 0x84, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x7b, 0x7c, 0x7e, +0x81, 0x84, 0x85, 0x85, 0x84, 0x82, 0x7e, 0x7c, 0x7a, 0x7a, 0x7b, 0x7e, 0x82, 0x85, 0x86, 0x84, +0x81, 0x7c, 0x79, 0x79, 0x79, 0x7b, 0x7e, 0x81, 0x83, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7e, 0x81, +0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7b, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7c, 0x7b, 0x7b, +0x7b, 0x7c, 0x80, 0x83, 0x84, 0x84, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x81, +0x81, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x82, 0x82, 0x82, 0x81, 0x7e, +0x7c, 0x7b, 0x7b, 0x7b, 0x7d, 0x7e, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7d, 0x7c, 0x7c, 0x7c, 0x7e, +0x80, 0x82, 0x84, 0x85, 0x84, 0x83, 0x82, 0x7e, 0x7c, 0x7b, 0x7c, 0x7e, 0x81, 0x83, 0x84, 0x84, +0x83, 0x80, 0x7d, 0x7b, 0x7b, 0x7c, 0x7c, 0x7e, 0x82, 0x84, 0x84, 0x84, 0x82, 0x7e, 0x7c, 0x7a, +0x7a, 0x7a, 0x7b, 0x7e, 0x82, 0x84, 0x85, 0x85, 0x83, 0x82, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, +0x7e, 0x80, 0x82, 0x84, 0x85, 0x84, 0x83, 0x81, 0x7d, 0x7b, 0x7a, 0x7a, 0x7b, 0x80, 0x84, 0x86, +0x85, 0x83, 0x7e, 0x7c, 0x7b, 0x7a, 0x7a, 0x7d, 0x81, 0x84, 0x86, 0x88, 0x87, 0x83, 0x7e, 0x79, +0x77, 0x77, 0x7a, 0x7e, 0x82, 0x84, 0x85, 0x85, 0x83, 0x80, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x80, +0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, +0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, +0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x82, 0x83, 0x84, 0x84, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x7a, +0x7a, 0x7b, 0x7d, 0x81, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x7a, 0x7b, 0x80, 0x83, 0x84, 0x85, +0x84, 0x81, 0x7d, 0x7b, 0x7a, 0x7b, 0x7e, 0x82, 0x85, 0x85, 0x83, 0x80, 0x7b, 0x78, 0x77, 0x78, +0x7c, 0x80, 0x84, 0x86, 0x85, 0x84, 0x80, 0x7c, 0x7a, 0x7b, 0x7c, 0x7e, 0x82, 0x82, 0x83, 0x83, +0x81, 0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x81, 0x82, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7d, 0x80, +0x81, 0x83, 0x84, 0x83, 0x81, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x83, 0x83, 0x83, 0x81, +0x7d, 0x7b, 0x7b, 0x7b, 0x7c, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, +0x80, 0x82, 0x82, 0x82, 0x81, 0x7d, 0x7b, 0x7a, 0x7b, 0x7c, 0x7e, 0x81, 0x82, 0x82, 0x82, 0x82, +0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x80, 0x7d, +0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x80, 0x82, 0x82, 0x83, 0x82, 0x7f, 0x7c, 0x7a, 0x78, 0x79, 0x7b, +0x7d, 0x80, 0x82, 0x84, 0x84, 0x83, 0x81, 0x7d, 0x7b, 0x79, 0x78, 0x79, 0x7b, 0x7e, 0x82, 0x84, +0x84, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7c, 0x7e, 0x81, 0x83, 0x84, 0x84, 0x84, 0x82, 0x7e, 0x7d, +0x7c, 0x7c, 0x7d, 0x80, 0x83, 0x84, 0x84, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, +0x81, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7c, +0x7b, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, +0x7d, 0x80, 0x82, 0x83, 0x82, 0x81, 0x7e, 0x7b, 0x7a, 0x79, 0x79, 0x7b, 0x7d, 0x80, 0x81, 0x82, +0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, +0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7d, +0x7e, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x80, +0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x80, 0x7d, 0x7c, 0x7b, 0x7a, 0x7b, 0x7d, 0x7e, 0x80, +0x82, 0x83, 0x85, 0x85, 0x83, 0x80, 0x7c, 0x7a, 0x7a, 0x7b, 0x7c, 0x7e, 0x81, 0x83, 0x84, 0x84, +0x83, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, +0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x83, 0x83, 0x83, 0x82, 0x7e, 0x7c, 0x7a, 0x79, 0x7b, +0x7d, 0x82, 0x84, 0x84, 0x82, 0x7e, 0x7b, 0x7a, 0x79, 0x7b, 0x7e, 0x81, 0x83, 0x84, 0x84, 0x82, +0x80, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x83, 0x82, 0x82, 0x82, 0x81, 0x80, 0x80, 0x80, +0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7e, 0x80, 0x82, 0x83, 0x83, 0x82, 0x81, 0x80, 0x80, 0x7e, +0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7e, +0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x82, +0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x7e, +0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x85, 0x88, 0x86, 0x82, 0x7c, 0x78, +0x77, 0x7a, 0x7d, 0x81, 0x84, 0x87, 0x89, 0x87, 0x82, 0x7b, 0x79, 0x79, 0x7b, 0x7d, 0x7e, 0x80, +0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, +0x81, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, +0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x81, +0x82, 0x82, 0x81, 0x7e, 0x7c, 0x7b, 0x7c, 0x7d, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x7e, +0x7d, 0x7c, 0x7c, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, +0x7d, 0x7e, 0x81, 0x82, 0x82, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x80, +0x81, 0x82, 0x82, 0x80, 0x7d, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, 0x80, 0x82, 0x83, 0x83, 0x81, 0x7d, +0x7b, 0x7a, 0x7b, 0x7c, 0x80, 0x82, 0x84, 0x84, 0x83, 0x81, 0x7e, 0x7c, 0x7b, 0x7b, 0x7c, 0x7e, +0x81, 0x83, 0x83, 0x83, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x80, 0x81, 0x82, 0x83, 0x83, 0x82, 0x80, +0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, +0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x7d, 0x7c, +0x7d, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x82, 0x83, +0x83, 0x80, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x82, 0x81, 0x81, 0x80, 0x7e, 0x7d, +0x7e, 0x80, 0x81, 0x81, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, +0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, +0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x81, +0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, +0x7c, 0x7d, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x81, +0x81, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x80, 0x81, 0x82, 0x83, 0x82, 0x81, 0x80, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x82, 0x83, +0x83, 0x83, 0x82, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x83, 0x84, 0x83, 0x81, 0x7e, +0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x80, 0x82, 0x82, 0x82, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7e, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, +0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x81, 0x81, +0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, +0x80, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x80, 0x7e, +0x7c, 0x7a, 0x78, 0x79, 0x80, 0x88, 0x8d, 0x8d, 0x86, 0x7b, 0x71, 0x6c, 0x6d, 0x73, 0x7b, 0x85, +0x8c, 0x8e, 0x8d, 0x87, 0x80, 0x77, 0x71, 0x70, 0x72, 0x77, 0x7e, 0x86, 0x8a, 0x8c, 0x8b, 0x86, +0x80, 0x79, 0x77, 0x75, 0x77, 0x7b, 0x7e, 0x83, 0x86, 0x87, 0x87, 0x85, 0x83, 0x7e, 0x78, 0x75, +0x76, 0x7a, 0x81, 0x85, 0x88, 0x89, 0x86, 0x83, 0x7e, 0x7b, 0x78, 0x78, 0x7a, 0x7c, 0x80, 0x83, +0x85, 0x85, 0x84, 0x82, 0x7e, 0x7c, 0x7c, 0x7b, 0x7c, 0x7e, 0x81, 0x83, 0x83, 0x82, 0x80, 0x7c, +0x7a, 0x79, 0x79, 0x7a, 0x7d, 0x81, 0x85, 0x87, 0x88, 0x85, 0x80, 0x7a, 0x74, 0x71, 0x73, 0x79, +0x80, 0x85, 0x88, 0x8a, 0x88, 0x84, 0x80, 0x7b, 0x78, 0x75, 0x75, 0x76, 0x7b, 0x81, 0x86, 0x89, +0x89, 0x86, 0x81, 0x7b, 0x76, 0x73, 0x74, 0x79, 0x7e, 0x86, 0x8a, 0x8c, 0x88, 0x83, 0x7d, 0x79, +0x78, 0x7c, 0x80, 0x82, 0x82, 0x80, 0x7c, 0x7b, 0x7a, 0x7c, 0x80, 0x83, 0x85, 0x85, 0x82, 0x7c, +0x78, 0x76, 0x79, 0x7c, 0x80, 0x83, 0x83, 0x83, 0x82, 0x80, 0x7c, 0x7a, 0x7a, 0x7b, 0x7e, 0x81, +0x82, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x82, 0x84, 0x84, 0x83, 0x80, 0x7d, +0x7b, 0x7b, 0x7e, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7b, 0x7d, 0x80, 0x83, 0x85, 0x84, 0x82, +0x7e, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x81, 0x81, 0x80, 0x81, 0x7e, 0x7b, +0x79, 0x77, 0x78, 0x7a, 0x7d, 0x82, 0x85, 0x86, 0x85, 0x83, 0x80, 0x7c, 0x79, 0x77, 0x79, 0x7c, +0x82, 0x85, 0x86, 0x85, 0x82, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, +0x7d, 0x7e, 0x80, 0x83, 0x85, 0x84, 0x82, 0x7e, 0x7b, 0x7a, 0x79, 0x7a, 0x7c, 0x80, 0x83, 0x85, +0x85, 0x84, 0x82, 0x7e, 0x7c, 0x7a, 0x7a, 0x7b, 0x7d, 0x81, 0x82, 0x82, 0x83, 0x83, 0x82, 0x80, +0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x83, 0x84, 0x84, 0x83, 0x81, 0x7d, 0x7c, 0x7c, +0x7b, 0x7c, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x83, 0x82, 0x80, 0x7e, 0x7b, 0x79, 0x7a, 0x7b, 0x7c, +0x80, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x80, 0x7e, +0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x80, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, +0x80, 0x81, 0x82, 0x82, 0x80, 0x7c, 0x7b, 0x7a, 0x7b, 0x7c, 0x80, 0x83, 0x83, 0x83, 0x82, 0x80, +0x7d, 0x7b, 0x7a, 0x79, 0x7b, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x84, 0x83, 0x81, 0x7e, 0x7c, 0x7a, +0x79, 0x7a, 0x7b, 0x7d, 0x81, 0x83, 0x84, 0x84, 0x83, 0x81, 0x7c, 0x7a, 0x78, 0x78, 0x7a, 0x7d, +0x81, 0x84, 0x85, 0x85, 0x84, 0x81, 0x7d, 0x7a, 0x79, 0x7a, 0x7b, 0x7e, 0x82, 0x83, 0x85, 0x85, +0x83, 0x81, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x81, +0x81, 0x81, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, +0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, +0x80, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, +0x7d, 0x7c, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, +0x80, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7e, +0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, +0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x80, 0x80, +0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, +0x7e, 0x81, 0x82, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, +0x80, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, +0x7e, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, +0x81, 0x82, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x81, +0x81, 0x82, 0x81, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x81, 0x80, 0x80, 0x7e, +0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, +0x7d, 0x7e, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x82, 0x82, +0x82, 0x81, 0x80, 0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x82, 0x80, 0x7e, 0x7d, +0x7d, 0x7d, 0x80, 0x82, 0x82, 0x83, 0x82, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x81, 0x82, 0x82, +0x81, 0x80, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7c, +0x7c, 0x7d, 0x80, 0x80, 0x81, 0x82, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, +0x7d, 0x7d, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x82, 0x81, 0x7e, 0x7c, 0x7b, 0x7b, 0x7d, 0x81, 0x83, +0x84, 0x84, 0x83, 0x7e, 0x7c, 0x7a, 0x7a, 0x7e, 0x82, 0x84, 0x85, 0x83, 0x81, 0x7e, 0x7d, 0x7d, +0x7e, 0x80, 0x82, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x83, +0x83, 0x81, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x82, 0x82, 0x81, 0x7e, 0x7c, 0x7b, 0x7c, 0x7c, +0x7e, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x7d, 0x7b, 0x7a, 0x7b, 0x7d, 0x82, 0x85, +0x87, 0x87, 0x84, 0x81, 0x7d, 0x7a, 0x78, 0x78, 0x79, 0x7e, 0x83, 0x87, 0x89, 0x88, 0x84, 0x80, +0x7a, 0x77, 0x76, 0x77, 0x7a, 0x7e, 0x83, 0x86, 0x87, 0x86, 0x83, 0x7d, 0x7a, 0x78, 0x78, 0x7a, +0x7d, 0x81, 0x83, 0x84, 0x84, 0x84, 0x82, 0x7e, 0x7b, 0x79, 0x77, 0x78, 0x7c, 0x80, 0x84, 0x86, +0x86, 0x83, 0x7e, 0x7a, 0x78, 0x78, 0x7a, 0x7d, 0x82, 0x85, 0x86, 0x84, 0x82, 0x80, 0x7d, 0x7c, +0x7d, 0x7d, 0x7e, 0x81, 0x83, 0x82, 0x82, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7e, 0x81, 0x81, 0x81, +0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, +0x7d, 0x7d, 0x7d, 0x7e, 0x82, 0x83, 0x84, 0x83, 0x81, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x82, +0x82, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7e, +0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, +0x81, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, 0x80, 0x81, +0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, +0x7e, 0x7e, 0x7d, 0x7e, 0x81, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, +0x7e, 0x81, 0x83, 0x85, 0x85, 0x83, 0x7e, 0x79, 0x76, 0x76, 0x79, 0x7e, 0x84, 0x87, 0x86, 0x83, +0x7e, 0x7b, 0x7a, 0x7b, 0x7c, 0x7e, 0x81, 0x83, 0x84, 0x84, 0x82, 0x80, 0x7e, 0x7d, 0x7c, 0x7c, +0x7d, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7e, +0x81, 0x82, 0x82, 0x81, 0x7d, 0x7b, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7c, 0x7c, +0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, +0x7e, 0x7d, 0x7e, 0x80, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x80, 0x81, +0x81, 0x82, 0x81, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, +0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x80, +0x80, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7e, +0x7e, 0x7e, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x82, +0x81, 0x81, 0x7e, 0x7b, 0x78, 0x77, 0x78, 0x7c, 0x82, 0x87, 0x88, 0x86, 0x81, 0x79, 0x74, 0x71, +0x73, 0x7a, 0x83, 0x89, 0x8e, 0x8e, 0x87, 0x7e, 0x76, 0x72, 0x73, 0x78, 0x7e, 0x86, 0x88, 0x88, +0x84, 0x81, 0x7d, 0x7a, 0x7a, 0x7a, 0x7c, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x82, 0x82, 0x82, 0x81, +0x7e, 0x7b, 0x79, 0x77, 0x79, 0x7c, 0x81, 0x85, 0x87, 0x86, 0x82, 0x7c, 0x78, 0x78, 0x7b, 0x81, +0x85, 0x87, 0x85, 0x81, 0x7b, 0x77, 0x76, 0x78, 0x7b, 0x82, 0x86, 0x88, 0x87, 0x83, 0x7c, 0x78, +0x76, 0x76, 0x7b, 0x81, 0x86, 0x8a, 0x8a, 0x87, 0x81, 0x7a, 0x75, 0x72, 0x73, 0x78, 0x80, 0x87, +0x8a, 0x89, 0x84, 0x7c, 0x77, 0x75, 0x76, 0x7a, 0x80, 0x84, 0x86, 0x85, 0x82, 0x7d, 0x7c, 0x7b, +0x7c, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x83, 0x84, 0x83, 0x80, 0x7b, 0x78, 0x76, 0x77, 0x7b, 0x82, +0x87, 0x89, 0x86, 0x81, 0x7a, 0x77, 0x76, 0x78, 0x7d, 0x82, 0x84, 0x83, 0x80, 0x7d, 0x7a, 0x7a, +0x7c, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, +0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, +0x7c, 0x7c, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x80, 0x80, +0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x82, 0x81, 0x7d, 0x79, 0x77, 0x77, 0x7c, 0x82, 0x83, 0x83, +0x81, 0x7e, 0x7d, 0x7a, 0x78, 0x78, 0x7a, 0x7d, 0x83, 0x86, 0x86, 0x87, 0x85, 0x81, 0x7c, 0x79, +0x75, 0x75, 0x78, 0x80, 0x86, 0x8a, 0x88, 0x81, 0x78, 0x74, 0x77, 0x7d, 0x84, 0x87, 0x86, 0x83, +0x7d, 0x79, 0x74, 0x72, 0x74, 0x78, 0x80, 0x85, 0x89, 0x8b, 0x8a, 0x85, 0x7d, 0x74, 0x70, 0x71, +0x77, 0x82, 0x8c, 0x8f, 0x8d, 0x8a, 0x85, 0x7e, 0x75, 0x6e, 0x6d, 0x76, 0x83, 0x8f, 0x95, 0x93, +0x8c, 0x7d, 0x6c, 0x61, 0x65, 0x77, 0x8b, 0x95, 0x91, 0x87, 0x80, 0x80, 0x81, 0x7c, 0x74, 0x6e, +0x72, 0x7e, 0x8c, 0x96, 0x93, 0x88, 0x7e, 0x79, 0x7a, 0x7e, 0x82, 0x80, 0x7d, 0x7b, 0x7c, 0x81, +0x84, 0x83, 0x80, 0x7b, 0x7c, 0x81, 0x83, 0x85, 0x84, 0x81, 0x7b, 0x7a, 0x7d, 0x82, 0x85, 0x85, +0x80, 0x7c, 0x7b, 0x7b, 0x7d, 0x7b, 0x78, 0x77, 0x7b, 0x84, 0x8a, 0x8a, 0x85, 0x7d, 0x78, 0x75, +0x76, 0x77, 0x7a, 0x7b, 0x7d, 0x81, 0x82, 0x84, 0x86, 0x85, 0x80, 0x79, 0x75, 0x75, 0x79, 0x7d, +0x81, 0x82, 0x7e, 0x7d, 0x7e, 0x81, 0x83, 0x81, 0x7e, 0x80, 0x82, 0x82, 0x81, 0x7d, 0x7b, 0x7a, +0x7a, 0x7b, 0x80, 0x85, 0x85, 0x85, 0x83, 0x81, 0x7e, 0x78, 0x75, 0x74, 0x76, 0x7b, 0x83, 0x88, +0x89, 0x86, 0x84, 0x82, 0x7e, 0x7a, 0x74, 0x72, 0x76, 0x7e, 0x85, 0x87, 0x86, 0x86, 0x85, 0x84, +0x81, 0x7c, 0x79, 0x7a, 0x7c, 0x7e, 0x82, 0x82, 0x84, 0x85, 0x85, 0x83, 0x81, 0x80, 0x7c, 0x79, +0x78, 0x7a, 0x80, 0x84, 0x87, 0x89, 0x85, 0x80, 0x7c, 0x7b, 0x7d, 0x80, 0x7d, 0x7a, 0x79, 0x7c, +0x83, 0x8a, 0x8c, 0x8b, 0x85, 0x7c, 0x77, 0x77, 0x79, 0x79, 0x7c, 0x81, 0x86, 0x8d, 0x8e, 0x88, +0x81, 0x78, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7c, 0x81, 0x84, 0x86, 0x84, 0x81, 0x7d, 0x7b, 0x7b, +0x7d, 0x7c, 0x7a, 0x78, 0x7a, 0x7c, 0x83, 0x86, 0x85, 0x85, 0x81, 0x7b, 0x76, 0x73, 0x75, 0x79, +0x7e, 0x83, 0x86, 0x88, 0x86, 0x81, 0x7b, 0x77, 0x7a, 0x81, 0x84, 0x82, 0x80, 0x7d, 0x7b, 0x7d, +0x81, 0x83, 0x84, 0x84, 0x84, 0x85, 0x86, 0x85, 0x81, 0x7d, 0x7b, 0x7a, 0x79, 0x78, 0x78, 0x7b, +0x7e, 0x85, 0x8b, 0x8e, 0x8e, 0x89, 0x7e, 0x72, 0x6b, 0x67, 0x6c, 0x74, 0x7d, 0x89, 0x92, 0x97, +0x94, 0x8c, 0x81, 0x75, 0x6c, 0x6a, 0x6c, 0x73, 0x7c, 0x87, 0x8f, 0x92, 0x90, 0x8b, 0x82, 0x75, +0x71, 0x73, 0x78, 0x7d, 0x7e, 0x81, 0x85, 0x88, 0x89, 0x88, 0x81, 0x79, 0x75, 0x78, 0x81, 0x8c, +0x92, 0x8f, 0x84, 0x75, 0x6d, 0x6d, 0x72, 0x7b, 0x88, 0x91, 0x93, 0x8e, 0x83, 0x78, 0x74, 0x74, +0x77, 0x7b, 0x7e, 0x7e, 0x7e, 0x7e, 0x81, 0x89, 0x8d, 0x8a, 0x83, 0x7b, 0x76, 0x75, 0x75, 0x7a, +0x80, 0x82, 0x81, 0x81, 0x85, 0x89, 0x8b, 0x87, 0x7d, 0x76, 0x74, 0x76, 0x79, 0x7d, 0x80, 0x82, +0x83, 0x85, 0x8a, 0x8b, 0x84, 0x7b, 0x72, 0x70, 0x74, 0x78, 0x7e, 0x83, 0x84, 0x85, 0x85, 0x85, +0x87, 0x85, 0x7d, 0x75, 0x71, 0x74, 0x79, 0x80, 0x85, 0x86, 0x83, 0x7d, 0x7c, 0x7c, 0x80, 0x82, +0x83, 0x81, 0x7b, 0x78, 0x76, 0x76, 0x7b, 0x81, 0x85, 0x8a, 0x8e, 0x8e, 0x8a, 0x7c, 0x6d, 0x63, +0x60, 0x6d, 0x81, 0x91, 0x9c, 0x9c, 0x92, 0x85, 0x75, 0x69, 0x66, 0x68, 0x70, 0x7e, 0x8f, 0x98, +0x99, 0x93, 0x87, 0x79, 0x6c, 0x65, 0x68, 0x72, 0x81, 0x8f, 0x95, 0x93, 0x8a, 0x7c, 0x71, 0x6d, +0x6e, 0x76, 0x7e, 0x86, 0x8b, 0x89, 0x87, 0x81, 0x77, 0x74, 0x74, 0x7a, 0x83, 0x88, 0x89, 0x85, +0x80, 0x7c, 0x77, 0x78, 0x7b, 0x7d, 0x80, 0x84, 0x88, 0x8a, 0x89, 0x82, 0x7a, 0x75, 0x70, 0x6c, +0x71, 0x7b, 0x86, 0x90, 0x96, 0x98, 0x92, 0x85, 0x75, 0x67, 0x61, 0x69, 0x77, 0x84, 0x8e, 0x96, +0x9a, 0x97, 0x8b, 0x80, 0x75, 0x6b, 0x65, 0x64, 0x6c, 0x7a, 0x8a, 0x99, 0xa0, 0x9c, 0x8f, 0x7b, +0x6b, 0x63, 0x60, 0x69, 0x75, 0x84, 0x90, 0x99, 0x9d, 0x98, 0x8a, 0x76, 0x67, 0x5f, 0x60, 0x69, +0x7a, 0x8c, 0x96, 0x9a, 0x98, 0x91, 0x83, 0x77, 0x73, 0x6d, 0x66, 0x68, 0x71, 0x7d, 0x8c, 0x98, +0xa0, 0xa3, 0x9b, 0x89, 0x75, 0x63, 0x57, 0x59, 0x67, 0x76, 0x8a, 0xa0, 0xaa, 0xa7, 0x9b, 0x89, +0x73, 0x60, 0x55, 0x52, 0x58, 0x67, 0x7e, 0x97, 0xa9, 0xb0, 0xaa, 0x98, 0x80, 0x67, 0x58, 0x54, +0x59, 0x62, 0x72, 0x88, 0x9b, 0xa6, 0xaa, 0xa0, 0x8c, 0x76, 0x65, 0x5a, 0x5c, 0x6c, 0x7d, 0x8d, +0x9a, 0x9f, 0x9c, 0x90, 0x78, 0x65, 0x5c, 0x5b, 0x65, 0x77, 0x8f, 0xa0, 0xa7, 0xa3, 0x93, 0x7b, +0x68, 0x5b, 0x58, 0x60, 0x70, 0x82, 0x91, 0x9a, 0x9c, 0x99, 0x91, 0x84, 0x76, 0x6d, 0x69, 0x6a, +0x73, 0x7b, 0x86, 0x8e, 0x92, 0x94, 0x90, 0x88, 0x7e, 0x76, 0x6f, 0x6d, 0x6d, 0x75, 0x83, 0x8d, +0x95, 0x98, 0x93, 0x88, 0x7a, 0x6b, 0x66, 0x69, 0x6e, 0x7b, 0x84, 0x8b, 0x92, 0x8e, 0x8a, 0x87, +0x84, 0x7c, 0x74, 0x75, 0x76, 0x74, 0x77, 0x7c, 0x80, 0x81, 0x86, 0x8c, 0x8b, 0x8a, 0x88, 0x80, +0x7a, 0x7b, 0x7b, 0x75, 0x76, 0x80, 0x83, 0x81, 0x81, 0x82, 0x81, 0x7d, 0x81, 0x82, 0x7d, 0x81, +0x85, 0x85, 0x7d, 0x78, 0x7a, 0x7c, 0x7c, 0x7b, 0x7b, 0x83, 0x85, 0x82, 0x84, 0x89, 0x8a, 0x85, +0x7d, 0x79, 0x73, 0x72, 0x73, 0x79, 0x82, 0x8a, 0x93, 0x96, 0x90, 0x87, 0x79, 0x6a, 0x62, 0x65, +0x73, 0x84, 0x93, 0x9a, 0x99, 0x94, 0x86, 0x75, 0x6a, 0x67, 0x69, 0x6d, 0x79, 0x88, 0x8e, 0x8e, +0x8f, 0x8b, 0x86, 0x80, 0x77, 0x72, 0x70, 0x6d, 0x6f, 0x77, 0x82, 0x8a, 0x8f, 0x94, 0x91, 0x89, +0x7e, 0x75, 0x6f, 0x6a, 0x6b, 0x74, 0x80, 0x8e, 0x99, 0xa0, 0xa0, 0x91, 0x7c, 0x6b, 0x5c, 0x55, +0x5b, 0x6f, 0x87, 0x9b, 0xab, 0xaf, 0xa7, 0x92, 0x73, 0x5a, 0x52, 0x54, 0x62, 0x78, 0x8e, 0x9f, +0xa8, 0xa6, 0x9d, 0x89, 0x73, 0x67, 0x61, 0x5f, 0x68, 0x78, 0x87, 0x91, 0x96, 0x95, 0x91, 0x85, +0x79, 0x71, 0x6a, 0x6e, 0x77, 0x82, 0x8d, 0x94, 0x92, 0x88, 0x7c, 0x74, 0x6d, 0x6b, 0x74, 0x82, +0x8c, 0x93, 0x93, 0x8b, 0x7d, 0x73, 0x6b, 0x6d, 0x78, 0x84, 0x8a, 0x8a, 0x8a, 0x85, 0x78, 0x74, +0x75, 0x73, 0x75, 0x7e, 0x8b, 0x91, 0x8f, 0x8f, 0x8a, 0x7b, 0x6f, 0x6b, 0x6d, 0x74, 0x76, 0x79, +0x88, 0x96, 0x93, 0x8e, 0x8f, 0x8c, 0x80, 0x70, 0x69, 0x65, 0x61, 0x66, 0x75, 0x86, 0x95, 0x9c, +0xa2, 0xa4, 0x94, 0x7c, 0x6a, 0x63, 0x5d, 0x59, 0x69, 0x86, 0x99, 0x9e, 0xa2, 0xa3, 0x8e, 0x72, +0x63, 0x5f, 0x66, 0x70, 0x7c, 0x8f, 0x9d, 0x9a, 0x8e, 0x84, 0x7b, 0x6d, 0x61, 0x6b, 0x7d, 0x86, +0x87, 0x91, 0x9a, 0x8f, 0x7d, 0x79, 0x78, 0x6f, 0x6a, 0x72, 0x7b, 0x80, 0x83, 0x8a, 0x90, 0x8e, +0x88, 0x84, 0x7e, 0x78, 0x74, 0x75, 0x79, 0x7e, 0x7d, 0x7c, 0x80, 0x82, 0x83, 0x82, 0x83, 0x84, +0x80, 0x7c, 0x7e, 0x82, 0x82, 0x86, 0x88, 0x81, 0x77, 0x74, 0x74, 0x76, 0x7c, 0x86, 0x8f, 0x8f, +0x8b, 0x89, 0x80, 0x71, 0x6c, 0x6d, 0x71, 0x7a, 0x86, 0x90, 0x96, 0x94, 0x8c, 0x7e, 0x73, 0x6e, +0x6e, 0x70, 0x7a, 0x86, 0x8c, 0x90, 0x91, 0x89, 0x7c, 0x76, 0x76, 0x75, 0x75, 0x7d, 0x87, 0x8b, +0x8c, 0x8a, 0x85, 0x7c, 0x72, 0x70, 0x7a, 0x7e, 0x84, 0x8c, 0x8f, 0x8b, 0x7d, 0x74, 0x70, 0x68, +0x65, 0x75, 0x89, 0x91, 0x97, 0x9b, 0x99, 0x88, 0x6e, 0x60, 0x5e, 0x61, 0x6d, 0x83, 0x96, 0x9f, +0x9f, 0x96, 0x8a, 0x75, 0x61, 0x5f, 0x67, 0x70, 0x7d, 0x8d, 0x9a, 0xa2, 0x95, 0x85, 0x80, 0x74, +0x65, 0x5e, 0x68, 0x77, 0x7a, 0x82, 0x96, 0xa1, 0x9c, 0x91, 0x8a, 0x80, 0x6d, 0x5e, 0x5d, 0x64, +0x6a, 0x71, 0x83, 0x9b, 0xa5, 0xa4, 0x9e, 0x93, 0x83, 0x65, 0x50, 0x55, 0x64, 0x6a, 0x76, 0x94, +0xa8, 0xa4, 0x99, 0x96, 0x8a, 0x6b, 0x5c, 0x65, 0x70, 0x75, 0x7a, 0x89, 0x9a, 0x95, 0x89, 0x8a, +0x8c, 0x7b, 0x66, 0x68, 0x7a, 0x7d, 0x7a, 0x8a, 0x9d, 0x98, 0x87, 0x83, 0x7c, 0x6e, 0x60, 0x64, +0x7a, 0x8c, 0x8a, 0x8b, 0x98, 0x99, 0x87, 0x77, 0x78, 0x77, 0x66, 0x5e, 0x6d, 0x7e, 0x83, 0x8a, +0x97, 0xa1, 0x9b, 0x8b, 0x83, 0x74, 0x61, 0x55, 0x5f, 0x6f, 0x76, 0x85, 0x9f, 0xaa, 0x9f, 0x95, +0x90, 0x7c, 0x60, 0x57, 0x61, 0x69, 0x6b, 0x7d, 0x9f, 0xab, 0x9e, 0x94, 0x91, 0x82, 0x61, 0x4f, +0x59, 0x6c, 0x71, 0x7b, 0x9f, 0xb4, 0xa5, 0x90, 0x8e, 0x83, 0x5e, 0x48, 0x55, 0x69, 0x6d, 0x72, +0x96, 0xb4, 0xa8, 0x94, 0x99, 0x95, 0x70, 0x53, 0x5e, 0x70, 0x68, 0x64, 0x83, 0xa1, 0x9a, 0x8d, +0x94, 0x96, 0x7d, 0x66, 0x6b, 0x80, 0x7d, 0x6d, 0x7d, 0x99, 0x8f, 0x76, 0x79, 0x89, 0x7b, 0x68, +0x75, 0x8e, 0x90, 0x87, 0x8c, 0x96, 0x88, 0x68, 0x5f, 0x6a, 0x6f, 0x73, 0x80, 0x92, 0x9c, 0x99, +0x93, 0x87, 0x75, 0x6c, 0x67, 0x60, 0x68, 0x78, 0x84, 0x91, 0x9a, 0x9a, 0x94, 0x86, 0x7b, 0x70, +0x63, 0x64, 0x69, 0x70, 0x7d, 0x8c, 0x94, 0x93, 0x8e, 0x8b, 0x89, 0x7d, 0x72, 0x6d, 0x6d, 0x67, +0x64, 0x6c, 0x7c, 0x90, 0xa0, 0xaa, 0xa7, 0x9b, 0x86, 0x69, 0x54, 0x4c, 0x4d, 0x59, 0x73, 0x8f, +0xa8, 0xae, 0xac, 0xab, 0x9a, 0x7c, 0x67, 0x59, 0x54, 0x57, 0x64, 0x7a, 0x8c, 0x99, 0xa8, 0xac, +0xa0, 0x89, 0x6f, 0x5e, 0x56, 0x54, 0x5c, 0x77, 0x98, 0xa7, 0xa4, 0xa1, 0x9f, 0x87, 0x61, 0x52, +0x55, 0x5b, 0x68, 0x7c, 0x97, 0xb0, 0xb3, 0xa2, 0x8f, 0x7c, 0x67, 0x52, 0x52, 0x5d, 0x66, 0x7d, +0x9c, 0xa7, 0xa0, 0x9f, 0x9f, 0x89, 0x6f, 0x63, 0x62, 0x67, 0x6d, 0x74, 0x83, 0x94, 0x9e, 0x97, +0x95, 0x98, 0x85, 0x69, 0x65, 0x75, 0x77, 0x6d, 0x74, 0x8a, 0x92, 0x8b, 0x87, 0x88, 0x7e, 0x73, +0x73, 0x7a, 0x7a, 0x79, 0x7c, 0x85, 0x8a, 0x81, 0x77, 0x7c, 0x89, 0x8e, 0x8d, 0x8b, 0x84, 0x7b, +0x6e, 0x66, 0x69, 0x6f, 0x74, 0x7e, 0x91, 0xa7, 0xaa, 0x9b, 0x8c, 0x76, 0x65, 0x5a, 0x54, 0x5c, +0x6e, 0x85, 0x9a, 0xa3, 0xa5, 0xa9, 0x9c, 0x80, 0x6f, 0x63, 0x57, 0x58, 0x65, 0x75, 0x7b, 0x80, +0x96, 0xab, 0xa3, 0x91, 0x86, 0x7a, 0x6d, 0x64, 0x60, 0x60, 0x62, 0x6d, 0x86, 0x9a, 0x9a, 0x93, +0x99, 0x9b, 0x88, 0x74, 0x6c, 0x68, 0x63, 0x67, 0x72, 0x7b, 0x7d, 0x85, 0x9b, 0xa2, 0x94, 0x87, +0x84, 0x7e, 0x6e, 0x66, 0x6d, 0x73, 0x77, 0x81, 0x8d, 0x8f, 0x82, 0x76, 0x80, 0x88, 0x84, 0x80, +0x80, 0x84, 0x89, 0x7d, 0x71, 0x77, 0x77, 0x73, 0x7c, 0x89, 0x8a, 0x80, 0x7e, 0x8a, 0x89, 0x78, +0x70, 0x7a, 0x83, 0x85, 0x88, 0x8b, 0x88, 0x7a, 0x73, 0x75, 0x6f, 0x6a, 0x75, 0x83, 0x93, 0x98, +0x92, 0x92, 0x88, 0x7b, 0x75, 0x6f, 0x68, 0x68, 0x72, 0x83, 0x8f, 0x8f, 0x90, 0x92, 0x98, 0x8a, +0x71, 0x6e, 0x72, 0x72, 0x6d, 0x72, 0x80, 0x85, 0x85, 0x90, 0x98, 0x8b, 0x82, 0x84, 0x80, 0x74, +0x66, 0x69, 0x72, 0x6f, 0x75, 0x8b, 0x9b, 0x98, 0x8d, 0x8b, 0x8f, 0x7d, 0x65, 0x64, 0x69, 0x6b, +0x6f, 0x76, 0x8c, 0xa3, 0xa0, 0x98, 0x90, 0x84, 0x73, 0x63, 0x62, 0x6b, 0x6e, 0x75, 0x8b, 0x99, +0x96, 0x95, 0x95, 0x8d, 0x75, 0x62, 0x67, 0x6a, 0x6e, 0x7d, 0x87, 0x95, 0x9d, 0x8b, 0x88, 0x87, +0x77, 0x6b, 0x68, 0x74, 0x7a, 0x78, 0x81, 0x8b, 0x8e, 0x8a, 0x8b, 0x88, 0x7b, 0x75, 0x74, 0x6e, +0x71, 0x7d, 0x84, 0x87, 0x92, 0x99, 0x8c, 0x81, 0x7e, 0x73, 0x6f, 0x72, 0x71, 0x75, 0x7b, 0x89, +0x91, 0x8a, 0x87, 0x90, 0x88, 0x7c, 0x80, 0x77, 0x71, 0x6e, 0x6f, 0x79, 0x7e, 0x7d, 0x86, 0x90, +0x93, 0x95, 0x94, 0x89, 0x82, 0x76, 0x66, 0x62, 0x63, 0x67, 0x75, 0x8f, 0x9b, 0x9b, 0x99, 0x9c, +0x94, 0x7e, 0x6e, 0x6e, 0x67, 0x5e, 0x65, 0x70, 0x7d, 0x85, 0x8e, 0x99, 0x99, 0x93, 0x8c, 0x7d, +0x74, 0x70, 0x6e, 0x71, 0x70, 0x74, 0x86, 0x8a, 0x88, 0x86, 0x8b, 0x8c, 0x7b, 0x73, 0x7c, 0x7b, +0x7a, 0x7a, 0x7b, 0x82, 0x85, 0x81, 0x7d, 0x79, 0x7b, 0x7b, 0x78, 0x80, 0x85, 0x87, 0x89, 0x89, +0x85, 0x7c, 0x7a, 0x7b, 0x71, 0x6d, 0x7b, 0x83, 0x84, 0x86, 0x90, 0x97, 0x86, 0x80, 0x82, 0x76, +0x6a, 0x65, 0x73, 0x80, 0x7c, 0x7c, 0x8e, 0x9b, 0x8e, 0x7a, 0x7a, 0x7d, 0x71, 0x5e, 0x65, 0x87, +0x8a, 0x7d, 0x8d, 0xa4, 0x94, 0x7a, 0x7b, 0x7a, 0x6d, 0x63, 0x70, 0x7e, 0x81, 0x8c, 0x94, 0x8b, +0x7c, 0x7d, 0x84, 0x7d, 0x76, 0x7d, 0x83, 0x7b, 0x7c, 0x7b, 0x78, 0x79, 0x78, 0x77, 0x82, 0x8f, +0x89, 0x7c, 0x85, 0x8e, 0x80, 0x6c, 0x75, 0x82, 0x7b, 0x76, 0x7a, 0x84, 0x85, 0x80, 0x7a, 0x84, +0x8b, 0x83, 0x7e, 0x7d, 0x87, 0x86, 0x72, 0x70, 0x72, 0x75, 0x78, 0x75, 0x80, 0x90, 0x94, 0x8a, +0x89, 0x87, 0x84, 0x7b, 0x6e, 0x72, 0x76, 0x6f, 0x74, 0x85, 0x88, 0x84, 0x91, 0x94, 0x83, 0x82, +0x7e, 0x76, 0x6b, 0x68, 0x7b, 0x7e, 0x7d, 0x8c, 0x91, 0x91, 0x84, 0x78, 0x7d, 0x7a, 0x70, 0x6e, +0x75, 0x7c, 0x85, 0x87, 0x86, 0x91, 0x8d, 0x78, 0x76, 0x7c, 0x76, 0x69, 0x6e, 0x82, 0x93, 0x82, +0x75, 0x92, 0x9b, 0x78, 0x64, 0x87, 0x8f, 0x6f, 0x69, 0x8b, 0x8f, 0x76, 0x7a, 0x81, 0x88, 0x86, +0x7b, 0x6e, 0x76, 0x90, 0x83, 0x71, 0x7e, 0x91, 0x8a, 0x6f, 0x7a, 0x8e, 0x7e, 0x6a, 0x77, 0x8a, +0x7b, 0x73, 0x83, 0x86, 0x7c, 0x81, 0x85, 0x7c, 0x7a, 0x83, 0x7e, 0x78, 0x7d, 0x80, 0x7c, 0x83, +0x88, 0x83, 0x7c, 0x7c, 0x85, 0x83, 0x85, 0x84, 0x87, 0x86, 0x7a, 0x82, 0x80, 0x72, 0x71, 0x79, +0x80, 0x84, 0x81, 0x84, 0x8d, 0x88, 0x80, 0x78, 0x77, 0x79, 0x7c, 0x82, 0x7c, 0x7c, 0x85, 0x87, +0x7c, 0x78, 0x81, 0x7d, 0x75, 0x7d, 0x8c, 0x85, 0x7c, 0x81, 0x86, 0x82, 0x76, 0x77, 0x86, 0x83, +0x7b, 0x80, 0x84, 0x85, 0x7e, 0x74, 0x77, 0x82, 0x80, 0x7e, 0x82, 0x8c, 0x8f, 0x84, 0x7d, 0x7e, +0x7a, 0x6f, 0x73, 0x7c, 0x7e, 0x7e, 0x83, 0x8c, 0x89, 0x7d, 0x80, 0x86, 0x82, 0x7a, 0x77, 0x7b, +0x7c, 0x78, 0x79, 0x80, 0x83, 0x82, 0x88, 0x89, 0x7e, 0x7e, 0x82, 0x7a, 0x76, 0x7e, 0x83, 0x7b, +0x75, 0x82, 0x8d, 0x81, 0x75, 0x80, 0x88, 0x80, 0x77, 0x7a, 0x7e, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, +0x82, 0x82, 0x7a, 0x78, 0x7e, 0x82, 0x7d, 0x78, 0x7b, 0x7e, 0x80, 0x81, 0x83, 0x84, 0x7e, 0x7d, +0x83, 0x80, 0x78, 0x79, 0x7e, 0x81, 0x7c, 0x7c, 0x84, 0x85, 0x7d, 0x7c, 0x84, 0x87, 0x80, 0x7a, +0x7a, 0x7d, 0x79, 0x75, 0x7a, 0x7e, 0x81, 0x82, 0x83, 0x88, 0x87, 0x81, 0x7d, 0x7b, 0x7b, 0x77, +0x75, 0x79, 0x80, 0x82, 0x84, 0x86, 0x86, 0x85, 0x83, 0x80, 0x7d, 0x7b, 0x79, 0x79, 0x7d, 0x7e, +0x80, 0x82, 0x84, 0x82, 0x84, 0x82, 0x80, 0x80, 0x81, 0x81, 0x7d, 0x80, 0x7e, 0x7b, 0x7b, 0x7d, +0x7e, 0x7e, 0x7e, 0x80, 0x7d, 0x7c, 0x7c, 0x7c, 0x7e, 0x82, 0x84, 0x83, 0x84, 0x82, 0x7e, 0x7b, +0x78, 0x79, 0x7a, 0x7b, 0x80, 0x7e, 0x7d, 0x81, 0x85, 0x88, 0x8b, 0x8a, 0x86, 0x80, 0x7a, 0x74, +0x70, 0x70, 0x74, 0x7a, 0x82, 0x8b, 0x91, 0x91, 0x8e, 0x89, 0x82, 0x7c, 0x75, 0x71, 0x74, 0x74, +0x78, 0x7e, 0x81, 0x84, 0x88, 0x89, 0x87, 0x84, 0x81, 0x7e, 0x7d, 0x80, 0x80, 0x7d, 0x7d, 0x81, +0x82, 0x83, 0x83, 0x7e, 0x7d, 0x7b, 0x7a, 0x7c, 0x7d, 0x84, 0x88, 0x87, 0x88, 0x86, 0x80, 0x7b, +0x76, 0x73, 0x73, 0x75, 0x78, 0x7e, 0x82, 0x85, 0x87, 0x85, 0x82, 0x7e, 0x7d, 0x7b, 0x7b, 0x7e, +0x7d, 0x7e, 0x82, 0x82, 0x84, 0x84, 0x81, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7e, 0x81, 0x82, 0x82, +0x80, 0x7d, 0x7c, 0x7b, 0x79, 0x77, 0x7a, 0x7c, 0x7e, 0x83, 0x83, 0x83, 0x83, 0x82, 0x7e, 0x78, +0x77, 0x78, 0x7b, 0x82, 0x83, 0x84, 0x85, 0x81, 0x7e, 0x7e, 0x7a, 0x76, 0x79, 0x7e, 0x84, 0x86, +0x86, 0x83, 0x81, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x81, 0x83, 0x82, 0x7e, 0x7d, 0x7d, 0x7c, 0x7b, +0x7b, 0x7e, 0x82, 0x81, 0x84, 0x84, 0x81, 0x81, 0x7e, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x81, 0x82, +0x81, 0x81, 0x82, 0x83, 0x80, 0x7e, 0x81, 0x7e, 0x7d, 0x7e, 0x80, 0x7d, 0x7e, 0x80, 0x7d, 0x7e, +0x81, 0x81, 0x80, 0x81, 0x80, 0x81, 0x7e, 0x7a, 0x77, 0x76, 0x79, 0x80, 0x84, 0x89, 0x8a, 0x89, +0x86, 0x7e, 0x7b, 0x77, 0x74, 0x76, 0x7b, 0x7e, 0x82, 0x89, 0x88, 0x85, 0x83, 0x7b, 0x78, 0x78, +0x7a, 0x7b, 0x82, 0x87, 0x8a, 0x87, 0x84, 0x82, 0x79, 0x78, 0x76, 0x74, 0x78, 0x7b, 0x82, 0x88, +0x89, 0x8c, 0x87, 0x7e, 0x7b, 0x78, 0x75, 0x77, 0x7a, 0x7a, 0x7e, 0x83, 0x85, 0x85, 0x87, 0x83, +0x81, 0x83, 0x7d, 0x7c, 0x7a, 0x77, 0x7a, 0x7b, 0x7a, 0x7c, 0x7e, 0x80, 0x81, 0x83, 0x81, 0x7e, +0x81, 0x81, 0x80, 0x81, 0x84, 0x80, 0x7e, 0x81, 0x7c, 0x7a, 0x79, 0x78, 0x7c, 0x82, 0x88, 0x8b, +0x8a, 0x87, 0x84, 0x81, 0x7b, 0x79, 0x76, 0x76, 0x7d, 0x84, 0x86, 0x89, 0x8a, 0x84, 0x81, 0x7d, +0x79, 0x78, 0x78, 0x7a, 0x7d, 0x82, 0x85, 0x87, 0x88, 0x86, 0x81, 0x7c, 0x7c, 0x79, 0x78, 0x78, +0x79, 0x7e, 0x84, 0x84, 0x86, 0x86, 0x83, 0x82, 0x81, 0x7a, 0x79, 0x79, 0x79, 0x7d, 0x7e, 0x83, +0x85, 0x86, 0x85, 0x82, 0x81, 0x7b, 0x79, 0x7a, 0x79, 0x7c, 0x81, 0x83, 0x84, 0x83, 0x83, 0x7d, +0x7c, 0x7d, 0x79, 0x78, 0x7c, 0x7c, 0x7c, 0x80, 0x82, 0x84, 0x88, 0x89, 0x88, 0x83, 0x81, 0x80, +0x7a, 0x7a, 0x78, 0x76, 0x7d, 0x83, 0x84, 0x87, 0x89, 0x86, 0x83, 0x82, 0x7e, 0x7d, 0x7b, 0x79, +0x7b, 0x7d, 0x81, 0x81, 0x82, 0x86, 0x85, 0x84, 0x82, 0x7e, 0x7d, 0x79, 0x79, 0x7c, 0x7b, 0x7d, +0x80, 0x7e, 0x81, 0x80, 0x7e, 0x81, 0x7d, 0x7d, 0x7d, 0x7a, 0x7d, 0x82, 0x82, 0x82, 0x84, 0x83, +0x81, 0x7e, 0x79, 0x77, 0x78, 0x7b, 0x7b, 0x7e, 0x82, 0x85, 0x86, 0x83, 0x84, 0x83, 0x80, 0x7d, +0x7c, 0x79, 0x78, 0x78, 0x77, 0x7b, 0x7d, 0x82, 0x85, 0x86, 0x87, 0x86, 0x84, 0x82, 0x7d, 0x79, +0x77, 0x75, 0x76, 0x7a, 0x7d, 0x81, 0x83, 0x83, 0x82, 0x82, 0x82, 0x80, 0x7d, 0x7e, 0x82, 0x82, +0x81, 0x7e, 0x7b, 0x7c, 0x80, 0x80, 0x82, 0x82, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x80, +0x81, 0x82, 0x84, 0x82, 0x7d, 0x7e, 0x7b, 0x7c, 0x7e, 0x7c, 0x82, 0x84, 0x82, 0x84, 0x81, 0x7e, +0x7e, 0x7b, 0x7b, 0x7d, 0x80, 0x83, 0x87, 0x89, 0x88, 0x86, 0x81, 0x7d, 0x7b, 0x7b, 0x7c, 0x7b, +0x7d, 0x7e, 0x81, 0x83, 0x85, 0x81, 0x7c, 0x7a, 0x77, 0x77, 0x7c, 0x81, 0x83, 0x84, 0x80, 0x7e, +0x81, 0x7d, 0x79, 0x78, 0x77, 0x78, 0x7c, 0x82, 0x88, 0x89, 0x89, 0x89, 0x86, 0x80, 0x78, 0x76, +0x73, 0x76, 0x79, 0x7c, 0x81, 0x87, 0x8a, 0x87, 0x86, 0x82, 0x7b, 0x79, 0x7b, 0x7a, 0x7b, 0x7e, +0x81, 0x81, 0x83, 0x83, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7b, 0x7b, 0x80, 0x7e, 0x80, 0x82, 0x81, +0x81, 0x81, 0x7d, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7d, 0x82, 0x85, 0x87, 0x85, 0x82, 0x80, 0x7a, +0x75, 0x74, 0x76, 0x79, 0x7b, 0x82, 0x88, 0x88, 0x88, 0x87, 0x82, 0x7b, 0x79, 0x76, 0x73, 0x78, +0x80, 0x83, 0x88, 0x8a, 0x89, 0x87, 0x83, 0x7c, 0x78, 0x75, 0x75, 0x79, 0x7b, 0x7e, 0x81, 0x84, +0x84, 0x82, 0x84, 0x82, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7e, 0x7c, 0x7d, 0x7a, 0x79, 0x7d, 0x82, +0x83, 0x86, 0x85, 0x85, 0x86, 0x83, 0x7c, 0x7c, 0x7d, 0x7a, 0x7a, 0x7d, 0x7e, 0x83, 0x87, 0x86, +0x84, 0x82, 0x81, 0x7c, 0x7b, 0x7b, 0x79, 0x7e, 0x83, 0x83, 0x85, 0x85, 0x83, 0x7e, 0x7b, 0x78, +0x77, 0x78, 0x7a, 0x80, 0x83, 0x85, 0x84, 0x80, 0x7e, 0x80, 0x7e, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, +0x7c, 0x7b, 0x7b, 0x7d, 0x7d, 0x7d, 0x82, 0x83, 0x82, 0x83, 0x80, 0x7e, 0x7e, 0x7a, 0x7b, 0x7b, +0x7b, 0x7d, 0x7e, 0x84, 0x85, 0x82, 0x85, 0x83, 0x80, 0x7e, 0x7a, 0x79, 0x7d, 0x7d, 0x7c, 0x7e, +0x81, 0x83, 0x82, 0x82, 0x83, 0x82, 0x82, 0x80, 0x7e, 0x81, 0x82, 0x82, 0x7e, 0x7b, 0x7c, 0x80, +0x81, 0x81, 0x85, 0x85, 0x80, 0x7d, 0x7c, 0x7a, 0x7c, 0x7e, 0x7d, 0x7e, 0x81, 0x83, 0x83, 0x81, +0x7e, 0x7b, 0x7a, 0x7c, 0x7c, 0x7c, 0x7e, 0x82, 0x83, 0x83, 0x81, 0x81, 0x80, 0x7c, 0x7a, 0x7b, +0x7e, 0x81, 0x83, 0x83, 0x7d, 0x7c, 0x7a, 0x79, 0x7a, 0x7b, 0x81, 0x84, 0x86, 0x87, 0x84, 0x81, +0x7b, 0x78, 0x75, 0x76, 0x7c, 0x81, 0x84, 0x86, 0x84, 0x85, 0x86, 0x82, 0x7e, 0x7d, 0x7b, 0x7a, +0x7c, 0x7a, 0x78, 0x7a, 0x7c, 0x80, 0x82, 0x83, 0x86, 0x86, 0x83, 0x82, 0x7e, 0x7d, 0x7e, 0x7e, +0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x82, 0x86, 0x86, 0x85, 0x84, 0x82, 0x81, 0x7e, 0x7c, 0x7c, 0x7c, +0x7e, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x80, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x81, 0x83, 0x81, +0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x81, 0x81, 0x82, 0x84, 0x81, 0x7d, 0x7b, 0x7b, 0x7b, 0x7b, 0x7e, +0x80, 0x82, 0x83, 0x82, 0x82, 0x80, 0x80, 0x80, 0x81, 0x83, 0x81, 0x80, 0x82, 0x81, 0x83, 0x84, +0x81, 0x7e, 0x7d, 0x80, 0x80, 0x7c, 0x7e, 0x80, 0x7e, 0x80, 0x82, 0x7e, 0x7e, 0x7e, 0x7d, 0x7a, +0x7b, 0x7e, 0x7d, 0x81, 0x82, 0x82, 0x83, 0x7e, 0x80, 0x80, 0x79, 0x78, 0x79, 0x78, 0x7b, 0x7d, +0x82, 0x87, 0x84, 0x84, 0x83, 0x7d, 0x7d, 0x7b, 0x7c, 0x7d, 0x7c, 0x80, 0x83, 0x84, 0x86, 0x85, +0x84, 0x84, 0x82, 0x80, 0x7e, 0x7d, 0x80, 0x80, 0x7b, 0x7e, 0x81, 0x80, 0x82, 0x82, 0x7e, 0x7d, +0x80, 0x7d, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x7e, 0x7e, 0x7e, 0x7b, +0x7b, 0x7a, 0x7a, 0x75, 0x70, 0x7d, 0x8a, 0x83, 0x82, 0x89, 0x80, 0x6b, 0x63, 0x75, 0x91, 0x9c, +0x91, 0x75, 0x6f, 0x7e, 0x81, 0x79, 0x74, 0x75, 0x7b, 0x80, 0x90, 0x9c, 0x8a, 0x74, 0x71, 0x7b, +0x7c, 0x72, 0x76, 0x89, 0x8d, 0x84, 0x7d, 0x81, 0x83, 0x72, 0x68, 0x78, 0x90, 0x96, 0x83, 0x70, +0x7a, 0x8e, 0x8c, 0x73, 0x70, 0x7e, 0x7c, 0x71, 0x75, 0x88, 0x89, 0x78, 0x76, 0x8a, 0x99, 0x8e, +0x7b, 0x74, 0x77, 0x73, 0x6e, 0x70, 0x72, 0x72, 0x85, 0xa2, 0xa9, 0x8e, 0x77, 0x7e, 0x7e, 0x6f, +0x6a, 0x73, 0x79, 0x7c, 0x82, 0x87, 0x82, 0x76, 0x76, 0x83, 0x8f, 0x8d, 0x85, 0x7e, 0x79, 0x70, +0x6d, 0x77, 0x82, 0x82, 0x86, 0x8f, 0x90, 0x85, 0x79, 0x79, 0x7b, 0x73, 0x6e, 0x76, 0x81, 0x88, +0x8a, 0x85, 0x79, 0x73, 0x7b, 0x83, 0x82, 0x86, 0x8a, 0x7d, 0x71, 0x76, 0x83, 0x86, 0x7c, 0x78, +0x78, 0x7b, 0x81, 0x89, 0x90, 0x86, 0x7a, 0x7d, 0x81, 0x7a, 0x77, 0x80, 0x88, 0x82, 0x73, 0x77, +0x8a, 0x8a, 0x81, 0x81, 0x84, 0x82, 0x7b, 0x7a, 0x7d, 0x7a, 0x75, 0x74, 0x7b, 0x86, 0x8e, 0x8b, +0x83, 0x80, 0x7c, 0x78, 0x78, 0x76, 0x7b, 0x85, 0x85, 0x83, 0x85, 0x89, 0x88, 0x7c, 0x75, 0x7d, +0x83, 0x7c, 0x79, 0x7b, 0x81, 0x7e, 0x79, 0x80, 0x87, 0x83, 0x80, 0x7c, 0x7a, 0x7e, 0x7e, 0x80, +0x83, 0x82, 0x81, 0x82, 0x83, 0x84, 0x82, 0x80, 0x7d, 0x7c, 0x83, 0x84, 0x81, 0x80, 0x82, 0x85, +0x83, 0x80, 0x7e, 0x80, 0x80, 0x7c, 0x7d, 0x82, 0x86, 0x88, 0x87, 0x86, 0x82, 0x7c, 0x79, 0x79, +0x80, 0x82, 0x7e, 0x80, 0x85, 0x86, 0x87, 0x87, 0x84, 0x81, 0x7e, 0x7c, 0x79, 0x7c, 0x83, 0x85, +0x86, 0x84, 0x7e, 0x80, 0x7e, 0x7e, 0x7d, 0x7a, 0x7c, 0x7e, 0x81, 0x82, 0x84, 0x86, 0x84, 0x81, +0x7e, 0x7d, 0x7d, 0x81, 0x82, 0x80, 0x7d, 0x7c, 0x7d, 0x80, 0x83, 0x88, 0x88, 0x88, 0x87, 0x87, +0x86, 0x7d, 0x72, 0x69, 0x64, 0x68, 0x76, 0x8e, 0x9e, 0x9f, 0x91, 0x7b, 0x70, 0x71, 0x75, 0x7e, +0x82, 0x80, 0x80, 0x7d, 0x7c, 0x7e, 0x82, 0x85, 0x87, 0x89, 0x8e, 0x8f, 0x84, 0x73, 0x68, 0x60, +0x63, 0x74, 0x89, 0x97, 0x9a, 0x92, 0x88, 0x7b, 0x6e, 0x6b, 0x6d, 0x6e, 0x71, 0x7d, 0x8e, 0x90, +0x8f, 0x91, 0x8c, 0x85, 0x81, 0x82, 0x7b, 0x71, 0x6d, 0x6c, 0x6f, 0x76, 0x85, 0x96, 0x9c, 0x99, +0x8e, 0x7a, 0x6b, 0x60, 0x5f, 0x66, 0x70, 0x83, 0x91, 0x95, 0x91, 0x89, 0x7d, 0x73, 0x70, 0x75, +0x7b, 0x82, 0x86, 0x84, 0x82, 0x86, 0x87, 0x86, 0x84, 0x7e, 0x7c, 0x7d, 0x7d, 0x81, 0x81, 0x7c, +0x7e, 0x81, 0x7c, 0x79, 0x76, 0x77, 0x76, 0x76, 0x7d, 0x88, 0x8a, 0x84, 0x7a, 0x75, 0x78, 0x7e, +0x83, 0x89, 0x8e, 0x8d, 0x8b, 0x83, 0x79, 0x77, 0x7b, 0x83, 0x8b, 0x8f, 0x8d, 0x87, 0x7e, 0x75, +0x73, 0x75, 0x7a, 0x82, 0x87, 0x89, 0x89, 0x84, 0x7b, 0x71, 0x6a, 0x6c, 0x73, 0x7b, 0x85, 0x8a, +0x8b, 0x84, 0x7e, 0x80, 0x81, 0x83, 0x83, 0x7e, 0x7b, 0x78, 0x75, 0x6c, 0x60, 0x5d, 0x73, 0xa3, +0xcd, 0xd0, 0xa2, 0x54, 0x1d, 0x23, 0x62, 0xb0, 0xcd, 0xb6, 0x89, 0x68, 0x67, 0x77, 0x78, 0x6c, +0x69, 0x78, 0x94, 0xa5, 0xa3, 0x8b, 0x66, 0x4b, 0x50, 0x75, 0xa8, 0xc2, 0xac, 0x80, 0x60, 0x56, +0x5a, 0x6c, 0x8a, 0x9d, 0x9c, 0x93, 0x8f, 0x8b, 0x73, 0x5a, 0x5d, 0x70, 0x7c, 0x8b, 0xa4, 0xa5, +0x7c, 0x5d, 0x5f, 0x6d, 0x76, 0x8b, 0xa3, 0x9b, 0x7d, 0x70, 0x70, 0x6c, 0x6e, 0x81, 0x90, 0x8c, +0x8b, 0x92, 0x8a, 0x77, 0x72, 0x78, 0x7e, 0x84, 0x8d, 0x8d, 0x7a, 0x6c, 0x6d, 0x72, 0x78, 0x87, +0x96, 0x92, 0x85, 0x79, 0x70, 0x66, 0x61, 0x6a, 0x7b, 0x8c, 0x99, 0xa0, 0x9a, 0x88, 0x79, 0x69, +0x5c, 0x5e, 0x6d, 0x84, 0x94, 0x94, 0x92, 0x8b, 0x80, 0x75, 0x71, 0x79, 0x83, 0x88, 0x89, 0x84, +0x7e, 0x7b, 0x7a, 0x78, 0x7b, 0x82, 0x82, 0x82, 0x81, 0x7d, 0x7c, 0x7c, 0x7e, 0x82, 0x83, 0x82, +0x82, 0x7a, 0x76, 0x79, 0x7e, 0x86, 0x8b, 0x8c, 0x86, 0x75, 0x60, 0x56, 0x60, 0x82, 0xb3, 0xcd, +0xb5, 0x7a, 0x40, 0x27, 0x44, 0x86, 0xc0, 0xcf, 0xad, 0x73, 0x4e, 0x4d, 0x69, 0x85, 0x89, 0x81, +0x7e, 0x8d, 0x9e, 0x9c, 0x81, 0x58, 0x42, 0x52, 0x7e, 0xac, 0xba, 0xab, 0x87, 0x62, 0x58, 0x63, +0x7d, 0x97, 0x98, 0x88, 0x78, 0x70, 0x73, 0x76, 0x7c, 0x87, 0x8d, 0x93, 0x93, 0x88, 0x71, 0x5c, +0x55, 0x5e, 0x75, 0x92, 0xab, 0xb1, 0x99, 0x74, 0x5c, 0x52, 0x59, 0x6c, 0x84, 0x97, 0x9d, 0x9c, +0x97, 0x8a, 0x77, 0x6d, 0x68, 0x66, 0x69, 0x75, 0x83, 0x8a, 0x91, 0x95, 0x96, 0x92, 0x8b, 0x80, +0x6e, 0x5e, 0x56, 0x5d, 0x6d, 0x88, 0xa6, 0xb1, 0xa9, 0x9c, 0x88, 0x6b, 0x54, 0x4c, 0x54, 0x65, +0x7b, 0x97, 0xae, 0xb3, 0xa9, 0x91, 0x75, 0x64, 0x5b, 0x5a, 0x62, 0x6f, 0x83, 0x9a, 0xa8, 0xa7, +0x9e, 0x8d, 0x76, 0x64, 0x5b, 0x5a, 0x61, 0x73, 0x8f, 0xa6, 0xa3, 0x80, 0x5b, 0x5e, 0x88, 0xb3, +0xb6, 0x7d, 0x36, 0x1e, 0x53, 0xb6, 0xef, 0xdf, 0x9f, 0x5d, 0x3a, 0x3d, 0x55, 0x67, 0x74, 0x8a, +0xaa, 0xc0, 0xbb, 0x9d, 0x6d, 0x40, 0x27, 0x33, 0x61, 0xa2, 0xca, 0xca, 0xac, 0x82, 0x64, 0x5a, +0x5f, 0x6c, 0x81, 0x91, 0x91, 0x88, 0x88, 0x88, 0x7e, 0x71, 0x72, 0x7d, 0x83, 0x89, 0x92, 0x89, +0x6b, 0x57, 0x65, 0x7c, 0x87, 0x90, 0x9a, 0x94, 0x7d, 0x71, 0x74, 0x79, 0x7c, 0x84, 0x8b, 0x87, +0x7c, 0x7c, 0x81, 0x81, 0x86, 0x90, 0x94, 0x8c, 0x80, 0x76, 0x6e, 0x63, 0x64, 0x77, 0x8b, 0x98, +0x9f, 0x99, 0x86, 0x6a, 0x5b, 0x5f, 0x69, 0x7a, 0x91, 0x9c, 0x96, 0x89, 0x7a, 0x6c, 0x6d, 0x77, +0x87, 0x9b, 0x9a, 0x8b, 0x77, 0x6e, 0x73, 0x7c, 0x83, 0x85, 0x88, 0x8a, 0x7d, 0x71, 0x72, 0x79, +0x81, 0x84, 0x88, 0x8b, 0x88, 0x80, 0x75, 0x71, 0x76, 0x7e, 0x86, 0x8c, 0x93, 0x92, 0x85, 0x71, +0x5f, 0x55, 0x5b, 0x6f, 0x83, 0x91, 0x9d, 0xa6, 0x9e, 0x83, 0x6c, 0x63, 0x6c, 0x85, 0x99, 0x9b, +0x8a, 0x76, 0x6b, 0x69, 0x6f, 0x7e, 0x90, 0x99, 0x95, 0x87, 0x73, 0x61, 0x5a, 0x5b, 0x65, 0x79, +0x91, 0x9f, 0xa3, 0x98, 0x84, 0x73, 0x6a, 0x6b, 0x7a, 0x8f, 0x96, 0x93, 0x8a, 0x7e, 0x72, 0x6e, +0x78, 0x87, 0x8b, 0x86, 0x82, 0x79, 0x6a, 0x60, 0x6a, 0x7a, 0x86, 0x92, 0x9c, 0x96, 0x83, 0x74, +0x6f, 0x6c, 0x6a, 0x75, 0x8a, 0x93, 0x95, 0x99, 0x95, 0x84, 0x7a, 0x78, 0x76, 0x77, 0x77, 0x7a, +0x7b, 0x7a, 0x7d, 0x87, 0x8b, 0x88, 0x85, 0x80, 0x78, 0x74, 0x73, 0x74, 0x77, 0x7d, 0x88, 0x90, +0x90, 0x8f, 0x86, 0x78, 0x6d, 0x6d, 0x76, 0x80, 0x82, 0x82, 0x80, 0x7b, 0x7d, 0x81, 0x84, 0x8a, +0x88, 0x80, 0x7c, 0x7b, 0x7a, 0x7b, 0x83, 0x8a, 0x8c, 0x8b, 0x89, 0x81, 0x74, 0x70, 0x75, 0x7a, +0x81, 0x86, 0x86, 0x83, 0x7c, 0x76, 0x74, 0x77, 0x7d, 0x84, 0x89, 0x8a, 0x88, 0x80, 0x7a, 0x78, +0x79, 0x7b, 0x7b, 0x79, 0x75, 0x76, 0x89, 0x9d, 0xa3, 0x98, 0x7a, 0x57, 0x49, 0x61, 0x8b, 0xb3, +0xc0, 0xa4, 0x74, 0x50, 0x4b, 0x5c, 0x75, 0x8b, 0x93, 0x90, 0x8b, 0x86, 0x7e, 0x75, 0x6d, 0x68, +0x6a, 0x78, 0x8e, 0x9d, 0xa0, 0x96, 0x7d, 0x65, 0x5c, 0x66, 0x79, 0x8c, 0x94, 0x8a, 0x7c, 0x7a, +0x7b, 0x82, 0x87, 0x84, 0x81, 0x7a, 0x74, 0x74, 0x73, 0x76, 0x7d, 0x87, 0x90, 0x91, 0x8f, 0x86, +0x77, 0x69, 0x61, 0x64, 0x71, 0x83, 0x92, 0x99, 0x95, 0x88, 0x79, 0x6f, 0x71, 0x77, 0x7b, 0x7c, +0x78, 0x78, 0x80, 0x86, 0x87, 0x83, 0x7d, 0x7c, 0x81, 0x84, 0x80, 0x7c, 0x7b, 0x7b, 0x7d, 0x7e, +0x7e, 0x83, 0x88, 0x87, 0x82, 0x78, 0x74, 0x75, 0x7b, 0x89, 0x8c, 0x83, 0x7d, 0x7a, 0x7a, 0x80, +0x83, 0x85, 0x85, 0x80, 0x7a, 0x74, 0x61, 0x3f, 0x2b, 0x51, 0xa5, 0xe5, 0xee, 0xcc, 0x8f, 0x47, +0x26, 0x48, 0x8d, 0xbb, 0xc4, 0xb2, 0x92, 0x64, 0x43, 0x49, 0x68, 0x89, 0x97, 0x90, 0x82, 0x7a, +0x71, 0x58, 0x4b, 0x5f, 0x81, 0x9a, 0xb6, 0xcf, 0xbb, 0x7a, 0x45, 0x3d, 0x4c, 0x66, 0x97, 0xcf, +0xdc, 0xb4, 0x81, 0x5f, 0x4a, 0x41, 0x55, 0x84, 0xa2, 0xa3, 0xa3, 0x9e, 0x81, 0x5b, 0x4f, 0x5a, +0x64, 0x75, 0x93, 0xab, 0xa5, 0x8d, 0x79, 0x6c, 0x62, 0x6e, 0x8c, 0xa3, 0xa2, 0x93, 0x86, 0x74, +0x68, 0x6d, 0x82, 0x91, 0x8b, 0x81, 0x78, 0x67, 0x5f, 0x6b, 0x7d, 0x8a, 0x90, 0x95, 0x94, 0x87, +0x77, 0x6f, 0x6b, 0x6c, 0x7e, 0x94, 0x9f, 0x9d, 0x8d, 0x7b, 0x69, 0x5d, 0x66, 0x7d, 0x8d, 0x90, +0x8b, 0x84, 0x7e, 0x84, 0x8c, 0x8d, 0x84, 0x72, 0x69, 0x6d, 0x7a, 0x8a, 0x99, 0x9b, 0x8d, 0x7c, +0x71, 0x6b, 0x6b, 0x76, 0x80, 0x82, 0x81, 0x80, 0x82, 0x83, 0x83, 0x81, 0x7c, 0x76, 0x77, 0x7d, +0x83, 0x85, 0x84, 0x7a, 0x6b, 0x62, 0x67, 0x78, 0x94, 0xaf, 0xb8, 0xa4, 0x79, 0x4c, 0x38, 0x4a, +0x79, 0xae, 0xc5, 0xb8, 0x8d, 0x61, 0x51, 0x5b, 0x71, 0x85, 0x87, 0x84, 0x83, 0x86, 0x8c, 0x87, +0x76, 0x6c, 0x70, 0x7d, 0x92, 0xa0, 0x9c, 0x8c, 0x70, 0x58, 0x54, 0x66, 0x86, 0xa2, 0xb0, 0xa6, +0x8b, 0x6d, 0x59, 0x59, 0x68, 0x7a, 0x8e, 0x9a, 0x99, 0x8b, 0x7c, 0x75, 0x71, 0x6f, 0x71, 0x77, +0x79, 0x7c, 0x83, 0x85, 0x83, 0x80, 0x84, 0x89, 0x89, 0x85, 0x7a, 0x6c, 0x63, 0x64, 0x72, 0x87, +0x98, 0xa3, 0xa2, 0x90, 0x75, 0x5e, 0x56, 0x62, 0x78, 0x92, 0xa0, 0x9e, 0x92, 0x7b, 0x65, 0x5d, +0x5e, 0x6a, 0x7c, 0x92, 0x9d, 0x97, 0x8a, 0x80, 0x77, 0x78, 0x87, 0x93, 0x8d, 0x78, 0x5f, 0x4e, +0x52, 0x60, 0x5e, 0x56, 0x73, 0xb5, 0xe4, 0xd9, 0xb9, 0x87, 0x42, 0x22, 0x4d, 0xa4, 0xd3, 0xd5, +0xc9, 0x9f, 0x52, 0x1a, 0x27, 0x59, 0x85, 0x99, 0x9d, 0x95, 0x82, 0x68, 0x55, 0x5d, 0x71, 0x78, +0x87, 0xa9, 0xc2, 0xaa, 0x78, 0x62, 0x5f, 0x50, 0x5b, 0x97, 0xc7, 0xc0, 0xa1, 0x8c, 0x6c, 0x45, +0x40, 0x68, 0x91, 0x98, 0x95, 0x97, 0x82, 0x58, 0x45, 0x57, 0x6a, 0x7b, 0x96, 0xa8, 0xa0, 0x86, +0x74, 0x6d, 0x6d, 0x76, 0x89, 0x9d, 0xa2, 0x97, 0x89, 0x77, 0x66, 0x61, 0x70, 0x85, 0x95, 0x9b, +0x94, 0x82, 0x67, 0x58, 0x59, 0x69, 0x7e, 0x93, 0x9c, 0x96, 0x89, 0x7d, 0x78, 0x77, 0x7b, 0x84, +0x8a, 0x86, 0x7d, 0x74, 0x69, 0x63, 0x6f, 0x89, 0x9e, 0xa7, 0x9d, 0x83, 0x5e, 0x41, 0x41, 0x61, +0x95, 0xc1, 0xd7, 0xc4, 0x8b, 0x49, 0x22, 0x28, 0x5b, 0x9d, 0xcf, 0xda, 0xba, 0x86, 0x55, 0x3c, +0x42, 0x5d, 0x85, 0xa9, 0xb9, 0xb3, 0x98, 0x73, 0x57, 0x46, 0x45, 0x53, 0x6b, 0x8e, 0xb5, 0xce, +0xcd, 0xa9, 0x68, 0x2a, 0x1f, 0x52, 0xa0, 0xde, 0xe5, 0xb4, 0x6d, 0x3a, 0x37, 0x55, 0x75, 0x8f, +0x9d, 0xa1, 0x97, 0x7e, 0x67, 0x5b, 0x5f, 0x6f, 0x83, 0x91, 0x9e, 0xa7, 0x9d, 0x7d, 0x5a, 0x4c, +0x5a, 0x7e, 0xa9, 0xbf, 0xb8, 0x9c, 0x75, 0x56, 0x49, 0x51, 0x6f, 0x99, 0xb1, 0xb0, 0x9d, 0x82, +0x68, 0x5b, 0x5e, 0x6c, 0x7c, 0x8a, 0x92, 0x8f, 0x7c, 0x6c, 0x68, 0x6f, 0x7c, 0x8f, 0x9c, 0x9b, +0x90, 0x81, 0x72, 0x66, 0x65, 0x74, 0x89, 0x93, 0x8e, 0x86, 0x7c, 0x79, 0x78, 0x79, 0x84, 0x8f, +0x95, 0x8f, 0x7e, 0x6f, 0x6b, 0x6c, 0x70, 0x7d, 0x8f, 0x9a, 0x99, 0x91, 0x87, 0x7a, 0x74, 0x6f, +0x68, 0x5c, 0x53, 0x56, 0x55, 0x4e, 0x5f, 0x9b, 0xd7, 0xe9, 0xcf, 0x99, 0x56, 0x2b, 0x3d, 0x85, +0xc3, 0xd5, 0xcb, 0xae, 0x72, 0x33, 0x23, 0x44, 0x6f, 0x8e, 0x9e, 0xa1, 0x91, 0x75, 0x5c, 0x55, +0x59, 0x5f, 0x72, 0x96, 0xb9, 0xb9, 0x9a, 0x80, 0x6d, 0x57, 0x4f, 0x73, 0xa3, 0xb2, 0xaa, 0x9e, +0x89, 0x62, 0x4c, 0x5c, 0x7a, 0x86, 0x89, 0x92, 0x89, 0x6c, 0x5a, 0x61, 0x6b, 0x6f, 0x82, 0x9c, +0xa4, 0x98, 0x87, 0x7a, 0x6b, 0x60, 0x6d, 0x8c, 0x9d, 0xa1, 0x9f, 0x91, 0x79, 0x65, 0x63, 0x6e, +0x7a, 0x86, 0x90, 0x8c, 0x7b, 0x6f, 0x6a, 0x68, 0x6c, 0x7b, 0x8d, 0x93, 0x8f, 0x88, 0x7b, 0x6f, +0x6e, 0x7b, 0x8d, 0x94, 0x92, 0x88, 0x77, 0x6c, 0x6c, 0x76, 0x7d, 0x83, 0x83, 0x82, 0x80, 0x7c, +0x7c, 0x7d, 0x80, 0x82, 0x86, 0x88, 0x84, 0x81, 0x7d, 0x79, 0x79, 0x7d, 0x88, 0x93, 0x95, 0x8e, +0x80, 0x72, 0x6b, 0x6b, 0x6f, 0x71, 0x6d, 0x71, 0x84, 0x9f, 0xb4, 0xac, 0x86, 0x56, 0x3d, 0x4b, +0x7e, 0xac, 0xbe, 0xb4, 0x94, 0x73, 0x5c, 0x54, 0x5b, 0x6e, 0x8b, 0x9f, 0xa2, 0x98, 0x88, 0x76, +0x6a, 0x5e, 0x5b, 0x66, 0x7d, 0x98, 0xa7, 0xa2, 0x8b, 0x71, 0x60, 0x61, 0x6f, 0x80, 0x8c, 0x93, +0x8f, 0x7e, 0x72, 0x72, 0x79, 0x82, 0x8c, 0x93, 0x8a, 0x78, 0x71, 0x6f, 0x6b, 0x6b, 0x7a, 0x8d, +0x93, 0x90, 0x86, 0x78, 0x68, 0x65, 0x71, 0x80, 0x87, 0x8e, 0x91, 0x8a, 0x7e, 0x7c, 0x81, 0x85, +0x8b, 0x8f, 0x8d, 0x83, 0x7b, 0x76, 0x72, 0x71, 0x76, 0x7c, 0x80, 0x83, 0x84, 0x7e, 0x74, 0x75, +0x7a, 0x79, 0x75, 0x7e, 0x90, 0x9c, 0x9d, 0x91, 0x7c, 0x67, 0x5d, 0x61, 0x60, 0x51, 0x4b, 0x73, +0xbb, 0xe5, 0xdc, 0xb0, 0x6a, 0x29, 0x1a, 0x49, 0x98, 0xc8, 0xd1, 0xc2, 0x90, 0x53, 0x2b, 0x34, +0x5e, 0x83, 0x9a, 0xa1, 0x9e, 0x8f, 0x73, 0x60, 0x5d, 0x66, 0x6d, 0x81, 0xa9, 0xc3, 0xb0, 0x86, +0x68, 0x54, 0x3f, 0x4c, 0x88, 0xbb, 0xbd, 0xa9, 0x96, 0x72, 0x47, 0x42, 0x6b, 0x8a, 0x8a, 0x92, +0xa1, 0x8d, 0x66, 0x5b, 0x67, 0x67, 0x67, 0x84, 0xa3, 0xa1, 0x90, 0x89, 0x7c, 0x62, 0x5e, 0x76, +0x8f, 0x98, 0x9a, 0x99, 0x88, 0x6f, 0x66, 0x6b, 0x6f, 0x75, 0x87, 0x94, 0x8f, 0x87, 0x82, 0x77, +0x69, 0x68, 0x75, 0x83, 0x8a, 0x8d, 0x8b, 0x82, 0x78, 0x7b, 0x86, 0x8c, 0x89, 0x82, 0x76, 0x6a, +0x67, 0x74, 0x89, 0x96, 0x95, 0x89, 0x76, 0x67, 0x62, 0x6b, 0x7b, 0x89, 0x8f, 0x90, 0x8f, 0x90, +0x96, 0x99, 0x8f, 0x80, 0x70, 0x64, 0x60, 0x5e, 0x63, 0x6e, 0x7a, 0x92, 0xac, 0xb7, 0xad, 0x8d, +0x68, 0x50, 0x4d, 0x61, 0x7c, 0x91, 0x9d, 0x9d, 0x95, 0x88, 0x79, 0x70, 0x71, 0x76, 0x7c, 0x7e, +0x7c, 0x7d, 0x7d, 0x7b, 0x79, 0x79, 0x7b, 0x81, 0x88, 0x8c, 0x8d, 0x83, 0x74, 0x6d, 0x6b, 0x71, +0x7d, 0x8b, 0x95, 0x92, 0x88, 0x7c, 0x6e, 0x66, 0x6b, 0x7a, 0x8c, 0x99, 0x9f, 0x99, 0x85, 0x6e, +0x5d, 0x59, 0x64, 0x79, 0x8d, 0x95, 0x91, 0x87, 0x7b, 0x76, 0x76, 0x7e, 0x87, 0x88, 0x86, 0x7e, +0x79, 0x74, 0x73, 0x79, 0x87, 0x95, 0x98, 0x92, 0x86, 0x79, 0x6e, 0x66, 0x69, 0x72, 0x84, 0x92, +0x97, 0x92, 0x84, 0x73, 0x68, 0x68, 0x74, 0x86, 0x94, 0x96, 0x92, 0x85, 0x6a, 0x40, 0x22, 0x3c, +0x8c, 0xd5, 0xf1, 0xdd, 0x9e, 0x53, 0x24, 0x30, 0x68, 0xa3, 0xc6, 0xc8, 0xa7, 0x74, 0x4a, 0x3b, +0x45, 0x5e, 0x81, 0x9c, 0xae, 0xaf, 0x9e, 0x7e, 0x5b, 0x45, 0x43, 0x56, 0x81, 0xb7, 0xd4, 0xc1, +0x9a, 0x72, 0x50, 0x40, 0x51, 0x7d, 0x9d, 0xa4, 0xa2, 0x95, 0x7c, 0x63, 0x62, 0x70, 0x79, 0x83, +0x93, 0x99, 0x8d, 0x78, 0x6e, 0x68, 0x5d, 0x60, 0x78, 0x96, 0xa1, 0xa3, 0x9f, 0x8b, 0x6f, 0x5f, +0x66, 0x77, 0x8a, 0x9c, 0xa1, 0x93, 0x7e, 0x6e, 0x6b, 0x6c, 0x75, 0x86, 0x91, 0x92, 0x8a, 0x7b, +0x6d, 0x63, 0x61, 0x6f, 0x86, 0x99, 0xa4, 0xa4, 0x98, 0x7d, 0x66, 0x5d, 0x5d, 0x6b, 0x81, 0x92, +0x99, 0x92, 0x85, 0x7a, 0x77, 0x7b, 0x86, 0x8d, 0x8c, 0x86, 0x81, 0x7a, 0x78, 0x7a, 0x81, 0x86, +0x8b, 0x8d, 0x8a, 0x7c, 0x69, 0x59, 0x59, 0x72, 0x96, 0xb3, 0xb6, 0x9b, 0x73, 0x55, 0x55, 0x6e, +0x8c, 0x9a, 0x95, 0x86, 0x78, 0x75, 0x77, 0x79, 0x7c, 0x82, 0x85, 0x86, 0x86, 0x87, 0x83, 0x7c, +0x71, 0x67, 0x69, 0x75, 0x89, 0x9a, 0x9c, 0x8f, 0x7a, 0x69, 0x65, 0x6e, 0x7e, 0x8c, 0x91, 0x8b, +0x82, 0x7b, 0x7b, 0x7a, 0x7b, 0x7d, 0x7c, 0x78, 0x77, 0x79, 0x84, 0x89, 0x85, 0x7c, 0x6f, 0x68, +0x6e, 0x80, 0x93, 0x9d, 0x98, 0x89, 0x73, 0x65, 0x66, 0x70, 0x7d, 0x8b, 0x93, 0x91, 0x89, 0x81, +0x7d, 0x79, 0x77, 0x78, 0x7b, 0x7e, 0x83, 0x88, 0x8b, 0x87, 0x83, 0x80, 0x7b, 0x78, 0x74, 0x73, +0x73, 0x77, 0x7e, 0x8d, 0x9b, 0xa1, 0x97, 0x77, 0x4a, 0x28, 0x32, 0x6f, 0xc3, 0xf7, 0xee, 0xb2, +0x63, 0x2f, 0x2b, 0x4e, 0x7e, 0xa6, 0xb8, 0xaf, 0x95, 0x7a, 0x6d, 0x67, 0x5f, 0x5e, 0x6a, 0x7e, +0x90, 0x99, 0x97, 0x84, 0x67, 0x53, 0x56, 0x74, 0x99, 0xb6, 0xbc, 0xa0, 0x74, 0x50, 0x4a, 0x5a, +0x77, 0x98, 0xaf, 0xb0, 0x9c, 0x87, 0x73, 0x63, 0x56, 0x57, 0x68, 0x82, 0x99, 0xa9, 0xa9, 0x95, +0x74, 0x59, 0x4c, 0x52, 0x6b, 0x8e, 0xa6, 0xa8, 0x9b, 0x85, 0x72, 0x66, 0x65, 0x6f, 0x83, 0x95, +0xa0, 0xa2, 0x96, 0x83, 0x6f, 0x64, 0x66, 0x73, 0x87, 0x92, 0x92, 0x85, 0x74, 0x69, 0x68, 0x74, +0x88, 0x98, 0x9c, 0x95, 0x86, 0x75, 0x6c, 0x68, 0x69, 0x73, 0x7e, 0x89, 0x8f, 0x92, 0x92, 0x8e, +0x87, 0x78, 0x70, 0x6b, 0x71, 0x80, 0x93, 0x9e, 0x94, 0x77, 0x58, 0x54, 0x72, 0xa0, 0xc0, 0xb3, +0x83, 0x4c, 0x35, 0x50, 0x85, 0xb1, 0xbd, 0xa6, 0x7c, 0x60, 0x61, 0x6c, 0x76, 0x79, 0x74, 0x72, +0x7d, 0x92, 0xa2, 0xa1, 0x8b, 0x68, 0x51, 0x52, 0x6b, 0x91, 0xad, 0xb2, 0x9e, 0x7e, 0x65, 0x5e, +0x69, 0x7b, 0x88, 0x8a, 0x86, 0x84, 0x86, 0x8a, 0x8a, 0x82, 0x74, 0x6d, 0x70, 0x7d, 0x8e, 0x94, +0x8d, 0x7c, 0x6c, 0x69, 0x70, 0x7c, 0x8c, 0x90, 0x8b, 0x81, 0x77, 0x72, 0x71, 0x77, 0x80, 0x83, +0x83, 0x84, 0x87, 0x89, 0x89, 0x86, 0x7b, 0x73, 0x71, 0x74, 0x7d, 0x86, 0x8a, 0x88, 0x84, 0x84, +0x80, 0x7a, 0x74, 0x73, 0x76, 0x79, 0x80, 0x8a, 0x92, 0x94, 0x8e, 0x81, 0x67, 0x45, 0x2b, 0x35, +0x6d, 0xb5, 0xe1, 0xdf, 0xb9, 0x77, 0x38, 0x25, 0x4c, 0x8b, 0xb6, 0xc7, 0xbf, 0xa1, 0x74, 0x59, +0x54, 0x54, 0x57, 0x67, 0x86, 0x9f, 0xa8, 0xa8, 0x9a, 0x77, 0x4f, 0x3e, 0x4d, 0x6b, 0x8c, 0xab, +0xb8, 0xa2, 0x7d, 0x66, 0x5b, 0x5a, 0x64, 0x7c, 0x8e, 0x91, 0x96, 0x9d, 0x98, 0x88, 0x78, 0x6b, +0x63, 0x66, 0x76, 0x8e, 0x99, 0x96, 0x8e, 0x82, 0x71, 0x6a, 0x6b, 0x73, 0x7a, 0x82, 0x8b, 0x8d, +0x89, 0x82, 0x7a, 0x74, 0x72, 0x78, 0x82, 0x8c, 0x90, 0x91, 0x8b, 0x80, 0x73, 0x6b, 0x6a, 0x72, +0x83, 0x91, 0x9d, 0x9e, 0x91, 0x7b, 0x66, 0x5e, 0x60, 0x6b, 0x80, 0x96, 0xa3, 0x9f, 0x8e, 0x7a, +0x6b, 0x66, 0x66, 0x6e, 0x7b, 0x8b, 0x98, 0x9c, 0x99, 0x8e, 0x81, 0x6d, 0x55, 0x4b, 0x57, 0x81, +0xaf, 0xc9, 0xc3, 0x98, 0x61, 0x3d, 0x41, 0x68, 0x94, 0xae, 0xad, 0x97, 0x7d, 0x70, 0x70, 0x74, +0x77, 0x77, 0x77, 0x7a, 0x82, 0x8e, 0x93, 0x8f, 0x83, 0x72, 0x66, 0x66, 0x73, 0x89, 0x9a, 0x9d, +0x92, 0x7e, 0x6b, 0x5f, 0x62, 0x72, 0x84, 0x90, 0x91, 0x8b, 0x87, 0x86, 0x87, 0x86, 0x7d, 0x72, +0x6a, 0x6d, 0x78, 0x89, 0x94, 0x98, 0x94, 0x87, 0x77, 0x6b, 0x67, 0x6e, 0x76, 0x7e, 0x87, 0x8c, +0x8c, 0x87, 0x82, 0x7d, 0x76, 0x70, 0x6e, 0x75, 0x80, 0x88, 0x8c, 0x8a, 0x85, 0x7e, 0x7a, 0x75, +0x77, 0x7c, 0x82, 0x83, 0x82, 0x7e, 0x7a, 0x77, 0x78, 0x7c, 0x7e, 0x82, 0x86, 0x8a, 0x88, 0x7e, +0x71, 0x65, 0x62, 0x67, 0x75, 0x88, 0x94, 0x92, 0x82, 0x72, 0x6d, 0x74, 0x85, 0x97, 0x99, 0x8a, +0x77, 0x6d, 0x73, 0x7e, 0x8f, 0x97, 0x8b, 0x73, 0x63, 0x65, 0x75, 0x8a, 0x9b, 0x9c, 0x90, 0x7e, +0x73, 0x72, 0x78, 0x86, 0x8d, 0x86, 0x78, 0x74, 0x74, 0x78, 0x83, 0x89, 0x85, 0x7c, 0x79, 0x7e, +0x85, 0x89, 0x8e, 0x89, 0x7b, 0x74, 0x71, 0x73, 0x77, 0x82, 0x8a, 0x86, 0x7c, 0x77, 0x75, 0x73, +0x75, 0x7e, 0x88, 0x88, 0x86, 0x86, 0x83, 0x7e, 0x7c, 0x7a, 0x75, 0x75, 0x7c, 0x86, 0x8b, 0x8a, +0x8a, 0x87, 0x7c, 0x74, 0x71, 0x77, 0x83, 0x8c, 0x90, 0x8b, 0x81, 0x75, 0x71, 0x72, 0x76, 0x80, +0x84, 0x84, 0x80, 0x7d, 0x7d, 0x7c, 0x80, 0x83, 0x86, 0x88, 0x82, 0x7a, 0x6e, 0x67, 0x67, 0x6d, +0x7e, 0x8d, 0x93, 0x8d, 0x82, 0x77, 0x72, 0x78, 0x85, 0x90, 0x8f, 0x82, 0x75, 0x6d, 0x73, 0x83, +0x91, 0x96, 0x8a, 0x7c, 0x76, 0x76, 0x80, 0x88, 0x88, 0x83, 0x7c, 0x7a, 0x7d, 0x86, 0x90, 0x93, +0x88, 0x76, 0x67, 0x61, 0x66, 0x74, 0x85, 0x91, 0x96, 0x93, 0x89, 0x82, 0x7d, 0x7c, 0x7a, 0x74, +0x6f, 0x71, 0x78, 0x86, 0x91, 0x95, 0x91, 0x86, 0x7a, 0x73, 0x73, 0x77, 0x7a, 0x7c, 0x7c, 0x7b, +0x7d, 0x83, 0x8b, 0x90, 0x8f, 0x8a, 0x81, 0x78, 0x75, 0x78, 0x7c, 0x80, 0x81, 0x80, 0x83, 0x86, +0x8b, 0x8d, 0x89, 0x82, 0x78, 0x72, 0x6f, 0x71, 0x78, 0x83, 0x8a, 0x8d, 0x8b, 0x82, 0x76, 0x69, +0x65, 0x6b, 0x76, 0x85, 0x8d, 0x89, 0x81, 0x7b, 0x79, 0x7b, 0x85, 0x8d, 0x8d, 0x84, 0x79, 0x73, +0x71, 0x74, 0x7e, 0x85, 0x81, 0x7a, 0x7c, 0x85, 0x8e, 0x94, 0x94, 0x8b, 0x77, 0x69, 0x6a, 0x77, +0x86, 0x8e, 0x8f, 0x86, 0x76, 0x6f, 0x79, 0x85, 0x88, 0x87, 0x81, 0x73, 0x6d, 0x75, 0x83, 0x89, +0x8b, 0x8c, 0x87, 0x7d, 0x7b, 0x83, 0x84, 0x7c, 0x75, 0x71, 0x6e, 0x71, 0x83, 0x95, 0x95, 0x8d, +0x84, 0x79, 0x71, 0x6f, 0x77, 0x81, 0x84, 0x84, 0x85, 0x82, 0x81, 0x88, 0x8c, 0x86, 0x7c, 0x77, +0x77, 0x79, 0x82, 0x8d, 0x92, 0x8b, 0x82, 0x7b, 0x76, 0x76, 0x7c, 0x80, 0x7e, 0x7b, 0x78, 0x7a, +0x7d, 0x84, 0x89, 0x87, 0x7e, 0x78, 0x78, 0x79, 0x7d, 0x83, 0x83, 0x7c, 0x73, 0x6e, 0x75, 0x82, +0x8e, 0x91, 0x88, 0x79, 0x6e, 0x6d, 0x77, 0x84, 0x8c, 0x8c, 0x86, 0x7e, 0x7c, 0x82, 0x88, 0x89, +0x80, 0x74, 0x6b, 0x6d, 0x7a, 0x8d, 0x97, 0x94, 0x8b, 0x7e, 0x73, 0x76, 0x80, 0x8b, 0x8e, 0x88, +0x7c, 0x73, 0x70, 0x73, 0x7a, 0x82, 0x84, 0x81, 0x7c, 0x7d, 0x84, 0x8a, 0x8a, 0x85, 0x7a, 0x74, +0x75, 0x79, 0x82, 0x8a, 0x8e, 0x88, 0x7d, 0x77, 0x77, 0x79, 0x7e, 0x82, 0x7e, 0x7b, 0x7d, 0x84, +0x8b, 0x8e, 0x8d, 0x87, 0x7d, 0x77, 0x78, 0x80, 0x85, 0x87, 0x85, 0x7e, 0x78, 0x76, 0x7d, 0x85, +0x89, 0x87, 0x81, 0x79, 0x73, 0x76, 0x7d, 0x86, 0x8a, 0x88, 0x80, 0x70, 0x68, 0x6d, 0x77, 0x82, +0x89, 0x8c, 0x85, 0x79, 0x73, 0x76, 0x7e, 0x89, 0x94, 0x91, 0x81, 0x73, 0x6a, 0x67, 0x6d, 0x7c, +0x87, 0x88, 0x84, 0x81, 0x82, 0x84, 0x89, 0x8a, 0x83, 0x77, 0x6e, 0x6e, 0x7a, 0x8b, 0x94, 0x95, +0x8e, 0x7b, 0x6e, 0x6f, 0x7a, 0x83, 0x86, 0x85, 0x7d, 0x75, 0x79, 0x85, 0x89, 0x88, 0x83, 0x77, +0x6c, 0x68, 0x73, 0x82, 0x89, 0x8c, 0x8c, 0x86, 0x7d, 0x7e, 0x84, 0x81, 0x79, 0x77, 0x76, 0x73, +0x79, 0x87, 0x8c, 0x85, 0x7c, 0x78, 0x72, 0x70, 0x7c, 0x89, 0x8e, 0x8b, 0x84, 0x7c, 0x77, 0x7a, +0x85, 0x8a, 0x88, 0x84, 0x7d, 0x77, 0x74, 0x79, 0x7e, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x83, 0x87, +0x85, 0x80, 0x7a, 0x7a, 0x7d, 0x84, 0x86, 0x82, 0x7b, 0x75, 0x76, 0x7a, 0x7d, 0x81, 0x82, 0x81, +0x7c, 0x7b, 0x80, 0x85, 0x87, 0x83, 0x7a, 0x71, 0x71, 0x77, 0x80, 0x86, 0x87, 0x85, 0x7e, 0x79, +0x7a, 0x7e, 0x83, 0x83, 0x80, 0x7a, 0x75, 0x75, 0x7e, 0x8b, 0x90, 0x8d, 0x83, 0x75, 0x70, 0x72, +0x7c, 0x86, 0x8b, 0x89, 0x83, 0x7d, 0x7b, 0x80, 0x80, 0x7a, 0x73, 0x71, 0x75, 0x7c, 0x86, 0x8d, +0x8e, 0x88, 0x7e, 0x76, 0x6f, 0x6f, 0x73, 0x79, 0x81, 0x84, 0x85, 0x85, 0x84, 0x84, 0x84, 0x7e, +0x76, 0x72, 0x73, 0x79, 0x82, 0x8a, 0x8d, 0x8b, 0x85, 0x81, 0x7e, 0x7e, 0x81, 0x81, 0x7b, 0x75, +0x76, 0x7b, 0x83, 0x8e, 0x93, 0x93, 0x8e, 0x84, 0x7b, 0x73, 0x70, 0x71, 0x73, 0x76, 0x79, 0x7d, +0x81, 0x81, 0x81, 0x82, 0x81, 0x82, 0x87, 0x86, 0x81, 0x7b, 0x76, 0x74, 0x75, 0x7b, 0x83, 0x84, +0x83, 0x7d, 0x7a, 0x7c, 0x80, 0x81, 0x80, 0x7e, 0x7b, 0x7b, 0x80, 0x85, 0x89, 0x8b, 0x88, 0x7e, +0x79, 0x78, 0x7a, 0x7e, 0x81, 0x84, 0x82, 0x7b, 0x7a, 0x7b, 0x80, 0x83, 0x84, 0x82, 0x7c, 0x7b, +0x7e, 0x84, 0x85, 0x83, 0x7d, 0x76, 0x71, 0x75, 0x7d, 0x83, 0x86, 0x86, 0x84, 0x82, 0x81, 0x81, +0x7c, 0x76, 0x73, 0x72, 0x73, 0x79, 0x84, 0x8c, 0x8e, 0x8a, 0x81, 0x79, 0x75, 0x78, 0x80, 0x86, +0x88, 0x85, 0x7c, 0x74, 0x75, 0x7a, 0x81, 0x85, 0x85, 0x81, 0x7e, 0x83, 0x88, 0x87, 0x84, 0x7c, +0x70, 0x64, 0x64, 0x75, 0x90, 0x9e, 0x9d, 0x94, 0x89, 0x82, 0x74, 0x5f, 0x5b, 0x72, 0x94, 0x96, +0x7b, 0x6b, 0x78, 0x92, 0x97, 0x89, 0x77, 0x6d, 0x6f, 0x77, 0x8a, 0xa2, 0xad, 0x97, 0x6c, 0x4d, +0x4e, 0x69, 0x8b, 0xa2, 0xa6, 0x95, 0x7a, 0x68, 0x69, 0x7b, 0x8a, 0x86, 0x79, 0x74, 0x78, 0x84, +0x8f, 0x94, 0x8c, 0x74, 0x5f, 0x60, 0x74, 0x93, 0xa2, 0x9a, 0x87, 0x71, 0x64, 0x63, 0x70, 0x84, +0x8e, 0x88, 0x7a, 0x76, 0x7c, 0x86, 0x8c, 0x8a, 0x82, 0x77, 0x70, 0x76, 0x84, 0x8c, 0x85, 0x72, +0x64, 0x6b, 0x84, 0x97, 0x9b, 0x90, 0x83, 0x81, 0x7c, 0x74, 0x6f, 0x79, 0x88, 0x8a, 0x83, 0x84, +0x8d, 0x89, 0x67, 0x3c, 0x2f, 0x57, 0x9b, 0xce, 0xdf, 0xc9, 0x92, 0x4a, 0x19, 0x17, 0x48, 0x90, +0xbf, 0xc5, 0xad, 0x91, 0x7d, 0x70, 0x66, 0x60, 0x5d, 0x67, 0x81, 0x9b, 0xba, 0xc9, 0xb2, 0x75, +0x3a, 0x2c, 0x4a, 0x7c, 0xb4, 0xce, 0xc3, 0x97, 0x63, 0x46, 0x46, 0x5b, 0x74, 0x82, 0x86, 0x91, +0x9b, 0x9a, 0x8f, 0x7c, 0x67, 0x56, 0x5b, 0x79, 0x97, 0xa5, 0x9e, 0x84, 0x65, 0x58, 0x63, 0x79, +0x8f, 0x9c, 0x9c, 0x8f, 0x7c, 0x73, 0x6d, 0x6a, 0x6e, 0x76, 0x80, 0x88, 0x91, 0x94, 0x8c, 0x7e, +0x71, 0x69, 0x6b, 0x77, 0x88, 0x94, 0x94, 0x8c, 0x80, 0x73, 0x70, 0x77, 0x7a, 0x7b, 0x7b, 0x7d, +0x83, 0x87, 0x89, 0x85, 0x7a, 0x70, 0x6b, 0x72, 0x82, 0x91, 0x99, 0x96, 0x85, 0x65, 0x40, 0x37, +0x58, 0x9b, 0xd2, 0xd5, 0xa5, 0x68, 0x42, 0x3f, 0x54, 0x6b, 0x8a, 0xa7, 0xb4, 0xa9, 0x90, 0x7a, +0x72, 0x69, 0x58, 0x4f, 0x62, 0x94, 0xbd, 0xbf, 0x9c, 0x6f, 0x52, 0x46, 0x4a, 0x66, 0x96, 0xb8, +0xb3, 0x8e, 0x6a, 0x60, 0x6b, 0x74, 0x70, 0x70, 0x7a, 0x89, 0x93, 0x93, 0x8f, 0x86, 0x73, 0x60, +0x61, 0x7a, 0x98, 0xa4, 0x9b, 0x85, 0x71, 0x68, 0x6b, 0x78, 0x84, 0x89, 0x85, 0x7c, 0x7b, 0x84, +0x8b, 0x87, 0x79, 0x6c, 0x65, 0x69, 0x78, 0x8e, 0x98, 0x92, 0x85, 0x75, 0x6f, 0x71, 0x7c, 0x87, +0x8d, 0x8d, 0x86, 0x81, 0x7d, 0x7e, 0x80, 0x7e, 0x80, 0x85, 0x8c, 0x8e, 0x87, 0x6f, 0x45, 0x27, +0x38, 0x77, 0xc1, 0xe1, 0xcc, 0x94, 0x58, 0x2f, 0x29, 0x51, 0x8f, 0xb9, 0xbe, 0xab, 0x94, 0x81, +0x70, 0x65, 0x5d, 0x5f, 0x70, 0x93, 0xba, 0xc4, 0xae, 0x88, 0x58, 0x35, 0x38, 0x64, 0x99, 0xb5, +0xb2, 0x99, 0x79, 0x5e, 0x54, 0x5f, 0x70, 0x81, 0x8e, 0x92, 0x8d, 0x88, 0x83, 0x78, 0x6c, 0x68, +0x6d, 0x7c, 0x96, 0xac, 0xa8, 0x8f, 0x71, 0x60, 0x5e, 0x6c, 0x87, 0x9c, 0xa0, 0x97, 0x89, 0x79, +0x6f, 0x6d, 0x72, 0x79, 0x7d, 0x83, 0x85, 0x84, 0x83, 0x80, 0x7a, 0x75, 0x77, 0x7e, 0x84, 0x87, +0x86, 0x81, 0x7e, 0x82, 0x83, 0x82, 0x80, 0x7e, 0x7d, 0x7c, 0x7d, 0x82, 0x82, 0x81, 0x7d, 0x80, +0x89, 0x91, 0x8e, 0x6f, 0x3d, 0x23, 0x47, 0x9b, 0xe2, 0xea, 0xb9, 0x75, 0x43, 0x2e, 0x36, 0x5c, +0x95, 0xc0, 0xc1, 0xa2, 0x87, 0x82, 0x80, 0x6c, 0x50, 0x49, 0x69, 0x9a, 0xb9, 0xba, 0xa7, 0x85, +0x5a, 0x3d, 0x46, 0x73, 0xa1, 0xb4, 0xa6, 0x85, 0x69, 0x5e, 0x60, 0x67, 0x74, 0x8a, 0x9b, 0x9d, +0x93, 0x88, 0x79, 0x66, 0x58, 0x5c, 0x75, 0x9a, 0xb4, 0xb4, 0x9b, 0x7a, 0x60, 0x56, 0x5e, 0x78, +0x94, 0xa0, 0x9c, 0x8b, 0x79, 0x6c, 0x69, 0x6e, 0x76, 0x80, 0x8c, 0x94, 0x8e, 0x83, 0x75, 0x6b, +0x6b, 0x76, 0x8a, 0x99, 0x9c, 0x94, 0x81, 0x6c, 0x63, 0x67, 0x76, 0x89, 0x95, 0x96, 0x8d, 0x86, +0x7c, 0x75, 0x70, 0x71, 0x76, 0x82, 0x93, 0xa1, 0x9a, 0x72, 0x3d, 0x29, 0x51, 0xa2, 0xe2, 0xe7, +0xa9, 0x4e, 0x1d, 0x2d, 0x64, 0x9d, 0xb4, 0xab, 0x9a, 0x8e, 0x86, 0x7e, 0x72, 0x65, 0x58, 0x57, +0x6d, 0x95, 0xbc, 0xc6, 0xa5, 0x6a, 0x3a, 0x34, 0x59, 0x8d, 0xae, 0xb0, 0x9c, 0x81, 0x6a, 0x61, +0x67, 0x77, 0x83, 0x85, 0x84, 0x87, 0x92, 0x95, 0x88, 0x71, 0x60, 0x63, 0x7b, 0x96, 0xa5, 0xa3, +0x8e, 0x70, 0x5c, 0x5a, 0x6b, 0x86, 0x9a, 0x9e, 0x92, 0x84, 0x77, 0x70, 0x6d, 0x6c, 0x70, 0x77, +0x83, 0x8e, 0x91, 0x8c, 0x83, 0x76, 0x71, 0x76, 0x83, 0x90, 0x94, 0x8f, 0x84, 0x78, 0x71, 0x72, +0x78, 0x82, 0x8b, 0x8c, 0x87, 0x7d, 0x73, 0x63, 0x4f, 0x4a, 0x65, 0x94, 0xba, 0xc1, 0xab, 0x85, +0x58, 0x3f, 0x49, 0x6b, 0x91, 0xae, 0xb7, 0xa8, 0x8c, 0x76, 0x6e, 0x69, 0x65, 0x6f, 0x85, 0x99, +0xa5, 0xa1, 0x8e, 0x6f, 0x54, 0x4d, 0x5c, 0x7b, 0x9d, 0xae, 0xa8, 0x8e, 0x6f, 0x5a, 0x53, 0x5c, +0x72, 0x86, 0x94, 0x9b, 0x98, 0x8b, 0x7a, 0x71, 0x6e, 0x6f, 0x79, 0x8a, 0x99, 0x9e, 0x94, 0x82, +0x70, 0x66, 0x69, 0x75, 0x88, 0x97, 0x9d, 0x94, 0x82, 0x71, 0x6a, 0x68, 0x6d, 0x79, 0x86, 0x8d, +0x90, 0x8c, 0x83, 0x75, 0x6b, 0x69, 0x6f, 0x7d, 0x90, 0x9a, 0x9a, 0x8d, 0x77, 0x67, 0x64, 0x6f, +0x81, 0x91, 0x9a, 0x94, 0x85, 0x76, 0x74, 0x7d, 0x84, 0x76, 0x55, 0x3a, 0x4d, 0x8f, 0xcf, 0xdd, +0xb2, 0x73, 0x45, 0x36, 0x48, 0x70, 0xa5, 0xc4, 0xb8, 0x91, 0x71, 0x6f, 0x78, 0x75, 0x6b, 0x68, +0x74, 0x8e, 0xa8, 0xae, 0x9b, 0x76, 0x54, 0x47, 0x54, 0x7b, 0xa8, 0xbe, 0xae, 0x84, 0x5f, 0x51, +0x5a, 0x6a, 0x7a, 0x8b, 0x96, 0x9c, 0x9a, 0x8f, 0x7c, 0x68, 0x5a, 0x5c, 0x70, 0x91, 0xac, 0xb0, +0x9d, 0x79, 0x5b, 0x53, 0x61, 0x78, 0x8e, 0x9b, 0x98, 0x8a, 0x7a, 0x71, 0x72, 0x76, 0x79, 0x7a, +0x7e, 0x88, 0x8f, 0x90, 0x88, 0x7a, 0x71, 0x6f, 0x77, 0x85, 0x8c, 0x8b, 0x82, 0x75, 0x6e, 0x73, +0x80, 0x8b, 0x91, 0x8e, 0x87, 0x82, 0x83, 0x80, 0x69, 0x44, 0x2e, 0x4a, 0x8f, 0xd4, 0xec, 0xc6, +0x81, 0x45, 0x27, 0x30, 0x5c, 0x9a, 0xc7, 0xc5, 0xa5, 0x83, 0x71, 0x6d, 0x67, 0x61, 0x61, 0x75, +0x97, 0xb7, 0xc0, 0xa8, 0x76, 0x48, 0x32, 0x40, 0x6f, 0xa7, 0xc6, 0xbf, 0x9d, 0x71, 0x54, 0x4f, +0x5c, 0x6e, 0x7d, 0x8a, 0x95, 0x9b, 0x98, 0x8b, 0x77, 0x66, 0x60, 0x6a, 0x82, 0x9b, 0xab, 0xa7, +0x8e, 0x6e, 0x5a, 0x5b, 0x6d, 0x89, 0x9f, 0xa3, 0x96, 0x81, 0x71, 0x6c, 0x6e, 0x76, 0x7d, 0x84, +0x89, 0x8a, 0x87, 0x7d, 0x74, 0x6d, 0x6a, 0x74, 0x87, 0x97, 0x9d, 0x94, 0x85, 0x74, 0x69, 0x69, +0x73, 0x82, 0x8b, 0x8d, 0x89, 0x83, 0x7d, 0x7b, 0x81, 0x85, 0x87, 0x81, 0x6e, 0x58, 0x53, 0x6e, +0x9a, 0xb6, 0xac, 0x87, 0x65, 0x56, 0x59, 0x6f, 0x8a, 0x9e, 0xa3, 0x97, 0x85, 0x7a, 0x76, 0x75, +0x73, 0x71, 0x71, 0x78, 0x89, 0x9a, 0xa0, 0x97, 0x82, 0x6b, 0x60, 0x65, 0x79, 0x90, 0x99, 0x94, +0x87, 0x75, 0x6e, 0x72, 0x7b, 0x81, 0x81, 0x81, 0x83, 0x87, 0x88, 0x84, 0x7c, 0x76, 0x72, 0x74, +0x7b, 0x84, 0x8c, 0x8d, 0x87, 0x7d, 0x77, 0x73, 0x77, 0x7d, 0x80, 0x7e, 0x7d, 0x7e, 0x81, 0x82, +0x81, 0x80, 0x7d, 0x7c, 0x7c, 0x7e, 0x81, 0x84, 0x83, 0x81, 0x81, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, +0x7c, 0x7e, 0x84, 0x86, 0x86, 0x83, 0x7d, 0x79, 0x77, 0x79, 0x7c, 0x80, 0x81, 0x81, 0x80, 0x7e, +0x7e, 0x80, 0x81, 0x81, 0x7d, 0x7b, 0x7c, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, +0x7e, 0x7e, 0x80, 0x81, 0x83, 0x84, 0x84, 0x83, 0x82, 0x81, 0x7e, 0x7d, 0x7b, 0x7a, 0x7b, 0x7d, +0x7e, 0x80, 0x82, 0x84, 0x84, 0x84, 0x84, 0x81, 0x7d, 0x7c, 0x7c, 0x7c, 0x7a, 0x7b, 0x80, 0x82, +0x84, 0x86, 0x85, 0x82, 0x80, 0x80, 0x7e, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7e, 0x82, 0x84, 0x84, +0x83, 0x80, 0x7d, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7e, +0x7e, 0x80, 0x80, 0x7d, 0x80, 0x80, 0x80, 0x80, 0x7d, 0x7c, 0x7a, 0x78, 0x7a, 0x7d, 0x82, 0x84, +0x83, 0x7e, 0x7b, 0x7b, 0x7d, 0x80, 0x80, 0x7d, 0x7a, 0x79, 0x7a, 0x7d, 0x83, 0x86, 0x87, 0x86, +0x81, 0x7c, 0x79, 0x78, 0x77, 0x78, 0x7b, 0x80, 0x84, 0x88, 0x89, 0x87, 0x83, 0x7e, 0x7a, 0x7a, +0x7a, 0x7c, 0x80, 0x82, 0x83, 0x83, 0x83, 0x84, 0x82, 0x80, 0x7d, 0x7b, 0x7b, 0x7c, 0x7c, 0x7e, +0x80, 0x83, 0x86, 0x86, 0x83, 0x81, 0x7d, 0x7b, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x80, 0x7e, 0x80, +0x82, 0x82, 0x82, 0x80, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7c, 0x80, 0x82, 0x81, +0x82, 0x82, 0x83, 0x81, 0x7c, 0x7b, 0x7b, 0x7b, 0x7d, 0x7e, 0x82, 0x84, 0x85, 0x84, 0x83, 0x7e, +0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7c, 0x7a, 0x7a, 0x7d, 0x84, 0x88, +0x8b, 0x88, 0x80, 0x78, 0x73, 0x72, 0x75, 0x78, 0x7c, 0x80, 0x83, 0x84, 0x85, 0x85, 0x85, 0x82, +0x7d, 0x77, 0x75, 0x76, 0x7a, 0x80, 0x84, 0x86, 0x86, 0x86, 0x85, 0x83, 0x7e, 0x7b, 0x78, 0x76, +0x78, 0x7b, 0x80, 0x83, 0x85, 0x84, 0x80, 0x7d, 0x7b, 0x7a, 0x7b, 0x7c, 0x7e, 0x82, 0x83, 0x84, +0x84, 0x82, 0x7e, 0x7c, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, +0x81, 0x81, 0x80, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7a, +0x7b, 0x7e, 0x81, 0x82, 0x84, 0x83, 0x80, 0x7b, 0x78, 0x77, 0x79, 0x7b, 0x81, 0x88, 0x8b, 0x8a, +0x86, 0x7d, 0x77, 0x75, 0x76, 0x7a, 0x7d, 0x81, 0x81, 0x81, 0x81, 0x82, 0x83, 0x83, 0x80, 0x7c, +0x7c, 0x7d, 0x7d, 0x7e, 0x7b, 0x78, 0x76, 0x78, 0x7c, 0x82, 0x85, 0x83, 0x81, 0x7d, 0x79, 0x77, +0x76, 0x76, 0x79, 0x7a, 0x7d, 0x81, 0x83, 0x85, 0x85, 0x83, 0x7e, 0x7b, 0x79, 0x79, 0x7b, 0x81, +0x82, 0x82, 0x82, 0x80, 0x7d, 0x7b, 0x7b, 0x7e, 0x80, 0x80, 0x81, 0x82, 0x82, 0x81, 0x81, 0x7e, +0x7b, 0x7c, 0x7e, 0x81, 0x82, 0x83, 0x80, 0x7b, 0x7a, 0x7c, 0x80, 0x83, 0x87, 0x87, 0x82, 0x7e, +0x7c, 0x7c, 0x7e, 0x82, 0x84, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7c, 0x7a, 0x77, 0x76, +0x77, 0x7a, 0x81, 0x85, 0x87, 0x87, 0x83, 0x7e, 0x7c, 0x7b, 0x7a, 0x7c, 0x7d, 0x7c, 0x7e, 0x83, +0x87, 0x89, 0x87, 0x82, 0x7c, 0x79, 0x79, 0x7b, 0x84, 0x88, 0x87, 0x82, 0x7e, 0x7c, 0x7b, 0x7d, +0x7e, 0x7e, 0x81, 0x82, 0x81, 0x82, 0x84, 0x83, 0x81, 0x7d, 0x7b, 0x7b, 0x7d, 0x82, 0x85, 0x85, +0x83, 0x80, 0x80, 0x81, 0x82, 0x83, 0x80, 0x7a, 0x79, 0x7a, 0x7d, 0x81, 0x82, 0x80, 0x7b, 0x79, +0x7b, 0x7d, 0x80, 0x82, 0x83, 0x81, 0x7e, 0x80, 0x80, 0x83, 0x83, 0x80, 0x7c, 0x79, 0x78, 0x7a, +0x7e, 0x80, 0x81, 0x80, 0x80, 0x83, 0x84, 0x84, 0x84, 0x81, 0x7b, 0x76, 0x76, 0x78, 0x7c, 0x82, +0x86, 0x87, 0x84, 0x81, 0x79, 0x74, 0x75, 0x79, 0x81, 0x86, 0x88, 0x83, 0x7c, 0x7a, 0x7d, 0x83, +0x87, 0x86, 0x80, 0x79, 0x78, 0x7a, 0x7e, 0x83, 0x81, 0x7a, 0x76, 0x77, 0x7e, 0x89, 0x8f, 0x8d, +0x85, 0x7c, 0x79, 0x7a, 0x80, 0x84, 0x83, 0x80, 0x7c, 0x7c, 0x80, 0x84, 0x85, 0x7e, 0x78, 0x74, +0x76, 0x7e, 0x86, 0x8c, 0x8b, 0x82, 0x78, 0x78, 0x7c, 0x80, 0x83, 0x84, 0x7e, 0x79, 0x7a, 0x7d, +0x81, 0x83, 0x82, 0x7c, 0x7c, 0x82, 0x87, 0x89, 0x86, 0x7e, 0x74, 0x6f, 0x72, 0x79, 0x7e, 0x82, +0x82, 0x82, 0x84, 0x87, 0x89, 0x89, 0x85, 0x7e, 0x78, 0x77, 0x7a, 0x7e, 0x82, 0x82, 0x80, 0x7e, +0x7e, 0x80, 0x7e, 0x76, 0x6e, 0x6b, 0x70, 0x7b, 0x85, 0x8d, 0x89, 0x80, 0x7a, 0x7c, 0x82, 0x86, +0x87, 0x81, 0x77, 0x74, 0x79, 0x83, 0x8a, 0x8a, 0x80, 0x74, 0x70, 0x73, 0x80, 0x8c, 0x8f, 0x8a, +0x85, 0x82, 0x83, 0x88, 0x89, 0x82, 0x76, 0x70, 0x70, 0x77, 0x86, 0x8f, 0x8d, 0x85, 0x7b, 0x77, +0x79, 0x81, 0x86, 0x83, 0x7a, 0x76, 0x79, 0x82, 0x89, 0x8a, 0x84, 0x79, 0x72, 0x74, 0x7a, 0x82, +0x87, 0x84, 0x7b, 0x78, 0x7d, 0x86, 0x8d, 0x8e, 0x87, 0x7d, 0x75, 0x75, 0x77, 0x7b, 0x7d, 0x7c, +0x7b, 0x7e, 0x86, 0x8c, 0x8f, 0x8b, 0x81, 0x76, 0x72, 0x76, 0x7a, 0x7e, 0x80, 0x7e, 0x81, 0x82, +0x86, 0x87, 0x82, 0x79, 0x6b, 0x64, 0x65, 0x72, 0x85, 0x8d, 0x8e, 0x87, 0x7b, 0x78, 0x7d, 0x84, +0x84, 0x80, 0x77, 0x6f, 0x73, 0x7d, 0x89, 0x8e, 0x89, 0x7d, 0x74, 0x77, 0x80, 0x8c, 0x90, 0x8a, +0x80, 0x79, 0x80, 0x87, 0x8c, 0x8c, 0x84, 0x77, 0x6f, 0x73, 0x7e, 0x88, 0x8a, 0x86, 0x7e, 0x78, +0x7b, 0x84, 0x87, 0x83, 0x7a, 0x72, 0x70, 0x75, 0x80, 0x86, 0x82, 0x7d, 0x7a, 0x7a, 0x82, 0x88, +0x89, 0x85, 0x7e, 0x7a, 0x79, 0x7d, 0x82, 0x81, 0x79, 0x75, 0x73, 0x77, 0x80, 0x86, 0x89, 0x87, +0x84, 0x85, 0x84, 0x85, 0x83, 0x7e, 0x79, 0x75, 0x76, 0x78, 0x7b, 0x7e, 0x80, 0x81, 0x82, 0x83, +0x82, 0x7a, 0x70, 0x68, 0x68, 0x72, 0x7e, 0x86, 0x86, 0x7e, 0x78, 0x7c, 0x85, 0x8e, 0x8f, 0x84, +0x72, 0x65, 0x69, 0x76, 0x85, 0x8d, 0x88, 0x7b, 0x75, 0x7a, 0x85, 0x90, 0x91, 0x84, 0x76, 0x73, +0x79, 0x84, 0x8e, 0x8e, 0x81, 0x74, 0x73, 0x79, 0x83, 0x88, 0x86, 0x7c, 0x75, 0x79, 0x84, 0x8b, +0x8d, 0x85, 0x79, 0x71, 0x71, 0x79, 0x82, 0x82, 0x7d, 0x77, 0x74, 0x7b, 0x86, 0x87, 0x83, 0x7b, +0x76, 0x75, 0x7d, 0x88, 0x8b, 0x85, 0x7c, 0x76, 0x75, 0x79, 0x83, 0x84, 0x81, 0x7e, 0x7d, 0x81, +0x86, 0x8a, 0x88, 0x83, 0x7e, 0x7e, 0x81, 0x82, 0x82, 0x7e, 0x7a, 0x79, 0x7b, 0x84, 0x89, 0x86, +0x7d, 0x6e, 0x64, 0x67, 0x75, 0x82, 0x88, 0x85, 0x7a, 0x75, 0x7b, 0x89, 0x91, 0x90, 0x87, 0x74, +0x6a, 0x6e, 0x7a, 0x88, 0x8a, 0x82, 0x78, 0x75, 0x7d, 0x89, 0x92, 0x8f, 0x81, 0x74, 0x72, 0x7b, +0x87, 0x8d, 0x8b, 0x7d, 0x74, 0x76, 0x80, 0x89, 0x8b, 0x85, 0x7b, 0x76, 0x78, 0x83, 0x89, 0x86, +0x80, 0x7a, 0x78, 0x80, 0x89, 0x8b, 0x86, 0x7d, 0x76, 0x74, 0x78, 0x80, 0x82, 0x80, 0x80, 0x83, +0x85, 0x89, 0x8d, 0x89, 0x7e, 0x78, 0x76, 0x78, 0x79, 0x7c, 0x80, 0x7e, 0x81, 0x86, 0x89, 0x89, +0x88, 0x85, 0x81, 0x80, 0x81, 0x81, 0x7e, 0x7c, 0x7b, 0x7a, 0x7d, 0x83, 0x85, 0x81, 0x76, 0x6c, +0x65, 0x6a, 0x77, 0x82, 0x87, 0x86, 0x7c, 0x77, 0x80, 0x8b, 0x91, 0x8e, 0x82, 0x73, 0x6b, 0x6f, +0x7b, 0x85, 0x87, 0x80, 0x77, 0x78, 0x82, 0x8a, 0x90, 0x8a, 0x7b, 0x73, 0x76, 0x81, 0x8a, 0x8f, +0x8b, 0x7e, 0x77, 0x78, 0x7c, 0x82, 0x82, 0x7c, 0x78, 0x78, 0x7e, 0x89, 0x8b, 0x88, 0x82, 0x7b, +0x79, 0x7c, 0x81, 0x80, 0x7a, 0x77, 0x76, 0x78, 0x80, 0x86, 0x86, 0x83, 0x82, 0x82, 0x83, 0x85, +0x84, 0x7c, 0x77, 0x78, 0x7a, 0x7e, 0x82, 0x82, 0x7c, 0x7a, 0x7b, 0x7d, 0x82, 0x84, 0x83, 0x83, +0x84, 0x86, 0x88, 0x87, 0x82, 0x7d, 0x7b, 0x7b, 0x7e, 0x81, 0x81, 0x7e, 0x78, 0x6f, 0x6d, 0x73, +0x7c, 0x85, 0x87, 0x82, 0x79, 0x77, 0x80, 0x89, 0x8e, 0x8c, 0x81, 0x73, 0x6e, 0x72, 0x7c, 0x83, +0x81, 0x7b, 0x77, 0x7a, 0x85, 0x8e, 0x91, 0x89, 0x7c, 0x77, 0x79, 0x81, 0x8a, 0x8b, 0x85, 0x7b, +0x79, 0x7d, 0x82, 0x84, 0x82, 0x7b, 0x75, 0x78, 0x81, 0x84, 0x86, 0x82, 0x7c, 0x79, 0x7c, 0x83, +0x84, 0x7e, 0x7a, 0x77, 0x75, 0x7a, 0x81, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x82, 0x85, 0x84, 0x82, +0x81, 0x80, 0x7e, 0x7d, 0x7b, 0x79, 0x78, 0x7b, 0x81, 0x85, 0x89, 0x88, 0x86, 0x84, 0x81, 0x81, +0x81, 0x80, 0x81, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7a, 0x74, 0x6e, 0x6d, 0x73, 0x7c, 0x85, +0x88, 0x87, 0x83, 0x82, 0x84, 0x85, 0x83, 0x7a, 0x73, 0x70, 0x73, 0x7c, 0x83, 0x84, 0x80, 0x7b, +0x7a, 0x7e, 0x84, 0x87, 0x84, 0x7c, 0x7a, 0x7c, 0x80, 0x85, 0x86, 0x85, 0x83, 0x83, 0x85, 0x84, +0x80, 0x7b, 0x79, 0x78, 0x7c, 0x83, 0x85, 0x85, 0x83, 0x80, 0x7c, 0x7c, 0x7e, 0x7c, 0x7a, 0x7c, +0x7e, 0x81, 0x83, 0x82, 0x80, 0x7d, 0x7d, 0x80, 0x7d, 0x7a, 0x7a, 0x7a, 0x7c, 0x81, 0x84, 0x84, +0x81, 0x7d, 0x7a, 0x78, 0x79, 0x79, 0x7b, 0x80, 0x83, 0x87, 0x88, 0x87, 0x85, 0x82, 0x80, 0x7e, +0x7d, 0x7c, 0x79, 0x76, 0x76, 0x7a, 0x7d, 0x7e, 0x7c, 0x74, 0x6e, 0x6f, 0x75, 0x7e, 0x85, 0x8a, +0x8a, 0x86, 0x84, 0x81, 0x79, 0x76, 0x76, 0x76, 0x79, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x81, 0x83, +0x83, 0x7e, 0x7a, 0x76, 0x77, 0x7e, 0x85, 0x8a, 0x8d, 0x8b, 0x86, 0x7e, 0x79, 0x76, 0x76, 0x79, +0x81, 0x84, 0x84, 0x84, 0x83, 0x83, 0x85, 0x8a, 0x89, 0x83, 0x7c, 0x78, 0x76, 0x77, 0x7b, 0x82, +0x85, 0x86, 0x87, 0x83, 0x7c, 0x7a, 0x79, 0x79, 0x7b, 0x7e, 0x7d, 0x7d, 0x80, 0x83, 0x86, 0x88, +0x87, 0x83, 0x7d, 0x7a, 0x79, 0x7a, 0x7d, 0x83, 0x85, 0x87, 0x86, 0x83, 0x81, 0x7e, 0x7c, 0x7c, +0x7b, 0x78, 0x77, 0x77, 0x77, 0x7a, 0x7e, 0x82, 0x82, 0x80, 0x7b, 0x77, 0x77, 0x7c, 0x84, 0x8b, +0x8e, 0x8b, 0x83, 0x79, 0x73, 0x70, 0x70, 0x74, 0x79, 0x7c, 0x7e, 0x7d, 0x7c, 0x7e, 0x85, 0x8a, +0x8d, 0x8b, 0x84, 0x7b, 0x77, 0x79, 0x80, 0x86, 0x89, 0x88, 0x83, 0x7d, 0x7b, 0x7a, 0x7c, 0x7e, +0x80, 0x80, 0x7e, 0x7c, 0x7c, 0x82, 0x89, 0x8e, 0x8d, 0x88, 0x80, 0x77, 0x76, 0x78, 0x7d, 0x83, +0x86, 0x86, 0x84, 0x82, 0x81, 0x82, 0x83, 0x83, 0x81, 0x7b, 0x77, 0x76, 0x7b, 0x82, 0x88, 0x89, +0x86, 0x81, 0x7b, 0x79, 0x79, 0x7c, 0x80, 0x80, 0x7e, 0x7c, 0x7b, 0x7c, 0x7c, 0x7e, 0x80, 0x81, +0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83, 0x82, 0x82, 0x83, 0x82, 0x81, 0x7b, 0x73, 0x6e, 0x6e, +0x72, 0x79, 0x83, 0x89, 0x89, 0x86, 0x80, 0x7b, 0x78, 0x78, 0x7c, 0x80, 0x83, 0x83, 0x81, 0x80, +0x82, 0x85, 0x86, 0x83, 0x7d, 0x77, 0x74, 0x75, 0x79, 0x81, 0x88, 0x8c, 0x8a, 0x86, 0x82, 0x7e, +0x7e, 0x80, 0x81, 0x7e, 0x7c, 0x7a, 0x7a, 0x7d, 0x83, 0x86, 0x86, 0x85, 0x81, 0x7d, 0x7b, 0x7c, +0x80, 0x82, 0x84, 0x84, 0x81, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x7d, 0x7a, 0x79, 0x7c, 0x81, 0x87, +0x89, 0x88, 0x85, 0x7e, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x7d, 0x7a, 0x7a, 0x7b, 0x7e, 0x83, 0x84, +0x84, 0x80, 0x7b, 0x7b, 0x7d, 0x81, 0x83, 0x84, 0x85, 0x86, 0x85, 0x85, 0x85, 0x84, 0x83, 0x81, +0x7d, 0x79, 0x77, 0x78, 0x7c, 0x81, 0x84, 0x86, 0x85, 0x82, 0x7d, 0x7a, 0x78, 0x7a, 0x80, 0x82, +0x81, 0x7d, 0x7a, 0x7b, 0x80, 0x84, 0x87, 0x87, 0x83, 0x7d, 0x79, 0x79, 0x7d, 0x82, 0x85, 0x85, +0x83, 0x82, 0x81, 0x82, 0x82, 0x82, 0x7e, 0x7b, 0x78, 0x76, 0x77, 0x7d, 0x84, 0x88, 0x88, 0x84, +0x80, 0x7b, 0x79, 0x79, 0x7a, 0x7b, 0x7b, 0x7c, 0x7e, 0x82, 0x84, 0x84, 0x82, 0x80, 0x7c, 0x7a, +0x79, 0x79, 0x7a, 0x7c, 0x7d, 0x7e, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x7d, 0x7b, 0x7b, 0x7b, +0x7d, 0x80, 0x83, 0x85, 0x86, 0x85, 0x83, 0x7e, 0x7c, 0x7a, 0x7a, 0x7b, 0x7c, 0x7e, 0x81, 0x83, +0x83, 0x82, 0x81, 0x7e, 0x7c, 0x7b, 0x7a, 0x79, 0x78, 0x79, 0x7b, 0x7e, 0x83, 0x85, 0x85, 0x83, +0x80, 0x7c, 0x78, 0x77, 0x79, 0x7b, 0x7e, 0x81, 0x83, 0x83, 0x84, 0x84, 0x83, 0x81, 0x7d, 0x7a, +0x78, 0x77, 0x79, 0x7c, 0x80, 0x83, 0x84, 0x84, 0x84, 0x85, 0x84, 0x83, 0x83, 0x7e, 0x7c, 0x7c, +0x7c, 0x7d, 0x81, 0x83, 0x84, 0x85, 0x84, 0x83, 0x82, 0x80, 0x7e, 0x7c, 0x7c, 0x7b, 0x7d, 0x81, +0x82, 0x85, 0x87, 0x87, 0x85, 0x82, 0x7e, 0x7b, 0x7a, 0x7b, 0x7c, 0x7e, 0x83, 0x85, 0x85, 0x84, +0x81, 0x7e, 0x7c, 0x79, 0x78, 0x78, 0x7a, 0x7e, 0x81, 0x83, 0x83, 0x82, 0x7e, 0x7b, 0x78, 0x77, +0x79, 0x7b, 0x7e, 0x81, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x80, 0x81, 0x82, 0x82, +0x7e, 0x7b, 0x7b, 0x7c, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7d, 0x7c, 0x7c, 0x7b, 0x7a, 0x78, 0x77, +0x79, 0x7c, 0x82, 0x86, 0x87, 0x87, 0x85, 0x80, 0x7c, 0x79, 0x75, 0x75, 0x77, 0x7a, 0x80, 0x84, +0x87, 0x89, 0x87, 0x85, 0x81, 0x7a, 0x76, 0x75, 0x76, 0x79, 0x7d, 0x82, 0x85, 0x86, 0x85, 0x83, +0x81, 0x7c, 0x7a, 0x7a, 0x7b, 0x7d, 0x80, 0x82, 0x85, 0x86, 0x85, 0x84, 0x82, 0x80, 0x7d, 0x7d, +0x7c, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x83, 0x84, 0x85, 0x83, 0x81, 0x7e, 0x7d, 0x7a, 0x7a, +0x7b, 0x7b, 0x7c, 0x80, 0x83, 0x84, 0x84, 0x83, 0x82, 0x7e, 0x7a, 0x78, 0x78, 0x79, 0x7b, 0x7e, +0x82, 0x84, 0x85, 0x84, 0x80, 0x7c, 0x7a, 0x78, 0x77, 0x75, 0x75, 0x77, 0x7b, 0x7e, 0x82, 0x84, +0x83, 0x81, 0x7d, 0x7b, 0x77, 0x76, 0x78, 0x79, 0x79, 0x79, 0x7b, 0x7e, 0x82, 0x85, 0x87, 0x86, +0x82, 0x7c, 0x77, 0x76, 0x76, 0x77, 0x79, 0x7b, 0x80, 0x83, 0x86, 0x88, 0x87, 0x83, 0x7d, 0x77, +0x74, 0x75, 0x79, 0x7e, 0x85, 0x87, 0x87, 0x84, 0x80, 0x7c, 0x7a, 0x79, 0x7a, 0x7b, 0x7b, 0x7c, +0x7e, 0x81, 0x82, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7e, +0x81, 0x83, 0x84, 0x83, 0x83, 0x81, 0x7e, 0x7d, 0x7b, 0x7a, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x84, +0x85, 0x86, 0x85, 0x82, 0x80, 0x7d, 0x7a, 0x79, 0x7b, 0x7d, 0x81, 0x84, 0x85, 0x85, 0x84, 0x83, +0x81, 0x7e, 0x7b, 0x79, 0x78, 0x76, 0x78, 0x7a, 0x7e, 0x82, 0x83, 0x82, 0x81, 0x80, 0x7d, 0x7a, +0x79, 0x7b, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x82, 0x83, 0x83, 0x80, 0x7d, 0x7d, 0x7e, 0x80, 0x81, +0x81, 0x80, 0x7d, 0x7d, 0x80, 0x84, 0x87, 0x89, 0x88, 0x85, 0x81, 0x7c, 0x79, 0x77, 0x78, 0x7d, +0x84, 0x88, 0x8a, 0x89, 0x87, 0x85, 0x83, 0x82, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, +0x80, 0x81, 0x83, 0x83, 0x83, 0x81, 0x7e, 0x7a, 0x77, 0x77, 0x78, 0x7b, 0x7e, 0x83, 0x86, 0x86, +0x85, 0x84, 0x82, 0x7e, 0x7b, 0x78, 0x75, 0x76, 0x7b, 0x7e, 0x84, 0x8a, 0x8c, 0x8b, 0x87, 0x80, +0x7a, 0x76, 0x75, 0x76, 0x79, 0x7d, 0x83, 0x86, 0x87, 0x87, 0x85, 0x82, 0x80, 0x7e, 0x7d, 0x7b, +0x7a, 0x79, 0x78, 0x79, 0x7d, 0x81, 0x83, 0x85, 0x85, 0x84, 0x82, 0x7e, 0x7d, 0x7c, 0x7a, 0x7a, +0x7c, 0x7d, 0x81, 0x84, 0x87, 0x88, 0x87, 0x84, 0x7e, 0x7b, 0x7a, 0x78, 0x79, 0x7b, 0x7d, 0x81, +0x84, 0x87, 0x88, 0x88, 0x86, 0x82, 0x7c, 0x79, 0x78, 0x79, 0x7b, 0x7d, 0x81, 0x83, 0x84, 0x84, +0x85, 0x84, 0x82, 0x80, 0x7c, 0x7b, 0x79, 0x79, 0x78, 0x7b, 0x88, 0x90, 0x8e, 0x89, 0x82, 0x7a, +0x76, 0x77, 0x79, 0x7b, 0x81, 0x86, 0x89, 0x89, 0x82, 0x7b, 0x79, 0x7a, 0x7d, 0x80, 0x81, 0x82, +0x81, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, 0x78, 0x78, 0x87, 0x94, 0x92, 0x83, 0x7a, 0x78, 0x75, 0x74, +0x73, 0x7c, 0x8b, 0x90, 0x8f, 0x8e, 0x89, 0x81, 0x7a, 0x77, 0x78, 0x77, 0x6e, 0x63, 0x60, 0x66, +0x77, 0x8f, 0xa3, 0xa9, 0xa3, 0x95, 0x83, 0x70, 0x64, 0x60, 0x5e, 0x58, 0x53, 0x5c, 0x74, 0x95, +0xb6, 0xc8, 0xc1, 0xa5, 0x85, 0x66, 0x51, 0x4f, 0x5c, 0x6f, 0x80, 0x8a, 0x97, 0xa9, 0xb6, 0xb8, +0xaa, 0x85, 0x54, 0x33, 0x30, 0x3e, 0x59, 0x80, 0xa0, 0xaf, 0xae, 0xa9, 0xa2, 0x96, 0x89, 0x74, +0x56, 0x3b, 0x3b, 0x56, 0x78, 0x9e, 0xbb, 0xbe, 0xaa, 0x93, 0x7c, 0x67, 0x60, 0x63, 0x63, 0x61, +0x68, 0x83, 0xa8, 0xc1, 0xc5, 0xae, 0x81, 0x52, 0x38, 0x33, 0x43, 0x64, 0x8a, 0xa4, 0xb0, 0xb0, +0xaa, 0x9c, 0x87, 0x71, 0x5f, 0x57, 0x5d, 0x6c, 0x7d, 0x8c, 0x96, 0x97, 0x90, 0x84, 0x77, 0x72, +0x70, 0x71, 0x72, 0x73, 0x7b, 0x8e, 0xa3, 0xa9, 0x92, 0x64, 0x33, 0x1e, 0x39, 0x79, 0xb4, 0xd1, +0xd3, 0xbe, 0xa1, 0x88, 0x71, 0x65, 0x61, 0x5c, 0x53, 0x53, 0x6d, 0xa1, 0xd2, 0xdd, 0xbf, 0x87, +0x53, 0x35, 0x32, 0x43, 0x5d, 0x79, 0x8d, 0x97, 0x9e, 0xa7, 0xb0, 0xb0, 0x95, 0x67, 0x3f, 0x33, +0x4b, 0x78, 0xa3, 0xba, 0xbb, 0xb0, 0xa0, 0x8b, 0x77, 0x6d, 0x63, 0x54, 0x4b, 0x53, 0x6f, 0x97, +0xb8, 0xbc, 0xa2, 0x7c, 0x5c, 0x4d, 0x4d, 0x5b, 0x72, 0x8a, 0x9b, 0xa1, 0xa2, 0xa3, 0x9f, 0x92, +0x79, 0x5e, 0x52, 0x5e, 0x78, 0x94, 0xa3, 0xa2, 0x92, 0x79, 0x69, 0x65, 0x6c, 0x75, 0x76, 0x73, +0x76, 0x83, 0x91, 0x9d, 0x9c, 0x8b, 0x75, 0x67, 0x63, 0x6d, 0x81, 0x99, 0xae, 0xb5, 0xa1, 0x66, +0x1f, 0x8, 0x2d, 0x74, 0xbb, 0xda, 0xce, 0xb5, 0x9f, 0x88, 0x6e, 0x5d, 0x55, 0x51, 0x4d, 0x54, +0x72, 0xa6, 0xd0, 0xd6, 0xb5, 0x7b, 0x4a, 0x34, 0x35, 0x4b, 0x66, 0x7e, 0x90, 0x9d, 0xa8, 0xb2, +0xb6, 0xa6, 0x81, 0x53, 0x39, 0x3f, 0x5c, 0x84, 0xaa, 0xc0, 0xb7, 0x9a, 0x84, 0x77, 0x6b, 0x5e, +0x55, 0x54, 0x58, 0x6c, 0x91, 0xab, 0xb4, 0xad, 0x94, 0x6f, 0x52, 0x50, 0x61, 0x75, 0x86, 0x93, +0x9c, 0xa1, 0xa4, 0x9f, 0x8d, 0x70, 0x5b, 0x50, 0x55, 0x68, 0x84, 0x9a, 0x9e, 0x93, 0x84, 0x76, +0x6f, 0x6f, 0x75, 0x79, 0x7c, 0x85, 0x8d, 0x90, 0x8d, 0x88, 0x7e, 0x71, 0x67, 0x68, 0x73, 0x84, +0x93, 0x9f, 0xa0, 0x93, 0x6c, 0x35, 0x17, 0x26, 0x57, 0x9b, 0xd4, 0xf0, 0xe9, 0xc5, 0x98, 0x6c, +0x4d, 0x3f, 0x3b, 0x40, 0x56, 0x7c, 0xaf, 0xdb, 0xe1, 0xba, 0x76, 0x3d, 0x1e, 0x1e, 0x39, 0x60, +0x91, 0xb9, 0xc6, 0xc2, 0xc0, 0xb9, 0x9a, 0x6a, 0x44, 0x38, 0x42, 0x69, 0xa0, 0xc2, 0xc5, 0xb5, +0x9b, 0x71, 0x4a, 0x3f, 0x46, 0x4a, 0x54, 0x6d, 0x90, 0xaf, 0xc1, 0xc0, 0xa7, 0x7e, 0x5f, 0x55, +0x56, 0x66, 0x83, 0x9e, 0xa8, 0xa6, 0xa2, 0x9a, 0x88, 0x6c, 0x54, 0x40, 0x3d, 0x4e, 0x6e, 0x8e, +0xa5, 0xb1, 0xab, 0x9a, 0x86, 0x79, 0x75, 0x72, 0x70, 0x70, 0x71, 0x79, 0x86, 0x90, 0x91, 0x89, +0x7d, 0x72, 0x67, 0x64, 0x6b, 0x75, 0x7b, 0x82, 0x8a, 0x93, 0x98, 0x99, 0x94, 0x89, 0x79, 0x61, +0x40, 0x2a, 0x3c, 0x7a, 0xc5, 0xf6, 0xed, 0xb9, 0x7d, 0x56, 0x49, 0x46, 0x41, 0x45, 0x5a, 0x7e, +0xa8, 0xc4, 0xcd, 0xbe, 0x97, 0x61, 0x33, 0x21, 0x3a, 0x6d, 0x9e, 0xb3, 0xb5, 0xb3, 0xad, 0x9d, +0x81, 0x5d, 0x41, 0x3b, 0x4b, 0x6e, 0x9a, 0xbf, 0xc9, 0xad, 0x80, 0x54, 0x3f, 0x47, 0x59, 0x6b, +0x7c, 0x94, 0xac, 0xb7, 0xb0, 0xa0, 0x89, 0x6c, 0x52, 0x49, 0x54, 0x6d, 0x8a, 0x99, 0x99, 0x94, +0x90, 0x8b, 0x80, 0x71, 0x68, 0x67, 0x6a, 0x74, 0x85, 0x93, 0x9b, 0x99, 0x91, 0x85, 0x7b, 0x78, +0x76, 0x72, 0x72, 0x77, 0x82, 0x89, 0x8b, 0x89, 0x83, 0x7a, 0x74, 0x6f, 0x6f, 0x76, 0x85, 0x91, +0x91, 0x89, 0x82, 0x7c, 0x7c, 0x80, 0x8a, 0x94, 0x99, 0x8c, 0x54, 0x20, 0x1c, 0x43, 0x92, 0xda, +0xef, 0xd6, 0xb0, 0x90, 0x71, 0x53, 0x3f, 0x44, 0x56, 0x61, 0x71, 0x9a, 0xca, 0xd8, 0xb0, 0x66, +0x2c, 0x25, 0x3f, 0x63, 0x83, 0x9f, 0xb7, 0xc2, 0xb8, 0xa3, 0x8f, 0x7b, 0x61, 0x41, 0x32, 0x4b, +0x8a, 0xc0, 0xc3, 0xa9, 0x8d, 0x73, 0x57, 0x43, 0x49, 0x5f, 0x74, 0x84, 0x96, 0xa7, 0xb4, 0xbb, +0xad, 0x85, 0x5c, 0x53, 0x5d, 0x63, 0x6b, 0x81, 0x94, 0x9a, 0x96, 0x92, 0x8c, 0x80, 0x6f, 0x5b, +0x4d, 0x53, 0x74, 0x95, 0xa1, 0xa0, 0x9d, 0x94, 0x83, 0x73, 0x6d, 0x6f, 0x71, 0x78, 0x83, 0x8a, +0x91, 0x96, 0x8b, 0x74, 0x63, 0x61, 0x69, 0x72, 0x7d, 0x8b, 0x91, 0x8e, 0x87, 0x7e, 0x7e, 0x84, +0x87, 0x84, 0x81, 0x81, 0x84, 0x85, 0x86, 0x89, 0x8b, 0x85, 0x6b, 0x47, 0x31, 0x40, 0x77, 0xbc, +0xe3, 0xda, 0xae, 0x7e, 0x64, 0x5f, 0x62, 0x5a, 0x50, 0x57, 0x73, 0x9b, 0xba, 0xc3, 0xb0, 0x89, +0x5a, 0x39, 0x34, 0x4f, 0x7a, 0x9a, 0xa3, 0x9f, 0xa0, 0xa4, 0x9e, 0x88, 0x6a, 0x57, 0x51, 0x58, +0x6d, 0x8b, 0xa0, 0xa4, 0x95, 0x7e, 0x6d, 0x68, 0x6f, 0x72, 0x6d, 0x6b, 0x77, 0x8e, 0x9e, 0xa2, +0x9e, 0x93, 0x7e, 0x6e, 0x69, 0x6f, 0x78, 0x7e, 0x81, 0x7b, 0x7a, 0x85, 0x8d, 0x8b, 0x83, 0x7a, +0x75, 0x73, 0x75, 0x7d, 0x87, 0x87, 0x84, 0x81, 0x81, 0x84, 0x88, 0x88, 0x81, 0x7a, 0x7b, 0x80, +0x82, 0x7e, 0x7a, 0x75, 0x72, 0x74, 0x7a, 0x83, 0x89, 0x8b, 0x86, 0x81, 0x7c, 0x7b, 0x7a, 0x76, +0x71, 0x74, 0x82, 0x92, 0x9e, 0x9f, 0x92, 0x7b, 0x6b, 0x6a, 0x75, 0x7e, 0x75, 0x56, 0x3f, 0x4b, +0x81, 0xc9, 0xf2, 0xe0, 0xa2, 0x61, 0x44, 0x51, 0x6a, 0x72, 0x6b, 0x65, 0x72, 0x92, 0xab, 0xaf, +0x9e, 0x7a, 0x55, 0x3c, 0x41, 0x60, 0x92, 0xb3, 0xb4, 0xa1, 0x8e, 0x8d, 0x8f, 0x84, 0x6a, 0x55, +0x53, 0x63, 0x7d, 0x99, 0xa8, 0xa5, 0x8d, 0x70, 0x5f, 0x5f, 0x6b, 0x78, 0x80, 0x80, 0x83, 0x92, +0xa2, 0xa2, 0x91, 0x7c, 0x6d, 0x64, 0x65, 0x72, 0x82, 0x87, 0x83, 0x78, 0x72, 0x74, 0x7d, 0x84, +0x82, 0x7c, 0x7c, 0x85, 0x8c, 0x8d, 0x8b, 0x86, 0x7a, 0x72, 0x72, 0x78, 0x7e, 0x81, 0x80, 0x7a, +0x77, 0x7d, 0x87, 0x8a, 0x86, 0x7d, 0x77, 0x73, 0x73, 0x7a, 0x82, 0x86, 0x84, 0x82, 0x80, 0x7b, +0x79, 0x78, 0x76, 0x76, 0x7d, 0x84, 0x87, 0x86, 0x83, 0x7e, 0x7d, 0x80, 0x84, 0x85, 0x82, 0x7b, +0x76, 0x75, 0x79, 0x80, 0x87, 0x8a, 0x84, 0x73, 0x61, 0x58, 0x60, 0x7b, 0x9e, 0xb5, 0xb5, 0xa0, +0x83, 0x6a, 0x60, 0x65, 0x6f, 0x74, 0x73, 0x74, 0x80, 0x91, 0xa0, 0x9f, 0x8a, 0x6c, 0x5a, 0x5b, +0x6b, 0x83, 0x95, 0x9e, 0x9a, 0x92, 0x8b, 0x85, 0x80, 0x78, 0x6d, 0x66, 0x67, 0x75, 0x8c, 0x9c, +0x9f, 0x94, 0x81, 0x71, 0x6a, 0x6c, 0x74, 0x7b, 0x82, 0x87, 0x8d, 0x92, 0x95, 0x91, 0x87, 0x76, +0x6a, 0x68, 0x6f, 0x79, 0x81, 0x83, 0x81, 0x7c, 0x7b, 0x80, 0x85, 0x89, 0x8a, 0x88, 0x85, 0x82, +0x81, 0x80, 0x7a, 0x75, 0x73, 0x74, 0x7a, 0x83, 0x88, 0x87, 0x82, 0x7d, 0x79, 0x78, 0x7a, 0x7d, +0x7d, 0x7e, 0x83, 0x85, 0x84, 0x80, 0x7c, 0x7c, 0x7b, 0x78, 0x76, 0x7b, 0x84, 0x89, 0x8b, 0x86, +0x81, 0x7e, 0x81, 0x83, 0x84, 0x85, 0x8b, 0x91, 0x92, 0x8d, 0x81, 0x5e, 0x30, 0x25, 0x3e, 0x65, +0xa8, 0xe9, 0xf8, 0xda, 0xac, 0x83, 0x5b, 0x3a, 0x28, 0x30, 0x4a, 0x6a, 0x91, 0xbd, 0xdc, 0xd4, +0x9a, 0x52, 0x24, 0x1f, 0x3c, 0x69, 0x93, 0xb0, 0xc4, 0xc7, 0xbb, 0xa5, 0x85, 0x5f, 0x40, 0x32, +0x3a, 0x58, 0x8a, 0xb8, 0xc3, 0xa8, 0x88, 0x77, 0x66, 0x52, 0x4f, 0x61, 0x75, 0x86, 0x9a, 0xb3, +0xbd, 0xb1, 0x98, 0x77, 0x55, 0x46, 0x52, 0x69, 0x79, 0x87, 0x94, 0x9d, 0x95, 0x85, 0x7b, 0x71, +0x63, 0x5d, 0x68, 0x7e, 0x96, 0xa8, 0xb2, 0xa5, 0x8d, 0x79, 0x6b, 0x5f, 0x58, 0x61, 0x71, 0x7c, +0x85, 0x90, 0x96, 0x91, 0x85, 0x78, 0x6f, 0x6e, 0x77, 0x86, 0x8e, 0x8c, 0x89, 0x86, 0x80, 0x78, +0x76, 0x75, 0x72, 0x71, 0x75, 0x7c, 0x84, 0x88, 0x88, 0x83, 0x7d, 0x7d, 0x86, 0x8c, 0x8e, 0x8c, +0x89, 0x82, 0x78, 0x72, 0x6f, 0x70, 0x72, 0x76, 0x80, 0x86, 0x8a, 0x8c, 0x89, 0x82, 0x7a, 0x73, +0x67, 0x5a, 0x57, 0x65, 0x85, 0xb0, 0xcf, 0xcf, 0xaf, 0x7a, 0x4f, 0x3f, 0x47, 0x5f, 0x76, 0x81, +0x85, 0x8f, 0x9e, 0xa9, 0xa2, 0x86, 0x63, 0x4b, 0x4c, 0x66, 0x8a, 0xa5, 0xb0, 0xaa, 0x97, 0x83, +0x76, 0x71, 0x6c, 0x63, 0x5e, 0x63, 0x75, 0x8f, 0xa3, 0xa5, 0x96, 0x80, 0x6b, 0x63, 0x69, 0x76, +0x84, 0x8a, 0x8e, 0x91, 0x93, 0x92, 0x8c, 0x81, 0x6e, 0x60, 0x62, 0x6d, 0x79, 0x82, 0x85, 0x83, +0x80, 0x80, 0x84, 0x87, 0x84, 0x7c, 0x79, 0x7c, 0x84, 0x8d, 0x91, 0x8c, 0x80, 0x74, 0x6f, 0x6f, +0x72, 0x78, 0x7d, 0x81, 0x83, 0x85, 0x87, 0x86, 0x83, 0x80, 0x7e, 0x80, 0x84, 0x88, 0x8a, 0x88, +0x82, 0x77, 0x6f, 0x6c, 0x6f, 0x77, 0x82, 0x8a, 0x8c, 0x8d, 0x8d, 0x88, 0x7c, 0x72, 0x6f, 0x73, +0x7c, 0x87, 0x8e, 0x91, 0x8e, 0x87, 0x80, 0x7a, 0x76, 0x76, 0x76, 0x76, 0x79, 0x81, 0x88, 0x88, +0x7c, 0x6a, 0x5c, 0x5b, 0x6f, 0x93, 0xb4, 0xc5, 0xb9, 0x97, 0x6d, 0x55, 0x55, 0x64, 0x73, 0x79, +0x77, 0x78, 0x84, 0x97, 0xa3, 0x9c, 0x83, 0x61, 0x50, 0x58, 0x71, 0x92, 0xa5, 0xa4, 0x98, 0x8b, +0x85, 0x83, 0x7b, 0x6f, 0x63, 0x5d, 0x66, 0x7d, 0x96, 0xa4, 0xa2, 0x8e, 0x74, 0x64, 0x65, 0x71, +0x81, 0x89, 0x8e, 0x8f, 0x90, 0x92, 0x91, 0x8a, 0x7a, 0x6b, 0x66, 0x6b, 0x78, 0x87, 0x92, 0x94, +0x8b, 0x7d, 0x73, 0x6f, 0x70, 0x73, 0x7a, 0x85, 0x90, 0x95, 0x93, 0x8b, 0x7e, 0x73, 0x6d, 0x6e, +0x75, 0x80, 0x86, 0x88, 0x85, 0x82, 0x81, 0x80, 0x7d, 0x7a, 0x77, 0x77, 0x78, 0x7e, 0x85, 0x8c, +0x8e, 0x8b, 0x85, 0x82, 0x83, 0x82, 0x7d, 0x76, 0x73, 0x78, 0x7e, 0x82, 0x82, 0x84, 0x87, 0x86, +0x82, 0x7b, 0x77, 0x79, 0x7b, 0x79, 0x79, 0x83, 0x92, 0x9b, 0x98, 0x87, 0x65, 0x38, 0x24, 0x38, +0x66, 0xb3, 0xf1, 0xfe, 0xd9, 0xa3, 0x78, 0x56, 0x37, 0x21, 0x24, 0x41, 0x68, 0x95, 0xc5, 0xe6, +0xdd, 0xa3, 0x51, 0x1b, 0x17, 0x3b, 0x73, 0xa4, 0xc6, 0xd2, 0xcc, 0xb9, 0x9a, 0x73, 0x4b, 0x30, +0x2e, 0x41, 0x64, 0x99, 0xc9, 0xcd, 0xa8, 0x7e, 0x67, 0x5c, 0x51, 0x55, 0x71, 0x8d, 0x9d, 0xa9, +0xb2, 0xab, 0x93, 0x76, 0x5c, 0x49, 0x49, 0x62, 0x82, 0x8f, 0x8f, 0x92, 0x92, 0x88, 0x77, 0x6f, +0x6f, 0x6d, 0x6c, 0x7a, 0x90, 0x9e, 0xa3, 0xa1, 0x90, 0x75, 0x68, 0x6a, 0x6c, 0x6c, 0x74, 0x82, +0x8a, 0x8b, 0x8b, 0x8b, 0x87, 0x7d, 0x76, 0x76, 0x7d, 0x86, 0x8f, 0x93, 0x8e, 0x85, 0x80, 0x7d, +0x78, 0x74, 0x76, 0x78, 0x77, 0x79, 0x7e, 0x82, 0x85, 0x87, 0x89, 0x88, 0x86, 0x83, 0x80, 0x7b, +0x78, 0x78, 0x7a, 0x7d, 0x82, 0x87, 0x8d, 0x8d, 0x86, 0x7e, 0x74, 0x6c, 0x6c, 0x71, 0x78, 0x81, +0x89, 0x8c, 0x89, 0x86, 0x85, 0x84, 0x81, 0x7a, 0x78, 0x7a, 0x80, 0x87, 0x8c, 0x8e, 0x88, 0x7e, +0x75, 0x70, 0x6f, 0x72, 0x71, 0x68, 0x5f, 0x64, 0x7d, 0xa7, 0xcc, 0xd9, 0xc0, 0x8a, 0x51, 0x2d, +0x2f, 0x53, 0x80, 0x9f, 0xa9, 0xa0, 0x92, 0x88, 0x7e, 0x72, 0x61, 0x52, 0x52, 0x66, 0x8b, 0xae, +0xbf, 0xb8, 0x9b, 0x77, 0x5f, 0x5a, 0x62, 0x6f, 0x79, 0x81, 0x86, 0x8e, 0x97, 0x98, 0x8e, 0x78, +0x63, 0x59, 0x60, 0x74, 0x8e, 0x9d, 0xa0, 0x99, 0x8c, 0x81, 0x77, 0x6f, 0x69, 0x65, 0x68, 0x73, +0x84, 0x92, 0x97, 0x92, 0x83, 0x71, 0x68, 0x68, 0x70, 0x7c, 0x88, 0x8f, 0x91, 0x8e, 0x87, 0x7d, +0x74, 0x6c, 0x6a, 0x73, 0x83, 0x92, 0x9a, 0x98, 0x8b, 0x79, 0x6b, 0x65, 0x67, 0x6f, 0x7b, 0x87, +0x8f, 0x92, 0x92, 0x8f, 0x86, 0x79, 0x6c, 0x65, 0x67, 0x72, 0x83, 0x90, 0x97, 0x96, 0x8e, 0x7e, +0x6e, 0x67, 0x66, 0x6a, 0x73, 0x7e, 0x8c, 0x99, 0xa1, 0x9f, 0x94, 0x82, 0x6e, 0x5f, 0x5a, 0x63, +0x78, 0x92, 0x9e, 0x9b, 0x8f, 0x82, 0x75, 0x6b, 0x68, 0x6a, 0x72, 0x82, 0x92, 0x9b, 0x97, 0x81, +0x5c, 0x3d, 0x44, 0x76, 0xbf, 0xef, 0xe6, 0xa9, 0x61, 0x38, 0x3d, 0x5c, 0x74, 0x72, 0x64, 0x65, +0x82, 0xaf, 0xcb, 0xbb, 0x87, 0x50, 0x37, 0x48, 0x74, 0x9d, 0xb2, 0xb0, 0xa0, 0x8c, 0x7c, 0x78, +0x77, 0x70, 0x5e, 0x4e, 0x53, 0x71, 0x9a, 0xb0, 0xa9, 0x92, 0x77, 0x66, 0x62, 0x6a, 0x78, 0x80, +0x81, 0x85, 0x91, 0x9b, 0x9e, 0x94, 0x81, 0x64, 0x4c, 0x50, 0x70, 0x8d, 0x96, 0x99, 0x93, 0x84, +0x74, 0x72, 0x79, 0x79, 0x78, 0x7b, 0x84, 0x8c, 0x91, 0x94, 0x8c, 0x78, 0x68, 0x68, 0x74, 0x7d, +0x83, 0x87, 0x83, 0x79, 0x75, 0x7b, 0x82, 0x87, 0x8a, 0x86, 0x7e, 0x78, 0x7b, 0x7e, 0x81, 0x83, +0x84, 0x84, 0x81, 0x7b, 0x76, 0x74, 0x76, 0x7a, 0x83, 0x8c, 0x91, 0x8f, 0x85, 0x76, 0x68, 0x65, +0x6c, 0x76, 0x81, 0x8b, 0x92, 0x95, 0x93, 0x8e, 0x85, 0x79, 0x6e, 0x66, 0x65, 0x6e, 0x7e, 0x90, +0x98, 0x95, 0x8b, 0x7c, 0x70, 0x6c, 0x6d, 0x74, 0x7b, 0x82, 0x88, 0x8a, 0x88, 0x85, 0x82, 0x7c, +0x78, 0x76, 0x78, 0x7a, 0x7d, 0x81, 0x86, 0x89, 0x8a, 0x86, 0x80, 0x77, 0x6f, 0x6e, 0x73, 0x7e, +0x8c, 0x94, 0x93, 0x87, 0x75, 0x65, 0x5b, 0x5c, 0x6b, 0x86, 0xa0, 0xad, 0xaa, 0x98, 0x7c, 0x62, +0x57, 0x59, 0x63, 0x72, 0x81, 0x8d, 0x95, 0x97, 0x93, 0x88, 0x78, 0x6a, 0x64, 0x69, 0x75, 0x87, +0x95, 0x9b, 0x98, 0x90, 0x85, 0x78, 0x6f, 0x6c, 0x6c, 0x71, 0x7a, 0x85, 0x8d, 0x91, 0x8b, 0x81, +0x75, 0x6d, 0x6d, 0x74, 0x7d, 0x87, 0x8d, 0x8d, 0x8a, 0x85, 0x7d, 0x77, 0x74, 0x73, 0x74, 0x78, +0x7e, 0x85, 0x89, 0x89, 0x86, 0x81, 0x7a, 0x76, 0x76, 0x77, 0x7c, 0x83, 0x88, 0x89, 0x88, 0x84, +0x7d, 0x7a, 0x78, 0x77, 0x7a, 0x7e, 0x82, 0x84, 0x85, 0x83, 0x7e, 0x79, 0x74, 0x72, 0x76, 0x80, +0x8a, 0x92, 0x95, 0x93, 0x8b, 0x81, 0x79, 0x73, 0x6f, 0x6e, 0x70, 0x76, 0x7d, 0x88, 0x8f, 0x8f, +0x8a, 0x82, 0x7b, 0x79, 0x79, 0x7d, 0x83, 0x85, 0x86, 0x88, 0x83, 0x7a, 0x78, 0x7e, 0x81, 0x80, +0x82, 0x86, 0x86, 0x83, 0x7d, 0x76, 0x6f, 0x6d, 0x74, 0x81, 0x8e, 0x99, 0x9e, 0x99, 0x86, 0x73, +0x69, 0x66, 0x6a, 0x75, 0x88, 0x99, 0x9f, 0x95, 0x72, 0x3e, 0x20, 0x3f, 0x90, 0xdb, 0xf9, 0xe4, +0xad, 0x78, 0x57, 0x48, 0x3d, 0x3e, 0x50, 0x71, 0x8f, 0x9f, 0xaf, 0xb5, 0xa4, 0x76, 0x47, 0x3c, +0x55, 0x80, 0xa5, 0xb3, 0xad, 0xa0, 0x90, 0x7a, 0x6a, 0x64, 0x61, 0x5d, 0x61, 0x76, 0x92, 0xa4, +0xa8, 0x9e, 0x82, 0x5d, 0x4e, 0x5f, 0x79, 0x88, 0x92, 0xa4, 0xaa, 0x9a, 0x87, 0x7d, 0x74, 0x62, +0x57, 0x62, 0x76, 0x87, 0x97, 0xa0, 0x98, 0x81, 0x71, 0x6c, 0x67, 0x63, 0x6b, 0x83, 0x94, 0x9b, +0xa0, 0xa2, 0x95, 0x79, 0x64, 0x5c, 0x5e, 0x66, 0x77, 0x88, 0x8e, 0x8d, 0x8e, 0x8c, 0x81, 0x73, +0x71, 0x73, 0x72, 0x76, 0x85, 0x93, 0x96, 0x91, 0x89, 0x7e, 0x74, 0x72, 0x74, 0x75, 0x75, 0x79, +0x7c, 0x7e, 0x80, 0x82, 0x86, 0x85, 0x82, 0x7e, 0x7b, 0x78, 0x79, 0x7c, 0x81, 0x85, 0x85, 0x82, +0x7d, 0x76, 0x72, 0x75, 0x7a, 0x82, 0x89, 0x8b, 0x87, 0x81, 0x7a, 0x76, 0x76, 0x79, 0x7c, 0x7d, +0x7d, 0x7d, 0x7e, 0x81, 0x83, 0x85, 0x85, 0x85, 0x84, 0x81, 0x7d, 0x79, 0x77, 0x75, 0x74, 0x77, +0x7c, 0x82, 0x87, 0x88, 0x84, 0x7d, 0x77, 0x73, 0x73, 0x7a, 0x84, 0x8b, 0x90, 0x8f, 0x8b, 0x85, +0x7d, 0x79, 0x76, 0x74, 0x74, 0x78, 0x7d, 0x84, 0x88, 0x8b, 0x89, 0x84, 0x7e, 0x7b, 0x7a, 0x77, +0x6e, 0x62, 0x5a, 0x62, 0x7a, 0xa2, 0xc5, 0xcb, 0xae, 0x77, 0x45, 0x31, 0x42, 0x6a, 0x8f, 0x9a, +0x94, 0x87, 0x84, 0x8c, 0x93, 0x88, 0x6a, 0x50, 0x4f, 0x6a, 0x97, 0xb9, 0xbf, 0xa8, 0x85, 0x65, +0x57, 0x5c, 0x69, 0x77, 0x80, 0x82, 0x86, 0x92, 0x9e, 0x9e, 0x8b, 0x6d, 0x58, 0x56, 0x67, 0x83, +0x9a, 0xa6, 0xa3, 0x91, 0x81, 0x77, 0x71, 0x6b, 0x68, 0x6c, 0x76, 0x82, 0x8e, 0x97, 0x97, 0x86, +0x71, 0x68, 0x6b, 0x73, 0x7d, 0x88, 0x8d, 0x88, 0x84, 0x84, 0x85, 0x81, 0x7a, 0x75, 0x72, 0x74, +0x7a, 0x84, 0x8b, 0x89, 0x81, 0x7b, 0x79, 0x78, 0x79, 0x81, 0x87, 0x88, 0x87, 0x87, 0x86, 0x81, +0x7b, 0x78, 0x77, 0x7a, 0x81, 0x87, 0x8a, 0x85, 0x7c, 0x77, 0x74, 0x75, 0x7b, 0x84, 0x88, 0x86, +0x83, 0x7e, 0x7b, 0x79, 0x77, 0x78, 0x7d, 0x87, 0x8f, 0x91, 0x89, 0x7b, 0x71, 0x6a, 0x69, 0x6f, +0x7d, 0x8e, 0x96, 0x95, 0x8f, 0x87, 0x7c, 0x72, 0x6d, 0x6c, 0x71, 0x7d, 0x88, 0x8b, 0x88, 0x85, +0x82, 0x7b, 0x74, 0x73, 0x7c, 0x88, 0x8e, 0x8e, 0x8a, 0x84, 0x7a, 0x74, 0x73, 0x78, 0x83, 0x8c, +0x8e, 0x7e, 0x60, 0x45, 0x45, 0x6b, 0xac, 0xe2, 0xec, 0xc1, 0x77, 0x3e, 0x34, 0x52, 0x72, 0x7d, +0x75, 0x70, 0x7e, 0x9d, 0xb2, 0xa9, 0x85, 0x59, 0x44, 0x49, 0x67, 0x91, 0xb2, 0xbc, 0xad, 0x8e, +0x71, 0x67, 0x69, 0x6c, 0x68, 0x60, 0x67, 0x81, 0x9f, 0xae, 0xa5, 0x8d, 0x6e, 0x57, 0x51, 0x66, +0x89, 0x9d, 0x9c, 0x91, 0x8a, 0x86, 0x81, 0x81, 0x80, 0x72, 0x63, 0x63, 0x76, 0x88, 0x8c, 0x8e, +0x8b, 0x7b, 0x6c, 0x6f, 0x7e, 0x89, 0x8a, 0x88, 0x85, 0x80, 0x7d, 0x84, 0x8a, 0x86, 0x7b, 0x76, +0x7a, 0x7c, 0x7e, 0x87, 0x8b, 0x83, 0x78, 0x78, 0x7d, 0x82, 0x85, 0x87, 0x84, 0x7b, 0x76, 0x78, +0x7d, 0x7e, 0x80, 0x83, 0x86, 0x86, 0x88, 0x8b, 0x87, 0x79, 0x6b, 0x66, 0x66, 0x6b, 0x76, 0x84, +0x8f, 0x93, 0x94, 0x93, 0x8d, 0x81, 0x74, 0x6a, 0x63, 0x63, 0x6d, 0x7c, 0x8c, 0x97, 0x9b, 0x96, +0x87, 0x75, 0x6b, 0x69, 0x6e, 0x77, 0x81, 0x86, 0x86, 0x87, 0x89, 0x8a, 0x88, 0x83, 0x7c, 0x76, +0x73, 0x75, 0x7b, 0x82, 0x85, 0x84, 0x81, 0x80, 0x80, 0x81, 0x84, 0x84, 0x82, 0x80, 0x7e, 0x7c, +0x79, 0x77, 0x75, 0x77, 0x7e, 0x87, 0x90, 0x94, 0x90, 0x89, 0x7d, 0x73, 0x6b, 0x68, 0x6a, 0x71, +0x79, 0x86, 0x90, 0x97, 0x96, 0x8f, 0x82, 0x74, 0x6d, 0x6f, 0x77, 0x82, 0x8b, 0x8f, 0x8c, 0x84, +0x7b, 0x76, 0x76, 0x76, 0x77, 0x79, 0x7c, 0x81, 0x87, 0x8a, 0x8a, 0x87, 0x81, 0x75, 0x63, 0x53, +0x51, 0x68, 0x99, 0xcc, 0xe8, 0xd5, 0x98, 0x51, 0x29, 0x2b, 0x4e, 0x7b, 0x93, 0x92, 0x86, 0x84, +0x90, 0x98, 0x8d, 0x6f, 0x54, 0x4d, 0x64, 0x90, 0xb5, 0xc4, 0xb0, 0x8a, 0x66, 0x4e, 0x50, 0x62, +0x79, 0x89, 0x8a, 0x89, 0x8e, 0x93, 0x91, 0x82, 0x6b, 0x5a, 0x59, 0x69, 0x86, 0xa3, 0xb2, 0xad, +0x94, 0x77, 0x67, 0x61, 0x62, 0x69, 0x75, 0x80, 0x85, 0x8c, 0x96, 0x98, 0x89, 0x75, 0x6b, 0x69, +0x6d, 0x7b, 0x8e, 0x96, 0x91, 0x87, 0x7e, 0x7a, 0x79, 0x7a, 0x7c, 0x7c, 0x7b, 0x7d, 0x84, 0x88, +0x84, 0x7c, 0x77, 0x75, 0x77, 0x7e, 0x8a, 0x90, 0x8d, 0x86, 0x7d, 0x78, 0x75, 0x76, 0x79, 0x7c, +0x7e, 0x80, 0x83, 0x86, 0x84, 0x7d, 0x77, 0x72, 0x70, 0x74, 0x7c, 0x84, 0x87, 0x89, 0x8a, 0x8a, +0x89, 0x87, 0x82, 0x79, 0x70, 0x6a, 0x6b, 0x71, 0x79, 0x80, 0x86, 0x87, 0x85, 0x84, 0x83, 0x81, +0x7e, 0x7d, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x78, 0x73, 0x73, 0x77, 0x7e, 0x85, 0x8c, 0x8f, 0x8d, +0x86, 0x7c, 0x76, 0x77, 0x7b, 0x83, 0x88, 0x87, 0x82, 0x7b, 0x77, 0x76, 0x79, 0x7e, 0x82, 0x82, +0x81, 0x82, 0x86, 0x88, 0x86, 0x80, 0x78, 0x74, 0x74, 0x77, 0x7d, 0x85, 0x88, 0x86, 0x80, 0x78, +0x75, 0x78, 0x7d, 0x83, 0x88, 0x8d, 0x91, 0x94, 0x91, 0x87, 0x73, 0x58, 0x40, 0x3e, 0x5c, 0x94, +0xcf, 0xe9, 0xd4, 0x99, 0x54, 0x30, 0x34, 0x54, 0x78, 0x90, 0x9a, 0x9a, 0x9d, 0x9e, 0x93, 0x74, +0x4f, 0x38, 0x3c, 0x5f, 0x92, 0xbe, 0xcc, 0xbc, 0x98, 0x6e, 0x53, 0x4c, 0x58, 0x6c, 0x7b, 0x87, +0x90, 0x9a, 0x9e, 0x98, 0x83, 0x68, 0x57, 0x55, 0x62, 0x7e, 0x9b, 0xab, 0xa5, 0x90, 0x7c, 0x6f, +0x6b, 0x6c, 0x73, 0x7b, 0x7d, 0x7e, 0x85, 0x8c, 0x8a, 0x82, 0x79, 0x72, 0x6d, 0x6f, 0x7d, 0x8d, +0x92, 0x8d, 0x86, 0x7d, 0x77, 0x76, 0x78, 0x7d, 0x7e, 0x7d, 0x80, 0x85, 0x86, 0x82, 0x7d, 0x78, +0x72, 0x70, 0x78, 0x85, 0x8e, 0x90, 0x8c, 0x84, 0x7c, 0x78, 0x77, 0x7a, 0x7a, 0x79, 0x7b, 0x82, +0x86, 0x88, 0x88, 0x83, 0x79, 0x72, 0x73, 0x7a, 0x82, 0x87, 0x88, 0x86, 0x82, 0x7c, 0x79, 0x7a, +0x7a, 0x7c, 0x81, 0x85, 0x87, 0x87, 0x83, 0x7c, 0x78, 0x76, 0x77, 0x7c, 0x82, 0x83, 0x83, 0x83, +0x84, 0x85, 0x87, 0x89, 0x88, 0x86, 0x82, 0x7b, 0x76, 0x71, 0x6f, 0x73, 0x7b, 0x84, 0x8c, 0x91, +0x8e, 0x88, 0x82, 0x7c, 0x79, 0x76, 0x71, 0x6d, 0x6a, 0x6f, 0x7b, 0x8b, 0x9a, 0xa0, 0x9a, 0x8c, +0x77, 0x67, 0x5f, 0x61, 0x6c, 0x7b, 0x8c, 0x99, 0x9d, 0x98, 0x8b, 0x79, 0x6c, 0x66, 0x69, 0x76, +0x88, 0x95, 0x97, 0x90, 0x84, 0x75, 0x6b, 0x6a, 0x6e, 0x76, 0x81, 0x89, 0x8d, 0x8c, 0x8c, 0x88, +0x81, 0x7a, 0x78, 0x7a, 0x7e, 0x82, 0x84, 0x80, 0x78, 0x74, 0x76, 0x7c, 0x86, 0x8d, 0x8f, 0x85, +0x6e, 0x51, 0x44, 0x54, 0x85, 0xbf, 0xdf, 0xda, 0xab, 0x6a, 0x3d, 0x37, 0x4e, 0x69, 0x7c, 0x86, +0x8a, 0x96, 0xa3, 0xa7, 0x95, 0x72, 0x53, 0x4a, 0x5b, 0x7e, 0xa5, 0xbd, 0xbd, 0xa2, 0x7c, 0x60, +0x59, 0x64, 0x74, 0x7e, 0x80, 0x7e, 0x84, 0x8a, 0x8a, 0x84, 0x79, 0x70, 0x6d, 0x73, 0x87, 0x9c, +0xa2, 0x97, 0x83, 0x70, 0x65, 0x65, 0x6c, 0x7b, 0x8a, 0x8e, 0x8a, 0x88, 0x85, 0x7b, 0x73, 0x70, +0x71, 0x73, 0x79, 0x89, 0x96, 0x97, 0x8d, 0x81, 0x75, 0x71, 0x70, 0x76, 0x81, 0x84, 0x83, 0x83, +0x86, 0x85, 0x7d, 0x78, 0x76, 0x74, 0x78, 0x81, 0x8c, 0x93, 0x8e, 0x83, 0x7a, 0x75, 0x72, 0x76, +0x81, 0x87, 0x86, 0x85, 0x85, 0x81, 0x7a, 0x74, 0x70, 0x70, 0x74, 0x7c, 0x89, 0x90, 0x8f, 0x8a, +0x82, 0x79, 0x75, 0x74, 0x78, 0x7e, 0x81, 0x82, 0x84, 0x83, 0x81, 0x7e, 0x7c, 0x7b, 0x7b, 0x7a, +0x79, 0x7b, 0x7b, 0x7e, 0x85, 0x89, 0x89, 0x87, 0x81, 0x7d, 0x7e, 0x7c, 0x7d, 0x80, 0x7d, 0x79, +0x78, 0x7c, 0x80, 0x82, 0x84, 0x86, 0x84, 0x81, 0x81, 0x81, 0x81, 0x80, 0x79, 0x70, 0x65, 0x62, +0x6a, 0x7b, 0x91, 0xa4, 0xaa, 0xa0, 0x8d, 0x71, 0x5e, 0x59, 0x61, 0x74, 0x89, 0x96, 0x9c, 0x99, +0x8d, 0x7b, 0x6b, 0x60, 0x5f, 0x69, 0x7c, 0x95, 0xa6, 0xa6, 0x98, 0x81, 0x6d, 0x63, 0x62, 0x6c, +0x7b, 0x86, 0x8a, 0x8c, 0x8b, 0x84, 0x7b, 0x74, 0x71, 0x75, 0x7e, 0x88, 0x8d, 0x8b, 0x82, 0x75, +0x6b, 0x6c, 0x77, 0x88, 0x94, 0x94, 0x84, 0x64, 0x45, 0x3b, 0x59, 0x90, 0xc3, 0xdd, 0xca, 0x92, +0x5a, 0x47, 0x53, 0x6f, 0x82, 0x81, 0x76, 0x71, 0x7c, 0x8e, 0x95, 0x8c, 0x79, 0x68, 0x69, 0x7b, +0x95, 0xa9, 0xab, 0x97, 0x74, 0x57, 0x53, 0x64, 0x7e, 0x95, 0x9b, 0x93, 0x89, 0x82, 0x78, 0x6b, +0x61, 0x5f, 0x65, 0x73, 0x8c, 0xa7, 0xb6, 0xad, 0x91, 0x72, 0x60, 0x5e, 0x65, 0x73, 0x85, 0x8b, +0x8b, 0x89, 0x88, 0x89, 0x83, 0x78, 0x71, 0x6e, 0x6d, 0x77, 0x87, 0x93, 0x94, 0x8b, 0x82, 0x7d, +0x79, 0x7a, 0x80, 0x85, 0x86, 0x82, 0x7d, 0x7b, 0x79, 0x77, 0x7a, 0x80, 0x84, 0x86, 0x87, 0x87, +0x83, 0x7b, 0x76, 0x76, 0x78, 0x7b, 0x81, 0x87, 0x8a, 0x8a, 0x87, 0x83, 0x7b, 0x74, 0x71, 0x73, +0x78, 0x7e, 0x84, 0x87, 0x89, 0x86, 0x81, 0x7d, 0x7b, 0x79, 0x7a, 0x7e, 0x84, 0x86, 0x86, 0x85, +0x83, 0x7d, 0x7a, 0x7b, 0x7d, 0x80, 0x81, 0x81, 0x81, 0x7c, 0x79, 0x79, 0x7a, 0x78, 0x78, 0x81, +0x8b, 0x92, 0x93, 0x8d, 0x82, 0x74, 0x68, 0x63, 0x68, 0x75, 0x84, 0x90, 0x98, 0x96, 0x8b, 0x7b, +0x70, 0x67, 0x63, 0x6c, 0x7b, 0x8a, 0x96, 0x9f, 0x9e, 0x93, 0x7e, 0x66, 0x4e, 0x41, 0x48, 0x60, +0x88, 0xae, 0xc4, 0xc4, 0xb0, 0x90, 0x6b, 0x54, 0x4e, 0x57, 0x68, 0x7d, 0x95, 0xa3, 0xa4, 0x98, +0x83, 0x68, 0x57, 0x58, 0x66, 0x7a, 0x8f, 0x9b, 0x99, 0x8d, 0x7d, 0x75, 0x75, 0x7a, 0x83, 0x86, +0x84, 0x7e, 0x76, 0x6f, 0x6b, 0x6b, 0x70, 0x7d, 0x8c, 0x97, 0x9e, 0x9a, 0x8b, 0x76, 0x63, 0x56, +0x59, 0x68, 0x7c, 0x92, 0xa1, 0xa7, 0xa1, 0x94, 0x7d, 0x60, 0x44, 0x35, 0x41, 0x6d, 0xa8, 0xd7, +0xe2, 0xbf, 0x81, 0x45, 0x29, 0x3a, 0x67, 0x93, 0xa7, 0xa6, 0x99, 0x8c, 0x82, 0x78, 0x69, 0x58, +0x54, 0x64, 0x84, 0xa7, 0xbe, 0xb9, 0x9c, 0x71, 0x4d, 0x43, 0x57, 0x78, 0x97, 0xa2, 0x9b, 0x8f, +0x84, 0x77, 0x6c, 0x64, 0x64, 0x6a, 0x78, 0x8c, 0x9d, 0xa2, 0x96, 0x7d, 0x65, 0x5e, 0x66, 0x77, +0x8b, 0x97, 0x94, 0x89, 0x7a, 0x71, 0x6e, 0x70, 0x73, 0x7b, 0x85, 0x8a, 0x8f, 0x91, 0x8d, 0x80, +0x71, 0x66, 0x67, 0x72, 0x85, 0x95, 0x9d, 0x9a, 0x8e, 0x7d, 0x70, 0x69, 0x65, 0x68, 0x71, 0x7c, +0x87, 0x90, 0x96, 0x97, 0x8f, 0x82, 0x73, 0x69, 0x66, 0x6b, 0x76, 0x81, 0x87, 0x8a, 0x8c, 0x8a, +0x88, 0x84, 0x7e, 0x77, 0x72, 0x6e, 0x70, 0x75, 0x7c, 0x84, 0x89, 0x8b, 0x8b, 0x88, 0x82, 0x7b, +0x74, 0x6f, 0x70, 0x78, 0x83, 0x8c, 0x91, 0x90, 0x88, 0x7b, 0x71, 0x6c, 0x6d, 0x73, 0x7d, 0x89, +0x8f, 0x91, 0x8d, 0x87, 0x80, 0x78, 0x6f, 0x66, 0x68, 0x7a, 0x91, 0xa1, 0xa9, 0xa3, 0x8b, 0x6a, +0x56, 0x53, 0x60, 0x78, 0x91, 0xa0, 0x9f, 0x95, 0x86, 0x79, 0x70, 0x68, 0x6a, 0x73, 0x83, 0x93, +0x9b, 0x9a, 0x8f, 0x7a, 0x6a, 0x63, 0x63, 0x69, 0x70, 0x77, 0x82, 0x8c, 0x95, 0x9a, 0x93, 0x80, +0x6a, 0x5f, 0x63, 0x76, 0x94, 0xae, 0xb6, 0xaa, 0x8f, 0x6f, 0x55, 0x47, 0x47, 0x52, 0x66, 0x7e, +0x97, 0xab, 0xb3, 0xac, 0x98, 0x7e, 0x69, 0x5e, 0x5d, 0x68, 0x78, 0x86, 0x8f, 0x95, 0x92, 0x8d, +0x87, 0x7e, 0x76, 0x72, 0x72, 0x72, 0x75, 0x79, 0x7e, 0x84, 0x89, 0x8c, 0x90, 0x95, 0x96, 0x94, +0x8b, 0x77, 0x5f, 0x45, 0x34, 0x3b, 0x5f, 0x9b, 0xd2, 0xed, 0xdc, 0xab, 0x6e, 0x3e, 0x30, 0x43, +0x68, 0x89, 0x9b, 0x9e, 0x99, 0x91, 0x87, 0x7a, 0x68, 0x59, 0x58, 0x67, 0x82, 0x98, 0xa3, 0x9e, +0x8d, 0x78, 0x6e, 0x71, 0x7e, 0x90, 0x97, 0x8f, 0x7d, 0x69, 0x5d, 0x5b, 0x63, 0x74, 0x89, 0x9d, +0xab, 0xad, 0xa4, 0x90, 0x71, 0x53, 0x42, 0x47, 0x61, 0x8a, 0xb0, 0xc7, 0xc1, 0xa1, 0x7c, 0x5b, +0x4a, 0x48, 0x57, 0x70, 0x8a, 0x9f, 0xab, 0xab, 0xa0, 0x89, 0x6a, 0x55, 0x53, 0x65, 0x7e, 0x98, +0xa6, 0xa4, 0x93, 0x7c, 0x6c, 0x66, 0x67, 0x6e, 0x79, 0x84, 0x89, 0x8d, 0x8c, 0x87, 0x7c, 0x71, +0x6d, 0x71, 0x7b, 0x8b, 0x96, 0x98, 0x93, 0x83, 0x72, 0x68, 0x66, 0x6c, 0x75, 0x80, 0x8a, 0x90, +0x94, 0x94, 0x8d, 0x81, 0x74, 0x6c, 0x69, 0x6d, 0x76, 0x80, 0x89, 0x8f, 0x93, 0x92, 0x8c, 0x83, +0x79, 0x71, 0x6d, 0x6e, 0x73, 0x7b, 0x85, 0x8c, 0x91, 0x92, 0x8d, 0x85, 0x79, 0x72, 0x70, 0x73, +0x79, 0x80, 0x85, 0x87, 0x85, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c, 0x7a, 0x77, 0x75, 0x6f, 0x66, +0x6f, 0x8f, 0xaf, 0xbe, 0xb9, 0x9c, 0x72, 0x47, 0x33, 0x3f, 0x5d, 0x83, 0xa7, 0xb9, 0xb9, 0xa9, +0x8c, 0x70, 0x58, 0x49, 0x4d, 0x65, 0x87, 0xa3, 0xb0, 0xac, 0x94, 0x75, 0x5f, 0x5a, 0x65, 0x7a, +0x91, 0x99, 0x90, 0x78, 0x64, 0x5d, 0x60, 0x6d, 0x7e, 0x92, 0xa0, 0xa5, 0xa2, 0x96, 0x86, 0x72, +0x63, 0x61, 0x6a, 0x7a, 0x8a, 0x92, 0x8e, 0x7b, 0x6a, 0x61, 0x62, 0x6d, 0x81, 0x96, 0xa4, 0xa7, +0x9d, 0x8c, 0x76, 0x66, 0x5d, 0x5b, 0x65, 0x78, 0x8e, 0xa1, 0xa7, 0x9e, 0x8d, 0x7a, 0x6c, 0x66, +0x68, 0x73, 0x80, 0x86, 0x85, 0x7d, 0x76, 0x73, 0x75, 0x7d, 0x87, 0x8d, 0x8f, 0x8e, 0x89, 0x83, +0x7b, 0x73, 0x67, 0x59, 0x57, 0x6d, 0x94, 0xb4, 0xbe, 0xac, 0x89, 0x67, 0x58, 0x59, 0x65, 0x77, +0x8a, 0x99, 0x9d, 0x93, 0x82, 0x70, 0x64, 0x5e, 0x5f, 0x6b, 0x80, 0x98, 0xa9, 0xaa, 0x98, 0x7c, +0x6a, 0x64, 0x69, 0x74, 0x82, 0x8f, 0x94, 0x8f, 0x82, 0x77, 0x72, 0x71, 0x70, 0x72, 0x7c, 0x8b, +0x93, 0x93, 0x88, 0x78, 0x6d, 0x66, 0x68, 0x73, 0x86, 0x96, 0x9e, 0x9b, 0x91, 0x7d, 0x6e, 0x68, +0x69, 0x6c, 0x71, 0x7d, 0x8d, 0x96, 0x95, 0x90, 0x88, 0x7d, 0x73, 0x6f, 0x71, 0x78, 0x82, 0x87, +0x87, 0x83, 0x7d, 0x7c, 0x80, 0x83, 0x85, 0x85, 0x84, 0x81, 0x7b, 0x76, 0x74, 0x74, 0x76, 0x7b, +0x84, 0x8b, 0x90, 0x90, 0x8a, 0x81, 0x78, 0x74, 0x73, 0x77, 0x7d, 0x84, 0x89, 0x8c, 0x89, 0x81, +0x79, 0x75, 0x74, 0x77, 0x7e, 0x84, 0x88, 0x88, 0x84, 0x7e, 0x7b, 0x79, 0x78, 0x7c, 0x81, 0x86, +0x89, 0x88, 0x85, 0x7e, 0x76, 0x72, 0x73, 0x77, 0x7d, 0x83, 0x87, 0x87, 0x85, 0x82, 0x80, 0x7d, +0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7e, 0x81, 0x83, 0x85, 0x84, 0x81, 0x7b, 0x77, 0x76, +0x78, 0x7c, 0x81, 0x86, 0x88, 0x82, 0x75, 0x6f, 0x74, 0x80, 0x8b, 0x92, 0x92, 0x8a, 0x7b, 0x72, +0x72, 0x76, 0x79, 0x7b, 0x7e, 0x7e, 0x7e, 0x83, 0x86, 0x83, 0x7a, 0x74, 0x7a, 0x87, 0x90, 0x92, +0x8e, 0x81, 0x70, 0x67, 0x6c, 0x77, 0x87, 0x92, 0x93, 0x8a, 0x7a, 0x71, 0x70, 0x73, 0x78, 0x7d, +0x82, 0x85, 0x89, 0x8c, 0x8c, 0x86, 0x79, 0x6e, 0x6a, 0x6f, 0x7b, 0x8a, 0x94, 0x95, 0x8b, 0x7e, +0x75, 0x70, 0x6b, 0x68, 0x68, 0x6b, 0x71, 0x7d, 0x8f, 0x9e, 0xa4, 0xa0, 0x93, 0x82, 0x73, 0x6c, +0x6d, 0x76, 0x80, 0x87, 0x8a, 0x88, 0x82, 0x7b, 0x76, 0x73, 0x72, 0x74, 0x7a, 0x84, 0x8c, 0x8f, +0x8d, 0x88, 0x81, 0x7a, 0x78, 0x7c, 0x84, 0x8b, 0x8d, 0x8a, 0x82, 0x78, 0x71, 0x70, 0x73, 0x77, +0x7d, 0x86, 0x8a, 0x8a, 0x88, 0x82, 0x7a, 0x76, 0x78, 0x7d, 0x86, 0x8d, 0x8f, 0x8c, 0x85, 0x7e, +0x7b, 0x7a, 0x79, 0x79, 0x7c, 0x81, 0x84, 0x83, 0x81, 0x7c, 0x77, 0x77, 0x7a, 0x7d, 0x80, 0x7d, +0x7a, 0x79, 0x80, 0x8b, 0x91, 0x90, 0x88, 0x7c, 0x75, 0x75, 0x77, 0x79, 0x7c, 0x80, 0x82, 0x82, +0x7e, 0x7b, 0x77, 0x76, 0x76, 0x78, 0x7c, 0x83, 0x89, 0x8b, 0x87, 0x7e, 0x75, 0x6f, 0x70, 0x78, +0x85, 0x92, 0x9a, 0x97, 0x8b, 0x7b, 0x6d, 0x65, 0x63, 0x69, 0x74, 0x84, 0x93, 0x9e, 0xa1, 0x9a, +0x8b, 0x78, 0x69, 0x63, 0x68, 0x73, 0x7e, 0x8a, 0x91, 0x93, 0x91, 0x8d, 0x85, 0x7a, 0x70, 0x6c, +0x6d, 0x74, 0x7e, 0x88, 0x8d, 0x8f, 0x8b, 0x83, 0x7c, 0x77, 0x74, 0x73, 0x75, 0x79, 0x7b, 0x82, +0x8d, 0x95, 0x94, 0x8b, 0x7c, 0x6d, 0x62, 0x64, 0x74, 0x89, 0x96, 0x9b, 0x97, 0x88, 0x76, 0x6b, +0x68, 0x69, 0x6f, 0x7a, 0x86, 0x8f, 0x93, 0x91, 0x8c, 0x83, 0x77, 0x6e, 0x6d, 0x73, 0x7c, 0x87, +0x8d, 0x8c, 0x85, 0x7a, 0x75, 0x72, 0x72, 0x74, 0x79, 0x7d, 0x82, 0x87, 0x8a, 0x89, 0x84, 0x7c, +0x77, 0x76, 0x7b, 0x80, 0x84, 0x85, 0x82, 0x7d, 0x7c, 0x81, 0x85, 0x86, 0x84, 0x80, 0x79, 0x75, +0x77, 0x7b, 0x82, 0x87, 0x89, 0x8a, 0x89, 0x86, 0x84, 0x80, 0x7a, 0x74, 0x70, 0x72, 0x76, 0x79, +0x7d, 0x82, 0x85, 0x86, 0x84, 0x83, 0x84, 0x82, 0x81, 0x78, 0x68, 0x5d, 0x65, 0x85, 0xa9, 0xc3, +0xca, 0xb2, 0x84, 0x54, 0x37, 0x35, 0x47, 0x68, 0x8a, 0x9e, 0xa2, 0x9d, 0x92, 0x85, 0x74, 0x6b, +0x6e, 0x7d, 0x92, 0x9f, 0xa1, 0x95, 0x7d, 0x66, 0x5b, 0x5f, 0x6f, 0x83, 0x94, 0x9c, 0x95, 0x87, +0x78, 0x6e, 0x68, 0x6c, 0x77, 0x87, 0x92, 0x97, 0x95, 0x89, 0x7a, 0x6f, 0x69, 0x71, 0x80, 0x91, +0x9d, 0x9e, 0x90, 0x76, 0x60, 0x54, 0x58, 0x6a, 0x86, 0x9d, 0xaa, 0xa7, 0x98, 0x81, 0x68, 0x59, +0x55, 0x5e, 0x72, 0x8b, 0xa1, 0xad, 0xa9, 0x97, 0x80, 0x68, 0x5a, 0x57, 0x5f, 0x6d, 0x7d, 0x8c, +0x94, 0x96, 0x92, 0x88, 0x7d, 0x76, 0x73, 0x76, 0x7c, 0x83, 0x86, 0x85, 0x81, 0x7a, 0x78, 0x79, +0x7b, 0x82, 0x85, 0x84, 0x81, 0x7d, 0x7b, 0x7b, 0x7d, 0x7e, 0x7e, 0x80, 0x82, 0x84, 0x87, 0x86, +0x82, 0x7e, 0x7c, 0x7e, 0x80, 0x7e, 0x7c, 0x78, 0x78, 0x7a, 0x81, 0x86, 0x88, 0x8a, 0x88, 0x85, +0x80, 0x7b, 0x77, 0x74, 0x75, 0x77, 0x7b, 0x80, 0x85, 0x87, 0x88, 0x89, 0x88, 0x86, 0x84, 0x80, +0x79, 0x75, 0x72, 0x72, 0x77, 0x7e, 0x86, 0x8a, 0x8d, 0x8d, 0x88, 0x81, 0x7b, 0x74, 0x6f, 0x70, +0x74, 0x7b, 0x81, 0x87, 0x8a, 0x8a, 0x88, 0x85, 0x82, 0x7e, 0x7c, 0x76, 0x72, 0x72, 0x77, 0x83, +0x8e, 0x92, 0x8d, 0x81, 0x75, 0x71, 0x74, 0x7b, 0x82, 0x86, 0x86, 0x88, 0x89, 0x8a, 0x87, 0x81, +0x7a, 0x76, 0x77, 0x7b, 0x80, 0x81, 0x81, 0x81, 0x82, 0x83, 0x81, 0x7e, 0x7d, 0x7e, 0x81, 0x83, +0x82, 0x7e, 0x7a, 0x78, 0x7b, 0x82, 0x88, 0x8a, 0x89, 0x85, 0x80, 0x7d, 0x7c, 0x7a, 0x74, 0x6e, +0x6a, 0x6e, 0x7c, 0x8d, 0x9b, 0xa2, 0x9e, 0x93, 0x83, 0x70, 0x64, 0x5e, 0x60, 0x6d, 0x7d, 0x8d, +0x98, 0x9a, 0x94, 0x87, 0x7a, 0x73, 0x70, 0x71, 0x75, 0x7b, 0x81, 0x85, 0x85, 0x84, 0x81, 0x7b, +0x78, 0x76, 0x79, 0x80, 0x88, 0x8d, 0x8c, 0x86, 0x7d, 0x76, 0x74, 0x76, 0x7c, 0x85, 0x8b, 0x8d, +0x8b, 0x84, 0x7a, 0x70, 0x6d, 0x72, 0x7c, 0x89, 0x93, 0x96, 0x91, 0x87, 0x7a, 0x6e, 0x69, 0x6c, +0x77, 0x86, 0x91, 0x95, 0x90, 0x88, 0x7e, 0x76, 0x73, 0x75, 0x78, 0x7d, 0x83, 0x87, 0x89, 0x87, +0x82, 0x7b, 0x79, 0x78, 0x78, 0x7a, 0x7e, 0x7d, 0x7b, 0x7c, 0x7e, 0x82, 0x88, 0x8d, 0x8e, 0x8a, +0x83, 0x7a, 0x71, 0x6d, 0x6e, 0x75, 0x81, 0x8d, 0x95, 0x99, 0x95, 0x89, 0x78, 0x6a, 0x65, 0x69, +0x76, 0x88, 0x95, 0x9b, 0x97, 0x8c, 0x7d, 0x6f, 0x67, 0x67, 0x6d, 0x77, 0x84, 0x8e, 0x93, 0x93, +0x8e, 0x85, 0x7b, 0x73, 0x6f, 0x6f, 0x73, 0x7a, 0x81, 0x85, 0x87, 0x88, 0x87, 0x86, 0x82, 0x7e, +0x7c, 0x7a, 0x7a, 0x79, 0x79, 0x7b, 0x7d, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x82, 0x84, +0x85, 0x83, 0x80, 0x7b, 0x79, 0x7a, 0x7a, 0x7a, 0x7c, 0x80, 0x85, 0x8a, 0x8c, 0x88, 0x7e, 0x75, +0x6f, 0x6d, 0x71, 0x7a, 0x84, 0x8b, 0x8f, 0x8e, 0x8a, 0x84, 0x7a, 0x71, 0x6b, 0x69, 0x6e, 0x7b, +0x8a, 0x95, 0x98, 0x94, 0x8c, 0x80, 0x75, 0x6e, 0x6c, 0x6f, 0x76, 0x7e, 0x86, 0x89, 0x8a, 0x89, +0x86, 0x80, 0x78, 0x71, 0x6d, 0x6e, 0x78, 0x89, 0x98, 0xa1, 0x9d, 0x8f, 0x7e, 0x6f, 0x67, 0x66, +0x6b, 0x74, 0x7a, 0x7d, 0x7e, 0x7e, 0x81, 0x86, 0x8c, 0x91, 0x92, 0x90, 0x8c, 0x83, 0x77, 0x69, +0x5f, 0x5f, 0x69, 0x7d, 0x92, 0xa0, 0xa0, 0x95, 0x83, 0x6f, 0x62, 0x5c, 0x5f, 0x69, 0x78, 0x8b, +0x9a, 0xa2, 0x9e, 0x90, 0x7b, 0x69, 0x60, 0x64, 0x70, 0x80, 0x8c, 0x90, 0x8d, 0x87, 0x80, 0x79, +0x76, 0x78, 0x80, 0x89, 0x8f, 0x8f, 0x86, 0x79, 0x6e, 0x6a, 0x6e, 0x77, 0x82, 0x89, 0x8d, 0x8c, +0x87, 0x7e, 0x75, 0x71, 0x73, 0x7b, 0x86, 0x8b, 0x89, 0x84, 0x80, 0x7e, 0x7d, 0x7b, 0x7a, 0x7b, +0x7c, 0x7e, 0x7e, 0x7a, 0x78, 0x7a, 0x7e, 0x84, 0x88, 0x89, 0x88, 0x81, 0x74, 0x69, 0x68, 0x70, +0x80, 0x8e, 0x95, 0x93, 0x8c, 0x83, 0x79, 0x70, 0x6c, 0x6c, 0x73, 0x7c, 0x88, 0x94, 0x99, 0x96, +0x89, 0x79, 0x6b, 0x65, 0x66, 0x6e, 0x7a, 0x86, 0x90, 0x97, 0x96, 0x8f, 0x83, 0x75, 0x6f, 0x6c, +0x6f, 0x77, 0x82, 0x8d, 0x94, 0x93, 0x8b, 0x7b, 0x6d, 0x67, 0x6a, 0x74, 0x82, 0x90, 0x97, 0x95, +0x8c, 0x7e, 0x73, 0x6d, 0x6e, 0x73, 0x7d, 0x88, 0x8f, 0x8f, 0x88, 0x7d, 0x78, 0x79, 0x7b, 0x7b, +0x79, 0x78, 0x7a, 0x7e, 0x85, 0x89, 0x8c, 0x8c, 0x89, 0x83, 0x79, 0x73, 0x71, 0x70, 0x72, 0x78, +0x81, 0x8a, 0x8e, 0x8e, 0x88, 0x80, 0x78, 0x74, 0x76, 0x7c, 0x82, 0x84, 0x82, 0x7c, 0x7b, 0x80, +0x86, 0x87, 0x85, 0x81, 0x78, 0x71, 0x6d, 0x70, 0x7a, 0x88, 0x92, 0x97, 0x94, 0x8a, 0x7c, 0x6d, +0x61, 0x5e, 0x66, 0x77, 0x8a, 0x98, 0x9d, 0x99, 0x8d, 0x7d, 0x6e, 0x64, 0x64, 0x6c, 0x78, 0x84, +0x8d, 0x92, 0x91, 0x8b, 0x83, 0x7a, 0x74, 0x73, 0x76, 0x7a, 0x81, 0x89, 0x8d, 0x88, 0x7d, 0x77, +0x77, 0x7d, 0x85, 0x89, 0x86, 0x80, 0x7a, 0x77, 0x79, 0x7c, 0x81, 0x84, 0x83, 0x81, 0x7c, 0x7a, +0x76, 0x72, 0x6f, 0x73, 0x7c, 0x8a, 0x93, 0x95, 0x8e, 0x81, 0x72, 0x6a, 0x6b, 0x71, 0x7c, 0x87, +0x8f, 0x91, 0x8c, 0x84, 0x7a, 0x73, 0x70, 0x74, 0x7b, 0x83, 0x89, 0x8d, 0x8d, 0x88, 0x81, 0x77, +0x71, 0x71, 0x74, 0x7b, 0x83, 0x87, 0x87, 0x82, 0x7d, 0x7c, 0x7d, 0x80, 0x81, 0x80, 0x81, 0x83, +0x85, 0x84, 0x80, 0x7a, 0x76, 0x75, 0x78, 0x7c, 0x82, 0x88, 0x8b, 0x8b, 0x8a, 0x85, 0x81, 0x7e, +0x7c, 0x7b, 0x7a, 0x79, 0x77, 0x77, 0x7c, 0x82, 0x85, 0x88, 0x89, 0x86, 0x83, 0x7e, 0x78, 0x75, +0x77, 0x7c, 0x85, 0x8c, 0x8e, 0x89, 0x7e, 0x77, 0x73, 0x74, 0x7a, 0x83, 0x88, 0x88, 0x89, 0x88, +0x87, 0x85, 0x80, 0x79, 0x72, 0x6d, 0x70, 0x7a, 0x85, 0x90, 0x95, 0x94, 0x8d, 0x82, 0x76, 0x69, +0x5f, 0x5f, 0x68, 0x79, 0x8e, 0x9f, 0xa6, 0xa1, 0x92, 0x7d, 0x6a, 0x5e, 0x5b, 0x60, 0x6d, 0x7c, +0x8b, 0x95, 0x97, 0x94, 0x8d, 0x84, 0x79, 0x71, 0x6e, 0x6e, 0x71, 0x76, 0x7d, 0x85, 0x8b, 0x8d, +0x8f, 0x8c, 0x86, 0x7e, 0x77, 0x71, 0x70, 0x73, 0x7a, 0x84, 0x8c, 0x90, 0x91, 0x90, 0x88, 0x7c, +0x70, 0x67, 0x66, 0x6f, 0x7e, 0x8f, 0x9a, 0x9c, 0x93, 0x84, 0x73, 0x66, 0x62, 0x68, 0x74, 0x87, +0x96, 0x9c, 0x9b, 0x92, 0x85, 0x78, 0x6f, 0x6c, 0x6e, 0x74, 0x7c, 0x85, 0x8b, 0x8d, 0x89, 0x82, +0x7c, 0x7a, 0x7c, 0x7d, 0x7e, 0x7d, 0x7a, 0x79, 0x7a, 0x7d, 0x81, 0x84, 0x85, 0x85, 0x83, 0x80, +0x7e, 0x7d, 0x7c, 0x7b, 0x7a, 0x7a, 0x7a, 0x7b, 0x7d, 0x80, 0x83, 0x84, 0x83, 0x80, 0x7d, 0x7e, +0x83, 0x86, 0x86, 0x83, 0x80, 0x7a, 0x74, 0x6e, 0x6b, 0x6f, 0x7c, 0x8c, 0x9a, 0xa0, 0x9b, 0x8c, +0x79, 0x6b, 0x67, 0x69, 0x71, 0x7b, 0x82, 0x87, 0x8a, 0x8b, 0x88, 0x80, 0x77, 0x74, 0x76, 0x7a, +0x81, 0x84, 0x83, 0x7e, 0x79, 0x78, 0x7a, 0x7d, 0x83, 0x87, 0x8a, 0x88, 0x82, 0x7a, 0x75, 0x73, +0x76, 0x7a, 0x7e, 0x82, 0x84, 0x85, 0x83, 0x81, 0x80, 0x7d, 0x7b, 0x78, 0x77, 0x77, 0x7a, 0x7c, +0x80, 0x81, 0x83, 0x86, 0x87, 0x87, 0x85, 0x81, 0x7c, 0x7a, 0x79, 0x7b, 0x7c, 0x7e, 0x81, 0x83, +0x85, 0x87, 0x84, 0x7e, 0x7a, 0x7a, 0x7d, 0x80, 0x81, 0x7d, 0x78, 0x75, 0x76, 0x7c, 0x86, 0x8b, +0x8a, 0x85, 0x7e, 0x7b, 0x7b, 0x7d, 0x7d, 0x7d, 0x7d, 0x80, 0x84, 0x88, 0x89, 0x86, 0x81, 0x7b, +0x78, 0x77, 0x78, 0x7c, 0x80, 0x83, 0x85, 0x85, 0x83, 0x82, 0x7e, 0x7b, 0x7a, 0x7d, 0x82, 0x87, +0x89, 0x88, 0x86, 0x82, 0x7d, 0x7a, 0x78, 0x78, 0x79, 0x7e, 0x83, 0x86, 0x86, 0x85, 0x84, 0x82, +0x7d, 0x7a, 0x76, 0x74, 0x76, 0x7a, 0x80, 0x83, 0x83, 0x82, 0x81, 0x80, 0x82, 0x85, 0x85, 0x82, +0x7d, 0x7a, 0x79, 0x7a, 0x7d, 0x80, 0x82, 0x84, 0x85, 0x83, 0x81, 0x7d, 0x79, 0x77, 0x77, 0x7a, +0x80, 0x86, 0x89, 0x8a, 0x88, 0x84, 0x7e, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, 0x82, 0x85, 0x87, +0x87, 0x83, 0x7d, 0x78, 0x75, 0x75, 0x78, 0x7e, 0x86, 0x8d, 0x90, 0x8d, 0x85, 0x7b, 0x73, 0x6f, +0x70, 0x76, 0x7e, 0x87, 0x8d, 0x8e, 0x8a, 0x82, 0x79, 0x73, 0x70, 0x70, 0x74, 0x7b, 0x84, 0x8b, +0x8f, 0x8d, 0x86, 0x7c, 0x75, 0x72, 0x73, 0x78, 0x7d, 0x83, 0x87, 0x8a, 0x8b, 0x88, 0x83, 0x7b, +0x73, 0x70, 0x70, 0x72, 0x77, 0x7e, 0x85, 0x8c, 0x8f, 0x8f, 0x8a, 0x82, 0x79, 0x71, 0x6e, 0x6f, +0x75, 0x7c, 0x84, 0x89, 0x8b, 0x8b, 0x88, 0x83, 0x7e, 0x7a, 0x7a, 0x7b, 0x7c, 0x7c, 0x7a, 0x78, +0x78, 0x78, 0x7b, 0x80, 0x84, 0x87, 0x8a, 0x8a, 0x89, 0x84, 0x7c, 0x75, 0x70, 0x71, 0x76, 0x7c, +0x84, 0x88, 0x88, 0x86, 0x83, 0x80, 0x7c, 0x7b, 0x7a, 0x7a, 0x7b, 0x7c, 0x7e, 0x82, 0x85, 0x86, +0x85, 0x81, 0x7c, 0x79, 0x77, 0x77, 0x7a, 0x7e, 0x83, 0x88, 0x8a, 0x89, 0x85, 0x7e, 0x79, 0x77, +0x77, 0x7a, 0x7d, 0x7e, 0x81, 0x81, 0x80, 0x80, 0x80, 0x84, 0x88, 0x89, 0x88, 0x83, 0x7a, 0x75, +0x73, 0x73, 0x77, 0x7c, 0x82, 0x87, 0x8a, 0x89, 0x85, 0x7e, 0x79, 0x75, 0x71, 0x72, 0x77, 0x7d, +0x86, 0x8c, 0x90, 0x8e, 0x89, 0x82, 0x79, 0x74, 0x73, 0x75, 0x7a, 0x81, 0x87, 0x8b, 0x8a, 0x85, +0x80, 0x79, 0x75, 0x73, 0x76, 0x7c, 0x82, 0x88, 0x8d, 0x8f, 0x8d, 0x86, 0x7c, 0x73, 0x6d, 0x6d, +0x72, 0x7a, 0x83, 0x8a, 0x90, 0x92, 0x8f, 0x87, 0x7d, 0x75, 0x70, 0x6f, 0x72, 0x77, 0x7d, 0x84, +0x88, 0x89, 0x88, 0x86, 0x84, 0x81, 0x7d, 0x7a, 0x78, 0x77, 0x78, 0x7b, 0x7e, 0x82, 0x84, 0x84, +0x82, 0x81, 0x81, 0x82, 0x83, 0x83, 0x80, 0x7b, 0x77, 0x77, 0x78, 0x7b, 0x80, 0x80, 0x7d, 0x7b, +0x7b, 0x80, 0x86, 0x8c, 0x8d, 0x8b, 0x83, 0x79, 0x72, 0x6e, 0x6f, 0x73, 0x79, 0x7e, 0x86, 0x8d, +0x92, 0x94, 0x8f, 0x87, 0x7d, 0x74, 0x6e, 0x6c, 0x6d, 0x72, 0x7a, 0x83, 0x8a, 0x90, 0x91, 0x8d, +0x86, 0x7d, 0x76, 0x72, 0x72, 0x74, 0x78, 0x7b, 0x7d, 0x82, 0x87, 0x8b, 0x8b, 0x86, 0x7e, 0x78, +0x75, 0x76, 0x79, 0x7b, 0x7e, 0x81, 0x83, 0x83, 0x83, 0x80, 0x7c, 0x7b, 0x7a, 0x7a, 0x7e, 0x83, +0x85, 0x86, 0x85, 0x81, 0x7c, 0x78, 0x75, 0x77, 0x7b, 0x82, 0x87, 0x89, 0x87, 0x81, 0x79, 0x75, +0x75, 0x78, 0x7e, 0x84, 0x88, 0x88, 0x85, 0x83, 0x80, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x80, +0x80, 0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x80, 0x7d, 0x7b, 0x78, 0x78, 0x7a, 0x7e, 0x86, +0x8c, 0x8d, 0x89, 0x81, 0x79, 0x74, 0x72, 0x75, 0x7a, 0x80, 0x84, 0x88, 0x88, 0x86, 0x83, 0x7b, +0x74, 0x71, 0x71, 0x76, 0x80, 0x87, 0x8b, 0x8c, 0x8b, 0x87, 0x80, 0x79, 0x74, 0x72, 0x73, 0x77, +0x7d, 0x83, 0x87, 0x88, 0x85, 0x82, 0x7e, 0x7b, 0x7b, 0x7a, 0x78, 0x79, 0x7d, 0x81, 0x84, 0x85, +0x84, 0x82, 0x7e, 0x7c, 0x7a, 0x79, 0x78, 0x79, 0x7d, 0x81, 0x83, 0x84, 0x82, 0x7d, 0x7b, 0x7a, +0x7c, 0x80, 0x83, 0x84, 0x83, 0x80, 0x7d, 0x7b, 0x7a, 0x7b, 0x7e, 0x82, 0x84, 0x87, 0x88, 0x86, +0x84, 0x7d, 0x78, 0x75, 0x73, 0x75, 0x7a, 0x82, 0x88, 0x8c, 0x8e, 0x8b, 0x85, 0x7d, 0x74, 0x70, +0x6e, 0x70, 0x79, 0x83, 0x8b, 0x8f, 0x8b, 0x86, 0x83, 0x7e, 0x7d, 0x7a, 0x78, 0x76, 0x74, 0x74, +0x77, 0x7d, 0x86, 0x8d, 0x8f, 0x8f, 0x8b, 0x86, 0x7e, 0x75, 0x6e, 0x6a, 0x6a, 0x71, 0x7b, 0x88, +0x92, 0x98, 0x97, 0x8f, 0x83, 0x76, 0x6e, 0x6c, 0x6f, 0x78, 0x82, 0x8a, 0x8f, 0x8e, 0x8a, 0x83, +0x7c, 0x75, 0x72, 0x72, 0x78, 0x81, 0x8a, 0x91, 0x92, 0x8d, 0x84, 0x78, 0x71, 0x6c, 0x6b, 0x70, +0x79, 0x85, 0x8c, 0x90, 0x8e, 0x86, 0x7d, 0x77, 0x74, 0x75, 0x76, 0x78, 0x7c, 0x84, 0x8a, 0x8d, +0x8a, 0x85, 0x7d, 0x76, 0x74, 0x75, 0x77, 0x7a, 0x7e, 0x82, 0x85, 0x85, 0x84, 0x83, 0x82, 0x7d, +0x7a, 0x78, 0x76, 0x77, 0x79, 0x7c, 0x80, 0x81, 0x84, 0x85, 0x82, 0x80, 0x7c, 0x7b, 0x7b, 0x7b, +0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x82, 0x81, 0x7d, 0x79, 0x76, +0x75, 0x78, 0x7b, 0x7d, 0x81, 0x84, 0x86, 0x8a, 0x8c, 0x8c, 0x84, 0x7a, 0x70, 0x6a, 0x6b, 0x70, +0x78, 0x83, 0x8b, 0x91, 0x94, 0x90, 0x88, 0x7d, 0x71, 0x6a, 0x69, 0x6e, 0x77, 0x81, 0x8a, 0x8e, +0x8c, 0x88, 0x84, 0x80, 0x7a, 0x76, 0x75, 0x77, 0x7d, 0x83, 0x86, 0x85, 0x81, 0x7c, 0x7b, 0x7d, +0x82, 0x84, 0x83, 0x81, 0x7c, 0x7a, 0x7a, 0x7c, 0x7c, 0x7d, 0x80, 0x84, 0x88, 0x89, 0x84, 0x7a, +0x73, 0x70, 0x73, 0x78, 0x7e, 0x84, 0x86, 0x87, 0x87, 0x86, 0x83, 0x7e, 0x7a, 0x7a, 0x7b, 0x7c, +0x7b, 0x78, 0x78, 0x78, 0x7b, 0x81, 0x85, 0x87, 0x88, 0x87, 0x85, 0x80, 0x79, 0x75, 0x73, 0x74, +0x77, 0x7b, 0x81, 0x86, 0x88, 0x89, 0x86, 0x81, 0x7b, 0x77, 0x75, 0x77, 0x79, 0x7b, 0x7e, 0x84, +0x89, 0x8c, 0x8c, 0x88, 0x81, 0x79, 0x74, 0x72, 0x73, 0x78, 0x7d, 0x83, 0x88, 0x8a, 0x88, 0x84, +0x80, 0x7a, 0x77, 0x76, 0x79, 0x7c, 0x7d, 0x80, 0x83, 0x86, 0x88, 0x87, 0x85, 0x81, 0x7b, 0x78, +0x75, 0x75, 0x78, 0x7c, 0x82, 0x88, 0x8b, 0x8b, 0x87, 0x7e, 0x76, 0x72, 0x70, 0x72, 0x77, 0x7c, +0x82, 0x86, 0x88, 0x87, 0x83, 0x7c, 0x78, 0x77, 0x78, 0x79, 0x7a, 0x7c, 0x7e, 0x83, 0x88, 0x8c, +0x8b, 0x86, 0x7d, 0x74, 0x71, 0x74, 0x77, 0x7b, 0x80, 0x82, 0x82, 0x83, 0x86, 0x87, 0x85, 0x83, +0x81, 0x80, 0x7e, 0x7c, 0x7b, 0x79, 0x79, 0x7d, 0x82, 0x86, 0x88, 0x87, 0x85, 0x82, 0x7e, 0x7b, +0x78, 0x78, 0x7a, 0x7d, 0x81, 0x84, 0x85, 0x84, 0x82, 0x83, 0x84, 0x84, 0x82, 0x7b, 0x75, 0x71, +0x71, 0x77, 0x80, 0x87, 0x8c, 0x8f, 0x90, 0x8b, 0x83, 0x77, 0x6d, 0x67, 0x67, 0x6c, 0x78, 0x86, +0x91, 0x98, 0x99, 0x94, 0x8a, 0x7b, 0x6e, 0x66, 0x64, 0x6b, 0x76, 0x84, 0x8d, 0x94, 0x96, 0x93, +0x8d, 0x83, 0x78, 0x70, 0x6d, 0x6e, 0x74, 0x7a, 0x82, 0x88, 0x8d, 0x8e, 0x8a, 0x84, 0x7b, 0x77, +0x76, 0x77, 0x78, 0x7a, 0x7d, 0x81, 0x83, 0x84, 0x83, 0x81, 0x82, 0x83, 0x82, 0x80, 0x7d, 0x7b, +0x7b, 0x7b, 0x7c, 0x7e, 0x82, 0x84, 0x85, 0x85, 0x81, 0x7c, 0x79, 0x79, 0x7c, 0x7d, 0x7e, 0x81, +0x83, 0x83, 0x85, 0x84, 0x82, 0x7c, 0x78, 0x79, 0x7c, 0x80, 0x83, 0x83, 0x82, 0x83, 0x83, 0x82, +0x7d, 0x78, 0x74, 0x73, 0x76, 0x7b, 0x80, 0x84, 0x87, 0x89, 0x8a, 0x89, 0x83, 0x7b, 0x76, 0x75, +0x78, 0x7a, 0x7c, 0x7e, 0x81, 0x84, 0x88, 0x8a, 0x8a, 0x85, 0x80, 0x7a, 0x77, 0x76, 0x75, 0x77, +0x7b, 0x83, 0x8a, 0x8e, 0x8c, 0x87, 0x80, 0x79, 0x76, 0x74, 0x73, 0x74, 0x78, 0x7d, 0x84, 0x89, +0x8d, 0x8d, 0x8a, 0x87, 0x81, 0x7a, 0x72, 0x6e, 0x70, 0x76, 0x80, 0x88, 0x8f, 0x91, 0x8e, 0x88, +0x81, 0x77, 0x70, 0x6f, 0x72, 0x78, 0x7e, 0x84, 0x88, 0x8b, 0x8e, 0x8e, 0x8b, 0x81, 0x73, 0x69, +0x63, 0x67, 0x75, 0x84, 0x92, 0x9a, 0x9a, 0x96, 0x8c, 0x80, 0x72, 0x67, 0x62, 0x64, 0x6c, 0x79, +0x88, 0x94, 0x99, 0x98, 0x92, 0x87, 0x7b, 0x70, 0x68, 0x67, 0x6d, 0x76, 0x80, 0x89, 0x8d, 0x8e, +0x8c, 0x8a, 0x86, 0x82, 0x7d, 0x78, 0x75, 0x73, 0x73, 0x74, 0x77, 0x7e, 0x87, 0x8d, 0x8f, 0x8e, +0x89, 0x83, 0x7b, 0x74, 0x71, 0x70, 0x72, 0x78, 0x80, 0x86, 0x88, 0x86, 0x85, 0x84, 0x82, 0x80, +0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7b, 0x7b, 0x7c, 0x7e, 0x83, 0x85, 0x84, 0x83, 0x80, 0x7e, +0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x82, 0x86, 0x88, 0x86, +0x82, 0x7e, 0x7a, 0x79, 0x7a, 0x7b, 0x7d, 0x81, 0x82, 0x82, 0x81, 0x7c, 0x7a, 0x7b, 0x81, 0x87, +0x8a, 0x89, 0x85, 0x7d, 0x78, 0x75, 0x76, 0x79, 0x7d, 0x82, 0x85, 0x89, 0x8b, 0x89, 0x84, 0x7d, +0x78, 0x76, 0x75, 0x77, 0x79, 0x7b, 0x7d, 0x80, 0x85, 0x89, 0x89, 0x88, 0x86, 0x82, 0x7c, 0x78, +0x74, 0x73, 0x75, 0x7a, 0x82, 0x88, 0x8a, 0x8a, 0x88, 0x83, 0x7d, 0x7a, 0x78, 0x77, 0x77, 0x79, +0x7d, 0x83, 0x89, 0x8b, 0x89, 0x84, 0x7c, 0x75, 0x71, 0x71, 0x77, 0x82, 0x8a, 0x8f, 0x8d, 0x86, +0x7d, 0x77, 0x74, 0x75, 0x78, 0x7d, 0x84, 0x87, 0x89, 0x86, 0x82, 0x7d, 0x7b, 0x78, 0x79, 0x7b, +0x7c, 0x7b, 0x7b, 0x7d, 0x7e, 0x81, 0x83, 0x85, 0x85, 0x83, 0x80, 0x7b, 0x78, 0x77, 0x79, 0x79, +0x80, 0x86, 0x84, 0x86, 0x87, 0x81, 0x7c, 0x7a, 0x7b, 0x7e, 0x7c, 0x7e, 0x80, 0x7b, 0x7b, 0x7b, +0x7c, 0x82, 0x82, 0x81, 0x82, 0x82, 0x83, 0x82, 0x7c, 0x7a, 0x78, 0x77, 0x7a, 0x80, 0x83, 0x81, +0x80, 0x7e, 0x7b, 0x7a, 0x7b, 0x7c, 0x7e, 0x7e, 0x7e, 0x81, 0x80, 0x7d, 0x7d, 0x80, 0x81, 0x80, +0x7e, 0x7d, 0x7c, 0x7c, 0x7e, 0x81, 0x81, 0x7d, 0x7b, 0x7b, 0x7d, 0x80, 0x82, 0x83, 0x86, 0x86, +0x85, 0x81, 0x7b, 0x77, 0x72, 0x73, 0x75, 0x7a, 0x80, 0x84, 0x8a, 0x8e, 0x90, 0x8b, 0x81, 0x75, +0x6d, 0x68, 0x69, 0x71, 0x7b, 0x86, 0x8f, 0x91, 0x90, 0x89, 0x7d, 0x72, 0x6c, 0x6e, 0x73, 0x7a, +0x82, 0x87, 0x89, 0x87, 0x85, 0x83, 0x80, 0x7d, 0x7b, 0x7b, 0x7b, 0x7d, 0x80, 0x81, 0x83, 0x84, +0x84, 0x84, 0x84, 0x82, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7d, 0x7d, +0x7e, 0x7d, 0x7d, 0x7c, 0x7d, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7c, 0x7e, 0x81, 0x82, 0x82, 0x81, +0x80, 0x7e, 0x7c, 0x7b, 0x7a, 0x7b, 0x7b, 0x7e, 0x84, 0x87, 0x87, 0x85, 0x82, 0x7e, 0x79, 0x76, +0x75, 0x77, 0x79, 0x7d, 0x83, 0x88, 0x8b, 0x8b, 0x8a, 0x86, 0x7d, 0x75, 0x72, 0x73, 0x76, 0x7c, +0x84, 0x89, 0x8b, 0x87, 0x84, 0x80, 0x7a, 0x75, 0x74, 0x79, 0x7e, 0x83, 0x86, 0x88, 0x86, 0x81, +0x7d, 0x7a, 0x76, 0x75, 0x78, 0x7c, 0x82, 0x86, 0x88, 0x86, 0x81, 0x7e, 0x7c, 0x79, 0x78, 0x7b, +0x7e, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x81, 0x83, 0x82, 0x81, 0x80, 0x7e, 0x7b, 0x77, 0x75, 0x75, +0x77, 0x7d, 0x85, 0x8a, 0x8c, 0x8b, 0x88, 0x82, 0x79, 0x72, 0x6f, 0x71, 0x75, 0x7d, 0x86, 0x8a, +0x8c, 0x8d, 0x8b, 0x86, 0x7e, 0x77, 0x72, 0x70, 0x72, 0x79, 0x81, 0x85, 0x89, 0x8c, 0x8c, 0x89, +0x86, 0x82, 0x7c, 0x77, 0x73, 0x73, 0x74, 0x78, 0x80, 0x86, 0x88, 0x87, 0x85, 0x82, 0x7d, 0x7a, +0x79, 0x79, 0x7a, 0x7e, 0x84, 0x86, 0x85, 0x82, 0x80, 0x80, 0x81, 0x82, 0x80, 0x7c, 0x79, 0x7a, +0x7e, 0x82, 0x84, 0x85, 0x86, 0x85, 0x84, 0x81, 0x7d, 0x78, 0x75, 0x78, 0x7e, 0x84, 0x88, 0x8b, +0x8c, 0x88, 0x83, 0x7e, 0x77, 0x72, 0x72, 0x74, 0x78, 0x81, 0x88, 0x8b, 0x8c, 0x8b, 0x86, 0x82, +0x7d, 0x77, 0x73, 0x71, 0x70, 0x72, 0x79, 0x82, 0x8c, 0x93, 0x94, 0x90, 0x89, 0x7d, 0x75, 0x70, +0x6e, 0x70, 0x74, 0x7a, 0x84, 0x8d, 0x92, 0x93, 0x8f, 0x88, 0x7e, 0x75, 0x6f, 0x6e, 0x72, 0x79, +0x82, 0x89, 0x8e, 0x8f, 0x8c, 0x84, 0x7b, 0x74, 0x70, 0x6f, 0x74, 0x7a, 0x82, 0x88, 0x8b, 0x89, +0x85, 0x81, 0x7b, 0x76, 0x73, 0x72, 0x74, 0x79, 0x80, 0x86, 0x8b, 0x8d, 0x8b, 0x89, 0x83, 0x7b, +0x75, 0x72, 0x71, 0x73, 0x78, 0x80, 0x87, 0x8d, 0x91, 0x90, 0x8c, 0x86, 0x7b, 0x72, 0x6f, 0x6f, +0x72, 0x76, 0x7c, 0x82, 0x86, 0x88, 0x88, 0x86, 0x84, 0x82, 0x80, 0x7c, 0x78, 0x76, 0x74, 0x75, +0x79, 0x7d, 0x83, 0x87, 0x8b, 0x8b, 0x88, 0x84, 0x7d, 0x75, 0x70, 0x6f, 0x71, 0x78, 0x80, 0x88, +0x8d, 0x8d, 0x8b, 0x86, 0x82, 0x7c, 0x7a, 0x7a, 0x79, 0x79, 0x7a, 0x7a, 0x7d, 0x84, 0x89, 0x8b, +0x8c, 0x89, 0x84, 0x7d, 0x77, 0x73, 0x72, 0x74, 0x78, 0x7c, 0x82, 0x87, 0x8c, 0x90, 0x91, 0x8d, +0x85, 0x79, 0x6f, 0x69, 0x69, 0x6d, 0x75, 0x80, 0x8a, 0x92, 0x97, 0x95, 0x8d, 0x82, 0x75, 0x6e, +0x6c, 0x6e, 0x75, 0x7c, 0x84, 0x89, 0x8d, 0x8f, 0x8c, 0x85, 0x7c, 0x73, 0x6d, 0x6d, 0x72, 0x7b, +0x86, 0x8f, 0x92, 0x91, 0x8c, 0x84, 0x79, 0x71, 0x6f, 0x70, 0x75, 0x7d, 0x86, 0x8b, 0x8c, 0x88, +0x82, 0x7d, 0x7a, 0x78, 0x77, 0x76, 0x77, 0x7b, 0x80, 0x83, 0x83, 0x82, 0x81, 0x82, 0x83, 0x82, +0x83, 0x82, 0x7e, 0x7b, 0x7a, 0x79, 0x7a, 0x7b, 0x7e, 0x82, 0x86, 0x89, 0x89, 0x85, 0x80, 0x78, +0x74, 0x73, 0x75, 0x79, 0x7e, 0x84, 0x88, 0x8b, 0x8b, 0x89, 0x83, 0x7b, 0x76, 0x73, 0x73, 0x76, +0x7b, 0x81, 0x84, 0x87, 0x88, 0x89, 0x87, 0x83, 0x7e, 0x7a, 0x77, 0x78, 0x7a, 0x7d, 0x80, 0x82, +0x82, 0x82, 0x81, 0x7f, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, +0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x7d, +0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x78, 0x79, 0x7a, 0x7b, 0x7a, 0x79, 0x78, +0x78, 0x79, 0x7a, 0x7a, 0x78, 0x77, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7e, 0x7c, 0x7b, 0x7b, +0x7d, 0x81, 0x83, 0x85, 0x85, 0x84, 0x83, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x83, +0x84, 0x85, 0x85, 0x84, 0x84, 0x84, 0x84, 0x85, 0x87, 0x87, 0x85, 0x80, 0x75, 0x77, 0x80, 0x85, +0x88, 0x87, 0x85, 0x82, 0x7e, 0x7e, 0x7e, 0x81, 0x84, 0x86, 0x84, 0x83, 0x85, 0x88, 0x89, 0x8a, +0x8a, 0x87, 0x81, 0x7a, 0x78, 0x77, 0x77, 0x79, 0x79, 0x75, 0x70, 0x6d, 0x6b, 0x6f, 0x73, 0x77, +0x79, 0x77, 0x75, 0x74, 0x71, 0x70, 0x71, 0x7a, 0x83, 0x7d, 0x76, 0x76, 0x7c, 0x7d, 0x7c, 0x7a, +0x77, 0x75, 0x72, 0x77, 0x7a, 0x83, 0x8b, 0x8a, 0x8b, 0x87, 0x85, 0x87, 0x8c, 0x94, 0x9e, 0xa8, +0xac, 0xa8, 0xa3, 0x9d, 0x98, 0x92, 0x89, 0x87, 0x86, 0x7e, 0x79, 0x7e, 0x81, 0x7d, 0x72, 0x6a, +0x67, 0x61, 0x66, 0x6c, 0x70, 0x74, 0x71, 0x6a, 0x67, 0x69, 0x6a, 0x6c, 0x6e, 0x71, 0x70, 0x6b, +0x68, 0x69, 0x6b, 0x6e, 0x6f, 0x6f, 0x6a, 0x64, 0x61, 0x5e, 0x6c, 0x7a, 0x82, 0x84, 0x86, 0x89, +0x8a, 0x8e, 0x97, 0x9f, 0xa6, 0xa4, 0xa5, 0xa7, 0xa3, 0x9d, 0xa0, 0xa2, 0xa3, 0xb1, 0xb1, 0xab, +0xa8, 0xa4, 0xa0, 0x9a, 0x93, 0x8a, 0x83, 0x7e, 0x76, 0x7b, 0x86, 0x8c, 0x8b, 0x83, 0x7d, 0x7d, +0x7e, 0x82, 0x86, 0x89, 0x85, 0x7d, 0x7e, 0x7c, 0x79, 0x7c, 0x78, 0x71, 0x6f, 0x69, 0x68, 0x66, +0x62, 0x63, 0x63, 0x5f, 0x5a, 0x4c, 0x49, 0x5e, 0x64, 0x6c, 0x74, 0x74, 0x6d, 0x6e, 0x76, 0x81, +0x89, 0x8e, 0x90, 0x8e, 0x88, 0x87, 0x86, 0x86, 0x88, 0x86, 0x7b, 0x7e, 0x84, 0x8a, 0x92, 0x99, +0xa2, 0xa5, 0x9c, 0x91, 0x88, 0x7c, 0x7e, 0x81, 0x73, 0x70, 0x69, 0x61, 0x5e, 0x5c, 0x58, 0x5e, +0x5b, 0x5f, 0x67, 0x6a, 0x71, 0x76, 0x83, 0x8a, 0x8d, 0x8a, 0x81, 0x84, 0x89, 0x8c, 0x90, 0x8f, +0x8d, 0x85, 0x79, 0x75, 0x70, 0x72, 0x7e, 0x70, 0x68, 0x6d, 0x6e, 0x72, 0x7c, 0x87, 0x8b, 0x8a, +0x87, 0x7d, 0x72, 0x78, 0x82, 0x8a, 0x8d, 0x86, 0x77, 0x69, 0x67, 0x7a, 0x8c, 0x92, 0x98, 0xa3, +0xa2, 0x97, 0x89, 0x80, 0x7b, 0x88, 0x95, 0x8e, 0x92, 0x96, 0x98, 0x9b, 0x9c, 0x9a, 0x9e, 0x9b, +0x95, 0x93, 0x94, 0x94, 0x96, 0x93, 0x8c, 0x83, 0x78, 0x6d, 0x6f, 0x72, 0x6d, 0x68, 0x67, 0x66, +0x63, 0x5f, 0x59, 0x5a, 0x63, 0x6b, 0x67, 0x68, 0x70, 0x7a, 0x7a, 0x7c, 0x7a, 0x79, 0x7b, 0x7a, +0x76, 0x6c, 0x68, 0x70, 0x6a, 0x67, 0x6e, 0x74, 0x71, 0x78, 0x8e, 0x91, 0x87, 0x86, 0x8d, 0x8c, +0x84, 0x7b, 0x7e, 0x80, 0x72, 0x5f, 0x63, 0x71, 0x7e, 0x85, 0x88, 0x83, 0x74, 0x72, 0x70, 0x74, +0x82, 0x8d, 0x8f, 0x89, 0x82, 0x7b, 0x7a, 0x80, 0x88, 0x95, 0x96, 0x90, 0x90, 0x91, 0x8d, 0x8a, +0x8c, 0x8b, 0x8f, 0x93, 0x90, 0x98, 0xa9, 0xa6, 0x9a, 0x8f, 0x89, 0x83, 0x74, 0x6a, 0x68, 0x6e, +0x7a, 0x7a, 0x76, 0x6c, 0x67, 0x80, 0x88, 0x80, 0x83, 0x8d, 0x91, 0x91, 0x8d, 0x8b, 0x89, 0x8b, +0x8b, 0x83, 0x7a, 0x72, 0x6c, 0x76, 0x7c, 0x7b, 0x81, 0x87, 0x86, 0x89, 0x8e, 0x94, 0xa2, 0xb7, +0xb1, 0x97, 0x86, 0x81, 0x8a, 0x82, 0x7a, 0x80, 0x7d, 0x77, 0x78, 0x6d, 0x66, 0x6e, 0x75, 0x7b, +0x6a, 0x5c, 0x5d, 0x69, 0x79, 0x80, 0x7b, 0x77, 0x77, 0x76, 0x73, 0x74, 0x72, 0x77, 0x7a, 0x72, +0x63, 0x60, 0x62, 0x64, 0x6b, 0x6d, 0x69, 0x68, 0x6d, 0x82, 0x80, 0x75, 0x6e, 0x74, 0x7a, 0x67, +0x66, 0x6d, 0x67, 0x74, 0x8d, 0x8f, 0x8d, 0x8e, 0x89, 0x84, 0x78, 0x73, 0x78, 0x87, 0x85, 0x77, +0x74, 0x76, 0x76, 0x7c, 0x83, 0x7a, 0x71, 0x70, 0x72, 0x73, 0x78, 0x83, 0x9d, 0xa6, 0x91, 0x86, +0x86, 0x87, 0x9e, 0xad, 0xa6, 0xa2, 0xa2, 0xa0, 0x95, 0x90, 0x8d, 0x81, 0x7d, 0x94, 0x90, 0x83, +0x8a, 0x94, 0x9f, 0x9c, 0x88, 0x7d, 0x8c, 0x8f, 0x83, 0x89, 0x93, 0x8a, 0x7d, 0x73, 0x72, 0x78, +0x70, 0x6b, 0x75, 0x72, 0x6f, 0x71, 0x79, 0x83, 0x8a, 0x82, 0x91, 0x9a, 0x82, 0x6d, 0x63, 0x70, +0x77, 0x6a, 0x6b, 0x6a, 0x69, 0x71, 0x72, 0x6c, 0x78, 0x89, 0x88, 0x7b, 0x74, 0x6e, 0x6a, 0x6a, +0x80, 0x95, 0x8a, 0x7a, 0x6e, 0x5f, 0x5b, 0x64, 0x65, 0x65, 0x69, 0x6b, 0x67, 0x68, 0x6f, 0x78, +0x82, 0x86, 0x7d, 0x85, 0x89, 0x79, 0x76, 0x82, 0x79, 0x70, 0x64, 0x5e, 0x61, 0x6b, 0x73, 0x65, +0x6e, 0x85, 0x87, 0x87, 0x88, 0x8a, 0x8b, 0x8d, 0x99, 0xac, 0xbc, 0xba, 0xaf, 0xa4, 0x9d, 0xa0, +0x9a, 0x7e, 0x75, 0x7c, 0x77, 0x81, 0x9b, 0x9d, 0x95, 0x8b, 0x89, 0x85, 0x8f, 0x96, 0x86, 0x80, +0x7e, 0x77, 0x6b, 0x68, 0x6b, 0x65, 0x61, 0x70, 0x7b, 0x83, 0x8e, 0x90, 0x91, 0x8e, 0x85, 0x7d, +0x7a, 0x7c, 0x82, 0x8e, 0xa8, 0x9c, 0x91, 0x9b, 0x93, 0x88, 0x7b, 0x78, 0x74, 0x68, 0x74, 0x74, +0x63, 0x5d, 0x68, 0x69, 0x6a, 0x82, 0x86, 0x78, 0x77, 0x77, 0x77, 0x73, 0x70, 0x7b, 0x85, 0x83, +0x81, 0x87, 0x98, 0xac, 0xab, 0xad, 0xa0, 0x98, 0x99, 0x96, 0x97, 0x87, 0x71, 0x77, 0x6f, 0x6c, +0x75, 0x7c, 0x79, 0x71, 0x7e, 0x84, 0x83, 0x82, 0x81, 0x7e, 0x7a, 0x6f, 0x5e, 0x61, 0x68, 0x5f, +0x5f, 0x73, 0x76, 0x5f, 0x48, 0x4a, 0x53, 0x53, 0x55, 0x56, 0x48, 0x48, 0x62, 0x67, 0x62, 0x61, +0x64, 0x68, 0x7d, 0x91, 0x87, 0x81, 0x95, 0xa3, 0x9d, 0x83, 0x6d, 0x64, 0x62, 0x65, 0x6e, 0x71, +0x6e, 0x86, 0x8c, 0x8f, 0x8f, 0x89, 0x91, 0x9a, 0x92, 0x80, 0x73, 0x79, 0x78, 0x73, 0x82, 0x99, +0xa7, 0xab, 0xa3, 0x95, 0xa6, 0xbc, 0xbe, 0xb9, 0xb3, 0xae, 0xab, 0xa4, 0xa6, 0xa7, 0xae, 0xb4, +0xc5, 0xc8, 0xb6, 0xb3, 0xb6, 0xb1, 0xae, 0x9b, 0x7a, 0x73, 0x79, 0x83, 0x86, 0x82, 0x78, 0x81, +0x86, 0x7d, 0x84, 0x8c, 0x88, 0x77, 0x6f, 0x65, 0x59, 0x57, 0x5a, 0x5c, 0x68, 0x83, 0x8a, 0x7a, +0x68, 0x5f, 0x59, 0x57, 0x60, 0x6b, 0x6c, 0x5c, 0x4c, 0x54, 0x4d, 0x41, 0x3f, 0x40, 0x55, 0x6d, +0x68, 0x6f, 0x76, 0x78, 0x79, 0x73, 0x6a, 0x74, 0x80, 0x7e, 0x7e, 0x84, 0x85, 0x84, 0x78, 0x78, +0x81, 0x84, 0x83, 0x7e, 0x71, 0x62, 0x5c, 0x64, 0x6c, 0x7b, 0x8b, 0x90, 0x94, 0xa3, 0x9e, 0x98, +0x99, 0x93, 0x95, 0x99, 0x93, 0x89, 0x92, 0x99, 0x9b, 0x90, 0x8f, 0xa1, 0xa0, 0xa3, 0xa1, 0xa2, +0xaf, 0xb5, 0xa8, 0x99, 0x97, 0x8a, 0x7a, 0x73, 0x7a, 0x83, 0x83, 0x88, 0x88, 0x79, 0x70, 0x83, +0x9e, 0x9a, 0x8a, 0x7d, 0x79, 0x6b, 0x65, 0x78, 0x78, 0x79, 0x73, 0x62, 0x5b, 0x5d, 0x5f, 0x6b, +0x6e, 0x6b, 0x68, 0x67, 0x64, 0x64, 0x64, 0x66, 0x62, 0x77, 0x94, 0x8b, 0x84, 0x83, 0x87, 0x84, +0x72, 0x66, 0x73, 0x7e, 0x81, 0x8b, 0x7c, 0x68, 0x70, 0x88, 0x92, 0x8d, 0x8c, 0x8a, 0x8a, 0x80, +0x73, 0x72, 0x6c, 0x5a, 0x4d, 0x4f, 0x66, 0x6f, 0x72, 0x80, 0x8c, 0x8e, 0x86, 0x86, 0x92, 0x91, +0x8c, 0x93, 0x98, 0x94, 0x91, 0x88, 0x85, 0x87, 0x6c, 0x5a, 0x69, 0x74, 0x79, 0x7c, 0x6e, 0x67, +0x61, 0x64, 0x6d, 0x7b, 0x8b, 0x8e, 0x88, 0x9b, 0xa4, 0xa3, 0xa4, 0xac, 0xad, 0xa0, 0x94, 0x9f, +0xa1, 0x99, 0x9f, 0x9d, 0xa3, 0xad, 0xa5, 0x90, 0x9c, 0xae, 0xb3, 0xb5, 0x9d, 0x97, 0x94, 0x84, +0x6d, 0x5a, 0x67, 0x79, 0x83, 0x90, 0x9a, 0x91, 0x7b, 0x6c, 0x83, 0x97, 0x93, 0xa0, 0xaf, 0xa6, +0xa1, 0x9a, 0x90, 0x8d, 0x86, 0x87, 0x6e, 0x5a, 0x60, 0x61, 0x58, 0x59, 0x6b, 0x6a, 0x57, 0x46, +0x49, 0x56, 0x62, 0x7a, 0x86, 0x79, 0x71, 0x66, 0x5d, 0x54, 0x43, 0x3e, 0x46, 0x46, 0x4b, 0x43, +0x39, 0x3d, 0x46, 0x62, 0x68, 0x5d, 0x5b, 0x6f, 0x67, 0x4f, 0x48, 0x57, 0x68, 0x6b, 0x72, 0x82, +0x7a, 0x6d, 0x68, 0x80, 0x97, 0x94, 0x88, 0x81, 0x89, 0x86, 0x89, 0x9a, 0xb7, 0xbb, 0xae, 0xa5, +0x91, 0x8b, 0x84, 0x78, 0x86, 0x8f, 0x90, 0x89, 0x72, 0x68, 0x65, 0x60, 0x68, 0x7b, 0x90, 0x9c, +0xa1, 0x9c, 0x92, 0x8d, 0x92, 0x9d, 0x9e, 0x94, 0x8d, 0x81, 0x78, 0x92, 0xaf, 0xc4, 0xc1, 0xaa, +0x98, 0x9b, 0xa3, 0xa5, 0x99, 0xa7, 0xa2, 0x91, 0x8b, 0x84, 0x7d, 0x70, 0x6b, 0x6d, 0x72, 0x70, +0x7b, 0x85, 0x7b, 0x6e, 0x64, 0x69, 0x6d, 0x75, 0x77, 0x78, 0x73, 0x74, 0x94, 0xa5, 0xa2, 0x94, +0x81, 0x76, 0x67, 0x55, 0x5c, 0x70, 0x7a, 0x7a, 0x8a, 0x9d, 0xa2, 0xa2, 0x98, 0x9b, 0x9c, 0x9a, +0x99, 0x90, 0x8c, 0x83, 0x6e, 0x6a, 0x75, 0x79, 0x75, 0x6a, 0x6d, 0x71, 0x68, 0x55, 0x5c, 0x80, +0x8d, 0x84, 0x78, 0x64, 0x66, 0x74, 0x81, 0x8d, 0x9a, 0xa3, 0xa8, 0xa1, 0x9f, 0x8c, 0x81, 0x89, +0x91, 0x99, 0x99, 0x8a, 0x8e, 0x9c, 0xb4, 0xb4, 0xb1, 0xb4, 0x9b, 0x77, 0x5e, 0x5c, 0x60, 0x5b, +0x53, 0x4c, 0x42, 0x3b, 0x37, 0x33, 0x2f, 0x41, 0x61, 0x78, 0x83, 0x76, 0x6c, 0x75, 0x89, 0x96, +0x95, 0x88, 0x84, 0x84, 0x85, 0x7e, 0x77, 0x8f, 0xad, 0xb4, 0xab, 0x91, 0x7e, 0x79, 0x84, 0x89, +0x70, 0x5c, 0x68, 0x6b, 0x6e, 0x6f, 0x6b, 0x66, 0x64, 0x6b, 0x6f, 0x74, 0x76, 0x6f, 0x6b, 0x69, +0x74, 0x89, 0x9d, 0x97, 0x7e, 0x76, 0x77, 0x80, 0x87, 0x83, 0x76, 0x6f, 0x6f, 0x68, 0x56, 0x4c, +0x50, 0x67, 0x75, 0x7b, 0x80, 0x8b, 0x97, 0xb7, 0xc5, 0x9b, 0x77, 0x6f, 0x74, 0x6c, 0x4d, 0x37, +0x3f, 0x5f, 0x6d, 0x78, 0x79, 0x65, 0x50, 0x3b, 0x39, 0x5c, 0x81, 0x84, 0x75, 0x71, 0x6e, 0x6a, +0x73, 0x79, 0x8e, 0x90, 0x90, 0xa0, 0xa6, 0x9b, 0x8a, 0x80, 0x98, 0xb4, 0xb5, 0xa8, 0xa7, 0xc4, +0xda, 0xd4, 0xc6, 0xb8, 0xa9, 0xa9, 0x8b, 0x6e, 0x6c, 0x6e, 0x76, 0x78, 0x7e, 0x84, 0x80, 0x79, +0x7b, 0x8c, 0x9f, 0xa3, 0xa8, 0xa9, 0x99, 0x8f, 0x96, 0xa5, 0xab, 0xad, 0xa2, 0x9f, 0xa4, 0x93, +0x8a, 0x8c, 0x90, 0x93, 0x91, 0x88, 0x7b, 0x77, 0x86, 0x96, 0x83, 0x6e, 0x65, 0x64, 0x6d, 0x74, +0x74, 0x70, 0x81, 0x97, 0x90, 0x84, 0x79, 0x78, 0x6e, 0x57, 0x4a, 0x5a, 0x81, 0x92, 0x8d, 0x8a, +0x83, 0x7b, 0x79, 0x77, 0x71, 0x74, 0x7a, 0x72, 0x5b, 0x59, 0x66, 0x66, 0x67, 0x76, 0x8a, 0x86, +0x85, 0xa1, 0xbb, 0xa4, 0x7d, 0x68, 0x5d, 0x53, 0x50, 0x4d, 0x5b, 0x75, 0x80, 0x87, 0x8f, 0x93, +0x94, 0x79, 0x4d, 0x3c, 0x4c, 0x5f, 0x64, 0x59, 0x62, 0x62, 0x5b, 0x67, 0x83, 0x95, 0x80, 0x6a, +0x6d, 0x77, 0x6d, 0x69, 0x7b, 0x7d, 0x7c, 0x8a, 0x8e, 0xad, 0xd1, 0xcd, 0xaf, 0x9b, 0x86, 0x70, +0x4f, 0x3b, 0x38, 0x2e, 0x21, 0x16, 0x2a, 0x49, 0x56, 0x57, 0x59, 0x64, 0x63, 0x71, 0x9f, 0xab, +0xac, 0xa0, 0x95, 0x99, 0x9b, 0xa0, 0xa4, 0xa9, 0xb4, 0xb8, 0xc1, 0xc6, 0xbc, 0xb1, 0xa3, 0x8b, +0x86, 0x96, 0xb1, 0xc2, 0xb3, 0xa8, 0x9e, 0x94, 0x86, 0x7c, 0x8f, 0x8b, 0x87, 0x89, 0x8d, 0x96, +0x9b, 0x93, 0x75, 0x5a, 0x4d, 0x5e, 0x82, 0xa0, 0xae, 0xb2, 0xa1, 0x91, 0x95, 0x86, 0x6a, 0x5f, +0x5a, 0x5e, 0x56, 0x53, 0x6e, 0x80, 0x8d, 0x95, 0x9d, 0x9f, 0x9e, 0xb8, 0xbc, 0xaf, 0xb0, 0xa7, +0x9b, 0x84, 0x6f, 0x67, 0x6a, 0x68, 0x64, 0x64, 0x67, 0x75, 0x78, 0x63, 0x43, 0x2b, 0x27, 0x27, +0x37, 0x3b, 0x40, 0x54, 0x5a, 0x5b, 0x5e, 0x65, 0x5c, 0x60, 0x6f, 0x6c, 0x70, 0x75, 0x77, 0x75, +0x73, 0x6d, 0x71, 0x8a, 0xac, 0xaf, 0xa6, 0xa2, 0x93, 0x83, 0x6b, 0x4f, 0x46, 0x4f, 0x57, 0x5b, +0x68, 0x86, 0xa3, 0xac, 0xad, 0xa6, 0x9c, 0x99, 0xa3, 0xac, 0xb9, 0xb6, 0xa8, 0x95, 0x82, 0x7c, +0x77, 0x84, 0x91, 0x91, 0x8e, 0x91, 0x9e, 0xaf, 0xa8, 0x90, 0x79, 0x75, 0x85, 0x96, 0x7e, 0x7c, +0x88, 0x89, 0x84, 0x82, 0x92, 0x88, 0x7b, 0x74, 0x6a, 0x6a, 0x68, 0x73, 0x74, 0x69, 0x62, 0x65, +0x6f, 0x6e, 0x71, 0x7b, 0x81, 0x7a, 0x74, 0x6e, 0x59, 0x3e, 0x39, 0x37, 0x2c, 0x2e, 0x4c, 0x68, +0x83, 0x93, 0x9c, 0x94, 0x98, 0xb7, 0xac, 0x9f, 0x9d, 0x97, 0x91, 0x77, 0x6d, 0x7d, 0x8c, 0x91, +0x95, 0x9b, 0xa8, 0xb4, 0xb7, 0xa0, 0x81, 0x5e, 0x4c, 0x5a, 0x72, 0x74, 0x84, 0x8f, 0x91, 0x92, +0x85, 0x82, 0x6f, 0x6d, 0x7d, 0x84, 0x93, 0x9f, 0xa5, 0xa2, 0xa4, 0xa5, 0xac, 0xbd, 0xc7, 0xc4, +0xbe, 0xb7, 0xc2, 0xb4, 0x88, 0x65, 0x55, 0x4f, 0x3e, 0x34, 0x2a, 0x34, 0x4d, 0x57, 0x5c, 0x6e, +0x71, 0x6e, 0x89, 0x92, 0x97, 0xa2, 0x9a, 0x96, 0xa4, 0xa3, 0x98, 0xa1, 0xa0, 0x96, 0x91, 0x9b, +0xae, 0xb0, 0xa2, 0x97, 0x81, 0x7a, 0x8e, 0x8b, 0x79, 0x79, 0x90, 0xa5, 0xa0, 0xa9, 0xb9, 0xb5, +0xae, 0xa6, 0x8e, 0x7e, 0x84, 0x83, 0x70, 0x60, 0x5c, 0x67, 0x80, 0x80, 0x7a, 0x80, 0x88, 0x8b, +0x71, 0x54, 0x3c, 0x1b, 0x1b, 0x2e, 0x42, 0x53, 0x57, 0x60, 0x5f, 0x57, 0x56, 0x55, 0x53, 0x65, +0x62, 0x4c, 0x53, 0x5f, 0x53, 0x3b, 0x36, 0x42, 0x54, 0x4c, 0x3a, 0x36, 0x45, 0x6a, 0x7b, 0x6d, +0x59, 0x3c, 0x37, 0x4e, 0x51, 0x52, 0x5c, 0x66, 0x72, 0x80, 0x97, 0x95, 0x82, 0x7c, 0x82, 0x82, +0x82, 0x8c, 0x95, 0x96, 0x98, 0xa7, 0xbb, 0xd5, 0xce, 0xb1, 0x9a, 0x9c, 0xbc, 0xc3, 0xb6, 0xac, +0x97, 0x90, 0x89, 0x80, 0x7c, 0x7a, 0x87, 0x99, 0xa4, 0x9f, 0x9b, 0xaf, 0xb1, 0xa9, 0xa4, 0xad, +0xb2, 0x9c, 0x84, 0x81, 0x7c, 0x7d, 0x84, 0x8d, 0x9f, 0xab, 0xbd, 0xcd, 0xbd, 0x9f, 0x86, 0x7a, +0x8a, 0x87, 0x7e, 0x80, 0x81, 0x8c, 0x94, 0x98, 0x95, 0x8b, 0x88, 0x8a, 0x8e, 0x8e, 0x99, 0x9a, +0x91, 0x8e, 0x86, 0x85, 0x92, 0x89, 0x7c, 0x79, 0x89, 0xa3, 0x9f, 0x7e, 0x64, 0x4b, 0x3a, 0x35, +0x34, 0x3e, 0x47, 0x55, 0x69, 0x83, 0x97, 0xa1, 0xab, 0xac, 0x90, 0x75, 0x70, 0x78, 0x7e, 0x7e, +0x80, 0x86, 0x8e, 0x82, 0x67, 0x53, 0x47, 0x44, 0x57, 0x6b, 0x6f, 0x63, 0x4f, 0x52, 0x59, 0x55, +0x52, 0x57, 0x59, 0x68, 0x73, 0x7e, 0x84, 0x80, 0x82, 0x77, 0x74, 0x89, 0x95, 0x8f, 0x93, 0x97, +0xa1, 0xbc, 0xbd, 0xa8, 0x9d, 0x99, 0x9b, 0xab, 0xac, 0xa0, 0x86, 0x75, 0x7a, 0x76, 0x5e, 0x5e, +0x6a, 0x5f, 0x61, 0x6a, 0x61, 0x55, 0x5d, 0x66, 0x66, 0x69, 0x72, 0x7e, 0x80, 0x76, 0x76, 0x7d, +0x82, 0x8c, 0x8a, 0x9b, 0xa4, 0xa8, 0xb2, 0xa8, 0x9c, 0x98, 0x9e, 0x93, 0x83, 0x78, 0x7c, 0x76, +0x80, 0xa2, 0xaa, 0xa0, 0x95, 0x91, 0x7d, 0x6e, 0x73, 0x7e, 0x83, 0x80, 0x78, 0x80, 0x88, 0x7d, +0x6a, 0x5e, 0x50, 0x4c, 0x62, 0x71, 0x6c, 0x5e, 0x47, 0x42, 0x45, 0x45, 0x45, 0x4e, 0x56, 0x67, +0x83, 0x98, 0x9c, 0x90, 0x7a, 0x6f, 0x73, 0x7a, 0x74, 0x74, 0x8a, 0x95, 0x92, 0x87, 0x87, 0x79, +0x71, 0x75, 0x77, 0x78, 0x72, 0x62, 0x54, 0x57, 0x5e, 0x60, 0x5f, 0x66, 0x69, 0x6c, 0x66, 0x68, +0x69, 0x64, 0x6e, 0x7b, 0x87, 0x8d, 0x99, 0xa8, 0xa9, 0xab, 0xaf, 0xc0, 0xc2, 0xb5, 0xb7, 0xbf, +0xb3, 0xa8, 0xac, 0xb8, 0xb2, 0x99, 0x83, 0x86, 0x8e, 0x99, 0xa6, 0xaa, 0xae, 0xb4, 0xb7, 0xb5, +0xb4, 0xaa, 0x9b, 0x94, 0x8f, 0x90, 0x94, 0x91, 0x88, 0x8d, 0x8f, 0x80, 0x6c, 0x68, 0x65, 0x6a, +0x7c, 0x81, 0x7d, 0x75, 0x76, 0x6f, 0x62, 0x5b, 0x5b, 0x63, 0x6b, 0x7c, 0x9c, 0x99, 0x76, 0x5b, +0x49, 0x53, 0x6d, 0x71, 0x72, 0x78, 0x7a, 0x84, 0x90, 0x8b, 0x89, 0x84, 0x78, 0x67, 0x61, 0x63, +0x5a, 0x48, 0x46, 0x47, 0x40, 0x41, 0x48, 0x56, 0x5b, 0x56, 0x55, 0x62, 0x6d, 0x77, 0x74, 0x6d, +0x75, 0x88, 0x90, 0x8e, 0x8d, 0x90, 0x8c, 0x7d, 0x75, 0x81, 0x8f, 0x8e, 0x86, 0x80, 0x74, 0x7a, +0x82, 0x82, 0x72, 0x72, 0x77, 0x71, 0x6a, 0x66, 0x73, 0x73, 0x6f, 0x7b, 0x87, 0x85, 0x7e, 0x85, +0x98, 0xa0, 0xa8, 0xb1, 0xc0, 0xce, 0xc6, 0xab, 0x92, 0x91, 0x97, 0x9b, 0x9d, 0x9a, 0x9b, 0x99, +0x86, 0x6c, 0x6a, 0x65, 0x6c, 0x7d, 0x8b, 0x9d, 0x8c, 0x73, 0x6c, 0x6b, 0x6a, 0x71, 0x78, 0x74, +0x77, 0x8a, 0x9a, 0xaa, 0xbf, 0xbc, 0xa5, 0x9f, 0xa3, 0xa3, 0x9e, 0x9f, 0xa0, 0xa5, 0xb3, 0xa9, +0x9b, 0x97, 0x91, 0x96, 0x93, 0x8e, 0x84, 0x83, 0x88, 0x84, 0x7c, 0x7a, 0x7e, 0x8c, 0x8a, 0x87, +0x77, 0x6b, 0x73, 0x78, 0x84, 0x90, 0x83, 0x5f, 0x45, 0x40, 0x44, 0x3d, 0x3d, 0x4b, 0x44, 0x39, +0x3b, 0x4a, 0x5d, 0x60, 0x64, 0x6b, 0x71, 0x81, 0x7e, 0x70, 0x61, 0x68, 0x73, 0x6e, 0x74, 0x78, +0x7e, 0x7e, 0x6f, 0x5e, 0x53, 0x56, 0x65, 0x6c, 0x71, 0x69, 0x63, 0x6e, 0x6b, 0x64, 0x5c, 0x58, +0x5c, 0x5f, 0x77, 0x91, 0x77, 0x5e, 0x73, 0x7d, 0x74, 0x6b, 0x80, 0x93, 0x95, 0x9c, 0xa8, 0xc0, +0xc8, 0xb1, 0xa6, 0xaa, 0xb8, 0xb7, 0xad, 0x9d, 0x8b, 0x9e, 0xa5, 0x93, 0x79, 0x66, 0x65, 0x71, +0x82, 0x8c, 0x7e, 0x6a, 0x75, 0x83, 0x89, 0x86, 0x84, 0x77, 0x5a, 0x5a, 0x75, 0x8d, 0x99, 0xa4, +0xac, 0xa0, 0x8c, 0x88, 0x87, 0x84, 0x79, 0x6a, 0x81, 0x96, 0x8d, 0x76, 0x73, 0x8a, 0x8c, 0x89, +0x95, 0x8c, 0x82, 0x8b, 0x88, 0x75, 0x6e, 0x80, 0x93, 0x91, 0x91, 0x8e, 0x8b, 0x89, 0x83, 0x76, +0x62, 0x53, 0x47, 0x3e, 0x3c, 0x48, 0x53, 0x4c, 0x52, 0x55, 0x44, 0x50, 0x67, 0x7d, 0x90, 0x8e, +0x78, 0x7e, 0xa0, 0xa4, 0x8f, 0x76, 0x7d, 0x82, 0x80, 0x8f, 0x9c, 0xad, 0xa9, 0x98, 0x8d, 0x87, +0x8c, 0x91, 0x8c, 0x77, 0x79, 0x8f, 0x9d, 0x9e, 0x8d, 0x7c, 0x7c, 0x77, 0x81, 0x89, 0x84, 0x74, +0x6f, 0x8e, 0xa3, 0x9f, 0x9b, 0x93, 0x92, 0x9d, 0xaf, 0xc5, 0xd9, 0xe3, 0xd1, 0xb2, 0x9d, 0x9b, +0x98, 0x82, 0x6b, 0x62, 0x77, 0x93, 0x93, 0x74, 0x6a, 0x6f, 0x6c, 0x75, 0x77, 0x68, 0x63, 0x6b, +0x71, 0x6d, 0x72, 0x73, 0x69, 0x5f, 0x60, 0x6b, 0x7c, 0x85, 0x8c, 0x8b, 0x7e, 0x77, 0x7b, 0x87, +0x7e, 0x7d, 0x80, 0x87, 0x92, 0x82, 0x78, 0x7b, 0x7b, 0x7e, 0x6d, 0x54, 0x45, 0x4d, 0x6d, 0x77, +0x5e, 0x53, 0x58, 0x65, 0x6f, 0x70, 0x78, 0x8f, 0x8f, 0x81, 0x78, 0x70, 0x62, 0x4f, 0x37, 0x2e, +0x42, 0x4f, 0x51, 0x54, 0x4a, 0x43, 0x3e, 0x49, 0x61, 0x62, 0x53, 0x54, 0x74, 0x97, 0x96, 0x96, +0x95, 0x91, 0x88, 0x82, 0x8a, 0x92, 0xa3, 0xae, 0xa4, 0x96, 0x93, 0x94, 0x92, 0x87, 0x74, 0x75, +0x84, 0x94, 0x86, 0x79, 0x7b, 0x78, 0x74, 0x6e, 0x71, 0x7a, 0x82, 0x86, 0x99, 0xa4, 0xa9, 0xa9, +0xa8, 0xaa, 0xb2, 0xb1, 0xb3, 0xc4, 0xc3, 0xac, 0x96, 0x93, 0x9b, 0x89, 0x6d, 0x6a, 0x6d, 0x7b, +0x92, 0x92, 0x94, 0x96, 0x92, 0x8e, 0x87, 0x7b, 0x79, 0x84, 0x95, 0x95, 0x82, 0x6c, 0x62, 0x5c, +0x5a, 0x64, 0x74, 0x8f, 0x88, 0x82, 0x8f, 0x88, 0x7d, 0x77, 0x79, 0x85, 0x95, 0x93, 0x90, 0x8a, +0x77, 0x6f, 0x6a, 0x6c, 0x67, 0x56, 0x45, 0x50, 0x7b, 0x9c, 0xa2, 0x95, 0x8f, 0x8d, 0x86, 0x92, +0xa0, 0xa7, 0xb3, 0xb1, 0xa5, 0x98, 0x89, 0x7e, 0x6a, 0x54, 0x4b, 0x51, 0x52, 0x4b, 0x4d, 0x5f, +0x68, 0x63, 0x62, 0x6c, 0x72, 0x75, 0x7d, 0x8f, 0x9a, 0x9e, 0x9d, 0x9a, 0x8b, 0x7a, 0x76, 0x71, +0x73, 0x7d, 0x8c, 0x95, 0x7e, 0x73, 0x7e, 0x7a, 0x79, 0x7c, 0x7d, 0x76, 0x78, 0x82, 0x89, 0x90, +0x92, 0x7b, 0x61, 0x5d, 0x6c, 0x80, 0x7b, 0x7c, 0x84, 0x81, 0x74, 0x70, 0x80, 0x91, 0x9f, 0xa4, +0xa6, 0xa8, 0xa3, 0x9b, 0x9b, 0x99, 0x93, 0x92, 0x8f, 0x82, 0x73, 0x75, 0x82, 0x7a, 0x75, 0x6c, +0x63, 0x6b, 0x6b, 0x70, 0x77, 0x73, 0x6c, 0x5f, 0x57, 0x57, 0x4e, 0x5c, 0x76, 0x98, 0xac, 0x9b, +0x91, 0x94, 0x94, 0x93, 0x8f, 0x8f, 0x8e, 0x89, 0x75, 0x6f, 0x7d, 0x90, 0x9a, 0x97, 0x85, 0x6d, +0x69, 0x73, 0x7e, 0x8f, 0xae, 0xc6, 0xb8, 0xac, 0x9e, 0x8e, 0x8d, 0x89, 0x8b, 0x79, 0x76, 0x7a, +0x69, 0x58, 0x4c, 0x37, 0x2f, 0x37, 0x3f, 0x3d, 0x2c, 0x3b, 0x57, 0x64, 0x68, 0x59, 0x53, 0x60, +0x6e, 0x85, 0x95, 0x99, 0x95, 0x91, 0x8e, 0x8a, 0x8c, 0x88, 0x8f, 0x93, 0x8c, 0x9d, 0xa6, 0x98, +0x95, 0x91, 0x93, 0xa5, 0xa5, 0x92, 0x75, 0x62, 0x64, 0x66, 0x67, 0x5d, 0x48, 0x4d, 0x5d, 0x6c, +0x7c, 0x78, 0x7d, 0x81, 0x83, 0x87, 0x86, 0x94, 0x9e, 0xb6, 0xc3, 0xb6, 0xa3, 0x94, 0x94, 0x9d, +0x95, 0x86, 0x7a, 0x6f, 0x5f, 0x64, 0x80, 0x99, 0x92, 0x86, 0x7d, 0x6e, 0x82, 0x96, 0x9f, 0xa5, +0xad, 0xb4, 0xa8, 0x9f, 0x86, 0x5f, 0x49, 0x56, 0x78, 0x72, 0x61, 0x62, 0x55, 0x49, 0x49, 0x4e, +0x5a, 0x5a, 0x5a, 0x62, 0x69, 0x76, 0x83, 0x86, 0x8f, 0x88, 0x6b, 0x67, 0x76, 0x8d, 0xa3, 0xbb, +0xbd, 0xa5, 0x98, 0x90, 0x92, 0x9b, 0xae, 0xb4, 0x9d, 0x8a, 0x8a, 0x91, 0x8b, 0x74, 0x61, 0x61, +0x61, 0x5c, 0x4c, 0x34, 0x36, 0x3e, 0x44, 0x50, 0x5e, 0x65, 0x5e, 0x66, 0x84, 0x94, 0x9c, 0x8f, +0x8c, 0x98, 0x91, 0x7b, 0x73, 0x8b, 0x9a, 0x9b, 0x9f, 0xa2, 0x9b, 0x94, 0x91, 0x96, 0xa2, 0x9b, +0x82, 0x6f, 0x72, 0x7e, 0x82, 0x7d, 0x73, 0x5e, 0x63, 0x83, 0xa1, 0xa5, 0x97, 0xa0, 0x9b, 0x9a, +0x97, 0x8c, 0x82, 0x92, 0xb4, 0xbc, 0xc0, 0xb3, 0x99, 0x8a, 0x8e, 0x90, 0x87, 0x75, 0x6d, 0x7a, +0x8b, 0x9d, 0xa3, 0x9c, 0xa4, 0x9f, 0x90, 0x92, 0x9d, 0xa0, 0x91, 0x83, 0x7e, 0x78, 0x72, 0x63, +0x55, 0x55, 0x78, 0x85, 0x7a, 0x6a, 0x75, 0x89, 0x87, 0x84, 0x85, 0x87, 0x7b, 0x74, 0x74, 0x72, +0x67, 0x60, 0x6a, 0x78, 0x7d, 0x69, 0x4e, 0x53, 0x6b, 0x7a, 0x90, 0x8a, 0x82, 0x8a, 0x88, 0x77, +0x82, 0x96, 0x93, 0x7b, 0x61, 0x5c, 0x5e, 0x51, 0x3b, 0x24, 0x29, 0x34, 0x33, 0x31, 0x38, 0x46, +0x4b, 0x45, 0x4a, 0x54, 0x5e, 0x68, 0x81, 0x94, 0x9e, 0x9a, 0x93, 0x99, 0x9a, 0x8a, 0x6b, 0x6e, +0x8a, 0x94, 0xa2, 0xa8, 0x92, 0x76, 0x75, 0x7a, 0x7a, 0x78, 0x72, 0x6a, 0x5a, 0x57, 0x5c, 0x64, +0x6c, 0x60, 0x50, 0x5c, 0x77, 0x8a, 0x85, 0x77, 0x77, 0x82, 0x84, 0x87, 0x91, 0x98, 0xa6, 0xa0, +0xa1, 0xad, 0xa3, 0x9a, 0x9b, 0x9e, 0x8f, 0x89, 0x89, 0x87, 0x8a, 0x8d, 0x9a, 0x95, 0x8a, 0x92, +0xa2, 0x9f, 0x96, 0x91, 0x95, 0x92, 0x94, 0x93, 0x9c, 0xa0, 0x93, 0x7e, 0x8b, 0xa1, 0x9e, 0x8c, +0x79, 0x76, 0x77, 0x75, 0x6d, 0x6b, 0x72, 0x76, 0x74, 0x79, 0x89, 0x8e, 0x84, 0x80, 0x8d, 0x8a, +0x7e, 0x81, 0x93, 0xa1, 0xa2, 0xa2, 0x98, 0x8c, 0x84, 0x86, 0x8a, 0x9d, 0xa2, 0x99, 0x99, 0x8e, +0x76, 0x66, 0x67, 0x60, 0x60, 0x63, 0x64, 0x61, 0x54, 0x59, 0x69, 0x6e, 0x77, 0x81, 0x82, 0x88, +0x92, 0x9a, 0x9f, 0x9d, 0x8d, 0x8d, 0x91, 0x95, 0x93, 0x8a, 0x8c, 0x8a, 0x8c, 0x95, 0x9a, 0x90, +0x89, 0x7e, 0x78, 0x79, 0x76, 0x74, 0x69, 0x69, 0x75, 0x75, 0x71, 0x7a, 0x7e, 0x6d, 0x62, 0x61, +0x6a, 0x73, 0x75, 0x75, 0x87, 0x8a, 0x85, 0x87, 0x99, 0xa5, 0xa2, 0xa2, 0xa2, 0x92, 0x88, 0x86, +0x7c, 0x73, 0x66, 0x65, 0x6b, 0x6c, 0x84, 0x9f, 0x93, 0x86, 0x90, 0x96, 0x90, 0xa2, 0xab, 0x95, +0x80, 0x6c, 0x64, 0x62, 0x59, 0x4d, 0x4c, 0x5c, 0x5f, 0x5f, 0x64, 0x5c, 0x4a, 0x44, 0x4d, 0x56, +0x63, 0x68, 0x6c, 0x6c, 0x72, 0x84, 0x82, 0x82, 0x8d, 0x89, 0x72, 0x60, 0x6f, 0x74, 0x72, 0x76, +0x79, 0x7a, 0x76, 0x7a, 0x87, 0x9b, 0xa9, 0x9f, 0x99, 0x96, 0x90, 0x94, 0x8e, 0x76, 0x62, 0x5a, +0x59, 0x56, 0x51, 0x54, 0x52, 0x48, 0x4e, 0x5c, 0x69, 0x64, 0x65, 0x70, 0x79, 0x96, 0x9f, 0x91, +0x92, 0x9b, 0xa0, 0x9e, 0xa2, 0xac, 0xaf, 0xa3, 0x99, 0x8e, 0x8a, 0x83, 0x7c, 0x71, 0x68, 0x69, +0x66, 0x60, 0x6c, 0x77, 0x79, 0x7b, 0x78, 0x73, 0x7a, 0x98, 0xa3, 0x9c, 0x99, 0x90, 0x92, 0x9a, +0xa6, 0xad, 0xad, 0xaa, 0xa6, 0xa1, 0xac, 0x9e, 0x86, 0x85, 0x93, 0x9f, 0x90, 0x7b, 0x76, 0x73, +0x6a, 0x6f, 0x7c, 0x88, 0x95, 0x92, 0x88, 0x86, 0x93, 0x97, 0x95, 0x8a, 0x89, 0x8d, 0x8a, 0x86, +0x91, 0x9f, 0x9e, 0x87, 0x77, 0x64, 0x4d, 0x59, 0x61, 0x55, 0x50, 0x4d, 0x50, 0x51, 0x54, 0x60, +0x5b, 0x50, 0x5d, 0x68, 0x6f, 0x68, 0x6a, 0x72, 0x7c, 0x84, 0x8e, 0x99, 0x9c, 0x9c, 0xa1, 0xa9, +0xb4, 0xb8, 0xb1, 0x9e, 0x88, 0x77, 0x7d, 0x8a, 0x83, 0x72, 0x74, 0x74, 0x6e, 0x6d, 0x6b, 0x64, +0x6e, 0x77, 0x72, 0x6f, 0x7b, 0x87, 0x87, 0x83, 0x87, 0x86, 0x85, 0x8b, 0x96, 0xa2, 0x9d, 0x94, +0x89, 0x7c, 0x72, 0x67, 0x63, 0x65, 0x6c, 0x74, 0x75, 0x7a, 0x7a, 0x72, 0x6a, 0x6b, 0x75, 0x8b, +0x94, 0x7d, 0x6a, 0x6a, 0x6f, 0x82, 0x85, 0x73, 0x6e, 0x74, 0x78, 0x7e, 0x96, 0xa5, 0x9d, 0x8a, +0x7d, 0x84, 0x81, 0x87, 0x96, 0x98, 0x93, 0x90, 0x97, 0x97, 0x8d, 0x83, 0x7c, 0x7d, 0x83, 0x83, +0x84, 0x84, 0x82, 0x80, 0x89, 0x88, 0x89, 0x8b, 0x87, 0x84, 0x85, 0x92, 0x9e, 0xa4, 0xa9, 0x92, +0x68, 0x55, 0x65, 0x7d, 0x7d, 0x7b, 0x80, 0x80, 0x74, 0x70, 0x8f, 0x9a, 0xa1, 0xa2, 0x9d, 0x96, +0x89, 0x86, 0x89, 0x7a, 0x6c, 0x77, 0x82, 0x84, 0x88, 0x95, 0x9b, 0x88, 0x79, 0x6f, 0x5f, 0x53, +0x52, 0x54, 0x53, 0x4d, 0x50, 0x54, 0x4f, 0x48, 0x42, 0x3b, 0x48, 0x6e, 0x84, 0x72, 0x60, 0x5f, +0x69, 0x7e, 0x84, 0x95, 0xa1, 0xa2, 0xa0, 0xa1, 0xae, 0xae, 0xa2, 0x90, 0x74, 0x62, 0x63, 0x6b, +0x6b, 0x5f, 0x64, 0x6e, 0x71, 0x71, 0x66, 0x63, 0x65, 0x6f, 0x79, 0x7b, 0x72, 0x6a, 0x64, 0x68, +0x76, 0x73, 0x6d, 0x6b, 0x71, 0x71, 0x74, 0x84, 0x8d, 0x92, 0x91, 0x78, 0x76, 0x82, 0x8f, 0x93, +0x8d, 0x89, 0x81, 0x81, 0x73, 0x63, 0x75, 0x93, 0xa3, 0x9d, 0x98, 0x94, 0x88, 0x8b, 0x98, 0x90, +0x8d, 0xa0, 0xad, 0xae, 0xab, 0xb3, 0xb8, 0xa5, 0x97, 0x8e, 0x7b, 0x6e, 0x6b, 0x73, 0x75, 0x70, +0x6e, 0x6a, 0x61, 0x56, 0x5c, 0x72, 0x8b, 0x9e, 0x9e, 0x83, 0x6c, 0x60, 0x71, 0x7c, 0x74, 0x80, +0x94, 0x96, 0x8d, 0x96, 0xb5, 0xc3, 0xb2, 0x9b, 0x80, 0x72, 0x73, 0x77, 0x77, 0x6f, 0x71, 0x75, +0x78, 0x70, 0x5e, 0x56, 0x4f, 0x53, 0x64, 0x67, 0x5f, 0x5a, 0x60, 0x6e, 0x7c, 0x90, 0xa4, 0xa7, +0x9d, 0x97, 0xa6, 0xb7, 0xb5, 0xb3, 0xa0, 0x78, 0x71, 0x72, 0x70, 0x71, 0x76, 0x77, 0x75, 0x76, +0x6c, 0x62, 0x7e, 0xa1, 0xa9, 0xa2, 0x93, 0x88, 0x7c, 0x85, 0x93, 0x9b, 0x9f, 0x90, 0x91, 0x95, +0x8e, 0x8e, 0x8e, 0x80, 0x77, 0x76, 0x7e, 0x92, 0x90, 0x89, 0x8f, 0x98, 0x9b, 0x97, 0x90, 0x7c, +0x7c, 0x97, 0xad, 0xb2, 0xa8, 0x90, 0x75, 0x6b, 0x7d, 0x85, 0x83, 0x85, 0x86, 0x7c, 0x6e, 0x70, +0x8d, 0x97, 0x85, 0x79, 0x72, 0x64, 0x54, 0x53, 0x5b, 0x64, 0x63, 0x64, 0x67, 0x64, 0x5c, 0x69, +0x82, 0x87, 0x81, 0x75, 0x6d, 0x5e, 0x60, 0x6b, 0x6a, 0x7b, 0x89, 0x82, 0x72, 0x6b, 0x7b, 0x82, +0x77, 0x77, 0x69, 0x52, 0x4c, 0x52, 0x51, 0x4e, 0x4d, 0x4c, 0x4e, 0x4d, 0x4b, 0x4e, 0x62, 0x6f, +0x72, 0x6e, 0x66, 0x57, 0x4b, 0x59, 0x6a, 0x7e, 0xa5, 0xb0, 0x9f, 0x90, 0x8c, 0x90, 0x85, 0x7b, +0x77, 0x72, 0x7b, 0x8a, 0x8d, 0x7e, 0x84, 0x8f, 0x8b, 0x86, 0x77, 0x62, 0x65, 0x7e, 0x9b, 0xaa, +0x9e, 0x82, 0x71, 0x6e, 0x7a, 0x8c, 0x99, 0x9a, 0x83, 0x7c, 0x8c, 0x9c, 0xa8, 0xaf, 0xa5, 0x95, +0x99, 0xa2, 0x9a, 0x84, 0x77, 0x81, 0x8c, 0x8d, 0x8a, 0x78, 0x68, 0x73, 0x87, 0x92, 0x90, 0x92, +0x93, 0x96, 0x9d, 0x9d, 0x99, 0xaa, 0xb3, 0xaa, 0xa2, 0x9f, 0xa0, 0x9d, 0x96, 0x97, 0x9b, 0x8e, +0x74, 0x60, 0x5a, 0x62, 0x60, 0x5a, 0x58, 0x57, 0x57, 0x72, 0xa1, 0xb5, 0x9f, 0x82, 0x6b, 0x5f, +0x56, 0x5e, 0x6a, 0x76, 0x8d, 0x8f, 0x81, 0x7c, 0x86, 0x87, 0x82, 0x7e, 0x7b, 0x7d, 0x86, 0x91, +0x8e, 0x79, 0x76, 0x73, 0x69, 0x61, 0x57, 0x5b, 0x6c, 0x75, 0x7a, 0x8a, 0x8a, 0x6e, 0x5b, 0x57, +0x67, 0x7a, 0x88, 0x9a, 0x92, 0x84, 0x8b, 0x9f, 0xad, 0xa7, 0x97, 0x88, 0x82, 0x81, 0x73, 0x63, +0x6d, 0x89, 0x91, 0x90, 0x8d, 0x81, 0x77, 0x80, 0x96, 0xa2, 0x9d, 0x90, 0x8d, 0x94, 0x93, 0x90, +0x98, 0xa0, 0x89, 0x6a, 0x6d, 0x81, 0x84, 0x80, 0x7d, 0x90, 0x9e, 0x9f, 0xa6, 0x99, 0x89, 0x88, +0x7b, 0x77, 0x76, 0x73, 0x6e, 0x80, 0x9d, 0xaa, 0xa2, 0x94, 0x86, 0x7b, 0x72, 0x72, 0x7b, 0x88, +0x93, 0x8d, 0x81, 0x80, 0x77, 0x66, 0x5e, 0x58, 0x5c, 0x6a, 0x70, 0x66, 0x50, 0x4a, 0x5d, 0x66, +0x5a, 0x52, 0x4e, 0x58, 0x73, 0x96, 0x9c, 0x9a, 0x87, 0x68, 0x5b, 0x53, 0x59, 0x58, 0x57, 0x5f, +0x55, 0x52, 0x65, 0x7b, 0x82, 0x7d, 0x75, 0x70, 0x6b, 0x68, 0x62, 0x63, 0x70, 0x7c, 0x7e, 0x78, +0x6d, 0x5f, 0x61, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x7a, 0x82, 0x80, 0x84, 0x9d, 0xb7, 0xbb, 0x9f, +0x94, 0x9d, 0xa6, 0xa7, 0x9c, 0xaa, 0xae, 0xa3, 0x9b, 0x87, 0x7d, 0x76, 0x71, 0x72, 0x73, 0x70, +0x72, 0x84, 0x9f, 0xb1, 0xa8, 0x91, 0x7c, 0x75, 0x76, 0x81, 0x8e, 0xa5, 0xa8, 0x95, 0x84, 0x8c, +0x92, 0x85, 0x70, 0x67, 0x6f, 0x7a, 0x88, 0x8c, 0x6d, 0x59, 0x5d, 0x67, 0x64, 0x4f, 0x4b, 0x5b, +0x75, 0x93, 0xa2, 0xa7, 0x94, 0x84, 0x82, 0x83, 0x86, 0x83, 0x83, 0x88, 0x90, 0x91, 0xa1, 0xa8, +0x9f, 0x8f, 0x83, 0x83, 0x80, 0x73, 0x5d, 0x5d, 0x6b, 0x7a, 0x83, 0x7e, 0x6e, 0x67, 0x70, 0x88, +0x9f, 0x98, 0x80, 0x76, 0x86, 0x8a, 0x75, 0x6d, 0x81, 0x91, 0x8b, 0x80, 0x7e, 0x87, 0x8b, 0x8c, +0x8a, 0x96, 0x92, 0x7e, 0x6b, 0x5f, 0x5e, 0x5a, 0x51, 0x56, 0x54, 0x49, 0x54, 0x6f, 0x82, 0x81, +0x78, 0x6c, 0x6a, 0x72, 0x79, 0x82, 0x91, 0xa8, 0xb6, 0xbf, 0xaa, 0x94, 0x97, 0x99, 0x89, 0x7c, +0x87, 0x90, 0x97, 0x8f, 0x77, 0x68, 0x6b, 0x76, 0x77, 0x6e, 0x72, 0x7e, 0x95, 0xad, 0xbd, 0xc7, +0xbb, 0xac, 0x9e, 0x9c, 0x98, 0x94, 0x95, 0x97, 0x91, 0x8b, 0x9e, 0xb2, 0xac, 0x9c, 0x97, 0x94, +0x8f, 0x93, 0x95, 0x81, 0x78, 0x85, 0x92, 0x80, 0x61, 0x62, 0x6f, 0x85, 0x91, 0x90, 0x7a, 0x6e, +0x77, 0x7d, 0x75, 0x6d, 0x72, 0x6f, 0x67, 0x61, 0x5f, 0x6b, 0x6a, 0x62, 0x6f, 0x89, 0x87, 0x76, +0x63, 0x43, 0x34, 0x3b, 0x46, 0x52, 0x49, 0x41, 0x4f, 0x6e, 0x8d, 0x98, 0x7d, 0x62, 0x64, 0x70, +0x71, 0x69, 0x6c, 0x79, 0x7c, 0x7b, 0x76, 0x69, 0x68, 0x67, 0x6b, 0x76, 0x82, 0x89, 0x85, 0x76, +0x61, 0x61, 0x6f, 0x72, 0x68, 0x60, 0x65, 0x73, 0x88, 0x92, 0x8f, 0x8c, 0x80, 0x7a, 0x79, 0x7c, +0x77, 0x75, 0x7d, 0x98, 0xa4, 0x91, 0x9b, 0xaf, 0xa6, 0x8e, 0x88, 0x89, 0x87, 0x89, 0x86, 0x7e, +0x76, 0x72, 0x72, 0x6b, 0x61, 0x64, 0x6f, 0x7a, 0x87, 0x8c, 0x86, 0x8a, 0x8f, 0x90, 0x8a, 0x84, +0x8b, 0x90, 0x8e, 0x84, 0x7a, 0x85, 0x8c, 0x8d, 0x9c, 0xa8, 0x9b, 0x89, 0x82, 0x71, 0x58, 0x57, +0x60, 0x61, 0x4d, 0x48, 0x5e, 0x77, 0x8b, 0x90, 0x8b, 0x78, 0x75, 0x83, 0x98, 0xa2, 0xa1, 0x9d, +0x97, 0x97, 0x95, 0x98, 0x98, 0x86, 0x81, 0x8b, 0x8f, 0x8d, 0x84, 0x6c, 0x48, 0x47, 0x5d, 0x67, +0x66, 0x6a, 0x6b, 0x78, 0x8b, 0xa6, 0xbb, 0xac, 0x92, 0x8b, 0x81, 0x71, 0x70, 0x68, 0x73, 0x86, +0x8b, 0x98, 0xa0, 0x96, 0x8f, 0x91, 0x9b, 0xa8, 0x9f, 0x92, 0x8c, 0x87, 0x90, 0x8f, 0x82, 0x7d, +0x78, 0x77, 0x81, 0x84, 0x85, 0x7a, 0x75, 0x7c, 0x82, 0x83, 0x82, 0x7e, 0x7d, 0x82, 0x8e, 0x8d, +0x89, 0x8b, 0x8a, 0x85, 0x88, 0x92, 0x82, 0x6e, 0x5f, 0x50, 0x51, 0x52, 0x55, 0x5e, 0x6a, 0x7b, +0x91, 0x98, 0x98, 0x98, 0x9f, 0xaa, 0xa4, 0x9c, 0xa4, 0xa4, 0x9b, 0x97, 0x98, 0x8e, 0x7c, 0x80, +0x7d, 0x76, 0x76, 0x7b, 0x83, 0x7e, 0x74, 0x72, 0x60, 0x5a, 0x68, 0x6d, 0x64, 0x5b, 0x5c, 0x67, +0x75, 0x90, 0xa7, 0xa3, 0x8b, 0x75, 0x6a, 0x6c, 0x71, 0x6c, 0x66, 0x67, 0x65, 0x7d, 0x97, 0x86, +0x73, 0x6c, 0x77, 0x82, 0x7b, 0x72, 0x62, 0x52, 0x57, 0x5f, 0x5e, 0x62, 0x60, 0x5d, 0x63, 0x6b, +0x84, 0x7d, 0x70, 0x74, 0x74, 0x75, 0x6d, 0x6c, 0x6e, 0x75, 0x86, 0x92, 0x9d, 0x95, 0x8b, 0x95, +0xab, 0xba, 0xaa, 0x8d, 0x72, 0x69, 0x73, 0x79, 0x6f, 0x68, 0x6a, 0x72, 0x7e, 0x83, 0x84, 0x7e, +0x75, 0x7c, 0x85, 0x87, 0x8f, 0x92, 0x92, 0x90, 0x97, 0xa9, 0xa8, 0xa9, 0x99, 0x8b, 0x86, 0x7c, +0x72, 0x68, 0x62, 0x60, 0x61, 0x66, 0x61, 0x56, 0x5c, 0x6a, 0x6f, 0x76, 0x7a, 0x84, 0x92, 0x98, +0x8e, 0x7e, 0x71, 0x74, 0x80, 0x79, 0x70, 0x74, 0x72, 0x87, 0x99, 0x8a, 0x82, 0x7b, 0x84, 0x88, +0x83, 0x7e, 0x87, 0x86, 0x87, 0x86, 0x83, 0x85, 0x76, 0x6d, 0x6c, 0x79, 0x90, 0x96, 0x90, 0x8e, +0x8d, 0x94, 0x9e, 0xa9, 0xa3, 0x96, 0x96, 0xa1, 0xb8, 0xaf, 0xa0, 0xa0, 0xa0, 0x9b, 0x85, 0x6e, +0x55, 0x4b, 0x51, 0x54, 0x4c, 0x4f, 0x59, 0x64, 0x6c, 0x73, 0x83, 0x8e, 0x87, 0x90, 0x97, 0x91, +0x8f, 0x89, 0x82, 0x72, 0x7a, 0x8a, 0x96, 0x93, 0x76, 0x6f, 0x78, 0x82, 0x84, 0x82, 0x73, 0x67, +0x71, 0x88, 0x87, 0x75, 0x6e, 0x69, 0x67, 0x69, 0x76, 0x7e, 0x7b, 0x76, 0x6f, 0x69, 0x68, 0x6a, +0x6c, 0x5d, 0x57, 0x71, 0x8c, 0xa7, 0xb0, 0xa1, 0x9a, 0x92, 0x88, 0x82, 0x7e, 0x80, 0x87, 0x92, +0x8f, 0x7d, 0x76, 0x7e, 0x82, 0x85, 0x8b, 0x8f, 0x96, 0xa5, 0xb1, 0xb2, 0xad, 0xa6, 0x9f, 0x97, +0x82, 0x7b, 0x7b, 0x83, 0x98, 0x98, 0x98, 0x9e, 0xa2, 0x95, 0x79, 0x6b, 0x68, 0x70, 0x71, 0x65, +0x5b, 0x65, 0x6f, 0x76, 0x7a, 0x7a, 0x84, 0x86, 0x83, 0x81, 0x7b, 0x79, 0x83, 0x8f, 0x8c, 0x83, +0x80, 0x85, 0x9c, 0xa3, 0x92, 0x84, 0x82, 0x7b, 0x6b, 0x64, 0x61, 0x5b, 0x5c, 0x66, 0x60, 0x5d, +0x62, 0x63, 0x68, 0x72, 0x83, 0x8a, 0x8d, 0x88, 0x7d, 0x79, 0x81, 0x87, 0x77, 0x5a, 0x55, 0x6f, +0x90, 0xa5, 0x98, 0x88, 0x7b, 0x78, 0x7c, 0x7d, 0x7b, 0x6f, 0x74, 0x8b, 0x90, 0x85, 0x7b, 0x73, +0x6b, 0x6a, 0x68, 0x6b, 0x6c, 0x63, 0x6a, 0x74, 0x7e, 0x8a, 0x8b, 0x81, 0x76, 0x78, 0x81, 0x96, +0xa0, 0xa1, 0xa4, 0x9c, 0x91, 0x76, 0x58, 0x51, 0x5e, 0x67, 0x61, 0x48, 0x3f, 0x49, 0x5e, 0x71, +0x7e, 0x80, 0x75, 0x73, 0x81, 0x90, 0x97, 0x99, 0x99, 0x91, 0x85, 0x78, 0x74, 0x74, 0x7a, 0x80, +0x7a, 0x7e, 0x86, 0x7c, 0x6f, 0x6c, 0x6f, 0x73, 0x7c, 0x80, 0x7c, 0x7d, 0x7d, 0x78, 0x7d, 0x8c, +0x9b, 0xa3, 0xa1, 0x9a, 0x8f, 0x89, 0x8b, 0x8c, 0x7e, 0x6e, 0x71, 0x83, 0xa4, 0xb7, 0xb0, 0xa9, +0x98, 0x82, 0x72, 0x6e, 0x6e, 0x6a, 0x6e, 0x76, 0x7b, 0x77, 0x79, 0x7c, 0x7a, 0x7e, 0x80, 0x7d, +0x81, 0x86, 0x8f, 0x98, 0xa1, 0x9f, 0x8e, 0x7b, 0x73, 0x80, 0x8a, 0x92, 0x97, 0x99, 0x96, 0x86, +0x80, 0x70, 0x69, 0x6a, 0x6d, 0x79, 0x78, 0x6c, 0x6c, 0x72, 0x7a, 0x7e, 0x85, 0x81, 0x75, 0x69, +0x6e, 0x81, 0x8c, 0x93, 0xa0, 0xa0, 0x96, 0x8e, 0x8e, 0x97, 0xa6, 0xa5, 0xa4, 0xa6, 0x9d, 0x86, +0x73, 0x79, 0x8c, 0x91, 0x86, 0x7e, 0x7d, 0x71, 0x69, 0x72, 0x81, 0x94, 0x94, 0x90, 0x9c, 0xa5, +0xa0, 0x9b, 0x96, 0x8d, 0x79, 0x66, 0x70, 0x7e, 0x87, 0x8f, 0x8c, 0x8e, 0x8b, 0x79, 0x69, 0x65, +0x67, 0x66, 0x73, 0x81, 0x7d, 0x77, 0x76, 0x76, 0x6c, 0x65, 0x6f, 0x7b, 0x7e, 0x7a, 0x84, 0x87, +0x86, 0x83, 0x77, 0x6e, 0x6d, 0x71, 0x6f, 0x7c, 0x8c, 0x8d, 0x89, 0x79, 0x70, 0x5e, 0x4a, 0x48, +0x49, 0x45, 0x3a, 0x3c, 0x4c, 0x5f, 0x6f, 0x78, 0x7e, 0x7b, 0x6d, 0x70, 0x7d, 0x89, 0x8d, 0x8e, +0x91, 0x88, 0x75, 0x76, 0x8b, 0x92, 0x91, 0x8e, 0x8a, 0x8a, 0x7e, 0x70, 0x68, 0x6f, 0x76, 0x77, +0x74, 0x75, 0x7a, 0x76, 0x74, 0x7e, 0x8e, 0x95, 0x8d, 0x84, 0x8d, 0x87, 0x79, 0x78, 0x81, 0x83, +0x7a, 0x72, 0x78, 0x77, 0x85, 0x97, 0x94, 0x97, 0x8d, 0x6c, 0x4f, 0x4e, 0x60, 0x6f, 0x77, 0x75, +0x72, 0x69, 0x66, 0x70, 0x70, 0x70, 0x72, 0x70, 0x73, 0x7d, 0x8f, 0x9a, 0x97, 0x8d, 0x82, 0x7a, +0x77, 0x7a, 0x7b, 0x83, 0x84, 0x88, 0x92, 0x98, 0x9f, 0x91, 0x82, 0x83, 0x83, 0x92, 0x9b, 0x99, +0x9c, 0x99, 0x92, 0x8c, 0x93, 0xa0, 0x9e, 0x99, 0x9d, 0xa2, 0x99, 0x95, 0x9b, 0x9b, 0x91, 0x8d, +0x92, 0x98, 0x98, 0x96, 0x9b, 0x98, 0x88, 0x76, 0x74, 0x78, 0x7a, 0x71, 0x5f, 0x50, 0x4c, 0x51, +0x61, 0x69, 0x6b, 0x68, 0x5e, 0x5e, 0x85, 0x8a, 0x77, 0x6f, 0x6c, 0x68, 0x5c, 0x5b, 0x71, 0x76, +0x7b, 0x88, 0x95, 0x98, 0x89, 0x79, 0x6d, 0x6c, 0x71, 0x77, 0x80, 0x83, 0x84, 0x84, 0x8a, 0x95, +0x90, 0x8d, 0x89, 0x87, 0x89, 0x8c, 0x8c, 0x91, 0x97, 0x97, 0x91, 0x88, 0x86, 0x88, 0x88, 0x9c, +0xa1, 0x9f, 0x9d, 0x95, 0x89, 0x6c, 0x63, 0x6a, 0x6d, 0x75, 0x7c, 0x78, 0x76, 0x7b, 0x83, 0x89, +0x8d, 0x8c, 0x86, 0x87, 0x8f, 0x95, 0x97, 0x91, 0x95, 0x94, 0x88, 0x84, 0x85, 0x8a, 0x7d, 0x6c, +0x71, 0x73, 0x6f, 0x63, 0x61, 0x65, 0x69, 0x63, 0x6a, 0x6f, 0x6d, 0x73, 0x74, 0x66, 0x5f, 0x61, +0x6a, 0x76, 0x8d, 0x93, 0x8a, 0x7d, 0x7b, 0x85, 0x7e, 0x6d, 0x6f, 0x74, 0x7c, 0x82, 0x8b, 0x8f, +0x82, 0x74, 0x68, 0x67, 0x67, 0x69, 0x6f, 0x6b, 0x6a, 0x77, 0x89, 0x92, 0x88, 0x80, 0x82, 0x85, +0x8a, 0xa5, 0xb2, 0xad, 0xa2, 0x8f, 0x80, 0x78, 0x7e, 0x8a, 0x8a, 0x8d, 0x8e, 0x8b, 0x82, 0x7d, +0x7e, 0x69, 0x5c, 0x60, 0x66, 0x69, 0x6a, 0x68, 0x74, 0x7d, 0x80, 0x80, 0x80, 0x79, 0x73, 0x72, +0x70, 0x6e, 0x72, 0x76, 0x86, 0x8b, 0x88, 0x8e, 0x8f, 0x96, 0xa3, 0x9e, 0x98, 0x8f, 0x7c, 0x69, +0x66, 0x74, 0x74, 0x60, 0x57, 0x5e, 0x67, 0x6b, 0x69, 0x65, 0x60, 0x5a, 0x63, 0x73, 0x85, 0x87, +0x89, 0x89, 0x87, 0x90, 0x8d, 0x82, 0x85, 0x87, 0x93, 0x8f, 0x8b, 0x8d, 0x81, 0x75, 0x67, 0x61, +0x63, 0x65, 0x73, 0x91, 0x9b, 0x9d, 0xa0, 0x97, 0x84, 0x79, 0x84, 0x8e, 0x8d, 0x8d, 0x99, 0xa2, +0x98, 0x89, 0x8c, 0x8a, 0x8a, 0x8f, 0x92, 0x96, 0x8d, 0x8c, 0x91, 0x8c, 0x8d, 0x7c, 0x71, 0x6d, +0x69, 0x69, 0x5f, 0x5f, 0x70, 0x79, 0x7d, 0x7a, 0x73, 0x6d, 0x69, 0x6f, 0x85, 0x88, 0x7c, 0x74, +0x79, 0x7c, 0x79, 0x8a, 0x93, 0x95, 0x8c, 0x87, 0x8c, 0x84, 0x7a, 0x7a, 0x78, 0x79, 0x7b, 0x6f, +0x6a, 0x6f, 0x7c, 0x8a, 0x88, 0x82, 0x79, 0x75, 0x78, 0x7e, 0x8a, 0x7d, 0x76, 0x7b, 0x83, 0x8c, +0x81, 0x73, 0x76, 0x7e, 0x9e, 0xb6, 0xb0, 0xa0, 0x84, 0x75, 0x6f, 0x66, 0x6f, 0x78, 0x79, 0x7e, +0x8e, 0x97, 0x98, 0x90, 0x86, 0x7d, 0x7a, 0x88, 0x92, 0x96, 0x9f, 0xa8, 0xa6, 0x9c, 0x9b, 0x94, +0x93, 0x92, 0x91, 0x8f, 0x79, 0x76, 0x80, 0x7e, 0x83, 0x75, 0x5f, 0x5a, 0x5e, 0x69, 0x7b, 0x7e, +0x74, 0x6e, 0x76, 0x7e, 0x78, 0x79, 0x78, 0x73, 0x75, 0x7e, 0x84, 0x8a, 0x96, 0x99, 0x90, 0x93, +0x9f, 0xa2, 0x97, 0x8f, 0x94, 0x8f, 0x83, 0x83, 0x82, 0x79, 0x6f, 0x61, 0x5f, 0x63, 0x71, 0x7c, +0x79, 0x70, 0x69, 0x62, 0x67, 0x76, 0x93, 0x9c, 0x8f, 0x82, 0x7c, 0x86, 0x7b, 0x6f, 0x74, 0x81, +0x8c, 0x88, 0x80, 0x74, 0x64, 0x5a, 0x5d, 0x57, 0x5f, 0x71, 0x73, 0x77, 0x88, 0x94, 0x93, 0x83, +0x79, 0x72, 0x6a, 0x66, 0x69, 0x6e, 0x6e, 0x76, 0x77, 0x76, 0x7c, 0x78, 0x76, 0x7a, 0x83, 0x8d, +0x8f, 0x86, 0x79, 0x6e, 0x74, 0x6a, 0x57, 0x5c, 0x5b, 0x52, 0x51, 0x57, 0x62, 0x6e, 0x75, 0x79, +0x6c, 0x68, 0x6c, 0x6d, 0x7b, 0x92, 0x9d, 0xa0, 0xa6, 0xa6, 0xa6, 0xa5, 0xa1, 0xa6, 0x9d, 0x8a, +0x87, 0x8a, 0x8a, 0x8d, 0x8a, 0x82, 0x7e, 0x77, 0x85, 0x9c, 0x99, 0x88, 0x74, 0x6e, 0x6b, 0x68, +0x73, 0x7c, 0x88, 0x86, 0x83, 0x86, 0x8b, 0x91, 0x85, 0x73, 0x7d, 0x9b, 0xa3, 0x9e, 0x96, 0x8f, +0x80, 0x6e, 0x71, 0x75, 0x72, 0x71, 0x6f, 0x72, 0x77, 0x81, 0x85, 0x7b, 0x77, 0x6e, 0x67, 0x69, +0x7d, 0x9a, 0xab, 0xa0, 0x8c, 0x87, 0x8d, 0x88, 0x81, 0x80, 0x7e, 0x78, 0x71, 0x71, 0x74, 0x70, +0x74, 0x71, 0x65, 0x6b, 0x6e, 0x67, 0x69, 0x6f, 0x84, 0x93, 0x90, 0x8e, 0x83, 0x74, 0x6a, 0x73, +0x83, 0x84, 0x89, 0x96, 0xa3, 0xa0, 0xa0, 0xa1, 0xa5, 0xb3, 0xb8, 0xb5, 0x9f, 0x8b, 0x88, 0x8c, +0x8c, 0x89, 0x84, 0x73, 0x74, 0x7b, 0x7d, 0x82, 0x78, 0x73, 0x75, 0x72, 0x79, 0x83, 0x94, 0x9a, +0x9b, 0xa3, 0xa7, 0xa3, 0x94, 0x89, 0x8b, 0x99, 0x9d, 0x8c, 0x77, 0x6c, 0x61, 0x5c, 0x65, 0x6c, +0x6c, 0x69, 0x6e, 0x84, 0x9b, 0x97, 0x91, 0x88, 0x82, 0x79, 0x74, 0x77, 0x82, 0x8d, 0x8f, 0x8f, +0x8f, 0x8b, 0x88, 0x7b, 0x70, 0x78, 0x81, 0x7b, 0x7c, 0x80, 0x7c, 0x76, 0x78, 0x72, 0x6c, 0x5f, +0x4f, 0x4f, 0x54, 0x52, 0x68, 0x77, 0x74, 0x6e, 0x64, 0x5a, 0x59, 0x70, 0x8d, 0x9a, 0x8e, 0x88, +0x88, 0x86, 0x89, 0x8a, 0x8e, 0x8d, 0x7a, 0x70, 0x6b, 0x61, 0x61, 0x68, 0x6d, 0x6c, 0x65, 0x59, +0x5b, 0x64, 0x6d, 0x7b, 0x70, 0x64, 0x63, 0x60, 0x5b, 0x6a, 0x89, 0x8c, 0x7b, 0x79, 0x7b, 0x79, +0x71, 0x6f, 0x7b, 0x92, 0x9c, 0x99, 0x9a, 0x84, 0x6d, 0x6b, 0x74, 0x7e, 0x7c, 0x70, 0x69, 0x73, +0x82, 0x90, 0x93, 0x87, 0x82, 0x78, 0x70, 0x7b, 0x95, 0xa8, 0xad, 0xac, 0xaf, 0xa3, 0x92, 0x83, +0x80, 0x8b, 0x92, 0x91, 0x8f, 0x8c, 0x83, 0x84, 0x97, 0x97, 0x8f, 0x76, 0x62, 0x69, 0x77, 0x80, +0x84, 0x7e, 0x6b, 0x63, 0x5f, 0x5b, 0x64, 0x73, 0x82, 0x8b, 0x8f, 0x96, 0x96, 0x95, 0x93, 0x96, +0x9f, 0x9f, 0x92, 0x8b, 0x8c, 0x89, 0x85, 0x85, 0x84, 0x80, 0x6c, 0x55, 0x57, 0x5a, 0x58, 0x63, +0x60, 0x5e, 0x5d, 0x58, 0x59, 0x74, 0x9a, 0xa3, 0xa0, 0x8f, 0x87, 0x7e, 0x77, 0x78, 0x89, 0x99, +0x8e, 0x7e, 0x84, 0x83, 0x76, 0x7a, 0x86, 0x8b, 0x85, 0x75, 0x78, 0x88, 0x91, 0x9f, 0xa0, 0x8f, +0x7c, 0x6a, 0x65, 0x77, 0x8a, 0x95, 0x99, 0x95, 0x9b, 0x94, 0x8c, 0x88, 0x8d, 0x98, 0x9f, 0xa0, +0xa0, 0xa9, 0x98, 0x90, 0xa1, 0xa0, 0x91, 0x76, 0x5f, 0x61, 0x65, 0x6f, 0x82, 0x83, 0x6f, 0x63, +0x5c, 0x5d, 0x6e, 0x84, 0x8f, 0x94, 0x9c, 0xa6, 0x9d, 0x91, 0x8a, 0x8f, 0x97, 0x8e, 0x7a, 0x6d, +0x66, 0x64, 0x65, 0x6c, 0x6b, 0x66, 0x53, 0x46, 0x54, 0x65, 0x7c, 0x7d, 0x6d, 0x63, 0x60, 0x60, +0x61, 0x76, 0x8e, 0x88, 0x7e, 0x7b, 0x79, 0x73, 0x71, 0x74, 0x86, 0x92, 0x84, 0x79, 0x78, 0x77, +0x71, 0x70, 0x76, 0x79, 0x73, 0x6a, 0x6c, 0x77, 0x81, 0x86, 0x89, 0x83, 0x77, 0x6c, 0x6f, 0x80, +0x9b, 0xa7, 0xac, 0xb8, 0xa9, 0x90, 0x88, 0x8e, 0x97, 0x9e, 0x98, 0x86, 0x7e, 0x85, 0x82, 0x85, +0x94, 0x90, 0x82, 0x72, 0x68, 0x74, 0x7c, 0x83, 0x92, 0x8d, 0x78, 0x6a, 0x62, 0x65, 0x6e, 0x79, +0x7d, 0x7d, 0x7a, 0x82, 0x83, 0x80, 0x84, 0x8e, 0x99, 0x98, 0x8b, 0x8e, 0xa0, 0x94, 0x83, 0x81, +0x82, 0x7d, 0x63, 0x4a, 0x50, 0x60, 0x72, 0x7b, 0x70, 0x64, 0x5c, 0x5b, 0x62, 0x87, 0xad, 0xa5, +0x92, 0x8d, 0x89, 0x80, 0x77, 0x76, 0x86, 0x88, 0x78, 0x72, 0x6f, 0x66, 0x60, 0x5e, 0x65, 0x70, +0x6e, 0x66, 0x68, 0x74, 0x8c, 0x9d, 0x90, 0x79, 0x67, 0x61, 0x65, 0x6d, 0x79, 0x7c, 0x7b, 0x88, +0x8c, 0x7e, 0x79, 0x80, 0x87, 0x90, 0x97, 0x99, 0x98, 0x91, 0x88, 0x8c, 0x95, 0x8c, 0x81, 0x6f, +0x5c, 0x5f, 0x69, 0x6e, 0x6d, 0x68, 0x5e, 0x52, 0x53, 0x5a, 0x69, 0x7a, 0x84, 0x9c, 0xa9, 0x9a, +0x8c, 0x89, 0x90, 0x95, 0x95, 0x8d, 0x80, 0x7e, 0x89, 0x8b, 0x7d, 0x74, 0x75, 0x79, 0x68, 0x5d, +0x72, 0x82, 0x83, 0x82, 0x7b, 0x75, 0x6f, 0x6e, 0x75, 0x8c, 0x9f, 0x9b, 0x95, 0x8b, 0x8b, 0x94, +0x98, 0x9b, 0xa7, 0xa9, 0xa0, 0x9e, 0xb0, 0xb0, 0x95, 0x7d, 0x78, 0x8a, 0x83, 0x6b, 0x6b, 0x73, +0x7d, 0x8d, 0x96, 0x8b, 0x76, 0x6e, 0x76, 0x85, 0x98, 0xa1, 0x9c, 0x9e, 0xa0, 0x96, 0x9a, 0x9a, +0x94, 0x93, 0x8a, 0x83, 0x84, 0x79, 0x68, 0x72, 0x80, 0x81, 0x80, 0x6e, 0x69, 0x73, 0x81, 0x98, +0x9e, 0x86, 0x69, 0x5d, 0x63, 0x6a, 0x6f, 0x72, 0x74, 0x83, 0x93, 0x9d, 0x9b, 0x97, 0x92, 0x9a, +0xa2, 0xa2, 0xa3, 0xa1, 0x98, 0x91, 0x88, 0x7c, 0x7b, 0x78, 0x65, 0x58, 0x63, 0x6e, 0x6d, 0x65, +0x64, 0x65, 0x66, 0x63, 0x6d, 0x8a, 0x9c, 0x9b, 0xa1, 0x98, 0x7d, 0x73, 0x6f, 0x6d, 0x72, 0x6a, +0x5d, 0x55, 0x5d, 0x65, 0x66, 0x5d, 0x60, 0x72, 0x6e, 0x66, 0x76, 0x84, 0x87, 0x87, 0x88, 0x7e, +0x76, 0x70, 0x70, 0x79, 0x79, 0x73, 0x71, 0x74, 0x6d, 0x64, 0x70, 0x71, 0x6b, 0x73, 0x79, 0x7e, +0x89, 0x91, 0x8c, 0x89, 0x85, 0x7e, 0x81, 0x68, 0x56, 0x55, 0x4f, 0x56, 0x64, 0x62, 0x53, 0x4f, +0x57, 0x63, 0x6c, 0x7c, 0x92, 0x94, 0x8c, 0x91, 0x95, 0x94, 0x8b, 0x92, 0x9a, 0x8f, 0x86, 0x87, +0x83, 0x78, 0x73, 0x6d, 0x75, 0x78, 0x6a, 0x68, 0x77, 0x8a, 0x95, 0x8e, 0x76, 0x68, 0x66, 0x6b, +0x75, 0x89, 0x98, 0x8d, 0x87, 0x8e, 0x93, 0x90, 0x8c, 0x89, 0x95, 0x92, 0x8e, 0x96, 0x94, 0x8a, +0x8c, 0x8c, 0x8b, 0x91, 0x87, 0x80, 0x7b, 0x74, 0x79, 0x7d, 0x74, 0x6c, 0x6e, 0x70, 0x72, 0x7a, +0x84, 0x94, 0xa3, 0xae, 0xa7, 0x8f, 0x8d, 0x90, 0x95, 0x99, 0x93, 0x86, 0x75, 0x75, 0x88, 0x9d, +0x9f, 0x92, 0x8d, 0x7e, 0x76, 0x7b, 0x82, 0x84, 0x80, 0x7b, 0x7c, 0x85, 0x84, 0x86, 0x8a, 0x86, +0x8e, 0x95, 0x8f, 0x91, 0x93, 0x92, 0x92, 0x98, 0xa0, 0xa0, 0xa2, 0xa8, 0xaf, 0xa2, 0x89, 0x78, +0x82, 0x89, 0x74, 0x66, 0x65, 0x63, 0x6b, 0x74, 0x72, 0x67, 0x60, 0x6c, 0x86, 0x9b, 0xb0, 0xac, +0x98, 0x90, 0x98, 0x9a, 0x93, 0x8b, 0x8a, 0x7e, 0x6c, 0x6b, 0x6c, 0x6b, 0x64, 0x5b, 0x5f, 0x68, +0x5e, 0x63, 0x73, 0x7a, 0x86, 0x97, 0x8c, 0x75, 0x6b, 0x6f, 0x75, 0x72, 0x6d, 0x6b, 0x69, 0x69, +0x70, 0x72, 0x6e, 0x6f, 0x82, 0x89, 0x82, 0x79, 0x7a, 0x7d, 0x87, 0x98, 0xa3, 0x96, 0x86, 0x76, +0x69, 0x5f, 0x5b, 0x5c, 0x5d, 0x53, 0x4f, 0x54, 0x52, 0x5a, 0x6b, 0x7a, 0x89, 0x92, 0x98, 0x96, +0x88, 0x77, 0x80, 0x8f, 0x85, 0x74, 0x6d, 0x6c, 0x70, 0x75, 0x73, 0x6e, 0x74, 0x7a, 0x79, 0x76, +0x7c, 0x83, 0x7e, 0x79, 0x7a, 0x79, 0x75, 0x7b, 0x8d, 0x93, 0x96, 0x91, 0x8d, 0x8a, 0x80, 0x78, +0x75, 0x7b, 0x82, 0x84, 0x8a, 0x90, 0x96, 0xa3, 0x9c, 0x8c, 0x89, 0x8a, 0x7d, 0x74, 0x71, 0x6b, +0x66, 0x6b, 0x71, 0x72, 0x6b, 0x6f, 0x82, 0x8c, 0x8d, 0x98, 0x9e, 0x92, 0x8a, 0x90, 0x97, 0x97, +0x9c, 0x90, 0x78, 0x65, 0x67, 0x78, 0x83, 0x85, 0x8a, 0x85, 0x78, 0x6d, 0x6e, 0x79, 0x7b, 0x7a, +0x86, 0x7d, 0x6c, 0x67, 0x6f, 0x7c, 0x7c, 0x7c, 0x81, 0x7e, 0x7e, 0x89, 0x8d, 0x84, 0x92, 0xa5, +0x9e, 0x92, 0x8b, 0x8e, 0x88, 0x81, 0x89, 0x92, 0x8d, 0x7b, 0x6f, 0x66, 0x67, 0x6b, 0x6a, 0x68, +0x5c, 0x51, 0x56, 0x6a, 0x80, 0x9a, 0xb0, 0xab, 0xa8, 0xaa, 0x99, 0x8d, 0x87, 0x90, 0x8e, 0x79, +0x6d, 0x6b, 0x70, 0x79, 0x84, 0x85, 0x83, 0x84, 0x83, 0x87, 0x88, 0x84, 0x7d, 0x76, 0x71, 0x77, +0x7b, 0x7b, 0x84, 0x83, 0x7c, 0x7d, 0x83, 0x87, 0x8b, 0x89, 0x86, 0x86, 0x8a, 0x7e, 0x7d, 0x7d, +0x85, 0x98, 0xaa, 0xaa, 0xa9, 0x97, 0x84, 0x74, 0x65, 0x66, 0x64, 0x56, 0x59, 0x5a, 0x54, 0x57, +0x6d, 0x87, 0x90, 0x8f, 0x8e, 0x8b, 0x81, 0x81, 0x92, 0x96, 0x99, 0x93, 0x7c, 0x6d, 0x65, 0x70, +0x74, 0x70, 0x6b, 0x68, 0x64, 0x5a, 0x66, 0x77, 0x85, 0x7e, 0x7c, 0x8b, 0x80, 0x71, 0x6f, 0x84, +0x94, 0x99, 0xa4, 0x9b, 0x8b, 0x84, 0x84, 0x89, 0x8d, 0x9c, 0x9d, 0x90, 0x85, 0x87, 0x91, 0x8f, +0x97, 0xa3, 0xa3, 0x96, 0x87, 0x83, 0x80, 0x7b, 0x77, 0x76, 0x73, 0x67, 0x63, 0x6c, 0x76, 0x7a, +0x82, 0x8a, 0x89, 0x92, 0xa6, 0xa1, 0x94, 0x85, 0x84, 0x75, 0x66, 0x61, 0x65, 0x6e, 0x79, 0x89, +0x92, 0x8b, 0x7e, 0x77, 0x73, 0x75, 0x70, 0x63, 0x5d, 0x59, 0x5e, 0x67, 0x72, 0x79, 0x7a, 0x75, +0x75, 0x7b, 0x7b, 0x78, 0x79, 0x77, 0x81, 0x7e, 0x76, 0x7b, 0x83, 0x8a, 0x93, 0x9a, 0x8e, 0x84, +0x74, 0x6e, 0x77, 0x74, 0x73, 0x62, 0x53, 0x57, 0x5a, 0x5a, 0x66, 0x83, 0x95, 0x9c, 0xa6, 0xa0, +0x90, 0x7b, 0x79, 0x86, 0x89, 0x85, 0x72, 0x5c, 0x56, 0x60, 0x6e, 0x73, 0x76, 0x77, 0x75, 0x70, +0x69, 0x72, 0x82, 0x87, 0x81, 0x86, 0x8e, 0x81, 0x78, 0x75, 0x7a, 0x77, 0x71, 0x73, 0x70, 0x71, +0x7b, 0x7e, 0x81, 0x86, 0x8c, 0x84, 0x7a, 0x73, 0x77, 0x80, 0x82, 0x89, 0x9e, 0x9a, 0x82, 0x6d, +0x69, 0x6f, 0x6c, 0x62, 0x5c, 0x56, 0x55, 0x5c, 0x6c, 0x7b, 0x8a, 0x91, 0x96, 0x9a, 0xa1, 0xaa, +0xa2, 0xa0, 0x9f, 0x98, 0x88, 0x80, 0x84, 0x81, 0x7d, 0x7b, 0x84, 0x8c, 0x8c, 0x95, 0x9e, 0x99, +0x91, 0x82, 0x76, 0x72, 0x74, 0x76, 0x86, 0x98, 0x9d, 0xa1, 0xaa, 0xa6, 0x9d, 0x8c, 0x86, 0x8b, +0x8e, 0x86, 0x7c, 0x7b, 0x81, 0x8d, 0x93, 0xa1, 0xad, 0xa3, 0x95, 0x86, 0x81, 0x7e, 0x80, 0x7d, +0x6f, 0x67, 0x6e, 0x77, 0x7e, 0x8c, 0x9b, 0x9c, 0x9c, 0x9b, 0x9a, 0x9d, 0x99, 0x90, 0x96, 0xa2, +0x9d, 0x8f, 0x81, 0x76, 0x7d, 0x86, 0x86, 0x8d, 0x9a, 0x85, 0x6e, 0x67, 0x73, 0x81, 0x7b, 0x6c, +0x6e, 0x71, 0x62, 0x5e, 0x66, 0x74, 0x78, 0x72, 0x6f, 0x6d, 0x66, 0x66, 0x6d, 0x7e, 0x90, 0x95, +0x90, 0x8b, 0x89, 0x84, 0x7d, 0x78, 0x80, 0x86, 0x85, 0x84, 0x77, 0x67, 0x5f, 0x59, 0x55, 0x54, +0x52, 0x4d, 0x50, 0x5c, 0x6e, 0x8e, 0xa4, 0x9e, 0x90, 0x88, 0x8c, 0x87, 0x8a, 0x7e, 0x74, 0x67, +0x5d, 0x63, 0x69, 0x6f, 0x75, 0x77, 0x73, 0x73, 0x74, 0x73, 0x79, 0x79, 0x71, 0x6b, 0x65, 0x6b, +0x76, 0x7c, 0x79, 0x72, 0x73, 0x74, 0x81, 0x86, 0x7c, 0x6c, 0x6c, 0x6f, 0x6a, 0x6d, 0x73, 0x75, +0x7e, 0x82, 0x94, 0xb0, 0xad, 0x93, 0x7e, 0x71, 0x6f, 0x6f, 0x67, 0x5a, 0x54, 0x4f, 0x53, 0x61, +0x77, 0x89, 0x91, 0x90, 0x92, 0x90, 0x80, 0x74, 0x77, 0x8e, 0x98, 0x88, 0x75, 0x6e, 0x70, 0x76, +0x77, 0x77, 0x79, 0x77, 0x73, 0x7a, 0x7e, 0x82, 0x81, 0x82, 0x80, 0x84, 0x8b, 0x7b, 0x78, 0x7d, +0x90, 0xa6, 0xa8, 0x99, 0x88, 0x79, 0x78, 0x85, 0x96, 0x96, 0x94, 0x89, 0x81, 0x88, 0x8d, 0x90, +0x90, 0x8f, 0x90, 0x93, 0x88, 0x78, 0x7e, 0x81, 0x83, 0x7e, 0x73, 0x77, 0x79, 0x76, 0x80, 0x8f, +0x9f, 0xa3, 0xa7, 0xa5, 0xa8, 0x9e, 0x91, 0x96, 0x88, 0x82, 0x75, 0x6b, 0x6d, 0x72, 0x86, 0x99, +0x9d, 0x92, 0x8e, 0x88, 0x8b, 0x8f, 0x87, 0x7a, 0x69, 0x5f, 0x68, 0x7a, 0x8e, 0x93, 0x8f, 0x88, +0x84, 0x87, 0x80, 0x75, 0x78, 0x86, 0x86, 0x84, 0x89, 0x8d, 0x8f, 0x8f, 0x8e, 0x9d, 0xa6, 0x95, +0x8e, 0x89, 0x83, 0x79, 0x6d, 0x67, 0x61, 0x5b, 0x5a, 0x5d, 0x6d, 0x83, 0x9e, 0xb3, 0xb3, 0xa0, +0x8a, 0x77, 0x77, 0x88, 0x9a, 0x95, 0x83, 0x70, 0x66, 0x6b, 0x76, 0x7c, 0x77, 0x6a, 0x60, 0x5f, +0x5f, 0x62, 0x71, 0x74, 0x73, 0x69, 0x6a, 0x73, 0x6a, 0x69, 0x6b, 0x77, 0x79, 0x75, 0x71, 0x6a, +0x6c, 0x6b, 0x7a, 0x8e, 0x8b, 0x89, 0x82, 0x7d, 0x83, 0x8a, 0x93, 0x9e, 0x9e, 0x92, 0x89, 0x70, +0x6c, 0x70, 0x67, 0x62, 0x56, 0x49, 0x48, 0x53, 0x62, 0x75, 0x82, 0x85, 0x89, 0x88, 0x7e, 0x84, +0x8f, 0x95, 0x93, 0x85, 0x81, 0x7c, 0x7b, 0x7b, 0x7e, 0x86, 0x88, 0x86, 0x8c, 0x8d, 0x8e, 0x92, +0x90, 0x8a, 0x79, 0x67, 0x65, 0x6b, 0x7d, 0x92, 0x9a, 0xa0, 0xa0, 0x91, 0x80, 0x71, 0x6a, 0x74, +0x7e, 0x75, 0x72, 0x76, 0x79, 0x82, 0x8f, 0x94, 0x9c, 0x97, 0x88, 0x87, 0x7b, 0x76, 0x79, 0x74, +0x6d, 0x66, 0x63, 0x69, 0x74, 0x80, 0x89, 0x90, 0x91, 0x95, 0x92, 0x82, 0x78, 0x7b, 0x8b, 0x91, +0x85, 0x73, 0x63, 0x5d, 0x69, 0x7d, 0x84, 0x87, 0x7e, 0x71, 0x6b, 0x65, 0x75, 0x80, 0x74, 0x6c, +0x62, 0x69, 0x6d, 0x6e, 0x77, 0x7b, 0x7b, 0x78, 0x7b, 0x75, 0x71, 0x72, 0x82, 0x98, 0x99, 0x90, +0x8c, 0x8b, 0x8c, 0x8e, 0x89, 0x83, 0x85, 0x81, 0x83, 0x84, 0x81, 0x86, 0x7e, 0x76, 0x73, 0x63, +0x59, 0x5d, 0x75, 0x8a, 0x96, 0xab, 0xb1, 0xa5, 0x91, 0x83, 0x92, 0x9f, 0x96, 0x86, 0x7d, 0x78, +0x72, 0x78, 0x85, 0x8c, 0x88, 0x86, 0x88, 0x8c, 0x87, 0x87, 0x90, 0x8c, 0x85, 0x71, 0x68, 0x76, +0x84, 0x90, 0x95, 0x8e, 0x8b, 0x86, 0x7b, 0x78, 0x7a, 0x7c, 0x82, 0x87, 0x7d, 0x76, 0x76, 0x7a, +0x8c, 0x94, 0x95, 0xa7, 0x9f, 0x8c, 0x7c, 0x6d, 0x73, 0x72, 0x63, 0x5e, 0x5c, 0x5a, 0x67, 0x79, +0x8a, 0x90, 0x90, 0x97, 0x9b, 0x90, 0x80, 0x79, 0x8e, 0x9e, 0xa0, 0x96, 0x8f, 0x8e, 0x8e, 0x90, +0x90, 0x87, 0x77, 0x6a, 0x6f, 0x70, 0x79, 0x8b, 0x84, 0x77, 0x6c, 0x5e, 0x64, 0x6e, 0x80, 0x87, +0x88, 0x95, 0x97, 0x8a, 0x76, 0x71, 0x7b, 0x90, 0x90, 0x86, 0x82, 0x7d, 0x83, 0x8c, 0x90, 0x87, +0x7d, 0x82, 0x82, 0x87, 0x80, 0x79, 0x7b, 0x76, 0x73, 0x6b, 0x5e, 0x5f, 0x6a, 0x7b, 0x7d, 0x80, +0x8b, 0x8d, 0x87, 0x82, 0x8f, 0xa6, 0x9e, 0x8f, 0x7a, 0x6a, 0x64, 0x6d, 0x7e, 0x85, 0x87, 0x93, +0x95, 0x8a, 0x7e, 0x78, 0x80, 0x84, 0x75, 0x6c, 0x5d, 0x54, 0x62, 0x72, 0x80, 0x82, 0x7d, 0x80, +0x7e, 0x78, 0x71, 0x65, 0x68, 0x75, 0x7c, 0x6c, 0x6a, 0x77, 0x80, 0x83, 0x83, 0x85, 0x89, 0x77, +0x6f, 0x6e, 0x75, 0x7b, 0x6c, 0x5d, 0x51, 0x43, 0x47, 0x63, 0x76, 0x7c, 0x82, 0x94, 0x9a, 0x8c, +0x7c, 0x70, 0x74, 0x7e, 0x7a, 0x77, 0x6e, 0x67, 0x6a, 0x6e, 0x76, 0x75, 0x69, 0x65, 0x6c, 0x77, +0x6e, 0x6d, 0x7a, 0x81, 0x81, 0x76, 0x7b, 0x8f, 0x90, 0x8d, 0x84, 0x81, 0x7c, 0x73, 0x71, 0x78, +0x84, 0x93, 0x95, 0x8b, 0x7c, 0x74, 0x82, 0x97, 0x9f, 0x9a, 0x92, 0x9c, 0xa0, 0x9c, 0x95, 0x8d, +0x8e, 0x8a, 0x7d, 0x7b, 0x74, 0x6a, 0x71, 0x83, 0x90, 0x86, 0x85, 0x91, 0x92, 0x92, 0x8c, 0x93, +0xa2, 0xa0, 0x94, 0x82, 0x83, 0x8f, 0x91, 0x91, 0x90, 0x8a, 0x86, 0x85, 0x88, 0x8f, 0x9c, 0xa5, +0x99, 0x85, 0x6f, 0x5c, 0x65, 0x82, 0x93, 0x94, 0x93, 0x9d, 0x98, 0x8a, 0x7e, 0x72, 0x71, 0x76, +0x79, 0x7b, 0x6a, 0x6d, 0x81, 0x8a, 0x8e, 0x8c, 0x96, 0x97, 0x8c, 0x82, 0x71, 0x6b, 0x6b, 0x6b, +0x6b, 0x67, 0x67, 0x75, 0x82, 0x84, 0x83, 0x84, 0x86, 0x83, 0x83, 0x84, 0x87, 0x8d, 0x8b, 0x84, +0x72, 0x66, 0x74, 0x86, 0x8a, 0x88, 0x83, 0x84, 0x7d, 0x7d, 0x73, 0x60, 0x63, 0x67, 0x63, 0x65, +0x63, 0x71, 0x7e, 0x81, 0x80, 0x7a, 0x7c, 0x7b, 0x74, 0x79, 0x78, 0x78, 0x86, 0x8a, 0x83, 0x7e, +0x86, 0x99, 0xa1, 0x99, 0x8e, 0x83, 0x79, 0x7e, 0x89, 0x8a, 0x91, 0x8d, 0x7e, 0x72, 0x65, 0x5a, +0x66, 0x7e, 0x8d, 0x89, 0x84, 0x93, 0x8f, 0x88, 0x82, 0x7c, 0x91, 0x8c, 0x77, 0x6b, 0x60, 0x67, +0x71, 0x71, 0x75, 0x74, 0x73, 0x74, 0x77, 0x76, 0x73, 0x73, 0x79, 0x7e, 0x77, 0x6d, 0x68, 0x70, +0x80, 0x80, 0x7b, 0x78, 0x73, 0x6e, 0x6f, 0x75, 0x7b, 0x81, 0x77, 0x6d, 0x5e, 0x53, 0x67, 0x7c, +0x83, 0x82, 0x8d, 0xa6, 0x98, 0x8d, 0x79, 0x6a, 0x6d, 0x63, 0x5b, 0x5a, 0x57, 0x60, 0x73, 0x80, +0x85, 0x8a, 0x8f, 0x93, 0x8e, 0x8f, 0x8e, 0x83, 0x81, 0x88, 0x88, 0x84, 0x88, 0x94, 0x95, 0x8d, +0x88, 0x82, 0x7d, 0x84, 0x8c, 0x88, 0x86, 0x81, 0x79, 0x76, 0x6e, 0x79, 0x99, 0x9f, 0x9d, 0x92, +0x95, 0xa4, 0x94, 0x86, 0x7d, 0x77, 0x80, 0x81, 0x77, 0x74, 0x78, 0x86, 0x97, 0x9b, 0x9c, 0x9a, +0x91, 0x89, 0x92, 0x94, 0x8a, 0x81, 0x7c, 0x81, 0x7d, 0x72, 0x78, 0x86, 0x91, 0x8d, 0x7e, 0x71, +0x6b, 0x6b, 0x72, 0x81, 0x94, 0x9b, 0x80, 0x6b, 0x61, 0x69, 0x7c, 0x81, 0x80, 0x7e, 0x86, 0x95, +0x94, 0x8f, 0x7c, 0x72, 0x71, 0x6c, 0x68, 0x65, 0x63, 0x68, 0x73, 0x87, 0x90, 0x94, 0x94, 0x8d, +0x83, 0x7c, 0x7a, 0x7a, 0x83, 0x88, 0x86, 0x80, 0x7b, 0x86, 0x8b, 0x8c, 0x8a, 0x8e, 0x90, 0x87, +0x85, 0x83, 0x84, 0x79, 0x67, 0x60, 0x5c, 0x68, 0x7d, 0x92, 0x96, 0x92, 0x9d, 0xac, 0xa4, 0x95, +0x8e, 0x8d, 0x84, 0x76, 0x72, 0x77, 0x7e, 0x86, 0x8c, 0x8c, 0x8c, 0x8c, 0x8f, 0x8e, 0x8e, 0x87, +0x73, 0x5f, 0x5d, 0x6b, 0x71, 0x6a, 0x7b, 0x8d, 0x8a, 0x81, 0x76, 0x75, 0x6f, 0x65, 0x67, 0x76, +0x81, 0x7e, 0x72, 0x66, 0x69, 0x76, 0x85, 0x8f, 0x94, 0x95, 0x98, 0x9a, 0x8e, 0x8c, 0x81, 0x79, +0x73, 0x6a, 0x65, 0x5e, 0x65, 0x7a, 0x8b, 0x97, 0x97, 0x90, 0x87, 0x7f, 0x7d, 0x80, 0x82, 0x8a, +0x8c, 0x7e, 0x79, 0x78, 0x80, 0x84, 0x7b, 0x77, 0x72, 0x6c, 0x6c, 0x79, 0x81, 0x85, 0x82, 0x78, +0x6e, 0x6b, 0x6a, 0x6f, 0x75, 0x83, 0x90, 0x8f, 0x99, 0xa0, 0x8b, 0x74, 0x66, 0x6e, 0x73, 0x68, +0x61, 0x64, 0x68, 0x69, 0x6e, 0x7a, 0x84, 0x81, 0x8b, 0x87, 0x79, 0x71, 0x69, 0x63, 0x61, 0x62, +0x60, 0x60, 0x6b, 0x79, 0x88, 0x82, 0x7c, 0x78, 0x75, 0x77, 0x7d, 0x8d, 0x8e, 0x7c, 0x6b, 0x71, +0x7e, 0x86, 0x87, 0x87, 0x86, 0x84, 0x93, 0x9d, 0x90, 0x85, 0x77, 0x6b, 0x5d, 0x56, 0x62, 0x65, +0x70, 0x8f, 0x99, 0x96, 0x91, 0x8f, 0x8f, 0x81, 0x74, 0x72, 0x74, 0x72, 0x77, 0x82, 0x87, 0x8e, +0x8f, 0x93, 0x93, 0x93, 0x90, 0x87, 0x7e, 0x8c, 0x9a, 0x9e, 0x95, 0x83, 0x75, 0x73, 0x75, 0x8d, +0x9c, 0xa4, 0xa4, 0x99, 0x9d, 0x9a, 0x85, 0x83, 0x81, 0x86, 0x8e, 0x79, 0x6c, 0x70, 0x7c, 0x88, +0x87, 0x86, 0x8a, 0x86, 0x7e, 0x83, 0x89, 0x82, 0x7b, 0x6d, 0x6d, 0x77, 0x79, 0x7a, 0x84, 0x84, +0x89, 0x8c, 0x8a, 0x88, 0x7e, 0x7c, 0x7d, 0x85, 0x8a, 0x84, 0x79, 0x7e, 0x87, 0x85, 0x80, 0x86, +0x94, 0x94, 0xa2, 0xab, 0x94, 0x82, 0x76, 0x75, 0x6b, 0x5d, 0x5b, 0x5c, 0x6f, 0x84, 0x94, 0x9e, +0x9b, 0x98, 0x93, 0x8e, 0x8c, 0x8f, 0x8a, 0x7c, 0x77, 0x81, 0x8f, 0x94, 0x93, 0x8a, 0x80, 0x79, +0x7b, 0x7b, 0x78, 0x81, 0x82, 0x78, 0x68, 0x56, 0x55, 0x61, 0x6a, 0x86, 0x96, 0x91, 0x8a, 0x83, +0x91, 0x8c, 0x74, 0x6b, 0x67, 0x66, 0x64, 0x63, 0x66, 0x6f, 0x7d, 0x88, 0x8f, 0x95, 0x99, 0x94, +0x88, 0x82, 0x84, 0x84, 0x81, 0x74, 0x6e, 0x74, 0x76, 0x88, 0x9a, 0x97, 0x92, 0x8b, 0x7d, 0x74, +0x6e, 0x72, 0x84, 0x85, 0x87, 0x88, 0x75, 0x6e, 0x74, 0x7b, 0x7b, 0x7a, 0x7b, 0x77, 0x7e, 0x7b, +0x7a, 0x71, 0x66, 0x67, 0x5c, 0x56, 0x57, 0x5e, 0x74, 0x81, 0x85, 0x8a, 0x88, 0x86, 0x80, 0x74, +0x70, 0x74, 0x6f, 0x69, 0x6a, 0x70, 0x76, 0x72, 0x6e, 0x68, 0x6a, 0x73, 0x75, 0x7d, 0x80, 0x77, +0x6d, 0x6d, 0x6b, 0x63, 0x5b, 0x56, 0x62, 0x71, 0x7a, 0x8a, 0x89, 0x83, 0x91, 0x8d, 0x7e, 0x7e, +0x7d, 0x76, 0x73, 0x6d, 0x6e, 0x78, 0x87, 0x8d, 0x8c, 0x8c, 0x90, 0x93, 0x8d, 0x8b, 0x87, 0x7d, +0x6f, 0x63, 0x61, 0x70, 0x83, 0x99, 0xaf, 0xaa, 0x9c, 0x93, 0x8e, 0x8f, 0x8b, 0x89, 0x8e, 0x85, +0x7c, 0x85, 0x89, 0x89, 0x92, 0x9a, 0x9b, 0x9c, 0x99, 0x9c, 0xa6, 0x9c, 0x93, 0x8a, 0x85, 0x82, +0x74, 0x66, 0x63, 0x78, 0x97, 0xa2, 0xa2, 0xa2, 0x97, 0x83, 0x7c, 0x76, 0x7e, 0x89, 0x80, 0x88, +0x88, 0x82, 0x82, 0x89, 0x8d, 0x84, 0x7d, 0x78, 0x74, 0x73, 0x79, 0x85, 0x84, 0x82, 0x7c, 0x79, +0x70, 0x6d, 0x7e, 0x8c, 0x92, 0x94, 0x92, 0x95, 0x9f, 0x94, 0x86, 0x86, 0x84, 0x7c, 0x75, 0x6b, +0x6d, 0x72, 0x76, 0x7c, 0x7a, 0x82, 0x8a, 0x8f, 0x96, 0x8d, 0x7c, 0x71, 0x6a, 0x64, 0x61, 0x66, +0x6e, 0x7c, 0x83, 0x85, 0x89, 0x87, 0x83, 0x81, 0x81, 0x86, 0x8e, 0x8a, 0x88, 0x91, 0x89, 0x83, +0x8a, 0x8f, 0x89, 0x80, 0x7d, 0x85, 0x89, 0x82, 0x7c, 0x77, 0x6a, 0x5d, 0x56, 0x4c, 0x52, 0x6c, +0x89, 0x9d, 0x91, 0x85, 0x7b, 0x78, 0x77, 0x70, 0x73, 0x6a, 0x5d, 0x5f, 0x67, 0x73, 0x80, 0x88, +0x88, 0x80, 0x78, 0x7a, 0x80, 0x7e, 0x80, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x78, 0x7b, 0x91, 0x9f, +0xa1, 0x9a, 0x91, 0x82, 0x75, 0x71, 0x76, 0x89, 0x89, 0x8a, 0x89, 0x71, 0x68, 0x6d, 0x81, 0x83, +0x78, 0x76, 0x71, 0x6e, 0x6d, 0x71, 0x72, 0x6f, 0x68, 0x66, 0x64, 0x61, 0x74, 0x86, 0x8b, 0x86, +0x78, 0x75, 0x73, 0x6f, 0x69, 0x72, 0x7e, 0x82, 0x8c, 0x8c, 0x85, 0x7c, 0x78, 0x7a, 0x75, 0x73, +0x7c, 0x82, 0x88, 0x8a, 0x80, 0x7a, 0x73, 0x74, 0x70, 0x61, 0x60, 0x72, 0x83, 0x8d, 0x8f, 0x8d, +0x8c, 0x88, 0x87, 0x87, 0x8a, 0x89, 0x86, 0x84, 0x82, 0x83, 0x8d, 0x94, 0x8e, 0x7a, 0x74, 0x79, +0x7e, 0x84, 0x88, 0x85, 0x7d, 0x75, 0x79, 0x7d, 0x72, 0x7c, 0x92, 0xa5, 0xa8, 0x97, 0x8c, 0x85, +0x87, 0x82, 0x89, 0x8c, 0x80, 0x78, 0x6e, 0x6b, 0x75, 0x84, 0x92, 0x90, 0x85, 0x82, 0x87, 0x88, +0x88, 0x84, 0x78, 0x75, 0x6f, 0x6c, 0x68, 0x6a, 0x83, 0x94, 0x9d, 0x99, 0x89, 0x7c, 0x74, 0x74, +0x77, 0x82, 0x87, 0x91, 0xa0, 0x90, 0x7e, 0x7a, 0x82, 0x90, 0x85, 0x80, 0x7b, 0x71, 0x6c, 0x72, +0x78, 0x7a, 0x78, 0x70, 0x6f, 0x63, 0x65, 0x82, 0x90, 0x98, 0x91, 0x85, 0x87, 0x86, 0x7e, 0x80, +0x86, 0x86, 0x85, 0x7e, 0x78, 0x7d, 0x81, 0x83, 0x81, 0x73, 0x71, 0x77, 0x80, 0x8e, 0x87, 0x77, +0x74, 0x7d, 0x8d, 0x85, 0x77, 0x7b, 0x82, 0x8a, 0x94, 0x92, 0x90, 0x8c, 0x87, 0x8d, 0x96, 0x97, +0x98, 0x95, 0x87, 0x7a, 0x7c, 0x89, 0x90, 0x84, 0x79, 0x7d, 0x81, 0x83, 0x88, 0x81, 0x73, 0x68, +0x5d, 0x5f, 0x61, 0x6a, 0x80, 0x91, 0x96, 0x81, 0x6e, 0x66, 0x6d, 0x77, 0x71, 0x73, 0x74, 0x78, +0x7d, 0x75, 0x72, 0x76, 0x7a, 0x82, 0x87, 0x86, 0x85, 0x84, 0x86, 0x8c, 0x8b, 0x87, 0x89, 0x87, +0x80, 0x7b, 0x85, 0x92, 0x9a, 0x9d, 0x97, 0x8d, 0x86, 0x85, 0x85, 0x85, 0x86, 0x87, 0x8d, 0x8e, +0x7d, 0x79, 0x79, 0x81, 0x80, 0x6f, 0x6d, 0x6c, 0x6b, 0x6e, 0x6c, 0x69, 0x73, 0x81, 0x8f, 0x90, +0x84, 0x7b, 0x7a, 0x7c, 0x81, 0x83, 0x7c, 0x75, 0x6f, 0x67, 0x6b, 0x76, 0x7c, 0x7c, 0x78, 0x70, +0x6c, 0x6a, 0x6d, 0x6f, 0x6f, 0x70, 0x77, 0x86, 0x85, 0x73, 0x67, 0x60, 0x67, 0x6d, 0x67, 0x6c, +0x6d, 0x6a, 0x68, 0x62, 0x63, 0x68, 0x6f, 0x76, 0x76, 0x78, 0x84, 0x91, 0x97, 0x91, 0x8a, 0x85, +0x83, 0x7b, 0x79, 0x81, 0x85, 0x82, 0x83, 0x83, 0x7d, 0x79, 0x78, 0x7e, 0x83, 0x81, 0x83, 0x88, +0x96, 0x95, 0x8c, 0x89, 0x89, 0x91, 0x8b, 0x81, 0x81, 0x7e, 0x7b, 0x79, 0x76, 0x78, 0x7e, 0x83, +0x82, 0x7c, 0x79, 0x7a, 0x7e, 0x7e, 0x7a, 0x7a, 0x80, 0x89, 0x8b, 0x86, 0x86, 0x86, 0x85, 0x88, +0x90, 0x90, 0x87, 0x80, 0x81, 0x81, 0x86, 0x8a, 0x93, 0x9b, 0x91, 0x82, 0x7a, 0x7b, 0x86, 0x7e, +0x7a, 0x81, 0x84, 0x83, 0x7c, 0x73, 0x70, 0x74, 0x7d, 0x8a, 0x8d, 0x8d, 0x8a, 0x8a, 0x87, 0x83, +0x83, 0x82, 0x83, 0x7b, 0x7c, 0x8d, 0x9d, 0xa7, 0xa9, 0xa3, 0x94, 0x86, 0x84, 0x85, 0x8b, 0x90, +0x8d, 0x8f, 0x95, 0x8a, 0x7e, 0x79, 0x7b, 0x8a, 0x84, 0x7d, 0x81, 0x81, 0x7e, 0x7b, 0x7b, 0x82, +0x8b, 0x8e, 0x8c, 0x8a, 0x88, 0x88, 0x89, 0x88, 0x88, 0x86, 0x81, 0x7b, 0x71, 0x6d, 0x70, 0x73, +0x73, 0x74, 0x76, 0x78, 0x78, 0x7e, 0x87, 0x84, 0x80, 0x78, 0x78, 0x80, 0x81, 0x81, 0x7c, 0x75, +0x74, 0x71, 0x73, 0x78, 0x78, 0x74, 0x6d, 0x68, 0x68, 0x70, 0x74, 0x76, 0x7c, 0x83, 0x87, 0x86, +0x80, 0x78, 0x74, 0x76, 0x7d, 0x83, 0x84, 0x85, 0x82, 0x7d, 0x7d, 0x7c, 0x7b, 0x78, 0x77, 0x76, +0x7a, 0x84, 0x88, 0x8a, 0x8a, 0x85, 0x7a, 0x70, 0x6e, 0x6e, 0x71, 0x70, 0x6e, 0x6a, 0x69, 0x67, +0x65, 0x6a, 0x73, 0x7b, 0x7d, 0x7c, 0x7c, 0x79, 0x77, 0x75, 0x78, 0x7d, 0x7b, 0x74, 0x6d, 0x6c, +0x6c, 0x6c, 0x6b, 0x6d, 0x71, 0x6c, 0x65, 0x66, 0x67, 0x6b, 0x71, 0x73, 0x74, 0x74, 0x73, 0x75, +0x7a, 0x82, 0x8a, 0x89, 0x85, 0x82, 0x7d, 0x7c, 0x7d, 0x7b, 0x7e, 0x7e, 0x81, 0x87, 0x8c, 0x91, +0x8f, 0x8d, 0x8c, 0x8a, 0x86, 0x87, 0x89, 0x88, 0x8c, 0x8e, 0x8d, 0x87, 0x80, 0x7c, 0x7a, 0x7d, +0x85, 0x88, 0x8c, 0x91, 0x8d, 0x87, 0x84, 0x80, 0x81, 0x82, 0x82, 0x85, 0x89, 0x8b, 0x8d, 0x90, +0x92, 0x90, 0x8b, 0x87, 0x89, 0x89, 0x8c, 0x8e, 0x8e, 0x89, 0x87, 0x84, 0x83, 0x84, 0x84, 0x85, +0x83, 0x82, 0x80, 0x7d, 0x7c, 0x82, 0x8a, 0x8e, 0x8b, 0x88, 0x86, 0x88, 0x8b, 0x8a, 0x87, 0x84, +0x84, 0x81, 0x7b, 0x79, 0x79, 0x79, 0x79, 0x79, 0x7b, 0x7b, 0x79, 0x7b, 0x84, 0x8d, 0x90, 0x8f, +0x90, 0x8d, 0x85, 0x82, 0x84, 0x85, 0x81, 0x7d, 0x82, 0x85, 0x89, 0x8b, 0x89, 0x86, 0x85, 0x85, +0x7c, 0x78, 0x7b, 0x82, 0x8a, 0x8e, 0x8b, 0x80, 0x72, 0x6d, 0x6e, 0x71, 0x71, 0x72, 0x76, 0x79, +0x76, 0x75, 0x76, 0x74, 0x74, 0x7a, 0x81, 0x85, 0x86, 0x8c, 0x90, 0x90, 0x93, 0x92, 0x8c, 0x81, +0x7a, 0x79, 0x7a, 0x79, 0x76, 0x72, 0x70, 0x6e, 0x70, 0x70, 0x70, 0x72, 0x73, 0x77, 0x77, 0x76, +0x75, 0x75, 0x76, 0x76, 0x74, 0x6e, 0x6d, 0x70, 0x71, 0x6f, 0x70, 0x72, 0x73, 0x72, 0x71, 0x75, +0x78, 0x78, 0x7b, 0x7e, 0x7e, 0x80, 0x81, 0x86, 0x8c, 0x93, 0x97, 0x98, 0x99, 0x94, 0x8e, 0x8a, +0x8c, 0x8e, 0x8a, 0x88, 0x8b, 0x8c, 0x90, 0x93, 0x8f, 0x8a, 0x85, 0x7d, 0x78, 0x78, 0x79, 0x7e, +0x80, 0x7b, 0x77, 0x71, 0x6b, 0x6a, 0x6c, 0x73, 0x79, 0x7b, 0x80, 0x83, 0x7e, 0x78, 0x78, 0x74, +0x73, 0x72, 0x72, 0x73, 0x74, 0x78, 0x7a, 0x7a, 0x7b, 0x7e, 0x7c, 0x74, 0x72, 0x76, 0x7b, 0x7d, +0x7b, 0x79, 0x76, 0x71, 0x71, 0x75, 0x79, 0x77, 0x79, 0x7d, 0x80, 0x82, 0x83, 0x85, 0x84, 0x82, +0x83, 0x83, 0x83, 0x83, 0x87, 0x86, 0x84, 0x88, 0x8a, 0x85, 0x7e, 0x82, 0x87, 0x82, 0x7d, 0x7a, +0x78, 0x74, 0x75, 0x7c, 0x83, 0x8a, 0x8f, 0x94, 0x97, 0x94, 0x8f, 0x8a, 0x88, 0x84, 0x81, 0x7d, +0x7c, 0x7d, 0x80, 0x82, 0x7e, 0x7d, 0x7c, 0x78, 0x76, 0x7d, 0x86, 0x89, 0x86, 0x84, 0x7e, 0x76, +0x72, 0x71, 0x73, 0x75, 0x79, 0x7c, 0x7e, 0x7c, 0x78, 0x78, 0x76, 0x74, 0x76, 0x78, 0x7a, 0x80, +0x87, 0x90, 0x94, 0x91, 0x92, 0x91, 0x8b, 0x85, 0x7e, 0x7e, 0x81, 0x7d, 0x7b, 0x78, 0x75, 0x72, +0x71, 0x76, 0x7e, 0x82, 0x82, 0x83, 0x84, 0x86, 0x87, 0x89, 0x88, 0x82, 0x7b, 0x78, 0x7b, 0x7e, +0x80, 0x7c, 0x7b, 0x7e, 0x80, 0x7e, 0x7a, 0x7b, 0x7b, 0x78, 0x7a, 0x7d, 0x7a, 0x76, 0x76, 0x78, +0x7e, 0x7d, 0x7e, 0x86, 0x8b, 0x8c, 0x8a, 0x8a, 0x8a, 0x86, 0x84, 0x88, 0x8e, 0x8f, 0x90, 0x91, +0x8c, 0x8a, 0x8b, 0x87, 0x85, 0x86, 0x8a, 0x88, 0x7e, 0x78, 0x74, 0x6c, 0x66, 0x6a, 0x72, 0x74, +0x76, 0x78, 0x7d, 0x81, 0x7e, 0x7b, 0x78, 0x73, 0x6f, 0x6e, 0x6e, 0x72, 0x78, 0x80, 0x84, 0x84, +0x8b, 0x90, 0x8d, 0x8f, 0x93, 0x96, 0x91, 0x89, 0x88, 0x85, 0x82, 0x81, 0x83, 0x87, 0x86, 0x89, +0x8b, 0x8a, 0x8a, 0x8c, 0x8a, 0x86, 0x83, 0x80, 0x7c, 0x7b, 0x80, 0x87, 0x88, 0x84, 0x80, 0x7e, +0x7b, 0x77, 0x76, 0x72, 0x6e, 0x68, 0x68, 0x6c, 0x68, 0x67, 0x68, 0x6c, 0x77, 0x84, 0x8d, 0x90, +0x8d, 0x8e, 0x8b, 0x89, 0x86, 0x80, 0x78, 0x76, 0x7e, 0x82, 0x83, 0x82, 0x7c, 0x7a, 0x77, 0x75, +0x78, 0x7c, 0x7e, 0x80, 0x7e, 0x7d, 0x78, 0x70, 0x6e, 0x71, 0x71, 0x73, 0x71, 0x71, 0x72, 0x77, +0x7a, 0x78, 0x77, 0x6f, 0x6a, 0x6d, 0x76, 0x82, 0x85, 0x89, 0x8e, 0x8d, 0x8f, 0x8e, 0x8b, 0x86, +0x82, 0x84, 0x81, 0x7b, 0x77, 0x74, 0x73, 0x70, 0x71, 0x74, 0x75, 0x76, 0x79, 0x7d, 0x82, 0x85, +0x84, 0x81, 0x7b, 0x76, 0x70, 0x6c, 0x6f, 0x76, 0x7c, 0x7a, 0x76, 0x76, 0x70, 0x70, 0x75, 0x7b, +0x7d, 0x74, 0x71, 0x72, 0x70, 0x70, 0x75, 0x80, 0x87, 0x8a, 0x91, 0x91, 0x8d, 0x8e, 0x8f, 0x8e, +0x87, 0x81, 0x7c, 0x7e, 0x8a, 0x94, 0x9a, 0x99, 0x94, 0x91, 0x8e, 0x8e, 0x92, 0x92, 0x8c, 0x87, +0x83, 0x84, 0x80, 0x7b, 0x7d, 0x80, 0x82, 0x86, 0x8b, 0x8c, 0x86, 0x85, 0x87, 0x86, 0x84, 0x7e, +0x7d, 0x79, 0x78, 0x80, 0x84, 0x8b, 0x8f, 0x92, 0x94, 0x90, 0x8d, 0x8c, 0x8c, 0x8d, 0x8a, 0x84, +0x7d, 0x7c, 0x82, 0x82, 0x82, 0x82, 0x7e, 0x7a, 0x77, 0x7b, 0x86, 0x8a, 0x87, 0x85, 0x7c, 0x78, +0x7b, 0x85, 0x8d, 0x92, 0x93, 0x8e, 0x85, 0x7e, 0x7d, 0x82, 0x7d, 0x7b, 0x7a, 0x6f, 0x69, 0x68, +0x6a, 0x6d, 0x6e, 0x73, 0x7b, 0x82, 0x88, 0x8b, 0x8a, 0x88, 0x86, 0x84, 0x7d, 0x75, 0x72, 0x72, +0x77, 0x7b, 0x80, 0x84, 0x80, 0x7c, 0x7c, 0x7c, 0x83, 0x8a, 0x93, 0x92, 0x89, 0x83, 0x81, 0x82, +0x82, 0x86, 0x89, 0x87, 0x85, 0x85, 0x83, 0x86, 0x87, 0x87, 0x83, 0x78, 0x72, 0x72, 0x75, 0x7e, +0x8b, 0x93, 0x92, 0x90, 0x8f, 0x8a, 0x86, 0x82, 0x7d, 0x78, 0x6d, 0x66, 0x6a, 0x6d, 0x74, 0x72, +0x6d, 0x70, 0x75, 0x77, 0x76, 0x75, 0x78, 0x78, 0x74, 0x70, 0x6d, 0x6a, 0x66, 0x67, 0x6d, 0x71, +0x70, 0x6d, 0x6c, 0x67, 0x64, 0x67, 0x69, 0x69, 0x69, 0x64, 0x63, 0x65, 0x68, 0x6c, 0x6f, 0x72, +0x79, 0x79, 0x77, 0x75, 0x76, 0x79, 0x7b, 0x7e, 0x7a, 0x74, 0x77, 0x81, 0x8d, 0x91, 0x91, 0x90, +0x8b, 0x84, 0x82, 0x87, 0x8a, 0x85, 0x82, 0x7e, 0x75, 0x74, 0x79, 0x83, 0x84, 0x7d, 0x7b, 0x7e, +0x80, 0x80, 0x84, 0x89, 0x8a, 0x8a, 0x87, 0x7e, 0x79, 0x78, 0x79, 0x80, 0x89, 0x8f, 0x91, 0x90, +0x91, 0x8f, 0x8c, 0x8c, 0x8e, 0x91, 0x88, 0x7e, 0x82, 0x89, 0x8d, 0x89, 0x8a, 0x8e, 0x8d, 0x89, +0x8a, 0x8a, 0x8d, 0x8f, 0x90, 0x8d, 0x85, 0x7d, 0x7e, 0x86, 0x8f, 0x97, 0x98, 0x93, 0x8d, 0x89, +0x88, 0x8b, 0x88, 0x83, 0x7b, 0x6f, 0x6e, 0x75, 0x7a, 0x83, 0x84, 0x86, 0x8d, 0x92, 0x91, 0x8c, +0x88, 0x87, 0x88, 0x87, 0x82, 0x81, 0x81, 0x81, 0x86, 0x88, 0x87, 0x82, 0x7b, 0x7c, 0x80, 0x7e, +0x80, 0x81, 0x82, 0x80, 0x79, 0x7a, 0x7c, 0x7b, 0x77, 0x72, 0x75, 0x7c, 0x79, 0x74, 0x74, 0x79, +0x7a, 0x79, 0x76, 0x70, 0x6f, 0x75, 0x80, 0x8c, 0x8f, 0x8f, 0x8c, 0x8a, 0x88, 0x87, 0x87, 0x84, +0x7c, 0x78, 0x70, 0x6d, 0x72, 0x78, 0x7b, 0x76, 0x70, 0x71, 0x75, 0x78, 0x7d, 0x81, 0x83, 0x82, +0x7c, 0x76, 0x6f, 0x6d, 0x6d, 0x70, 0x74, 0x79, 0x7d, 0x7d, 0x7a, 0x7a, 0x7d, 0x82, 0x82, 0x83, +0x7e, 0x75, 0x78, 0x84, 0x8d, 0x91, 0x91, 0x93, 0x96, 0x92, 0x8f, 0x8d, 0x87, 0x85, 0x86, 0x86, +0x83, 0x7c, 0x7b, 0x82, 0x89, 0x8c, 0x8d, 0x88, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x7a, 0x74, 0x6e, +0x69, 0x6c, 0x6f, 0x6e, 0x6c, 0x6c, 0x72, 0x79, 0x79, 0x77, 0x75, 0x77, 0x77, 0x75, 0x6f, 0x6a, +0x6c, 0x6f, 0x75, 0x7e, 0x83, 0x81, 0x7e, 0x7e, 0x83, 0x83, 0x7a, 0x76, 0x79, 0x7b, 0x7b, 0x7c, +0x80, 0x7e, 0x79, 0x71, 0x70, 0x75, 0x74, 0x73, 0x75, 0x75, 0x79, 0x7a, 0x79, 0x78, 0x76, 0x78, +0x7b, 0x82, 0x87, 0x8b, 0x8b, 0x8b, 0x8a, 0x89, 0x88, 0x88, 0x84, 0x7b, 0x72, 0x6e, 0x70, 0x78, +0x83, 0x8b, 0x88, 0x84, 0x87, 0x8c, 0x90, 0x91, 0x8f, 0x8c, 0x89, 0x85, 0x82, 0x81, 0x81, 0x80, +0x81, 0x83, 0x83, 0x82, 0x81, 0x83, 0x84, 0x85, 0x86, 0x84, 0x81, 0x7c, 0x7a, 0x79, 0x7c, 0x7e, +0x7c, 0x80, 0x86, 0x89, 0x87, 0x85, 0x82, 0x82, 0x80, 0x7b, 0x78, 0x74, 0x73, 0x7b, 0x89, 0x94, +0x96, 0x93, 0x91, 0x8e, 0x8e, 0x8b, 0x86, 0x83, 0x82, 0x80, 0x81, 0x83, 0x84, 0x84, 0x81, 0x7d, +0x80, 0x83, 0x84, 0x86, 0x85, 0x85, 0x87, 0x84, 0x80, 0x7c, 0x79, 0x76, 0x75, 0x77, 0x7c, 0x7e, +0x7d, 0x7e, 0x80, 0x82, 0x7c, 0x77, 0x78, 0x78, 0x76, 0x76, 0x78, 0x7b, 0x7a, 0x77, 0x76, 0x79, +0x7c, 0x7e, 0x82, 0x84, 0x83, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x83, 0x87, 0x8a, 0x8a, 0x8a, +0x8b, 0x8a, 0x88, 0x87, 0x86, 0x81, 0x77, 0x73, 0x72, 0x71, 0x74, 0x78, 0x79, 0x76, 0x79, 0x7e, +0x83, 0x84, 0x83, 0x82, 0x7c, 0x71, 0x6b, 0x6a, 0x6e, 0x76, 0x7d, 0x86, 0x88, 0x87, 0x89, 0x8b, +0x8d, 0x8d, 0x89, 0x88, 0x8a, 0x8c, 0x8d, 0x8f, 0x8f, 0x92, 0x93, 0x92, 0x96, 0x99, 0x96, 0x90, +0x8c, 0x8a, 0x89, 0x84, 0x81, 0x80, 0x79, 0x77, 0x7d, 0x85, 0x8a, 0x8c, 0x8b, 0x89, 0x82, 0x7b, +0x77, 0x77, 0x73, 0x6c, 0x6a, 0x6e, 0x73, 0x79, 0x7c, 0x7a, 0x76, 0x77, 0x7a, 0x7d, 0x81, 0x80, +0x7c, 0x79, 0x78, 0x76, 0x75, 0x73, 0x73, 0x73, 0x74, 0x76, 0x77, 0x79, 0x7b, 0x7c, 0x7a, 0x74, +0x71, 0x71, 0x70, 0x70, 0x6f, 0x6d, 0x69, 0x63, 0x66, 0x6e, 0x74, 0x73, 0x70, 0x6d, 0x6d, 0x70, +0x6c, 0x65, 0x62, 0x65, 0x6e, 0x7b, 0x84, 0x89, 0x89, 0x86, 0x86, 0x87, 0x89, 0x88, 0x84, 0x81, +0x81, 0x7a, 0x78, 0x78, 0x76, 0x79, 0x80, 0x81, 0x82, 0x85, 0x86, 0x86, 0x83, 0x82, 0x7e, 0x72, +0x6a, 0x6a, 0x74, 0x7a, 0x7b, 0x7e, 0x85, 0x88, 0x89, 0x89, 0x87, 0x80, 0x78, 0x7b, 0x7e, 0x7b, +0x79, 0x7d, 0x84, 0x88, 0x8a, 0x89, 0x8c, 0x91, 0x94, 0x93, 0x8f, 0x8f, 0x8e, 0x8b, 0x8b, 0x8d, +0x8b, 0x87, 0x89, 0x91, 0x98, 0x9c, 0x9c, 0x99, 0x94, 0x8a, 0x87, 0x81, 0x78, 0x7d, 0x7c, 0x79, +0x7a, 0x7c, 0x7e, 0x7d, 0x79, 0x7a, 0x83, 0x87, 0x86, 0x84, 0x82, 0x82, 0x78, 0x6d, 0x6c, 0x74, +0x7c, 0x82, 0x84, 0x84, 0x89, 0x87, 0x85, 0x87, 0x8e, 0x91, 0x8d, 0x88, 0x8f, 0x91, 0x8d, 0x87, +0x84, 0x86, 0x81, 0x7a, 0x7a, 0x7d, 0x79, 0x81, 0x89, 0x89, 0x84, 0x7b, 0x75, 0x70, 0x70, 0x79, +0x82, 0x85, 0x89, 0x8c, 0x8e, 0x8e, 0x88, 0x81, 0x7c, 0x79, 0x71, 0x6e, 0x70, 0x79, 0x7c, 0x7b, +0x7d, 0x7e, 0x78, 0x72, 0x72, 0x76, 0x78, 0x81, 0x86, 0x82, 0x7a, 0x76, 0x74, 0x70, 0x71, 0x76, +0x77, 0x7d, 0x8d, 0x92, 0x95, 0x98, 0x93, 0x8d, 0x8c, 0x83, 0x7e, 0x86, 0x8c, 0x92, 0x97, 0x98, +0x96, 0x96, 0x98, 0x95, 0x8c, 0x86, 0x8a, 0x87, 0x7d, 0x79, 0x7b, 0x7c, 0x7a, 0x83, 0x89, 0x8a, +0x88, 0x83, 0x85, 0x85, 0x86, 0x84, 0x78, 0x76, 0x72, 0x60, 0x5e, 0x5d, 0x67, 0x71, 0x75, 0x76, +0x76, 0x72, 0x6e, 0x6f, 0x6e, 0x6c, 0x6a, 0x64, 0x60, 0x61, 0x62, 0x62, 0x69, 0x6c, 0x6b, 0x73, +0x77, 0x7a, 0x81, 0x7d, 0x79, 0x79, 0x73, 0x75, 0x7a, 0x6e, 0x6e, 0x6f, 0x6b, 0x6c, 0x72, 0x70, +0x6c, 0x68, 0x67, 0x66, 0x6c, 0x67, 0x6e, 0x7b, 0x77, 0x7b, 0x80, 0x7d, 0x84, 0x8a, 0x8c, 0x8b, +0x8a, 0x8b, 0x8b, 0x89, 0x8b, 0x85, 0x7b, 0x80, 0x75, 0x6f, 0x81, 0x86, 0x88, 0x8b, 0x87, 0x84, +0x87, 0x8e, 0x91, 0x8a, 0x7b, 0x71, 0x70, 0x73, 0x76, 0x78, 0x75, 0x76, 0x84, 0x89, 0x8a, 0x8b, +0x9a, 0xa1, 0x9a, 0x93, 0x8e, 0x7e, 0x89, 0x93, 0x8b, 0x94, 0x9a, 0x98, 0x93, 0x8c, 0x88, 0x87, +0x84, 0x87, 0x86, 0x85, 0x89, 0x8d, 0x8b, 0x8d, 0x94, 0x9c, 0x99, 0x91, 0x8f, 0x8b, 0x86, 0x84, +0x88, 0x8a, 0x87, 0x7d, 0x78, 0x85, 0x85, 0x74, 0x7e, 0x86, 0x8d, 0x8b, 0x87, 0x88, 0x8a, 0x89, +0x87, 0x81, 0x74, 0x6a, 0x66, 0x63, 0x75, 0x86, 0x8a, 0x82, 0x7b, 0x7c, 0x7a, 0x75, 0x76, 0x7c, +0x84, 0x8d, 0x7e, 0x74, 0x76, 0x6f, 0x65, 0x62, 0x6b, 0x6f, 0x6b, 0x67, 0x6b, 0x6e, 0x6a, 0x73, +0x82, 0x7e, 0x79, 0x79, 0x87, 0x8e, 0x91, 0x8f, 0x86, 0x7d, 0x86, 0x89, 0x84, 0x85, 0x89, 0x89, +0x83, 0x78, 0x72, 0x77, 0x77, 0x7a, 0x7e, 0x88, 0x85, 0x85, 0x8b, 0x86, 0x80, 0x7b, 0x78, 0x72, +0x65, 0x68, 0x6d, 0x6f, 0x78, 0x7b, 0x71, 0x7a, 0x86, 0x89, 0x89, 0x81, 0x82, 0x89, 0x93, 0x8f, +0x8b, 0x8c, 0x88, 0x8e, 0x91, 0x86, 0x8b, 0x8f, 0x8a, 0x87, 0x86, 0x8a, 0x8e, 0x8e, 0x8b, 0x87, +0x87, 0x80, 0x81, 0x8c, 0x9e, 0x9c, 0x8f, 0x7d, 0x7a, 0x74, 0x6f, 0x7a, 0x7a, 0x71, 0x66, 0x62, +0x70, 0x7c, 0x80, 0x81, 0x75, 0x6e, 0x6c, 0x70, 0x79, 0x76, 0x7a, 0x7d, 0x78, 0x6d, 0x6a, 0x71, +0x78, 0x7e, 0x7c, 0x75, 0x6f, 0x72, 0x72, 0x71, 0x74, 0x74, 0x7c, 0x7d, 0x83, 0x80, 0x74, 0x76, +0x71, 0x70, 0x6c, 0x65, 0x67, 0x6b, 0x64, 0x5a, 0x5e, 0x62, 0x70, 0x7d, 0x7a, 0x75, 0x72, 0x6e, +0x72, 0x84, 0x8d, 0x8b, 0x8d, 0x8f, 0x80, 0x77, 0x7e, 0x8e, 0x8f, 0x84, 0x7e, 0x92, 0x98, 0x8c, +0x87, 0x83, 0x7b, 0x73, 0x7b, 0x8a, 0x85, 0x82, 0x87, 0x8a, 0x89, 0x74, 0x66, 0x76, 0x8f, 0x90, +0x84, 0x71, 0x79, 0x96, 0x9c, 0x8d, 0x83, 0x89, 0x88, 0x7e, 0x89, 0x9d, 0x98, 0x93, 0x8e, 0x89, +0x83, 0x7b, 0x7c, 0x88, 0x84, 0x83, 0x84, 0x87, 0x92, 0x91, 0x8a, 0x99, 0x97, 0x93, 0x99, 0x85, +0x7f, 0x85, 0x80, 0x80, 0x76, 0x79, 0x87, 0x89, 0x7d, 0x6a, 0x6b, 0x81, 0x91, 0x93, 0x8a, 0x7e, +0x6f, 0x6e, 0x74, 0x70, 0x7d, 0x88, 0x82, 0x80, 0x79, 0x6a, 0x6f, 0x72, 0x76, 0x7d, 0x7a, 0x75, +0x7c, 0x84, 0x83, 0x7d, 0x7a, 0x81, 0x81, 0x89, 0x8c, 0x85, 0x8a, 0x81, 0x73, 0x67, 0x65, 0x66, +0x5b, 0x5d, 0x6a, 0x72, 0x7e, 0x8d, 0x92, 0x88, 0x82, 0x8b, 0x92, 0x94, 0x8c, 0x86, 0x8a, 0x88, +0x91, 0x93, 0x85, 0x7c, 0x83, 0x7b, 0x75, 0x7c, 0x80, 0x86, 0x84, 0x86, 0x85, 0x81, 0x7c, 0x77, +0x83, 0x88, 0x88, 0x85, 0x85, 0x80, 0x6d, 0x77, 0x8d, 0x88, 0x7e, 0x79, 0x74, 0x79, 0x85, 0x8e, +0x91, 0x8c, 0x8d, 0x97, 0x94, 0x96, 0x8b, 0x93, 0xa9, 0xa3, 0x99, 0x92, 0x83, 0x76, 0x6d, 0x7b, +0x85, 0x89, 0x88, 0x8e, 0x89, 0x7e, 0x82, 0x81, 0x8d, 0x94, 0x85, 0x80, 0x7c, 0x73, 0x6f, 0x72, +0x7a, 0x78, 0x79, 0x7b, 0x7a, 0x76, 0x7d, 0x7d, 0x76, 0x6f, 0x6c, 0x6c, 0x67, 0x63, 0x72, 0x71, +0x72, 0x7e, 0x7b, 0x66, 0x5d, 0x75, 0x86, 0x80, 0x73, 0x72, 0x6c, 0x67, 0x64, 0x69, 0x78, 0x78, +0x71, 0x7d, 0x7e, 0x6e, 0x59, 0x54, 0x5c, 0x5b, 0x5e, 0x64, 0x5f, 0x54, 0x53, 0x5f, 0x67, 0x7a, +0x7e, 0x76, 0x70, 0x81, 0x87, 0x80, 0x7e, 0x83, 0x80, 0x77, 0x78, 0x88, 0x84, 0x85, 0x92, 0x97, +0x8e, 0x81, 0x8d, 0x89, 0x8b, 0x8a, 0x8e, 0x8c, 0x85, 0x83, 0x84, 0x7e, 0x8b, 0x8c, 0x84, 0x7a, +0x72, 0x6d, 0x6e, 0x73, 0x6e, 0x6e, 0x79, 0x87, 0x94, 0x95, 0x93, 0x90, 0x89, 0x8f, 0x96, 0xa1, +0xa3, 0xa1, 0x92, 0x84, 0x86, 0x81, 0x81, 0x88, 0x88, 0x82, 0x88, 0x93, 0x93, 0x8a, 0x7c, 0x78, +0x8b, 0x97, 0xa4, 0xae, 0xa3, 0x98, 0x8c, 0x83, 0x7c, 0x74, 0x7d, 0x89, 0x82, 0x7d, 0x83, 0x83, +0x7e, 0x87, 0x8b, 0x83, 0x76, 0x78, 0x81, 0x87, 0x81, 0x80, 0x84, 0x76, 0x6a, 0x6f, 0x71, 0x75, +0x80, 0x82, 0x81, 0x79, 0x7b, 0x80, 0x7c, 0x7c, 0x80, 0x80, 0x83, 0x8e, 0x8e, 0x79, 0x7c, 0x78, +0x7c, 0x73, 0x68, 0x6d, 0x6c, 0x6e, 0x6e, 0x66, 0x5d, 0x6b, 0x8b, 0x8e, 0x7e, 0x76, 0x80, 0x81, +0x87, 0x91, 0x8d, 0x84, 0x80, 0x7c, 0x83, 0x95, 0x97, 0x9f, 0x9c, 0x84, 0x85, 0x81, 0x7a, 0x82, +0x80, 0x85, 0x84, 0x7c, 0x88, 0x99, 0x96, 0x8f, 0x8b, 0x84, 0x76, 0x6b, 0x77, 0x83, 0x86, 0x87, +0x83, 0x7c, 0x79, 0x8a, 0x91, 0x90, 0x87, 0x84, 0x9a, 0x96, 0x88, 0x85, 0x7a, 0x6f, 0x70, 0x74, +0x84, 0x8c, 0x80, 0x7e, 0x85, 0x7b, 0x81, 0x85, 0x81, 0x77, 0x80, 0x83, 0x7b, 0x7c, 0x6e, 0x6e, +0x75, 0x72, 0x70, 0x72, 0x7d, 0x84, 0x8d, 0x8c, 0x69, 0x5c, 0x68, 0x6f, 0x77, 0x76, 0x75, 0x76, +0x70, 0x6d, 0x7b, 0x7e, 0x6b, 0x5c, 0x5c, 0x66, 0x5c, 0x56, 0x63, 0x69, 0x6a, 0x60, 0x5b, 0x68, +0x6b, 0x6a, 0x70, 0x77, 0x82, 0x9c, 0x91, 0x74, 0x73, 0x5b, 0x50, 0x59, 0x5b, 0x66, 0x6e, 0x69, +0x73, 0x7c, 0x79, 0x73, 0x7b, 0x89, 0x84, 0x83, 0x93, 0x9b, 0x9b, 0x9a, 0x94, 0x88, 0x8c, 0x93, +0x9d, 0x9e, 0x94, 0x97, 0x93, 0x88, 0x83, 0x87, 0x77, 0x7c, 0x8e, 0x90, 0x95, 0x91, 0xa7, 0xb1, +0xa2, 0x8e, 0x82, 0x87, 0x7a, 0x77, 0x87, 0x86, 0x83, 0x7e, 0x72, 0x74, 0x7b, 0x78, 0x8f, 0xa0, +0xa4, 0xb2, 0xb4, 0xa1, 0x91, 0x88, 0x8c, 0x82, 0x77, 0x83, 0x88, 0x78, 0x77, 0x90, 0x95, 0x8e, +0x81, 0x75, 0x72, 0x76, 0x77, 0x73, 0x82, 0x9b, 0x95, 0x85, 0x7c, 0x74, 0x6a, 0x69, 0x6f, 0x81, +0x89, 0x7d, 0x71, 0x65, 0x6c, 0x6b, 0x63, 0x64, 0x6f, 0x7c, 0x78, 0x7c, 0x8b, 0x93, 0x90, 0x87, +0x85, 0x85, 0x84, 0x75, 0x6c, 0x72, 0x7b, 0x7b, 0x6d, 0x6f, 0x77, 0x7c, 0x88, 0x95, 0x9a, 0x97, +0x96, 0x83, 0x74, 0x71, 0x72, 0x72, 0x66, 0x6a, 0x74, 0x6f, 0x74, 0x7b, 0x81, 0x81, 0x77, 0x78, +0x84, 0x85, 0x7d, 0x88, 0x90, 0x8b, 0x8a, 0x89, 0x83, 0x81, 0x88, 0x92, 0xa1, 0xa1, 0x95, 0x8e, +0x81, 0x72, 0x73, 0x7a, 0x7d, 0x71, 0x75, 0x82, 0x8a, 0x93, 0x92, 0x8f, 0x7e, 0x70, 0x6f, 0x70, +0x6d, 0x71, 0x78, 0x76, 0x74, 0x75, 0x75, 0x6e, 0x6e, 0x72, 0x7d, 0x8b, 0x89, 0x85, 0x7e, 0x76, +0x73, 0x79, 0x7a, 0x75, 0x75, 0x81, 0x8b, 0x90, 0x91, 0x95, 0x9b, 0x96, 0x92, 0x94, 0x8d, 0x85, +0x86, 0x8b, 0x8f, 0x8c, 0x83, 0x7b, 0x77, 0x7b, 0x7d, 0x82, 0x7d, 0x71, 0x68, 0x65, 0x65, 0x6d, +0x74, 0x71, 0x6c, 0x6e, 0x73, 0x78, 0x80, 0x81, 0x84, 0x85, 0x7d, 0x76, 0x73, 0x72, 0x75, 0x79, +0x7a, 0x7a, 0x7a, 0x7b, 0x7c, 0x7e, 0x83, 0x87, 0x88, 0x84, 0x81, 0x82, 0x7c, 0x75, 0x6e, 0x69, +0x69, 0x68, 0x69, 0x6e, 0x71, 0x70, 0x70, 0x75, 0x75, 0x6d, 0x69, 0x68, 0x6b, 0x72, 0x7a, 0x7e, +0x82, 0x84, 0x84, 0x84, 0x83, 0x83, 0x84, 0x84, 0x83, 0x79, 0x76, 0x7a, 0x82, 0x88, 0x8a, 0x8c, +0x8f, 0x90, 0x90, 0x93, 0x96, 0x9e, 0xa0, 0x94, 0x8a, 0x85, 0x7c, 0x7c, 0x7e, 0x7a, 0x75, 0x70, +0x74, 0x7e, 0x80, 0x7a, 0x78, 0x78, 0x77, 0x76, 0x77, 0x7a, 0x82, 0x84, 0x85, 0x83, 0x84, 0x89, +0x8d, 0x90, 0x8e, 0x8c, 0x8d, 0x8c, 0x89, 0x85, 0x84, 0x85, 0x89, 0x8a, 0x8d, 0x8f, 0x90, 0x8d, +0x85, 0x7e, 0x7d, 0x7e, 0x81, 0x7e, 0x7b, 0x76, 0x74, 0x7c, 0x80, 0x7b, 0x76, 0x70, 0x71, 0x78, +0x7b, 0x7d, 0x81, 0x81, 0x7b, 0x74, 0x70, 0x72, 0x76, 0x7a, 0x7e, 0x80, 0x7d, 0x80, 0x84, 0x87, +0x89, 0x88, 0x83, 0x81, 0x7d, 0x76, 0x77, 0x7d, 0x80, 0x7a, 0x78, 0x7b, 0x7c, 0x80, 0x81, 0x81, +0x81, 0x85, 0x8d, 0x91, 0x90, 0x89, 0x84, 0x83, 0x84, 0x89, 0x89, 0x89, 0x8b, 0x8b, 0x8a, 0x87, +0x85, 0x83, 0x82, 0x7c, 0x77, 0x79, 0x7e, 0x85, 0x86, 0x86, 0x8b, 0x8f, 0x91, 0x93, 0x91, 0x8f, +0x8c, 0x83, 0x7a, 0x76, 0x75, 0x7a, 0x7d, 0x7d, 0x79, 0x74, 0x77, 0x7d, 0x83, 0x83, 0x80, 0x7c, +0x7c, 0x80, 0x81, 0x85, 0x89, 0x8b, 0x89, 0x86, 0x83, 0x86, 0x8b, 0x8e, 0x90, 0x8d, 0x89, 0x87, +0x86, 0x85, 0x85, 0x87, 0x8b, 0x8a, 0x87, 0x87, 0x87, 0x86, 0x80, 0x7c, 0x7d, 0x7b, 0x76, 0x72, +0x6b, 0x62, 0x64, 0x6b, 0x75, 0x79, 0x75, 0x73, 0x72, 0x71, 0x76, 0x79, 0x7b, 0x82, 0x82, 0x7d, +0x78, 0x74, 0x74, 0x74, 0x70, 0x6c, 0x67, 0x66, 0x66, 0x69, 0x6d, 0x6d, 0x6a, 0x66, 0x61, 0x5b, +0x5d, 0x61, 0x62, 0x61, 0x5f, 0x63, 0x69, 0x6c, 0x6c, 0x69, 0x63, 0x61, 0x66, 0x6a, 0x6e, 0x6e, +0x70, 0x72, 0x75, 0x79, 0x7d, 0x80, 0x85, 0x8a, 0x8b, 0x8c, 0x8b, 0x8f, 0x92, 0x91, 0x90, 0x8f, +0x8f, 0x90, 0x8e, 0x8c, 0x8d, 0x8f, 0x8f, 0x91, 0x92, 0x8f, 0x8b, 0x86, 0x7e, 0x7d, 0x81, 0x83, +0x85, 0x87, 0x84, 0x81, 0x81, 0x84, 0x8a, 0x8b, 0x89, 0x83, 0x7c, 0x7a, 0x7c, 0x81, 0x8a, 0x92, +0x93, 0x91, 0x8d, 0x8f, 0x94, 0x96, 0x9b, 0x9b, 0x98, 0x98, 0x98, 0x99, 0x9b, 0x9b, 0x99, 0x98, +0x95, 0x91, 0x8a, 0x83, 0x7d, 0x78, 0x7a, 0x7b, 0x78, 0x73, 0x71, 0x6f, 0x6f, 0x72, 0x79, 0x7c, +0x7c, 0x80, 0x81, 0x80, 0x7d, 0x82, 0x83, 0x83, 0x81, 0x7d, 0x7c, 0x7b, 0x7c, 0x83, 0x86, 0x84, +0x82, 0x81, 0x82, 0x86, 0x87, 0x89, 0x8a, 0x8b, 0x8b, 0x88, 0x88, 0x89, 0x85, 0x80, 0x77, 0x74, +0x76, 0x78, 0x78, 0x79, 0x79, 0x75, 0x74, 0x74, 0x79, 0x7c, 0x7a, 0x7b, 0x7c, 0x7e, 0x83, 0x86, +0x88, 0x87, 0x84, 0x81, 0x80, 0x7a, 0x77, 0x78, 0x78, 0x7b, 0x80, 0x84, 0x86, 0x85, 0x85, 0x85, +0x88, 0x89, 0x87, 0x86, 0x89, 0x8d, 0x88, 0x83, 0x81, 0x82, 0x81, 0x7c, 0x75, 0x71, 0x6f, 0x6c, +0x6c, 0x6d, 0x6f, 0x6b, 0x63, 0x60, 0x64, 0x6a, 0x72, 0x78, 0x7c, 0x80, 0x80, 0x7e, 0x7e, 0x83, +0x87, 0x8b, 0x87, 0x85, 0x82, 0x83, 0x86, 0x87, 0x8a, 0x8a, 0x89, 0x88, 0x85, 0x85, 0x82, 0x7c, +0x76, 0x77, 0x7a, 0x7a, 0x7a, 0x78, 0x75, 0x72, 0x72, 0x73, 0x72, 0x73, 0x70, 0x69, 0x68, 0x6c, +0x71, 0x74, 0x75, 0x74, 0x73, 0x70, 0x6e, 0x72, 0x75, 0x76, 0x7a, 0x79, 0x76, 0x75, 0x76, 0x79, +0x79, 0x74, 0x6f, 0x6d, 0x6b, 0x6f, 0x71, 0x72, 0x72, 0x70, 0x76, 0x7a, 0x79, 0x7c, 0x7a, 0x78, +0x7d, 0x83, 0x8a, 0x8f, 0x8e, 0x8a, 0x86, 0x80, 0x82, 0x8a, 0x8c, 0x8c, 0x89, 0x88, 0x89, 0x89, +0x89, 0x8b, 0x8b, 0x88, 0x8b, 0x8f, 0x94, 0x9a, 0x9c, 0x9f, 0x9d, 0x9a, 0x98, 0x94, 0x92, 0x90, +0x8a, 0x87, 0x84, 0x82, 0x88, 0x8b, 0x88, 0x84, 0x81, 0x80, 0x82, 0x85, 0x85, 0x84, 0x7c, 0x73, +0x79, 0x81, 0x86, 0x88, 0x86, 0x82, 0x7e, 0x7b, 0x78, 0x76, 0x79, 0x7d, 0x7c, 0x7c, 0x7d, 0x7c, +0x7d, 0x7e, 0x80, 0x81, 0x81, 0x7e, 0x82, 0x85, 0x87, 0x86, 0x81, 0x7c, 0x7c, 0x7a, 0x78, 0x75, +0x71, 0x71, 0x73, 0x81, 0x8a, 0x8b, 0x86, 0x81, 0x7e, 0x81, 0x8e, 0x95, 0x93, 0x90, 0x8f, 0x8b, +0x87, 0x87, 0x86, 0x84, 0x82, 0x80, 0x79, 0x77, 0x78, 0x78, 0x77, 0x75, 0x75, 0x74, 0x70, 0x6c, +0x6e, 0x6f, 0x6e, 0x6d, 0x6f, 0x73, 0x73, 0x75, 0x79, 0x77, 0x76, 0x75, 0x78, 0x7b, 0x7c, 0x7c, +0x7e, 0x7b, 0x7a, 0x86, 0x8b, 0x8f, 0x8f, 0x8d, 0x8a, 0x83, 0x82, 0x85, 0x85, 0x83, 0x83, 0x84, +0x85, 0x86, 0x88, 0x88, 0x80, 0x7d, 0x7e, 0x7d, 0x7c, 0x7e, 0x80, 0x7d, 0x7a, 0x79, 0x7d, 0x81, +0x80, 0x7d, 0x7d, 0x78, 0x70, 0x72, 0x75, 0x74, 0x71, 0x6d, 0x6d, 0x6d, 0x6c, 0x73, 0x74, 0x78, +0x82, 0x83, 0x82, 0x8d, 0x91, 0x95, 0x94, 0x92, 0x92, 0x91, 0x95, 0x9a, 0x9e, 0x9d, 0x9b, 0x96, +0x92, 0x91, 0x8d, 0x83, 0x7d, 0x80, 0x87, 0x87, 0x85, 0x85, 0x76, 0x6d, 0x6f, 0x73, 0x7a, 0x7d, +0x80, 0x7c, 0x7b, 0x7c, 0x7a, 0x77, 0x6f, 0x6f, 0x6f, 0x73, 0x7e, 0x83, 0x85, 0x89, 0x89, 0x85, +0x81, 0x74, 0x71, 0x77, 0x81, 0x86, 0x88, 0x85, 0x81, 0x7a, 0x78, 0x77, 0x71, 0x6c, 0x6e, 0x70, +0x71, 0x73, 0x74, 0x71, 0x69, 0x63, 0x6a, 0x69, 0x65, 0x68, 0x6f, 0x78, 0x82, 0x89, 0x8e, 0x8d, +0x81, 0x78, 0x70, 0x66, 0x70, 0x75, 0x77, 0x7c, 0x84, 0x83, 0x7e, 0x83, 0x89, 0x87, 0x7d, 0x7b, +0x7d, 0x76, 0x7e, 0x86, 0x82, 0x7e, 0x7e, 0x81, 0x8c, 0x90, 0x8d, 0x8b, 0x8a, 0x89, 0x85, 0x81, +0x80, 0x81, 0x74, 0x73, 0x73, 0x6e, 0x68, 0x6b, 0x6e, 0x71, 0x77, 0x7a, 0x7c, 0x7c, 0x86, 0x8e, +0x8f, 0x91, 0x93, 0x8b, 0x82, 0x84, 0x8c, 0x91, 0x91, 0x8e, 0x91, 0x95, 0x92, 0x90, 0x85, 0x7c, +0x83, 0x88, 0x85, 0x8c, 0x89, 0x86, 0x84, 0x80, 0x7a, 0x80, 0x83, 0x7d, 0x76, 0x75, 0x7c, 0x7e, +0x7e, 0x80, 0x81, 0x79, 0x6e, 0x6f, 0x75, 0x76, 0x86, 0x96, 0x9f, 0x9d, 0x95, 0x89, 0x86, 0x8f, +0x94, 0x88, 0x84, 0x7c, 0x77, 0x76, 0x76, 0x75, 0x75, 0x79, 0x82, 0x85, 0x86, 0x87, 0x83, 0x7b, +0x85, 0x93, 0x90, 0x81, 0x80, 0x82, 0x79, 0x77, 0x7c, 0x87, 0x8d, 0x8c, 0x85, 0x7d, 0x78, 0x73, +0x6f, 0x71, 0x78, 0x78, 0x72, 0x74, 0x7b, 0x82, 0x89, 0x8b, 0x89, 0x81, 0x78, 0x7b, 0x82, 0x7b, +0x75, 0x72, 0x70, 0x6f, 0x76, 0x78, 0x7a, 0x82, 0x8f, 0x9a, 0x90, 0x7a, 0x6e, 0x73, 0x6d, 0x67, +0x71, 0x7b, 0x7e, 0x80, 0x7d, 0x77, 0x6e, 0x76, 0x8e, 0x8e, 0x84, 0x7e, 0x86, 0x86, 0x83, 0x83, +0x80, 0x7e, 0x84, 0x8e, 0x91, 0x90, 0x9c, 0xa0, 0x9c, 0x9c, 0x98, 0x92, 0x87, 0x7b, 0x72, 0x6b, +0x6a, 0x6d, 0x7d, 0x73, 0x71, 0x74, 0x77, 0x73, 0x61, 0x67, 0x7b, 0x78, 0x75, 0x6f, 0x66, 0x70, +0x83, 0x80, 0x7b, 0x72, 0x66, 0x70, 0x7d, 0x7d, 0x77, 0x75, 0x6f, 0x68, 0x67, 0x5f, 0x50, 0x5a, +0x69, 0x6a, 0x63, 0x66, 0x74, 0x7e, 0x82, 0x86, 0x7e, 0x73, 0x6d, 0x6f, 0x7b, 0x74, 0x67, 0x6f, +0x73, 0x71, 0x77, 0x86, 0x8e, 0x80, 0x87, 0x8d, 0x8d, 0xa1, 0x9e, 0x93, 0x88, 0x7e, 0x7d, 0x88, +0x8e, 0x85, 0x81, 0x87, 0x8d, 0x8e, 0x89, 0x86, 0x89, 0x87, 0x7d, 0x71, 0x6e, 0x75, 0x86, 0x96, +0x9a, 0x96, 0x8f, 0x8c, 0x8d, 0x93, 0x92, 0x85, 0x85, 0x83, 0x7d, 0x7b, 0x6f, 0x6e, 0x7c, 0x77, +0x75, 0x72, 0x83, 0x94, 0x97, 0x9a, 0x9a, 0x98, 0x94, 0x99, 0x96, 0x8d, 0x95, 0x9b, 0x94, 0x85, +0x87, 0x91, 0x99, 0x91, 0x86, 0x83, 0x88, 0x8b, 0x8a, 0x83, 0x7c, 0x6d, 0x64, 0x82, 0x88, 0x7c, +0x74, 0x75, 0x75, 0x76, 0x81, 0x82, 0x83, 0x87, 0x7e, 0x6b, 0x66, 0x7e, 0x92, 0x94, 0x8f, 0x8a, +0x88, 0x81, 0x7c, 0x93, 0xa4, 0x98, 0x8e, 0x84, 0x70, 0x63, 0x5d, 0x63, 0x6e, 0x69, 0x6a, 0x72, +0x80, 0x81, 0x79, 0x6e, 0x68, 0x70, 0x7e, 0x73, 0x5d, 0x64, 0x77, 0x7b, 0x7c, 0x7c, 0x83, 0x89, +0x82, 0x7c, 0x7c, 0x85, 0x87, 0x85, 0x85, 0x85, 0x76, 0x68, 0x65, 0x6e, 0x81, 0x8d, 0x89, 0x83, +0x81, 0x87, 0x88, 0x86, 0x83, 0x87, 0x82, 0x71, 0x6e, 0x83, 0x8c, 0x85, 0x7c, 0x7e, 0x8b, 0x88, +0x76, 0x6c, 0x65, 0x61, 0x60, 0x5c, 0x5c, 0x62, 0x6b, 0x6e, 0x70, 0x75, 0x81, 0x8b, 0x92, 0xa1, +0x9d, 0x8e, 0x8a, 0x8b, 0x8b, 0x89, 0x8e, 0x92, 0x94, 0x99, 0x9a, 0x93, 0x86, 0x82, 0x88, 0x94, +0xa9, 0xa8, 0x9e, 0x97, 0x8e, 0x7c, 0x6b, 0x66, 0x74, 0x7a, 0x72, 0x6e, 0x72, 0x75, 0x6a, 0x5f, +0x5f, 0x63, 0x68, 0x70, 0x68, 0x6b, 0x7e, 0x82, 0x84, 0x85, 0x7d, 0x78, 0x79, 0x81, 0x8e, 0x8f, +0x88, 0x81, 0x7b, 0x7b, 0x69, 0x5e, 0x60, 0x5c, 0x61, 0x6c, 0x6e, 0x6f, 0x7b, 0x87, 0x87, 0x88, +0x93, 0x94, 0x7d, 0x6e, 0x6b, 0x6c, 0x6b, 0x78, 0x8d, 0x8d, 0x87, 0x8b, 0x8f, 0x89, 0x7d, 0x7c, +0x7c, 0x7e, 0x82, 0x85, 0x87, 0x87, 0x81, 0x7a, 0x76, 0x81, 0x89, 0x92, 0x97, 0x95, 0x97, 0x93, +0x89, 0x86, 0x81, 0x85, 0x8e, 0x8c, 0x8d, 0x93, 0x94, 0x92, 0x95, 0x9d, 0x9d, 0x91, 0x87, 0x7e, +0x78, 0x76, 0x75, 0x74, 0x6e, 0x6a, 0x7c, 0x8d, 0x8b, 0x89, 0x86, 0x7a, 0x78, 0x80, 0x80, 0x72, +0x72, 0x7b, 0x87, 0x91, 0x87, 0x80, 0x84, 0x84, 0x87, 0x9a, 0x98, 0x8d, 0x7b, 0x74, 0x77, 0x75, +0x69, 0x6d, 0x7b, 0x71, 0x6a, 0x6c, 0x6d, 0x63, 0x6a, 0x80, 0x85, 0x87, 0x85, 0x7d, 0x74, 0x79, +0x8e, 0x91, 0x87, 0x85, 0x8f, 0x8f, 0x8f, 0x86, 0x89, 0x8a, 0x79, 0x6d, 0x72, 0x70, 0x6c, 0x6f, +0x7a, 0x7d, 0x71, 0x6a, 0x6d, 0x6b, 0x6e, 0x73, 0x78, 0x75, 0x7a, 0x83, 0x7c, 0x73, 0x73, 0x78, +0x75, 0x75, 0x7d, 0x82, 0x76, 0x6e, 0x82, 0x9a, 0x9c, 0x9c, 0x9a, 0x8f, 0x85, 0x84, 0x88, 0x8a, +0x82, 0x70, 0x66, 0x6f, 0x6d, 0x6b, 0x75, 0x77, 0x79, 0x83, 0x81, 0x7e, 0x7c, 0x7e, 0x81, 0x85, +0x84, 0x7c, 0x7a, 0x89, 0x9a, 0x8c, 0x82, 0x81, 0x71, 0x69, 0x67, 0x73, 0x7a, 0x84, 0x8c, 0x8c, +0x79, 0x72, 0x8a, 0x9b, 0xa5, 0xa6, 0xa2, 0xa5, 0xa1, 0x97, 0x9b, 0x9e, 0x99, 0x91, 0x91, 0x93, +0x92, 0x9b, 0x9e, 0x8b, 0x7c, 0x86, 0x7b, 0x72, 0x76, 0x74, 0x77, 0x6d, 0x6f, 0x6b, 0x63, 0x57, +0x51, 0x5e, 0x6a, 0x6e, 0x71, 0x77, 0x6d, 0x68, 0x65, 0x5c, 0x69, 0x7b, 0x83, 0x82, 0x7e, 0x79, +0x79, 0x83, 0x86, 0x86, 0x84, 0x6e, 0x58, 0x52, 0x67, 0x7c, 0x7c, 0x70, 0x6c, 0x62, 0x51, 0x52, +0x5e, 0x60, 0x63, 0x6a, 0x79, 0x75, 0x60, 0x5b, 0x63, 0x6e, 0x75, 0x6d, 0x6e, 0x79, 0x87, 0xa8, +0xb8, 0x9c, 0x92, 0x8c, 0x8f, 0x8a, 0x8c, 0x91, 0x9d, 0xa0, 0xa4, 0xaf, 0xa8, 0x8f, 0x87, 0x8d, +0x9d, 0xa5, 0xa8, 0x9c, 0x8e, 0x8a, 0x88, 0x89, 0x97, 0x99, 0x93, 0x95, 0x86, 0x8d, 0xa3, 0x92, +0x82, 0x80, 0x71, 0x62, 0x66, 0x70, 0x79, 0x83, 0x84, 0x88, 0x80, 0x6e, 0x68, 0x86, 0x9a, 0x9c, +0x94, 0x8b, 0x83, 0x7b, 0x73, 0x6f, 0x71, 0x81, 0x89, 0x8f, 0x95, 0x8f, 0x90, 0x8f, 0x91, 0x94, +0x8d, 0x70, 0x68, 0x78, 0x7c, 0x7e, 0x7d, 0x81, 0x7e, 0x6c, 0x5a, 0x55, 0x5a, 0x64, 0x6c, 0x6e, +0x6e, 0x6f, 0x6b, 0x63, 0x68, 0x72, 0x74, 0x7b, 0x8c, 0x92, 0x9f, 0xab, 0xa0, 0x92, 0x89, 0x80, +0x6e, 0x64, 0x72, 0x7b, 0x79, 0x7c, 0x8a, 0x90, 0x85, 0x71, 0x75, 0x82, 0x8c, 0x8a, 0x7e, 0x7d, +0x80, 0x7c, 0x7a, 0x85, 0x8a, 0x82, 0x81, 0x84, 0x8c, 0x92, 0x8e, 0x85, 0x7b, 0x75, 0x6d, 0x6b, +0x6d, 0x75, 0x82, 0x7d, 0x7c, 0x82, 0x87, 0x85, 0x82, 0x89, 0x8c, 0x8e, 0x87, 0x80, 0x80, 0x81, +0x80, 0x7c, 0x7a, 0x7a, 0x7d, 0x7d, 0x7d, 0x7d, 0x7a, 0x7a, 0x79, 0x7a, 0x79, 0x75, 0x72, 0x72, +0x76, 0x7a, 0x7b, 0x80, 0x7d, 0x79, 0x75, 0x74, 0x79, 0x7d, 0x82, 0x7e, 0x7a, 0x79, 0x7d, 0x84, +0x88, 0x86, 0x82, 0x7e, 0x7e, 0x87, 0x95, 0x99, 0x97, 0x93, 0x8e, 0x8b, 0x89, 0x89, 0x85, 0x7b, +0x74, 0x72, 0x72, 0x73, 0x77, 0x78, 0x77, 0x78, 0x79, 0x7a, 0x76, 0x75, 0x77, 0x77, 0x74, 0x71, +0x71, 0x72, 0x70, 0x6f, 0x6e, 0x6e, 0x6f, 0x72, 0x73, 0x71, 0x70, 0x6e, 0x6e, 0x6f, 0x72, 0x76, +0x7d, 0x7e, 0x80, 0x86, 0x87, 0x87, 0x84, 0x85, 0x85, 0x7c, 0x79, 0x79, 0x7b, 0x82, 0x82, 0x80, +0x82, 0x80, 0x7d, 0x81, 0x85, 0x8b, 0x90, 0x8e, 0x89, 0x8b, 0x90, 0x91, 0x91, 0x8f, 0x8c, 0x8d, +0x8f, 0x92, 0x92, 0x8c, 0x86, 0x83, 0x83, 0x83, 0x82, 0x81, 0x80, 0x81, 0x83, 0x86, 0x87, 0x87, +0x87, 0x86, 0x84, 0x7d, 0x7a, 0x83, 0x8c, 0x8f, 0x90, 0x8b, 0x83, 0x7e, 0x7c, 0x7e, 0x83, 0x84, +0x84, 0x80, 0x7d, 0x80, 0x84, 0x82, 0x7c, 0x79, 0x79, 0x7b, 0x7e, 0x81, 0x7d, 0x79, 0x78, 0x76, +0x74, 0x78, 0x7c, 0x80, 0x80, 0x7b, 0x79, 0x79, 0x77, 0x77, 0x74, 0x70, 0x70, 0x73, 0x7c, 0x82, +0x81, 0x7b, 0x77, 0x7a, 0x7a, 0x7a, 0x7e, 0x7c, 0x7b, 0x79, 0x7a, 0x7c, 0x80, 0x82, 0x7e, 0x7d, +0x82, 0x87, 0x8c, 0x8c, 0x89, 0x86, 0x81, 0x7b, 0x7b, 0x7a, 0x7c, 0x86, 0x8a, 0x89, 0x80, 0x77, +0x76, 0x76, 0x76, 0x72, 0x6f, 0x6f, 0x6f, 0x6f, 0x75, 0x7a, 0x79, 0x7a, 0x80, 0x81, 0x7b, 0x78, +0x7d, 0x83, 0x84, 0x83, 0x84, 0x84, 0x81, 0x80, 0x7e, 0x7d, 0x86, 0x8d, 0x8d, 0x89, 0x88, 0x88, +0x85, 0x83, 0x83, 0x85, 0x87, 0x87, 0x87, 0x85, 0x82, 0x80, 0x7e, 0x7c, 0x77, 0x71, 0x6f, 0x72, +0x74, 0x75, 0x72, 0x74, 0x75, 0x74, 0x75, 0x78, 0x7e, 0x88, 0x91, 0x8e, 0x89, 0x86, 0x86, 0x8c, +0x90, 0x91, 0x94, 0x97, 0x9a, 0x9a, 0x9a, 0x98, 0x96, 0x94, 0x93, 0x93, 0x98, 0x97, 0x95, 0x92, +0x8c, 0x86, 0x84, 0x83, 0x82, 0x7d, 0x77, 0x76, 0x78, 0x76, 0x72, 0x70, 0x71, 0x6f, 0x6b, 0x63, +0x5f, 0x64, 0x6a, 0x6b, 0x6a, 0x6b, 0x6d, 0x70, 0x73, 0x72, 0x6e, 0x6d, 0x6f, 0x72, 0x75, 0x75, +0x74, 0x72, 0x75, 0x78, 0x79, 0x7c, 0x84, 0x85, 0x82, 0x7e, 0x7d, 0x7a, 0x7a, 0x7a, 0x73, 0x6c, +0x6b, 0x70, 0x73, 0x75, 0x7b, 0x80, 0x80, 0x7b, 0x75, 0x74, 0x7a, 0x7d, 0x79, 0x76, 0x7c, 0x81, +0x82, 0x86, 0x89, 0x8a, 0x90, 0x96, 0x99, 0x95, 0x8d, 0x89, 0x8a, 0x8c, 0x8b, 0x8a, 0x8b, 0x8c, +0x8c, 0x8d, 0x8a, 0x85, 0x83, 0x82, 0x81, 0x7e, 0x79, 0x74, 0x70, 0x71, 0x78, 0x7a, 0x7b, 0x7b, +0x7a, 0x77, 0x78, 0x7e, 0x85, 0x81, 0x79, 0x78, 0x78, 0x78, 0x77, 0x76, 0x76, 0x75, 0x7a, 0x80, +0x82, 0x84, 0x86, 0x89, 0x88, 0x84, 0x86, 0x8d, 0x8f, 0x8d, 0x8a, 0x8a, 0x8c, 0x8b, 0x8c, 0x8a, +0x87, 0x86, 0x81, 0x7c, 0x7d, 0x82, 0x84, 0x83, 0x82, 0x7e, 0x79, 0x76, 0x79, 0x81, 0x83, 0x81, +0x84, 0x8a, 0x88, 0x85, 0x82, 0x81, 0x82, 0x82, 0x81, 0x7d, 0x7c, 0x80, 0x82, 0x83, 0x80, 0x85, +0x8a, 0x8b, 0x86, 0x7e, 0x7b, 0x7d, 0x7e, 0x80, 0x7e, 0x79, 0x74, 0x74, 0x73, 0x74, 0x7b, 0x81, +0x86, 0x85, 0x84, 0x87, 0x87, 0x86, 0x83, 0x7a, 0x79, 0x7d, 0x82, 0x86, 0x89, 0x8a, 0x8a, 0x8d, +0x8d, 0x87, 0x83, 0x81, 0x7d, 0x7d, 0x80, 0x81, 0x83, 0x85, 0x85, 0x82, 0x7e, 0x7e, 0x7e, 0x7c, +0x78, 0x73, 0x6d, 0x6b, 0x6b, 0x67, 0x65, 0x69, 0x70, 0x77, 0x7a, 0x7c, 0x7b, 0x7b, 0x83, 0x87, +0x85, 0x84, 0x84, 0x82, 0x82, 0x85, 0x86, 0x8a, 0x8d, 0x92, 0x93, 0x93, 0x92, 0x8c, 0x88, 0x86, +0x86, 0x89, 0x88, 0x84, 0x80, 0x7c, 0x7a, 0x7b, 0x7c, 0x7a, 0x7a, 0x77, 0x73, 0x6f, 0x6b, 0x69, +0x6c, 0x72, 0x75, 0x71, 0x6a, 0x66, 0x6a, 0x70, 0x71, 0x71, 0x71, 0x6e, 0x6c, 0x6a, 0x6c, 0x6f, +0x6f, 0x6d, 0x6c, 0x6c, 0x6a, 0x6c, 0x71, 0x73, 0x78, 0x81, 0x83, 0x81, 0x7e, 0x79, 0x75, 0x73, +0x72, 0x77, 0x78, 0x75, 0x75, 0x76, 0x75, 0x76, 0x7e, 0x89, 0x8c, 0x8b, 0x88, 0x84, 0x85, 0x88, +0x8c, 0x8c, 0x8a, 0x8b, 0x8c, 0x8f, 0x93, 0x96, 0x95, 0x94, 0x92, 0x94, 0x94, 0x93, 0x91, 0x90, +0x90, 0x8d, 0x8c, 0x90, 0x90, 0x91, 0x93, 0x93, 0x92, 0x8c, 0x87, 0x83, 0x7b, 0x74, 0x71, 0x72, +0x73, 0x78, 0x7e, 0x8a, 0x90, 0x8c, 0x8a, 0x8b, 0x8d, 0x8e, 0x8e, 0x8d, 0x90, 0x91, 0x8d, 0x8c, +0x8c, 0x85, 0x81, 0x81, 0x84, 0x85, 0x82, 0x7d, 0x7a, 0x79, 0x76, 0x75, 0x78, 0x75, 0x72, 0x70, +0x6e, 0x6d, 0x70, 0x70, 0x69, 0x6b, 0x74, 0x73, 0x6b, 0x68, 0x6c, 0x72, 0x76, 0x78, 0x74, 0x6b, +0x68, 0x6e, 0x76, 0x7b, 0x79, 0x77, 0x78, 0x7b, 0x81, 0x82, 0x7d, 0x7c, 0x7d, 0x84, 0x87, 0x87, +0x8a, 0x8f, 0x91, 0x92, 0x97, 0x9a, 0x96, 0x91, 0x8f, 0x8b, 0x87, 0x84, 0x81, 0x79, 0x73, 0x73, +0x76, 0x74, 0x77, 0x7b, 0x7d, 0x81, 0x82, 0x7d, 0x77, 0x77, 0x79, 0x7d, 0x80, 0x80, 0x80, 0x83, +0x87, 0x8a, 0x8c, 0x8a, 0x82, 0x7c, 0x86, 0x8b, 0x87, 0x84, 0x83, 0x81, 0x80, 0x82, 0x83, 0x82, +0x84, 0x80, 0x79, 0x71, 0x6e, 0x6f, 0x6a, 0x64, 0x64, 0x5c, 0x5b, 0x60, 0x68, 0x71, 0x76, 0x77, +0x78, 0x79, 0x7d, 0x83, 0x86, 0x84, 0x84, 0x84, 0x86, 0x8c, 0x90, 0x91, 0x91, 0x95, 0x9c, 0xa1, +0xa2, 0x9d, 0x98, 0x98, 0x96, 0x90, 0x8d, 0x8d, 0x92, 0x8f, 0x87, 0x81, 0x84, 0x81, 0x7e, 0x7c, +0x77, 0x6e, 0x66, 0x62, 0x65, 0x76, 0x82, 0x84, 0x81, 0x79, 0x6e, 0x6d, 0x6f, 0x70, 0x6f, 0x6e, +0x72, 0x74, 0x76, 0x78, 0x72, 0x6d, 0x6d, 0x6b, 0x6e, 0x70, 0x71, 0x7b, 0x83, 0x87, 0x88, 0x85, +0x85, 0x86, 0x82, 0x82, 0x80, 0x79, 0x75, 0x77, 0x7b, 0x78, 0x76, 0x7a, 0x79, 0x7b, 0x79, 0x87, +0x8b, 0x80, 0x7d, 0x84, 0x8b, 0x8e, 0x92, 0x95, 0x90, 0x87, 0x8d, 0x99, 0x9c, 0x97, 0x93, 0x91, +0x8f, 0x8e, 0x8f, 0x93, 0x96, 0x91, 0x8b, 0x89, 0x8b, 0x8d, 0x8b, 0x84, 0x79, 0x79, 0x77, 0x70, +0x69, 0x68, 0x6b, 0x6a, 0x6a, 0x70, 0x71, 0x70, 0x61, 0x5c, 0x74, 0x7d, 0x74, 0x7e, 0x85, 0x7d, +0x7a, 0x79, 0x78, 0x7c, 0x80, 0x79, 0x76, 0x75, 0x76, 0x7a, 0x76, 0x71, 0x75, 0x79, 0x74, 0x70, +0x75, 0x81, 0x89, 0x88, 0x88, 0x88, 0x82, 0x82, 0x7e, 0x81, 0x84, 0x81, 0x80, 0x7c, 0x7b, 0x78, +0x74, 0x74, 0x75, 0x7c, 0x85, 0x87, 0x8f, 0x98, 0x9b, 0x94, 0x8a, 0x87, 0x82, 0x84, 0x81, 0x82, +0x8f, 0x99, 0x9b, 0x9a, 0x9a, 0x8d, 0x89, 0x8e, 0x83, 0x87, 0x8b, 0x82, 0x74, 0x6c, 0x6c, 0x74, +0x7a, 0x76, 0x71, 0x69, 0x65, 0x68, 0x6a, 0x72, 0x7b, 0x7d, 0x75, 0x76, 0x7a, 0x7c, 0x8c, 0x8f, +0x91, 0x9a, 0x99, 0x93, 0x8d, 0x8c, 0x9d, 0x95, 0x85, 0x8c, 0x8f, 0x89, 0x89, 0x88, 0x83, 0x86, +0x83, 0x79, 0x84, 0x8e, 0x8f, 0x8c, 0x8a, 0x8e, 0x88, 0x70, 0x62, 0x63, 0x5f, 0x5b, 0x5a, 0x60, +0x70, 0x77, 0x75, 0x71, 0x6d, 0x79, 0x80, 0x74, 0x85, 0x89, 0x7b, 0x72, 0x72, 0x79, 0x7e, 0x88, +0x8e, 0x89, 0x88, 0x91, 0x9c, 0x9c, 0x95, 0x8d, 0x88, 0x82, 0x86, 0x91, 0x93, 0x8f, 0x90, 0x90, +0x82, 0x75, 0x6e, 0x64, 0x74, 0x7c, 0x6f, 0x70, 0x7b, 0x7a, 0x70, 0x69, 0x60, 0x6e, 0x76, 0x70, +0x6c, 0x73, 0x78, 0x72, 0x72, 0x71, 0x6d, 0x71, 0x6b, 0x60, 0x68, 0x72, 0x76, 0x7d, 0x88, 0x85, +0x81, 0x86, 0x8a, 0x92, 0x93, 0x87, 0x83, 0x8b, 0x84, 0x75, 0x71, 0x6b, 0x67, 0x64, 0x64, 0x6d, +0x71, 0x72, 0x78, 0x73, 0x6c, 0x76, 0x8c, 0x92, 0x88, 0x86, 0x87, 0x89, 0x8a, 0x85, 0x81, 0x83, +0x8d, 0x92, 0x8f, 0x8c, 0x89, 0x85, 0x86, 0x84, 0x7c, 0x79, 0x88, 0x93, 0x9a, 0x9c, 0x99, 0x94, +0x8b, 0x8c, 0x88, 0x80, 0x7c, 0x7d, 0x79, 0x6b, 0x6d, 0x73, 0x72, 0x70, 0x6e, 0x69, 0x75, 0x91, +0x99, 0x95, 0x8d, 0x79, 0x61, 0x6f, 0x7b, 0x75, 0x81, 0x8b, 0x8a, 0x84, 0x7d, 0x77, 0x74, 0x77, +0x72, 0x6d, 0x72, 0x75, 0x79, 0x84, 0x84, 0x83, 0x83, 0x7e, 0x8c, 0x89, 0x7c, 0x76, 0x75, 0x85, +0x81, 0x7a, 0x82, 0x8a, 0x8d, 0x8d, 0x81, 0x77, 0x8c, 0x98, 0x96, 0x8e, 0x81, 0x77, 0x81, 0x91, +0x8e, 0x8c, 0x91, 0x88, 0x8d, 0x9c, 0x99, 0x96, 0x91, 0x92, 0x94, 0x8d, 0x83, 0x85, 0x97, 0x92, +0x86, 0x78, 0x6d, 0x6e, 0x6c, 0x66, 0x60, 0x65, 0x6a, 0x65, 0x63, 0x64, 0x6c, 0x70, 0x6c, 0x5e, +0x68, 0x87, 0x94, 0x9c, 0xa9, 0x9a, 0x83, 0x78, 0x87, 0x88, 0x84, 0x81, 0x8b, 0x8b, 0x7c, 0x7a, +0x7a, 0x6d, 0x60, 0x67, 0x7e, 0x8b, 0x96, 0x95, 0x91, 0x87, 0x72, 0x7c, 0x8a, 0x79, 0x69, 0x5e, +0x5c, 0x60, 0x65, 0x6e, 0x6f, 0x6d, 0x70, 0x65, 0x61, 0x7e, 0x98, 0x92, 0x88, 0x82, 0x81, 0x7c, +0x6e, 0x70, 0x87, 0x8c, 0x8c, 0x98, 0xa3, 0x9f, 0x96, 0x86, 0x87, 0x8c, 0x89, 0x84, 0x84, 0x91, +0x9c, 0x98, 0x92, 0x88, 0x84, 0x96, 0x94, 0x89, 0x8d, 0x92, 0x7a, 0x63, 0x5d, 0x65, 0x63, 0x54, +0x4c, 0x60, 0x78, 0x82, 0x85, 0x8c, 0x89, 0x7e, 0x6f, 0x68, 0x64, 0x68, 0x72, 0x6f, 0x74, 0x87, +0x88, 0x80, 0x74, 0x6b, 0x6e, 0x73, 0x88, 0x9f, 0x99, 0x8a, 0x7b, 0x74, 0x6e, 0x70, 0x72, 0x69, +0x6f, 0x75, 0x71, 0x70, 0x77, 0x79, 0x7a, 0x86, 0x8d, 0x8c, 0x86, 0x89, 0x86, 0x7c, 0x7e, 0x8d, +0x8c, 0x83, 0x84, 0x90, 0x8f, 0x9a, 0xa8, 0xa0, 0x96, 0x8d, 0x82, 0x7c, 0x7d, 0x77, 0x70, 0x7d, +0x8d, 0x90, 0x8d, 0x91, 0x8b, 0x7b, 0x8d, 0x96, 0x83, 0x7a, 0x73, 0x71, 0x6f, 0x67, 0x67, 0x69, +0x68, 0x6b, 0x76, 0x7c, 0x96, 0x97, 0x89, 0x90, 0x8f, 0x85, 0x75, 0x71, 0x6a, 0x57, 0x61, 0x72, +0x81, 0x80, 0x81, 0x85, 0x85, 0x85, 0x80, 0x70, 0x6b, 0x7b, 0x87, 0x89, 0x82, 0x7a, 0x83, 0x83, +0x7a, 0x7e, 0x8b, 0x99, 0x8c, 0x78, 0x7d, 0x8c, 0x8a, 0x80, 0x78, 0x71, 0x7b, 0x8e, 0x86, 0x7d, +0x82, 0x86, 0x89, 0x88, 0x8c, 0x7d, 0x6f, 0x80, 0x9b, 0xa7, 0xa0, 0x9a, 0x96, 0x92, 0x8d, 0x88, +0x80, 0x8d, 0x9b, 0x92, 0x88, 0x82, 0x79, 0x76, 0x72, 0x61, 0x4f, 0x51, 0x60, 0x5b, 0x56, 0x5a, +0x63, 0x62, 0x5e, 0x63, 0x64, 0x71, 0x80, 0x8b, 0x9a, 0x9a, 0x8e, 0x85, 0x82, 0x88, 0x8c, 0x86, +0x7a, 0x8a, 0x86, 0x7a, 0x75, 0x78, 0x77, 0x7c, 0x86, 0x88, 0x8f, 0x98, 0x8e, 0x88, 0x84, 0x80, +0x81, 0x78, 0x70, 0x7a, 0x7e, 0x7c, 0x78, 0x7c, 0x80, 0x76, 0x6a, 0x5f, 0x61, 0x66, 0x87, 0xa6, +0xa6, 0x93, 0x8b, 0x8b, 0x87, 0x85, 0x90, 0x92, 0x8f, 0x93, 0x96, 0x99, 0x96, 0x8f, 0x93, 0x90, +0x7a, 0x75, 0x79, 0x82, 0x8d, 0x8d, 0x83, 0x76, 0x87, 0xa4, 0x9c, 0x89, 0x86, 0x8b, 0x7c, 0x62, +0x5c, 0x62, 0x62, 0x60, 0x6d, 0x73, 0x6d, 0x79, 0x8b, 0x88, 0x75, 0x74, 0x77, 0x6c, 0x61, 0x60, +0x61, 0x62, 0x63, 0x66, 0x77, 0x83, 0x82, 0x89, 0x8c, 0x90, 0x87, 0x80, 0x84, 0x86, 0x74, 0x6b, +0x5f, 0x5f, 0x6e, 0x72, 0x73, 0x74, 0x6f, 0x65, 0x5c, 0x69, 0x7c, 0x89, 0x84, 0x85, 0x78, 0x6e, +0x82, 0x95, 0x9a, 0x99, 0x90, 0x94, 0xa4, 0xa3, 0xa2, 0x9d, 0x8e, 0x92, 0x83, 0x77, 0x87, 0x8c, +0x8a, 0x7c, 0x7b, 0x84, 0x92, 0x90, 0x8c, 0x8d, 0x91, 0xa0, 0xa1, 0x89, 0x6b, 0x60, 0x62, 0x64, +0x5c, 0x5a, 0x6c, 0x7a, 0x8a, 0x96, 0x90, 0x8d, 0x7a, 0x87, 0xa4, 0xa3, 0x99, 0x93, 0x90, 0x8a, +0x80, 0x74, 0x76, 0x82, 0x7a, 0x71, 0x6d, 0x87, 0x98, 0x88, 0x75, 0x72, 0x74, 0x76, 0x78, 0x80, +0x86, 0x7c, 0x7e, 0x8b, 0x87, 0x84, 0x82, 0x74, 0x70, 0x74, 0x77, 0x6d, 0x68, 0x6c, 0x73, 0x70, +0x62, 0x61, 0x77, 0x84, 0x8a, 0x96, 0x96, 0x90, 0x84, 0x7c, 0x85, 0x87, 0x8c, 0x8d, 0x8b, 0x81, +0x7c, 0x8b, 0x8d, 0x88, 0x92, 0x95, 0x8a, 0x7e, 0x83, 0x87, 0x81, 0x84, 0x8d, 0x82, 0x76, 0x72, +0x67, 0x5a, 0x54, 0x5f, 0x6c, 0x6f, 0x71, 0x70, 0x6d, 0x72, 0x81, 0x8a, 0x90, 0x8e, 0x91, 0x98, +0x95, 0x8c, 0x87, 0x87, 0x8b, 0x92, 0x95, 0x93, 0x81, 0x6f, 0x71, 0x7d, 0x85, 0x86, 0x86, 0x81, +0x7d, 0x7c, 0x81, 0x88, 0x99, 0x98, 0x83, 0x79, 0x71, 0x6b, 0x67, 0x60, 0x63, 0x6b, 0x73, 0x77, +0x74, 0x6b, 0x6b, 0x6b, 0x76, 0x83, 0x81, 0x7d, 0x7e, 0x80, 0x82, 0x85, 0x87, 0x89, 0x8b, 0x8d, +0x8f, 0x8e, 0x84, 0x7e, 0x87, 0x8d, 0x8b, 0x86, 0x84, 0x88, 0x8e, 0x8d, 0x8b, 0x8c, 0x89, 0x84, +0x83, 0x7b, 0x77, 0x77, 0x74, 0x71, 0x70, 0x6c, 0x6d, 0x6f, 0x71, 0x73, 0x72, 0x73, 0x77, 0x81, +0x87, 0x84, 0x7a, 0x6d, 0x64, 0x65, 0x67, 0x68, 0x6d, 0x73, 0x78, 0x79, 0x75, 0x78, 0x83, 0x86, +0x82, 0x82, 0x87, 0x8b, 0x8a, 0x8a, 0x89, 0x87, 0x86, 0x88, 0x86, 0x84, 0x84, 0x87, 0x8c, 0x8b, +0x86, 0x84, 0x82, 0x80, 0x80, 0x7e, 0x81, 0x85, 0x8c, 0x8f, 0x91, 0x8d, 0x89, 0x87, 0x85, 0x81, +0x80, 0x7c, 0x78, 0x74, 0x72, 0x75, 0x7c, 0x80, 0x80, 0x7d, 0x7c, 0x80, 0x86, 0x8d, 0x8d, 0x84, +0x7c, 0x78, 0x72, 0x70, 0x70, 0x72, 0x7b, 0x82, 0x7d, 0x7c, 0x7b, 0x80, 0x81, 0x7b, 0x7b, 0x81, +0x84, 0x84, 0x80, 0x7e, 0x81, 0x81, 0x80, 0x7b, 0x78, 0x7a, 0x7e, 0x81, 0x82, 0x7d, 0x7a, 0x7a, +0x79, 0x75, 0x73, 0x75, 0x7a, 0x83, 0x8b, 0x8f, 0x8c, 0x85, 0x83, 0x83, 0x81, 0x83, 0x87, 0x8b, +0x8d, 0x86, 0x81, 0x82, 0x88, 0x90, 0x91, 0x8f, 0x91, 0x8e, 0x8b, 0x8b, 0x88, 0x85, 0x82, 0x7e, +0x7d, 0x7b, 0x7c, 0x7e, 0x80, 0x7c, 0x7c, 0x7d, 0x7d, 0x80, 0x82, 0x7e, 0x7b, 0x79, 0x79, 0x79, +0x79, 0x74, 0x6c, 0x68, 0x66, 0x65, 0x6a, 0x76, 0x7a, 0x78, 0x75, 0x71, 0x71, 0x77, 0x7a, 0x7a, +0x7a, 0x7e, 0x85, 0x87, 0x8c, 0x93, 0x93, 0x90, 0x8f, 0x8b, 0x88, 0x87, 0x87, 0x85, 0x7e, 0x7b, +0x7d, 0x82, 0x84, 0x85, 0x80, 0x7e, 0x84, 0x88, 0x8c, 0x8b, 0x88, 0x81, 0x78, 0x71, 0x6e, 0x70, +0x72, 0x70, 0x6c, 0x69, 0x68, 0x6b, 0x76, 0x7e, 0x7a, 0x75, 0x71, 0x6e, 0x6f, 0x76, 0x80, 0x83, +0x85, 0x89, 0x8a, 0x8a, 0x92, 0x9a, 0x9a, 0x98, 0x92, 0x8d, 0x8d, 0x8c, 0x87, 0x84, 0x84, 0x89, +0x8d, 0x8e, 0x8b, 0x86, 0x82, 0x80, 0x7d, 0x79, 0x78, 0x76, 0x74, 0x74, 0x73, 0x77, 0x7a, 0x78, +0x79, 0x77, 0x75, 0x79, 0x81, 0x85, 0x85, 0x87, 0x85, 0x7e, 0x77, 0x6d, 0x69, 0x6b, 0x70, 0x79, +0x80, 0x7e, 0x7e, 0x82, 0x82, 0x84, 0x87, 0x8a, 0x89, 0x86, 0x88, 0x86, 0x82, 0x7c, 0x77, 0x74, +0x74, 0x77, 0x7d, 0x7e, 0x79, 0x71, 0x6b, 0x68, 0x6a, 0x69, 0x68, 0x67, 0x6c, 0x70, 0x73, 0x7a, +0x7d, 0x81, 0x85, 0x83, 0x84, 0x87, 0x85, 0x82, 0x85, 0x87, 0x86, 0x83, 0x83, 0x86, 0x8c, 0x90, +0x93, 0x95, 0x99, 0x97, 0x92, 0x8b, 0x84, 0x80, 0x79, 0x75, 0x75, 0x79, 0x7d, 0x7d, 0x7a, 0x7b, +0x81, 0x87, 0x86, 0x80, 0x77, 0x71, 0x70, 0x74, 0x78, 0x79, 0x77, 0x74, 0x73, 0x75, 0x79, 0x7c, +0x7e, 0x83, 0x82, 0x81, 0x83, 0x83, 0x85, 0x87, 0x8a, 0x8c, 0x8b, 0x8c, 0x8e, 0x8c, 0x89, 0x8c, +0x90, 0x8d, 0x89, 0x88, 0x88, 0x87, 0x86, 0x85, 0x87, 0x8b, 0x89, 0x85, 0x84, 0x84, 0x82, 0x82, +0x87, 0x86, 0x80, 0x7c, 0x79, 0x77, 0x7a, 0x7b, 0x7b, 0x7a, 0x78, 0x79, 0x7c, 0x83, 0x8c, 0x91, +0x8f, 0x8a, 0x87, 0x84, 0x85, 0x86, 0x85, 0x83, 0x7c, 0x74, 0x70, 0x71, 0x73, 0x75, 0x75, 0x76, +0x78, 0x79, 0x7b, 0x79, 0x74, 0x73, 0x78, 0x7c, 0x7d, 0x84, 0x8b, 0x89, 0x88, 0x88, 0x86, 0x7e, +0x79, 0x77, 0x76, 0x76, 0x77, 0x76, 0x72, 0x72, 0x77, 0x7e, 0x89, 0x8b, 0x8b, 0x8d, 0x8c, 0x8a, +0x83, 0x75, 0x6d, 0x6b, 0x72, 0x7c, 0x80, 0x7d, 0x7a, 0x77, 0x75, 0x75, 0x74, 0x70, 0x65, 0x62, +0x6a, 0x6f, 0x76, 0x7e, 0x82, 0x7e, 0x7a, 0x7b, 0x81, 0x87, 0x8a, 0x8a, 0x87, 0x81, 0x7c, 0x7b, +0x78, 0x78, 0x7d, 0x83, 0x84, 0x84, 0x86, 0x86, 0x87, 0x87, 0x86, 0x82, 0x7d, 0x7e, 0x83, 0x87, +0x86, 0x85, 0x85, 0x89, 0x8d, 0x8e, 0x8e, 0x8e, 0x8b, 0x8a, 0x88, 0x86, 0x82, 0x7a, 0x73, 0x6b, +0x65, 0x66, 0x69, 0x69, 0x6b, 0x6a, 0x68, 0x6e, 0x76, 0x7c, 0x81, 0x83, 0x81, 0x82, 0x81, 0x80, +0x82, 0x7c, 0x76, 0x71, 0x6e, 0x72, 0x76, 0x79, 0x7a, 0x77, 0x72, 0x6b, 0x67, 0x67, 0x65, 0x66, +0x6a, 0x6c, 0x70, 0x7a, 0x87, 0x90, 0x9b, 0xa0, 0x9e, 0x9a, 0x97, 0x95, 0x93, 0x8f, 0x8f, 0x91, +0x92, 0x96, 0x9d, 0xa4, 0xa3, 0x9f, 0x9f, 0x9e, 0x9a, 0x92, 0x8b, 0x84, 0x79, 0x73, 0x71, 0x71, +0x75, 0x7b, 0x7d, 0x81, 0x8a, 0x94, 0x95, 0x90, 0x8a, 0x84, 0x81, 0x7c, 0x7b, 0x80, 0x88, 0x8a, +0x84, 0x83, 0x81, 0x7d, 0x7b, 0x7a, 0x73, 0x6d, 0x6c, 0x6c, 0x71, 0x78, 0x7a, 0x79, 0x7a, 0x7c, +0x80, 0x85, 0x87, 0x88, 0x86, 0x84, 0x85, 0x86, 0x87, 0x88, 0x86, 0x80, 0x7c, 0x7b, 0x78, 0x76, +0x77, 0x7b, 0x7e, 0x84, 0x89, 0x8a, 0x8a, 0x85, 0x7e, 0x78, 0x72, 0x6d, 0x6b, 0x69, 0x67, 0x69, +0x6e, 0x70, 0x73, 0x74, 0x7c, 0x84, 0x85, 0x86, 0x81, 0x81, 0x80, 0x7e, 0x7b, 0x73, 0x6e, 0x71, +0x75, 0x79, 0x80, 0x80, 0x78, 0x74, 0x6f, 0x6d, 0x6f, 0x6c, 0x68, 0x66, 0x68, 0x6c, 0x74, 0x83, +0x88, 0x88, 0x8b, 0x8e, 0x90, 0x91, 0x8e, 0x88, 0x83, 0x7d, 0x78, 0x7a, 0x7d, 0x7e, 0x87, 0x90, +0x92, 0x94, 0x91, 0x8a, 0x8a, 0x88, 0x83, 0x80, 0x7b, 0x7a, 0x7a, 0x7a, 0x7c, 0x80, 0x80, 0x7c, +0x7c, 0x7e, 0x7e, 0x7b, 0x78, 0x77, 0x7b, 0x83, 0x89, 0x88, 0x88, 0x8d, 0x92, 0x91, 0x8c, 0x87, +0x84, 0x7c, 0x77, 0x7b, 0x81, 0x83, 0x87, 0x84, 0x80, 0x79, 0x77, 0x7d, 0x81, 0x83, 0x81, 0x7c, +0x79, 0x7b, 0x80, 0x83, 0x85, 0x83, 0x82, 0x80, 0x7b, 0x7c, 0x7d, 0x7e, 0x7c, 0x79, 0x77, 0x79, +0x7b, 0x7a, 0x7c, 0x7b, 0x79, 0x76, 0x73, 0x6e, 0x69, 0x69, 0x70, 0x78, 0x7e, 0x87, 0x8b, 0x8c, +0x8a, 0x87, 0x89, 0x8e, 0x91, 0x93, 0x93, 0x8d, 0x84, 0x80, 0x79, 0x7a, 0x7c, 0x77, 0x6e, 0x6d, +0x72, 0x73, 0x74, 0x72, 0x71, 0x71, 0x71, 0x76, 0x80, 0x8b, 0x90, 0x90, 0x90, 0x90, 0x8d, 0x87, +0x80, 0x79, 0x75, 0x73, 0x79, 0x80, 0x86, 0x8c, 0x8c, 0x8b, 0x8d, 0x8f, 0x8f, 0x8e, 0x8f, 0x8b, +0x7e, 0x74, 0x72, 0x79, 0x80, 0x80, 0x80, 0x7c, 0x79, 0x79, 0x77, 0x76, 0x76, 0x75, 0x75, 0x73, +0x76, 0x7c, 0x86, 0x8c, 0x89, 0x8a, 0x8d, 0x8d, 0x8d, 0x87, 0x7d, 0x76, 0x71, 0x74, 0x7a, 0x7c, +0x7a, 0x78, 0x78, 0x7a, 0x80, 0x8a, 0x8d, 0x8c, 0x8d, 0x86, 0x7e, 0x7e, 0x84, 0x88, 0x88, 0x80, +0x77, 0x75, 0x73, 0x76, 0x7c, 0x7d, 0x7d, 0x7b, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x79, 0x79, 0x78, +0x75, 0x77, 0x7a, 0x7a, 0x7b, 0x7a, 0x7d, 0x84, 0x89, 0x8a, 0x86, 0x83, 0x89, 0x8d, 0x8a, 0x86, +0x87, 0x84, 0x7a, 0x78, 0x7c, 0x83, 0x85, 0x81, 0x7c, 0x75, 0x70, 0x6d, 0x6f, 0x74, 0x78, 0x77, +0x76, 0x77, 0x7d, 0x89, 0x90, 0x95, 0x94, 0x90, 0x8f, 0x8c, 0x86, 0x86, 0x80, 0x74, 0x72, 0x74, +0x77, 0x81, 0x87, 0x87, 0x83, 0x83, 0x85, 0x8a, 0x8c, 0x8b, 0x86, 0x7d, 0x76, 0x76, 0x79, 0x79, +0x7b, 0x7c, 0x77, 0x75, 0x77, 0x76, 0x73, 0x72, 0x72, 0x6f, 0x6e, 0x75, 0x7d, 0x84, 0x86, 0x85, +0x87, 0x89, 0x85, 0x80, 0x7b, 0x7a, 0x7a, 0x7b, 0x80, 0x84, 0x85, 0x82, 0x79, 0x75, 0x79, 0x82, +0x86, 0x88, 0x8c, 0x8d, 0x87, 0x85, 0x84, 0x82, 0x83, 0x83, 0x80, 0x77, 0x75, 0x74, 0x77, 0x81, +0x86, 0x84, 0x7b, 0x76, 0x7d, 0x85, 0x85, 0x82, 0x80, 0x7d, 0x77, 0x72, 0x71, 0x73, 0x73, 0x73, +0x71, 0x6d, 0x6d, 0x71, 0x76, 0x7b, 0x7d, 0x83, 0x8d, 0x8d, 0x85, 0x82, 0x80, 0x7c, 0x80, 0x84, +0x7c, 0x75, 0x77, 0x79, 0x75, 0x72, 0x72, 0x6f, 0x6e, 0x6e, 0x6c, 0x6f, 0x78, 0x84, 0x8f, 0x97, +0x98, 0x95, 0x93, 0x92, 0x91, 0x8f, 0x8e, 0x91, 0x93, 0x91, 0x8e, 0x8d, 0x92, 0x97, 0x95, 0x8f, +0x89, 0x87, 0x87, 0x83, 0x83, 0x84, 0x83, 0x86, 0x85, 0x83, 0x84, 0x83, 0x7e, 0x77, 0x74, 0x73, +0x74, 0x7b, 0x82, 0x80, 0x7b, 0x7d, 0x82, 0x7e, 0x7b, 0x7c, 0x7e, 0x82, 0x86, 0x88, 0x88, 0x88, +0x85, 0x82, 0x80, 0x7c, 0x79, 0x7e, 0x82, 0x83, 0x84, 0x87, 0x89, 0x87, 0x83, 0x82, 0x7d, 0x79, +0x7b, 0x7b, 0x74, 0x72, 0x77, 0x76, 0x6f, 0x6d, 0x72, 0x79, 0x7e, 0x7d, 0x7a, 0x74, 0x72, 0x78, +0x7c, 0x7e, 0x80, 0x7e, 0x7c, 0x7b, 0x7b, 0x81, 0x87, 0x88, 0x87, 0x86, 0x83, 0x82, 0x85, 0x8a, +0x8b, 0x8a, 0x8a, 0x8b, 0x89, 0x84, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x77, 0x6f, 0x6c, 0x69, 0x67, +0x67, 0x66, 0x66, 0x67, 0x69, 0x6e, 0x71, 0x78, 0x85, 0x89, 0x88, 0x87, 0x83, 0x7d, 0x76, 0x6f, +0x73, 0x7b, 0x7d, 0x7c, 0x78, 0x75, 0x7a, 0x83, 0x88, 0x8d, 0x8b, 0x89, 0x8c, 0x88, 0x85, 0x85, +0x84, 0x85, 0x87, 0x87, 0x88, 0x86, 0x81, 0x7a, 0x74, 0x72, 0x70, 0x6c, 0x6c, 0x69, 0x69, 0x6d, +0x77, 0x7d, 0x7d, 0x7c, 0x7c, 0x80, 0x81, 0x80, 0x80, 0x80, 0x83, 0x86, 0x86, 0x80, 0x77, 0x75, +0x7a, 0x83, 0x89, 0x8e, 0x92, 0x91, 0x8d, 0x89, 0x89, 0x8d, 0x8e, 0x88, 0x82, 0x7e, 0x7e, 0x80, +0x7e, 0x7c, 0x80, 0x82, 0x84, 0x89, 0x8a, 0x81, 0x7d, 0x82, 0x8b, 0x8c, 0x86, 0x85, 0x84, 0x84, +0x85, 0x86, 0x87, 0x87, 0x87, 0x83, 0x7c, 0x7c, 0x83, 0x83, 0x80, 0x83, 0x89, 0x8b, 0x87, 0x82, +0x7e, 0x81, 0x85, 0x88, 0x8a, 0x81, 0x76, 0x72, 0x6e, 0x69, 0x6a, 0x6b, 0x6b, 0x6b, 0x6c, 0x6f, +0x77, 0x7a, 0x7c, 0x84, 0x88, 0x8a, 0x8a, 0x87, 0x81, 0x7b, 0x80, 0x86, 0x8a, 0x89, 0x89, 0x87, +0x86, 0x8a, 0x8e, 0x8e, 0x8b, 0x8a, 0x8a, 0x88, 0x86, 0x82, 0x81, 0x84, 0x85, 0x83, 0x7b, 0x77, +0x73, 0x6f, 0x6f, 0x74, 0x79, 0x7c, 0x76, 0x6e, 0x70, 0x73, 0x77, 0x7e, 0x81, 0x80, 0x81, 0x84, +0x88, 0x8a, 0x89, 0x88, 0x8d, 0x94, 0x95, 0x90, 0x85, 0x7e, 0x83, 0x88, 0x89, 0x8e, 0x91, 0x8f, +0x8a, 0x89, 0x88, 0x83, 0x7c, 0x78, 0x70, 0x6a, 0x69, 0x6b, 0x6c, 0x68, 0x65, 0x6a, 0x6d, 0x66, +0x60, 0x60, 0x63, 0x67, 0x6d, 0x6e, 0x6a, 0x68, 0x68, 0x6a, 0x70, 0x73, 0x72, 0x72, 0x76, 0x7a, +0x80, 0x85, 0x89, 0x8d, 0x90, 0x92, 0x98, 0x9c, 0x9c, 0x9b, 0x97, 0x90, 0x92, 0x99, 0x97, 0x8f, +0x89, 0x83, 0x7c, 0x77, 0x73, 0x6d, 0x68, 0x67, 0x6b, 0x71, 0x78, 0x7d, 0x83, 0x88, 0x87, 0x85, +0x83, 0x83, 0x84, 0x83, 0x83, 0x84, 0x89, 0x90, 0x94, 0x90, 0x8c, 0x93, 0x9b, 0x97, 0x94, 0x93, +0x92, 0x92, 0x92, 0x91, 0x8d, 0x8d, 0x8e, 0x8c, 0x87, 0x7d, 0x73, 0x6c, 0x6a, 0x6a, 0x68, 0x64, +0x5c, 0x56, 0x53, 0x56, 0x5e, 0x62, 0x64, 0x62, 0x62, 0x65, 0x6f, 0x79, 0x77, 0x74, 0x73, 0x71, +0x71, 0x72, 0x72, 0x72, 0x76, 0x79, 0x7e, 0x81, 0x81, 0x80, 0x81, 0x83, 0x83, 0x82, 0x7c, 0x77, +0x77, 0x75, 0x75, 0x77, 0x7c, 0x82, 0x83, 0x83, 0x84, 0x84, 0x81, 0x82, 0x88, 0x8a, 0x8d, 0x96, +0x97, 0x94, 0x93, 0x94, 0x97, 0x98, 0x96, 0x91, 0x90, 0x93, 0x97, 0x99, 0x97, 0x94, 0x8f, 0x8b, +0x8d, 0x90, 0x95, 0x97, 0x97, 0x95, 0x96, 0x9b, 0x9e, 0x99, 0x8e, 0x84, 0x7c, 0x7b, 0x79, 0x75, +0x72, 0x6f, 0x6c, 0x6d, 0x72, 0x75, 0x76, 0x7c, 0x84, 0x82, 0x7b, 0x77, 0x7a, 0x7c, 0x7e, 0x82, +0x85, 0x88, 0x88, 0x88, 0x89, 0x8e, 0x90, 0x8d, 0x87, 0x84, 0x85, 0x84, 0x82, 0x82, 0x7e, 0x79, +0x76, 0x74, 0x73, 0x6f, 0x6a, 0x66, 0x6a, 0x70, 0x71, 0x6b, 0x64, 0x5e, 0x5c, 0x5d, 0x64, 0x6e, +0x76, 0x79, 0x7b, 0x79, 0x7c, 0x85, 0x8b, 0x88, 0x80, 0x7c, 0x80, 0x85, 0x8a, 0x8d, 0x8f, 0x8f, +0x8c, 0x8a, 0x8d, 0x91, 0x90, 0x8f, 0x8a, 0x84, 0x81, 0x7b, 0x76, 0x74, 0x72, 0x6f, 0x71, 0x75, +0x77, 0x7a, 0x7c, 0x7d, 0x80, 0x80, 0x7a, 0x7b, 0x82, 0x86, 0x87, 0x82, 0x7e, 0x80, 0x84, 0x85, +0x84, 0x80, 0x7b, 0x7d, 0x85, 0x89, 0x89, 0x86, 0x82, 0x7c, 0x79, 0x7d, 0x84, 0x88, 0x8a, 0x87, +0x86, 0x8b, 0x8d, 0x8b, 0x85, 0x7c, 0x72, 0x66, 0x62, 0x64, 0x67, 0x69, 0x6a, 0x69, 0x69, 0x6a, +0x6c, 0x71, 0x78, 0x7b, 0x75, 0x6d, 0x70, 0x78, 0x79, 0x76, 0x72, 0x6e, 0x70, 0x79, 0x7e, 0x7e, +0x7e, 0x84, 0x85, 0x83, 0x86, 0x8b, 0x8b, 0x8b, 0x8d, 0x90, 0x8f, 0x8c, 0x8d, 0x8d, 0x8a, 0x86, +0x83, 0x83, 0x81, 0x7a, 0x72, 0x6c, 0x67, 0x62, 0x5e, 0x5f, 0x66, 0x6e, 0x72, 0x70, 0x70, 0x7a, +0x83, 0x81, 0x79, 0x78, 0x7a, 0x7c, 0x83, 0x8c, 0x92, 0x8e, 0x88, 0x87, 0x8a, 0x8f, 0x96, 0x98, +0x92, 0x8f, 0x8b, 0x85, 0x87, 0x8d, 0x8f, 0x91, 0x93, 0x94, 0x96, 0x97, 0x98, 0x9c, 0xa0, 0x9f, +0x9c, 0x9b, 0x9b, 0x9c, 0x9d, 0x98, 0x90, 0x8a, 0x85, 0x82, 0x83, 0x7e, 0x7d, 0x82, 0x82, 0x81, +0x7e, 0x76, 0x6a, 0x66, 0x6a, 0x72, 0x78, 0x7e, 0x82, 0x80, 0x78, 0x73, 0x74, 0x77, 0x76, 0x76, +0x73, 0x70, 0x6e, 0x6d, 0x72, 0x75, 0x75, 0x76, 0x76, 0x77, 0x77, 0x78, 0x7c, 0x7c, 0x78, 0x73, +0x6f, 0x71, 0x78, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x82, 0x81, 0x83, 0x8a, 0x8e, +0x8a, 0x82, 0x7c, 0x7a, 0x7a, 0x79, 0x7c, 0x81, 0x83, 0x7d, 0x75, 0x6f, 0x6a, 0x66, 0x66, 0x67, +0x68, 0x6e, 0x74, 0x7c, 0x87, 0x8d, 0x91, 0x90, 0x8e, 0x8f, 0x92, 0x92, 0x90, 0x92, 0x92, 0x93, +0x93, 0x95, 0x96, 0x90, 0x8a, 0x87, 0x86, 0x86, 0x86, 0x80, 0x76, 0x74, 0x76, 0x78, 0x75, 0x71, +0x74, 0x74, 0x71, 0x6e, 0x6c, 0x6b, 0x6b, 0x6d, 0x75, 0x76, 0x76, 0x76, 0x74, 0x76, 0x7c, 0x7e, +0x7c, 0x7a, 0x7b, 0x82, 0x8a, 0x8d, 0x89, 0x85, 0x83, 0x85, 0x86, 0x81, 0x7b, 0x78, 0x79, 0x80, +0x8a, 0x93, 0x96, 0x91, 0x8d, 0x8f, 0x91, 0x8e, 0x86, 0x85, 0x87, 0x84, 0x7e, 0x79, 0x77, 0x77, +0x73, 0x70, 0x70, 0x71, 0x70, 0x6e, 0x70, 0x77, 0x80, 0x7e, 0x76, 0x72, 0x71, 0x72, 0x75, 0x7a, +0x7d, 0x7e, 0x7a, 0x7a, 0x81, 0x85, 0x85, 0x85, 0x8b, 0x91, 0x94, 0x93, 0x90, 0x8d, 0x8b, 0x8a, +0x8b, 0x8d, 0x8d, 0x8a, 0x82, 0x79, 0x71, 0x6a, 0x66, 0x61, 0x5d, 0x5b, 0x5c, 0x63, 0x69, 0x6e, +0x70, 0x6e, 0x69, 0x6a, 0x6d, 0x6f, 0x75, 0x7b, 0x85, 0x8c, 0x8a, 0x85, 0x82, 0x84, 0x82, 0x83, +0x8a, 0x92, 0x97, 0x9a, 0x9d, 0x9c, 0x97, 0x8f, 0x8b, 0x88, 0x85, 0x89, 0x8d, 0x8d, 0x87, 0x82, +0x7d, 0x81, 0x88, 0x87, 0x86, 0x8c, 0x91, 0x90, 0x8d, 0x8b, 0x89, 0x87, 0x89, 0x8b, 0x89, 0x88, +0x83, 0x7a, 0x71, 0x6c, 0x69, 0x65, 0x62, 0x62, 0x64, 0x69, 0x71, 0x77, 0x7c, 0x7c, 0x79, 0x76, +0x76, 0x7a, 0x7e, 0x85, 0x8e, 0x90, 0x87, 0x7b, 0x74, 0x70, 0x73, 0x7c, 0x7e, 0x7e, 0x7c, 0x7a, +0x77, 0x76, 0x7a, 0x7b, 0x7c, 0x7c, 0x7a, 0x7a, 0x7d, 0x81, 0x83, 0x88, 0x8c, 0x8a, 0x8b, 0x8e, +0x8e, 0x8d, 0x90, 0x94, 0x95, 0x93, 0x92, 0x91, 0x8e, 0x8f, 0x93, 0x92, 0x92, 0x8e, 0x88, 0x7e, +0x76, 0x72, 0x72, 0x76, 0x77, 0x77, 0x77, 0x78, 0x79, 0x7c, 0x83, 0x81, 0x7a, 0x7c, 0x80, 0x80, +0x80, 0x84, 0x88, 0x89, 0x89, 0x8c, 0x8d, 0x8e, 0x93, 0x92, 0x8c, 0x8a, 0x88, 0x85, 0x85, 0x85, +0x84, 0x7c, 0x71, 0x69, 0x68, 0x6b, 0x6c, 0x6d, 0x6f, 0x6e, 0x6c, 0x6c, 0x6d, 0x6d, 0x72, 0x74, +0x75, 0x76, 0x79, 0x80, 0x84, 0x83, 0x83, 0x85, 0x85, 0x85, 0x87, 0x83, 0x7d, 0x7a, 0x7c, 0x80, +0x7e, 0x7c, 0x7c, 0x80, 0x85, 0x8d, 0x93, 0x96, 0x95, 0x91, 0x8c, 0x89, 0x89, 0x8d, 0x8f, 0x8e, +0x85, 0x77, 0x6b, 0x62, 0x5a, 0x5a, 0x59, 0x57, 0x58, 0x5f, 0x65, 0x6a, 0x6f, 0x71, 0x70, 0x69, +0x65, 0x69, 0x6f, 0x75, 0x7b, 0x80, 0x80, 0x7b, 0x7a, 0x7c, 0x7d, 0x7c, 0x7e, 0x82, 0x87, 0x8d, +0x90, 0x90, 0x8c, 0x8c, 0x8e, 0x8d, 0x8c, 0x8f, 0x8c, 0x83, 0x78, 0x73, 0x70, 0x69, 0x63, 0x61, +0x61, 0x5f, 0x5e, 0x60, 0x62, 0x62, 0x5f, 0x5d, 0x5e, 0x61, 0x69, 0x75, 0x81, 0x84, 0x83, 0x7e, +0x80, 0x89, 0x93, 0x98, 0x96, 0x94, 0x9b, 0x9e, 0x9e, 0xa2, 0xa6, 0xa2, 0x9a, 0x95, 0x94, 0x9a, +0x9e, 0x9c, 0x9a, 0x95, 0x91, 0x90, 0x92, 0x91, 0x92, 0x98, 0x9b, 0x9e, 0x9e, 0xa0, 0xa2, 0xa0, +0xa2, 0xa1, 0x9b, 0x95, 0x92, 0x91, 0x88, 0x7d, 0x7b, 0x7d, 0x7d, 0x7e, 0x7d, 0x76, 0x72, 0x71, +0x71, 0x76, 0x7e, 0x82, 0x7e, 0x7a, 0x78, 0x7a, 0x7e, 0x80, 0x7c, 0x74, 0x6b, 0x67, 0x6b, 0x72, +0x71, 0x6f, 0x6d, 0x6c, 0x6e, 0x70, 0x6f, 0x71, 0x74, 0x70, 0x6c, 0x6d, 0x71, 0x75, 0x77, 0x7b, +0x7e, 0x82, 0x85, 0x87, 0x88, 0x86, 0x82, 0x7e, 0x7d, 0x80, 0x86, 0x8d, 0x91, 0x8a, 0x83, 0x84, +0x81, 0x7c, 0x7c, 0x7c, 0x76, 0x71, 0x6e, 0x6e, 0x6e, 0x6d, 0x6e, 0x6d, 0x6d, 0x6f, 0x73, 0x7c, +0x81, 0x82, 0x7d, 0x7c, 0x82, 0x8a, 0x93, 0x94, 0x8e, 0x8b, 0x8c, 0x90, 0x97, 0x9c, 0x99, 0x94, +0x90, 0x8d, 0x90, 0x91, 0x8a, 0x7d, 0x70, 0x5e, 0x5c, 0x6d, 0x71, 0x71, 0x72, 0x6f, 0x64, 0x60, +0x61, 0x5f, 0x5e, 0x61, 0x69, 0x70, 0x6f, 0x6d, 0x71, 0x79, 0x7c, 0x79, 0x77, 0x77, 0x79, 0x80, +0x82, 0x80, 0x80, 0x7e, 0x81, 0x88, 0x8d, 0x8d, 0x8a, 0x8b, 0x91, 0x9a, 0xa1, 0xa4, 0x9d, 0x96, +0x97, 0x99, 0x93, 0x95, 0x96, 0x8b, 0x7a, 0x6f, 0x6a, 0x67, 0x6b, 0x6f, 0x68, 0x65, 0x67, 0x64, +0x60, 0x62, 0x61, 0x5e, 0x60, 0x65, 0x6a, 0x71, 0x77, 0x7a, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x87, +0x8c, 0x88, 0x85, 0x87, 0x8a, 0x8d, 0x92, 0x97, 0x95, 0x8f, 0x86, 0x84, 0x86, 0x83, 0x8b, 0x89, +0x7d, 0x77, 0x74, 0x71, 0x70, 0x6b, 0x6a, 0x69, 0x67, 0x6a, 0x73, 0x7b, 0x76, 0x7a, 0x8b, 0x93, +0x97, 0x97, 0x95, 0x93, 0x97, 0xa1, 0xaa, 0xaf, 0xab, 0x9f, 0x9a, 0x9a, 0x99, 0x99, 0x99, 0x99, +0x97, 0x98, 0x98, 0x94, 0x90, 0x90, 0x93, 0x8e, 0x93, 0x94, 0x8e, 0x8a, 0x88, 0x8f, 0x91, 0x8f, +0x8b, 0x84, 0x81, 0x80, 0x80, 0x79, 0x6f, 0x64, 0x5c, 0x5a, 0x5b, 0x57, 0x55, 0x5d, 0x5a, 0x57, +0x66, 0x6b, 0x66, 0x64, 0x70, 0x7e, 0x89, 0x90, 0x90, 0x8e, 0x8e, 0x8c, 0x84, 0x86, 0x83, 0x75, +0x6d, 0x67, 0x63, 0x6d, 0x70, 0x71, 0x74, 0x75, 0x73, 0x71, 0x78, 0x7e, 0x7e, 0x74, 0x6e, 0x71, +0x70, 0x6f, 0x6c, 0x6e, 0x74, 0x77, 0x7a, 0x80, 0x85, 0x86, 0x90, 0x8f, 0x87, 0x8f, 0x90, 0x8b, +0x89, 0x85, 0x8c, 0x8e, 0x8b, 0x8d, 0x94, 0x94, 0x89, 0x7d, 0x73, 0x6b, 0x66, 0x66, 0x60, 0x65, +0x71, 0x75, 0x72, 0x76, 0x87, 0x8a, 0x88, 0x8f, 0x92, 0x9a, 0xa0, 0x91, 0x91, 0x95, 0x90, 0x92, +0x9d, 0xa2, 0x9e, 0x9a, 0x95, 0x94, 0x92, 0x8d, 0x8c, 0x84, 0x77, 0x73, 0x6f, 0x62, 0x61, 0x6d, +0x70, 0x6b, 0x6f, 0x6d, 0x6c, 0x7a, 0x87, 0x9b, 0xa0, 0xa0, 0x92, 0x81, 0x80, 0x7e, 0x7e, 0x7c, +0x78, 0x76, 0x76, 0x74, 0x78, 0x7d, 0x7b, 0x7b, 0x7c, 0x7b, 0x7d, 0x86, 0x83, 0x74, 0x7d, 0x8d, +0x92, 0x95, 0x99, 0x96, 0x92, 0x8c, 0x81, 0x76, 0x7a, 0x73, 0x60, 0x5c, 0x59, 0x4f, 0x4e, 0x50, +0x51, 0x5a, 0x54, 0x50, 0x54, 0x57, 0x60, 0x6e, 0x6f, 0x72, 0x72, 0x6e, 0x62, 0x66, 0x73, 0x72, +0x74, 0x84, 0x95, 0x9a, 0x9a, 0x95, 0x92, 0x9a, 0x9a, 0x88, 0x8a, 0x88, 0x87, 0x82, 0x7a, 0x7e, +0x8d, 0x9c, 0xa4, 0xa0, 0x8e, 0x79, 0x84, 0x8d, 0x87, 0x7a, 0x70, 0x6a, 0x62, 0x5f, 0x5d, 0x5d, +0x65, 0x6b, 0x73, 0x7c, 0x7b, 0x71, 0x72, 0x75, 0x72, 0x89, 0x9d, 0xa0, 0x94, 0x8e, 0x92, 0x96, +0xa9, 0xb8, 0xae, 0xa2, 0x98, 0x8e, 0x8c, 0x8a, 0x8a, 0x8d, 0x8d, 0x8b, 0x83, 0x71, 0x85, 0x9e, +0xa7, 0xaa, 0xa8, 0x9a, 0x93, 0x8c, 0x85, 0x83, 0x80, 0x85, 0x86, 0x7a, 0x70, 0x71, 0x6f, 0x6d, +0x70, 0x69, 0x6b, 0x70, 0x6f, 0x6c, 0x6a, 0x66, 0x75, 0x81, 0x8f, 0x97, 0x89, 0x85, 0x84, 0x80, +0x77, 0x77, 0x80, 0x7d, 0x6f, 0x6b, 0x64, 0x60, 0x75, 0x81, 0x7c, 0x71, 0x67, 0x68, 0x7a, 0x80, +0x79, 0x81, 0x85, 0x80, 0x79, 0x7e, 0x85, 0x7e, 0x80, 0x75, 0x6c, 0x76, 0x86, 0x90, 0x96, 0x98, +0x91, 0x95, 0x9a, 0x9e, 0x9b, 0x8b, 0x75, 0x8a, 0x99, 0x8c, 0x82, 0x85, 0x91, 0x8d, 0x7c, 0x6a, +0x61, 0x74, 0x7e, 0x78, 0x6f, 0x68, 0x67, 0x74, 0x83, 0x81, 0x8b, 0x9d, 0xa0, 0x94, 0x90, 0x8f, +0x93, 0x8f, 0x87, 0x88, 0x8a, 0x83, 0x90, 0x9d, 0x8a, 0x7e, 0x7c, 0x8c, 0x9c, 0x89, 0x73, 0x71, +0x75, 0x73, 0x64, 0x61, 0x68, 0x63, 0x65, 0x67, 0x5b, 0x72, 0x93, 0x93, 0x82, 0x78, 0x75, 0x5e, +0x4e, 0x58, 0x69, 0x6c, 0x66, 0x70, 0x71, 0x65, 0x6c, 0x79, 0x82, 0x87, 0x81, 0x77, 0x73, 0x7a, +0x82, 0x81, 0x80, 0x8b, 0x97, 0x98, 0x8d, 0x86, 0x9b, 0xa4, 0x92, 0x86, 0x8e, 0x83, 0x6b, 0x5b, +0x4c, 0x51, 0x66, 0x66, 0x63, 0x5e, 0x51, 0x4f, 0x61, 0x6c, 0x75, 0x7e, 0x79, 0x6f, 0x67, 0x66, +0x64, 0x5d, 0x5c, 0x6b, 0x76, 0x75, 0x75, 0x8b, 0x9d, 0x9e, 0x9e, 0x99, 0x88, 0x84, 0x8c, 0x8f, +0x93, 0x9e, 0xa2, 0x9c, 0x97, 0x96, 0x95, 0x92, 0x92, 0x92, 0x8c, 0x93, 0x94, 0x90, 0x89, 0x7a, +0x6f, 0x66, 0x66, 0x66, 0x6d, 0x73, 0x7e, 0x88, 0x86, 0x90, 0x93, 0x88, 0x85, 0x83, 0x83, 0x87, +0x8a, 0x91, 0x93, 0x94, 0x96, 0x95, 0xa1, 0xae, 0xa9, 0xa1, 0x9f, 0xa1, 0x9e, 0x95, 0x95, 0x92, +0x87, 0x84, 0x8b, 0x8e, 0x98, 0xa5, 0xaa, 0x9e, 0x94, 0x8b, 0x79, 0x6d, 0x68, 0x6e, 0x83, 0x8c, +0x78, 0x69, 0x70, 0x6f, 0x6e, 0x6c, 0x64, 0x57, 0x56, 0x6f, 0x8a, 0x8b, 0x81, 0x7c, 0x7a, 0x7c, +0x6e, 0x62, 0x6c, 0x76, 0x7c, 0x82, 0x8a, 0x8c, 0x75, 0x67, 0x61, 0x63, 0x6d, 0x7c, 0x85, 0x75, +0x67, 0x6d, 0x70, 0x71, 0x71, 0x72, 0x69, 0x6f, 0x7b, 0x84, 0x7d, 0x75, 0x7c, 0x84, 0x83, 0x79, +0x70, 0x70, 0x81, 0x8e, 0x93, 0x94, 0x82, 0x6e, 0x6d, 0x83, 0x98, 0xa5, 0xa7, 0x9a, 0x85, 0x84, +0x85, 0x74, 0x67, 0x60, 0x60, 0x6f, 0x84, 0x8a, 0x85, 0x7a, 0x79, 0x7d, 0x7c, 0x79, 0x78, 0x6f, +0x73, 0x87, 0x9a, 0x9d, 0x99, 0x92, 0x83, 0x7d, 0x7e, 0x7c, 0x87, 0x92, 0x8c, 0x86, 0x8d, 0x91, +0x99, 0x9b, 0x88, 0x7b, 0x71, 0x72, 0x6c, 0x5f, 0x65, 0x73, 0x87, 0x8b, 0x81, 0x77, 0x80, 0x8b, +0x85, 0x7d, 0x81, 0x73, 0x67, 0x6a, 0x7a, 0x81, 0x7a, 0x75, 0x83, 0x81, 0x70, 0x74, 0x7c, 0x75, +0x6f, 0x70, 0x74, 0x79, 0x7b, 0x77, 0x78, 0x81, 0x89, 0x98, 0x96, 0x92, 0x90, 0x88, 0x81, 0x78, +0x7d, 0x87, 0x73, 0x5d, 0x55, 0x56, 0x57, 0x5c, 0x68, 0x6a, 0x62, 0x6a, 0x75, 0x79, 0x74, 0x70, +0x65, 0x52, 0x48, 0x4d, 0x5c, 0x66, 0x6d, 0x88, 0x99, 0x8f, 0x88, 0x96, 0x9c, 0x9e, 0x9f, 0x92, +0x8d, 0x8b, 0x9b, 0xac, 0xaa, 0xa9, 0x9f, 0x96, 0x89, 0x86, 0x84, 0x94, 0xa1, 0x9a, 0x8d, 0x7d, +0x87, 0xa2, 0x9e, 0x91, 0x93, 0x97, 0x94, 0x8c, 0x7b, 0x74, 0x71, 0x6c, 0x81, 0x80, 0x80, 0x79, +0x64, 0x5e, 0x61, 0x6a, 0x78, 0x80, 0x79, 0x78, 0x87, 0x81, 0x88, 0x99, 0x99, 0x93, 0x8d, 0x85, +0x72, 0x69, 0x6e, 0x7b, 0x8e, 0x98, 0x92, 0x7e, 0x76, 0x81, 0x96, 0xa1, 0x95, 0x88, 0x7d, 0x6f, +0x68, 0x76, 0x7e, 0x75, 0x6a, 0x62, 0x68, 0x6d, 0x66, 0x5d, 0x50, 0x50, 0x61, 0x6a, 0x6c, 0x62, +0x5b, 0x5a, 0x64, 0x79, 0x7b, 0x74, 0x7d, 0x7b, 0x74, 0x80, 0x86, 0x85, 0x83, 0x85, 0x8d, 0x86, +0x86, 0x8c, 0x9d, 0x9f, 0x9b, 0x9f, 0x8e, 0x83, 0x88, 0x89, 0x81, 0x76, 0x80, 0x87, 0x84, 0x82, +0x8d, 0x9a, 0x9a, 0x8e, 0x8d, 0x9b, 0x9c, 0xa3, 0xa5, 0x93, 0x8b, 0x85, 0x92, 0xa1, 0xaa, 0xa3, +0x9c, 0x98, 0x8a, 0x8a, 0x8d, 0x89, 0x8c, 0x93, 0x86, 0x69, 0x62, 0x7e, 0x8d, 0x8b, 0x8c, 0x91, +0x91, 0x8c, 0x89, 0x85, 0x82, 0x84, 0x8e, 0x88, 0x74, 0x73, 0x76, 0x6a, 0x73, 0x8e, 0x95, 0x93, +0x8f, 0x89, 0x89, 0x83, 0x80, 0x8c, 0x86, 0x7b, 0x71, 0x65, 0x57, 0x4a, 0x4e, 0x5d, 0x72, 0x74, +0x64, 0x53, 0x4c, 0x4a, 0x56, 0x69, 0x6c, 0x69, 0x68, 0x5f, 0x57, 0x5b, 0x6e, 0x84, 0x86, 0x83, +0x89, 0x8a, 0x79, 0x6e, 0x6e, 0x6a, 0x6b, 0x6c, 0x70, 0x72, 0x6a, 0x6b, 0x81, 0xac, 0xb8, 0xa4, +0x9d, 0x93, 0x89, 0x82, 0x72, 0x6f, 0x7c, 0x85, 0x86, 0x82, 0x75, 0x72, 0x6c, 0x6c, 0x86, 0x90, +0x87, 0x75, 0x65, 0x61, 0x5d, 0x5e, 0x65, 0x69, 0x6b, 0x6a, 0x64, 0x56, 0x54, 0x68, 0x76, 0x75, +0x7c, 0x8c, 0x90, 0x91, 0x93, 0x8f, 0x9f, 0xa9, 0xa2, 0xa1, 0xa0, 0x9e, 0x94, 0x9f, 0xab, 0xa8, +0xa1, 0x94, 0x85, 0x78, 0x6f, 0x64, 0x6b, 0x77, 0x7d, 0x7e, 0x7a, 0x73, 0x62, 0x58, 0x5d, 0x65, +0x6d, 0x70, 0x70, 0x72, 0x66, 0x5d, 0x6b, 0x78, 0x7b, 0x86, 0x91, 0x92, 0x92, 0x95, 0xa1, 0xb0, +0xa6, 0x9d, 0x98, 0x93, 0x8e, 0x88, 0x8c, 0x93, 0x92, 0x8b, 0x82, 0x7c, 0x82, 0x8d, 0x94, 0x93, +0x9a, 0x99, 0x93, 0x8f, 0x87, 0x84, 0x86, 0x8c, 0x8d, 0x8c, 0x89, 0x89, 0x84, 0x72, 0x61, 0x59, +0x61, 0x69, 0x6e, 0x78, 0x7c, 0x7d, 0x86, 0x96, 0x9c, 0x90, 0x86, 0x7d, 0x7e, 0x85, 0x8c, 0x94, +0x96, 0x92, 0x89, 0x83, 0x7b, 0x82, 0x91, 0x8f, 0x8c, 0x92, 0x8e, 0x8a, 0x7d, 0x74, 0x7a, 0x83, +0x82, 0x7c, 0x73, 0x6e, 0x6d, 0x6d, 0x6b, 0x60, 0x53, 0x5d, 0x6a, 0x73, 0x7c, 0x88, 0x8d, 0x8f, +0x98, 0x94, 0x8c, 0x8a, 0x8a, 0x8f, 0x8d, 0x8d, 0x92, 0x94, 0x8e, 0x81, 0x73, 0x6d, 0x73, 0x7b, +0x78, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x6e, 0x6b, 0x6e, 0x73, 0x70, 0x6e, 0x6f, 0x72, 0x77, 0x77, +0x72, 0x69, 0x68, 0x75, 0x80, 0x87, 0x92, 0x98, 0x9b, 0xa3, 0x93, 0x81, 0x7b, 0x7e, 0x84, 0x76, +0x6f, 0x6f, 0x70, 0x71, 0x6e, 0x62, 0x5f, 0x67, 0x64, 0x63, 0x66, 0x6c, 0x6a, 0x65, 0x6b, 0x73, +0x78, 0x80, 0x82, 0x85, 0x86, 0x87, 0x8e, 0x89, 0x78, 0x69, 0x5c, 0x58, 0x68, 0x7a, 0x84, 0x89, +0x8c, 0x96, 0x9e, 0x8f, 0x82, 0x7c, 0x84, 0x88, 0x85, 0x89, 0x8d, 0x8e, 0x92, 0x95, 0x93, 0x8f, +0x8b, 0x7c, 0x6c, 0x6d, 0x73, 0x6c, 0x66, 0x62, 0x64, 0x67, 0x67, 0x65, 0x64, 0x62, 0x68, 0x75, +0x7e, 0x7a, 0x72, 0x6d, 0x70, 0x7a, 0x8d, 0x9b, 0x9f, 0xa0, 0xa5, 0xa5, 0x9f, 0xa2, 0xa6, 0xa7, +0xa6, 0xa3, 0xa4, 0xa7, 0xa6, 0xa1, 0x9f, 0x9b, 0x99, 0x96, 0x8b, 0x7e, 0x79, 0x79, 0x7d, 0x7b, +0x74, 0x6d, 0x6a, 0x6a, 0x6a, 0x6a, 0x6e, 0x76, 0x7d, 0x83, 0x83, 0x7e, 0x78, 0x76, 0x79, 0x83, +0x8c, 0x8f, 0x8a, 0x85, 0x80, 0x7c, 0x7e, 0x85, 0x87, 0x83, 0x80, 0x83, 0x89, 0x8d, 0x8c, 0x8d, +0x8c, 0x8d, 0x91, 0x8e, 0x8a, 0x87, 0x87, 0x8c, 0x91, 0x91, 0x91, 0x90, 0x8a, 0x85, 0x81, 0x81, +0x84, 0x82, 0x78, 0x6e, 0x65, 0x61, 0x63, 0x68, 0x6a, 0x6c, 0x6f, 0x72, 0x6b, 0x5f, 0x5c, 0x61, +0x6a, 0x6d, 0x6a, 0x6a, 0x70, 0x75, 0x7a, 0x7d, 0x7e, 0x7d, 0x7c, 0x78, 0x75, 0x76, 0x7b, 0x81, +0x7c, 0x77, 0x72, 0x6f, 0x73, 0x72, 0x6e, 0x6a, 0x6e, 0x79, 0x83, 0x81, 0x78, 0x73, 0x72, 0x74, +0x79, 0x7e, 0x83, 0x83, 0x80, 0x80, 0x84, 0x8a, 0x91, 0x96, 0x98, 0x96, 0x93, 0x93, 0x94, 0x93, +0x90, 0x8b, 0x84, 0x80, 0x7b, 0x79, 0x78, 0x7e, 0x84, 0x83, 0x7b, 0x77, 0x78, 0x7d, 0x83, 0x84, +0x80, 0x82, 0x8c, 0x93, 0x9a, 0x9f, 0x9e, 0x9e, 0x9f, 0xa4, 0xab, 0xa9, 0xa3, 0x9a, 0x90, 0x87, +0x85, 0x83, 0x7d, 0x77, 0x6f, 0x6c, 0x70, 0x72, 0x6f, 0x6b, 0x66, 0x64, 0x65, 0x63, 0x62, 0x66, +0x70, 0x78, 0x76, 0x73, 0x77, 0x7d, 0x86, 0x8a, 0x85, 0x82, 0x85, 0x88, 0x89, 0x88, 0x84, 0x82, +0x7c, 0x79, 0x79, 0x7e, 0x88, 0x8f, 0x8f, 0x88, 0x83, 0x84, 0x88, 0x8c, 0x8c, 0x87, 0x84, 0x84, +0x86, 0x8d, 0x8d, 0x87, 0x7d, 0x76, 0x73, 0x71, 0x71, 0x74, 0x71, 0x6c, 0x65, 0x61, 0x61, 0x60, +0x60, 0x5e, 0x5c, 0x60, 0x65, 0x67, 0x69, 0x6a, 0x6a, 0x6b, 0x6d, 0x6f, 0x78, 0x86, 0x8f, 0x92, +0x91, 0x8e, 0x8d, 0x94, 0x9e, 0xa5, 0xa7, 0xa7, 0xa5, 0xa4, 0xa1, 0x9b, 0x92, 0x88, 0x7d, 0x74, +0x6e, 0x70, 0x75, 0x71, 0x65, 0x5d, 0x5b, 0x5d, 0x5d, 0x5b, 0x57, 0x58, 0x5f, 0x66, 0x6a, 0x6c, +0x70, 0x73, 0x73, 0x6f, 0x6d, 0x74, 0x7e, 0x82, 0x80, 0x7c, 0x7a, 0x7d, 0x84, 0x8d, 0x93, 0x95, +0x97, 0x93, 0x8c, 0x8b, 0x8e, 0x94, 0x97, 0x96, 0x98, 0x98, 0x97, 0x97, 0x94, 0x8b, 0x82, 0x7e, +0x7a, 0x77, 0x75, 0x72, 0x72, 0x6f, 0x70, 0x75, 0x76, 0x72, 0x6d, 0x6e, 0x6c, 0x6b, 0x6f, 0x73, +0x75, 0x73, 0x6f, 0x6f, 0x71, 0x75, 0x7a, 0x81, 0x88, 0x8a, 0x8a, 0x8a, 0x8c, 0x92, 0x97, 0x95, +0x93, 0x92, 0x8d, 0x8e, 0x8e, 0x93, 0x99, 0x9a, 0x9a, 0x9a, 0x9b, 0x96, 0x92, 0x94, 0x93, 0x93, +0x92, 0x90, 0x92, 0x93, 0x93, 0x8f, 0x8f, 0x95, 0x9c, 0x9c, 0x96, 0x92, 0x94, 0x98, 0x90, 0x8a, +0x8e, 0x92, 0x93, 0x91, 0x92, 0x95, 0x96, 0x93, 0x90, 0x90, 0x8c, 0x86, 0x84, 0x84, 0x86, 0x84, +0x7c, 0x79, 0x74, 0x6c, 0x67, 0x68, 0x6e, 0x75, 0x78, 0x75, 0x70, 0x6d, 0x69, 0x64, 0x63, 0x66, +0x68, 0x67, 0x67, 0x66, 0x6b, 0x6f, 0x71, 0x73, 0x74, 0x73, 0x75, 0x75, 0x72, 0x6f, 0x6a, 0x63, +0x5d, 0x5d, 0x5f, 0x60, 0x62, 0x66, 0x69, 0x6a, 0x6c, 0x6f, 0x71, 0x71, 0x71, 0x73, 0x78, 0x79, +0x79, 0x7b, 0x76, 0x71, 0x72, 0x73, 0x77, 0x79, 0x79, 0x7c, 0x7e, 0x7c, 0x7c, 0x81, 0x83, 0x83, +0x80, 0x81, 0x84, 0x8a, 0x8d, 0x8b, 0x86, 0x85, 0x87, 0x81, 0x79, 0x74, 0x73, 0x72, 0x6a, 0x65, +0x65, 0x63, 0x64, 0x6b, 0x70, 0x71, 0x6d, 0x6d, 0x70, 0x74, 0x79, 0x7d, 0x80, 0x7d, 0x7e, 0x84, +0x88, 0x89, 0x89, 0x85, 0x81, 0x85, 0x90, 0x99, 0x99, 0x97, 0x96, 0x97, 0x96, 0x93, 0x94, 0x96, +0x94, 0x92, 0x95, 0x99, 0x98, 0x97, 0x94, 0x8e, 0x88, 0x87, 0x88, 0x84, 0x7a, 0x78, 0x78, 0x72, +0x70, 0x74, 0x76, 0x73, 0x74, 0x78, 0x77, 0x73, 0x77, 0x7c, 0x7e, 0x7e, 0x80, 0x87, 0x91, 0x9b, +0xa4, 0xa5, 0xa1, 0x99, 0x94, 0x93, 0x96, 0x98, 0x99, 0x97, 0x90, 0x84, 0x7e, 0x81, 0x84, 0x85, +0x7d, 0x73, 0x6d, 0x72, 0x7b, 0x82, 0x83, 0x82, 0x81, 0x82, 0x81, 0x85, 0x8a, 0x8e, 0x8e, 0x8b, +0x88, 0x83, 0x82, 0x81, 0x7c, 0x79, 0x76, 0x78, 0x7b, 0x78, 0x75, 0x74, 0x79, 0x80, 0x86, 0x8b, +0x8b, 0x88, 0x85, 0x80, 0x7c, 0x82, 0x88, 0x8e, 0x8e, 0x86, 0x7d, 0x7a, 0x79, 0x7a, 0x7e, 0x7d, +0x77, 0x70, 0x6d, 0x6e, 0x6f, 0x74, 0x78, 0x75, 0x6c, 0x68, 0x6e, 0x77, 0x7e, 0x7d, 0x78, 0x75, +0x7b, 0x86, 0x88, 0x89, 0x8c, 0x89, 0x83, 0x7e, 0x80, 0x84, 0x84, 0x81, 0x81, 0x80, 0x7d, 0x81, +0x84, 0x80, 0x7a, 0x73, 0x6c, 0x6b, 0x6d, 0x71, 0x78, 0x7c, 0x7c, 0x78, 0x71, 0x6b, 0x6e, 0x79, +0x7b, 0x75, 0x74, 0x7b, 0x82, 0x84, 0x83, 0x81, 0x7e, 0x80, 0x87, 0x90, 0x94, 0x8b, 0x7e, 0x75, +0x75, 0x7d, 0x83, 0x82, 0x7c, 0x72, 0x6a, 0x68, 0x69, 0x6d, 0x6c, 0x64, 0x5d, 0x5f, 0x64, 0x67, +0x6d, 0x74, 0x78, 0x75, 0x6f, 0x6d, 0x6f, 0x76, 0x81, 0x88, 0x8c, 0x88, 0x82, 0x80, 0x86, 0x8e, +0x93, 0x94, 0x96, 0x9d, 0xa1, 0x9f, 0x9a, 0x94, 0x8d, 0x8a, 0x8a, 0x8d, 0x94, 0x93, 0x86, 0x79, +0x7a, 0x7e, 0x7d, 0x7a, 0x73, 0x69, 0x61, 0x63, 0x6e, 0x75, 0x77, 0x75, 0x76, 0x7c, 0x82, 0x85, +0x8b, 0x92, 0x92, 0x8b, 0x82, 0x7a, 0x7a, 0x7e, 0x84, 0x89, 0x8e, 0x92, 0x91, 0x8c, 0x8d, 0x91, +0x91, 0x8d, 0x8c, 0x8e, 0x90, 0x94, 0x9d, 0xa4, 0xa1, 0x99, 0x92, 0x90, 0x8f, 0x8a, 0x82, 0x78, +0x73, 0x72, 0x74, 0x73, 0x6e, 0x67, 0x60, 0x5c, 0x5f, 0x63, 0x65, 0x65, 0x6a, 0x74, 0x7b, 0x7c, +0x81, 0x87, 0x85, 0x7e, 0x7d, 0x84, 0x8c, 0x8f, 0x8d, 0x89, 0x8a, 0x8f, 0x8e, 0x8c, 0x8c, 0x89, +0x83, 0x80, 0x7e, 0x7b, 0x78, 0x76, 0x74, 0x6e, 0x6a, 0x68, 0x68, 0x6f, 0x7a, 0x81, 0x7b, 0x71, +0x66, 0x60, 0x5f, 0x67, 0x72, 0x73, 0x6c, 0x61, 0x5e, 0x64, 0x68, 0x6c, 0x74, 0x7e, 0x83, 0x7d, +0x7c, 0x82, 0x82, 0x82, 0x87, 0x8c, 0x8e, 0x8f, 0x90, 0x90, 0x92, 0x96, 0x97, 0x93, 0x88, 0x7b, +0x74, 0x76, 0x86, 0x94, 0x98, 0x96, 0x93, 0x91, 0x8e, 0x88, 0x89, 0x90, 0x96, 0x95, 0x8f, 0x87, +0x7e, 0x78, 0x7a, 0x84, 0x8a, 0x89, 0x83, 0x81, 0x89, 0x90, 0x90, 0x91, 0x93, 0x93, 0x90, 0x8d, +0x91, 0x9a, 0x9d, 0x98, 0x90, 0x8a, 0x88, 0x84, 0x7c, 0x7b, 0x80, 0x81, 0x80, 0x79, 0x70, 0x6c, +0x6c, 0x70, 0x79, 0x7d, 0x7d, 0x7b, 0x7d, 0x83, 0x84, 0x7e, 0x7d, 0x80, 0x80, 0x80, 0x82, 0x85, +0x84, 0x7e, 0x7a, 0x74, 0x6e, 0x6c, 0x6e, 0x73, 0x7d, 0x86, 0x84, 0x79, 0x74, 0x75, 0x75, 0x75, +0x74, 0x70, 0x6a, 0x63, 0x65, 0x6c, 0x71, 0x73, 0x75, 0x79, 0x77, 0x70, 0x71, 0x7a, 0x7c, 0x7b, +0x7a, 0x76, 0x72, 0x75, 0x7a, 0x81, 0x87, 0x8b, 0x89, 0x82, 0x7a, 0x7a, 0x7e, 0x82, 0x83, 0x86, +0x84, 0x7c, 0x74, 0x72, 0x78, 0x7b, 0x7d, 0x7c, 0x76, 0x6b, 0x62, 0x62, 0x6a, 0x72, 0x78, 0x77, +0x6f, 0x69, 0x6d, 0x6e, 0x71, 0x78, 0x81, 0x87, 0x83, 0x80, 0x82, 0x84, 0x84, 0x8b, 0x8d, 0x86, +0x81, 0x80, 0x87, 0x93, 0x99, 0x9a, 0x9b, 0x97, 0x8f, 0x8d, 0x91, 0x99, 0x9e, 0x9f, 0x99, 0x8e, +0x88, 0x86, 0x81, 0x7c, 0x80, 0x80, 0x7b, 0x73, 0x6c, 0x6b, 0x6c, 0x6e, 0x71, 0x74, 0x72, 0x6f, +0x6f, 0x73, 0x79, 0x80, 0x85, 0x84, 0x82, 0x80, 0x82, 0x82, 0x81, 0x82, 0x7e, 0x78, 0x72, 0x70, +0x70, 0x73, 0x78, 0x80, 0x81, 0x7a, 0x75, 0x75, 0x77, 0x75, 0x71, 0x6e, 0x6f, 0x73, 0x74, 0x77, +0x7d, 0x84, 0x88, 0x87, 0x85, 0x80, 0x7d, 0x7d, 0x7a, 0x78, 0x79, 0x7b, 0x7d, 0x85, 0x8d, 0x92, +0x95, 0x9b, 0x9d, 0x99, 0x96, 0x96, 0x9a, 0x9f, 0xa1, 0xa0, 0x9b, 0x95, 0x92, 0x95, 0x99, 0x97, +0x95, 0x97, 0x92, 0x8c, 0x89, 0x8b, 0x8a, 0x88, 0x85, 0x83, 0x81, 0x7e, 0x83, 0x8a, 0x8e, 0x8f, +0x8b, 0x7a, 0x6a, 0x62, 0x69, 0x77, 0x80, 0x83, 0x81, 0x7a, 0x79, 0x78, 0x80, 0x8e, 0x94, 0x91, +0x90, 0x8c, 0x89, 0x87, 0x86, 0x87, 0x8b, 0x91, 0x92, 0x8d, 0x87, 0x82, 0x7e, 0x7d, 0x7b, 0x78, +0x6f, 0x67, 0x68, 0x72, 0x7c, 0x7b, 0x78, 0x75, 0x70, 0x68, 0x5e, 0x5b, 0x60, 0x69, 0x70, 0x72, +0x71, 0x6e, 0x6c, 0x6a, 0x6b, 0x71, 0x72, 0x6c, 0x61, 0x5d, 0x60, 0x64, 0x68, 0x6d, 0x6f, 0x6a, +0x63, 0x63, 0x67, 0x66, 0x61, 0x5c, 0x5b, 0x5f, 0x64, 0x6b, 0x6f, 0x6c, 0x69, 0x68, 0x69, 0x6a, +0x6e, 0x72, 0x75, 0x7b, 0x82, 0x83, 0x84, 0x89, 0x8e, 0x92, 0x95, 0x99, 0x9a, 0x94, 0x93, 0x95, +0x97, 0x99, 0x95, 0x95, 0x93, 0x93, 0x98, 0x99, 0x99, 0x94, 0x92, 0x96, 0x97, 0x93, 0x8e, 0x8e, +0x8c, 0x89, 0x88, 0x85, 0x7b, 0x6f, 0x6e, 0x78, 0x83, 0x8a, 0x8b, 0x82, 0x6f, 0x64, 0x61, 0x6a, +0x70, 0x6f, 0x6f, 0x72, 0x7c, 0x83, 0x85, 0x87, 0x88, 0x85, 0x84, 0x86, 0x86, 0x85, 0x89, 0x8f, +0x92, 0x8f, 0x87, 0x7d, 0x77, 0x76, 0x77, 0x77, 0x76, 0x6d, 0x62, 0x5d, 0x60, 0x68, 0x6e, 0x70, +0x70, 0x6f, 0x6c, 0x6a, 0x65, 0x5f, 0x5c, 0x5f, 0x68, 0x74, 0x79, 0x77, 0x76, 0x7a, 0x7d, 0x7e, +0x7e, 0x80, 0x81, 0x87, 0x93, 0xa0, 0xa7, 0xac, 0xac, 0xa9, 0xa8, 0xa8, 0xaa, 0xa8, 0xa2, 0x9c, +0x9a, 0x9c, 0x9a, 0x97, 0x97, 0x97, 0x95, 0x94, 0x96, 0x93, 0x90, 0x8e, 0x90, 0x94, 0x94, 0x8e, +0x88, 0x86, 0x86, 0x88, 0x86, 0x84, 0x88, 0x8b, 0x8d, 0x91, 0x96, 0x9b, 0x9a, 0x97, 0x92, 0x8e, +0x8e, 0x8c, 0x8b, 0x8c, 0x8c, 0x8a, 0x87, 0x83, 0x7d, 0x7a, 0x79, 0x7c, 0x7e, 0x79, 0x75, 0x74, +0x73, 0x73, 0x74, 0x77, 0x75, 0x6d, 0x66, 0x63, 0x62, 0x5f, 0x5a, 0x59, 0x59, 0x5c, 0x66, 0x70, +0x71, 0x6d, 0x68, 0x65, 0x66, 0x6a, 0x6d, 0x6e, 0x74, 0x7c, 0x83, 0x86, 0x85, 0x83, 0x7e, 0x75, +0x6e, 0x6c, 0x6d, 0x6f, 0x73, 0x76, 0x78, 0x7a, 0x78, 0x76, 0x73, 0x75, 0x7e, 0x86, 0x85, 0x7e, +0x7a, 0x78, 0x78, 0x7a, 0x78, 0x74, 0x75, 0x7e, 0x87, 0x85, 0x7b, 0x74, 0x77, 0x7d, 0x85, 0x8c, +0x8d, 0x89, 0x80, 0x7a, 0x7b, 0x7d, 0x80, 0x7b, 0x75, 0x72, 0x74, 0x77, 0x7b, 0x79, 0x73, 0x6d, +0x6a, 0x6a, 0x6c, 0x6c, 0x6f, 0x76, 0x7d, 0x84, 0x85, 0x83, 0x84, 0x88, 0x8c, 0x8b, 0x88, 0x8a, +0x8f, 0x92, 0x91, 0x8e, 0x8d, 0x8c, 0x8a, 0x8a, 0x8c, 0x86, 0x7d, 0x78, 0x76, 0x79, 0x7e, 0x82, +0x80, 0x76, 0x6b, 0x68, 0x6a, 0x6b, 0x67, 0x62, 0x62, 0x6a, 0x73, 0x77, 0x7a, 0x81, 0x85, 0x82, +0x7c, 0x7a, 0x7a, 0x80, 0x83, 0x82, 0x81, 0x87, 0x92, 0x9e, 0xa3, 0xa1, 0x9c, 0x9b, 0x9b, 0x9a, +0x9a, 0x99, 0x95, 0x94, 0x95, 0x96, 0x93, 0x93, 0x93, 0x8a, 0x7d, 0x71, 0x71, 0x75, 0x77, 0x7a, +0x7a, 0x79, 0x77, 0x77, 0x76, 0x78, 0x7d, 0x7e, 0x7d, 0x80, 0x83, 0x85, 0x87, 0x8c, 0x8b, 0x85, +0x80, 0x83, 0x8a, 0x8d, 0x8c, 0x87, 0x84, 0x88, 0x8c, 0x90, 0x94, 0x93, 0x8f, 0x8e, 0x93, 0x96, +0x95, 0x8f, 0x85, 0x77, 0x72, 0x74, 0x75, 0x72, 0x6c, 0x64, 0x5b, 0x54, 0x51, 0x52, 0x59, 0x61, +0x65, 0x6a, 0x6f, 0x73, 0x78, 0x7e, 0x85, 0x85, 0x84, 0x87, 0x8e, 0x95, 0x98, 0x95, 0x93, 0x8f, +0x8a, 0x89, 0x88, 0x89, 0x8a, 0x84, 0x7c, 0x79, 0x7b, 0x82, 0x86, 0x80, 0x72, 0x6b, 0x6e, 0x70, +0x73, 0x71, 0x6b, 0x67, 0x67, 0x69, 0x6b, 0x71, 0x74, 0x6e, 0x63, 0x5c, 0x61, 0x6d, 0x75, 0x7a, +0x7e, 0x80, 0x85, 0x8e, 0x95, 0x97, 0x94, 0x8f, 0x8e, 0x94, 0x9b, 0x9c, 0x99, 0x96, 0x96, 0x96, +0x94, 0x92, 0x91, 0x90, 0x8b, 0x82, 0x7a, 0x78, 0x78, 0x7a, 0x7d, 0x80, 0x7d, 0x7c, 0x7e, 0x84, +0x8b, 0x8c, 0x86, 0x7a, 0x74, 0x78, 0x81, 0x85, 0x83, 0x7a, 0x6e, 0x6a, 0x6f, 0x79, 0x86, 0x87, +0x82, 0x82, 0x86, 0x8a, 0x8c, 0x89, 0x80, 0x7a, 0x78, 0x78, 0x7a, 0x7d, 0x82, 0x82, 0x80, 0x80, +0x80, 0x7d, 0x79, 0x74, 0x71, 0x6d, 0x6b, 0x69, 0x66, 0x69, 0x6e, 0x70, 0x72, 0x77, 0x7d, 0x87, +0x91, 0x94, 0x8d, 0x86, 0x84, 0x85, 0x8b, 0x8f, 0x8e, 0x86, 0x79, 0x78, 0x7e, 0x87, 0x8c, 0x88, +0x84, 0x7e, 0x7c, 0x80, 0x84, 0x88, 0x85, 0x79, 0x74, 0x78, 0x7c, 0x7e, 0x7e, 0x7a, 0x75, 0x76, +0x77, 0x79, 0x7a, 0x75, 0x70, 0x6c, 0x6c, 0x71, 0x77, 0x7b, 0x80, 0x81, 0x7e, 0x83, 0x89, 0x8d, +0x8c, 0x87, 0x82, 0x7a, 0x74, 0x70, 0x6b, 0x6b, 0x70, 0x72, 0x6f, 0x6a, 0x67, 0x6f, 0x7e, 0x86, +0x82, 0x79, 0x77, 0x7d, 0x86, 0x8d, 0x8b, 0x83, 0x7d, 0x7e, 0x89, 0x90, 0x8f, 0x86, 0x7a, 0x74, +0x74, 0x79, 0x7e, 0x7c, 0x70, 0x68, 0x69, 0x74, 0x7b, 0x7c, 0x7b, 0x78, 0x77, 0x7c, 0x80, 0x80, +0x7d, 0x7e, 0x83, 0x88, 0x8a, 0x87, 0x86, 0x85, 0x87, 0x85, 0x7d, 0x74, 0x6c, 0x6c, 0x71, 0x73, +0x74, 0x72, 0x71, 0x74, 0x7b, 0x86, 0x88, 0x83, 0x80, 0x86, 0x91, 0x9d, 0xa4, 0x9e, 0x91, 0x8c, +0x93, 0x9d, 0xa3, 0xa1, 0x99, 0x94, 0x90, 0x90, 0x93, 0x94, 0x94, 0x93, 0x8f, 0x8e, 0x92, 0x99, +0x9b, 0x97, 0x8e, 0x8a, 0x88, 0x85, 0x84, 0x82, 0x7d, 0x7c, 0x7b, 0x77, 0x75, 0x77, 0x7c, 0x84, +0x8c, 0x93, 0x98, 0x9d, 0xa2, 0xa8, 0xa2, 0x98, 0x93, 0x96, 0x9b, 0x9d, 0x99, 0x93, 0x89, 0x7e, +0x73, 0x71, 0x77, 0x7a, 0x76, 0x71, 0x6e, 0x6e, 0x73, 0x73, 0x6e, 0x65, 0x5e, 0x60, 0x69, 0x74, +0x78, 0x75, 0x72, 0x70, 0x74, 0x78, 0x78, 0x77, 0x73, 0x71, 0x6e, 0x6c, 0x70, 0x74, 0x72, 0x6e, +0x6c, 0x6f, 0x75, 0x78, 0x7b, 0x81, 0x82, 0x80, 0x76, 0x6f, 0x70, 0x76, 0x7c, 0x7c, 0x79, 0x77, +0x77, 0x78, 0x7d, 0x7e, 0x7a, 0x76, 0x75, 0x77, 0x75, 0x6d, 0x67, 0x65, 0x65, 0x67, 0x6c, 0x70, +0x6f, 0x6c, 0x69, 0x69, 0x6e, 0x78, 0x80, 0x7b, 0x73, 0x72, 0x76, 0x79, 0x7c, 0x80, 0x84, 0x84, +0x83, 0x81, 0x7e, 0x84, 0x8b, 0x8c, 0x86, 0x79, 0x6f, 0x6d, 0x70, 0x73, 0x72, 0x6c, 0x67, 0x69, +0x6b, 0x6c, 0x6a, 0x69, 0x6a, 0x6a, 0x6d, 0x6e, 0x6d, 0x6b, 0x69, 0x6f, 0x7a, 0x82, 0x8a, 0x92, +0x92, 0x8f, 0x94, 0x9a, 0x9a, 0x98, 0x92, 0x8a, 0x83, 0x7d, 0x78, 0x76, 0x76, 0x76, 0x78, 0x74, +0x71, 0x77, 0x82, 0x88, 0x8d, 0x8e, 0x88, 0x84, 0x86, 0x8c, 0x93, 0x99, 0x9c, 0x98, 0x94, 0x92, +0x93, 0x93, 0x92, 0x8f, 0x8c, 0x8e, 0x95, 0x98, 0x99, 0x93, 0x8d, 0x92, 0x9c, 0xa1, 0xa0, 0xa1, +0xa1, 0x9e, 0x9b, 0x9b, 0x9f, 0xa1, 0x9e, 0x98, 0x94, 0x92, 0x95, 0x95, 0x8f, 0x8b, 0x84, 0x79, +0x76, 0x77, 0x7b, 0x7d, 0x7e, 0x83, 0x84, 0x83, 0x7b, 0x74, 0x73, 0x78, 0x7b, 0x7c, 0x7e, 0x81, +0x83, 0x83, 0x7d, 0x79, 0x7d, 0x82, 0x89, 0x92, 0x94, 0x8d, 0x80, 0x77, 0x7d, 0x86, 0x8d, 0x8f, +0x8a, 0x86, 0x88, 0x8b, 0x8c, 0x8d, 0x88, 0x78, 0x6d, 0x69, 0x66, 0x63, 0x5f, 0x59, 0x53, 0x50, +0x51, 0x51, 0x52, 0x54, 0x5e, 0x6f, 0x7e, 0x81, 0x7b, 0x75, 0x72, 0x77, 0x82, 0x8a, 0x8c, 0x8f, +0x95, 0x94, 0x8b, 0x82, 0x80, 0x81, 0x83, 0x8a, 0x8c, 0x82, 0x74, 0x6d, 0x6e, 0x74, 0x77, 0x78, +0x72, 0x6c, 0x6f, 0x76, 0x7d, 0x82, 0x7e, 0x76, 0x72, 0x73, 0x74, 0x78, 0x78, 0x76, 0x75, 0x74, +0x72, 0x71, 0x73, 0x76, 0x78, 0x7d, 0x86, 0x86, 0x7c, 0x71, 0x6b, 0x67, 0x68, 0x6f, 0x73, 0x77, +0x79, 0x79, 0x77, 0x73, 0x7b, 0x86, 0x8a, 0x90, 0x94, 0x95, 0x92, 0x8b, 0x87, 0x86, 0x81, 0x7a, +0x75, 0x74, 0x75, 0x79, 0x7b, 0x80, 0x7e, 0x75, 0x69, 0x62, 0x61, 0x65, 0x68, 0x68, 0x6a, 0x6c, +0x74, 0x84, 0x8c, 0x8a, 0x86, 0x88, 0x8d, 0x8f, 0x8e, 0x89, 0x81, 0x7a, 0x7a, 0x80, 0x8a, 0x91, +0x93, 0x94, 0x90, 0x8b, 0x89, 0x87, 0x84, 0x83, 0x82, 0x7e, 0x82, 0x87, 0x8d, 0x97, 0xa0, 0xa2, +0xa0, 0x9b, 0x95, 0x97, 0x9a, 0x9e, 0x9f, 0x98, 0x94, 0x91, 0x8c, 0x89, 0x81, 0x76, 0x6f, 0x6b, +0x6a, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x62, 0x58, 0x5a, 0x59, 0x59, 0x61, 0x6c, 0x71, 0x75, +0x7a, 0x78, 0x71, 0x6b, 0x6c, 0x74, 0x7c, 0x82, 0x84, 0x85, 0x86, 0x88, 0x91, 0x9f, 0xa5, 0xa5, +0xa7, 0xa8, 0xa7, 0xa7, 0xa7, 0xa3, 0x98, 0x8a, 0x82, 0x82, 0x89, 0x8f, 0x8e, 0x8b, 0x89, 0x83, +0x78, 0x6e, 0x64, 0x68, 0x70, 0x7b, 0x83, 0x84, 0x84, 0x80, 0x79, 0x74, 0x78, 0x7d, 0x81, 0x87, +0x89, 0x85, 0x7d, 0x74, 0x6c, 0x6c, 0x78, 0x80, 0x7a, 0x78, 0x7b, 0x80, 0x84, 0x89, 0x83, 0x74, +0x68, 0x65, 0x6a, 0x73, 0x7d, 0x7e, 0x7c, 0x87, 0x8c, 0x8c, 0x86, 0x82, 0x7d, 0x7d, 0x87, 0x83, +0x7d, 0x7b, 0x6e, 0x5a, 0x4f, 0x58, 0x63, 0x6e, 0x7e, 0x83, 0x87, 0x8b, 0x90, 0x99, 0xa2, 0xad, +0xb5, 0xb3, 0xac, 0xa5, 0x9a, 0x8d, 0x97, 0xa6, 0xa7, 0x9e, 0x97, 0x96, 0x97, 0x96, 0x8f, 0x89, +0x83, 0x77, 0x6f, 0x6f, 0x72, 0x76, 0x83, 0x7b, 0x77, 0x82, 0x81, 0x77, 0x6b, 0x62, 0x65, 0x6e, +0x74, 0x73, 0x68, 0x5f, 0x61, 0x68, 0x7c, 0x8c, 0x92, 0x86, 0x85, 0x89, 0x88, 0x89, 0x8d, 0x8d, +0x88, 0x81, 0x76, 0x73, 0x7b, 0x83, 0x81, 0x7b, 0x83, 0x87, 0x88, 0x86, 0x85, 0x87, 0x86, 0x7d, +0x73, 0x6a, 0x6e, 0x80, 0x81, 0x7a, 0x86, 0x86, 0x84, 0x86, 0x85, 0x7d, 0x75, 0x70, 0x6c, 0x69, +0x69, 0x70, 0x7a, 0x7a, 0x77, 0x78, 0x77, 0x77, 0x7b, 0x71, 0x66, 0x57, 0x55, 0x72, 0x81, 0x7e, +0x7d, 0x80, 0x89, 0x8b, 0x73, 0x68, 0x6a, 0x67, 0x69, 0x6a, 0x65, 0x5b, 0x5c, 0x5e, 0x55, 0x4f, +0x53, 0x5a, 0x62, 0x66, 0x69, 0x6a, 0x67, 0x6c, 0x78, 0x83, 0x94, 0x9a, 0x95, 0x8d, 0x86, 0x83, +0x89, 0x99, 0xa2, 0x90, 0x7d, 0x83, 0x8b, 0x89, 0x7d, 0x71, 0x68, 0x5f, 0x5b, 0x5d, 0x65, 0x7b, +0x89, 0x93, 0x94, 0x88, 0x80, 0x71, 0x67, 0x6c, 0x76, 0x7e, 0x82, 0x82, 0x80, 0x7a, 0x7e, 0x8a, +0x99, 0xaa, 0xab, 0xa1, 0xa4, 0xa6, 0xa5, 0x9f, 0x9a, 0x96, 0x94, 0x8c, 0x86, 0x8b, 0x89, 0x8a, +0x8b, 0x84, 0x77, 0x6e, 0x6d, 0x69, 0x76, 0x90, 0x92, 0x8b, 0x83, 0x8b, 0xa2, 0xa3, 0x9f, 0xa5, +0xab, 0xa9, 0x91, 0x8b, 0x87, 0x7e, 0x74, 0x6f, 0x72, 0x79, 0x85, 0x94, 0xa1, 0xa6, 0xa6, 0xa9, +0xa5, 0x9c, 0x99, 0x98, 0x94, 0x9d, 0xb6, 0xb1, 0x9f, 0x97, 0x91, 0x8e, 0x8b, 0x95, 0x9a, 0x92, +0x83, 0x69, 0x57, 0x61, 0x75, 0x77, 0x6e, 0x65, 0x57, 0x54, 0x5f, 0x5c, 0x5d, 0x69, 0x62, 0x5b, +0x65, 0x6a, 0x78, 0x8c, 0x92, 0x99, 0x8e, 0x83, 0x85, 0x8a, 0x91, 0x9a, 0xa5, 0xa4, 0x92, 0x86, +0x82, 0x76, 0x78, 0x78, 0x70, 0x65, 0x64, 0x6c, 0x6d, 0x62, 0x5d, 0x6a, 0x6e, 0x77, 0x7b, 0x6d, +0x60, 0x58, 0x56, 0x5e, 0x6e, 0x6b, 0x67, 0x6d, 0x6e, 0x72, 0x73, 0x80, 0x88, 0x74, 0x69, 0x7b, +0x88, 0x92, 0x97, 0x90, 0x90, 0x8a, 0x7c, 0x6b, 0x64, 0x71, 0x77, 0x76, 0x6f, 0x63, 0x61, 0x62, +0x6d, 0x7e, 0x83, 0x7b, 0x7b, 0x75, 0x82, 0x9a, 0x9e, 0x93, 0x92, 0x90, 0x76, 0x6d, 0x78, 0x70, +0x66, 0x6b, 0x64, 0x5a, 0x5f, 0x65, 0x6a, 0x73, 0x7b, 0x87, 0x88, 0x78, 0x65, 0x52, 0x60, 0x7b, +0x8d, 0xa3, 0x9d, 0x8b, 0x83, 0x82, 0x8c, 0x89, 0x83, 0x8a, 0x85, 0x73, 0x6a, 0x6a, 0x61, 0x77, +0x8d, 0x83, 0x75, 0x6e, 0x69, 0x5d, 0x5c, 0x70, 0x7b, 0x76, 0x6c, 0x63, 0x5d, 0x67, 0x7d, 0x8e, +0xa3, 0xa7, 0xa3, 0xa4, 0xa6, 0xa6, 0xad, 0xac, 0x9a, 0x8a, 0x7e, 0x6b, 0x53, 0x44, 0x4a, 0x57, +0x5d, 0x69, 0x75, 0x7e, 0x80, 0x73, 0x65, 0x77, 0x8a, 0x84, 0x76, 0x78, 0x8c, 0x9a, 0xa2, 0xa7, +0xae, 0xb9, 0xbd, 0xbe, 0xc6, 0xd1, 0xcb, 0xb6, 0xa5, 0xa2, 0xa7, 0xab, 0xaa, 0xaa, 0xa7, 0x98, +0x8e, 0x92, 0x8f, 0x92, 0x8d, 0x83, 0x7b, 0x6f, 0x5d, 0x4f, 0x56, 0x6c, 0x7e, 0x82, 0x83, 0x82, +0x8f, 0xaf, 0xba, 0xc4, 0xc8, 0xad, 0x87, 0x61, 0x47, 0x4a, 0x62, 0x66, 0x63, 0x71, 0x7a, 0x70, +0x6c, 0x71, 0x76, 0x85, 0x95, 0x96, 0x84, 0x74, 0x6e, 0x6d, 0x73, 0x89, 0x9e, 0x9f, 0x8b, 0x7b, +0x78, 0x83, 0x87, 0x85, 0x76, 0x63, 0x52, 0x4b, 0x3e, 0x40, 0x53, 0x5a, 0x61, 0x60, 0x56, 0x50, +0x4e, 0x60, 0x74, 0x81, 0x82, 0x6d, 0x65, 0x66, 0x62, 0x65, 0x7d, 0x9f, 0xa6, 0xa8, 0xb4, 0xc0, +0xc2, 0xc2, 0xaa, 0x8f, 0x8b, 0x86, 0x77, 0x6a, 0x65, 0x62, 0x62, 0x6b, 0x6e, 0x72, 0x76, 0x7a, +0x75, 0x71, 0x7c, 0x75, 0x63, 0x5a, 0x5a, 0x5e, 0x63, 0x69, 0x7a, 0x78, 0x67, 0x74, 0x8a, 0x99, +0x93, 0x91, 0x98, 0x9b, 0x99, 0x95, 0x8b, 0x8d, 0x8f, 0x83, 0x7c, 0x6f, 0x77, 0x8c, 0x93, 0x8c, +0x83, 0x76, 0x61, 0x4c, 0x4e, 0x60, 0x7b, 0x97, 0xa1, 0x98, 0x91, 0x9e, 0xa9, 0xb5, 0xbf, 0xb2, +0x8f, 0x73, 0x6c, 0x6f, 0x64, 0x5d, 0x69, 0x75, 0x7a, 0x77, 0x70, 0x76, 0x79, 0x81, 0x84, 0x82, +0x81, 0x77, 0x87, 0x9a, 0xa0, 0xae, 0xc4, 0xc0, 0xa5, 0x90, 0x85, 0x82, 0x80, 0x89, 0x8d, 0x79, +0x64, 0x52, 0x4f, 0x4e, 0x5b, 0x61, 0x59, 0x55, 0x4b, 0x3e, 0x45, 0x4f, 0x51, 0x52, 0x50, 0x46, +0x42, 0x48, 0x52, 0x6d, 0x8e, 0xa3, 0xad, 0xa0, 0x95, 0x98, 0x98, 0x9e, 0x9c, 0x8c, 0x7c, 0x6f, +0x68, 0x67, 0x63, 0x74, 0x7e, 0x7b, 0x78, 0x70, 0x66, 0x61, 0x5a, 0x50, 0x47, 0x41, 0x3b, 0x47, +0x55, 0x64, 0x76, 0x94, 0xaa, 0xad, 0xa7, 0xa2, 0xa2, 0xaf, 0xc2, 0xc2, 0xb9, 0xb8, 0xb9, 0xbb, +0xba, 0xb7, 0xb3, 0xb7, 0xaf, 0x96, 0x8a, 0x86, 0x88, 0x88, 0x7a, 0x71, 0x6c, 0x68, 0x75, 0x88, +0x9b, 0xb0, 0xc0, 0xc4, 0xc1, 0xb0, 0xa8, 0x9f, 0x8f, 0x86, 0x71, 0x59, 0x51, 0x53, 0x56, 0x53, +0x66, 0x7e, 0x87, 0x7a, 0x77, 0x84, 0x94, 0xa1, 0x9d, 0x90, 0x86, 0x71, 0x6e, 0x79, 0x86, 0x97, +0xaa, 0xb1, 0xad, 0xa2, 0x9b, 0x9b, 0x8f, 0x90, 0x91, 0x73, 0x67, 0x60, 0x61, 0x66, 0x62, 0x68, +0x72, 0x71, 0x5b, 0x4e, 0x55, 0x5b, 0x5b, 0x54, 0x4c, 0x3c, 0x2f, 0x32, 0x43, 0x5b, 0x79, 0x98, +0xac, 0xb1, 0xa9, 0xb0, 0xb6, 0xac, 0xac, 0xaa, 0x98, 0x81, 0x81, 0x8c, 0x95, 0x99, 0x9e, 0xa9, +0x9f, 0x84, 0x7a, 0x77, 0x7a, 0x7d, 0x7c, 0x70, 0x5d, 0x54, 0x57, 0x65, 0x7a, 0x94, 0xa3, 0xab, +0xa8, 0xa9, 0xbb, 0xb7, 0xad, 0xa1, 0x8c, 0x7e, 0x75, 0x7c, 0x80, 0x81, 0x82, 0x88, 0x8d, 0x7d, +0x69, 0x6a, 0x6c, 0x6c, 0x67, 0x61, 0x53, 0x4c, 0x54, 0x57, 0x5f, 0x76, 0x8a, 0x9c, 0xa9, 0xa1, +0xa1, 0x9e, 0x85, 0x75, 0x61, 0x41, 0x38, 0x45, 0x4c, 0x4e, 0x57, 0x63, 0x69, 0x61, 0x4e, 0x47, +0x53, 0x5e, 0x67, 0x64, 0x5a, 0x4c, 0x47, 0x4a, 0x4f, 0x5b, 0x6c, 0x78, 0x83, 0x83, 0x82, 0x88, +0x85, 0x84, 0x87, 0x75, 0x52, 0x5a, 0x73, 0x7e, 0x85, 0x88, 0x90, 0x89, 0x70, 0x5a, 0x5e, 0x6d, +0x76, 0x72, 0x66, 0x59, 0x50, 0x52, 0x58, 0x6a, 0x84, 0x9a, 0xb3, 0xbf, 0xbc, 0xc0, 0xbb, 0xb6, +0xb3, 0xaa, 0x9b, 0x82, 0x7e, 0x92, 0x96, 0x92, 0x9c, 0xb0, 0xb2, 0x9b, 0x84, 0x86, 0x8e, 0x94, +0x8b, 0x82, 0x81, 0x7c, 0x71, 0x71, 0x84, 0x8f, 0x98, 0xa2, 0x9f, 0xa0, 0xa0, 0x9f, 0xa0, 0xa0, +0x9b, 0x8e, 0x81, 0x78, 0x8e, 0x99, 0x9c, 0xaa, 0xb5, 0xb3, 0xa0, 0x90, 0x8e, 0x8e, 0x88, 0x72, +0x65, 0x5f, 0x61, 0x6a, 0x71, 0x7e, 0x89, 0x90, 0x96, 0x9e, 0xa0, 0x9b, 0x91, 0x82, 0x71, 0x65, +0x58, 0x54, 0x56, 0x6a, 0x79, 0x81, 0x92, 0x97, 0x8d, 0x78, 0x6e, 0x6f, 0x76, 0x72, 0x6e, 0x75, +0x78, 0x7c, 0x83, 0x80, 0x81, 0x89, 0x8d, 0x8d, 0x90, 0x90, 0x94, 0x97, 0x93, 0x89, 0x7d, 0x72, +0x6d, 0x68, 0x79, 0x8a, 0x94, 0x9a, 0x91, 0x7a, 0x63, 0x60, 0x69, 0x6b, 0x61, 0x5c, 0x5a, 0x59, +0x5d, 0x65, 0x71, 0x83, 0x97, 0x9e, 0xa3, 0xa7, 0xa3, 0xa2, 0x9a, 0x86, 0x76, 0x6a, 0x63, 0x61, +0x6a, 0x77, 0x83, 0x88, 0x87, 0x81, 0x74, 0x6b, 0x6c, 0x6f, 0x6e, 0x67, 0x66, 0x63, 0x61, 0x61, +0x65, 0x6a, 0x76, 0x85, 0x8d, 0x91, 0x91, 0x92, 0x93, 0x8c, 0x84, 0x81, 0x7c, 0x77, 0x71, 0x77, +0x83, 0x91, 0x97, 0x94, 0x8b, 0x82, 0x7c, 0x82, 0x87, 0x86, 0x7d, 0x71, 0x6c, 0x6f, 0x79, 0x8c, +0x9a, 0xa0, 0x9b, 0x8e, 0x82, 0x79, 0x76, 0x76, 0x6e, 0x5e, 0x55, 0x52, 0x53, 0x56, 0x60, 0x6c, +0x75, 0x74, 0x6b, 0x66, 0x69, 0x70, 0x79, 0x7c, 0x79, 0x73, 0x6a, 0x67, 0x67, 0x6f, 0x7b, 0x85, +0x88, 0x87, 0x85, 0x89, 0x8e, 0x91, 0x95, 0x96, 0x8f, 0x86, 0x81, 0x7e, 0x79, 0x7b, 0x82, 0x86, +0x85, 0x77, 0x67, 0x5e, 0x5a, 0x5b, 0x5b, 0x5c, 0x59, 0x55, 0x57, 0x5e, 0x6e, 0x80, 0x8d, 0x94, +0x93, 0x92, 0x97, 0x9f, 0xa7, 0xae, 0xad, 0xa6, 0xa5, 0xab, 0xaf, 0xb5, 0xbb, 0xbf, 0xba, 0xad, +0xa1, 0x97, 0x8f, 0x8e, 0x8f, 0x8a, 0x81, 0x74, 0x6b, 0x64, 0x61, 0x65, 0x68, 0x61, 0x56, 0x4d, +0x51, 0x56, 0x5b, 0x5f, 0x5c, 0x5a, 0x5c, 0x68, 0x77, 0x82, 0x93, 0xa3, 0xaa, 0xa7, 0x9b, 0x92, +0x8a, 0x87, 0x89, 0x8b, 0x8b, 0x86, 0x80, 0x7d, 0x82, 0x8e, 0x9c, 0xa1, 0x9b, 0x8d, 0x7e, 0x7a, +0x7c, 0x80, 0x7c, 0x70, 0x68, 0x62, 0x64, 0x66, 0x6f, 0x81, 0x89, 0x88, 0x81, 0x73, 0x6a, 0x6b, +0x73, 0x7b, 0x80, 0x7e, 0x74, 0x6a, 0x69, 0x70, 0x80, 0x91, 0x96, 0x93, 0x8a, 0x85, 0x86, 0x91, +0x9c, 0x99, 0x93, 0x91, 0x92, 0x96, 0x9c, 0xa5, 0xb0, 0xb5, 0xad, 0x9b, 0x84, 0x72, 0x66, 0x5f, +0x60, 0x62, 0x5f, 0x57, 0x58, 0x5e, 0x66, 0x75, 0x82, 0x88, 0x84, 0x7d, 0x82, 0x8b, 0x94, 0x96, +0x93, 0x8f, 0x8c, 0x8b, 0x8a, 0x89, 0x8d, 0x94, 0x9a, 0x97, 0x8d, 0x88, 0x87, 0x83, 0x82, 0x86, +0x8a, 0x83, 0x79, 0x78, 0x7b, 0x88, 0x95, 0x98, 0x91, 0x87, 0x88, 0x92, 0x99, 0x9c, 0x94, 0x89, +0x81, 0x7d, 0x81, 0x84, 0x8a, 0x94, 0x97, 0x90, 0x86, 0x7b, 0x79, 0x7a, 0x7b, 0x80, 0x80, 0x77, +0x6c, 0x66, 0x64, 0x6e, 0x7d, 0x82, 0x78, 0x65, 0x56, 0x56, 0x5e, 0x63, 0x63, 0x5a, 0x4f, 0x48, +0x49, 0x4f, 0x58, 0x6a, 0x82, 0x8f, 0x88, 0x77, 0x70, 0x6c, 0x6f, 0x77, 0x7e, 0x80, 0x73, 0x67, +0x5e, 0x5c, 0x67, 0x76, 0x7d, 0x77, 0x69, 0x60, 0x64, 0x6d, 0x75, 0x7b, 0x79, 0x76, 0x75, 0x74, +0x73, 0x74, 0x7b, 0x83, 0x80, 0x6c, 0x55, 0x4a, 0x45, 0x4c, 0x58, 0x65, 0x6c, 0x6c, 0x69, 0x66, +0x69, 0x79, 0x89, 0x8f, 0x8d, 0x8d, 0x97, 0xa0, 0xa5, 0xa8, 0xa4, 0x9a, 0x95, 0x9a, 0xa0, 0x9f, +0xa3, 0xab, 0xb3, 0xb1, 0xa7, 0x9b, 0x93, 0x8a, 0x87, 0x84, 0x7c, 0x70, 0x67, 0x62, 0x61, 0x65, +0x6b, 0x6c, 0x62, 0x56, 0x54, 0x58, 0x5e, 0x64, 0x68, 0x6f, 0x78, 0x86, 0x97, 0xa0, 0xa9, 0xb6, +0xbe, 0xbd, 0xad, 0x9c, 0x94, 0x97, 0xa0, 0xad, 0xb0, 0xa7, 0x9c, 0x94, 0x92, 0x99, 0xa5, 0xac, +0xa4, 0x92, 0x82, 0x81, 0x83, 0x83, 0x82, 0x78, 0x6a, 0x63, 0x67, 0x6a, 0x6a, 0x75, 0x86, 0x8e, +0x8a, 0x7c, 0x75, 0x76, 0x7a, 0x82, 0x88, 0x87, 0x7e, 0x79, 0x7c, 0x84, 0x90, 0x9e, 0xa4, 0xa0, +0x99, 0x94, 0x8e, 0x87, 0x89, 0x92, 0x99, 0x97, 0x95, 0x97, 0x91, 0x8e, 0x96, 0x9e, 0x9d, 0x91, +0x7e, 0x70, 0x64, 0x62, 0x6b, 0x71, 0x6c, 0x63, 0x61, 0x63, 0x67, 0x74, 0x80, 0x83, 0x7b, 0x75, +0x72, 0x70, 0x70, 0x74, 0x74, 0x6e, 0x66, 0x66, 0x69, 0x69, 0x6f, 0x7e, 0x88, 0x87, 0x83, 0x82, +0x7e, 0x78, 0x78, 0x79, 0x7a, 0x77, 0x7a, 0x81, 0x7d, 0x7e, 0x88, 0x8c, 0x87, 0x84, 0x88, 0x8e, +0x92, 0x97, 0x97, 0x90, 0x89, 0x88, 0x8a, 0x83, 0x7c, 0x86, 0x94, 0x96, 0x8b, 0x7e, 0x79, 0x78, +0x75, 0x75, 0x71, 0x68, 0x5c, 0x57, 0x5c, 0x61, 0x69, 0x70, 0x6d, 0x68, 0x66, 0x67, 0x64, 0x63, +0x65, 0x5e, 0x4f, 0x45, 0x42, 0x47, 0x4f, 0x5a, 0x65, 0x6b, 0x66, 0x59, 0x54, 0x57, 0x63, 0x72, +0x7c, 0x7d, 0x7a, 0x78, 0x7c, 0x88, 0x97, 0xa2, 0xa0, 0x9a, 0x98, 0x96, 0x94, 0x95, 0x9a, 0xa2, +0xa5, 0x9d, 0x96, 0x96, 0x94, 0x96, 0x99, 0x98, 0x8e, 0x79, 0x63, 0x5e, 0x63, 0x6d, 0x76, 0x76, +0x72, 0x6d, 0x6a, 0x66, 0x65, 0x6f, 0x80, 0x8c, 0x91, 0x92, 0x93, 0x91, 0x8d, 0x8b, 0x8a, 0x8b, +0x8c, 0x88, 0x87, 0x86, 0x88, 0x90, 0x96, 0x94, 0x86, 0x7b, 0x7e, 0x84, 0x8d, 0x95, 0x98, 0x98, +0x91, 0x8b, 0x86, 0x88, 0x94, 0x9a, 0x91, 0x7c, 0x6b, 0x64, 0x64, 0x6b, 0x70, 0x70, 0x6e, 0x6d, +0x76, 0x85, 0x90, 0x98, 0x97, 0x8f, 0x84, 0x7c, 0x82, 0x8c, 0x92, 0x95, 0x94, 0x8f, 0x89, 0x89, +0x91, 0x94, 0x97, 0x96, 0x8e, 0x87, 0x84, 0x88, 0x83, 0x74, 0x6d, 0x6a, 0x65, 0x60, 0x65, 0x6e, +0x6f, 0x6d, 0x6e, 0x72, 0x78, 0x71, 0x63, 0x59, 0x5a, 0x62, 0x6b, 0x74, 0x75, 0x70, 0x6c, 0x71, +0x7d, 0x8e, 0x99, 0x93, 0x80, 0x6e, 0x71, 0x7e, 0x8f, 0x9f, 0xa2, 0x96, 0x8a, 0x91, 0xa1, 0xb5, +0xc6, 0xca, 0xbb, 0xa3, 0x84, 0x71, 0x73, 0x80, 0x87, 0x7b, 0x70, 0x6f, 0x74, 0x87, 0x96, 0xa0, +0xa1, 0x9c, 0x95, 0x8e, 0x91, 0x98, 0x99, 0x94, 0x8e, 0x86, 0x7d, 0x7b, 0x83, 0x86, 0x82, 0x85, +0x88, 0x87, 0x7e, 0x6a, 0x5a, 0x5a, 0x6b, 0x7e, 0x8e, 0x94, 0x8c, 0x81, 0x7c, 0x7e, 0x89, 0x94, +0x95, 0x88, 0x72, 0x68, 0x69, 0x6f, 0x75, 0x71, 0x61, 0x4b, 0x47, 0x55, 0x6a, 0x83, 0x93, 0x94, +0x89, 0x79, 0x6f, 0x71, 0x81, 0x90, 0x90, 0x84, 0x70, 0x62, 0x67, 0x71, 0x75, 0x75, 0x71, 0x6c, +0x62, 0x64, 0x6f, 0x71, 0x6c, 0x62, 0x53, 0x4a, 0x54, 0x66, 0x72, 0x75, 0x7d, 0x89, 0x8b, 0x85, +0x79, 0x6f, 0x6b, 0x70, 0x77, 0x7d, 0x7a, 0x6d, 0x65, 0x60, 0x60, 0x6b, 0x76, 0x7b, 0x76, 0x69, +0x65, 0x6d, 0x79, 0x84, 0x88, 0x81, 0x73, 0x73, 0x82, 0x8d, 0x99, 0xa4, 0xa3, 0x8f, 0x73, 0x68, +0x6b, 0x79, 0x89, 0x8a, 0x7b, 0x66, 0x5a, 0x5c, 0x67, 0x76, 0x85, 0x89, 0x88, 0x86, 0x8a, 0x96, +0xa1, 0xa4, 0x9d, 0x95, 0x8c, 0x89, 0x93, 0x9c, 0xa0, 0x9f, 0x9d, 0x9b, 0x9a, 0x96, 0x92, 0x90, +0x96, 0xa1, 0xa6, 0xa1, 0x93, 0x85, 0x79, 0x73, 0x78, 0x7e, 0x80, 0x75, 0x60, 0x54, 0x55, 0x5e, +0x64, 0x63, 0x5a, 0x4e, 0x4a, 0x57, 0x69, 0x77, 0x7d, 0x80, 0x7c, 0x74, 0x77, 0x83, 0x95, 0xa9, +0xb4, 0xad, 0x9a, 0x8d, 0x89, 0x8d, 0x97, 0x9c, 0x95, 0x89, 0x80, 0x77, 0x7e, 0x89, 0x87, 0x79, +0x6b, 0x63, 0x64, 0x6f, 0x7a, 0x7c, 0x76, 0x75, 0x7a, 0x7a, 0x79, 0x7a, 0x76, 0x76, 0x7d, 0x86, +0x87, 0x82, 0x7d, 0x7a, 0x7e, 0x8d, 0x9d, 0xa9, 0xab, 0xa1, 0x94, 0x91, 0x99, 0x9e, 0x9f, 0x9e, +0x98, 0x93, 0x97, 0xa2, 0xaa, 0xb3, 0xb9, 0xb5, 0x9f, 0x8e, 0x8c, 0x92, 0x9b, 0x9d, 0x9a, 0x90, +0x89, 0x87, 0x87, 0x8c, 0x8c, 0x80, 0x70, 0x6d, 0x6a, 0x6b, 0x74, 0x78, 0x6e, 0x63, 0x62, 0x6a, +0x7a, 0x8d, 0x95, 0x8d, 0x83, 0x85, 0x8c, 0x94, 0x97, 0x94, 0x90, 0x8e, 0x93, 0x92, 0x8d, 0x89, +0x7c, 0x6b, 0x67, 0x6b, 0x6b, 0x6e, 0x6d, 0x64, 0x5e, 0x5f, 0x5f, 0x5c, 0x5b, 0x5d, 0x5c, 0x5c, +0x65, 0x6f, 0x74, 0x7a, 0x7d, 0x78, 0x70, 0x71, 0x74, 0x75, 0x71, 0x69, 0x59, 0x49, 0x49, 0x4f, +0x58, 0x63, 0x64, 0x5b, 0x51, 0x51, 0x5c, 0x6c, 0x73, 0x66, 0x4c, 0x44, 0x52, 0x68, 0x7c, 0x89, +0x8a, 0x81, 0x7b, 0x79, 0x7c, 0x87, 0x91, 0x8e, 0x85, 0x80, 0x7b, 0x7a, 0x81, 0x85, 0x81, 0x81, +0x89, 0x8e, 0x92, 0x8f, 0x8b, 0x85, 0x7d, 0x7b, 0x7b, 0x7e, 0x84, 0x86, 0x88, 0x8d, 0x96, 0xa0, +0xa8, 0xa5, 0x95, 0x7d, 0x75, 0x7a, 0x85, 0x94, 0x98, 0x8e, 0x7e, 0x76, 0x75, 0x7e, 0x8c, 0x92, +0x86, 0x75, 0x6f, 0x6f, 0x71, 0x77, 0x79, 0x71, 0x6a, 0x6c, 0x73, 0x83, 0x8c, 0x8d, 0x86, 0x87, +0x92, 0x9e, 0xab, 0xb4, 0xb5, 0xae, 0xa4, 0x99, 0x96, 0x98, 0x8e, 0x73, 0x5d, 0x56, 0x5b, 0x65, +0x6c, 0x70, 0x6f, 0x65, 0x5e, 0x5d, 0x62, 0x6a, 0x6a, 0x5f, 0x5a, 0x5f, 0x69, 0x7b, 0x91, 0x9f, +0x9f, 0x9c, 0x9e, 0xa4, 0xa9, 0xa3, 0x96, 0x8d, 0x89, 0x86, 0x84, 0x8d, 0x94, 0x90, 0x84, 0x7b, +0x7e, 0x83, 0x86, 0x84, 0x74, 0x66, 0x68, 0x70, 0x80, 0x8e, 0x8f, 0x86, 0x7b, 0x79, 0x83, 0x93, +0xa1, 0x9f, 0x8d, 0x7d, 0x74, 0x74, 0x83, 0x8e, 0x8d, 0x86, 0x83, 0x84, 0x86, 0x8a, 0x8b, 0x8a, +0x86, 0x89, 0x8d, 0x92, 0x9c, 0xa3, 0xa6, 0xa5, 0xa7, 0xa8, 0xab, 0xae, 0xab, 0x9d, 0x94, 0x97, +0x9c, 0xa0, 0xa4, 0xa2, 0x9b, 0x90, 0x87, 0x82, 0x83, 0x81, 0x6e, 0x51, 0x3e, 0x37, 0x3a, 0x4d, +0x5d, 0x5c, 0x51, 0x4a, 0x4d, 0x5b, 0x6b, 0x73, 0x6f, 0x68, 0x6f, 0x7a, 0x87, 0x98, 0xa2, 0x9f, +0x91, 0x87, 0x82, 0x84, 0x7d, 0x6d, 0x5c, 0x5b, 0x64, 0x69, 0x71, 0x74, 0x6f, 0x5e, 0x52, 0x53, +0x5b, 0x60, 0x5d, 0x5a, 0x5a, 0x61, 0x69, 0x77, 0x8d, 0x9d, 0x9c, 0x8e, 0x89, 0x88, 0x89, 0x8b, +0x8b, 0x87, 0x88, 0x8d, 0x90, 0x99, 0xa9, 0xad, 0x9f, 0x8b, 0x80, 0x74, 0x6f, 0x6f, 0x6a, 0x5f, +0x54, 0x4f, 0x57, 0x6d, 0x79, 0x78, 0x6d, 0x6a, 0x71, 0x7e, 0x87, 0x83, 0x72, 0x61, 0x5c, 0x60, +0x6f, 0x84, 0x8b, 0x84, 0x7b, 0x81, 0x8a, 0x8e, 0x8a, 0x7b, 0x64, 0x56, 0x54, 0x58, 0x60, 0x66, +0x6f, 0x74, 0x78, 0x7c, 0x79, 0x7a, 0x7b, 0x73, 0x68, 0x64, 0x64, 0x68, 0x6f, 0x72, 0x6e, 0x64, +0x62, 0x66, 0x72, 0x82, 0x81, 0x6e, 0x5f, 0x60, 0x69, 0x7c, 0x91, 0x98, 0x92, 0x89, 0x8b, 0x9a, +0xb2, 0xbe, 0xb7, 0xaa, 0xa9, 0xb4, 0xc0, 0xd0, 0xdd, 0xda, 0xc8, 0xb7, 0xb0, 0xaf, 0xaf, 0xa8, +0x9b, 0x92, 0x96, 0x9b, 0x9a, 0x9c, 0x97, 0x86, 0x6f, 0x65, 0x64, 0x67, 0x68, 0x5c, 0x50, 0x51, +0x60, 0x71, 0x84, 0x95, 0x9f, 0x9a, 0x8f, 0x90, 0x9a, 0xa2, 0x9c, 0x8d, 0x80, 0x7c, 0x80, 0x88, +0x9b, 0xab, 0xa7, 0x96, 0x89, 0x7e, 0x79, 0x76, 0x6f, 0x5f, 0x51, 0x4e, 0x51, 0x62, 0x75, 0x7a, +0x72, 0x69, 0x6c, 0x76, 0x82, 0x7c, 0x6d, 0x5c, 0x55, 0x5a, 0x64, 0x73, 0x7e, 0x7e, 0x74, 0x71, +0x78, 0x82, 0x88, 0x82, 0x73, 0x6b, 0x6f, 0x79, 0x8b, 0x9f, 0xab, 0xb2, 0xb5, 0xb8, 0xbc, 0xc1, +0xc2, 0xbb, 0xaa, 0x9e, 0x9a, 0x9b, 0xa7, 0xb3, 0xaf, 0xa1, 0x93, 0x87, 0x83, 0x89, 0x89, 0x77, +0x5e, 0x52, 0x54, 0x5f, 0x72, 0x7a, 0x71, 0x60, 0x55, 0x55, 0x62, 0x6e, 0x6a, 0x5c, 0x50, 0x53, +0x5c, 0x6b, 0x79, 0x7e, 0x75, 0x67, 0x5f, 0x5e, 0x68, 0x71, 0x6a, 0x59, 0x52, 0x57, 0x61, 0x6f, +0x7c, 0x7d, 0x73, 0x6e, 0x71, 0x79, 0x82, 0x7d, 0x6b, 0x5b, 0x5d, 0x6a, 0x7e, 0x95, 0x9e, 0x9b, +0x90, 0x89, 0x87, 0x8a, 0x88, 0x7a, 0x6c, 0x63, 0x64, 0x69, 0x75, 0x83, 0x84, 0x77, 0x67, 0x5e, +0x5d, 0x69, 0x72, 0x6c, 0x5d, 0x54, 0x58, 0x68, 0x83, 0x9b, 0xa6, 0x9d, 0x92, 0x8e, 0x96, 0xa1, +0x9e, 0x8c, 0x78, 0x74, 0x7d, 0x98, 0xad, 0xb0, 0xa4, 0x97, 0x92, 0x90, 0x91, 0x90, 0x82, 0x6d, +0x68, 0x6f, 0x75, 0x7e, 0x83, 0x7b, 0x72, 0x70, 0x73, 0x7b, 0x82, 0x7e, 0x76, 0x6c, 0x6c, 0x72, +0x80, 0x97, 0xa6, 0xa7, 0xa1, 0x98, 0x90, 0x92, 0x99, 0x97, 0x87, 0x6f, 0x64, 0x66, 0x76, 0x8b, +0x91, 0x84, 0x73, 0x6b, 0x6c, 0x7c, 0x90, 0x99, 0x92, 0x8a, 0x8a, 0x95, 0xa9, 0xb2, 0xa7, 0x93, +0x87, 0x84, 0x88, 0x88, 0x79, 0x61, 0x4f, 0x4e, 0x5b, 0x6c, 0x77, 0x78, 0x72, 0x70, 0x70, 0x6b, +0x6d, 0x75, 0x73, 0x65, 0x5f, 0x69, 0x78, 0x89, 0x91, 0x94, 0x95, 0x91, 0x8a, 0x85, 0x89, 0x89, +0x80, 0x71, 0x69, 0x6d, 0x7a, 0x8c, 0x98, 0x9a, 0x8e, 0x82, 0x77, 0x7d, 0x8c, 0x88, 0x6e, 0x56, +0x4d, 0x52, 0x67, 0x7d, 0x89, 0x86, 0x80, 0x7b, 0x84, 0x97, 0x9d, 0x8d, 0x72, 0x67, 0x6a, 0x76, +0x87, 0x93, 0x97, 0x97, 0x95, 0x96, 0x9a, 0x9b, 0x8e, 0x79, 0x71, 0x79, 0x81, 0x87, 0x8f, 0x94, +0x94, 0x92, 0x9a, 0xa4, 0xac, 0xae, 0xa8, 0x9e, 0x95, 0x8d, 0x8b, 0x95, 0xa0, 0xa3, 0x9a, 0x8d, +0x80, 0x78, 0x7c, 0x7a, 0x65, 0x47, 0x33, 0x34, 0x48, 0x64, 0x75, 0x74, 0x67, 0x60, 0x65, 0x6f, +0x76, 0x77, 0x6f, 0x62, 0x63, 0x70, 0x89, 0x98, 0x96, 0x89, 0x83, 0x85, 0x85, 0x89, 0x8b, 0x87, +0x7e, 0x78, 0x79, 0x83, 0x93, 0x99, 0x98, 0x9a, 0x9d, 0x9a, 0x96, 0x92, 0x8d, 0x84, 0x76, 0x75, +0x7e, 0x8b, 0x99, 0x9e, 0x99, 0x8d, 0x83, 0x7d, 0x81, 0x82, 0x74, 0x63, 0x58, 0x5a, 0x68, 0x7c, +0x88, 0x86, 0x7c, 0x76, 0x73, 0x79, 0x8b, 0x8f, 0x80, 0x68, 0x58, 0x57, 0x62, 0x75, 0x82, 0x81, +0x78, 0x76, 0x77, 0x7e, 0x87, 0x82, 0x72, 0x62, 0x60, 0x6b, 0x7c, 0x8d, 0x93, 0x8e, 0x87, 0x82, +0x7d, 0x7c, 0x76, 0x68, 0x59, 0x53, 0x52, 0x53, 0x58, 0x5f, 0x65, 0x67, 0x6a, 0x71, 0x78, 0x7d, +0x7c, 0x6f, 0x60, 0x5e, 0x65, 0x75, 0x8a, 0x94, 0x95, 0x8c, 0x84, 0x84, 0x87, 0x89, 0x82, 0x6f, +0x61, 0x5d, 0x65, 0x7b, 0x8e, 0x8d, 0x7e, 0x75, 0x74, 0x7d, 0x8b, 0x8f, 0x85, 0x74, 0x72, 0x7a, +0x84, 0x8c, 0x91, 0x93, 0x91, 0x8f, 0x8f, 0x94, 0x93, 0x8a, 0x7c, 0x6c, 0x6b, 0x70, 0x7a, 0x86, +0x87, 0x83, 0x79, 0x74, 0x72, 0x75, 0x7c, 0x7d, 0x75, 0x6d, 0x6c, 0x6f, 0x7c, 0x87, 0x88, 0x83, +0x83, 0x8b, 0x94, 0x9d, 0x9a, 0x90, 0x84, 0x85, 0x90, 0xa0, 0xb0, 0xb9, 0xb8, 0xaf, 0xab, 0xab, +0xb0, 0xb3, 0xa6, 0x8c, 0x79, 0x79, 0x84, 0x9b, 0xae, 0xb1, 0xa5, 0x9c, 0x9d, 0x9f, 0xa2, 0xa2, +0x91, 0x75, 0x61, 0x59, 0x63, 0x72, 0x78, 0x78, 0x71, 0x6b, 0x6b, 0x68, 0x63, 0x5b, 0x50, 0x4c, +0x52, 0x59, 0x65, 0x74, 0x7d, 0x85, 0x8f, 0x9e, 0xa9, 0xad, 0xb0, 0xaf, 0xa2, 0x98, 0x97, 0x9b, +0xab, 0xb3, 0xae, 0xa2, 0x95, 0x8e, 0x8e, 0x90, 0x8b, 0x78, 0x5c, 0x4d, 0x4d, 0x5e, 0x74, 0x7c, +0x74, 0x67, 0x62, 0x64, 0x6e, 0x78, 0x76, 0x6a, 0x61, 0x61, 0x68, 0x75, 0x7e, 0x82, 0x7c, 0x7a, +0x88, 0x97, 0xa2, 0xa5, 0xa1, 0x97, 0x8d, 0x8d, 0x92, 0x95, 0x8f, 0x87, 0x7e, 0x79, 0x7b, 0x80, +0x83, 0x80, 0x72, 0x64, 0x5f, 0x5f, 0x65, 0x6e, 0x6e, 0x67, 0x60, 0x5c, 0x5d, 0x64, 0x68, 0x66, +0x5f, 0x53, 0x49, 0x45, 0x4c, 0x5a, 0x65, 0x65, 0x62, 0x67, 0x72, 0x79, 0x71, 0x5f, 0x4b, 0x43, +0x48, 0x5e, 0x7a, 0x87, 0x85, 0x7b, 0x7e, 0x8b, 0x9b, 0xa2, 0x95, 0x7b, 0x6c, 0x6e, 0x7c, 0x92, +0x9e, 0x9e, 0x94, 0x88, 0x85, 0x83, 0x7e, 0x77, 0x6a, 0x5a, 0x53, 0x4e, 0x4b, 0x59, 0x6a, 0x74, +0x7d, 0x87, 0x8d, 0x8b, 0x87, 0x83, 0x7e, 0x7c, 0x80, 0x84, 0x8d, 0x9d, 0xa3, 0x9c, 0x90, 0x8d, +0x93, 0x9c, 0x9f, 0x94, 0x80, 0x71, 0x74, 0x80, 0x91, 0x9e, 0x9c, 0x92, 0x92, 0x9c, 0xae, 0xbd, +0xbe, 0xb3, 0xa0, 0x94, 0x92, 0x98, 0xa3, 0xa4, 0x9e, 0x97, 0x98, 0x9e, 0xa3, 0xa4, 0x9b, 0x8a, +0x7a, 0x78, 0x76, 0x78, 0x7d, 0x7d, 0x74, 0x70, 0x74, 0x7d, 0x8c, 0x8f, 0x84, 0x72, 0x66, 0x66, +0x6b, 0x75, 0x7e, 0x7d, 0x7a, 0x7b, 0x7e, 0x85, 0x8e, 0x93, 0x8c, 0x7e, 0x75, 0x71, 0x74, 0x80, +0x80, 0x76, 0x6c, 0x68, 0x69, 0x6b, 0x66, 0x57, 0x43, 0x3a, 0x3d, 0x43, 0x52, 0x5a, 0x5a, 0x57, +0x57, 0x5e, 0x70, 0x84, 0x85, 0x72, 0x62, 0x68, 0x78, 0x8b, 0x9d, 0xa4, 0x9d, 0x92, 0x8f, 0x8f, +0x93, 0x9e, 0xa1, 0x91, 0x81, 0x7b, 0x77, 0x7a, 0x89, 0x95, 0x99, 0x9c, 0xa1, 0xa6, 0xb0, 0xb0, +0xa6, 0x96, 0x8d, 0x8a, 0x8a, 0x93, 0x9f, 0xa1, 0x98, 0x94, 0x94, 0x95, 0x94, 0x84, 0x69, 0x54, +0x55, 0x58, 0x5a, 0x63, 0x67, 0x5c, 0x50, 0x57, 0x69, 0x80, 0x8f, 0x8b, 0x75, 0x64, 0x5e, 0x5d, +0x69, 0x7a, 0x81, 0x80, 0x82, 0x8d, 0x9e, 0xad, 0xb0, 0xa6, 0x99, 0x92, 0x8d, 0x8f, 0x9b, 0xa3, +0x9c, 0x8d, 0x85, 0x81, 0x7e, 0x82, 0x7e, 0x71, 0x60, 0x5b, 0x5e, 0x64, 0x67, 0x66, 0x66, 0x6a, +0x72, 0x7b, 0x88, 0x8c, 0x88, 0x7b, 0x6c, 0x61, 0x67, 0x7b, 0x86, 0x87, 0x81, 0x7e, 0x84, 0x8d, +0x96, 0x92, 0x82, 0x73, 0x76, 0x83, 0x8e, 0x98, 0x9f, 0xa1, 0xa0, 0x9d, 0x9e, 0xa8, 0xac, 0xa1, +0x8c, 0x7d, 0x7c, 0x7d, 0x80, 0x80, 0x7b, 0x77, 0x72, 0x6f, 0x76, 0x82, 0x7b, 0x68, 0x57, 0x50, +0x4d, 0x4d, 0x5f, 0x70, 0x78, 0x75, 0x72, 0x74, 0x85, 0x92, 0x8f, 0x88, 0x7e, 0x79, 0x78, 0x7e, +0x86, 0x89, 0x87, 0x80, 0x7d, 0x7c, 0x80, 0x78, 0x6c, 0x62, 0x5e, 0x60, 0x60, 0x68, 0x72, 0x72, +0x6a, 0x6c, 0x76, 0x86, 0x90, 0x88, 0x78, 0x6b, 0x67, 0x63, 0x6b, 0x78, 0x82, 0x81, 0x7b, 0x84, +0x94, 0xa0, 0xa8, 0xa4, 0x96, 0x8b, 0x89, 0x8b, 0x8d, 0x88, 0x83, 0x7b, 0x6f, 0x6c, 0x67, 0x63, +0x60, 0x59, 0x51, 0x4a, 0x47, 0x47, 0x47, 0x44, 0x42, 0x48, 0x55, 0x68, 0x7d, 0x93, 0xa1, 0x9f, +0x95, 0x93, 0x94, 0x91, 0x8c, 0x83, 0x72, 0x6d, 0x71, 0x77, 0x86, 0x8f, 0x83, 0x6a, 0x61, 0x6b, +0x76, 0x81, 0x83, 0x81, 0x80, 0x82, 0x85, 0x8d, 0x9d, 0xaa, 0xab, 0xa6, 0xa6, 0xac, 0xac, 0xa6, +0xae, 0xb0, 0xac, 0xb1, 0xc4, 0xdb, 0xe3, 0xd3, 0xb9, 0xa2, 0x97, 0x92, 0x94, 0x9b, 0x98, 0x92, +0x8c, 0x94, 0xa6, 0xb5, 0xb1, 0x9b, 0x83, 0x7b, 0x84, 0x92, 0xa3, 0xa9, 0xa4, 0x9e, 0x9c, 0x9d, +0xa3, 0x9d, 0x89, 0x6e, 0x58, 0x55, 0x55, 0x51, 0x4b, 0x3f, 0x37, 0x3b, 0x4b, 0x5f, 0x6b, 0x6a, +0x60, 0x48, 0x4c, 0x60, 0x6a, 0x6d, 0x70, 0x75, 0x7a, 0x86, 0x91, 0x95, 0xa2, 0xa4, 0x9a, 0x9a, +0xa8, 0xa9, 0x9f, 0x98, 0x97, 0x98, 0x9a, 0x9e, 0x96, 0x89, 0x87, 0x84, 0x7d, 0x76, 0x6a, 0x5a, +0x52, 0x51, 0x51, 0x53, 0x4f, 0x4b, 0x51, 0x63, 0x72, 0x77, 0x7b, 0x75, 0x6d, 0x6c, 0x5f, 0x60, +0x65, 0x57, 0x4b, 0x45, 0x4f, 0x5e, 0x72, 0x79, 0x69, 0x63, 0x66, 0x6d, 0x7c, 0x87, 0x8a, 0x84, +0x80, 0x8a, 0x97, 0xa3, 0xa3, 0x8f, 0x7a, 0x78, 0x7a, 0x85, 0x8a, 0x83, 0x81, 0x73, 0x68, 0x78, +0x84, 0x83, 0x78, 0x63, 0x54, 0x55, 0x5e, 0x6b, 0x6a, 0x5d, 0x58, 0x58, 0x5b, 0x6f, 0x86, 0x80, +0x6f, 0x73, 0x79, 0x87, 0x9d, 0xa8, 0xa7, 0xac, 0xa7, 0xa3, 0xaf, 0xbc, 0xb8, 0x9a, 0x8a, 0x85, +0x8f, 0x95, 0x8b, 0x78, 0x6a, 0x5e, 0x59, 0x62, 0x6f, 0x76, 0x70, 0x68, 0x6a, 0x77, 0x7c, 0x68, +0x4f, 0x51, 0x58, 0x5b, 0x69, 0x77, 0x7d, 0x83, 0x83, 0x72, 0x7c, 0x8c, 0x77, 0x6d, 0x77, 0x7c, +0x81, 0x83, 0x81, 0x7d, 0x85, 0x90, 0x92, 0x89, 0x82, 0x81, 0x77, 0x80, 0x90, 0x9d, 0x97, 0x8a, +0x93, 0xa5, 0xb2, 0xbf, 0xce, 0xc3, 0xab, 0x9a, 0x8f, 0x8c, 0x89, 0x80, 0x7c, 0x86, 0x8e, 0x99, +0x93, 0x87, 0x81, 0x74, 0x77, 0x85, 0x86, 0x86, 0x87, 0x7d, 0x76, 0x7c, 0x85, 0x8e, 0x93, 0x8c, +0x79, 0x6f, 0x77, 0x81, 0x91, 0x9f, 0x99, 0x86, 0x7e, 0x7d, 0x8b, 0xaf, 0xbb, 0xa8, 0x98, 0x8e, +0x8d, 0x99, 0x9d, 0x98, 0x99, 0x99, 0x90, 0x8d, 0x8b, 0x93, 0x9b, 0x87, 0x76, 0x77, 0x90, 0x9a, +0x85, 0x73, 0x70, 0x73, 0x82, 0x97, 0xa4, 0x88, 0x66, 0x52, 0x48, 0x56, 0x60, 0x52, 0x3b, 0x3a, +0x45, 0x56, 0x69, 0x71, 0x77, 0x6f, 0x5e, 0x6c, 0x82, 0x78, 0x5a, 0x4f, 0x5b, 0x6f, 0x88, 0x95, +0x8f, 0x91, 0xa5, 0xa7, 0x9d, 0x9f, 0x91, 0x78, 0x7d, 0x78, 0x77, 0x85, 0x74, 0x5e, 0x5e, 0x6b, +0x6d, 0x65, 0x5c, 0x56, 0x51, 0x4f, 0x61, 0x77, 0x79, 0x6f, 0x67, 0x60, 0x64, 0x6f, 0x7b, 0x85, +0x83, 0x73, 0x64, 0x54, 0x58, 0x5d, 0x62, 0x72, 0x6e, 0x6b, 0x73, 0x7c, 0x81, 0x7e, 0x8e, 0x9f, +0xaa, 0xb9, 0xd0, 0xc8, 0xaf, 0xa4, 0x9e, 0xa3, 0xb2, 0xb9, 0xb2, 0x9e, 0x9a, 0x98, 0xa0, 0xa3, +0x93, 0x78, 0x6b, 0x67, 0x62, 0x61, 0x6b, 0x71, 0x68, 0x6a, 0x66, 0x63, 0x67, 0x65, 0x5d, 0x59, +0x5e, 0x65, 0x74, 0x7b, 0x7b, 0x86, 0x8c, 0x94, 0xa5, 0xa7, 0x94, 0x81, 0x81, 0x77, 0x75, 0x88, +0x9f, 0x94, 0x83, 0x80, 0x87, 0x8d, 0x8d, 0x81, 0x76, 0x6b, 0x6d, 0x7b, 0x8c, 0x8e, 0x81, 0x86, +0x8a, 0x77, 0x6e, 0x69, 0x53, 0x3c, 0x3f, 0x48, 0x5c, 0x75, 0x72, 0x69, 0x6a, 0x88, 0x9e, 0xa1, +0x8d, 0x73, 0x60, 0x57, 0x56, 0x60, 0x5f, 0x5e, 0x59, 0x6e, 0x80, 0x84, 0x8b, 0x8b, 0x78, 0x6b, +0x66, 0x71, 0x85, 0x84, 0x7b, 0x82, 0x8d, 0x93, 0x9e, 0xa1, 0x9e, 0x90, 0x85, 0x83, 0x71, 0x6b, +0x6d, 0x69, 0x6e, 0x78, 0x72, 0x76, 0x87, 0x8c, 0x85, 0x88, 0x87, 0x87, 0x8f, 0x8f, 0x97, 0xa1, +0xa2, 0xa0, 0xa7, 0xa4, 0x99, 0x90, 0x88, 0x88, 0x88, 0x9e, 0xae, 0xb0, 0xaf, 0xa8, 0xa1, 0x9c, +0x97, 0x9a, 0x9c, 0x9a, 0x84, 0x7d, 0x95, 0x9d, 0x8e, 0x85, 0x89, 0x91, 0x9d, 0xa7, 0xad, 0xa6, +0x98, 0x8e, 0x8b, 0x88, 0x85, 0x7d, 0x72, 0x6c, 0x7b, 0x92, 0xa0, 0x92, 0x70, 0x59, 0x50, 0x58, +0x60, 0x59, 0x51, 0x43, 0x46, 0x5e, 0x72, 0x6c, 0x57, 0x5f, 0x73, 0x86, 0x96, 0x9a, 0x91, 0x89, +0x84, 0x7a, 0x76, 0x81, 0x94, 0x90, 0x79, 0x7e, 0xa3, 0xbe, 0xb6, 0x9d, 0x89, 0x7e, 0x84, 0x87, +0x79, 0x65, 0x4f, 0x4f, 0x56, 0x58, 0x5d, 0x6a, 0x72, 0x6f, 0x7d, 0x8e, 0x8c, 0x89, 0x81, 0x71, +0x68, 0x5e, 0x5c, 0x71, 0x74, 0x6a, 0x6e, 0x7a, 0x85, 0x7a, 0x7a, 0x7a, 0x73, 0x77, 0x80, 0x7b, +0x76, 0x7a, 0x86, 0x93, 0x95, 0x99, 0xb1, 0xb8, 0xad, 0x9d, 0x90, 0x8e, 0x96, 0x9a, 0x96, 0x92, +0x93, 0x8b, 0x80, 0x83, 0x7b, 0x7c, 0x82, 0x85, 0x81, 0x84, 0x87, 0x95, 0x92, 0x81, 0x6d, 0x58, +0x5d, 0x6a, 0x5d, 0x4a, 0x47, 0x50, 0x61, 0x6d, 0x74, 0x7c, 0x79, 0x83, 0x90, 0x96, 0x8d, 0x79, +0x68, 0x5d, 0x57, 0x52, 0x63, 0x73, 0x60, 0x56, 0x5b, 0x5f, 0x60, 0x5c, 0x48, 0x30, 0x2b, 0x39, +0x57, 0x56, 0x4a, 0x4d, 0x5a, 0x53, 0x4b, 0x4b, 0x47, 0x3f, 0x34, 0x3d, 0x54, 0x5e, 0x59, 0x54, +0x50, 0x4d, 0x5e, 0x70, 0x73, 0x69, 0x57, 0x55, 0x64, 0x74, 0x7c, 0x72, 0x6a, 0x6b, 0x83, 0x95, +0x9f, 0xad, 0xb0, 0xaa, 0xad, 0xbd, 0xca, 0xd4, 0xe3, 0xe5, 0xec, 0xec, 0xea, 0xf4, 0xee, 0xd5, +0xbc, 0xac, 0xac, 0xb6, 0xb3, 0xb1, 0xae, 0xb6, 0xb9, 0xb5, 0xaf, 0xb5, 0xb4, 0x9f, 0x9f, 0xaa, +0xb9, 0xbf, 0xaf, 0xa0, 0x98, 0x87, 0x85, 0x8f, 0x98, 0x94, 0x8a, 0x8c, 0xae, 0xbd, 0xc0, 0xb4, +0xa0, 0xa1, 0x8c, 0x72, 0x81, 0x95, 0xa0, 0x88, 0x71, 0x77, 0x95, 0x92, 0x72, 0x75, 0x84, 0x8e, +0x95, 0x88, 0x68, 0x4a, 0x4e, 0x51, 0x57, 0x6f, 0x82, 0x81, 0x76, 0x72, 0x76, 0x7b, 0x61, 0x3c, +0x36, 0x41, 0x46, 0x50, 0x63, 0x66, 0x5b, 0x50, 0x59, 0x64, 0x5f, 0x53, 0x57, 0x62, 0x70, 0x73, +0x72, 0x72, 0x6d, 0x6b, 0x71, 0x81, 0x95, 0xa7, 0xa9, 0x9d, 0x90, 0x92, 0x97, 0x9a, 0x96, 0x8d, +0x86, 0x84, 0x82, 0x80, 0x7b, 0x73, 0x5e, 0x50, 0x50, 0x5d, 0x7e, 0x9a, 0x9e, 0x9a, 0x8f, 0x85, +0x88, 0x8c, 0x7c, 0x64, 0x58, 0x60, 0x71, 0x80, 0x71, 0x5c, 0x54, 0x54, 0x50, 0x5c, 0x76, 0x80, +0x82, 0x83, 0x82, 0x7e, 0x8b, 0x99, 0xa7, 0xaf, 0xaf, 0xac, 0xa8, 0xa0, 0x97, 0x89, 0x7d, 0x77, +0x7c, 0x7e, 0x73, 0x67, 0x6c, 0x68, 0x5e, 0x5b, 0x5b, 0x52, 0x3c, 0x2f, 0x35, 0x4c, 0x57, 0x53, +0x4d, 0x3e, 0x31, 0x30, 0x34, 0x34, 0x38, 0x3b, 0x4b, 0x63, 0x7a, 0x84, 0x7d, 0x7b, 0x97, 0xab, +0xa4, 0x96, 0x84, 0x72, 0x6a, 0x71, 0x86, 0x9d, 0xa3, 0x98, 0x8f, 0x8c, 0x88, 0x93, 0x9d, 0x95, +0x86, 0x83, 0x84, 0x84, 0x81, 0x78, 0x76, 0x74, 0x78, 0x7a, 0x78, 0x75, 0x69, 0x62, 0x64, 0x5e, +0x6c, 0x82, 0x87, 0x82, 0x7a, 0x7a, 0x85, 0x8f, 0x9a, 0xa2, 0xa4, 0xa3, 0x9f, 0xa4, 0xb0, 0xbd, +0xbd, 0xbb, 0xbb, 0xbc, 0xc1, 0xcb, 0xcb, 0xc4, 0xc1, 0xc1, 0xcc, 0xce, 0xc4, 0xaf, 0xa0, 0xa3, +0xa9, 0xa9, 0x98, 0x84, 0x6f, 0x67, 0x6b, 0x77, 0x81, 0x80, 0x7c, 0x82, 0x83, 0x86, 0x8f, 0x88, +0x7a, 0x77, 0x7d, 0x85, 0x8d, 0x8c, 0x85, 0x81, 0x87, 0x94, 0x9b, 0x94, 0x80, 0x69, 0x68, 0x74, +0x82, 0x8e, 0x8f, 0x84, 0x79, 0x79, 0x83, 0x8f, 0x8c, 0x77, 0x63, 0x55, 0x4d, 0x52, 0x62, 0x6f, +0x71, 0x70, 0x75, 0x76, 0x74, 0x6a, 0x5b, 0x50, 0x4e, 0x4c, 0x51, 0x5a, 0x5c, 0x5b, 0x62, 0x6b, +0x74, 0x7d, 0x82, 0x73, 0x5c, 0x56, 0x5e, 0x6e, 0x7b, 0x85, 0x89, 0x8e, 0x96, 0x9d, 0xa7, 0xaa, +0x9e, 0x8b, 0x7b, 0x70, 0x6d, 0x72, 0x7c, 0x87, 0x90, 0x90, 0x92, 0x96, 0x92, 0x83, 0x77, 0x7c, +0x84, 0x8e, 0x90, 0x89, 0x80, 0x7d, 0x7a, 0x7d, 0x85, 0x80, 0x71, 0x69, 0x68, 0x73, 0x8a, 0x94, +0x8c, 0x7e, 0x7e, 0x81, 0x82, 0x7a, 0x69, 0x53, 0x46, 0x4b, 0x57, 0x62, 0x61, 0x55, 0x4c, 0x50, +0x5c, 0x6d, 0x73, 0x69, 0x58, 0x55, 0x61, 0x7d, 0x9b, 0xb0, 0xbb, 0xc4, 0xce, 0xd4, 0xd8, 0xce, +0xb8, 0xa1, 0x98, 0x96, 0x98, 0x9b, 0x93, 0x84, 0x7c, 0x7a, 0x7e, 0x88, 0x84, 0x71, 0x5f, 0x59, +0x5c, 0x66, 0x73, 0x75, 0x69, 0x5f, 0x5a, 0x5c, 0x68, 0x70, 0x70, 0x71, 0x79, 0x7e, 0x84, 0x88, +0x89, 0x8f, 0x97, 0x96, 0x91, 0x88, 0x7d, 0x71, 0x6e, 0x72, 0x7c, 0x8b, 0x91, 0x90, 0x8a, 0x8c, +0x89, 0x86, 0x88, 0x81, 0x73, 0x68, 0x5e, 0x5e, 0x67, 0x6d, 0x6d, 0x69, 0x62, 0x57, 0x55, 0x5b, +0x5a, 0x4f, 0x4d, 0x54, 0x60, 0x6c, 0x6d, 0x66, 0x65, 0x6e, 0x7c, 0x93, 0xa2, 0x9a, 0x84, 0x72, +0x6a, 0x73, 0x81, 0x84, 0x7e, 0x7a, 0x82, 0x93, 0xa5, 0xaf, 0xaa, 0x98, 0x90, 0x93, 0xa2, 0xaa, +0xa3, 0x97, 0x95, 0x95, 0x96, 0x95, 0x87, 0x6c, 0x54, 0x4d, 0x56, 0x69, 0x73, 0x6c, 0x62, 0x68, +0x77, 0x86, 0x96, 0x9f, 0x98, 0x8f, 0x86, 0x82, 0x8c, 0x93, 0x8e, 0x87, 0x8c, 0x93, 0x98, 0x97, +0x8a, 0x77, 0x6c, 0x6c, 0x76, 0x87, 0x90, 0x90, 0x94, 0x9a, 0x9d, 0xa4, 0xa6, 0x98, 0x82, 0x78, +0x77, 0x7b, 0x87, 0x8e, 0x8e, 0x8b, 0x8c, 0x8f, 0x92, 0x90, 0x8b, 0x88, 0x8e, 0x95, 0x9e, 0xa2, +0xa1, 0x9c, 0x9b, 0xa1, 0xa7, 0xac, 0xaa, 0x9b, 0x84, 0x73, 0x70, 0x75, 0x7a, 0x80, 0x84, 0x83, +0x7c, 0x79, 0x80, 0x7e, 0x74, 0x6a, 0x65, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x73, 0x78, 0x7a, 0x7b, +0x79, 0x6d, 0x62, 0x60, 0x6c, 0x87, 0x9a, 0x98, 0x87, 0x7a, 0x74, 0x7b, 0x8b, 0x91, 0x89, 0x7a, +0x75, 0x7c, 0x8f, 0x9f, 0xa9, 0xa9, 0xa3, 0x99, 0x95, 0x93, 0x85, 0x6c, 0x5d, 0x5c, 0x67, 0x72, +0x6e, 0x61, 0x57, 0x58, 0x63, 0x74, 0x7c, 0x75, 0x64, 0x5f, 0x6a, 0x83, 0x9c, 0xa8, 0xa5, 0xa0, +0x9c, 0x99, 0x9d, 0x9f, 0x92, 0x7b, 0x6f, 0x6f, 0x78, 0x81, 0x80, 0x7d, 0x88, 0x8e, 0x8a, 0x85, +0x7b, 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x57, 0x47, 0x42, 0x44, 0x45, 0x45, 0x44, 0x40, 0x39, +0x35, 0x3c, 0x4b, 0x51, 0x4d, 0x4e, 0x5a, 0x66, 0x6e, 0x71, 0x6d, 0x66, 0x60, 0x5e, 0x61, 0x6f, +0x7d, 0x85, 0x86, 0x86, 0x81, 0x81, 0x7d, 0x72, 0x63, 0x5d, 0x59, 0x5b, 0x69, 0x73, 0x71, 0x6b, +0x6f, 0x74, 0x73, 0x6f, 0x69, 0x5e, 0x5b, 0x5b, 0x63, 0x75, 0x80, 0x82, 0x81, 0x82, 0x88, 0x96, +0x9e, 0x95, 0x81, 0x73, 0x6b, 0x74, 0x8a, 0x9c, 0xa6, 0xb0, 0xb9, 0xc8, 0xd6, 0xdc, 0xd9, 0xd0, +0xc7, 0xc5, 0xce, 0xd5, 0xd4, 0xc9, 0xbf, 0xbb, 0xbd, 0xbe, 0xb7, 0xa2, 0x8f, 0x88, 0x89, 0x93, +0x99, 0x93, 0x8c, 0x8a, 0x8e, 0x9b, 0xa9, 0xa5, 0x93, 0x8a, 0x89, 0x8d, 0x9a, 0xa8, 0xa9, 0xa3, +0xa0, 0xa0, 0xa4, 0xa5, 0x9b, 0x8e, 0x8c, 0x93, 0x9a, 0x9d, 0x96, 0x91, 0x91, 0x91, 0x90, 0x8c, +0x84, 0x76, 0x62, 0x56, 0x51, 0x52, 0x54, 0x53, 0x50, 0x48, 0x42, 0x43, 0x4d, 0x54, 0x4a, 0x3d, +0x39, 0x3d, 0x46, 0x52, 0x61, 0x6d, 0x7a, 0x80, 0x7d, 0x81, 0x8a, 0x8c, 0x88, 0x8a, 0x8f, 0x97, +0x99, 0x91, 0x8a, 0x86, 0x82, 0x82, 0x8a, 0x8b, 0x84, 0x7c, 0x7b, 0x7d, 0x82, 0x85, 0x81, 0x76, +0x71, 0x6d, 0x72, 0x80, 0x84, 0x79, 0x6d, 0x67, 0x68, 0x73, 0x75, 0x6e, 0x67, 0x63, 0x61, 0x5e, +0x60, 0x5f, 0x51, 0x45, 0x43, 0x4e, 0x61, 0x6a, 0x72, 0x75, 0x77, 0x79, 0x86, 0x90, 0x8c, 0x85, +0x81, 0x86, 0x94, 0xa2, 0xa8, 0xa2, 0x9d, 0x9e, 0xa4, 0xb4, 0xbe, 0xb5, 0xa1, 0x94, 0x91, 0x9f, +0xa7, 0x98, 0x8a, 0x86, 0x80, 0x79, 0x7e, 0x81, 0x75, 0x65, 0x5b, 0x5b, 0x64, 0x67, 0x68, 0x69, +0x77, 0x88, 0x91, 0x93, 0x90, 0x83, 0x71, 0x68, 0x62, 0x5f, 0x57, 0x4e, 0x4c, 0x51, 0x55, 0x53, +0x4f, 0x4b, 0x42, 0x37, 0x38, 0x46, 0x59, 0x68, 0x72, 0x7b, 0x85, 0x86, 0x82, 0x86, 0x8f, 0x98, +0x97, 0x91, 0x8e, 0x8d, 0x8c, 0x8d, 0x93, 0x9c, 0x9e, 0x9b, 0x92, 0x8a, 0x83, 0x7c, 0x7b, 0x7b, +0x7d, 0x7e, 0x7c, 0x80, 0x86, 0x8a, 0x8a, 0x8a, 0x8a, 0x88, 0x7a, 0x6f, 0x75, 0x89, 0x99, 0xa5, +0xaf, 0xb1, 0xaa, 0x9f, 0x98, 0x99, 0x97, 0x8d, 0x81, 0x7d, 0x83, 0x8a, 0x8a, 0x89, 0x8e, 0x96, +0x9d, 0xac, 0xbb, 0xba, 0xad, 0xa1, 0xa0, 0xa6, 0xa3, 0x94, 0x84, 0x7a, 0x77, 0x80, 0x89, 0x81, +0x70, 0x67, 0x63, 0x67, 0x6c, 0x66, 0x5b, 0x57, 0x5d, 0x64, 0x6b, 0x68, 0x5f, 0x58, 0x54, 0x55, +0x5c, 0x5b, 0x53, 0x55, 0x64, 0x76, 0x8b, 0x93, 0x96, 0xa1, 0xac, 0xb4, 0xba, 0xb3, 0xa2, 0x9b, +0x9f, 0xa0, 0xa3, 0xa0, 0x8e, 0x7c, 0x72, 0x71, 0x74, 0x6c, 0x5b, 0x4d, 0x46, 0x49, 0x50, 0x52, +0x4e, 0x53, 0x62, 0x74, 0x84, 0x84, 0x78, 0x75, 0x80, 0x85, 0x88, 0x87, 0x80, 0x78, 0x74, 0x74, +0x77, 0x79, 0x73, 0x6c, 0x6c, 0x69, 0x71, 0x83, 0x8a, 0x8a, 0x92, 0x9c, 0xa2, 0x9d, 0x91, 0x8a, +0x94, 0xa2, 0xab, 0xb6, 0xb3, 0xa0, 0x93, 0x91, 0x95, 0x9d, 0x9d, 0x92, 0x88, 0x81, 0x7d, 0x7e, +0x79, 0x73, 0x71, 0x6e, 0x6a, 0x71, 0x79, 0x78, 0x75, 0x75, 0x79, 0x86, 0x8d, 0x89, 0x84, 0x84, +0x86, 0x91, 0x94, 0x89, 0x82, 0x7d, 0x78, 0x87, 0x99, 0xa1, 0xa1, 0x9f, 0x98, 0x97, 0x96, 0x8f, +0x88, 0x87, 0x8c, 0x9a, 0xa3, 0xa0, 0x97, 0x95, 0x9b, 0xa2, 0xa4, 0x94, 0x7e, 0x73, 0x6c, 0x6c, +0x70, 0x6a, 0x60, 0x60, 0x67, 0x78, 0x8a, 0x8b, 0x83, 0x7e, 0x79, 0x7a, 0x7d, 0x7a, 0x6e, 0x60, +0x55, 0x56, 0x5b, 0x51, 0x3f, 0x35, 0x36, 0x40, 0x4f, 0x59, 0x5e, 0x68, 0x74, 0x7d, 0x85, 0x85, +0x7e, 0x7b, 0x7d, 0x85, 0x8f, 0x90, 0x87, 0x80, 0x79, 0x70, 0x6b, 0x62, 0x55, 0x4e, 0x50, 0x55, +0x5d, 0x5f, 0x57, 0x4e, 0x53, 0x5e, 0x6b, 0x70, 0x67, 0x5a, 0x5d, 0x63, 0x69, 0x6c, 0x63, 0x57, +0x51, 0x50, 0x5e, 0x72, 0x83, 0x8b, 0x8b, 0x88, 0x8b, 0x93, 0x96, 0x91, 0x87, 0x7e, 0x83, 0x8c, +0x89, 0x7c, 0x7b, 0x85, 0x96, 0xa5, 0xa6, 0xa2, 0xa8, 0xaa, 0xab, 0xab, 0xa3, 0x99, 0x97, 0x9d, +0xa6, 0xb2, 0xb7, 0xb4, 0xb0, 0xac, 0xa8, 0xa5, 0x9b, 0x82, 0x71, 0x6c, 0x76, 0x8c, 0x93, 0x83, +0x72, 0x76, 0x82, 0x8c, 0x8b, 0x7a, 0x6c, 0x6c, 0x7a, 0x92, 0xa5, 0xa3, 0x9a, 0x94, 0x92, 0xa0, +0xb3, 0xb7, 0xaf, 0xac, 0xb0, 0xb5, 0xb0, 0xa2, 0x9b, 0x9a, 0x91, 0x8d, 0x8c, 0x7e, 0x70, 0x6e, +0x71, 0x76, 0x75, 0x68, 0x5c, 0x60, 0x68, 0x71, 0x79, 0x71, 0x63, 0x65, 0x70, 0x80, 0x8b, 0x86, +0x76, 0x71, 0x70, 0x70, 0x6f, 0x61, 0x4f, 0x4b, 0x53, 0x69, 0x85, 0x91, 0x89, 0x7c, 0x7b, 0x83, +0x8d, 0x8e, 0x81, 0x77, 0x7c, 0x8b, 0x9d, 0xa6, 0x9e, 0x94, 0x8f, 0x8c, 0x89, 0x84, 0x7e, 0x83, +0x8d, 0x94, 0x97, 0x97, 0x8c, 0x7c, 0x75, 0x73, 0x7b, 0x7e, 0x70, 0x60, 0x63, 0x70, 0x7a, 0x75, +0x66, 0x5d, 0x65, 0x72, 0x7e, 0x84, 0x79, 0x69, 0x6b, 0x7a, 0x93, 0xa4, 0xa6, 0xa2, 0xa1, 0xa2, +0xa7, 0xa3, 0x90, 0x78, 0x72, 0x7b, 0x8b, 0x9c, 0xa1, 0x96, 0x8c, 0x8a, 0x8e, 0x8f, 0x88, 0x76, +0x6c, 0x6b, 0x6e, 0x73, 0x73, 0x6e, 0x6d, 0x70, 0x77, 0x7a, 0x75, 0x6e, 0x70, 0x79, 0x84, 0x82, +0x6a, 0x4d, 0x3d, 0x3a, 0x3c, 0x40, 0x3f, 0x32, 0x28, 0x2f, 0x43, 0x52, 0x51, 0x4a, 0x44, 0x45, +0x4f, 0x63, 0x6b, 0x61, 0x61, 0x72, 0x86, 0x8e, 0x84, 0x74, 0x6e, 0x6d, 0x6d, 0x75, 0x79, 0x72, +0x6c, 0x6c, 0x6f, 0x77, 0x84, 0x83, 0x6f, 0x66, 0x6f, 0x7b, 0x76, 0x65, 0x5c, 0x62, 0x72, 0x82, +0x85, 0x7b, 0x73, 0x77, 0x80, 0x8c, 0x93, 0x8b, 0x82, 0x8c, 0xa1, 0xba, 0xc0, 0xb1, 0xa0, 0x9a, +0x9b, 0xa5, 0xb1, 0xb4, 0xaf, 0xaf, 0xb5, 0xc1, 0xc3, 0xb8, 0xac, 0xab, 0xb2, 0xbd, 0xc5, 0xbd, +0xab, 0xa1, 0xa0, 0xa6, 0xb0, 0xaa, 0x96, 0x8c, 0x87, 0x8c, 0x95, 0x8c, 0x76, 0x71, 0x79, 0x84, +0x87, 0x80, 0x78, 0x73, 0x6f, 0x72, 0x79, 0x77, 0x6d, 0x6a, 0x6f, 0x74, 0x7e, 0x86, 0x81, 0x78, +0x7c, 0x8d, 0xa4, 0xa8, 0x97, 0x92, 0x9f, 0xa9, 0xaf, 0xa9, 0x91, 0x7b, 0x71, 0x6e, 0x6c, 0x68, +0x66, 0x69, 0x69, 0x68, 0x70, 0x73, 0x65, 0x57, 0x55, 0x5d, 0x69, 0x6b, 0x65, 0x60, 0x65, 0x70, +0x80, 0x84, 0x73, 0x5a, 0x4f, 0x4d, 0x51, 0x58, 0x52, 0x4b, 0x54, 0x5e, 0x69, 0x72, 0x7b, 0x84, +0x86, 0x85, 0x8a, 0x8d, 0x86, 0x7e, 0x84, 0x8a, 0x8e, 0x89, 0x7c, 0x73, 0x71, 0x77, 0x86, 0x94, +0x96, 0x8e, 0x8a, 0x89, 0x8f, 0x9a, 0x96, 0x85, 0x75, 0x75, 0x82, 0x85, 0x78, 0x70, 0x79, 0x89, +0x95, 0x99, 0x96, 0x8b, 0x7e, 0x7a, 0x81, 0x86, 0x82, 0x80, 0x8a, 0x97, 0xa4, 0xb4, 0xc0, 0xbf, +0xb7, 0xae, 0xa6, 0xa8, 0xa8, 0x9f, 0x97, 0x9a, 0x9d, 0x9b, 0x92, 0x87, 0x89, 0x92, 0x97, 0x98, +0x8c, 0x73, 0x62, 0x5d, 0x5e, 0x5e, 0x58, 0x50, 0x4b, 0x4b, 0x4a, 0x52, 0x5d, 0x63, 0x67, 0x6d, +0x6e, 0x6a, 0x65, 0x5b, 0x4b, 0x44, 0x43, 0x46, 0x45, 0x3d, 0x3d, 0x48, 0x4e, 0x51, 0x55, 0x54, +0x4c, 0x4c, 0x52, 0x5a, 0x5b, 0x56, 0x5a, 0x68, 0x74, 0x77, 0x76, 0x73, 0x6f, 0x6f, 0x6e, 0x6c, +0x69, 0x63, 0x54, 0x4a, 0x4a, 0x53, 0x5e, 0x66, 0x6a, 0x78, 0x8a, 0x99, 0xa0, 0x9d, 0x96, 0x97, +0x9d, 0xa4, 0xa3, 0x9a, 0x92, 0x98, 0xa0, 0xa8, 0xb4, 0xba, 0xb9, 0xbb, 0xb9, 0xb6, 0xb7, 0xb6, +0xb0, 0xaf, 0xb3, 0xba, 0xbd, 0xb7, 0xaf, 0xb2, 0xbd, 0xbd, 0xb3, 0xa5, 0x9b, 0x9a, 0x9f, 0xa4, +0xa9, 0xa0, 0x8f, 0x89, 0x93, 0xa0, 0xa9, 0xaa, 0xa4, 0x9e, 0x9c, 0x98, 0x8f, 0x82, 0x74, 0x6d, +0x6e, 0x73, 0x77, 0x6c, 0x58, 0x55, 0x66, 0x74, 0x7b, 0x77, 0x6d, 0x6c, 0x75, 0x79, 0x7a, 0x78, +0x71, 0x64, 0x61, 0x6e, 0x82, 0x89, 0x7e, 0x73, 0x74, 0x70, 0x63, 0x52, 0x3f, 0x35, 0x3c, 0x4b, +0x5c, 0x63, 0x57, 0x4c, 0x54, 0x62, 0x6f, 0x71, 0x6b, 0x60, 0x54, 0x50, 0x52, 0x53, 0x51, 0x55, +0x64, 0x74, 0x84, 0x8d, 0x8e, 0x87, 0x86, 0x86, 0x82, 0x7a, 0x6a, 0x5e, 0x61, 0x6d, 0x83, 0x98, +0x9f, 0x9f, 0xa6, 0xb3, 0xc0, 0xc4, 0xbc, 0xb5, 0xba, 0xc2, 0xc1, 0xb6, 0xa4, 0x92, 0x8d, 0x94, +0x9f, 0xaa, 0xaa, 0xa2, 0x9c, 0x9b, 0x99, 0x99, 0x98, 0x90, 0x83, 0x76, 0x74, 0x7d, 0x7d, 0x76, +0x79, 0x8d, 0xa0, 0xa7, 0xa1, 0x96, 0x8f, 0x90, 0x8e, 0x87, 0x77, 0x65, 0x5e, 0x61, 0x6d, 0x82, +0x9a, 0xa7, 0xa8, 0xa8, 0xa4, 0xa1, 0x99, 0x88, 0x75, 0x6f, 0x6c, 0x6f, 0x6c, 0x60, 0x55, 0x5c, +0x6d, 0x83, 0x8a, 0x7c, 0x6d, 0x6b, 0x6b, 0x70, 0x75, 0x71, 0x69, 0x66, 0x63, 0x67, 0x71, 0x79, +0x7e, 0x88, 0x8e, 0x8e, 0x88, 0x7b, 0x6d, 0x65, 0x5d, 0x59, 0x57, 0x49, 0x39, 0x38, 0x41, 0x51, +0x61, 0x62, 0x5b, 0x58, 0x59, 0x5e, 0x5e, 0x51, 0x42, 0x3f, 0x44, 0x49, 0x49, 0x4d, 0x55, 0x60, +0x71, 0x85, 0x90, 0x8f, 0x85, 0x7e, 0x79, 0x7b, 0x8c, 0x99, 0x98, 0x94, 0x93, 0x96, 0xa0, 0xa1, +0x9a, 0x98, 0x9a, 0x9c, 0x9c, 0x93, 0x85, 0x78, 0x75, 0x79, 0x80, 0x7c, 0x75, 0x77, 0x85, 0x92, +0x9c, 0x9d, 0x95, 0x87, 0x7e, 0x7a, 0x7e, 0x83, 0x7b, 0x75, 0x80, 0x8e, 0x97, 0x96, 0x8c, 0x82, +0x87, 0x97, 0xac, 0xb7, 0xac, 0x9e, 0x97, 0x8f, 0x8e, 0x91, 0x93, 0x8c, 0x80, 0x72, 0x6d, 0x66, +0x5c, 0x5a, 0x64, 0x69, 0x67, 0x61, 0x58, 0x51, 0x51, 0x5a, 0x6b, 0x75, 0x6d, 0x66, 0x6a, 0x74, +0x84, 0x91, 0x8f, 0x85, 0x7d, 0x78, 0x7b, 0x82, 0x82, 0x85, 0x99, 0xb0, 0xbf, 0xbd, 0xac, 0x99, +0x8e, 0x8d, 0x92, 0x96, 0x8f, 0x85, 0x83, 0x82, 0x86, 0x93, 0x99, 0x91, 0x83, 0x75, 0x6c, 0x68, +0x63, 0x5f, 0x64, 0x6f, 0x7a, 0x80, 0x7e, 0x7a, 0x73, 0x74, 0x7b, 0x85, 0x85, 0x77, 0x70, 0x78, +0x83, 0x94, 0x9f, 0xa4, 0xad, 0xb8, 0xc0, 0xc6, 0xc3, 0xb2, 0xac, 0xb8, 0xc1, 0xc3, 0xb7, 0xa3, +0x8c, 0x82, 0x85, 0x91, 0x96, 0x92, 0x90, 0x92, 0x98, 0xa3, 0xac, 0xad, 0xa2, 0x96, 0x8e, 0x85, +0x7e, 0x73, 0x67, 0x6c, 0x79, 0x87, 0x8d, 0x87, 0x75, 0x6c, 0x6c, 0x79, 0x88, 0x88, 0x7b, 0x76, +0x78, 0x7c, 0x80, 0x7b, 0x78, 0x7b, 0x80, 0x83, 0x7e, 0x6e, 0x5b, 0x58, 0x5f, 0x62, 0x5e, 0x4e, +0x3a, 0x34, 0x40, 0x58, 0x71, 0x79, 0x74, 0x76, 0x7e, 0x84, 0x8a, 0x8c, 0x85, 0x7a, 0x6e, 0x65, +0x64, 0x5d, 0x54, 0x5e, 0x74, 0x84, 0x8b, 0x83, 0x70, 0x5c, 0x51, 0x4f, 0x51, 0x4d, 0x40, 0x3a, +0x44, 0x52, 0x5c, 0x5c, 0x59, 0x59, 0x5f, 0x63, 0x65, 0x66, 0x5f, 0x5b, 0x66, 0x71, 0x75, 0x71, +0x67, 0x64, 0x69, 0x6d, 0x74, 0x78, 0x73, 0x6b, 0x6a, 0x69, 0x6c, 0x6a, 0x60, 0x54, 0x4f, 0x53, +0x5e, 0x68, 0x68, 0x65, 0x6f, 0x7b, 0x87, 0x8c, 0x88, 0x7d, 0x75, 0x6e, 0x72, 0x7d, 0x82, 0x84, +0x93, 0xa0, 0xa3, 0xa0, 0x99, 0x96, 0x9b, 0x9d, 0xa1, 0xa4, 0x9e, 0x92, 0x93, 0xa1, 0xb3, 0xc1, +0xc1, 0xb7, 0xad, 0xa9, 0xad, 0xb4, 0xb8, 0xb6, 0xb7, 0xbd, 0xc4, 0xc7, 0xb9, 0xa4, 0x98, 0x95, +0x93, 0x94, 0x8f, 0x83, 0x7a, 0x7c, 0x85, 0x8e, 0x89, 0x78, 0x6a, 0x66, 0x6c, 0x7e, 0x8f, 0x95, +0x97, 0x9f, 0xa0, 0x9b, 0x92, 0x8b, 0x87, 0x8a, 0x8e, 0x98, 0x9c, 0x94, 0x8f, 0x9f, 0xb3, 0xbb, +0xb4, 0xa4, 0x93, 0x8a, 0x82, 0x83, 0x80, 0x70, 0x66, 0x6b, 0x76, 0x80, 0x81, 0x78, 0x6c, 0x64, +0x60, 0x62, 0x62, 0x5b, 0x53, 0x57, 0x61, 0x6e, 0x75, 0x6e, 0x63, 0x62, 0x69, 0x74, 0x7e, 0x80, +0x7b, 0x80, 0x86, 0x87, 0x80, 0x6e, 0x65, 0x6a, 0x6f, 0x78, 0x82, 0x81, 0x77, 0x77, 0x7b, 0x80, +0x7e, 0x72, 0x64, 0x62, 0x65, 0x6b, 0x79, 0x81, 0x7d, 0x82, 0x90, 0xa1, 0xaa, 0xa4, 0x96, 0x8e, +0x8c, 0x90, 0x94, 0x8f, 0x83, 0x7d, 0x83, 0x8c, 0x93, 0x8f, 0x85, 0x80, 0x7c, 0x77, 0x79, 0x7a, +0x74, 0x76, 0x85, 0x90, 0x99, 0x95, 0x8a, 0x83, 0x84, 0x88, 0x92, 0x91, 0x85, 0x7c, 0x80, 0x86, +0x89, 0x7a, 0x63, 0x57, 0x57, 0x59, 0x61, 0x68, 0x68, 0x68, 0x6f, 0x78, 0x81, 0x7c, 0x6b, 0x56, +0x4d, 0x4a, 0x50, 0x57, 0x53, 0x4a, 0x4d, 0x59, 0x69, 0x6f, 0x69, 0x60, 0x5c, 0x5d, 0x65, 0x6a, +0x61, 0x54, 0x56, 0x61, 0x6b, 0x67, 0x5b, 0x54, 0x57, 0x5b, 0x60, 0x69, 0x6a, 0x64, 0x6a, 0x78, +0x88, 0x91, 0x8d, 0x82, 0x7e, 0x81, 0x87, 0x93, 0x97, 0x94, 0x94, 0x9c, 0xa9, 0xaf, 0xa1, 0x88, +0x7a, 0x79, 0x83, 0x91, 0x98, 0x9c, 0xa9, 0xb8, 0xc3, 0xc6, 0xb8, 0xa3, 0x98, 0x94, 0x97, 0x9f, +0xa0, 0x9a, 0x98, 0x9f, 0xaa, 0xb5, 0xb2, 0xa3, 0x98, 0x92, 0x91, 0x9c, 0xa0, 0x92, 0x89, 0x90, +0x9b, 0xa5, 0x9e, 0x8d, 0x84, 0x85, 0x87, 0x88, 0x8a, 0x84, 0x7e, 0x84, 0x8a, 0x91, 0x91, 0x85, +0x74, 0x6d, 0x6b, 0x73, 0x7a, 0x77, 0x72, 0x74, 0x7a, 0x8d, 0x93, 0x88, 0x72, 0x66, 0x64, 0x6c, +0x74, 0x6f, 0x69, 0x6f, 0x78, 0x7e, 0x7a, 0x67, 0x54, 0x4c, 0x46, 0x47, 0x4d, 0x49, 0x3e, 0x3c, +0x44, 0x53, 0x5f, 0x5d, 0x50, 0x49, 0x46, 0x4d, 0x5d, 0x65, 0x61, 0x67, 0x74, 0x83, 0x8f, 0x8c, +0x7e, 0x7a, 0x7d, 0x82, 0x8a, 0x8a, 0x82, 0x81, 0x86, 0x8d, 0x91, 0x86, 0x75, 0x69, 0x63, 0x69, +0x78, 0x82, 0x86, 0x8a, 0x90, 0x9a, 0xa1, 0x9d, 0x91, 0x86, 0x89, 0x8e, 0x96, 0x9a, 0x92, 0x8d, +0x97, 0xa5, 0xb2, 0xb3, 0xa6, 0x9a, 0x98, 0x98, 0x9c, 0xa1, 0x9f, 0x9e, 0xa6, 0xab, 0xb4, 0xb4, +0xa3, 0x94, 0x92, 0x91, 0x94, 0x98, 0x92, 0x88, 0x88, 0x8e, 0x98, 0x97, 0x86, 0x71, 0x69, 0x6c, +0x78, 0x83, 0x83, 0x81, 0x88, 0x8e, 0x96, 0x98, 0x90, 0x88, 0x83, 0x80, 0x86, 0x8f, 0x8e, 0x85, +0x85, 0x8b, 0x93, 0x96, 0x8c, 0x79, 0x6d, 0x69, 0x6f, 0x7a, 0x7e, 0x7d, 0x86, 0x90, 0x9a, 0xa2, +0x96, 0x80, 0x78, 0x7a, 0x7d, 0x80, 0x7b, 0x6f, 0x6c, 0x70, 0x77, 0x84, 0x83, 0x71, 0x63, 0x5c, +0x5e, 0x6a, 0x70, 0x6e, 0x70, 0x74, 0x76, 0x78, 0x70, 0x5e, 0x4e, 0x47, 0x48, 0x4f, 0x52, 0x4a, +0x47, 0x51, 0x62, 0x74, 0x76, 0x6c, 0x62, 0x5e, 0x5d, 0x65, 0x70, 0x70, 0x72, 0x7d, 0x81, 0x7d, +0x74, 0x68, 0x5f, 0x5f, 0x65, 0x6f, 0x77, 0x73, 0x6e, 0x76, 0x86, 0x97, 0xa0, 0x98, 0x8a, 0x83, +0x80, 0x85, 0x85, 0x7b, 0x73, 0x78, 0x7d, 0x83, 0x86, 0x7d, 0x72, 0x6e, 0x6f, 0x71, 0x72, 0x6d, +0x6a, 0x6d, 0x71, 0x7a, 0x83, 0x7a, 0x6a, 0x59, 0x4b, 0x4a, 0x50, 0x54, 0x57, 0x69, 0x81, 0x90, +0x96, 0x91, 0x87, 0x89, 0x92, 0x9a, 0xa4, 0xa4, 0x95, 0x8d, 0x8c, 0x89, 0x88, 0x82, 0x75, 0x6d, +0x67, 0x6a, 0x79, 0x84, 0x82, 0x80, 0x83, 0x8a, 0x91, 0x8d, 0x82, 0x78, 0x74, 0x76, 0x7b, 0x7d, +0x76, 0x79, 0x87, 0x97, 0xaa, 0xb3, 0xad, 0xa8, 0xa3, 0xa0, 0xa2, 0xa2, 0x9e, 0xa2, 0xad, 0xb2, +0xb4, 0xae, 0x9d, 0x89, 0x81, 0x77, 0x83, 0x91, 0x8f, 0x8c, 0x90, 0x94, 0x98, 0x96, 0x8e, 0x7b, +0x6d, 0x6c, 0x75, 0x80, 0x79, 0x6c, 0x77, 0x86, 0x8e, 0x8f, 0x84, 0x7b, 0x7c, 0x78, 0x7d, 0x8a, +0x8b, 0x8e, 0x96, 0x9e, 0xa9, 0xb0, 0xa7, 0x90, 0x8a, 0x8a, 0x8c, 0x97, 0x90, 0x84, 0x93, 0x9e, +0xa5, 0xac, 0xa8, 0x9e, 0x99, 0x9c, 0xa5, 0xa7, 0x9c, 0x88, 0x85, 0x8e, 0x99, 0x98, 0x8a, 0x74, +0x68, 0x61, 0x65, 0x6c, 0x6e, 0x72, 0x79, 0x86, 0x97, 0xa9, 0xad, 0x9d, 0x92, 0x91, 0x8f, 0x93, +0x8d, 0x80, 0x7e, 0x83, 0x8f, 0x8f, 0x7c, 0x6b, 0x60, 0x5f, 0x5f, 0x5f, 0x55, 0x49, 0x4d, 0x55, +0x59, 0x5d, 0x53, 0x46, 0x3e, 0x3d, 0x49, 0x52, 0x4f, 0x42, 0x3c, 0x4a, 0x51, 0x57, 0x5f, 0x59, +0x54, 0x57, 0x5e, 0x6c, 0x6b, 0x5d, 0x59, 0x66, 0x75, 0x73, 0x64, 0x5b, 0x58, 0x56, 0x4c, 0x3c, +0x37, 0x39, 0x39, 0x44, 0x4c, 0x4d, 0x4c, 0x41, 0x31, 0x1d, 0xe, 0x14, 0x1f, 0x24, 0x31, 0x4a, +0x5e, 0x6a, 0x77, 0x82, 0x7e, 0x7b, 0x88, 0x95, 0xa0, 0xae, 0xaa, 0xaa, 0xb9, 0xca, 0xd5, 0xc8, +0xb0, 0xac, 0xa8, 0xb0, 0xc3, 0xbe, 0xaa, 0x9f, 0xa3, 0xba, 0xd2, 0xda, 0xcf, 0xbb, 0xb1, 0xb5, +0xbc, 0xaf, 0x8d, 0x81, 0x95, 0xae, 0xc6, 0xc1, 0xa4, 0xa3, 0xa7, 0xa7, 0xb3, 0xa9, 0x9a, 0x9e, +0xaa, 0xbd, 0xcb, 0xca, 0xb3, 0xaf, 0xbb, 0xb9, 0xac, 0x96, 0x81, 0x81, 0x9b, 0xb3, 0xb7, 0xa0, +0x7d, 0x6b, 0x69, 0x6c, 0x69, 0x58, 0x46, 0x45, 0x55, 0x65, 0x59, 0x45, 0x3d, 0x46, 0x53, 0x51, +0x44, 0x3f, 0x3e, 0x42, 0x4f, 0x50, 0x4d, 0x4c, 0x44, 0x45, 0x4e, 0x44, 0x41, 0x50, 0x55, 0x6c, +0x89, 0x86, 0x86, 0x90, 0x99, 0xb2, 0xbf, 0xb8, 0xb2, 0xb1, 0xab, 0xa5, 0xad, 0xbb, 0xc9, 0xd1, +0xd3, 0xd4, 0xc9, 0xb5, 0xa6, 0x9d, 0x9f, 0x91, 0x80, 0x81, 0x84, 0x89, 0x92, 0x88, 0x7a, 0x7a, +0x7e, 0x87, 0x80, 0x66, 0x59, 0x60, 0x7c, 0x8d, 0x7e, 0x6c, 0x66, 0x67, 0x6d, 0x80, 0x8a, 0x7e, +0x7a, 0x7b, 0x88, 0x8c, 0x7e, 0x73, 0x74, 0x78, 0x73, 0x77, 0x68, 0x57, 0x62, 0x6e, 0x7c, 0x85, +0x73, 0x60, 0x63, 0x69, 0x83, 0x8f, 0x80, 0x6f, 0x6c, 0x8b, 0xa3, 0xad, 0xa9, 0x99, 0x9b, 0xb0, +0xa9, 0x93, 0x7b, 0x69, 0x6b, 0x78, 0x7e, 0x72, 0x64, 0x58, 0x49, 0x4c, 0x4c, 0x3b, 0x38, 0x3c, +0x34, 0x3f, 0x4b, 0x45, 0x48, 0x52, 0x68, 0x85, 0x79, 0x6e, 0x7c, 0x81, 0x94, 0x9d, 0x98, 0xa0, +0x95, 0x8f, 0x8d, 0x81, 0x70, 0x63, 0x53, 0x54, 0x5f, 0x68, 0x77, 0x86, 0x88, 0x8e, 0x80, 0x70, +0x68, 0x62, 0x6a, 0x6d, 0x72, 0x67, 0x61, 0x82, 0x96, 0xa6, 0xad, 0x99, 0x87, 0x84, 0x92, 0xa0, +0x9c, 0x9a, 0xa7, 0xb3, 0xc6, 0xc3, 0xa7, 0xa7, 0xa5, 0x97, 0x9a, 0xa1, 0x8e, 0x7e, 0x87, 0xa1, +0xb9, 0xba, 0xa8, 0x94, 0x85, 0x7d, 0x83, 0x82, 0x81, 0x84, 0x94, 0xa6, 0x9c, 0x82, 0x61, 0x59, +0x69, 0x7d, 0x82, 0x72, 0x58, 0x5d, 0x66, 0x76, 0x8b, 0x7b, 0x6a, 0x5a, 0x53, 0x5e, 0x5a, 0x4d, +0x52, 0x5f, 0x71, 0x83, 0x83, 0x77, 0x6c, 0x72, 0x7a, 0x70, 0x67, 0x66, 0x62, 0x5d, 0x64, 0x6e, +0x6f, 0x67, 0x58, 0x5c, 0x64, 0x57, 0x49, 0x51, 0x67, 0x82, 0x88, 0x81, 0x7b, 0x6a, 0x6a, 0x6d, +0x77, 0x74, 0x63, 0x72, 0x80, 0x88, 0x7d, 0x6c, 0x7a, 0x8f, 0x97, 0x9e, 0x93, 0x79, 0x6f, 0x72, +0x81, 0x79, 0x6c, 0x6f, 0x87, 0x90, 0x8d, 0x8b, 0x84, 0x74, 0x6e, 0x79, 0x68, 0x58, 0x61, 0x68, +0x7b, 0x97, 0xab, 0xaa, 0x9d, 0xa2, 0xa4, 0x9e, 0xa0, 0x96, 0x8a, 0xa2, 0xb6, 0xbb, 0xad, 0x98, +0x94, 0x9e, 0xa8, 0xaa, 0x95, 0x8d, 0x82, 0x87, 0x99, 0x97, 0x85, 0x80, 0x9c, 0xb6, 0xb2, 0x9b, +0x8e, 0x9a, 0xaf, 0xb2, 0xc6, 0xc6, 0xa2, 0x85, 0x8e, 0x9e, 0xa4, 0x9c, 0x7e, 0x7a, 0x88, 0x94, +0xa2, 0xa4, 0xa5, 0xb3, 0xa4, 0xa2, 0x9d, 0x76, 0x73, 0x75, 0x77, 0x71, 0x6a, 0x62, 0x58, 0x66, +0x8f, 0x90, 0x94, 0x85, 0x75, 0x81, 0x84, 0x8c, 0x83, 0x8b, 0x98, 0x9a, 0x92, 0x83, 0x73, 0x70, +0x86, 0x90, 0x8f, 0x7e, 0x77, 0x75, 0x6c, 0x75, 0x73, 0x64, 0x58, 0x59, 0x5f, 0x58, 0x54, 0x53, +0x5b, 0x61, 0x61, 0x5a, 0x45, 0x37, 0x16, 0x13, 0x3b, 0x4d, 0x49, 0x42, 0x43, 0x59, 0x76, 0x78, +0x63, 0x57, 0x50, 0x57, 0x61, 0x61, 0x69, 0x86, 0x9f, 0xa5, 0xab, 0xa4, 0x94, 0x7d, 0x7b, 0x97, +0xa2, 0x81, 0x6d, 0x59, 0x57, 0x5d, 0x5b, 0x54, 0x44, 0x38, 0x5d, 0x76, 0x76, 0x73, 0x7a, 0x87, +0x93, 0x8b, 0x92, 0x95, 0x7b, 0x69, 0x7e, 0x70, 0x67, 0x66, 0x74, 0x76, 0x76, 0x84, 0x7c, 0x7b, +0x89, 0x78, 0x7a, 0x86, 0x76, 0x83, 0x9d, 0xb1, 0xb0, 0x98, 0x7b, 0x82, 0x9e, 0xad, 0xa3, 0x83, +0x66, 0x65, 0x6f, 0x64, 0x62, 0x63, 0x6b, 0x6b, 0x82, 0x88, 0x79, 0x7d, 0x76, 0x81, 0x94, 0x95, +0x7e, 0x72, 0x69, 0x84, 0xa5, 0x95, 0x6c, 0x65, 0x6f, 0x73, 0x71, 0x7c, 0x7d, 0x7c, 0x80, 0x91, +0xae, 0x9b, 0x8b, 0x9d, 0xb5, 0xd9, 0xd1, 0xb7, 0xa9, 0x9a, 0x97, 0x99, 0xb1, 0xbd, 0xab, 0x9f, +0x87, 0x7b, 0x66, 0x4f, 0x45, 0x57, 0x6f, 0x75, 0x89, 0x87, 0x97, 0xb0, 0xb0, 0xa9, 0x9c, 0x92, +0x9e, 0xa2, 0xa3, 0xa2, 0xac, 0xbb, 0xaa, 0xab, 0xab, 0xa3, 0xad, 0xa2, 0xa8, 0xbe, 0xc1, 0xa6, +0x9b, 0xad, 0xb0, 0xb0, 0x9b, 0x7e, 0x84, 0x82, 0x91, 0x8c, 0x91, 0x97, 0x86, 0x77, 0x68, 0x5c, +0x59, 0x46, 0x38, 0x51, 0x5a, 0x64, 0x56, 0x57, 0x69, 0x76, 0x70, 0x60, 0x3f, 0x49, 0x68, 0x7d, +0xa1, 0x88, 0x7b, 0x7e, 0x73, 0x89, 0x84, 0x69, 0x6f, 0x68, 0x83, 0x8b, 0x6f, 0x66, 0x73, 0x88, +0x88, 0x87, 0x6c, 0x54, 0x53, 0x59, 0x73, 0x74, 0x69, 0x75, 0x75, 0x6c, 0x75, 0x69, 0x4f, 0x2a, +0x2a, 0x3f, 0x4f, 0x64, 0x62, 0x4b, 0x6b, 0x9c, 0xa1, 0x6e, 0x59, 0x4e, 0x50, 0x53, 0x6b, 0x85, +0x80, 0x7a, 0x79, 0x86, 0x8c, 0x87, 0x69, 0x64, 0x85, 0x80, 0x67, 0x4d, 0x4e, 0x63, 0x6d, 0x71, +0x69, 0x3c, 0x36, 0x4f, 0x71, 0x8f, 0x86, 0x95, 0x92, 0x81, 0x9b, 0xa7, 0x8a, 0x71, 0x82, 0x97, +0x96, 0xac, 0x93, 0x99, 0xa6, 0xb0, 0xa7, 0x85, 0x82, 0x8a, 0x80, 0x88, 0x95, 0x94, 0x97, 0x99, +0xa0, 0xa6, 0x96, 0x8e, 0x8f, 0xa2, 0xbf, 0xb6, 0x97, 0x8e, 0x7c, 0x90, 0xaf, 0xbe, 0xba, 0xa5, +0xa9, 0xbb, 0xab, 0x9c, 0x86, 0x84, 0x9e, 0xa5, 0xa7, 0x95, 0x83, 0x8a, 0x96, 0x90, 0x96, 0x98, +0x71, 0x69, 0x89, 0x8b, 0x69, 0x44, 0x42, 0x41, 0x3e, 0x54, 0x57, 0x44, 0x3c, 0x52, 0x6a, 0x83, +0x7a, 0x70, 0x7d, 0x8e, 0xaa, 0xb1, 0x8c, 0x87, 0x97, 0x92, 0xad, 0xa5, 0x88, 0x60, 0x6d, 0x82, +0x7c, 0x8f, 0x74, 0x6d, 0x82, 0x83, 0x73, 0x62, 0x3d, 0x47, 0x52, 0x5f, 0x76, 0x77, 0x62, 0x56, +0x60, 0x7d, 0x8b, 0x6f, 0x66, 0x5a, 0x77, 0x8d, 0x6c, 0x65, 0x7b, 0x7a, 0x84, 0x85, 0x78, 0x8d, +0x98, 0xb1, 0xc4, 0xb8, 0x9d, 0x94, 0x9a, 0xa7, 0xb3, 0x98, 0x78, 0x74, 0x73, 0x6e, 0x68, 0x68, +0x63, 0x4f, 0x56, 0x5b, 0x5f, 0x63, 0x5d, 0x58, 0x7e, 0x9a, 0x8a, 0x77, 0x6a, 0x6c, 0x6a, 0x72, +0x6c, 0x6a, 0x6d, 0x74, 0x8d, 0x8e, 0x6e, 0x8f, 0x90, 0x80, 0xa3, 0xa3, 0x8b, 0x89, 0x9d, 0x9f, +0xa7, 0x9b, 0x92, 0x93, 0x95, 0x9f, 0xa5, 0x9e, 0x71, 0x6d, 0x6c, 0x70, 0x78, 0x8e, 0x8b, 0x8a, +0x97, 0x7d, 0x6c, 0x68, 0x70, 0x82, 0x93, 0x96, 0x92, 0x88, 0x8f, 0x87, 0x7b, 0x91, 0x8d, 0x92, +0xa8, 0xaf, 0xc5, 0xb3, 0x94, 0x8d, 0x80, 0x68, 0x5f, 0x54, 0x46, 0x4e, 0x67, 0x86, 0x94, 0xa7, +0x99, 0x99, 0xba, 0xbb, 0xbc, 0xa8, 0x7b, 0x77, 0x9d, 0x97, 0x94, 0xa0, 0x82, 0x55, 0x5c, 0x61, +0x51, 0x60, 0x61, 0x65, 0x83, 0x86, 0x75, 0x79, 0x72, 0x6b, 0x99, 0xa1, 0x7a, 0x83, 0x8f, 0x7c, +0x98, 0xa2, 0x98, 0x9a, 0x95, 0x82, 0x94, 0x7a, 0x5d, 0x60, 0x84, 0x9d, 0xae, 0x9e, 0x83, 0x7c, +0x91, 0xad, 0xa3, 0x90, 0x81, 0x7b, 0x8f, 0x83, 0x74, 0x84, 0x6b, 0x58, 0x5a, 0x48, 0x2f, 0x2b, +0x38, 0x3b, 0x46, 0x45, 0x34, 0x22, 0x37, 0x3b, 0x4a, 0x52, 0x4b, 0x62, 0x8a, 0xa0, 0xa0, 0x9a, +0x7d, 0x76, 0x84, 0x7b, 0x6b, 0x56, 0x46, 0x4d, 0x64, 0x63, 0x70, 0x88, 0x86, 0x82, 0x83, 0x84, +0x87, 0x76, 0x61, 0x6c, 0x72, 0x62, 0x52, 0x5c, 0x5c, 0x5d, 0x74, 0x6e, 0x50, 0x55, 0x71, 0x83, +0x86, 0x88, 0x83, 0x70, 0x71, 0x84, 0x86, 0x71, 0x77, 0x8a, 0x9a, 0xb0, 0xaf, 0xa2, 0x8e, 0x98, +0x96, 0x8c, 0x7e, 0x67, 0x70, 0x8b, 0x9f, 0xb9, 0xaa, 0x98, 0xa1, 0x80, 0x81, 0x93, 0x7e, 0x6d, +0x76, 0x97, 0xab, 0xa9, 0xa8, 0xad, 0x99, 0x92, 0x9d, 0x9e, 0x75, 0x64, 0x8d, 0xa2, 0x9a, 0xa0, +0xab, 0x9e, 0x8a, 0x96, 0x9f, 0x96, 0x88, 0x8b, 0xb7, 0xd4, 0xc2, 0xc1, 0xb5, 0xa9, 0xae, 0x9e, +0x84, 0x7c, 0x74, 0x87, 0xa2, 0x9f, 0x9c, 0x94, 0x95, 0x99, 0xab, 0xb0, 0xac, 0x93, 0x88, 0xa0, +0x87, 0x85, 0x75, 0x67, 0x62, 0x6a, 0x7c, 0x92, 0x7d, 0x60, 0x6a, 0x76, 0x7b, 0x7a, 0x6c, 0x6a, +0x6b, 0x6d, 0x5e, 0x4b, 0x57, 0x65, 0x76, 0x90, 0x9e, 0x8d, 0x88, 0x75, 0x84, 0x85, 0x4d, 0x34, +0x46, 0x7a, 0x8b, 0x85, 0x79, 0x89, 0x8b, 0x77, 0xa7, 0x9a, 0x90, 0x84, 0x81, 0x93, 0x90, 0x8b, +0x6f, 0x74, 0x72, 0x65, 0x6f, 0x5d, 0x3b, 0x32, 0x2c, 0x44, 0x68, 0x44, 0x29, 0x2f, 0x21, 0x39, +0x51, 0x3d, 0x41, 0x64, 0x8b, 0xa2, 0x9c, 0x8a, 0x84, 0x7a, 0x8e, 0x94, 0x77, 0x53, 0x6c, 0x97, +0xa3, 0xa4, 0xae, 0x97, 0x87, 0x90, 0x94, 0x82, 0x61, 0x5e, 0x6c, 0x6e, 0x4c, 0x49, 0x55, 0x4e, +0x52, 0x6e, 0x81, 0x6e, 0x69, 0x6b, 0x76, 0x8b, 0x8e, 0x7a, 0x76, 0x6b, 0x67, 0x6e, 0x71, 0x6e, +0x5d, 0x7b, 0xa3, 0xa2, 0x9a, 0x98, 0x9a, 0x86, 0x7a, 0x7a, 0x5a, 0x58, 0x70, 0x7b, 0x94, 0x90, +0x8d, 0x89, 0x8f, 0x8c, 0x75, 0x57, 0x4a, 0x5e, 0x71, 0x8a, 0x8f, 0x91, 0x96, 0x90, 0x90, 0x8c, +0x94, 0x72, 0x55, 0x62, 0x68, 0x70, 0x6f, 0x73, 0x86, 0x8e, 0x99, 0xa4, 0xa4, 0xa2, 0xb1, 0xcd, +0xdf, 0xe2, 0xd6, 0xc4, 0xab, 0xa5, 0xa3, 0x95, 0x77, 0x8c, 0x87, 0x9b, 0xc4, 0xb0, 0xb1, 0xcb, +0xcd, 0xb5, 0x8e, 0x87, 0x82, 0x7a, 0x7e, 0x81, 0x8c, 0x93, 0x8d, 0x81, 0xac, 0xd6, 0xb7, 0x93, +0x82, 0x81, 0x87, 0x6c, 0x58, 0x6c, 0x7a, 0x7e, 0x8b, 0x90, 0x7d, 0x71, 0x74, 0x81, 0x8d, 0x8e, +0x73, 0x74, 0x87, 0x84, 0x82, 0x7e, 0x68, 0x63, 0x78, 0x97, 0x98, 0x6e, 0x5a, 0x81, 0x91, 0x75, +0x74, 0x7a, 0x65, 0x48, 0x4d, 0x69, 0x7d, 0x7b, 0x6e, 0x5f, 0x6e, 0x75, 0x57, 0x3e, 0x3a, 0x3c, +0x3b, 0x46, 0x4d, 0x55, 0x58, 0x55, 0x5c, 0x53, 0x4b, 0x55, 0x71, 0x86, 0x8e, 0x98, 0x80, 0x73, +0x6c, 0x66, 0x55, 0x60, 0x6f, 0x77, 0xa1, 0xc9, 0xbb, 0xb1, 0xad, 0xb2, 0x8f, 0x6c, 0x58, 0x54, +0x52, 0x54, 0x46, 0x3e, 0x4c, 0x49, 0x5e, 0x74, 0x8f, 0x9e, 0x91, 0x8b, 0x8e, 0x92, 0x9f, 0x9a, +0x71, 0x5f, 0x68, 0x6c, 0x7b, 0x6a, 0x5f, 0x7d, 0x9f, 0xb2, 0xb6, 0x9e, 0x83, 0x98, 0x9d, 0x97, +0x8a, 0x7a, 0x6f, 0x6f, 0x8c, 0xb2, 0xa3, 0x8b, 0x8b, 0x8e, 0x91, 0x91, 0x7a, 0x62, 0x56, 0x61, +0x72, 0x88, 0x82, 0x7a, 0x86, 0x9c, 0xa6, 0x97, 0x74, 0x60, 0x5d, 0x60, 0x6a, 0x79, 0x64, 0x4c, +0x70, 0xa8, 0xbf, 0xac, 0xaa, 0xba, 0xd1, 0xf2, 0xd3, 0xa7, 0xa3, 0x86, 0x66, 0x6f, 0x79, 0x70, +0x61, 0x6b, 0x88, 0x9c, 0x88, 0x8a, 0xa2, 0x97, 0x9d, 0x82, 0x60, 0x5f, 0x5c, 0x68, 0x7d, 0x9b, +0x9e, 0x8d, 0xaf, 0xc8, 0xc1, 0xb8, 0x81, 0x78, 0x81, 0x75, 0x74, 0x6d, 0x66, 0x75, 0x7b, 0x81, +0x7d, 0x75, 0x5d, 0x7d, 0xaf, 0xb6, 0xa6, 0x95, 0x8c, 0x71, 0x6f, 0x5a, 0x43, 0x41, 0x39, 0x58, +0x7b, 0x8b, 0xae, 0xb9, 0xba, 0xc6, 0xbc, 0x84, 0x6c, 0x78, 0x87, 0x91, 0x88, 0x8e, 0x7b, 0x61, +0x69, 0x79, 0x69, 0x3a, 0x1e, 0x2d, 0x31, 0x3d, 0x4d, 0x37, 0x40, 0x49, 0x3a, 0x4d, 0x5f, 0x57, +0x69, 0x90, 0x8b, 0x83, 0x7c, 0x73, 0x6e, 0x4e, 0x5c, 0x6c, 0x55, 0x6a, 0x92, 0x9a, 0x9e, 0xae, +0xb9, 0xb2, 0xb2, 0xa0, 0x81, 0x65, 0x5a, 0x59, 0x3e, 0x26, 0x46, 0x5c, 0x52, 0x7b, 0xa4, 0xb4, +0xba, 0xa7, 0x9e, 0x9b, 0x79, 0x83, 0x8e, 0x7c, 0x76, 0x59, 0x69, 0x73, 0x6e, 0x8f, 0x98, 0x8e, +0x88, 0x8b, 0x9c, 0x8e, 0x9c, 0xa4, 0x84, 0x7c, 0x66, 0x6d, 0x67, 0x5c, 0x74, 0x7d, 0x9c, 0xbc, +0xc5, 0xb2, 0x8c, 0x78, 0x77, 0x7a, 0x82, 0x84, 0x84, 0x93, 0x96, 0x99, 0x9d, 0x94, 0x85, 0x71, +0x59, 0x69, 0x72, 0x5f, 0x73, 0x74, 0x70, 0x6b, 0x78, 0x7a, 0x7c, 0xaf, 0xdc, 0xe4, 0xea, 0xf4, +0xfe, 0xc0, 0xa9, 0xa7, 0x83, 0x6d, 0x6c, 0x86, 0x96, 0x96, 0xa3, 0xa4, 0xb0, 0xb2, 0xa1, 0x86, +0x6a, 0x4a, 0x3d, 0x3c, 0x45, 0x4e, 0x5c, 0x74, 0x93, 0x98, 0x99, 0xa9, 0x96, 0x7a, 0x90, 0x9c, +0x80, 0x6f, 0x67, 0x64, 0x75, 0x77, 0x78, 0x74, 0x70, 0x92, 0xac, 0x97, 0x7e, 0x6f, 0x88, 0x86, +0x85, 0x78, 0x6e, 0x5a, 0x4d, 0x48, 0x53, 0x6f, 0x7e, 0x95, 0xbe, 0xd1, 0xdb, 0xdb, 0xa4, 0x81, +0x6f, 0x5e, 0x6a, 0x71, 0x57, 0x60, 0x7b, 0x78, 0x79, 0x7c, 0x48, 0x33, 0x27, 0x25, 0x28, 0x2e, +0x3b, 0x43, 0x47, 0x3f, 0x48, 0x51, 0x48, 0x49, 0x50, 0x4a, 0x3b, 0x5a, 0x65, 0x60, 0x5f, 0x59, +0x64, 0x76, 0x7a, 0x77, 0x93, 0x98, 0x9f, 0xb0, 0xd6, 0xdb, 0xb4, 0x8e, 0x66, 0x58, 0x5a, 0x5c, +0x55, 0x54, 0x52, 0x56, 0x6a, 0x82, 0x8e, 0x87, 0x7a, 0x8f, 0x91, 0x7d, 0x89, 0x9a, 0x9c, 0x8a, +0x94, 0x91, 0x9a, 0xa2, 0x9e, 0xb3, 0xc8, 0xce, 0x98, 0x72, 0x9a, 0x9f, 0x84, 0x78, 0x72, 0x69, +0x5c, 0x63, 0x87, 0x96, 0x99, 0xa9, 0xbb, 0xaf, 0xb9, 0xaf, 0x7e, 0x84, 0x7a, 0x6e, 0x87, 0x80, +0x7d, 0x74, 0x80, 0x76, 0x66, 0x69, 0x4d, 0x49, 0x42, 0x51, 0x7a, 0x92, 0x9c, 0x91, 0x8e, 0x8d, +0x71, 0x71, 0xaa, 0xbc, 0xb3, 0xbb, 0xbd, 0xd2, 0xdc, 0xbe, 0x9c, 0x9b, 0x93, 0x8c, 0x84, 0x76, +0x90, 0xa6, 0xaa, 0xc1, 0xc6, 0x9d, 0xa2, 0x8c, 0x64, 0x6c, 0x55, 0x57, 0x6a, 0x67, 0x7a, 0x92, +0x9c, 0x84, 0x67, 0x66, 0x68, 0x5c, 0x6e, 0x5d, 0x6d, 0x89, 0x76, 0x82, 0x8a, 0x7b, 0x79, 0x8a, +0x90, 0x95, 0x87, 0x7a, 0x79, 0x7c, 0x81, 0x6b, 0x66, 0x68, 0x63, 0x57, 0x45, 0x48, 0x52, 0x63, +0x87, 0x9f, 0xc2, 0xd1, 0xc7, 0xc8, 0xb2, 0x9d, 0x8e, 0x80, 0x80, 0x95, 0xa2, 0x91, 0x7c, 0x80, +0x83, 0x75, 0x47, 0x28, 0x31, 0x3b, 0x4f, 0x4d, 0x45, 0x46, 0x41, 0x3d, 0x42, 0x6c, 0x73, 0x5b, +0x4f, 0x3b, 0x42, 0x4f, 0x65, 0x76, 0x7b, 0x75, 0x84, 0x78, 0x83, 0x7e, 0x79, 0x9b, 0xbc, 0xcf, +0xcc, 0xa6, 0x89, 0x7b, 0x5c, 0x5c, 0x4d, 0x3b, 0x3f, 0x3e, 0x3e, 0x3d, 0x4a, 0x6d, 0x67, 0x5c, +0x58, 0x52, 0x76, 0x7b, 0x70, 0x6e, 0x6d, 0x74, 0x79, 0x79, 0x91, 0xae, 0xb7, 0xa0, 0x8e, 0x81, +0x71, 0x63, 0x6d, 0x85, 0x94, 0xa2, 0x95, 0x72, 0x85, 0x9a, 0xa6, 0x9f, 0xa2, 0xaf, 0xb6, 0xa0, +0x6c, 0x8b, 0x89, 0x75, 0x6d, 0x6b, 0x91, 0x96, 0x7d, 0x7c, 0x8f, 0xac, 0xa8, 0x85, 0x81, 0x7e, +0x8a, 0xa5, 0x9b, 0x9c, 0x8c, 0x51, 0x60, 0x94, 0x8b, 0x99, 0x8f, 0x82, 0x97, 0x9d, 0xcb, 0xd7, +0xd2, 0xc8, 0xae, 0xb1, 0xb2, 0xba, 0xc6, 0xb3, 0xaa, 0xab, 0xc2, 0xd5, 0xbf, 0x9b, 0x7a, 0x75, +0x73, 0x61, 0x63, 0x6f, 0x73, 0x82, 0x90, 0x95, 0x8a, 0x82, 0x77, 0x6d, 0x60, 0x61, 0x69, 0x6b, +0x69, 0x7e, 0x8c, 0x89, 0x86, 0x77, 0x7a, 0x7b, 0x88, 0x7c, 0x78, 0x6b, 0x4c, 0x55, 0x5b, 0x6b, +0x7d, 0x68, 0x56, 0x51, 0x51, 0x5c, 0x6b, 0x83, 0x98, 0xaf, 0xc0, 0xa7, 0x93, 0x88, 0x7d, 0x8d, +0x87, 0x79, 0x7d, 0x70, 0x5d, 0x74, 0x85, 0x72, 0x82, 0x65, 0x41, 0x36, 0x44, 0x67, 0x66, 0x62, +0x59, 0x52, 0x45, 0x4b, 0x5d, 0x52, 0x48, 0x38, 0x32, 0x2a, 0x2a, 0x3c, 0x52, 0x5d, 0x64, 0x7e, +0x89, 0x7e, 0x83, 0x92, 0xac, 0xbc, 0xda, 0xe1, 0xc4, 0xa0, 0x98, 0x95, 0x91, 0x6e, 0x4c, 0x4b, +0x40, 0x4c, 0x62, 0x5e, 0x68, 0x56, 0x51, 0x5a, 0x63, 0x77, 0x80, 0x83, 0x8f, 0x93, 0x9f, 0xa2, +0xa2, 0xb7, 0xbf, 0xc7, 0xc3, 0x9c, 0x97, 0x81, 0x6c, 0x85, 0x8e, 0x94, 0x8e, 0x82, 0x73, 0x56, +0x68, 0x7a, 0x72, 0x8f, 0x99, 0x96, 0xa8, 0x93, 0x8b, 0x8c, 0x7d, 0x71, 0x7a, 0x7a, 0x78, 0x76, +0x8c, 0x8b, 0x78, 0x7e, 0x85, 0x9d, 0x94, 0x7b, 0x84, 0x7b, 0x60, 0x6a, 0x75, 0x6f, 0x78, 0x85, +0x7c, 0x87, 0x8f, 0x90, 0x9b, 0x99, 0x87, 0x8b, 0xa4, 0xa5, 0xa8, 0xc3, 0xc1, 0x98, 0x8c, 0x87, +0x97, 0xb0, 0xaf, 0xba, 0xae, 0x95, 0x93, 0xb0, 0xb0, 0x9d, 0x92, 0x80, 0x86, 0x8b, 0x76, 0x61, +0x63, 0x5d, 0x61, 0x75, 0x79, 0x76, 0x6f, 0x76, 0x78, 0x6c, 0x79, 0x82, 0x8b, 0x88, 0x8a, 0x93, +0xaa, 0xa3, 0x89, 0x78, 0x5a, 0x59, 0x79, 0x75, 0x63, 0x5c, 0x5b, 0x48, 0x4e, 0x7c, 0x9f, 0x95, +0x8c, 0x8f, 0x7b, 0x69, 0x81, 0x8b, 0x8c, 0x80, 0x86, 0x91, 0x91, 0x99, 0x91, 0x81, 0x6d, 0x5f, +0x5e, 0x58, 0x5b, 0x4b, 0x50, 0x65, 0x5f, 0x49, 0x31, 0x40, 0x50, 0x5f, 0x58, 0x4f, 0x5e, 0x66, +0x71, 0x81, 0x6d, 0x6f, 0x90, 0x96, 0x7a, 0x74, 0x79, 0x7d, 0x77, 0x85, 0x9b, 0x98, 0xb0, 0xb4, +0x97, 0xa1, 0x9e, 0x76, 0x5f, 0x51, 0x53, 0x45, 0x52, 0x68, 0x57, 0x3f, 0x4c, 0x55, 0x65, 0x6e, +0x6e, 0x5f, 0x68, 0x83, 0x89, 0x9f, 0xa5, 0x9a, 0xa1, 0x94, 0x88, 0x84, 0x85, 0x94, 0x97, 0x71, +0x66, 0x78, 0x8e, 0x91, 0x88, 0x7b, 0x76, 0x6f, 0x79, 0x8e, 0x91, 0xa0, 0xa9, 0xa4, 0xa7, 0x8d, +0x76, 0x6c, 0x77, 0x68, 0x56, 0x68, 0x7e, 0x8a, 0x88, 0x8d, 0xa9, 0xa7, 0xa5, 0xb0, 0xb8, 0xa7, +0x9e, 0x99, 0x93, 0x93, 0x77, 0x70, 0x85, 0x9f, 0xa3, 0x97, 0x99, 0xab, 0x97, 0x80, 0x7b, 0x8d, +0xa6, 0xb3, 0x9b, 0x8f, 0x9c, 0xa6, 0x9a, 0x98, 0xa4, 0xa9, 0xac, 0xaa, 0xb3, 0xac, 0xa8, 0xa1, +0x94, 0x79, 0x61, 0x59, 0x5c, 0x4f, 0x52, 0x5f, 0x5a, 0x66, 0x72, 0x6f, 0x7c, 0x86, 0x97, 0xa3, +0x94, 0x80, 0x8d, 0x93, 0xa6, 0xa2, 0x83, 0x75, 0x76, 0x6b, 0x68, 0x63, 0x55, 0x44, 0x50, 0x65, +0x6c, 0x6c, 0x6d, 0x71, 0x62, 0x59, 0x71, 0x86, 0x77, 0x72, 0x69, 0x56, 0x5e, 0x52, 0x5a, 0x5f, +0x56, 0x71, 0x78, 0x6d, 0x6d, 0x44, 0x50, 0x63, 0x68, 0x65, 0x5c, 0x71, 0x6a, 0x57, 0x4f, 0x51, +0x55, 0x42, 0x48, 0x4f, 0x63, 0x75, 0x89, 0x95, 0x81, 0x72, 0x6c, 0x52, 0x5f, 0x7b, 0x70, 0x73, +0x88, 0x93, 0xab, 0xc0, 0xc3, 0xcf, 0xdc, 0xdf, 0xc8, 0x88, 0x81, 0x9b, 0x90, 0x8b, 0x84, 0x74, +0x5b, 0x46, 0x36, 0x34, 0x54, 0x57, 0x42, 0x50, 0x6c, 0x87, 0x9e, 0xa3, 0xa6, 0x97, 0x9f, 0xc1, +0xce, 0xbb, 0xb5, 0xa8, 0x8f, 0xa1, 0xb1, 0x99, 0x8c, 0x81, 0x90, 0x93, 0x87, 0x91, 0x86, 0x81, +0x7e, 0x72, 0x78, 0x96, 0x94, 0x8e, 0x93, 0x7a, 0x74, 0x83, 0x87, 0x8b, 0x80, 0x77, 0x92, 0xa1, +0x91, 0x78, 0x62, 0x77, 0x82, 0x7d, 0x7e, 0x7c, 0x7c, 0x7e, 0x77, 0x5e, 0x79, 0x88, 0x83, 0x85, +0x8b, 0x8b, 0x81, 0x76, 0x79, 0x90, 0x94, 0x90, 0x95, 0x88, 0x86, 0x78, 0x69, 0x7e, 0x8a, 0x90, +0x94, 0xa3, 0xb7, 0xb5, 0xac, 0xb3, 0xa8, 0x9a, 0x9d, 0x9c, 0x86, 0x78, 0x65, 0x61, 0x68, 0x5c, +0x4f, 0x60, 0x76, 0x72, 0x60, 0x54, 0x6e, 0x6e, 0x6b, 0x7d, 0x89, 0x84, 0x83, 0x9c, 0xa3, 0x91, +0xa2, 0xa3, 0x97, 0x93, 0x95, 0x74, 0x80, 0x97, 0x95, 0x78, 0x66, 0x65, 0x5a, 0x54, 0x6a, 0x73, +0x72, 0x67, 0x66, 0x76, 0x78, 0x7e, 0x96, 0x7c, 0x6c, 0x75, 0x6f, 0x75, 0x76, 0x6f, 0x6c, 0x6d, +0x7c, 0x78, 0x67, 0x5c, 0x5a, 0x3d, 0x41, 0x5b, 0x54, 0x54, 0x62, 0x71, 0x6e, 0x6d, 0x65, 0x72, +0x6d, 0x5b, 0x67, 0x55, 0x63, 0x74, 0x67, 0x70, 0x6c, 0x6e, 0x7b, 0x9c, 0x99, 0x96, 0x82, 0x86, +0x9b, 0x81, 0x73, 0x7a, 0x7b, 0x65, 0x59, 0x49, 0x4f, 0x5e, 0x57, 0x59, 0x56, 0x6c, 0x75, 0x6c, +0x7c, 0x89, 0x7b, 0x60, 0x6d, 0x82, 0x86, 0x94, 0x98, 0x93, 0x9f, 0x9d, 0x99, 0xa4, 0xaf, 0xae, +0xa0, 0x99, 0xa3, 0xa5, 0x9c, 0x9c, 0x9c, 0x8a, 0x79, 0x9b, 0x9c, 0x89, 0x93, 0xa1, 0x7b, 0x76, +0x8f, 0x9f, 0x9e, 0x9e, 0x94, 0x78, 0x8f, 0xa4, 0xa5, 0x96, 0x9d, 0xb0, 0xae, 0xad, 0xac, 0x8e, +0x78, 0x8d, 0x8f, 0x94, 0x92, 0x8f, 0x94, 0x8e, 0x8e, 0xa4, 0xa6, 0x86, 0x8d, 0x9d, 0x92, 0x87, +0x73, 0x70, 0x82, 0x85, 0x89, 0x99, 0x9b, 0xa1, 0x9d, 0x97, 0xaa, 0x9f, 0x84, 0x88, 0x84, 0x84, +0x8a, 0x7e, 0x6b, 0x69, 0x5c, 0x5f, 0x74, 0x65, 0x5c, 0x5f, 0x66, 0x91, 0x7e, 0x66, 0x6b, 0x73, +0x74, 0x5c, 0x5c, 0x82, 0x7a, 0x63, 0x6a, 0x65, 0x6b, 0x72, 0x63, 0x6e, 0x7c, 0x70, 0x5e, 0x6a, +0x76, 0x70, 0x67, 0x76, 0x7a, 0x72, 0x71, 0x6a, 0x5e, 0x5a, 0x69, 0x81, 0x6c, 0x57, 0x67, 0x62, +0x62, 0x52, 0x64, 0x7a, 0x71, 0x75, 0x71, 0x68, 0x6c, 0x72, 0x56, 0x55, 0x74, 0x7d, 0x72, 0x78, +0x76, 0x80, 0x72, 0x62, 0x67, 0x5a, 0x56, 0x6a, 0x6b, 0x76, 0x7b, 0x65, 0x6e, 0x84, 0x8d, 0x8c, +0x8d, 0x9d, 0x9b, 0x8e, 0xbc, 0xce, 0xbc, 0xb1, 0xac, 0x9c, 0x8a, 0x7d, 0x79, 0x7e, 0x75, 0x76, +0x78, 0x6f, 0x6c, 0x72, 0x77, 0x81, 0x88, 0x80, 0x76, 0x72, 0x68, 0x62, 0x8a, 0x96, 0x98, 0xb1, +0x9a, 0x8a, 0x8d, 0x95, 0xa2, 0x8e, 0x8d, 0x8e, 0x7d, 0x79, 0x76, 0x91, 0x91, 0x77, 0x8f, 0x98, +0x7b, 0x64, 0x66, 0x74, 0x79, 0x8b, 0x8b, 0x9d, 0xa2, 0x97, 0x8a, 0x83, 0x7b, 0x6c, 0x70, 0x7a, +0x7b, 0x85, 0x81, 0x8c, 0x93, 0x88, 0x85, 0x80, 0x83, 0x8a, 0x86, 0x8e, 0x8e, 0xa7, 0xae, 0x7e, +0x86, 0x88, 0x78, 0x72, 0x6a, 0x6f, 0x72, 0x6d, 0x6e, 0x7c, 0x8f, 0x7b, 0x85, 0x8c, 0x81, 0x8e, +0x93, 0xa0, 0xb3, 0xa7, 0x98, 0xb6, 0xa6, 0x9a, 0x96, 0x78, 0x6e, 0x6d, 0x70, 0x78, 0x6c, 0x67, +0x79, 0x89, 0x8a, 0x81, 0x6e, 0x65, 0x75, 0x86, 0x75, 0x73, 0x87, 0x8b, 0x78, 0x6b, 0x7c, 0x8a, +0x8f, 0x97, 0x7d, 0x83, 0x6b, 0x55, 0x5b, 0x67, 0x74, 0x73, 0x81, 0x77, 0x87, 0x79, 0x7a, 0x8b, +0x70, 0x75, 0x7c, 0x74, 0x72, 0x78, 0x80, 0x88, 0x69, 0x6f, 0x83, 0x6d, 0x61, 0x60, 0x4b, 0x4f, +0x6d, 0x6a, 0x73, 0x6a, 0x5f, 0x73, 0x70, 0x72, 0x6a, 0x67, 0x57, 0x59, 0x5a, 0x5f, 0x7c, 0x8d, +0x71, 0x6e, 0x6b, 0x66, 0x74, 0x76, 0x87, 0x7e, 0x77, 0xa0, 0x96, 0x79, 0x85, 0xa4, 0xa4, 0x92, +0x9d, 0xa1, 0x84, 0x7e, 0x77, 0x78, 0x64, 0x64, 0x77, 0x7e, 0x80, 0x75, 0x5c, 0x62, 0x7a, 0x6c, +0x55, 0x62, 0x67, 0x69, 0x6d, 0x84, 0x95, 0x8e, 0x80, 0x70, 0x5d, 0x7d, 0x9a, 0x9d, 0x91, 0x94, +0xae, 0x8d, 0x80, 0xa0, 0xa4, 0x92, 0x90, 0x8c, 0x81, 0x8e, 0xa1, 0xa5, 0xa5, 0xa6, 0x9f, 0x9b, +0x95, 0x9a, 0xa1, 0x82, 0x7d, 0x95, 0x95, 0xaf, 0xa6, 0x93, 0x89, 0x9e, 0xaa, 0xa1, 0x99, 0x97, +0x8b, 0x96, 0xa9, 0xb0, 0xa2, 0x8c, 0x92, 0x87, 0x87, 0x8e, 0x95, 0x7e, 0x6a, 0x5f, 0x62, 0x6c, +0x7d, 0x90, 0x90, 0x8c, 0x83, 0x75, 0x70, 0x87, 0x8f, 0x97, 0x91, 0x9a, 0xa7, 0x93, 0x8e, 0x9c, +0x89, 0x7d, 0x6e, 0x63, 0x75, 0x7b, 0x89, 0x71, 0x66, 0x80, 0x62, 0x4e, 0x5f, 0x5b, 0x49, 0x4e, +0x5c, 0x62, 0x5d, 0x62, 0x6f, 0x73, 0x5e, 0x5c, 0x69, 0x73, 0x6b, 0x51, 0x42, 0x43, 0x4d, 0x66, +0x7b, 0x71, 0x5b, 0x5b, 0x6b, 0x78, 0x7d, 0x74, 0x64, 0x70, 0x7d, 0x88, 0x85, 0x82, 0x71, 0x68, +0x6d, 0x5e, 0x6f, 0x77, 0x59, 0x4f, 0x64, 0x73, 0x73, 0x6a, 0x76, 0x88, 0x80, 0x78, 0x7a, 0x90, +0xa8, 0x9c, 0x8c, 0x7c, 0x85, 0x97, 0xa3, 0x97, 0x92, 0x8d, 0x6c, 0x63, 0x75, 0x8e, 0x96, 0x8c, +0x81, 0x8e, 0x9d, 0x9c, 0x7a, 0x8b, 0xa9, 0x97, 0x81, 0x8b, 0x83, 0x74, 0x68, 0x7c, 0x86, 0x8a, +0x8c, 0x88, 0x9c, 0x94, 0x8d, 0x8f, 0x7d, 0x7e, 0x84, 0x89, 0x84, 0x8b, 0x89, 0x8e, 0xa3, 0xa2, +0x92, 0x85, 0x7b, 0x87, 0x9b, 0x97, 0x7d, 0x6e, 0x72, 0x73, 0x6d, 0x87, 0x87, 0x79, 0x62, 0x67, +0x6d, 0x74, 0x84, 0x74, 0x72, 0x6a, 0x6f, 0x80, 0x79, 0x88, 0x8c, 0x8b, 0x83, 0x86, 0x84, 0x9f, +0xaa, 0x95, 0x8e, 0x8c, 0x91, 0x98, 0x94, 0x93, 0x9a, 0x8a, 0x99, 0x9c, 0x8f, 0x95, 0x7a, 0x6a, +0x7a, 0x7b, 0x73, 0x6d, 0x65, 0x71, 0x7b, 0x76, 0x8a, 0x97, 0x87, 0x9a, 0xa0, 0x90, 0x96, 0x95, +0x96, 0x92, 0x9a, 0x91, 0x94, 0x87, 0x7b, 0x8a, 0x89, 0x82, 0x6c, 0x6a, 0x7c, 0x7b, 0x77, 0x63, +0x51, 0x7b, 0x85, 0x77, 0x80, 0x87, 0x87, 0x62, 0x66, 0x76, 0x7a, 0x84, 0x71, 0x68, 0x6f, 0x79, +0x6c, 0x65, 0x72, 0x7e, 0x6e, 0x5f, 0x75, 0x8e, 0x94, 0x93, 0x91, 0x7d, 0x6e, 0x6b, 0x7d, 0x6e, +0x6f, 0x69, 0x5f, 0x74, 0x7a, 0x70, 0x68, 0x70, 0x6c, 0x5d, 0x64, 0x68, 0x58, 0x53, 0x58, 0x69, +0x76, 0x7d, 0x84, 0x86, 0x8b, 0x89, 0x8d, 0x8f, 0x7e, 0x74, 0x72, 0x74, 0x70, 0x6c, 0x5f, 0x65, +0x71, 0x6e, 0x73, 0x6f, 0x6b, 0x7a, 0x89, 0x8f, 0x86, 0x74, 0x80, 0x85, 0x83, 0x91, 0x87, 0x6e, +0x6c, 0x6f, 0x67, 0x65, 0x71, 0x66, 0x6c, 0x7c, 0x78, 0x7c, 0x69, 0x6c, 0x76, 0x6d, 0x7b, 0x86, +0x95, 0xa4, 0xa3, 0x9d, 0x9e, 0x87, 0x93, 0xa0, 0x83, 0x7b, 0x80, 0x7b, 0x83, 0x8b, 0x8d, 0x8a, +0x88, 0x8e, 0x8a, 0x88, 0x9c, 0x9b, 0x89, 0x8a, 0x92, 0xaa, 0xad, 0xa9, 0xa0, 0xa2, 0xa5, 0xaf, +0xaa, 0x9a, 0xaa, 0xae, 0x90, 0x8b, 0x90, 0x99, 0x7e, 0x84, 0x95, 0x8f, 0x8d, 0x83, 0x9b, 0x97, +0x94, 0x8c, 0x82, 0x93, 0x94, 0x8e, 0x84, 0x88, 0x71, 0x6b, 0x6b, 0x61, 0x5d, 0x67, 0x7b, 0x73, +0x79, 0x82, 0x84, 0x8a, 0x8b, 0x8b, 0x91, 0x91, 0x92, 0xa2, 0x8f, 0x8e, 0x93, 0x86, 0x83, 0x6d, +0x6f, 0x7c, 0x65, 0x56, 0x58, 0x69, 0x63, 0x4d, 0x5d, 0x68, 0x71, 0x6a, 0x65, 0x6e, 0x71, 0x6b, +0x67, 0x70, 0x7b, 0x87, 0x76, 0x66, 0x67, 0x67, 0x6e, 0x6a, 0x67, 0x71, 0x87, 0x6f, 0x6c, 0x78, +0x77, 0x7e, 0x75, 0x71, 0x6b, 0x68, 0x6e, 0x67, 0x61, 0x5f, 0x68, 0x5e, 0x66, 0x69, 0x6f, 0x78, +0x70, 0x6b, 0x61, 0x5a, 0x60, 0x5b, 0x48, 0x6c, 0x85, 0x81, 0x8a, 0x8b, 0x90, 0x92, 0x8c, 0x8e, +0x94, 0x8a, 0x95, 0x90, 0x8d, 0x9f, 0x8c, 0x90, 0xa0, 0x97, 0x91, 0x8c, 0x89, 0x88, 0x8b, 0x92, +0x9d, 0xa4, 0xa4, 0x8c, 0x8a, 0x8f, 0x8e, 0x80, 0x75, 0x82, 0x84, 0x7b, 0x7b, 0x7e, 0x82, 0x7e, +0x83, 0x78, 0x6e, 0x76, 0x6b, 0x6e, 0x79, 0x92, 0x9e, 0x9c, 0x96, 0x9f, 0xa6, 0x9e, 0x9f, 0x91, +0x94, 0x92, 0x8d, 0x81, 0x76, 0x82, 0x8d, 0x86, 0x80, 0x83, 0x87, 0x7c, 0x6c, 0x75, 0x84, 0x7a, +0x71, 0x70, 0x7b, 0x77, 0x75, 0x6e, 0x6c, 0x76, 0x70, 0x71, 0x75, 0x85, 0x8a, 0x77, 0x85, 0x83, +0x6f, 0x73, 0x81, 0x87, 0x77, 0x82, 0x8e, 0x87, 0x8c, 0x8b, 0x8b, 0x8e, 0x86, 0x83, 0x7e, 0x7a, +0x76, 0x60, 0x65, 0x80, 0x96, 0x87, 0x7e, 0x84, 0x80, 0x85, 0x8d, 0x8d, 0x95, 0x94, 0x8e, 0x81, +0x89, 0x8d, 0x8b, 0x8b, 0x94, 0x9c, 0x8b, 0x8a, 0x95, 0x8a, 0x85, 0x92, 0x93, 0x83, 0x7d, 0x87, +0x7b, 0x75, 0x7c, 0x86, 0x87, 0x74, 0x7b, 0x6f, 0x77, 0x81, 0x70, 0x76, 0x80, 0x78, 0x69, 0x59, +0x60, 0x67, 0x71, 0x7a, 0x83, 0x86, 0x78, 0x7b, 0x79, 0x70, 0x76, 0x71, 0x6a, 0x5f, 0x5c, 0x58, +0x54, 0x62, 0x5c, 0x5e, 0x7b, 0x79, 0x7d, 0x6c, 0x69, 0x7b, 0x74, 0x6c, 0x70, 0x7b, 0x76, 0x78, +0x86, 0x94, 0x95, 0x7e, 0x78, 0x7e, 0x86, 0x78, 0x73, 0x7b, 0x81, 0x75, 0x6c, 0x61, 0x77, 0x7e, +0x69, 0x7e, 0x86, 0x73, 0x71, 0x72, 0x7e, 0x8f, 0x9c, 0x88, 0x81, 0x84, 0x7b, 0x72, 0x78, 0x83, +0x77, 0x7b, 0x74, 0x72, 0x7e, 0x78, 0x77, 0x79, 0x77, 0x82, 0x8b, 0x7c, 0x83, 0x92, 0x99, 0x93, +0x9a, 0x96, 0x96, 0x91, 0x90, 0x8b, 0x85, 0x92, 0x8f, 0x77, 0x71, 0x74, 0x6c, 0x6e, 0x80, 0x8d, +0x8f, 0x8e, 0x97, 0x91, 0x9a, 0xa1, 0xa4, 0x98, 0x9d, 0x97, 0x88, 0x8d, 0x84, 0x84, 0x8b, 0x8d, +0xa4, 0xa4, 0x96, 0x94, 0x92, 0x89, 0x86, 0x92, 0x95, 0x92, 0x95, 0x97, 0x98, 0x9a, 0x9d, 0x95, +0x91, 0x89, 0x8e, 0x8e, 0x87, 0x80, 0x7d, 0x73, 0x79, 0x79, 0x73, 0x70, 0x7d, 0x77, 0x75, 0x84, +0x84, 0x83, 0x7e, 0x89, 0x9d, 0x94, 0x8b, 0x87, 0x7d, 0x7a, 0x87, 0x83, 0x7e, 0x77, 0x82, 0x70, +0x6b, 0x6b, 0x67, 0x59, 0x60, 0x5b, 0x6a, 0x73, 0x62, 0x55, 0x5e, 0x6c, 0x6a, 0x5b, 0x5c, 0x6a, +0x63, 0x5e, 0x5c, 0x5f, 0x5c, 0x59, 0x5a, 0x4e, 0x58, 0x5e, 0x70, 0x6f, 0x7e, 0x81, 0x6d, 0x77, +0x80, 0x77, 0x77, 0x75, 0x68, 0x6a, 0x6b, 0x6a, 0x73, 0x65, 0x68, 0x70, 0x71, 0x73, 0x77, 0x66, +0x64, 0x68, 0x70, 0x79, 0x80, 0x83, 0x8b, 0x91, 0x95, 0x9d, 0x99, 0x95, 0x97, 0xa4, 0xa9, 0xa4, +0xa2, 0xa6, 0xa1, 0xa1, 0xa4, 0x96, 0x9c, 0x8b, 0x87, 0x9a, 0x95, 0x8d, 0x8a, 0x8b, 0x91, 0x91, +0x94, 0x88, 0x7e, 0x7a, 0x72, 0x78, 0x80, 0x7a, 0x82, 0x8d, 0x88, 0x83, 0x86, 0x77, 0x7d, 0x77, +0x6e, 0x84, 0x82, 0x8e, 0x8c, 0x83, 0x8e, 0x8a, 0x8c, 0x8a, 0x7b, 0x7c, 0x7e, 0x7d, 0x78, 0x71, +0x7b, 0x70, 0x79, 0x71, 0x67, 0x68, 0x79, 0x7b, 0x65, 0x6a, 0x84, 0x7c, 0x75, 0x6a, 0x7b, 0x7a, +0x6e, 0x7d, 0x7d, 0x86, 0x80, 0x8a, 0x8f, 0x96, 0x9d, 0x98, 0x8e, 0x99, 0x9e, 0x82, 0x92, 0x91, +0x95, 0x8e, 0x8b, 0x8b, 0x83, 0x90, 0x8b, 0x87, 0x82, 0x85, 0x85, 0x7d, 0x78, 0x7b, 0x76, 0x68, +0x7a, 0x7d, 0x68, 0x6b, 0x6f, 0x68, 0x68, 0x78, 0x78, 0x79, 0x83, 0x83, 0x86, 0x83, 0x81, 0x7e, +0x83, 0x82, 0x8c, 0x89, 0x8a, 0x88, 0x8f, 0x84, 0x87, 0x89, 0x79, 0x6f, 0x71, 0x88, 0x8a, 0x80, +0x81, 0x7b, 0x7b, 0x7c, 0x92, 0x8f, 0x7a, 0x8f, 0x95, 0x88, 0x8e, 0x82, 0x84, 0x77, 0x6d, 0x7e, +0x72, 0x77, 0x80, 0x74, 0x76, 0x81, 0x83, 0x75, 0x6f, 0x76, 0x6b, 0x66, 0x75, 0x79, 0x7c, 0x78, +0x74, 0x79, 0x79, 0x73, 0x79, 0x7a, 0x77, 0x7b, 0x72, 0x68, 0x73, 0x73, 0x74, 0x74, 0x6e, 0x6e, +0x6b, 0x78, 0x76, 0x7d, 0x85, 0x7d, 0x7c, 0x7b, 0x79, 0x75, 0x6e, 0x72, 0x6b, 0x60, 0x62, 0x68, +0x6a, 0x6a, 0x74, 0x78, 0x83, 0x81, 0x7b, 0x7c, 0x76, 0x77, 0x71, 0x71, 0x80, 0x89, 0x84, 0x7b, +0x83, 0x85, 0x81, 0x89, 0x7a, 0x7c, 0x7d, 0x79, 0x7b, 0x84, 0x8b, 0x8d, 0x8a, 0x87, 0x90, 0x8e, +0x85, 0x90, 0x9b, 0x99, 0x8d, 0x8e, 0x90, 0x8c, 0x89, 0x8e, 0x8f, 0x93, 0x87, 0x84, 0x82, 0x7a, +0x85, 0x8b, 0x8f, 0x9a, 0x8f, 0x78, 0x7a, 0x88, 0x8f, 0x82, 0x9a, 0xa2, 0x92, 0x9d, 0x9b, 0x8d, +0x85, 0x89, 0x90, 0x95, 0x94, 0x8e, 0x84, 0x83, 0x82, 0x80, 0x8e, 0x8b, 0x85, 0x89, 0x7e, 0x93, +0x91, 0x85, 0x92, 0x80, 0x72, 0x81, 0x75, 0x73, 0x6a, 0x6b, 0x76, 0x6c, 0x7c, 0x7a, 0x75, 0x83, +0x7e, 0x7b, 0x77, 0x82, 0x80, 0x6f, 0x6c, 0x7d, 0x87, 0x74, 0x70, 0x6f, 0x6b, 0x66, 0x65, 0x5d, +0x64, 0x67, 0x68, 0x66, 0x73, 0x77, 0x6d, 0x64, 0x6d, 0x78, 0x77, 0x75, 0x71, 0x7e, 0x89, 0x8d, +0x83, 0x89, 0x7a, 0x79, 0x8c, 0x81, 0x87, 0x81, 0x7a, 0x81, 0x7a, 0x7a, 0x80, 0x83, 0x77, 0x6e, +0x6c, 0x6b, 0x66, 0x5f, 0x6d, 0x7b, 0x87, 0x82, 0x7e, 0x85, 0x7b, 0x77, 0x80, 0x89, 0x88, 0x87, +0x7a, 0x77, 0x73, 0x83, 0x75, 0x6f, 0x7e, 0x7d, 0x86, 0x80, 0x8b, 0x90, 0x92, 0x9b, 0x9b, 0xa4, +0x9b, 0x90, 0x8b, 0x81, 0x7b, 0x79, 0x80, 0x87, 0x81, 0x75, 0x7c, 0x89, 0x79, 0x76, 0x84, 0x77, +0x6a, 0x78, 0x7d, 0x7c, 0x85, 0x95, 0x8a, 0x83, 0x92, 0x8b, 0x7d, 0x77, 0x86, 0x97, 0x8b, 0x89, +0x90, 0x89, 0x89, 0x92, 0x86, 0x8b, 0x8f, 0x89, 0x94, 0x94, 0x92, 0x94, 0x93, 0x8b, 0x88, 0x86, +0x8f, 0x7c, 0x68, 0x68, 0x70, 0x71, 0x66, 0x5c, 0x61, 0x68, 0x60, 0x64, 0x7c, 0x77, 0x69, 0x6c, +0x6d, 0x6f, 0x72, 0x73, 0x72, 0x75, 0x7b, 0x73, 0x72, 0x82, 0x82, 0x85, 0x8d, 0x8b, 0x81, 0x82, +0x7e, 0x7d, 0x89, 0x83, 0x94, 0x94, 0x84, 0x84, 0x89, 0x89, 0x83, 0x8a, 0x81, 0x71, 0x82, 0x84, +0x73, 0x79, 0x7a, 0x77, 0x77, 0x81, 0x8f, 0x8b, 0x8e, 0x88, 0x8d, 0x8d, 0x90, 0x8c, 0x84, 0x8b, +0x97, 0x84, 0x7a, 0x8a, 0x7d, 0x75, 0x7e, 0x8b, 0x90, 0x91, 0x91, 0x8c, 0x84, 0x86, 0x8d, 0x79, +0x7a, 0x7a, 0x73, 0x7b, 0x7c, 0x82, 0x80, 0x79, 0x8c, 0x8b, 0x74, 0x76, 0x76, 0x6d, 0x76, 0x74, +0x77, 0x72, 0x71, 0x7c, 0x73, 0x74, 0x7a, 0x6d, 0x6f, 0x78, 0x7d, 0x79, 0x6e, 0x76, 0x87, 0x80, +0x79, 0x75, 0x7b, 0x77, 0x6e, 0x75, 0x80, 0x85, 0x81, 0x78, 0x78, 0x71, 0x72, 0x67, 0x70, 0x72, +0x74, 0x7e, 0x7c, 0x7a, 0x7b, 0x7e, 0x85, 0x7a, 0x7c, 0x80, 0x80, 0x71, 0x6c, 0x6c, 0x66, 0x75, +0x86, 0x87, 0x7b, 0x76, 0x7c, 0x6d, 0x77, 0x87, 0x83, 0x70, 0x6f, 0x7c, 0x6e, 0x73, 0x7e, 0x6d, +0x68, 0x82, 0x84, 0x83, 0x89, 0x90, 0x90, 0x89, 0x93, 0x89, 0x82, 0x82, 0x86, 0x83, 0x81, 0x87, +0x8e, 0x85, 0x8c, 0x9d, 0x93, 0x8b, 0x99, 0x90, 0x8c, 0x8f, 0x80, 0x76, 0x7d, 0x74, 0x7c, 0x7c, +0x82, 0x8a, 0x75, 0x78, 0x96, 0x9b, 0x92, 0x9d, 0x90, 0x96, 0x9d, 0x9b, 0x9a, 0x95, 0x9a, 0x93, +0x8e, 0x9e, 0x9e, 0x93, 0x89, 0x87, 0x8f, 0x89, 0x85, 0x8b, 0x98, 0x88, 0x87, 0x89, 0x84, 0x89, +0x83, 0x7c, 0x7d, 0x7a, 0x79, 0x6c, 0x6d, 0x75, 0x72, 0x77, 0x7d, 0x7d, 0x87, 0x7d, 0x87, 0x8d, +0x84, 0x8b, 0x81, 0x7e, 0x88, 0x87, 0x77, 0x7a, 0x7a, 0x76, 0x73, 0x67, 0x6f, 0x5f, 0x55, 0x7c, +0x84, 0x71, 0x71, 0x7a, 0x70, 0x60, 0x5f, 0x67, 0x62, 0x5c, 0x5e, 0x60, 0x5a, 0x68, 0x69, 0x60, +0x74, 0x76, 0x6a, 0x75, 0x7a, 0x75, 0x71, 0x68, 0x71, 0x77, 0x77, 0x73, 0x6c, 0x63, 0x68, 0x80, +0x7c, 0x7c, 0x83, 0x7b, 0x78, 0x71, 0x74, 0x7c, 0x86, 0x86, 0x7d, 0x82, 0x82, 0x8e, 0x85, 0x80, +0x9a, 0x99, 0x8f, 0x8b, 0x8e, 0x98, 0x9b, 0xa5, 0x9f, 0x9a, 0xa1, 0xa0, 0x97, 0x9c, 0xa3, 0xa3, +0x9a, 0x90, 0x88, 0x8a, 0x80, 0x77, 0x80, 0x7c, 0x84, 0x8e, 0x85, 0x71, 0x7b, 0x80, 0x71, 0x73, +0x76, 0x72, 0x75, 0x65, 0x5f, 0x6c, 0x73, 0x77, 0x6d, 0x6a, 0x77, 0x7d, 0x86, 0x88, 0x86, 0x80, +0x80, 0x86, 0x81, 0x7e, 0x82, 0x84, 0x76, 0x7e, 0x8d, 0x86, 0x7d, 0x7e, 0x8a, 0x7d, 0x76, 0x75, +0x69, 0x67, 0x6b, 0x66, 0x6c, 0x64, 0x69, 0x6e, 0x6a, 0x71, 0x7c, 0x76, 0x79, 0x85, 0x86, 0x8b, +0x8a, 0x87, 0x83, 0x7a, 0x8c, 0x8d, 0x7c, 0x7e, 0x84, 0x7c, 0x93, 0x80, 0x86, 0x8f, 0x88, 0x8e, +0x87, 0x93, 0x99, 0x8b, 0x8c, 0x8c, 0x8a, 0x81, 0x83, 0x7a, 0x81, 0x86, 0x7d, 0x76, 0x76, 0x7e, +0x83, 0x82, 0x84, 0x87, 0x83, 0x8c, 0x87, 0x85, 0x90, 0x8d, 0x95, 0x91, 0x8a, 0x82, 0x84, 0x7b, +0x7e, 0x81, 0x83, 0x7b, 0x82, 0x89, 0x8c, 0x93, 0x95, 0x9a, 0x91, 0x91, 0x94, 0x89, 0x83, 0x7e, +0x78, 0x77, 0x85, 0x85, 0x7d, 0x81, 0x8d, 0x85, 0x83, 0x86, 0x81, 0x7a, 0x6e, 0x78, 0x7b, 0x7a, +0x80, 0x7c, 0x6e, 0x77, 0x76, 0x6e, 0x70, 0x72, 0x77, 0x6c, 0x6d, 0x72, 0x6f, 0x66, 0x6b, 0x6b, +0x68, 0x6e, 0x77, 0x6b, 0x65, 0x6f, 0x76, 0x7a, 0x77, 0x72, 0x6b, 0x77, 0x84, 0x73, 0x69, 0x7b, +0x76, 0x71, 0x72, 0x73, 0x7b, 0x85, 0x7c, 0x80, 0x8b, 0x8a, 0x7c, 0x74, 0x7b, 0x86, 0x82, 0x78, +0x72, 0x7e, 0x78, 0x72, 0x76, 0x6f, 0x73, 0x70, 0x6c, 0x75, 0x76, 0x75, 0x7b, 0x77, 0x78, 0x87, +0x86, 0x8d, 0x8c, 0x91, 0x94, 0x94, 0x9b, 0x8d, 0x84, 0x8a, 0x8b, 0x7d, 0x83, 0x8d, 0x82, 0x82, +0x89, 0x8e, 0x95, 0x8f, 0x8f, 0x92, 0x8a, 0x80, 0x78, 0x7c, 0x81, 0x89, 0x80, 0x83, 0x88, 0x81, +0x75, 0x81, 0x8a, 0x8a, 0x8e, 0x8b, 0x99, 0x8e, 0x89, 0x8e, 0x7d, 0x7e, 0x80, 0x84, 0x83, 0x8a, +0x89, 0x83, 0x84, 0x87, 0x89, 0x7c, 0x85, 0x87, 0x83, 0x77, 0x83, 0x80, 0x78, 0x7c, 0x7d, 0x80, +0x80, 0x79, 0x7a, 0x7e, 0x84, 0x73, 0x6d, 0x88, 0x92, 0x89, 0x83, 0x7c, 0x8c, 0x8b, 0x84, 0x90, +0x90, 0x85, 0x7a, 0x73, 0x73, 0x6b, 0x6d, 0x6b, 0x61, 0x6d, 0x6c, 0x6e, 0x78, 0x78, 0x76, 0x77, +0x84, 0x89, 0x7e, 0x79, 0x84, 0x7c, 0x77, 0x7d, 0x7a, 0x73, 0x79, 0x7d, 0x7d, 0x87, 0x88, 0x85, +0x76, 0x7d, 0x86, 0x70, 0x6f, 0x75, 0x80, 0x87, 0x7d, 0x77, 0x83, 0x74, 0x79, 0x79, 0x66, 0x68, +0x71, 0x6c, 0x5e, 0x64, 0x63, 0x59, 0x56, 0x67, 0x6c, 0x70, 0x79, 0x82, 0x87, 0x90, 0x9a, 0x94, +0x93, 0x9d, 0x9d, 0x93, 0x8d, 0x97, 0x9c, 0x93, 0x9a, 0xa6, 0x98, 0x98, 0x93, 0x8c, 0x8d, 0x94, +0x94, 0x85, 0x88, 0x8e, 0x8a, 0x8e, 0x8e, 0x7d, 0x8d, 0x8e, 0x8c, 0x92, 0x7e, 0x7e, 0x7b, 0x78, +0x7a, 0x7b, 0x72, 0x71, 0x72, 0x70, 0x77, 0x7c, 0x8a, 0x7e, 0x7c, 0x8c, 0x8c, 0x88, 0x89, 0x76, +0x6e, 0x81, 0x7d, 0x83, 0x84, 0x7d, 0x75, 0x7c, 0x7e, 0x7d, 0x7a, 0x72, 0x67, 0x6a, 0x67, 0x5f, +0x68, 0x64, 0x69, 0x70, 0x79, 0x6c, 0x6a, 0x72, 0x67, 0x70, 0x77, 0x81, 0x78, 0x72, 0x7d, 0x7d, +0x69, 0x69, 0x7e, 0x74, 0x73, 0x80, 0x8e, 0x92, 0x8d, 0x8a, 0x8c, 0x91, 0x97, 0x90, 0x7d, 0x8c, +0x83, 0x87, 0x8e, 0x89, 0x8a, 0x83, 0x7b, 0x83, 0x7e, 0x7e, 0x77, 0x6e, 0x75, 0x74, 0x78, 0x83, +0x85, 0x8c, 0x8a, 0x84, 0x97, 0xa0, 0x92, 0x8b, 0x95, 0x8f, 0x8a, 0x96, 0x95, 0x8d, 0x85, 0x83, +0x8c, 0x90, 0x8c, 0x7b, 0x86, 0x8f, 0x88, 0x81, 0x88, 0x90, 0x8a, 0x82, 0x84, 0x86, 0x81, 0x7d, +0x79, 0x79, 0x82, 0x84, 0x86, 0x79, 0x7e, 0x78, 0x6f, 0x6e, 0x6e, 0x6f, 0x6b, 0x6c, 0x6f, 0x6a, +0x6d, 0x6f, 0x6f, 0x71, 0x6f, 0x79, 0x7b, 0x6d, 0x72, 0x7b, 0x73, 0x69, 0x62, 0x68, 0x65, 0x62, +0x6e, 0x74, 0x7b, 0x84, 0x7c, 0x85, 0x86, 0x87, 0x89, 0x83, 0x87, 0x88, 0x77, 0x7d, 0x8f, 0x84, +0x79, 0x84, 0x8d, 0x86, 0x87, 0x82, 0x84, 0x89, 0x8a, 0x8a, 0x90, 0x84, 0x89, 0x88, 0x73, 0x7b, +0x7d, 0x78, 0x78, 0x7b, 0x77, 0x7c, 0x7a, 0x73, 0x6b, 0x76, 0x73, 0x67, 0x73, 0x71, 0x6a, 0x80, +0x89, 0x7e, 0x7e, 0x8c, 0x80, 0x7b, 0x7d, 0x81, 0x7d, 0x79, 0x80, 0x80, 0x8e, 0x8d, 0x88, 0x93, +0x92, 0x90, 0x90, 0x8a, 0x80, 0x87, 0x80, 0x7c, 0x84, 0x87, 0x8d, 0x83, 0x77, 0x82, 0x89, 0x8e, +0x86, 0x7e, 0x8f, 0x98, 0x8d, 0x84, 0x8b, 0x8f, 0x82, 0x75, 0x80, 0x8c, 0x88, 0x91, 0x9a, 0x99, +0x9a, 0x98, 0x8e, 0x94, 0x94, 0x87, 0x86, 0x81, 0x7b, 0x81, 0x85, 0x80, 0x8b, 0x8b, 0x7a, 0x81, +0x82, 0x79, 0x78, 0x77, 0x79, 0x78, 0x7c, 0x82, 0x7e, 0x83, 0x73, 0x7c, 0x7d, 0x79, 0x7b, 0x6d, +0x73, 0x73, 0x6a, 0x73, 0x6a, 0x63, 0x67, 0x62, 0x6c, 0x6f, 0x68, 0x6e, 0x81, 0x79, 0x7b, 0x7b, +0x76, 0x7c, 0x7a, 0x78, 0x77, 0x76, 0x70, 0x75, 0x83, 0x7e, 0x76, 0x87, 0x83, 0x72, 0x77, 0x79, +0x74, 0x73, 0x71, 0x78, 0x79, 0x86, 0x85, 0x82, 0x7e, 0x70, 0x73, 0x7b, 0x76, 0x77, 0x7d, 0x74, +0x78, 0x75, 0x6c, 0x70, 0x71, 0x6b, 0x6d, 0x7a, 0x78, 0x8c, 0x98, 0x92, 0x90, 0x9c, 0x9f, 0xa0, +0x92, 0x9b, 0x98, 0x7b, 0x84, 0x8e, 0x8f, 0x85, 0x86, 0x88, 0x8b, 0x90, 0x82, 0x7a, 0x7d, 0x81, +0x7d, 0x84, 0x81, 0x8b, 0x8e, 0x82, 0x85, 0x89, 0x87, 0x7c, 0x7c, 0x7a, 0x7a, 0x81, 0x83, 0x7d, +0x76, 0x7c, 0x78, 0x6e, 0x75, 0x84, 0x81, 0x81, 0x80, 0x8c, 0x81, 0x78, 0x7e, 0x85, 0x86, 0x8a, +0x7e, 0x6e, 0x7c, 0x7c, 0x71, 0x79, 0x7d, 0x7e, 0x76, 0x68, 0x69, 0x78, 0x6f, 0x67, 0x6e, 0x6c, +0x6c, 0x77, 0x73, 0x6f, 0x78, 0x7a, 0x81, 0x7d, 0x85, 0x88, 0x79, 0x7b, 0x81, 0x79, 0x81, 0x7d, +0x7a, 0x7e, 0x7d, 0x90, 0x91, 0x82, 0x80, 0x85, 0x88, 0x84, 0x87, 0x93, 0x9a, 0x92, 0x8c, 0x85, +0x8f, 0x96, 0x7a, 0x7e, 0x89, 0x81, 0x88, 0x80, 0x7a, 0x84, 0x73, 0x75, 0x88, 0x84, 0x7b, 0x80, +0x87, 0x8d, 0x8d, 0x88, 0x8c, 0x91, 0x89, 0x8b, 0x8f, 0x8f, 0x8c, 0x7a, 0x76, 0x7a, 0x7a, 0x82, +0x79, 0x80, 0x86, 0x81, 0x83, 0x82, 0x88, 0x88, 0x84, 0x81, 0x8b, 0x87, 0x81, 0x85, 0x90, 0x96, +0x8d, 0x99, 0x95, 0x85, 0x86, 0x7e, 0x82, 0x80, 0x73, 0x87, 0x89, 0x80, 0x7d, 0x7d, 0x78, 0x74, +0x6f, 0x70, 0x7e, 0x7a, 0x74, 0x75, 0x77, 0x71, 0x6c, 0x6c, 0x6d, 0x68, 0x62, 0x69, 0x63, 0x67, +0x71, 0x6f, 0x74, 0x68, 0x66, 0x6a, 0x66, 0x65, 0x6d, 0x72, 0x70, 0x7e, 0x81, 0x7c, 0x89, 0x8b, +0x81, 0x84, 0x80, 0x76, 0x7e, 0x75, 0x6a, 0x7d, 0x80, 0x79, 0x78, 0x78, 0x83, 0x86, 0x7e, 0x82, +0x89, 0x83, 0x82, 0x86, 0x8d, 0x8a, 0x90, 0x94, 0x83, 0x7c, 0x7e, 0x80, 0x81, 0x7d, 0x7d, 0x7e, +0x85, 0x80, 0x7e, 0x8c, 0x86, 0x87, 0x89, 0x86, 0x81, 0x7e, 0x83, 0x89, 0x8d, 0x8f, 0x8d, 0x8d, +0x87, 0x7d, 0x83, 0x82, 0x78, 0x78, 0x7c, 0x84, 0x79, 0x79, 0x7e, 0x79, 0x77, 0x76, 0x76, 0x7e, +0x7e, 0x7a, 0x83, 0x88, 0x7a, 0x79, 0x81, 0x7b, 0x88, 0x87, 0x7c, 0x86, 0x8b, 0x8a, 0x8e, 0x8e, +0x8a, 0x8d, 0x8e, 0x88, 0x92, 0x96, 0x89, 0x89, 0x94, 0x91, 0x8e, 0x8b, 0x85, 0x88, 0x8a, 0x80, +0x77, 0x7e, 0x80, 0x75, 0x75, 0x76, 0x7a, 0x75, 0x70, 0x77, 0x85, 0x82, 0x76, 0x81, 0x84, 0x75, +0x72, 0x73, 0x73, 0x6d, 0x6f, 0x67, 0x6f, 0x81, 0x7d, 0x79, 0x7e, 0x7c, 0x7c, 0x77, 0x70, 0x7d, +0x77, 0x76, 0x75, 0x81, 0x81, 0x7a, 0x78, 0x78, 0x82, 0x86, 0x79, 0x74, 0x7b, 0x75, 0x73, 0x6d, +0x7d, 0x77, 0x6b, 0x6a, 0x6f, 0x74, 0x6f, 0x6f, 0x79, 0x6d, 0x6e, 0x85, 0x81, 0x76, 0x7c, 0x7c, +0x7b, 0x77, 0x78, 0x80, 0x82, 0x7a, 0x80, 0x90, 0x91, 0x8e, 0x87, 0x88, 0x91, 0x8f, 0x8b, 0x8d, +0x8e, 0x8e, 0x89, 0x90, 0x94, 0x8a, 0x8b, 0x8d, 0x8e, 0x8c, 0x87, 0x82, 0x7d, 0x80, 0x88, 0x87, +0x88, 0x8c, 0x8b, 0x84, 0x86, 0x92, 0x8f, 0x83, 0x87, 0x8d, 0x8b, 0x88, 0x93, 0x8d, 0x84, 0x7c, +0x7b, 0x86, 0x86, 0x7e, 0x7d, 0x83, 0x8d, 0x79, 0x7a, 0x88, 0x7c, 0x72, 0x6b, 0x7d, 0x85, 0x73, +0x6f, 0x72, 0x7a, 0x75, 0x76, 0x7c, 0x82, 0x77, 0x6c, 0x6c, 0x71, 0x73, 0x6c, 0x65, 0x69, 0x74, +0x75, 0x6b, 0x68, 0x6e, 0x68, 0x6c, 0x6b, 0x75, 0x7a, 0x72, 0x70, 0x72, 0x82, 0x7b, 0x77, 0x7c, +0x78, 0x79, 0x81, 0x80, 0x7a, 0x78, 0x7e, 0x8d, 0x86, 0x83, 0x85, 0x89, 0x85, 0x7d, 0x8e, 0x8d, +0x90, 0x87, 0x82, 0x8f, 0x91, 0x81, 0x7c, 0x82, 0x7d, 0x83, 0x86, 0x82, 0x86, 0x88, 0x85, 0x98, +0x9e, 0x97, 0x99, 0x97, 0x9a, 0x93, 0x96, 0x98, 0x90, 0x8b, 0x88, 0x82, 0x8b, 0x8c, 0x79, 0x7b, +0x7e, 0x83, 0x81, 0x73, 0x7a, 0x80, 0x73, 0x70, 0x79, 0x7e, 0x7b, 0x6a, 0x71, 0x70, 0x76, 0x7b, +0x6c, 0x7a, 0x79, 0x71, 0x70, 0x78, 0x7c, 0x71, 0x76, 0x73, 0x7b, 0x79, 0x74, 0x7b, 0x77, 0x77, +0x77, 0x79, 0x7c, 0x7d, 0x7b, 0x75, 0x86, 0x8c, 0x79, 0x7a, 0x8e, 0x84, 0x76, 0x79, 0x7c, 0x76, +0x77, 0x75, 0x78, 0x80, 0x78, 0x70, 0x6e, 0x79, 0x7a, 0x71, 0x70, 0x76, 0x7c, 0x7a, 0x79, 0x7a, +0x79, 0x75, 0x83, 0x7e, 0x76, 0x7c, 0x77, 0x77, 0x7d, 0x7e, 0x85, 0x86, 0x82, 0x7c, 0x7c, 0x7c, +0x81, 0x81, 0x7d, 0x78, 0x7b, 0x82, 0x7a, 0x7c, 0x85, 0x80, 0x80, 0x7d, 0x80, 0x7e, 0x81, 0x83, +0x76, 0x7e, 0x88, 0x88, 0x8b, 0x87, 0x93, 0x8e, 0x90, 0x8f, 0x8e, 0x8a, 0x8e, 0x90, 0x8c, 0x89, +0x8a, 0x89, 0x85, 0x8e, 0x91, 0x88, 0x81, 0x84, 0x7e, 0x7b, 0x83, 0x87, 0x84, 0x7b, 0x83, 0x86, +0x82, 0x87, 0x7d, 0x79, 0x7d, 0x8f, 0x8c, 0x7d, 0x85, 0x89, 0x84, 0x89, 0x92, 0x8b, 0x87, 0x95, +0x91, 0x8c, 0x8d, 0x89, 0x87, 0x80, 0x7a, 0x81, 0x81, 0x79, 0x7b, 0x71, 0x73, 0x76, 0x76, 0x70, +0x72, 0x80, 0x81, 0x83, 0x88, 0x8b, 0x83, 0x7a, 0x80, 0x82, 0x79, 0x77, 0x76, 0x77, 0x6f, 0x73, +0x7e, 0x76, 0x70, 0x70, 0x71, 0x71, 0x73, 0x70, 0x6e, 0x74, 0x74, 0x77, 0x74, 0x79, 0x75, 0x65, +0x6e, 0x76, 0x71, 0x74, 0x74, 0x76, 0x7a, 0x7e, 0x7b, 0x78, 0x77, 0x7c, 0x7c, 0x7b, 0x83, 0x82, +0x7b, 0x75, 0x74, 0x81, 0x7b, 0x6f, 0x79, 0x74, 0x76, 0x81, 0x7a, 0x78, 0x87, 0x82, 0x79, 0x86, +0x7e, 0x80, 0x85, 0x88, 0x7d, 0x7e, 0x86, 0x83, 0x86, 0x83, 0x85, 0x96, 0x98, 0x93, 0x95, 0x8c, +0x94, 0x97, 0x85, 0x80, 0x8c, 0x8e, 0x77, 0x80, 0x8d, 0x86, 0x85, 0x7b, 0x76, 0x81, 0x84, 0x82, +0x84, 0x81, 0x85, 0x8c, 0x89, 0x82, 0x7e, 0x7e, 0x74, 0x7d, 0x88, 0x81, 0x82, 0x84, 0x7e, 0x7e, +0x87, 0x81, 0x7a, 0x7c, 0x77, 0x80, 0x85, 0x7e, 0x84, 0x81, 0x80, 0x85, 0x77, 0x73, 0x79, 0x76, +0x6f, 0x6e, 0x79, 0x7e, 0x6e, 0x6e, 0x78, 0x77, 0x74, 0x6f, 0x76, 0x7a, 0x79, 0x77, 0x6e, 0x6c, +0x71, 0x73, 0x72, 0x77, 0x84, 0x7b, 0x6f, 0x80, 0x7d, 0x80, 0x82, 0x80, 0x80, 0x82, 0x85, 0x7c, +0x80, 0x7e, 0x80, 0x7e, 0x81, 0x81, 0x7a, 0x7e, 0x80, 0x88, 0x83, 0x87, 0x93, 0x93, 0x83, 0x82, +0x7d, 0x7a, 0x81, 0x83, 0x7d, 0x82, 0x8a, 0x83, 0x83, 0x85, 0x86, 0x88, 0x92, 0x8d, 0x8d, 0x8f, +0x93, 0x91, 0x8d, 0x92, 0x91, 0x95, 0x91, 0x88, 0x8c, 0x91, 0x8f, 0x8c, 0x88, 0x84, 0x86, 0x81, +0x76, 0x7b, 0x81, 0x84, 0x7e, 0x7c, 0x80, 0x83, 0x75, 0x73, 0x7a, 0x85, 0x7b, 0x77, 0x83, 0x83, +0x84, 0x85, 0x84, 0x82, 0x83, 0x85, 0x85, 0x8a, 0x83, 0x7e, 0x7a, 0x77, 0x79, 0x76, 0x70, 0x6f, +0x6b, 0x67, 0x69, 0x6e, 0x71, 0x73, 0x71, 0x69, 0x73, 0x71, 0x6b, 0x6b, 0x6e, 0x6f, 0x6b, 0x74, +0x78, 0x70, 0x6f, 0x76, 0x7d, 0x7a, 0x73, 0x74, 0x7c, 0x7c, 0x75, 0x76, 0x7d, 0x80, 0x79, 0x75, +0x7c, 0x7d, 0x79, 0x78, 0x7d, 0x82, 0x82, 0x88, 0x86, 0x86, 0x8d, 0x90, 0x80, 0x87, 0x8a, 0x83, +0x7b, 0x85, 0x90, 0x81, 0x7e, 0x85, 0x8e, 0x8b, 0x81, 0x80, 0x7c, 0x85, 0x7d, 0x7b, 0x8b, 0x8b, +0x84, 0x81, 0x84, 0x8e, 0x8a, 0x85, 0x82, 0x83, 0x86, 0x85, 0x81, 0x82, 0x87, 0x87, 0x84, 0x88, +0x88, 0x8c, 0x85, 0x7c, 0x85, 0x83, 0x7d, 0x86, 0x8a, 0x7e, 0x73, 0x78, 0x80, 0x79, 0x76, 0x76, +0x7c, 0x7c, 0x83, 0x7d, 0x82, 0x82, 0x79, 0x83, 0x7e, 0x80, 0x85, 0x7e, 0x85, 0x88, 0x84, 0x8a, +0x8e, 0x8b, 0x7e, 0x7c, 0x87, 0x7b, 0x78, 0x79, 0x80, 0x83, 0x7b, 0x80, 0x7d, 0x85, 0x88, 0x83, +0x83, 0x7e, 0x85, 0x8a, 0x81, 0x86, 0x88, 0x80, 0x7d, 0x89, 0x87, 0x76, 0x81, 0x7c, 0x74, 0x7d, +0x84, 0x7c, 0x7a, 0x7a, 0x72, 0x75, 0x7e, 0x78, 0x6f, 0x72, 0x7b, 0x7a, 0x73, 0x7a, 0x79, 0x78, +0x71, 0x73, 0x78, 0x69, 0x6a, 0x75, 0x75, 0x6f, 0x72, 0x77, 0x72, 0x7c, 0x7e, 0x7d, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x85, 0x7c, 0x79, 0x7e, 0x80, 0x89, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7a, 0x82, +0x85, 0x7c, 0x79, 0x7c, 0x81, 0x81, 0x79, 0x84, 0x8e, 0x88, 0x86, 0x87, 0x95, 0x96, 0x85, 0x82, +0x8f, 0x83, 0x81, 0x83, 0x7e, 0x85, 0x81, 0x7a, 0x79, 0x80, 0x8e, 0x8a, 0x7e, 0x88, 0x91, 0x91, +0x8b, 0x87, 0x84, 0x86, 0x8d, 0x85, 0x87, 0x8a, 0x8a, 0x86, 0x82, 0x8b, 0x87, 0x85, 0x88, 0x7d, +0x7d, 0x82, 0x78, 0x7e, 0x86, 0x84, 0x84, 0x83, 0x7e, 0x80, 0x7c, 0x71, 0x6f, 0x73, 0x6a, 0x6e, +0x73, 0x75, 0x73, 0x77, 0x6d, 0x74, 0x7b, 0x75, 0x78, 0x76, 0x79, 0x7b, 0x7e, 0x84, 0x81, 0x87, +0x7d, 0x76, 0x7d, 0x74, 0x70, 0x70, 0x6d, 0x70, 0x75, 0x7a, 0x7b, 0x77, 0x73, 0x6d, 0x74, 0x6f, +0x72, 0x7a, 0x75, 0x7b, 0x83, 0x83, 0x84, 0x89, 0x88, 0x7d, 0x80, 0x87, 0x83, 0x7b, 0x7d, 0x7b, +0x82, 0x89, 0x86, 0x8e, 0x8d, 0x83, 0x81, 0x8c, 0x93, 0x8f, 0x8a, 0x8c, 0x99, 0x9e, 0x94, 0x8e, +0x99, 0x97, 0x94, 0x93, 0x8e, 0x8e, 0x8e, 0x88, 0x87, 0x83, 0x87, 0x85, 0x7b, 0x73, 0x74, 0x80, +0x7c, 0x75, 0x7a, 0x81, 0x83, 0x84, 0x87, 0x79, 0x83, 0x85, 0x84, 0x7d, 0x7d, 0x89, 0x84, 0x7c, +0x7c, 0x80, 0x7b, 0x77, 0x7d, 0x82, 0x7b, 0x76, 0x78, 0x73, 0x7e, 0x82, 0x7d, 0x7c, 0x7a, 0x83, +0x84, 0x7c, 0x73, 0x6a, 0x6f, 0x74, 0x70, 0x69, 0x6d, 0x73, 0x6c, 0x66, 0x73, 0x77, 0x6f, 0x70, +0x70, 0x76, 0x7e, 0x77, 0x74, 0x72, 0x7a, 0x78, 0x71, 0x77, 0x77, 0x76, 0x79, 0x7d, 0x7a, 0x83, +0x7e, 0x71, 0x75, 0x7b, 0x82, 0x7a, 0x7a, 0x78, 0x7b, 0x7d, 0x77, 0x7a, 0x7e, 0x78, 0x80, 0x83, +0x84, 0x85, 0x8b, 0x8b, 0x84, 0x88, 0x8f, 0x8c, 0x86, 0x82, 0x7e, 0x89, 0x91, 0x8d, 0x8b, 0x88, +0x84, 0x87, 0x83, 0x7c, 0x86, 0x85, 0x81, 0x8b, 0x8b, 0x8a, 0x8c, 0x90, 0x8c, 0x88, 0x84, 0x89, +0x88, 0x7d, 0x86, 0x8c, 0x83, 0x82, 0x85, 0x83, 0x80, 0x81, 0x82, 0x7d, 0x87, 0x8a, 0x87, 0x88, +0x8d, 0x86, 0x83, 0x88, 0x82, 0x7e, 0x82, 0x82, 0x81, 0x85, 0x81, 0x87, 0x90, 0x8e, 0x88, 0x84, +0x84, 0x84, 0x7e, 0x7b, 0x7b, 0x81, 0x6f, 0x77, 0x84, 0x80, 0x81, 0x73, 0x70, 0x7b, 0x7a, 0x79, +0x7c, 0x78, 0x7a, 0x78, 0x82, 0x84, 0x77, 0x75, 0x73, 0x79, 0x74, 0x79, 0x7b, 0x78, 0x78, 0x7a, +0x83, 0x7e, 0x74, 0x71, 0x78, 0x73, 0x75, 0x75, 0x78, 0x7c, 0x79, 0x79, 0x78, 0x79, 0x75, 0x70, +0x6f, 0x74, 0x73, 0x7e, 0x7b, 0x79, 0x86, 0x87, 0x7e, 0x79, 0x84, 0x7e, 0x7b, 0x82, 0x80, 0x78, +0x81, 0x7b, 0x75, 0x74, 0x76, 0x7b, 0x7d, 0x80, 0x7a, 0x80, 0x85, 0x87, 0x87, 0x8e, 0x8c, 0x81, +0x86, 0x8a, 0x8a, 0x89, 0x87, 0x8b, 0x8f, 0x8f, 0x8b, 0x8b, 0x88, 0x86, 0x87, 0x85, 0x81, 0x7e, +0x7c, 0x86, 0x88, 0x85, 0x7c, 0x7e, 0x81, 0x7b, 0x7b, 0x7b, 0x7b, 0x84, 0x86, 0x85, 0x85, 0x85, +0x81, 0x80, 0x80, 0x81, 0x80, 0x79, 0x78, 0x82, 0x86, 0x82, 0x87, 0x88, 0x7e, 0x81, 0x86, 0x87, +0x84, 0x7a, 0x7c, 0x8a, 0x88, 0x84, 0x7e, 0x79, 0x78, 0x77, 0x71, 0x72, 0x6c, 0x6f, 0x6c, 0x6c, +0x70, 0x73, 0x74, 0x73, 0x74, 0x78, 0x79, 0x75, 0x7b, 0x7d, 0x77, 0x81, 0x86, 0x81, 0x7d, 0x80, +0x7d, 0x76, 0x74, 0x79, 0x78, 0x78, 0x72, 0x6d, 0x79, 0x76, 0x73, 0x78, 0x75, 0x76, 0x78, 0x73, +0x78, 0x80, 0x83, 0x7b, 0x7b, 0x88, 0x84, 0x86, 0x82, 0x82, 0x7c, 0x82, 0x88, 0x84, 0x8e, 0x8b, +0x8c, 0x8f, 0x8c, 0x89, 0x8f, 0x8d, 0x8c, 0x95, 0x95, 0x98, 0x93, 0x8e, 0x8f, 0x93, 0x93, 0x94, +0x8f, 0x8b, 0x92, 0x8d, 0x83, 0x8a, 0x92, 0x8b, 0x84, 0x81, 0x7a, 0x85, 0x83, 0x7e, 0x85, 0x88, +0x85, 0x82, 0x7e, 0x83, 0x7d, 0x7e, 0x81, 0x7b, 0x81, 0x7b, 0x7e, 0x88, 0x86, 0x80, 0x7e, 0x89, +0x79, 0x70, 0x77, 0x78, 0x79, 0x78, 0x73, 0x7a, 0x79, 0x74, 0x7a, 0x76, 0x78, 0x7c, 0x77, 0x6f, +0x70, 0x72, 0x6a, 0x66, 0x66, 0x68, 0x67, 0x64, 0x68, 0x69, 0x6b, 0x6e, 0x69, 0x74, 0x7b, 0x78, +0x77, 0x79, 0x77, 0x7b, 0x7e, 0x78, 0x7b, 0x80, 0x7b, 0x7e, 0x80, 0x76, 0x79, 0x7d, 0x6b, 0x71, +0x78, 0x77, 0x79, 0x7a, 0x7d, 0x89, 0x88, 0x82, 0x85, 0x8e, 0x8b, 0x80, 0x84, 0x8a, 0x88, 0x8b, +0x88, 0x83, 0x8f, 0x8f, 0x81, 0x82, 0x87, 0x83, 0x89, 0x8e, 0x8e, 0x95, 0x8e, 0x8c, 0x8b, 0x82, +0x85, 0x83, 0x81, 0x89, 0x86, 0x81, 0x86, 0x90, 0x8c, 0x87, 0x8b, 0x8c, 0x82, 0x7e, 0x7d, 0x7d, +0x7e, 0x86, 0x83, 0x89, 0x84, 0x7c, 0x7e, 0x7d, 0x7d, 0x7c, 0x7e, 0x7c, 0x7c, 0x78, 0x78, 0x7e, +0x82, 0x76, 0x73, 0x82, 0x83, 0x76, 0x6d, 0x79, 0x7a, 0x7c, 0x7b, 0x7d, 0x85, 0x87, 0x7b, 0x7b, +0x85, 0x85, 0x84, 0x7c, 0x80, 0x88, 0x85, 0x81, 0x82, 0x7b, 0x7b, 0x7c, 0x7a, 0x82, 0x7d, 0x82, +0x80, 0x80, 0x7e, 0x83, 0x89, 0x84, 0x7e, 0x83, 0x85, 0x7e, 0x81, 0x7d, 0x81, 0x82, 0x82, 0x81, +0x7a, 0x7c, 0x7d, 0x74, 0x74, 0x80, 0x79, 0x7d, 0x79, 0x77, 0x7c, 0x76, 0x75, 0x77, 0x7c, 0x78, +0x7d, 0x75, 0x72, 0x7a, 0x82, 0x82, 0x80, 0x77, 0x72, 0x7b, 0x7b, 0x7b, 0x76, 0x79, 0x7c, 0x77, +0x79, 0x84, 0x79, 0x76, 0x7b, 0x77, 0x85, 0x83, 0x79, 0x7c, 0x78, 0x7b, 0x80, 0x7e, 0x81, 0x83, +0x82, 0x7d, 0x7e, 0x86, 0x83, 0x89, 0x87, 0x84, 0x8b, 0x83, 0x87, 0x8f, 0x8b, 0x85, 0x86, 0x8c, +0x88, 0x8a, 0x82, 0x79, 0x84, 0x88, 0x80, 0x84, 0x84, 0x84, 0x81, 0x80, 0x89, 0x81, 0x86, 0x81, +0x77, 0x88, 0x89, 0x8a, 0x87, 0x7a, 0x88, 0x8e, 0x88, 0x84, 0x7d, 0x80, 0x81, 0x80, 0x81, 0x84, +0x85, 0x7a, 0x79, 0x7e, 0x7d, 0x77, 0x75, 0x72, 0x73, 0x79, 0x76, 0x75, 0x6d, 0x76, 0x7a, 0x7a, +0x77, 0x75, 0x7a, 0x7c, 0x71, 0x71, 0x74, 0x76, 0x7c, 0x73, 0x73, 0x79, 0x79, 0x74, 0x6e, 0x77, +0x75, 0x6f, 0x75, 0x75, 0x82, 0x85, 0x7c, 0x78, 0x75, 0x7b, 0x83, 0x79, 0x7a, 0x7c, 0x7c, 0x7d, +0x79, 0x7e, 0x86, 0x79, 0x79, 0x7d, 0x7b, 0x7b, 0x78, 0x7c, 0x7b, 0x85, 0x93, 0x8b, 0x8b, 0x90, +0x8b, 0x90, 0x90, 0x8a, 0x8d, 0x91, 0x96, 0x95, 0x8f, 0x9a, 0x95, 0x90, 0x95, 0x95, 0x90, 0x8a, +0x8d, 0x93, 0x90, 0x8e, 0x94, 0x92, 0x8d, 0x91, 0x90, 0x87, 0x80, 0x7d, 0x82, 0x82, 0x84, 0x7e, +0x7d, 0x7d, 0x7d, 0x7e, 0x77, 0x75, 0x7d, 0x78, 0x74, 0x80, 0x7d, 0x82, 0x81, 0x7b, 0x7d, 0x78, +0x79, 0x72, 0x6d, 0x74, 0x71, 0x6e, 0x6e, 0x75, 0x74, 0x70, 0x72, 0x77, 0x73, 0x70, 0x74, 0x74, +0x72, 0x69, 0x72, 0x72, 0x6e, 0x75, 0x72, 0x74, 0x77, 0x71, 0x77, 0x72, 0x72, 0x79, 0x72, 0x7b, +0x83, 0x7a, 0x77, 0x75, 0x77, 0x7c, 0x7d, 0x80, 0x77, 0x77, 0x78, 0x79, 0x7c, 0x77, 0x7c, 0x7e, +0x79, 0x7a, 0x80, 0x80, 0x7b, 0x7b, 0x7e, 0x79, 0x80, 0x83, 0x7d, 0x7d, 0x80, 0x82, 0x83, 0x80, +0x83, 0x81, 0x83, 0x82, 0x82, 0x8d, 0x91, 0x8e, 0x8b, 0x83, 0x88, 0x8a, 0x83, 0x89, 0x84, 0x80, +0x84, 0x82, 0x82, 0x87, 0x8e, 0x89, 0x87, 0x92, 0x92, 0x8d, 0x8b, 0x83, 0x87, 0x8d, 0x8e, 0x8b, +0x86, 0x88, 0x87, 0x82, 0x88, 0x83, 0x80, 0x80, 0x83, 0x83, 0x82, 0x8a, 0x8d, 0x83, 0x81, 0x87, +0x89, 0x85, 0x78, 0x79, 0x84, 0x80, 0x7e, 0x84, 0x84, 0x7a, 0x78, 0x7a, 0x77, 0x76, 0x7b, 0x74, +0x71, 0x77, 0x7c, 0x7d, 0x77, 0x79, 0x75, 0x73, 0x74, 0x74, 0x71, 0x72, 0x76, 0x7c, 0x7d, 0x7d, +0x7e, 0x7c, 0x78, 0x7c, 0x75, 0x71, 0x7c, 0x7c, 0x79, 0x7b, 0x7c, 0x88, 0x87, 0x83, 0x83, 0x89, +0x85, 0x81, 0x80, 0x81, 0x85, 0x84, 0x7d, 0x79, 0x80, 0x80, 0x7a, 0x74, 0x6e, 0x7b, 0x78, 0x78, +0x7d, 0x80, 0x7e, 0x7e, 0x84, 0x84, 0x7d, 0x88, 0x8b, 0x7c, 0x84, 0x86, 0x86, 0x8a, 0x88, 0x84, +0x89, 0x85, 0x7e, 0x81, 0x7e, 0x81, 0x80, 0x7c, 0x7e, 0x83, 0x85, 0x80, 0x7d, 0x7b, 0x7b, 0x7d, +0x79, 0x79, 0x80, 0x77, 0x7d, 0x83, 0x81, 0x86, 0x82, 0x7e, 0x7a, 0x7d, 0x82, 0x7d, 0x78, 0x78, +0x7b, 0x82, 0x85, 0x7c, 0x75, 0x7b, 0x7c, 0x76, 0x7c, 0x86, 0x88, 0x84, 0x80, 0x88, 0x87, 0x81, +0x7d, 0x7a, 0x7d, 0x81, 0x76, 0x72, 0x7c, 0x7e, 0x7b, 0x81, 0x82, 0x84, 0x8e, 0x85, 0x81, 0x81, +0x7d, 0x7b, 0x7d, 0x80, 0x7c, 0x7b, 0x79, 0x7b, 0x7d, 0x7a, 0x76, 0x78, 0x77, 0x75, 0x77, 0x7d, +0x7d, 0x73, 0x75, 0x83, 0x82, 0x7c, 0x7c, 0x81, 0x84, 0x7a, 0x7c, 0x7d, 0x77, 0x78, 0x7a, 0x80, +0x7c, 0x7b, 0x7a, 0x74, 0x73, 0x7b, 0x73, 0x71, 0x7d, 0x7d, 0x7e, 0x7a, 0x81, 0x85, 0x82, 0x82, +0x7e, 0x81, 0x7d, 0x7d, 0x83, 0x7c, 0x81, 0x81, 0x81, 0x86, 0x87, 0x83, 0x7b, 0x7b, 0x82, 0x85, +0x8a, 0x8e, 0x88, 0x86, 0x8c, 0x95, 0x95, 0x92, 0x8e, 0x8a, 0x84, 0x85, 0x8c, 0x8a, 0x87, 0x86, +0x8a, 0x8f, 0x8c, 0x88, 0x83, 0x86, 0x8e, 0x8d, 0x8a, 0x89, 0x8c, 0x87, 0x85, 0x88, 0x83, 0x8a, +0x84, 0x79, 0x7d, 0x81, 0x81, 0x83, 0x87, 0x89, 0x88, 0x89, 0x83, 0x80, 0x7e, 0x82, 0x7c, 0x78, +0x7c, 0x83, 0x80, 0x7c, 0x79, 0x79, 0x78, 0x79, 0x76, 0x6a, 0x66, 0x6c, 0x6b, 0x6e, 0x6a, 0x6a, +0x70, 0x6a, 0x65, 0x69, 0x70, 0x69, 0x60, 0x66, 0x6a, 0x77, 0x78, 0x6c, 0x6f, 0x73, 0x75, 0x72, +0x6f, 0x72, 0x74, 0x76, 0x79, 0x79, 0x78, 0x76, 0x7b, 0x7e, 0x7c, 0x80, 0x81, 0x7b, 0x77, 0x7d, +0x7b, 0x7d, 0x80, 0x88, 0x8a, 0x85, 0x82, 0x7e, 0x82, 0x81, 0x85, 0x87, 0x86, 0x8b, 0x92, 0x8d, +0x90, 0x94, 0x91, 0x94, 0x91, 0x8b, 0x8b, 0x90, 0x8c, 0x85, 0x8c, 0x91, 0x8e, 0x87, 0x8b, 0x91, +0x88, 0x85, 0x88, 0x85, 0x89, 0x8b, 0x84, 0x88, 0x83, 0x82, 0x87, 0x86, 0x7e, 0x83, 0x80, 0x7d, +0x83, 0x89, 0x8a, 0x88, 0x7e, 0x7b, 0x7d, 0x7e, 0x7e, 0x7d, 0x7a, 0x7a, 0x7a, 0x74, 0x78, 0x7c, +0x7b, 0x80, 0x7d, 0x80, 0x7e, 0x7b, 0x7c, 0x7a, 0x75, 0x78, 0x6c, 0x70, 0x78, 0x71, 0x6d, 0x78, +0x7a, 0x79, 0x78, 0x74, 0x79, 0x82, 0x7c, 0x81, 0x81, 0x85, 0x83, 0x85, 0x84, 0x80, 0x85, 0x85, +0x80, 0x86, 0x80, 0x7c, 0x83, 0x84, 0x81, 0x82, 0x85, 0x80, 0x7e, 0x81, 0x7d, 0x82, 0x8c, 0x86, +0x80, 0x83, 0x82, 0x7c, 0x74, 0x77, 0x70, 0x6d, 0x76, 0x75, 0x76, 0x7c, 0x83, 0x82, 0x83, 0x86, +0x81, 0x85, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x7c, 0x80, 0x82, 0x7d, +0x76, 0x75, 0x75, 0x76, 0x79, 0x73, 0x75, 0x75, 0x74, 0x79, 0x79, 0x77, 0x7c, 0x7e, 0x80, 0x82, +0x88, 0x85, 0x8a, 0x88, 0x82, 0x7e, 0x82, 0x80, 0x7b, 0x7d, 0x81, 0x80, 0x83, 0x85, 0x83, 0x84, +0x80, 0x7b, 0x82, 0x88, 0x85, 0x83, 0x82, 0x82, 0x82, 0x89, 0x8a, 0x8c, 0x89, 0x81, 0x7c, 0x84, +0x83, 0x82, 0x82, 0x7d, 0x7e, 0x84, 0x85, 0x87, 0x81, 0x7c, 0x86, 0x85, 0x85, 0x81, 0x7a, 0x78, +0x7e, 0x7c, 0x75, 0x77, 0x78, 0x74, 0x77, 0x77, 0x7b, 0x7c, 0x75, 0x76, 0x75, 0x7a, 0x7e, 0x72, +0x77, 0x76, 0x75, 0x79, 0x79, 0x77, 0x79, 0x81, 0x84, 0x81, 0x7d, 0x84, 0x82, 0x78, 0x74, 0x79, +0x7c, 0x79, 0x70, 0x78, 0x82, 0x7a, 0x79, 0x7d, 0x86, 0x85, 0x82, 0x85, 0x88, 0x8b, 0x86, 0x82, +0x84, 0x7e, 0x7c, 0x86, 0x81, 0x82, 0x87, 0x81, 0x83, 0x8c, 0x87, 0x87, 0x8b, 0x88, 0x8a, 0x91, +0x93, 0x92, 0x8f, 0x90, 0x92, 0x90, 0x92, 0x8d, 0x8c, 0x8c, 0x87, 0x87, 0x84, 0x88, 0x85, 0x7d, +0x82, 0x86, 0x85, 0x7a, 0x77, 0x81, 0x84, 0x84, 0x7c, 0x7e, 0x85, 0x7c, 0x76, 0x80, 0x86, 0x80, +0x80, 0x81, 0x84, 0x85, 0x7e, 0x7d, 0x80, 0x7c, 0x78, 0x77, 0x7c, 0x78, 0x78, 0x78, 0x79, 0x76, +0x6e, 0x73, 0x76, 0x72, 0x74, 0x7a, 0x79, 0x73, 0x74, 0x76, 0x75, 0x76, 0x75, 0x72, 0x72, 0x74, +0x73, 0x74, 0x77, 0x79, 0x76, 0x75, 0x75, 0x77, 0x7b, 0x71, 0x71, 0x76, 0x77, 0x79, 0x7a, 0x76, +0x77, 0x77, 0x75, 0x76, 0x7a, 0x74, 0x6f, 0x79, 0x7e, 0x79, 0x79, 0x7a, 0x76, 0x76, 0x77, 0x78, +0x7d, 0x78, 0x7a, 0x81, 0x82, 0x84, 0x86, 0x85, 0x88, 0x8e, 0x8c, 0x82, 0x85, 0x8a, 0x87, 0x82, +0x7d, 0x84, 0x88, 0x89, 0x86, 0x88, 0x90, 0x89, 0x86, 0x87, 0x84, 0x88, 0x8b, 0x87, 0x86, 0x8e, +0x8f, 0x85, 0x87, 0x88, 0x8a, 0x8b, 0x8b, 0x87, 0x88, 0x8c, 0x8d, 0x89, 0x8a, 0x8d, 0x8a, 0x84, +0x87, 0x8e, 0x8c, 0x89, 0x87, 0x84, 0x86, 0x89, 0x83, 0x7c, 0x7b, 0x80, 0x7d, 0x79, 0x7b, 0x7c, +0x7d, 0x81, 0x7b, 0x7d, 0x84, 0x81, 0x79, 0x7b, 0x7b, 0x7b, 0x7a, 0x76, 0x7a, 0x77, 0x70, 0x75, +0x76, 0x79, 0x7b, 0x7c, 0x78, 0x7b, 0x82, 0x7a, 0x7a, 0x77, 0x75, 0x75, 0x77, 0x78, 0x77, 0x7c, +0x7c, 0x73, 0x78, 0x7c, 0x7a, 0x7d, 0x79, 0x75, 0x7d, 0x83, 0x80, 0x7c, 0x7a, 0x79, 0x77, 0x7a, +0x7c, 0x7e, 0x7d, 0x7e, 0x80, 0x7a, 0x81, 0x84, 0x7c, 0x7b, 0x85, 0x86, 0x85, 0x80, 0x82, 0x86, +0x84, 0x83, 0x85, 0x8e, 0x87, 0x81, 0x83, 0x87, 0x8d, 0x85, 0x81, 0x84, 0x86, 0x86, 0x86, 0x84, +0x84, 0x80, 0x82, 0x87, 0x83, 0x83, 0x7e, 0x7a, 0x79, 0x7e, 0x86, 0x80, 0x7a, 0x80, 0x82, 0x81, +0x81, 0x79, 0x7c, 0x78, 0x78, 0x80, 0x80, 0x80, 0x82, 0x7c, 0x7c, 0x77, 0x7c, 0x80, 0x77, 0x76, +0x7d, 0x83, 0x81, 0x7c, 0x7d, 0x82, 0x7d, 0x79, 0x7c, 0x80, 0x82, 0x7b, 0x80, 0x7e, 0x7a, 0x79, +0x77, 0x7c, 0x78, 0x77, 0x7d, 0x7d, 0x7d, 0x7c, 0x80, 0x7e, 0x7a, 0x83, 0x80, 0x74, 0x77, 0x7d, +0x81, 0x7e, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7b, 0x79, 0x7b, 0x7c, 0x84, 0x87, 0x89, 0x83, +0x83, 0x8e, 0x8b, 0x87, 0x8a, 0x81, 0x85, 0x8a, 0x7e, 0x7c, 0x7b, 0x7a, 0x75, 0x74, 0x7c, 0x7d, +0x7b, 0x76, 0x77, 0x7b, 0x7c, 0x7d, 0x79, 0x7b, 0x7a, 0x80, 0x85, 0x81, 0x83, 0x88, 0x7e, 0x79, +0x82, 0x83, 0x83, 0x82, 0x80, 0x80, 0x82, 0x80, 0x84, 0x80, 0x84, 0x86, 0x80, 0x81, 0x85, 0x84, +0x83, 0x83, 0x87, 0x89, 0x87, 0x87, 0x82, 0x80, 0x84, 0x89, 0x87, 0x85, 0x86, 0x81, 0x81, 0x85, +0x83, 0x87, 0x86, 0x85, 0x86, 0x8a, 0x88, 0x84, 0x87, 0x84, 0x82, 0x87, 0x84, 0x85, 0x84, 0x81, +0x88, 0x8b, 0x86, 0x81, 0x83, 0x81, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x83, 0x80, 0x7b, 0x82, 0x7c, +0x73, 0x75, 0x78, 0x74, 0x74, 0x76, 0x74, 0x71, 0x6f, 0x70, 0x6f, 0x68, 0x6d, 0x71, 0x69, 0x67, +0x69, 0x6c, 0x6c, 0x69, 0x6d, 0x70, 0x73, 0x74, 0x73, 0x79, 0x78, 0x7a, 0x79, 0x78, 0x77, 0x76, +0x7a, 0x73, 0x79, 0x7d, 0x76, 0x7c, 0x7c, 0x7a, 0x7e, 0x7b, 0x74, 0x7d, 0x83, 0x82, 0x85, 0x86, +0x84, 0x85, 0x84, 0x89, 0x8b, 0x88, 0x8a, 0x8b, 0x8a, 0x89, 0x8c, 0x8f, 0x85, 0x88, 0x94, 0x91, +0x8e, 0x8d, 0x8a, 0x8f, 0x90, 0x8c, 0x90, 0x93, 0x8a, 0x87, 0x86, 0x88, 0x8a, 0x87, 0x87, 0x86, +0x81, 0x82, 0x82, 0x82, 0x81, 0x85, 0x86, 0x81, 0x82, 0x83, 0x7d, 0x80, 0x85, 0x85, 0x81, 0x80, +0x86, 0x85, 0x88, 0x81, 0x7d, 0x87, 0x83, 0x7c, 0x7e, 0x7d, 0x7d, 0x7c, 0x77, 0x7a, 0x7c, 0x79, +0x76, 0x73, 0x77, 0x7c, 0x80, 0x7a, 0x73, 0x78, 0x7c, 0x79, 0x73, 0x73, 0x76, 0x76, 0x72, 0x72, +0x7b, 0x7e, 0x7b, 0x75, 0x7a, 0x80, 0x7c, 0x7c, 0x78, 0x7c, 0x82, 0x80, 0x80, 0x81, 0x80, 0x85, +0x8b, 0x7c, 0x7d, 0x86, 0x7e, 0x79, 0x7d, 0x7d, 0x7b, 0x79, 0x79, 0x7b, 0x81, 0x81, 0x7c, 0x7b, +0x7b, 0x81, 0x83, 0x7c, 0x79, 0x7e, 0x85, 0x7b, 0x79, 0x86, 0x81, 0x7c, 0x7d, 0x7b, 0x84, 0x87, +0x85, 0x88, 0x87, 0x89, 0x86, 0x7e, 0x7c, 0x81, 0x83, 0x7d, 0x7d, 0x84, 0x83, 0x85, 0x88, 0x7e, +0x7b, 0x81, 0x7d, 0x76, 0x75, 0x78, 0x74, 0x71, 0x7c, 0x79, 0x75, 0x78, 0x75, 0x76, 0x76, 0x7a, +0x80, 0x74, 0x78, 0x84, 0x80, 0x7d, 0x80, 0x83, 0x83, 0x80, 0x81, 0x86, 0x7a, 0x83, 0x88, 0x87, +0x86, 0x81, 0x83, 0x83, 0x82, 0x84, 0x88, 0x87, 0x83, 0x81, 0x80, 0x84, 0x87, 0x82, 0x7c, 0x81, +0x81, 0x81, 0x7a, 0x7c, 0x7e, 0x80, 0x81, 0x7e, 0x84, 0x85, 0x80, 0x7a, 0x7a, 0x84, 0x81, 0x78, +0x7a, 0x7c, 0x7a, 0x78, 0x7b, 0x7d, 0x7b, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x82, 0x7c, 0x7d, 0x7d, +0x7e, 0x83, 0x79, 0x76, 0x81, 0x86, 0x81, 0x80, 0x83, 0x84, 0x84, 0x7e, 0x80, 0x82, 0x7b, 0x7b, +0x7b, 0x7b, 0x7d, 0x7d, 0x7a, 0x7a, 0x7b, 0x85, 0x85, 0x7d, 0x82, 0x83, 0x83, 0x88, 0x7e, 0x81, +0x82, 0x80, 0x7b, 0x7d, 0x83, 0x82, 0x82, 0x82, 0x83, 0x85, 0x89, 0x88, 0x85, 0x85, 0x8a, 0x8b, +0x86, 0x84, 0x81, 0x86, 0x83, 0x7d, 0x86, 0x86, 0x81, 0x81, 0x7c, 0x80, 0x7c, 0x7b, 0x83, 0x82, +0x81, 0x83, 0x8a, 0x88, 0x82, 0x83, 0x86, 0x83, 0x82, 0x86, 0x84, 0x80, 0x7d, 0x80, 0x7c, 0x7d, +0x81, 0x7a, 0x78, 0x7a, 0x79, 0x7e, 0x81, 0x7d, 0x85, 0x84, 0x7d, 0x7b, 0x78, 0x78, 0x70, 0x76, +0x79, 0x77, 0x7a, 0x7c, 0x7d, 0x7a, 0x7b, 0x7d, 0x78, 0x74, 0x75, 0x74, 0x74, 0x71, 0x77, 0x75, +0x71, 0x73, 0x76, 0x79, 0x76, 0x72, 0x77, 0x78, 0x7a, 0x79, 0x75, 0x73, 0x73, 0x72, 0x72, 0x75, +0x71, 0x72, 0x75, 0x76, 0x77, 0x7d, 0x7c, 0x7c, 0x7b, 0x80, 0x80, 0x82, 0x7e, 0x7c, 0x7e, 0x83, +0x88, 0x86, 0x85, 0x87, 0x8a, 0x89, 0x87, 0x84, 0x84, 0x84, 0x82, 0x7d, 0x86, 0x89, 0x87, 0x85, +0x89, 0x8d, 0x8c, 0x88, 0x8a, 0x85, 0x85, 0x85, 0x88, 0x87, 0x83, 0x89, 0x8a, 0x86, 0x87, 0x90, +0x8c, 0x88, 0x8c, 0x8b, 0x8d, 0x8e, 0x8c, 0x8b, 0x8d, 0x8b, 0x87, 0x84, 0x82, 0x84, 0x81, 0x7e, +0x83, 0x84, 0x83, 0x7d, 0x7d, 0x83, 0x7b, 0x7a, 0x7e, 0x7a, 0x7c, 0x80, 0x80, 0x7d, 0x80, 0x80, +0x7c, 0x7d, 0x85, 0x84, 0x7a, 0x76, 0x7a, 0x73, 0x6e, 0x73, 0x72, 0x6f, 0x6b, 0x71, 0x77, 0x72, +0x6f, 0x76, 0x74, 0x75, 0x77, 0x72, 0x76, 0x77, 0x76, 0x7a, 0x7c, 0x7a, 0x78, 0x78, 0x7c, 0x7c, +0x77, 0x7a, 0x7b, 0x76, 0x77, 0x7d, 0x7d, 0x7b, 0x7a, 0x7d, 0x80, 0x7d, 0x84, 0x82, 0x81, 0x83, +0x87, 0x87, 0x82, 0x85, 0x88, 0x84, 0x83, 0x88, 0x83, 0x86, 0x89, 0x8a, 0x8c, 0x8a, 0x91, 0x91, +0x8a, 0x8e, 0x8e, 0x8c, 0x88, 0x8a, 0x89, 0x82, 0x84, 0x86, 0x82, 0x85, 0x86, 0x87, 0x81, 0x80, +0x81, 0x80, 0x7a, 0x7a, 0x7b, 0x74, 0x77, 0x7b, 0x7b, 0x76, 0x78, 0x7b, 0x7b, 0x7b, 0x7e, 0x7d, +0x7d, 0x7e, 0x7c, 0x7a, 0x77, 0x79, 0x74, 0x74, 0x79, 0x79, 0x78, 0x79, 0x7c, 0x7e, 0x78, 0x7d, +0x80, 0x75, 0x72, 0x79, 0x78, 0x78, 0x79, 0x7b, 0x83, 0x80, 0x7e, 0x83, 0x7c, 0x7b, 0x7a, 0x7c, +0x7d, 0x79, 0x7a, 0x82, 0x84, 0x7e, 0x7e, 0x86, 0x83, 0x80, 0x82, 0x81, 0x85, 0x83, 0x80, 0x82, +0x84, 0x87, 0x85, 0x7b, 0x81, 0x83, 0x84, 0x83, 0x7e, 0x81, 0x86, 0x86, 0x7c, 0x7c, 0x81, 0x85, +0x80, 0x7b, 0x80, 0x7e, 0x80, 0x7c, 0x7e, 0x85, 0x82, 0x85, 0x84, 0x81, 0x7e, 0x7d, 0x82, 0x7b, +0x79, 0x84, 0x82, 0x7b, 0x7a, 0x83, 0x87, 0x80, 0x7c, 0x82, 0x81, 0x7b, 0x7e, 0x7b, 0x75, 0x77, +0x76, 0x7a, 0x7d, 0x78, 0x80, 0x7b, 0x77, 0x7b, 0x80, 0x80, 0x7c, 0x7e, 0x82, 0x7e, 0x7d, 0x7a, +0x7b, 0x80, 0x81, 0x86, 0x87, 0x83, 0x84, 0x87, 0x8b, 0x89, 0x81, 0x82, 0x83, 0x81, 0x7d, 0x82, +0x85, 0x80, 0x80, 0x85, 0x87, 0x85, 0x82, 0x82, 0x86, 0x82, 0x84, 0x86, 0x81, 0x81, 0x84, 0x88, +0x89, 0x84, 0x87, 0x8a, 0x83, 0x8a, 0x8a, 0x84, 0x85, 0x7c, 0x80, 0x83, 0x7d, 0x7e, 0x82, 0x7d, +0x7c, 0x80, 0x80, 0x7a, 0x74, 0x78, 0x7a, 0x73, 0x71, 0x70, 0x70, 0x73, 0x6c, 0x6f, 0x71, 0x6f, +0x6c, 0x6c, 0x72, 0x70, 0x72, 0x77, 0x75, 0x73, 0x77, 0x74, 0x74, 0x74, 0x73, 0x72, 0x74, 0x78, +0x82, 0x83, 0x7b, 0x7d, 0x7d, 0x7c, 0x7d, 0x80, 0x7e, 0x7c, 0x7b, 0x7c, 0x7e, 0x83, 0x83, 0x83, +0x87, 0x87, 0x86, 0x84, 0x89, 0x88, 0x80, 0x85, 0x89, 0x8f, 0x8d, 0x8b, 0x92, 0x92, 0x8e, 0x8e, +0x90, 0x8e, 0x8a, 0x8c, 0x88, 0x87, 0x8f, 0x8b, 0x82, 0x82, 0x85, 0x83, 0x81, 0x81, 0x84, 0x82, +0x83, 0x87, 0x86, 0x83, 0x85, 0x81, 0x80, 0x7d, 0x82, 0x86, 0x7e, 0x7e, 0x89, 0x88, 0x87, 0x85, +0x82, 0x81, 0x7e, 0x7e, 0x78, 0x75, 0x77, 0x7a, 0x79, 0x7b, 0x7b, 0x7a, 0x78, 0x75, 0x79, 0x78, +0x79, 0x78, 0x73, 0x74, 0x77, 0x75, 0x77, 0x79, 0x77, 0x73, 0x72, 0x79, 0x7c, 0x79, 0x79, 0x7a, +0x7e, 0x7b, 0x7c, 0x83, 0x80, 0x7d, 0x79, 0x7c, 0x82, 0x78, 0x7b, 0x78, 0x7a, 0x85, 0x7e, 0x7c, +0x7e, 0x7a, 0x7a, 0x7b, 0x79, 0x79, 0x7a, 0x78, 0x78, 0x80, 0x84, 0x82, 0x7d, 0x7d, 0x7d, 0x7b, +0x82, 0x7e, 0x7c, 0x81, 0x81, 0x85, 0x8b, 0x85, 0x83, 0x86, 0x87, 0x83, 0x83, 0x86, 0x86, 0x83, +0x7e, 0x87, 0x8b, 0x89, 0x88, 0x8a, 0x8b, 0x84, 0x85, 0x85, 0x86, 0x84, 0x82, 0x81, 0x82, 0x83, +0x7d, 0x7b, 0x7d, 0x7b, 0x7c, 0x7a, 0x7e, 0x81, 0x7c, 0x7b, 0x7b, 0x81, 0x86, 0x81, 0x7e, 0x7c, +0x7c, 0x7c, 0x75, 0x73, 0x76, 0x75, 0x79, 0x7c, 0x83, 0x81, 0x7b, 0x7e, 0x81, 0x7e, 0x7a, 0x7c, +0x7c, 0x7a, 0x80, 0x85, 0x84, 0x7c, 0x7b, 0x81, 0x82, 0x7e, 0x81, 0x7e, 0x7a, 0x7c, 0x82, 0x7e, +0x7e, 0x82, 0x80, 0x7b, 0x81, 0x7e, 0x7a, 0x7b, 0x79, 0x79, 0x7b, 0x7b, 0x7d, 0x7d, 0x79, 0x79, +0x7a, 0x7a, 0x7c, 0x7a, 0x7d, 0x80, 0x81, 0x81, 0x85, 0x84, 0x80, 0x84, 0x81, 0x7e, 0x82, 0x80, +0x82, 0x80, 0x83, 0x84, 0x81, 0x86, 0x88, 0x84, 0x80, 0x81, 0x80, 0x7a, 0x79, 0x7c, 0x7e, 0x7a, +0x7c, 0x7d, 0x7d, 0x80, 0x85, 0x84, 0x7e, 0x81, 0x83, 0x82, 0x81, 0x85, 0x86, 0x85, 0x84, 0x86, +0x88, 0x7e, 0x85, 0x87, 0x81, 0x86, 0x86, 0x84, 0x84, 0x81, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x7b, +0x7b, 0x82, 0x7d, 0x7c, 0x82, 0x81, 0x82, 0x7c, 0x80, 0x7e, 0x78, 0x7c, 0x80, 0x78, 0x7d, 0x82, +0x7e, 0x82, 0x86, 0x7e, 0x7d, 0x80, 0x7b, 0x7d, 0x7b, 0x81, 0x7e, 0x7b, 0x7e, 0x85, 0x8a, 0x85, +0x84, 0x85, 0x81, 0x83, 0x83, 0x7d, 0x7b, 0x7c, 0x7b, 0x7a, 0x7a, 0x80, 0x7d, 0x78, 0x7a, 0x7b, +0x7c, 0x7c, 0x7a, 0x7b, 0x7b, 0x76, 0x7b, 0x7b, 0x78, 0x77, 0x78, 0x79, 0x82, 0x80, 0x7b, 0x83, +0x86, 0x82, 0x82, 0x84, 0x81, 0x7d, 0x7c, 0x75, 0x74, 0x78, 0x79, 0x76, 0x75, 0x7a, 0x7b, 0x7a, +0x7a, 0x7b, 0x7d, 0x7a, 0x76, 0x78, 0x79, 0x77, 0x79, 0x82, 0x81, 0x7c, 0x80, 0x83, 0x82, 0x83, +0x82, 0x85, 0x83, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x81, 0x80, 0x7e, 0x7d, 0x7e, 0x83, 0x84, 0x82, +0x83, 0x82, 0x83, 0x84, 0x85, 0x82, 0x80, 0x84, 0x86, 0x85, 0x89, 0x85, 0x84, 0x86, 0x87, 0x8b, +0x8c, 0x88, 0x84, 0x87, 0x8b, 0x86, 0x84, 0x87, 0x87, 0x86, 0x84, 0x86, 0x87, 0x81, 0x81, 0x88, +0x83, 0x82, 0x80, 0x82, 0x7e, 0x7b, 0x81, 0x7e, 0x7e, 0x82, 0x82, 0x81, 0x81, 0x82, 0x81, 0x79, +0x7d, 0x7c, 0x74, 0x77, 0x77, 0x76, 0x77, 0x76, 0x78, 0x76, 0x73, 0x75, 0x75, 0x76, 0x77, 0x74, +0x70, 0x73, 0x75, 0x70, 0x72, 0x75, 0x76, 0x75, 0x75, 0x79, 0x7b, 0x7a, 0x79, 0x81, 0x82, 0x7d, +0x80, 0x80, 0x79, 0x79, 0x7b, 0x7a, 0x7d, 0x7b, 0x7e, 0x7c, 0x7d, 0x81, 0x7e, 0x80, 0x80, 0x82, +0x85, 0x85, 0x86, 0x88, 0x87, 0x88, 0x89, 0x87, 0x88, 0x86, 0x87, 0x8b, 0x8e, 0x8c, 0x89, 0x8e, +0x8d, 0x89, 0x8b, 0x8b, 0x8d, 0x8a, 0x84, 0x8d, 0x8b, 0x83, 0x86, 0x85, 0x86, 0x84, 0x82, 0x84, +0x81, 0x7d, 0x7b, 0x7b, 0x81, 0x82, 0x7b, 0x79, 0x7a, 0x7d, 0x7b, 0x7d, 0x7a, 0x76, 0x78, 0x76, +0x79, 0x78, 0x7c, 0x79, 0x76, 0x7c, 0x7a, 0x78, 0x7a, 0x7b, 0x78, 0x78, 0x77, 0x78, 0x79, 0x78, +0x77, 0x7b, 0x7b, 0x79, 0x7b, 0x7c, 0x7b, 0x79, 0x7b, 0x7d, 0x80, 0x81, 0x7d, 0x7c, 0x7c, 0x7b, +0x78, 0x78, 0x78, 0x7a, 0x7a, 0x78, 0x7b, 0x7e, 0x7e, 0x82, 0x81, 0x7e, 0x82, 0x81, 0x83, 0x85, +0x84, 0x80, 0x81, 0x88, 0x82, 0x85, 0x85, 0x84, 0x86, 0x85, 0x85, 0x86, 0x83, 0x82, 0x82, 0x82, +0x82, 0x80, 0x81, 0x82, 0x7e, 0x83, 0x83, 0x81, 0x84, 0x85, 0x82, 0x7e, 0x7b, 0x7a, 0x79, 0x7e, +0x80, 0x7e, 0x7d, 0x7d, 0x82, 0x81, 0x81, 0x7e, 0x7e, 0x81, 0x7c, 0x7d, 0x84, 0x84, 0x7e, 0x79, +0x7e, 0x83, 0x80, 0x7c, 0x7a, 0x83, 0x82, 0x7b, 0x82, 0x81, 0x7b, 0x7c, 0x7e, 0x81, 0x81, 0x7c, +0x80, 0x81, 0x7d, 0x7d, 0x7d, 0x83, 0x81, 0x80, 0x81, 0x7e, 0x82, 0x82, 0x80, 0x83, 0x87, 0x82, +0x7e, 0x83, 0x88, 0x80, 0x7e, 0x81, 0x84, 0x84, 0x80, 0x84, 0x85, 0x81, 0x83, 0x82, 0x83, 0x88, +0x87, 0x84, 0x89, 0x8c, 0x86, 0x83, 0x88, 0x89, 0x84, 0x81, 0x80, 0x84, 0x82, 0x7e, 0x7b, 0x7b, +0x7a, 0x78, 0x76, 0x78, 0x77, 0x79, 0x77, 0x75, 0x78, 0x77, 0x76, 0x76, 0x74, 0x79, 0x77, 0x75, +0x79, 0x78, 0x75, 0x79, 0x78, 0x76, 0x75, 0x77, 0x74, 0x73, 0x76, 0x77, 0x77, 0x75, 0x76, 0x77, +0x7a, 0x7c, 0x78, 0x7c, 0x82, 0x82, 0x7c, 0x7d, 0x83, 0x85, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x83, +0x84, 0x87, 0x85, 0x84, 0x85, 0x87, 0x88, 0x89, 0x88, 0x88, 0x8c, 0x8c, 0x88, 0x89, 0x8a, 0x88, +0x8a, 0x89, 0x85, 0x84, 0x87, 0x86, 0x85, 0x88, 0x84, 0x82, 0x83, 0x82, 0x81, 0x83, 0x84, 0x86, +0x80, 0x81, 0x88, 0x84, 0x82, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7a, 0x79, 0x7b, 0x7c, 0x7d, 0x7b, +0x7a, 0x7c, 0x79, 0x77, 0x77, 0x78, 0x75, 0x73, 0x78, 0x79, 0x7b, 0x7c, 0x7a, 0x7e, 0x7c, 0x7e, +0x84, 0x7d, 0x7c, 0x7d, 0x7c, 0x7d, 0x7b, 0x78, 0x7a, 0x7c, 0x77, 0x78, 0x7d, 0x80, 0x78, 0x77, +0x7c, 0x81, 0x81, 0x7e, 0x7c, 0x7a, 0x83, 0x7e, 0x7a, 0x7d, 0x7a, 0x7c, 0x7c, 0x7a, 0x82, 0x80, +0x7c, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x82, 0x83, 0x80, 0x7d, 0x82, 0x7d, 0x7e, 0x86, 0x87, +0x81, 0x81, 0x84, 0x81, 0x83, 0x86, 0x82, 0x84, 0x85, 0x7e, 0x84, 0x88, 0x86, 0x89, 0x84, 0x84, +0x89, 0x87, 0x87, 0x87, 0x85, 0x83, 0x82, 0x83, 0x85, 0x85, 0x80, 0x83, 0x83, 0x80, 0x83, 0x84, +0x7e, 0x7b, 0x7a, 0x7e, 0x7c, 0x7d, 0x7d, 0x7b, 0x7b, 0x7e, 0x82, 0x80, 0x80, 0x7e, 0x7d, 0x80, +0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7b, 0x7c, 0x7d, 0x7c, 0x7b, 0x79, 0x80, 0x80, 0x79, +0x7a, 0x7b, 0x7b, 0x79, 0x73, 0x77, 0x7d, 0x79, 0x79, 0x7e, 0x80, 0x7b, 0x7e, 0x7d, 0x7e, 0x7e, +0x7b, 0x7d, 0x77, 0x78, 0x7e, 0x78, 0x79, 0x79, 0x78, 0x7b, 0x79, 0x7c, 0x7d, 0x7a, 0x7a, 0x7a, +0x7d, 0x7e, 0x7d, 0x80, 0x80, 0x7e, 0x80, 0x85, 0x81, 0x7c, 0x7e, 0x81, 0x80, 0x80, 0x80, 0x7e, +0x81, 0x80, 0x80, 0x85, 0x86, 0x85, 0x83, 0x84, 0x8a, 0x85, 0x82, 0x83, 0x83, 0x82, 0x81, 0x80, +0x81, 0x7e, 0x81, 0x84, 0x81, 0x83, 0x86, 0x84, 0x87, 0x8a, 0x88, 0x84, 0x85, 0x83, 0x86, 0x83, +0x83, 0x84, 0x82, 0x82, 0x7d, 0x85, 0x88, 0x81, 0x82, 0x81, 0x81, 0x82, 0x7d, 0x7c, 0x7e, 0x7e, +0x78, 0x78, 0x80, 0x7d, 0x7a, 0x7b, 0x80, 0x7c, 0x79, 0x7d, 0x83, 0x7e, 0x7b, 0x7d, 0x82, 0x81, +0x7c, 0x7e, 0x7c, 0x7e, 0x80, 0x7e, 0x7e, 0x81, 0x82, 0x79, 0x7b, 0x7d, 0x7d, 0x7d, 0x7a, 0x7b, +0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x80, 0x83, 0x80, 0x7b, 0x81, 0x81, 0x7e, 0x81, 0x82, +0x83, 0x81, 0x7e, 0x81, 0x88, 0x83, 0x7d, 0x81, 0x82, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x82, +0x83, 0x81, 0x80, 0x7c, 0x7c, 0x7e, 0x7c, 0x77, 0x78, 0x7c, 0x7a, 0x79, 0x7d, 0x7c, 0x7b, 0x77, +0x75, 0x7e, 0x7c, 0x7a, 0x7c, 0x7a, 0x7b, 0x7b, 0x78, 0x77, 0x78, 0x79, 0x7a, 0x76, 0x7d, 0x7d, +0x7b, 0x7d, 0x7d, 0x81, 0x80, 0x7e, 0x82, 0x80, 0x80, 0x82, 0x85, 0x84, 0x85, 0x84, 0x81, 0x82, +0x83, 0x84, 0x86, 0x85, 0x83, 0x83, 0x85, 0x87, 0x86, 0x83, 0x87, 0x89, 0x84, 0x82, 0x86, 0x87, +0x82, 0x7c, 0x80, 0x85, 0x84, 0x80, 0x80, 0x82, 0x83, 0x84, 0x86, 0x86, 0x87, 0x8a, 0x87, 0x82, +0x85, 0x86, 0x7e, 0x7d, 0x83, 0x82, 0x7c, 0x7c, 0x80, 0x7e, 0x7d, 0x7e, 0x81, 0x81, 0x80, 0x7c, +0x7d, 0x7d, 0x79, 0x77, 0x77, 0x7a, 0x79, 0x75, 0x75, 0x77, 0x75, 0x72, 0x74, 0x77, 0x77, 0x76, +0x77, 0x79, 0x78, 0x76, 0x78, 0x79, 0x77, 0x76, 0x78, 0x7a, 0x7b, 0x7c, 0x7a, 0x78, 0x7e, 0x7d, +0x77, 0x79, 0x7c, 0x7a, 0x76, 0x7a, 0x7d, 0x82, 0x82, 0x7d, 0x81, 0x86, 0x88, 0x83, 0x82, 0x83, +0x85, 0x84, 0x84, 0x87, 0x8a, 0x87, 0x87, 0x8e, 0x8b, 0x8b, 0x8b, 0x8b, 0x8c, 0x8c, 0x8c, 0x8a, +0x8b, 0x89, 0x88, 0x8a, 0x8a, 0x8a, 0x8c, 0x8d, 0x8b, 0x85, 0x85, 0x86, 0x85, 0x82, 0x81, 0x86, +0x85, 0x7e, 0x7b, 0x81, 0x84, 0x7c, 0x7d, 0x7c, 0x7a, 0x80, 0x7a, 0x74, 0x77, 0x7b, 0x7d, 0x75, +0x75, 0x79, 0x76, 0x72, 0x73, 0x76, 0x75, 0x78, 0x76, 0x74, 0x75, 0x78, 0x75, 0x70, 0x6f, 0x71, +0x73, 0x72, 0x6f, 0x72, 0x76, 0x79, 0x7b, 0x78, 0x79, 0x7c, 0x7e, 0x7b, 0x76, 0x7a, 0x7d, 0x7a, +0x78, 0x7a, 0x7e, 0x7b, 0x7b, 0x7a, 0x7b, 0x85, 0x83, 0x7d, 0x81, 0x83, 0x85, 0x85, 0x87, 0x8b, +0x89, 0x89, 0x88, 0x88, 0x89, 0x8a, 0x8b, 0x86, 0x84, 0x86, 0x88, 0x85, 0x83, 0x86, 0x81, 0x81, +0x86, 0x83, 0x81, 0x85, 0x86, 0x85, 0x80, 0x81, 0x82, 0x7e, 0x7e, 0x7b, 0x7d, 0x7e, 0x7c, 0x7c, +0x83, 0x84, 0x81, 0x80, 0x80, 0x81, 0x81, 0x7d, 0x7e, 0x80, 0x7e, 0x7c, 0x7e, 0x81, 0x7b, 0x7d, +0x7e, 0x7c, 0x81, 0x81, 0x80, 0x7a, 0x7d, 0x80, 0x7d, 0x7c, 0x7b, 0x7c, 0x78, 0x78, 0x7a, 0x7b, +0x79, 0x7c, 0x7c, 0x7a, 0x7c, 0x7e, 0x7d, 0x7c, 0x7e, 0x7e, 0x81, 0x7e, 0x80, 0x81, 0x82, 0x84, +0x83, 0x81, 0x85, 0x88, 0x85, 0x83, 0x84, 0x82, 0x83, 0x81, 0x82, 0x86, 0x85, 0x82, 0x84, 0x82, +0x81, 0x82, 0x82, 0x80, 0x7e, 0x83, 0x80, 0x81, 0x82, 0x81, 0x7e, 0x7e, 0x80, 0x80, 0x7d, 0x7d, +0x7e, 0x7d, 0x7c, 0x7c, 0x80, 0x7e, 0x7c, 0x7c, 0x80, 0x7c, 0x7a, 0x7c, 0x80, 0x81, 0x7d, 0x7d, +0x81, 0x7c, 0x7b, 0x7c, 0x78, 0x78, 0x79, 0x75, 0x76, 0x76, 0x74, 0x75, 0x77, 0x78, 0x78, 0x7a, +0x7d, 0x7c, 0x7b, 0x7a, 0x7a, 0x77, 0x76, 0x77, 0x76, 0x7a, 0x7b, 0x7e, 0x81, 0x85, 0x83, 0x86, +0x83, 0x84, 0x87, 0x85, 0x85, 0x85, 0x86, 0x84, 0x84, 0x82, 0x83, 0x85, 0x83, 0x83, 0x86, 0x86, +0x83, 0x84, 0x84, 0x84, 0x84, 0x83, 0x81, 0x82, 0x83, 0x81, 0x81, 0x81, 0x83, 0x84, 0x85, 0x85, +0x88, 0x85, 0x81, 0x82, 0x83, 0x81, 0x7d, 0x83, 0x84, 0x81, 0x80, 0x7e, 0x80, 0x7d, 0x7b, 0x7d, +0x7b, 0x79, 0x7b, 0x79, 0x7a, 0x79, 0x79, 0x78, 0x7b, 0x80, 0x7d, 0x79, 0x7c, 0x7b, 0x7a, 0x7c, +0x7b, 0x7d, 0x7b, 0x7a, 0x79, 0x7a, 0x7d, 0x7b, 0x7b, 0x7b, 0x7e, 0x81, 0x7d, 0x7e, 0x7e, 0x7d, +0x7c, 0x7b, 0x7b, 0x7d, 0x7b, 0x7e, 0x81, 0x7d, 0x7e, 0x84, 0x83, 0x80, 0x7e, 0x82, 0x81, 0x7e, +0x7d, 0x7e, 0x81, 0x82, 0x7d, 0x7a, 0x82, 0x85, 0x80, 0x7e, 0x83, 0x82, 0x82, 0x7e, 0x80, 0x80, +0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x81, 0x83, 0x83, 0x85, 0x86, 0x83, 0x83, 0x84, 0x86, +0x85, 0x83, 0x82, 0x82, 0x84, 0x82, 0x81, 0x81, 0x84, 0x83, 0x7e, 0x80, 0x80, 0x81, 0x83, 0x7c, +0x7c, 0x82, 0x80, 0x80, 0x83, 0x81, 0x7e, 0x81, 0x83, 0x81, 0x7d, 0x7d, 0x84, 0x81, 0x7d, 0x82, +0x82, 0x82, 0x81, 0x83, 0x83, 0x80, 0x80, 0x7c, 0x7a, 0x7d, 0x7b, 0x76, 0x76, 0x7b, 0x7c, 0x76, +0x77, 0x79, 0x78, 0x7a, 0x79, 0x7a, 0x7b, 0x77, 0x75, 0x75, 0x79, 0x79, 0x75, 0x76, 0x79, 0x79, +0x79, 0x77, 0x77, 0x7a, 0x7c, 0x7a, 0x7b, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7b, +0x7e, 0x81, 0x7e, 0x7b, 0x7e, 0x82, 0x83, 0x84, 0x7e, 0x7e, 0x81, 0x82, 0x83, 0x82, 0x81, 0x80, +0x81, 0x82, 0x81, 0x83, 0x83, 0x81, 0x7d, 0x81, 0x84, 0x82, 0x83, 0x86, 0x84, 0x84, 0x84, 0x83, +0x86, 0x85, 0x84, 0x82, 0x85, 0x88, 0x86, 0x84, 0x87, 0x88, 0x87, 0x87, 0x88, 0x88, 0x88, 0x84, +0x83, 0x86, 0x86, 0x80, 0x80, 0x81, 0x7e, 0x7c, 0x7b, 0x7e, 0x7a, 0x79, 0x7c, 0x79, 0x7c, 0x7d, +0x7b, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x80, 0x80, 0x7e, 0x82, 0x7d, 0x7b, 0x80, 0x7d, 0x80, 0x80, +0x7c, 0x7d, 0x81, 0x7e, 0x7a, 0x7b, 0x7d, 0x7b, 0x79, 0x7a, 0x7e, 0x7a, 0x76, 0x74, 0x79, 0x7e, +0x7b, 0x78, 0x79, 0x7e, 0x7e, 0x7a, 0x7a, 0x7c, 0x7d, 0x7c, 0x7c, 0x7e, 0x7d, 0x80, 0x83, 0x84, +0x80, 0x83, 0x84, 0x84, 0x81, 0x80, 0x82, 0x83, 0x83, 0x82, 0x81, 0x83, 0x82, 0x80, 0x80, 0x82, +0x83, 0x80, 0x7d, 0x7d, 0x84, 0x88, 0x82, 0x80, 0x82, 0x80, 0x81, 0x82, 0x7e, 0x7e, 0x80, 0x80, +0x7e, 0x7d, 0x80, 0x7e, 0x77, 0x7a, 0x7e, 0x7d, 0x79, 0x79, 0x7b, 0x7b, 0x7b, 0x81, 0x7c, 0x79, +0x7b, 0x7c, 0x7a, 0x7c, 0x80, 0x7c, 0x79, 0x79, 0x7b, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, +0x7b, 0x79, 0x7b, 0x7b, 0x7c, 0x81, 0x84, 0x85, 0x80, 0x7e, 0x84, 0x87, 0x88, 0x83, 0x82, 0x83, +0x83, 0x83, 0x84, 0x84, 0x84, 0x86, 0x83, 0x85, 0x84, 0x84, 0x84, 0x85, 0x86, 0x87, 0x86, 0x84, +0x83, 0x83, 0x83, 0x82, 0x83, 0x7e, 0x80, 0x81, 0x7c, 0x7c, 0x7c, 0x7b, 0x7d, 0x7c, 0x7b, 0x7b, +0x7a, 0x7c, 0x79, 0x7b, 0x7e, 0x79, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x79, 0x77, 0x76, 0x77, 0x78, +0x76, 0x76, 0x7a, 0x7b, 0x7b, 0x80, 0x7d, 0x7b, 0x79, 0x7a, 0x7b, 0x7c, 0x79, 0x79, 0x7c, 0x7d, +0x7d, 0x7e, 0x81, 0x80, 0x7c, 0x7e, 0x83, 0x82, 0x81, 0x81, 0x81, 0x84, 0x80, 0x81, 0x85, 0x85, +0x84, 0x83, 0x85, 0x87, 0x86, 0x87, 0x89, 0x85, 0x8b, 0x8b, 0x85, 0x85, 0x85, 0x83, 0x80, 0x83, +0x87, 0x84, 0x81, 0x84, 0x86, 0x84, 0x83, 0x85, 0x86, 0x81, 0x82, 0x86, 0x83, 0x83, 0x85, 0x86, +0x86, 0x84, 0x83, 0x81, 0x7e, 0x7e, 0x80, 0x7b, 0x79, 0x7c, 0x79, 0x79, 0x7c, 0x7b, 0x7a, 0x79, +0x7c, 0x7c, 0x7a, 0x78, 0x79, 0x78, 0x79, 0x7c, 0x7b, 0x78, 0x76, 0x77, 0x79, 0x77, 0x79, 0x78, +0x74, 0x79, 0x79, 0x77, 0x77, 0x77, 0x76, 0x74, 0x77, 0x7a, 0x79, 0x76, 0x77, 0x7a, 0x79, 0x7a, +0x7c, 0x7e, 0x7d, 0x7d, 0x80, 0x7d, 0x7c, 0x80, 0x80, 0x7c, 0x7e, 0x84, 0x86, 0x83, 0x83, 0x84, +0x83, 0x85, 0x86, 0x84, 0x84, 0x84, 0x83, 0x83, 0x81, 0x84, 0x86, 0x83, 0x81, 0x83, 0x83, 0x80, +0x7e, 0x81, 0x81, 0x81, 0x82, 0x83, 0x84, 0x82, 0x80, 0x81, 0x82, 0x83, 0x8a, 0x87, 0x80, 0x81, +0x85, 0x88, 0x82, 0x82, 0x82, 0x7e, 0x81, 0x80, 0x82, 0x83, 0x82, 0x7e, 0x7e, 0x80, 0x81, 0x7d, +0x7b, 0x7c, 0x7d, 0x7e, 0x7b, 0x78, 0x7a, 0x7d, 0x7e, 0x80, 0x7d, 0x80, 0x7d, 0x7c, 0x7d, 0x7d, +0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x82, 0x84, 0x7b, 0x79, 0x7e, 0x7d, +0x7c, 0x7c, 0x7d, 0x82, 0x81, 0x80, 0x80, 0x81, 0x82, 0x7e, 0x80, 0x80, 0x81, 0x83, 0x82, 0x82, +0x82, 0x81, 0x7d, 0x7e, 0x7c, 0x7d, 0x80, 0x80, 0x80, 0x80, 0x7d, 0x7e, 0x7e, 0x7b, 0x7a, 0x81, +0x80, 0x7c, 0x7a, 0x7d, 0x80, 0x7e, 0x7d, 0x80, 0x82, 0x81, 0x7e, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, +0x7c, 0x80, 0x7d, 0x78, 0x7a, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x79, 0x78, 0x7d, 0x7c, 0x7b, 0x7c, +0x7b, 0x7c, 0x7c, 0x7c, 0x80, 0x7e, 0x7d, 0x80, 0x82, 0x81, 0x83, 0x83, 0x80, 0x82, 0x83, 0x82, +0x80, 0x83, 0x85, 0x83, 0x81, 0x86, 0x85, 0x83, 0x82, 0x7e, 0x7e, 0x80, 0x7e, 0x81, 0x7e, 0x7c, +0x80, 0x80, 0x83, 0x83, 0x82, 0x81, 0x81, 0x83, 0x84, 0x83, 0x81, 0x83, 0x83, 0x83, 0x85, 0x82, +0x7e, 0x7e, 0x80, 0x7e, 0x82, 0x81, 0x7c, 0x7e, 0x81, 0x7d, 0x80, 0x82, 0x82, 0x80, 0x81, 0x80, +0x7d, 0x7c, 0x7b, 0x7e, 0x7e, 0x7e, 0x7e, 0x7b, 0x80, 0x7e, 0x7a, 0x7b, 0x7c, 0x7d, 0x7d, 0x7b, +0x7c, 0x7c, 0x7a, 0x7e, 0x7d, 0x7c, 0x7d, 0x79, 0x7b, 0x80, 0x7e, 0x7c, 0x7d, 0x7c, 0x80, 0x7d, +0x7b, 0x7d, 0x80, 0x7c, 0x7e, 0x83, 0x80, 0x81, 0x82, 0x82, 0x84, 0x84, 0x82, 0x82, 0x82, 0x81, +0x84, 0x82, 0x7e, 0x80, 0x80, 0x82, 0x80, 0x7c, 0x7a, 0x7b, 0x7d, 0x80, 0x7d, 0x7d, 0x82, 0x82, +0x7d, 0x80, 0x81, 0x81, 0x81, 0x80, 0x84, 0x85, 0x83, 0x84, 0x84, 0x82, 0x87, 0x89, 0x83, 0x82, +0x86, 0x84, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x80, 0x80, 0x80, 0x81, 0x7e, 0x80, 0x84, +0x83, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7d, 0x81, 0x83, 0x80, 0x7d, 0x81, 0x83, 0x80, 0x80, 0x7d, +0x80, 0x81, 0x7e, 0x80, 0x81, 0x7d, 0x7b, 0x7e, 0x7d, 0x7c, 0x7a, 0x7a, 0x78, 0x7a, 0x7b, 0x78, +0x75, 0x72, 0x74, 0x75, 0x77, 0x7a, 0x7a, 0x78, 0x79, 0x7d, 0x7d, 0x7a, 0x7a, 0x7c, 0x7b, 0x7b, +0x7a, 0x7a, 0x78, 0x77, 0x79, 0x78, 0x7a, 0x7a, 0x77, 0x7b, 0x7b, 0x78, 0x7b, 0x7c, 0x7a, 0x7a, +0x7b, 0x7d, 0x7d, 0x7b, 0x7c, 0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x84, 0x81, 0x83, 0x85, 0x84, +0x84, 0x82, 0x83, 0x86, 0x87, 0x84, 0x83, 0x87, 0x88, 0x88, 0x89, 0x8a, 0x88, 0x88, 0x89, 0x86, +0x85, 0x88, 0x84, 0x83, 0x89, 0x89, 0x88, 0x86, 0x84, 0x86, 0x85, 0x83, 0x82, 0x83, 0x80, 0x80, +0x82, 0x82, 0x82, 0x83, 0x82, 0x7e, 0x82, 0x83, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7b, +0x7c, 0x7d, 0x7d, 0x7a, 0x7b, 0x81, 0x80, 0x7a, 0x7b, 0x7c, 0x7a, 0x7b, 0x7a, 0x78, 0x7b, 0x7b, +0x78, 0x7b, 0x7b, 0x79, 0x7d, 0x7c, 0x7b, 0x7c, 0x7d, 0x7a, 0x7b, 0x7b, 0x7a, 0x7c, 0x7c, 0x78, +0x79, 0x7b, 0x7c, 0x80, 0x80, 0x7c, 0x7e, 0x80, 0x7e, 0x7c, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, +0x80, 0x7e, 0x7e, 0x83, 0x83, 0x80, 0x82, 0x82, 0x81, 0x84, 0x85, 0x81, 0x83, 0x81, 0x81, 0x84, +0x84, 0x82, 0x84, 0x85, 0x84, 0x83, 0x83, 0x83, 0x83, 0x80, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x7d, +0x7d, 0x7e, 0x7c, 0x7a, 0x7c, 0x81, 0x7e, 0x7b, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, +0x7e, 0x7e, 0x7e, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x78, 0x78, 0x7a, 0x7a, 0x79, 0x79, 0x7c, 0x7e, +0x7c, 0x7d, 0x7e, 0x7b, 0x7a, 0x7d, 0x82, 0x7d, 0x7e, 0x82, 0x82, 0x80, 0x7e, 0x83, 0x83, 0x84, +0x87, 0x88, 0x85, 0x82, 0x83, 0x83, 0x83, 0x81, 0x81, 0x82, 0x82, 0x81, 0x83, 0x82, 0x84, 0x84, +0x82, 0x82, 0x84, 0x83, 0x7d, 0x80, 0x82, 0x81, 0x82, 0x80, 0x7d, 0x81, 0x81, 0x82, 0x82, 0x80, +0x80, 0x80, 0x80, 0x81, 0x81, 0x7e, 0x7d, 0x7e, 0x7e, 0x7c, 0x7c, 0x7d, 0x7b, 0x7b, 0x7b, 0x79, +0x7b, 0x7b, 0x79, 0x7a, 0x79, 0x7a, 0x7e, 0x7c, 0x7b, 0x7d, 0x7d, 0x7a, 0x7b, 0x7d, 0x7b, 0x7b, +0x79, 0x7a, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x82, 0x85, 0x84, 0x83, 0x82, 0x84, 0x85, 0x85, +0x84, 0x85, 0x86, 0x85, 0x84, 0x88, 0x86, 0x86, 0x87, 0x87, 0x88, 0x8b, 0x8b, 0x86, 0x85, 0x87, +0x84, 0x84, 0x86, 0x81, 0x82, 0x81, 0x81, 0x81, 0x7e, 0x80, 0x82, 0x82, 0x7e, 0x83, 0x83, 0x81, +0x82, 0x81, 0x80, 0x81, 0x83, 0x80, 0x7c, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7a, 0x79, 0x78, 0x7b, +0x7b, 0x79, 0x78, 0x7a, 0x76, 0x78, 0x7a, 0x76, 0x76, 0x76, 0x76, 0x75, 0x77, 0x79, 0x78, 0x77, +0x7a, 0x7a, 0x79, 0x7a, 0x7c, 0x7b, 0x79, 0x7d, 0x80, 0x7c, 0x79, 0x7e, 0x80, 0x7b, 0x7c, 0x7c, +0x7d, 0x7d, 0x7b, 0x7d, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, 0x7e, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, 0x80, +0x80, 0x81, 0x83, 0x82, 0x81, 0x83, 0x84, 0x85, 0x84, 0x82, 0x82, 0x85, 0x86, 0x85, 0x87, 0x84, +0x83, 0x85, 0x85, 0x7e, 0x7e, 0x83, 0x83, 0x83, 0x82, 0x83, 0x86, 0x85, 0x84, 0x85, 0x85, 0x85, +0x82, 0x82, 0x84, 0x83, 0x84, 0x82, 0x82, 0x84, 0x84, 0x83, 0x82, 0x80, 0x81, 0x85, 0x82, 0x80, +0x81, 0x82, 0x82, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x7b, 0x7d, 0x82, +0x7e, 0x7b, 0x7e, 0x81, 0x80, 0x7d, 0x7b, 0x7d, 0x7c, 0x7e, 0x7e, 0x7b, 0x7b, 0x7b, 0x7d, 0x7b, +0x7d, 0x7d, 0x7b, 0x79, 0x79, 0x7c, 0x7c, 0x7b, 0x7a, 0x7b, 0x7b, 0x7d, 0x7c, 0x7b, 0x7e, 0x7d, +0x80, 0x81, 0x80, 0x82, 0x81, 0x7b, 0x7e, 0x81, 0x7e, 0x80, 0x7d, 0x7d, 0x7d, 0x7b, 0x7e, 0x7e, +0x7d, 0x7b, 0x7c, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7c, +0x7e, 0x80, 0x7d, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x81, 0x7e, 0x7d, 0x7e, 0x7e, 0x81, 0x80, 0x7d, +0x81, 0x80, 0x7e, 0x81, 0x82, 0x80, 0x82, 0x84, 0x82, 0x84, 0x84, 0x82, 0x83, 0x82, 0x80, 0x82, +0x83, 0x81, 0x7e, 0x7d, 0x7e, 0x82, 0x82, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x82, 0x81, 0x7d, +0x7c, 0x7d, 0x80, 0x82, 0x81, 0x7d, 0x7e, 0x82, 0x82, 0x82, 0x81, 0x80, 0x81, 0x82, 0x81, 0x7e, +0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x81, 0x7c, 0x7b, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, +0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7b, 0x7c, 0x80, 0x7e, 0x7e, 0x81, 0x82, 0x81, 0x83, 0x84, 0x82, +0x80, 0x82, 0x83, 0x83, 0x83, 0x81, 0x80, 0x83, 0x82, 0x82, 0x81, 0x7d, 0x80, 0x81, 0x7e, 0x7e, +0x7d, 0x7e, 0x7e, 0x81, 0x82, 0x82, 0x85, 0x81, 0x7e, 0x82, 0x83, 0x82, 0x80, 0x82, 0x83, 0x81, +0x82, 0x81, 0x81, 0x83, 0x80, 0x81, 0x83, 0x80, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x80, 0x82, +0x7e, 0x80, 0x82, 0x81, 0x7e, 0x81, 0x83, 0x84, 0x82, 0x82, 0x84, 0x83, 0x7e, 0x7d, 0x81, 0x81, +0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7c, 0x7c, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, +0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x82, 0x83, 0x80, 0x7e, 0x81, 0x83, 0x81, 0x7d, 0x80, +0x7d, 0x7c, 0x7c, 0x7b, 0x7d, 0x7c, 0x79, 0x78, 0x78, 0x78, 0x79, 0x78, 0x7a, 0x7a, 0x79, 0x7a, +0x7a, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x79, 0x7b, 0x7e, 0x7b, 0x79, +0x7b, 0x7c, 0x7d, 0x7b, 0x78, 0x7b, 0x7c, 0x78, 0x78, 0x7a, 0x78, 0x78, 0x7a, 0x7c, 0x7b, 0x7b, +0x7c, 0x7d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x82, 0x84, 0x83, 0x85, 0x88, 0x86, 0x86, 0x88, 0x89, +0x84, 0x84, 0x88, 0x87, 0x85, 0x85, 0x85, 0x84, 0x84, 0x85, 0x85, 0x85, 0x84, 0x83, 0x85, 0x87, +0x87, 0x84, 0x84, 0x87, 0x88, 0x88, 0x86, 0x87, 0x88, 0x87, 0x85, 0x87, 0x87, 0x85, 0x83, 0x82, +0x83, 0x86, 0x84, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x83, 0x81, 0x7d, 0x80, 0x80, 0x7c, 0x7d, +0x7e, 0x7a, 0x79, 0x7b, 0x7d, 0x7c, 0x7a, 0x78, 0x78, 0x79, 0x7b, 0x78, 0x75, 0x75, 0x77, 0x78, +0x76, 0x78, 0x79, 0x76, 0x76, 0x77, 0x7a, 0x7b, 0x78, 0x78, 0x7b, 0x7d, 0x7e, 0x80, 0x7d, 0x7b, +0x7c, 0x7b, 0x7c, 0x7e, 0x7a, 0x7b, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x7d, 0x80, 0x7e, +0x80, 0x81, 0x7d, 0x80, 0x82, 0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x81, 0x81, 0x81, 0x82, 0x84, +0x85, 0x84, 0x86, 0x88, 0x86, 0x82, 0x83, 0x85, 0x84, 0x82, 0x7d, 0x7d, 0x82, 0x81, 0x7c, 0x7c, +0x80, 0x82, 0x80, 0x80, 0x80, 0x82, 0x80, 0x7d, 0x81, 0x82, 0x80, 0x80, 0x7d, 0x7c, 0x80, 0x80, +0x7c, 0x7d, 0x7c, 0x7c, 0x7d, 0x7c, 0x7b, 0x7a, 0x7a, 0x7e, 0x7c, 0x79, 0x7b, 0x7c, 0x7d, 0x7a, +0x7d, 0x80, 0x7d, 0x7c, 0x7c, 0x7e, 0x7d, 0x7b, 0x7c, 0x7d, 0x81, 0x7e, 0x7b, 0x7d, 0x7e, 0x80, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x80, 0x80, 0x80, 0x81, 0x81, +0x81, 0x82, 0x83, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x80, 0x81, 0x81, 0x82, 0x80, 0x81, 0x82, +0x82, 0x82, 0x81, 0x82, 0x84, 0x81, 0x80, 0x81, 0x81, 0x7e, 0x7d, 0x81, 0x80, 0x7e, 0x81, 0x7e, +0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7e, 0x7e, 0x7d, 0x80, 0x7d, 0x7c, 0x7c, +0x7d, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x7e, 0x80, 0x83, 0x82, 0x82, 0x84, 0x82, +0x81, 0x82, 0x83, 0x84, 0x82, 0x82, 0x83, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x84, 0x84, +0x82, 0x81, 0x81, 0x85, 0x83, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x81, 0x81, 0x82, 0x80, 0x7c, 0x7d, +0x7e, 0x7b, 0x7b, 0x7c, 0x7a, 0x7b, 0x7a, 0x7c, 0x7b, 0x78, 0x7a, 0x7b, 0x79, 0x7a, 0x79, 0x78, +0x79, 0x78, 0x79, 0x78, 0x78, 0x77, 0x76, 0x74, 0x77, 0x79, 0x79, 0x79, 0x78, 0x7a, 0x78, 0x7a, +0x7b, 0x7b, 0x7b, 0x7a, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x80, 0x7e, 0x81, 0x82, 0x7d, 0x80, +0x82, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x82, 0x82, 0x7e, 0x81, 0x83, 0x82, 0x82, +0x82, 0x83, 0x85, 0x81, 0x82, 0x83, 0x85, 0x85, 0x82, 0x84, 0x85, 0x84, 0x86, 0x83, 0x83, 0x87, +0x83, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x84, 0x84, 0x85, 0x86, 0x81, 0x81, 0x85, 0x83, 0x7e, +0x80, 0x82, 0x81, 0x81, 0x82, 0x83, 0x82, 0x83, 0x85, 0x83, 0x82, 0x84, 0x86, 0x82, 0x81, 0x82, +0x83, 0x83, 0x83, 0x81, 0x80, 0x80, 0x82, 0x81, 0x7c, 0x7e, 0x81, 0x7d, 0x7c, 0x7e, 0x7e, 0x7a, +0x79, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7a, 0x7d, 0x7d, 0x78, 0x7a, 0x7c, 0x7a, +0x79, 0x78, 0x7b, 0x7e, 0x7d, 0x7d, 0x7e, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7b, 0x79, 0x7a, 0x7b, +0x7a, 0x79, 0x7b, 0x7c, 0x7d, 0x7c, 0x7d, 0x80, 0x7c, 0x7a, 0x7a, 0x7d, 0x7d, 0x7b, 0x7c, 0x7c, +0x7c, 0x7d, 0x80, 0x7e, 0x7e, 0x7e, 0x7c, 0x7d, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x7d, 0x80, +0x82, 0x7e, 0x7c, 0x81, 0x83, 0x80, 0x7d, 0x81, 0x81, 0x82, 0x84, 0x81, 0x7e, 0x81, 0x80, 0x80, +0x80, 0x81, 0x83, 0x81, 0x83, 0x83, 0x82, 0x83, 0x81, 0x80, 0x80, 0x82, 0x84, 0x82, 0x81, 0x82, +0x82, 0x85, 0x83, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x81, 0x7e, 0x7d, 0x80, 0x83, 0x81, +0x7c, 0x7c, 0x80, 0x80, 0x7d, 0x7b, 0x7e, 0x80, 0x7e, 0x7c, 0x7c, 0x7d, 0x7c, 0x7b, 0x7b, 0x7d, +0x7e, 0x7e, 0x7a, 0x7b, 0x7e, 0x7d, 0x7a, 0x7b, 0x7d, 0x7c, 0x7a, 0x78, 0x79, 0x7b, 0x7b, 0x7c, +0x7c, 0x7d, 0x7c, 0x7d, 0x7b, 0x7c, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x83, 0x84, 0x84, 0x83, 0x82, +0x84, 0x85, 0x82, 0x81, 0x83, 0x85, 0x84, 0x81, 0x83, 0x84, 0x81, 0x7e, 0x82, 0x85, 0x83, 0x82, +0x83, 0x83, 0x86, 0x86, 0x83, 0x83, 0x84, 0x82, 0x7e, 0x82, 0x82, 0x81, 0x7e, 0x81, 0x83, 0x83, +0x81, 0x7e, 0x7d, 0x80, 0x7d, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x7d, 0x7e, 0x81, 0x80, +0x7d, 0x80, 0x7d, 0x7d, 0x7d, 0x7b, 0x7d, 0x80, 0x7c, 0x7b, 0x7c, 0x7e, 0x7c, 0x7a, 0x7c, 0x80, +0x7e, 0x79, 0x7b, 0x80, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x7d, 0x7b, 0x7d, +0x81, 0x80, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7c, 0x7d, 0x80, 0x7b, 0x79, 0x79, +0x7a, 0x7a, 0x79, 0x79, 0x7b, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7c, 0x7b, 0x7c, 0x7e, 0x7e, 0x7b, +0x7c, 0x7e, 0x7e, 0x7d, 0x7e, 0x82, 0x82, 0x7e, 0x7d, 0x7d, 0x80, 0x7d, 0x7a, 0x7c, 0x7c, 0x79, +0x7b, 0x7c, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7c, 0x7c, 0x7e, 0x7e, 0x7e, 0x81, +0x7e, 0x81, 0x81, 0x82, 0x81, 0x80, 0x84, 0x83, 0x83, 0x84, 0x85, 0x86, 0x85, 0x86, 0x85, 0x85, +0x87, 0x88, 0x88, 0x8a, 0x8b, 0x88, 0x86, 0x87, 0x89, 0x85, 0x84, 0x86, 0x84, 0x82, 0x83, 0x84, +0x84, 0x83, 0x84, 0x85, 0x85, 0x85, 0x84, 0x83, 0x85, 0x87, 0x84, 0x84, 0x85, 0x85, 0x85, 0x83, +0x80, 0x81, 0x81, 0x7e, 0x80, 0x80, 0x80, 0x7d, 0x7c, 0x7e, 0x7e, 0x7e, 0x7c, 0x7b, 0x7b, 0x7a, +0x7b, 0x7b, 0x79, 0x79, 0x7a, 0x79, 0x79, 0x7b, 0x77, 0x75, 0x77, 0x74, 0x73, 0x76, 0x76, 0x78, +0x76, 0x75, 0x79, 0x79, 0x77, 0x77, 0x7a, 0x7a, 0x79, 0x7b, 0x7d, 0x7c, 0x7a, 0x7c, 0x7c, 0x7b, +0x7e, 0x7d, 0x7a, 0x7a, 0x7d, 0x7e, 0x7b, 0x7c, 0x7e, 0x7a, 0x7a, 0x7e, 0x81, 0x7d, 0x7d, 0x81, +0x82, 0x83, 0x83, 0x83, 0x83, 0x85, 0x84, 0x83, 0x83, 0x84, 0x81, 0x82, 0x86, 0x87, 0x82, 0x83, +0x83, 0x83, 0x84, 0x83, 0x83, 0x83, 0x81, 0x82, 0x83, 0x82, 0x81, 0x82, 0x83, 0x82, 0x83, 0x86, +0x83, 0x81, 0x82, 0x81, 0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x7e, 0x7c, 0x7e, 0x80, 0x80, 0x7d, +0x7d, 0x82, 0x82, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x79, 0x7a, 0x7c, +0x7b, 0x7a, 0x7a, 0x7d, 0x80, 0x7b, 0x7a, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, +0x80, 0x7e, 0x7e, 0x81, 0x7e, 0x7b, 0x7d, 0x7c, 0x7c, 0x7e, 0x82, 0x82, 0x82, 0x83, 0x82, 0x83, +0x83, 0x83, 0x81, 0x7d, 0x80, 0x82, 0x81, 0x80, 0x82, 0x84, 0x82, 0x80, 0x82, 0x84, 0x84, 0x81, +0x82, 0x83, 0x83, 0x80, 0x80, 0x82, 0x83, 0x80, 0x81, 0x82, 0x82, 0x81, 0x81, 0x83, 0x85, 0x84, +0x82, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7c, 0x80, +0x80, 0x7c, 0x7d, 0x80, 0x7d, 0x7d, 0x82, 0x83, 0x7d, 0x7d, 0x81, 0x83, 0x7e, 0x7e, 0x81, 0x7e, +0x7c, 0x7c, 0x7e, 0x7d, 0x7d, 0x7e, 0x81, 0x81, 0x81, 0x80, 0x81, 0x80, 0x82, 0x83, 0x80, 0x7e, +0x80, 0x80, 0x7c, 0x7c, 0x82, 0x81, 0x7e, 0x81, 0x81, 0x7e, 0x7e, 0x7d, 0x7b, 0x7b, 0x7c, 0x7b, +0x79, 0x7a, 0x7a, 0x7b, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7d, 0x79, 0x79, 0x7d, 0x7d, 0x7a, 0x78, +0x79, 0x7a, 0x78, 0x77, 0x79, 0x79, 0x7b, 0x79, 0x7a, 0x7c, 0x7d, 0x7b, 0x7b, 0x7d, 0x7d, 0x7d, +0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x7e, 0x7e, 0x80, +0x80, 0x80, 0x81, 0x82, 0x81, 0x80, 0x82, 0x82, 0x84, 0x85, 0x83, 0x84, 0x86, 0x85, 0x85, 0x86, +0x86, 0x84, 0x85, 0x85, 0x85, 0x85, 0x82, 0x84, 0x86, 0x82, 0x84, 0x84, 0x81, 0x82, 0x84, 0x81, +0x83, 0x85, 0x83, 0x82, 0x83, 0x84, 0x83, 0x81, 0x7e, 0x7e, 0x81, 0x7c, 0x7d, 0x82, 0x7d, 0x7e, +0x83, 0x83, 0x80, 0x81, 0x82, 0x82, 0x81, 0x84, 0x83, 0x83, 0x84, 0x83, 0x82, 0x81, 0x84, 0x82, +0x7e, 0x80, 0x81, 0x81, 0x7e, 0x80, 0x80, 0x7d, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x7c, 0x7c, 0x7c, +0x7c, 0x7d, 0x7c, 0x78, 0x79, 0x7a, 0x7a, 0x7a, 0x78, 0x79, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x7a, +0x78, 0x7a, 0x7b, 0x7a, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, +0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7b, 0x7d, 0x7b, 0x7a, 0x7c, 0x7a, 0x7b, 0x80, 0x7e, 0x7d, 0x7e, +0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x7e, +0x80, 0x81, 0x82, 0x81, 0x81, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x82, 0x81, 0x84, 0x85, 0x85, +0x85, 0x83, 0x83, 0x86, 0x85, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x83, 0x84, 0x83, 0x83, 0x83, +0x85, 0x84, 0x83, 0x82, 0x81, 0x82, 0x80, 0x80, 0x82, 0x7e, 0x7d, 0x80, 0x7c, 0x7c, 0x7c, 0x7b, +0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x80, 0x80, 0x7d, 0x7c, 0x7e, 0x7b, 0x7a, 0x7d, 0x7c, 0x7b, 0x7a, +0x7b, 0x7c, 0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x78, 0x7a, 0x7d, 0x7d, 0x7b, 0x7b, 0x7c, 0x7b, 0x7c, +0x7d, 0x7d, 0x80, 0x7c, 0x7d, 0x81, 0x82, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x82, 0x80, 0x81, +0x83, 0x83, 0x83, 0x85, 0x84, 0x81, 0x84, 0x85, 0x84, 0x83, 0x85, 0x86, 0x85, 0x84, 0x86, 0x86, +0x84, 0x83, 0x84, 0x86, 0x83, 0x82, 0x84, 0x84, 0x80, 0x81, 0x82, 0x82, 0x80, 0x7e, 0x82, 0x83, +0x80, 0x80, 0x81, 0x82, 0x80, 0x80, 0x81, 0x7e, 0x80, 0x7e, 0x7c, 0x7e, 0x81, 0x80, 0x7e, 0x7e, +0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7b, 0x7a, 0x7b, 0x7d, 0x7b, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7a, +0x79, 0x79, 0x79, 0x7a, 0x7a, 0x7b, 0x7a, 0x79, 0x79, 0x7a, 0x78, 0x78, 0x7a, 0x7a, 0x7a, 0x7c, +0x7e, 0x7d, 0x7e, 0x81, 0x80, 0x7e, 0x80, 0x7d, 0x7c, 0x7d, 0x7c, 0x7b, 0x7c, 0x80, 0x80, 0x7d, +0x7c, 0x7e, 0x80, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x81, +0x80, 0x7e, 0x7c, 0x80, 0x82, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x7e, 0x7e, 0x80, 0x80, 0x7d, +0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x83, 0x84, 0x83, 0x83, 0x83, +0x83, 0x83, 0x83, 0x81, 0x81, 0x82, 0x82, 0x82, 0x83, 0x83, 0x82, 0x83, 0x83, 0x84, 0x84, 0x83, +0x83, 0x85, 0x85, 0x83, 0x83, 0x83, 0x82, 0x82, 0x83, 0x84, 0x84, 0x84, 0x82, 0x83, 0x85, 0x85, +0x83, 0x83, 0x83, 0x84, 0x83, 0x82, 0x84, 0x83, 0x82, 0x82, 0x83, 0x83, 0x80, 0x81, 0x81, 0x7d, +0x7e, 0x80, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7a, 0x7b, 0x7d, 0x7b, 0x7a, 0x7a, 0x7a, 0x7b, +0x7b, 0x7a, 0x79, 0x7a, 0x7a, 0x77, 0x77, 0x79, 0x7a, 0x78, 0x78, 0x79, 0x78, 0x78, 0x76, 0x77, +0x77, 0x78, 0x79, 0x79, 0x7a, 0x7c, 0x7b, 0x7d, 0x80, 0x7e, 0x7c, 0x7e, 0x7c, 0x79, 0x7b, 0x7e, +0x7d, 0x7b, 0x7d, 0x7e, 0x7d, 0x7a, 0x7a, 0x7e, 0x7e, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x81, +0x81, 0x83, 0x83, 0x82, 0x85, 0x85, 0x84, 0x84, 0x84, 0x85, 0x86, 0x84, 0x84, 0x84, 0x82, 0x83, +0x82, 0x80, 0x82, 0x84, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x81, 0x81, 0x81, 0x81, +0x80, 0x82, 0x82, 0x81, 0x81, 0x82, 0x80, 0x7d, 0x80, 0x81, 0x80, 0x80, 0x82, 0x81, 0x81, 0x81, +0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7b, 0x7d, +0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x80, 0x80, +0x7d, 0x7c, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7b, 0x7b, 0x7b, 0x7d, 0x7d, +0x7e, 0x7e, 0x7e, 0x81, 0x81, 0x80, 0x82, 0x82, 0x81, 0x80, 0x81, 0x82, 0x83, 0x82, 0x82, 0x84, +0x84, 0x83, 0x85, 0x83, 0x82, 0x82, 0x81, 0x83, 0x82, 0x84, 0x82, 0x81, 0x83, 0x82, 0x80, 0x81, +0x82, 0x80, 0x7e, 0x7e, 0x80, 0x7d, 0x7b, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x81, +0x81, 0x7e, 0x7e, 0x81, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x81, 0x81, 0x7e, 0x80, 0x81, 0x7e, 0x7e, +0x81, 0x81, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x7e, 0x7d, 0x7c, 0x7d, 0x7c, +0x7b, 0x7c, 0x7c, 0x7b, 0x7a, 0x7b, 0x7b, 0x7a, 0x7b, 0x7c, 0x7c, 0x7a, 0x7b, 0x7d, 0x7e, 0x7d, +0x7c, 0x7e, 0x7e, 0x7c, 0x7c, 0x7a, 0x7a, 0x7c, 0x7b, 0x7b, 0x7e, 0x7e, 0x7b, 0x7a, 0x7a, 0x7b, +0x7b, 0x7a, 0x78, 0x7a, 0x7c, 0x7b, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7c, +0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x84, +0x85, 0x84, 0x84, 0x83, 0x84, 0x87, 0x85, 0x84, 0x86, 0x87, 0x86, 0x85, 0x85, 0x86, 0x84, 0x82, +0x83, 0x83, 0x83, 0x83, 0x85, 0x85, 0x85, 0x85, 0x83, 0x82, 0x82, 0x83, 0x80, 0x80, 0x82, 0x80, +0x7d, 0x81, 0x81, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x82, 0x80, +0x80, 0x80, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x81, 0x81, 0x7d, 0x80, 0x82, 0x7d, 0x7c, 0x7e, 0x7d, +0x7b, 0x7d, 0x7e, 0x7c, 0x7b, 0x7d, 0x7d, 0x7d, 0x7c, 0x7b, 0x7a, 0x7b, 0x7c, 0x7b, 0x7a, 0x7d, +0x7e, 0x7b, 0x79, 0x7c, 0x7e, 0x7c, 0x7a, 0x7c, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, +0x7b, 0x7d, 0x7d, 0x7c, 0x7b, 0x7c, 0x7e, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7b, 0x7b, 0x79, 0x7b, +0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7b, 0x7b, 0x7e, 0x7e, 0x80, 0x80, +0x80, 0x82, 0x82, 0x81, 0x80, 0x81, 0x81, 0x80, 0x82, 0x80, 0x7e, 0x81, 0x81, 0x80, 0x80, 0x81, +0x83, 0x83, 0x82, 0x82, 0x83, 0x83, 0x82, 0x83, 0x84, 0x83, 0x82, 0x83, 0x84, 0x86, 0x86, 0x84, +0x83, 0x83, 0x83, 0x83, 0x82, 0x81, 0x80, 0x82, 0x81, 0x80, 0x82, 0x82, 0x80, 0x80, 0x81, 0x82, +0x82, 0x7e, 0x7e, 0x81, 0x80, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c, +0x7e, 0x80, 0x80, 0x7e, 0x7c, 0x7d, 0x7e, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x7e, +0x7c, 0x7b, 0x7a, 0x7b, 0x7a, 0x79, 0x78, 0x78, 0x7a, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, 0x7d, 0x7b, +0x7b, 0x7e, 0x7e, 0x7c, 0x7e, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x81, 0x83, 0x82, 0x81, 0x83, 0x84, +0x83, 0x80, 0x80, 0x82, 0x82, 0x80, 0x81, 0x84, 0x83, 0x82, 0x83, 0x83, 0x82, 0x84, 0x84, 0x83, +0x83, 0x84, 0x84, 0x81, 0x80, 0x81, 0x83, 0x83, 0x81, 0x81, 0x82, 0x82, 0x83, 0x82, 0x80, 0x82, +0x83, 0x81, 0x7e, 0x81, 0x82, 0x81, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x7c, 0x7b, +0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x79, +0x79, 0x79, 0x79, 0x7a, 0x7b, 0x7b, 0x7a, 0x7a, 0x7a, 0x7c, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x81, 0x80, 0x7e, 0x80, 0x7e, 0x7d, +0x7c, 0x7c, 0x7e, 0x7e, 0x7d, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7e, +0x80, 0x80, 0x7e, 0x80, 0x81, 0x7d, 0x7e, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, +0x81, 0x81, 0x83, 0x81, 0x81, 0x83, 0x83, 0x83, 0x84, 0x84, 0x85, 0x83, 0x83, 0x83, 0x82, 0x82, +0x84, 0x84, 0x82, 0x83, 0x84, 0x83, 0x82, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x83, 0x81, +0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x83, 0x82, 0x7e, 0x81, 0x80, 0x80, 0x82, 0x83, 0x83, 0x82, +0x82, 0x83, 0x84, 0x82, 0x83, 0x82, 0x81, 0x81, 0x81, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, +0x7d, 0x7b, 0x7b, 0x7c, 0x7d, 0x7b, 0x7a, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7a, 0x7a, 0x7b, 0x7a, +0x7a, 0x79, 0x78, 0x7a, 0x79, 0x78, 0x7a, 0x7a, 0x78, 0x78, 0x79, 0x7a, 0x7b, 0x7a, 0x7a, 0x7a, +0x7b, 0x7c, 0x7b, 0x7a, 0x7d, 0x7d, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7c, 0x7c, 0x80, 0x80, 0x7e, +0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x82, 0x81, 0x82, 0x83, 0x82, 0x81, +0x82, 0x83, 0x82, 0x82, 0x83, 0x84, 0x84, 0x82, 0x84, 0x85, 0x84, 0x84, 0x86, 0x84, 0x84, 0x86, +0x84, 0x83, 0x85, 0x83, 0x82, 0x83, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x82, +0x81, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x7d, +0x7d, 0x7d, 0x7b, 0x7c, 0x7d, 0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7e, 0x80, +0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x82, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, +0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x80, 0x80, +0x7d, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x81, 0x82, 0x80, 0x80, 0x82, 0x83, 0x82, 0x81, 0x80, 0x81, +0x81, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7c, 0x7d, 0x80, 0x80, 0x7d, 0x7e, +0x80, 0x7e, 0x7e, 0x80, 0x82, 0x82, 0x81, 0x82, 0x83, 0x81, 0x81, 0x82, 0x83, 0x82, 0x82, 0x81, +0x81, 0x81, 0x7e, 0x7e, 0x81, 0x82, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x81, 0x80, 0x7d, +0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7c, 0x7b, 0x7a, 0x7b, +0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7c, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, +0x7d, 0x7e, 0x80, 0x80, 0x7d, 0x7e, 0x80, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7b, 0x7b, 0x7d, +0x7c, 0x7a, 0x7b, 0x7e, 0x7e, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x81, +0x80, 0x81, 0x82, 0x81, 0x82, 0x84, 0x84, 0x84, 0x82, 0x81, 0x82, 0x82, 0x82, 0x83, 0x82, 0x83, +0x85, 0x85, 0x84, 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x81, 0x83, 0x85, 0x85, 0x84, +0x84, 0x85, 0x85, 0x84, 0x82, 0x82, 0x84, 0x83, 0x81, 0x80, 0x83, 0x81, 0x80, 0x81, 0x81, 0x82, +0x82, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x7c, 0x7e, 0x80, 0x7d, 0x7e, 0x81, 0x80, 0x7c, 0x7c, +0x7e, 0x7d, 0x7e, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, +0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x79, 0x79, 0x7c, 0x7c, 0x7b, 0x7c, 0x7e, 0x7d, 0x7c, 0x7d, +0x7e, 0x7d, 0x7c, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x7d, 0x7c, 0x80, 0x7e, 0x7c, 0x7e, 0x80, 0x7c, +0x7b, 0x7d, 0x7d, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x79, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, +0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x82, 0x81, 0x80, 0x81, 0x80, 0x80, 0x7e, +0x7e, 0x80, 0x81, 0x81, 0x7d, 0x7e, 0x81, 0x81, 0x81, 0x80, 0x81, 0x82, 0x82, 0x80, 0x80, 0x83, +0x83, 0x82, 0x82, 0x84, 0x86, 0x85, 0x83, 0x84, 0x86, 0x85, 0x84, 0x84, 0x84, 0x85, 0x83, 0x82, +0x83, 0x84, 0x83, 0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x80, 0x81, 0x82, 0x80, 0x7e, 0x80, 0x7e, +0x7d, 0x7d, 0x7e, 0x7c, 0x7d, 0x7d, 0x7c, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, +0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, +0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, +0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x82, 0x81, 0x81, 0x82, +0x82, 0x82, 0x83, 0x82, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x82, 0x81, 0x80, 0x82, 0x81, +0x81, 0x83, 0x83, 0x81, 0x82, 0x83, 0x82, 0x82, 0x82, 0x84, 0x83, 0x82, 0x84, 0x85, 0x83, 0x81, +0x80, 0x82, 0x80, 0x80, 0x83, 0x81, 0x81, 0x80, 0x7d, 0x80, 0x81, 0x7e, 0x7c, 0x7d, 0x7d, 0x7c, +0x7b, 0x7b, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7a, 0x7a, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, +0x7c, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7d, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d, +0x7c, 0x7a, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x81, 0x80, 0x7e, 0x81, +0x83, 0x81, 0x81, 0x83, 0x83, 0x83, 0x81, 0x80, 0x82, 0x82, 0x81, 0x80, 0x81, 0x82, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x81, 0x80, 0x80, 0x80, +0x80, 0x82, 0x82, 0x80, 0x81, 0x84, 0x83, 0x81, 0x82, 0x83, 0x83, 0x80, 0x81, 0x83, 0x82, 0x81, +0x81, 0x82, 0x83, 0x83, 0x82, 0x82, 0x82, 0x83, 0x82, 0x81, 0x82, 0x80, 0x80, 0x82, 0x82, 0x83, +0x83, 0x81, 0x80, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x80, 0x81, +0x81, 0x81, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7a, 0x79, 0x7a, +0x7b, 0x7a, 0x7a, 0x7b, 0x7c, 0x7a, 0x79, 0x7a, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7a, 0x79, 0x79, +0x7a, 0x7b, 0x7b, 0x79, 0x7b, 0x7d, 0x7b, 0x7a, 0x7c, 0x7c, 0x7b, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, +0x7b, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x81, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x80, +0x7e, 0x81, 0x82, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x82, 0x83, +0x84, 0x83, 0x82, 0x83, 0x82, 0x82, 0x83, 0x83, 0x82, 0x81, 0x82, 0x82, 0x82, 0x83, 0x83, 0x81, +0x82, 0x83, 0x84, 0x84, 0x82, 0x82, 0x82, 0x81, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82, +0x82, 0x81, 0x81, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7c, 0x7c, +0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x81, +0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x81, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x7d, 0x7e, 0x7e, 0x7c, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x80, 0x80, +0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, +0x80, 0x7d, 0x7c, 0x7d, 0x7c, 0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x80, 0x7e, 0x7e, 0x7e, +0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, +0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, +0x80, 0x80, 0x81, 0x80, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7c, 0x7c, +0x7d, 0x7d, 0x7c, 0x7d, 0x80, 0x7e, 0x7c, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x7a, +0x7a, 0x7a, 0x7a, 0x7b, 0x7a, 0x79, 0x7c, 0x7b, 0x7a, 0x7b, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, +0x80, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, +0x81, 0x81, 0x82, 0x81, 0x80, 0x81, 0x83, 0x84, 0x83, 0x81, 0x82, 0x82, 0x82, 0x84, 0x84, 0x83, +0x83, 0x84, 0x83, 0x84, 0x85, 0x85, 0x84, 0x84, 0x85, 0x84, 0x84, 0x85, 0x84, 0x83, 0x84, 0x85, +0x85, 0x84, 0x84, 0x85, 0x85, 0x82, 0x80, 0x82, 0x82, 0x80, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, +0x7e, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7c, 0x7e, 0x7e, 0x7d, +0x7c, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7a, 0x79, 0x79, 0x7c, 0x7c, 0x7c, 0x7b, +0x7b, 0x7c, 0x7b, 0x7a, 0x7b, 0x7c, 0x7b, 0x7a, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, +0x7c, 0x7c, 0x7e, 0x7e, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7b, 0x7c, +0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x80, 0x7e, 0x7e, 0x80, 0x80, +0x81, 0x81, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x80, +0x80, 0x80, 0x7e, 0x81, 0x83, 0x82, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x82, +0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x83, 0x84, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x83, +0x84, 0x83, 0x83, 0x83, 0x81, 0x82, 0x83, 0x81, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x80, +0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, +0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, +0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, +0x80, 0x81, 0x7d, 0x7d, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x82, 0x81, 0x81, +0x80, 0x80, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x80, 0x80, 0x81, 0x81, 0x81, +0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x81, 0x80, 0x82, 0x81, 0x80, 0x81, 0x80, +0x80, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, +0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, +0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7b, 0x7a, +0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e, +0x81, 0x82, 0x81, 0x81, 0x83, 0x83, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, +0x80, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x82, 0x81, 0x80, 0x7e, 0x80, +0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x82, 0x81, 0x81, 0x82, 0x82, 0x83, 0x82, 0x82, 0x83, 0x83, +0x82, 0x82, 0x83, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x82, +0x83, 0x83, 0x83, 0x83, 0x83, 0x84, 0x82, 0x81, 0x82, 0x82, 0x81, 0x7e, 0x80, 0x81, 0x80, 0x7d, +0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, +0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7b, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7a, 0x7a, 0x7b, +0x7a, 0x79, 0x7b, 0x7b, 0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7d, 0x7d, +0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x82, 0x83, 0x81, 0x82, 0x83, +0x83, 0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x84, 0x84, 0x82, 0x81, 0x81, 0x82, 0x83, 0x83, 0x82, +0x83, 0x84, 0x84, 0x83, 0x83, 0x84, 0x82, 0x81, 0x83, 0x84, 0x84, 0x82, 0x81, 0x83, 0x83, 0x82, +0x82, 0x82, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x81, 0x82, 0x82, 0x83, 0x82, 0x7e, 0x7e, +0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, +0x7b, 0x7c, 0x7d, 0x80, 0x7e, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, +0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7d, 0x7c, 0x7d, +0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x80, 0x7e, +0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7d, +0x7d, 0x7e, 0x80, 0x81, 0x80, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x82, 0x80, 0x7e, 0x81, 0x80, 0x80, +0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x80, 0x80, 0x7d, 0x7e, +0x81, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x80, 0x82, 0x81, 0x81, 0x82, +0x80, 0x7e, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, +0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7c, 0x7b, 0x7d, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, +0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, +0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x80, +0x80, 0x7e, 0x81, 0x82, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x83, 0x82, 0x83, 0x83, 0x82, 0x83, +0x82, 0x82, 0x84, 0x84, 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x85, 0x84, 0x84, 0x84, 0x84, 0x83, +0x84, 0x84, 0x82, 0x82, 0x83, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, +0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7c, 0x7d, 0x7c, 0x7c, +0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, +0x7a, 0x7a, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, +0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, +0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, +0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, +0x81, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x84, 0x83, 0x82, 0x83, 0x83, 0x82, 0x81, 0x83, 0x82, +0x82, 0x82, 0x82, 0x80, 0x80, 0x82, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, +0x7e, 0x7d, 0x7c, 0x7e, 0x7e, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7d, +0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, +0x7a, 0x7a, 0x7b, 0x7b, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x83, +0x84, 0x83, 0x82, 0x83, 0x82, 0x81, 0x81, 0x82, 0x82, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, +0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, +0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x81, 0x81, +0x81, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x7e, 0x7e, +0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x83, 0x82, 0x82, +0x83, 0x83, 0x82, 0x83, 0x82, 0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x81, +0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x80, 0x80, 0x82, 0x82, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, +0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, 0x7b, 0x7a, 0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, +0x7b, 0x7c, 0x7c, 0x7d, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, +0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7b, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, +0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, 0x83, 0x82, 0x81, 0x81, +0x83, 0x83, 0x84, 0x83, 0x82, 0x83, 0x83, 0x82, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x83, +0x82, 0x83, 0x84, 0x84, 0x83, 0x82, 0x83, 0x82, 0x82, 0x83, 0x83, 0x82, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, +0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, +0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, +0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x81, 0x81, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, +0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x83, +0x82, 0x81, 0x81, 0x81, 0x82, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7e, +0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, +0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, +0x7b, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x81, +0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x83, +0x84, 0x84, 0x83, 0x83, 0x82, 0x82, 0x84, 0x84, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, +0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, +0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, +0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7d, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x81, 0x82, 0x82, 0x81, 0x81, +0x82, 0x82, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x80, 0x81, 0x82, +0x82, 0x82, 0x83, 0x83, 0x82, 0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83, 0x82, 0x83, 0x83, 0x83, +0x83, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x80, +0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, +0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7c, 0x7b, 0x7c, 0x7d, 0x7c, 0x7c, +0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7b, 0x7b, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7b, 0x7c, +0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, +0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, +0x82, 0x81, 0x82, 0x83, 0x83, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x84, 0x83, 0x83, 0x83, 0x82, +0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, +0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x7e, +0x80, 0x81, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, +0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x82, +0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x82, 0x82, 0x81, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, +0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, +0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, +0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x83, +0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x84, 0x83, 0x83, 0x83, 0x83, 0x84, 0x83, 0x83, 0x84, +0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x83, 0x82, 0x82, 0x81, 0x82, 0x82, 0x81, 0x81, +0x81, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, +0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, +0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, +0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, +0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x81, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x81, +0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, +0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7c, +0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, +0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x83, 0x83, 0x82, +0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x81, 0x82, 0x82, 0x82, 0x83, 0x82, 0x82, 0x82, 0x82, +0x82, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7d, +0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, +0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, +0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, +0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x81, 0x80, +0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, +0x81, 0x81, 0x81, 0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, +0x81, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x83, 0x82, 0x82, +0x82, 0x82, 0x82, 0x83, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, +0x7e, 0x80, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, +0x7e, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, +0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7d, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, +0x83, 0x83, 0x82, 0x82, 0x83, 0x83, 0x82, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x83, 0x83, 0x82, +0x81, 0x81, 0x81, 0x80, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, +0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, +0x80, 0x81, 0x82, 0x81, 0x82, 0x82, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x80, 0x80, +0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x7e, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, +0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, +0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, +0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, +0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, +0x82, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x82, +0x82, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, +0x82, 0x82, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, +0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, +0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, +0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, +0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, +0x82, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x81, +0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, +0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, +0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, +0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x82, 0x81, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, +0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b, +0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, +0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x82, 0x82, 0x82, +0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x80, 0x81, 0x81, 0x81, +0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, +0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, +0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x81, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x82, 0x82, 0x81, 0x82, 0x82, +0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, +0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, +0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, +0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x80, +0x80, 0x7e, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, +0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, +0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, +0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, +0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, +0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, +0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, +0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, +0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, +0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, +0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, +0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81, +0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, +0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, +0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, +0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, +0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, +0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, +0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7e, +0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, +0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, +0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, +0x80, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, +0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, +0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, +0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, +0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, +0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, +0x80, 0x80, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, +0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, +0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7f, 0x80, 0x7e, 0x7e, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, +0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x81, 0x80, 0x80, 0x81, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7f, 0x80, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, +0x81, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, +0x80, 0x81, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, +0x80, 0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, +0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, +0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, +0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, +0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, +0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, +0x7e, 0x7e, 0x7f, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7e, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, }; - diff --git a/examples/peripherals/i2s_adc_dac/main/component.mk b/examples/peripherals/i2s_adc_dac/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/peripherals/i2s_adc_dac/main/component.mk +++ b/examples/peripherals/i2s_adc_dac/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/peripherals/i2s_adc_dac/partitions_adc_dac_example.csv b/examples/peripherals/i2s_adc_dac/partitions_adc_dac_example.csv index 85bc43e33c..2d35c54f86 100644 --- a/examples/peripherals/i2s_adc_dac/partitions_adc_dac_example.csv +++ b/examples/peripherals/i2s_adc_dac/partitions_adc_dac_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, fat, , 2M, +storage, data, fat, , 2M, diff --git a/examples/peripherals/ledc/Makefile b/examples/peripherals/ledc/Makefile index 675fc8a38b..b198310347 100644 --- a/examples/peripherals/ledc/Makefile +++ b/examples/peripherals/ledc/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := ledc include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/ledc/main/CMakeLists.txt b/examples/peripherals/ledc/main/CMakeLists.txt index f6064011cc..b3933e0d20 100644 --- a/examples/peripherals/ledc/main/CMakeLists.txt +++ b/examples/peripherals/ledc/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "ledc_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/mcpwm/mcpwm_basic_config/Makefile b/examples/peripherals/mcpwm/mcpwm_basic_config/Makefile index 55d30f942c..19ec32167d 100644 --- a/examples/peripherals/mcpwm/mcpwm_basic_config/Makefile +++ b/examples/peripherals/mcpwm/mcpwm_basic_config/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := mcpwm_basic_config include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/mcpwm/mcpwm_basic_config/main/CMakeLists.txt b/examples/peripherals/mcpwm/mcpwm_basic_config/main/CMakeLists.txt index ec236fe844..468bf40559 100644 --- a/examples/peripherals/mcpwm/mcpwm_basic_config/main/CMakeLists.txt +++ b/examples/peripherals/mcpwm/mcpwm_basic_config/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "mcpwm_basic_config_example.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/mcpwm/mcpwm_basic_config/main/mcpwm_basic_config_example.c b/examples/peripherals/mcpwm/mcpwm_basic_config/main/mcpwm_basic_config_example.c index f437a268f7..4b8caae70a 100644 --- a/examples/peripherals/mcpwm/mcpwm_basic_config/main/mcpwm_basic_config_example.c +++ b/examples/peripherals/mcpwm/mcpwm_basic_config/main/mcpwm_basic_config_example.c @@ -164,7 +164,7 @@ static void IRAM_ATTR isr_handler(void) uint32_t mcpwm_intr_status; capture evt; mcpwm_intr_status = MCPWM[MCPWM_UNIT_0]->int_st.val; //Read interrupt status - //calculate the interval in the ISR, + //calculate the interval in the ISR, //so that the interval will be always correct even when cap_queue is not handled in time and overflow. if (mcpwm_intr_status & CAP0_INT_EN) { //Check for interrupt on rising edge on CAP0 signal current_cap_value[0] = mcpwm_capture_signal_get_value(MCPWM_UNIT_0, MCPWM_SELECT_CAP0); //get capture signal counter value @@ -292,4 +292,3 @@ void app_main(void) xTaskCreate(gpio_test_signal, "gpio_test_signal", 4096, NULL, 5, NULL); //comment if you don't want to use capture module xTaskCreate(mcpwm_example_config, "mcpwm_example_config", 4096, NULL, 5, NULL); } - diff --git a/examples/peripherals/mcpwm/mcpwm_bldc_control/Makefile b/examples/peripherals/mcpwm/mcpwm_bldc_control/Makefile index 47e1065c6f..eb1842cc7b 100644 --- a/examples/peripherals/mcpwm/mcpwm_bldc_control/Makefile +++ b/examples/peripherals/mcpwm/mcpwm_bldc_control/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := mcpwm_bldc_control_hall_sensor include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/mcpwm/mcpwm_bldc_control/main/CMakeLists.txt b/examples/peripherals/mcpwm/mcpwm_bldc_control/main/CMakeLists.txt index 3f7cedf8d2..61d8388b1b 100644 --- a/examples/peripherals/mcpwm/mcpwm_bldc_control/main/CMakeLists.txt +++ b/examples/peripherals/mcpwm/mcpwm_bldc_control/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "mcpwm_bldc_control_hall_sensor_example.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/mcpwm/mcpwm_bldc_control/main/mcpwm_bldc_control_hall_sensor_example.c b/examples/peripherals/mcpwm/mcpwm_bldc_control/main/mcpwm_bldc_control_hall_sensor_example.c index 6784b63991..b99f926fe2 100644 --- a/examples/peripherals/mcpwm/mcpwm_bldc_control/main/mcpwm_bldc_control_hall_sensor_example.c +++ b/examples/peripherals/mcpwm/mcpwm_bldc_control/main/mcpwm_bldc_control_hall_sensor_example.c @@ -320,4 +320,3 @@ void app_main(void) xTaskCreate(disp_captured_signal, "mcpwm_config", 4096, NULL, 2, NULL); //comment if you don't want to use capture module xTaskCreate(mcpwm_example_bldc_control, "mcpwm_example_bldc_control", 4096, NULL, 2, NULL); } - diff --git a/examples/peripherals/mcpwm/mcpwm_brushed_dc_control/Makefile b/examples/peripherals/mcpwm/mcpwm_brushed_dc_control/Makefile index 9dd14ffa72..c85d17604e 100644 --- a/examples/peripherals/mcpwm/mcpwm_brushed_dc_control/Makefile +++ b/examples/peripherals/mcpwm/mcpwm_brushed_dc_control/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := mcpwm_brushed_dc_control include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/mcpwm/mcpwm_brushed_dc_control/main/CMakeLists.txt b/examples/peripherals/mcpwm/mcpwm_brushed_dc_control/main/CMakeLists.txt index 81ecd07a8f..855c8bd51e 100644 --- a/examples/peripherals/mcpwm/mcpwm_brushed_dc_control/main/CMakeLists.txt +++ b/examples/peripherals/mcpwm/mcpwm_brushed_dc_control/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "mcpwm_brushed_dc_control_example.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/mcpwm/mcpwm_servo_control/Makefile b/examples/peripherals/mcpwm/mcpwm_servo_control/Makefile index 29edf70122..5dd16cc6b5 100644 --- a/examples/peripherals/mcpwm/mcpwm_servo_control/Makefile +++ b/examples/peripherals/mcpwm/mcpwm_servo_control/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := mcpwm_servo_control include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/mcpwm/mcpwm_servo_control/main/CMakeLists.txt b/examples/peripherals/mcpwm/mcpwm_servo_control/main/CMakeLists.txt index 7a6efda90a..fda5dd827e 100644 --- a/examples/peripherals/mcpwm/mcpwm_servo_control/main/CMakeLists.txt +++ b/examples/peripherals/mcpwm/mcpwm_servo_control/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "mcpwm_servo_control_example.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/pcnt/pulse_count_event/Makefile b/examples/peripherals/pcnt/pulse_count_event/Makefile index d08ed7033b..1b7b19fa83 100644 --- a/examples/peripherals/pcnt/pulse_count_event/Makefile +++ b/examples/peripherals/pcnt/pulse_count_event/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := pcnt_event include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/pcnt/pulse_count_event/main/CMakeLists.txt b/examples/peripherals/pcnt/pulse_count_event/main/CMakeLists.txt index 1fbf1d87c1..6e67895748 100644 --- a/examples/peripherals/pcnt/pulse_count_event/main/CMakeLists.txt +++ b/examples/peripherals/pcnt/pulse_count_event/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "pcnt_event_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/pcnt/rotary_encoder/Makefile b/examples/peripherals/pcnt/rotary_encoder/Makefile index 5a74869c3f..753ed4c40f 100644 --- a/examples/peripherals/pcnt/rotary_encoder/Makefile +++ b/examples/peripherals/pcnt/rotary_encoder/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := rotary_encoder include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/pcnt/rotary_encoder/components/rotary_encoder/CMakeLists.txt b/examples/peripherals/pcnt/rotary_encoder/components/rotary_encoder/CMakeLists.txt index 7d9a499df6..2396f7892f 100644 --- a/examples/peripherals/pcnt/rotary_encoder/components/rotary_encoder/CMakeLists.txt +++ b/examples/peripherals/pcnt/rotary_encoder/components/rotary_encoder/CMakeLists.txt @@ -5,4 +5,3 @@ idf_component_register(SRCS "${component_srcs}" PRIV_INCLUDE_DIRS "" PRIV_REQUIRES "driver" REQUIRES "") - diff --git a/examples/peripherals/rmt/ir_protocols/Makefile b/examples/peripherals/rmt/ir_protocols/Makefile index 6d4d7850f2..949e627727 100644 --- a/examples/peripherals/rmt/ir_protocols/Makefile +++ b/examples/peripherals/rmt/ir_protocols/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := ir_protocols include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/rmt/ir_protocols/components/infrared_tools/CMakeLists.txt b/examples/peripherals/rmt/ir_protocols/components/infrared_tools/CMakeLists.txt index d31adbd435..1cba0eb495 100644 --- a/examples/peripherals/rmt/ir_protocols/components/infrared_tools/CMakeLists.txt +++ b/examples/peripherals/rmt/ir_protocols/components/infrared_tools/CMakeLists.txt @@ -8,4 +8,3 @@ idf_component_register(SRCS "${component_srcs}" PRIV_INCLUDE_DIRS "" PRIV_REQUIRES "driver" REQUIRES "") - diff --git a/examples/peripherals/rmt/led_strip/components/led_strip/CMakeLists.txt b/examples/peripherals/rmt/led_strip/components/led_strip/CMakeLists.txt index 6d0fcbc864..8266c5a1c8 100644 --- a/examples/peripherals/rmt/led_strip/components/led_strip/CMakeLists.txt +++ b/examples/peripherals/rmt/led_strip/components/led_strip/CMakeLists.txt @@ -5,4 +5,3 @@ idf_component_register(SRCS "${component_srcs}" PRIV_INCLUDE_DIRS "" PRIV_REQUIRES "driver" REQUIRES "") - diff --git a/examples/peripherals/rmt/morse_code/Makefile b/examples/peripherals/rmt/morse_code/Makefile index 95c5a47dbd..7054dce932 100644 --- a/examples/peripherals/rmt/morse_code/Makefile +++ b/examples/peripherals/rmt/morse_code/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := morse_code include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/sdio/host/Makefile b/examples/peripherals/sdio/host/Makefile index 7d15126e40..2b313cca48 100644 --- a/examples/peripherals/sdio/host/Makefile +++ b/examples/peripherals/sdio/host/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := sdio_host include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/sdio/host/main/CMakeLists.txt b/examples/peripherals/sdio/host/main/CMakeLists.txt index e7392559ee..61fac40e63 100644 --- a/examples/peripherals/sdio/host/main/CMakeLists.txt +++ b/examples/peripherals/sdio/host/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/sdio/host/main/app_main.c b/examples/peripherals/sdio/host/main/app_main.c index 7765b1bd5f..8ba73932a5 100644 --- a/examples/peripherals/sdio/host/main/app_main.c +++ b/examples/peripherals/sdio/host/main/app_main.c @@ -480,4 +480,3 @@ void app_main(void) } } } - diff --git a/examples/peripherals/sdio/host/main/component.mk b/examples/peripherals/sdio/host/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/peripherals/sdio/host/main/component.mk +++ b/examples/peripherals/sdio/host/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/peripherals/sdio/host/sdkconfig.defaults b/examples/peripherals/sdio/host/sdkconfig.defaults index c10578afb8..6fad252d8e 100644 --- a/examples/peripherals/sdio/host/sdkconfig.defaults +++ b/examples/peripherals/sdio/host/sdkconfig.defaults @@ -1 +1 @@ -CONFIG_EXAMPLE_SLAVE_B1=y \ No newline at end of file +CONFIG_EXAMPLE_SLAVE_B1=y diff --git a/examples/peripherals/sdio/slave/Makefile b/examples/peripherals/sdio/slave/Makefile index 92c1b7c0d6..6f35803ef1 100644 --- a/examples/peripherals/sdio/slave/Makefile +++ b/examples/peripherals/sdio/slave/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := sdio_slave include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/sdio/slave/main/CMakeLists.txt b/examples/peripherals/sdio/slave/main/CMakeLists.txt index e7392559ee..61fac40e63 100644 --- a/examples/peripherals/sdio/slave/main/CMakeLists.txt +++ b/examples/peripherals/sdio/slave/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/sdio/slave/main/app_main.c b/examples/peripherals/sdio/slave/main/app_main.c index 3a6a7c7593..bf6863a2d9 100644 --- a/examples/peripherals/sdio/slave/main/app_main.c +++ b/examples/peripherals/sdio/slave/main/app_main.c @@ -271,5 +271,3 @@ void app_main(void) vTaskDelay(1); } } - - diff --git a/examples/peripherals/sdio/slave/main/component.mk b/examples/peripherals/sdio/slave/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/peripherals/sdio/slave/main/component.mk +++ b/examples/peripherals/sdio/slave/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/peripherals/secure_element/atecc608_ecdsa/Makefile b/examples/peripherals/secure_element/atecc608_ecdsa/Makefile index fd1ab02a15..eb625d1f74 100644 --- a/examples/peripherals/secure_element/atecc608_ecdsa/Makefile +++ b/examples/peripherals/secure_element/atecc608_ecdsa/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := atecc608a_ecdsa include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/secure_element/atecc608_ecdsa/main/component.mk b/examples/peripherals/secure_element/atecc608_ecdsa/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/peripherals/secure_element/atecc608_ecdsa/main/component.mk +++ b/examples/peripherals/secure_element/atecc608_ecdsa/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/peripherals/secure_element/atecc608_ecdsa/main/ecdsa_example_main.c b/examples/peripherals/secure_element/atecc608_ecdsa/main/ecdsa_example_main.c index c6d0738f83..eb8d2ce4a6 100644 --- a/examples/peripherals/secure_element/atecc608_ecdsa/main/ecdsa_example_main.c +++ b/examples/peripherals/secure_element/atecc608_ecdsa/main/ecdsa_example_main.c @@ -238,4 +238,3 @@ exit: close_mbedtls_rng(); } - diff --git a/examples/peripherals/sigmadelta/Makefile b/examples/peripherals/sigmadelta/Makefile index 75f7111ab2..81f5e77f5a 100644 --- a/examples/peripherals/sigmadelta/Makefile +++ b/examples/peripherals/sigmadelta/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := sigmadelta include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/sigmadelta/main/CMakeLists.txt b/examples/peripherals/sigmadelta/main/CMakeLists.txt index 52abe2822d..77b642e5d8 100644 --- a/examples/peripherals/sigmadelta/main/CMakeLists.txt +++ b/examples/peripherals/sigmadelta/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "sigmadelta_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/sigmadelta/main/component.mk b/examples/peripherals/sigmadelta/main/component.mk index 4d3b30caf3..b4fa72791c 100644 --- a/examples/peripherals/sigmadelta/main/component.mk +++ b/examples/peripherals/sigmadelta/main/component.mk @@ -2,4 +2,3 @@ # Main Makefile. This is basically the same as a component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/peripherals/spi_master/hd_eeprom/Makefile b/examples/peripherals/spi_master/hd_eeprom/Makefile index 9eb43967c8..70d248d1e9 100644 --- a/examples/peripherals/spi_master/hd_eeprom/Makefile +++ b/examples/peripherals/spi_master/hd_eeprom/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := spi_eeprom include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/spi_master/hd_eeprom/components/eeprom/CMakeLists.txt b/examples/peripherals/spi_master/hd_eeprom/components/eeprom/CMakeLists.txt index 298fb3b395..0628cd8d09 100644 --- a/examples/peripherals/spi_master/hd_eeprom/components/eeprom/CMakeLists.txt +++ b/examples/peripherals/spi_master/hd_eeprom/components/eeprom/CMakeLists.txt @@ -1,4 +1,3 @@ idf_component_register(SRCS "spi_eeprom.c" LDFRAGMENTS "linker.lf" INCLUDE_DIRS ".") - diff --git a/examples/peripherals/spi_master/hd_eeprom/components/eeprom/linker.lf b/examples/peripherals/spi_master/hd_eeprom/components/eeprom/linker.lf index c76d496945..b0d89b8d77 100644 --- a/examples/peripherals/spi_master/hd_eeprom/components/eeprom/linker.lf +++ b/examples/peripherals/spi_master/hd_eeprom/components/eeprom/linker.lf @@ -21,4 +21,4 @@ entries: [mapping:ext_newlib] archive: libnewlib.a entries: - time:usleep (noflash) \ No newline at end of file + time:usleep (noflash) diff --git a/examples/peripherals/spi_master/hd_eeprom/components/eeprom/spi_eeprom.h b/examples/peripherals/spi_master/hd_eeprom/components/eeprom/spi_eeprom.h index 295a7e0a8d..d42bbafa44 100644 --- a/examples/peripherals/spi_master/hd_eeprom/components/eeprom/spi_eeprom.h +++ b/examples/peripherals/spi_master/hd_eeprom/components/eeprom/spi_eeprom.h @@ -120,4 +120,4 @@ esp_err_t spi_eeprom_erase_all(eeprom_handle_t handle); * - or return value from `spi_device_acquire_bus()` `spi_device_polling_transmit()`. */ esp_err_t spi_eeprom_write_all(eeprom_handle_t handle, uint8_t data); -#endif //CONFIG_EXAMPLE_5V_COMMANDS \ No newline at end of file +#endif //CONFIG_EXAMPLE_5V_COMMANDS diff --git a/examples/peripherals/spi_master/hd_eeprom/main/CMakeLists.txt b/examples/peripherals/spi_master/hd_eeprom/main/CMakeLists.txt index 30c1638dad..1bfe621902 100644 --- a/examples/peripherals/spi_master/hd_eeprom/main/CMakeLists.txt +++ b/examples/peripherals/spi_master/hd_eeprom/main/CMakeLists.txt @@ -2,4 +2,3 @@ set(srcs "spi_eeprom_main.c") idf_component_register(SRCS ${srcs} INCLUDE_DIRS ".") - diff --git a/examples/peripherals/spi_master/lcd/Makefile b/examples/peripherals/spi_master/lcd/Makefile index 7ca171bb52..bb969cd5d3 100644 --- a/examples/peripherals/spi_master/lcd/Makefile +++ b/examples/peripherals/spi_master/lcd/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := spi_master include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/spi_master/lcd/components/tjpgd/src/tjpgd.c b/examples/peripherals/spi_master/lcd/components/tjpgd/src/tjpgd.c index dc87fe08e1..276dc1932c 100644 --- a/examples/peripherals/spi_master/lcd/components/tjpgd/src/tjpgd.c +++ b/examples/peripherals/spi_master/lcd/components/tjpgd/src/tjpgd.c @@ -955,6 +955,3 @@ JRESULT jd_decomp ( return rc; } - - - diff --git a/examples/peripherals/spi_master/lcd/main/CMakeLists.txt b/examples/peripherals/spi_master/lcd/main/CMakeLists.txt index d0f93ab576..8820b292e1 100644 --- a/examples/peripherals/spi_master/lcd/main/CMakeLists.txt +++ b/examples/peripherals/spi_master/lcd/main/CMakeLists.txt @@ -10,4 +10,3 @@ endif() idf_component_register(SRCS ${srcs} INCLUDE_DIRS "." EMBED_FILES image.jpg) - diff --git a/examples/peripherals/spi_master/lcd/main/decode_image.h b/examples/peripherals/spi_master/lcd/main/decode_image.h index eb02eab5ee..223db59d6f 100644 --- a/examples/peripherals/spi_master/lcd/main/decode_image.h +++ b/examples/peripherals/spi_master/lcd/main/decode_image.h @@ -19,4 +19,4 @@ * - ESP_ERR_NO_MEM if out of memory * - ESP_OK on succesful decode */ -esp_err_t decode_image(uint16_t ***pixels); \ No newline at end of file +esp_err_t decode_image(uint16_t ***pixels); diff --git a/examples/peripherals/spi_slave/receiver/Makefile b/examples/peripherals/spi_slave/receiver/Makefile index fc52431a30..7462211f82 100644 --- a/examples/peripherals/spi_slave/receiver/Makefile +++ b/examples/peripherals/spi_slave/receiver/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := spi-slave-receiver include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/spi_slave/receiver/main/CMakeLists.txt b/examples/peripherals/spi_slave/receiver/main/CMakeLists.txt index e7392559ee..61fac40e63 100644 --- a/examples/peripherals/spi_slave/receiver/main/CMakeLists.txt +++ b/examples/peripherals/spi_slave/receiver/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/spi_slave/receiver/main/app_main.c b/examples/peripherals/spi_slave/receiver/main/app_main.c index 143ad89d65..fa5d7996c2 100644 --- a/examples/peripherals/spi_slave/receiver/main/app_main.c +++ b/examples/peripherals/spi_slave/receiver/main/app_main.c @@ -150,5 +150,3 @@ void app_main(void) } } - - diff --git a/examples/peripherals/spi_slave/receiver/main/component.mk b/examples/peripherals/spi_slave/receiver/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/peripherals/spi_slave/receiver/main/component.mk +++ b/examples/peripherals/spi_slave/receiver/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/peripherals/spi_slave/sender/Makefile b/examples/peripherals/spi_slave/sender/Makefile index e4af518bcc..3d05a952ae 100644 --- a/examples/peripherals/spi_slave/sender/Makefile +++ b/examples/peripherals/spi_slave/sender/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := spi-slave-sender include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/spi_slave/sender/main/CMakeLists.txt b/examples/peripherals/spi_slave/sender/main/CMakeLists.txt index e7392559ee..61fac40e63 100644 --- a/examples/peripherals/spi_slave/sender/main/CMakeLists.txt +++ b/examples/peripherals/spi_slave/sender/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/spi_slave/sender/main/component.mk b/examples/peripherals/spi_slave/sender/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/peripherals/spi_slave/sender/main/component.mk +++ b/examples/peripherals/spi_slave/sender/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/peripherals/temp_sensor_esp32s2/Makefile b/examples/peripherals/temp_sensor_esp32s2/Makefile index fb95185800..8f95084302 100644 --- a/examples/peripherals/temp_sensor_esp32s2/Makefile +++ b/examples/peripherals/temp_sensor_esp32s2/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := temp_sensor_esp32s2 include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/temp_sensor_esp32s2/main/component.mk b/examples/peripherals/temp_sensor_esp32s2/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/peripherals/temp_sensor_esp32s2/main/component.mk +++ b/examples/peripherals/temp_sensor_esp32s2/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/peripherals/timer_group/Makefile b/examples/peripherals/timer_group/Makefile index b55e8c13d0..e923a507a8 100644 --- a/examples/peripherals/timer_group/Makefile +++ b/examples/peripherals/timer_group/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := timer_group include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/timer_group/main/CMakeLists.txt b/examples/peripherals/timer_group/main/CMakeLists.txt index 9a07f9eb72..24d6c81190 100644 --- a/examples/peripherals/timer_group/main/CMakeLists.txt +++ b/examples/peripherals/timer_group/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "timer_group_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/timer_group/main/component.mk b/examples/peripherals/timer_group/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/peripherals/timer_group/main/component.mk +++ b/examples/peripherals/timer_group/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/peripherals/timer_group/main/timer_group_example_main.c b/examples/peripherals/timer_group/main/timer_group_example_main.c index 74c8790a69..f590cf0ab9 100644 --- a/examples/peripherals/timer_group/main/timer_group_example_main.c +++ b/examples/peripherals/timer_group/main/timer_group_example_main.c @@ -167,4 +167,3 @@ void app_main(void) example_tg0_timer_init(TIMER_1, TEST_WITH_RELOAD, TIMER_INTERVAL1_SEC); xTaskCreate(timer_example_evt_task, "timer_evt_task", 2048, NULL, 5, NULL); } - diff --git a/examples/peripherals/touch_pad_interrupt/main/component.mk b/examples/peripherals/touch_pad_interrupt/main/component.mk index c6ea8a0a5a..4d5ac5eb96 100644 --- a/examples/peripherals/touch_pad_interrupt/main/component.mk +++ b/examples/peripherals/touch_pad_interrupt/main/component.mk @@ -3,4 +3,4 @@ # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) -COMPONENT_SRCDIRS := $(IDF_TARGET) \ No newline at end of file +COMPONENT_SRCDIRS := $(IDF_TARGET) diff --git a/examples/peripherals/touch_pad_read/main/CMakeLists.txt b/examples/peripherals/touch_pad_read/main/CMakeLists.txt index 5514777109..a817d78c0d 100644 --- a/examples/peripherals/touch_pad_read/main/CMakeLists.txt +++ b/examples/peripherals/touch_pad_read/main/CMakeLists.txt @@ -1,3 +1,2 @@ idf_component_register(SRCS "${CONFIG_IDF_TARGET}/tp_read_main.c" INCLUDE_DIRS ".") - diff --git a/examples/peripherals/touch_pad_read/main/component.mk b/examples/peripherals/touch_pad_read/main/component.mk index c6ea8a0a5a..4d5ac5eb96 100644 --- a/examples/peripherals/touch_pad_read/main/component.mk +++ b/examples/peripherals/touch_pad_read/main/component.mk @@ -3,4 +3,4 @@ # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) -COMPONENT_SRCDIRS := $(IDF_TARGET) \ No newline at end of file +COMPONENT_SRCDIRS := $(IDF_TARGET) diff --git a/examples/peripherals/twai/twai_alert_and_recovery/Makefile b/examples/peripherals/twai/twai_alert_and_recovery/Makefile index db9387ff13..f60ffdc102 100644 --- a/examples/peripherals/twai/twai_alert_and_recovery/Makefile +++ b/examples/peripherals/twai/twai_alert_and_recovery/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := twai_alert_and_recovery_example include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/twai/twai_alert_and_recovery/main/CMakeLists.txt b/examples/peripherals/twai/twai_alert_and_recovery/main/CMakeLists.txt index cef2e7dba1..2e9a791fea 100644 --- a/examples/peripherals/twai/twai_alert_and_recovery/main/CMakeLists.txt +++ b/examples/peripherals/twai/twai_alert_and_recovery/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "twai_alert_and_recovery_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/twai/twai_network/twai_network_listen_only/Makefile b/examples/peripherals/twai/twai_network/twai_network_listen_only/Makefile index 24497de7a1..fc00a388d2 100644 --- a/examples/peripherals/twai/twai_network/twai_network_listen_only/Makefile +++ b/examples/peripherals/twai/twai_network/twai_network_listen_only/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := twai_network_listen_only include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/twai/twai_network/twai_network_listen_only/main/CMakeLists.txt b/examples/peripherals/twai/twai_network/twai_network_listen_only/main/CMakeLists.txt index 5841639c3d..e26450a577 100644 --- a/examples/peripherals/twai/twai_network/twai_network_listen_only/main/CMakeLists.txt +++ b/examples/peripherals/twai/twai_network/twai_network_listen_only/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "twai_network_example_listen_only_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/twai/twai_network/twai_network_master/Makefile b/examples/peripherals/twai/twai_network/twai_network_master/Makefile index f18d479218..78ed15fb56 100644 --- a/examples/peripherals/twai/twai_network/twai_network_master/Makefile +++ b/examples/peripherals/twai/twai_network/twai_network_master/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := twai_network_master include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/twai/twai_network/twai_network_master/main/CMakeLists.txt b/examples/peripherals/twai/twai_network/twai_network_master/main/CMakeLists.txt index be452d435a..112b3ca1b4 100644 --- a/examples/peripherals/twai/twai_network/twai_network_master/main/CMakeLists.txt +++ b/examples/peripherals/twai/twai_network/twai_network_master/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "twai_network_example_master_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/twai/twai_network/twai_network_slave/Makefile b/examples/peripherals/twai/twai_network/twai_network_slave/Makefile index 7301ddca1b..9f3324f7f3 100644 --- a/examples/peripherals/twai/twai_network/twai_network_slave/Makefile +++ b/examples/peripherals/twai/twai_network/twai_network_slave/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := twai_network_slave include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/twai/twai_network/twai_network_slave/main/CMakeLists.txt b/examples/peripherals/twai/twai_network/twai_network_slave/main/CMakeLists.txt index 3d9604498d..84241dd1d3 100644 --- a/examples/peripherals/twai/twai_network/twai_network_slave/main/CMakeLists.txt +++ b/examples/peripherals/twai/twai_network/twai_network_slave/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "twai_network_example_slave_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/twai/twai_self_test/Makefile b/examples/peripherals/twai/twai_self_test/Makefile index 3f7a378b45..286a8df30f 100644 --- a/examples/peripherals/twai/twai_self_test/Makefile +++ b/examples/peripherals/twai/twai_self_test/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := twai_self_test_example include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/twai/twai_self_test/main/CMakeLists.txt b/examples/peripherals/twai/twai_self_test/main/CMakeLists.txt index 521e1dc14c..dcf7bf7fbf 100644 --- a/examples/peripherals/twai/twai_self_test/main/CMakeLists.txt +++ b/examples/peripherals/twai/twai_self_test/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "twai_self_test_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/twai/twai_self_test/main/twai_self_test_example_main.c b/examples/peripherals/twai/twai_self_test/main/twai_self_test_example_main.c index 0feda1d247..79dfb0dbcc 100644 --- a/examples/peripherals/twai/twai_self_test/main/twai_self_test_example_main.c +++ b/examples/peripherals/twai/twai_self_test/main/twai_self_test_example_main.c @@ -139,4 +139,3 @@ void app_main(void) vSemaphoreDelete(ctrl_sem); vQueueDelete(done_sem); } - diff --git a/examples/peripherals/uart/nmea0183_parser/Makefile b/examples/peripherals/uart/nmea0183_parser/Makefile index 28155eca49..b00917bbc0 100644 --- a/examples/peripherals/uart/nmea0183_parser/Makefile +++ b/examples/peripherals/uart/nmea0183_parser/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := nmea_parser include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/uart/nmea0183_parser/main/CMakeLists.txt b/examples/peripherals/uart/nmea0183_parser/main/CMakeLists.txt index b06050f468..25ef324dd8 100644 --- a/examples/peripherals/uart/nmea0183_parser/main/CMakeLists.txt +++ b/examples/peripherals/uart/nmea0183_parser/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "nmea_parser_example_main.c" "nmea_parser.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/uart/uart_async_rxtxtasks/main/CMakeLists.txt b/examples/peripherals/uart/uart_async_rxtxtasks/main/CMakeLists.txt index 7cfd9876ee..30e774e666 100644 --- a/examples/peripherals/uart/uart_async_rxtxtasks/main/CMakeLists.txt +++ b/examples/peripherals/uart/uart_async_rxtxtasks/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "uart_async_rxtxtasks_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/uart/uart_echo/Makefile b/examples/peripherals/uart/uart_echo/Makefile index e4714e57fc..5e605599fc 100644 --- a/examples/peripherals/uart/uart_echo/Makefile +++ b/examples/peripherals/uart/uart_echo/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := uart_echo include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/uart/uart_echo/main/CMakeLists.txt b/examples/peripherals/uart/uart_echo/main/CMakeLists.txt index b3eac5eff9..a25733646b 100644 --- a/examples/peripherals/uart/uart_echo/main/CMakeLists.txt +++ b/examples/peripherals/uart/uart_echo/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "uart_echo_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/uart/uart_echo_rs485/Makefile b/examples/peripherals/uart/uart_echo_rs485/Makefile index 8557313046..ca342e1914 100644 --- a/examples/peripherals/uart/uart_echo_rs485/Makefile +++ b/examples/peripherals/uart/uart_echo_rs485/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := echo_rs485 include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/uart/uart_echo_rs485/main/CMakeLists.txt b/examples/peripherals/uart/uart_echo_rs485/main/CMakeLists.txt index ef96bc63f1..d6c0cf5f5a 100644 --- a/examples/peripherals/uart/uart_echo_rs485/main/CMakeLists.txt +++ b/examples/peripherals/uart/uart_echo_rs485/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "rs485_example.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/uart/uart_echo_rs485/main/component.mk b/examples/peripherals/uart/uart_echo_rs485/main/component.mk index d31083f65b..44bd2b5273 100644 --- a/examples/peripherals/uart/uart_echo_rs485/main/component.mk +++ b/examples/peripherals/uart/uart_echo_rs485/main/component.mk @@ -1,3 +1,3 @@ # # Main Makefile. This is basically the same as a component makefile. -# \ No newline at end of file +# diff --git a/examples/peripherals/uart/uart_echo_rs485/main/rs485_example.c b/examples/peripherals/uart/uart_echo_rs485/main/rs485_example.c index dc6667ac9e..27b44fdc2f 100644 --- a/examples/peripherals/uart/uart_echo_rs485/main/rs485_example.c +++ b/examples/peripherals/uart/uart_echo_rs485/main/rs485_example.c @@ -46,8 +46,8 @@ // Timeout threshold for UART = number of symbols (~10 tics) with unchanged state on receive pin #define ECHO_READ_TOUT (3) // 3.5T * 8 = 28 ticks, TOUT=3 -> ~24..33 ticks -static void echo_send(const int port, const char* str, uint8_t length) -{ +static void echo_send(const int port, const char* str, uint8_t length) +{ if (uart_write_bytes(port, str, length) != length) { ESP_LOGE(TAG, "Send data critical failure."); // add your code to handle sending failure here @@ -68,10 +68,10 @@ static void echo_task(void *arg) .rx_flow_ctrl_thresh = 122, .source_clk = UART_SCLK_APB, }; - + // Set UART log level esp_log_level_set(TAG, ESP_LOG_INFO); - + ESP_LOGI(TAG, "Start RS485 application test and configure UART."); // Install UART driver (we don't need an event queue here) @@ -80,7 +80,7 @@ static void echo_task(void *arg) // Configure UART parameters ESP_ERROR_CHECK(uart_param_config(uart_num, &uart_config)); - + ESP_LOGI(TAG, "UART set pins, mode and install driver."); // Set UART pins as per KConfig settings @@ -88,7 +88,7 @@ static void echo_task(void *arg) // Set RS485 half duplex mode ESP_ERROR_CHECK(uart_set_mode(uart_num, UART_MODE_RS485_HALF_DUPLEX)); - + // Set read timeout of UART TOUT feature ESP_ERROR_CHECK(uart_set_rx_timeout(uart_num, ECHO_READ_TOUT)); @@ -101,7 +101,7 @@ static void echo_task(void *arg) while(1) { //Read data from UART int len = uart_read_bytes(uart_num, data, BUF_SIZE, PACKET_READ_TICS); - + //Write data back to UART if (len > 0) { echo_send(uart_num, "\r\n", 2); diff --git a/examples/peripherals/uart/uart_events/Makefile b/examples/peripherals/uart/uart_events/Makefile index 496941720d..f23dd39c4b 100644 --- a/examples/peripherals/uart/uart_events/Makefile +++ b/examples/peripherals/uart/uart_events/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := uart_events include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/uart/uart_events/main/CMakeLists.txt b/examples/peripherals/uart/uart_events/main/CMakeLists.txt index 44d8838503..18f72d682b 100644 --- a/examples/peripherals/uart/uart_events/main/CMakeLists.txt +++ b/examples/peripherals/uart/uart_events/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "uart_events_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/uart/uart_select/main/CMakeLists.txt b/examples/peripherals/uart/uart_select/main/CMakeLists.txt index 8f1897f23f..e30ac8b036 100644 --- a/examples/peripherals/uart/uart_select/main/CMakeLists.txt +++ b/examples/peripherals/uart/uart_select/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "uart_select_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/peripherals/usb/tusb_console/sdkconfig.defaults b/examples/peripherals/usb/tusb_console/sdkconfig.defaults index 25b9a19cb0..67c45c3f45 100644 --- a/examples/peripherals/usb/tusb_console/sdkconfig.defaults +++ b/examples/peripherals/usb/tusb_console/sdkconfig.defaults @@ -1,3 +1,3 @@ CONFIG_IDF_TARGET="esp32s2" CONFIG_USB_ENABLED=y -CONFIG_USB_CDC_ENABLED=y \ No newline at end of file +CONFIG_USB_CDC_ENABLED=y diff --git a/examples/peripherals/usb/tusb_serial_device/sdkconfig.defaults b/examples/peripherals/usb/tusb_serial_device/sdkconfig.defaults index 25b9a19cb0..67c45c3f45 100644 --- a/examples/peripherals/usb/tusb_serial_device/sdkconfig.defaults +++ b/examples/peripherals/usb/tusb_serial_device/sdkconfig.defaults @@ -1,3 +1,3 @@ CONFIG_IDF_TARGET="esp32s2" CONFIG_USB_ENABLED=y -CONFIG_USB_CDC_ENABLED=y \ No newline at end of file +CONFIG_USB_CDC_ENABLED=y diff --git a/examples/peripherals/wave_gen/Makefile b/examples/peripherals/wave_gen/Makefile index 4e87bca116..1703f52297 100644 --- a/examples/peripherals/wave_gen/Makefile +++ b/examples/peripherals/wave_gen/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := wave_gen include $(IDF_PATH)/make/project.mk - diff --git a/examples/peripherals/wave_gen/main/wave_gen_example_main.c b/examples/peripherals/wave_gen/main/wave_gen_example_main.c index 9cead7cc2d..ef97ec9513 100644 --- a/examples/peripherals/wave_gen/main/wave_gen_example_main.c +++ b/examples/peripherals/wave_gen/main/wave_gen_example_main.c @@ -146,4 +146,4 @@ void app_main(void) } #endif } -} \ No newline at end of file +} diff --git a/examples/protocols/asio/chat_client/main/CMakeLists.txt b/examples/protocols/asio/chat_client/main/CMakeLists.txt index d92c9a8ae9..02529cb541 100644 --- a/examples/protocols/asio/chat_client/main/CMakeLists.txt +++ b/examples/protocols/asio/chat_client/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "chat_client.cpp" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/asio/chat_client/main/component.mk b/examples/protocols/asio/chat_client/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/protocols/asio/chat_client/main/component.mk +++ b/examples/protocols/asio/chat_client/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/protocols/asio/chat_server/main/CMakeLists.txt b/examples/protocols/asio/chat_server/main/CMakeLists.txt index 9042b223a6..c16daff3da 100644 --- a/examples/protocols/asio/chat_server/main/CMakeLists.txt +++ b/examples/protocols/asio/chat_server/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "chat_server.cpp" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/asio/chat_server/main/component.mk b/examples/protocols/asio/chat_server/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/protocols/asio/chat_server/main/component.mk +++ b/examples/protocols/asio/chat_server/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/protocols/asio/ssl_client_server/main/component.mk b/examples/protocols/asio/ssl_client_server/main/component.mk index 71869b0a3f..36ed173b93 100644 --- a/examples/protocols/asio/ssl_client_server/main/component.mk +++ b/examples/protocols/asio/ssl_client_server/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/protocols/asio/tcp_echo_server/main/CMakeLists.txt b/examples/protocols/asio/tcp_echo_server/main/CMakeLists.txt index ef518dc723..fcd492bca0 100644 --- a/examples/protocols/asio/tcp_echo_server/main/CMakeLists.txt +++ b/examples/protocols/asio/tcp_echo_server/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "echo_server.cpp" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/asio/tcp_echo_server/main/component.mk b/examples/protocols/asio/tcp_echo_server/main/component.mk index 8c8d52abcb..0adf45649a 100644 --- a/examples/protocols/asio/tcp_echo_server/main/component.mk +++ b/examples/protocols/asio/tcp_echo_server/main/component.mk @@ -1,9 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # - diff --git a/examples/protocols/asio/tcp_echo_server/main/echo_server.cpp b/examples/protocols/asio/tcp_echo_server/main/echo_server.cpp index 1770fa55ec..f8929bb475 100644 --- a/examples/protocols/asio/tcp_echo_server/main/echo_server.cpp +++ b/examples/protocols/asio/tcp_echo_server/main/echo_server.cpp @@ -103,4 +103,4 @@ extern "C" void app_main(void) server s(io_context, std::atoi(CONFIG_EXAMPLE_PORT)); io_context.run(); -} \ No newline at end of file +} diff --git a/examples/protocols/asio/udp_echo_server/main/CMakeLists.txt b/examples/protocols/asio/udp_echo_server/main/CMakeLists.txt index c7a9e3575a..c692c09056 100644 --- a/examples/protocols/asio/udp_echo_server/main/CMakeLists.txt +++ b/examples/protocols/asio/udp_echo_server/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "udp_echo_server.cpp" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/asio/udp_echo_server/main/component.mk b/examples/protocols/asio/udp_echo_server/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/protocols/asio/udp_echo_server/main/component.mk +++ b/examples/protocols/asio/udp_echo_server/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/protocols/cbor/Makefile b/examples/protocols/cbor/Makefile index 7b394132d2..5df7f3f39f 100644 --- a/examples/protocols/cbor/Makefile +++ b/examples/protocols/cbor/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := cbor include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/cbor/main/component.mk b/examples/protocols/cbor/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/protocols/cbor/main/component.mk +++ b/examples/protocols/cbor/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/protocols/coap_client/Makefile b/examples/protocols/coap_client/Makefile index 84a2905fb9..3da4b416a7 100644 --- a/examples/protocols/coap_client/Makefile +++ b/examples/protocols/coap_client/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := coap_client EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/coap_client/main/certs/coap_client.crt b/examples/protocols/coap_client/main/certs/coap_client.crt index 0e03a1b79b..12dbfc8f55 100644 --- a/examples/protocols/coap_client/main/certs/coap_client.crt +++ b/examples/protocols/coap_client/main/certs/coap_client.crt @@ -32,9 +32,9 @@ Certificate: d1:ef Exponent: 65537 (0x10001) X509v3 extensions: - X509v3 Extended Key Usage: + X509v3 Extended Key Usage: TLS Web Client Authentication - X509v3 CRL Distribution Points: + X509v3 CRL Distribution Points: Full Name: URI:http://www.example.com/example_ca.crl diff --git a/examples/protocols/coap_server/Makefile b/examples/protocols/coap_server/Makefile index 63af79f7c5..b8a03c3034 100644 --- a/examples/protocols/coap_server/Makefile +++ b/examples/protocols/coap_server/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := coap_server EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/coap_server/main/certs/coap_server.crt b/examples/protocols/coap_server/main/certs/coap_server.crt index 8f1dfcda6c..0af6f1741f 100644 --- a/examples/protocols/coap_server/main/certs/coap_server.crt +++ b/examples/protocols/coap_server/main/certs/coap_server.crt @@ -32,9 +32,9 @@ Certificate: 3b:e3 Exponent: 65537 (0x10001) X509v3 extensions: - X509v3 Extended Key Usage: + X509v3 Extended Key Usage: TLS Web Server Authentication - X509v3 CRL Distribution Points: + X509v3 CRL Distribution Points: Full Name: URI:http://www.example.com/example_ca.crl diff --git a/examples/protocols/esp_http_client/Makefile b/examples/protocols/esp_http_client/Makefile index 50d3b5f354..0ffb00b4a9 100644 --- a/examples/protocols/esp_http_client/Makefile +++ b/examples/protocols/esp_http_client/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := esp-http-client-example EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/esp_http_client/main/CMakeLists.txt b/examples/protocols/esp_http_client/main/CMakeLists.txt index 8cc92e71e8..2cb6a74b8a 100644 --- a/examples/protocols/esp_http_client/main/CMakeLists.txt +++ b/examples/protocols/esp_http_client/main/CMakeLists.txt @@ -3,4 +3,4 @@ # (If this was a component, we would set COMPONENT_EMBED_TXTFILES here.) idf_component_register(SRCS "esp_http_client_example.c" INCLUDE_DIRS "." - EMBED_TXTFILES howsmyssl_com_root_cert.pem) \ No newline at end of file + EMBED_TXTFILES howsmyssl_com_root_cert.pem) diff --git a/examples/protocols/esp_local_ctrl/Makefile b/examples/protocols/esp_local_ctrl/Makefile index e3e0a7ac6d..488182621a 100644 --- a/examples/protocols/esp_local_ctrl/Makefile +++ b/examples/protocols/esp_local_ctrl/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := esp_local_ctrl include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/http2_request/Makefile b/examples/protocols/http2_request/Makefile index f7831273cf..aaa24ef2b8 100644 --- a/examples/protocols/http2_request/Makefile +++ b/examples/protocols/http2_request/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := http2-request EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/http2_request/main/CMakeLists.txt b/examples/protocols/http2_request/main/CMakeLists.txt index defbb29583..40f03c8800 100644 --- a/examples/protocols/http2_request/main/CMakeLists.txt +++ b/examples/protocols/http2_request/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "http2_request_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/http2_request/main/http2_request_example_main.c b/examples/protocols/http2_request/main/http2_request_example_main.c index 839c1474df..0dc6dfd124 100644 --- a/examples/protocols/http2_request/main/http2_request_example_main.c +++ b/examples/protocols/http2_request/main/http2_request_example_main.c @@ -1,5 +1,5 @@ /* HTTP2 GET Example using nghttp2 - + Contacts http2.golang.org and executes the GET/PUT requests. A thin API wrapper on top of nghttp2, to properly demonstrate the interactions. diff --git a/examples/protocols/http_request/Makefile b/examples/protocols/http_request/Makefile index 3d31a53068..0470291832 100644 --- a/examples/protocols/http_request/Makefile +++ b/examples/protocols/http_request/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := http-request EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/http_request/main/CMakeLists.txt b/examples/protocols/http_request/main/CMakeLists.txt index b4b91e9b87..60c38211d4 100644 --- a/examples/protocols/http_request/main/CMakeLists.txt +++ b/examples/protocols/http_request/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "http_request_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/http_server/advanced_tests/Makefile b/examples/protocols/http_server/advanced_tests/Makefile index 07699abcd2..e66a747330 100644 --- a/examples/protocols/http_server/advanced_tests/Makefile +++ b/examples/protocols/http_server/advanced_tests/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := tests EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/http_server/advanced_tests/main/CMakeLists.txt b/examples/protocols/http_server/advanced_tests/main/CMakeLists.txt index 53a3e4d8b9..dbb0d54046 100644 --- a/examples/protocols/http_server/advanced_tests/main/CMakeLists.txt +++ b/examples/protocols/http_server/advanced_tests/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "main.c" "tests.c" - INCLUDE_DIRS "." "include") \ No newline at end of file + INCLUDE_DIRS "." "include") diff --git a/examples/protocols/http_server/advanced_tests/main/component.mk b/examples/protocols/http_server/advanced_tests/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/protocols/http_server/advanced_tests/main/component.mk +++ b/examples/protocols/http_server/advanced_tests/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/protocols/http_server/advanced_tests/main/main.c b/examples/protocols/http_server/advanced_tests/main/main.c index 702601513a..59abfd6e4e 100644 --- a/examples/protocols/http_server/advanced_tests/main/main.c +++ b/examples/protocols/http_server/advanced_tests/main/main.c @@ -20,7 +20,7 @@ static const char *TAG = "example"; -static void disconnect_handler(void* arg, esp_event_base_t event_base, +static void disconnect_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { httpd_handle_t* server = (httpd_handle_t*) arg; @@ -31,7 +31,7 @@ static void disconnect_handler(void* arg, esp_event_base_t event_base, } } -static void connect_handler(void* arg, esp_event_base_t event_base, +static void connect_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { httpd_handle_t* server = (httpd_handle_t*) arg; diff --git a/examples/protocols/http_server/advanced_tests/main/tests.c b/examples/protocols/http_server/advanced_tests/main/tests.c index fcd9fb6248..3780670a53 100644 --- a/examples/protocols/http_server/advanced_tests/main/tests.c +++ b/examples/protocols/http_server/advanced_tests/main/tests.c @@ -27,8 +27,8 @@ static esp_err_t hello_get_handler(httpd_req_t *req) #undef STR } -/* This handler is intended to check what happens in case of empty values of headers. - * Here `Header2` is an empty header and `Header1` and `Header3` will have `Value1` +/* This handler is intended to check what happens in case of empty values of headers. + * Here `Header2` is an empty header and `Header1` and `Header3` will have `Value1` * and `Value3` in them. */ static esp_err_t test_header_get_handler(httpd_req_t *req) { diff --git a/examples/protocols/http_server/file_serving/Makefile b/examples/protocols/http_server/file_serving/Makefile index f53a50600b..a1b5c46d99 100644 --- a/examples/protocols/http_server/file_serving/Makefile +++ b/examples/protocols/http_server/file_serving/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := file_server EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/http_server/file_serving/main/CMakeLists.txt b/examples/protocols/http_server/file_serving/main/CMakeLists.txt index 2354c4b1be..620a8a18ed 100644 --- a/examples/protocols/http_server/file_serving/main/CMakeLists.txt +++ b/examples/protocols/http_server/file_serving/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "main.c" "file_server.c" INCLUDE_DIRS "." - EMBED_FILES "favicon.ico" "upload_script.html") \ No newline at end of file + EMBED_FILES "favicon.ico" "upload_script.html") diff --git a/examples/protocols/http_server/file_serving/main/main.c b/examples/protocols/http_server/file_serving/main/main.c index 1ab9b0f3c6..c91869c8b7 100644 --- a/examples/protocols/http_server/file_serving/main/main.c +++ b/examples/protocols/http_server/file_serving/main/main.c @@ -158,7 +158,7 @@ void sdcard_mount(void) .quadhd_io_num = -1, .max_transfer_sz = 4000, }; - + esp_err_t ret = spi_bus_initialize(host.slot, &bus_cfg, SPI_DMA_CHAN); if (ret != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize bus."); @@ -181,7 +181,7 @@ void sdcard_mount(void) ESP_LOGE(TAG, "Failed to initialize the card (%s). " "Make sure SD card lines have pull-up resistors in place.", esp_err_to_name(ret)); } - ESP_ERROR_CHECK(ret); + ESP_ERROR_CHECK(ret); } sdmmc_card_print_info(stdout, card); @@ -211,7 +211,7 @@ void app_main(void) #ifdef CONFIG_EXAMPLE_MOUNT_SD_CARD sdcard_mount(); #endif - + ESP_ERROR_CHECK(nvs_flash_init()); ESP_ERROR_CHECK(esp_netif_init()); ESP_ERROR_CHECK(esp_event_loop_create_default()); diff --git a/examples/protocols/http_server/file_serving/partitions_example.csv b/examples/protocols/http_server/file_serving/partitions_example.csv index 0eebc192ae..48947d9341 100644 --- a/examples/protocols/http_server/file_serving/partitions_example.csv +++ b/examples/protocols/http_server/file_serving/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, spiffs, , 0xF0000, +storage, data, spiffs, , 0xF0000, diff --git a/examples/protocols/http_server/file_serving/sdkconfig.ci b/examples/protocols/http_server/file_serving/sdkconfig.ci index d85b78700e..a34935d196 100644 --- a/examples/protocols/http_server/file_serving/sdkconfig.ci +++ b/examples/protocols/http_server/file_serving/sdkconfig.ci @@ -1,3 +1,3 @@ CONFIG_EXAMPLE_MOUNT_SD_CARD=y CONFIG_EXAMPLE_FORMAT_IF_MOUNT_SDCARD_FAILED=y -CONFIG_EXAMPLE_USE_SDMMC_HOST=y \ No newline at end of file +CONFIG_EXAMPLE_USE_SDMMC_HOST=y diff --git a/examples/protocols/http_server/persistent_sockets/CMakeLists.txt b/examples/protocols/http_server/persistent_sockets/CMakeLists.txt index b6d34fb24b..616af7f2b4 100644 --- a/examples/protocols/http_server/persistent_sockets/CMakeLists.txt +++ b/examples/protocols/http_server/persistent_sockets/CMakeLists.txt @@ -8,4 +8,3 @@ set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_exam include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(persistent_sockets) - diff --git a/examples/protocols/http_server/persistent_sockets/Makefile b/examples/protocols/http_server/persistent_sockets/Makefile index f20d51a636..d588fe6ac8 100644 --- a/examples/protocols/http_server/persistent_sockets/Makefile +++ b/examples/protocols/http_server/persistent_sockets/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := persistent_sockets EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/http_server/persistent_sockets/main/CMakeLists.txt b/examples/protocols/http_server/persistent_sockets/main/CMakeLists.txt index e0287b7b9e..cf2c455cb5 100644 --- a/examples/protocols/http_server/persistent_sockets/main/CMakeLists.txt +++ b/examples/protocols/http_server/persistent_sockets/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/http_server/persistent_sockets/main/component.mk b/examples/protocols/http_server/persistent_sockets/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/protocols/http_server/persistent_sockets/main/component.mk +++ b/examples/protocols/http_server/persistent_sockets/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/protocols/http_server/persistent_sockets/main/main.c b/examples/protocols/http_server/persistent_sockets/main/main.c index 3a38061261..7a8231cc5c 100644 --- a/examples/protocols/http_server/persistent_sockets/main/main.c +++ b/examples/protocols/http_server/persistent_sockets/main/main.c @@ -23,7 +23,7 @@ */ static const char *TAG = "example"; - + /* Function to free context */ static void adder_free_func(void *ctx) { @@ -189,7 +189,7 @@ static void stop_webserver(httpd_handle_t server) } -static void disconnect_handler(void* arg, esp_event_base_t event_base, +static void disconnect_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { httpd_handle_t* server = (httpd_handle_t*) arg; @@ -200,7 +200,7 @@ static void disconnect_handler(void* arg, esp_event_base_t event_base, } } -static void connect_handler(void* arg, esp_event_base_t event_base, +static void connect_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { httpd_handle_t* server = (httpd_handle_t*) arg; diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/views/Light.vue b/examples/protocols/http_server/restful_server/front/web-demo/src/views/Light.vue index bcfbe56e4e..b3742bb0da 100644 --- a/examples/protocols/http_server/restful_server/front/web-demo/src/views/Light.vue +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/views/Light.vue @@ -60,4 +60,3 @@ export default { } }; - diff --git a/examples/protocols/http_server/restful_server/main/CMakeLists.txt b/examples/protocols/http_server/restful_server/main/CMakeLists.txt index 4e35a40f23..0c90965da3 100644 --- a/examples/protocols/http_server/restful_server/main/CMakeLists.txt +++ b/examples/protocols/http_server/restful_server/main/CMakeLists.txt @@ -1,4 +1,4 @@ -idf_component_register(SRCS "esp_rest_main.c" +idf_component_register(SRCS "esp_rest_main.c" "rest_server.c" INCLUDE_DIRS ".") diff --git a/examples/protocols/http_server/restful_server/partitions_example.csv b/examples/protocols/http_server/restful_server/partitions_example.csv index a5b16e199b..2ec5676bb1 100644 --- a/examples/protocols/http_server/restful_server/partitions_example.csv +++ b/examples/protocols/http_server/restful_server/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -www, data, spiffs, , 2M, +www, data, spiffs, , 2M, diff --git a/examples/protocols/http_server/simple/Makefile b/examples/protocols/http_server/simple/Makefile index 85660a2078..a770986d6c 100644 --- a/examples/protocols/http_server/simple/Makefile +++ b/examples/protocols/http_server/simple/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := simple EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/http_server/simple/main/CMakeLists.txt b/examples/protocols/http_server/simple/main/CMakeLists.txt index e0287b7b9e..cf2c455cb5 100644 --- a/examples/protocols/http_server/simple/main/CMakeLists.txt +++ b/examples/protocols/http_server/simple/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/http_server/simple/main/component.mk b/examples/protocols/http_server/simple/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/protocols/http_server/simple/main/component.mk +++ b/examples/protocols/http_server/simple/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/protocols/http_server/ws_echo_server/Makefile b/examples/protocols/http_server/ws_echo_server/Makefile index 394c5e53a5..6efb79dcb4 100644 --- a/examples/protocols/http_server/ws_echo_server/Makefile +++ b/examples/protocols/http_server/ws_echo_server/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := ws_echo_server EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/http_server/ws_echo_server/main/CMakeLists.txt b/examples/protocols/http_server/ws_echo_server/main/CMakeLists.txt index addcda4538..45de9dcb06 100644 --- a/examples/protocols/http_server/ws_echo_server/main/CMakeLists.txt +++ b/examples/protocols/http_server/ws_echo_server/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "ws_echo_server.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/http_server/ws_echo_server/main/component.mk b/examples/protocols/http_server/ws_echo_server/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/protocols/http_server/ws_echo_server/main/component.mk +++ b/examples/protocols/http_server/ws_echo_server/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/protocols/http_server/ws_echo_server/main/ws_echo_server.c b/examples/protocols/http_server/ws_echo_server/main/ws_echo_server.c index e10b0ba606..684500c11d 100644 --- a/examples/protocols/http_server/ws_echo_server/main/ws_echo_server.c +++ b/examples/protocols/http_server/ws_echo_server/main/ws_echo_server.c @@ -124,7 +124,7 @@ static void stop_webserver(httpd_handle_t server) httpd_stop(server); } -static void disconnect_handler(void* arg, esp_event_base_t event_base, +static void disconnect_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { httpd_handle_t* server = (httpd_handle_t*) arg; @@ -135,7 +135,7 @@ static void disconnect_handler(void* arg, esp_event_base_t event_base, } } -static void connect_handler(void* arg, esp_event_base_t event_base, +static void connect_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { httpd_handle_t* server = (httpd_handle_t*) arg; diff --git a/examples/protocols/https_mbedtls/Makefile b/examples/protocols/https_mbedtls/Makefile index bb1cf2f18e..2658f2fc73 100644 --- a/examples/protocols/https_mbedtls/Makefile +++ b/examples/protocols/https_mbedtls/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := https-mbedtls EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/https_mbedtls/main/CMakeLists.txt b/examples/protocols/https_mbedtls/main/CMakeLists.txt index fb3ca969df..bdc0271b9c 100644 --- a/examples/protocols/https_mbedtls/main/CMakeLists.txt +++ b/examples/protocols/https_mbedtls/main/CMakeLists.txt @@ -2,4 +2,4 @@ # # (If this was a component, we would set COMPONENT_EMBED_TXTFILES here.) idf_component_register(SRCS "https_mbedtls_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/https_mbedtls/main/component.mk b/examples/protocols/https_mbedtls/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/protocols/https_mbedtls/main/component.mk +++ b/examples/protocols/https_mbedtls/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/protocols/https_request/Makefile b/examples/protocols/https_request/Makefile index f81163b00d..729577f212 100644 --- a/examples/protocols/https_request/Makefile +++ b/examples/protocols/https_request/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := https_request EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/https_request/main/CMakeLists.txt b/examples/protocols/https_request/main/CMakeLists.txt index 8e5f301c3a..611302d838 100644 --- a/examples/protocols/https_request/main/CMakeLists.txt +++ b/examples/protocols/https_request/main/CMakeLists.txt @@ -2,4 +2,4 @@ # # (If this was a component, we would set COMPONENT_EMBED_TXTFILES here.) idf_component_register(SRCS "https_request_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/https_request/main/component.mk b/examples/protocols/https_request/main/component.mk index 17fe35eb4d..a98f634eae 100644 --- a/examples/protocols/https_request/main/component.mk +++ b/examples/protocols/https_request/main/component.mk @@ -2,5 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - - diff --git a/examples/protocols/https_server/simple/Makefile b/examples/protocols/https_server/simple/Makefile index 6747d5ff3d..aa6513d957 100644 --- a/examples/protocols/https_server/simple/Makefile +++ b/examples/protocols/https_server/simple/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := https_server EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/https_server/simple/main/CMakeLists.txt b/examples/protocols/https_server/simple/main/CMakeLists.txt index feca398b8e..149db35093 100644 --- a/examples/protocols/https_server/simple/main/CMakeLists.txt +++ b/examples/protocols/https_server/simple/main/CMakeLists.txt @@ -1,4 +1,4 @@ idf_component_register(SRCS "main.c" INCLUDE_DIRS "." EMBED_TXTFILES "certs/cacert.pem" - "certs/prvtkey.pem") \ No newline at end of file + "certs/prvtkey.pem") diff --git a/examples/protocols/https_server/wss_server/Makefile b/examples/protocols/https_server/wss_server/Makefile index 77c7ae0295..1f777796c0 100644 --- a/examples/protocols/https_server/wss_server/Makefile +++ b/examples/protocols/https_server/wss_server/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := wss_server EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/https_server/wss_server/main/wss_server_example.c b/examples/protocols/https_server/wss_server/main/wss_server_example.c index 9bd4c8e804..fdc9f8d09f 100644 --- a/examples/protocols/https_server/wss_server/main/wss_server_example.c +++ b/examples/protocols/https_server/wss_server/main/wss_server_example.c @@ -278,5 +278,3 @@ void app_main(void) */ wss_server_send_messages(&server); } - - diff --git a/examples/protocols/https_x509_bundle/Makefile b/examples/protocols/https_x509_bundle/Makefile index b28091736d..c4027b2d60 100644 --- a/examples/protocols/https_x509_bundle/Makefile +++ b/examples/protocols/https_x509_bundle/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := https_x509_bundle EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/https_x509_bundle/certs/Digicert_global_root.pem b/examples/protocols/https_x509_bundle/certs/Digicert_global_root.pem index 7cb63f286b..fd4341df26 100644 --- a/examples/protocols/https_x509_bundle/certs/Digicert_global_root.pem +++ b/examples/protocols/https_x509_bundle/certs/Digicert_global_root.pem @@ -20,6 +20,3 @@ PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= -----END CERTIFICATE----- - - - diff --git a/examples/protocols/https_x509_bundle/main/CMakeLists.txt b/examples/protocols/https_x509_bundle/main/CMakeLists.txt index cdc8385419..0ec7175376 100644 --- a/examples/protocols/https_x509_bundle/main/CMakeLists.txt +++ b/examples/protocols/https_x509_bundle/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "https_x509_bundle_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/https_x509_bundle/main/component.mk b/examples/protocols/https_x509_bundle/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/protocols/https_x509_bundle/main/component.mk +++ b/examples/protocols/https_x509_bundle/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/protocols/https_x509_bundle/sdkconfig.defaults b/examples/protocols/https_x509_bundle/sdkconfig.defaults index 8e594d487a..bb7f2c32ae 100644 --- a/examples/protocols/https_x509_bundle/sdkconfig.defaults +++ b/examples/protocols/https_x509_bundle/sdkconfig.defaults @@ -2,4 +2,4 @@ # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE=y CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE=y -CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE_PATH="certs" \ No newline at end of file +CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE_PATH="certs" diff --git a/examples/protocols/icmp_echo/Makefile b/examples/protocols/icmp_echo/Makefile index b240450053..236463e709 100644 --- a/examples/protocols/icmp_echo/Makefile +++ b/examples/protocols/icmp_echo/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := icmp-echo EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/icmp_echo/main/echo_example_main.c b/examples/protocols/icmp_echo/main/echo_example_main.c index eb400bdde2..04c88defc8 100644 --- a/examples/protocols/icmp_echo/main/echo_example_main.c +++ b/examples/protocols/icmp_echo/main/echo_example_main.c @@ -111,7 +111,7 @@ static int do_ping_cmd(int argc, char **argv) struct sockaddr_in6 sock_addr6; ip_addr_t target_addr; memset(&target_addr, 0, sizeof(target_addr)); - + if (inet_pton(AF_INET6, ping_args.host->sval[0], &sock_addr6.sin6_addr) == 1) { /* convert ip6 string to ip6 address */ ipaddr_aton(ping_args.host->sval[0], &target_addr); diff --git a/examples/protocols/mdns/Makefile b/examples/protocols/mdns/Makefile index 91a417c7cc..5b69ef89c2 100644 --- a/examples/protocols/mdns/Makefile +++ b/examples/protocols/mdns/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := mdns-test EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/mdns/main/CMakeLists.txt b/examples/protocols/mdns/main/CMakeLists.txt index 141d1e30dc..eb0e6d9eb4 100644 --- a/examples/protocols/mdns/main/CMakeLists.txt +++ b/examples/protocols/mdns/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "mdns_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/mdns/main/mdns_example_main.c b/examples/protocols/mdns/main/mdns_example_main.c index 7d713c7129..8f655fdad0 100644 --- a/examples/protocols/mdns/main/mdns_example_main.c +++ b/examples/protocols/mdns/main/mdns_example_main.c @@ -256,4 +256,4 @@ static void query_mdns_host_with_getaddrinfo(char * host) } } } -#endif \ No newline at end of file +#endif diff --git a/examples/protocols/mdns/sdkconfig.ci b/examples/protocols/mdns/sdkconfig.ci index 60158c45cd..42c55b8c0a 100644 --- a/examples/protocols/mdns/sdkconfig.ci +++ b/examples/protocols/mdns/sdkconfig.ci @@ -1,3 +1,3 @@ CONFIG_MDNS_RESOLVE_TEST_SERVICES=y CONFIG_MDNS_ADD_MAC_TO_HOSTNAME=y -CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y \ No newline at end of file +CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y diff --git a/examples/protocols/modbus/mb_example_common/CMakeLists.txt b/examples/protocols/modbus/mb_example_common/CMakeLists.txt index 5dceb368f7..9b126758b8 100644 --- a/examples/protocols/modbus/mb_example_common/CMakeLists.txt +++ b/examples/protocols/modbus/mb_example_common/CMakeLists.txt @@ -3,4 +3,4 @@ cmake_minimum_required(VERSION 3.5) idf_component_register(SRCS "modbus_params.c" INCLUDE_DIRS "include" - PRIV_REQUIRES freemodbus) \ No newline at end of file + PRIV_REQUIRES freemodbus) diff --git a/examples/protocols/modbus/mb_example_common/component.mk b/examples/protocols/modbus/mb_example_common/component.mk index 9b8ec90274..f0dc18cceb 100644 --- a/examples/protocols/modbus/mb_example_common/component.mk +++ b/examples/protocols/modbus/mb_example_common/component.mk @@ -2,4 +2,4 @@ # Component Makefile # COMPONENT_ADD_INCLUDEDIRS := include -COMPONENT_SRCDIRS := . \ No newline at end of file +COMPONENT_SRCDIRS := . diff --git a/examples/protocols/modbus/mb_example_common/modbus_params.c b/examples/protocols/modbus/mb_example_common/modbus_params.c index 5a0bcadb94..ab31ba4346 100644 --- a/examples/protocols/modbus/mb_example_common/modbus_params.c +++ b/examples/protocols/modbus/mb_example_common/modbus_params.c @@ -14,4 +14,3 @@ input_reg_params_t input_reg_params = { 0 }; coil_reg_params_t coil_reg_params = { 0 }; discrete_reg_params_t discrete_reg_params = { 0 }; - diff --git a/examples/protocols/modbus/serial/mb_master/Makefile b/examples/protocols/modbus/serial/mb_master/Makefile index 8119959ff0..458a97bca7 100644 --- a/examples/protocols/modbus/serial/mb_master/Makefile +++ b/examples/protocols/modbus/serial/mb_master/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := modbus_master EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/protocols/modbus/mb_example_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/modbus/serial/mb_master/main/CMakeLists.txt b/examples/protocols/modbus/serial/mb_master/main/CMakeLists.txt index 9a6cf30e85..f9ab7f6044 100644 --- a/examples/protocols/modbus/serial/mb_master/main/CMakeLists.txt +++ b/examples/protocols/modbus/serial/mb_master/main/CMakeLists.txt @@ -2,4 +2,3 @@ set(PROJECT_NAME "modbus_master") idf_component_register(SRCS "master.c" INCLUDE_DIRS ".") - diff --git a/examples/protocols/modbus/serial/mb_master/main/master.c b/examples/protocols/modbus/serial/mb_master/main/master.c index 227785db9d..6b71a5747d 100644 --- a/examples/protocols/modbus/serial/mb_master/main/master.c +++ b/examples/protocols/modbus/serial/mb_master/main/master.c @@ -148,12 +148,12 @@ static void master_operation_func(void *arg) float value = 0; bool alarm_state = false; const mb_parameter_descriptor_t* param_descriptor = NULL; - + ESP_LOGI(MASTER_TAG, "Start modbus test..."); - + for(uint16_t retry = 0; retry <= MASTER_MAX_RETRY && (!alarm_state); retry++) { // Read all found characteristics from slave(s) - for (uint16_t cid = 0; (err != ESP_ERR_NOT_FOUND) && cid < MASTER_MAX_CIDS; cid++) + for (uint16_t cid = 0; (err != ESP_ERR_NOT_FOUND) && cid < MASTER_MAX_CIDS; cid++) { // Get data from parameters description table // and use this information to fill the characteristics description table @@ -244,10 +244,10 @@ static void master_operation_func(void *arg) vTaskDelay(POLL_TIMEOUT_TICS); // timeout between polls } } - vTaskDelay(UPDATE_CIDS_TIMEOUT_TICS); // + vTaskDelay(UPDATE_CIDS_TIMEOUT_TICS); // } - - if (alarm_state) { + + if (alarm_state) { ESP_LOGI(MASTER_TAG, "Alarm triggered by cid #%d.", param_descriptor->cid); } else { @@ -315,6 +315,6 @@ void app_main(void) // Initialization of device peripheral and objects ESP_ERROR_CHECK(master_init()); vTaskDelay(10); - + master_operation_func(NULL); } diff --git a/examples/protocols/modbus/serial/mb_slave/Makefile b/examples/protocols/modbus/serial/mb_slave/Makefile index b9df4baae0..c3aa218cf1 100644 --- a/examples/protocols/modbus/serial/mb_slave/Makefile +++ b/examples/protocols/modbus/serial/mb_slave/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := modbus_slave EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/protocols/modbus/mb_example_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/modbus/serial/mb_slave/main/CMakeLists.txt b/examples/protocols/modbus/serial/mb_slave/main/CMakeLists.txt index b4a0874a36..561fa6c6c5 100644 --- a/examples/protocols/modbus/serial/mb_slave/main/CMakeLists.txt +++ b/examples/protocols/modbus/serial/mb_slave/main/CMakeLists.txt @@ -1,4 +1,4 @@ set(PROJECT_NAME "modbus_slave") idf_component_register(SRCS "slave.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/modbus/serial/mb_slave/main/slave.c b/examples/protocols/modbus/serial/mb_slave/main/slave.c index 70a23d37cd..9d8763a238 100644 --- a/examples/protocols/modbus/serial/mb_slave/main/slave.c +++ b/examples/protocols/modbus/serial/mb_slave/main/slave.c @@ -128,7 +128,7 @@ void app_main(void) // Starts of modbus controller and stack ESP_ERROR_CHECK(mbc_slave_start()); - + // Set UART pin numbers ESP_ERROR_CHECK(uart_set_pin(MB_PORT_NUM, CONFIG_MB_UART_TXD, CONFIG_MB_UART_RXD, CONFIG_MB_UART_RTS, @@ -136,7 +136,7 @@ void app_main(void) // Set UART driver mode to Half Duplex ESP_ERROR_CHECK(uart_set_mode(MB_PORT_NUM, UART_MODE_RS485_HALF_DUPLEX)); - + ESP_LOGI(SLAVE_TAG, "Modbus slave stack initialized."); ESP_LOGI(SLAVE_TAG, "Start modbus test..."); diff --git a/examples/protocols/modbus/tcp/mb_tcp_master/main/CMakeLists.txt b/examples/protocols/modbus/tcp/mb_tcp_master/main/CMakeLists.txt index 6a75e2d600..842f186326 100644 --- a/examples/protocols/modbus/tcp/mb_tcp_master/main/CMakeLists.txt +++ b/examples/protocols/modbus/tcp/mb_tcp_master/main/CMakeLists.txt @@ -2,4 +2,3 @@ set(PROJECT_NAME "modbus_tcp_master") idf_component_register(SRCS "tcp_master.c" INCLUDE_DIRS ".") - diff --git a/examples/protocols/modbus/tcp/mb_tcp_master/main/tcp_master.c b/examples/protocols/modbus/tcp/mb_tcp_master/main/tcp_master.c index 5a9cb62947..375cf9ca34 100644 --- a/examples/protocols/modbus/tcp/mb_tcp_master/main/tcp_master.c +++ b/examples/protocols/modbus/tcp/mb_tcp_master/main/tcp_master.c @@ -77,7 +77,7 @@ #define MB_MDNS_INSTANCE(pref) pref"mb_master_tcp" -// Enumeration of modbus device addresses accessed by master device +// Enumeration of modbus device addresses accessed by master device // Each address in the table is a index of TCP slave ip address in mb_communication_info_t::tcp_ip_addr table enum { MB_DEVICE_ADDR1 = 1, // Slave address 1 @@ -432,12 +432,12 @@ static void master_operation_func(void *arg) float value = 0; bool alarm_state = false; const mb_parameter_descriptor_t* param_descriptor = NULL; - + ESP_LOGI(MASTER_TAG, "Start modbus test..."); - + for(uint16_t retry = 0; retry <= MASTER_MAX_RETRY && (!alarm_state); retry++) { // Read all found characteristics from slave(s) - for (uint16_t cid = 0; (err != ESP_ERR_NOT_FOUND) && cid < MASTER_MAX_CIDS; cid++) + for (uint16_t cid = 0; (err != ESP_ERR_NOT_FOUND) && cid < MASTER_MAX_CIDS; cid++) { // Get data from parameters description table // and use this information to fill the characteristics description table @@ -447,7 +447,7 @@ static void master_operation_func(void *arg) void* temp_data_ptr = master_get_param_data(param_descriptor); assert(temp_data_ptr); uint8_t type = 0; - err = mbc_master_get_parameter(cid, (char*)param_descriptor->param_key, + err = mbc_master_get_parameter(cid, (char*)param_descriptor->param_key, (uint8_t*)&value, &type); if (err == ESP_OK) { *(float*)temp_data_ptr = value; @@ -455,9 +455,9 @@ static void master_operation_func(void *arg) (param_descriptor->mb_param_type == MB_PARAM_INPUT)) { ESP_LOGI(MASTER_TAG, "Characteristic #%d %s (%s) value = %f (0x%x) read successful.", param_descriptor->cid, - (char*)param_descriptor->param_key, + (char*)param_descriptor->param_key, (char*)param_descriptor->param_units, - value, + value, *(uint32_t*)temp_data_ptr); if (((value > param_descriptor->param_opts.max) || (value < param_descriptor->param_opts.min))) { @@ -469,7 +469,7 @@ static void master_operation_func(void *arg) const char* rw_str = (state & param_descriptor->param_opts.opt1) ? "ON" : "OFF"; ESP_LOGI(MASTER_TAG, "Characteristic #%d %s (%s) value = %s (0x%x) read successful.", param_descriptor->cid, - (char*)param_descriptor->param_key, + (char*)param_descriptor->param_key, (char*)param_descriptor->param_units, (const char*)rw_str, *(uint16_t*)temp_data_ptr); @@ -490,8 +490,8 @@ static void master_operation_func(void *arg) } vTaskDelay(UPDATE_CIDS_TIMEOUT_TICS); } - - if (alarm_state) { + + if (alarm_state) { ESP_LOGI(MASTER_TAG, "Alarm triggered by cid #%d.", param_descriptor->cid); } else { @@ -591,7 +591,7 @@ void app_main(void) // Initialization of device peripheral and objects ESP_ERROR_CHECK(master_init()); vTaskDelay(10); - + master_operation_func(NULL); #if CONFIG_MB_MDNS_IP_RESOLVER master_destroy_slave_list(slave_ip_address_table); diff --git a/examples/protocols/modbus/tcp/mb_tcp_master/sdkconfig.defaults b/examples/protocols/modbus/tcp/mb_tcp_master/sdkconfig.defaults index baccdaf780..36ecd5803e 100644 --- a/examples/protocols/modbus/tcp/mb_tcp_master/sdkconfig.defaults +++ b/examples/protocols/modbus/tcp/mb_tcp_master/sdkconfig.defaults @@ -16,4 +16,4 @@ CONFIG_FMB_TIMER_INDEX=0 CONFIG_FMB_TIMER_ISR_IN_IRAM=y CONFIG_MB_MDNS_IP_RESOLVER=n CONFIG_MB_SLAVE_IP_FROM_STDIN=y -CONFIG_EXAMPLE_CONNECT_IPV6=n \ No newline at end of file +CONFIG_EXAMPLE_CONNECT_IPV6=n diff --git a/examples/protocols/modbus/tcp/mb_tcp_slave/Makefile b/examples/protocols/modbus/tcp/mb_tcp_slave/Makefile index e93a985adf..892d758c41 100644 --- a/examples/protocols/modbus/tcp/mb_tcp_slave/Makefile +++ b/examples/protocols/modbus/tcp/mb_tcp_slave/Makefile @@ -8,4 +8,3 @@ EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/protocols/modbus/mb_example_common EXTRA_COMPONENT_DIRS += $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/modbus/tcp/mb_tcp_slave/main/CMakeLists.txt b/examples/protocols/modbus/tcp/mb_tcp_slave/main/CMakeLists.txt index 33dbfa35ac..588a20f67b 100644 --- a/examples/protocols/modbus/tcp/mb_tcp_slave/main/CMakeLists.txt +++ b/examples/protocols/modbus/tcp/mb_tcp_slave/main/CMakeLists.txt @@ -1,4 +1,4 @@ set(PROJECT_NAME "modbus_tcp_slave") idf_component_register(SRCS "tcp_slave.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/modbus/tcp/mb_tcp_slave/main/Kconfig.projbuild b/examples/protocols/modbus/tcp/mb_tcp_slave/main/Kconfig.projbuild index 1c6d766d5b..45c10bb50e 100644 --- a/examples/protocols/modbus/tcp/mb_tcp_slave/main/Kconfig.projbuild +++ b/examples/protocols/modbus/tcp/mb_tcp_slave/main/Kconfig.projbuild @@ -15,4 +15,4 @@ menu "Modbus Example Configuration" This option allows to use mDNS service to resolve IP addresses of the Modbus slaves. If the option is disabled the ip addresses of slaves are defined in static table. -endmenu \ No newline at end of file +endmenu diff --git a/examples/protocols/modbus/tcp/mb_tcp_slave/main/tcp_slave.c b/examples/protocols/modbus/tcp/mb_tcp_slave/main/tcp_slave.c index a74b0c2709..b1c1085591 100644 --- a/examples/protocols/modbus/tcp/mb_tcp_slave/main/tcp_slave.c +++ b/examples/protocols/modbus/tcp/mb_tcp_slave/main/tcp_slave.c @@ -168,10 +168,10 @@ void app_main(void) void* mbc_slave_handler = NULL; ESP_ERROR_CHECK(mbc_slave_init_tcp(&mbc_slave_handler)); // Initialization of Modbus controller - + mb_param_info_t reg_info; // keeps the Modbus registers access information mb_register_area_descriptor_t reg_area; // Modbus register area descriptor structure - + mb_communication_info_t comm_info = { 0 }; comm_info.ip_port = MB_TCP_PORT_NUMBER; #if !CONFIG_EXAMPLE_CONNECT_IPV6 diff --git a/examples/protocols/modbus/tcp/mb_tcp_slave/sdkconfig.defaults b/examples/protocols/modbus/tcp/mb_tcp_slave/sdkconfig.defaults index 578350f512..6184c9f17f 100644 --- a/examples/protocols/modbus/tcp/mb_tcp_slave/sdkconfig.defaults +++ b/examples/protocols/modbus/tcp/mb_tcp_slave/sdkconfig.defaults @@ -18,4 +18,4 @@ CONFIG_MB_MDNS_IP_RESOLVER=n CONFIG_MB_SLAVE_IP_FROM_STDIN=y CONFIG_MB_SLAVE_ADDR=1 CONFIG_LOG_DEFAULT_LEVEL_DEBUG=y -CONFIG_EXAMPLE_CONNECT_IPV6=n \ No newline at end of file +CONFIG_EXAMPLE_CONNECT_IPV6=n diff --git a/examples/protocols/mqtt/ssl/main/CMakeLists.txt b/examples/protocols/mqtt/ssl/main/CMakeLists.txt index e7392559ee..61fac40e63 100644 --- a/examples/protocols/mqtt/ssl/main/CMakeLists.txt +++ b/examples/protocols/mqtt/ssl/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/mqtt/ssl/main/mqtt_eclipse_org.pem b/examples/protocols/mqtt/ssl/main/mqtt_eclipse_org.pem index edb593bcf6..0002462ce8 100644 --- a/examples/protocols/mqtt/ssl/main/mqtt_eclipse_org.pem +++ b/examples/protocols/mqtt/ssl/main/mqtt_eclipse_org.pem @@ -24,4 +24,4 @@ wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6 KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg== ------END CERTIFICATE----- \ No newline at end of file +-----END CERTIFICATE----- diff --git a/examples/protocols/mqtt/ssl_ds/main/CMakeLists.txt b/examples/protocols/mqtt/ssl_ds/main/CMakeLists.txt index 88994941fd..61fac40e63 100644 --- a/examples/protocols/mqtt/ssl_ds/main/CMakeLists.txt +++ b/examples/protocols/mqtt/ssl_ds/main/CMakeLists.txt @@ -1,3 +1,2 @@ idf_component_register(SRCS "app_main.c" INCLUDE_DIRS ".") - diff --git a/examples/protocols/mqtt/ssl_ds/partitions.csv b/examples/protocols/mqtt/ssl_ds/partitions.csv index 45a846926a..2e1b23d522 100644 --- a/examples/protocols/mqtt/ssl_ds/partitions.csv +++ b/examples/protocols/mqtt/ssl_ds/partitions.csv @@ -4,4 +4,3 @@ nvs,data,nvs,0x9000,24K, phy_init,data,phy,0xf000,4K, pre_prov,data,nvs,0x10000,0x3000, factory,app,factory,0x20000,1M, - diff --git a/examples/protocols/mqtt/ssl_ds/sdkconfig.defaults b/examples/protocols/mqtt/ssl_ds/sdkconfig.defaults index 5e7b3e36b6..4b0421e1ab 100644 --- a/examples/protocols/mqtt/ssl_ds/sdkconfig.defaults +++ b/examples/protocols/mqtt/ssl_ds/sdkconfig.defaults @@ -1,2 +1 @@ CONFIG_PARTITION_TABLE_CUSTOM=y - diff --git a/examples/protocols/mqtt/ssl_mutual_auth/main/CMakeLists.txt b/examples/protocols/mqtt/ssl_mutual_auth/main/CMakeLists.txt index e7392559ee..61fac40e63 100644 --- a/examples/protocols/mqtt/ssl_mutual_auth/main/CMakeLists.txt +++ b/examples/protocols/mqtt/ssl_mutual_auth/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/mqtt/tcp/CMakeLists.txt b/examples/protocols/mqtt/tcp/CMakeLists.txt index 5a70e7aa01..3dd15c012a 100644 --- a/examples/protocols/mqtt/tcp/CMakeLists.txt +++ b/examples/protocols/mqtt/tcp/CMakeLists.txt @@ -7,4 +7,4 @@ cmake_minimum_required(VERSION 3.5) set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common) include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(mqtt_tcp) \ No newline at end of file +project(mqtt_tcp) diff --git a/examples/protocols/mqtt/tcp/main/CMakeLists.txt b/examples/protocols/mqtt/tcp/main/CMakeLists.txt index e7392559ee..61fac40e63 100644 --- a/examples/protocols/mqtt/tcp/main/CMakeLists.txt +++ b/examples/protocols/mqtt/tcp/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/mqtt/ws/main/CMakeLists.txt b/examples/protocols/mqtt/ws/main/CMakeLists.txt index e7392559ee..61fac40e63 100644 --- a/examples/protocols/mqtt/ws/main/CMakeLists.txt +++ b/examples/protocols/mqtt/ws/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/mqtt/wss/main/CMakeLists.txt b/examples/protocols/mqtt/wss/main/CMakeLists.txt index e7392559ee..61fac40e63 100644 --- a/examples/protocols/mqtt/wss/main/CMakeLists.txt +++ b/examples/protocols/mqtt/wss/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/mqtt/wss/main/mqtt_eclipse_org.pem b/examples/protocols/mqtt/wss/main/mqtt_eclipse_org.pem index edb593bcf6..0002462ce8 100644 --- a/examples/protocols/mqtt/wss/main/mqtt_eclipse_org.pem +++ b/examples/protocols/mqtt/wss/main/mqtt_eclipse_org.pem @@ -24,4 +24,4 @@ wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6 KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg== ------END CERTIFICATE----- \ No newline at end of file +-----END CERTIFICATE----- diff --git a/examples/protocols/openssl_client/Makefile b/examples/protocols/openssl_client/Makefile index 1ae39bf11f..4b7f97eac6 100644 --- a/examples/protocols/openssl_client/Makefile +++ b/examples/protocols/openssl_client/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := openssl_client EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/openssl_client/main/CMakeLists.txt b/examples/protocols/openssl_client/main/CMakeLists.txt index c7a8b33d91..f5a7cd6123 100644 --- a/examples/protocols/openssl_client/main/CMakeLists.txt +++ b/examples/protocols/openssl_client/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "openssl_client_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/openssl_client/main/openssl_client_example.h b/examples/protocols/openssl_client/main/openssl_client_example.h index 206d9a91b0..09782ecb52 100644 --- a/examples/protocols/openssl_client/main/openssl_client_example.h +++ b/examples/protocols/openssl_client/main/openssl_client_example.h @@ -10,12 +10,12 @@ #ifndef _OPENSSL_EXAMPLE_H_ #define _OPENSSL_EXAMPLE_H_ -/* The examples use domain of "www.baidu.com" and port number of 433 that +/* The examples use domain of "www.baidu.com" and port number of 433 that you can set via the project configuration menu. If you'd rather not, just change the below entries to strings with the config you want - ie #define OPENSSL_EXAMPLE_TARGET_NAME "www.baidu.com" - and ie #define OPENSSL_EXAMPLE_TARGET_TCP_PORT 433 + and ie #define OPENSSL_EXAMPLE_TARGET_TCP_PORT 433 */ #define OPENSSL_EXAMPLE_TARGET_NAME CONFIG_TARGET_DOMAIN #define OPENSSL_EXAMPLE_TARGET_TCP_PORT CONFIG_TARGET_PORT_NUMBER @@ -31,4 +31,3 @@ #define OPENSSL_EXAMPLE_LOCAL_TCP_PORT 443 #endif - diff --git a/examples/protocols/openssl_server/Makefile b/examples/protocols/openssl_server/Makefile index 24d020d696..9fa1b2a289 100644 --- a/examples/protocols/openssl_server/Makefile +++ b/examples/protocols/openssl_server/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := openssl_server EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/openssl_server/main/CMakeLists.txt b/examples/protocols/openssl_server/main/CMakeLists.txt index 713b0cddf2..a567653734 100644 --- a/examples/protocols/openssl_server/main/CMakeLists.txt +++ b/examples/protocols/openssl_server/main/CMakeLists.txt @@ -1,4 +1,4 @@ # Embed the certificate & key data directly in the built binary idf_component_register(SRCS "openssl_server_example_main.c" INCLUDE_DIRS "." - EMBED_TXTFILES cacert.pem prvtkey.pem) \ No newline at end of file + EMBED_TXTFILES cacert.pem prvtkey.pem) diff --git a/examples/protocols/openssl_server/main/openssl_server_example.h b/examples/protocols/openssl_server/main/openssl_server_example.h index 39276f9368..14afc27e25 100644 --- a/examples/protocols/openssl_server/main/openssl_server_example.h +++ b/examples/protocols/openssl_server/main/openssl_server_example.h @@ -21,4 +21,3 @@ #define OPENSSL_EXAMPLE_LOCAL_TCP_PORT 443 #endif - diff --git a/examples/protocols/openssl_server/main/openssl_server_example_main.c b/examples/protocols/openssl_server/main/openssl_server_example_main.c index 1a79722e6a..d500d16e2d 100644 --- a/examples/protocols/openssl_server/main/openssl_server_example_main.c +++ b/examples/protocols/openssl_server/main/openssl_server_example_main.c @@ -62,7 +62,7 @@ static void openssl_example_task(void *p) extern const unsigned char prvtkey_pem_start[] asm("_binary_prvtkey_pem_start"); extern const unsigned char prvtkey_pem_end[] asm("_binary_prvtkey_pem_end"); - const unsigned int prvtkey_pem_bytes = prvtkey_pem_end - prvtkey_pem_start; + const unsigned int prvtkey_pem_bytes = prvtkey_pem_end - prvtkey_pem_start; ESP_LOGI(TAG, "SSL server context create ......"); /* For security reasons, it is best if you can use @@ -168,7 +168,7 @@ reconnect: break; } } while (1); - + SSL_shutdown(ssl); failed5: close(new_sockfd); @@ -186,7 +186,7 @@ failed2: failed1: vTaskDelete(NULL); return ; -} +} static void openssl_server_init(void) { @@ -198,7 +198,7 @@ static void openssl_server_init(void) OPENSSL_EXAMPLE_TASK_STACK_WORDS, NULL, OPENSSL_EXAMPLE_TASK_PRIORITY, - &openssl_handle); + &openssl_handle); if (ret != pdPASS) { ESP_LOGI(TAG, "create task %s failed", OPENSSL_EXAMPLE_TASK_NAME); diff --git a/examples/protocols/pppos_client/Makefile b/examples/protocols/pppos_client/Makefile index 25571d087c..c6485ad525 100644 --- a/examples/protocols/pppos_client/Makefile +++ b/examples/protocols/pppos_client/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := pppos_client include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/pppos_client/components/modem/include/esp_modem_compat.h b/examples/protocols/pppos_client/components/modem/include/esp_modem_compat.h index 5075dd2211..592fd12e62 100644 --- a/examples/protocols/pppos_client/components/modem/include/esp_modem_compat.h +++ b/examples/protocols/pppos_client/components/modem/include/esp_modem_compat.h @@ -59,4 +59,4 @@ esp_err_t esp_modem_exit_ppp(modem_dte_t *dte) __attribute__ ((deprecated)); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/examples/protocols/pppos_client/main/CMakeLists.txt b/examples/protocols/pppos_client/main/CMakeLists.txt index 26f0eec72f..12fe56fc79 100644 --- a/examples/protocols/pppos_client/main/CMakeLists.txt +++ b/examples/protocols/pppos_client/main/CMakeLists.txt @@ -1,3 +1,2 @@ idf_component_register(SRCS "pppos_client_main.c" INCLUDE_DIRS ".") - \ No newline at end of file diff --git a/examples/protocols/slip/slip_udp/Makefile b/examples/protocols/slip/slip_udp/Makefile index 453c971b3c..866b3d6ae6 100644 --- a/examples/protocols/slip/slip_udp/Makefile +++ b/examples/protocols/slip/slip_udp/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := slip_client include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/slip/slip_udp/components/slip_modem/CMakeLists.txt b/examples/protocols/slip/slip_udp/components/slip_modem/CMakeLists.txt index 7739fdfbc2..e3fc55fbf1 100644 --- a/examples/protocols/slip/slip_udp/components/slip_modem/CMakeLists.txt +++ b/examples/protocols/slip/slip_udp/components/slip_modem/CMakeLists.txt @@ -5,4 +5,3 @@ idf_component_register( INCLUDE_DIRS "include" REQUIRES esp_netif ) - diff --git a/examples/protocols/slip/slip_udp/components/slip_modem/library/slip_modem.c b/examples/protocols/slip/slip_udp/components/slip_modem/library/slip_modem.c index 2982774d88..c6ad541629 100644 --- a/examples/protocols/slip/slip_udp/components/slip_modem/library/slip_modem.c +++ b/examples/protocols/slip/slip_udp/components/slip_modem/library/slip_modem.c @@ -233,4 +233,3 @@ static void esp_slip_modem_uart_rx_task(void *arg) vTaskDelay(1 * portTICK_PERIOD_MS); } } - diff --git a/examples/protocols/slip/slip_udp/sdkconfig.defaults b/examples/protocols/slip/slip_udp/sdkconfig.defaults index 9f3d373fa8..a0f094bcdd 100644 --- a/examples/protocols/slip/slip_udp/sdkconfig.defaults +++ b/examples/protocols/slip/slip_udp/sdkconfig.defaults @@ -1,3 +1,2 @@ # Override some defaults to enable SLIP CONFIG_LWIP_SLIP_SUPPORT=y - diff --git a/examples/protocols/sntp/Makefile b/examples/protocols/sntp/Makefile index d3e9a53f15..7ece4e2076 100644 --- a/examples/protocols/sntp/Makefile +++ b/examples/protocols/sntp/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := sntp EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/sntp/main/CMakeLists.txt b/examples/protocols/sntp/main/CMakeLists.txt index e06a3359f6..3883ffaa75 100644 --- a/examples/protocols/sntp/main/CMakeLists.txt +++ b/examples/protocols/sntp/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "sntp_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/sockets/tcp_client/Makefile b/examples/protocols/sockets/tcp_client/Makefile index eee056b3d3..87f4bb92f7 100644 --- a/examples/protocols/sockets/tcp_client/Makefile +++ b/examples/protocols/sockets/tcp_client/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := tcp_client EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/sockets/tcp_client/main/CMakeLists.txt b/examples/protocols/sockets/tcp_client/main/CMakeLists.txt index f1688dcb46..9ff632b1e0 100644 --- a/examples/protocols/sockets/tcp_client/main/CMakeLists.txt +++ b/examples/protocols/sockets/tcp_client/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "tcp_client.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/sockets/tcp_client/sdkconfig.ci b/examples/protocols/sockets/tcp_client/sdkconfig.ci index 62ac57ea21..2484db7abb 100644 --- a/examples/protocols/sockets/tcp_client/sdkconfig.ci +++ b/examples/protocols/sockets/tcp_client/sdkconfig.ci @@ -1 +1 @@ -CONFIG_EXAMPLE_SOCKET_IP_INPUT_STDIN=y \ No newline at end of file +CONFIG_EXAMPLE_SOCKET_IP_INPUT_STDIN=y diff --git a/examples/protocols/sockets/tcp_client_multi_net/Makefile b/examples/protocols/sockets/tcp_client_multi_net/Makefile index 1505a97add..7b03a4e849 100644 --- a/examples/protocols/sockets/tcp_client_multi_net/Makefile +++ b/examples/protocols/sockets/tcp_client_multi_net/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := tcp_client_multiple EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/sockets/tcp_client_multi_net/main/tcp_client_multiple.c b/examples/protocols/sockets/tcp_client_multi_net/main/tcp_client_multiple.c index d95e95445d..57547fd526 100644 --- a/examples/protocols/sockets/tcp_client_multi_net/main/tcp_client_multiple.c +++ b/examples/protocols/sockets/tcp_client_multi_net/main/tcp_client_multiple.c @@ -101,7 +101,7 @@ static void app_multiple_handle(esp_ip4_addr_t *ip4_addr, esp_netif_t *esp_netif } app_multiple_handle_fail: - close(sock); + close(sock); } static void app_connection_task(void *pvParameters) @@ -129,7 +129,7 @@ static void app_connection_task(void *pvParameters) /* Connect the host using the corresponding network interface */ app_multiple_handle(&ip4_addr, netif); - + vTaskDelay(500 / portTICK_PERIOD_MS); } ESP_LOGE(TAG, "%s with netif desc:%s Failed! exiting", __func__, netif_desc); diff --git a/examples/protocols/sockets/tcp_server/Makefile b/examples/protocols/sockets/tcp_server/Makefile index ccdc6d5416..318e78a775 100644 --- a/examples/protocols/sockets/tcp_server/Makefile +++ b/examples/protocols/sockets/tcp_server/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := tcp_server EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/sockets/tcp_server/main/CMakeLists.txt b/examples/protocols/sockets/tcp_server/main/CMakeLists.txt index 1565c7bc30..c8a8d16a40 100644 --- a/examples/protocols/sockets/tcp_server/main/CMakeLists.txt +++ b/examples/protocols/sockets/tcp_server/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "tcp_server.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/sockets/tcp_server/main/tcp_server.c b/examples/protocols/sockets/tcp_server/main/tcp_server.c index 18284fd3ed..b3a04bd6e7 100644 --- a/examples/protocols/sockets/tcp_server/main/tcp_server.c +++ b/examples/protocols/sockets/tcp_server/main/tcp_server.c @@ -44,7 +44,7 @@ static void do_retransmit(const int sock) ESP_LOGI(TAG, "Received %d bytes: %s", len, rx_buffer); // send() can return less bytes than supplied length. - // Walk-around for robust implementation. + // Walk-around for robust implementation. int to_write = len; while (to_write > 0) { int written = send(sock, rx_buffer + (len - to_write), to_write, 0); diff --git a/examples/protocols/sockets/tcp_server/sdkconfig.ci b/examples/protocols/sockets/tcp_server/sdkconfig.ci index 55acf406fb..bea22a4eb0 100644 --- a/examples/protocols/sockets/tcp_server/sdkconfig.ci +++ b/examples/protocols/sockets/tcp_server/sdkconfig.ci @@ -1,2 +1,2 @@ CONFIG_EXAMPLE_IPV4=y -CONFIG_EXAMPLE_IPV6=y \ No newline at end of file +CONFIG_EXAMPLE_IPV6=y diff --git a/examples/protocols/sockets/udp_client/Makefile b/examples/protocols/sockets/udp_client/Makefile index 604aa5af36..cd4cfec658 100644 --- a/examples/protocols/sockets/udp_client/Makefile +++ b/examples/protocols/sockets/udp_client/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := udp_client EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/sockets/udp_client/main/CMakeLists.txt b/examples/protocols/sockets/udp_client/main/CMakeLists.txt index adc109a104..3fa4a07453 100644 --- a/examples/protocols/sockets/udp_client/main/CMakeLists.txt +++ b/examples/protocols/sockets/udp_client/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "udp_client.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/sockets/udp_client/sdkconfig.ci b/examples/protocols/sockets/udp_client/sdkconfig.ci index 62ac57ea21..2484db7abb 100644 --- a/examples/protocols/sockets/udp_client/sdkconfig.ci +++ b/examples/protocols/sockets/udp_client/sdkconfig.ci @@ -1 +1 @@ -CONFIG_EXAMPLE_SOCKET_IP_INPUT_STDIN=y \ No newline at end of file +CONFIG_EXAMPLE_SOCKET_IP_INPUT_STDIN=y diff --git a/examples/protocols/sockets/udp_multicast/Makefile b/examples/protocols/sockets/udp_multicast/Makefile index 47e26b9534..471202e07a 100644 --- a/examples/protocols/sockets/udp_multicast/Makefile +++ b/examples/protocols/sockets/udp_multicast/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := udp-multicast EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/sockets/udp_multicast/main/CMakeLists.txt b/examples/protocols/sockets/udp_multicast/main/CMakeLists.txt index a8b478a68f..d3ae8d5d10 100644 --- a/examples/protocols/sockets/udp_multicast/main/CMakeLists.txt +++ b/examples/protocols/sockets/udp_multicast/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "udp_multicast_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/sockets/udp_server/Makefile b/examples/protocols/sockets/udp_server/Makefile index bc11a43031..84387b7584 100644 --- a/examples/protocols/sockets/udp_server/Makefile +++ b/examples/protocols/sockets/udp_server/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := udp_server EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/sockets/udp_server/main/CMakeLists.txt b/examples/protocols/sockets/udp_server/main/CMakeLists.txt index ceb9d65fa5..b823fc073a 100644 --- a/examples/protocols/sockets/udp_server/main/CMakeLists.txt +++ b/examples/protocols/sockets/udp_server/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "udp_server.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/protocols/sockets/udp_server/sdkconfig.ci b/examples/protocols/sockets/udp_server/sdkconfig.ci index 55acf406fb..bea22a4eb0 100644 --- a/examples/protocols/sockets/udp_server/sdkconfig.ci +++ b/examples/protocols/sockets/udp_server/sdkconfig.ci @@ -1,2 +1,2 @@ CONFIG_EXAMPLE_IPV4=y -CONFIG_EXAMPLE_IPV6=y \ No newline at end of file +CONFIG_EXAMPLE_IPV6=y diff --git a/examples/protocols/websocket/Makefile b/examples/protocols/websocket/Makefile index 3b37d32062..063a0a0991 100644 --- a/examples/protocols/websocket/Makefile +++ b/examples/protocols/websocket/Makefile @@ -7,4 +7,3 @@ PROJECT_NAME := websocket-example EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/protocols/websocket/sdkconfig.ci b/examples/protocols/websocket/sdkconfig.ci index a0b7712a2f..3ce203d46c 100644 --- a/examples/protocols/websocket/sdkconfig.ci +++ b/examples/protocols/websocket/sdkconfig.ci @@ -1,3 +1,2 @@ CONFIG_WEBSOCKET_URI_FROM_STDIN=y CONFIG_WEBSOCKET_URI_FROM_STRING=n - diff --git a/examples/provisioning/legacy/ble_prov/Makefile b/examples/provisioning/legacy/ble_prov/Makefile index ccd2a96b40..47547d7e2f 100644 --- a/examples/provisioning/legacy/ble_prov/Makefile +++ b/examples/provisioning/legacy/ble_prov/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := ble_prov include $(IDF_PATH)/make/project.mk - diff --git a/examples/provisioning/legacy/ble_prov/main/CMakeLists.txt b/examples/provisioning/legacy/ble_prov/main/CMakeLists.txt index a483b3871f..dae207e87f 100644 --- a/examples/provisioning/legacy/ble_prov/main/CMakeLists.txt +++ b/examples/provisioning/legacy/ble_prov/main/CMakeLists.txt @@ -1,4 +1,4 @@ idf_component_register(SRCS "app_main.c" "app_prov.c" "app_prov_handlers.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/provisioning/legacy/ble_prov/main/component.mk b/examples/provisioning/legacy/ble_prov/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/provisioning/legacy/ble_prov/main/component.mk +++ b/examples/provisioning/legacy/ble_prov/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/provisioning/legacy/console_prov/Makefile b/examples/provisioning/legacy/console_prov/Makefile index c84ccd93f4..28bd515588 100644 --- a/examples/provisioning/legacy/console_prov/Makefile +++ b/examples/provisioning/legacy/console_prov/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := console_prov include $(IDF_PATH)/make/project.mk - diff --git a/examples/provisioning/legacy/console_prov/main/CMakeLists.txt b/examples/provisioning/legacy/console_prov/main/CMakeLists.txt index a483b3871f..dae207e87f 100644 --- a/examples/provisioning/legacy/console_prov/main/CMakeLists.txt +++ b/examples/provisioning/legacy/console_prov/main/CMakeLists.txt @@ -1,4 +1,4 @@ idf_component_register(SRCS "app_main.c" "app_prov.c" "app_prov_handlers.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/provisioning/legacy/console_prov/main/component.mk b/examples/provisioning/legacy/console_prov/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/provisioning/legacy/console_prov/main/component.mk +++ b/examples/provisioning/legacy/console_prov/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/provisioning/legacy/custom_config/Makefile b/examples/provisioning/legacy/custom_config/Makefile index 8ded51d752..40cfa8c2e0 100644 --- a/examples/provisioning/legacy/custom_config/Makefile +++ b/examples/provisioning/legacy/custom_config/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := custom_config include $(IDF_PATH)/make/project.mk - diff --git a/examples/provisioning/legacy/custom_config/components/custom_provisioning/CMakeLists.txt b/examples/provisioning/legacy/custom_config/components/custom_provisioning/CMakeLists.txt index bcffb88bc6..f758ee1819 100644 --- a/examples/provisioning/legacy/custom_config/components/custom_provisioning/CMakeLists.txt +++ b/examples/provisioning/legacy/custom_config/components/custom_provisioning/CMakeLists.txt @@ -2,4 +2,4 @@ idf_component_register(SRCS "src/custom_config.c" "proto-c/custom_config.pb-c.c" INCLUDE_DIRS include PRIV_INCLUDE_DIRS proto-c - PRIV_REQUIRES protobuf-c) \ No newline at end of file + PRIV_REQUIRES protobuf-c) diff --git a/examples/provisioning/legacy/custom_config/main/CMakeLists.txt b/examples/provisioning/legacy/custom_config/main/CMakeLists.txt index a483b3871f..dae207e87f 100644 --- a/examples/provisioning/legacy/custom_config/main/CMakeLists.txt +++ b/examples/provisioning/legacy/custom_config/main/CMakeLists.txt @@ -1,4 +1,4 @@ idf_component_register(SRCS "app_main.c" "app_prov.c" "app_prov_handlers.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/provisioning/legacy/custom_config/main/component.mk b/examples/provisioning/legacy/custom_config/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/provisioning/legacy/custom_config/main/component.mk +++ b/examples/provisioning/legacy/custom_config/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/provisioning/legacy/softap_prov/Makefile b/examples/provisioning/legacy/softap_prov/Makefile index ab167ef2ab..98085767f5 100644 --- a/examples/provisioning/legacy/softap_prov/Makefile +++ b/examples/provisioning/legacy/softap_prov/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := softap_prov include $(IDF_PATH)/make/project.mk - diff --git a/examples/provisioning/legacy/softap_prov/main/CMakeLists.txt b/examples/provisioning/legacy/softap_prov/main/CMakeLists.txt index a483b3871f..dae207e87f 100644 --- a/examples/provisioning/legacy/softap_prov/main/CMakeLists.txt +++ b/examples/provisioning/legacy/softap_prov/main/CMakeLists.txt @@ -1,4 +1,4 @@ idf_component_register(SRCS "app_main.c" "app_prov.c" "app_prov_handlers.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/provisioning/legacy/softap_prov/main/component.mk b/examples/provisioning/legacy/softap_prov/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/provisioning/legacy/softap_prov/main/component.mk +++ b/examples/provisioning/legacy/softap_prov/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/provisioning/wifi_prov_mgr/Makefile b/examples/provisioning/wifi_prov_mgr/Makefile index 151c25b72e..cbd420b741 100644 --- a/examples/provisioning/wifi_prov_mgr/Makefile +++ b/examples/provisioning/wifi_prov_mgr/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := wifi_prov_mgr include $(IDF_PATH)/make/project.mk - diff --git a/examples/provisioning/wifi_prov_mgr/main/component.mk b/examples/provisioning/wifi_prov_mgr/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/provisioning/wifi_prov_mgr/main/component.mk +++ b/examples/provisioning/wifi_prov_mgr/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/security/flash_encryption/Makefile b/examples/security/flash_encryption/Makefile index bcc1cb5b8d..fbb95949f7 100644 --- a/examples/security/flash_encryption/Makefile +++ b/examples/security/flash_encryption/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := flash-encryption include $(IDF_PATH)/make/project.mk - diff --git a/examples/security/flash_encryption/main/CMakeLists.txt b/examples/security/flash_encryption/main/CMakeLists.txt index ce00c820da..75ea85b111 100644 --- a/examples/security/flash_encryption/main/CMakeLists.txt +++ b/examples/security/flash_encryption/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "flash_encrypt_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/security/flash_encryption/main/component.mk b/examples/security/flash_encryption/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/security/flash_encryption/main/component.mk +++ b/examples/security/flash_encryption/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/storage/ext_flash_fatfs/Makefile b/examples/storage/ext_flash_fatfs/Makefile index 7377085972..d1cdc7942f 100644 --- a/examples/storage/ext_flash_fatfs/Makefile +++ b/examples/storage/ext_flash_fatfs/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := ext_flash_fatfs include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/ext_flash_fatfs/main/ext_flash_fatfs_example_main.c b/examples/storage/ext_flash_fatfs/main/ext_flash_fatfs_example_main.c index a596a8119d..608dad502b 100644 --- a/examples/storage/ext_flash_fatfs/main/ext_flash_fatfs_example_main.c +++ b/examples/storage/ext_flash_fatfs/main/ext_flash_fatfs_example_main.c @@ -6,7 +6,7 @@ CONDITIONS OF ANY KIND, either express or implied. This sample shows how to store files inside a FAT filesystem. - FAT filesystem is stored in a partition inside SPI flash, using the + FAT filesystem is stored in a partition inside SPI flash, using the flash wear levelling library. */ diff --git a/examples/storage/nvs_rw_blob/Makefile b/examples/storage/nvs_rw_blob/Makefile index 717744bbe8..9799a25673 100644 --- a/examples/storage/nvs_rw_blob/Makefile +++ b/examples/storage/nvs_rw_blob/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := nvs-rw-blob include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/nvs_rw_blob/main/CMakeLists.txt b/examples/storage/nvs_rw_blob/main/CMakeLists.txt index a267ebda53..13a1b50cee 100644 --- a/examples/storage/nvs_rw_blob/main/CMakeLists.txt +++ b/examples/storage/nvs_rw_blob/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "nvs_blob_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/storage/nvs_rw_blob/main/component.mk b/examples/storage/nvs_rw_blob/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/storage/nvs_rw_blob/main/component.mk +++ b/examples/storage/nvs_rw_blob/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/storage/nvs_rw_value/Makefile b/examples/storage/nvs_rw_value/Makefile index fdfc09c574..df95905576 100644 --- a/examples/storage/nvs_rw_value/Makefile +++ b/examples/storage/nvs_rw_value/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := nvs-rw-value include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/nvs_rw_value/main/CMakeLists.txt b/examples/storage/nvs_rw_value/main/CMakeLists.txt index 6690649ca0..fdee1d3dca 100644 --- a/examples/storage/nvs_rw_value/main/CMakeLists.txt +++ b/examples/storage/nvs_rw_value/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "nvs_value_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/storage/nvs_rw_value/main/component.mk b/examples/storage/nvs_rw_value/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/storage/nvs_rw_value/main/component.mk +++ b/examples/storage/nvs_rw_value/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/storage/nvs_rw_value_cxx/Makefile b/examples/storage/nvs_rw_value_cxx/Makefile index 9dafe84362..9040e950ec 100644 --- a/examples/storage/nvs_rw_value_cxx/Makefile +++ b/examples/storage/nvs_rw_value_cxx/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := nvs-rw-value-cxx include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/nvs_rw_value_cxx/main/component.mk b/examples/storage/nvs_rw_value_cxx/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/storage/nvs_rw_value_cxx/main/component.mk +++ b/examples/storage/nvs_rw_value_cxx/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/storage/partition_api/partition_find/CMakeLists.txt b/examples/storage/partition_api/partition_find/CMakeLists.txt index 5b532ab7e0..5e851a5a8e 100644 --- a/examples/storage/partition_api/partition_find/CMakeLists.txt +++ b/examples/storage/partition_api/partition_find/CMakeLists.txt @@ -3,4 +3,4 @@ cmake_minimum_required(VERSION 3.5) include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(partition_find) \ No newline at end of file +project(partition_find) diff --git a/examples/storage/partition_api/partition_find/Makefile b/examples/storage/partition_api/partition_find/Makefile index 8f8ac26466..36280c1062 100644 --- a/examples/storage/partition_api/partition_find/Makefile +++ b/examples/storage/partition_api/partition_find/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := partition_find include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/partition_api/partition_find/main/CMakeLists.txt b/examples/storage/partition_api/partition_find/main/CMakeLists.txt index b2d392b5d4..2e249f1c91 100644 --- a/examples/storage/partition_api/partition_find/main/CMakeLists.txt +++ b/examples/storage/partition_api/partition_find/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "main.c" INCLUDE_DIRS "." - EMBED_TXTFILES ../partitions_example.csv) \ No newline at end of file + EMBED_TXTFILES ../partitions_example.csv) diff --git a/examples/storage/partition_api/partition_find/main/component.mk b/examples/storage/partition_api/partition_find/main/component.mk index bc2efb48b6..c86b2bc41f 100644 --- a/examples/storage/partition_api/partition_find/main/component.mk +++ b/examples/storage/partition_api/partition_find/main/component.mk @@ -1,10 +1,10 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # -COMPONENT_EMBED_TXTFILES := ../partitions_example.csv \ No newline at end of file +COMPONENT_EMBED_TXTFILES := ../partitions_example.csv diff --git a/examples/storage/partition_api/partition_find/main/main.c b/examples/storage/partition_api/partition_find/main/main.c index a41957b1f0..4b29ef99cd 100644 --- a/examples/storage/partition_api/partition_find/main/main.c +++ b/examples/storage/partition_api/partition_find/main/main.c @@ -47,21 +47,21 @@ static void find_partition(esp_partition_type_t type, esp_partition_subtype_t su { ESP_LOGI(TAG, "Find partition with type %s, subtype %s, label %s...", get_type_str(type), get_subtype_str(subtype), name == NULL ? "NULL (unspecified)" : name); - const esp_partition_t * part = esp_partition_find_first(type, subtype, name); - ESP_LOGI(TAG, "\tfound partition '%s' at offset 0x%x with size 0x%x", part->label, part->address, part->size); + const esp_partition_t * part = esp_partition_find_first(type, subtype, name); + ESP_LOGI(TAG, "\tfound partition '%s' at offset 0x%x with size 0x%x", part->label, part->address, part->size); } void app_main(void) { - /* + /* * This example uses the partition table from ../partitions_example.csv. For reference, its contents are as follows: - * + * * nvs, data, nvs, 0x9000, 0x6000, * phy_init, data, phy, 0xf000, 0x1000, * factory, app, factory, 0x10000, 1M, * storage1, data, fat, , 0x40000, * storage2, data, fat, , 0x40000, - * + * * Display the partition table to the user for reference. */ extern const char csv_start[] asm("_binary_partitions_example_csv_start"); @@ -87,13 +87,13 @@ void app_main(void) /* Second Part - Iterating over partitions */ ESP_LOGI(TAG, "----------------Iterate through partitions---------------"); - + esp_partition_iterator_t it; ESP_LOGI(TAG, "Iterating through app partitions..."); it = esp_partition_find(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_ANY, NULL); - // Loop through all matching partitions, in this case, all with the type 'data' until partition with desired + // Loop through all matching partitions, in this case, all with the type 'data' until partition with desired // label is found. Verify if its the same instance as the one found before. for (; it != NULL; it = esp_partition_next(it)) { const esp_partition_t *part = esp_partition_get(it); @@ -105,7 +105,7 @@ void app_main(void) ESP_LOGI(TAG, "Iterating through data partitions..."); it = esp_partition_find(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, NULL); - // Loop through all matching partitions, in this case, all with the type 'data' until partition with desired + // Loop through all matching partitions, in this case, all with the type 'data' until partition with desired // label is found. Verify if its the same instance as the one found before. for (; it != NULL; it = esp_partition_next(it)) { const esp_partition_t *part = esp_partition_get(it); @@ -117,4 +117,3 @@ void app_main(void) ESP_LOGI(TAG, "Example end"); } - diff --git a/examples/storage/partition_api/partition_mmap/Makefile b/examples/storage/partition_api/partition_mmap/Makefile index ecbea4ea7c..998913fdc7 100644 --- a/examples/storage/partition_api/partition_mmap/Makefile +++ b/examples/storage/partition_api/partition_mmap/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := partition_mmap include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/partition_api/partition_mmap/main/CMakeLists.txt b/examples/storage/partition_api/partition_mmap/main/CMakeLists.txt index e0287b7b9e..cf2c455cb5 100644 --- a/examples/storage/partition_api/partition_mmap/main/CMakeLists.txt +++ b/examples/storage/partition_api/partition_mmap/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/storage/partition_api/partition_mmap/main/component.mk b/examples/storage/partition_api/partition_mmap/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/storage/partition_api/partition_mmap/main/component.mk +++ b/examples/storage/partition_api/partition_mmap/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/storage/partition_api/partition_mmap/main/main.c b/examples/storage/partition_api/partition_mmap/main/main.c index deb8aea0b8..492dd8046b 100644 --- a/examples/storage/partition_api/partition_mmap/main/main.c +++ b/examples/storage/partition_api/partition_mmap/main/main.c @@ -55,4 +55,3 @@ void app_main(void) ESP_LOGI(TAG, "Example end"); } - diff --git a/examples/storage/partition_api/partition_ops/Makefile b/examples/storage/partition_api/partition_ops/Makefile index 0ba460b5c6..2da9b02091 100644 --- a/examples/storage/partition_api/partition_ops/Makefile +++ b/examples/storage/partition_api/partition_ops/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := partition_ops include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/partition_api/partition_ops/main/CMakeLists.txt b/examples/storage/partition_api/partition_ops/main/CMakeLists.txt index e0287b7b9e..cf2c455cb5 100644 --- a/examples/storage/partition_api/partition_ops/main/CMakeLists.txt +++ b/examples/storage/partition_api/partition_ops/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/storage/partition_api/partition_ops/main/component.mk b/examples/storage/partition_api/partition_ops/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/storage/partition_api/partition_ops/main/component.mk +++ b/examples/storage/partition_api/partition_ops/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/storage/partition_api/partition_ops/main/main.c b/examples/storage/partition_api/partition_ops/main/main.c index 431b7d2138..4afaa0d6a7 100644 --- a/examples/storage/partition_api/partition_ops/main/main.c +++ b/examples/storage/partition_api/partition_ops/main/main.c @@ -14,15 +14,15 @@ static const char *TAG = "example"; void app_main(void) { - /* + /* * This example uses the partition table from ../partitions_example.csv. For reference, its contents are as follows: - * + * * nvs, data, nvs, 0x9000, 0x6000, * phy_init, data, phy, 0xf000, 0x1000, * factory, app, factory, 0x10000, 1M, * storage, data, , , 0x40000, */ - + // Find the partition map in the partition table const esp_partition_t *partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, "storage"); assert(partition != NULL); @@ -37,7 +37,7 @@ void app_main(void) // Write the data, starting from the beginning of the partition ESP_ERROR_CHECK(esp_partition_write(partition, 0, store_data, sizeof(store_data))); ESP_LOGI(TAG, "Written data: %s", store_data); - + // Read back the data, checking that read data and written data match ESP_ERROR_CHECK(esp_partition_read(partition, 0, read_data, sizeof(read_data))); assert(memcmp(store_data, read_data, sizeof(read_data)) == 0); @@ -56,4 +56,3 @@ void app_main(void) ESP_LOGI(TAG, "Example end"); } - diff --git a/examples/storage/parttool/Makefile b/examples/storage/parttool/Makefile index 24352c1e6a..7d37af62e4 100644 --- a/examples/storage/parttool/Makefile +++ b/examples/storage/parttool/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := parttool include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/parttool/main/CMakeLists.txt b/examples/storage/parttool/main/CMakeLists.txt index 6056a42f9f..82f16f75d8 100644 --- a/examples/storage/parttool/main/CMakeLists.txt +++ b/examples/storage/parttool/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "parttool_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/storage/parttool/partitions_example.csv b/examples/storage/parttool/partitions_example.csv index f49ae3c602..d39fab4bb2 100644 --- a/examples/storage/parttool/partitions_example.csv +++ b/examples/storage/parttool/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, spiffs, , 0x10000, +storage, data, spiffs, , 0x10000, diff --git a/examples/storage/parttool/parttool_example.sh b/examples/storage/parttool/parttool_example.sh index 586d0aae65..90af75796a 100644 --- a/examples/storage/parttool/parttool_example.sh +++ b/examples/storage/parttool/parttool_example.sh @@ -25,7 +25,7 @@ function assert_file_same() sz_a=$(stat -c %s $1) sz_b=$(stat -c %s $2) sz=$((sz_a < sz_b ? sz_a : sz_b)) - res=$(cmp -s -n $sz $1 $2) || + res=$(cmp -s -n $sz $1 $2) || (echo "!!!!!!!!!!!!!!!!!!!" echo "FAILURE: $3" echo "!!!!!!!!!!!!!!!!!!!") diff --git a/examples/storage/sd_card/Makefile b/examples/storage/sd_card/Makefile index 512e40fa67..2d047609a9 100644 --- a/examples/storage/sd_card/Makefile +++ b/examples/storage/sd_card/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := sd_card include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/sd_card/main/CMakeLists.txt b/examples/storage/sd_card/main/CMakeLists.txt index 439aa90025..39630ccc57 100644 --- a/examples/storage/sd_card/main/CMakeLists.txt +++ b/examples/storage/sd_card/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "sd_card_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/storage/semihost_vfs/Makefile b/examples/storage/semihost_vfs/Makefile index 6a92821044..efb32e08e4 100644 --- a/examples/storage/semihost_vfs/Makefile +++ b/examples/storage/semihost_vfs/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := semihost_vfs include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/semihost_vfs/main/CMakeLists.txt b/examples/storage/semihost_vfs/main/CMakeLists.txt index 1068a03994..ccb9434eca 100644 --- a/examples/storage/semihost_vfs/main/CMakeLists.txt +++ b/examples/storage/semihost_vfs/main/CMakeLists.txt @@ -2,4 +2,4 @@ set(COMPONENT_SRCS) set(COMPONENT_ADD_INCLUDEDIRS ".") idf_component_register(SRCS "semihost_vfs_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/storage/spiffs/Makefile b/examples/storage/spiffs/Makefile index 4523423044..97f63890d7 100644 --- a/examples/storage/spiffs/Makefile +++ b/examples/storage/spiffs/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := spiffs include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/spiffs/main/CMakeLists.txt b/examples/storage/spiffs/main/CMakeLists.txt index 026db13131..c480915abb 100644 --- a/examples/storage/spiffs/main/CMakeLists.txt +++ b/examples/storage/spiffs/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "spiffs_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/storage/spiffs/main/spiffs_example_main.c b/examples/storage/spiffs/main/spiffs_example_main.c index b2fd93bbd7..d0fc23235b 100644 --- a/examples/storage/spiffs/main/spiffs_example_main.c +++ b/examples/storage/spiffs/main/spiffs_example_main.c @@ -19,14 +19,14 @@ static const char *TAG = "example"; void app_main(void) { ESP_LOGI(TAG, "Initializing SPIFFS"); - + esp_vfs_spiffs_conf_t conf = { .base_path = "/spiffs", .partition_label = NULL, .max_files = 5, .format_if_mount_failed = true }; - + // Use settings defined above to initialize and mount SPIFFS filesystem. // Note: esp_vfs_spiffs_register is an all-in-one convenience function. esp_err_t ret = esp_vfs_spiffs_register(&conf); @@ -41,7 +41,7 @@ void app_main(void) } return; } - + size_t total = 0, used = 0; ret = esp_spiffs_info(conf.partition_label, &total, &used); if (ret != ESP_OK) { diff --git a/examples/storage/spiffs/partitions_example.csv b/examples/storage/spiffs/partitions_example.csv index 0eebc192ae..48947d9341 100644 --- a/examples/storage/spiffs/partitions_example.csv +++ b/examples/storage/spiffs/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, spiffs, , 0xF0000, +storage, data, spiffs, , 0xF0000, diff --git a/examples/storage/spiffsgen/Makefile b/examples/storage/spiffsgen/Makefile index 300abdd6e8..dbc12b3760 100644 --- a/examples/storage/spiffsgen/Makefile +++ b/examples/storage/spiffsgen/Makefile @@ -11,6 +11,6 @@ include $(IDF_PATH)/make/project.mk # Create a SPIFFS image from the contents of the 'spiffs_image' directory # that fits the partition named 'storage'. FLASH_IN_PROJECT indicates that # the generated image should be flashed when the entire project is flashed to -# the target with 'make flash'. +# the target with 'make flash'. SPIFFS_IMAGE_FLASH_IN_PROJECT := 1 -$(eval $(call spiffs_create_partition_image,storage,spiffs_image)) \ No newline at end of file +$(eval $(call spiffs_create_partition_image,storage,spiffs_image)) diff --git a/examples/storage/spiffsgen/main/CMakeLists.txt b/examples/storage/spiffsgen/main/CMakeLists.txt index 3c74aed1b3..e0aa53dc72 100644 --- a/examples/storage/spiffsgen/main/CMakeLists.txt +++ b/examples/storage/spiffsgen/main/CMakeLists.txt @@ -4,5 +4,5 @@ idf_component_register(SRCS "spiffsgen_example_main.c" # Create a SPIFFS image from the contents of the 'spiffs_image' directory # that fits the partition named 'storage'. FLASH_IN_PROJECT indicates that # the generated image should be flashed when the entire project is flashed to -# the target with 'idf.py -p PORT flash'. +# the target with 'idf.py -p PORT flash'. spiffs_create_partition_image(storage ../spiffs_image FLASH_IN_PROJECT) diff --git a/examples/storage/spiffsgen/main/component.mk b/examples/storage/spiffsgen/main/component.mk index 3277c9f9ac..a98f634eae 100644 --- a/examples/storage/spiffsgen/main/component.mk +++ b/examples/storage/spiffsgen/main/component.mk @@ -1,4 +1,4 @@ # # "main" pseudo-component makefile. # -# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) \ No newline at end of file +# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) diff --git a/examples/storage/spiffsgen/main/spiffsgen_example_main.c b/examples/storage/spiffsgen/main/spiffsgen_example_main.c index 5c67c47c5e..bff8c86030 100644 --- a/examples/storage/spiffsgen/main/spiffsgen_example_main.c +++ b/examples/storage/spiffsgen/main/spiffsgen_example_main.c @@ -122,7 +122,7 @@ void app_main(void) // Read and display the contents of a small text file (hello.txt) read_hello_txt(); - // Compute and display the MD5 hash of a large text file (alice.txt) + // Compute and display the MD5 hash of a large text file (alice.txt) compute_alice_txt_md5(); // All done, unmount partition and disable SPIFFS diff --git a/examples/storage/spiffsgen/partitions_example.csv b/examples/storage/spiffsgen/partitions_example.csv index 0eebc192ae..48947d9341 100644 --- a/examples/storage/spiffsgen/partitions_example.csv +++ b/examples/storage/spiffsgen/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, spiffs, , 0xF0000, +storage, data, spiffs, , 0xF0000, diff --git a/examples/storage/spiffsgen/spiffs_image/hello.txt b/examples/storage/spiffsgen/spiffs_image/hello.txt index c57eff55eb..980a0d5f19 100644 --- a/examples/storage/spiffsgen/spiffs_image/hello.txt +++ b/examples/storage/spiffsgen/spiffs_image/hello.txt @@ -1 +1 @@ -Hello World! \ No newline at end of file +Hello World! diff --git a/examples/storage/spiffsgen/spiffs_image/sub/alice.txt b/examples/storage/spiffsgen/spiffs_image/sub/alice.txt index a86da07714..e27ab44f07 100644 --- a/examples/storage/spiffsgen/spiffs_image/sub/alice.txt +++ b/examples/storage/spiffsgen/spiffs_image/sub/alice.txt @@ -3733,4 +3733,4 @@ Most people start at our Web site which has the main PG search facility: This Web site includes information about Project Gutenberg-tm, including how to make donations to the Project Gutenberg Literary Archive Foundation, how to help produce our new eBooks, and how to -subscribe to our email newsletter to hear about new eBooks. \ No newline at end of file +subscribe to our email newsletter to hear about new eBooks. diff --git a/examples/storage/wear_levelling/Makefile b/examples/storage/wear_levelling/Makefile index cb63d4b56f..0ebb5bebff 100644 --- a/examples/storage/wear_levelling/Makefile +++ b/examples/storage/wear_levelling/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := wear_levelling_example include $(IDF_PATH)/make/project.mk - diff --git a/examples/storage/wear_levelling/main/CMakeLists.txt b/examples/storage/wear_levelling/main/CMakeLists.txt index c92569631f..8155abc01d 100644 --- a/examples/storage/wear_levelling/main/CMakeLists.txt +++ b/examples/storage/wear_levelling/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "wear_levelling_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/storage/wear_levelling/main/wear_levelling_example_main.c b/examples/storage/wear_levelling/main/wear_levelling_example_main.c index 184d8f88e5..bd7111a59d 100644 --- a/examples/storage/wear_levelling/main/wear_levelling_example_main.c +++ b/examples/storage/wear_levelling/main/wear_levelling_example_main.c @@ -6,7 +6,7 @@ CONDITIONS OF ANY KIND, either express or implied. This sample shows how to store files inside a FAT filesystem. - FAT filesystem is stored in a partition inside SPI flash, using the + FAT filesystem is stored in a partition inside SPI flash, using the flash wear levelling library. */ diff --git a/examples/storage/wear_levelling/partitions_example.csv b/examples/storage/wear_levelling/partitions_example.csv index ac18e080c8..1c79321a10 100644 --- a/examples/storage/wear_levelling/partitions_example.csv +++ b/examples/storage/wear_levelling/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, fat, , 1M, +storage, data, fat, , 1M, diff --git a/examples/system/app_trace_to_host/Makefile b/examples/system/app_trace_to_host/Makefile index ce44ec6caa..5bf1ddc0f4 100644 --- a/examples/system/app_trace_to_host/Makefile +++ b/examples/system/app_trace_to_host/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := app_trace_to_host include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/app_trace_to_host/main/CMakeLists.txt b/examples/system/app_trace_to_host/main/CMakeLists.txt index b8adc44f73..4a647aca9c 100644 --- a/examples/system/app_trace_to_host/main/CMakeLists.txt +++ b/examples/system/app_trace_to_host/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_trace_to_host_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/app_trace_to_host/main/app_trace_to_host_example_main.c b/examples/system/app_trace_to_host/main/app_trace_to_host_example_main.c index 074df95142..9a27b2faec 100644 --- a/examples/system/app_trace_to_host/main/app_trace_to_host_example_main.c +++ b/examples/system/app_trace_to_host/main/app_trace_to_host_example_main.c @@ -125,4 +125,3 @@ void app_main(void) vTaskDelay(2000 / portTICK_PERIOD_MS); } } - diff --git a/examples/system/app_trace_to_host/sdkconfig.defaults b/examples/system/app_trace_to_host/sdkconfig.defaults index 515d62f4ed..7ebca16153 100644 --- a/examples/system/app_trace_to_host/sdkconfig.defaults +++ b/examples/system/app_trace_to_host/sdkconfig.defaults @@ -2,4 +2,4 @@ CONFIG_APPTRACE_DEST_TRAX=y CONFIG_APPTRACE_ENABLE=y # Disable WiFi stack by default -CONFIG_WIFI_ENABLED=n \ No newline at end of file +CONFIG_WIFI_ENABLED=n diff --git a/examples/system/base_mac_address/Makefile b/examples/system/base_mac_address/Makefile index 5c032cd47f..2549aebc53 100644 --- a/examples/system/base_mac_address/Makefile +++ b/examples/system/base_mac_address/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := base_mac_address include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/base_mac_address/main/CMakeLists.txt b/examples/system/base_mac_address/main/CMakeLists.txt index ab68da3e75..f60e86ef88 100644 --- a/examples/system/base_mac_address/main/CMakeLists.txt +++ b/examples/system/base_mac_address/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "base_mac_address_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/console/Makefile b/examples/system/console/Makefile index 952298b804..70f372194a 100644 --- a/examples/system/console/Makefile +++ b/examples/system/console/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := console include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/console/components/cmd_nvs/CMakeLists.txt b/examples/system/console/components/cmd_nvs/CMakeLists.txt index ab8257f9ca..073e3ce6da 100644 --- a/examples/system/console/components/cmd_nvs/CMakeLists.txt +++ b/examples/system/console/components/cmd_nvs/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "cmd_nvs.c" INCLUDE_DIRS . - REQUIRES console nvs_flash) \ No newline at end of file + REQUIRES console nvs_flash) diff --git a/examples/system/console/components/cmd_nvs/cmd_nvs.h b/examples/system/console/components/cmd_nvs/cmd_nvs.h index d18c2b41fe..b8bdf2d1a1 100644 --- a/examples/system/console/components/cmd_nvs/cmd_nvs.h +++ b/examples/system/console/components/cmd_nvs/cmd_nvs.h @@ -18,4 +18,3 @@ void register_nvs(void); #ifdef __cplusplus } #endif - diff --git a/examples/system/console/components/cmd_system/CMakeLists.txt b/examples/system/console/components/cmd_system/CMakeLists.txt index ff4612b959..0e922b1b4c 100644 --- a/examples/system/console/components/cmd_system/CMakeLists.txt +++ b/examples/system/console/components/cmd_system/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "cmd_system.c" INCLUDE_DIRS . - REQUIRES console spi_flash) \ No newline at end of file + REQUIRES console spi_flash) diff --git a/examples/system/console/components/cmd_system/cmd_system.c b/examples/system/console/components/cmd_system/cmd_system.c index 26c36f9940..a217a36279 100644 --- a/examples/system/console/components/cmd_system/cmd_system.c +++ b/examples/system/console/components/cmd_system/cmd_system.c @@ -348,4 +348,3 @@ static void register_light_sleep(void) }; ESP_ERROR_CHECK( esp_console_cmd_register(&cmd) ); } - diff --git a/examples/system/console/main/Kconfig.projbuild b/examples/system/console/main/Kconfig.projbuild index ed7236b0e4..694d5893f1 100644 --- a/examples/system/console/main/Kconfig.projbuild +++ b/examples/system/console/main/Kconfig.projbuild @@ -8,4 +8,4 @@ menu "Example Configuration" command history. If this option is enabled, initalizes a FAT filesystem and uses it to store command history. -endmenu \ No newline at end of file +endmenu diff --git a/examples/system/console/main/cmd_wifi.h b/examples/system/console/main/cmd_wifi.h index 5259dd72ff..67f3d9d3ad 100644 --- a/examples/system/console/main/cmd_wifi.h +++ b/examples/system/console/main/cmd_wifi.h @@ -18,4 +18,3 @@ void register_wifi(void); #ifdef __cplusplus } #endif - diff --git a/examples/system/console/main/component.mk b/examples/system/console/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/system/console/main/component.mk +++ b/examples/system/console/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/system/console/partitions_example.csv b/examples/system/console/partitions_example.csv index ac18e080c8..1c79321a10 100644 --- a/examples/system/console/partitions_example.csv +++ b/examples/system/console/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, fat, , 1M, +storage, data, fat, , 1M, diff --git a/examples/system/console/sdkconfig.defaults b/examples/system/console/sdkconfig.defaults index 49c3225d69..2d3564c649 100644 --- a/examples/system/console/sdkconfig.defaults +++ b/examples/system/console/sdkconfig.defaults @@ -15,4 +15,3 @@ CONFIG_FREERTOS_USE_TRACE_FACILITY=y CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y - diff --git a/examples/system/deep_sleep/Makefile b/examples/system/deep_sleep/Makefile index 4d0fae1320..b9c7eee00a 100644 --- a/examples/system/deep_sleep/Makefile +++ b/examples/system/deep_sleep/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := deep_sleep include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/deep_sleep/main/CMakeLists.txt b/examples/system/deep_sleep/main/CMakeLists.txt index c64fc7ac48..5474deaa87 100644 --- a/examples/system/deep_sleep/main/CMakeLists.txt +++ b/examples/system/deep_sleep/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "deep_sleep_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/deep_sleep/main/deep_sleep_example_main.c b/examples/system/deep_sleep/main/deep_sleep_example_main.c index 721a7e9c7e..a56f3613b4 100644 --- a/examples/system/deep_sleep/main/deep_sleep_example_main.c +++ b/examples/system/deep_sleep/main/deep_sleep_example_main.c @@ -371,4 +371,3 @@ static void start_ulp_temperature_monitoring(void) } #endif // CONFIG_IDF_TARGET_ESP32 #endif // CONFIG_EXAMPLE_ULP_TEMPERATURE_WAKEUP - diff --git a/examples/system/deep_sleep/sdkconfig.defaults b/examples/system/deep_sleep/sdkconfig.defaults index 8a0c139042..19e8430fac 100644 --- a/examples/system/deep_sleep/sdkconfig.defaults +++ b/examples/system/deep_sleep/sdkconfig.defaults @@ -4,4 +4,4 @@ CONFIG_ESP32_ULP_COPROC_ENABLED=y CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=512 CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y -CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y \ No newline at end of file +CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y diff --git a/examples/system/efuse/Makefile b/examples/system/efuse/Makefile index 3a781495a0..64ca21fc65 100644 --- a/examples/system/efuse/Makefile +++ b/examples/system/efuse/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := efuse include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/efuse/main/CMakeLists.txt b/examples/system/efuse/main/CMakeLists.txt index 00c6c787bb..e42d27176e 100644 --- a/examples/system/efuse/main/CMakeLists.txt +++ b/examples/system/efuse/main/CMakeLists.txt @@ -1,4 +1,4 @@ idf_component_register(SRCS "efuse_main.c" "esp_efuse_custom_table.c" - INCLUDE_DIRS "." - "include") \ No newline at end of file + INCLUDE_DIRS "." + "include") diff --git a/examples/system/efuse/main/component.mk b/examples/system/efuse/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/system/efuse/main/component.mk +++ b/examples/system/efuse/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/system/efuse/main/efuse_main.c b/examples/system/efuse/main/efuse_main.c index 7f0075eebd..c27a957894 100644 --- a/examples/system/efuse/main/efuse_main.c +++ b/examples/system/efuse/main/efuse_main.c @@ -72,7 +72,7 @@ static void read_efuse_fields(device_desc_t *desc) ESP_LOGI(TAG, "2. read secure_version: %d", secure_version); ESP_LOGI(TAG, "3. read custom fields"); - read_device_desc_efuse_fields(desc); + read_device_desc_efuse_fields(desc); } @@ -131,7 +131,7 @@ static esp_efuse_coding_scheme_t get_coding_scheme(void) void app_main(void) { esp_efuse_coding_scheme_t coding_scheme = get_coding_scheme(); - + device_desc_t device_desc = { 0 }; read_efuse_fields(&device_desc); diff --git a/examples/system/efuse/main/esp_efuse_custom_table.c b/examples/system/efuse/main/esp_efuse_custom_table.c index 6375cf3a61..8ad6c4d586 100644 --- a/examples/system/efuse/main/esp_efuse_custom_table.c +++ b/examples/system/efuse/main/esp_efuse_custom_table.c @@ -78,4 +78,3 @@ const esp_efuse_desc_t* ESP_EFUSE_CUSTOM_SECURE_VERSION[] = { &CUSTOM_SECURE_VERSION[0], // Custom secure version NULL }; - diff --git a/examples/system/efuse/main/esp_efuse_custom_table.csv b/examples/system/efuse/main/esp_efuse_custom_table.csv index 2f91771543..dea1249192 100644 --- a/examples/system/efuse/main/esp_efuse_custom_table.csv +++ b/examples/system/efuse/main/esp_efuse_custom_table.csv @@ -6,7 +6,7 @@ ########################################################################## # *) The value MAX_BLK_LEN depends on CONFIG_EFUSE_MAX_BLK_LEN, will be replaced with "None" - 256. "3/4" - 192. "REPEAT" - 128. # !!!!!!!!!!! # -# After editing this file, run the command manually "make efuse_common_table" or "idf.py efuse_common_table" +# After editing this file, run the command manually "make efuse_common_table" or "idf.py efuse_common_table" # this will generate new source files, next rebuild all the sources. # !!!!!!!!!!! # diff --git a/examples/system/efuse/main/include/esp_efuse_custom_table.h b/examples/system/efuse/main/include/esp_efuse_custom_table.h index 857ba2d72d..e72d8e5994 100644 --- a/examples/system/efuse/main/include/esp_efuse_custom_table.h +++ b/examples/system/efuse/main/include/esp_efuse_custom_table.h @@ -33,4 +33,3 @@ extern const esp_efuse_desc_t* ESP_EFUSE_CUSTOM_SECURE_VERSION[]; #ifdef __cplusplus } #endif - diff --git a/examples/system/esp_event/default_event_loop/Makefile b/examples/system/esp_event/default_event_loop/Makefile index 09722e215d..f15f53eac1 100644 --- a/examples/system/esp_event/default_event_loop/Makefile +++ b/examples/system/esp_event/default_event_loop/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := default_event_loop include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/esp_event/default_event_loop/main/CMakeLists.txt b/examples/system/esp_event/default_event_loop/main/CMakeLists.txt index e0287b7b9e..cf2c455cb5 100644 --- a/examples/system/esp_event/default_event_loop/main/CMakeLists.txt +++ b/examples/system/esp_event/default_event_loop/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/esp_event/default_event_loop/main/component.mk b/examples/system/esp_event/default_event_loop/main/component.mk index e19e22a535..0adf45649a 100644 --- a/examples/system/esp_event/default_event_loop/main/component.mk +++ b/examples/system/esp_event/default_event_loop/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. -# \ No newline at end of file +# diff --git a/examples/system/esp_event/user_event_loops/Makefile b/examples/system/esp_event/user_event_loops/Makefile index 7ff7b64f07..6c76daf1f1 100644 --- a/examples/system/esp_event/user_event_loops/Makefile +++ b/examples/system/esp_event/user_event_loops/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := user_event_loops include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/esp_event/user_event_loops/main/CMakeLists.txt b/examples/system/esp_event/user_event_loops/main/CMakeLists.txt index e0287b7b9e..cf2c455cb5 100644 --- a/examples/system/esp_event/user_event_loops/main/CMakeLists.txt +++ b/examples/system/esp_event/user_event_loops/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/esp_event/user_event_loops/main/component.mk b/examples/system/esp_event/user_event_loops/main/component.mk index e19e22a535..0adf45649a 100644 --- a/examples/system/esp_event/user_event_loops/main/component.mk +++ b/examples/system/esp_event/user_event_loops/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. -# \ No newline at end of file +# diff --git a/examples/system/esp_timer/Makefile b/examples/system/esp_timer/Makefile index ba02ec81ba..4626957fe0 100644 --- a/examples/system/esp_timer/Makefile +++ b/examples/system/esp_timer/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := esp_timer_example include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/esp_timer/main/CMakeLists.txt b/examples/system/esp_timer/main/CMakeLists.txt index eefc6db70d..6e9e5b7f6e 100644 --- a/examples/system/esp_timer/main/CMakeLists.txt +++ b/examples/system/esp_timer/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "esp_timer_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/esp_timer/main/component.mk b/examples/system/esp_timer/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/system/esp_timer/main/component.mk +++ b/examples/system/esp_timer/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/system/freertos/real_time_stats/Makefile b/examples/system/freertos/real_time_stats/Makefile index f99f584a31..a8751107a5 100644 --- a/examples/system/freertos/real_time_stats/Makefile +++ b/examples/system/freertos/real_time_stats/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := real_time_stats include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/freertos/real_time_stats/main/CMakeLists.txt b/examples/system/freertos/real_time_stats/main/CMakeLists.txt index 61db59218c..0488bd10d3 100644 --- a/examples/system/freertos/real_time_stats/main/CMakeLists.txt +++ b/examples/system/freertos/real_time_stats/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "real_time_stats_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/freertos/real_time_stats/main/component.mk b/examples/system/freertos/real_time_stats/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/system/freertos/real_time_stats/main/component.mk +++ b/examples/system/freertos/real_time_stats/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/system/freertos/real_time_stats/sdkconfig.defaults b/examples/system/freertos/real_time_stats/sdkconfig.defaults index 184ea3b546..c87713d246 100644 --- a/examples/system/freertos/real_time_stats/sdkconfig.defaults +++ b/examples/system/freertos/real_time_stats/sdkconfig.defaults @@ -1,2 +1,2 @@ CONFIG_FREERTOS_USE_TRACE_FACILITY=y -CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y \ No newline at end of file +CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y diff --git a/examples/system/gcov/components/sample/some_funcs.c b/examples/system/gcov/components/sample/some_funcs.c index 00084dfc2c..eccd94926d 100644 --- a/examples/system/gcov/components/sample/some_funcs.c +++ b/examples/system/gcov/components/sample/some_funcs.c @@ -7,4 +7,3 @@ void some_dummy_func(void) printf("some_dummy_func: Counter = %d\n", i++); i++; } - diff --git a/examples/system/gcov/main/gcov_example_func.c b/examples/system/gcov/main/gcov_example_func.c index 7118f76d30..6749df9088 100644 --- a/examples/system/gcov/main/gcov_example_func.c +++ b/examples/system/gcov/main/gcov_example_func.c @@ -6,4 +6,3 @@ void blink_dummy_func(void) static int i; printf("blink_dummy_func: Counter = %d\n", i++); } - diff --git a/examples/system/heap_task_tracking/Makefile b/examples/system/heap_task_tracking/Makefile index cb92798c55..b4d1eb02b4 100644 --- a/examples/system/heap_task_tracking/Makefile +++ b/examples/system/heap_task_tracking/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := heap_task_tracking include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/heap_task_tracking/main/component.mk b/examples/system/heap_task_tracking/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/system/heap_task_tracking/main/component.mk +++ b/examples/system/heap_task_tracking/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/system/himem/Makefile b/examples/system/himem/Makefile index 6ffdebd264..d723429a19 100644 --- a/examples/system/himem/Makefile +++ b/examples/system/himem/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := himem_test include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/himem/main/CMakeLists.txt b/examples/system/himem/main/CMakeLists.txt index 63ad17a959..56b7332142 100644 --- a/examples/system/himem/main/CMakeLists.txt +++ b/examples/system/himem/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "himem_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/himem/main/himem_example_main.c b/examples/system/himem/main/himem_example_main.c index 004409081b..38c1f22622 100644 --- a/examples/system/himem/main/himem_example_main.c +++ b/examples/system/himem/main/himem_example_main.c @@ -94,4 +94,3 @@ void app_main(void) assert(test_region(memfree, 0xaaaa)); printf("Done!\n"); } - diff --git a/examples/system/himem/sdkconfig.defaults b/examples/system/himem/sdkconfig.defaults index 545334af99..98ee1032c0 100644 --- a/examples/system/himem/sdkconfig.defaults +++ b/examples/system/himem/sdkconfig.defaults @@ -9,4 +9,3 @@ CONFIG_SPIRAM_MEMTEST=y CONFIG_SPIRAM_CACHE_WORKAROUND=y CONFIG_SPIRAM_BANKSWITCH_ENABLE=y CONFIG_SPIRAM_BANKSWITCH_RESERVE=4 - diff --git a/examples/system/light_sleep/Makefile b/examples/system/light_sleep/Makefile index 0477dbfa07..9b2858e700 100644 --- a/examples/system/light_sleep/Makefile +++ b/examples/system/light_sleep/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := light_sleep_example include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/light_sleep/main/CMakeLists.txt b/examples/system/light_sleep/main/CMakeLists.txt index 36b6c93cc1..b22f1089dc 100644 --- a/examples/system/light_sleep/main/CMakeLists.txt +++ b/examples/system/light_sleep/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "light_sleep_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/network_tests/Makefile b/examples/system/network_tests/Makefile index 466d993316..65c483b1f7 100644 --- a/examples/system/network_tests/Makefile +++ b/examples/system/network_tests/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := net_suite include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/network_tests/main/CMakeLists.txt b/examples/system/network_tests/main/CMakeLists.txt index f06cf4bf61..2749edfb02 100644 --- a/examples/system/network_tests/main/CMakeLists.txt +++ b/examples/system/network_tests/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "net_suite.c" "stdinout.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/network_tests/main/component.mk b/examples/system/network_tests/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/system/network_tests/main/component.mk +++ b/examples/system/network_tests/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/system/ota/advanced_https_ota/Makefile b/examples/system/ota/advanced_https_ota/Makefile index df5c335c4a..f5251cecec 100644 --- a/examples/system/ota/advanced_https_ota/Makefile +++ b/examples/system/ota/advanced_https_ota/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := advanced_https_ota EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/ota/advanced_https_ota/main/CMakeLists.txt b/examples/system/ota/advanced_https_ota/main/CMakeLists.txt index f24c785feb..e28c040c1e 100644 --- a/examples/system/ota/advanced_https_ota/main/CMakeLists.txt +++ b/examples/system/ota/advanced_https_ota/main/CMakeLists.txt @@ -1,4 +1,4 @@ -idf_component_register(SRCS "advanced_https_ota_example.c" +idf_component_register(SRCS "advanced_https_ota_example.c" INCLUDE_DIRS "." # Embed the server root certificate into the final binary EMBED_TXTFILES ${project_dir}/server_certs/ca_cert.pem) diff --git a/examples/system/ota/advanced_https_ota/main/advanced_https_ota_example.c b/examples/system/ota/advanced_https_ota/main/advanced_https_ota_example.c index f43fe3d324..7fbbca93dd 100644 --- a/examples/system/ota/advanced_https_ota/main/advanced_https_ota_example.c +++ b/examples/system/ota/advanced_https_ota/main/advanced_https_ota_example.c @@ -176,4 +176,3 @@ void app_main(void) xTaskCreate(&advanced_ota_example_task, "advanced_ota_example_task", 1024 * 8, NULL, 5, NULL); } - diff --git a/examples/system/ota/native_ota_example/Makefile b/examples/system/ota/native_ota_example/Makefile index 0641428505..499fbd4fbb 100644 --- a/examples/system/ota/native_ota_example/Makefile +++ b/examples/system/ota/native_ota_example/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := native_ota EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/ota/native_ota_example/main/CMakeLists.txt b/examples/system/ota/native_ota_example/main/CMakeLists.txt index c09881022c..dea9a5a5ad 100644 --- a/examples/system/ota/native_ota_example/main/CMakeLists.txt +++ b/examples/system/ota/native_ota_example/main/CMakeLists.txt @@ -2,4 +2,4 @@ idf_build_get_property(project_dir PROJECT_DIR) idf_component_register(SRCS "native_ota_example.c" INCLUDE_DIRS "." - EMBED_TXTFILES ${project_dir}/server_certs/ca_cert.pem) \ No newline at end of file + EMBED_TXTFILES ${project_dir}/server_certs/ca_cert.pem) diff --git a/examples/system/ota/native_ota_example/version.txt b/examples/system/ota/native_ota_example/version.txt index 56a6051ca2..d00491fd7e 100644 --- a/examples/system/ota/native_ota_example/version.txt +++ b/examples/system/ota/native_ota_example/version.txt @@ -1 +1 @@ -1 \ No newline at end of file +1 diff --git a/examples/system/ota/otatool/Makefile b/examples/system/ota/otatool/Makefile index 2f02dfe789..b862f0cccb 100644 --- a/examples/system/ota/otatool/Makefile +++ b/examples/system/ota/otatool/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := otatool include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/ota/otatool/main/CMakeLists.txt b/examples/system/ota/otatool/main/CMakeLists.txt index 4c341608ea..5cbf3000e1 100644 --- a/examples/system/ota/otatool/main/CMakeLists.txt +++ b/examples/system/ota/otatool/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "otatool_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/ota/otatool/otatool_example.sh b/examples/system/ota/otatool/otatool_example.sh index ede4fecf0c..a01ac783ef 100644 --- a/examples/system/ota/otatool/otatool_example.sh +++ b/examples/system/ota/otatool/otatool_example.sh @@ -24,7 +24,7 @@ function assert_file_same() sz_a=$(stat -c %s $1) sz_b=$(stat -c %s $2) sz=$((sz_a < sz_b ? sz_a : sz_b)) - res=$(cmp -s -n $sz $1 $2) || + res=$(cmp -s -n $sz $1 $2) || (echo "!!!!!!!!!!!!!!!!!!!" echo "FAILURE: $3" echo "!!!!!!!!!!!!!!!!!!!") @@ -59,36 +59,36 @@ assert_file_same $BINARY app1.bin "Slot 1 app does not match factory app" # Switch to factory app echo "Switching to factory app" $OTATOOL_PY erase_otadata -assert_running_partition factory +assert_running_partition factory # Switch to slot 0 echo "Switching to OTA slot 0" $OTATOOL_PY switch_ota_partition --slot 0 -assert_running_partition ota_0 +assert_running_partition ota_0 # Switch to slot 1 twice in a row echo "Switching to OTA slot 1 (twice in a row)" $OTATOOL_PY switch_ota_partition --slot 1 -assert_running_partition ota_1 +assert_running_partition ota_1 $OTATOOL_PY switch_ota_partition --name ota_1 -assert_running_partition ota_1 +assert_running_partition ota_1 # Switch to slot 0 twice in a row echo "Switching to OTA slot 0 (twice in a row)" $OTATOOL_PY switch_ota_partition --slot 0 -assert_running_partition ota_0 +assert_running_partition ota_0 $OTATOOL_PY switch_ota_partition --name ota_0 -assert_running_partition ota_0 +assert_running_partition ota_0 # Switch to factory app echo "Switching to factory app" $OTATOOL_PY erase_otadata -assert_running_partition factory +assert_running_partition factory # Switch to slot 1 echo "Switching to OTA slot 1" $OTATOOL_PY switch_ota_partition --slot 1 -assert_running_partition ota_1 +assert_running_partition ota_1 # Example end and cleanup printf "\nPartition tool operations performed successfully\n" diff --git a/examples/system/ota/simple_ota_example/Makefile b/examples/system/ota/simple_ota_example/Makefile index 63c0d6be23..5f74215f88 100644 --- a/examples/system/ota/simple_ota_example/Makefile +++ b/examples/system/ota/simple_ota_example/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := simple_ota EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/ota/simple_ota_example/main/simple_ota_example.c b/examples/system/ota/simple_ota_example/main/simple_ota_example.c index 8cb18d0a13..5f20140b93 100644 --- a/examples/system/ota/simple_ota_example/main/simple_ota_example.c +++ b/examples/system/ota/simple_ota_example/main/simple_ota_example.c @@ -29,7 +29,7 @@ static const char *TAG = "simple_ota_example"; extern const uint8_t server_cert_pem_start[] asm("_binary_ca_cert_pem_start"); extern const uint8_t server_cert_pem_end[] asm("_binary_ca_cert_pem_end"); -#define OTA_URL_SIZE 256 +#define OTA_URL_SIZE 256 esp_err_t _http_event_handler(esp_http_client_event_t *evt) { diff --git a/examples/system/perfmon/Makefile b/examples/system/perfmon/Makefile index bf657458fc..f41f4663f9 100644 --- a/examples/system/perfmon/Makefile +++ b/examples/system/perfmon/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := perfmon_example include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/perfmon/main/component.mk b/examples/system/perfmon/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/system/perfmon/main/component.mk +++ b/examples/system/perfmon/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/system/select/Makefile b/examples/system/select/Makefile index a48defb38a..e70931d40b 100644 --- a/examples/system/select/Makefile +++ b/examples/system/select/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := select include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/select/main/CMakeLists.txt b/examples/system/select/main/CMakeLists.txt index 3dd427e874..ba7bf5d044 100644 --- a/examples/system/select/main/CMakeLists.txt +++ b/examples/system/select/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "select_example.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/select/main/component.mk b/examples/system/select/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/examples/system/select/main/component.mk +++ b/examples/system/select/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/examples/system/sysview_tracing/Makefile b/examples/system/sysview_tracing/Makefile index 0de049c436..2eef0bf4e2 100644 --- a/examples/system/sysview_tracing/Makefile +++ b/examples/system/sysview_tracing/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := sysview_tracing include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/sysview_tracing/SYSVIEW_FreeRTOS.txt b/examples/system/sysview_tracing/SYSVIEW_FreeRTOS.txt index 20ecc0b632..dc532aa548 100644 --- a/examples/system/sysview_tracing/SYSVIEW_FreeRTOS.txt +++ b/examples/system/sysview_tracing/SYSVIEW_FreeRTOS.txt @@ -1,7 +1,7 @@ 128 vTaskAllocateMPURegions xTask=%t pxRegions=%u 33 vTaskDelete xTaskToDelete=%t 34 vTaskDelay xTicksToDelay=%u -35 vTaskDelayUntil +35 vTaskDelayUntil 129 uxTaskPriorityGet xTask=%t 56 uxTaskPriorityGetFromISR xTask=%t 130 eTaskGetState xTask=%t @@ -9,13 +9,13 @@ 36 vTaskSuspend xTaskToSuspend=%t 40 vTaskResume xTaskToResume=%t 43 xTaskResumeFromISR xTaskToResume=%t -131 vTaskStartScheduler -132 vTaskEndScheduler -133 vTaskSuspendAll -134 xTaskResumeAll -135 xTaskGetTickCount -57 xTaskGetTickCountFromISR -136 uxTaskGetNumberOfTasks +131 vTaskStartScheduler +132 vTaskEndScheduler +133 vTaskSuspendAll +134 xTaskResumeAll +135 xTaskGetTickCount +57 xTaskGetTickCountFromISR +136 uxTaskGetNumberOfTasks 137 pcTaskGetTaskName xTaskToQuery=%t 138 uxTaskGetStackHighWaterMark xTask=%t 139 vTaskSetApplicationTaskTag xTask=%t pxHookFunction=%u @@ -23,7 +23,7 @@ 141 vTaskSetThreadLocalStoragePointer xTaskToSet=%T xIndex=%u pvValue=%u 142 pvTaskGetThreadLocalStoragePointer xTaskToQuery=%T xIndex=%u 143 xTaskCallApplicationTaskHook xTask=%T pvParameter=%u -144 xTaskGetIdleTaskHandle +144 xTaskGetIdleTaskHandle 145 uxTaskGetSystemState pxTaskStatusArray=%u uxArraySize=%u pulTotalRunTime=%u 146 vTaskList pcWriteBuffer=%u 147 vTaskGetRunTimeStats pcWriteBuffer=%u @@ -33,27 +33,27 @@ 38 vTaskNotifyGiveFromISR xTaskToNotify=%t pxHigherPriorityTaskWoken=%u 37 ulTaskNotifyTake xClearCountOnExit=%u xTicksToWait=%u 148 xTaskNotifyStateClear xTask=%t -149 xTaskGetCurrentTaskHandle +149 xTaskGetCurrentTaskHandle 150 vTaskSetTimeOutState pxTimeOut=%u 151 xTaskCheckForTimeOut pxTimeOut=%u pxTicksToWait=%u -152 vTaskMissedYield -153 xTaskGetSchedulerState +152 vTaskMissedYield +153 xTaskGetSchedulerState 39 vTaskPriorityInherit pxMutexHolder=%p 42 xTaskPriorityDisinherit pxMutexHolder=%p 154 xTaskGenericCreate pxTaskCode=%u pcName=%u usStackDepth=%u pvParameters=%u uxPriority=%u pxCreatedTask=%u puxStackBuffer=%u xRegions=%u 155 uxTaskGetTaskNumber xTask=%u 156 vTaskSetTaskNumber xTask=%u uxHandle=%u 41 vTaskStepTick xTicksToJump=%u -157 eTaskConfirmSleepModeStatus +157 eTaskConfirmSleepModeStatus 158 xTimerCreate pcTimerName=%u xTimerPeriodInTicks=%u uxAutoReload=%u pvTimerID=%u pxCallbackFunction=%u 159 pvTimerGetTimerID xTimer=%u 160 vTimerSetTimerID xTimer=%u pvNewID=%u 161 xTimerIsTimerActive xTimer=%u -162 xTimerGetTimerDaemonTaskHandle +162 xTimerGetTimerDaemonTaskHandle 163 xTimerPendFunctionCallFromISR xFunctionToPend=%u pvParameter1=%u ulParameter2=%u pxHigherPriorityTaskWoken=%u 164 xTimerPendFunctionCall xFunctionToPend=%u pvParameter1=%u ulParameter2=%u xTicksToWait=%u 165 pcTimerGetTimerName xTimer=%u -166 xTimerCreateTimerTask +166 xTimerCreateTimerTask 167 xTimerGenericCommand xTimer=%u xCommandID=%u xOptionalValue=%u pxHigherPriorityTaskWoken=%u xTicksToWait=%u 53 xQueueGenericSend xQueue=%I pvItemToQueue=%p xTicksToWait=%u xCopyPosition=%u 50 xQueuePeekFromISR xQueue=%I pvBuffer=%p @@ -92,7 +92,7 @@ 191 vListInsert pxList=%u pxNewListItem=%u 192 vListInsertEnd pxList=%u pxNewListItem=%u 193 uxListRemove pxItemToRemove=%u -194 xEventGroupCreate +194 xEventGroupCreate 195 xEventGroupWaitBits xEventGroup=%u uxBitsToWaitFor=%u xClearOnExit=%u xWaitForAllBits=%u xTicksToWait=%u 196 xEventGroupClearBits xEventGroup=%u uxBitsToClear=%u 58 xEventGroupClearBitsFromISR xEventGroup=%u uxBitsToSet=%u @@ -106,5 +106,3 @@ 513 SYSVIEW_EXAMPLE_SEND_EVENT_END evt_val=%u 514 SYSVIEW_EXAMPLE_WAIT_EVENT_START 515 SYSVIEW_EXAMPLE_WAIT_EVENT_END evt_val=%u - - diff --git a/examples/system/sysview_tracing/gdbinit b/examples/system/sysview_tracing/gdbinit index 5a9a24a59d..e3ef51a769 100644 --- a/examples/system/sysview_tracing/gdbinit +++ b/examples/system/sysview_tracing/gdbinit @@ -13,4 +13,3 @@ c end c - diff --git a/examples/system/sysview_tracing/main/CMakeLists.txt b/examples/system/sysview_tracing/main/CMakeLists.txt index a23c5937bc..0f466b71d6 100644 --- a/examples/system/sysview_tracing/main/CMakeLists.txt +++ b/examples/system/sysview_tracing/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "sysview_tracing.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/sysview_tracing_heap_log/Makefile b/examples/system/sysview_tracing_heap_log/Makefile index d14ffd8caa..88cc618df4 100644 --- a/examples/system/sysview_tracing_heap_log/Makefile +++ b/examples/system/sysview_tracing_heap_log/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := sysview_tracing_heap_log include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/sysview_tracing_heap_log/SYSVIEW_FreeRTOS.txt b/examples/system/sysview_tracing_heap_log/SYSVIEW_FreeRTOS.txt index 8162a5d968..a18fa56432 100644 --- a/examples/system/sysview_tracing_heap_log/SYSVIEW_FreeRTOS.txt +++ b/examples/system/sysview_tracing_heap_log/SYSVIEW_FreeRTOS.txt @@ -1,7 +1,7 @@ 128 vTaskAllocateMPURegions xTask=%t pxRegions=%u 33 vTaskDelete xTaskToDelete=%t 34 vTaskDelay xTicksToDelay=%u -35 vTaskDelayUntil +35 vTaskDelayUntil 129 uxTaskPriorityGet xTask=%t 56 uxTaskPriorityGetFromISR xTask=%t 130 eTaskGetState xTask=%t @@ -9,13 +9,13 @@ 36 vTaskSuspend xTaskToSuspend=%t 40 vTaskResume xTaskToResume=%t 43 xTaskResumeFromISR xTaskToResume=%t -131 vTaskStartScheduler -132 vTaskEndScheduler -133 vTaskSuspendAll -134 xTaskResumeAll -135 xTaskGetTickCount -57 xTaskGetTickCountFromISR -136 uxTaskGetNumberOfTasks +131 vTaskStartScheduler +132 vTaskEndScheduler +133 vTaskSuspendAll +134 xTaskResumeAll +135 xTaskGetTickCount +57 xTaskGetTickCountFromISR +136 uxTaskGetNumberOfTasks 137 pcTaskGetTaskName xTaskToQuery=%t 138 uxTaskGetStackHighWaterMark xTask=%t 139 vTaskSetApplicationTaskTag xTask=%t pxHookFunction=%u @@ -23,7 +23,7 @@ 141 vTaskSetThreadLocalStoragePointer xTaskToSet=%T xIndex=%u pvValue=%u 142 pvTaskGetThreadLocalStoragePointer xTaskToQuery=%T xIndex=%u 143 xTaskCallApplicationTaskHook xTask=%T pvParameter=%u -144 xTaskGetIdleTaskHandle +144 xTaskGetIdleTaskHandle 145 uxTaskGetSystemState pxTaskStatusArray=%u uxArraySize=%u pulTotalRunTime=%u 146 vTaskList pcWriteBuffer=%u 147 vTaskGetRunTimeStats pcWriteBuffer=%u @@ -33,27 +33,27 @@ 38 vTaskNotifyGiveFromISR xTaskToNotify=%t pxHigherPriorityTaskWoken=%u 37 ulTaskNotifyTake xClearCountOnExit=%u xTicksToWait=%u 148 xTaskNotifyStateClear xTask=%t -149 xTaskGetCurrentTaskHandle +149 xTaskGetCurrentTaskHandle 150 vTaskSetTimeOutState pxTimeOut=%u 151 xTaskCheckForTimeOut pxTimeOut=%u pxTicksToWait=%u -152 vTaskMissedYield -153 xTaskGetSchedulerState +152 vTaskMissedYield +153 xTaskGetSchedulerState 39 vTaskPriorityInherit pxMutexHolder=%p 42 xTaskPriorityDisinherit pxMutexHolder=%p 154 xTaskGenericCreate pxTaskCode=%u pcName=%u usStackDepth=%u pvParameters=%u uxPriority=%u pxCreatedTask=%u puxStackBuffer=%u xRegions=%u 155 uxTaskGetTaskNumber xTask=%u 156 vTaskSetTaskNumber xTask=%u uxHandle=%u 41 vTaskStepTick xTicksToJump=%u -157 eTaskConfirmSleepModeStatus +157 eTaskConfirmSleepModeStatus 158 xTimerCreate pcTimerName=%u xTimerPeriodInTicks=%u uxAutoReload=%u pvTimerID=%u pxCallbackFunction=%u 159 pvTimerGetTimerID xTimer=%u 160 vTimerSetTimerID xTimer=%u pvNewID=%u 161 xTimerIsTimerActive xTimer=%u -162 xTimerGetTimerDaemonTaskHandle +162 xTimerGetTimerDaemonTaskHandle 163 xTimerPendFunctionCallFromISR xFunctionToPend=%u pvParameter1=%u ulParameter2=%u pxHigherPriorityTaskWoken=%u 164 xTimerPendFunctionCall xFunctionToPend=%u pvParameter1=%u ulParameter2=%u xTicksToWait=%u 165 pcTimerGetTimerName xTimer=%u -166 xTimerCreateTimerTask +166 xTimerCreateTimerTask 167 xTimerGenericCommand xTimer=%u xCommandID=%u xOptionalValue=%u pxHigherPriorityTaskWoken=%u xTicksToWait=%u 53 xQueueGenericSend xQueue=%I pvItemToQueue=%p xTicksToWait=%u xCopyPosition=%u 50 xQueuePeekFromISR xQueue=%I pvBuffer=%p @@ -92,7 +92,7 @@ 191 vListInsert pxList=%u pxNewListItem=%u 192 vListInsertEnd pxList=%u pxNewListItem=%u 193 uxListRemove pxItemToRemove=%u -194 xEventGroupCreate +194 xEventGroupCreate 195 xEventGroupWaitBits xEventGroup=%u uxBitsToWaitFor=%u xClearOnExit=%u xWaitForAllBits=%u xTicksToWait=%u 196 xEventGroupClearBits xEventGroup=%u uxBitsToClear=%u 58 xEventGroupClearBitsFromISR xEventGroup=%u uxBitsToSet=%u diff --git a/examples/system/sysview_tracing_heap_log/main/CMakeLists.txt b/examples/system/sysview_tracing_heap_log/main/CMakeLists.txt index 689bafd3ba..0383353f0a 100644 --- a/examples/system/sysview_tracing_heap_log/main/CMakeLists.txt +++ b/examples/system/sysview_tracing_heap_log/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "sysview_heap_log.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/task_watchdog/Makefile b/examples/system/task_watchdog/Makefile index fb4f26b383..cfae7f6b72 100644 --- a/examples/system/task_watchdog/Makefile +++ b/examples/system/task_watchdog/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := task_watchdog include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/task_watchdog/main/CMakeLists.txt b/examples/system/task_watchdog/main/CMakeLists.txt index e805c40ac1..4d7e99fbf4 100644 --- a/examples/system/task_watchdog/main/CMakeLists.txt +++ b/examples/system/task_watchdog/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "task_watchdog_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/ulp/CMakeLists.txt b/examples/system/ulp/CMakeLists.txt index c24d801b3d..26deb484a1 100644 --- a/examples/system/ulp/CMakeLists.txt +++ b/examples/system/ulp/CMakeLists.txt @@ -3,4 +3,4 @@ cmake_minimum_required(VERSION 3.5) include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(ulp-example) \ No newline at end of file +project(ulp-example) diff --git a/examples/system/ulp/main/component.mk b/examples/system/ulp/main/component.mk index 4bb93c51b8..22e0a859a4 100644 --- a/examples/system/ulp/main/component.mk +++ b/examples/system/ulp/main/component.mk @@ -17,7 +17,7 @@ ULP_S_SOURCES = $(addprefix $(COMPONENT_PATH)/ulp/, \ # generated ULP export file, $(ULP_APP_NAME).h: ULP_EXP_DEP_OBJECTS := ulp_example_main.o # -# 4. Include build rules for ULP program +# 4. Include build rules for ULP program include $(IDF_PATH)/components/ulp/component_ulp_common.mk # # End of ULP support additions to component makefile. diff --git a/examples/system/ulp/main/ulp/pulse_cnt.S b/examples/system/ulp/main/ulp/pulse_cnt.S index 33e6ef6867..c5dfd971bc 100644 --- a/examples/system/ulp/main/ulp/pulse_cnt.S +++ b/examples/system/ulp/main/ulp/pulse_cnt.S @@ -20,7 +20,7 @@ */ /* ULP assembly files are passed through C preprocessor first, so include directives - and C macros may be used in these files + and C macros may be used in these files */ #include "soc/rtc_cntl_reg.h" #include "soc/rtc_io_reg.h" diff --git a/examples/system/ulp/main/ulp/wake_up.S b/examples/system/ulp/main/ulp/wake_up.S index ec2e05da4e..34b80b4118 100644 --- a/examples/system/ulp/main/ulp/wake_up.S +++ b/examples/system/ulp/main/ulp/wake_up.S @@ -1,5 +1,5 @@ /* ULP assembly files are passed through C preprocessor first, so include directives - and C macros may be used in these files + and C macros may be used in these files */ #include "soc/rtc_cntl_reg.h" #include "soc/soc_ulp.h" diff --git a/examples/system/ulp_adc/CMakeLists.txt b/examples/system/ulp_adc/CMakeLists.txt index 7037f86d8a..584af857fd 100644 --- a/examples/system/ulp_adc/CMakeLists.txt +++ b/examples/system/ulp_adc/CMakeLists.txt @@ -3,4 +3,4 @@ cmake_minimum_required(VERSION 3.5) include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(ulp-adc-example) \ No newline at end of file +project(ulp-adc-example) diff --git a/examples/system/ulp_adc/Makefile b/examples/system/ulp_adc/Makefile index 3c0254dff8..cb58f73bfb 100644 --- a/examples/system/ulp_adc/Makefile +++ b/examples/system/ulp_adc/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := ulp-adc-example include $(IDF_PATH)/make/project.mk - diff --git a/examples/system/ulp_adc/main/component.mk b/examples/system/ulp_adc/main/component.mk index ce6218c2de..e9423d3ef5 100644 --- a/examples/system/ulp_adc/main/component.mk +++ b/examples/system/ulp_adc/main/component.mk @@ -16,7 +16,7 @@ ULP_S_SOURCES = $(addprefix $(COMPONENT_PATH)/ulp/, \ # generated ULP export file, $(ULP_APP_NAME).h: ULP_EXP_DEP_OBJECTS := ulp_adc_example_main.o # -# 4. Include build rules for ULP program +# 4. Include build rules for ULP program include $(IDF_PATH)/components/ulp/component_ulp_common.mk # # End of ULP support additions to component makefile. diff --git a/examples/system/ulp_adc/main/ulp/adc.S b/examples/system/ulp_adc/main/ulp/adc.S index 70d0439c81..1b59ccee73 100644 --- a/examples/system/ulp_adc/main/ulp/adc.S +++ b/examples/system/ulp_adc/main/ulp/adc.S @@ -18,7 +18,7 @@ */ /* ULP assembly files are passed through C preprocessor first, so include directives - and C macros may be used in these files + and C macros may be used in these files */ #include "soc/rtc_cntl_reg.h" #include "soc/soc_ulp.h" diff --git a/examples/system/ulp_riscv/main/CMakeLists.txt b/examples/system/ulp_riscv/main/CMakeLists.txt index 389b8a1a44..0bf0513382 100644 --- a/examples/system/ulp_riscv/main/CMakeLists.txt +++ b/examples/system/ulp_riscv/main/CMakeLists.txt @@ -24,4 +24,4 @@ set(ulp_exp_dep_srcs "ulp_riscv_example_main.c") # # 4. Call function to build ULP binary and embed in project using the argument # values above. -ulp_embed_binary(${ulp_app_name} "${ulp_riscv_sources}" "${ulp_exp_dep_srcs}") \ No newline at end of file +ulp_embed_binary(${ulp_app_name} "${ulp_riscv_sources}" "${ulp_exp_dep_srcs}") diff --git a/examples/system/ulp_riscv/main/ulp/example_ulp_gpio.h b/examples/system/ulp_riscv/main/ulp/example_ulp_gpio.h index 5782e0d217..23af14a255 100644 --- a/examples/system/ulp_riscv/main/ulp/example_ulp_gpio.h +++ b/examples/system/ulp_riscv/main/ulp/example_ulp_gpio.h @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#pragma once +#pragma once #ifdef __cplusplus extern "C" { diff --git a/examples/system/ulp_riscv/main/ulp/main.c b/examples/system/ulp_riscv/main/ulp/main.c index 766d9336d5..2d5e75addf 100644 --- a/examples/system/ulp_riscv/main/ulp/main.c +++ b/examples/system/ulp_riscv/main/ulp/main.c @@ -6,7 +6,7 @@ software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - This code runs on ULP-RISC-V coprocessor + This code runs on ULP-RISC-V coprocessor */ #include @@ -39,4 +39,4 @@ int main (void) } /* ulp_riscv_shutdown() is called automatically when main exits */ return 0; -} \ No newline at end of file +} diff --git a/examples/system/ulp_riscv/main/ulp_riscv_example_main.c b/examples/system/ulp_riscv/main/ulp_riscv_example_main.c index 010a721065..7bed64e64b 100644 --- a/examples/system/ulp_riscv/main/ulp_riscv_example_main.c +++ b/examples/system/ulp_riscv/main/ulp_riscv_example_main.c @@ -44,14 +44,14 @@ void app_main(void) /* ULP Risc-V read and detected a change in GPIO_0, prints */ if (cause == ESP_SLEEP_WAKEUP_ULP) { printf("ULP-RISC-V woke up the main CPU! \n"); - printf("ULP-RISC-V read changes in GPIO_0 current is: %s \n", - (bool)(ulp_gpio_level_previous == 0) ? "Low" : "High" ); + printf("ULP-RISC-V read changes in GPIO_0 current is: %s \n", + (bool)(ulp_gpio_level_previous == 0) ? "Low" : "High" ); } /* Go back to sleep, only the ULP Risc-V will run */ printf("Entering in deep sleep\n\n"); - + /* Small delay to ensure the messages are printed */ vTaskDelay(100); @@ -64,12 +64,12 @@ static void init_ulp_program(void) esp_err_t err = ulp_riscv_load_binary(ulp_main_bin_start, (ulp_main_bin_end - ulp_main_bin_start)); ESP_ERROR_CHECK(err); - /* The first argument is the period index, which is not used by the ULP-RISC-V timer + /* The first argument is the period index, which is not used by the ULP-RISC-V timer * The second argument is the period in microseconds, which gives a wakeup time period of: 20ms */ ulp_set_wakeup_period(0, 20000); /* Start the program */ err = ulp_riscv_run(); - ESP_ERROR_CHECK(err); + ESP_ERROR_CHECK(err); } diff --git a/examples/system/ulp_riscv/sdkconfig.defaults b/examples/system/ulp_riscv/sdkconfig.defaults index c7ce247a6e..a99ce6a6d6 100644 --- a/examples/system/ulp_riscv/sdkconfig.defaults +++ b/examples/system/ulp_riscv/sdkconfig.defaults @@ -7,4 +7,4 @@ CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM=4096 CONFIG_BOOTLOADER_LOG_LEVEL_WARN=y CONFIG_BOOTLOADER_LOG_LEVEL=2 CONFIG_LOG_DEFAULT_LEVEL_WARN=y -CONFIG_LOG_DEFAULT_LEVEL=2 \ No newline at end of file +CONFIG_LOG_DEFAULT_LEVEL=2 diff --git a/examples/system/unit_test/CMakeLists.txt b/examples/system/unit_test/CMakeLists.txt index a83adb9602..4bd18e61b2 100644 --- a/examples/system/unit_test/CMakeLists.txt +++ b/examples/system/unit_test/CMakeLists.txt @@ -1,4 +1,4 @@ -# This is the project CMakeLists.txt file for the test subproject +# This is the project CMakeLists.txt file for the test subproject cmake_minimum_required(VERSION 3.5) include($ENV{IDF_PATH}/tools/cmake/project.cmake) diff --git a/examples/system/unit_test/components/testable/CMakeLists.txt b/examples/system/unit_test/components/testable/CMakeLists.txt index 59adfac9d6..6e50c21eae 100644 --- a/examples/system/unit_test/components/testable/CMakeLists.txt +++ b/examples/system/unit_test/components/testable/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "mean.c" - INCLUDE_DIRS "include") \ No newline at end of file + INCLUDE_DIRS "include") diff --git a/examples/system/unit_test/components/testable/test/component.mk b/examples/system/unit_test/components/testable/test/component.mk index 2b684a3400..e8e167ccf2 100644 --- a/examples/system/unit_test/components/testable/test/component.mk +++ b/examples/system/unit_test/components/testable/test/component.mk @@ -3,5 +3,5 @@ # The following line is needed to force the linker to include all the object # files into the application, even if the functions in these object files # are not referenced from outside (which is usually the case for unit tests). -# +# COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive diff --git a/examples/system/unit_test/main/CMakeLists.txt b/examples/system/unit_test/main/CMakeLists.txt index 0631174b7c..f96d4f5747 100644 --- a/examples/system/unit_test/main/CMakeLists.txt +++ b/examples/system/unit_test/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "example_unit_test_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/unit_test/test/main/CMakeLists.txt b/examples/system/unit_test/test/main/CMakeLists.txt index 8a4d168eac..29cdfb0f03 100644 --- a/examples/system/unit_test/test/main/CMakeLists.txt +++ b/examples/system/unit_test/test/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "example_unit_test_test.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/system/unit_test/test/main/example_unit_test_test.c b/examples/system/unit_test/test/main/example_unit_test_test.c index 92f2f038a9..acbab5c0fb 100644 --- a/examples/system/unit_test/test/main/example_unit_test_test.c +++ b/examples/system/unit_test/test/main/example_unit_test_test.c @@ -52,4 +52,3 @@ static void print_banner(const char* text) { printf("\n#### %s #####\n\n", text); } - diff --git a/examples/wifi/espnow/Makefile b/examples/wifi/espnow/Makefile index a98a5119fc..6760c0d8c9 100644 --- a/examples/wifi/espnow/Makefile +++ b/examples/wifi/espnow/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := espnow_example include $(IDF_PATH)/make/project.mk - diff --git a/examples/wifi/espnow/main/CMakeLists.txt b/examples/wifi/espnow/main/CMakeLists.txt index c752a271b6..3aef7036c6 100644 --- a/examples/wifi/espnow/main/CMakeLists.txt +++ b/examples/wifi/espnow/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "espnow_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/wifi/espnow/main/component.mk b/examples/wifi/espnow/main/component.mk index 7d7b29bfd4..a98f634eae 100644 --- a/examples/wifi/espnow/main/component.mk +++ b/examples/wifi/espnow/main/component.mk @@ -2,6 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - - - diff --git a/examples/wifi/fast_scan/Makefile b/examples/wifi/fast_scan/Makefile index 9c6421b13f..a2218e93ff 100644 --- a/examples/wifi/fast_scan/Makefile +++ b/examples/wifi/fast_scan/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := fast_scan include $(IDF_PATH)/make/project.mk - diff --git a/examples/wifi/fast_scan/main/component.mk b/examples/wifi/fast_scan/main/component.mk index 7d7b29bfd4..a98f634eae 100644 --- a/examples/wifi/fast_scan/main/component.mk +++ b/examples/wifi/fast_scan/main/component.mk @@ -2,6 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - - - diff --git a/examples/wifi/getting_started/softAP/Makefile b/examples/wifi/getting_started/softAP/Makefile index 507c5e0604..f8ddccd594 100644 --- a/examples/wifi/getting_started/softAP/Makefile +++ b/examples/wifi/getting_started/softAP/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := wifi_softAP include $(IDF_PATH)/make/project.mk - diff --git a/examples/wifi/getting_started/softAP/main/CMakeLists.txt b/examples/wifi/getting_started/softAP/main/CMakeLists.txt index a89388299c..ddc8ca7fa4 100644 --- a/examples/wifi/getting_started/softAP/main/CMakeLists.txt +++ b/examples/wifi/getting_started/softAP/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "softap_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/wifi/getting_started/softAP/main/component.mk b/examples/wifi/getting_started/softAP/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/wifi/getting_started/softAP/main/component.mk +++ b/examples/wifi/getting_started/softAP/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/wifi/getting_started/station/Makefile b/examples/wifi/getting_started/station/Makefile index ed014837af..84ddf45aef 100644 --- a/examples/wifi/getting_started/station/Makefile +++ b/examples/wifi/getting_started/station/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := wifi_station include $(IDF_PATH)/make/project.mk - diff --git a/examples/wifi/getting_started/station/main/CMakeLists.txt b/examples/wifi/getting_started/station/main/CMakeLists.txt index 444b0f59f1..2ba044442a 100644 --- a/examples/wifi/getting_started/station/main/CMakeLists.txt +++ b/examples/wifi/getting_started/station/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "station_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/wifi/getting_started/station/main/component.mk b/examples/wifi/getting_started/station/main/component.mk index 61f8990c31..0adf45649a 100644 --- a/examples/wifi/getting_started/station/main/component.mk +++ b/examples/wifi/getting_started/station/main/component.mk @@ -1,8 +1,8 @@ # # Main component makefile. # -# This Makefile can be left empty. By default, it will take the sources in the -# src/ directory, compile them and link them into lib(subdirectory_name).a +# This Makefile can be left empty. By default, it will take the sources in the +# src/ directory, compile them and link them into lib(subdirectory_name).a # in the build directory. This behaviour is entirely configurable, # please read the ESP-IDF documents if you need to do this. # diff --git a/examples/wifi/iperf/components/iperf/CMakeLists.txt b/examples/wifi/iperf/components/iperf/CMakeLists.txt index 29cca1e3ec..95557f2e10 100644 --- a/examples/wifi/iperf/components/iperf/CMakeLists.txt +++ b/examples/wifi/iperf/components/iperf/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "iperf.c" INCLUDE_DIRS . - REQUIRES lwip) \ No newline at end of file + REQUIRES lwip) diff --git a/examples/wifi/iperf/main/CMakeLists.txt b/examples/wifi/iperf/main/CMakeLists.txt index 978cc99e0e..ab497c35d2 100644 --- a/examples/wifi/iperf/main/CMakeLists.txt +++ b/examples/wifi/iperf/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "cmd_wifi.c" "iperf_example_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/wifi/iperf/main/iperf_example_main.c b/examples/wifi/iperf/main/iperf_example_main.c index 873024d76e..6d60a9e4cf 100644 --- a/examples/wifi/iperf/main/iperf_example_main.c +++ b/examples/wifi/iperf/main/iperf_example_main.c @@ -50,4 +50,3 @@ void app_main(void) // start console REPL ESP_ERROR_CHECK(esp_console_start_repl(repl)); } - diff --git a/examples/wifi/iperf/sdkconfig.ci.01 b/examples/wifi/iperf/sdkconfig.ci.01 index 0cea3afaae..91ac6effaf 100644 --- a/examples/wifi/iperf/sdkconfig.ci.01 +++ b/examples/wifi/iperf/sdkconfig.ci.01 @@ -22,4 +22,3 @@ CONFIG_LWIP_TCP_RECVMBOX_SIZE=12 CONFIG_LWIP_UDP_RECVMBOX_SIZE=12 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=48 CONFIG_LWIP_ETHARP_TRUST_IP_MAC=n - diff --git a/examples/wifi/iperf/sdkconfig.ci.02 b/examples/wifi/iperf/sdkconfig.ci.02 index 0d3476911b..03c09deb1e 100644 --- a/examples/wifi/iperf/sdkconfig.ci.02 +++ b/examples/wifi/iperf/sdkconfig.ci.02 @@ -22,4 +22,3 @@ CONFIG_LWIP_TCP_RECVMBOX_SIZE=12 CONFIG_LWIP_UDP_RECVMBOX_SIZE=12 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=48 CONFIG_LWIP_ETHARP_TRUST_IP_MAC=n - diff --git a/examples/wifi/iperf/sdkconfig.ci.03 b/examples/wifi/iperf/sdkconfig.ci.03 index 521d0a19dc..e169338fc6 100644 --- a/examples/wifi/iperf/sdkconfig.ci.03 +++ b/examples/wifi/iperf/sdkconfig.ci.03 @@ -22,4 +22,3 @@ CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 CONFIG_LWIP_ETHARP_TRUST_IP_MAC=n - diff --git a/examples/wifi/iperf/sdkconfig.ci.04 b/examples/wifi/iperf/sdkconfig.ci.04 index 4aaeca925f..37b31ff7d6 100644 --- a/examples/wifi/iperf/sdkconfig.ci.04 +++ b/examples/wifi/iperf/sdkconfig.ci.04 @@ -22,4 +22,3 @@ CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 CONFIG_LWIP_ETHARP_TRUST_IP_MAC=n - diff --git a/examples/wifi/iperf/sdkconfig.ci.05 b/examples/wifi/iperf/sdkconfig.ci.05 index 27ca6f0881..5aa56680b3 100644 --- a/examples/wifi/iperf/sdkconfig.ci.05 +++ b/examples/wifi/iperf/sdkconfig.ci.05 @@ -26,4 +26,3 @@ CONFIG_LWIP_ETHARP_TRUST_IP_MAC=n CONFIG_ESPTOOLPY_FLASHMODE_QIO=y CONFIG_ESPTOOLPY_FLASHFREQ_80M=y CONFIG_LWIP_IRAM_OPTIMIZATION=y - diff --git a/examples/wifi/iperf/sdkconfig.defaults.esp32 b/examples/wifi/iperf/sdkconfig.defaults.esp32 index 4fad263abd..f23f7c4439 100644 --- a/examples/wifi/iperf/sdkconfig.defaults.esp32 +++ b/examples/wifi/iperf/sdkconfig.defaults.esp32 @@ -17,4 +17,3 @@ CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 CONFIG_ESPTOOLPY_FLASHMODE_QIO=y CONFIG_ESPTOOLPY_FLASHFREQ_40M=y - diff --git a/examples/wifi/iperf/sdkconfig.defaults.esp32s2 b/examples/wifi/iperf/sdkconfig.defaults.esp32s2 index a17196e0a1..cb91abc589 100644 --- a/examples/wifi/iperf/sdkconfig.defaults.esp32s2 +++ b/examples/wifi/iperf/sdkconfig.defaults.esp32s2 @@ -24,4 +24,3 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M=y CONFIG_ESP32S2_INSTRUCTION_CACHE_16KB=y CONFIG_ESP32S2_INSTRUCTION_CACHE_LINE_16B=y CONFIG_ESP32S2_INSTRUCTION_CACHE_WRAP=y - diff --git a/examples/wifi/power_save/Makefile b/examples/wifi/power_save/Makefile index 6f2f554343..62a7d0f5cf 100644 --- a/examples/wifi/power_save/Makefile +++ b/examples/wifi/power_save/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := power_save include $(IDF_PATH)/make/project.mk - diff --git a/examples/wifi/power_save/main/CMakeLists.txt b/examples/wifi/power_save/main/CMakeLists.txt index e02dc88c90..ff5ba16ba5 100644 --- a/examples/wifi/power_save/main/CMakeLists.txt +++ b/examples/wifi/power_save/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "power_save.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/wifi/power_save/main/component.mk b/examples/wifi/power_save/main/component.mk index 7d7b29bfd4..a98f634eae 100644 --- a/examples/wifi/power_save/main/component.mk +++ b/examples/wifi/power_save/main/component.mk @@ -2,6 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - - - diff --git a/examples/wifi/scan/Makefile b/examples/wifi/scan/Makefile index f560b7aae7..4a9617351c 100644 --- a/examples/wifi/scan/Makefile +++ b/examples/wifi/scan/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := scan include $(IDF_PATH)/make/project.mk - diff --git a/examples/wifi/scan/main/CMakeLists.txt b/examples/wifi/scan/main/CMakeLists.txt index 9719433b43..a4c5d04fd7 100644 --- a/examples/wifi/scan/main/CMakeLists.txt +++ b/examples/wifi/scan/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "scan.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/wifi/scan/main/Kconfig.projbuild b/examples/wifi/scan/main/Kconfig.projbuild index 9411c21411..3529c9b01d 100644 --- a/examples/wifi/scan/main/Kconfig.projbuild +++ b/examples/wifi/scan/main/Kconfig.projbuild @@ -8,4 +8,3 @@ menu "Example Configuration" The size of array that will be used to retrieve the list of access points. endmenu - diff --git a/examples/wifi/scan/main/component.mk b/examples/wifi/scan/main/component.mk index 7d7b29bfd4..a98f634eae 100644 --- a/examples/wifi/scan/main/component.mk +++ b/examples/wifi/scan/main/component.mk @@ -2,6 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - - - diff --git a/examples/wifi/simple_sniffer/Makefile b/examples/wifi/simple_sniffer/Makefile index 13aa6f824c..e24c80b726 100644 --- a/examples/wifi/simple_sniffer/Makefile +++ b/examples/wifi/simple_sniffer/Makefile @@ -8,4 +8,3 @@ PROJECT_NAME := simple_sniffer EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/system/console/components include $(IDF_PATH)/make/project.mk - diff --git a/examples/wifi/simple_sniffer/components/pcap/CMakeLists.txt b/examples/wifi/simple_sniffer/components/pcap/CMakeLists.txt index ca59591e53..f12edf2304 100644 --- a/examples/wifi/simple_sniffer/components/pcap/CMakeLists.txt +++ b/examples/wifi/simple_sniffer/components/pcap/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "pcap.c" - INCLUDE_DIRS .) \ No newline at end of file + INCLUDE_DIRS .) diff --git a/examples/wifi/simple_sniffer/components/pcap/component.mk b/examples/wifi/simple_sniffer/components/pcap/component.mk index da115f7d4b..e5a56dfd56 100644 --- a/examples/wifi/simple_sniffer/components/pcap/component.mk +++ b/examples/wifi/simple_sniffer/components/pcap/component.mk @@ -1,8 +1,8 @@ # # Component Makefile # -# This Makefile should, at the very least, just include $(SDK_PATH)/Makefile. By default, -# this will take the sources in the src/ directory, compile them and link them into +# This Makefile should, at the very least, just include $(SDK_PATH)/Makefile. By default, +# this will take the sources in the src/ directory, compile them and link them into # lib(subdirectory_name).a in the build directory. This behaviour is entirely configurable, # please read the SDK documents if you need to do this. # diff --git a/examples/wifi/simple_sniffer/main/CMakeLists.txt b/examples/wifi/simple_sniffer/main/CMakeLists.txt index 9e14ddef0d..944e8b301b 100644 --- a/examples/wifi/simple_sniffer/main/CMakeLists.txt +++ b/examples/wifi/simple_sniffer/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "simple_sniffer_example_main.c" "cmd_sniffer.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/wifi/simple_sniffer/partitions_example.csv b/examples/wifi/simple_sniffer/partitions_example.csv index ac18e080c8..1c79321a10 100644 --- a/examples/wifi/simple_sniffer/partitions_example.csv +++ b/examples/wifi/simple_sniffer/partitions_example.csv @@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -storage, data, fat, , 1M, +storage, data, fat, , 1M, diff --git a/examples/wifi/simple_sniffer/sdkconfig.defaults b/examples/wifi/simple_sniffer/sdkconfig.defaults index a3b47e90e5..8f75f72113 100644 --- a/examples/wifi/simple_sniffer/sdkconfig.defaults +++ b/examples/wifi/simple_sniffer/sdkconfig.defaults @@ -23,4 +23,3 @@ CONFIG_FATFS_MAX_LFN=31 # App trace CONFIG_APPTRACE_DEST_TRAX=y CONFIG_APPTRACE_ENABLE=y - diff --git a/examples/wifi/smart_config/Makefile b/examples/wifi/smart_config/Makefile index 5f55831219..48ea74c0de 100644 --- a/examples/wifi/smart_config/Makefile +++ b/examples/wifi/smart_config/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := smart_config include $(IDF_PATH)/make/project.mk - diff --git a/examples/wifi/smart_config/main/CMakeLists.txt b/examples/wifi/smart_config/main/CMakeLists.txt index 5f956d6660..559b60cadb 100644 --- a/examples/wifi/smart_config/main/CMakeLists.txt +++ b/examples/wifi/smart_config/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "smartconfig_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/wifi/smart_config/main/component.mk b/examples/wifi/smart_config/main/component.mk index 17fe35eb4d..a98f634eae 100644 --- a/examples/wifi/smart_config/main/component.mk +++ b/examples/wifi/smart_config/main/component.mk @@ -2,5 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - - diff --git a/examples/wifi/smart_config/main/smartconfig_main.c b/examples/wifi/smart_config/main/smartconfig_main.c index b8a668c3f1..3d79a39d58 100644 --- a/examples/wifi/smart_config/main/smartconfig_main.c +++ b/examples/wifi/smart_config/main/smartconfig_main.c @@ -33,7 +33,7 @@ static const char *TAG = "smartconfig_example"; static void smartconfig_example_task(void * parm); -static void event_handler(void* arg, esp_event_base_t event_base, +static void event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) { @@ -102,7 +102,7 @@ static void smartconfig_example_task(void * parm) smartconfig_start_config_t cfg = SMARTCONFIG_START_CONFIG_DEFAULT(); ESP_ERROR_CHECK( esp_smartconfig_start(&cfg) ); while (1) { - uxBits = xEventGroupWaitBits(s_wifi_event_group, CONNECTED_BIT | ESPTOUCH_DONE_BIT, true, false, portMAX_DELAY); + uxBits = xEventGroupWaitBits(s_wifi_event_group, CONNECTED_BIT | ESPTOUCH_DONE_BIT, true, false, portMAX_DELAY); if(uxBits & CONNECTED_BIT) { ESP_LOGI(TAG, "WiFi Connected to ap"); } @@ -119,4 +119,3 @@ void app_main(void) ESP_ERROR_CHECK( nvs_flash_init() ); initialise_wifi(); } - diff --git a/examples/wifi/wpa2_enterprise/Makefile b/examples/wifi/wpa2_enterprise/Makefile index ff23a93934..0b7132e00c 100644 --- a/examples/wifi/wpa2_enterprise/Makefile +++ b/examples/wifi/wpa2_enterprise/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := wpa2-enterprise include $(IDF_PATH)/make/project.mk - diff --git a/examples/wifi/wpa2_enterprise/main/CMakeLists.txt b/examples/wifi/wpa2_enterprise/main/CMakeLists.txt index 1c847a1f62..59f94eb604 100644 --- a/examples/wifi/wpa2_enterprise/main/CMakeLists.txt +++ b/examples/wifi/wpa2_enterprise/main/CMakeLists.txt @@ -1,4 +1,4 @@ # Embed CA, certificate & key directly into binary idf_component_register(SRCS "wpa2_enterprise_main.c" INCLUDE_DIRS "." - EMBED_TXTFILES wpa2_ca.pem wpa2_client.crt wpa2_client.key) \ No newline at end of file + EMBED_TXTFILES wpa2_ca.pem wpa2_client.crt wpa2_client.key) diff --git a/examples/wifi/wpa2_enterprise/main/component.mk b/examples/wifi/wpa2_enterprise/main/component.mk index aab8ff8f38..a0a4ceddea 100644 --- a/examples/wifi/wpa2_enterprise/main/component.mk +++ b/examples/wifi/wpa2_enterprise/main/component.mk @@ -8,5 +8,3 @@ COMPONENT_EMBED_TXTFILES := wpa2_ca.pem COMPONENT_EMBED_TXTFILES += wpa2_client.crt COMPONENT_EMBED_TXTFILES += wpa2_client.key - - diff --git a/examples/wifi/wpa2_enterprise/main/wpa2_client.crt b/examples/wifi/wpa2_enterprise/main/wpa2_client.crt index 0e03a1b79b..12dbfc8f55 100644 --- a/examples/wifi/wpa2_enterprise/main/wpa2_client.crt +++ b/examples/wifi/wpa2_enterprise/main/wpa2_client.crt @@ -32,9 +32,9 @@ Certificate: d1:ef Exponent: 65537 (0x10001) X509v3 extensions: - X509v3 Extended Key Usage: + X509v3 Extended Key Usage: TLS Web Client Authentication - X509v3 CRL Distribution Points: + X509v3 CRL Distribution Points: Full Name: URI:http://www.example.com/example_ca.crl diff --git a/examples/wifi/wpa2_enterprise/main/wpa2_client.pem b/examples/wifi/wpa2_enterprise/main/wpa2_client.pem index 101f6cc399..c7c4fe7dda 100644 --- a/examples/wifi/wpa2_enterprise/main/wpa2_client.pem +++ b/examples/wifi/wpa2_enterprise/main/wpa2_client.pem @@ -1,5 +1,5 @@ Bag Attributes - localKeyID: 40 1A 0E 8F 13 CA 96 2C 6D DB 18 E4 EF A8 83 84 0C 61 85 FE + localKeyID: 40 1A 0E 8F 13 CA 96 2C 6D DB 18 E4 EF A8 83 84 0C 61 85 FE subject=/C=FR/ST=Radius/O=Example Inc./CN=user@example.com/emailAddress=user@example.com issuer=/C=FR/ST=Radius/L=Somewhere/O=Example Inc./emailAddress=admin@example.com/CN=Example Certificate Authority -----BEGIN CERTIFICATE----- @@ -23,7 +23,7 @@ dK+/PjQ21SR6geIbVFKFb3be3GOYRfwsMfoipHI6jdRqLt4zEEHrlB3jWc2yvqvw tiCGnLhG7sVkurZszFNEeoASd3znUWeRMi+InZOo79bN3g== -----END CERTIFICATE----- Bag Attributes - localKeyID: 40 1A 0E 8F 13 CA 96 2C 6D DB 18 E4 EF A8 83 84 0C 61 85 FE + localKeyID: 40 1A 0E 8F 13 CA 96 2C 6D DB 18 E4 EF A8 83 84 0C 61 85 FE Key Attributes: -----BEGIN ENCRYPTED PRIVATE KEY----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIvLOGpsoWmVMCAggA diff --git a/examples/wifi/wpa2_enterprise/main/wpa2_enterprise_main.c b/examples/wifi/wpa2_enterprise/main/wpa2_enterprise_main.c index 63dd5f6a6a..372b0cfd1f 100644 --- a/examples/wifi/wpa2_enterprise/main/wpa2_enterprise_main.c +++ b/examples/wifi/wpa2_enterprise/main/wpa2_enterprise_main.c @@ -84,7 +84,7 @@ extern uint8_t client_key_end[] asm("_binary_wpa2_client_key_end"); esp_eap_ttls_phase2_types TTLS_PHASE2_METHOD = CONFIG_EXAMPLE_EAP_METHOD_TTLS_PHASE_2; #endif /* CONFIG_EXAMPLE_EAP_METHOD_TTLS */ -static void event_handler(void* arg, esp_event_base_t event_base, +static void event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) { @@ -142,7 +142,7 @@ static void initialise_wifi(void) ESP_ERROR_CHECK( esp_wifi_sta_wpa2_ent_set_username((uint8_t *)EXAMPLE_EAP_USERNAME, strlen(EXAMPLE_EAP_USERNAME)) ); ESP_ERROR_CHECK( esp_wifi_sta_wpa2_ent_set_password((uint8_t *)EXAMPLE_EAP_PASSWORD, strlen(EXAMPLE_EAP_PASSWORD)) ); #endif /* CONFIG_EXAMPLE_EAP_METHOD_PEAP || CONFIG_EXAMPLE_EAP_METHOD_TTLS */ - + #if defined CONFIG_EXAMPLE_EAP_METHOD_TTLS ESP_ERROR_CHECK( esp_wifi_sta_wpa2_ent_set_ttls_phase2_method(TTLS_PHASE2_METHOD) ); #endif /* CONFIG_EXAMPLE_EAP_METHOD_TTLS */ diff --git a/examples/wifi/wpa2_enterprise/main/wpa2_server.crt b/examples/wifi/wpa2_enterprise/main/wpa2_server.crt index 8f1dfcda6c..0af6f1741f 100644 --- a/examples/wifi/wpa2_enterprise/main/wpa2_server.crt +++ b/examples/wifi/wpa2_enterprise/main/wpa2_server.crt @@ -32,9 +32,9 @@ Certificate: 3b:e3 Exponent: 65537 (0x10001) X509v3 extensions: - X509v3 Extended Key Usage: + X509v3 Extended Key Usage: TLS Web Server Authentication - X509v3 CRL Distribution Points: + X509v3 CRL Distribution Points: Full Name: URI:http://www.example.com/example_ca.crl diff --git a/examples/wifi/wpa2_enterprise/main/wpa2_server.pem b/examples/wifi/wpa2_enterprise/main/wpa2_server.pem index ce49ae6320..b6e3c0d16d 100644 --- a/examples/wifi/wpa2_enterprise/main/wpa2_server.pem +++ b/examples/wifi/wpa2_enterprise/main/wpa2_server.pem @@ -1,5 +1,5 @@ Bag Attributes - localKeyID: 63 3B C1 EE 3A 4A 9B 3E FF 9E E7 BC 17 50 D7 F7 B7 7E 3B C0 + localKeyID: 63 3B C1 EE 3A 4A 9B 3E FF 9E E7 BC 17 50 D7 F7 B7 7E 3B C0 subject=/C=FR/ST=Radius/O=Example Inc./CN=Example Server Certificate/emailAddress=admin@example.com issuer=/C=FR/ST=Radius/L=Somewhere/O=Example Inc./emailAddress=admin@example.com/CN=Example Certificate Authority -----BEGIN CERTIFICATE----- @@ -23,7 +23,7 @@ O4VePyZDio6VWJym25xRv+pTFj7BqBEaxs8OoRcYZNIF8cCcpisWxClUA9IXvRV0 1q2Kjy3MJzuIiPLq0KLL6UJX3yafiqICLzW2GR0mQ0SvEku8uYRQAv0d+lDo -----END CERTIFICATE----- Bag Attributes - localKeyID: 63 3B C1 EE 3A 4A 9B 3E FF 9E E7 BC 17 50 D7 F7 B7 7E 3B C0 + localKeyID: 63 3B C1 EE 3A 4A 9B 3E FF 9E E7 BC 17 50 D7 F7 B7 7E 3B C0 Key Attributes: -----BEGIN ENCRYPTED PRIVATE KEY----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIzOJcU8NzjKACAggA diff --git a/examples/wifi/wps/Makefile b/examples/wifi/wps/Makefile index 0fbaf22140..ca3c026091 100644 --- a/examples/wifi/wps/Makefile +++ b/examples/wifi/wps/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := wps_example include $(IDF_PATH)/make/project.mk - diff --git a/examples/wifi/wps/main/CMakeLists.txt b/examples/wifi/wps/main/CMakeLists.txt index 5ca4a9211f..8801e8f8ca 100644 --- a/examples/wifi/wps/main/CMakeLists.txt +++ b/examples/wifi/wps/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "wps.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/examples/wifi/wps/main/component.mk b/examples/wifi/wps/main/component.mk index 7d7b29bfd4..a98f634eae 100644 --- a/examples/wifi/wps/main/component.mk +++ b/examples/wifi/wps/main/component.mk @@ -2,6 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - - - diff --git a/examples/wifi/wps/main/wps.c b/examples/wifi/wps/main/wps.c index edf87ae54a..682b2aa84d 100644 --- a/examples/wifi/wps/main/wps.c +++ b/examples/wifi/wps/main/wps.c @@ -16,7 +16,7 @@ ESP32 will receive SSID and password, and connect to the router. WPS_TYPE_PIN: - Start ESP32, you'll see an eight-digit PIN number in log output. + Start ESP32, you'll see an eight-digit PIN number in log output. Enter the PIN code on the router and then the ESP32 will get connected to router. */ diff --git a/export.sh b/export.sh index 5e488d64e8..6c48d6719b 100644 --- a/export.sh +++ b/export.sh @@ -151,4 +151,3 @@ enable_autocomplete unset realpath_int unset idf_export_main - diff --git a/install.fish b/install.fish index 2a734a2b40..0e67991ac4 100755 --- a/install.fish +++ b/install.fish @@ -13,4 +13,4 @@ echo "Installing Python environment and packages" echo "All done! You can now run:" echo "" echo " . "$basedir"/export.fish" -echo "" \ No newline at end of file +echo "" diff --git a/make/component_wrapper.mk b/make/component_wrapper.mk index 278452ef1b..bd31739a52 100644 --- a/make/component_wrapper.mk +++ b/make/component_wrapper.mk @@ -342,4 +342,3 @@ component_project_vars.mk:: # no need to add variables via component.mk @echo '# COMPONENT_CONFIG_ONLY target sets no variables here' > $@ endif # COMPONENT_CONFIG_ONLY - diff --git a/make/project.mk b/make/project.mk index 19e848e688..e7fc7257aa 100644 --- a/make/project.mk +++ b/make/project.mk @@ -318,7 +318,7 @@ ifdef SECURE_SIGNED_APPS_ECDSA_SCHEME @echo "App built but not signed. Sign app & partition data before flashing, via espsecure.py:" @echo "espsecure.py sign_data --version 1 --keyfile KEYFILE $(APP_BIN)" @echo "espsecure.py sign_data --version 1 --keyfile KEYFILE $(PARTITION_TABLE_BIN)" -else +else @echo "App built but not signed. Sign app & partition data before flashing, via espsecure.py:" @echo "espsecure.py sign_data --version 2 --keyfile KEYFILE $(APP_BIN)" endif @@ -770,4 +770,3 @@ endif #CONFIG_SDK_TOOLPREFIX ##################################################################### endif #CONFIG_IDF_TARGET - diff --git a/sdkconfig.rename b/sdkconfig.rename index 1440ae6e67..a910da262f 100644 --- a/sdkconfig.rename +++ b/sdkconfig.rename @@ -25,4 +25,4 @@ CONFIG_STACK_CHECK_STRONG CONFIG_COMPILER_STACK_CHECK_MODE_S CONFIG_STACK_CHECK_ALL CONFIG_COMPILER_STACK_CHECK_MODE_ALL CONFIG_STACK_CHECK CONFIG_COMPILER_STACK_CHECK CONFIG_WARN_WRITE_STRINGS CONFIG_COMPILER_WARN_WRITE_STRINGS -CONFIG_DISABLE_GCC8_WARNINGS CONFIG_COMPILER_DISABLE_GCC8_WARNINGS \ No newline at end of file +CONFIG_DISABLE_GCC8_WARNINGS CONFIG_COMPILER_DISABLE_GCC8_WARNINGS diff --git a/tools/catch/catch.hpp b/tools/catch/catch.hpp index 879fc5b1d1..3c02c7a638 100644 --- a/tools/catch/catch.hpp +++ b/tools/catch/catch.hpp @@ -10506,4 +10506,3 @@ int main (int argc, char * const argv[]) { using Catch::Detail::Approx; #endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED - diff --git a/tools/ci/build_template_app.sh b/tools/ci/build_template_app.sh index be09b565dc..72332c5a21 100755 --- a/tools/ci/build_template_app.sh +++ b/tools/ci/build_template_app.sh @@ -125,4 +125,4 @@ then build_stage1 else build_stage2 -fi \ No newline at end of file +fi diff --git a/tools/ci/check_idf_version.sh b/tools/ci/check_idf_version.sh index 2d66dacda1..9e249c8cdb 100755 --- a/tools/ci/check_idf_version.sh +++ b/tools/ci/check_idf_version.sh @@ -43,7 +43,7 @@ version_from_git="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${BASH_REMATCH[4]:-0}" echo "From esp_idf_version.h: ${version_from_header}" echo "From version.mk: ${version_from_make}" -echo "From version.cmake: ${version_from_cmake}" +echo "From version.cmake: ${version_from_cmake}" echo "From git describe: ${version_from_git}" if [[ "${version_from_header}" != "${version_from_git}" ]]; then diff --git a/tools/ci/check_public_headers_exceptions.txt b/tools/ci/check_public_headers_exceptions.txt index 61cb5b5742..403f6953dd 100644 --- a/tools/ci/check_public_headers_exceptions.txt +++ b/tools/ci/check_public_headers_exceptions.txt @@ -150,4 +150,3 @@ components/ulp/include/esp32s2/ulp_riscv.h components/lwip/include/apps/sntp/sntp.h components/mbedtls/esp_crt_bundle/include/esp_crt_bundle.h components/wifi_provisioning/include/wifi_provisioning/scheme_softap.h - diff --git a/tools/ci/push_to_github.sh b/tools/ci/push_to_github.sh index 1c3a343fd2..cc0a7fa1f1 100755 --- a/tools/ci/push_to_github.sh +++ b/tools/ci/push_to_github.sh @@ -11,4 +11,3 @@ else # for branches git push github "${CI_COMMIT_SHA}:refs/heads/${CI_COMMIT_REF_NAME}" fi - diff --git a/tools/ci/python_packages/tiny_test_fw/docs/Makefile b/tools/ci/python_packages/tiny_test_fw/docs/Makefile index dab95f0ad8..15996e0855 100644 --- a/tools/ci/python_packages/tiny_test_fw/docs/Makefile +++ b/tools/ci/python_packages/tiny_test_fw/docs/Makefile @@ -23,4 +23,4 @@ help: # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXAPI) -o $(SOURCEDIR) $(SPHINXAPISRC) $(EXCLUEDLIST) - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/tools/ci/static-analysis-rules.yml b/tools/ci/static-analysis-rules.yml index 1d67d408f7..d96b0a0aa9 100644 --- a/tools/ci/static-analysis-rules.yml +++ b/tools/ci/static-analysis-rules.yml @@ -20,4 +20,4 @@ skip: - "components/nghttp/nghttp2" - "components/protobuf-c/protobuf-c" - "components/spiffs/spiffs" - - "components/unity/unity" \ No newline at end of file + - "components/unity/unity" diff --git a/tools/cmake/scripts/component_get_requirements.cmake b/tools/cmake/scripts/component_get_requirements.cmake index d4e59df364..e9afe86953 100644 --- a/tools/cmake/scripts/component_get_requirements.cmake +++ b/tools/cmake/scripts/component_get_requirements.cmake @@ -153,4 +153,4 @@ __component_set_property(${__component_target} __COMPONENT_REGISTERED ${__compon set(__component_requires_contents "${__component_requires_contents}\n${__contents}") endforeach() -file(WRITE ${COMPONENT_REQUIRES_FILE} "${__component_requires_contents}") \ No newline at end of file +file(WRITE ${COMPONENT_REQUIRES_FILE} "${__component_requires_contents}") diff --git a/tools/cmake/scripts/fail.cmake b/tools/cmake/scripts/fail.cmake index b33aec4c36..ab84a56b0f 100644 --- a/tools/cmake/scripts/fail.cmake +++ b/tools/cmake/scripts/fail.cmake @@ -1,4 +1,3 @@ # 'cmake -E' doesn't have a way to fail outright, so run this script # with 'cmake -P' to fail a build. message(FATAL_ERROR "$ENV{FAIL_MESSAGE}") - diff --git a/tools/cmake/third_party/GetGitRevisionDescription.cmake b/tools/cmake/third_party/GetGitRevisionDescription.cmake index ab048d6439..37077b3b03 100644 --- a/tools/cmake/third_party/GetGitRevisionDescription.cmake +++ b/tools/cmake/third_party/GetGitRevisionDescription.cmake @@ -55,7 +55,7 @@ function(get_git_head_revision _refspecvar _hashvar _repo_dir) GIT_DIR ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) - + if(NOT res EQUAL 0) return() endif() @@ -95,7 +95,7 @@ function(git_describe _var _repo_dir) if(NOT hash) set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE) return() - + endif() # TODO sanitize diff --git a/tools/cmake/utilities.cmake b/tools/cmake/utilities.cmake index b0c8c9ddc1..df8b514bed 100644 --- a/tools/cmake/utilities.cmake +++ b/tools/cmake/utilities.cmake @@ -339,4 +339,4 @@ function(add_subdirectory_if_exists source_dir) else() message(STATUS "Subdirectory '${abs_dir}' does not exist, skipped.") endif() -endfunction() \ No newline at end of file +endfunction() diff --git a/tools/esp_app_trace/SYSVIEW_FreeRTOS.txt b/tools/esp_app_trace/SYSVIEW_FreeRTOS.txt index 8162a5d968..a18fa56432 100644 --- a/tools/esp_app_trace/SYSVIEW_FreeRTOS.txt +++ b/tools/esp_app_trace/SYSVIEW_FreeRTOS.txt @@ -1,7 +1,7 @@ 128 vTaskAllocateMPURegions xTask=%t pxRegions=%u 33 vTaskDelete xTaskToDelete=%t 34 vTaskDelay xTicksToDelay=%u -35 vTaskDelayUntil +35 vTaskDelayUntil 129 uxTaskPriorityGet xTask=%t 56 uxTaskPriorityGetFromISR xTask=%t 130 eTaskGetState xTask=%t @@ -9,13 +9,13 @@ 36 vTaskSuspend xTaskToSuspend=%t 40 vTaskResume xTaskToResume=%t 43 xTaskResumeFromISR xTaskToResume=%t -131 vTaskStartScheduler -132 vTaskEndScheduler -133 vTaskSuspendAll -134 xTaskResumeAll -135 xTaskGetTickCount -57 xTaskGetTickCountFromISR -136 uxTaskGetNumberOfTasks +131 vTaskStartScheduler +132 vTaskEndScheduler +133 vTaskSuspendAll +134 xTaskResumeAll +135 xTaskGetTickCount +57 xTaskGetTickCountFromISR +136 uxTaskGetNumberOfTasks 137 pcTaskGetTaskName xTaskToQuery=%t 138 uxTaskGetStackHighWaterMark xTask=%t 139 vTaskSetApplicationTaskTag xTask=%t pxHookFunction=%u @@ -23,7 +23,7 @@ 141 vTaskSetThreadLocalStoragePointer xTaskToSet=%T xIndex=%u pvValue=%u 142 pvTaskGetThreadLocalStoragePointer xTaskToQuery=%T xIndex=%u 143 xTaskCallApplicationTaskHook xTask=%T pvParameter=%u -144 xTaskGetIdleTaskHandle +144 xTaskGetIdleTaskHandle 145 uxTaskGetSystemState pxTaskStatusArray=%u uxArraySize=%u pulTotalRunTime=%u 146 vTaskList pcWriteBuffer=%u 147 vTaskGetRunTimeStats pcWriteBuffer=%u @@ -33,27 +33,27 @@ 38 vTaskNotifyGiveFromISR xTaskToNotify=%t pxHigherPriorityTaskWoken=%u 37 ulTaskNotifyTake xClearCountOnExit=%u xTicksToWait=%u 148 xTaskNotifyStateClear xTask=%t -149 xTaskGetCurrentTaskHandle +149 xTaskGetCurrentTaskHandle 150 vTaskSetTimeOutState pxTimeOut=%u 151 xTaskCheckForTimeOut pxTimeOut=%u pxTicksToWait=%u -152 vTaskMissedYield -153 xTaskGetSchedulerState +152 vTaskMissedYield +153 xTaskGetSchedulerState 39 vTaskPriorityInherit pxMutexHolder=%p 42 xTaskPriorityDisinherit pxMutexHolder=%p 154 xTaskGenericCreate pxTaskCode=%u pcName=%u usStackDepth=%u pvParameters=%u uxPriority=%u pxCreatedTask=%u puxStackBuffer=%u xRegions=%u 155 uxTaskGetTaskNumber xTask=%u 156 vTaskSetTaskNumber xTask=%u uxHandle=%u 41 vTaskStepTick xTicksToJump=%u -157 eTaskConfirmSleepModeStatus +157 eTaskConfirmSleepModeStatus 158 xTimerCreate pcTimerName=%u xTimerPeriodInTicks=%u uxAutoReload=%u pvTimerID=%u pxCallbackFunction=%u 159 pvTimerGetTimerID xTimer=%u 160 vTimerSetTimerID xTimer=%u pvNewID=%u 161 xTimerIsTimerActive xTimer=%u -162 xTimerGetTimerDaemonTaskHandle +162 xTimerGetTimerDaemonTaskHandle 163 xTimerPendFunctionCallFromISR xFunctionToPend=%u pvParameter1=%u ulParameter2=%u pxHigherPriorityTaskWoken=%u 164 xTimerPendFunctionCall xFunctionToPend=%u pvParameter1=%u ulParameter2=%u xTicksToWait=%u 165 pcTimerGetTimerName xTimer=%u -166 xTimerCreateTimerTask +166 xTimerCreateTimerTask 167 xTimerGenericCommand xTimer=%u xCommandID=%u xOptionalValue=%u pxHigherPriorityTaskWoken=%u xTicksToWait=%u 53 xQueueGenericSend xQueue=%I pvItemToQueue=%p xTicksToWait=%u xCopyPosition=%u 50 xQueuePeekFromISR xQueue=%I pvBuffer=%p @@ -92,7 +92,7 @@ 191 vListInsert pxList=%u pxNewListItem=%u 192 vListInsertEnd pxList=%u pxNewListItem=%u 193 uxListRemove pxItemToRemove=%u -194 xEventGroupCreate +194 xEventGroupCreate 195 xEventGroupWaitBits xEventGroup=%u uxBitsToWaitFor=%u xClearOnExit=%u xWaitForAllBits=%u xTicksToWait=%u 196 xEventGroupClearBits xEventGroup=%u uxBitsToClear=%u 58 xEventGroupClearBitsFromISR xEventGroup=%u uxBitsToSet=%u diff --git a/tools/esp_app_trace/test/sysview/test.sh b/tools/esp_app_trace/test/sysview/test.sh index 24dac9445a..b52649f754 100755 --- a/tools/esp_app_trace/test/sysview/test.sh +++ b/tools/esp_app_trace/test/sysview/test.sh @@ -27,4 +27,3 @@ && diff output.json expected_output_mcore.json \ && coverage report \ ; } || { echo 'The test for mcore sysviewtrace_proc JSON functionality has failed. Please examine the artifacts.' ; exit 1; } - diff --git a/tools/kconfig/Kconfig b/tools/kconfig/Kconfig index 8b13789179..e69de29bb2 100644 --- a/tools/kconfig/Kconfig +++ b/tools/kconfig/Kconfig @@ -1 +0,0 @@ - diff --git a/tools/kconfig/Makefile b/tools/kconfig/Makefile index b0b1ab5655..13f78f45ca 100644 --- a/tools/kconfig/Makefile +++ b/tools/kconfig/Makefile @@ -349,4 +349,3 @@ clean: rm -f $(clean-files) -include $(all-deps) - diff --git a/tools/kconfig/kconfig-language.txt b/tools/kconfig/kconfig-language.txt index 8abccb47ab..c3244afeff 100644 --- a/tools/kconfig/kconfig-language.txt +++ b/tools/kconfig/kconfig-language.txt @@ -177,7 +177,7 @@ module state. Dependency expressions have the following syntax: '&&' (6) '||' (7) -Expressions are listed in decreasing order of precedence. +Expressions are listed in decreasing order of precedence. (1) Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All diff --git a/tools/kconfig/lxdialog/BIG.FAT.WARNING b/tools/kconfig/lxdialog/BIG.FAT.WARNING index a8999d82bd..7cb5a7ec93 100644 --- a/tools/kconfig/lxdialog/BIG.FAT.WARNING +++ b/tools/kconfig/lxdialog/BIG.FAT.WARNING @@ -1,4 +1,4 @@ This is NOT the official version of dialog. This version has been significantly modified from the original. It is for use by the Linux -kernel configuration script. Please do not bother Savio Lam with +kernel configuration script. Please do not bother Savio Lam with questions about this program. diff --git a/tools/kconfig/lxdialog/check-lxdialog.sh b/tools/kconfig/lxdialog/check-lxdialog.sh index 0d0ecb0d1b..6b023a0109 100755 --- a/tools/kconfig/lxdialog/check-lxdialog.sh +++ b/tools/kconfig/lxdialog/check-lxdialog.sh @@ -9,7 +9,7 @@ fi # What library to link ldflags() { - if [ $(uname -s) == "Darwin" ]; then + if [ $(uname -s) == "Darwin" ]; then #OSX seems to need ncurses too echo -n "-lncurses " elif [ $(uname -s) == "FreeBSD" ]; then diff --git a/tools/kconfig/zconf.l b/tools/kconfig/zconf.l index 6ee27103bf..467d382e97 100644 --- a/tools/kconfig/zconf.l +++ b/tools/kconfig/zconf.l @@ -402,4 +402,4 @@ int zconf_lineno(void) const char *zconf_curname(void) { return current_pos.file ? current_pos.file->name : ""; -} \ No newline at end of file +} diff --git a/tools/kconfig_new/test/gen_kconfig_doc/Kconfig b/tools/kconfig_new/test/gen_kconfig_doc/Kconfig index 4d67dde1e8..06c1caa094 100644 --- a/tools/kconfig_new/test/gen_kconfig_doc/Kconfig +++ b/tools/kconfig_new/test/gen_kconfig_doc/Kconfig @@ -134,4 +134,3 @@ config CHIPA_FEATURE_FROM_V1 config CHIPA_FEATURE_FROM_V3 depends on CONFIG_FOR_CHIPA && (CHIPA_REV_MIN <= 3) bool "Feature available from version 3" - diff --git a/tools/ldgen/samples/esp32.lf b/tools/ldgen/samples/esp32.lf index 251eb34d5c..d694e2b614 100644 --- a/tools/ldgen/samples/esp32.lf +++ b/tools/ldgen/samples/esp32.lf @@ -1,8 +1,8 @@ [sections:text] -entries: +entries: .text+ .literal+ - + [sections:data] entries: .data+ @@ -77,4 +77,4 @@ entries: [scheme:noflash_data] entries: - rodata -> dram0_data \ No newline at end of file + rodata -> dram0_data diff --git a/tools/ldgen/samples/mappings.lf b/tools/ldgen/samples/mappings.lf index 7722cd6829..f76149e91e 100644 --- a/tools/ldgen/samples/mappings.lf +++ b/tools/ldgen/samples/mappings.lf @@ -7,7 +7,7 @@ entries: [mapping:soc] archive: libsoc.a -entries: +entries: * (noflash) [mapping:freertos] @@ -17,46 +17,46 @@ entries: [mapping:esp32] archive: libesp32.a -entries: +entries: core_dump (noflash) panic (noflash) [mapping:app_trace] archive: libapp_trace.a -entries: +entries: * (noflash) [mapping:xtensa_debug_module] archive: libxtensa-debug-module.a -entries: +entries: eri (noflash) [mapping:phy] archive: libphy.a -entries: +entries: * (noflash_data) [mapping:rtc] archive: librtc.a -entries: +entries: * (noflash) [mapping:hal] archive: libhal.a -entries: +entries: * (noflash) [mapping:gcc] archive: libgcc.a -entries: +entries: lib2funcs (noflash) [mapping:spi_flash] archive: libspi_flash.a -entries: +entries: spi_flash_rom_patch (noflash) [mapping:gcov] archive: libgcov.a -entries: - * (noflash) \ No newline at end of file +entries: + * (noflash) diff --git a/tools/ldgen/samples/template.ld b/tools/ldgen/samples/template.ld index 743cf5c691..964ab20889 100644 --- a/tools/ldgen/samples/template.ld +++ b/tools/ldgen/samples/template.ld @@ -89,7 +89,7 @@ SECTIONS _iram_text_start = ABSOLUTE(.); mapping[iram0_text] - + _iram_text_end = ABSOLUTE(.); } > iram0_0_seg diff --git a/tools/ldgen/test/data/sample.lf b/tools/ldgen/test/data/sample.lf index 45cb85dcd8..4d9bc48b73 100644 --- a/tools/ldgen/test/data/sample.lf +++ b/tools/ldgen/test/data/sample.lf @@ -1,8 +1,8 @@ [sections:text] -entries: +entries: .text+ .literal+ - + [sections:data] entries: .data+ @@ -81,4 +81,4 @@ entries: [scheme:noflash_data] entries: - rodata -> dram0_data \ No newline at end of file + rodata -> dram0_data diff --git a/tools/ldgen/test/data/sdkconfig b/tools/ldgen/test/data/sdkconfig index b9e025fae3..d27824c92b 100644 --- a/tools/ldgen/test/data/sdkconfig +++ b/tools/ldgen/test/data/sdkconfig @@ -5,4 +5,4 @@ CONFIG_TEST_EMPTY= CONFIG_TEST_POSITIVE_INT=110 CONFIG_TEST_HEX_INT=0x8000 CONFIG_TEST_NEGATIVE_INT=-9 -CONFIG_PERFORMANCE_LEVEL=0 \ No newline at end of file +CONFIG_PERFORMANCE_LEVEL=0 diff --git a/tools/ldgen/test/data/template.ld b/tools/ldgen/test/data/template.ld index 512f724e21..659c0e6f83 100644 --- a/tools/ldgen/test/data/template.ld +++ b/tools/ldgen/test/data/template.ld @@ -89,7 +89,7 @@ SECTIONS _iram_text_start = ABSOLUTE(.); mapping[iram0_text] - + _iram_text_end = ABSOLUTE(.); } > iram0_0_seg diff --git a/tools/test_apps/protocols/esp_netif/build_config/main/CMakeLists.txt b/tools/test_apps/protocols/esp_netif/build_config/main/CMakeLists.txt index f8f294e946..cbe31657a6 100644 --- a/tools/test_apps/protocols/esp_netif/build_config/main/CMakeLists.txt +++ b/tools/test_apps/protocols/esp_netif/build_config/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "netif_init_c99.c" "main.cpp" "netif_init_cpp.cpp" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/tools/test_apps/protocols/esp_netif/build_config/main/main.cpp b/tools/test_apps/protocols/esp_netif/build_config/main/main.cpp index 374ff4295e..0998fa2b3f 100644 --- a/tools/test_apps/protocols/esp_netif/build_config/main/main.cpp +++ b/tools/test_apps/protocols/esp_netif/build_config/main/main.cpp @@ -30,4 +30,4 @@ extern "C" void app_main(void) esp_netif_compile_test_cpp(); // Calling C initialization tests esp_netif_compile_test_c99(); -} \ No newline at end of file +} diff --git a/tools/test_apps/protocols/esp_netif/build_config/main/netif_init_cpp.cpp b/tools/test_apps/protocols/esp_netif/build_config/main/netif_init_cpp.cpp index 296157c4d6..762c7ede8c 100644 --- a/tools/test_apps/protocols/esp_netif/build_config/main/netif_init_cpp.cpp +++ b/tools/test_apps/protocols/esp_netif/build_config/main/netif_init_cpp.cpp @@ -72,4 +72,4 @@ void esp_netif_compile_test_cpp(void) test_wifi_init_custom(); test_common_init_field(); test_wps_init(); -} \ No newline at end of file +} diff --git a/tools/test_apps/protocols/mqtt/build_test/CMakeLists.txt b/tools/test_apps/protocols/mqtt/build_test/CMakeLists.txt index 5a70e7aa01..3dd15c012a 100644 --- a/tools/test_apps/protocols/mqtt/build_test/CMakeLists.txt +++ b/tools/test_apps/protocols/mqtt/build_test/CMakeLists.txt @@ -7,4 +7,4 @@ cmake_minimum_required(VERSION 3.5) set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common) include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(mqtt_tcp) \ No newline at end of file +project(mqtt_tcp) diff --git a/tools/test_apps/protocols/mqtt/build_test/main/CMakeLists.txt b/tools/test_apps/protocols/mqtt/build_test/main/CMakeLists.txt index 9782a04fae..fabd82e28d 100644 --- a/tools/test_apps/protocols/mqtt/build_test/main/CMakeLists.txt +++ b/tools/test_apps/protocols/mqtt/build_test/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "mqtt_app.cpp" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/tools/test_apps/protocols/mqtt/publish_connect_test/main/CMakeLists.txt b/tools/test_apps/protocols/mqtt/publish_connect_test/main/CMakeLists.txt index 85e306a56f..d03e617a9c 100644 --- a/tools/test_apps/protocols/mqtt/publish_connect_test/main/CMakeLists.txt +++ b/tools/test_apps/protocols/mqtt/publish_connect_test/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "publish_test.c" "connect_test.c" "publish_connect_test.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/tools/test_apps/protocols/mqtt/publish_connect_test/main/connect_test.c b/tools/test_apps/protocols/mqtt/publish_connect_test/main/connect_test.c index 7cee6bda5c..a5817eb25b 100644 --- a/tools/test_apps/protocols/mqtt/publish_connect_test/main/connect_test.c +++ b/tools/test_apps/protocols/mqtt/publish_connect_test/main/connect_test.c @@ -233,5 +233,3 @@ void connection_test(const char* line) } ESP_LOGI(TAG, "Test case:%d started", test_case); } - - diff --git a/tools/test_apps/protocols/mqtt/publish_connect_test/main/mqtt_eclipse_org.pem b/tools/test_apps/protocols/mqtt/publish_connect_test/main/mqtt_eclipse_org.pem index edb593bcf6..0002462ce8 100644 --- a/tools/test_apps/protocols/mqtt/publish_connect_test/main/mqtt_eclipse_org.pem +++ b/tools/test_apps/protocols/mqtt/publish_connect_test/main/mqtt_eclipse_org.pem @@ -24,4 +24,4 @@ wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6 KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg== ------END CERTIFICATE----- \ No newline at end of file +-----END CERTIFICATE----- diff --git a/tools/test_apps/protocols/mqtt/publish_connect_test/main/publish_connect_test.c b/tools/test_apps/protocols/mqtt/publish_connect_test/main/publish_connect_test.c index fa7336c498..a7a250471e 100644 --- a/tools/test_apps/protocols/mqtt/publish_connect_test/main/publish_connect_test.c +++ b/tools/test_apps/protocols/mqtt/publish_connect_test/main/publish_connect_test.c @@ -73,4 +73,4 @@ void app_main(void) } } -} \ No newline at end of file +} diff --git a/tools/test_apps/protocols/openssl/main/main.c b/tools/test_apps/protocols/openssl/main/main.c index 7a65ec6f8b..5af4559b2b 100644 --- a/tools/test_apps/protocols/openssl/main/main.c +++ b/tools/test_apps/protocols/openssl/main/main.c @@ -20,8 +20,8 @@ static const char *TAG = "OPENSSL_TEST"; void connection_test(char *line); static void get_string(char *line, size_t size) -{ - int count = 0; +{ + int count = 0; while (count < size) { int c = fgetc(stdin); if (c == '\n') { diff --git a/tools/test_apps/protocols/pppos/main/CMakeLists.txt b/tools/test_apps/protocols/pppos/main/CMakeLists.txt index ba4dee208c..fbcf2b383d 100644 --- a/tools/test_apps/protocols/pppos/main/CMakeLists.txt +++ b/tools/test_apps/protocols/pppos/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "pppos_client_main.c" "null_dce.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/tools/test_apps/security/secure_boot/Makefile b/tools/test_apps/security/secure_boot/Makefile index 092b5481a5..58e31ed0dd 100644 --- a/tools/test_apps/security/secure_boot/Makefile +++ b/tools/test_apps/security/secure_boot/Makefile @@ -6,4 +6,3 @@ PROJECT_NAME := secure_boot include $(IDF_PATH)/make/project.mk - diff --git a/tools/test_apps/security/secure_boot/main/component.mk b/tools/test_apps/security/secure_boot/main/component.mk index 0b9d7585e7..a98f634eae 100644 --- a/tools/test_apps/security/secure_boot/main/component.mk +++ b/tools/test_apps/security/secure_boot/main/component.mk @@ -2,4 +2,3 @@ # "main" pseudo-component makefile. # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) - diff --git a/tools/test_apps/security/secure_boot/main/secure_boot_main.c b/tools/test_apps/security/secure_boot/main/secure_boot_main.c index e4b8f452fa..75328d9717 100644 --- a/tools/test_apps/security/secure_boot/main/secure_boot_main.c +++ b/tools/test_apps/security/secure_boot/main/secure_boot_main.c @@ -93,4 +93,4 @@ static void example_secure_boot_status(void) } else { ESP_LOGI(TAG, "Secure Boot V1 not enabled. Enable Secure Boot in menuconfig, build & flash again."); } -} \ No newline at end of file +} diff --git a/tools/test_apps/security/secure_boot/sdkconfig.ci.03 b/tools/test_apps/security/secure_boot/sdkconfig.ci.03 index 90fcc44a69..2d3415d936 100644 --- a/tools/test_apps/security/secure_boot/sdkconfig.ci.03 +++ b/tools/test_apps/security/secure_boot/sdkconfig.ci.03 @@ -2,4 +2,3 @@ CONFIG_IDF_TARGET="esp32s2" CONFIG_SECURE_BOOT=y CONFIG_SECURE_BOOT_SIGNING_KEY="test_rsa_3072_key.pem" - diff --git a/tools/test_apps/system/bootloader_sections/main/CMakeLists.txt b/tools/test_apps/system/bootloader_sections/main/CMakeLists.txt index 95cd206309..1df31fac80 100644 --- a/tools/test_apps/system/bootloader_sections/main/CMakeLists.txt +++ b/tools/test_apps/system/bootloader_sections/main/CMakeLists.txt @@ -1,4 +1,2 @@ idf_component_register(SRCS "test_main.c" INCLUDE_DIRS ".") - - diff --git a/tools/test_apps/system/build_test/main/CMakeLists.txt b/tools/test_apps/system/build_test/main/CMakeLists.txt index 95cd206309..1df31fac80 100644 --- a/tools/test_apps/system/build_test/main/CMakeLists.txt +++ b/tools/test_apps/system/build_test/main/CMakeLists.txt @@ -1,4 +1,2 @@ idf_component_register(SRCS "test_main.c" INCLUDE_DIRS ".") - - diff --git a/tools/test_apps/system/memprot/main/CMakeLists.txt b/tools/test_apps/system/memprot/main/CMakeLists.txt index f833245af5..1d663d917b 100644 --- a/tools/test_apps/system/memprot/main/CMakeLists.txt +++ b/tools/test_apps/system/memprot/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "test_memprot_main.c" "test_panic.c" - INCLUDE_DIRS "") \ No newline at end of file + INCLUDE_DIRS "") diff --git a/tools/test_apps/system/memprot/main/test_panic.c b/tools/test_apps/system/memprot/main/test_panic.c index 30fdd5c36d..e003b80d77 100644 --- a/tools/test_apps/system/memprot/main/test_panic.c +++ b/tools/test_apps/system/memprot/main/test_panic.c @@ -41,4 +41,3 @@ void __wrap_esp_panic_handler(panic_info_t *info) __real_esp_panic_handler(info); } } - diff --git a/tools/test_apps/system/panic/main/CMakeLists.txt b/tools/test_apps/system/panic/main/CMakeLists.txt index 5b5faac695..186ac1d939 100644 --- a/tools/test_apps/system/panic/main/CMakeLists.txt +++ b/tools/test_apps/system/panic/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "test_panic_main.c" - INCLUDE_DIRS ".") \ No newline at end of file + INCLUDE_DIRS ".") diff --git a/tools/unit-test-app/components/test_utils/CMakeLists.txt b/tools/unit-test-app/components/test_utils/CMakeLists.txt index 1673d7e1b5..b327cd4915 100644 --- a/tools/unit-test-app/components/test_utils/CMakeLists.txt +++ b/tools/unit-test-app/components/test_utils/CMakeLists.txt @@ -7,5 +7,3 @@ idf_component_register(SRCS "ccomp_timer.c" PRIV_INCLUDE_DIRS private_include REQUIRES spi_flash idf_test cmock PRIV_REQUIRES perfmon esp_ipc) - - diff --git a/tools/unit-test-app/components/test_utils/ccomp_timer_impl.c b/tools/unit-test-app/components/test_utils/ccomp_timer_impl.c index e56b743e53..43da1e1faa 100644 --- a/tools/unit-test-app/components/test_utils/ccomp_timer_impl.c +++ b/tools/unit-test-app/components/test_utils/ccomp_timer_impl.c @@ -224,4 +224,4 @@ void IRAM_ATTR ccomp_timer_impl_lock(void) void IRAM_ATTR ccomp_timer_impl_unlock(void) { portEXIT_CRITICAL(&s_lock); -} \ No newline at end of file +} diff --git a/tools/unit-test-app/components/test_utils/component.mk b/tools/unit-test-app/components/test_utils/component.mk index b07c32914a..95f27ab39c 100644 --- a/tools/unit-test-app/components/test_utils/component.mk +++ b/tools/unit-test-app/components/test_utils/component.mk @@ -1,3 +1,3 @@ COMPONENT_PRIV_INCLUDEDIRS := private_include COMPONENT_ADD_INCLUDEDIRS : include -COMPONENT_SRCDIRS := . esp32 \ No newline at end of file +COMPONENT_SRCDIRS := . esp32 diff --git a/tools/unit-test-app/components/test_utils/include/ccomp_timer.h b/tools/unit-test-app/components/test_utils/include/ccomp_timer.h index 5b10fefe04..e85c9a2333 100644 --- a/tools/unit-test-app/components/test_utils/include/ccomp_timer.h +++ b/tools/unit-test-app/components/test_utils/include/ccomp_timer.h @@ -30,7 +30,7 @@ esp_err_t ccomp_timer_start(void); /** * @brief Stop the timer on the current core. - * + * * @note Returns -1 if an error has occured and stopping the timer failed. * * @return The time elapsed from the last ccomp_timer_start call on the current @@ -42,13 +42,13 @@ int64_t ccomp_timer_stop(void); * Return the current timer value on the current core without stopping the timer. * * @note Returns -1 if an error has occured and stopping the timer failed. - * + * * @note If called while timer is active i.e. between ccomp_timer_start and ccomp_timer_stop, - * this function returns the elapsed time from ccomp_timer_start. Once ccomp_timer_stop + * this function returns the elapsed time from ccomp_timer_start. Once ccomp_timer_stop * has been called, the timer becomes inactive and stops keeping time. As a result, if this function gets * called after esp_cccomp_timer_stop, this function will return the same value as when the timer was stopped. * - * @return The elapsed time from the last ccomp_timer_start call on the current + * @return The elapsed time from the last ccomp_timer_start call on the current * core. */ int64_t ccomp_timer_get_time(void); diff --git a/tools/unit-test-app/components/test_utils/test/ccomp_timer_test_api.c b/tools/unit-test-app/components/test_utils/test/ccomp_timer_test_api.c index afb51e0449..a71dddea85 100644 --- a/tools/unit-test-app/components/test_utils/test/ccomp_timer_test_api.c +++ b/tools/unit-test-app/components/test_utils/test/ccomp_timer_test_api.c @@ -165,4 +165,4 @@ TEST_CASE("timers for each core counts independently", "[test_utils][ccomp_timer // Since this core did more work, it probably has longer measured time TEST_ASSERT_GREATER_THAN(t_2, t_1); } -#endif \ No newline at end of file +#endif diff --git a/tools/unit-test-app/components/test_utils/test/ccomp_timer_test_data.c b/tools/unit-test-app/components/test_utils/test/ccomp_timer_test_data.c index 8009a4606d..7039c82dba 100644 --- a/tools/unit-test-app/components/test_utils/test/ccomp_timer_test_data.c +++ b/tools/unit-test-app/components/test_utils/test/ccomp_timer_test_data.c @@ -29,7 +29,7 @@ static const char* TAG = "test_ccomp_timer"; #define CACHE_LINE_SIZE 32 #define CACHE_SIZE (1 << 15) // Only test half due to lack of memory -#define TEST_SIZE (CACHE_SIZE / 2) +#define TEST_SIZE (CACHE_SIZE / 2) #elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 // Default cache configuration - no override specified on // test_utils config @@ -126,7 +126,7 @@ static ccomp_test_time_t perform_test_at_hit_rate(int hit_rate, const uint8_t *m }; free(access.accesses); - + return t; } @@ -165,7 +165,7 @@ TEST_CASE("data cache hit rate sweep", "[test_utils][ccomp_timer]") ESP_LOGI(TAG, "Hit Rate(%%): %d Wall Time(us): %lld Compensated Time(us): %lld Error(%%): %f", i, (long long)t_hr.wall, (long long)t_hr.ccomp, error); - // Check if the measured time is at least within some percent of the + // Check if the measured time is at least within some percent of the // reference. TEST_ASSERT(error <= 5.0f); } diff --git a/tools/unit-test-app/components/test_utils/test_runner.c b/tools/unit-test-app/components/test_utils/test_runner.c index daa64d5295..3584a9068c 100644 --- a/tools/unit-test-app/components/test_utils/test_runner.c +++ b/tools/unit-test-app/components/test_utils/test_runner.c @@ -163,4 +163,3 @@ void tearDown(void) Unity.TestFile = real_testfile; // go back to the real filename } - diff --git a/tools/unit-test-app/configs/app_update b/tools/unit-test-app/configs/app_update index dec677edee..2e1c2797cd 100644 --- a/tools/unit-test-app/configs/app_update +++ b/tools/unit-test-app/configs/app_update @@ -12,4 +12,4 @@ CONFIG_BOOTLOADER_APP_TEST=y CONFIG_BOOTLOADER_HOLD_TIME_GPIO=2 CONFIG_BOOTLOADER_OTA_DATA_ERASE=y CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET=4 -CONFIG_BOOTLOADER_NUM_PIN_APP_TEST=32 \ No newline at end of file +CONFIG_BOOTLOADER_NUM_PIN_APP_TEST=32 diff --git a/tools/unit-test-app/configs/default_s2_2 b/tools/unit-test-app/configs/default_s2_2 index a86cee8ca0..2b6e575693 100644 --- a/tools/unit-test-app/configs/default_s2_2 +++ b/tools/unit-test-app/configs/default_s2_2 @@ -1,3 +1,3 @@ # This config is split between targets since different component needs to be included (esp32, esp32s2) CONFIG_IDF_TARGET="esp32s2" -TEST_COMPONENTS=pthread soc spi_flash vfs \ No newline at end of file +TEST_COMPONENTS=pthread soc spi_flash vfs diff --git a/tools/unit-test-app/configs/freertos_flash b/tools/unit-test-app/configs/freertos_flash index 2b8e3427f8..f5698a5aaf 100644 --- a/tools/unit-test-app/configs/freertos_flash +++ b/tools/unit-test-app/configs/freertos_flash @@ -1,2 +1,2 @@ -TEST_COMPONENTS=freertos driver spi_flash +TEST_COMPONENTS=freertos driver spi_flash CONFIG_FREERTOS_TASK_FUNCTIONS_INTO_FLASH=y diff --git a/tools/unit-test-app/configs/libsodium b/tools/unit-test-app/configs/libsodium index 3c4b674cbf..8ec586f0ea 100644 --- a/tools/unit-test-app/configs/libsodium +++ b/tools/unit-test-app/configs/libsodium @@ -1,4 +1,4 @@ CONFIG_IDF_TARGET="esp32" TEST_COMPONENTS=libsodium TEST_EXCLUDE_COMPONENTS=bt app_update -CONFIG_UNITY_FREERTOS_STACK_SIZE=12288 \ No newline at end of file +CONFIG_UNITY_FREERTOS_STACK_SIZE=12288 diff --git a/tools/unit-test-app/configs/test_utils b/tools/unit-test-app/configs/test_utils index 9d601796ef..a90e58c9e7 100644 --- a/tools/unit-test-app/configs/test_utils +++ b/tools/unit-test-app/configs/test_utils @@ -2,4 +2,3 @@ # The test is isolated as it requires particular memory layout TEST_COMPONENTS=test_utils CONFIG_ESP_IPC_TASK_STACK_SIZE=2048 - diff --git a/tools/unit-test-app/main/CMakeLists.txt b/tools/unit-test-app/main/CMakeLists.txt index 95f9935aa9..5d6d0f9979 100644 --- a/tools/unit-test-app/main/CMakeLists.txt +++ b/tools/unit-test-app/main/CMakeLists.txt @@ -1,2 +1,2 @@ idf_component_register(SRCS "app_main.c" - INCLUDE_DIRS "") \ No newline at end of file + INCLUDE_DIRS "") diff --git a/tools/unit-test-app/partition_table_unit_test_two_ota.csv b/tools/unit-test-app/partition_table_unit_test_two_ota.csv index 7c698c17bc..e1bcc931c0 100644 --- a/tools/unit-test-app/partition_table_unit_test_two_ota.csv +++ b/tools/unit-test-app/partition_table_unit_test_two_ota.csv @@ -8,4 +8,4 @@ ota_0, 0, ota_0, , 0xB0000 ota_1, 0, ota_1, , 0xB0000 test, 0, test, , 0xB0000 # flash_test partition used for SPI flash tests, WL FAT tests, and SPIFFS tests -flash_test, data, fat, , 528K \ No newline at end of file +flash_test, data, fat, , 528K diff --git a/tools/unit-test-app/sdkconfig.defaults.esp32s2 b/tools/unit-test-app/sdkconfig.defaults.esp32s2 index 7830c4a04f..0e3343e532 100644 --- a/tools/unit-test-app/sdkconfig.defaults.esp32s2 +++ b/tools/unit-test-app/sdkconfig.defaults.esp32s2 @@ -3,4 +3,4 @@ CONFIG_ESP32S2_MEMPROT_FEATURE=n CONFIG_ESP32S2_ULP_COPROC_ENABLED=y CONFIG_ESP32S2_ULP_COPROC_RISCV=y -CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM=4096 \ No newline at end of file +CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM=4096 diff --git a/tools/unit-test-app/tools/ConfigDependency.yml b/tools/unit-test-app/tools/ConfigDependency.yml index 2a3f70e06f..54202cf73e 100644 --- a/tools/unit-test-app/tools/ConfigDependency.yml +++ b/tools/unit-test-app/tools/ConfigDependency.yml @@ -1,4 +1,4 @@ "psram": '{CONFIG_ESP32_SPIRAM_SUPPORT=y} and not {CONFIG_SPIRAM_BANKSWITCH_ENABLE=y}' "8Mpsram": "CONFIG_SPIRAM_BANKSWITCH_ENABLE=y" "ESP32_IDF": "CONFIG_IDF_TARGET_ESP32=y" -"ESP32S2_IDF": "CONFIG_IDF_TARGET_ESP32S2=y" \ No newline at end of file +"ESP32S2_IDF": "CONFIG_IDF_TARGET_ESP32S2=y" diff --git a/tools/unit-test-app/tools/ModuleDefinition.yml b/tools/unit-test-app/tools/ModuleDefinition.yml index 29bdaad771..e992f6922b 100644 --- a/tools/unit-test-app/tools/ModuleDefinition.yml +++ b/tools/unit-test-app/tools/ModuleDefinition.yml @@ -9,7 +9,7 @@ nvs: sub module: NVS sub module abbr: NVS partition: - module: System + module: System module abbr: SYS sub module: Misc sub module abbr: MISC @@ -133,5 +133,3 @@ wifi_init: module abbr: SYS sub module: Misc sub module abbr: MISC - - diff --git a/tools/windows/tool_setup/cmdline_page.iss.inc b/tools/windows/tool_setup/cmdline_page.iss.inc index fa5fdc63db..f8035027e1 100644 --- a/tools/windows/tool_setup/cmdline_page.iss.inc +++ b/tools/windows/tool_setup/cmdline_page.iss.inc @@ -151,4 +151,3 @@ begin if not Result then RaiseException('Installation has failed at step: ' + caption); end; - diff --git a/tools/windows/tool_setup/cmdlinerunner/cmdlinerunner.c b/tools/windows/tool_setup/cmdlinerunner/cmdlinerunner.c index c5ee95e3ed..ccbe851359 100644 --- a/tools/windows/tool_setup/cmdlinerunner/cmdlinerunner.c +++ b/tools/windows/tool_setup/cmdlinerunner/cmdlinerunner.c @@ -191,4 +191,3 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved ) { return TRUE; } - diff --git a/tools/windows/tool_setup/idf_setup.iss.inc b/tools/windows/tool_setup/idf_setup.iss.inc index 6b6e49c540..303c0f04e5 100644 --- a/tools/windows/tool_setup/idf_setup.iss.inc +++ b/tools/windows/tool_setup/idf_setup.iss.inc @@ -193,7 +193,7 @@ end; function UseBundledIDFToolsPy(Version: String) : Boolean; begin Result := False; - { Use bundled copy of idf_tools.py, as the copy shipped with these IDF versions can not work due to + { Use bundled copy of idf_tools.py, as the copy shipped with these IDF versions can not work due to the --no-site-packages bug. } if (Version = 'v4.0') or (Version = 'v3.3.1') then @@ -257,7 +257,7 @@ var Command: String; begin ForceDirectories(ExpandConstant(LnkString)); - Destination := ExpandConstant(LnkString + '\{#IDFCmdExeShortcutFile}'); + Destination := ExpandConstant(LnkString + '\{#IDFCmdExeShortcutFile}'); Description := '{#IDFCmdExeShortcutDescription}'; { If cmd.exe command argument starts with a quote, the first and last quote chars in the command will be removed by cmd.exe; each argument needs to be surrounded by quotes as well. } @@ -305,9 +305,9 @@ begin listPSModulePath.Delimiter := ';'; listPSModulePath.StrictDelimiter := True; listPSModulePath.DelimitedText := GetEnv('PsModulePath'); - + Log('Checking PSMODULEPATH for Windows Defender module...'); - + for x:=0 to (listPSModulePath.Count-1) do begin szWDPath := listPSModulePath[x] + '\Defender' @@ -317,13 +317,13 @@ begin szHasWD := 'YES (' + szWDPath + ')'; Break; end - else + else szHasWD := 'NO'; end; - + Log('CheckWinDefenderAvailable: ' + szHasWD); - - { WD registration checkbox is identified by 'Windows Defender' substring anywhere in its caption. + + { WD registration checkbox is identified by 'Windows Defender' substring anywhere in its caption. Please, keep this in mind when making changes } for x:=0 to (WizardForm.TasksList.Items.Count-1) do begin diff --git a/tools/windows/tool_setup/idf_tool_setup.iss b/tools/windows/tool_setup/idf_tool_setup.iss index d85c476978..83eb25f2e2 100644 --- a/tools/windows/tool_setup/idf_tool_setup.iss +++ b/tools/windows/tool_setup/idf_tool_setup.iss @@ -93,7 +93,7 @@ Filename: "powershell.exe"; \ Parameters: "-ExecutionPolicy Bypass -File ""{app}\dist\tools_WD_clean.ps1"" -RmExclPath ""{app}"""; \ WorkingDir: {app}; Flags: runhidden -[Registry] +[Registry] Root: HKCU; Subkey: "Environment"; ValueType: string; ValueName: "IDF_TOOLS_PATH"; \ ValueData: "{app}"; Flags: preservestringtype createvalueifdoesntexist uninsdeletevalue deletevalue; diff --git a/tools/windows/tool_setup/license.txt b/tools/windows/tool_setup/license.txt index 73ef0a6ced..ce8e064b62 100644 --- a/tools/windows/tool_setup/license.txt +++ b/tools/windows/tool_setup/license.txt @@ -72,7 +72,7 @@ patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. - + GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION @@ -127,7 +127,7 @@ above, provided that you also meet all of these conditions: License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) - + These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in @@ -185,7 +185,7 @@ access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. - + 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is @@ -242,7 +242,7 @@ impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - + 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License @@ -295,7 +295,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest diff --git a/tools/windows/tool_setup/main.iss.inc b/tools/windows/tool_setup/main.iss.inc index 5a3b677a55..d54d6d9828 100644 --- a/tools/windows/tool_setup/main.iss.inc +++ b/tools/windows/tool_setup/main.iss.inc @@ -20,7 +20,7 @@ end; { If IDF_TOOLS_PATH is set in the environment, set the default installation directory accordingly. Note: here we read IDF_TOOLS_PATH using GetEnv rather than - by getting it from registry, in case the user has set + by getting it from registry, in case the user has set IDF_TOOLS_PATH as a system environment variable manually. } procedure UpdateInstallDir(); @@ -124,7 +124,7 @@ begin begin CreateIDFCommandPromptShortcut('{autostartmenu}\Programs\ESP-IDF'); end; - + if WizardIsTaskSelected('createdsk') then begin CreateIDFCommandPromptShortcut('{autodesktop}'); @@ -133,7 +133,7 @@ begin if WizardIsTaskSelected('wdexcl') then begin RegisterIDFToolsExecutablesInWD(); - end; + end; except SetupAborted := True; diff --git a/tools/windows/tool_setup/python_find_installed.iss.inc b/tools/windows/tool_setup/python_find_installed.iss.inc index 4485030dd5..5b786fca3f 100644 --- a/tools/windows/tool_setup/python_find_installed.iss.inc +++ b/tools/windows/tool_setup/python_find_installed.iss.inc @@ -86,7 +86,7 @@ begin if not RegGetSubkeyNames(RootKey, CompanySubKey, TagNames) then continue; - + for TagId := 0 to GetArrayLength(TagNames) - 1 do begin TagName := TagNames[TagId]; diff --git a/tools/windows/tool_setup/tools_WD_clean.ps1 b/tools/windows/tool_setup/tools_WD_clean.ps1 index 620bff35cf..07e4a543c6 100644 --- a/tools/windows/tool_setup/tools_WD_clean.ps1 +++ b/tools/windows/tool_setup/tools_WD_clean.ps1 @@ -34,7 +34,7 @@ function Log-Msg($msg, $logF = $null) $retVal = 1 Try -{ +{ Import-Module Defender @@ -43,7 +43,7 @@ Try $myWindowsPrincipal=new-object System.Security.Principal.WindowsPrincipal($myWindowsID) $adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator - if( -not $myWindowsPrincipal.IsInRole($adminRole) ) { + if( -not $myWindowsPrincipal.IsInRole($adminRole) ) { $params = "" foreach($key in $PSBoundParameters.keys) { @@ -60,7 +60,7 @@ Try $newProcess.Arguments = "-ExecutionPolicy ByPass -File " + $script:MyInvocation.MyCommand.Definition + " " + $params + " -logFile $lf" $newProcess.Verb = "RunAs" $newProcess.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden - + $proc = [System.Diagnostics.Process]::Start($newProcess) $proc.WaitForExit() @@ -90,19 +90,19 @@ Try Log-Msg -msg " Found total $cnt of ExclusionProcess items" -logF $logFile - foreach( $pref in $Preferences.ExclusionProcess ) { + foreach( $pref in $Preferences.ExclusionProcess ) { if( $bRmPath ) { $bGoAhead = $pref.Contains($RmExclPath) } else { $bGoAhead = $true } if( $bGoAhead ) { Log-Msg -msg " removing $pref" -logF $logFile - Try + Try { Remove-MpPreference -ExclusionProcess $pref $cntRemoved++ } - Catch + Catch { if( ![string]::IsNullOrEmpty($logFile) ) { Write-Error -Exception $_.Exception *>> $logFile } Write-Error -Exception $_.Exception @@ -117,7 +117,7 @@ Try #ExclusionPath $cnt = $Preferences.ExclusionPath.Count $cntRemovedTotal = $cntRemoved - $cntRemoved = 0 + $cntRemoved = 0 $cntMissedTotal = $cntMissed $cntMissed = 0 @@ -130,11 +130,11 @@ Try if( $bGoAhead ) { Log-Msg -msg " removing $pref" -logF $logFile - Try + Try { Remove-MpPreference -ExclusionPath $pref $cntRemoved++ - } + } Catch { if( ![string]::IsNullOrEmpty($logFile) ) { Write-Error -Exception $_.Exception *>> $logFile } @@ -169,4 +169,3 @@ Finally { [Environment]::Exit($retVal) } - diff --git a/tools/windows/tool_setup/tools_WD_excl.ps1 b/tools/windows/tool_setup/tools_WD_excl.ps1 index b7d32c7098..ddebc67850 100644 --- a/tools/windows/tool_setup/tools_WD_excl.ps1 +++ b/tools/windows/tool_setup/tools_WD_excl.ps1 @@ -5,7 +5,7 @@ # ################################################################################ # -# PS utility to add/remove PROCESS exceptions to/from MS WD real-time +# PS utility to add/remove PROCESS exceptions to/from MS WD real-time # scanning. Files (referenced by 'path' or 'path\filemask') are expected # to be Windows process executables, for obvious reasons. # @@ -29,7 +29,7 @@ # adds file to the WD exception list exactly as specified by 'filepath' # # -logFile -# stdout/stderr redirection file. Used internally for elevated process (generated in tempdir, deleted after the script finishing) +# stdout/stderr redirection file. Used internally for elevated process (generated in tempdir, deleted after the script finishing) # use manually at your own risk # # Returns 0 on success or -1 on failure @@ -39,7 +39,7 @@ # PowerShell -ExecutionPolicy ByPass -File tools_WD_excl.ps1 -AddExclPath "C:\Program Files\Espressif\ESP-IDF Tools\*.exe" # # Notes: -# - default scenario is set to the following +# - default scenario is set to the following # -AddExclPath "$Env:ProgramFiles\Espressif\ESP-IDF Tools\*.exe" # (eg when called with no params) # - only named parameters are supported, any other use-cases redirect to the default @@ -66,7 +66,7 @@ function Check-Command($cmdname) function Log-Msg($msg, $logF = $null) { - if( ![string]::IsNullOrEmpty($logF) ) { Write-Output $msg *>> $logF } + if( ![string]::IsNullOrEmpty($logF) ) { Write-Output $msg *>> $logF } else { Write-Output $msg } [Console]::Out.Flush() } @@ -74,9 +74,9 @@ function Log-Msg($msg, $logF = $null) $retVal = 1 Try -{ +{ $bDebug = $false - + #parameter sanity check if( $Args.Count -gt 0 ) { if( $Args.Count -eq 1 -And $Args[0] -eq "Debug" ) { @@ -95,13 +95,13 @@ Try $myWindowsPrincipal=new-object System.Security.Principal.WindowsPrincipal($myWindowsID) $adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator - if( -not $myWindowsPrincipal.IsInRole($adminRole) ) { + if( -not $myWindowsPrincipal.IsInRole($adminRole) ) { $params = "" foreach($key in $PSBoundParameters.keys) { $params = -join( $params, "-", $key, " `"", $PSBoundParameters[$key], "`"" ) } - + $arguments = "" foreach($a in $Args) { $arguments = -join( $arguments, "-", $a ) @@ -121,7 +121,7 @@ Try #show the process window for -Debug if( !$bDebug ) { $newProcess.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden } - + $proc = [System.Diagnostics.Process]::Start($newProcess) $proc.WaitForExit() @@ -130,10 +130,10 @@ Try Log-Msg -msg $line } } - + if( $bDebug ) { Log-Msg -msg "Process finished with code " + $proc.ExitCode -logF $lf } if( $bOwnLogFile -And !$bDebug) { Remove-Item $lf } - + [Environment]::Exit($proc.ExitCode) } @@ -149,7 +149,7 @@ Try $bAddFile = ![string]::IsNullOrEmpty($AddExclFile) $bRmPath = ![string]::IsNullOrEmpty($RmExclPath) $bRmFile = ![string]::IsNullOrEmpty($RmExclFile) - + if( !$bAddPath -And !$bAddFile -And !$bRmPath -And !$bRmFile ) { throw (New-Object -TypeName System.ArgumentException -ArgumentList "Invalid parameter(s)") } diff --git a/tools/windows/tool_setup/utils.iss.inc b/tools/windows/tool_setup/utils.iss.inc index 6e7b709f8b..2dee527ec5 100644 --- a/tools/windows/tool_setup/utils.iss.inc +++ b/tools/windows/tool_setup/utils.iss.inc @@ -144,7 +144,7 @@ begin Delete(MinorStr, Delim, Length(MinorStr)); Delete(Version, 1, Delim); Minor := StrToInt(MinorStr); - + { Sanity check } ExpectedPrefix := IntToStr(Major) + '.' + IntToStr(Minor); if Pos(ExpectedPrefix, OrigVersion) <> 1 then