From e13d4a45a6fd501bb81ba160fbe50f9c02560cc1 Mon Sep 17 00:00:00 2001 From: tychovrahe Date: Mon, 23 Sep 2024 13:44:57 +0200 Subject: [PATCH] chore(core): remove residual support for T1B1 in core [no changelog] --- common/tools/cointool.py | 16 +- core/Makefile | 8 +- core/embed/firmware/header.S | 15 - core/embed/models/T1B1/background_1.h | 1139 ------------ core/embed/models/T1B1/background_1.jpg | Bin 13620 -> 0 bytes core/embed/models/T1B1/boards/t1b1-unix.h | 22 - core/embed/models/T1B1/boards/trezor_1.h | 38 - core/embed/models/T1B1/memory.ld | 16 - core/embed/models/T1B1/model_T1B1.h | 34 - core/embed/models/T1B1/model_T1B1_layout.c | 41 - core/embed/models/T1B1/versions.h | 3 - core/embed/models/model.h | 4 +- core/embed/models/model_version.h | 4 +- core/embed/trezorhal/unix/flash.c | 16 - core/embed/trezorhal/xdisplay.h | 2 +- core/site_scons/models/T1B1/__init__.py | 20 - core/site_scons/models/T1B1/emulator.py | 39 - core/site_scons/models/T1B1/trezor_1.py | 57 - core/site_scons/models/__init__.py | 4 +- core/src/apps/base.py | 3 +- core/src/apps/common/coininfo.py | 1569 ----------------- core/src/apps/ethereum/networks.py | 37 - core/src/apps/ethereum/tokens.py | 148 -- core/src/trezor/ui/__init__.py | 7 +- core/tests/test_apps.bitcoin.signtx_decred.py | 4 +- core/tests/test_apps.common.coins.py | 2 +- core/tools/build_templates | 2 +- .../trezor_core_tools/combine_firmware.py | 2 +- 28 files changed, 24 insertions(+), 3228 deletions(-) delete mode 100644 core/embed/models/T1B1/background_1.h delete mode 100644 core/embed/models/T1B1/background_1.jpg delete mode 100644 core/embed/models/T1B1/boards/t1b1-unix.h delete mode 100644 core/embed/models/T1B1/boards/trezor_1.h delete mode 100644 core/embed/models/T1B1/memory.ld delete mode 100644 core/embed/models/T1B1/model_T1B1.h delete mode 100644 core/embed/models/T1B1/model_T1B1_layout.c delete mode 100644 core/embed/models/T1B1/versions.h delete mode 100644 core/site_scons/models/T1B1/__init__.py delete mode 100644 core/site_scons/models/T1B1/emulator.py delete mode 100644 core/site_scons/models/T1B1/trezor_1.py diff --git a/common/tools/cointool.py b/common/tools/cointool.py index 9dc99f32dd..40a89baa01 100755 --- a/common/tools/cointool.py +++ b/common/tools/cointool.py @@ -141,7 +141,7 @@ MAKO_FILTERS = { def render_file( - src: Path, dst: Path, coins: CoinsInfo, support_info: SupportInfo + src: Path, dst: Path, coins: CoinsInfo, support_info: SupportInfo, models: list[str] ) -> None: """Renders `src` template into `dst`. @@ -160,7 +160,7 @@ def render_file( ROOT=ROOT, **coins, **MAKO_FILTERS, - ALL_MODELS=coin_info.get_models(), + ALL_MODELS=models, ) dst.write_text(str(result)) src_stat = src.stat() @@ -846,9 +846,14 @@ def dump( @click.option("-o", "--outfile", type=click.Path(dir_okay=False, writable=True, path_type=Path), help="Alternate output file") @click.option("-v", "--verbose", is_flag=True, help="Print rendered file names") @click.option("-b", "--bitcoin-only", is_flag=True, help="Accept only Bitcoin coins") +@click.option("-M", "--model-exclude", metavar="NAME", multiple=True, type=device_choice, help="Skip generation for this models (-M T1B1)") # fmt: on def render( - paths: tuple[Path, ...], outfile: Path, verbose: bool, bitcoin_only: bool + paths: tuple[Path, ...], + outfile: Path, + verbose: bool, + bitcoin_only: bool, + model_exclude: tuple[str, ...], ) -> None: """Generate source code from Mako templates. @@ -885,9 +890,12 @@ def render( support_info[key] = Munch(value) def do_render(src: Path, dst: Path) -> None: + models = coin_info.get_models() + models = [m for m in models if m not in model_exclude] + if verbose: click.echo(f"Rendering {src} => {dst.name}") - render_file(src, dst, defs, support_info) + render_file(src, dst, defs, support_info, models) # single in-out case if outfile: diff --git a/core/Makefile b/core/Makefile index f89b082181..dbe9b68057 100644 --- a/core/Makefile +++ b/core/Makefile @@ -46,10 +46,7 @@ OPENOCD_INTERFACE ?= stlink # OpenOCD transport default. Alternative: jtag OPENOCD_TRANSPORT ?= hla_swd -ifeq ($(TREZOR_MODEL), 1) -MCU = STM32F2 -OPENOCD_TARGET = target/stm32f2x.cfg -else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),T)) +ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),T)) MCU = STM32F4 OPENOCD_TARGET = target/stm32f4x.cfg MODEL_FEATURE = model_tt @@ -403,9 +400,6 @@ flash_firmware_jlink: $(FIRMWARE_BUILD_DIR)/firmware.bin ## flash firmware using truncate -s $(FIRMWARE_P2_MAXSIZE) $<.p2.bin JLinkExe -nogui 1 -commanderscript embed/firmware/firmware_flash.jlink -flash_firmware_t1_jlink: $(FIRMWARE_BUILD_DIR)/firmware.bin ## flash T1 core port via JLink - JLinkExe -nogui 1 -commanderscript embed/firmware/firmware_flash_t1.jlink - ## openocd debug commands: openocd: ## start openocd which connects to the device diff --git a/core/embed/firmware/header.S b/core/embed/firmware/header.S index f2f201cec8..03341ba6f9 100644 --- a/core/embed/firmware/header.S +++ b/core/embed/firmware/header.S @@ -32,23 +32,8 @@ g_header: .byte FIRMWARE_MONOTONIC_VERSION // monotonic version of the binary . = . + 2 // reserved . = . + 512 // hash1 ... hash16 - -#if !defined TREZOR_MODEL_1 -// trezor-core header style . = . + 415 // reserved .byte 0 // sigmask . = . + 64 // sig -#else -// model 1 compatibility header - . = . + 64 // sig1 - . = . + 64 // sig2 - . = . + 64 // sig3 - .byte 0 // sigindex1 - .byte 0 // sigindex2 - .byte 0 // sigindex3 - . = . + 220 // reserved - . = . + 65 // reserved -#endif - g_header_end: diff --git a/core/embed/models/T1B1/background_1.h b/core/embed/models/T1B1/background_1.h deleted file mode 100644 index 118adc9ca7..0000000000 --- a/core/embed/models/T1B1/background_1.h +++ /dev/null @@ -1,1139 +0,0 @@ -// clang-format off -unsigned char background_1_jpg[] = { - 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, 0x49, 0x46, 0x00, 0x01, - 0x01, 0x02, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x00, 0xff, 0xe1, 0x0f, 0xf6, - 0x45, 0x78, 0x69, 0x66, 0x00, 0x00, 0x49, 0x49, 0x2a, 0x00, 0x08, 0x00, - 0x00, 0x00, 0x05, 0x00, 0x1a, 0x01, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x28, 0x01, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x31, 0x01, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x32, 0x01, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x49, 0x4d, 0x50, 0x20, 0x32, 0x2e, 0x31, 0x30, 0x2e, 0x34, 0x00, - 0x32, 0x30, 0x31, 0x38, 0x3a, 0x30, 0x39, 0x3a, 0x31, 0x31, 0x20, 0x31, - 0x36, 0x3a, 0x33, 0x36, 0x3a, 0x32, 0x30, 0x00, 0x08, 0x00, 0x00, 0x01, - 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x01, 0x01, - 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x01, - 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x03, 0x01, - 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x01, - 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x01, - 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x02, - 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x02, 0x02, - 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xff, 0xd8, 0xff, 0xe0, - 0x00, 0x10, 0x4a, 0x46, 0x49, 0x46, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x00, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x08, 0x06, 0x06, - 0x07, 0x06, 0x05, 0x08, 0x07, 0x07, 0x07, 0x09, 0x09, 0x08, 0x0a, 0x0c, - 0x14, 0x0d, 0x0c, 0x0b, 0x0b, 0x0c, 0x19, 0x12, 0x13, 0x0f, 0x14, 0x1d, - 0x1a, 0x1f, 0x1e, 0x1d, 0x1a, 0x1c, 0x1c, 0x20, 0x24, 0x2e, 0x27, 0x20, - 0x22, 0x2c, 0x23, 0x1c, 0x1c, 0x28, 0x37, 0x29, 0x2c, 0x30, 0x31, 0x34, - 0x34, 0x34, 0x1f, 0x27, 0x39, 0x3d, 0x38, 0x32, 0x3c, 0x2e, 0x33, 0x34, - 0x32, 0xff, 0xdb, 0x00, 0x43, 0x01, 0x09, 0x09, 0x09, 0x0c, 0x0b, 0x0c, - 0x18, 0x0d, 0x0d, 0x18, 0x32, 0x21, 0x1c, 0x21, 0x32, 0x32, 0x32, 0x32, - 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, - 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, - 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, - 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0xff, 0xc0, - 0x00, 0x11, 0x08, 0x01, 0x00, 0x00, 0x96, 0x03, 0x01, 0x22, 0x00, 0x02, - 0x11, 0x01, 0x03, 0x11, 0x01, 0xff, 0xc4, 0x00, 0x1f, 0x00, 0x00, 0x01, - 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0xff, 0xc4, 0x00, 0xb5, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, - 0x02, 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7d, 0x01, - 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, - 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08, 0x23, - 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62, 0x72, 0x82, - 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, - 0x77, 0x78, 0x79, 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, - 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, - 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, - 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2, 0xe3, - 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff, 0xc4, 0x00, 0x1f, 0x01, 0x00, 0x03, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0xff, 0xc4, 0x00, 0xb5, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, - 0x04, 0x03, 0x04, 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, - 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, - 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xa1, - 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 0x15, 0x62, 0x72, 0xd1, 0x0a, - 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, - 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, - 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, - 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe2, - 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, - 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00, 0xef, 0x28, 0xa2, 0x8a, 0x00, - 0x28, 0xa2, 0xaa, 0xdf, 0x6a, 0x56, 0x5a, 0x6c, 0x5e, 0x6d, 0xed, 0xdc, - 0x36, 0xe9, 0xd8, 0xc8, 0xe1, 0x73, 0xf4, 0xf5, 0xa0, 0x0b, 0x54, 0x57, - 0x29, 0x73, 0xf1, 0x17, 0xc3, 0x76, 0xe7, 0x02, 0xf5, 0xa5, 0x3f, 0xf4, - 0xce, 0x32, 0x6b, 0x22, 0xe7, 0xe2, 0xde, 0x95, 0x1e, 0x45, 0xbd, 0x8d, - 0xd4, 0xa7, 0xb6, 0xe2, 0xaa, 0x0f, 0xf3, 0xa0, 0x0f, 0x42, 0xa2, 0xbc, - 0xa6, 0x6f, 0x8c, 0x32, 0xf3, 0xe4, 0xe9, 0x11, 0xaf, 0xa6, 0xf9, 0x89, - 0xfe, 0x40, 0x55, 0x37, 0xf8, 0xb9, 0xaa, 0x9f, 0xbb, 0x63, 0x6a, 0xbf, - 0xf7, 0xd1, 0xfe, 0xb4, 0x58, 0x0f, 0x62, 0xa2, 0xbc, 0x59, 0xbe, 0x2c, - 0x6b, 0xa7, 0xee, 0xc5, 0x68, 0x07, 0xfd, 0x73, 0x3f, 0xe3, 0x4d, 0xff, - 0x00, 0x85, 0xad, 0xaf, 0xe3, 0xee, 0x5a, 0x7f, 0xdf, 0xa3, 0xfe, 0x34, - 0xec, 0x07, 0xb5, 0xd1, 0x5e, 0x30, 0x9f, 0x16, 0x35, 0xb0, 0x3e, 0x68, - 0x6d, 0x1b, 0xfe, 0x00, 0x47, 0xf5, 0xab, 0x11, 0xfc, 0x5d, 0xd4, 0x94, - 0x8f, 0x32, 0xc2, 0xd5, 0xbe, 0x85, 0x85, 0x16, 0x03, 0xd7, 0xe8, 0xaf, - 0x2e, 0x83, 0xe3, 0x02, 0xee, 0x02, 0xe3, 0x48, 0xe3, 0xb9, 0x49, 0xbf, - 0xa1, 0x5a, 0xd6, 0xb6, 0xf8, 0xad, 0xa1, 0x4d, 0xc4, 0xb1, 0x5d, 0x43, - 0xee, 0x54, 0x30, 0xfd, 0x0d, 0x2b, 0x01, 0xdd, 0xd1, 0x5c, 0xf5, 0xa7, - 0x8e, 0x7c, 0x39, 0x78, 0x40, 0x4d, 0x4e, 0x28, 0xd8, 0xf4, 0x12, 0xe5, - 0x3f, 0x9d, 0x6f, 0xc7, 0x22, 0x4a, 0x81, 0xe3, 0x75, 0x74, 0x3c, 0x86, - 0x53, 0x90, 0x7f, 0x1a, 0x00, 0x75, 0x14, 0x51, 0x40, 0x05, 0x14, 0x51, - 0x40, 0x05, 0x14, 0x53, 0x64, 0x90, 0x45, 0x13, 0xc8, 0xc7, 0x0a, 0xaa, - 0x58, 0xfe, 0x14, 0x01, 0xc7, 0xf8, 0xe7, 0xc6, 0xab, 0xe1, 0xc8, 0x05, - 0xad, 0xa6, 0xd7, 0xd4, 0x25, 0x5c, 0x8c, 0xf2, 0x23, 0x1e, 0xa4, 0x7a, - 0xfb, 0x57, 0x8a, 0xde, 0xea, 0x17, 0x9a, 0x95, 0xc1, 0x9e, 0xf2, 0xe2, - 0x49, 0xa5, 0x6e, 0xac, 0xed, 0x9a, 0xb1, 0xe2, 0x0d, 0x42, 0x4d, 0x53, - 0x5e, 0xbb, 0xba, 0x95, 0x89, 0x2f, 0x21, 0xc6, 0x7b, 0x0e, 0xc2, 0xa8, - 0xaa, 0x9c, 0x53, 0x10, 0x9b, 0x7d, 0x68, 0xdb, 0x4c, 0xc4, 0xb2, 0x48, - 0xca, 0xa7, 0x68, 0x53, 0x82, 0x69, 0xea, 0xae, 0x8c, 0xaa, 0xc7, 0x76, - 0xee, 0x86, 0x98, 0x06, 0xdc, 0xd1, 0xfa, 0x52, 0xf6, 0xc5, 0x2e, 0x33, - 0xc0, 0xa0, 0x06, 0xe2, 0x97, 0x68, 0xa5, 0xc1, 0xa0, 0x8a, 0x00, 0x6e, - 0x39, 0xa3, 0x6f, 0x34, 0xec, 0x64, 0x51, 0x83, 0x9e, 0x28, 0x01, 0x98, - 0xeb, 0x41, 0x5e, 0x2a, 0x40, 0xbc, 0x74, 0xa3, 0x6f, 0x1f, 0xd2, 0x80, - 0x19, 0xb4, 0x8e, 0x95, 0xb5, 0xe1, 0xff, 0x00, 0x15, 0xea, 0x7e, 0x1e, - 0xba, 0x57, 0xb7, 0x99, 0x9a, 0x0c, 0xfc, 0xf0, 0xb1, 0xca, 0xb0, 0xfe, - 0x9f, 0x5a, 0xc8, 0x2b, 0xdb, 0x34, 0xc6, 0x1d, 0x68, 0x03, 0xe9, 0x2d, - 0x0f, 0x59, 0xb6, 0xd7, 0xb4, 0xa8, 0xaf, 0xed, 0x4f, 0xca, 0xe3, 0xe6, - 0x53, 0xd5, 0x5b, 0xb8, 0x35, 0xa3, 0x5e, 0x3b, 0xf0, 0x97, 0x53, 0x96, - 0x2d, 0x62, 0xe3, 0x4e, 0x2c, 0x7c, 0xa9, 0xa3, 0xde, 0x01, 0xec, 0xc2, - 0xbd, 0x8a, 0xa4, 0x61, 0x45, 0x14, 0x50, 0x01, 0x54, 0xf5, 0x73, 0x8d, - 0x1a, 0xf8, 0xff, 0x00, 0xd3, 0xbc, 0x9f, 0xfa, 0x09, 0xab, 0x95, 0x4b, - 0x57, 0xff, 0x00, 0x90, 0x2d, 0xf6, 0x7a, 0x79, 0x0f, 0xff, 0x00, 0xa0, - 0x9a, 0x00, 0xf9, 0xae, 0xe7, 0xfe, 0x3f, 0x26, 0xff, 0x00, 0x7c, 0xd0, - 0x32, 0x15, 0x99, 0x71, 0x90, 0x33, 0xcd, 0x17, 0x3f, 0xf1, 0xfb, 0x37, - 0xfb, 0xe6, 0x8c, 0xe2, 0x29, 0x31, 0xfd, 0xd3, 0x54, 0x22, 0x25, 0x69, - 0xb6, 0x10, 0x8b, 0xc1, 0x6d, 0xdc, 0x0a, 0x37, 0xce, 0x8c, 0x8e, 0xca, - 0x4a, 0xa3, 0x06, 0xc6, 0x31, 0x53, 0xf4, 0x8e, 0x3c, 0x7f, 0x74, 0x53, - 0x5c, 0x9d, 0x8e, 0x33, 0x8f, 0x94, 0xd0, 0x02, 0x95, 0x05, 0x32, 0x4e, - 0x19, 0x93, 0x23, 0x1e, 0xb5, 0x58, 0x25, 0xd1, 0x95, 0xe3, 0x0e, 0x32, - 0x98, 0x24, 0xf6, 0xab, 0x3c, 0xf9, 0x71, 0xe7, 0xae, 0xc1, 0xfc, 0xa8, - 0x45, 0xdb, 0x71, 0x2c, 0x84, 0xfc, 0xac, 0xab, 0x8f, 0x7e, 0x94, 0x01, - 0x4f, 0x74, 0xe1, 0xe4, 0x53, 0x32, 0x0d, 0x87, 0x07, 0x27, 0xaf, 0xd2, - 0xa5, 0x95, 0xdc, 0xd9, 0x45, 0x32, 0x9c, 0x16, 0x6d, 0xa4, 0xfb, 0xff, - 0x00, 0x9c, 0x53, 0xda, 0xd9, 0x25, 0x92, 0xe1, 0xd8, 0xe0, 0xb3, 0x66, - 0x3c, 0x1e, 0x3b, 0xff, 0x00, 0xf5, 0xa9, 0x64, 0x8d, 0xde, 0xc6, 0x28, - 0xd5, 0x54, 0x15, 0x6e, 0x57, 0x34, 0x86, 0x43, 0x1a, 0x5c, 0x48, 0x1c, - 0xac, 0xca, 0x76, 0xf2, 0x79, 0xe9, 0x4b, 0x6c, 0x64, 0x6b, 0xb2, 0x8e, - 0xdb, 0x91, 0x41, 0x2c, 0x57, 0xa7, 0x4a, 0x55, 0x4b, 0x95, 0x8d, 0xd6, - 0x34, 0x44, 0x0e, 0x00, 0x38, 0x3d, 0x45, 0x3e, 0xcd, 0x26, 0x86, 0x44, - 0x57, 0x55, 0x58, 0xf2, 0x4b, 0x30, 0x3c, 0x9e, 0x3a, 0x50, 0x22, 0x28, - 0xfe, 0xd5, 0x71, 0xf3, 0x47, 0xc2, 0xe7, 0x00, 0x1e, 0xf4, 0xaf, 0x73, - 0xfe, 0x8d, 0x90, 0xc5, 0x65, 0x0f, 0x82, 0x3f, 0xcf, 0xe1, 0x4a, 0x62, - 0xb8, 0x87, 0xf7, 0x70, 0x38, 0x31, 0xe7, 0x2a, 0x7b, 0x8c, 0xd2, 0xb5, - 0xa0, 0xfb, 0x19, 0x1c, 0x34, 0xc5, 0xc1, 0x27, 0xdb, 0x9f, 0xfe, 0xb5, - 0x03, 0x08, 0x0c, 0x86, 0xe5, 0x63, 0x79, 0x15, 0x83, 0xe7, 0x90, 0x7a, - 0x1a, 0x91, 0x87, 0x14, 0x2d, 0xba, 0x45, 0x74, 0xac, 0x87, 0x31, 0x14, - 0x23, 0x93, 0xca, 0x9f, 0xf3, 0xfc, 0xe9, 0x5b, 0x91, 0x4c, 0x47, 0x51, - 0xf0, 0xd9, 0xb6, 0x78, 0xd6, 0xd7, 0x1d, 0xd5, 0x81, 0xfc, 0xab, 0xde, - 0x6b, 0xc1, 0x7e, 0x1c, 0x7f, 0xc8, 0xe9, 0x6b, 0xf4, 0x6f, 0xe5, 0x5e, - 0xf5, 0x49, 0x8c, 0x28, 0xa2, 0x8a, 0x40, 0x15, 0x4f, 0x56, 0x38, 0xd1, - 0xaf, 0x7f, 0xeb, 0x83, 0xff, 0x00, 0xe8, 0x26, 0xae, 0x55, 0x3d, 0x5b, - 0xfe, 0x40, 0xf7, 0xbf, 0xf5, 0xc1, 0xff, 0x00, 0x91, 0xa0, 0x0f, 0x9a, - 0x6e, 0x07, 0xfa, 0x6c, 0xdf, 0xef, 0x9a, 0x51, 0x82, 0xa4, 0x1e, 0x84, - 0x62, 0x8b, 0x81, 0xfe, 0x9b, 0x37, 0xfb, 0xe6, 0x9c, 0x06, 0x07, 0x3c, - 0x7b, 0xd5, 0x08, 0x88, 0xc2, 0xe3, 0xee, 0x3e, 0x7d, 0x29, 0xbe, 0x43, - 0xb7, 0x32, 0x3f, 0xe1, 0x53, 0xf1, 0xd4, 0x11, 0x41, 0x51, 0xea, 0x3f, - 0x3a, 0x40, 0x23, 0x30, 0xda, 0xa0, 0x7f, 0x08, 0x02, 0x9b, 0xd8, 0xd3, - 0xb0, 0x08, 0x38, 0x22, 0x8d, 0xa3, 0xb9, 0x1f, 0x9d, 0x30, 0x18, 0x38, - 0x3e, 0xd4, 0xe1, 0xc5, 0x28, 0x0a, 0x3b, 0x81, 0xf8, 0xd1, 0x81, 0xfd, - 0xe1, 0xf9, 0xd0, 0x02, 0x83, 0xcf, 0x3d, 0x29, 0x0f, 0x3d, 0x69, 0x70, - 0xbe, 0xa3, 0xf3, 0xa3, 0x0a, 0x3b, 0x8f, 0xce, 0x80, 0x0c, 0xe3, 0x9c, - 0xd1, 0x9e, 0x69, 0x46, 0xde, 0x99, 0x1f, 0x9d, 0x26, 0x3d, 0xc5, 0x00, - 0x27, 0x6a, 0x69, 0xe0, 0x73, 0x52, 0x10, 0x3a, 0xe4, 0x53, 0x1b, 0x18, - 0xe2, 0x80, 0x3a, 0x7f, 0x86, 0xe3, 0x3e, 0x35, 0xb5, 0xfa, 0x37, 0xf2, - 0x35, 0xef, 0x55, 0xe0, 0xdf, 0x0d, 0x79, 0xf1, 0xb5, 0xaf, 0xa6, 0xd7, - 0xff, 0x00, 0xd0, 0x4d, 0x7b, 0xcd, 0x26, 0x30, 0xa2, 0x8a, 0x29, 0x00, - 0x55, 0x2d, 0x5f, 0xfe, 0x40, 0xd7, 0xbf, 0xf5, 0xc1, 0xff, 0x00, 0x91, - 0xab, 0xb5, 0x4b, 0x58, 0xff, 0x00, 0x90, 0x2d, 0xef, 0xfd, 0x70, 0x7f, - 0xe4, 0x68, 0x03, 0xe6, 0xc9, 0x72, 0xd7, 0xb2, 0x8e, 0xe5, 0xcd, 0x67, - 0xce, 0xcc, 0x66, 0x60, 0x49, 0xe0, 0xe2, 0xb4, 0xfa, 0x6a, 0x4d, 0xff, - 0x00, 0x5d, 0x3f, 0xad, 0x66, 0x5d, 0x7f, 0xc7, 0xd4, 0x9f, 0xef, 0x53, - 0x11, 0x16, 0x4f, 0xad, 0x19, 0xa2, 0x8a, 0x06, 0x19, 0xa2, 0x8a, 0x28, - 0x00, 0xa2, 0x8a, 0x28, 0x00, 0xa2, 0x8a, 0x28, 0x00, 0xa2, 0x8a, 0x28, - 0x00, 0xc9, 0xad, 0x1b, 0x3f, 0xdf, 0x5b, 0x4b, 0xcf, 0xcf, 0x1e, 0x0f, - 0xd4, 0x56, 0x75, 0x68, 0x69, 0x9f, 0x76, 0xeb, 0xfe, 0xb9, 0xff, 0x00, - 0x5a, 0x00, 0xeb, 0x3e, 0x1a, 0x8f, 0xf8, 0xad, 0xad, 0x7f, 0xdd, 0x7f, - 0xe4, 0x6b, 0xde, 0x6b, 0xc1, 0xfe, 0x1a, 0xff, 0x00, 0xc8, 0xef, 0x6d, - 0xfe, 0xe3, 0xff, 0x00, 0xe8, 0x26, 0xbd, 0xe2, 0x80, 0x0a, 0x28, 0xa2, - 0x90, 0x05, 0x52, 0xd6, 0x3f, 0xe4, 0x0d, 0x7b, 0xff, 0x00, 0x5c, 0x1f, - 0xf9, 0x1a, 0xbb, 0x54, 0xb5, 0x8f, 0xf9, 0x02, 0xdf, 0x7f, 0xd7, 0x07, - 0xfe, 0x46, 0x80, 0x3e, 0x6f, 0xff, 0x00, 0x98, 0x8b, 0x7f, 0xd7, 0x4f, - 0xeb, 0x59, 0x97, 0x5c, 0xdd, 0x4b, 0xfe, 0xf1, 0xad, 0x3f, 0xf9, 0x88, - 0xb7, 0xfd, 0x74, 0xfe, 0xb5, 0x97, 0x3f, 0xfc, 0x7c, 0x49, 0xfe, 0xf1, - 0xfe, 0x74, 0xc4, 0x47, 0x45, 0x14, 0x50, 0x30, 0xa2, 0x8a, 0x28, 0x00, - 0xa2, 0x8a, 0x28, 0x00, 0xa2, 0x8a, 0x28, 0x00, 0xa2, 0x8a, 0x28, 0x00, - 0xab, 0xfa, 0x67, 0xdd, 0xb9, 0xff, 0x00, 0xae, 0x7f, 0xd6, 0xa8, 0x56, - 0x86, 0x99, 0xf7, 0x2e, 0xbf, 0xeb, 0x9f, 0xf5, 0x14, 0x01, 0xd6, 0xfc, - 0x34, 0xff, 0x00, 0x91, 0xde, 0xdb, 0xfd, 0xc7, 0xff, 0x00, 0xd0, 0x4d, - 0x7b, 0xc5, 0x78, 0x47, 0xc3, 0x3f, 0xf9, 0x1d, 0xed, 0xbf, 0xdc, 0x93, - 0xff, 0x00, 0x41, 0x35, 0xee, 0xf4, 0x30, 0x0a, 0x28, 0xa2, 0x90, 0x05, - 0x52, 0xd6, 0x3f, 0xe4, 0x0b, 0x7d, 0xff, 0x00, 0x5c, 0x1f, 0xff, 0x00, - 0x41, 0x35, 0x76, 0xa9, 0x6b, 0x1f, 0xf2, 0x05, 0xbe, 0xff, 0x00, 0xae, - 0x0f, 0xfc, 0x8d, 0x00, 0x7c, 0xdd, 0xff, 0x00, 0x31, 0x26, 0xff, 0x00, - 0xae, 0x9f, 0xd6, 0xb3, 0x2e, 0x3f, 0xe3, 0xe6, 0x4f, 0xf7, 0x8d, 0x6a, - 0x7f, 0xcc, 0x45, 0xbf, 0xeb, 0xa7, 0xf5, 0xac, 0xcb, 0x9f, 0xf8, 0xf9, - 0x93, 0xfd, 0xe3, 0x4c, 0x44, 0x54, 0x51, 0x45, 0x03, 0x0a, 0x28, 0xa2, - 0x80, 0x0a, 0x28, 0xa2, 0x80, 0x0a, 0x28, 0xa2, 0x80, 0x0a, 0x28, 0xa2, - 0x80, 0x0a, 0xd0, 0xd3, 0x3e, 0xed, 0xd7, 0xfd, 0x73, 0xfe, 0xb5, 0x9f, - 0x5a, 0x1a, 0x67, 0xdc, 0xba, 0xff, 0x00, 0xae, 0x7f, 0xd4, 0x50, 0x07, - 0x5d, 0xf0, 0xcc, 0xff, 0x00, 0xc5, 0x71, 0x6d, 0xff, 0x00, 0x5c, 0xdf, - 0xff, 0x00, 0x41, 0x35, 0xee, 0xf5, 0xe1, 0x1f, 0x0c, 0xff, 0x00, 0xe4, - 0x78, 0xb6, 0xff, 0x00, 0x71, 0xff, 0x00, 0xf4, 0x13, 0x5e, 0xef, 0x48, - 0x02, 0x8a, 0x28, 0xa0, 0x02, 0xa9, 0x6b, 0x1f, 0xf2, 0x05, 0xbd, 0xff, - 0x00, 0xae, 0x0f, 0xfc, 0x8d, 0x5d, 0xaa, 0x5a, 0xc7, 0xfc, 0x81, 0x6f, - 0xbf, 0xeb, 0x83, 0xff, 0x00, 0x23, 0x40, 0x1f, 0x37, 0x12, 0x17, 0x51, - 0x6c, 0xf0, 0x3c, 0xc3, 0x9f, 0xce, 0xa8, 0x5f, 0x44, 0xd0, 0xde, 0x48, - 0xac, 0x3b, 0xe4, 0x7b, 0xd5, 0xb9, 0xf8, 0xbb, 0x97, 0xfd, 0xf3, 0x52, - 0x19, 0x04, 0xaa, 0x16, 0x55, 0x0d, 0x8e, 0x95, 0x42, 0x32, 0x28, 0xad, - 0x52, 0x96, 0xd8, 0xff, 0x00, 0x53, 0xfa, 0xd2, 0x6c, 0xb7, 0xc7, 0xfa, - 0x9f, 0xd6, 0x95, 0x86, 0x65, 0xd1, 0x5a, 0x42, 0x3b, 0x6c, 0x67, 0xc9, - 0xff, 0x00, 0xc7, 0xa8, 0x09, 0x6e, 0x0e, 0x7c, 0x9f, 0xd6, 0x8b, 0x01, - 0x9b, 0x45, 0x69, 0x15, 0xb7, 0x3d, 0x61, 0xfd, 0x68, 0xf2, 0xed, 0xff, - 0x00, 0xe7, 0x97, 0xeb, 0x40, 0x19, 0xb4, 0x56, 0x9f, 0x97, 0x6f, 0x8f, - 0xf5, 0x23, 0xf3, 0xa3, 0xca, 0xb6, 0xc7, 0xfa, 0xaf, 0xd6, 0x9d, 0x80, - 0xcc, 0xa2, 0xb4, 0xbc, 0xab, 0x7e, 0x9e, 0x57, 0xfe, 0x3d, 0x4a, 0x22, - 0xb7, 0x23, 0xfd, 0x4f, 0xeb, 0x48, 0x0c, 0xca, 0xd0, 0xd3, 0x7e, 0x58, - 0xae, 0x58, 0xf4, 0x28, 0x17, 0xf1, 0xcd, 0x38, 0xc5, 0x6f, 0xda, 0x1f, - 0xd6, 0x86, 0x61, 0xb7, 0x6a, 0xae, 0xd5, 0x1d, 0x85, 0x00, 0x75, 0x9f, - 0x0c, 0xb9, 0xf1, 0xbd, 0xbf, 0xfd, 0x73, 0x93, 0xff, 0x00, 0x41, 0x35, - 0xee, 0xf5, 0xe1, 0x1f, 0x0c, 0x3f, 0xe4, 0x77, 0xb7, 0xff, 0x00, 0xae, - 0x6f, 0xfc, 0xab, 0xdd, 0xe9, 0x00, 0x51, 0x45, 0x14, 0x00, 0x55, 0x2d, - 0x63, 0xfe, 0x40, 0xb7, 0xdf, 0xf5, 0xc1, 0xff, 0x00, 0x91, 0xab, 0xb5, - 0x4b, 0x59, 0xff, 0x00, 0x90, 0x2d, 0xf7, 0xfd, 0x70, 0x7f, 0xe4, 0x68, - 0x03, 0xe6, 0xa9, 0xf1, 0xf6, 0xb9, 0x4f, 0xfb, 0x47, 0xf9, 0xd4, 0x3e, - 0x64, 0xac, 0x4f, 0x94, 0x99, 0x03, 0x82, 0x4d, 0x58, 0x90, 0x66, 0xf9, - 0xc7, 0x51, 0xe6, 0x1f, 0xe7, 0x4c, 0x87, 0x88, 0x97, 0x1e, 0x99, 0xaa, - 0x11, 0x0f, 0xfa, 0x4f, 0x5d, 0x8b, 0xcf, 0xbd, 0x01, 0x6e, 0xcf, 0x45, - 0x4f, 0xce, 0xac, 0xe7, 0x19, 0xfe, 0xb4, 0xcd, 0xc4, 0x70, 0x28, 0x02, - 0x1d, 0xb7, 0x5f, 0xdc, 0x4c, 0x7d, 0x69, 0x07, 0xda, 0x14, 0xf3, 0x1a, - 0x91, 0xec, 0x79, 0xab, 0x1b, 0xcf, 0x3d, 0x85, 0x20, 0x3c, 0x75, 0xa0, - 0x04, 0x2a, 0x55, 0x55, 0x9b, 0x1b, 0x58, 0x65, 0x4f, 0xad, 0x1f, 0x5a, - 0x94, 0x9d, 0xd6, 0x08, 0x4e, 0x0e, 0x25, 0x70, 0x3f, 0x4a, 0x84, 0x1f, - 0x7a, 0x00, 0x63, 0xc8, 0xd9, 0x09, 0x1a, 0xee, 0x62, 0x29, 0x31, 0x75, - 0x9f, 0xb8, 0xbf, 0x9d, 0x4e, 0x40, 0x0c, 0x48, 0x1f, 0xc0, 0xbf, 0xcc, - 0xd0, 0x4f, 0x4a, 0x06, 0x41, 0xfe, 0x94, 0x7f, 0x81, 0x3f, 0x3a, 0x36, - 0xdd, 0x0f, 0xe0, 0x4f, 0xce, 0xa7, 0xdd, 0x81, 0x41, 0x26, 0x81, 0x10, - 0x7f, 0xa4, 0x8f, 0xe0, 0x5f, 0xce, 0xa4, 0x5d, 0xc5, 0x0e, 0xe1, 0x82, - 0xbd, 0x45, 0x3b, 0x92, 0x73, 0x4e, 0x8c, 0xe5, 0xdc, 0x76, 0x31, 0x37, - 0xf3, 0x14, 0x01, 0xd5, 0x7c, 0x30, 0xff, 0x00, 0x91, 0xde, 0xdf, 0xfe, - 0xb9, 0xbf, 0xfe, 0x83, 0x5e, 0xef, 0x5e, 0x0f, 0xf0, 0xc3, 0x8f, 0x1b, - 0xdb, 0xff, 0x00, 0xd7, 0x37, 0xff, 0x00, 0xd0, 0x4d, 0x7b, 0xc5, 0x48, - 0xc2, 0x8a, 0x28, 0xa0, 0x02, 0xa9, 0x6b, 0x1f, 0xf2, 0x05, 0xbd, 0xff, - 0x00, 0xae, 0x0f, 0xfc, 0x8d, 0x5d, 0xaa, 0x5a, 0xc7, 0xfc, 0x81, 0x6f, - 0x7f, 0xeb, 0x83, 0xff, 0x00, 0x2a, 0x00, 0xf9, 0xb5, 0xf0, 0xba, 0x83, - 0xe7, 0xa7, 0x98, 0x7f, 0x9d, 0x43, 0xe6, 0x2d, 0xbb, 0x79, 0x52, 0x1c, - 0x32, 0xf1, 0xcd, 0x3a, 0xe7, 0xfe, 0x3f, 0x26, 0xff, 0x00, 0x7c, 0xd0, - 0xcc, 0xb2, 0x2a, 0xac, 0x88, 0x1f, 0x1d, 0x32, 0x39, 0xaa, 0x10, 0x9f, - 0x68, 0x84, 0xff, 0x00, 0x10, 0xa4, 0xf3, 0x62, 0xfe, 0xfa, 0xe2, 0x9a, - 0x56, 0x0f, 0xf9, 0xe2, 0xb4, 0x6c, 0x83, 0xfe, 0x78, 0x2f, 0xe6, 0x69, - 0x00, 0xef, 0x3a, 0x11, 0xfc, 0x63, 0xf3, 0xa6, 0xc9, 0x73, 0x10, 0x07, - 0x04, 0x1f, 0x6a, 0x3c, 0xb8, 0x3f, 0xe7, 0x8a, 0xfe, 0xb4, 0xaa, 0x91, - 0x29, 0xc8, 0x85, 0x38, 0xa0, 0x09, 0x37, 0x7f, 0xa0, 0x44, 0xa4, 0x61, - 0x8b, 0xb3, 0xe3, 0xd8, 0xf4, 0xa8, 0x47, 0x07, 0x8c, 0xd3, 0xcb, 0x16, - 0x39, 0x27, 0x34, 0xdf, 0xe9, 0x4c, 0x09, 0x66, 0xc4, 0x51, 0xa4, 0x84, - 0xfc, 0x8e, 0xa0, 0x67, 0xd0, 0x82, 0x78, 0xfd, 0x6a, 0x31, 0x71, 0x16, - 0x39, 0x61, 0x9a, 0x7a, 0xb9, 0x08, 0x50, 0x80, 0x55, 0xba, 0xa9, 0x19, - 0x14, 0xcf, 0x2a, 0x0f, 0xf9, 0xe2, 0xb4, 0x80, 0x04, 0xf1, 0x7f, 0x7c, - 0x53, 0xbc, 0xd8, 0xbf, 0xe7, 0xa0, 0xfc, 0xe9, 0x9e, 0x5c, 0x1f, 0xf3, - 0xc5, 0x7f, 0x33, 0x4a, 0x63, 0x83, 0xfe, 0x78, 0x2f, 0xe6, 0x68, 0x01, - 0xdf, 0x69, 0x88, 0x2e, 0x37, 0x8a, 0x2d, 0xe5, 0x57, 0x32, 0xbf, 0xf0, - 0xac, 0x65, 0x41, 0xf5, 0x24, 0x8f, 0xf0, 0xa6, 0xec, 0x83, 0xfe, 0x78, - 0x27, 0xe6, 0x69, 0x59, 0xbe, 0x5d, 0xa0, 0x05, 0x51, 0xd0, 0x01, 0x40, - 0x1d, 0x6f, 0xc3, 0x0f, 0xf9, 0x1d, 0xad, 0xff, 0x00, 0xeb, 0x9b, 0xff, - 0x00, 0x2a, 0xf7, 0x8a, 0xf0, 0x7f, 0x86, 0x1f, 0xf2, 0x3b, 0x5b, 0xff, - 0x00, 0xd7, 0x37, 0xff, 0x00, 0xd0, 0x4d, 0x7b, 0xc5, 0x21, 0x85, 0x14, - 0x51, 0x40, 0x05, 0x52, 0xd5, 0xc6, 0x74, 0x6b, 0xd1, 0x8c, 0xfe, 0xe1, - 0xff, 0x00, 0x91, 0xab, 0xb5, 0x1c, 0xe8, 0x25, 0xb7, 0x96, 0x33, 0xd1, - 0x90, 0xaf, 0xe6, 0x28, 0x03, 0xe6, 0x1b, 0xbf, 0x96, 0xfa, 0x71, 0xe8, - 0xe6, 0x99, 0x9a, 0x9b, 0x53, 0x43, 0x1e, 0xab, 0x70, 0xa7, 0x20, 0xef, - 0xaa, 0xe3, 0x91, 0x9a, 0xa1, 0x07, 0xbd, 0x03, 0xbf, 0x38, 0xa3, 0x14, - 0x94, 0x00, 0xbc, 0x92, 0x29, 0x01, 0xc5, 0x07, 0xaf, 0x34, 0x66, 0x80, - 0x1d, 0xdb, 0xad, 0x1d, 0xb1, 0x48, 0x0d, 0x29, 0x26, 0x80, 0x17, 0xbd, - 0x25, 0x19, 0xa6, 0xe4, 0x72, 0x68, 0x01, 0x73, 0x93, 0x9a, 0x0e, 0x7d, - 0x29, 0x0d, 0x07, 0xda, 0x90, 0x0b, 0x9c, 0x51, 0x9a, 0x28, 0x3d, 0x28, - 0x03, 0xb0, 0xf8, 0x5c, 0xbb, 0xbc, 0x6b, 0x09, 0xf4, 0x89, 0xcf, 0xe9, - 0x8a, 0xf7, 0x7a, 0xf1, 0x2f, 0x84, 0xb0, 0x97, 0xf1, 0x54, 0xd2, 0x63, - 0x88, 0xed, 0xdb, 0x3f, 0x89, 0x15, 0xed, 0xb4, 0x86, 0x14, 0x51, 0x45, - 0x00, 0x14, 0x75, 0xa2, 0x8a, 0x00, 0xf9, 0xcb, 0xc6, 0x36, 0xa6, 0xd3, - 0xc4, 0xf7, 0x69, 0x8c, 0x66, 0x46, 0xfe, 0x7f, 0xfe, 0xaa, 0xc5, 0x5e, - 0x95, 0xde, 0xfc, 0x57, 0xd3, 0x4d, 0xbe, 0xba, 0xb7, 0x6a, 0xbf, 0x24, - 0xca, 0x1b, 0x3e, 0xf8, 0xc1, 0xfe, 0x5f, 0xad, 0x70, 0x2a, 0x78, 0xe0, - 0xd5, 0x08, 0x52, 0x78, 0x14, 0x9f, 0x4a, 0x53, 0xd0, 0x9a, 0x4f, 0x5a, - 0x00, 0x3b, 0xd1, 0xd0, 0xd1, 0x47, 0xbd, 0x00, 0x19, 0x24, 0xd2, 0xe7, - 0xb5, 0x27, 0x06, 0x94, 0x74, 0xf5, 0xa0, 0x00, 0xf3, 0x49, 0x9c, 0x60, - 0x52, 0xd3, 0x7a, 0x0a, 0x40, 0x2f, 0x51, 0x83, 0x45, 0x26, 0x33, 0x4b, - 0xea, 0x28, 0x01, 0x7d, 0x28, 0x27, 0x9a, 0x32, 0x3f, 0x4a, 0x6b, 0x7d, - 0x79, 0xa0, 0x0f, 0x52, 0xf8, 0x37, 0x66, 0x77, 0xea, 0x77, 0xa4, 0x70, - 0x02, 0x44, 0xa7, 0xdc, 0xe4, 0x9f, 0xe4, 0x2b, 0xd5, 0xeb, 0x8e, 0xf8, - 0x65, 0x61, 0xf6, 0x2f, 0x06, 0xc1, 0x21, 0x5c, 0x35, 0xcb, 0xb4, 0xa7, - 0xdc, 0x74, 0x1f, 0xa0, 0xae, 0xc6, 0x90, 0xc2, 0x8a, 0x28, 0xa0, 0x02, - 0x8a, 0x28, 0xa0, 0x0e, 0x2b, 0xe2, 0x56, 0x8e, 0x75, 0x1f, 0x0f, 0x7d, - 0xa2, 0x31, 0x99, 0x2d, 0xcf, 0x3f, 0xee, 0x9f, 0xfe, 0xbe, 0x2b, 0xc2, - 0x81, 0x20, 0xe0, 0x8e, 0x45, 0x7d, 0x4b, 0x75, 0x6f, 0x1d, 0xdd, 0xac, - 0xb6, 0xf2, 0x8c, 0xc7, 0x22, 0x95, 0x61, 0xec, 0x6b, 0xe6, 0xef, 0x11, - 0xe9, 0x72, 0xe8, 0xfa, 0xe5, 0xc5, 0xac, 0xa3, 0x95, 0x73, 0xcf, 0xaf, - 0xbf, 0xf5, 0xfc, 0x69, 0x88, 0xcd, 0xed, 0xda, 0x8e, 0xfe, 0xf4, 0x75, - 0x14, 0x1e, 0x94, 0x00, 0x9d, 0xa9, 0x4d, 0x00, 0x66, 0x8e, 0x69, 0x80, - 0x7d, 0x79, 0xa5, 0xe9, 0x4d, 0xed, 0x4a, 0x28, 0x01, 0x4f, 0x4f, 0xe7, - 0x49, 0xd4, 0x66, 0x8f, 0xa8, 0xa3, 0xa7, 0x14, 0x80, 0x3d, 0xe8, 0xe9, - 0xda, 0x8c, 0xfe, 0x14, 0x50, 0x01, 0x9a, 0xb1, 0xa7, 0x59, 0x49, 0xa9, - 0xea, 0x96, 0xd6, 0x51, 0x0f, 0x9e, 0x69, 0x02, 0x0f, 0xc7, 0xbd, 0x57, - 0x3c, 0x57, 0xa3, 0x7c, 0x25, 0xd0, 0x85, 0xd6, 0xa5, 0x3e, 0xb3, 0x32, - 0x65, 0x2d, 0xbf, 0x77, 0x0e, 0x47, 0x1b, 0xc8, 0xe4, 0xfe, 0x00, 0xfe, - 0xb4, 0x01, 0xeb, 0x76, 0x56, 0x91, 0xd8, 0xd8, 0xc1, 0x69, 0x0a, 0xed, - 0x8e, 0x18, 0xd6, 0x35, 0x1e, 0xc0, 0x62, 0xa7, 0xa2, 0x8a, 0x43, 0x0a, - 0x28, 0xa2, 0x80, 0x0a, 0x28, 0xa2, 0x80, 0x0a, 0xf3, 0x7f, 0x8a, 0x7e, - 0x1c, 0xfb, 0x5d, 0x92, 0x6a, 0xd6, 0xe9, 0xfb, 0xc8, 0xf0, 0xb2, 0xe3, - 0xd3, 0xb1, 0xfe, 0x9f, 0x95, 0x7a, 0x45, 0x45, 0x71, 0x6f, 0x1d, 0xd5, - 0xb4, 0x96, 0xf3, 0x28, 0x68, 0xe4, 0x52, 0xac, 0x0f, 0x70, 0x68, 0x03, - 0xe5, 0xa5, 0x3d, 0x8f, 0x5a, 0x76, 0x73, 0xd0, 0xd6, 0xd7, 0x8b, 0x74, - 0x29, 0x74, 0x0d, 0x72, 0x68, 0x18, 0x7e, 0xec, 0xb6, 0x51, 0xbd, 0x47, - 0x63, 0x58, 0xab, 0x82, 0x29, 0x88, 0x51, 0x49, 0x8c, 0x52, 0x91, 0xde, - 0x8a, 0x60, 0x18, 0xf6, 0xe2, 0x8c, 0x52, 0x03, 0xeb, 0x47, 0x27, 0xb5, - 0x00, 0x1d, 0x07, 0x4a, 0x5f, 0x7a, 0x29, 0x7d, 0xa9, 0x00, 0x9f, 0x95, - 0x26, 0x7b, 0x52, 0xe3, 0x9a, 0x46, 0x34, 0x01, 0x25, 0xad, 0xac, 0xf7, - 0xd7, 0x90, 0xda, 0x5b, 0x21, 0x92, 0x69, 0x58, 0x22, 0x28, 0xee, 0x4d, - 0x7d, 0x23, 0xe1, 0xfd, 0x1e, 0x2d, 0x07, 0x43, 0xb5, 0xd3, 0xa2, 0x03, - 0xf7, 0x49, 0xf3, 0xb0, 0xfe, 0x26, 0x3d, 0x4f, 0xe7, 0x5e, 0x73, 0xf0, - 0x9f, 0xc3, 0x41, 0xde, 0x4d, 0x7e, 0xe5, 0x0e, 0x17, 0x31, 0xdb, 0x02, - 0x3b, 0xf7, 0x6f, 0xe9, 0xf9, 0xd7, 0xac, 0xd2, 0x18, 0x51, 0x45, 0x14, - 0x00, 0x51, 0x45, 0x14, 0x00, 0x51, 0x45, 0x14, 0x00, 0x51, 0x45, 0x14, - 0x01, 0xc6, 0x7c, 0x44, 0xf0, 0xda, 0xeb, 0x3a, 0x23, 0x5c, 0xc6, 0x99, - 0xb9, 0xb6, 0x52, 0x72, 0x07, 0x25, 0x7b, 0xfe, 0x5d, 0x6b, 0xc2, 0x30, - 0xc8, 0xe5, 0x1b, 0x82, 0x0e, 0x0d, 0x7d, 0x54, 0x40, 0x20, 0x82, 0x32, - 0x0f, 0x51, 0x5e, 0x11, 0xf1, 0x0f, 0xc2, 0x92, 0xe8, 0x9a, 0xb3, 0x5d, - 0xc1, 0x1e, 0x6c, 0xe7, 0x62, 0x54, 0x81, 0xc2, 0x9f, 0x4a, 0x60, 0x71, - 0xd4, 0x1f, 0x5a, 0x6a, 0xb0, 0xa7, 0x67, 0xa5, 0x02, 0x16, 0x8f, 0xa5, - 0x27, 0x19, 0xeb, 0x4b, 0xda, 0x80, 0x01, 0xd6, 0x97, 0xbf, 0x6a, 0x6e, - 0x73, 0x46, 0x79, 0xc5, 0x00, 0x2b, 0x1c, 0x0a, 0xbb, 0xa1, 0xe9, 0x17, - 0x1a, 0xee, 0xb3, 0x6f, 0xa7, 0x5b, 0x82, 0x5a, 0x56, 0xf9, 0x9b, 0xfb, - 0xab, 0xdc, 0x9f, 0xc2, 0xb3, 0xc9, 0x24, 0x80, 0x01, 0xc9, 0x3c, 0x57, - 0xb7, 0x7c, 0x35, 0xf0, 0x93, 0x68, 0x9a, 0x73, 0x6a, 0x37, 0xb1, 0x95, - 0xbe, 0xba, 0x03, 0x0a, 0xc3, 0x98, 0xd3, 0xb0, 0xfa, 0x9e, 0xf4, 0x0c, - 0xec, 0xec, 0x2c, 0x60, 0xd3, 0x6c, 0x20, 0xb2, 0xb6, 0x40, 0x90, 0xc2, - 0x81, 0x14, 0x0a, 0xb3, 0x45, 0x14, 0x80, 0x28, 0xa2, 0x8a, 0x00, 0x28, - 0xa2, 0x8a, 0x00, 0x28, 0xa2, 0x8a, 0x00, 0x28, 0xa2, 0x8a, 0x00, 0x2a, - 0x0b, 0xcb, 0x3b, 0x7b, 0xfb, 0x57, 0xb6, 0xba, 0x85, 0x26, 0x85, 0xc6, - 0x19, 0x1c, 0x64, 0x1a, 0x9e, 0x8a, 0x00, 0xf3, 0x2d, 0x57, 0xe0, 0xfd, - 0xac, 0xf3, 0x3c, 0x9a, 0x6e, 0xa0, 0xf6, 0xe1, 0x8e, 0x44, 0x72, 0xa6, - 0xe0, 0x3e, 0x84, 0x62, 0xb1, 0x24, 0xf8, 0x3f, 0xad, 0x29, 0xfd, 0xdd, - 0xfd, 0x93, 0x8f, 0xf6, 0xb7, 0x0f, 0xe8, 0x6b, 0xda, 0x28, 0xa0, 0x0f, - 0x14, 0x1f, 0x08, 0x75, 0xe0, 0x3f, 0xe3, 0xf2, 0xc3, 0x3f, 0xef, 0xb7, - 0xff, 0x00, 0x13, 0x4a, 0x7e, 0x10, 0xeb, 0xdf, 0xf3, 0xf9, 0x63, 0xff, - 0x00, 0x7d, 0x37, 0xff, 0x00, 0x13, 0x5e, 0xd5, 0x45, 0x00, 0x78, 0xa8, - 0xf8, 0x41, 0xae, 0xff, 0x00, 0xcf, 0xe5, 0x80, 0xff, 0x00, 0x81, 0x37, - 0xff, 0x00, 0x13, 0x56, 0x21, 0xf8, 0x39, 0xa8, 0xb3, 0x7e, 0xff, 0x00, - 0x54, 0xb6, 0x45, 0xef, 0xb1, 0x0b, 0x7f, 0x85, 0x7b, 0x15, 0x14, 0x01, - 0xc7, 0x78, 0x73, 0xe1, 0xce, 0x8f, 0xa0, 0xca, 0xb7, 0x12, 0x6e, 0xbd, - 0xba, 0x5e, 0x56, 0x49, 0x80, 0xc2, 0x7d, 0x05, 0x76, 0x34, 0x51, 0x40, - 0x05, 0x14, 0x51, 0x40, 0x05, 0x14, 0x51, 0x40, 0x05, 0x14, 0x51, 0x40, - 0x1f, 0xff, 0xd9, 0x00, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x03, 0x02, 0x02, - 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x04, 0x05, - 0x08, 0x05, 0x05, 0x04, 0x04, 0x05, 0x0a, 0x07, 0x07, 0x06, 0x08, 0x0c, - 0x0a, 0x0c, 0x0c, 0x0b, 0x0a, 0x0b, 0x0b, 0x0d, 0x0e, 0x12, 0x10, 0x0d, - 0x0e, 0x11, 0x0e, 0x0b, 0x0b, 0x10, 0x16, 0x10, 0x11, 0x13, 0x14, 0x15, - 0x15, 0x15, 0x0c, 0x0f, 0x17, 0x18, 0x16, 0x14, 0x18, 0x12, 0x14, 0x15, - 0x14, 0xff, 0xdb, 0x00, 0x43, 0x01, 0x03, 0x04, 0x04, 0x05, 0x04, 0x05, - 0x09, 0x05, 0x05, 0x09, 0x14, 0x0d, 0x0b, 0x0d, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xff, 0xc2, - 0x00, 0x11, 0x08, 0x01, 0x54, 0x00, 0xc8, 0x03, 0x01, 0x11, 0x00, 0x02, - 0x11, 0x01, 0x03, 0x11, 0x01, 0xff, 0xc4, 0x00, 0x1c, 0x00, 0x01, 0x00, - 0x02, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, 0x05, 0x06, 0xff, - 0xc4, 0x00, 0x16, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xff, - 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x10, 0x03, 0x10, 0x00, 0x00, - 0x01, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x03, 0xe7, 0x1a, 0x89, 0xa8, 0x54, 0xb1, 0xb6, 0x6d, - 0xaf, 0xd2, 0x33, 0x00, 0x00, 0x00, 0x00, 0x41, 0xf8, 0x0b, 0x39, 0xc9, - 0xf9, 0xba, 0xf8, 0x69, 0xf3, 0x8a, 0x02, 0x09, 0x04, 0x82, 0xc7, 0xd2, - 0x3e, 0xf2, 0xfe, 0xa2, 0x3a, 0x44, 0x7e, 0xdd, 0x40, 0x00, 0x0e, 0x0b, - 0x67, 0x1d, 0xb2, 0xc5, 0x88, 0x04, 0x80, 0x49, 0x04, 0x12, 0x41, 0x25, - 0x49, 0x2a, 0x77, 0x59, 0x7b, 0x34, 0xa0, 0x01, 0xf9, 0x8b, 0x3c, 0x95, - 0x65, 0xca, 0x98, 0x0d, 0x82, 0xe0, 0x82, 0x40, 0x24, 0xa9, 0x60, 0x49, - 0x05, 0x01, 0xec, 0x1c, 0xeb, 0xec, 0x00, 0x0e, 0x59, 0x67, 0x9d, 0x2c, - 0xd8, 0x30, 0x99, 0x08, 0x2c, 0x6b, 0xac, 0x03, 0x61, 0x35, 0x96, 0xc6, - 0x44, 0x85, 0xc8, 0x94, 0x5b, 0x25, 0x8c, 0x27, 0xa7, 0x65, 0xe8, 0x12, - 0x80, 0x39, 0x3d, 0x9e, 0x79, 0xb3, 0x64, 0xd7, 0x2e, 0x63, 0x36, 0xab, - 0x56, 0x5c, 0xe9, 0xf2, 0xe6, 0xb7, 0xac, 0xd2, 0x97, 0xe8, 0x59, 0x53, - 0x01, 0x2b, 0x86, 0x36, 0x6c, 0xd9, 0x4c, 0x07, 0xa5, 0x65, 0xe9, 0x12, - 0x80, 0x39, 0x45, 0x9e, 0x78, 0xb3, 0x64, 0xa9, 0x63, 0x19, 0x62, 0xa6, - 0xc1, 0x81, 0x6c, 0x6a, 0x10, 0x6c, 0x98, 0x89, 0x36, 0x0a, 0xa4, 0x98, - 0x0f, 0x4a, 0xcb, 0xd2, 0x25, 0x00, 0x72, 0x8b, 0x3c, 0xef, 0x66, 0xc9, - 0x88, 0xc3, 0x03, 0x76, 0xb1, 0x82, 0x0b, 0x92, 0x49, 0x52, 0xc4, 0x95, - 0x20, 0x83, 0x11, 0xe9, 0x49, 0x7a, 0x44, 0xa0, 0x0e, 0x4f, 0x67, 0x9e, - 0x2c, 0xd9, 0x2c, 0x49, 0x52, 0x0a, 0x92, 0x48, 0x05, 0x88, 0x24, 0x10, - 0x0a, 0x98, 0x4f, 0x4b, 0xcb, 0xd1, 0xa5, 0x00, 0x72, 0x8b, 0x3c, 0xf3, - 0x66, 0x55, 0xc6, 0x08, 0x00, 0x10, 0x09, 0x24, 0x80, 0x48, 0x06, 0x44, - 0xc6, 0x7a, 0x5a, 0x5e, 0x8d, 0x28, 0x03, 0x93, 0x59, 0xe7, 0xdb, 0x3e, - 0x7c, 0xb8, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0xb6, 0x42, 0x7a, - 0x5a, 0x5e, 0x8d, 0x28, 0x03, 0x92, 0xd9, 0xc0, 0xec, 0xf9, 0xd2, 0xeb, - 0x28, 0x00, 0x00, 0x00, 0x00, 0x01, 0xbd, 0x66, 0xd2, 0x7a, 0x4a, 0x5e, - 0x8d, 0x28, 0x03, 0x92, 0xd9, 0xc0, 0xec, 0xf9, 0xcb, 0xad, 0x28, 0x00, - 0x00, 0x00, 0x00, 0x01, 0xbd, 0x66, 0xd2, 0x7a, 0x4f, 0x37, 0xa2, 0xa8, - 0x03, 0x92, 0xd9, 0xc0, 0xec, 0xf9, 0x8b, 0x82, 0x50, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x7a, 0xcd, 0x94, 0xf4, 0xa6, 0x6f, 0x45, 0x50, 0x07, 0x25, - 0xb3, 0x81, 0xd9, 0xf2, 0xa6, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, - 0xfd, 0x9b, 0x09, 0xe9, 0x5c, 0xeb, 0xa2, 0x00, 0x0e, 0x4d, 0x67, 0x01, - 0xb3, 0xe6, 0x2e, 0x19, 0x40, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xeb, 0x36, - 0x93, 0xd2, 0x93, 0x5d, 0x12, 0x00, 0x1c, 0x96, 0xce, 0x07, 0x67, 0xcd, - 0x5d, 0x79, 0x40, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xeb, 0x36, 0x13, 0xd2, - 0xd2, 0xf4, 0x49, 0x40, 0x1c, 0x96, 0xce, 0x07, 0x67, 0xcc, 0x5c, 0x12, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xf6, 0x6c, 0x27, 0xa5, 0x73, 0xae, - 0x88, 0x00, 0x39, 0x35, 0x9c, 0x02, 0xcd, 0x65, 0xd0, 0x94, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xfa, 0x36, 0x64, 0x4f, 0x4c, 0x66, 0xf4, 0x35, 0x00, - 0x72, 0x5b, 0x3c, 0xf9, 0x66, 0xe9, 0x8a, 0xd8, 0x05, 0x01, 0x22, 0x2b, - 0x52, 0xa0, 0x44, 0x4a, 0x2a, 0x22, 0xc9, 0x82, 0x3d, 0x3b, 0x2f, 0x42, - 0x50, 0x07, 0x25, 0xb3, 0xcf, 0x76, 0x64, 0x2a, 0x41, 0x04, 0x10, 0x5c, - 0x92, 0xc4, 0xb5, 0x42, 0xa4, 0x90, 0x4a, 0x12, 0xc6, 0x38, 0xf4, 0xec, - 0xbd, 0x09, 0x40, 0x1c, 0x92, 0xcf, 0x3e, 0xd9, 0x86, 0x32, 0x5a, 0x2c, - 0x0a, 0x84, 0xda, 0xac, 0x31, 0x56, 0xb1, 0xc5, 0xaa, 0x49, 0x48, 0x2a, - 0x65, 0x4c, 0x47, 0xa7, 0x73, 0x7a, 0x1a, 0x80, 0x39, 0x25, 0x9c, 0x02, - 0xca, 0xae, 0x64, 0x83, 0x19, 0x62, 0xa5, 0x4d, 0xdd, 0x34, 0xf2, 0xb9, - 0x76, 0xaa, 0x19, 0x82, 0x01, 0x05, 0x4f, 0x4c, 0xe7, 0x5d, 0x10, 0x00, - 0x72, 0x5b, 0x38, 0x05, 0x94, 0x36, 0x0a, 0x95, 0x2c, 0x41, 0xaa, 0xbf, - 0x42, 0xcd, 0x08, 0xcf, 0x0a, 0xb1, 0x05, 0x88, 0x2e, 0x6b, 0x83, 0xd3, - 0x39, 0xbd, 0x0d, 0x40, 0x1c, 0x9a, 0xcf, 0x3c, 0xd9, 0x99, 0x75, 0xa2, - 0x09, 0x58, 0x21, 0x32, 0x56, 0x54, 0xa1, 0x98, 0xc0, 0xb8, 0xa0, 0x58, - 0x80, 0x66, 0xb3, 0x1c, 0x7a, 0x7a, 0x5e, 0x86, 0xa0, 0x0e, 0x4b, 0x67, - 0x9e, 0x6c, 0xc8, 0x41, 0x04, 0x12, 0x0b, 0x10, 0x41, 0x25, 0x88, 0x20, - 0x92, 0xa4, 0x83, 0x1c, 0x7a, 0x7a, 0x6b, 0xa1, 0x80, 0x0e, 0x53, 0x67, - 0x9d, 0x13, 0x25, 0x0a, 0x80, 0x01, 0x60, 0x09, 0x2a, 0x41, 0x24, 0x13, - 0x10, 0x51, 0xaf, 0x51, 0xc9, 0xfb, 0xf5, 0x00, 0x73, 0xab, 0x3c, 0xc4, - 0x99, 0x2a, 0x00, 0x04, 0x02, 0xc5, 0x88, 0x20, 0xa8, 0x89, 0x20, 0x92, - 0x4c, 0x67, 0xac, 0x26, 0xbf, 0x64, 0x00, 0x3f, 0x21, 0x67, 0x93, 0x6c, - 0xb1, 0x20, 0xa8, 0x00, 0x92, 0xc4, 0x15, 0x89, 0xa8, 0x88, 0x2c, 0x48, - 0xaa, 0x4d, 0x7b, 0x26, 0x3e, 0xc0, 0x00, 0xf9, 0x87, 0x8e, 0xb5, 0x30, - 0x25, 0x8a, 0x44, 0xd4, 0x00, 0x09, 0x24, 0x82, 0xb0, 0x26, 0x91, 0x62, - 0xa6, 0xfb, 0x5e, 0xd0, 0x89, 0x00, 0x10, 0x79, 0x2f, 0x59, 0xfc, 0x9c, - 0x5e, 0xa0, 0x88, 0x9a, 0x80, 0x48, 0x11, 0x14, 0x88, 0x24, 0x90, 0x41, - 0xd0, 0x9a, 0xf4, 0xf4, 0x00, 0x00, 0xe2, 0x3a, 0x9c, 0x26, 0x4c, 0x84, - 0xd4, 0x44, 0x54, 0x90, 0x49, 0x24, 0x95, 0x11, 0x04, 0x92, 0x41, 0x53, - 0xd1, 0x53, 0x5d, 0x60, 0x00, 0x01, 0xf0, 0x2c, 0xf2, 0x15, 0x98, 0xe2, - 0x6a, 0x04, 0x28, 0x09, 0x04, 0x13, 0x0a, 0x44, 0x03, 0x65, 0xaf, 0x65, - 0xc6, 0xe0, 0x00, 0x00, 0x79, 0xa3, 0x53, 0x99, 0xc9, 0x90, 0x50, 0x10, - 0x09, 0x04, 0x08, 0x02, 0x4a, 0x9d, 0x91, 0xae, 0xfb, 0x00, 0x00, 0x00, - 0xfc, 0xb5, 0x9e, 0x4a, 0xb2, 0x91, 0x61, 0x40, 0x48, 0x22, 0x14, 0x81, - 0x00, 0xd8, 0x6b, 0xd8, 0x91, 0xf5, 0x00, 0x00, 0x00, 0x0f, 0x3d, 0x69, - 0xc8, 0x26, 0x72, 0x93, 0x50, 0x09, 0x2b, 0x12, 0x48, 0xa8, 0x89, 0x31, - 0xb5, 0xdd, 0xe3, 0xb5, 0x80, 0x00, 0x00, 0x03, 0xe4, 0x9e, 0x42, 0xd6, - 0x74, 0x62, 0xe4, 0x54, 0x40, 0xb5, 0x44, 0x48, 0xa4, 0x54, 0xfb, 0x2d, - 0x7b, 0x02, 0x33, 0x80, 0x00, 0x00, 0x00, 0x71, 0xaa, 0xe0, 0x0c, 0xe4, - 0x2c, 0x40, 0xa9, 0x80, 0x24, 0x83, 0x0b, 0x5e, 0x98, 0x8e, 0x98, 0x00, - 0x00, 0x00, 0x00, 0x35, 0xcf, 0x28, 0x5c, 0xfe, 0x49, 0xac, 0x8c, 0x81, - 0x62, 0xa4, 0x90, 0x54, 0xe8, 0x0d, 0x7a, 0x86, 0x24, 0x00, 0x00, 0x00, - 0x00, 0x0f, 0x9a, 0x71, 0x0a, 0xfc, 0x51, 0xa4, 0x4a, 0x14, 0x5c, 0xde, - 0x3a, 0x0c, 0x76, 0x83, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xc4, 0x00, 0x31, 0x10, 0x00, 0x00, 0x04, 0x04, 0x03, - 0x06, 0x05, 0x04, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x11, 0x13, 0x14, 0x20, 0x07, 0x10, - 0x12, 0x30, 0x33, 0x34, 0x21, 0x31, 0x32, 0x35, 0x36, 0x15, 0x16, 0x24, - 0x41, 0x22, 0x23, 0x50, 0x42, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, - 0x01, 0x05, 0x02, 0xff, 0x00, 0x05, 0x4f, 0xb6, 0xd8, 0x5c, 0xe2, 0x05, - 0xb0, 0xaa, 0x8e, 0x58, 0x90, 0x75, 0x64, 0xa4, 0x87, 0xdd, 0xd2, 0x90, - 0x55, 0x64, 0xa4, 0xc2, 0x6a, 0x39, 0x62, 0x82, 0x27, 0x10, 0x2e, 0x04, - 0x3c, 0xdb, 0x9c, 0xd9, 0xad, 0x69, 0x03, 0x2d, 0x38, 0x9d, 0xa1, 0xc6, - 0xb8, 0x1e, 0xab, 0xa6, 0x8f, 0x87, 0x66, 0x91, 0x6f, 0x83, 0x5a, 0x8c, - 0x5c, 0xc7, 0x88, 0xf1, 0x17, 0x17, 0x31, 0x71, 0xc4, 0x60, 0x9c, 0x51, - 0x06, 0xa6, 0xf1, 0xac, 0x06, 0x2b, 0x19, 0xab, 0x02, 0x17, 0x68, 0xb1, - 0x49, 0x39, 0x55, 0x5d, 0x03, 0x34, 0x56, 0xba, 0xc2, 0xaa, 0x53, 0xae, - 0x79, 0x8b, 0x0b, 0x72, 0x6c, 0x2c, 0x2c, 0x2c, 0x2c, 0x08, 0xcd, 0x27, - 0x46, 0xd5, 0x2a, 0x7d, 0x5a, 0x6a, 0x48, 0xff, 0x00, 0xa7, 0x4a, 0x4d, - 0x46, 0xb5, 0x10, 0x5a, 0xb8, 0x08, 0xb1, 0x14, 0x12, 0x77, 0xe5, 0xd8, - 0x19, 0x03, 0x0d, 0x3a, 0xa6, 0x1d, 0x94, 0x46, 0xfd, 0x42, 0x5b, 0xa2, - 0xbf, 0x55, 0xa5, 0xe9, 0x04, 0x1c, 0xe1, 0x52, 0x8d, 0xe4, 0xdc, 0x9c, - 0x25, 0xc4, 0x5a, 0xe6, 0x6f, 0x12, 0x4f, 0x30, 0x91, 0x99, 0x48, 0x52, - 0xcb, 0x0f, 0x32, 0x91, 0x98, 0x48, 0x69, 0xcc, 0x45, 0x29, 0xf4, 0xa4, - 0x21, 0xd2, 0x58, 0x53, 0xe4, 0x93, 0x6d, 0xc2, 0x73, 0x71, 0x8a, 0x1d, - 0xce, 0x39, 0x06, 0x8d, 0xa0, 0x76, 0x64, 0x11, 0xe2, 0x78, 0x7c, 0x4b, - 0xc1, 0x20, 0xb6, 0x4b, 0x81, 0x3d, 0x28, 0x94, 0x96, 0x1e, 0x02, 0x09, - 0xb4, 0x9a, 0x49, 0x28, 0x4f, 0xe0, 0x26, 0xc4, 0x98, 0x84, 0xb4, 0xd1, - 0x42, 0x33, 0x61, 0x0e, 0xd2, 0x56, 0x4e, 0x59, 0x87, 0xb8, 0xff, 0x00, - 0xba, 0x1c, 0xcb, 0x31, 0xfa, 0x31, 0x41, 0xfb, 0x2e, 0x8a, 0xff, 0x00, - 0xb3, 0x48, 0x4f, 0x9b, 0x5b, 0x97, 0xe8, 0x4f, 0x83, 0x4e, 0x23, 0x11, - 0xbf, 0x0e, 0x04, 0xb4, 0x9c, 0x04, 0xa5, 0x47, 0x0c, 0x4c, 0xb8, 0x44, - 0xb8, 0x65, 0x99, 0xb0, 0xda, 0xdb, 0x79, 0xc8, 0x6f, 0xe4, 0xcc, 0x3f, - 0x02, 0xb8, 0x08, 0xa2, 0x9b, 0x46, 0x13, 0xc0, 0xc5, 0x07, 0xec, 0xba, - 0x36, 0x81, 0xd9, 0x24, 0x10, 0x53, 0x4a, 0xbd, 0xd6, 0x40, 0x9b, 0x52, - 0x87, 0x93, 0x60, 0xc1, 0x6f, 0xfd, 0x6f, 0xfd, 0x6e, 0x50, 0xa0, 0xfd, - 0x97, 0x46, 0xd0, 0x3b, 0x24, 0x82, 0xdd, 0x7f, 0x0f, 0x31, 0x6d, 0xd6, - 0x16, 0xd5, 0x6d, 0x06, 0x28, 0x3f, 0x63, 0xd1, 0x5f, 0xf6, 0x49, 0x20, - 0xa7, 0x12, 0x81, 0x99, 0x48, 0xcc, 0xa0, 0x66, 0x50, 0x33, 0x29, 0x19, - 0x84, 0x0c, 0xca, 0x46, 0x65, 0x23, 0x32, 0x91, 0x9a, 0x48, 0xcd, 0x24, - 0x66, 0x52, 0x33, 0x49, 0x19, 0x94, 0x0c, 0xca, 0x41, 0xc4, 0xa4, 0x12, - 0xb8, 0x82, 0x85, 0x07, 0xec, 0x5a, 0x36, 0x81, 0xd9, 0xb6, 0x57, 0x0e, - 0xf5, 0x39, 0xf0, 0x07, 0xc4, 0xe2, 0xbc, 0x05, 0x07, 0xec, 0x5a, 0x36, - 0x81, 0xda, 0x43, 0xf5, 0x22, 0x3a, 0xdc, 0xf8, 0x1e, 0xed, 0xdf, 0x55, - 0x07, 0xec, 0x3a, 0x36, 0x83, 0xd9, 0xb1, 0xd4, 0x88, 0xeb, 0x73, 0xe0, - 0x7b, 0xb7, 0x7d, 0x54, 0x1f, 0xb0, 0xe8, 0xda, 0x0f, 0x66, 0xc7, 0x51, - 0xff, 0x00, 0x17, 0xb9, 0xf0, 0x3d, 0xdb, 0xbe, 0xba, 0x0f, 0xd8, 0x34, - 0x6d, 0x07, 0xb3, 0x63, 0xa8, 0xef, 0x57, 0x9f, 0x01, 0xde, 0x3b, 0xea, - 0xa0, 0xfd, 0x83, 0x46, 0xd0, 0x7b, 0x38, 0x7e, 0xa3, 0xdd, 0x6e, 0x7c, - 0x0f, 0x76, 0xef, 0xaa, 0x83, 0xf8, 0xfe, 0x8d, 0xa0, 0xf6, 0x90, 0xfd, - 0x47, 0xfa, 0xdc, 0xf8, 0x1e, 0xed, 0xdf, 0x55, 0x07, 0xec, 0x1a, 0x36, - 0x83, 0xd9, 0xc3, 0xf5, 0x1f, 0xeb, 0x73, 0xe0, 0x7b, 0xb7, 0x7d, 0x54, - 0x1f, 0xc7, 0xf4, 0x6d, 0x03, 0xb3, 0x60, 0xec, 0xe4, 0x6b, 0x46, 0xd3, - 0xfc, 0xf8, 0x02, 0xfc, 0x97, 0x0e, 0xea, 0xa1, 0x3e, 0x3f, 0xa3, 0x68, - 0x3d, 0x9a, 0x46, 0x27, 0x1a, 0x49, 0xa6, 0x81, 0xb4, 0xc8, 0x36, 0x9a, - 0x18, 0x2c, 0x8c, 0x16, 0x46, 0x1b, 0x44, 0x30, 0x9a, 0x31, 0x82, 0xd0, - 0xc1, 0x68, 0x60, 0xb4, 0x30, 0x1a, 0x18, 0x0d, 0x0c, 0x16, 0x86, 0x03, - 0x43, 0x05, 0xa1, 0x72, 0x49, 0x18, 0xa1, 0x3e, 0x3d, 0xa3, 0x68, 0x1d, - 0x9a, 0x45, 0xc8, 0x86, 0x29, 0x0c, 0x42, 0x18, 0xa9, 0x18, 0x89, 0x21, - 0x88, 0x42, 0xe4, 0x63, 0xcf, 0x79, 0xac, 0x88, 0x62, 0x24, 0x62, 0x24, - 0x62, 0x24, 0x62, 0x90, 0xc4, 0x48, 0xf3, 0x06, 0x28, 0x4f, 0x8f, 0xe8, - 0xda, 0x0f, 0x66, 0x41, 0x2d, 0xe2, 0x8c, 0xbb, 0x63, 0x2c, 0x81, 0x97, - 0x68, 0x65, 0x9b, 0x19, 0x76, 0xc6, 0x19, 0x34, 0x1f, 0x6f, 0x09, 0x61, - 0x57, 0x24, 0xa6, 0x1c, 0xad, 0x97, 0x6c, 0x65, 0xdb, 0x19, 0x76, 0xc6, - 0x5d, 0xb1, 0x80, 0xd8, 0x6d, 0x16, 0x5a, 0x85, 0x09, 0xf1, 0xfd, 0x1b, - 0x41, 0xed, 0x1a, 0xf5, 0xb3, 0xd3, 0x06, 0x2e, 0x2f, 0xb9, 0x7e, 0x98, - 0x8f, 0x40, 0x3e, 0x82, 0xbd, 0x5a, 0x2c, 0x3f, 0xed, 0xdf, 0x5d, 0x07, - 0xf1, 0xfd, 0x1b, 0x40, 0xed, 0x18, 0xea, 0x35, 0xfc, 0x53, 0x72, 0xb1, - 0x8b, 0x6f, 0x75, 0x64, 0x45, 0x13, 0xe0, 0x90, 0x49, 0x35, 0xb2, 0x6a, - 0xba, 0xbc, 0x37, 0x58, 0x58, 0x5f, 0xc1, 0x27, 0xc4, 0xf3, 0xbe, 0xba, - 0x13, 0xe3, 0xfa, 0x36, 0x81, 0xda, 0x24, 0xfc, 0x5d, 0x42, 0x5f, 0x19, - 0x65, 0x8c, 0xbb, 0x83, 0x2e, 0xe0, 0xcb, 0xb8, 0x32, 0xeb, 0x08, 0x87, - 0x24, 0x1a, 0x95, 0xc6, 0x61, 0xb7, 0x0d, 0xb5, 0x3b, 0x0e, 0x95, 0x1e, - 0x59, 0x63, 0x2e, 0xe0, 0xcb, 0x38, 0x32, 0xee, 0x0c, 0xaa, 0xc3, 0x6d, - 0xa5, 0x80, 0x62, 0x84, 0xf8, 0xfe, 0x8d, 0xa0, 0x76, 0x85, 0xbe, 0xfb, - 0xaf, 0x61, 0x7d, 0x77, 0xd2, 0x62, 0x84, 0xf8, 0xfe, 0x8a, 0xf8, 0xbf, - 0x0c, 0xb7, 0x1f, 0x9f, 0x2b, 0xcf, 0x49, 0x8a, 0x1d, 0x36, 0xa7, 0xb4, - 0x57, 0x0d, 0xf1, 0xca, 0x8b, 0x49, 0xe8, 0xbe, 0xff, 0x00, 0xd6, 0x93, - 0x14, 0x83, 0x78, 0x74, 0xf6, 0x8a, 0xa9, 0xac, 0x49, 0x29, 0x97, 0x0a, - 0xd3, 0xcb, 0xb6, 0x93, 0x1f, 0xb9, 0x3b, 0x39, 0x79, 0x56, 0x89, 0x9b, - 0x39, 0x89, 0x7c, 0x6a, 0x38, 0x22, 0xc8, 0x79, 0x73, 0x2f, 0xbc, 0xc4, - 0xba, 0x1f, 0x37, 0x30, 0x22, 0xb1, 0x69, 0xaa, 0x20, 0xb2, 0x73, 0x22, - 0xdc, 0x7a, 0x8b, 0x93, 0x41, 0xc1, 0xe6, 0x67, 0xba, 0xb6, 0x81, 0x2e, - 0x04, 0x7c, 0xeb, 0xee, 0x31, 0xb3, 0xc9, 0x76, 0x5e, 0x59, 0xaa, 0x79, - 0x01, 0xf5, 0x19, 0x6c, 0x43, 0x58, 0x2f, 0x97, 0x24, 0xf5, 0x42, 0x42, - 0xae, 0x3a, 0x32, 0x0e, 0x15, 0x10, 0x50, 0xba, 0xeb, 0x79, 0x46, 0x4a, - 0x3c, 0xb9, 0xc6, 0x36, 0x77, 0x27, 0xc4, 0x7f, 0x91, 0x51, 0xca, 0xbe, - 0xab, 0x2e, 0x79, 0xa3, 0x87, 0x76, 0xfa, 0x6d, 0xc8, 0x84, 0x85, 0x72, - 0x3e, 0x2a, 0x59, 0x00, 0xdc, 0xae, 0x07, 0x93, 0x5d, 0x48, 0xf2, 0xf1, - 0x05, 0xaa, 0xfa, 0x8c, 0x6c, 0xf6, 0x47, 0x86, 0xdf, 0x2a, 0x69, 0x00, - 0x99, 0x94, 0x14, 0xc6, 0x0d, 0x50, 0x31, 0x44, 0x62, 0xfc, 0x93, 0x31, - 0x25, 0x95, 0xae, 0x73, 0x32, 0x65, 0x94, 0x43, 0xb3, 0xcb, 0xaf, 0x24, - 0x98, 0xad, 0x97, 0x81, 0xf2, 0x0f, 0x75, 0x0d, 0x23, 0xfa, 0x6c, 0xbb, - 0x99, 0x10, 0xc2, 0x22, 0x98, 0xa9, 0x24, 0x6e, 0xc9, 0xe3, 0x88, 0xc5, - 0xf5, 0xdc, 0x51, 0xf4, 0xe2, 0xa7, 0x11, 0x9c, 0xe8, 0xf9, 0x7b, 0x13, - 0x28, 0x79, 0x9e, 0xce, 0x62, 0x10, 0xb7, 0x29, 0x19, 0xc3, 0x40, 0xe9, - 0xe9, 0xa1, 0x0f, 0xb7, 0xa6, 0xa4, 0x3e, 0xde, 0x9a, 0x8f, 0xb7, 0xa6, - 0x80, 0xa9, 0xb9, 0xaa, 0x8d, 0x9a, 0x3a, 0x70, 0xf9, 0xca, 0x76, 0x73, - 0xc2, 0xa6, 0x18, 0x6e, 0x15, 0xaf, 0xf6, 0x7f, 0xff, 0xc4, 0x00, 0x14, - 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xff, 0xda, 0x00, 0x08, 0x01, 0x03, - 0x01, 0x01, 0x3f, 0x01, 0x06, 0x7f, 0xff, 0xc4, 0x00, 0x1b, 0x11, 0x01, - 0x01, 0x01, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x40, 0x20, 0x30, 0x60, 0x10, 0x41, 0x70, 0xff, - 0xda, 0x00, 0x08, 0x01, 0x02, 0x01, 0x01, 0x3f, 0x01, 0xef, 0xe5, 0x27, - 0x17, 0xae, 0x72, 0x92, 0x92, 0x92, 0x92, 0x23, 0x65, 0x25, 0x24, 0x46, - 0xc8, 0x8d, 0x91, 0x1b, 0x22, 0x36, 0x44, 0x6c, 0xf0, 0xc0, 0x6c, 0xa4, - 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xe9, 0x85, 0x27, 0xdd, - 0xff, 0x00, 0xff, 0xc4, 0x00, 0x42, 0x10, 0x00, 0x01, 0x03, 0x00, 0x05, - 0x08, 0x05, 0x09, 0x06, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x02, 0x03, 0x11, 0x20, 0x21, 0x31, 0x41, 0x04, 0x10, 0x12, 0x22, - 0x30, 0x40, 0x71, 0x72, 0x51, 0x61, 0x81, 0x82, 0x91, 0x14, 0x32, 0x33, - 0x34, 0x52, 0x62, 0x92, 0xa1, 0xc1, 0x05, 0x13, 0x23, 0x35, 0x42, 0xd1, - 0x24, 0x50, 0x73, 0x83, 0xb1, 0x43, 0x63, 0x93, 0xe1, 0xf0, 0xff, 0xda, - 0x00, 0x08, 0x01, 0x01, 0x00, 0x06, 0x3f, 0x02, 0xfe, 0x43, 0xad, 0x23, - 0x5b, 0xc4, 0xad, 0x6c, 0xb2, 0x01, 0xfd, 0xc0, 0xad, 0xcb, 0x62, 0xf1, - 0x5e, 0xb8, 0xdf, 0x84, 0xfe, 0xcb, 0xd6, 0xc7, 0xc2, 0x57, 0xae, 0x37, - 0xe1, 0x2a, 0xcc, 0xb6, 0x2f, 0x15, 0xab, 0x96, 0x40, 0x7f, 0xb8, 0x16, - 0xab, 0xda, 0xee, 0x07, 0x6a, 0x58, 0xc2, 0x72, 0xa9, 0x46, 0x0c, 0xbb, - 0xc5, 0x1f, 0xba, 0x8a, 0x28, 0x47, 0x0d, 0x22, 0xad, 0xca, 0xde, 0xde, - 0x4a, 0x1a, 0xbf, 0x13, 0x29, 0x95, 0xfc, 0xcf, 0x2a, 0xfd, 0x85, 0x85, - 0x7e, 0x1e, 0x55, 0x33, 0x38, 0x3c, 0xaf, 0x5a, 0x73, 0xb9, 0xc0, 0x2b, - 0xf1, 0xe0, 0x8a, 0x51, 0xee, 0xea, 0x94, 0x19, 0xa4, 0x60, 0x94, 0xfe, - 0x99, 0x31, 0xed, 0xd8, 0x3f, 0x22, 0xc9, 0x1f, 0xa3, 0x10, 0xb1, 0xef, - 0x1f, 0xab, 0x71, 0xb1, 0x0c, 0x87, 0x2b, 0x75, 0x2e, 0xff, 0x00, 0x4d, - 0xe7, 0xfc, 0x56, 0x99, 0xed, 0x34, 0x3d, 0xda, 0xad, 0x44, 0xe7, 0xc7, - 0xb1, 0x75, 0xed, 0x9a, 0xf6, 0x9a, 0x0b, 0x4a, 0x82, 0x7c, 0x5c, 0xdb, - 0x78, 0xd5, 0x89, 0xb8, 0x1d, 0x23, 0x9d, 0x96, 0xd9, 0x8a, 0xbd, 0x47, - 0x47, 0x02, 0xac, 0x54, 0x10, 0x56, 0x2b, 0x15, 0xa7, 0x82, 0xc5, 0x5c, - 0xb4, 0x40, 0xb5, 0x51, 0x7e, 0x62, 0x28, 0x34, 0x8b, 0x15, 0x99, 0xe3, - 0x1e, 0xcb, 0x88, 0xab, 0x07, 0x7b, 0xe9, 0x98, 0x27, 0xe0, 0x02, 0xf3, - 0x91, 0x34, 0xdc, 0xa2, 0xe1, 0xf5, 0x5a, 0x54, 0x6b, 0x69, 0x23, 0x43, - 0x6d, 0xd0, 0xa6, 0x95, 0x6b, 0x29, 0x3d, 0x34, 0xa9, 0x29, 0xb2, 0xda, - 0x42, 0xf4, 0x74, 0xf5, 0xa1, 0xa8, 0x0d, 0x2d, 0x07, 0xe4, 0xb4, 0xfa, - 0x8d, 0x09, 0xce, 0x75, 0xb4, 0x1b, 0x93, 0x0c, 0x7d, 0x16, 0x84, 0xe2, - 0xf6, 0xd2, 0x7a, 0x16, 0x95, 0x14, 0x36, 0x8b, 0x73, 0xf7, 0xaa, 0xc3, - 0xde, 0xcc, 0x14, 0xbf, 0xfb, 0x1c, 0xce, 0x4c, 0xe1, 0xf5, 0x5a, 0x38, - 0xd2, 0x8b, 0x7a, 0x59, 0x42, 0x2c, 0x34, 0x69, 0x7b, 0x48, 0xc6, 0x48, - 0xa7, 0x05, 0x46, 0x9f, 0xcd, 0x52, 0x5c, 0x0a, 0x6b, 0xa4, 0x3a, 0x4d, - 0x1d, 0x6a, 0x98, 0xcd, 0x00, 0xe0, 0xb4, 0x9d, 0x6f, 0x52, 0x7c, 0x86, - 0x87, 0x34, 0xa7, 0xd0, 0x69, 0x8d, 0xd9, 0xfb, 0xd5, 0x61, 0xef, 0x67, - 0x25, 0xa6, 0xfc, 0xd6, 0xfc, 0xd3, 0x47, 0x46, 0xdb, 0xbf, 0x56, 0x2e, - 0xf6, 0xe8, 0x39, 0xcd, 0x58, 0xbb, 0x73, 0x5b, 0x7e, 0x6b, 0x96, 0x2a, - 0xe2, 0xae, 0x2a, 0xe5, 0x72, 0xb8, 0xab, 0x8a, 0xb8, 0xab, 0x8a, 0xb8, - 0xab, 0x8a, 0xb8, 0xac, 0x73, 0x8e, 0x73, 0x56, 0x2e, 0xdc, 0xc7, 0x70, - 0xfb, 0xb7, 0x5c, 0xec, 0xc3, 0x9c, 0xd5, 0x87, 0xb5, 0x37, 0x8a, 0x7e, - 0xe1, 0x1f, 0x14, 0x50, 0xe7, 0x35, 0x61, 0xed, 0x4d, 0x4f, 0xdc, 0x23, - 0xe2, 0x8a, 0x6f, 0x39, 0xab, 0x0f, 0x6a, 0x6f, 0x14, 0xfe, 0x3b, 0x84, - 0x7c, 0x51, 0x4d, 0xe7, 0x35, 0x61, 0xed, 0x4d, 0xe2, 0x9f, 0xc7, 0x70, - 0x8b, 0x8a, 0x29, 0xbc, 0xe6, 0xac, 0x3d, 0xe4, 0xd4, 0xfe, 0x3b, 0x84, - 0x7c, 0x51, 0x4d, 0xe7, 0x35, 0x61, 0xed, 0x4d, 0xe2, 0x9f, 0xc7, 0x70, - 0x8f, 0x8a, 0x29, 0xbc, 0xe6, 0xac, 0x3d, 0xa9, 0xa9, 0xdb, 0x84, 0x5c, - 0x51, 0x4c, 0xe7, 0x35, 0x62, 0xed, 0x4d, 0x4e, 0xe8, 0x3b, 0x83, 0x4e, - 0x0d, 0xb5, 0x14, 0xce, 0x77, 0x55, 0x87, 0xb7, 0x36, 0x8b, 0xad, 0xcd, - 0x8a, 0xc7, 0xc1, 0x62, 0xb1, 0x58, 0xac, 0x56, 0x2b, 0x15, 0x8a, 0xc5, - 0x62, 0xb1, 0x58, 0xac, 0x55, 0x0d, 0xb3, 0x34, 0x7c, 0xe6, 0xac, 0x5d, - 0xb9, 0xad, 0x57, 0xab, 0xd5, 0xeb, 0xce, 0x57, 0x85, 0x7d, 0x35, 0x2f, - 0x57, 0xaf, 0x39, 0x5e, 0xaf, 0x57, 0xe7, 0x67, 0x39, 0xab, 0x0f, 0x6e, - 0x62, 0xe7, 0x1b, 0x30, 0x0b, 0xfe, 0xd5, 0xca, 0xe3, 0xe2, 0xae, 0x2b, - 0x15, 0xa4, 0x2e, 0x17, 0xb4, 0xaa, 0x05, 0xa0, 0xda, 0x33, 0x13, 0xd0, - 0xa9, 0x7d, 0xae, 0x2b, 0x15, 0x77, 0xcd, 0x5d, 0xf3, 0x58, 0xf8, 0xe6, - 0x6b, 0x69, 0xb1, 0xd6, 0x0e, 0xa3, 0x99, 0x9c, 0xe6, 0xac, 0x3d, 0xa8, - 0x26, 0xd6, 0x77, 0x05, 0x07, 0xf4, 0xc6, 0x69, 0xb8, 0x23, 0x5a, 0x3f, - 0xea, 0x04, 0xee, 0x29, 0x9c, 0xe6, 0xac, 0x3d, 0xa8, 0x2a, 0x31, 0x04, - 0x8a, 0xa1, 0x15, 0x08, 0xe8, 0x8c, 0x66, 0x9b, 0x96, 0x95, 0x4f, 0x4d, - 0x68, 0x9b, 0xef, 0x84, 0x53, 0x39, 0xcd, 0x58, 0xbb, 0x73, 0x69, 0x53, - 0xa0, 0xfc, 0x7a, 0xd7, 0x9e, 0x17, 0xa4, 0x1e, 0x2b, 0xd2, 0x0f, 0x15, - 0xe9, 0x07, 0x8a, 0xf4, 0x83, 0xc5, 0x69, 0x39, 0xda, 0x5d, 0x4a, 0x9c, - 0xc1, 0xc1, 0x53, 0x1b, 0xf4, 0x7d, 0xd2, 0xbc, 0xf1, 0xe2, 0xbd, 0x20, - 0xf1, 0x5e, 0x91, 0xbe, 0x2b, 0xd2, 0x0f, 0x15, 0xe9, 0x07, 0x8a, 0xa6, - 0x9d, 0x27, 0xe6, 0x67, 0x39, 0xab, 0x17, 0x7b, 0x74, 0x67, 0x39, 0xab, - 0x17, 0x7b, 0x74, 0x8b, 0xad, 0xce, 0x35, 0x5a, 0x7d, 0xea, 0x3e, 0x5b, - 0xa6, 0x49, 0xd6, 0x09, 0xf9, 0xd5, 0x97, 0xdd, 0x20, 0xa2, 0x3a, 0x0d, - 0x7b, 0x76, 0x99, 0x24, 0x77, 0x16, 0xc4, 0xdf, 0xf1, 0x57, 0x28, 0x8f, - 0xa5, 0x85, 0x3f, 0x0c, 0x77, 0x28, 0x21, 0xf6, 0xde, 0x1a, 0xa8, 0xad, - 0x23, 0x70, 0x0e, 0x23, 0xf6, 0xdc, 0x98, 0xff, 0x00, 0xd3, 0x0b, 0x4b, - 0xeb, 0xb3, 0x28, 0x68, 0xf3, 0x85, 0x07, 0x88, 0xdc, 0xa4, 0xca, 0x9c, - 0x35, 0xa7, 0x75, 0x9c, 0x05, 0x79, 0x63, 0x03, 0x5c, 0x6b, 0x37, 0x8a, - 0x73, 0x77, 0x08, 0xb2, 0x78, 0xed, 0x7c, 0x8e, 0xd1, 0x0a, 0x28, 0x23, - 0xf3, 0x23, 0x68, 0x68, 0xd8, 0x3a, 0x46, 0x0f, 0xc3, 0x7e, 0xb8, 0xfa, - 0xee, 0x12, 0x7d, 0xa1, 0x20, 0xd5, 0x66, 0xa4, 0x7c, 0x71, 0x3b, 0x17, - 0xb0, 0x0a, 0x65, 0x66, 0xb3, 0x3f, 0x64, 0x5a, 0x76, 0xd1, 0x64, 0xf1, - 0x0a, 0x5f, 0x23, 0xb4, 0x42, 0x87, 0x26, 0x8f, 0xcd, 0x8c, 0x51, 0xc7, - 0xaf, 0x65, 0xe5, 0x31, 0x37, 0x52, 0x4b, 0x7b, 0x71, 0xdb, 0x3b, 0xed, - 0x19, 0x46, 0xb3, 0xb5, 0x62, 0xe1, 0x89, 0xd9, 0xc9, 0x03, 0xb1, 0xb8, - 0xf4, 0x14, 0xf8, 0xde, 0x34, 0x68, 0x3b, 0x48, 0xb2, 0x66, 0xdc, 0x4d, - 0x2e, 0x77, 0x40, 0x4c, 0x8a, 0x31, 0xa2, 0xc6, 0x0a, 0x00, 0xda, 0x79, - 0x64, 0x63, 0xa9, 0xff, 0x00, 0x43, 0xb4, 0xf2, 0x89, 0x5b, 0x44, 0xf9, - 0x45, 0xb6, 0xe0, 0xdc, 0x36, 0xaf, 0x8a, 0x41, 0x4b, 0x1e, 0x28, 0x29, - 0xc0, 0x8a, 0x63, 0x36, 0xb5, 0xdd, 0x23, 0x64, 0x27, 0x95, 0xbf, 0xc1, - 0xc4, 0x69, 0x27, 0xdb, 0x3d, 0x1b, 0x73, 0x0e, 0x51, 0x18, 0x7b, 0x0f, - 0xc9, 0x39, 0xd9, 0x14, 0xad, 0x91, 0x9e, 0xc3, 0xec, 0x2a, 0xdc, 0x85, - 0xe7, 0x94, 0x82, 0xbf, 0x2f, 0xca, 0x3f, 0xe3, 0x2b, 0xf2, 0xfc, 0xa3, - 0xe0, 0x5e, 0xa1, 0x94, 0x7c, 0x0b, 0xf2, 0xfc, 0xa3, 0xe0, 0x5f, 0x97, - 0xcf, 0xf0, 0x2a, 0x3c, 0x8c, 0xb3, 0xad, 0xee, 0x01, 0x07, 0xfd, 0xa1, - 0x30, 0x7f, 0xfb, 0x51, 0x7e, 0xe9, 0xb1, 0x44, 0xc1, 0x1c, 0x6d, 0xb0, - 0x35, 0xbf, 0xce, 0xbf, 0xff, 0xc4, 0x00, 0x2a, 0x10, 0x00, 0x02, 0x01, - 0x02, 0x03, 0x08, 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x10, 0x20, 0x71, - 0x81, 0x91, 0xa1, 0xb1, 0xf0, 0xc1, 0xd1, 0x30, 0x40, 0xe1, 0xf1, 0x50, - 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x3f, 0x21, 0xff, 0x00, - 0x83, 0x31, 0x4a, 0xcb, 0x43, 0x28, 0x6d, 0x97, 0xf7, 0x3c, 0x0b, 0x98, - 0xe6, 0x27, 0xe0, 0xd1, 0xeb, 0xff, 0x00, 0x03, 0x5f, 0x37, 0xd2, 0x79, - 0x17, 0x11, 0x92, 0x4d, 0x9e, 0x1f, 0xd4, 0xec, 0x1b, 0xbf, 0xc9, 0x62, - 0x9d, 0xe2, 0x6f, 0xa5, 0xeb, 0xf5, 0x91, 0x96, 0x4a, 0x55, 0xdc, 0xa7, - 0x61, 0x73, 0x49, 0x1e, 0x4f, 0x02, 0x27, 0x60, 0x5d, 0xd3, 0x53, 0xdc, - 0xba, 0xb3, 0x7a, 0x93, 0x13, 0x98, 0x9c, 0xcc, 0x94, 0x5c, 0x48, 0xac, - 0x93, 0x91, 0x2b, 0x11, 0xb5, 0x98, 0xd4, 0x84, 0x80, 0x56, 0x4b, 0x10, - 0x09, 0x22, 0xbd, 0x56, 0x84, 0x25, 0x9a, 0x65, 0xf2, 0x22, 0xde, 0x4c, - 0xa2, 0x4b, 0x82, 0xcf, 0xc0, 0xfc, 0x95, 0x3b, 0x56, 0xc9, 0x69, 0xb0, - 0xb6, 0x50, 0x45, 0x88, 0x8d, 0x04, 0x93, 0x23, 0x4d, 0x90, 0x45, 0x05, - 0xd0, 0x5d, 0x4b, 0x0a, 0x42, 0xac, 0x62, 0x41, 0x24, 0xd1, 0x84, 0x37, - 0xbd, 0x7a, 0xfe, 0x37, 0x9b, 0x0a, 0x29, 0xb5, 0x7f, 0xc9, 0x1c, 0xdb, - 0xb7, 0x76, 0x28, 0xfb, 0x32, 0xc8, 0x12, 0x9c, 0x34, 0x50, 0xb7, 0x76, - 0x5d, 0x18, 0x68, 0x25, 0x4f, 0x82, 0x25, 0xdc, 0xb9, 0xd4, 0xf2, 0x35, - 0xc8, 0xc6, 0x9d, 0xc4, 0xa7, 0x89, 0x15, 0x2a, 0xc3, 0x9c, 0x0c, 0x68, - 0x48, 0x1a, 0xda, 0x51, 0x35, 0x81, 0xfc, 0xad, 0x54, 0x7b, 0xad, 0x44, - 0xea, 0x33, 0x92, 0x5f, 0x7b, 0x19, 0x06, 0x43, 0x0a, 0xb9, 0x09, 0x24, - 0xa0, 0x95, 0x86, 0x6d, 0x52, 0xd3, 0x73, 0xac, 0x78, 0x14, 0x0f, 0x11, - 0xcd, 0x03, 0x46, 0x90, 0x4f, 0xc0, 0x50, 0x0a, 0x57, 0x23, 0x40, 0x3c, - 0xe0, 0x95, 0xb5, 0x43, 0x7d, 0x14, 0x98, 0xe9, 0xb1, 0x82, 0xb0, 0x97, - 0x2c, 0x47, 0x7c, 0x84, 0x86, 0x4d, 0x2c, 0x3d, 0x45, 0x1c, 0xe2, 0xfe, - 0x01, 0xee, 0xf6, 0x1e, 0x22, 0x81, 0x21, 0x61, 0x35, 0x12, 0xc1, 0xa8, - 0xcb, 0x53, 0xd4, 0x84, 0x13, 0x9d, 0xd1, 0x03, 0x43, 0x52, 0x49, 0xe3, - 0xe6, 0x30, 0x31, 0xaa, 0x63, 0x6b, 0x43, 0x45, 0xe2, 0x42, 0x1b, 0xd2, - 0x6b, 0x54, 0xc3, 0xee, 0xa8, 0x6a, 0xcb, 0x53, 0xe0, 0x74, 0x28, 0x7c, - 0x6a, 0x20, 0x56, 0xe0, 0x25, 0xd1, 0xb9, 0x7c, 0x8e, 0x93, 0x51, 0xb8, - 0xbc, 0x98, 0xf7, 0xa8, 0x17, 0x34, 0x8a, 0xe1, 0x6e, 0x78, 0x17, 0x66, - 0x87, 0x27, 0x47, 0x62, 0x71, 0x0c, 0xa4, 0xa2, 0xb4, 0x70, 0xaa, 0x1c, - 0x54, 0x52, 0x4d, 0x73, 0xfc, 0x2d, 0xd7, 0xa5, 0xa7, 0x82, 0xd8, 0x7e, - 0xa0, 0xf5, 0x24, 0x35, 0x39, 0xc3, 0xe4, 0x5e, 0x6d, 0xe4, 0x50, 0x4d, - 0x28, 0x1d, 0x78, 0x32, 0x51, 0x77, 0x5a, 0x9c, 0x26, 0x11, 0x1a, 0x51, - 0xe5, 0xae, 0x88, 0xf9, 0x21, 0x52, 0x66, 0xc2, 0x67, 0xec, 0x86, 0x20, - 0x96, 0x08, 0x37, 0x32, 0x62, 0xdb, 0x14, 0x45, 0x16, 0x92, 0x93, 0xc2, - 0x84, 0x8d, 0x9f, 0x9a, 0x40, 0x95, 0x35, 0x3a, 0xb2, 0x0a, 0x45, 0xcb, - 0x69, 0x3d, 0x59, 0x2d, 0x42, 0x4d, 0x46, 0x39, 0xa2, 0x7a, 0x6c, 0x7b, - 0xf8, 0x6e, 0xd9, 0x7a, 0xa2, 0x14, 0x78, 0x6b, 0x15, 0xa0, 0xa4, 0x81, - 0x35, 0x95, 0xc7, 0x49, 0x35, 0xd5, 0x0d, 0xe6, 0x5c, 0x68, 0x46, 0xb0, - 0xd6, 0x38, 0xd5, 0xb2, 0x5e, 0x45, 0x4c, 0xe7, 0x22, 0x18, 0xdb, 0xc0, - 0x9c, 0x54, 0x64, 0x6b, 0x25, 0x6f, 0x52, 0x47, 0x5b, 0x07, 0xc5, 0x9c, - 0x6b, 0xaa, 0xd8, 0x46, 0xb9, 0xc9, 0x74, 0x5b, 0xbe, 0x96, 0x8b, 0x61, - 0x28, 0xcf, 0x04, 0xe8, 0xb8, 0xe6, 0xee, 0xfb, 0x09, 0x45, 0x89, 0xd3, - 0x42, 0x74, 0x95, 0x51, 0x2d, 0x08, 0x6d, 0x58, 0x73, 0x3f, 0x62, 0x54, - 0x8b, 0xd0, 0x4a, 0x78, 0xe8, 0x51, 0x4a, 0x70, 0x2e, 0x45, 0x06, 0xb9, - 0x6c, 0xfa, 0xac, 0x96, 0xef, 0xb7, 0xa2, 0x26, 0x82, 0xea, 0xe0, 0x47, - 0x18, 0x83, 0x13, 0x1e, 0x43, 0x6c, 0x48, 0x83, 0x56, 0x2c, 0xc7, 0x4d, - 0x89, 0x21, 0x2d, 0xad, 0xc5, 0x36, 0xc3, 0x1b, 0xc1, 0x84, 0xa2, 0x8b, - 0x17, 0x68, 0x7b, 0xbd, 0x37, 0x7d, 0xfe, 0x04, 0x94, 0xa2, 0xa4, 0xd2, - 0x5e, 0x7f, 0xa0, 0xb9, 0x6c, 0x15, 0xa3, 0x16, 0x4d, 0x09, 0xef, 0xe5, - 0xbb, 0xee, 0xf0, 0xd9, 0xdd, 0xf7, 0xe8, 0x30, 0xb8, 0xba, 0xb3, 0xdf, - 0xe9, 0xbb, 0xea, 0xf0, 0x3b, 0xe3, 0xbe, 0xfd, 0x0a, 0x05, 0xdd, 0x9e, - 0xaf, 0x4d, 0xdf, 0x5f, 0x86, 0xc8, 0x6e, 0x61, 0xfa, 0x09, 0x23, 0x6e, - 0xab, 0x3d, 0x1e, 0x9b, 0xb6, 0x1e, 0xed, 0xb2, 0x3b, 0xcf, 0x9f, 0xd1, - 0x1e, 0xed, 0x9e, 0xbf, 0x4d, 0xdf, 0x5b, 0x81, 0xdc, 0x8b, 0x1c, 0x4f, - 0xe8, 0x93, 0x75, 0xcf, 0x4f, 0xa6, 0xef, 0xab, 0xc0, 0x52, 0x61, 0xbf, - 0x44, 0x5d, 0xd9, 0xeb, 0xf4, 0xdd, 0xec, 0x3e, 0x26, 0x4b, 0x13, 0xbd, - 0xfd, 0x05, 0x92, 0xf7, 0xec, 0xf5, 0x7a, 0x6e, 0xfb, 0xfc, 0x04, 0xb2, - 0xed, 0x2a, 0x49, 0xca, 0xe4, 0xa7, 0xfa, 0x15, 0x9e, 0x61, 0x89, 0x71, - 0x66, 0x7b, 0xed, 0x37, 0x6a, 0xf4, 0xe1, 0xb1, 0x08, 0xdc, 0x93, 0x89, - 0x8b, 0x9e, 0x88, 0xfe, 0x62, 0x45, 0x4b, 0x8e, 0x81, 0x31, 0x68, 0xb4, - 0xc4, 0xbb, 0x89, 0x71, 0x48, 0x6e, 0x47, 0x82, 0x13, 0x8a, 0xb1, 0x07, - 0x4c, 0xb2, 0xe6, 0x94, 0xbd, 0x86, 0xe6, 0xb1, 0x4d, 0xd3, 0x0e, 0xe3, - 0x1e, 0x87, 0x4d, 0xdf, 0x6f, 0x80, 0xa3, 0x52, 0xa8, 0x1e, 0x0a, 0x8d, - 0x78, 0x4b, 0xb4, 0x8b, 0x08, 0x9d, 0x9c, 0x94, 0xa2, 0x40, 0x9f, 0xf4, - 0x21, 0x38, 0xd2, 0x06, 0x29, 0x38, 0x1a, 0x51, 0xcf, 0x30, 0x2b, 0x5a, - 0x4b, 0x14, 0x9a, 0x01, 0x34, 0x93, 0x47, 0xb3, 0xeb, 0xf4, 0xdd, 0xf6, - 0x78, 0x15, 0xf1, 0x27, 0xb0, 0xaa, 0x10, 0x56, 0xaa, 0x61, 0xa6, 0xad, - 0xa3, 0x89, 0x48, 0x09, 0xd3, 0x81, 0xa8, 0xf2, 0xa5, 0xc4, 0x53, 0x91, - 0x3c, 0x40, 0x8a, 0x9d, 0x09, 0x3b, 0x34, 0xc9, 0x1d, 0x1b, 0x04, 0x90, - 0x52, 0x21, 0x31, 0x68, 0x22, 0x76, 0xea, 0x16, 0x70, 0x6b, 0xc6, 0x98, - 0x56, 0xb3, 0x9e, 0x22, 0x54, 0xc9, 0xf5, 0x2f, 0x80, 0x49, 0x36, 0x8f, - 0x7f, 0xa6, 0xee, 0x6b, 0xdc, 0x15, 0x62, 0xe8, 0x75, 0x13, 0xe4, 0xc0, - 0x69, 0x89, 0xa4, 0x12, 0x24, 0xda, 0xf9, 0x27, 0xfc, 0x1f, 0x2a, 0xff, - 0x00, 0x03, 0x62, 0x1a, 0x68, 0xca, 0x61, 0xf2, 0x87, 0xfe, 0xc3, 0x99, - 0x26, 0x35, 0x65, 0x5e, 0x77, 0x33, 0x14, 0x58, 0xdf, 0x9d, 0x3b, 0xe1, - 0xe8, 0xf4, 0xdd, 0x54, 0xfd, 0xb8, 0x08, 0x9a, 0x75, 0x1a, 0x07, 0xba, - 0x16, 0x4e, 0x76, 0x04, 0x51, 0xa9, 0x53, 0xc0, 0x84, 0xb1, 0xa6, 0xa5, - 0x12, 0x93, 0xa8, 0xaa, 0x77, 0x68, 0x7b, 0x04, 0xaa, 0xf8, 0xc1, 0x6a, - 0x90, 0x25, 0x5a, 0xa1, 0xa2, 0x62, 0xe2, 0x39, 0x55, 0x22, 0xcb, 0xa3, - 0xdb, 0x95, 0x58, 0x70, 0x1a, 0x28, 0x48, 0x85, 0xd7, 0x98, 0x83, 0x86, - 0xb5, 0x3d, 0x6e, 0x9b, 0xbd, 0x99, 0x62, 0x4c, 0xc7, 0x8d, 0x7b, 0x50, - 0x5f, 0xde, 0xd9, 0x2a, 0x71, 0xb3, 0x69, 0xdb, 0x62, 0x55, 0x95, 0x4e, - 0xc1, 0xcd, 0x7b, 0xb2, 0x31, 0x89, 0x1c, 0xc4, 0xe6, 0x98, 0xc3, 0x08, - 0xf9, 0x1c, 0xf6, 0x79, 0x2a, 0xdb, 0x12, 0x67, 0x14, 0xb7, 0x14, 0x85, - 0x71, 0x5f, 0x04, 0x5c, 0x7a, 0x7d, 0x37, 0x7b, 0x2f, 0x80, 0xa3, 0x94, - 0xa8, 0xc6, 0xda, 0xc4, 0x96, 0x22, 0x91, 0xb2, 0x2a, 0x98, 0x07, 0xb2, - 0x3a, 0x1c, 0x71, 0xd0, 0x44, 0xd8, 0xa2, 0x4c, 0x2a, 0x49, 0x8f, 0x21, - 0xd6, 0xcf, 0x67, 0xd1, 0xe9, 0xba, 0xf6, 0xe8, 0xa4, 0x78, 0x22, 0xd3, - 0x51, 0xa4, 0x68, 0x28, 0x87, 0x3c, 0x47, 0x51, 0xd3, 0x01, 0x71, 0xa1, - 0x05, 0x93, 0x2c, 0xb6, 0xdd, 0x99, 0xc0, 0xad, 0x49, 0x8a, 0x17, 0x98, - 0x2b, 0x3d, 0xaa, 0x4c, 0x7c, 0x6e, 0xe8, 0x8b, 0x75, 0x37, 0xd1, 0x7d, - 0xc4, 0x8f, 0x3b, 0x30, 0xb1, 0xc4, 0x5b, 0x99, 0x22, 0xa0, 0xfa, 0x09, - 0xd4, 0x6d, 0x90, 0x1d, 0x6a, 0x28, 0x81, 0x31, 0x68, 0x60, 0x5c, 0x31, - 0x76, 0xa1, 0xf5, 0x57, 0xdd, 0x9a, 0xc4, 0xf9, 0xb8, 0xf9, 0x26, 0xbb, - 0xc1, 0xb0, 0x92, 0x1b, 0x9d, 0x0c, 0x6d, 0xcc, 0xbb, 0xd9, 0x1c, 0x54, - 0x2c, 0xfe, 0xb6, 0x61, 0xc3, 0x63, 0x43, 0x02, 0xa2, 0xba, 0xd9, 0x74, - 0x17, 0x54, 0x35, 0xda, 0x80, 0x35, 0xac, 0x27, 0x76, 0x88, 0x4b, 0x8d, - 0xc6, 0x28, 0x41, 0x62, 0xa7, 0xb1, 0x66, 0xdc, 0x88, 0x9b, 0x0e, 0xfc, - 0x0c, 0x1a, 0x33, 0x28, 0x9c, 0x78, 0x1e, 0x87, 0x0b, 0x19, 0x98, 0x93, - 0x13, 0x02, 0x97, 0x31, 0x61, 0x94, 0x8e, 0xb9, 0xec, 0x47, 0x7f, 0x74, - 0xc4, 0x29, 0x28, 0x95, 0x16, 0xed, 0xc7, 0x46, 0xc2, 0x07, 0x0b, 0xf6, - 0x32, 0x2c, 0x4a, 0x85, 0xc4, 0x50, 0xf0, 0x5e, 0x30, 0xe0, 0x4c, 0x64, - 0x5d, 0xd4, 0x86, 0xc6, 0x87, 0x45, 0xa1, 0xec, 0x0e, 0x86, 0x29, 0xd5, - 0x09, 0xaa, 0xdc, 0x74, 0x28, 0xec, 0xb0, 0x71, 0xb2, 0xee, 0xf7, 0xe6, - 0x78, 0xac, 0x2e, 0x57, 0x6f, 0x1b, 0x09, 0x92, 0x6a, 0xd4, 0x73, 0x3b, - 0x18, 0x08, 0xe1, 0xdc, 0x8e, 0xa5, 0x8b, 0xcc, 0x92, 0xcc, 0x4d, 0x60, - 0xa0, 0x92, 0x76, 0x35, 0xca, 0x00, 0x40, 0xe9, 0xbc, 0xcf, 0x4d, 0xfa, - 0xce, 0x23, 0x96, 0xfb, 0xaa, 0xe6, 0x60, 0x0a, 0x9a, 0x70, 0xd9, 0x53, - 0x71, 0xd2, 0x0c, 0xcf, 0x91, 0xd1, 0x50, 0x77, 0x3c, 0x6c, 0x46, 0xea, - 0x37, 0x29, 0x29, 0xa8, 0xb0, 0xac, 0x89, 0xa2, 0x73, 0xe8, 0x31, 0x60, - 0xc2, 0x02, 0x1e, 0x8e, 0x48, 0x2f, 0xc0, 0xd8, 0x16, 0xcb, 0xad, 0x9c, - 0x9f, 0x91, 0xcc, 0x4c, 0x75, 0xd4, 0x43, 0x82, 0xd6, 0x20, 0xa7, 0xf8, - 0x5c, 0xf0, 0x62, 0x45, 0x47, 0x56, 0x4d, 0x4a, 0x0c, 0x63, 0x59, 0xd5, - 0xdf, 0xc0, 0xa9, 0xcf, 0xf0, 0xa1, 0x61, 0xcc, 0x19, 0xf3, 0x22, 0x71, - 0x96, 0x52, 0x2c, 0x45, 0x30, 0x21, 0xcb, 0x58, 0x0e, 0xe9, 0x98, 0x92, - 0x12, 0xea, 0x43, 0x91, 0xba, 0xe8, 0x58, 0xb6, 0x34, 0x26, 0x2a, 0x4d, - 0x08, 0xc9, 0x62, 0x3e, 0x44, 0x97, 0x4b, 0x2c, 0xd8, 0xf3, 0x3f, 0xc5, - 0x9c, 0x82, 0x85, 0x6c, 0x0e, 0x77, 0x1e, 0x84, 0x53, 0x41, 0xd5, 0x96, - 0xd0, 0x98, 0x44, 0xcd, 0x6c, 0x64, 0xdb, 0xcc, 0x81, 0xdb, 0x21, 0xcc, - 0x45, 0xd5, 0x3c, 0x3e, 0x45, 0xba, 0xfe, 0x3b, 0xb8, 0xac, 0xf4, 0x86, - 0x3a, 0x8b, 0x31, 0x34, 0xf0, 0x78, 0xed, 0x18, 0x1c, 0x88, 0xec, 0x5a, - 0x29, 0x23, 0xaa, 0xc8, 0xd4, 0x50, 0xa4, 0xbe, 0x3b, 0x09, 0xc5, 0x5a, - 0x25, 0xdd, 0x8a, 0x42, 0x95, 0x7c, 0x12, 0xfc, 0x91, 0x75, 0xb4, 0x83, - 0x07, 0xe8, 0x86, 0x70, 0x3b, 0xa2, 0xe2, 0x52, 0xcf, 0x04, 0xff, 0x00, - 0x82, 0x63, 0x26, 0x85, 0xb0, 0x1a, 0x83, 0xa2, 0x2c, 0x51, 0x28, 0x5d, - 0x84, 0xe7, 0x7e, 0x9f, 0x96, 0x51, 0x92, 0xad, 0x06, 0xe7, 0x67, 0x23, - 0x9d, 0xb1, 0xe4, 0x13, 0x13, 0x56, 0x26, 0x84, 0xf5, 0x15, 0xaa, 0x26, - 0x30, 0xcf, 0x6a, 0x42, 0xb6, 0x02, 0xfc, 0x89, 0x24, 0xa1, 0x51, 0x7e, - 0x6c, 0xdc, 0x09, 0x76, 0xcd, 0x3c, 0x06, 0x07, 0x95, 0x4d, 0x8b, 0x49, - 0xb0, 0xee, 0x3d, 0x39, 0xa3, 0x2f, 0xfc, 0x96, 0x1f, 0xd8, 0x47, 0x34, - 0x77, 0xa2, 0x9f, 0x13, 0x8c, 0x8e, 0x2e, 0x7b, 0x24, 0x26, 0x22, 0x4f, - 0x01, 0xae, 0xe2, 0x15, 0xc2, 0x73, 0x5a, 0x1f, 0x1f, 0xa0, 0xb3, 0x53, - 0x09, 0x09, 0x2f, 0xfb, 0x5f, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, - 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x3e, 0xdb, 0xc0, 0x00, - 0x00, 0x00, 0x01, 0x0e, 0x8d, 0xff, 0x00, 0xdb, 0x6f, 0xf9, 0x98, 0x00, - 0x00, 0x17, 0xef, 0xfe, 0xdb, 0xfd, 0xb7, 0xdf, 0x20, 0x00, 0x0b, 0x7e, - 0xbe, 0xfb, 0xfd, 0xff, 0x00, 0xdb, 0x7d, 0x00, 0x07, 0x3e, 0xf7, 0xc4, - 0x9e, 0x4f, 0xb8, 0x6d, 0x90, 0x00, 0xed, 0xda, 0x6c, 0x68, 0xec, 0x08, - 0x43, 0xd2, 0x00, 0x0c, 0xb6, 0xff, 0x00, 0xfd, 0x2b, 0x70, 0x9b, 0xfe, - 0x40, 0x03, 0xde, 0x7f, 0x6d, 0xf7, 0xff, 0x00, 0xef, 0xf7, 0x68, 0x00, - 0x7b, 0xdf, 0xef, 0xb6, 0xfb, 0x7d, 0xff, 0x00, 0xd9, 0x00, 0x0f, 0x50, - 0x10, 0x01, 0xb0, 0x40, 0x01, 0x3b, 0x20, 0x01, 0xcf, 0x49, 0x24, 0x92, - 0x49, 0x24, 0x93, 0xb4, 0x00, 0x3b, 0x69, 0x24, 0x92, 0x49, 0x24, 0x92, - 0xa6, 0x80, 0x07, 0x65, 0x24, 0x92, 0x49, 0x24, 0x92, 0x44, 0xb0, 0x00, - 0xee, 0xa4, 0x92, 0x49, 0x24, 0x92, 0x4a, 0xde, 0x00, 0x1d, 0xe4, 0x92, - 0x49, 0x24, 0x92, 0x49, 0x5a, 0x80, 0x01, 0xfa, 0x92, 0x49, 0x24, 0x92, - 0x49, 0x2a, 0x60, 0x00, 0x36, 0x52, 0x49, 0x24, 0x92, 0x49, 0x25, 0x6d, - 0x00, 0x07, 0xea, 0x49, 0x24, 0x92, 0x49, 0x24, 0x89, 0xc0, 0x00, 0xff, - 0x00, 0x49, 0x24, 0x92, 0x49, 0x24, 0x93, 0xbc, 0x00, 0x19, 0xf0, 0x49, - 0x20, 0x10, 0x48, 0x20, 0xef, 0x80, 0x07, 0x7d, 0xb7, 0x6f, 0xff, 0x00, - 0x08, 0x04, 0xfd, 0xb0, 0x00, 0xed, 0xc9, 0x00, 0x37, 0xc5, 0x00, 0x13, - 0xde, 0x00, 0x1c, 0xcf, 0xfb, 0xfc, 0xb7, 0x93, 0x7f, 0x9b, 0x80, 0x01, - 0x52, 0xdf, 0x7e, 0x1f, 0xcf, 0xef, 0xb6, 0x78, 0x00, 0x22, 0x9b, 0x49, - 0x8e, 0xfc, 0x6d, 0xf7, 0x5f, 0x00, 0x0c, 0xdf, 0x7f, 0xf6, 0xdf, 0x6f, - 0xff, 0x00, 0xdb, 0xc0, 0x01, 0x9f, 0x6f, 0xbf, 0xdf, 0xef, 0x9e, 0xdf, - 0x5c, 0x00, 0x3b, 0x7f, 0xb7, 0xff, 0x00, 0x6f, 0xfe, 0xff, 0x00, 0x6f, - 0x00, 0x05, 0xff, 0x00, 0xbe, 0xdf, 0x6f, 0xf7, 0xff, 0x00, 0x7d, 0x60, - 0x00, 0xd1, 0xbe, 0xff, 0x00, 0x6f, 0xbf, 0xdb, 0xef, 0xe0, 0x00, 0x13, - 0xf6, 0xdb, 0xed, 0xff, 0x00, 0xdf, 0xed, 0xb8, 0x00, 0x00, 0x4f, 0xdf, - 0xef, 0xbe, 0xff, 0x00, 0xfd, 0xfe, 0x80, 0x00, 0x02, 0x5b, 0xed, 0xfe, - 0xff, 0x00, 0x6d, 0xbf, 0x80, 0x00, 0x00, 0x27, 0x7d, 0xb6, 0xdb, 0xff, - 0x00, 0xf6, 0xe0, 0x00, 0x00, 0x01, 0xad, 0xff, 0x00, 0xdb, 0xff, 0x00, - 0xbe, 0xf4, 0x00, 0x00, 0x00, 0x13, 0xf7, 0xdb, 0x6d, 0xff, 0x00, 0xd6, - 0x00, 0x00, 0x00, 0x03, 0x56, 0xdf, 0xef, 0xff, 0x00, 0xde, 0x80, 0x00, - 0x00, 0x00, 0x0c, 0xfb, 0xff, 0x00, 0xbe, 0xde, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x1e, 0xff, 0x00, 0xbe, 0xdb, 0x90, 0x00, 0x00, 0x00, 0x00, 0x06, - 0x01, 0x3c, 0x94, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7f, 0xff, 0xc4, 0x00, 0x1f, 0x11, 0x00, 0x02, 0x03, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x11, 0x00, 0x10, 0x20, 0x40, 0x31, 0x30, 0x41, 0x50, 0x60, 0x70, 0xff, - 0xda, 0x00, 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, 0x10, 0xfe, 0x1b, 0x8e, - 0x38, 0xe3, 0xfb, 0xb8, 0xe3, 0xfa, 0x38, 0xe3, 0xf8, 0x13, 0xc4, 0x34, - 0x7a, 0x4e, 0xd4, 0x51, 0x52, 0x8a, 0x95, 0x2c, 0x0c, 0x9d, 0x8b, 0xfd, - 0xaf, 0x61, 0x84, 0xd9, 0xf2, 0xc6, 0x4f, 0xc7, 0xf6, 0x7e, 0xc7, 0x1c, - 0x31, 0xc7, 0x3f, 0x30, 0x32, 0x79, 0x06, 0x4f, 0x20, 0xc9, 0xb5, 0x14, - 0x51, 0x45, 0x14, 0x51, 0x45, 0x14, 0x51, 0x45, 0x14, 0x56, 0x32, 0x68, - 0x70, 0x1a, 0x19, 0x34, 0x38, 0x0f, 0x94, 0x32, 0x68, 0x70, 0x1f, 0x28, - 0x64, 0xd0, 0xe0, 0x3e, 0x50, 0xc9, 0xe2, 0x3e, 0x6c, 0xd0, 0xe0, 0x3e, - 0x6c, 0xd0, 0xe0, 0x3e, 0x50, 0xc9, 0xa1, 0xc0, 0x7c, 0xd9, 0xa1, 0xc0, - 0x68, 0x64, 0xdb, 0xb7, 0x1d, 0x38, 0xf2, 0xe3, 0x8e, 0xc6, 0x4f, 0x02, - 0xc0, 0xc9, 0xb7, 0x1c, 0x71, 0xc7, 0xf0, 0x71, 0xc7, 0x63, 0x26, 0x8f, - 0x39, 0xf8, 0x0f, 0xa0, 0xc9, 0xa1, 0x1c, 0x76, 0xe3, 0xc3, 0x8e, 0x38, - 0xe3, 0x8e, 0xc6, 0x4f, 0x49, 0xe4, 0x19, 0x3d, 0x27, 0xab, 0xf3, 0xfa, - 0x47, 0xa4, 0xf5, 0x79, 0xd2, 0x7f, 0xe0, 0x8b, 0xfc, 0x07, 0xff, 0xc4, - 0x00, 0x20, 0x11, 0x00, 0x03, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x20, 0x10, - 0x21, 0x31, 0x40, 0x41, 0x30, 0x51, 0x50, 0x71, 0xff, 0xda, 0x00, 0x08, - 0x01, 0x02, 0x01, 0x01, 0x3f, 0x10, 0xfe, 0x14, 0x64, 0x64, 0x64, 0x64, - 0x64, 0x64, 0x7f, 0x68, 0x44, 0x45, 0xf4, 0x88, 0x88, 0x6b, 0xe0, 0x94, - 0xe9, 0x35, 0x92, 0x55, 0xe1, 0xbf, 0x41, 0xed, 0x91, 0x68, 0xca, 0x7b, - 0xa5, 0x29, 0x4b, 0xe9, 0x4a, 0x2d, 0xcb, 0xa5, 0x16, 0xfa, 0xbc, 0x7d, - 0x6b, 0x08, 0x43, 0xc1, 0x93, 0x49, 0xa1, 0xc4, 0x24, 0x25, 0x47, 0xb3, - 0xd8, 0xf4, 0x5c, 0xe8, 0xc7, 0x8f, 0xa1, 0x68, 0xbd, 0xd1, 0x9e, 0x6b, - 0x36, 0x3c, 0x84, 0x64, 0x17, 0x3b, 0x8d, 0x7e, 0x09, 0x43, 0xda, 0x2d, - 0x9e, 0xaf, 0x1f, 0x42, 0xd2, 0x17, 0xee, 0xc7, 0x8f, 0xa1, 0x74, 0xde, - 0x3e, 0x84, 0x52, 0x95, 0x15, 0x14, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, - 0xa8, 0xa8, 0xa8, 0xa5, 0xd5, 0xe3, 0xe8, 0x43, 0xe8, 0x7e, 0x06, 0x3c, - 0x7d, 0x08, 0x7d, 0x05, 0xc8, 0xc7, 0x8f, 0xa1, 0x0f, 0x9e, 0x82, 0xe4, - 0x63, 0xc7, 0xd0, 0x87, 0xcf, 0x43, 0x90, 0xc7, 0x8f, 0xa1, 0x74, 0x79, - 0x0c, 0x78, 0xfa, 0x10, 0xf9, 0xe8, 0x72, 0x18, 0xf1, 0xf4, 0x21, 0xf3, - 0xd0, 0xe4, 0x31, 0xe3, 0xe8, 0x43, 0xe7, 0xa1, 0xc8, 0x63, 0xc7, 0xd0, - 0x84, 0x8f, 0xa1, 0xc8, 0x63, 0xc7, 0xd0, 0xb4, 0x88, 0x88, 0x88, 0x88, - 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xf9, - 0xa3, 0xc7, 0xd6, 0xb4, 0xa5, 0x29, 0x71, 0xa5, 0x29, 0x4b, 0x83, 0xc7, - 0xd6, 0x92, 0x91, 0x11, 0x11, 0x11, 0x11, 0x12, 0x0f, 0x6d, 0x19, 0x08, - 0x88, 0x88, 0x88, 0x88, 0xb4, 0x63, 0xc7, 0xd0, 0x85, 0x93, 0x1f, 0x9a, - 0x78, 0xf3, 0xf4, 0x63, 0xc7, 0xd0, 0x85, 0x93, 0x1e, 0x9e, 0x32, 0xe5, - 0xea, 0x18, 0xf1, 0xf4, 0x21, 0xaa, 0x46, 0x46, 0x46, 0x46, 0x46, 0x25, - 0xfb, 0xaa, 0x70, 0x6b, 0xf0, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x5b, 0x68, - 0xf1, 0xf5, 0xd4, 0x78, 0xfa, 0xfb, 0x73, 0x93, 0xc7, 0x9f, 0x51, 0xf3, - 0x8f, 0x2e, 0xa3, 0xc5, 0x72, 0x3e, 0x7b, 0x2f, 0x74, 0x9f, 0x49, 0xe7, - 0xb9, 0x4e, 0x93, 0xcd, 0xa3, 0x1f, 0x3d, 0x9e, 0x57, 0x41, 0xfc, 0x53, - 0x8c, 0x6a, 0x76, 0x56, 0xeb, 0xec, 0xfe, 0x69, 0xc6, 0x3e, 0xca, 0x75, - 0x4f, 0xa3, 0xfb, 0x73, 0xbf, 0xc9, 0xfd, 0xf8, 0x29, 0x72, 0xa5, 0xfe, - 0xdf, 0xff, 0xc4, 0x00, 0x29, 0x10, 0x01, 0x00, 0x02, 0x02, 0x01, 0x03, - 0x03, 0x04, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x71, 0x81, 0x91, 0xa1, 0x20, 0xb1, - 0xc1, 0xf0, 0x30, 0x40, 0xd1, 0xe1, 0xf1, 0x50, 0xff, 0xda, 0x00, 0x08, - 0x01, 0x01, 0x00, 0x01, 0x3f, 0x10, 0xff, 0x00, 0xe0, 0x94, 0x81, 0xd9, - 0xa1, 0xf7, 0x63, 0xf3, 0x3d, 0xab, 0x0f, 0x48, 0xb8, 0xb3, 0x5f, 0xbe, - 0xae, 0x5b, 0x88, 0xed, 0x5e, 0xe4, 0x0c, 0x7c, 0x51, 0x94, 0x01, 0xbe, - 0x42, 0x4d, 0x16, 0xc6, 0xbf, 0xde, 0x13, 0x4d, 0x00, 0xa4, 0xbe, 0xf0, - 0x28, 0x94, 0xe9, 0xb1, 0xf6, 0x7f, 0x91, 0x40, 0xab, 0x41, 0xb5, 0x8f, - 0x70, 0x50, 0x47, 0x44, 0x98, 0xf6, 0x41, 0x13, 0x1c, 0x34, 0x0f, 0x54, - 0x28, 0xd9, 0x28, 0x05, 0x0f, 0x52, 0x49, 0x5d, 0xcd, 0x40, 0x3e, 0x86, - 0x91, 0xc5, 0x41, 0x9b, 0x4b, 0xf7, 0x85, 0xa6, 0xdc, 0x6d, 0xeb, 0x1b, - 0x7a, 0x79, 0xa9, 0x91, 0x34, 0x40, 0x76, 0x77, 0xb9, 0x41, 0x62, 0x1f, - 0x78, 0x52, 0x54, 0xae, 0x93, 0x06, 0x59, 0xef, 0x32, 0xa3, 0xb4, 0x8a, - 0xf9, 0x86, 0xea, 0x30, 0x49, 0xe0, 0xb9, 0xcb, 0xea, 0x8c, 0xbe, 0x54, - 0x5f, 0x7b, 0x80, 0x84, 0x6d, 0x1d, 0xde, 0xef, 0xe0, 0x87, 0x76, 0x56, - 0x68, 0x63, 0x04, 0xdb, 0x2d, 0x03, 0x4b, 0xc1, 0xfc, 0x08, 0x40, 0x1a, - 0x76, 0x92, 0xc7, 0xa7, 0x1b, 0xf1, 0x15, 0x0d, 0xda, 0xfc, 0x4b, 0xea, - 0x81, 0xed, 0x5a, 0x9b, 0xd1, 0x4b, 0xc9, 0x5b, 0x8b, 0x12, 0xee, 0xb9, - 0xa8, 0x0b, 0xa5, 0xeb, 0x84, 0x97, 0x74, 0x57, 0xaa, 0x20, 0x1a, 0xe8, - 0x6e, 0xfd, 0x20, 0x1a, 0x44, 0xf9, 0x80, 0x27, 0x7e, 0x42, 0x34, 0x57, - 0x03, 0xf1, 0x50, 0xbd, 0x86, 0xd7, 0x16, 0x4c, 0x94, 0x97, 0xea, 0xb8, - 0x8b, 0x09, 0x69, 0xd2, 0x62, 0xd1, 0x76, 0xd6, 0x1f, 0xbc, 0xf0, 0x0e, - 0x2f, 0x8c, 0xc5, 0xa2, 0xab, 0x58, 0xea, 0xc1, 0x8c, 0x80, 0x89, 0x67, - 0x88, 0xda, 0x76, 0x56, 0x6e, 0x17, 0x9e, 0xe7, 0xc7, 0x4a, 0xfa, 0x70, - 0xdc, 0xdc, 0xd2, 0x13, 0x69, 0xd1, 0x02, 0xbe, 0xa1, 0x10, 0x5b, 0x52, - 0xe4, 0x81, 0x59, 0x73, 0x58, 0x08, 0x01, 0xb3, 0xb4, 0x5e, 0xae, 0x65, - 0x21, 0x3a, 0xff, 0x00, 0x14, 0x6d, 0x9f, 0x00, 0x81, 0xcc, 0xb0, 0xd6, - 0xfa, 0x8e, 0x65, 0x09, 0x42, 0xaf, 0x87, 0xe6, 0x58, 0x11, 0x21, 0xe9, - 0x52, 0x9c, 0xaa, 0xfb, 0xf7, 0x88, 0x21, 0xd1, 0x02, 0xa9, 0xbb, 0x1c, - 0x31, 0x44, 0xbd, 0x8f, 0xdd, 0x41, 0x6c, 0x58, 0xf0, 0xa9, 0x40, 0x5d, - 0xfc, 0x30, 0x17, 0x0a, 0x13, 0x2d, 0xbc, 0x4b, 0xdc, 0x45, 0xef, 0x43, - 0x2d, 0x0e, 0x6c, 0x8a, 0x90, 0xac, 0x76, 0xc9, 0x08, 0x69, 0x37, 0x68, - 0x6e, 0xc7, 0x86, 0x5b, 0x15, 0x53, 0x0f, 0xd0, 0xb1, 0x7d, 0x7e, 0x9a, - 0x66, 0x04, 0x5e, 0x2e, 0x97, 0xdd, 0x05, 0xee, 0x9b, 0x77, 0x2c, 0x25, - 0x01, 0xab, 0x0a, 0x71, 0xe2, 0x2f, 0x01, 0xd6, 0x8d, 0xa5, 0x43, 0x3e, - 0x83, 0x0e, 0x0b, 0x48, 0x18, 0x03, 0xa6, 0x22, 0x4d, 0x65, 0xcc, 0x16, - 0x4b, 0xe4, 0x45, 0x00, 0x15, 0x6a, 0xb2, 0xa7, 0xa4, 0x4c, 0x7d, 0x48, - 0x06, 0xcf, 0x58, 0x57, 0xa2, 0x9b, 0xaa, 0xdc, 0xa0, 0xb1, 0x6e, 0xaa, - 0xb1, 0xf7, 0x82, 0xb2, 0x30, 0xd8, 0xb4, 0x16, 0xbe, 0xf0, 0x6f, 0x6a, - 0xa6, 0x65, 0xdb, 0xbc, 0x05, 0x47, 0x47, 0x5a, 0x65, 0x52, 0x2e, 0x78, - 0x05, 0x89, 0xd8, 0x03, 0x81, 0xaf, 0xf2, 0x57, 0xa9, 0x47, 0x3a, 0xd2, - 0x03, 0x2a, 0x5b, 0x07, 0x0e, 0x79, 0x85, 0x56, 0xa9, 0xb4, 0x72, 0xf4, - 0x10, 0x59, 0x56, 0xe0, 0xbb, 0xff, 0x00, 0xb1, 0x1b, 0x70, 0xaf, 0x39, - 0x6e, 0x38, 0x98, 0x31, 0xd0, 0x68, 0xfb, 0xbf, 0x4e, 0x61, 0x4a, 0x0b, - 0x88, 0x57, 0xa0, 0x2f, 0xae, 0x02, 0x10, 0x00, 0xd1, 0x4e, 0x26, 0x26, - 0x26, 0xb5, 0xe0, 0x26, 0x2b, 0xb7, 0xef, 0xcc, 0xb5, 0x58, 0x96, 0x52, - 0xf2, 0x1f, 0x9f, 0x88, 0xa4, 0xc1, 0x60, 0x6e, 0x8c, 0xba, 0xf1, 0x51, - 0x34, 0xea, 0x0a, 0xe4, 0x45, 0x71, 0xe6, 0x5c, 0x65, 0x29, 0x6c, 0x6c, - 0xbb, 0xea, 0xb1, 0xca, 0x37, 0x08, 0xa1, 0x00, 0xa0, 0xe8, 0xdb, 0xeb, - 0x30, 0xe8, 0x02, 0x3a, 0x01, 0xfb, 0x1e, 0xcc, 0x02, 0xa3, 0x5b, 0x1c, - 0xbd, 0x99, 0x8e, 0x43, 0x82, 0xa2, 0xa3, 0x4f, 0x0d, 0x3d, 0x21, 0x77, - 0xcc, 0xd9, 0x4a, 0x24, 0xbe, 0xa2, 0x9e, 0xb3, 0x11, 0xa0, 0xdb, 0x68, - 0x56, 0xe6, 0xf8, 0x85, 0x14, 0xb0, 0x1b, 0xb1, 0x41, 0xd9, 0x33, 0xeb, - 0x0d, 0xec, 0x9b, 0x57, 0x72, 0xfc, 0xe2, 0x09, 0x0c, 0x78, 0x5a, 0x05, - 0x02, 0xfb, 0xa9, 0x5d, 0xe1, 0xb2, 0xc1, 0x9a, 0x95, 0x1a, 0xdf, 0x68, - 0x02, 0x37, 0x57, 0x17, 0xf4, 0x81, 0x62, 0xb8, 0x7a, 0xc0, 0xe0, 0x74, - 0x99, 0x9a, 0xa5, 0xe5, 0xc6, 0x73, 0x2c, 0xc7, 0x68, 0x64, 0xf4, 0x62, - 0x5c, 0xb0, 0x2b, 0xc6, 0xe1, 0x2e, 0xc8, 0x36, 0x06, 0x34, 0x80, 0x96, - 0xd5, 0x73, 0x18, 0xd3, 0x1a, 0x86, 0x73, 0x18, 0x4a, 0x37, 0xed, 0x35, - 0x21, 0xcb, 0x6d, 0x00, 0x7b, 0xd5, 0x8c, 0x33, 0x33, 0xa2, 0xd3, 0x74, - 0x2f, 0x44, 0x07, 0xac, 0x13, 0xea, 0x85, 0xa3, 0x48, 0x17, 0x8a, 0x7e, - 0x52, 0x96, 0xf3, 0x86, 0x84, 0x44, 0x9c, 0x14, 0xef, 0xe7, 0x71, 0x16, - 0x0c, 0x28, 0x53, 0x08, 0x74, 0x1a, 0xc6, 0xa1, 0x6c, 0x96, 0xaa, 0xba, - 0x8b, 0xe4, 0xf9, 0x99, 0x8c, 0x92, 0x6e, 0x9e, 0xab, 0x00, 0xd4, 0x1b, - 0xbc, 0x82, 0x5c, 0x3c, 0x83, 0x81, 0x60, 0xe8, 0xe3, 0x22, 0x07, 0xbc, - 0x6d, 0x6d, 0xfa, 0xb9, 0xed, 0x08, 0x08, 0x57, 0xef, 0x4b, 0x94, 0xaf, - 0x08, 0x87, 0xd9, 0xf4, 0xe7, 0x43, 0x7b, 0xc7, 0x20, 0x7a, 0x97, 0x19, - 0x69, 0x42, 0x3d, 0xd9, 0x88, 0x79, 0x65, 0x4a, 0xda, 0xe9, 0x39, 0x97, - 0x38, 0x83, 0x9d, 0xf0, 0x33, 0xab, 0xc5, 0xd0, 0x68, 0xb5, 0x45, 0x26, - 0x04, 0xe0, 0x3e, 0xa1, 0xe9, 0x14, 0xa0, 0xb6, 0x6b, 0x71, 0x04, 0x5e, - 0x03, 0x80, 0x19, 0x95, 0xe6, 0x87, 0x25, 0x62, 0x08, 0x2d, 0x3b, 0xa7, - 0xda, 0x0a, 0xf6, 0xeb, 0x4f, 0x1d, 0x22, 0x44, 0x8c, 0x9a, 0x77, 0x98, - 0xa5, 0xb4, 0x5b, 0x9c, 0x2b, 0x70, 0xb3, 0x47, 0x27, 0x25, 0x6b, 0xbf, - 0x78, 0xb4, 0xd9, 0x55, 0x79, 0xbb, 0xf7, 0x97, 0xa0, 0x0f, 0x0d, 0xfc, - 0xb1, 0x63, 0x1a, 0x2e, 0xdb, 0xcc, 0xb6, 0xb4, 0x81, 0x0d, 0xe0, 0xf5, - 0x37, 0x1c, 0xa9, 0x46, 0x73, 0x74, 0x3f, 0xe7, 0xe9, 0x05, 0xb9, 0xb0, - 0x1b, 0xc7, 0xe8, 0x46, 0x86, 0xe8, 0xd0, 0x1b, 0x9d, 0xe0, 0xe8, 0x91, - 0x50, 0x52, 0xd0, 0xed, 0xaa, 0x0b, 0x8a, 0xd9, 0x59, 0xe2, 0xf3, 0x5d, - 0xce, 0x9e, 0x91, 0xbe, 0x4a, 0xd2, 0x36, 0x60, 0xad, 0xc8, 0xae, 0x06, - 0xaa, 0x67, 0x68, 0x8f, 0x11, 0xa2, 0xbb, 0x1c, 0x93, 0x25, 0xae, 0x8c, - 0x1e, 0xb2, 0x9d, 0x9d, 0xe0, 0xd1, 0xbe, 0xd5, 0xef, 0x2e, 0x16, 0x97, - 0xbb, 0x06, 0xa0, 0x25, 0xe3, 0x41, 0xfa, 0xfd, 0xb8, 0x94, 0x5c, 0x98, - 0xaf, 0x98, 0xa3, 0x06, 0x46, 0x2d, 0x9f, 0x3f, 0x12, 0xc8, 0xba, 0x6b, - 0x46, 0x9f, 0xfc, 0x94, 0x05, 0x30, 0x6a, 0xcd, 0x98, 0xc4, 0x15, 0xa8, - 0xc1, 0xc1, 0x8b, 0xce, 0x71, 0x19, 0x2e, 0xe9, 0xd2, 0x56, 0x9b, 0xd1, - 0xda, 0x3b, 0x6d, 0x8d, 0x0d, 0x7e, 0xb9, 0xbf, 0xa5, 0x55, 0x0e, 0x41, - 0xd4, 0x08, 0x69, 0x77, 0xce, 0x61, 0x45, 0xca, 0x24, 0x36, 0x11, 0x98, - 0xe3, 0xa4, 0xc4, 0x29, 0x76, 0x2a, 0x20, 0xf9, 0xc1, 0x0b, 0x55, 0x45, - 0xc5, 0x81, 0x2f, 0x5d, 0xc7, 0x40, 0x33, 0x2f, 0x69, 0xc3, 0xcd, 0x12, - 0xd9, 0x6d, 0xce, 0x46, 0xe3, 0xab, 0x57, 0x38, 0xff, 0x00, 0x63, 0xb8, - 0xdd, 0x32, 0x40, 0xde, 0x9e, 0x4c, 0x66, 0x39, 0xa9, 0x7a, 0xeb, 0x33, - 0x2d, 0xd9, 0xe8, 0x47, 0x81, 0x3d, 0xc1, 0x25, 0x34, 0x18, 0xbb, 0x57, - 0xe6, 0x50, 0x79, 0x89, 0x88, 0x9e, 0x8b, 0x5e, 0x78, 0x60, 0x70, 0x73, - 0xb4, 0x42, 0x25, 0xe3, 0x77, 0x8f, 0xa4, 0xda, 0xca, 0xeb, 0xf6, 0x86, - 0x14, 0x29, 0xa2, 0xd8, 0x13, 0x2d, 0x29, 0xfd, 0x0d, 0x1a, 0x59, 0x7d, - 0x17, 0xf7, 0xbc, 0x75, 0x2e, 0xc6, 0xa3, 0x17, 0x37, 0x7e, 0x86, 0x3e, - 0x95, 0x6a, 0xdb, 0x58, 0xf1, 0xa8, 0xc2, 0xc6, 0xb0, 0xd9, 0xdf, 0x73, - 0xf7, 0x7b, 0x7f, 0x41, 0x0a, 0x39, 0x23, 0xed, 0x30, 0x2b, 0xe1, 0x3a, - 0xe6, 0x5a, 0xd4, 0x0b, 0xd5, 0xe3, 0xe9, 0xb6, 0x8e, 0xb3, 0x37, 0xe2, - 0xbb, 0xef, 0x0d, 0x17, 0xef, 0x1f, 0xd0, 0x56, 0x2a, 0xdf, 0xf2, 0xc7, - 0xb3, 0xaf, 0x35, 0xde, 0x3b, 0xed, 0x7d, 0xaf, 0xa6, 0xec, 0x2d, 0x37, - 0xc3, 0xda, 0x2f, 0x4d, 0xd6, 0x19, 0x37, 0xb9, 0x7b, 0xbb, 0xc5, 0xec, - 0xd7, 0xf4, 0x36, 0x1a, 0xc1, 0x97, 0x65, 0x77, 0x3e, 0xf0, 0xa5, 0xf5, - 0xc7, 0xe2, 0xbe, 0x9b, 0xda, 0xa5, 0x1f, 0x6d, 0x4b, 0xb1, 0xc6, 0x93, - 0x91, 0xfa, 0xaf, 0xe8, 0x2a, 0xb5, 0xa2, 0x96, 0xf6, 0x95, 0x0a, 0xb9, - 0xb1, 0x33, 0xf7, 0xbf, 0x4f, 0xa7, 0x71, 0x6a, 0xff, 0x00, 0xe2, 0x6a, - 0x92, 0x68, 0xdf, 0xbc, 0xaa, 0xd8, 0xe4, 0xc3, 0x7b, 0x6f, 0xfa, 0x1c, - 0x72, 0xfa, 0x7d, 0x18, 0x45, 0x4e, 0x17, 0xf7, 0x8a, 0xf2, 0xeb, 0xd3, - 0xc7, 0xd3, 0x7d, 0x7d, 0x4e, 0x85, 0xac, 0xd0, 0xab, 0xef, 0x2b, 0x81, - 0x45, 0xb1, 0xfd, 0x0c, 0xfa, 0xff, 0x00, 0xe5, 0x85, 0xc9, 0xd7, 0xf7, - 0x96, 0xe7, 0xac, 0x77, 0xe3, 0xe9, 0xb2, 0x84, 0x16, 0xd2, 0x6d, 0x8a, - 0xc8, 0x76, 0x5f, 0xfe, 0xc7, 0x6f, 0xdf, 0xfd, 0x06, 0xa1, 0xba, 0x67, - 0xa4, 0x4f, 0x5b, 0xad, 0xe6, 0x06, 0xda, 0xab, 0xaf, 0xdb, 0xe9, 0xea, - 0xd5, 0xe2, 0x3a, 0x73, 0xb5, 0x37, 0x57, 0x98, 0x3a, 0x57, 0xa4, 0x69, - 0xfd, 0x0b, 0x5a, 0xa4, 0xec, 0x2a, 0x56, 0x70, 0x29, 0xcb, 0xde, 0x0a, - 0xfa, 0x4a, 0x40, 0x52, 0xd0, 0xcf, 0x32, 0x1a, 0x3c, 0x70, 0xc3, 0x18, - 0x80, 0x9a, 0xe0, 0x5e, 0x9e, 0x18, 0xae, 0x0f, 0x7b, 0xed, 0x04, 0x99, - 0x5d, 0x60, 0xb3, 0x43, 0xe4, 0x3e, 0x20, 0x4b, 0xbb, 0xf4, 0x80, 0x68, - 0x76, 0xa6, 0x04, 0x6c, 0x75, 0xfd, 0xb7, 0xae, 0x65, 0xf0, 0x5f, 0x78, - 0x0c, 0x7a, 0x41, 0xe8, 0x02, 0xbc, 0xb7, 0x33, 0xd5, 0xc9, 0x77, 0x66, - 0x22, 0xd5, 0x46, 0xf3, 0x93, 0xfd, 0x83, 0xc6, 0xc1, 0x9e, 0xdf, 0x30, - 0x23, 0x95, 0xd5, 0x31, 0xe6, 0xd3, 0x65, 0x96, 0xc1, 0xab, 0x03, 0x9c, - 0xb5, 0x0e, 0xa9, 0x7d, 0x65, 0x95, 0x7c, 0x36, 0xe4, 0x74, 0x98, 0xaa, - 0xf5, 0xf5, 0x0c, 0xd3, 0x28, 0x60, 0xe5, 0xed, 0x08, 0xb6, 0x87, 0xb4, - 0x26, 0x89, 0x39, 0xe6, 0x5d, 0x3a, 0xad, 0xa4, 0x79, 0x6e, 0x5e, 0x2e, - 0x79, 0x96, 0x30, 0xc6, 0xb0, 0x2a, 0xf3, 0x71, 0x14, 0xcb, 0xde, 0xe5, - 0xfc, 0x40, 0x5d, 0x71, 0x00, 0x00, 0x5c, 0x64, 0x07, 0x59, 0x6b, 0x33, - 0x76, 0x64, 0x02, 0x5a, 0x4c, 0xae, 0x8c, 0x43, 0xc1, 0xec, 0xb8, 0x5d, - 0x97, 0x4c, 0xda, 0xc4, 0x1b, 0x87, 0x45, 0x89, 0x37, 0x9a, 0xaf, 0x0e, - 0x22, 0x2a, 0x57, 0xf3, 0x14, 0xbc, 0xde, 0xbb, 0x89, 0x3b, 0x1c, 0x43, - 0x4b, 0x8f, 0x56, 0x69, 0xf4, 0xfa, 0x50, 0xb5, 0xb3, 0x5b, 0xee, 0x5e, - 0x85, 0x29, 0xa2, 0xa6, 0x18, 0xb6, 0xc5, 0x5d, 0x6d, 0x60, 0x42, 0x91, - 0xe5, 0x01, 0x41, 0xb5, 0x5a, 0xaa, 0x0c, 0x1b, 0x37, 0x60, 0x84, 0xaa, - 0xb7, 0x27, 0x78, 0x16, 0x03, 0xb1, 0x7c, 0x42, 0x20, 0x54, 0xe1, 0xde, - 0x38, 0xb6, 0x6b, 0x2c, 0xbf, 0x29, 0xdc, 0xdc, 0xa0, 0x66, 0xa4, 0x91, - 0x59, 0x78, 0xdc, 0xa1, 0xa4, 0x68, 0xe7, 0x11, 0xa6, 0x51, 0x15, 0x68, - 0xe3, 0xf3, 0x1e, 0xcd, 0xd2, 0x1a, 0x5f, 0x88, 0x91, 0x79, 0xbb, 0xe2, - 0x85, 0xb3, 0xa5, 0x5a, 0x51, 0x79, 0x69, 0x97, 0x82, 0xa7, 0x4a, 0xb1, - 0xf1, 0x16, 0x41, 0x5b, 0x44, 0xaf, 0xac, 0xb4, 0x2d, 0xe8, 0xbc, 0x8c, - 0xb0, 0x0c, 0x8d, 0x33, 0xab, 0xbf, 0xa5, 0x3a, 0x6c, 0x1a, 0xc4, 0xdc, - 0xde, 0x98, 0x64, 0x57, 0x54, 0x75, 0x96, 0xad, 0x9b, 0xe7, 0x1b, 0x58, - 0x85, 0x9b, 0xbe, 0x3a, 0x45, 0xb1, 0x53, 0x41, 0x2e, 0x3a, 0x0b, 0x1f, - 0xbc, 0x47, 0x73, 0xa6, 0x9b, 0x94, 0x5c, 0x38, 0xd1, 0x6d, 0x42, 0x2a, - 0x41, 0x4f, 0x9d, 0x25, 0x95, 0xa5, 0xca, 0xa7, 0x68, 0xc0, 0xdf, 0x46, - 0xca, 0x8b, 0x55, 0xda, 0xbc, 0x73, 0x7e, 0xf5, 0x94, 0x12, 0x60, 0xe8, - 0xaa, 0xed, 0x51, 0x2c, 0x83, 0x36, 0x0b, 0xbf, 0x68, 0xd4, 0xde, 0x02, - 0x64, 0x70, 0x96, 0x8e, 0xe3, 0x86, 0xc1, 0x9e, 0x6a, 0x28, 0x50, 0x36, - 0xac, 0x56, 0xd7, 0x3b, 0x0e, 0x76, 0xcc, 0xd3, 0x9f, 0xc9, 0x15, 0xfe, - 0xde, 0x3e, 0x99, 0x03, 0xba, 0x7f, 0x10, 0xc6, 0xc1, 0x42, 0xa0, 0x60, - 0xa8, 0x6c, 0x36, 0x58, 0xa0, 0xe8, 0x19, 0x1d, 0x95, 0xa8, 0xb0, 0xe1, - 0x05, 0x6e, 0x68, 0x2d, 0x13, 0x97, 0x5f, 0xb8, 0x83, 0x4c, 0x4e, 0x2d, - 0x33, 0xe9, 0x2a, 0xa8, 0xb7, 0x4c, 0xd1, 0x09, 0xe0, 0x48, 0x06, 0xed, - 0x2b, 0xef, 0x00, 0x14, 0x51, 0xfc, 0x0b, 0x57, 0x98, 0xe1, 0x90, 0x5e, - 0x33, 0x86, 0x58, 0x51, 0x5b, 0x0c, 0xd0, 0x5a, 0xf4, 0xb6, 0x2d, 0x30, - 0x04, 0xec, 0x83, 0x98, 0x22, 0x94, 0x67, 0x39, 0xdc, 0x28, 0x69, 0xa1, - 0xbb, 0xbe, 0xa9, 0x60, 0xd9, 0x04, 0xc7, 0x40, 0x20, 0x81, 0xbe, 0xe2, - 0x44, 0x63, 0x2b, 0xd7, 0x48, 0xf5, 0xdb, 0x59, 0x57, 0x40, 0xe5, 0x8d, - 0x36, 0x65, 0xd7, 0x98, 0xef, 0xb3, 0xf4, 0xee, 0xea, 0x9f, 0x76, 0x88, - 0xac, 0x60, 0x64, 0x88, 0x8d, 0xa8, 0x41, 0x9c, 0xe7, 0x1a, 0x65, 0xb2, - 0x8f, 0x38, 0xb6, 0x7e, 0x20, 0x1a, 0x0a, 0xea, 0xbf, 0xc9, 0xbc, 0x12, - 0xfa, 0xf3, 0xf1, 0x06, 0x2b, 0x76, 0x37, 0xcf, 0xed, 0x41, 0x60, 0xeb, - 0xa3, 0x86, 0x58, 0x24, 0xba, 0x97, 0xba, 0xc4, 0xa5, 0x5c, 0x72, 0x63, - 0xc1, 0x2a, 0x08, 0x0a, 0xf4, 0xfd, 0xa5, 0xc8, 0x00, 0x9a, 0x08, 0x94, - 0x89, 0xde, 0x58, 0x51, 0x58, 0xad, 0x5f, 0x34, 0x72, 0x23, 0x6d, 0x76, - 0xaa, 0xda, 0x9a, 0xc3, 0xda, 0xff, 0x00, 0xe4, 0x04, 0x6b, 0xac, 0xe5, - 0xfe, 0x43, 0x14, 0x7f, 0x57, 0xf9, 0x1c, 0xac, 0x3d, 0xe5, 0x67, 0xc4, - 0x74, 0x2c, 0x01, 0xad, 0xbd, 0x3a, 0xb3, 0x72, 0x53, 0xd3, 0xac, 0xbd, - 0x4f, 0x1f, 0x4a, 0x3e, 0xbf, 0xc4, 0x45, 0x82, 0x5a, 0x77, 0xa9, 0x42, - 0x25, 0x74, 0x58, 0x55, 0x16, 0xae, 0x06, 0xbc, 0xc0, 0x32, 0x82, 0xee, - 0xad, 0x89, 0x73, 0x93, 0x0d, 0xb3, 0x68, 0x33, 0x43, 0x7c, 0x54, 0x40, - 0x59, 0x33, 0x56, 0x84, 0xd3, 0x44, 0x71, 0x8b, 0xc2, 0xd9, 0x4f, 0xbc, - 0x2c, 0x59, 0x8d, 0x10, 0x82, 0xdd, 0xd3, 0x87, 0x61, 0x51, 0x21, 0x67, - 0x21, 0x55, 0x33, 0xa7, 0xc5, 0xc6, 0x91, 0x58, 0xe0, 0xb6, 0xe2, 0x80, - 0xa3, 0x5c, 0x95, 0xa9, 0x80, 0xd2, 0xa6, 0xf3, 0x7d, 0x66, 0xa9, 0x80, - 0xe8, 0x6e, 0xa2, 0x55, 0xa5, 0xa5, 0xb8, 0x8a, 0xa9, 0x4d, 0xeb, 0x33, - 0x76, 0xef, 0xe1, 0xc7, 0xd3, 0xb1, 0x04, 0x67, 0x38, 0x44, 0x89, 0x05, - 0x67, 0xbc, 0x15, 0x40, 0x73, 0xa7, 0xfe, 0x44, 0x43, 0x6d, 0x38, 0x9a, - 0xab, 0x52, 0x5f, 0x12, 0xc2, 0x2e, 0x5b, 0x37, 0xb8, 0x51, 0x77, 0x95, - 0xbd, 0x3f, 0xbe, 0xd0, 0x28, 0x11, 0x7e, 0x79, 0xb8, 0x9b, 0x4e, 0x0b, - 0xc9, 0xef, 0x12, 0x6f, 0xae, 0xdc, 0xc6, 0x81, 0xae, 0x6d, 0x80, 0x77, - 0xae, 0xe9, 0xbc, 0x1e, 0x66, 0x53, 0x56, 0xbf, 0x11, 0x68, 0x29, 0xbe, - 0x6c, 0x83, 0x65, 0x5f, 0x87, 0xe2, 0x02, 0x8d, 0x8f, 0xf6, 0x05, 0xac, - 0xd1, 0xbd, 0x6a, 0x0a, 0xa2, 0xfd, 0xf0, 0xc5, 0x2c, 0x5d, 0xfa, 0x29, - 0x32, 0x5d, 0xd3, 0xb8, 0x4f, 0x2b, 0xe9, 0x81, 0x80, 0xaf, 0x5f, 0xfb, - 0xf4, 0x8b, 0xa8, 0x5e, 0x21, 0x6f, 0x35, 0xad, 0xc0, 0xe4, 0x1a, 0x1c, - 0xca, 0xca, 0xe6, 0xf7, 0xba, 0x1f, 0x13, 0x3a, 0x69, 0xbe, 0x18, 0x94, - 0xa5, 0x61, 0x3f, 0x6e, 0x28, 0x01, 0x14, 0x06, 0x78, 0xb8, 0xa0, 0xc0, - 0x15, 0x9c, 0x46, 0x22, 0xf2, 0x98, 0x7a, 0xc4, 0x01, 0x02, 0x83, 0xc5, - 0xcc, 0x83, 0x27, 0x1e, 0x8c, 0xa5, 0x54, 0xd2, 0x71, 0x88, 0x52, 0xc3, - 0x8b, 0xff, 0x00, 0xb1, 0x52, 0xc5, 0x03, 0x4b, 0x12, 0x2d, 0x00, 0xe2, - 0x05, 0xb6, 0x52, 0x9b, 0x1c, 0x44, 0x85, 0xed, 0xd5, 0x60, 0x07, 0x43, - 0xcf, 0x10, 0xbb, 0x9c, 0xe1, 0x66, 0x33, 0x85, 0x76, 0x48, 0xfb, 0x57, - 0xd2, 0x08, 0xda, 0x2f, 0x6c, 0x5b, 0xec, 0xe2, 0xef, 0x09, 0xdf, 0x66, - 0x2a, 0x0a, 0xc5, 0x17, 0x46, 0xe2, 0x29, 0x73, 0x47, 0x18, 0xdb, 0xfb, - 0xb8, 0x8b, 0x01, 0x6d, 0x7d, 0xbf, 0x11, 0x47, 0x46, 0x73, 0x4c, 0x97, - 0x2e, 0x86, 0x87, 0xbf, 0x78, 0xa1, 0x9a, 0x6c, 0xeb, 0xb8, 0x0a, 0xb5, - 0x4d, 0x03, 0x5c, 0xff, 0x00, 0xc8, 0xd0, 0x14, 0xd2, 0xdd, 0xf0, 0x86, - 0x2b, 0x39, 0x48, 0xe7, 0x04, 0xb1, 0x48, 0xe6, 0x2b, 0xcd, 0xd3, 0xd2, - 0x23, 0x94, 0xb3, 0x0e, 0xee, 0x2d, 0xe0, 0xbd, 0x71, 0xaa, 0x85, 0xb7, - 0x9c, 0xf1, 0xf0, 0x4c, 0x40, 0x40, 0x39, 0x1d, 0xc0, 0xb4, 0x03, 0x9e, - 0xbe, 0x90, 0x55, 0x8e, 0x1e, 0x65, 0x27, 0xf5, 0x09, 0x80, 0x98, 0xf5, - 0x55, 0x8f, 0x92, 0xfd, 0x21, 0x8f, 0x14, 0x56, 0xc2, 0x7e, 0x41, 0x2c, - 0x04, 0x29, 0x1e, 0x72, 0xfc, 0xdc, 0xa3, 0x57, 0x40, 0xe2, 0xe5, 0x18, - 0xd8, 0x75, 0xae, 0x1f, 0xd6, 0x36, 0xb1, 0x79, 0x44, 0xe5, 0x85, 0xe6, - 0xf7, 0x50, 0x34, 0x2e, 0xc1, 0x14, 0xe4, 0x66, 0xda, 0xc4, 0x2d, 0x72, - 0x28, 0x6a, 0x97, 0x10, 0x6d, 0x2d, 0x71, 0x56, 0xb9, 0xa2, 0x53, 0xcd, - 0xe6, 0x2d, 0xf0, 0xe5, 0x14, 0x3b, 0x31, 0xae, 0x22, 0x29, 0x46, 0xef, - 0x02, 0x30, 0x37, 0x20, 0x47, 0x7f, 0xfb, 0x2c, 0x3b, 0xe0, 0x89, 0xbf, - 0x58, 0x83, 0x6b, 0x58, 0x35, 0xe9, 0x02, 0xac, 0x70, 0xdd, 0x31, 0x57, - 0x7f, 0xc4, 0x5b, 0x2b, 0xa4, 0xd9, 0x59, 0x7f, 0x30, 0x05, 0x06, 0x01, - 0xc0, 0x7d, 0x28, 0x04, 0x4b, 0x1c, 0x23, 0x39, 0x3d, 0x25, 0xcd, 0xb3, - 0xd6, 0x0f, 0x66, 0x13, 0x53, 0x32, 0xaa, 0xf7, 0x6c, 0x48, 0x0a, 0x6a, - 0x95, 0x02, 0x01, 0x25, 0x19, 0x39, 0xe4, 0x86, 0xd2, 0xea, 0xd5, 0x57, - 0x73, 0x0a, 0xd7, 0x82, 0xd8, 0xcb, 0xc4, 0x72, 0x6c, 0x57, 0x2e, 0x60, - 0x80, 0x0a, 0xc6, 0x55, 0xdc, 0xb0, 0x29, 0x2b, 0x3a, 0x8a, 0xa5, 0xba, - 0x0c, 0x54, 0xb0, 0x38, 0x79, 0xce, 0xd8, 0x14, 0xdf, 0x28, 0x61, 0xac, - 0x0b, 0x02, 0xa6, 0x2e, 0x9e, 0xb0, 0x5b, 0x16, 0x3c, 0x5f, 0x04, 0xc8, - 0x00, 0xcd, 0x0d, 0xdc, 0x40, 0x46, 0x9e, 0xb1, 0x58, 0xb3, 0x34, 0xc6, - 0x1e, 0xfd, 0x2f, 0xa7, 0xd6, 0xfc, 0x75, 0x06, 0xc6, 0xec, 0xf5, 0x71, - 0x20, 0x68, 0xcb, 0xdf, 0x3b, 0x99, 0x9c, 0x60, 0xc6, 0xb1, 0x15, 0x43, - 0x20, 0xe5, 0x28, 0xc2, 0x0a, 0x09, 0x6d, 0x9c, 0x9c, 0x58, 0xc3, 0x41, - 0x66, 0x6e, 0xd9, 0x9c, 0xd8, 0xc6, 0x57, 0x96, 0xa2, 0x2b, 0x34, 0xf4, - 0xc1, 0xa1, 0x97, 0xc0, 0x54, 0xa3, 0xa0, 0xe3, 0xbc, 0x42, 0x95, 0x1c, - 0xd5, 0x1b, 0x88, 0x36, 0xb1, 0x36, 0x87, 0x12, 0x81, 0xd2, 0xf0, 0xfa, - 0x4d, 0xad, 0x4c, 0x35, 0x41, 0x71, 0x05, 0x04, 0xbd, 0xd1, 0x53, 0x38, - 0x01, 0x6f, 0x37, 0xdb, 0xb4, 0x34, 0x46, 0xcd, 0x91, 0xb2, 0x62, 0x4f, - 0x7c, 0x27, 0x97, 0xed, 0x7d, 0x75, 0x29, 0xad, 0x6d, 0xde, 0x07, 0x84, - 0x0f, 0x5d, 0xb7, 0x7e, 0xac, 0x87, 0xa6, 0xbd, 0x22, 0x10, 0xc5, 0xf2, - 0xd4, 0xa3, 0x66, 0x93, 0x55, 0x89, 0x96, 0x8b, 0x7c, 0x97, 0x77, 0x1c, - 0xa8, 0xeb, 0x95, 0x9d, 0x8c, 0x19, 0x57, 0x0c, 0xc8, 0xd2, 0xdc, 0x92, - 0xad, 0x2e, 0xeb, 0x4b, 0x16, 0xca, 0x4b, 0xec, 0x6a, 0x37, 0xd4, 0x6b, - 0x86, 0x50, 0xec, 0x38, 0xb1, 0x80, 0x2e, 0x8c, 0xca, 0x01, 0xa5, 0xbb, - 0xc5, 0x55, 0x0d, 0x2e, 0xba, 0xff, 0x00, 0x92, 0xca, 0x82, 0x9e, 0x87, - 0x12, 0x85, 0x55, 0x26, 0xac, 0x7b, 0xc6, 0x92, 0x7e, 0x34, 0x2b, 0x56, - 0xf6, 0x0b, 0x57, 0xa1, 0x3b, 0xc1, 0x05, 0xa0, 0x16, 0xf7, 0x76, 0xf7, - 0x7f, 0x81, 0x93, 0xa1, 0x41, 0x80, 0x5f, 0x95, 0xae, 0x01, 0x1e, 0x9c, - 0xbd, 0xa1, 0x9b, 0x5b, 0x57, 0xb9, 0x58, 0x08, 0x19, 0x60, 0x42, 0x55, - 0x34, 0x67, 0x02, 0x54, 0x56, 0x44, 0xb1, 0x0a, 0x63, 0x85, 0xdf, 0xa5, - 0xa5, 0xcc, 0xb1, 0x55, 0x79, 0x81, 0x4c, 0xba, 0x35, 0x0d, 0x2a, 0x5a, - 0xb2, 0x19, 0xc3, 0x91, 0xe6, 0xa3, 0x77, 0x3a, 0x1c, 0xc1, 0xe5, 0x59, - 0xce, 0xb5, 0x2e, 0x1a, 0x53, 0xa4, 0x11, 0xa1, 0xac, 0x45, 0x65, 0xc2, - 0xbd, 0xb7, 0x12, 0xed, 0x0e, 0x04, 0x30, 0x79, 0x0f, 0x57, 0xa7, 0xf0, - 0x8c, 0x30, 0x6c, 0x32, 0xab, 0xd8, 0xc1, 0xe6, 0xa1, 0xf7, 0x47, 0xb1, - 0xdf, 0xed, 0x0a, 0xb2, 0xe3, 0x36, 0xc1, 0x4e, 0x4d, 0x5f, 0x04, 0x2c, - 0x1b, 0x66, 0xc8, 0x5c, 0x0a, 0xe0, 0x81, 0x81, 0xd7, 0x10, 0xb0, 0x53, - 0x0c, 0x1b, 0x6c, 0xf2, 0x94, 0x5c, 0x33, 0x58, 0x89, 0x63, 0xe5, 0x1b, - 0x19, 0x2b, 0x19, 0x89, 0x65, 0xa3, 0x68, 0xf2, 0x31, 0xbb, 0x79, 0x9c, - 0x0e, 0x8e, 0x99, 0x8f, 0x9f, 0x8e, 0x21, 0x5c, 0xaa, 0xd0, 0x16, 0xaf, - 0x01, 0x00, 0xf5, 0xb6, 0xb4, 0xef, 0x6e, 0xe8, 0xbe, 0xbf, 0xc4, 0x80, - 0xc1, 0xd4, 0xc4, 0x79, 0xf7, 0x54, 0xf5, 0x26, 0xb2, 0x39, 0xf8, 0x86, - 0x17, 0x97, 0x35, 0x2d, 0x78, 0x15, 0xdc, 0x87, 0x2b, 0x32, 0xc7, 0x78, - 0x8c, 0xc5, 0x2e, 0x6c, 0x33, 0x0c, 0x08, 0xc0, 0xc1, 0xc4, 0x6c, 0xe8, - 0xf5, 0x78, 0x9b, 0x36, 0x00, 0xe6, 0x6f, 0xad, 0xf6, 0x73, 0x32, 0xa5, - 0xd9, 0x2f, 0x4c, 0x2e, 0xbc, 0xd6, 0x6d, 0x60, 0xe0, 0x83, 0xa7, 0x49, - 0x81, 0xcd, 0xd6, 0x99, 0xa9, 0xd4, 0x2e, 0xb6, 0x87, 0xba, 0x29, 0xd8, - 0xea, 0xfe, 0x30, 0xf8, 0x2c, 0xb3, 0x5e, 0xaf, 0x5f, 0x85, 0x87, 0x64, - 0xbe, 0xd6, 0xd0, 0xf7, 0xcf, 0x89, 0xca, 0xf1, 0xab, 0x96, 0x0c, 0x6b, - 0x92, 0x21, 0x95, 0xe6, 0xaf, 0xbc, 0x1b, 0x01, 0xa0, 0xe3, 0x31, 0xab, - 0x8c, 0xe8, 0xd4, 0xc0, 0x0d, 0x1e, 0x37, 0x01, 0x65, 0xe0, 0x95, 0xe2, - 0x06, 0xf0, 0x39, 0xd4, 0x68, 0x47, 0x35, 0xe8, 0xc4, 0xb6, 0x40, 0xd5, - 0x97, 0xcc, 0x51, 0xa4, 0xae, 0x2e, 0x15, 0x74, 0xc0, 0x59, 0x94, 0xde, - 0x98, 0x3a, 0xa9, 0x0c, 0x5a, 0x3b, 0x83, 0x50, 0x7b, 0x1f, 0xc8, 0x76, - 0x5e, 0x0c, 0xf6, 0x7c, 0x0e, 0xde, 0x91, 0x00, 0x52, 0x55, 0x27, 0x3d, - 0xe0, 0x80, 0x39, 0xdc, 0x2e, 0x27, 0xb6, 0xa5, 0x23, 0xd9, 0xbc, 0x42, - 0xcd, 0x6b, 0x6d, 0x35, 0x2c, 0x3a, 0x5f, 0x48, 0x76, 0x1c, 0x3c, 0xca, - 0x52, 0x8d, 0x9b, 0x82, 0x2a, 0x56, 0x66, 0x66, 0x2a, 0xb1, 0x7b, 0xa8, - 0xb0, 0x6d, 0xed, 0xa8, 0xe8, 0xc5, 0x50, 0xad, 0xbe, 0xcf, 0x27, 0x9e, - 0x8f, 0xe5, 0x28, 0x6e, 0x1f, 0x28, 0xac, 0x77, 0xe4, 0x7a, 0xc4, 0x29, - 0x41, 0x9d, 0xa7, 0x62, 0x69, 0x3a, 0x90, 0xc3, 0xab, 0xf1, 0x28, 0x95, - 0xb5, 0x55, 0xd6, 0x48, 0x35, 0xb8, 0x6a, 0x4e, 0x1e, 0xa1, 0x99, 0x40, - 0xe0, 0xce, 0x3c, 0x4c, 0x71, 0xb8, 0x57, 0x65, 0x72, 0xdb, 0xd4, 0xde, - 0xeb, 0x8b, 0xb8, 0x6e, 0x2e, 0x2d, 0x07, 0x3d, 0x41, 0x74, 0xd3, 0x46, - 0x36, 0x90, 0x10, 0x00, 0x50, 0x05, 0x01, 0xfc, 0xd9, 0xb7, 0x31, 0xa7, - 0xac, 0x4b, 0xf5, 0x8e, 0x4f, 0x1f, 0x0c, 0x4c, 0x97, 0x95, 0x3c, 0x45, - 0x74, 0x4e, 0x47, 0x7d, 0xf8, 0xb2, 0x2a, 0xb1, 0xfe, 0x01, 0x10, 0x8f, - 0x2f, 0x0b, 0xf8, 0x94, 0xb9, 0x57, 0x5b, 0x7f, 0x11, 0xc0, 0x2d, 0x75, - 0xaf, 0xde, 0xa5, 0x7a, 0x5e, 0xbe, 0xf2, 0x68, 0x8e, 0x44, 0x29, 0xef, - 0xc1, 0xbb, 0xfb, 0x13, 0x5d, 0x97, 0x07, 0x69, 0xc1, 0xae, 0xa0, 0xe7, - 0x70, 0x68, 0x97, 0xc1, 0x58, 0xfc, 0xf3, 0xff, 0x00, 0xda, 0xff, 0xd9 -}; -unsigned int background_1_jpg_len = 13620; diff --git a/core/embed/models/T1B1/background_1.jpg b/core/embed/models/T1B1/background_1.jpg deleted file mode 100644 index 93f1487f17a9d4036e5f8f213c62ea7e9153d391..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13620 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 diff --git a/core/embed/models/T1B1/boards/t1b1-unix.h b/core/embed/models/T1B1/boards/t1b1-unix.h deleted file mode 100644 index 5570a6e96b..0000000000 --- a/core/embed/models/T1B1/boards/t1b1-unix.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef BOARDS_T1B1_UNIX_H -#define BOARDS_T1B1_UNIX_H - -#define USE_BUTTON 1 - -#define MAX_DISPLAY_RESX 128 -#define MAX_DISPLAY_RESY 64 -#define DISPLAY_RESX 128 -#define DISPLAY_RESY 64 -#define TREZOR_FONT_BPP 1 - -#define WINDOW_WIDTH 200 -#define WINDOW_HEIGHT 340 -#define TOUCH_OFFSET_X 36 -#define TOUCH_OFFSET_Y 92 - -#define ORIENTATION_NS 1 - -#define BACKGROUND_FILE "T1B1/background_1.h" -#define BACKGROUND_NAME background_1_jpg - -#endif // BOARDS_T1B1_UNIX_H diff --git a/core/embed/models/T1B1/boards/trezor_1.h b/core/embed/models/T1B1/boards/trezor_1.h deleted file mode 100644 index 7fec05ac7b..0000000000 --- a/core/embed/models/T1B1/boards/trezor_1.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef _TREZOR_1_H -#define _TREZOR_1_H - -#define HSE_8MHZ - -#define USE_BUTTON 1 - -#define DISPLAY_RESX 128 -#define DISPLAY_RESY 64 - -#define BTN_LEFT_PIN GPIO_PIN_5 -#define BTN_LEFT_PORT GPIOC -#define BTN_LEFT_CLK_ENA __HAL_RCC_GPIOC_CLK_ENABLE -#define BTN_RIGHT_PIN GPIO_PIN_2 -#define BTN_RIGHT_PORT GPIOC -#define BTN_RIGHT_CLK_ENA __HAL_RCC_GPIOC_CLK_ENABLE - -#define OLED_DC_PORT GPIOB -#define OLED_DC_PIN GPIO_PIN_0 // PB0 | Data/Command -#define OLED_DC_CLK_ENA __HAL_RCC_GPIOB_CLK_ENABLE -#define OLED_CS_PORT GPIOA -#define OLED_CS_PIN GPIO_PIN_4 // PA4 | SPI Select -#define OLED_CS_CLK_ENA __HAL_RCC_GPIOA_CLK_ENABLE -#define OLED_RST_PORT GPIOB -#define OLED_RST_PIN GPIO_PIN_1 // PB1 | Reset display -#define OLED_RST_CLK_ENA __HAL_RCC_GPIOB_CLK_ENABLE - -#define OLED_SPI SPI1 -#define OLED_SPI_AF GPIO_AF5_SPI1 -#define OLED_SPI_CLK_ENA __HAL_RCC_SPI1_CLK_ENABLE -#define OLED_SPI_SCK_PORT GPIOA -#define OLED_SPI_SCK_PIN GPIO_PIN_5 // PA5 | SPI SCK -#define OLED_SPI_SCK_CLK_ENA __HAL_RCC_GPIOA_CLK_ENABLE -#define OLED_SPI_MOSI_PORT GPIOA -#define OLED_SPI_MOSI_PIN GPIO_PIN_7 // PA7 | SPI MOSI -#define OLED_SPI_MOSI_CLK_ENA __HAL_RCC_GPIOA_CLK_ENABLE - -#endif //_TREZOR_1_H diff --git a/core/embed/models/T1B1/memory.ld b/core/embed/models/T1B1/memory.ld deleted file mode 100644 index 1e78a10394..0000000000 --- a/core/embed/models/T1B1/memory.ld +++ /dev/null @@ -1,16 +0,0 @@ -/* Auto-generated file, do not edit.*/ - -FLASH_START = 0x8000000; -BOOTLOADER_START = 0x8000000; -FIRMWARE_START = 0x8010000; -NORCOW_SECTOR_SIZE = 0x10000; -BOOTLOADER_IMAGE_MAXSIZE = 0x8000; -FIRMWARE_IMAGE_MAXSIZE = 0xf0000; -BOOTLOADER_SECTOR_START = 0x0; -BOOTLOADER_SECTOR_END = 0x2; -FIRMWARE_SECTOR_START = 0x4; -FIRMWARE_SECTOR_END = 0xb; -STORAGE_1_SECTOR_START = 0x2; -STORAGE_1_SECTOR_END = 0x2; -STORAGE_2_SECTOR_START = 0x3; -STORAGE_2_SECTOR_END = 0x3; diff --git a/core/embed/models/T1B1/model_T1B1.h b/core/embed/models/T1B1/model_T1B1.h deleted file mode 100644 index ff007bc757..0000000000 --- a/core/embed/models/T1B1/model_T1B1.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef MODELS_MODEL_T1B1_H_ -#define MODELS_MODEL_T1B1_H_ - -#define MODEL_NAME "1" -#define MODEL_FULL_NAME "Trezor Model One" -#define MODEL_INTERNAL_NAME "T1B1" -#define MODEL_INTERNAL_NAME_TOKEN T1B1 -#define MODEL_INTERNAL_NAME_QSTR MP_QSTR_T1B1 -#define MODEL_USB_MANUFACTURER "SatoshiLabs" -#define MODEL_USB_PRODUCT "TREZOR" - -#define IMAGE_CHUNK_SIZE (64 * 1024) -#define IMAGE_HASH_SHA256 -#define CODE_ALIGNMENT 0x200 -#define DISPLAY_JUMP_BEHAVIOR DISPLAY_RETAIN_CONTENT - -// SHARED WITH MAKEFILE -#define FLASH_START 0x08000000 -#define BOOTLOADER_START 0x08000000 -#define FIRMWARE_START 0x08010000 -#define NORCOW_SECTOR_SIZE (1 * 64 * 1024) // 64 kB -#define BOOTLOADER_IMAGE_MAXSIZE (1 * 32 * 1024) // 32 kB -#define FIRMWARE_IMAGE_MAXSIZE (15 * 64 * 1024) // 960 kB - -#define BOOTLOADER_SECTOR_START 0 -#define BOOTLOADER_SECTOR_END 2 -#define FIRMWARE_SECTOR_START 4 -#define FIRMWARE_SECTOR_END 11 -#define STORAGE_1_SECTOR_START 2 -#define STORAGE_1_SECTOR_END 2 -#define STORAGE_2_SECTOR_START 3 -#define STORAGE_2_SECTOR_END 3 - -#endif diff --git a/core/embed/models/T1B1/model_T1B1_layout.c b/core/embed/models/T1B1/model_T1B1_layout.c deleted file mode 100644 index a5d8df0c80..0000000000 --- a/core/embed/models/T1B1/model_T1B1_layout.c +++ /dev/null @@ -1,41 +0,0 @@ -#include "flash.h" -#include "model.h" - -const flash_area_t STORAGE_AREAS[STORAGE_AREAS_COUNT] = { - { - .num_subareas = 1, - .subarea[0] = - { - .first_sector = STORAGE_1_SECTOR_START, - .num_sectors = - STORAGE_1_SECTOR_END - STORAGE_1_SECTOR_START + 1, - }, - }, - { - .num_subareas = 1, - .subarea[0] = - { - .first_sector = STORAGE_2_SECTOR_START, - .num_sectors = - STORAGE_2_SECTOR_END - STORAGE_2_SECTOR_START + 1, - }, - }, -}; - -const flash_area_t BOOTLOADER_AREA = { - .num_subareas = 1, - .subarea[0] = - { - .first_sector = BOOTLOADER_SECTOR_START, - .num_sectors = BOOTLOADER_SECTOR_END - BOOTLOADER_SECTOR_START + 1, - }, -}; - -const flash_area_t FIRMWARE_AREA = { - .num_subareas = 1, - .subarea[0] = - { - .first_sector = FIRMWARE_SECTOR_START, - .num_sectors = FIRMWARE_SECTOR_END - FIRMWARE_SECTOR_START + 1, - }, -}; diff --git a/core/embed/models/T1B1/versions.h b/core/embed/models/T1B1/versions.h deleted file mode 100644 index 42408b3df8..0000000000 --- a/core/embed/models/T1B1/versions.h +++ /dev/null @@ -1,3 +0,0 @@ - -#define BOOTLOADER_MONOTONIC_VERSION 1 -#define FIRMWARE_MONOTONIC_VERSION 1 diff --git a/core/embed/models/model.h b/core/embed/models/model.h index fa797575b4..9697bfd315 100644 --- a/core/embed/models/model.h +++ b/core/embed/models/model.h @@ -3,9 +3,7 @@ #include "layout_common.h" -#if defined TREZOR_MODEL_1 -#include "T1B1/model_T1B1.h" -#elif defined TREZOR_MODEL_T +#if defined TREZOR_MODEL_T #include "T2T1/model_T2T1.h" #elif defined TREZOR_MODEL_R #include "T2B1/model_T2B1.h" diff --git a/core/embed/models/model_version.h b/core/embed/models/model_version.h index 71b5b65f7b..819826ba72 100644 --- a/core/embed/models/model_version.h +++ b/core/embed/models/model_version.h @@ -1,9 +1,7 @@ #ifndef MODELS_MODEL_H_ #define MODELS_MODEL_H_ -#if defined TREZOR_MODEL_1 -#include "T1B1/versions.h" -#elif defined TREZOR_MODEL_T +#if defined TREZOR_MODEL_T #include "T2T1/versions.h" #elif defined TREZOR_MODEL_R #include "T2B1/versions.h" diff --git a/core/embed/trezorhal/unix/flash.c b/core/embed/trezorhal/unix/flash.c index 6c3c9e48b0..60f1907f90 100644 --- a/core/embed/trezorhal/unix/flash.c +++ b/core/embed/trezorhal/unix/flash.c @@ -37,8 +37,6 @@ #if defined TREZOR_MODEL_T || defined TREZOR_MODEL_R #define FLASH_SECTOR_COUNT 24 -#elif defined TREZOR_MODEL_1 -#define FLASH_SECTOR_COUNT 12 #elif defined TREZOR_MODEL_T3T1 || defined TREZOR_MODEL_T3B1 #define FLASH_SECTOR_COUNT 256 #else @@ -72,20 +70,6 @@ static uint32_t FLASH_SECTOR_TABLE[FLASH_SECTOR_COUNT + 1] = { [22] = 0x081C0000, // - 0x081DFFFF | 128 KiB [23] = 0x081E0000, // - 0x081FFFFF | 128 KiB [24] = 0x08200000, // last element - not a valid sector -#elif defined TREZOR_MODEL_1 - [0] = 0x08000000, // - 0x08003FFF | 16 KiB - [1] = 0x08004000, // - 0x08007FFF | 16 KiB - [2] = 0x08008000, // - 0x0800BFFF | 16 KiB - [3] = 0x0800C000, // - 0x0800FFFF | 16 KiB - [4] = 0x08010000, // - 0x0801FFFF | 64 KiB - [5] = 0x08020000, // - 0x0803FFFF | 128 KiB - [6] = 0x08040000, // - 0x0805FFFF | 128 KiB - [7] = 0x08060000, // - 0x0807FFFF | 128 KiB - [8] = 0x08080000, // - 0x0809FFFF | 128 KiB - [9] = 0x080A0000, // - 0x080BFFFF | 128 KiB - [10] = 0x080C0000, // - 0x080DFFFF | 128 KiB - [11] = 0x080E0000, // - 0x080FFFFF | 128 KiB - [12] = 0x08100000, // last element - not a valid sector #elif defined TREZOR_MODEL_T3T1 || defined TREZOR_MODEL_T3B1 [0] = 0x08000000, // - 0x08001FFF | 8 KiB // rest is initialized in flash_init diff --git a/core/embed/trezorhal/xdisplay.h b/core/embed/trezorhal/xdisplay.h index 80cdcb04d8..472c5a472c 100644 --- a/core/embed/trezorhal/xdisplay.h +++ b/core/embed/trezorhal/xdisplay.h @@ -32,7 +32,7 @@ // Currently, following displays displays are supported // // VG-2864KSWEG01 - OLED Mono / 128x64 pixels / SPI -// - Model T1B1 / Model T2B1 +// - Model T2B1 // // UG-2828SWIG01 - OLED Mono / 128x128 pixels / Parallel // - Early revisions of T2B1 diff --git a/core/site_scons/models/T1B1/__init__.py b/core/site_scons/models/T1B1/__init__.py deleted file mode 100644 index ad9d99a5a3..0000000000 --- a/core/site_scons/models/T1B1/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -from __future__ import annotations - -from typing import Optional - -from .emulator import configure as emul -from .trezor_1 import configure - - -def configure_board( - revision: Optional[int | str], - features_wanted: list[str], - env: dict, # type: ignore - defines: list[str | tuple[str, str]], - sources: list[str], - paths: list[str], -): - if revision == "emulator": - return emul(env, features_wanted, defines, sources, paths) - else: - return configure(env, features_wanted, defines, sources, paths) diff --git a/core/site_scons/models/T1B1/emulator.py b/core/site_scons/models/T1B1/emulator.py deleted file mode 100644 index 7763364912..0000000000 --- a/core/site_scons/models/T1B1/emulator.py +++ /dev/null @@ -1,39 +0,0 @@ -from __future__ import annotations - -from .. import get_hw_model_as_number - - -def configure( - env: dict, - features_wanted: list[str], - defines: list[str | tuple[str, str]], - sources: list[str], - paths: list[str], -) -> list[str]: - - features_available: list[str] = [] - board = "T1B1/boards/t1b1-unix.h" - hw_model = get_hw_model_as_number("T1B1") - hw_revision = 0 - mcu = "STM32F405xx" - - if "new_rendering" in features_wanted: - defines += ["XFRAMEBUFFER", "DISPLAY_MONO"] - features_available.append("xframebuffer") - features_available.append("display_mono") - - defines += [mcu] - defines += [f'TREZOR_BOARD=\\"{board}\\"'] - defines += [f"HW_MODEL={hw_model}"] - defines += [f"HW_REVISION={hw_revision}"] - defines += [f"MCU_TYPE={mcu}"] - defines += ["FLASH_BIT_ACCESS=1"] - defines += ["FLASH_BLOCK_WORDS=1"] - - if "input" in features_wanted: - sources += ["embed/trezorhal/unix/button.c"] - features_available.append("button") - - sources += ["embed/models/T1B1/model_T1B1_layout.c"] - - return features_available diff --git a/core/site_scons/models/T1B1/trezor_1.py b/core/site_scons/models/T1B1/trezor_1.py deleted file mode 100644 index daaf9ff3c6..0000000000 --- a/core/site_scons/models/T1B1/trezor_1.py +++ /dev/null @@ -1,57 +0,0 @@ -from __future__ import annotations - -from .. import get_hw_model_as_number -from ..stm32f4_common import stm32f4_common_files - - -def configure( - env: dict, - features_wanted: list[str], - defines: list[str | tuple[str, str]], - sources: list[str], - paths: list[str], -) -> list[str]: - features_available: list[str] = [] - board = "T1B1/boards/trezor_1.h" - display = "vg-2864ksweg01.c" - hw_model = get_hw_model_as_number("T1B1") - hw_revision = 0 - - mcu = "STM32F405xx" - - stm32f4_common_files(env, defines, sources, paths) - - env.get("ENV")["CPU_ASFLAGS"] = "-mthumb -mcpu=cortex-m3 -mfloat-abi=soft" - env.get("ENV")[ - "CPU_CCFLAGS" - ] = "-mthumb -mtune=cortex-m3 -mcpu=cortex-m3 -mfloat-abi=soft " - env.get("ENV")["RUST_TARGET"] = "thumbv7m-none-eabi" - - defines += [mcu] - defines += [f'TREZOR_BOARD=\\"{board}\\"'] - defines += [f"HW_MODEL={hw_model}"] - defines += [f"HW_REVISION={hw_revision}"] - sources += [ - "embed/models/T1B1/model_T1B1_layout.c", - ] - sources += [f"embed/trezorhal/stm32f4/displays/{display}"] - - if "input" in features_wanted: - sources += ["embed/trezorhal/stm32f4/button.c"] - features_available.append("button") - - if "usb" in features_wanted: - sources += [ - "embed/trezorhal/stm32f4/usb/usb_class_hid.c", - "embed/trezorhal/stm32f4/usb/usb_class_vcp.c", - "embed/trezorhal/stm32f4/usb/usb_class_webusb.c", - "embed/trezorhal/stm32f4/usb/usb.c", - "embed/trezorhal/stm32f4/usb/usbd_conf.c", - "embed/trezorhal/stm32f4/usb/usbd_core.c", - "embed/trezorhal/stm32f4/usb/usbd_ctlreq.c", - "embed/trezorhal/stm32f4/usb/usbd_ioreq.c", - "vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c", - ] - features_available.append("usb") - - return features_available diff --git a/core/site_scons/models/__init__.py b/core/site_scons/models/__init__.py index f290cfffbb..c4b7c833a4 100644 --- a/core/site_scons/models/__init__.py +++ b/core/site_scons/models/__init__.py @@ -24,9 +24,7 @@ def configure_board( def get_model_identifier(model: str) -> str: - if model == "1": - return "T1B1" - elif model == "T": + if model == "T": return "T2T1" elif model == "R": return "T2B1" diff --git a/core/src/apps/base.py b/core/src/apps/base.py index 3dfc37db1e..25015459cf 100644 --- a/core/src/apps/base.py +++ b/core/src/apps/base.py @@ -94,8 +94,7 @@ def get_features() -> Features: ) if ( - utils.INTERNAL_MODEL == "T1B1" # pylint: disable=consider-using-in - or utils.INTERNAL_MODEL == "T2B1" + utils.INTERNAL_MODEL == "T2B1" # pylint: disable=consider-using-in or utils.INTERNAL_MODEL == "T3B1" ): f.homescreen_format = HomescreenFormat.ToiG diff --git a/core/src/apps/common/coininfo.py b/core/src/apps/common/coininfo.py index 5b92ca6635..dd24871dea 100644 --- a/core/src/apps/common/coininfo.py +++ b/core/src/apps/common/coininfo.py @@ -94,1575 +94,6 @@ class CoinInfo: # fmt: off def by_name(name: str) -> CoinInfo: - if utils.INTERNAL_MODEL == "T1B1": - if name == "Bitcoin": - return CoinInfo( - name, # coin_name - "BTC", # coin_shortcut - 8, # decimals - 0, # address_type - 5, # address_type_p2sh - 2000000, # maxfee_kb - "Bitcoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0295b43f, # xpub_magic_multisig_segwit_p2sh - 0x02aa7ed3, # xpub_magic_multisig_segwit_native - "bc", # bech32_prefix - None, # cashaddr_prefix - 0, # slip44 - True, # segwit - True, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Regtest": - return CoinInfo( - name, # coin_name - "REGTEST", # coin_shortcut - 8, # decimals - 111, # address_type - 196, # address_type_p2sh - 10000000, # maxfee_kb - "Bitcoin Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - 0x044a5262, # xpub_magic_segwit_p2sh - 0x045f1cf6, # xpub_magic_segwit_native - 0x024289ef, # xpub_magic_multisig_segwit_p2sh - 0x02575483, # xpub_magic_multisig_segwit_native - "bcrt", # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - True, # segwit - True, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Testnet": - return CoinInfo( - name, # coin_name - "TEST", # coin_shortcut - 8, # decimals - 111, # address_type - 196, # address_type_p2sh - 10000000, # maxfee_kb - "Bitcoin Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - 0x044a5262, # xpub_magic_segwit_p2sh - 0x045f1cf6, # xpub_magic_segwit_native - 0x024289ef, # xpub_magic_multisig_segwit_p2sh - 0x02575483, # xpub_magic_multisig_segwit_native - "tb", # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - True, # segwit - True, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if not utils.BITCOIN_ONLY: - if name == "Actinium": - return CoinInfo( - name, # coin_name - "ACM", # coin_shortcut - 8, # decimals - 53, # address_type - 55, # address_type_p2sh - 320000000000, # maxfee_kb - "Actinium Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "acm", # bech32_prefix - None, # cashaddr_prefix - 228, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Axe": - return CoinInfo( - name, # coin_name - "AXE", # coin_shortcut - 8, # decimals - 55, # address_type - 16, # address_type_p2sh - 21000000000, # maxfee_kb - "DarkCoin Signed Message:\n", # signed_message_header - 0x02fe52cc, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 4242, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Bcash": - return CoinInfo( - name, # coin_name - "BCH", # coin_shortcut - 8, # decimals - 0, # address_type - 5, # address_type_p2sh - 14000000, # maxfee_kb - "Bitcoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - "bitcoincash", # cashaddr_prefix - 145, # slip44 - False, # segwit - False, # taproot - 0, # fork_id - True, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Bcash Testnet": - return CoinInfo( - name, # coin_name - "TBCH", # coin_shortcut - 8, # decimals - 111, # address_type - 196, # address_type_p2sh - 10000000, # maxfee_kb - "Bitcoin Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - "bchtest", # cashaddr_prefix - 1, # slip44 - False, # segwit - False, # taproot - 0, # fork_id - True, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Bgold": - return CoinInfo( - name, # coin_name - "BTG", # coin_shortcut - 8, # decimals - 38, # address_type - 23, # address_type_p2sh - 380000000, # maxfee_kb - "Bitcoin Gold Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "btg", # bech32_prefix - None, # cashaddr_prefix - 156, # slip44 - True, # segwit - False, # taproot - 79, # fork_id - True, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Bgold Testnet": - return CoinInfo( - name, # coin_name - "TBTG", # coin_shortcut - 8, # decimals - 111, # address_type - 196, # address_type_p2sh - 500000, # maxfee_kb - "Bitcoin Gold Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - 0x044a5262, # xpub_magic_segwit_p2sh - 0x045f1cf6, # xpub_magic_segwit_native - 0x043587cf, # xpub_magic_multisig_segwit_p2sh - 0x043587cf, # xpub_magic_multisig_segwit_native - "tbtg", # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - True, # segwit - False, # taproot - 79, # fork_id - True, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Bprivate": - return CoinInfo( - name, # coin_name - "BTCP", # coin_shortcut - 8, # decimals - 4901, # address_type - 5039, # address_type_p2sh - 32000000000, # maxfee_kb - "BitcoinPrivate Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 183, # slip44 - False, # segwit - False, # taproot - 42, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Bitcore": - return CoinInfo( - name, # coin_name - "BTX", # coin_shortcut - 8, # decimals - 3, # address_type - 125, # address_type_p2sh - 14000000000, # maxfee_kb - "BitCore Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "btx", # bech32_prefix - None, # cashaddr_prefix - 160, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "CPUchain": - return CoinInfo( - name, # coin_name - "CPU", # coin_shortcut - 8, # decimals - 28, # address_type - 30, # address_type_p2sh - 8700000000000, # maxfee_kb - "CPUchain Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "cpu", # bech32_prefix - None, # cashaddr_prefix - 363, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Crown": - return CoinInfo( - name, # coin_name - "CRW", # coin_shortcut - 8, # decimals - 95495, # address_type - 95473, # address_type_p2sh - 52000000000, # maxfee_kb - "Crown Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 72, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Dash": - return CoinInfo( - name, # coin_name - "DASH", # coin_shortcut - 8, # decimals - 76, # address_type - 16, # address_type_p2sh - 45000000, # maxfee_kb - "DarkCoin Signed Message:\n", # signed_message_header - 0x02fe52cc, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 5, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - True, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Dash Testnet": - return CoinInfo( - name, # coin_name - "tDASH", # coin_shortcut - 8, # decimals - 140, # address_type - 19, # address_type_p2sh - 100000, # maxfee_kb - "DarkCoin Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - True, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Decred": - return CoinInfo( - name, # coin_name - "DCR", # coin_shortcut - 8, # decimals - 1855, # address_type - 1818, # address_type_p2sh - 220000000, # maxfee_kb - "Decred Signed Message:\n", # signed_message_header - 0x02fda926, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 42, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - True, # decred - False, # negative_fee - 'secp256k1-decred', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Decred Testnet": - return CoinInfo( - name, # coin_name - "TDCR", # coin_shortcut - 8, # decimals - 3873, # address_type - 3836, # address_type_p2sh - 10000000, # maxfee_kb - "Decred Signed Message:\n", # signed_message_header - 0x043587d1, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - True, # decred - False, # negative_fee - 'secp256k1-decred', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "DigiByte": - return CoinInfo( - name, # coin_name - "DGB", # coin_shortcut - 8, # decimals - 30, # address_type - 63, # address_type_p2sh - 130000000000, # maxfee_kb - "DigiByte Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "dgb", # bech32_prefix - None, # cashaddr_prefix - 20, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Dogecoin": - return CoinInfo( - name, # coin_name - "DOGE", # coin_shortcut - 8, # decimals - 30, # address_type - 22, # address_type_p2sh - 1200000000000, # maxfee_kb - "Dogecoin Signed Message:\n", # signed_message_header - 0x02facafd, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 3, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Elements": - return CoinInfo( - name, # coin_name - "ELEMENTS", # coin_shortcut - 8, # decimals - 235, # address_type - 75, # address_type_p2sh - 10000000, # maxfee_kb - "Bitcoin Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - 0x044a5262, # xpub_magic_segwit_p2sh - 0x045f1cf6, # xpub_magic_segwit_native - 0x043587cf, # xpub_magic_multisig_segwit_p2sh - 0x043587cf, # xpub_magic_multisig_segwit_native - "ert", # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - {'address_prefix': 4, 'blech32_prefix': 'el'}, # confidential_assets - ) - if name == "Feathercoin": - return CoinInfo( - name, # coin_name - "FTC", # coin_shortcut - 8, # decimals - 14, # address_type - 5, # address_type_p2sh - 390000000000, # maxfee_kb - "Feathercoin Signed Message:\n", # signed_message_header - 0x0488bc26, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488bc26, # xpub_magic_multisig_segwit_p2sh - 0x0488bc26, # xpub_magic_multisig_segwit_native - "fc", # bech32_prefix - None, # cashaddr_prefix - 8, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Firo": - return CoinInfo( - name, # coin_name - "FIRO", # coin_shortcut - 8, # decimals - 82, # address_type - 7, # address_type_p2sh - 640000000, # maxfee_kb - "Zcoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 136, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - True, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Firo Testnet": - return CoinInfo( - name, # coin_name - "tFIRO", # coin_shortcut - 8, # decimals - 65, # address_type - 178, # address_type_p2sh - 1000000, # maxfee_kb - "Zcoin Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - True, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Florincoin": - return CoinInfo( - name, # coin_name - "FLO", # coin_shortcut - 8, # decimals - 35, # address_type - 94, # address_type_p2sh - 78000000000, # maxfee_kb - "Florincoin Signed Message:\n", # signed_message_header - 0x00174921, # xpub_magic - 0x01b26ef6, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x00174921, # xpub_magic_multisig_segwit_p2sh - 0x00174921, # xpub_magic_multisig_segwit_native - "flo", # bech32_prefix - None, # cashaddr_prefix - 216, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - True, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Fujicoin": - return CoinInfo( - name, # coin_name - "FJC", # coin_shortcut - 8, # decimals - 36, # address_type - 16, # address_type_p2sh - 35000000000000, # maxfee_kb - "FujiCoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0295b43f, # xpub_magic_multisig_segwit_p2sh - 0x02aa7ed3, # xpub_magic_multisig_segwit_native - "fc", # bech32_prefix - None, # cashaddr_prefix - 75, # slip44 - True, # segwit - True, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Groestlcoin": - return CoinInfo( - name, # coin_name - "GRS", # coin_shortcut - 8, # decimals - 36, # address_type - 5, # address_type_p2sh - 16000000000, # maxfee_kb - "GroestlCoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "grs", # bech32_prefix - None, # cashaddr_prefix - 17, # slip44 - True, # segwit - True, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1-groestl', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Groestlcoin Testnet": - return CoinInfo( - name, # coin_name - "tGRS", # coin_shortcut - 8, # decimals - 111, # address_type - 196, # address_type_p2sh - 100000, # maxfee_kb - "GroestlCoin Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - 0x044a5262, # xpub_magic_segwit_p2sh - 0x045f1cf6, # xpub_magic_segwit_native - 0x043587cf, # xpub_magic_multisig_segwit_p2sh - 0x043587cf, # xpub_magic_multisig_segwit_native - "tgrs", # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - True, # segwit - True, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1-groestl', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Komodo": - return CoinInfo( - name, # coin_name - "KMD", # coin_shortcut - 8, # decimals - 60, # address_type - 85, # address_type_p2sh - 4800000000, # maxfee_kb - "Komodo Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 141, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - True, # negative_fee - 'secp256k1', # curve_name - True, # extra_data - False, # timestamp - True, # overwintered - None, # confidential_assets - ) - if name == "Koto": - return CoinInfo( - name, # coin_name - "KOTO", # coin_shortcut - 8, # decimals - 6198, # address_type - 6203, # address_type_p2sh - 1000000, # maxfee_kb - "Koto Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 510, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - True, # extra_data - False, # timestamp - True, # overwintered - None, # confidential_assets - ) - if name == "Litecoin": - return CoinInfo( - name, # coin_name - "LTC", # coin_shortcut - 8, # decimals - 48, # address_type - 50, # address_type_p2sh - 67000000, # maxfee_kb - "Litecoin Signed Message:\n", # signed_message_header - 0x019da462, # xpub_magic - 0x01b26ef6, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x019da462, # xpub_magic_multisig_segwit_p2sh - 0x019da462, # xpub_magic_multisig_segwit_native - "ltc", # bech32_prefix - None, # cashaddr_prefix - 2, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Litecoin Testnet": - return CoinInfo( - name, # coin_name - "tLTC", # coin_shortcut - 8, # decimals - 111, # address_type - 58, # address_type_p2sh - 40000000, # maxfee_kb - "Litecoin Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - 0x044a5262, # xpub_magic_segwit_p2sh - 0x045f1cf6, # xpub_magic_segwit_native - 0x043587cf, # xpub_magic_multisig_segwit_p2sh - 0x043587cf, # xpub_magic_multisig_segwit_native - "tltc", # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Monacoin": - return CoinInfo( - name, # coin_name - "MONA", # coin_shortcut - 8, # decimals - 50, # address_type - 55, # address_type_p2sh - 2100000000, # maxfee_kb - "Monacoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "mona", # bech32_prefix - None, # cashaddr_prefix - 22, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Namecoin": - return CoinInfo( - name, # coin_name - "NMC", # coin_shortcut - 8, # decimals - 52, # address_type - 5, # address_type_p2sh - 8700000000, # maxfee_kb - "Namecoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 7, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Peercoin": - return CoinInfo( - name, # coin_name - "PPC", # coin_shortcut - 6, # decimals - 55, # address_type - 117, # address_type_p2sh - 13000000000, # maxfee_kb - "Peercoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "pc", # bech32_prefix - None, # cashaddr_prefix - 6, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - True, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Peercoin Testnet": - return CoinInfo( - name, # coin_name - "tPPC", # coin_shortcut - 6, # decimals - 111, # address_type - 196, # address_type_p2sh - 2000000, # maxfee_kb - "Peercoin Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - 0x044a5262, # xpub_magic_segwit_p2sh - 0x045f1cf6, # xpub_magic_segwit_native - 0x043587cf, # xpub_magic_multisig_segwit_p2sh - 0x043587cf, # xpub_magic_multisig_segwit_native - "tpc", # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - True, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Primecoin": - return CoinInfo( - name, # coin_name - "XPM", # coin_shortcut - 8, # decimals - 23, # address_type - 83, # address_type_p2sh - 89000000000, # maxfee_kb - "Primecoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 24, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Qtum": - return CoinInfo( - name, # coin_name - "QTUM", # coin_shortcut - 8, # decimals - 58, # address_type - 50, # address_type_p2sh - 1000000000, # maxfee_kb - "Qtum Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "qc", # bech32_prefix - None, # cashaddr_prefix - 2301, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Qtum Testnet": - return CoinInfo( - name, # coin_name - "tQTUM", # coin_shortcut - 8, # decimals - 120, # address_type - 110, # address_type_p2sh - 40000000, # maxfee_kb - "Qtum Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - 0x044a5262, # xpub_magic_segwit_p2sh - 0x045f1cf6, # xpub_magic_segwit_native - 0x043587cf, # xpub_magic_multisig_segwit_p2sh - 0x043587cf, # xpub_magic_multisig_segwit_native - "tq", # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Ravencoin": - return CoinInfo( - name, # coin_name - "RVN", # coin_shortcut - 8, # decimals - 60, # address_type - 122, # address_type_p2sh - 170000000000, # maxfee_kb - "Raven Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 175, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Ravencoin Testnet": - return CoinInfo( - name, # coin_name - "tRVN", # coin_shortcut - 8, # decimals - 111, # address_type - 196, # address_type_p2sh - 170000000000, # maxfee_kb - "Raven Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Ritocoin": - return CoinInfo( - name, # coin_name - "RITO", # coin_shortcut - 8, # decimals - 25, # address_type - 105, # address_type_p2sh - 39000000000000, # maxfee_kb - "Rito Signed Message:\n", # signed_message_header - 0x0534e7ca, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 19169, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "SmartCash": - return CoinInfo( - name, # coin_name - "SMART", # coin_shortcut - 8, # decimals - 63, # address_type - 18, # address_type_p2sh - 780000000000, # maxfee_kb - "SmartCash Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 224, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1-smart', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "SmartCash Testnet": - return CoinInfo( - name, # coin_name - "tSMART", # coin_shortcut - 8, # decimals - 65, # address_type - 21, # address_type_p2sh - 1000000, # maxfee_kb - "SmartCash Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1-smart', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Stakenet": - return CoinInfo( - name, # coin_name - "XSN", # coin_shortcut - 8, # decimals - 76, # address_type - 16, # address_type_p2sh - 11000000000, # maxfee_kb - "DarkCoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "xc", # bech32_prefix - None, # cashaddr_prefix - 199, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - True, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Syscoin": - return CoinInfo( - name, # coin_name - "SYS", # coin_shortcut - 8, # decimals - 63, # address_type - 5, # address_type_p2sh - 42000000000, # maxfee_kb - "Syscoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "sys", # bech32_prefix - None, # cashaddr_prefix - 57, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Unobtanium": - return CoinInfo( - name, # coin_name - "UNO", # coin_shortcut - 8, # decimals - 130, # address_type - 30, # address_type_p2sh - 53000000, # maxfee_kb - "Unobtanium Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 92, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "VIPSTARCOIN": - return CoinInfo( - name, # coin_name - "VIPS", # coin_shortcut - 8, # decimals - 70, # address_type - 50, # address_type_p2sh - 140000000000000, # maxfee_kb - "VIPSTARCOIN Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "vips", # bech32_prefix - None, # cashaddr_prefix - 1919, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Verge": - return CoinInfo( - name, # coin_name - "XVG", # coin_shortcut - 6, # decimals - 30, # address_type - 33, # address_type_p2sh - 550000000000, # maxfee_kb - "Name: Dogecoin Dark\n", # signed_message_header - 0x022d2533, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 77, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - True, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Vertcoin": - return CoinInfo( - name, # coin_name - "VTC", # coin_shortcut - 8, # decimals - 71, # address_type - 5, # address_type_p2sh - 13000000000, # maxfee_kb - "Vertcoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "vtc", # bech32_prefix - None, # cashaddr_prefix - 28, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Viacoin": - return CoinInfo( - name, # coin_name - "VIA", # coin_shortcut - 8, # decimals - 71, # address_type - 33, # address_type_p2sh - 14000000000, # maxfee_kb - "Viacoin Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - 0x049d7cb2, # xpub_magic_segwit_p2sh - 0x04b24746, # xpub_magic_segwit_native - 0x0488b21e, # xpub_magic_multisig_segwit_p2sh - 0x0488b21e, # xpub_magic_multisig_segwit_native - "via", # bech32_prefix - None, # cashaddr_prefix - 14, # slip44 - True, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "ZCore": - return CoinInfo( - name, # coin_name - "ZCR", # coin_shortcut - 8, # decimals - 142, # address_type - 145, # address_type_p2sh - 170000000000, # maxfee_kb - "DarkNet Signed Message:\n", # signed_message_header - 0x04b24746, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 428, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - if name == "Zcash": - return CoinInfo( - name, # coin_name - "ZEC", # coin_shortcut - 8, # decimals - 7352, # address_type - 7357, # address_type_p2sh - 51000000, # maxfee_kb - "Zcash Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 133, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - True, # extra_data - False, # timestamp - True, # overwintered - None, # confidential_assets - ) - if name == "Zcash Testnet": - return CoinInfo( - name, # coin_name - "TAZ", # coin_shortcut - 8, # decimals - 7461, # address_type - 7354, # address_type_p2sh - 10000000, # maxfee_kb - "Zcash Signed Message:\n", # signed_message_header - 0x043587cf, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 1, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - True, # extra_data - False, # timestamp - True, # overwintered - None, # confidential_assets - ) - if name == "Brhodium": - return CoinInfo( - name, # coin_name - "XRC", # coin_shortcut - 8, # decimals - 61, # address_type - 123, # address_type_p2sh - 1000000000, # maxfee_kb - "BitCoin Rhodium Signed Message:\n", # signed_message_header - 0x0488b21e, # xpub_magic - None, # xpub_magic_segwit_p2sh - None, # xpub_magic_segwit_native - None, # xpub_magic_multisig_segwit_p2sh - None, # xpub_magic_multisig_segwit_native - None, # bech32_prefix - None, # cashaddr_prefix - 10291, # slip44 - False, # segwit - False, # taproot - None, # fork_id - False, # force_bip143 - False, # decred - False, # negative_fee - 'secp256k1', # curve_name - False, # extra_data - False, # timestamp - False, # overwintered - None, # confidential_assets - ) - raise ValueError # Unknown coin name if utils.INTERNAL_MODEL == "T2B1": if name == "Bitcoin": return CoinInfo( diff --git a/core/src/apps/ethereum/networks.py b/core/src/apps/ethereum/networks.py index 8035b582e8..71b269cd7b 100644 --- a/core/src/apps/ethereum/networks.py +++ b/core/src/apps/ethereum/networks.py @@ -59,43 +59,6 @@ def by_slip44(slip44: int) -> EthereumNetworkInfo: # fmt: off def _networks_iterator() -> Iterator[NetworkInfoTuple]: - if utils.INTERNAL_MODEL == "T1B1": - yield ( - 1, # chain_id - 60, # slip44 - "ETH", # symbol - "Ethereum", # name - ) - yield ( - 56, # chain_id - 714, # slip44 - "BNB", # symbol - "BNB Smart Chain", # name - ) - yield ( - 61, # chain_id - 61, # slip44 - "ETC", # symbol - "Ethereum Classic", # name - ) - yield ( - 137, # chain_id - 966, # slip44 - "POL", # symbol - "Polygon", # name - ) - yield ( - 17000, # chain_id - 1, # slip44 - "tHOL", # symbol - "Holesky", # name - ) - yield ( - 11155111, # chain_id - 1, # slip44 - "tSEP", # symbol - "Sepolia", # name - ) if utils.INTERNAL_MODEL == "T2B1": yield ( 1, # chain_id diff --git a/core/src/apps/ethereum/tokens.py b/core/src/apps/ethereum/tokens.py index 2c63c21526..e1942543dc 100644 --- a/core/src/apps/ethereum/tokens.py +++ b/core/src/apps/ethereum/tokens.py @@ -42,154 +42,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> EthereumTokenInfo | def _token_iterator(chain_id: int) -> Iterator[tuple[bytes, str, int, str]]: - if utils.INTERNAL_MODEL == "T1B1": - if chain_id == 1: # eth - yield ( # address, symbol, decimals, name - b"\x7f\xc6\x65\x00\xc8\x4a\x76\xad\x7e\x9c\x93\x43\x7b\xfc\x5a\xc3\x3e\x2d\xda\xe9", - "AAVE", - 18, - "Aave", - ) - yield ( # address, symbol, decimals, name - b"\x4d\x22\x44\x52\x80\x1a\xce\xd8\xb2\xf0\xae\xbe\x15\x53\x79\xbb\x5d\x59\x43\x81", - "APE", - 18, - "ApeCoin", - ) - yield ( # address, symbol, decimals, name - b"\xbb\x0e\x17\xef\x65\xf8\x2a\xb0\x18\xd8\xed\xd7\x76\xe8\xdd\x94\x03\x27\xb2\x8b", - "AXS", - 18, - "Axie Infinity", - ) - yield ( # address, symbol, decimals, name - b"\x4f\xab\xb1\x45\xd6\x46\x52\xa9\x48\xd7\x25\x33\x02\x3f\x6e\x7a\x62\x3c\x7c\x53", - "BUSD", - 18, - "Binance USD", - ) - yield ( # address, symbol, decimals, name - b"\x35\x06\x42\x4f\x91\xfd\x33\x08\x44\x66\xf4\x02\xd5\xd9\x7f\x05\xf8\xe3\xb4\xaf", - "CHZ", - 18, - "Chiliz", - ) - yield ( # address, symbol, decimals, name - b"\xa0\xb7\x3e\x1f\xf0\xb8\x09\x14\xab\x6f\xe0\x44\x4e\x65\x84\x8c\x4c\x34\x45\x0b", - "CRO", - 8, - "Cronos", - ) - yield ( # address, symbol, decimals, name - b"\x6b\x17\x54\x74\xe8\x90\x94\xc4\x4d\xa9\x8b\x95\x4e\xed\xea\xc4\x95\x27\x1d\x0f", - "DAI", - 18, - "Dai", - ) - yield ( # address, symbol, decimals, name - b"\x85\x3d\x95\x5a\xce\xf8\x22\xdb\x05\x8e\xb8\x50\x59\x11\xed\x77\xf1\x75\xb9\x9e", - "FRAX", - 18, - "Frax", - ) - yield ( # address, symbol, decimals, name - b"\x2a\xf5\xd2\xad\x76\x74\x11\x91\xd1\x5d\xfe\x7b\xf6\xac\x92\xd4\xbd\x91\x2c\xa3", - "LEO", - 18, - "LEO Token", - ) - yield ( # address, symbol, decimals, name - b"\x51\x49\x10\x77\x1a\xf9\xca\x65\x6a\xf8\x40\xdf\xf8\x3e\x82\x64\xec\xf9\x86\xca", - "LINK", - 18, - "Chainlink", - ) - yield ( # address, symbol, decimals, name - b"\x0f\x5d\x2f\xb2\x9f\xb7\xd3\xcf\xee\x44\x4a\x20\x02\x98\xf4\x68\x90\x8c\xc9\x42", - "MANA", - 18, - "Decentraland", - ) - yield ( # address, symbol, decimals, name - b"\x7d\x1a\xfa\x7b\x71\x8f\xb8\x93\xdb\x30\xa3\xab\xc0\xcf\xc6\x08\xaa\xcf\xeb\xb0", - "MATIC", - 18, - "Polygon", - ) - yield ( # address, symbol, decimals, name - b"\x75\x23\x1f\x58\xb4\x32\x40\xc9\x71\x8d\xd5\x8b\x49\x67\xc5\x11\x43\x42\xa8\x6c", - "OKB", - 18, - "OKB", - ) - yield ( # address, symbol, decimals, name - b"\x4a\x22\x0e\x60\x96\xb2\x5e\xad\xb8\x83\x58\xcb\x44\x06\x8a\x32\x48\x25\x46\x75", - "QNT", - 18, - "Quant", - ) - yield ( # address, symbol, decimals, name - b"\x38\x45\xba\xda\xde\x8e\x6d\xff\x04\x98\x20\x68\x0d\x1f\x14\xbd\x39\x03\xa5\xd0", - "SAND", - 18, - "The Sandbox", - ) - yield ( # address, symbol, decimals, name - b"\x95\xad\x61\xb0\xa1\x50\xd7\x92\x19\xdc\xf6\x4e\x1e\x6c\xc0\x1f\x0b\x64\xc4\xce", - "SHIB", - 18, - "Shiba Inu", - ) - yield ( # address, symbol, decimals, name - b"\xae\x7a\xb9\x65\x20\xde\x3a\x18\xe5\xe1\x11\xb5\xea\xab\x09\x53\x12\xd7\xfe\x84", - "STETH", - 18, - "Lido Staked Ether", - ) - yield ( # address, symbol, decimals, name - b"\x1f\x98\x40\xa8\x5d\x5a\xf5\xbf\x1d\x17\x62\xf9\x25\xbd\xad\xdc\x42\x01\xf9\x84", - "UNI", - 18, - "Uniswap", - ) - yield ( # address, symbol, decimals, name - b"\xa0\xb8\x69\x91\xc6\x21\x8b\x36\xc1\xd1\x9d\x4a\x2e\x9e\xb0\xce\x36\x06\xeb\x48", - "USDC", - 6, - "USD Coin", - ) - yield ( # address, symbol, decimals, name - b"\xda\xc1\x7f\x95\x8d\x2e\xe5\x23\xa2\x20\x62\x06\x99\x45\x97\xc1\x3d\x83\x1e\xc7", - "USDT", - 6, - "Tether", - ) - yield ( # address, symbol, decimals, name - b"\x22\x60\xfa\xc5\xe5\x54\x2a\x77\x3a\xa4\x4f\xbc\xfe\xdf\x7c\x19\x3b\xc2\xc5\x99", - "WBTC", - 8, - "Wrapped Bitcoin", - ) - yield ( # address, symbol, decimals, name - b"\xa2\xcd\x3d\x43\xc7\x75\x97\x8a\x96\xbd\xbf\x12\xd7\x33\xd5\xa1\xed\x94\xfb\x18", - "XCN", - 18, - "Chain", - ) - if chain_id == 56: # bnb - yield ( # address, symbol, decimals, name - b"\x0e\xb3\xa7\x05\xfc\x54\x72\x50\x37\xcc\x9e\x00\x8b\xde\xde\x69\x7f\x62\xf3\x35", - "ATOM", - 18, - "Cosmos Hub", - ) - if chain_id == 137: # matic - yield ( # address, symbol, decimals, name - b"\x2c\x89\xbb\xc9\x2b\xd8\x6f\x80\x75\xd1\xde\xcc\x58\xc7\xf4\xe0\x10\x7f\x28\x6b", - "WAVAX", - 18, - "Wrapped AVAX", - ) if utils.INTERNAL_MODEL == "T2B1": if chain_id == 1: # eth yield ( # address, symbol, decimals, name diff --git a/core/src/trezor/ui/__init__.py b/core/src/trezor/ui/__init__.py index 3a15955549..87bc11908c 100644 --- a/core/src/trezor/ui/__init__.py +++ b/core/src/trezor/ui/__init__.py @@ -53,12 +53,7 @@ else: # in both debug and production, emulator needs to draw the screen explicitly -if ( - utils.EMULATOR - or utils.INTERNAL_MODEL == "T1B1" - or utils.INTERNAL_MODEL == "T2B1" - or utils.INTERNAL_MODEL == "T3B1" -): +if utils.EMULATOR or utils.INTERNAL_MODEL == "T2B1" or utils.INTERNAL_MODEL == "T3B1": loop.after_step_hook = refresh diff --git a/core/tests/test_apps.bitcoin.signtx_decred.py b/core/tests/test_apps.bitcoin.signtx_decred.py index 4136f59132..3b4a881277 100644 --- a/core/tests/test_apps.bitcoin.signtx_decred.py +++ b/core/tests/test_apps.bitcoin.signtx_decred.py @@ -1,6 +1,6 @@ from common import * # isort:skip -if utils.INTERNAL_MODEL in ("T1B1", "T2T1"): +if utils.INTERNAL_MODEL in ("T2T1", ): from trezor.crypto import bip39 from trezor.enums import AmountUnit, OutputScriptType from trezor.enums.RequestType import TXFINISHED, TXINPUT, TXMETA, TXOUTPUT @@ -405,5 +405,5 @@ class TestSignTxDecred(unittest.TestCase): if __name__ == "__main__": - if utils.INTERNAL_MODEL in ("T1B1", "T2T1"): + if utils.INTERNAL_MODEL in ("T2T1",): unittest.main() diff --git a/core/tests/test_apps.common.coins.py b/core/tests/test_apps.common.coins.py index 68ff3bd8ac..860fa798c2 100644 --- a/core/tests/test_apps.common.coins.py +++ b/core/tests/test_apps.common.coins.py @@ -22,7 +22,7 @@ class TestCoins(unittest.TestCase): ("ZEC", "Zcash", 7352), ("TAZ", "Zcash Testnet", 7461), ] - if utils.INTERNAL_MODEL in ("T1B1", "T2T1"): + if utils.INTERNAL_MODEL in ("T2T1",): ref.extend( [ ("NMC", "Namecoin", 52), diff --git a/core/tools/build_templates b/core/tools/build_templates index 93053950b3..e075001019 100755 --- a/core/tools/build_templates +++ b/core/tools/build_templates @@ -2,7 +2,7 @@ set -e CWD=`dirname "$0"` -RENDER="$CWD/../vendor/trezor-common/tools/cointool.py render" +RENDER="$CWD/../vendor/trezor-common/tools/cointool.py render -M T1B1" # Search both in `core/src` and `core/embed` - Solana templates are excluded since those are handled separately FIND_TEMPLATES="find $CWD/.. -name *.mako -not -name _proto* -not -path *solana*" diff --git a/core/tools/trezor_core_tools/combine_firmware.py b/core/tools/trezor_core_tools/combine_firmware.py index 7477a60685..3d69c7c2fc 100755 --- a/core/tools/trezor_core_tools/combine_firmware.py +++ b/core/tools/trezor_core_tools/combine_firmware.py @@ -27,7 +27,7 @@ from .layout_parser import find_all_values def main(model: str, bin: list[tuple[str, Path]], outfile: Path | None) -> None: """Create a combined.bin file from components. - MODEL is the internal model name (e.g. T1B1, T2T1, T2B1). + MODEL is the internal model name (e.g. T2T1, T2B1). BIN is a list of tuples with the type and path to the binary file. The usual types are: